<?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>281214</bug_id>
          
          <creation_ts>2024-10-10 03:35:11 -0700</creation_ts>
          <short_desc>REGRESSION(284931@main): sub-1% JS2 perf regression</short_desc>
          <delta_ts>2024-10-10 03:39:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>225397</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2066852</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2024-10-10 03:35:11 -0700</bug_when>
    <thetext>https://commits.webkit.org/284931@main introduced a regression:
sub-1% JS2 perf regression

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>2066854</commentid>
    <comment_count>1</comment_count>
      <attachid>472894</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2024-10-10 03:35:26 -0700</bug_when>
    <thetext>Created attachment 472894
REVERT of 284931@main

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 revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert 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>2066856</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-10-10 03:38:17 -0700</bug_when>
    <thetext>Committed 284962@main (9bfbbb1fe8f0): &lt;https://commits.webkit.org/284962@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 472894.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2066857</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-10-10 03:39:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/137666377&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>472894</attachid>
            <date>2024-10-10 03:35:26 -0700</date>
            <delta_ts>2024-10-10 03:38:18 -0700</delta_ts>
            <desc>REVERT of 284931@main</desc>
            <filename>bug-281214-20241010103525.patch</filename>
            <type>text/plain</type>
            <size>191773</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA2YjUzYjk4NmVjY2RiOTRmNDEwMmMxMWQ3M2M5ODQ4MGIyNzQ2ODE5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBUaHUsIDEwIE9jdCAyMDI0IDEwOjM1OjIyICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDI4NDkzMUBtYWluIGFuZCAyODQ5NDBAbWFpbi4KIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODEyMTQKCnN1Yi0xJSBKUzIgcGVy
ZiByZWdyZXNzaW9uCgpSZXZlcnRlZCBjaGFuZ2VzZXRzOgoKIltKU0NdIERvbid0IHVzZSBKU1Nj
b3BlIGluc3RhbmNlcyBhcyBgdGhpc2AgdmFsdWUgd2hlbiBjYWxsaW5nIGZ1bmN0aW9ucyIKaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTM5NwpodHRwczovL2NvbW1p
dHMud2Via2l0Lm9yZy8yODQ5MzFAbWFpbgoKIlJFR1JFU1NJT04oMjg0OTMxQG1haW4pOiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYklETC9lY21hc2NyaXB0LWJpbmRpbmcvZ2xv
YmFsLW9iamVjdC1pbXBsaWNpdC10aGlzLXZhbHVlLmFueS5zZXJ2aWNld29ya2VyLmh0bWwgaXMg
ZmFpbGluZyIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTM5Nwpo
dHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy8yODQ5NDBAbWFpbgotLS0KIC4uLi9KYXZhU2NyaXB0
Q29yZS9BUEkvQVBJQ2FsbGJhY2tGdW5jdGlvbi5oICB8ICAgMiArLQogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0Jhc2UuY3BwICAgICAgICAgIHwgICAyICstCiAuLi4vQVBJL0pTQ2FsbGJh
Y2tPYmplY3RGdW5jdGlvbnMuaCAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCAgICB8ICAgMiArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU09iamVjdFJlZi5jcHAgICAgIHwgICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTU2NyaXB0UmVmLmNwcCAgICAgfCAgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvdGVzdGFwaS5jICAgICB8ICAxNyAtCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQgICAgICAgICAgfCAgIDEgKwogLi4uL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogIHwgICA2ICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3Vy
Y2VzLnR4dCAgICAgICAgICAgICB8ICAgMSArCiAuLi4vSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
UHJveHlIZWxwZXJzLmpzICAgfCAgMTIgKy0KIC4uLi9ieXRlY29kZS9CeXRlY29kZUludHJpbnNp
Y1JlZ2lzdHJ5LmggICAgICB8ICAgMSArCiAuLi4vSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVMaXN0LnJiICAgfCAgMjEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suY3BwICB8ICAxMiArCiAuLi4vYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwICAg
ICAgICAgICAgICAgfCAgMTMgLQogLi4uL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0
ZWRUeXBlLmggIHwgICAyIC0KIC4uLi9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Ub1RoaXNTdGF0
dXMuY3BwICB8ICA3MiArKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVG9UaGlz
U3RhdHVzLmggfCAgNDYgKysrCiAuLi4vYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNw
cCAgICAgICAgfCAgNDkgKy0tCiAuLi4vYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgg
ICAgICAgICAgfCAgIDYgKy0KIC4uLi9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCAgICAg
ICAgICAgICB8ICA0OCArKy0KIC4uLi9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAgICAg
ICAgICAgICB8ICAgNSArLQogLi4uL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
ICAgICAgIHwgIDk1ICsrKystCiAuLi4vSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcCAgfCAgMzUgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6
ZS5oICAgICB8ICAgMyArLQogLi4uL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgICAg
ICAgICAgIHwgICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwICAgfCAgODYgKysrKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaCAg
ICAgICAgICB8ICAgNiArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCAgICAg
ICAgICAgfCAgMTYgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BJbmZvLmggICAg
ICAgICB8ICAgMSAtCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
ICAgfCAgMzEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oICAg
ICB8ICAgMiArCiAuLi4vZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCAgICAg
fCAgODggKysrKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
ICB8ICA1MiArLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cCB8ICAzMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRvci9EU0wucmIgICAgICAg
IHwgICAxICsKIC4uLi9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwICAgICAgICB8
ICAgMiArLQogLi4uL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcCAgICAgICAgICAgICAgIHwg
ICA2IC0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggICB8ICAx
NCAtCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwICAgICAgfCAgMzgg
Ky0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgICB8ICAgNSAr
LQogLi4uL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCAgIHwgICA1ICst
CiAuLi4vbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSAgICAgICAgfCAgMzkgKy0t
CiAuLi4vbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSAgICAgICAgICAgfCAgMzggKy0K
IC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCB8ICAzMSArLQog
Li4uL3J1bnRpbWUvQXN5bmNJdGVyYXRvclByb3RvdHlwZS5jcHAgICAgICAgIHwgICA0ICstCiAu
Li4vcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwICAgICAgICAgICAgICAgfCAgMjIgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwICB8ICAgNiArLQogLi4u
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAgIHwgICA1ICstCiAuLi4v
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAgfCAgIDIgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwICB8ICAxNCArCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggICAgfCAgIDMgKy0KIC4uLi9ydW50
aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmggICAgICAgICAgICAgICB8ICAxNyArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmggICAgICAgIHwgICA2ICstCiAuLi4vSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oICAgfCAgMTcgKy0KIC4uLi9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCAgICAgICB8ICAgOSArLQogLi4uL3J1bnRpbWUv
SlNJdGVyYXRvclByb3RvdHlwZS5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgICAgfCAgIDIgKy0KIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggICAgICB8ICAxNCArCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Njb3BlLmggICAgICAgfCAgIDIgKwogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNUeXBlLmggICAgICAgIHwgICA1ICsKIC4uLi9ydW50aW1lL09iamVjdFBy
b3RvdHlwZS5jcHAgICAgICAgICAgICAgICB8ICAyNCArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHJveHlPYmplY3QuY3BwIHwgICA2ICstCiAuLi4vcnVudGltZS9SZWdFeHBQcm90
b3R5cGUuY3BwICAgICAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9ydW50aW1lL1NwYXJzZUFycmF5
VmFsdWVNYXAuY3BwICAgICAgICAgICB8ICAgMiArLQogLi4uL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmNwcCAgICAgICAgICAgICAgIHwgIDEzICstCiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTU9wZXJhdGlvbi5oICAgfCAgMTIgKy0KIC4uLi9qcy9KU0RPTU9wZXJhdGlvblJldHVy
bmluZ1Byb21pc2UuaCAgICAgICB8ICAgNiArLQogLi4uL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dDdXN0b20uY3BwIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0Vycm9ySGFuZGxlci5jcHAgfCAgIDIgKy0KIC4uLi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRUYXJnZXRDdXN0b20uaCB8ICAgMyArLQogLi4uL1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1
bGVkQWN0aW9uLmNwcCAgIHwgICAyICstCiAuLi4vYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0gICAgICAgfCAgIDQgKy0KIC4uLi9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFs
T2JqZWN0LmNwcCAgICB8IDMyNyArKysrKysrKy0tLS0tLS0tLS0KIC4uLi9zY3JpcHRzL3Rlc3Qv
VGVzdEdsb2JhbE9iamVjdC5pZGwgICAgICAgICB8ICAgMiAtCiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwICAgICAgfCAgIDIgKy0KIC4uLm9tLWFjY2Vzcy1mcm9tLWNs
b3N1cmUtaWZyYW1lLWV4cGVjdGVkLnR4dCB8ICAgMiArLQogLi4ub20tYWNjZXNzLWZyb20tY2xv
c3VyZS13aW5kb3ctZXhwZWN0ZWQudHh0IHwgICAyICstCiAuLi5zLWZyb20tY2xvc3VyZS13aW5k
b3ctd2l0aC1nYy1leHBlY3RlZC50eHQgfCAgIDIgKy0KIC4uLnRtbGVsZWxtZW50LXdpdGgtaWZy
YW1lLXByb3RvLWV4cGVjdGVkLnR4dCB8ICAgMiArLQogLi4uTklFRC1tZXRob2Qtd2l0aC1pZnJh
bWUtcHJvdG8tZXhwZWN0ZWQudHh0IHwgICAyICstCiAuLi5lLXByb3B0ZXJ0eS13aXRoLWlmcmFt
ZS1wcm90by1leHBlY3RlZC50eHQgfCAgIDIgKy0KIC4uLnItcHJvcHRlcnR5LXdpdGgtaWZyYW1l
LXByb3RvLWV4cGVjdGVkLnR4dCB8ICAgMiArLQogLi4ucGxpY2l0LXRoaXMtdmFsdWUtY3Jvc3Mt
cmVhbG0tZXhwZWN0ZWQudHh0IHwgICA0ICstCiAuLi5iamVjdC1pbXBsaWNpdC10aGlzLXZhbHVl
LmFueS1leHBlY3RlZC50eHQgfCAgIDQgKy0KIC4uLi10aGlzLXZhbHVlLmFueS5zZXJ2aWNld29y
a2VyLWV4cGVjdGVkLnR4dCB8ICAgNCArLQogLi4udC10aGlzLXZhbHVlLmFueS5zaGFyZWR3b3Jr
ZXItZXhwZWN0ZWQudHh0IHwgICA0ICstCiAuLi5tcGxpY2l0LXRoaXMtdmFsdWUuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQgfCAgIDQgKy0KIC4uLi9lbWJlZGRlZC1vcGVuZXItcmVtb3ZlLWZyYW1l
LWV4cGVjdGVkLnR4dCB8ICAgNCArLQogLi4uL2V4ZWN1dGlvbi10aW1pbmcvMDgzLWV4cGVjdGVk
LnR4dCAgICAgICAgIHwgICAyICstCiAuLi4vMDAxX2RlZmF1bHQtZXhwZWN0ZWQudHh0ICAgICAg
ICAgICAgICAgICAgfCAgIDIgKwogLi4uL3VubG9hZC1hLWRvY3VtZW50LzAwMV93c3MtZXhwZWN0
ZWQudHh0ICAgIHwgICAyICsKIC4uLi8wMDJfZGVmYXVsdC1leHBlY3RlZC50eHQgICAgICAgICAg
ICAgICAgICB8ICAgMiArCiAuLi4vdW5sb2FkLWEtZG9jdW1lbnQvMDAyX3dzcy1leHBlY3RlZC50
eHQgICAgfCAgIDIgKwogLi4uL3VubG9hZC1hLWRvY3VtZW50LzAwMy1leHBlY3RlZC50eHQgICAg
ICAgIHwgICAyICsKIC4uLi91bmxvYWQtYS1kb2N1bWVudC8wMDQtZXhwZWN0ZWQudHh0ICAgICAg
ICB8ICAgMiArCiAuLi5pdGVyYWwtc2hvcnRoYW5kLWNvbnN0cnVjdGlvbi1leHBlY3RlZC50eHQg
fCAgIDYgKy0KIC4uLi9vYmplY3QtbGl0ZXJhbC1zaG9ydGhhbmQtY29uc3RydWN0aW9uLmpzICB8
ICAgOCArLQogLi4uL3Jlc291cmNlcy9jcmFzaC1vbi1nZXRkYXRhYmFzZXMuanMgICAgICAgIHwg
ICAyICstCiBKU1Rlc3RzL3N0cmVzcy9iaWctaW50LXN0cmljdC1zcGVjLXRvLXRoaXMuanMgfCAg
IDMgKy0KIC4uLi9zdHJlc3MvZXZhbHVhdGUtd2l0aC1zY29wZS1leHRlbnNpb24uanMgICB8ICA3
MyAtLS0tCiAuLi5iYWwtb2JqZWN0LWFjY2Vzc29yLXByb3BlcnR5LXRoaXMtdmFsdWUuanMgfCAg
NzggLS0tLS0KIEpTVGVzdHMvc3RyZXNzL3ZhcmlhYmxlLW5hbWVkLWV2YWwuanMgICAgICAgICB8
ICAxOSAtCiAxMDMgZmlsZXMgY2hhbmdlZCwgOTc2IGluc2VydGlvbnMoKyksIDc2MiBkZWxldGlv
bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VG9UaGlzU3RhdHVzLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Ub1RoaXNTdGF0dXMuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IEpTVGVzdHMvc3Ry
ZXNzL2V2YWx1YXRlLXdpdGgtc2NvcGUtZXh0ZW5zaW9uLmpzCiBkZWxldGUgbW9kZSAxMDA2NDQg
SlNUZXN0cy9zdHJlc3MvZ2xvYmFsLW9iamVjdC1hY2Nlc3Nvci1wcm9wZXJ0eS10aGlzLXZhbHVl
LmpzCiBkZWxldGUgbW9kZSAxMDA2NDQgSlNUZXN0cy9zdHJlc3MvdmFyaWFibGUtbmFtZWQtZXZh
bC5qcwoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvQVBJQ2FsbGJhY2tG
dW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9BUElDYWxsYmFja0Z1bmN0aW9u
LmgKaW5kZXggYzJhYmI5NTkyNWZkLi5iZDNiOTliZDcyMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvQVBJQ2FsbGJhY2tGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvQVBJQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC00Niw3ICs0Niw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEFQSUNhbGxiYWNrRnVuY3Rpb246OmNhbGxJbXBsKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogICAgIEpTQ29udGV4dFJlZiBleGVjUmVmID0gdG9SZWYoZ2xvYmFsT2JqZWN0KTsK
ICAgICBKU09iamVjdFJlZiBmdW5jdGlvblJlZiA9IHRvUmVmKGNhbGxGcmFtZS0+anNDYWxsZWUo
KSk7Ci0gICAgSlNPYmplY3RSZWYgdGhpc09ialJlZiA9IHRvUmVmKGNhbGxGcmFtZS0+dGhpc1Zh
bHVlKCkudG9TbG9wcHlNb2RlVGhpcyhnbG9iYWxPYmplY3QpKTsKKyAgICBKU09iamVjdFJlZiB0
aGlzT2JqUmVmID0gdG9SZWYoanNDYXN0PEpTT2JqZWN0Kj4oY2FsbEZyYW1lLT50aGlzVmFsdWUo
KS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c2xvcHB5KCkpKSk7CiAKICAgICBpbnQg
YXJndW1lbnRDb3VudCA9IHN0YXRpY19jYXN0PGludD4oY2FsbEZyYW1lLT5hcmd1bWVudENvdW50
KCkpOwogICAgIFZlY3RvcjxKU1ZhbHVlUmVmLCAxNj4gYXJndW1lbnRzKGFyZ3VtZW50Q291bnQs
IFsmXShzaXplX3QgaSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0Jhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwCmluZGV4IDQ1
NzFjNzJjNzJkYi4uZjI2N2NiZjZiNzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQmFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2Uu
Y3BwCkBAIC01MCw3ICs1MCw3IEBAIEpTVmFsdWVSZWYgSlNFdmFsdWF0ZVNjcmlwdEludGVybmFs
KGNvbnN0IEpTTG9ja0hvbGRlciYsIEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqCiAgICAgLy8gZXZh
bHVhdGUgc2V0cyAidGhpcyIgdG8gdGhlIGdsb2JhbCBvYmplY3QgaWYgaXQgaXMgTlVMTAogICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTKGN0eCk7CiAgICAgTmFrZWRQdHI8
RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0aW9uOwotICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUg
PSBwcm9maWxlZEV2YWx1YXRlKGdsb2JhbE9iamVjdCwgUHJvZmlsaW5nUmVhc29uOjpBUEksIHNv
dXJjZSwganNUaGlzT2JqZWN0ID8gd3JhcEdsb2JhbE9iamVjdChqc1RoaXNPYmplY3QpIDogSlNW
YWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKKyAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0g
cHJvZmlsZWRFdmFsdWF0ZShnbG9iYWxPYmplY3QsIFByb2ZpbGluZ1JlYXNvbjo6QVBJLCBzb3Vy
Y2UsIGpzVGhpc09iamVjdCwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CiAKICAgICBpZiAoZXZhbHVh
dGlvbkV4Y2VwdGlvbikgewogICAgICAgICBpZiAoZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCBl
ODgwODhjN2E4NjYuLjI2NGI0YzYzMTljOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTU1Miw3ICs1NTIsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmNhbGxJbXBsKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAKICAgICBKU0NvbnRleHRSZWYgZXhlY1JlZiA9IHRv
UmVmKGdsb2JhbE9iamVjdCk7CiAgICAgSlNPYmplY3RSZWYgZnVuY3Rpb25SZWYgPSB0b1JlZihj
YWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwotICAgIEpTT2JqZWN0UmVmIHRoaXNPYmpSZWYgPSB0b1Jl
ZihjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLnRvU2xvcHB5TW9kZVRoaXMoZ2xvYmFsT2JqZWN0KSk7
CisgICAgSlNPYmplY3RSZWYgdGhpc09ialJlZiA9IHRvUmVmKGpzQ2FzdDxKU09iamVjdCo+KGNh
bGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9UaGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnNsb3Bw
eSgpKSkpOwogICAgIAogICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0ganNDYXN0PEpTQ2Fs
bGJhY2tPYmplY3Q8UGFyZW50Pio+KHRvSlMoZnVuY3Rpb25SZWYpKS0+Y2xhc3NSZWYoKTsganND
bGFzczsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CiAgICAgICAgIGlmIChKU09i
amVjdENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2sgY2FsbEFzRnVuY3Rpb24gPSBqc0NsYXNzLT5jYWxs
QXNGdW5jdGlvbikgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nv
bnRleHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3Bw
CmluZGV4IDdlMDJhYmIzYmNiMy4uZjk2MWJhZDJiZGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCkBAIC0xOTAsNyArMTkwLDcgQEAgSlNPYmplY3RSZWYg
SlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KEpTQ29udGV4dFJlZiBjdHgpCiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIodm0pOwogCi0gICAg
cmV0dXJuIHRvUmVmKGdsb2JhbE9iamVjdC0+Z2xvYmFsVGhpcygpKTsKKyAgICByZXR1cm4gdG9S
ZWYoanNDYXN0PEpTT2JqZWN0Kj4oSlNWYWx1ZShnbG9iYWxPYmplY3QpLnRvVGhpcyhnbG9iYWxP
YmplY3QsIEVDTUFNb2RlOjpzbG9wcHkoKSkpKTsKIH0KIAogSlNDb250ZXh0R3JvdXBSZWYgSlND
b250ZXh0R2V0R3JvdXAoSlNDb250ZXh0UmVmIGN0eCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZi5jcHAKaW5kZXggOTBjYTVlYzE0NDU0Li5mYzA3Njg1MTcwMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC03MzUsNyArNzM1LDcg
QEAgSlNWYWx1ZVJlZiBKU09iamVjdENhbGxBc0Z1bmN0aW9uKEpTQ29udGV4dFJlZiBjdHgsIEpT
T2JqZWN0UmVmIG9iamVjdCwgSlNPYmplY3QKICAgICBpZiAoY2FsbERhdGEudHlwZSA9PSBDYWxs
RGF0YTo6VHlwZTo6Tm9uZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBKU1ZhbHVl
UmVmIHJlc3VsdCA9IHRvUmVmKGdsb2JhbE9iamVjdCwgcHJvZmlsZWRDYWxsKGdsb2JhbE9iamVj
dCwgUHJvZmlsaW5nUmVhc29uOjpBUEksIGpzT2JqZWN0LCBjYWxsRGF0YSwgd3JhcEdsb2JhbE9i
amVjdChqc1RoaXNPYmplY3QpLCBhcmdMaXN0KSk7CisgICAgSlNWYWx1ZVJlZiByZXN1bHQgPSB0
b1JlZihnbG9iYWxPYmplY3QsIHByb2ZpbGVkQ2FsbChnbG9iYWxPYmplY3QsIFByb2ZpbGluZ1Jl
YXNvbjo6QVBJLCBqc09iamVjdCwgY2FsbERhdGEsIGpzVGhpc09iamVjdCwgYXJnTGlzdCkpOwog
ICAgIGlmIChoYW5kbGVFeGNlcHRpb25JZk5lZWRlZChzY29wZSwgY3R4LCBleGNlcHRpb24pID09
IEV4Y2VwdGlvblN0YXR1czo6RGlkVGhyb3cpCiAgICAgICAgIHJlc3VsdCA9IG51bGxwdHI7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNTY3JpcHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5j
cHAKaW5kZXggZTY0ODkyMmU3MWYzLi5jZjhlZGI3YWJiNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgSlNWYWx1ZVJlZiBK
U1NjcmlwdEV2YWx1YXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1NjcmlwdFJlZiBzY3JpcHQs
IEpTVmFsdWVSZWYKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIE5ha2VkUHRy
PEV4Y2VwdGlvbj4gaW50ZXJuYWxFeGNlcHRpb247Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSB0
aGlzVmFsdWVSZWYgPyB3cmFwR2xvYmFsT2JqZWN0KHRvSlMoZ2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWVSZWYpKSA6IEpTVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IHRoaXNWYWx1ZVJl
ZiA/IHRvSlMoZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWVSZWYpIDoganNVbmRlZmluZWQoKTsKICAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdCwgU291cmNlQ29kZSgqc2Ny
aXB0KSwgdGhpc1ZhbHVlLCBpbnRlcm5hbEV4Y2VwdGlvbik7CiAgICAgaWYgKGludGVybmFsRXhj
ZXB0aW9uKSB7CiAgICAgICAgIGlmIChleGNlcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvdGVzdHMvdGVzdGFwaS5jCmluZGV4IGQ1MWQ5YWE2NzM2NC4uOTI3MTAzYTNiY2UzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwpAQCAtMjEzNSwxNyArMjEz
NSwxMiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIHYgPSBKU09iamVj
dENhbGxBc0Z1bmN0aW9uKGNvbnRleHQsIGZ1bmN0aW9uLCBvLCAwLCBOVUxMLCBOVUxMKTsKICAg
ICBBU1NFUlQoSlNWYWx1ZUlzRXF1YWwoY29udGV4dCwgdiwgbywgTlVMTCkpOwogCi0gICAgSlNP
YmplY3RSZWYgcmF3R2xvYmFsT2JqZWN0ID0gSlNPYmplY3RHZXRQcm94eVRhcmdldChnbG9iYWxP
YmplY3QpOwotICAgIEFTU0VSVCghSlNWYWx1ZUlzRXF1YWwoY29udGV4dCwgcmF3R2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3QsIE5VTEwpKTsKLQogICAgIGNvbnN0IGNoYXIqIHRoaXNTY3JpcHQg
PSAidGhpczsiOwogICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKHRoaXNTY3JpcHQpOwogICAgIHYgPSBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQs
IHNjcmlwdCwgTlVMTCwgTlVMTCwgMSwgTlVMTCk7CiAgICAgQVNTRVJUKEpTVmFsdWVJc0VxdWFs
KGNvbnRleHQsIHYsIGdsb2JhbE9iamVjdCwgTlVMTCkpOwogICAgIHYgPSBKU0V2YWx1YXRlU2Ny
aXB0KGNvbnRleHQsIHNjcmlwdCwgbywgTlVMTCwgMSwgTlVMTCk7CiAgICAgQVNTRVJUKEpTVmFs
dWVJc0VxdWFsKGNvbnRleHQsIHYsIG8sIE5VTEwpKTsKLSAgICB2ID0gSlNFdmFsdWF0ZVNjcmlw
dChjb250ZXh0LCBzY3JpcHQsIHJhd0dsb2JhbE9iamVjdCwgTlVMTCwgMSwgTlVMTCk7Ci0gICAg
QVNTRVJUKEpTVmFsdWVJc0VxdWFsKGNvbnRleHQsIHYsIGdsb2JhbE9iamVjdCwgTlVMTCkpOwog
ICAgIEpTU3RyaW5nUmVsZWFzZShzY3JpcHQpOwogCiAgICAgSlNTY3JpcHRSZWYgc2NyaXB0T2Jq
ZWN0ID0gSlNTY3JpcHRDcmVhdGVSZWZlcmVuY2luZ0ltbW9ydGFsQVNDSUlUZXh0KGNvbnRleHRH
cm91cCwgMCwgMCwgdGhpc1NjcmlwdCwgc3RybGVuKHRoaXNTY3JpcHQpLCAwLCAwKTsKQEAgLTIx
NTMsMTggKzIxNDgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIEFT
U0VSVChKU1ZhbHVlSXNFcXVhbChjb250ZXh0LCB2LCBnbG9iYWxPYmplY3QsIE5VTEwpKTsKICAg
ICB2ID0gSlNTY3JpcHRFdmFsdWF0ZShjb250ZXh0LCBzY3JpcHRPYmplY3QsIG8sIE5VTEwpOwog
ICAgIEFTU0VSVChKU1ZhbHVlSXNFcXVhbChjb250ZXh0LCB2LCBvLCBOVUxMKSk7Ci0gICAgdiA9
IEpTU2NyaXB0RXZhbHVhdGUoY29udGV4dCwgc2NyaXB0T2JqZWN0LCByYXdHbG9iYWxPYmplY3Qs
IE5VTEwpOwotICAgIEFTU0VSVChKU1ZhbHVlSXNFcXVhbChjb250ZXh0LCB2LCBnbG9iYWxPYmpl
Y3QsIE5VTEwpKTsKLSAgICB2ID0gSlNTY3JpcHRFdmFsdWF0ZShjb250ZXh0LCBzY3JpcHRPYmpl
Y3QsIGpzVW5kZWZpbmVkLCBOVUxMKTsKLSAgICBBU1NFUlQoSlNWYWx1ZUlzRXF1YWwoY29udGV4
dCwgdiwgZ2xvYmFsT2JqZWN0LCBOVUxMKSk7Ci0gICAgdiA9IEpTU2NyaXB0RXZhbHVhdGUoY29u
dGV4dCwgc2NyaXB0T2JqZWN0LCBqc051bGwsIE5VTEwpOwotICAgIEFTU0VSVChKU1ZhbHVlSXNF
cXVhbChjb250ZXh0LCB2LCBnbG9iYWxPYmplY3QsIE5VTEwpKTsKLSAgICB2ID0gSlNTY3JpcHRF
dmFsdWF0ZShjb250ZXh0LCBzY3JpcHRPYmplY3QsIGpzWmVybywgTlVMTCk7Ci0gICAgQVNTRVJU
KEpTVmFsdWVJc09iamVjdChjb250ZXh0LCB2KSk7Ci0gICAgdiA9IEpTU2NyaXB0RXZhbHVhdGUo
Y29udGV4dCwgc2NyaXB0T2JqZWN0LCBqc1RydWUsIE5VTEwpOwotICAgIEFTU0VSVChKU1ZhbHVl
SXNPYmplY3QoY29udGV4dCwgdikpOwotICAgIHYgPSBKU1NjcmlwdEV2YWx1YXRlKGNvbnRleHQs
IHNjcmlwdE9iamVjdCwganNFbXB0eVN0cmluZywgTlVMTCk7Ci0gICAgQVNTRVJUKEpTVmFsdWVJ
c09iamVjdChjb250ZXh0LCB2KSk7CiAgICAgSlNTY3JpcHRSZWxlYXNlKHNjcmlwdE9iamVjdCk7
CiAKICAgICBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiZXZhbCh0aGlz
KTsiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2YzRlY2QxNmQzZWMu
LmRjN2JmYjM0MDlkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjU1
LDYgKzY1NSw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAogICAgIGJ5dGVjb2RlL1N0cnVjdHVyZVNl
dC5oCiAgICAgYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmgKKyAgICBieXRlY29kZS9Ub1RoaXNTdGF0
dXMuaAogICAgIGJ5dGVjb2RlL1R5cGVMb2NhdGlvbi5oCiAgICAgYnl0ZWNvZGUvVW5saW5rZWRD
b2RlQmxvY2suaAogICAgIGJ5dGVjb2RlL1VubGlua2VkRXZhbENvZGVCbG9jay5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI5MGYwZTllNWU4Ni4uMmFjYjZhMjgzN2IxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjIzLDYgKzIyMyw3IEBACiAJCTBGMkM2M0My
MUU2NjRBNUMwMEMxMzgzOSAvKiBCM05hdGl2ZVRyYWl0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyQzYzQzExRTY2NEE1QTAwQzEzODM5IC8qIEIz
TmF0aXZlVHJhaXRzLmggKi87IH07CiAJCTBGMkM2M0M0MUU2OUVGOTQwMEMxMzgzOSAvKiBCM01l
bW9yeVZhbHVlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYyQzYzQzMxRTY5RUY5MjAwQzEzODM5IC8qIEIzTWVtb3J5VmFsdWVJbmxpbmVz
LmggKi87IH07CiAJCTBGMkQ0RERFMTk4MzJEMzQwMDdENEIxOSAvKiBEZWJ1Z2dlclNjb3BlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJENEREQzE5
ODMyRDM0MDA3RDRCMTkgLyogRGVidWdnZXJTY29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMkQ0REU5MTk4MzJEQUMwMDdENEIxOSAvKiBU
b1RoaXNTdGF0dXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGMkQ0REU2MTk4MzJEQUMwMDdENEIxOSAvKiBUb1RoaXNTdGF0dXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjJENERFQTE5ODMyREFD
MDA3RDRCMTkgLyogVHlwZUxvY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjJENERFNzE5ODMyREFDMDA3RDRCMTkgLyogVHlwZUxvY2F0aW9u
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYy
RDRERUMxOTgzMkRDNDAwN0Q0QjE5IC8qIFR5cGVQcm9maWxlckxvZy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRDRERTAxOTgzMkQ5MTAwN0Q0QjE5
IC8qIFR5cGVQcm9maWxlckxvZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGMkQ0REYwMTk4MzJERDYwMDdENEIxOSAvKiBUeXBlU2V0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJENERFNDE5ODMy
RDkxMDA3RDRCMTkgLyogVHlwZVNldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0yNzYxLDYgKzI3NjIsOCBAQAogCQkwRjJENERFMDE5ODMyRDkx
MDA3RDRCMTkgLyogVHlwZVByb2ZpbGVyTG9nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVQcm9maWxl
ckxvZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjJENERFMzE5ODMyRDkxMDA3
RDRCMTkgLyogVHlwZVNldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBlU2V0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyRDRERTQxOTgzMkQ5MTAwN0Q0QjE5IC8qIFR5
cGVTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwZVNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjJENERFNTE5ODMyREFDMDA3RDRCMTkgLyogVG9UaGlzU3RhdHVzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRvVGhpc1N0YXR1cy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkQ0REU2MTk4MzJEQUMwMDdENEIxOSAvKiBUb1Ro
aXNTdGF0dXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVG9UaGlzU3RhdHVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkQ0REU3MTk4MzJEQUMwMDdENEIx
OSAvKiBUeXBlTG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlw
ZUxvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkREODBDMUFCM0Q4
QkUwMEJCQjhFOCAvKiBERkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2Uu
Y3BwOyBwYXRoID0gZGZnL0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjJERDgwRDFBQjNEOEJFMDBCQkI4RTggLyogREZHQXJn
dW1lbnRzRWxpbWluYXRpb25QaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBERkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlLmg7IHBhdGggPSBkZmcvREZHQXJndW1lbnRz
RWxpbWluYXRpb25QaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTY1Nyw2
ICs5NjYwLDggQEAKIAkJCQkwRjRBMzhGNzFDOEUxM0RGMDAxOTAzMTggLyogU3VwZXJTYW1wbGVy
LmNwcCAqLywKIAkJCQkwRjRBMzhGODFDOEUxM0RGMDAxOTAzMTggLyogU3VwZXJTYW1wbGVyLmgg
Ki8sCiAJCQkJMEY0NEE3QTgyMEJGNjg1RTAwMjJCMTcxIC8qIFRlcm1pbmF0ZWRDb2RlT3JpZ2lu
LmggKi8sCisJCQkJMEYyRDRERTUxOTgzMkRBQzAwN0Q0QjE5IC8qIFRvVGhpc1N0YXR1cy5jcHAg
Ki8sCisJCQkJMEYyRDRERTYxOTgzMkRBQzAwN0Q0QjE5IC8qIFRvVGhpc1N0YXR1cy5oICovLAog
CQkJCTBGOTUyQUJBMUI0ODdBNzcwMEMzNjdDNSAvKiBUcmFja2VkUmVmZXJlbmNlcy5jcHAgKi8s
CiAJCQkJMEY5NTJBQkIxQjQ4N0E3NzAwQzM2N0M1IC8qIFRyYWNrZWRSZWZlcmVuY2VzLmggKi8s
CiAJCQkJMEYyRDRERTcxOTgzMkRBQzAwN0Q0QjE5IC8qIFR5cGVMb2NhdGlvbi5oICovLApAQCAt
MTE4MzcsNiArMTE4NDIsNyBAQAogCQkJCUE3Mzg2NTU2MTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVu
a0dlbmVyYXRvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MTQ0OENEMTNBMTc4MzcwMEY1QkEx
QSAvKiBUaW55Qmxvb21GaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTU5ODk4MTdDODZD
NTgwMEExRTU0MyAvKiBUb05hdGl2ZUZyb21WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYy
RDRERTkxOTgzMkRBQzAwN0Q0QjE5IC8qIFRvVGhpc1N0YXR1cy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY5NTJBQkQxQjQ4N0E3NzAwQzM2N0M1IC8qIFRyYWNrZWRSZWZlcmVuY2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDFGOUIzQzI3MEMwQzFBMDA2MTdFQjYgLyogVHlwZWRBcnJheUFkYXB0
ZXJzRm9yd2FyZERlY2xhcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY3MDYxN0I2
QjVBQjAwQTdBRTNGIC8qIFR5cGVkQXJyYXlBZGFwdG9ycy5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU291cmNlcy50eHQKaW5kZXggZGNiMzU0NTIwYTZjLi5kZTllN2Q2ODZhYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKQEAgLTI4OSw2ICsyODksNyBAQCBieXRlY29kZS9T
dHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmNwcAogYnl0ZWNvZGUvU3RydWN0dXJlU3R1
YkluZm8uY3BwCiBieXRlY29kZS9TdHViSW5mb1N1bW1hcnkuY3BwCiBieXRlY29kZS9TdXBlclNh
bXBsZXIuY3BwCitieXRlY29kZS9Ub1RoaXNTdGF0dXMuY3BwCiBieXRlY29kZS9UcmFja2VkUmVm
ZXJlbmNlcy5jcHAKIGJ5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAogYnl0ZWNvZGUvVW5s
aW5rZWRDb2RlQmxvY2tHZW5lcmF0b3IuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnVpbHRpbnMvUHJveHlIZWxwZXJzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL1Byb3h5SGVscGVycy5qcwppbmRleCBhNzgyNTEyN2FmOTkuLmMwNzhkY2U0ODEwZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb3h5SGVscGVycy5q
cworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUHJveHlIZWxwZXJzLmpzCkBA
IC05Niw3ICs5Niw3IEBAIGZ1bmN0aW9uIHBlcmZvcm1Qcm94eU9iamVjdEdldChwcm9wZXJ0eU5h
bWUsIHJlY2VpdmVyKQogICAgIGlmICghQGlzQ2FsbGFibGUodHJhcCkpCiAgICAgICAgIEB0aHJv
d1R5cGVFcnJvcigiJ2dldCcgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJl
IGNhbGxhYmxlIik7CiAKLSAgICB2YXIgdHJhcFJlc3VsdCA9IHRyYXAuQGNhbGwoaGFuZGxlciwg
dGFyZ2V0LCBwcm9wZXJ0eU5hbWUsIHJlY2VpdmVyKTsKKyAgICB2YXIgdHJhcFJlc3VsdCA9IHRy
YXAuQGNhbGwoaGFuZGxlciwgdGFyZ2V0LCBwcm9wZXJ0eU5hbWUsIEB0b1RoaXMocmVjZWl2ZXIp
KTsKIAogICAgIGlmIChAbXVzdFZhbGlkYXRlUmVzdWx0T2ZQcm94eUdldEFuZFNldFRyYXBzKHRh
cmdldCkpCiAgICAgICAgIEBoYW5kbGVQcm94eUdldFRyYXBSZXN1bHQodHJhcFJlc3VsdCwgdGFy
Z2V0LCBwcm9wZXJ0eU5hbWUpOwpAQCAtMTIzLDcgKzEyMyw3IEBAIGZ1bmN0aW9uIHBlcmZvcm1Q
cm94eU9iamVjdEdldEJ5VmFsKHByb3BlcnR5TmFtZSwgcmVjZWl2ZXIpCiAgICAgaWYgKCFAaXND
YWxsYWJsZSh0cmFwKSkKICAgICAgICAgQHRocm93VHlwZUVycm9yKCInZ2V0JyBwcm9wZXJ0eSBv
ZiBhIFByb3h5J3MgaGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiKTsKIAotICAgIHZhciB0cmFw
UmVzdWx0ID0gdHJhcC5AY2FsbChoYW5kbGVyLCB0YXJnZXQsIHByb3BlcnR5TmFtZSwgcmVjZWl2
ZXIpOworICAgIHZhciB0cmFwUmVzdWx0ID0gdHJhcC5AY2FsbChoYW5kbGVyLCB0YXJnZXQsIHBy
b3BlcnR5TmFtZSwgQHRvVGhpcyhyZWNlaXZlcikpOwogCiAgICAgaWYgKEBtdXN0VmFsaWRhdGVS
ZXN1bHRPZlByb3h5R2V0QW5kU2V0VHJhcHModGFyZ2V0KSkKICAgICAgICAgQGhhbmRsZVByb3h5
R2V0VHJhcFJlc3VsdCh0cmFwUmVzdWx0LCB0YXJnZXQsIHByb3BlcnR5TmFtZSk7CkBAIC0xNTEs
NyArMTUxLDcgQEAgZnVuY3Rpb24gcGVyZm9ybVByb3h5T2JqZWN0U2V0U2xvcHB5KHByb3BlcnR5
TmFtZSwgcmVjZWl2ZXIsIHZhbHVlKQogICAgIGlmICghQGlzQ2FsbGFibGUodHJhcCkpCiAgICAg
ICAgIEB0aHJvd1R5cGVFcnJvcigiJ3NldCcgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIg
c2hvdWxkIGJlIGNhbGxhYmxlIik7CiAKLSAgICBpZiAoIXRyYXAuQGNhbGwoaGFuZGxlciwgdGFy
Z2V0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCByZWNlaXZlcikpCisgICAgaWYgKCF0cmFwLkBjYWxs
KGhhbmRsZXIsIHRhcmdldCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgQHRvVGhpcyhyZWNlaXZlcikp
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoQG11c3RWYWxpZGF0ZVJlc3VsdE9mUHJveHlH
ZXRBbmRTZXRUcmFwcyh0YXJnZXQpKQpAQCAtMTc4LDcgKzE3OCw3IEBAIGZ1bmN0aW9uIHBlcmZv
cm1Qcm94eU9iamVjdFNldFN0cmljdChwcm9wZXJ0eU5hbWUsIHJlY2VpdmVyLCB2YWx1ZSkKICAg
ICBpZiAoIUBpc0NhbGxhYmxlKHRyYXApKQogICAgICAgICBAdGhyb3dUeXBlRXJyb3IoIidzZXQn
IHByb3BlcnR5IG9mIGEgUHJveHkncyBoYW5kbGVyIHNob3VsZCBiZSBjYWxsYWJsZSIpOwogCi0g
ICAgaWYgKCF0cmFwLkBjYWxsKGhhbmRsZXIsIHRhcmdldCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwg
cmVjZWl2ZXIpKQorICAgIGlmICghdHJhcC5AY2FsbChoYW5kbGVyLCB0YXJnZXQsIHByb3BlcnR5
TmFtZSwgdmFsdWUsIEB0b1RoaXMocmVjZWl2ZXIpKSkKICAgICAgICAgQHRocm93VHlwZUVycm9y
KCJQcm94eSBvYmplY3QncyAnc2V0JyB0cmFwIHJldHVybmVkIGZhbHN5IHZhbHVlIGZvciBwcm9w
ZXJ0eSAnIiArIEBTdHJpbmcocHJvcGVydHlOYW1lKSArICInIik7CiAKICAgICBpZiAoQG11c3RW
YWxpZGF0ZVJlc3VsdE9mUHJveHlHZXRBbmRTZXRUcmFwcyh0YXJnZXQpKQpAQCAtMjA2LDcgKzIw
Niw3IEBAIGZ1bmN0aW9uIHBlcmZvcm1Qcm94eU9iamVjdFNldEJ5VmFsU2xvcHB5KHByb3BlcnR5
TmFtZSwgcmVjZWl2ZXIsIHZhbHVlKQogICAgIGlmICghQGlzQ2FsbGFibGUodHJhcCkpCiAgICAg
ICAgIEB0aHJvd1R5cGVFcnJvcigiJ3NldCcgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIg
c2hvdWxkIGJlIGNhbGxhYmxlIik7CiAKLSAgICBpZiAoIXRyYXAuQGNhbGwoaGFuZGxlciwgdGFy
Z2V0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCByZWNlaXZlcikpCisgICAgaWYgKCF0cmFwLkBjYWxs
KGhhbmRsZXIsIHRhcmdldCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgQHRvVGhpcyhyZWNlaXZlcikp
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoQG11c3RWYWxpZGF0ZVJlc3VsdE9mUHJveHlH
ZXRBbmRTZXRUcmFwcyh0YXJnZXQpKQpAQCAtMjM0LDcgKzIzNCw3IEBAIGZ1bmN0aW9uIHBlcmZv
cm1Qcm94eU9iamVjdFNldEJ5VmFsU3RyaWN0KHByb3BlcnR5TmFtZSwgcmVjZWl2ZXIsIHZhbHVl
KQogICAgIGlmICghQGlzQ2FsbGFibGUodHJhcCkpCiAgICAgICAgIEB0aHJvd1R5cGVFcnJvcigi
J3NldCcgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxhYmxlIik7
CiAKLSAgICBpZiAoIXRyYXAuQGNhbGwoaGFuZGxlciwgdGFyZ2V0LCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCByZWNlaXZlcikpCisgICAgaWYgKCF0cmFwLkBjYWxsKGhhbmRsZXIsIHRhcmdldCwgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgQHRvVGhpcyhyZWNlaXZlcikpKQogICAgICAgICBAdGhyb3dUeXBl
RXJyb3IoIlByb3h5IG9iamVjdCdzICdzZXQnIHRyYXAgcmV0dXJuZWQgZmFsc3kgdmFsdWUgZm9y
IHByb3BlcnR5ICciICsgQFN0cmluZyhwcm9wZXJ0eU5hbWUpICsgIiciKTsKIAogICAgIGlmIChA
bXVzdFZhbGlkYXRlUmVzdWx0T2ZQcm94eUdldEFuZFNldFRyYXBzKHRhcmdldCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdp
c3RyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2lj
UmVnaXN0cnkuaAppbmRleCBhZTg1Yzc1N2JlNmIuLjg3ZjllYmQ0MmMzYSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnku
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNS
ZWdpc3RyeS5oCkBAIC0xMDcsNiArMTA3LDcgQEAgZW51bSBjbGFzcyBMaW5rVGltZUNvbnN0YW50
IDogaW50MzJfdDsKICAgICBtYWNybyh0b1N0cmluZykgXAogICAgIG1hY3JvKHRvUHJvcGVydHlL
ZXkpIFwKICAgICBtYWNybyh0b09iamVjdCkgXAorICAgIG1hY3JvKHRvVGhpcykgXAogICAgIG1h
Y3JvKG11c3RWYWxpZGF0ZVJlc3VsdE9mUHJveHlHZXRBbmRTZXRUcmFwcykgXAogICAgIG1hY3Jv
KG11c3RWYWxpZGF0ZVJlc3VsdE9mUHJveHlUcmFwc0V4Y2VwdEdldEFuZFNldCkgXAogICAgIG1h
Y3JvKG5ld0FycmF5V2l0aFNpemUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVMaXN0LnJiCmluZGV4IGEyYmQzMzQwOGEwMC4uNjRlZWY4ZDk4ZDJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKQEAgLTU3
LDYgKzU3LDcgQEAgdHlwZXMgWwogICAgIDpTdHJ1Y3R1cmVDaGFpbiwKICAgICA6U3ltYm9sVGFi
bGUsCiAgICAgOlN5bWJvbFRhYmxlT3JTY29wZURlcHRoLAorICAgIDpUb1RoaXNTdGF0dXMsCiAg
ICAgOlR5cGVMb2NhdGlvbiwKICAgICA6V2FzbUJvdW5kTGFiZWwsCiAgICAgOldhdGNocG9pbnRT
ZXQsCkBAIC03MjIsNiArNzIzLDE3IEBAIG9wIDplbnVtZXJhdG9yX3B1dF9ieV92YWwsCiAgICAg
ICAgIGVudW1lcmF0b3JNZXRhZGF0YTogRW51bWVyYXRvck1ldGFkYXRhLAogICAgIH0KIAorb3Ag
OnRvX3RoaXMsCisgICAgYXJnczogeworICAgICAgICBzcmNEc3Q6IFZpcnR1YWxSZWdpc3RlciwK
KyAgICAgICAgZWNtYU1vZGU6IEVDTUFNb2RlLAorICAgICAgICB2YWx1ZVByb2ZpbGU6IHVuc2ln
bmVkLAorICAgIH0sCisgICAgbWV0YWRhdGE6IHsKKyAgICAgICAgY2FjaGVkU3RydWN0dXJlSUQ6
IFN0cnVjdHVyZUlELAorICAgICAgICB0b1RoaXNTdGF0dXM6IFRvVGhpc1N0YXR1cywKKyAgICB9
CisKIG9wIDplbnVtZXJhdG9yX2dldF9ieV92YWwsCiAgICAgYXJnczogewogICAgICAgICBkc3Q6
IFZpcnR1YWxSZWdpc3RlciwKQEAgLTc3MywxMiArNzg1LDYgQEAgb3AgOmpuZXFfcHRyLAogICAg
IH0KIAogIyBPcGNvZGVzIHdpdGhvdXQgbWV0YWRhdGEgYXJlIGxhc3QKLW9wIDp0b190aGlzLAot
ICAgIGFyZ3M6IHsKLSAgICAgICAgc3JjRHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCi0gICAgICAgIHZh
bHVlUHJvZmlsZTogdW5zaWduZWQsCi0gICAgfQotCiBvcCA6Z2V0X2FyZ3VtZW50LAogICAgIGFy
Z3M6IHsKICAgICAgICAgZHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCkBAIC0xMzkyLDggKzEzOTgsNyBA
QCBvcCA6aXNfY2VsbF93aXRoX3R5cGUsCiAgICAgYXJnczogewogICAgICAgICBkc3Q6IFZpcnR1
YWxSZWdpc3RlciwKICAgICAgICAgb3BlcmFuZDogVmlydHVhbFJlZ2lzdGVyLAotICAgICAgICBm
aXJzdFR5cGU6IEpTVHlwZSwKLSAgICAgICAgbGFzdFR5cGU6IEpTVHlwZSwKKyAgICAgICAgdHlw
ZTogSlNUeXBlLAogICAgIH0KIAogb3AgOmhhc19zdHJ1Y3R1cmVfd2l0aF9mbGFncywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggODFjZjdmZTM4
NzcxLi4wYjUyMTY5YmY4OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suY3BwCkBAIC00ODIsNiArNDgyLDcgQEAgYm9vbCBDb2RlQmxvY2s6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgU2NyaXB0RXhlY3V0YWJsZSogb3duZXJFeGVjdXRhYmxlLCBVbmxpbmsK
ICAgICAgICAgTElOSyhPcFRyeUdldEJ5SWQpCiAgICAgICAgIExJTksoT3BHZXRCeUlkRGlyZWN0
KQogICAgICAgICBMSU5LKE9wR2V0QnlWYWxXaXRoVGhpcykKKyAgICAgICAgTElOSyhPcFRvVGhp
cykKIAogICAgICAgICBMSU5LKE9wR2V0QnlJZCkKICAgICAgICAgTElOSyhPcEdldExlbmd0aCkK
QEAgLTE0ODcsNiArMTQ4OCwxNyBAQCB2b2lkIENvZGVCbG9jazo6ZmluYWxpemVMTEludElubGlu
ZUNhY2hlcygpCiAgICAgICAgICAgICBtZXRhZGF0YS5tX2JyYW5kLmNsZWFyKCk7CiAgICAgICAg
IH0pOwogCisgICAgICAgIG1fbWV0YWRhdGEtPmZvckVhY2g8T3BUb1RoaXM+KFsmXSAoYXV0byYg
bWV0YWRhdGEpIHsKKyAgICAgICAgICAgIGlmICghbWV0YWRhdGEubV9jYWNoZWRTdHJ1Y3R1cmVJ
RCB8fCB2bS5oZWFwLmlzTWFya2VkKG1ldGFkYXRhLm1fY2FjaGVkU3RydWN0dXJlSUQuZGVjb2Rl
KCkpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGlmIChPcHRpb25zOjp2
ZXJib3NlT1NSKCkpIHsKKyAgICAgICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG1l
dGFkYXRhLm1fY2FjaGVkU3RydWN0dXJlSUQuZGVjb2RlKCk7CisgICAgICAgICAgICAgICAgZGF0
YUxvZ0YoIkNsZWFyaW5nIExMSW50IHRvX3RoaXMgd2l0aCBzdHJ1Y3R1cmUgJXAuXG4iLCBzdHJ1
Y3R1cmUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbWV0YWRhdGEubV9jYWNoZWRTdHJ1
Y3R1cmVJRCA9IFN0cnVjdHVyZUlEKCk7CisgICAgICAgICAgICBtZXRhZGF0YS5tX3RvVGhpc1N0
YXR1cyA9IG1lcmdlKG1ldGFkYXRhLm1fdG9UaGlzU3RhdHVzLCBUb1RoaXNDbGVhcmVkQnlHQyk7
CisgICAgICAgIH0pOworCiAgICAgICAgIGF1dG8gY2xlYXJDYWNoZWRDYWxsZWVJZk5lY2Vzc2Fy
eSA9IFsmXShhdXRvJiBtZXRhZGF0YSwgQVNDSUlMaXRlcmFsIG5hbWUpIHsKICAgICAgICAgICAg
IGF1dG8mIGNhY2hlV3JpdGVCYXJyaWVyID0gbWV0YWRhdGEubV9jYWNoZWRDYWxsZWU7CiAgICAg
ICAgICAgICBpZiAoIWNhY2hlV3JpdGVCYXJyaWVyIHx8IGNhY2hlV3JpdGVCYXJyaWVyLnVudmFs
aWRhdGVkR2V0KCkgPT0gSlNDZWxsOjpzZWVuTXVsdGlwbGVDYWxsZWVPYmplY3RzKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAppbmRl
eCA2OGUyNWU0NmIyMjMuLmQyN2VkMTJhN2VlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCkBAIC02ODUsMTkgKzY4NSw2IEBAIFR5
cGVkQXJyYXlUeXBlIHR5cGVkQXJyYXlUeXBlRnJvbVNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBl
IHR5cGUpCiAgICAgcmV0dXJuIE5vdFR5cGVkQXJyYXk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8U3Bl
Y3VsYXRlZFR5cGU+IHNwZWN1bGF0aW9uRnJvbUpTVHlwZVJhbmdlKEpTVHlwZVJhbmdlIHJhbmdl
KQotewotICAgIHVzaW5nIEludFR5cGUgPSBzdGQ6OnVuZGVybHlpbmdfdHlwZV90PEpTVHlwZT47
Ci0gICAgc3RkOjpvcHRpb25hbDxTcGVjdWxhdGVkVHlwZT4gbWVyZ2VkU3BlY3VsYXRpb247Ci0K
LSAgICBmb3IgKEludFR5cGUgdHlwZSA9IHN0YXRpY19jYXN0PEludFR5cGU+KHJhbmdlLmZpcnN0
KTsgdHlwZSA8PSBzdGF0aWNfY2FzdDxJbnRUeXBlPihyYW5nZS5sYXN0KTsgdHlwZSsrKSB7Ci0g
ICAgICAgIGlmIChzdGQ6Om9wdGlvbmFsPFNwZWN1bGF0ZWRUeXBlPiBzcGVjdWxhdGlvbiA9IHNw
ZWN1bGF0aW9uRnJvbUpTVHlwZShzdGF0aWNfY2FzdDxKU1R5cGU+KHR5cGUpKSkKLSAgICAgICAg
ICAgIG1lcmdlZFNwZWN1bGF0aW9uID0gbWVyZ2VkU3BlY3VsYXRpb24udmFsdWVfb3IoU3BlY05v
bmUpIHwgc3BlY3VsYXRpb24udmFsdWUoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbWVyZ2VkU3Bl
Y3VsYXRpb247Ci19Ci0KIHN0ZDo6b3B0aW9uYWw8U3BlY3VsYXRlZFR5cGU+IHNwZWN1bGF0aW9u
RnJvbUpTVHlwZShKU1R5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKaW5kZXggZjU0MDc5
NjY4ZWIxLi41MzU4MjUxMTZkNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9TcGVjdWxhdGVkVHlwZS5oCkBAIC0zNiw3ICszNiw2IEBACiBuYW1lc3BhY2UgSlNDIHsK
IAogY2xhc3MgU3RydWN0dXJlOwotc3RydWN0IEpTVHlwZVJhbmdlOwogCiB0eXBlZGVmIHVpbnQ2
NF90IFNwZWN1bGF0ZWRUeXBlOwogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVj
Tm9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMDsgLy8gV2UgZG9uJ3Qga25vdyBh
bnl0aGluZyB5ZXQuCkBAIC01MzYsNyArNTM1LDYgQEAgU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRp
b25Gcm9tVmFsdWUoSlNWYWx1ZSk7CiAvLyBJZiBpdCdzIGFuIGFueUludCgpLCBpdCdsbCByZXR1
cm4gc3BlY3VsYXRlZCB0eXBlcyBmcm9tIHRoZSBJbnQ1MiBsYXR0aWNlLgogLy8gT3RoZXJ3aXNl
LCBpdCdsbCByZXR1cm4gdHlwZXMgZnJvbSB0aGUgSlNWYWx1ZSBsYXR0aWNlLgogSlNfRVhQT1JU
X1BSSVZBVEUgU3BlY3VsYXRlZFR5cGUgaW50NTJBd2FyZVNwZWN1bGF0aW9uRnJvbVZhbHVlKEpT
VmFsdWUpOwotc3RkOjpvcHRpb25hbDxTcGVjdWxhdGVkVHlwZT4gc3BlY3VsYXRpb25Gcm9tSlNU
eXBlUmFuZ2UoSlNUeXBlUmFuZ2UpOwogc3RkOjpvcHRpb25hbDxTcGVjdWxhdGVkVHlwZT4gc3Bl
Y3VsYXRpb25Gcm9tSlNUeXBlKEpTVHlwZSk7CiAKIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9u
RnJvbVR5cGVkQXJyYXlUeXBlKFR5cGVkQXJyYXlUeXBlKTsgLy8gb25seSB2YWxpZCBmb3IgdHlw
ZWQgdmlld3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVG9U
aGlzU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Ub1RoaXNTdGF0
dXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjNkMWUwODAw
NzE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Rv
VGhpc1N0YXR1cy5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVG9U
aGlzU3RhdHVzLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitUb1RoaXNTdGF0dXMgbWVyZ2UoVG9U
aGlzU3RhdHVzIGEsIFRvVGhpc1N0YXR1cyBiKQoreworICAgIHN3aXRjaCAoYSkgeworICAgIGNh
c2UgVG9UaGlzT0s6CisgICAgICAgIHJldHVybiBiOworICAgIGNhc2UgVG9UaGlzQ29uZmxpY3Rl
ZDoKKyAgICAgICAgcmV0dXJuIFRvVGhpc0NvbmZsaWN0ZWQ7CisgICAgY2FzZSBUb1RoaXNDbGVh
cmVkQnlHQzoKKyAgICAgICAgaWYgKGIgPT0gVG9UaGlzQ29uZmxpY3RlZCkKKyAgICAgICAgICAg
IHJldHVybiBUb1RoaXNDb25mbGljdGVkOworICAgICAgICByZXR1cm4gVG9UaGlzQ2xlYXJlZEJ5
R0M7CisgICAgfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIFRvVGhpc0NvbmZsaWN0ZWQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCituYW1l
c3BhY2UgV1RGIHsKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwordm9pZCBwcmludEludGVybmFs
KFByaW50U3RyZWFtJiBvdXQsIFRvVGhpc1N0YXR1cyBzdGF0dXMpCit7CisgICAgc3dpdGNoIChz
dGF0dXMpIHsKKyAgICBjYXNlIFRvVGhpc09LOgorICAgICAgICBvdXQucHJpbnQoIk9LIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICBjYXNlIFRvVGhpc0NvbmZsaWN0ZWQ6CisgICAgICAgIG91dC5w
cmludCgiQ29uZmxpY3RlZCIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBUb1RoaXNDbGVh
cmVkQnlHQzoKKyAgICAgICAgb3V0LnByaW50KCJDbGVhcmVkQnlHQyIpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdURgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvVG9UaGlzU3RhdHVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VG9UaGlzU3RhdHVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5k
ZWQwMTJhZTc2ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVG9UaGlzU3RhdHVzLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0
Zi9QcmludFN0cmVhbS5oPgorCituYW1lc3BhY2UgSlNDIHsKKworZW51bSBUb1RoaXNTdGF0dXMg
eworICAgIFRvVGhpc09LLAorICAgIFRvVGhpc0NvbmZsaWN0ZWQsCisgICAgVG9UaGlzQ2xlYXJl
ZEJ5R0MKK307CisKK1RvVGhpc1N0YXR1cyBtZXJnZShUb1RoaXNTdGF0dXMsIFRvVGhpc1N0YXR1
cyk7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCituYW1lc3BhY2UgV1RGIHsKKwordm9pZCBwcmlu
dEludGVybmFsKFByaW50U3RyZWFtJiwgSlNDOjpUb1RoaXNTdGF0dXMpOworCit9IC8vIG5hbWVz
cGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXggMmY4N2ZkOTFmMjE3Li45M2RiOWNjYmY1NzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0xODM3LDEyICsxODM3LDEyIEBAIGJvb2wgQnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRFcXVhbGl0eU9wSW1wbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQq
IHNyYzEsIFJlCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAodmFsdWUgPT0gInN0cmlu
ZyJfcykgewogICAgICAgICAgICAgICAgIHJld2luZCgpOwotICAgICAgICAgICAgICAgIE9wSXND
ZWxsV2l0aFR5cGU6OmVtaXQodGhpcywgZHN0LCBvcC5tX3ZhbHVlLCBTdHJpbmdUeXBlLCBTdHJp
bmdUeXBlKTsKKyAgICAgICAgICAgICAgICBPcElzQ2VsbFdpdGhUeXBlOjplbWl0KHRoaXMsIGRz
dCwgb3AubV92YWx1ZSwgU3RyaW5nVHlwZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAodmFsdWUgPT0gInN5bWJvbCJfcykgewog
ICAgICAgICAgICAgICAgIHJld2luZCgpOwotICAgICAgICAgICAgICAgIE9wSXNDZWxsV2l0aFR5
cGU6OmVtaXQodGhpcywgZHN0LCBvcC5tX3ZhbHVlLCBTeW1ib2xUeXBlLCBTeW1ib2xUeXBlKTsK
KyAgICAgICAgICAgICAgICBPcElzQ2VsbFdpdGhUeXBlOjplbWl0KHRoaXMsIGRzdCwgb3AubV92
YWx1ZSwgU3ltYm9sVHlwZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBpZiAodmFsdWUgPT0gImJpZ2ludCJfcykgewpAQCAtMTg1MCw3
ICsxODUwLDcgQEAgYm9vbCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEVxdWFsaXR5T3BJbXBsKFJl
Z2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjMSwgUmUKICNpZiBVU0UoQklHSU5UMzIpCiAg
ICAgICAgICAgICAgICAgT3BJc0JpZ0ludDo6ZW1pdCh0aGlzLCBkc3QsIG9wLm1fdmFsdWUpOwog
I2Vsc2UKLSAgICAgICAgICAgICAgICBPcElzQ2VsbFdpdGhUeXBlOjplbWl0KHRoaXMsIGRzdCwg
b3AubV92YWx1ZSwgSGVhcEJpZ0ludFR5cGUsIEhlYXBCaWdJbnRUeXBlKTsKKyAgICAgICAgICAg
ICAgICBPcElzQ2VsbFdpdGhUeXBlOjplbWl0KHRoaXMsIGRzdCwgb3AubV92YWx1ZSwgSGVhcEJp
Z0ludFR5cGUpOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
ICAgICB9CkBAIC0yNjU5LDM1ICsyNjU5LDYgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0
b3I6OmVtaXRHZXRGcm9tU2NvcGUoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzY28KICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1SZWdpc3RlcklEKiBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdEdldEZ1bmN0aW9uRnJvbVNjb3BlKFJlZ2lzdGVySUQqIGRzdCwgY29u
c3QgVmFyaWFibGUmIHZhcmlhYmxlLCBSZWdpc3RlcklEKiB0aGlzVmFsdWVGb3JDYWxsLCBSZWdp
c3RlcklEKiB0ZW1wKQotewotICAgIEFTU0VSVCghdmFyaWFibGUubG9jYWwoKSk7Ci0KLSAgICBS
ZWdpc3RlcklEKiBzY29wZSA9IGVtaXRSZXNvbHZlU2NvcGUobnVsbHB0ciwgdmFyaWFibGUpOwot
ICAgIGVtaXRHZXRGcm9tU2NvcGUoZHN0LCBzY29wZSwgdmFyaWFibGUsIFRocm93SWZOb3RGb3Vu
ZCk7Ci0gICAgZW1pdFREWkNoZWNrSWZOZWNlc3NhcnkodmFyaWFibGUsIGRzdCwgbnVsbHB0cik7
Ci0gICAgaWYgKGlzVGFpbnRlZEJ5V2l0aFNjb3BlKHZhcmlhYmxlKSkgewotICAgICAgICBSZWY8
TGFiZWw+IGlzTm90V2l0aFNjb3BlT2JqZWN0ID0gbmV3TGFiZWwoKTsKLSAgICAgICAgZW1pdEp1
bXBJZlRydWUoZW1pdElzQ2VsbFdpdGhUeXBlKHRlbXAsIHNjb3BlLCBKU1R5cGVSYW5nZSB7IEds
b2JhbE9iamVjdFR5cGUsIFN0cmljdEV2YWxBY3RpdmF0aW9uVHlwZSB9KSwgaXNOb3RXaXRoU2Nv
cGVPYmplY3QuZ2V0KCkpOwotICAgICAgICBtb3ZlKGtpbGwodGhpc1ZhbHVlRm9yQ2FsbCksIHNj
b3BlKTsKLSAgICAgICAgZW1pdExhYmVsKGlzTm90V2l0aFNjb3BlT2JqZWN0LmdldCgpKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIGRzdDsKLX0KLQotYm9vbCBCeXRlY29kZUdlbmVyYXRvcjo6aXNUYWlu
dGVkQnlXaXRoU2NvcGUoY29uc3QgVmFyaWFibGUmIHZhcmlhYmxlKSBjb25zdAotewotICAgIGlm
ICh2YXJpYWJsZS5vZmZzZXQoKS5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIGZvciAodW5zaWduZWQgaSA9IG1fbGV4aWNhbFNjb3BlU3RhY2suc2l6ZSgpOyBpLS07ICkg
ewotICAgICAgICBpZiAobV9sZXhpY2FsU2NvcGVTdGFja1tpXS5tX2lzV2l0aFNjb3BlKQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGxleGljYWxseVNjb3Bl
ZEZlYXR1cmVzKCkgJiBUYWludGVkQnlXaXRoU2NvcGVMZXhpY2FsbHlTY29wZWRGZWF0dXJlOwot
fQotCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dFRvU2NvcGUoUmVnaXN0
ZXJJRCogc2NvcGUsIGNvbnN0IFZhcmlhYmxlJiB2YXJpYWJsZSwgUmVnaXN0ZXJJRCogdmFsdWUs
IFJlc29sdmVNb2RlIHJlc29sdmVNb2RlLCBJbml0aWFsaXphdGlvbk1vZGUgaW5pdGlhbGl6YXRp
b25Nb2RlKQogewogICAgIHN3aXRjaCAodmFyaWFibGUub2Zmc2V0KCkua2luZCgpKSB7CkBAIC00
NzU4LDE1ICs0NzI5LDkgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZXRQ
cm9wZXJ0eUVudW1lcmF0b3IoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3QKICAgICByZXR1cm4gZHN0
OwogfQogCi1SZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdElzQ2VsbFdpdGhUeXBl
KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjLCBKU1R5cGVSYW5nZSByYW5nZSkKLXsK
LSAgICBPcElzQ2VsbFdpdGhUeXBlOjplbWl0KHRoaXMsIGRzdCwgc3JjLCByYW5nZS5maXJzdCwg
cmFuZ2UubGFzdCk7Ci0gICAgcmV0dXJuIGRzdDsKLX0KLQogUmVnaXN0ZXJJRCogQnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRJc0NlbGxXaXRoVHlwZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQq
IHNyYywgSlNUeXBlIHR5cGUpCiB7Ci0gICAgT3BJc0NlbGxXaXRoVHlwZTo6ZW1pdCh0aGlzLCBk
c3QsIHNyYywgdHlwZSwgdHlwZSk7CisgICAgT3BJc0NlbGxXaXRoVHlwZTo6ZW1pdCh0aGlzLCBk
c3QsIHNyYywgdHlwZSk7CiAgICAgcmV0dXJuIGRzdDsKIH0KIApAQCAtNTY2MiwxMCArNTYyNywx
MCBAQCB2b2lkIFN0YXRpY1Byb3BlcnR5QW5hbHlzaXM6OnJlY29yZCgpCiAgICAgfQogfQogCi12
b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0VG9UaGlzKCkKK1JlZ2lzdGVySUQqIEJ5dGVjb2Rl
R2VuZXJhdG9yOjplbWl0VG9UaGlzKFJlZ2lzdGVySUQqIHNyY0RzdCkKIHsKLSAgICBpZiAoIWVj
bWFNb2RlKCkuaXNTdHJpY3QoKSkKLSAgICAgICAgT3BUb1RoaXM6OmVtaXQodGhpcywga2lsbCgm
bV90aGlzUmVnaXN0ZXIpLCBuZXh0VmFsdWVQcm9maWxlSW5kZXgoKSk7CisgICAgT3BUb1RoaXM6
OmVtaXQodGhpcywga2lsbChzcmNEc3QpLCBlY21hTW9kZSgpLCBuZXh0VmFsdWVQcm9maWxlSW5k
ZXgoKSk7CisgICAgcmV0dXJuIHNyY0RzdDsKIH0KIAogRm9ySW5Db250ZXh0KiBCeXRlY29kZUdl
bmVyYXRvcjo6ZmluZEZvckluQ29udGV4dChSZWdpc3RlcklEKiBwcm9wZXJ0eSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
aAppbmRleCBhMTEzZGRjNTQ5MDUuLjkwNzc1ODdlMTUyOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaApAQCAtNzY2
LDYgKzc2Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdpc3RlcklEKiBlbWl0VG9O
dW1lcmljKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKTsKICAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdFRvU3RyaW5nKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKTsKICAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdFRvT2JqZWN0KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJ
RCogc3JjLCBjb25zdCBJZGVudGlmaWVyJiBtZXNzYWdlKTsKKyAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdFRvVGhpcyhSZWdpc3RlcklEKiBzcmNEc3QpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0
SW5jKFJlZ2lzdGVySUQqIHNyY0RzdCk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXREZWMoUmVn
aXN0ZXJJRCogc3JjRHN0KTsKIApAQCAtODg1LDcgKzg4Niw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0UmVzb2x2ZUNvbnN0YW50TG9jYWwoUmVnaXN0ZXJJRCog
ZHN0LCBjb25zdCBWYXJpYWJsZSYpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0UmVzb2x2ZVNj
b3BlKFJlZ2lzdGVySUQqIGRzdCwgY29uc3QgVmFyaWFibGUmKTsKICAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdEdldEZyb21TY29wZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNjb3BlLCBj
b25zdCBWYXJpYWJsZSYsIFJlc29sdmVNb2RlKTsKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEdl
dEZ1bmN0aW9uRnJvbVNjb3BlKFJlZ2lzdGVySUQqIGRzdCwgY29uc3QgVmFyaWFibGUmLCBSZWdp
c3RlcklEKiB0aGlzVmFsdWVGb3JDYWxsLCBSZWdpc3RlcklEKiB0ZW1wKTsKICAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdFB1dFRvU2NvcGUoUmVnaXN0ZXJJRCogc2NvcGUsIGNvbnN0IFZhcmlhYmxl
JiwgUmVnaXN0ZXJJRCogdmFsdWUsIFJlc29sdmVNb2RlLCBJbml0aWFsaXphdGlvbk1vZGUpOwog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0UHV0VG9TY29wZUR5bmFtaWMoUmVnaXN0ZXJJRCogc2Nv
cGUsIGNvbnN0IElkZW50aWZpZXImLCBSZWdpc3RlcklEKiB2YWx1ZSwgUmVzb2x2ZU1vZGUsIElu
aXRpYWxpemF0aW9uTW9kZSk7CiAKQEAgLTkxOCw3ICs5MTgsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgdm9pZCBlbWl0RW51bWVyYXRvck5leHQoUmVnaXN0ZXJJRCogcHJvcGVydHlOYW1l
LCBSZWdpc3RlcklEKiBtb2RlLCBSZWdpc3RlcklEKiBpbmRleCwgUmVnaXN0ZXJJRCogYmFzZSwg
UmVnaXN0ZXJJRCogZW51bWVyYXRvcik7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRFbnVtZXJh
dG9ySGFzT3duUHJvcGVydHkoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBSZWdp
c3RlcklEKiBtb2RlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eU5hbWUsIFJlZ2lzdGVySUQqIGluZGV4
LCBSZWdpc3RlcklEKiBlbnVtZXJhdG9yKTsKIAotICAgICAgICBSZWdpc3RlcklEKiBlbWl0SXND
ZWxsV2l0aFR5cGUoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMsIEpTVHlwZVJhbmdl
KTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdElzQ2VsbFdpdGhUeXBlKFJlZ2lzdGVySUQqIGRz
dCwgUmVnaXN0ZXJJRCogc3JjLCBKU1R5cGUpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0SXNH
ZW5lcmF0b3IoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpIHsgcmV0dXJuIGVtaXRJ
c0NlbGxXaXRoVHlwZShkc3QsIHNyYywgSlNHZW5lcmF0b3JUeXBlKTsgfQogICAgICAgICBSZWdp
c3RlcklEKiBlbWl0SXNJdGVyYXRvckhlbHBlcihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQq
IHNyYykgeyByZXR1cm4gZW1pdElzQ2VsbFdpdGhUeXBlKGRzdCwgc3JjLCBKU0l0ZXJhdG9ySGVs
cGVyVHlwZSk7IH0KQEAgLTExMDcsOCArMTEwNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBib29sIGlzTmV3VGFyZ2V0VXNlZEluSW5uZXJBcnJvd0Z1bmN0aW9uKCk7CiAgICAgICAgIGJv
b2wgaXNBcmd1bWVudHNVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKTsKIAotICAgICAgICB2b2lk
IGVtaXRUb1RoaXMoKTsKLSAgICAgICAgYm9vbCBpc1RhaW50ZWRCeVdpdGhTY29wZShjb25zdCBW
YXJpYWJsZSYpIGNvbnN0OworICAgICAgICB2b2lkIGVtaXRUb1RoaXMoKSB7IGVtaXRUb1RoaXMo
Jm1fdGhpc1JlZ2lzdGVyKTsgfQogCiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRNb3ZlKFJlZ2lz
dGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDYzNzk4YWQyOTY2MS4u
ZmM5M2ExYWE5OWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0zNjksMTIgKzM2OSwxMyBAQCBSZWdpc3RlcklEKiBU
YWdnZWRUZW1wbGF0ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJh
dG9yLCBSZWdpcwogICAgICAgICAgICAgdGFnID0gZ2VuZXJhdG9yLm1vdmUoZ2VuZXJhdG9yLm5l
d1RlbXBvcmFyeSgpLCBsb2NhbCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB0YWcg
PSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7Ci0gICAgICAgICAgICBiYXNlID0gZ2VuZXJhdG9y
LmVtaXRMb2FkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwganNVbmRlZmluZWQoKSk7CisgICAg
ICAgICAgICBiYXNlID0gZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpOwogCiAgICAgICAgICAgICBK
U1RleHRQb3NpdGlvbiBuZXdEaXZvdCA9IGRpdm90U3RhcnQoKSArIGlkZW50aWZpZXIubGVuZ3Ro
KCk7CiAgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKG5ld0Rpdm90LCBk
aXZvdFN0YXJ0KCksIG5ld0Rpdm90KTsKLSAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0
ZW1wID0gZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpOwotICAgICAgICAgICAgZ2VuZXJhdG9yLmVt
aXRHZXRGdW5jdGlvbkZyb21TY29wZSh0YWcuZ2V0KCksIHZhciwgYmFzZS5nZXQoKSwgdGVtcC5n
ZXQoKSk7CisgICAgICAgICAgICBnZW5lcmF0b3IubW92ZShiYXNlLmdldCgpLCBnZW5lcmF0b3Iu
ZW1pdFJlc29sdmVTY29wZShiYXNlLmdldCgpLCB2YXIpKTsKKyAgICAgICAgICAgIGdlbmVyYXRv
ci5lbWl0R2V0RnJvbVNjb3BlKHRhZy5nZXQoKSwgYmFzZS5nZXQoKSwgdmFyLCBUaHJvd0lmTm90
Rm91bmQpOworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRURFpDaGVja0lmTmVjZXNzYXJ5KHZh
ciwgdGFnLmdldCgpLCBudWxscHRyKTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAobV90YWct
PmlzQnJhY2tldEFjY2Vzc29yTm9kZSgpKSB7CiAgICAgICAgIEJyYWNrZXRBY2Nlc3Nvck5vZGUq
IGJyYWNrZXQgPSBzdGF0aWNfY2FzdDxCcmFja2V0QWNjZXNzb3JOb2RlKj4obV90YWcpOwpAQCAt
MTI3MCwxNCArMTI3MSwxOCBAQCBSZWdpc3RlcklEKiBFdmFsRnVuY3Rpb25DYWxsTm9kZTo6ZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZwogICAgICAgICBmdW5j
ID0gZ2VuZXJhdG9yLm1vdmUoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBsb2NhbC5n
ZXQoKSk7CiAgICAgfSBlbHNlCiAgICAgICAgIGZ1bmMgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5
KCk7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRlbXAgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5
KCk7CiAgICAgQ2FsbEFyZ3VtZW50cyBjYWxsQXJndW1lbnRzKGdlbmVyYXRvciwgbV9hcmdzKTsK
LSAgICBnZW5lcmF0b3IuZW1pdExvYWQoY2FsbEFyZ3VtZW50cy50aGlzUmVnaXN0ZXIoKSwganNV
bmRlZmluZWQoKSk7CiAKLSAgICBpZiAoIWxvY2FsKSB7CisgICAgaWYgKGxvY2FsKQorICAgICAg
ICBnZW5lcmF0b3IuZW1pdExvYWQoY2FsbEFyZ3VtZW50cy50aGlzUmVnaXN0ZXIoKSwganNVbmRl
ZmluZWQoKSk7CisgICAgZWxzZSB7CiAgICAgICAgIEpTVGV4dFBvc2l0aW9uIG5ld0Rpdm90ID0g
ZGl2b3RTdGFydCgpICsgNDsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhu
ZXdEaXZvdCwgZGl2b3RTdGFydCgpLCBuZXdEaXZvdCk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0
R2V0RnVuY3Rpb25Gcm9tU2NvcGUoZnVuYy5nZXQoKSwgdmFyLCBjYWxsQXJndW1lbnRzLnRoaXNS
ZWdpc3RlcigpLCB0ZW1wLmdldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLm1vdmUoCisgICAgICAg
ICAgICBjYWxsQXJndW1lbnRzLnRoaXNSZWdpc3RlcigpLAorICAgICAgICAgICAgZ2VuZXJhdG9y
LmVtaXRSZXNvbHZlU2NvcGUoY2FsbEFyZ3VtZW50cy50aGlzUmVnaXN0ZXIoKSwgdmFyKSk7Cisg
ICAgICAgIGdlbmVyYXRvci5lbWl0R2V0RnJvbVNjb3BlKGZ1bmMuZ2V0KCksIGNhbGxBcmd1bWVu
dHMudGhpc1JlZ2lzdGVyKCksIHZhciwgVGhyb3dJZk5vdEZvdW5kKTsKKyAgICAgICAgZ2VuZXJh
dG9yLmVtaXRURFpDaGVja0lmTmVjZXNzYXJ5KHZhciwgZnVuYy5nZXQoKSwgbnVsbHB0cik7CiAg
ICAgfQogCiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJldHVyblZhbHVlID0gZ2VuZXJhdG9yLmZp
bmFsRGVzdGluYXRpb24oZHN0LCBmdW5jLmdldCgpKTsKQEAgLTEzOTIsNiArMTM5Nyw4IEBAIFJl
Z2lzdGVySUQqIEZ1bmN0aW9uQ2FsbFJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwKICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShk
c3QsIGdlbmVyYXRvci5lbWl0TG9hZChudWxscHRyLCBqc1VuZGVmaW5lZCgpKSk7CiAgICAgfQog
CisgICAgRXhwZWN0ZWRGdW5jdGlvbiBleHBlY3RlZEZ1bmN0aW9uID0gZ2VuZXJhdG9yLmV4cGVj
dGVkRnVuY3Rpb25Gb3JJZGVudGlmaWVyKG1faWRlbnQpOworCiAgICAgVmFyaWFibGUgdmFyID0g
Z2VuZXJhdG9yLnZhcmlhYmxlKG1faWRlbnQpOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBsb2Nh
bCA9IHZhci5sb2NhbCgpOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBmdW5jOwpAQCAtMTQwMywx
NyArMTQxMCwyMSBAQCBSZWdpc3RlcklEKiBGdW5jdGlvbkNhbGxSZXNvbHZlTm9kZTo6ZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsCiAgICAgICAgICAgICBmdW5jID0g
bG9jYWw7CiAgICAgfSBlbHNlCiAgICAgICAgIGZ1bmMgPSBnZW5lcmF0b3IudGVtcERlc3RpbmF0
aW9uKGRzdCk7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRlbXAgPSBnZW5lcmF0b3IubmV3VGVt
cG9yYXJ5KCk7CiAgICAgQ2FsbEFyZ3VtZW50cyBjYWxsQXJndW1lbnRzKGdlbmVyYXRvciwgbV9h
cmdzKTsKLSAgICBnZW5lcmF0b3IuZW1pdExvYWQoY2FsbEFyZ3VtZW50cy50aGlzUmVnaXN0ZXIo
KSwganNVbmRlZmluZWQoKSk7CiAKLSAgICAvLyBXZSBleHBlY3QgdGhhdCBpZiB0aGUgZnVuY3Rp
b24gaXMgaW4gYSBsb2NhbCB2YXJpYWJsZSwgdGhlbiBpdCdzIG5vdCBvbmUgb2Ygb3VyIGJ1aWx0
LWluIGNvbnN0cnVjdG9ycy4KLSAgICBFeHBlY3RlZEZ1bmN0aW9uIGV4cGVjdGVkRnVuY3Rpb24g
PSBOb0V4cGVjdGVkRnVuY3Rpb247Ci0gICAgaWYgKCFsb2NhbCkgewotICAgICAgICBleHBlY3Rl
ZEZ1bmN0aW9uID0gZ2VuZXJhdG9yLmV4cGVjdGVkRnVuY3Rpb25Gb3JJZGVudGlmaWVyKG1faWRl
bnQpOworICAgIGlmIChsb2NhbCkgeworICAgICAgICBnZW5lcmF0b3IuZW1pdExvYWQoY2FsbEFy
Z3VtZW50cy50aGlzUmVnaXN0ZXIoKSwganNVbmRlZmluZWQoKSk7CisgICAgICAgIC8vIFRoaXMg
cGFzc2VzIE5vRXhwZWN0ZWRGdW5jdGlvbiBiZWNhdXNlIHdlIGV4cGVjdCB0aGF0IGlmIHRoZSBm
dW5jdGlvbiBpcyBpbiBhCisgICAgICAgIC8vIGxvY2FsIHZhcmlhYmxlLCB0aGVuIGl0J3Mgbm90
IG9uZSBvZiBvdXIgYnVpbHQtaW4gY29uc3RydWN0b3JzLgorICAgICAgICBleHBlY3RlZEZ1bmN0
aW9uID0gTm9FeHBlY3RlZEZ1bmN0aW9uOworICAgIH0gZWxzZSB7CiAgICAgICAgIEpTVGV4dFBv
c2l0aW9uIG5ld0Rpdm90ID0gZGl2b3RTdGFydCgpICsgbV9pZGVudC5sZW5ndGgoKTsKICAgICAg
ICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhuZXdEaXZvdCwgZGl2b3RTdGFydCgpLCBu
ZXdEaXZvdCk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0R2V0RnVuY3Rpb25Gcm9tU2NvcGUoZnVu
Yy5nZXQoKSwgdmFyLCBjYWxsQXJndW1lbnRzLnRoaXNSZWdpc3RlcigpLCB0ZW1wLmdldCgpKTsK
KyAgICAgICAgZ2VuZXJhdG9yLm1vdmUoCisgICAgICAgICAgICBjYWxsQXJndW1lbnRzLnRoaXNS
ZWdpc3RlcigpLAorICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRSZXNvbHZlU2NvcGUoY2FsbEFy
Z3VtZW50cy50aGlzUmVnaXN0ZXIoKSwgdmFyKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0R2V0
RnJvbVNjb3BlKGZ1bmMuZ2V0KCksIGNhbGxBcmd1bWVudHMudGhpc1JlZ2lzdGVyKCksIHZhciwg
VGhyb3dJZk5vdEZvdW5kKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRURFpDaGVja0lmTmVjZXNz
YXJ5KHZhciwgZnVuYy5nZXQoKSwgbnVsbHB0cik7CiAgICAgfQogCiAgICAgUmVmUHRyPFJlZ2lz
dGVySUQ+IHJldHVyblZhbHVlID0gZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0LCBmdW5j
LmdldCgpKTsKQEAgLTIxOTksNiArMjIxMCwxNSBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUludHJp
bnNpY05vZGU6OmVtaXRfaW50cmluc2ljX3RvT2JqZWN0KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZQog
ICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIGdlbmVyYXRvci5lbWl0VG9PYmplY3QodGVt
cC5nZXQoKSwgc3JjLmdldCgpLCBnZW5lcmF0b3Iudm0oKS5wcm9wZXJ0eU5hbWVzLT5lbXB0eUlk
ZW50aWZpZXIpKTsKIH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0
X2ludHJpbnNpY190b1RoaXMoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJ
RCogZHN0KQoreworICAgIEFyZ3VtZW50TGlzdE5vZGUqIG5vZGUgPSBtX2FyZ3MtPm1fbGlzdE5v
ZGU7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNyYyA9IGdlbmVyYXRvci5lbWl0Tm9kZShub2Rl
KTsKKyAgICBBU1NFUlQoIW5vZGUtPm1fbmV4dCk7CisKKyAgICByZXR1cm4gZ2VuZXJhdG9yLm1v
dmUoZHN0LCBnZW5lcmF0b3IuZW1pdFRvVGhpcyhzcmMuZ2V0KCkpKTsKK30KKwogUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19pZFdpdGhQcm9maWxlKEJ5
dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKICAgICBBcmd1
bWVudExpc3ROb2RlKiBub2RlID0gbV9hcmdzLT5tX2xpc3ROb2RlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAKaW5kZXggYzky
MTg0NTU5NDNlLi5jZWM2ODhmYWQyNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcApAQCAtMTk3LDkgKzE5NywxMCBAQCBK
U1ZhbHVlIERlYnVnZ2VyQ2FsbEZyYW1lOjp0aGlzVmFsdWUoVk0mIHZtKSBjb25zdAogICAgIGlm
ICghdGhpc1ZhbHVlKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAorICAgIEVDTUFN
b2RlIGVjbWFNb2RlID0gRUNNQU1vZGU6OnNsb3BweSgpOwogICAgIGlmIChjb2RlQmxvY2sgJiYg
Y29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKS0+aXNJblN0cmljdENvbnRleHQoKSkKLSAgICAg
ICAgcmV0dXJuIHRoaXNWYWx1ZTsKLSAgICByZXR1cm4gdGhpc1ZhbHVlLnRvU2xvcHB5TW9kZVRo
aXMobV92YWxpZE1hY2hpbmVGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOworICAgICAg
ICBlY21hTW9kZSA9IEVDTUFNb2RlOjpzdHJpY3QoKTsKKyAgICByZXR1cm4gdGhpc1ZhbHVlLnRv
VGhpcyhtX3ZhbGlkTWFjaGluZUZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSwgZWNtYU1v
ZGUpOwogfQogCiAvLyBFdmFsdWF0ZSBzb21lIEphdmFTY3JpcHQgY29kZSBpbiB0aGUgc2NvcGUg
b2YgdGhpcyBmcmFtZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCBmMjM1MTdmMDVlYzcuLmRhYjg1
NTU4OWI3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMTk0LDYgKzE5NCw3MCBAQCB2b2lkIEFi
c3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+Ojp2ZXJpZnlFZGdlcyhOb2RlKiBu
b2RlKQogICAgIERGR19OT0RFX0RPX1RPX0NISUxEUkVOKG1fZ3JhcGgsIG5vZGUsIHZlcmlmeUVk
Z2UpOwogfQogCitlbnVtIGNsYXNzIFRvVGhpc1Jlc3VsdCB7CisgICAgSWRlbnRpdHksCisgICAg
VW5kZWZpbmVkLAorICAgIEdsb2JhbFRoaXMsCisgICAgRHluYW1pYywKK307CitpbmxpbmUgVG9U
aGlzUmVzdWx0IGlzVG9UaGlzQW5JZGVudGl0eShFQ01BTW9kZSBlY21hTW9kZSwgQWJzdHJhY3RW
YWx1ZSYgdmFsdWVGb3JOb2RlKQoreworICAgIC8vIFdlIGxvb2sgYXQgdGhlIHR5cGUgZmlyc3Qg
c2luY2UgdGhhdCB3aWxsIGNvdmVyIG1vc3QgY2FzZXMgYW5kIGRvZXMgbm90IHJlcXVpcmUgaXRl
cmF0aW5nIGFsbCB0aGUgc3RydWN0dXJlcy4KKyAgICBpZiAoZWNtYU1vZGUuaXNTdHJpY3QoKSkg
eworICAgICAgICBpZiAodmFsdWVGb3JOb2RlLm1fdHlwZSAmJiAhKHZhbHVlRm9yTm9kZS5tX3R5
cGUgJiBTcGVjT2JqZWN0T3RoZXIpKQorICAgICAgICAgICAgcmV0dXJuIFRvVGhpc1Jlc3VsdDo6
SWRlbnRpdHk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHZhbHVlRm9yTm9kZS5tX3R5cGUg
JiYgISh2YWx1ZUZvck5vZGUubV90eXBlICYgKH5TcGVjT2JqZWN0IHwgU3BlY09iamVjdE90aGVy
KSkpCisgICAgICAgICAgICByZXR1cm4gVG9UaGlzUmVzdWx0OjpJZGVudGl0eTsKKyAgICB9CisK
KyAgICBpZiAoSlNWYWx1ZSB2YWx1ZSA9IHZhbHVlRm9yTm9kZS52YWx1ZSgpKSB7CisgICAgICAg
IGlmICh2YWx1ZS5pc0NlbGwoKSkgeworICAgICAgICAgICAgaWYgKHZhbHVlLmFzQ2VsbCgpLT5p
c09iamVjdCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmFzQ2VsbCgpLT5pbmhlcml0
czxKU1Njb3BlPigpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChlY21hTW9kZS5pc1N0cmlj
dCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRvVGhpc1Jlc3VsdDo6VW5kZWZp
bmVkOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gVG9UaGlzUmVzdWx0OjpHbG9iYWxUaGlz
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gVG9UaGlzUmVzdWx0
OjpJZGVudGl0eTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGJvb2wg
b25seU9iamVjdHMgPSB2YWx1ZUZvck5vZGUubV90eXBlICYmICEodmFsdWVGb3JOb2RlLm1fdHlw
ZSAmIH5TcGVjT2JqZWN0KTsKKyAgICBpZiAoKGVjbWFNb2RlLmlzU3RyaWN0KCkgfHwgb25seU9i
amVjdHMpICYmIHZhbHVlRm9yTm9kZS5tX3N0cnVjdHVyZS5pc0Zpbml0ZSgpKSB7CisgICAgICAg
IGJvb2wgYWxsU3RydWN0dXJlc0FyZUpTU2NvcGUgPSAhdmFsdWVGb3JOb2RlLm1fc3RydWN0dXJl
LmlzQ2xlYXIoKTsKKyAgICAgICAgYm9vbCBvdmVycmlkZXNUb1RoaXMgPSBmYWxzZTsKKyAgICAg
ICAgdmFsdWVGb3JOb2RlLm1fc3RydWN0dXJlLmZvckVhY2goWyZdKFJlZ2lzdGVyZWRTdHJ1Y3R1
cmUgc3RydWN0dXJlKSB7CisgICAgICAgICAgICBUeXBlSW5mbyB0eXBlID0gc3RydWN0dXJlLT50
eXBlSW5mbygpOworICAgICAgICAgICAgQVNTRVJUKHR5cGUuaXNPYmplY3QoKSB8fCB0eXBlLnR5
cGUoKSA9PSBTdHJpbmdUeXBlIHx8IHR5cGUudHlwZSgpID09IFN5bWJvbFR5cGUgfHwgdHlwZS50
eXBlKCkgPT0gSGVhcEJpZ0ludFR5cGUpOworICAgICAgICAgICAgaWYgKCFlY21hTW9kZS5pc1N0
cmljdCgpKQorICAgICAgICAgICAgICAgIEFTU0VSVCh0eXBlLmlzT2JqZWN0KCkpOworICAgICAg
ICAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBzdHJpbmdzL3N5bWJvbHMgaGVy
ZSBzaW5jZSBlaXRoZXI6CisgICAgICAgICAgICAvLyAxKSBXZSBhcmUgaW4gc3RyaWN0IG1vZGUg
YW5kIHN0cmluZ3Mvc3ltYm9scyBhcmUgbm90IHdyYXBwZWQKKyAgICAgICAgICAgIC8vIDIpIFRo
ZSBBSSBoYXMgcHJvdmVuIHRoYXQgdGhlIHR5cGUgb2YgdGhpcyBpcyBhIHN1YnR5cGUgb2Ygb2Jq
ZWN0CisgICAgICAgICAgICBpZiAodHlwZS5pc09iamVjdCgpICYmIChGaXJzdFNjb3BlVHlwZSA8
PSB0eXBlLnR5cGUoKSAmJiB0eXBlLnR5cGUoKSA8PSBMYXN0U2NvcGVUeXBlKSkKKyAgICAgICAg
ICAgICAgICBvdmVycmlkZXNUb1RoaXMgPSB0cnVlOworCisgICAgICAgICAgICAvLyBJZiBhbGwg
dGhlIHN0cnVjdHVyZXMgYXJlIEpTU2NvcGUncyBvbmVzLCB3ZSBrbm93IHRoZSBkZXRhaWxzIG9m
IEpTU2NvcGU6OnRvVGhpcygpIG9wZXJhdGlvbi4KKyAgICAgICAgICAgIGFsbFN0cnVjdHVyZXNB
cmVKU1Njb3BlICY9IHN0cnVjdHVyZS0+Y2xhc3NJbmZvRm9yQ2VsbHMoKS0+aXNTdWJDbGFzc09m
KEpTU2NvcGU6OmluZm8oKSk7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIFRoaXMgaXMgY29y
cmVjdCBmb3Igc3RyaWN0IG1vZGUgZXZlbiBpZiB0aGlzIGNhbiBoYXZlIG5vbiBvYmplY3RzLCBz
aW5jZSB0aGUgcmlnaHQgc2VtYW50aWNzIGlzIElkZW50aXR5LgorICAgICAgICBpZiAoIW92ZXJy
aWRlc1RvVGhpcykKKyAgICAgICAgICAgIHJldHVybiBUb1RoaXNSZXN1bHQ6OklkZW50aXR5Owor
CisgICAgICAgIC8vIEJ1dCB0aGlzIGZvbGRpbmcgaXMgYXZhaWxhYmxlIG9ubHkgaWYgaW5wdXQg
aXMgYWx3YXlzIGFuIG9iamVjdC4KKyAgICAgICAgaWYgKG9ubHlPYmplY3RzICYmIGFsbFN0cnVj
dHVyZXNBcmVKU1Njb3BlKSB7CisgICAgICAgICAgICBpZiAoZWNtYU1vZGUuaXNTdHJpY3QoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gVG9UaGlzUmVzdWx0OjpVbmRlZmluZWQ7CisgICAgICAg
ICAgICByZXR1cm4gVG9UaGlzUmVzdWx0OjpHbG9iYWxUaGlzOworICAgICAgICB9CisgICAgfQor
CisgICAgcmV0dXJuIFRvVGhpc1Jlc3VsdDo6RHluYW1pYzsKK30KKwogdGVtcGxhdGU8dHlwZW5h
bWUgQWJzdHJhY3RTdGF0ZVR5cGU+CiBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RT
dGF0ZVR5cGU+OjpoYW5kbGVDb25zdGFudEJpbmFyeUJpdHdpc2VPcChOb2RlKiBub2RlKQogewpA
QCAtMTY0NSw3ICsxNzA5LDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3Rh
dGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgICAg
IGJvb2wgY29uc3RhbnRXYXNTZXQgPSB0cnVlOwogICAgICAgICAgICAgc3dpdGNoIChub2RlLT5v
cCgpKSB7CiAgICAgICAgICAgICBjYXNlIElzQ2VsbFdpdGhUeXBlOgotICAgICAgICAgICAgICAg
IHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihjaGlsZC52YWx1ZSgpLmlzQ2VsbCgpICYmIG5v
ZGUtPnF1ZXJpZWRUeXBlKCkuY29udGFpbnMoY2hpbGQudmFsdWUoKS5hc0NlbGwoKS0+dHlwZSgp
KSkpOworICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihjaGlsZC52
YWx1ZSgpLmlzQ2VsbCgpICYmIGNoaWxkLnZhbHVlKCkuYXNDZWxsKCktPnR5cGUoKSA9PSBub2Rl
LT5xdWVyaWVkVHlwZSgpKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIFR5cGVPZklzVW5kZWZpbmVkOgogICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUs
IGpzQm9vbGVhbigKQEAgLTE3MjYsNyArMTc5MCw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRl
cjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1p
CiAgICAgICAgICAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcmVzdWx0OwogICAgICAg
ICAgICAgICAgICAgICBjaGlsZC5tX3N0cnVjdHVyZS5mb3JFYWNoKAogICAgICAgICAgICAgICAg
ICAgICAgICAgWyZdIChSZWdpc3RlcmVkU3RydWN0dXJlIHN0cnVjdHVyZSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgbWF0Y2hlZCA9IG5vZGUtPnF1ZXJpZWRUeXBlKCkuY29u
dGFpbnMoc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYm9vbCBtYXRjaGVkID0gc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBu
b2RlLT5xdWVyaWVkVHlwZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVz
dWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBtYXRjaGVkOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewpAQCAtMzM4NSwxOCArMzQ0OSwzMSBA
QCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZm
ZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogCiAgICAgY2FzZSBUb1RoaXM6IHsKICAgICAgICAg
QWJzdHJhY3RWYWx1ZSYgc291cmNlID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAg
IGlmICghKHNvdXJjZS5tX3R5cGUgJiB+U3BlY09iamVjdCkpIHsKKyAgICAgICAgQWJzdHJhY3RW
YWx1ZSYgZGVzdGluYXRpb24gPSBmb3JOb2RlKG5vZGUpOworICAgICAgICBFQ01BTW9kZSBlY21h
TW9kZSA9IG5vZGUtPmVjbWFNb2RlKCk7CisKKyAgICAgICAgVG9UaGlzUmVzdWx0IHJlc3VsdCA9
IGlzVG9UaGlzQW5JZGVudGl0eShlY21hTW9kZSwgc291cmNlKTsKKyAgICAgICAgc3dpdGNoIChy
ZXN1bHQpIHsKKyAgICAgICAgY2FzZSBUb1RoaXNSZXN1bHQ6OklkZW50aXR5OgogICAgICAgICAg
ICAgbV9zdGF0ZS5zZXRTaG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7Ci0gICAgICAgICAg
ICBzZXRGb3JOb2RlKG5vZGUsIHNvdXJjZSk7CisgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHNv
dXJjZTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGlmICghKHNvdXJj
ZS5tX3R5cGUgJiB+U3BlY090aGVyKSkgeworICAgICAgICBjYXNlIFRvVGhpc1Jlc3VsdDo6VW5k
ZWZpbmVkOgorICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNVbmRlZmluZWQoKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUb1RoaXNSZXN1bHQ6Okdsb2JhbFRoaXM6
CiAgICAgICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsK
LSAgICAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNHbG9iYWxQcm94eSk7CisgICAg
ICAgICAgICBkZXN0aW5hdGlvbi5zZXRUeXBlKG1fZ3JhcGgsIFNwZWNPYmplY3QpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVG9UaGlzUmVzdWx0OjpEeW5hbWljOgorICAgICAg
ICAgICAgaWYgKGVjbWFNb2RlLmlzU3RyaWN0KCkpCisgICAgICAgICAgICAgICAgZGVzdGluYXRp
b24ubWFrZUhlYXBUb3AoKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGRl
c3RpbmF0aW9uID0gc291cmNlOworICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uLm1lcmdlKFNw
ZWNPYmplY3QpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
LQotICAgICAgICBzZXRUeXBlRm9yTm9kZShub2RlLCBTcGVjT2JqZWN0KTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCmluZGV4IDdjMjEyNGE2MTQ1OC4uY2M1MDA2NDdiMDVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMjU5Myw3ICsy
NTkzLDcgQEAgYXV0byBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbChOb2RlKiBj
YWxsZWUsIE9wZXJhbmQgcmVzdWx0T3BlcmFuZCwgQ2EKICAgICAgICAgICAgIC8vIEFkZCB0aGUg
Y29uc3RhbnQgYmVmb3JlIGV4aXQgYmVjb21lcyBpbnZhbGlkIGJlY2F1c2Ugd2UgbWF5IHdhbnQg
dG8gaW5zZXJ0IChyZWR1bmRhbnQpIGNoZWNrcyBvbiBpdCBpbiBGaXh1cC4KICAgICAgICAgICAg
IE5vZGUqIGtpbmROb2RlID0ganNDb25zdGFudChqc051bWJlcihzdGF0aWNfY2FzdDx1aW50MzJf
dD4oKmtpbmQpKSk7CiAKLSAgICAgICAgICAgIE5vZGUqIHRoaXNWYWx1ZSA9IGdldCh2aXJ0dWFs
UmVnaXN0ZXJGb3JBcmd1bWVudEluY2x1ZGluZ1RoaXMoMCwgcmVnaXN0ZXJPZmZzZXQpKTsKKyAg
ICAgICAgICAgIE5vZGUqIHRoaXNWYWx1ZSA9IGFkZFRvR3JhcGgoVG9UaGlzLCBPcEluZm8oRUNN
QU1vZGU6OnN0cmljdCgpKSwgT3BJbmZvKGdldFByZWRpY3Rpb24oKSksIGdldCh2aXJ0dWFsUmVn
aXN0ZXJGb3JBcmd1bWVudEluY2x1ZGluZ1RoaXMoMCwgcmVnaXN0ZXJPZmZzZXQpKSk7CiAgICAg
ICAgICAgICAvLyBXZSBkb24ndCBoYXZlIGFuIGV4aXN0aW5nIGVycm9yIHN0cmluZy4KICAgICAg
ICAgICAgIHVuc2lnbmVkIGVycm9yU3RyaW5nSW5kZXggPSBVSU5UMzJfTUFYOwogICAgICAgICAg
ICAgTm9kZSogb2JqZWN0ID0gYWRkVG9HcmFwaChUb09iamVjdCwgT3BJbmZvKGVycm9yU3RyaW5n
SW5kZXgpLCBPcEluZm8oU3BlY05vbmUpLCB0aGlzVmFsdWUpOwpAQCAtNDI1OCw3ICs0MjU4LDgg
QEAgYXV0byBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbChOb2RlKiBjYWxsZWUs
IE9wZXJhbmQgcmVzdWx0T3BlcmFuZCwgQ2EKICAgICAgICAgY2FzZSBBc3luY0l0ZXJhdG9ySW50
cmluc2ljOgogICAgICAgICBjYXNlIEl0ZXJhdG9ySW50cmluc2ljOiB7CiAgICAgICAgICAgICBp
bnNlcnRDaGVja3MoKTsKLSAgICAgICAgICAgIHNldFJlc3VsdChnZXQodmlydHVhbFJlZ2lzdGVy
Rm9yQXJndW1lbnRJbmNsdWRpbmdUaGlzKDAsIHJlZ2lzdGVyT2Zmc2V0KSkpOworICAgICAgICAg
ICAgTm9kZSogdGhpc05vZGUgPSBnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnRJbmNsdWRp
bmdUaGlzKDAsIHJlZ2lzdGVyT2Zmc2V0KSk7CisgICAgICAgICAgICBzZXRSZXN1bHQoYWRkVG9H
cmFwaChUb1RoaXMsIE9wSW5mbyhFQ01BTW9kZTo6c3RyaWN0KCkpLCBPcEluZm8ocHJlZGljdGlv
biksIHRoaXNOb2RlKSk7CiAgICAgICAgICAgICByZXR1cm4gQ2FsbE9wdGltaXphdGlvblJlc3Vs
dDo6SW5saW5lZDsKICAgICAgICAgfQogCkBAIC00NDU3LDcgKzQ0NTgsNyBAQCBib29sIEJ5dGVD
b2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNHZXR0ZXIoT3BlcmFuZCByZXN1bHQsIFNwZWN1bGF0
ZWRUeXBlIHByZWRpYwogCiAgICAgY2FzZSBTcGVjaWVzR2V0dGVySW50cmluc2ljOiB7CiAgICAg
ICAgIGluc2VydENoZWNrcygpOwotICAgICAgICBzZXQocmVzdWx0LCB0aGlzTm9kZSk7CisgICAg
ICAgIHNldChyZXN1bHQsIGFkZFRvR3JhcGgoVG9UaGlzLCBPcEluZm8oRUNNQU1vZGU6OnN0cmlj
dCgpKSwgT3BJbmZvKHByZWRpY3Rpb24pLCB0aGlzTm9kZSkpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKQEAgLTY0OTMsNyArNjQ5NCwyNSBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2Ugb3Bf
dG9fdGhpczogewogICAgICAgICAgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlv
bi0+YXM8T3BUb1RoaXM+KCk7Ci0gICAgICAgICAgICBzZXQoYnl0ZWNvZGUubV9zcmNEc3QsIGFk
ZFRvR3JhcGgoVG9UaGlzLCBPcEluZm8oMCksIE9wSW5mbyhnZXRQcmVkaWN0aW9uV2l0aG91dE9T
UkV4aXQoKSksIGdldChWaXJ0dWFsUmVnaXN0ZXIoYnl0ZWNvZGUubV9zcmNEc3QpKSkpOworICAg
ICAgICAgICAgTm9kZSogb3AxID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihieXRlY29kZS5tX3NyY0Rz
dCkpOworICAgICAgICAgICAgYXV0byYgbWV0YWRhdGEgPSBieXRlY29kZS5tZXRhZGF0YShjb2Rl
QmxvY2spOworICAgICAgICAgICAgU3RydWN0dXJlSUQgY2FjaGVkU3RydWN0dXJlSUQgPSBtZXRh
ZGF0YS5tX2NhY2hlZFN0cnVjdHVyZUlEOworICAgICAgICAgICAgU3RydWN0dXJlKiBjYWNoZWRT
dHJ1Y3R1cmUgPSBudWxscHRyOworICAgICAgICAgICAgaWYgKGNhY2hlZFN0cnVjdHVyZUlEKQor
ICAgICAgICAgICAgICAgIGNhY2hlZFN0cnVjdHVyZSA9IGNhY2hlZFN0cnVjdHVyZUlELmRlY29k
ZSgpOworICAgICAgICAgICAgaWYgKG1ldGFkYXRhLm1fdG9UaGlzU3RhdHVzICE9IFRvVGhpc09L
CisgICAgICAgICAgICAgICAgfHwgIWNhY2hlZFN0cnVjdHVyZQorICAgICAgICAgICAgICAgIHx8
ICFjYWNoZWRTdHJ1Y3R1cmUtPmNsYXNzSW5mb0ZvckNlbGxzKCktPmlzU3ViQ2xhc3NPZihKU09i
amVjdDo6aW5mbygpKQorICAgICAgICAgICAgICAgIHx8IGNhY2hlZFN0cnVjdHVyZS0+Y2xhc3NJ
bmZvRm9yQ2VsbHMoKS0+aXNTdWJDbGFzc09mKEpTU2NvcGU6OmluZm8oKSkKKyAgICAgICAgICAg
ICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3Vy
cmVudEluZGV4LCBCYWRDYWNoZSkKKyAgICAgICAgICAgICAgICB8fCAob3AxLT5vcCgpID09IEdl
dExvY2FsICYmIG9wMS0+dmFyaWFibGVBY2Nlc3NEYXRhKCktPnN0cnVjdHVyZUNoZWNrSG9pc3Rp
bmdGYWlsZWQoKSkpIHsKKyAgICAgICAgICAgICAgICBzZXQoYnl0ZWNvZGUubV9zcmNEc3QsIGFk
ZFRvR3JhcGgoVG9UaGlzLCBPcEluZm8oYnl0ZWNvZGUubV9lY21hTW9kZSksIE9wSW5mbyhnZXRQ
cmVkaWN0aW9uKCkpLCBvcDEpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgYWRkVG9HcmFwaCgKKyAgICAgICAgICAgICAgICAgICAgQ2hlY2tTdHJ1Y3R1cmUsCisgICAg
ICAgICAgICAgICAgICAgIE9wSW5mbyhtX2dyYXBoLmFkZFN0cnVjdHVyZVNldChjYWNoZWRTdHJ1
Y3R1cmUpKSwKKyAgICAgICAgICAgICAgICAgICAgb3AxKTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIE5FWFRfT1BDT0RFKG9wX3RvX3RoaXMpOwogICAgICAgICB9CiAKQEAgLTcyNzIsNyAr
NzI5MSw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQp
CiAgICAgICAgIGNhc2Ugb3BfaXNfY2VsbF93aXRoX3R5cGU6IHsKICAgICAgICAgICAgIGF1dG8g
Ynl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSXNDZWxsV2l0aFR5cGU+KCk7CiAg
ICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IGdldChieXRlY29kZS5tX29wZXJhbmQpOwotICAgICAg
ICAgICAgc2V0KGJ5dGVjb2RlLm1fZHN0LCBhZGRUb0dyYXBoKElzQ2VsbFdpdGhUeXBlLCBPcElu
Zm8oSlNUeXBlUmFuZ2UgeyBieXRlY29kZS5tX2ZpcnN0VHlwZSwgYnl0ZWNvZGUubV9sYXN0VHlw
ZSB9KSwgdmFsdWUpKTsKKyAgICAgICAgICAgIHNldChieXRlY29kZS5tX2RzdCwgYWRkVG9HcmFw
aChJc0NlbGxXaXRoVHlwZSwgT3BJbmZvKGJ5dGVjb2RlLm1fdHlwZSksIHZhbHVlKSk7CiAgICAg
ICAgICAgICBORVhUX09QQ09ERShvcF9pc19jZWxsX3dpdGhfdHlwZSk7CiAgICAgICAgIH0KIApA
QCAtODUyOCw3ICs4NTQ3LDcgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNp
Z25lZCBsaW1pdCkKICAgICAgICAgICAgICAgICAgICAgZ2VuZXJpY0Jsb2NrID0gYWxsb2NhdGVV
bnRhcmdldGFibGVCbG9jaygpOwogCiAgICAgICAgICAgICAgICAgICAgIE5vZGUqIGlzS25vd25J
dGVyRnVuY3Rpb24gPSBhZGRUb0dyYXBoKENvbXBhcmVFcVB0ciwgT3BJbmZvKGZyb3plblN5bWJv
bEl0ZXJhdG9yRnVuY3Rpb24pLCBzeW1ib2xJdGVyYXRvcik7Ci0gICAgICAgICAgICAgICAgICAg
IE5vZGUqIGlzQXJyYXkgPSBhZGRUb0dyYXBoKElzQ2VsbFdpdGhUeXBlLCBPcEluZm8oSlNUeXBl
UmFuZ2UgeyBBcnJheVR5cGUsIEFycmF5VHlwZSB9KSwgZ2V0KGJ5dGVjb2RlLm1faXRlcmFibGUp
KTsKKyAgICAgICAgICAgICAgICAgICAgTm9kZSogaXNBcnJheSA9IGFkZFRvR3JhcGgoSXNDZWxs
V2l0aFR5cGUsIE9wSW5mbyhBcnJheVR5cGUpLCBnZXQoYnl0ZWNvZGUubV9pdGVyYWJsZSkpOwog
CiAgICAgICAgICAgICAgICAgICAgIEJyYW5jaERhdGEqIGJyYW5jaERhdGEgPSBtX2dyYXBoLm1f
YnJhbmNoRGF0YS5hZGQoKTsKICAgICAgICAgICAgICAgICAgICAgYnJhbmNoRGF0YS0+dGFrZW4g
PSBCcmFuY2hUYXJnZXQoZmFzdEFycmF5QmxvY2spOwpAQCAtOTEwNyw3ICs5MTI2LDcgQEAgdm9p
ZCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAg
ICAgICAgICAgfHwgc3RhdHVzLm51bVZhcmlhbnRzKCkgIT0gMQogICAgICAgICAgICAgICAgICAg
ICB8fCBzdGF0dXNbMF0uc3RydWN0dXJlU2V0KCkuc2l6ZSgpICE9IDEpIHsKICAgICAgICAgICAg
ICAgICAgICAgYXV0byogZGF0YSA9IG1fZ3JhcGgubV9nZXRCeUlkRGF0YS5hZGQoR2V0QnlJZERh
dGEgeyBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2Rl
QmxvY2sobV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLCB1aWQpLCBDYWNoZVR5cGU6
OkdldEJ5SWRTZWxmIH0pOwotICAgICAgICAgICAgICAgICAgICBzZXQoYnl0ZWNvZGUubV9kc3Qs
IGFkZFRvR3JhcGgoR2V0QnlJZEZsdXNoLCBPcEluZm8oZGF0YSksIE9wSW5mbyhwcmVkaWN0aW9u
KSwgd2Vha0pTQ29uc3RhbnQoZ2xvYmFsT2JqZWN0LT5nbG9iYWxUaGlzKCkpKSk7CisgICAgICAg
ICAgICAgICAgICAgIHNldChieXRlY29kZS5tX2RzdCwgYWRkVG9HcmFwaChHZXRCeUlkRmx1c2gs
IE9wSW5mbyhkYXRhKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBnZXQoYnl0ZWNvZGUubV9zY29wZSkp
KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogCkBAIC05
MjkyLDcgKzkzMTEsNyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVk
IGxpbWl0KQogICAgICAgICAgICAgICAgIGlmIChzdGF0dXMubnVtVmFyaWFudHMoKSAhPSAxCiAg
ICAgICAgICAgICAgICAgICAgIHx8IHN0YXR1c1swXS5raW5kKCkgIT0gUHV0QnlWYXJpYW50OjpS
ZXBsYWNlCiAgICAgICAgICAgICAgICAgICAgIHx8IHN0YXR1c1swXS5zdHJ1Y3R1cmUoKS5zaXpl
KCkgIT0gMSkgewotICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKFB1dEJ5SWQsIE9wSW5m
byhDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxv
Y2sobV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLCB1aWQpKSwgT3BJbmZvKGJ5dGVj
b2RlLm1fZ2V0UHV0SW5mby5lY21hTW9kZSgpKSwgd2Vha0pTQ29uc3RhbnQoZ2xvYmFsT2JqZWN0
LT5nbG9iYWxUaGlzKCkpLCBnZXQoYnl0ZWNvZGUubV92YWx1ZSkpOworICAgICAgICAgICAgICAg
ICAgICBhZGRUb0dyYXBoKFB1dEJ5SWQsIE9wSW5mbyhDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVh
dGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9pbmxpbmVTdGFja1RvcC0+bV9wcm9m
aWxlZEJsb2NrLCB1aWQpKSwgT3BJbmZvKGJ5dGVjb2RlLm1fZ2V0UHV0SW5mby5lY21hTW9kZSgp
KSwgZ2V0KGJ5dGVjb2RlLm1fc2NvcGUpLCBnZXQoYnl0ZWNvZGUubV92YWx1ZSkpOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
Tm9kZSogYmFzZSA9IHdlYWtKU0NvbnN0YW50KGdsb2JhbE9iamVjdCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IGRlYzJjZWNkYzA3My4uZTFjYTFmZjNm
ZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMzQz
LDcgKzM0Myw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNv
bnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIHJldHVybjsKIAog
ICAgIGNhc2UgSXNDZWxsV2l0aFR5cGU6Ci0gICAgICAgIGRlZihQdXJlVmFsdWUobm9kZSwgbm9k
ZS0+cXVlcmllZFR5cGUoKS5yYXdCaXRzKCkpKTsKKyAgICAgICAgZGVmKFB1cmVWYWx1ZShub2Rl
LCBub2RlLT5xdWVyaWVkVHlwZSgpKSk7CiAgICAgICAgIHJldHVybjsKIAogICAgIGNhc2UgVmFs
dWVCaXROb3Q6CkBAIC02NDgsNiArNjQ4LDcgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBUb1RoaXM6CisgICAgICAgIHJlYWQoTWlzY0ZpZWxk
cyk7CiAgICAgICAgIHJlYWQoSGVhcE9iamVjdENvdW50KTsKICAgICAgICAgd3JpdGUoSGVhcE9i
amVjdENvdW50KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAppbmRleCA4M2Q5Yzg2N2Y5MmYu
LmE0OWY5OWFiNTY1YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
b25zdGFudEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTgyOSwxMyArODI5LDEzIEBAIHByaXZhdGU6
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGNhc2UgVG9UaGlzOiB7Ci0gICAgICAgICAg
ICAgICAgQWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQx
KCkpOwotICAgICAgICAgICAgICAgIGlmICghKHZhbHVlLm1fdHlwZSAmIH5TcGVjT2JqZWN0KSkg
eworICAgICAgICAgICAgICAgIFRvVGhpc1Jlc3VsdCByZXN1bHQgPSBpc1RvVGhpc0FuSWRlbnRp
dHkobm9kZS0+ZWNtYU1vZGUoKSwgbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKSk7Cisg
ICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBUb1RoaXNSZXN1bHQ6OklkZW50aXR5KSB7CiAg
ICAgICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0lkZW50aXR5KCk7CiAgICAgICAgICAg
ICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKCEodmFsdWUubV90eXBlICYgflNw
ZWNPdGhlcikpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFRvVGhpc1Jlc3VsdDo6
R2xvYmFsVGhpcykgewogICAgICAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9HZXRHbG9i
YWxUaGlzKCk7CiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCmluZGV4IGQ4ZmRkNDZiYzc0Yy4uZDZkOTIyYmI1YzM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTM1ODIsMTggKzM1ODIsOTggQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgZml4dXBUb1RoaXMoTm9kZSogbm9kZSkKICAgICB7CisgICAg
ICAgIGJvb2wgaXNTdHJpY3RNb2RlID0gbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpOworCisg
ICAgICAgIGlmIChpc1N0cmljdE1vZGUpIHsKKyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEo
KS0+c2hvdWxkU3BlY3VsYXRlQm9vbGVhbigpKSB7CisgICAgICAgICAgICAgICAgZml4RWRnZTxC
b29sZWFuVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgbm9kZS0+Y29udmVy
dFRvSWRlbnRpdHkoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkg
eworICAgICAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAg
ICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eSgpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgp
LT5zaG91bGRTcGVjdWxhdGVJbnQ1MigpKSB7CisgICAgICAgICAgICAgICAgZml4RWRnZTxJbnQ1
MlJlcFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRU
b0lkZW50aXR5KCk7CisgICAgICAgICAgICAgICAgbm9kZS0+c2V0UmVzdWx0KE5vZGVSZXN1bHRJ
bnQ1Mik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZU51bWJlcigpKSB7CisgICAg
ICAgICAgICAgICAgZml4RWRnZTxEb3VibGVSZXBVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAg
ICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eSgpOworICAgICAgICAgICAgICAgIG5v
ZGUtPnNldFJlc3VsdChOb2RlUmVzdWx0RG91YmxlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxk
U3BlY3VsYXRlU3ltYm9sKCkpIHsKKyAgICAgICAgICAgICAgICBmaXhFZGdlPFN5bWJvbFVzZT4o
bm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0lkZW50aXR5
KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBpZiAoIW1fZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBCYWRTdHJp
bmdUeXBlKSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3Bl
Y3VsYXRlU3RyaW5nSWRlbnQoKSkgeworICAgICAgICAgICAgICAgICAgICBmaXhFZGdlPFN0cmlu
Z0lkZW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNv
bnZlcnRUb0lkZW50aXR5KCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEo
KS0+c2hvdWxkU3BlY3VsYXRlU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBmaXhFZGdlPFN0
cmluZ1VzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRU
b0lkZW50aXR5KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgCisgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0
ZUJpZ0ludCgpKSB7CisjaWYgVVNFKEJJR0lOVDMyKQorICAgICAgICAgICAgICAgIGlmIChub2Rl
LT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoKSkKKyAgICAgICAgICAgICAgICAg
ICAgZml4RWRnZTxCaWdJbnQzMlVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAg
IGVsc2UgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVIZWFwQmlnSW50KCkpCisg
ICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZml4RWRnZTxBbnlC
aWdJbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyNlbHNlCisgICAgICAgICAgICAgICAgZml4RWRn
ZTxIZWFwQmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisjZW5kaWYKKyAgICAgICAgICAgICAg
ICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hv
dWxkU3BlY3VsYXRlT3RoZXIoKSkgeworICAgICAgICAgICAgaWYgKGlzU3RyaWN0TW9kZSkgewor
ICAgICAgICAgICAgICAgIGZpeEVkZ2U8T3RoZXJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAg
ICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eSgpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0
Tm9kZSgKICAgICAgICAgICAgICAgICBtX2luZGV4SW5CbG9jaywgU3BlY05vbmUsIENoZWNrLCBu
b2RlLT5vcmlnaW4sCiAgICAgICAgICAgICAgICAgRWRnZShub2RlLT5jaGlsZDEoKS5ub2RlKCks
IE90aGVyVXNlKSk7CiAgICAgICAgICAgICBvYnNlcnZlVXNlS2luZE9uTm9kZTxPdGhlclVzZT4o
bm9kZS0+Y2hpbGQxKCkubm9kZSgpKTsKICAgICAgICAgICAgIG1fZ3JhcGguY29udmVydFRvQ29u
c3RhbnQoCi0gICAgICAgICAgICAgICAgbm9kZSwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9k
ZS0+b3JpZ2luLnNlbWFudGljKS0+Z2xvYmFsVGhpcygpKTsKKyAgICAgICAgICAgICAgICBub2Rl
LCBtX2dyYXBoLmdsb2JhbFRoaXNPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobm9kZS0+Y2hpbGQx
KCktPnNob3VsZFNwZWN1bGF0ZU9iamVjdCgpKSB7Ci0gICAgICAgICAgICBmaXhFZGdlPE9iamVj
dFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgY292
ZXIgb3RoZXIgdXNlIGNhc2VzIGJ1dCB3ZSBkb24ndCBoYXZlIHVzZSBraW5kcyBmb3IgdGhlbS4g
SXQncyBub3QgY3JpdGljYWwsCisgICAgICAgIC8vIGhvd2V2ZXIsIHNpbmNlIHdlIGNvdmVyIGFs
bCB0aGUgbWlzc2luZyBjYXNlcyBpbiBjb25zdGFudCBmb2xkaW5nLgorICAgICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MjEzCisgICAgICAgIGlmIChu
b2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlU3RyaW5nT2JqZWN0KCkpIHsKKyAgICAgICAg
ICAgIGZpeEVkZ2U8U3RyaW5nT2JqZWN0VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAg
ICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKGlzRmluYWxPYmplY3RTcGVjdWxhdGlvbihub2RlLT5jaGlsZDEo
KS0+cHJlZGljdGlvbigpKSkgeworICAgICAgICAgICAgZml4RWRnZTxGaW5hbE9iamVjdFVzZT4o
bm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgbm9kZS0+Y29udmVydFRvSWRlbnRpdHkoKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5oCmluZGV4IDgyMmI4YWMxOWZkMS4uM2EwYjgzMzI4ZTliIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHcmFwaC5oCkBAIC00ODcsNiArNDg3LDEyIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbik7CiAgICAgfQog
ICAgIAorICAgIEpTT2JqZWN0KiBnbG9iYWxUaGlzT2JqZWN0Rm9yKENvZGVPcmlnaW4gY29kZU9y
aWdpbikKKyAgICB7CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBvYmplY3QgPSBnbG9iYWxPYmpl
Y3RGb3IoY29kZU9yaWdpbik7CisgICAgICAgIHJldHVybiBvYmplY3QtPmdsb2JhbFRoaXMoKTsK
KyAgICB9CisgICAgCiAgICAgQ29kZUJsb2NrKiBiYXNlbGluZUNvZGVCbG9ja0ZvcihJbmxpbmVD
YWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSkKICAgICB7CiAgICAgICAgIGlmICghaW5saW5lQ2Fs
bEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCBkMTc5OGQzZmU5ODcu
LjU4NDU0NWYyZjQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTE1OTUs
MTYgKzE1OTUsMjAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gb3AoKSA9PSBJc0NlbGxXaXRo
VHlwZTsKICAgICB9CiAKLSAgICBKU1R5cGVSYW5nZSBxdWVyaWVkVHlwZSgpCisgICAgSlNUeXBl
IHF1ZXJpZWRUeXBlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChoYXNRdWVyaWVkVHlwZSgpKTsK
LSAgICAgICAgcmV0dXJuIEpTVHlwZVJhbmdlOjpmcm9tQml0cyhtX29wSW5mby5hczx1aW50MzJf
dD4oKSk7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lPHVpbnQ4X3QsIHN0ZDo6
dW5kZXJseWluZ190eXBlPEpTVHlwZT46OnR5cGU+Ojp2YWx1ZSwgIkVuc3VyZSB0aGF0IHVpbnQ4
X3QgaXMgdGhlIHVuZGVybHlpbmcgdHlwZSBmb3IgSlNUeXBlLiIpOworICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SlNUeXBlPihtX29wSW5mby5hczx1aW50MzJfdD4oKSk7CisgICAgfQorCisg
ICAgYm9vbCBoYXNTcGVjdWxhdGVkVHlwZUZvclF1ZXJ5KCkKKyAgICB7CisgICAgICAgIHJldHVy
biBvcCgpID09IElzQ2VsbFdpdGhUeXBlOwogICAgIH0KIAogICAgIHN0ZDo6b3B0aW9uYWw8U3Bl
Y3VsYXRlZFR5cGU+IHNwZWN1bGF0ZWRUeXBlRm9yUXVlcnkoKQogICAgIHsKLSAgICAgICAgQVNT
RVJUKGhhc1F1ZXJpZWRUeXBlKCkpOwotICAgICAgICByZXR1cm4gc3BlY3VsYXRpb25Gcm9tSlNU
eXBlUmFuZ2UocXVlcmllZFR5cGUoKSk7CisgICAgICAgIHJldHVybiBzcGVjdWxhdGlvbkZyb21K
U1R5cGUocXVlcmllZFR5cGUoKSk7CiAgICAgfQogCiAgICAgYm9vbCBoYXNTdHJ1Y3R1cmVGbGFn
cygpCkBAIC0yNjA1LDYgKzI2MDksNyBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgUHV0QnlWYWxX
aXRoVGhpczoKICAgICAgICAgY2FzZSBFbnVtZXJhdG9yUHV0QnlWYWw6CiAgICAgICAgIGNhc2Ug
UHV0RHluYW1pY1ZhcjoKKyAgICAgICAgY2FzZSBUb1RoaXM6CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI2
MTcsNiArMjYyMiw3IEBAIHB1YmxpYzoKICAgICAgICAgc3dpdGNoIChvcCgpKSB7CiAgICAgICAg
IGNhc2UgRGVsZXRlQnlWYWw6CiAgICAgICAgIGNhc2UgUHV0QnlWYWxXaXRoVGhpczoKKyAgICAg
ICAgY2FzZSBUb1RoaXM6CiAgICAgICAgICAgICByZXR1cm4gRUNNQU1vZGU6OmZyb21CeXRlKG1f
b3BJbmZvLmFzPHVpbnQ4X3Q+KCkpOwogICAgICAgICBjYXNlIERlbGV0ZUJ5SWQ6CiAgICAgICAg
IGNhc2UgUHV0QnlJZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wSW5mby5oCmluZGV4IDll
ODdjZjY3ZTIyZi4uNzJmMWZiN2Y2MGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BJ
bmZvLmgKQEAgLTUwLDcgKzUwLDYgQEAgc3RydWN0IE9wSW5mbyB7CiAgICAgZXhwbGljaXQgT3BJ
bmZvKE9wZXJhbmQgb3ApIDogbV92YWx1ZShvcC5hc0JpdHMoKSkgeyB9CiAgICAgZXhwbGljaXQg
T3BJbmZvKENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgOiBtX3ZhbHVlKHN0YXRpY19j
YXN0PHVpbnQ2NF90PihpZGVudGlmaWVyLnJhd0JpdHMoKSkpIHsgfQogICAgIGV4cGxpY2l0IE9w
SW5mbyhFQ01BTW9kZSBlY21hTW9kZSkgOiBtX3ZhbHVlKGVjbWFNb2RlLnZhbHVlKCkpIHsgfQot
ICAgIGV4cGxpY2l0IE9wSW5mbyhKU1R5cGVSYW5nZSByYW5nZSkgOiBtX3ZhbHVlKHJhbmdlLnJh
d0JpdHMoKSkgeyB9CiAgICAgZXhwbGljaXQgT3BJbmZvKFByaXZhdGVGaWVsZFB1dEtpbmQgcHV0
S2luZCkgOiBtX3ZhbHVlKHB1dEtpbmQudmFsdWUoKSkgeyB9CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRW51bVR5cGU+CiAgICAgZXhwbGljaXQgT3BJbmZvKE9wdGlvblNldDxFbnVtVHlwZT4gb3B0
aW9uU2V0KSA6IG1fdmFsdWUob3B0aW9uU2V0LnRvUmF3KCkpIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggY2Q5OTllMTI3Yjc1Li4zNDJhZTEy
MGZiNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApA
QCAtMTc5LDYgKzE3OSwyNiBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBKU1ZhbHVlIGdldEJ5VmFs
T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIHJldHVybiBi
YXNlLT5nZXQoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOwogfQogCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVG9UaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcCkpCit7CisgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOworCisgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3ApLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFN
b2RlOjpzbG9wcHkoKSkpKTsKK30KKworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blRvVGhpc1N0cmljdCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3ApKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsRnJhbWUpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
KworICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZE9wKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkp
KSk7Cit9CisKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RLZXlzLCBK
U0FycmF5KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPYmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTM0
OSw3ICszNjksOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0VG9T
dHJpbmdVbnR5cGVkLCBKU1N0cmluZyosIChKU0dsb2JhbE9iagogICAgIEpJVE9wZXJhdGlvblBy
b2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNj
b3BlLCBvYmplY3RQcm90b3R5cGVUb1N0cmluZyhnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkVmFsdWUpKSk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkp
OworICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIG9iamVjdFByb3RvdHlwZVRvU3RyaW5nKGds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25PYmplY3RUb1N0cmluZ09iamVjdFNsb3csIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QpKQpAQCAtMzU5LDcgKzM4MCw4IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RUb1N0cmluZ09iamVjdFNs
b3csIEpTU3RyaW5nKiwgKEpTR2xvYmFsCiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIG9iamVjdFBy
b3RvdHlwZVRvU3RyaW5nKGdsb2JhbE9iamVjdCwgb2JqZWN0KSk7CisgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBKU1ZhbHVlKG9iamVjdCkudG9UaGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0
cmljdCgpKTsKKyAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBvYmplY3RQcm90b3R5cGVUb1N0
cmluZyhnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUmVmbGVjdE93bktleXMsIEpTQXJyYXkqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdCkpCkBAIC00MTA3LDgg
KzQxMjksNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0RHluYW1pY1Zh
ciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdAogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIElkZW50aWZpZXIgaWRlbnQgPSBJZGVudGlmaWVy
Ojpmcm9tVWlkKHZtLCBpbXBsKTsKLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh3cmFwR2xvYmFsT2Jq
ZWN0KGpzU2NvcGUpLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKLSAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNTY29wZS0+Z2V0UHJv
cGVydHlTbG90KGdsb2JhbE9iamVjdCwgaWRlbnQsIHNsb3QsIFsmXSAoYm9vbCBmb3VuZCwgUHJv
cGVydHlTbG90JiBzbG90KSAtPiBKU1ZhbHVlIHsKKyAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoanNTY29wZS0+Z2V0UHJvcGVydHlTbG90KGdsb2JhbE9iamVjdCwg
aWRlbnQsIFsmXSAoYm9vbCBmb3VuZCwgUHJvcGVydHlTbG90JiBzbG90KSAtPiBKU1ZhbHVlIHsK
ICAgICAgICAgaWYgKCFmb3VuZCkgewogICAgICAgICAgICAgR2V0UHV0SW5mbyBnZXRQdXRJbmZv
KGdldFB1dEluZm9CaXRzKTsKICAgICAgICAgICAgIGlmIChnZXRQdXRJbmZvLnJlc29sdmVNb2Rl
KCkgPT0gVGhyb3dJZk5vdEZvdW5kKQpAQCAtNDE1NSw3ICs0MTc2LDcgQEAgQUxXQVlTX0lOTElO
RSBzdGF0aWMgdm9pZCBwdXREeW5hbWljVmFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFZNJiB2bSwgSlMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFB1dFByb3BlcnR5U2xv
dCBzbG90KHdyYXBHbG9iYWxPYmplY3Qoc2NvcGUpLCBpc1N0cmljdE1vZGUsIFB1dFByb3BlcnR5
U2xvdDo6VW5rbm93bkNvbnRleHQsIGlzSW5pdGlhbGl6YXRpb24oZ2V0UHV0SW5mby5pbml0aWFs
aXphdGlvbk1vZGUoKSkpOworICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KHNjb3BlLCBpc1N0cmlj
dE1vZGUsIFB1dFByb3BlcnR5U2xvdDo6VW5rbm93bkNvbnRleHQsIGlzSW5pdGlhbGl6YXRpb24o
Z2V0UHV0SW5mby5pbml0aWFsaXphdGlvbk1vZGUoKSkpOwogICAgIHRocm93U2NvcGUucmVsZWFz
ZSgpOwogICAgIHNjb3BlLT5tZXRob2RUYWJsZSgpLT5wdXQoc2NvcGUsIGdsb2JhbE9iamVjdCwg
aWRlbnQsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSksIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAppbmRleCAzZTFiZjhhY2ZmYmIuLjYzYmRkZWZiNjI1
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAgLTgwLDYg
KzgwLDggQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVQcm9taXNl
LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU08KIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ3JlYXRlSW50ZXJuYWxQcm9taXNlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU09iamVjdCogY29uc3RydWN0b3IpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ3JlYXRlR2VuZXJhdG9yLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU09i
amVjdCogY29uc3RydWN0b3IpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q3JlYXRlQXN5bmNHZW5lcmF0b3IsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0
KiBjb25zdHJ1Y3RvcikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub1Ro
aXMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvVGhpc1N0cmlj
dCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVNb2QsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblZhbHVlQml0Tm90LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25WYWx1ZUJpdEFuZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHAKaW5kZXggZmQzODU1NWFhMjYxLi4zMDQ0MmVmYjM5YjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC02NDIsMTAgKzY0Miw4MSBAQCBwcml2YXRlOgogICAgICAg
ICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBUb1RoaXM6IHsKLSAgICAgICAgICAgIGlm
IChTcGVjdWxhdGVkVHlwZSBjaGlsZCA9IG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCkpCi0g
ICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24ocmVzdWx0T2ZUb1RoaXMo
Y2hpbGQpKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIC8vIFRvVGhpcyBpbiBtZXRo
b2RzIGZvciBwcmltaXRpdmUgdHlwZXMgc2hvdWxkIHNwZWN1bGF0ZSBwcmltaXRpdmUgdHlwZXMg
aW4gc3RyaWN0IG1vZGUuCisgICAgICAgICAgICBib29sIGlzU3RyaWN0TW9kZSA9IG5vZGUtPmVj
bWFNb2RlKCkuaXNTdHJpY3QoKTsKKyAgICAgICAgICAgIGlmIChpc1N0cmljdE1vZGUpIHsKKyAg
ICAgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUJvb2xlYW4o
KSkgeworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVj
Qm9vbGVhbik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlSW50
MzIoKSkgeworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihT
cGVjSW50MzJPbmx5KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxh
dGVJbnQ1MigpKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0
aW9uKFNwZWNJbnQ1MkFueSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3Bl
Y3VsYXRlTnVtYmVyKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVBy
ZWRpY3Rpb24oU3BlY0J5dGVjb2RlTnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgp
LT5zaG91bGRTcGVjdWxhdGVTeW1ib2woKSkgeworICAgICAgICAgICAgICAgICAgICBjaGFuZ2Vk
IHw9IG1lcmdlUHJlZGljdGlvbihTcGVjU3ltYm9sKTsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgfQorCisjaWYgVVNFKEJJR0lOVDMyKQorICAgICAgICAgICAg
ICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoKSkgeworICAg
ICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjQmlnSW50MzIp
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisjZW5kaWYK
KworICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlSGVh
cEJpZ0ludCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0
aW9uKFNwZWNIZWFwQmlnSW50KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRT
cGVjdWxhdGVCaWdJbnQoKSkgeworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdl
UHJlZGljdGlvbihTcGVjQmlnSW50KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91
bGRTcGVjdWxhdGVTdHJpbmdJZGVudCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQg
fD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNTdHJpbmdJZGVudCk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChub2RlLT5j
aGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY1N0cmluZyk7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVTdHJpbmcoKSkg
eworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjU3Ry
aW5nT2JqZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9u
ID0gbm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKTsKKyAgICAgICAgICAgIGlmIChpc1N0cmlj
dE1vZGUpCiAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24obm9kZS0+
Z2V0SGVhcFByZWRpY3Rpb24oKSk7CisgICAgICAgICAgICBlbHNlIGlmIChwcmVkaWN0aW9uKSB7
CisgICAgICAgICAgICAgICAgU3BlY3VsYXRlZFR5cGUgb3JpZ2luYWxQcmVkaWN0aW9uID0gcHJl
ZGljdGlvbjsKKyAgICAgICAgICAgICAgICBpZiAocHJlZGljdGlvbiAmIH5TcGVjT2JqZWN0KSB7
CisgICAgICAgICAgICAgICAgICAgIC8vIFdyYXBwZXIgb2JqZWN0cyBhcmUgY3JlYXRlZCBvbmx5
IGluIHNsb3BweSBtb2RlLgorICAgICAgICAgICAgICAgICAgICBwcmVkaWN0aW9uICY9IFNwZWNP
YmplY3Q7CisgICAgICAgICAgICAgICAgICAgIGlmIChvcmlnaW5hbFByZWRpY3Rpb24gJiBTcGVj
U3RyaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJlZGljdGlvbiA9IG1lcmdlU3BlY3Vs
YXRpb25zKHByZWRpY3Rpb24sIFNwZWNTdHJpbmdPYmplY3QpOworICAgICAgICAgICAgICAgICAg
ICBwcmVkaWN0aW9uID0gbWVyZ2VTcGVjdWxhdGlvbnMocHJlZGljdGlvbiwgU3BlY09iamVjdE90
aGVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24ocHJlZGljdGlvbik7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC0xNjQ5LDE3ICsxNzIwLDYgQEAgcHJpdmF0
ZToKICAgICAgICAgfQogICAgIH0KIAotICAgIFNwZWN1bGF0ZWRUeXBlIHJlc3VsdE9mVG9UaGlz
KFNwZWN1bGF0ZWRUeXBlIHR5cGUpCi0gICAgewotICAgICAgICBpZiAoaXNPdGhlclNwZWN1bGF0
aW9uKHR5cGUpKQotICAgICAgICAgICAgcmV0dXJuIFNwZWNHbG9iYWxQcm94eTsKLQotICAgICAg
ICBpZiAoaXNTdHJpbmdTcGVjdWxhdGlvbih0eXBlKSkKLSAgICAgICAgICAgIHJldHVybiBTcGVj
U3RyaW5nT2JqZWN0OwotCi0gICAgICAgIHJldHVybiBtZXJnZVNwZWN1bGF0aW9ucyh0eXBlICYg
flNwZWNQcmltaXRpdmUsIFNwZWNPYmplY3QpOwotICAgIH0KLQogICAgIFNwZWN1bGF0ZWRUeXBl
IHJlc3VsdE9mVG9QcmltaXRpdmUoU3BlY3VsYXRlZFR5cGUgdHlwZSkKICAgICB7CiAgICAgICAg
IGlmICh0eXBlICYgU3BlY09iamVjdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA0NDY0NTQ5ZDVjZWIuLjYwZDk1NGRkNzcxYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAK
QEAgLTQ3OTEsNyArNDc5MSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSXNDZWxs
V2l0aFR5cGUoTm9kZSogbm9kZSkKIAogICAgICAgICBKdW1wIGlzTm90Q2VsbCA9IGJyYW5jaElm
Tm90Q2VsbCh2YWx1ZVJlZ3MpOwogCi0gICAgICAgIGlzQ2VsbFdpdGhUeXBlKHZhbHVlUmVncy5w
YXlsb2FkR1BSKCksIG5vZGUtPnF1ZXJpZWRUeXBlKCksIHJlc3VsdEdQUik7CisgICAgICAgIGNv
bXBhcmU4KEVxdWFsLAorICAgICAgICAgICAgQWRkcmVzcyh2YWx1ZVJlZ3MucGF5bG9hZEdQUigp
LCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwKKyAgICAgICAgICAgIFRydXN0ZWRJbW0z
Mihub2RlLT5xdWVyaWVkVHlwZSgpKSwKKyAgICAgICAgICAgIHJlc3VsdEdQUik7CiAgICAgICAg
IGJsZXNzQm9vbGVhbihyZXN1bHRHUFIpOwogICAgICAgICBKdW1wIGRvbmUgPSBqdW1wKCk7CiAK
QEAgLTQ4MTAsNyArNDgxMywxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSXNDZWxs
V2l0aFR5cGUoTm9kZSogbm9kZSkKICAgICAgICAgR1BSUmVnIGNlbGxHUFIgPSBjZWxsLmdwcigp
OwogICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogCi0gICAgICAgIGlz
Q2VsbFdpdGhUeXBlKGNlbGxHUFIsIG5vZGUtPnF1ZXJpZWRUeXBlKCksIHJlc3VsdEdQUik7Cisg
ICAgICAgIGNvbXBhcmU4KEVxdWFsLAorICAgICAgICAgICAgQWRkcmVzcyhjZWxsR1BSLCBKU0Nl
bGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwKKyAgICAgICAgICAgIFRydXN0ZWRJbW0zMihub2Rl
LT5xdWVyaWVkVHlwZSgpKSwKKyAgICAgICAgICAgIHJlc3VsdEdQUik7CiAgICAgICAgIGJsZXNz
Qm9vbGVhbihyZXN1bHRHUFIpOwogICAgICAgICBibGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHRH
UFIsIG5vZGUpOwogICAgICAgICByZXR1cm47CkBAIC0xNDE5NywyOSArMTQyMDMsMzUgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld1R5cGVkQXJyYXkoTm9kZSogbm9kZSkKIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1RoaXMoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQo
bm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFVudHlwZWRVc2UpOworICAgIEpTVmFsdWVPcGVy
YW5kIHRoaXNWYWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgSlNWYWx1ZVJlZ3NUZW1w
b3JhcnkgdGVtcCh0aGlzKTsKIAotICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUt
PmNoaWxkMSgpKTsKLSAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKLSAgICBHUFJUZW1w
b3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCB2YWx1ZSk7Ci0KLSAgICBKU1ZhbHVlUmVncyB2YWx1
ZVJlZ3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOwotICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gc2Ny
YXRjaC5ncHIoKTsKLSAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworICAgIEpT
VmFsdWVSZWdzIHRoaXNWYWx1ZVJlZ3MgPSB0aGlzVmFsdWUuanNWYWx1ZVJlZ3MoKTsKKyAgICBK
U1ZhbHVlUmVncyB0ZW1wUmVncyA9IHRlbXAucmVncygpOwogCi0gICAgSnVtcCBpc0NlbGwgPSBi
cmFuY2hJZkNlbGwodmFsdWVSZWdzKTsKICAgICBKdW1wTGlzdCBzbG93Q2FzZXM7Ci0gICAgc2xv
d0Nhc2VzLmFwcGVuZChicmFuY2hJZk5vdE90aGVyKHZhbHVlUmVncywgc2NyYXRjaEdQUikpOwot
ICAgIGxvYWRMaW5rYWJsZUNvbnN0YW50KExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgq
dGhpcywgbm9kZSksIHNjcmF0Y2hHUFIpOwotICAgIGxvYWRQdHIoQWRkcmVzcyhzY3JhdGNoR1BS
LCBKU0dsb2JhbE9iamVjdDo6b2Zmc2V0T2ZHbG9iYWxUaGlzKCkpLCByZXN1bHRHUFIpOwotICAg
IEp1bXAgZG9uZSA9IGp1bXAoKTsKKyAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaElmTm90Q2Vs
bCh0aGlzVmFsdWVSZWdzKSk7CisgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hJZk5vdE9iamVj
dCh0aGlzVmFsdWVSZWdzLnBheWxvYWRHUFIoKSkpOwogCi0gICAgaXNDZWxsLmxpbmsodGhpcyk7
Ci0gICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hJZk5vdE9iamVjdCh2YWx1ZVJlZ3MucGF5bG9h
ZEdQUigpKSk7Ci0gICAgbW92ZSh2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCByZXN1bHRHUFIpOwor
ICAgIG1vdmVWYWx1ZVJlZ3ModGhpc1ZhbHVlUmVncywgdGVtcFJlZ3MpOworICAgIGF1dG8gbm90
U2NvcGUgPSBicmFuY2hJZk5vdFR5cGUodGhpc1ZhbHVlUmVncy5wYXlsb2FkR1BSKCksIEpTQzo6
SlNUeXBlUmFuZ2UgeyBKU1R5cGUoRmlyc3RTY29wZVR5cGUpLCBKU1R5cGUoTGFzdFNjb3BlVHlw
ZSkgfSk7CisgICAgaWYgKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSkKKyAgICAgICAgbW92
ZVRydXN0ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCB0ZW1wUmVncyk7CisgICAgZWxzZSB7CisgICAg
ICAgIGxvYWRMaW5rYWJsZUNvbnN0YW50KExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgq
dGhpcywgbm9kZSksIHRlbXBSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgICAgIGxvYWRQdHIoQWRk
cmVzcyh0ZW1wUmVncy5wYXlsb2FkR1BSKCksIEpTR2xvYmFsT2JqZWN0OjpvZmZzZXRPZkdsb2Jh
bFRoaXMoKSksIHRlbXBSZWdzLnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkK
KyAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHRlbXBSZWdzLnRh
Z0dQUigpKTsKKyNlbmRpZgorICAgIH0KIAotICAgIGRvbmUubGluayh0aGlzKTsKLSAgICBhZGRT
bG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoc2xvd0Nhc2VzLCB0aGlzLCBvcGVyYXRpb25U
b09iamVjdCwgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMs
IG5vZGUpLCB2YWx1ZVJlZ3MsIFRydXN0ZWRJbW1QdHIobnVsbHB0cikpKTsKLSAgICBjZWxsUmVz
dWx0KHJlc3VsdEdQUiwgbm9kZSk7CisgICAgYXV0byBmdW5jdGlvbiA9ICZvcGVyYXRpb25Ub1Ro
aXM7CisgICAgaWYgKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSkKKyAgICAgICAgZnVuY3Rp
b24gPSBvcGVyYXRpb25Ub1RoaXNTdHJpY3Q7CisgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xv
d1BhdGhDYWxsKHNsb3dDYXNlcywgdGhpcywgZnVuY3Rpb24sIHRlbXBSZWdzLCBMaW5rYWJsZUNv
bnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCB0aGlzVmFsdWVSZWdzKSk7CisKKyAg
ICBub3RTY29wZS5saW5rKHRoaXMpOworICAgIGpzVmFsdWVSZXN1bHQodGVtcFJlZ3MsIG5vZGUp
OwogfQogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlT3duUHJvcGVydHlLZXlzVmFyaWFu
dChOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCmluZGV4IDM2OTQ5ZGI1MzRhNC4uYjE2NDJmZGY2M2UxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0yNDYyLDI5ICsyNDYyLDM5
IEBAIHByaXZhdGU6CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dy
YXBoLmdsb2JhbE9iamVjdEZvcihtX29yaWdpbi5zZW1hbnRpYyk7CiAKICAgICAgICAgTFZhbHVl
IHZhbHVlID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgU3BlY3VsYXRl
ZFR5cGUgdmFsdWVUeXBlID0gcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKTsKIAogICAgICAg
ICBMQmFzaWNCbG9jayBpc0NlbGxDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKLSAgICAgICAgTEJh
c2ljQmxvY2sgbm90Q2VsbENhc2UgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICBMQmFzaWNC
bG9jayBpc09iamVjdENhc2UgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICBMQmFzaWNCbG9j
ayBzY29wZUNhc2UgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBzbG93
Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlv
biA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAKLSAgICAgICAgbV9vdXQuYnJhbmNoKGlzQ2VsbCh2YWx1
ZSwgdmFsdWVUeXBlKSwgdXN1YWxseShpc0NlbGxDYXNlKSwgcmFyZWx5KG5vdENlbGxDYXNlKSk7
CisgICAgICAgIG1fb3V0LmJyYW5jaChpc0NlbGwodmFsdWUsIHByb3ZlblR5cGUobV9ub2RlLT5j
aGlsZDEoKSkpLCB1c3VhbGx5KGlzQ2VsbENhc2UpLCByYXJlbHkoc2xvd0Nhc2UpKTsKKworICAg
ICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlzQ2VsbENhc2UsIGlz
T2JqZWN0Q2FzZSk7CisgICAgICAgIG1fb3V0LmJyYW5jaChpc09iamVjdCh2YWx1ZSwgcHJvdmVu
VHlwZShtX25vZGUtPmNoaWxkMSgpKSAmIFNwZWNDZWxsQ2hlY2spLCB1c3VhbGx5KGlzT2JqZWN0
Q2FzZSksIHJhcmVseShzbG93Q2FzZSkpOwogCi0gICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0
ID0gbV9vdXQuYXBwZW5kVG8oaXNDZWxsQ2FzZSwgbm90Q2VsbENhc2UpOwotICAgICAgICBWYWx1
ZUZyb21CbG9jayBpc09iamVjdFJlc3VsdCA9IG1fb3V0LmFuY2hvcih2YWx1ZSk7Ci0gICAgICAg
IG1fb3V0LmJyYW5jaChpc09iamVjdCh2YWx1ZSwgdmFsdWVUeXBlKSwgdXN1YWxseShjb250aW51
YXRpb24pLCByYXJlbHkoc2xvd0Nhc2UpKTsKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oaXNPYmpl
Y3RDYXNlLCBzY29wZUNhc2UpOworICAgICAgICBWYWx1ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0g
bV9vdXQuYW5jaG9yKHZhbHVlKTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKGlzVHlwZSh2YWx1ZSwg
SlNUeXBlUmFuZ2UgeyBKU1R5cGUoRmlyc3RTY29wZVR5cGUpLCBKU1R5cGUoTGFzdFNjb3BlVHlw
ZSkgfSksIHVuc3VyZShzY29wZUNhc2UpLCB1bnN1cmUoY29udGludWF0aW9uKSk7CiAKLSAgICAg
ICAgbV9vdXQuYXBwZW5kVG8obm90Q2VsbENhc2UsIHNsb3dDYXNlKTsKLSAgICAgICAgVmFsdWVG
cm9tQmxvY2sgaXNPdGhlclJlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC5sb2FkUHRyKG1fb3V0
LmFic29sdXRlKGdsb2JhbE9iamVjdC0+YWRkcmVzc09mR2xvYmFsVGhpcygpKSkpOwotICAgICAg
ICBtX291dC5icmFuY2goaXNPdGhlcih2YWx1ZSwgdmFsdWVUeXBlKSwgdXN1YWxseShjb250aW51
YXRpb24pLCByYXJlbHkoc2xvd0Nhc2UpKTsKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2NvcGVD
YXNlLCBzbG93Q2FzZSk7CisgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNjb3BlUmVzdWx0OworICAg
ICAgICBpZiAobV9ub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkpCisgICAgICAgICAgICBzY29w
ZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC5jb25zdEludDY0KEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzY29wZVJlc3VsdCA9
IG1fb3V0LmFuY2hvcihtX291dC5sb2FkUHRyKG1fb3V0LmFic29sdXRlKGdsb2JhbE9iamVjdC0+
YWRkcmVzc09mR2xvYmFsVGhpcygpKSkpOworICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlv
bik7CiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7Ci0g
ICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Iodm1DYWxsKElu
dDY0LCBvcGVyYXRpb25Ub09iamVjdCwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgdmFsdWUs
IG1fb3V0LmNvbnN0SW50UHRyKDApKSk7CisgICAgICAgIGF1dG8gZnVuY3Rpb24gPSAmb3BlcmF0
aW9uVG9UaGlzOworICAgICAgICBpZiAobV9ub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkpCisg
ICAgICAgICAgICBmdW5jdGlvbiA9IG9wZXJhdGlvblRvVGhpc1N0cmljdDsKKyAgICAgICAgVmFs
dWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcih2bUNhbGwoSW50NjQsIGZ1bmN0
aW9uLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3QpLCB2YWx1ZSkpOwogICAgICAgICBtX291dC5q
dW1wKGNvbnRpbnVhdGlvbik7CiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9u
LCBsYXN0TmV4dCk7Ci0gICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKEludDY0LCBpc09iamVj
dFJlc3VsdCwgaXNPdGhlclJlc3VsdCwgc2xvd1Jlc3VsdCkpOworICAgICAgICBzZXRKU1ZhbHVl
KG1fb3V0LnBoaShJbnQ2NCwgZmFzdFJlc3VsdCwgc2NvcGVSZXN1bHQsIHNsb3dSZXN1bHQpKTsK
ICAgICB9CiAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZUFkZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZ2VuZXJhdG9yL0RTTC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9n
ZW5lcmF0b3IvRFNMLnJiCmluZGV4IDU3ZjE5ODI1NmFlOC4uZDVjMDk4OGQ4YjU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdG9yL0RTTC5yYgorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZ2VuZXJhdG9yL0RTTC5yYgpAQCAtMjI1LDYgKzIyNSw3IEBAIG1vZHVs
ZSBEU0wKICNpbmNsdWRlICJQcml2YXRlRmllbGRQdXRLaW5kLmgiCiAjaW5jbHVkZSAiUHV0QnlT
dGF0dXMuaCIKICNpbmNsdWRlICJQdXRCeUlkRmxhZ3MuaCIKKyNpbmNsdWRlICJUb1RoaXNTdGF0
dXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKaW5kZXggYzgzZTkyNTNh
OGFlLi5iM2Q3MjhiMjZkYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAg
SlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6aW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgSlNPYmplY3QqIG9iamVjdCA9
IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCkudG9TbG9wcHlNb2RlVGhpcyhnbG9iYWxP
YmplY3QpOworICAgIEpTT2JqZWN0KiBvYmplY3QgPSBqc0Nhc3Q8SlNPYmplY3QqPihjYWxsRnJh
bWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpz
bG9wcHkoKSkpOwogICAgIHJldHVybiBqc1N0cmluZyh2bSwgSlNPYmplY3Q6OmNhbGN1bGF0ZWRD
bGFzc05hbWUob2JqZWN0KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4IGYwNmRhMGFkMmJmOS4uZDEwN2FkNGQ0MTE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRl
ci5jcHAKQEAgLTkzNSw4ICs5MzUsNiBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBJbnRlcnByZXRl
cjo6Y2hlY2tWTUVudHJ5UGVybWlzc2lvbigpCiAKIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1
dGVQcm9ncmFtKGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNHbG9iYWxPYmplY3QqLCBKU09i
amVjdCogdGhpc09iaikKIHsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCF0aGlzT2JqLT5pbmhl
cml0czxKU1Njb3BlPigpLCAidGhpc09iaiBzaG91bGRuJ3QgYmUgSlNTY29wZSIpOwotCiAgICAg
Vk0mIHZtID0gdGhpcy0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICBKU1Njb3BlKiBzY29wZSA9IHRoaXNPYmotPmdsb2JhbE9iamVjdCgp
LT5nbG9iYWxTY29wZSgpOwpAQCAtMTE3OSw4ICsxMTc3LDYgQEAgSlNWYWx1ZSBJbnRlcnByZXRl
cjo6ZXhlY3V0ZUJvdW5kQ2FsbChWTSYgdm0sIEpTQm91bmRGdW5jdGlvbiogZnVuY3Rpb24sIGNv
bnN0IEEKIAogQUxXQVlTX0lOTElORSBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbElt
cGwoVk0mIHZtLCBKU09iamVjdCogZnVuY3Rpb24sIGNvbnN0IENhbGxEYXRhJiBjYWxsRGF0YSwg
SlNWYWx1ZSB0aGlzVmFsdWUsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7Ci0gICAgQVNTRVJUX1dJ
VEhfTUVTU0FHRSghdGhpc1ZhbHVlLmluaGVyaXRzPEpTU2NvcGU+KCksICJ0aGlzVmFsdWUgc2hv
dWxkbid0IGJlIEpTU2NvcGUiKTsKLQogICAgIGF1dG8gY2xvYmJlcml6ZVZhbGlkYXRvciA9IG1h
a2VTY29wZUV4aXQoWyZdIHsKICAgICAgICAgdm0uZGlkRW50ZXJWTSA9IHRydWU7CiAgICAgfSk7
CkBAIC0xMzc3LDggKzEzNzMsNiBAQCBDb2RlQmxvY2sqIEludGVycHJldGVyOjpwcmVwYXJlRm9y
Q2FjaGVkQ2FsbChDYWNoZWRDYWxsJiBjYWNoZWRDYWxsLCBKU0Z1bmN0aW9uKgogCiBKU1ZhbHVl
IEludGVycHJldGVyOjpleGVjdXRlRXZhbChFdmFsRXhlY3V0YWJsZSogZXZhbCwgSlNWYWx1ZSB0
aGlzVmFsdWUsIEpTU2NvcGUqIHNjb3BlKQogewotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIXRo
aXNWYWx1ZSB8fCAhdGhpc1ZhbHVlLmluaGVyaXRzPEpTU2NvcGU+KCksICJ0aGlzVmFsdWUgc2hv
dWxkbid0IGJlIEpTU2NvcGUiKTsKLQogICAgIFZNJiB2bSA9IHRoaXMtPnZtKCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IGJiYzJjMTMwNGFjNC4uY2NkMmVm
ODFlZGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgK
QEAgLTk4MCwyMCArOTgwLDYgQEAgcHVibGljOgogICAgIEp1bXAgYnJhbmNoSWZOb3RGdW5jdGlv
bihHUFJSZWcgY2VsbEdQUikgeyByZXR1cm4gYnJhbmNoSWZOb3RUeXBlKGNlbGxHUFIsIEpTRnVu
Y3Rpb25UeXBlKTsgfQogICAgIEp1bXAgYnJhbmNoSWZTdHJ1Y3R1cmUoR1BSUmVnIGNlbGxHUFIp
IHsgcmV0dXJuIGJyYW5jaElmVHlwZShjZWxsR1BSLCBTdHJ1Y3R1cmVUeXBlKTsgfQogICAgIEp1
bXAgYnJhbmNoSWZOb3RTdHJ1Y3R1cmUoR1BSUmVnIGNlbGxHUFIpIHsgcmV0dXJuIGJyYW5jaElm
Tm90VHlwZShjZWxsR1BSLCBTdHJ1Y3R1cmVUeXBlKTsgfQotCi0gICAgdm9pZCBpc0NlbGxXaXRo
VHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlUmFuZ2UgcmFuZ2UsIEdQUlJlZyBkc3QpCi0gICAg
ewotICAgICAgICBpZiAocmFuZ2UubGFzdCA9PSByYW5nZS5maXJzdCkgewotICAgICAgICAgICAg
Y29tcGFyZTgoRXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZz
ZXQoKSksIFRydXN0ZWRJbW0zMihyYW5nZS5maXJzdCksIGRzdCk7Ci0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KLQotICAgICAgICBBU1NFUlQocmFuZ2UubGFzdCA+IHJhbmdlLmZpcnN0
KTsKLSAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBzY3JhdGNoUmVnaXN0ZXIoKTsKLSAgICAgICAg
bG9hZDgoQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgc2Ny
YXRjaCk7Ci0gICAgICAgIHN1YjMyKFRydXN0ZWRJbW0zMihyYW5nZS5maXJzdCksIHNjcmF0Y2gp
OwotICAgICAgICBjb21wYXJlMzIoQmVsb3dPckVxdWFsLCBzY3JhdGNoLCBUcnVzdGVkSW1tMzIo
cmFuZ2UubGFzdCAtIHJhbmdlLmZpcnN0KSwgZHN0KTsKLSAgICB9CiAgICAgCiAgICAgdm9pZCBp
c0VtcHR5KEdQUlJlZyBncHIsIEdQUlJlZyBkc3QpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggYTdlYzA1MWRkMGJjLi5iNmY1YTExYzk4ZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMjk1LDEyICsyOTUs
MTMgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaXNfY2VsbF93aXRoX3R5cGUoY29uc3QgSlNJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5z
dHJ1Y3Rpb24tPmFzPE9wSXNDZWxsV2l0aFR5cGU+KCk7CiAgICAgVmlydHVhbFJlZ2lzdGVyIGRz
dCA9IGJ5dGVjb2RlLm1fZHN0OwogICAgIFZpcnR1YWxSZWdpc3RlciB2YWx1ZSA9IGJ5dGVjb2Rl
Lm1fb3BlcmFuZDsKKyAgICBpbnQgdHlwZSA9IGJ5dGVjb2RlLm1fdHlwZTsKIAogICAgIGVtaXRH
ZXRWaXJ0dWFsUmVnaXN0ZXIodmFsdWUsIGpzUmVnVDMyKTsKIAogICAgIG1vdmUoVHJ1c3RlZElt
bTMyKDApLCByZWdUMCk7CiAgICAgSnVtcCBpc05vdENlbGwgPSBicmFuY2hJZk5vdENlbGwoanNS
ZWdUMzIpOwotICAgIGlzQ2VsbFdpdGhUeXBlKGpzUmVnVDMyLnBheWxvYWRHUFIoKSwgSlNUeXBl
UmFuZ2UgeyBieXRlY29kZS5tX2ZpcnN0VHlwZSwgYnl0ZWNvZGUubV9sYXN0VHlwZSB9LCByZWdU
MCk7CisgICAgY29tcGFyZTgoRXF1YWwsIEFkZHJlc3MoanNSZWdUMzIucGF5bG9hZEdQUigpLCBK
U0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKHR5cGUpLCByZWdUMCk7
CiAgICAgaXNOb3RDZWxsLmxpbmsodGhpcyk7CiAKICAgICBib3hCb29sZWFuKHJlZ1QwLCBqc1Jl
Z1QxMCk7CkBAIC0xNTUwLDYgKzE1NTEsMjAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X3Njb3Bl
KGNvbnN0IEpTSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0R2V0U2Nv
cGUoYnl0ZWNvZGUubV9kc3QpOwogfQogCit2b2lkIEpJVDo6ZW1pdF9vcF90b190aGlzKGNvbnN0
IEpTSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKK3sKKyAgICBhdXRvIGJ5dGVjb2Rl
ID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcFRvVGhpcz4oKTsKKyAgICBWaXJ0dWFsUmVnaXN0
ZXIgc3JjRHN0ID0gYnl0ZWNvZGUubV9zcmNEc3Q7CisKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKHNyY0RzdCwganNSZWdUMTApOworCisgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxs
KGpzUmVnVDEwLCBzcmNEc3QpOworCisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3RUeXBlKGpz
UmVnVDEwLnBheWxvYWRHUFIoKSwgRmluYWxPYmplY3RUeXBlKSk7CisgICAgbG9hZDMyRnJvbU1l
dGFkYXRhKGJ5dGVjb2RlLCBPcFRvVGhpczo6TWV0YWRhdGE6Om9mZnNldE9mQ2FjaGVkU3RydWN0
dXJlSUQoKSwgcmVnVDIpOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCBBZGRy
ZXNzKGpzUmVnVDEwLnBheWxvYWRHUFIoKSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwg
cmVnVDIpKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfY3JlYXRlX3RoaXMoY29uc3QgSlNJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb24tPmFzPE9wQ3JlYXRlVGhpcz4oKTsKQEAgLTE1ODUsMjcgKzE2MDAsNiBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9jcmVhdGVfdGhpcyhjb25zdCBKU0luc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihieXRlY29kZS5tX2Rz
dCwganNSZWdUMTApOwogfQogCi12b2lkIEpJVDo6ZW1pdF9vcF90b190aGlzKGNvbnN0IEpTSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKLXsKLSAgICBhdXRvIGJ5dGVjb2RlID0gY3Vy
cmVudEluc3RydWN0aW9uLT5hczxPcFRvVGhpcz4oKTsKLSAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKGJ5dGVjb2RlLm1fc3JjRHN0LCBqc1JlZ1QxMCk7Ci0KLSAgICBKdW1wIGlzQ2VsbCA9IGJy
YW5jaElmQ2VsbChqc1JlZ1QxMCk7Ci0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3RPdGhlcihq
c1JlZ1QxMCwgcmVnVDMpKTsKLQotICAgIGxvYWRHbG9iYWxPYmplY3QocmVnVDMpOwotICAgIGxv
YWRQdHIoQWRkcmVzcyhyZWdUMywgSlNHbG9iYWxPYmplY3Q6Om9mZnNldE9mR2xvYmFsVGhpcygp
KSwganNSZWdUMTAucGF5bG9hZEdQUigpKTsKLSAgICBib3hDZWxsKGpzUmVnVDEwLnBheWxvYWRH
UFIoKSwganNSZWdUMTApOwotICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoYnl0ZWNvZGUubV9z
cmNEc3QsIGpzUmVnVDEwKTsKLSAgICBKdW1wIGRvbmUgPSBqdW1wKCk7Ci0KLSAgICBpc0NlbGwu
bGluayh0aGlzKTsKLSAgICBhZGRTbG93Q2FzZShicmFuY2hJZk5vdE9iamVjdChqc1JlZ1QxMC5w
YXlsb2FkR1BSKCkpKTsKLQotICAgIGRvbmUubGluayh0aGlzKTsKLSAgICBlbWl0VmFsdWVQcm9m
aWxpbmdTaXRlKGJ5dGVjb2RlLCBqc1JlZ1QxMCk7Ci19Ci0KIHZvaWQgSklUOjplbWl0X29wX2No
ZWNrX3Rkeihjb25zdCBKU0luc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAg
YXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BDaGVja1Rkej4oKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDA5OWVlOTU5
M2U1Zi4uODNiMDI2Yzc5ZmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKQEAgLTQ0NjgsOCArNDQ2OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25HZXRGcm9tU2NvcGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
CiAgICAgLy8gTW9kdWxlVmFyIGlzIGFsd2F5cyBjb252ZXJ0ZWQgdG8gQ2xvc3VyZVZhciBmb3Ig
Z2V0X2Zyb21fc2NvcGUuCiAgICAgQVNTRVJUKGdldFB1dEluZm8ucmVzb2x2ZVR5cGUoKSAhPSBN
b2R1bGVWYXIpOwogCi0gICAgUHJvcGVydHlTbG90IHNsb3Qod3JhcEdsb2JhbE9iamVjdChlbnZp
cm9ubWVudCksIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwotICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShlbnZpcm9ubWVudC0+Z2V0UHJv
cGVydHlTbG90KGdsb2JhbE9iamVjdCwgaWRlbnQsIHNsb3QsIFsmXSAoYm9vbCBmb3VuZCwgUHJv
cGVydHlTbG90JiBzbG90KSAtPiBKU1ZhbHVlIHsKKyAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoZW52aXJvbm1lbnQtPmdldFByb3BlcnR5U2xvdChnbG9iYWxPYmpl
Y3QsIGlkZW50LCBbJl0gKGJvb2wgZm91bmQsIFByb3BlcnR5U2xvdCYgc2xvdCkgLT4gSlNWYWx1
ZSB7CiAgICAgICAgIGlmICghZm91bmQpIHsKICAgICAgICAgICAgIGlmIChnZXRQdXRJbmZvLnJl
c29sdmVNb2RlKCkgPT0gVGhyb3dJZk5vdEZvdW5kKQogICAgICAgICAgICAgICAgIHRocm93RXhj
ZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVVuZGVmaW5lZFZhcmlhYmxlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBpZGVudCkpOwpAQCAtNDU0MCw3ICs0NTM5LDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFRvU2NvcGUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWMKICAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiAgICAgfQogCi0g
ICAgUHV0UHJvcGVydHlTbG90IHNsb3Qod3JhcEdsb2JhbE9iamVjdChqc1Njb3BlKSwgZ2V0UHV0
SW5mby5lY21hTW9kZSgpLmlzU3RyaWN0KCksIFB1dFByb3BlcnR5U2xvdDo6VW5rbm93bkNvbnRl
eHQsIGlzSW5pdGlhbGl6YXRpb24oZ2V0UHV0SW5mby5pbml0aWFsaXphdGlvbk1vZGUoKSkpOwor
ICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGpzU2NvcGUsIGdldFB1dEluZm8uZWNtYU1vZGUoKS5p
c1N0cmljdCgpLCBQdXRQcm9wZXJ0eVNsb3Q6OlVua25vd25Db250ZXh0LCBpc0luaXRpYWxpemF0
aW9uKGdldFB1dEluZm8uaW5pdGlhbGl6YXRpb25Nb2RlKCkpKTsKICAgICBqc1Njb3BlLT5tZXRo
b2RUYWJsZSgpLT5wdXQoanNTY29wZSwgZ2xvYmFsT2JqZWN0LCBpZGVudCwgdmFsdWUsIHNsb3Qp
OwogICAgIAogICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IDhlMmI2
ODg0NzQ4ZS4uZGIyYTA2YWE1OTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTIzNTgsOCArMjM1OCw3IEBAIExMSU5UX1NMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF9nZXRfZnJvbV9zY29wZSkKICAgICAvLyBNb2R1bGVWYXIgaXMgYWx3
YXlzIGNvbnZlcnRlZCB0byBDbG9zdXJlVmFyIGZvciBnZXRfZnJvbV9zY29wZS4KICAgICBBU1NF
UlQobWV0YWRhdGEubV9nZXRQdXRJbmZvLnJlc29sdmVUeXBlKCkgIT0gTW9kdWxlVmFyKTsKIAot
ICAgIFByb3BlcnR5U2xvdCBzbG90KHdyYXBHbG9iYWxPYmplY3Qoc2NvcGUpLCBQcm9wZXJ0eVNs
b3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKLSAgICBMTElOVF9SRVRVUk4oc2NvcGUtPmdl
dFByb3BlcnR5U2xvdChnbG9iYWxPYmplY3QsIGlkZW50LCBzbG90LCBbJl0gKGJvb2wgZm91bmQs
IFByb3BlcnR5U2xvdCYgc2xvdCkgLT4gSlNWYWx1ZSB7CisgICAgTExJTlRfUkVUVVJOKHNjb3Bl
LT5nZXRQcm9wZXJ0eVNsb3QoZ2xvYmFsT2JqZWN0LCBpZGVudCwgWyZdIChib29sIGZvdW5kLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpIC0+IEpTVmFsdWUgewogICAgICAgICBpZiAoIWZvdW5kKSB7CiAg
ICAgICAgICAgICBpZiAobWV0YWRhdGEubV9nZXRQdXRJbmZvLnJlc29sdmVNb2RlKCkgPT0gVGhy
b3dJZk5vdEZvdW5kKQogICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihnbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZVVuZGVmaW5lZFZhcmlhYmxlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBpZGVudCkpOwpAQCAtMjQxOCw3ICsyNDE3LDcgQEAgTExJTlRfU0xPV19QQVRIX0RF
Q0woc2xvd19wYXRoX3B1dF90b19zY29wZSkKICAgICBpZiAobWV0YWRhdGEubV9nZXRQdXRJbmZv
LnJlc29sdmVNb2RlKCkgPT0gVGhyb3dJZk5vdEZvdW5kICYmICFoYXNQcm9wZXJ0eSkKICAgICAg
ICAgTExJTlRfVEhST1coY3JlYXRlVW5kZWZpbmVkVmFyaWFibGVFcnJvcihnbG9iYWxPYmplY3Qs
IGlkZW50KSk7CiAKLSAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdCh3cmFwR2xvYmFsT2JqZWN0KHNj
b3BlKSwgbWV0YWRhdGEubV9nZXRQdXRJbmZvLmVjbWFNb2RlKCkuaXNTdHJpY3QoKSwgUHV0UHJv
cGVydHlTbG90OjpVbmtub3duQ29udGV4dCwgaXNJbml0aWFsaXphdGlvbihtZXRhZGF0YS5tX2dl
dFB1dEluZm8uaW5pdGlhbGl6YXRpb25Nb2RlKCkpKTsKKyAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xv
dChzY29wZSwgbWV0YWRhdGEubV9nZXRQdXRJbmZvLmVjbWFNb2RlKCkuaXNTdHJpY3QoKSwgUHV0
UHJvcGVydHlTbG90OjpVbmtub3duQ29udGV4dCwgaXNJbml0aWFsaXphdGlvbihtZXRhZGF0YS5t
X2dldFB1dEluZm8uaW5pdGlhbGl6YXRpb25Nb2RlKCkpKTsKICAgICBzY29wZS0+bWV0aG9kVGFi
bGUoKS0+cHV0KHNjb3BlLCBnbG9iYWxPYmplY3QsIGlkZW50LCB2YWx1ZSwgc2xvdCk7CiAgICAg
CiAgICAgQ29tbW9uU2xvd1BhdGhzOjp0cnlDYWNoZVB1dFRvU2NvcGVHbG9iYWwoZ2xvYmFsT2Jq
ZWN0LCBjb2RlQmxvY2ssIGJ5dGVjb2RlLCBzY29wZSwgc2xvdCwgaWRlbnQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbQppbmRleCAwNTM1YjQ3MWMwYzMuLmIzZmU4YjBkYTQ5MCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20K
QEAgLTg2NCwzMCArODY0LDE5IEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX2dldF9zY29wZSwgT3BH
ZXRTY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKIGVuZCkKIAogCi1s
bGludE9wKG9wX3RvX3RoaXMsIE9wVG9UaGlzLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkK
K2xsaW50T3BXaXRoTWV0YWRhdGEob3BfdG9fdGhpcywgT3BUb1RoaXMsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQogICAgIGdldChtX3NyY0RzdCwgdDApCi0g
ICAgbG9hZGkgVGFnT2Zmc2V0W2NmciwgdDAsIDhdLCB0MQotICAgIGJpbmVxIHQxLCBDZWxsVGFn
LCAub3BUb1RoaXNOb3RDZWxsCi0gICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwg
dDEKLSAgICBiYmIgSlNDZWxsOjptX3R5cGVbdDFdLCBPYmplY3RUeXBlLCAub3BUb1RoaXNTbG93
Ci0gICAgdmFsdWVQcm9maWxlKHNpemUsIE9wVG9UaGlzLCBtX3ZhbHVlUHJvZmlsZSwgQ2VsbFRh
ZywgdDEsIHQyKQorICAgIGJpbmVxIFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgQ2VsbFRhZywgLm9w
VG9UaGlzU2xvdworICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0sIHQwCisgICAg
YmJuZXEgSlNDZWxsOjptX3R5cGVbdDBdLCBGaW5hbE9iamVjdFR5cGUsIC5vcFRvVGhpc1Nsb3cK
KyAgICBtZXRhZGF0YSh0MiwgdDMpCisgICAgbG9hZGkgT3BUb1RoaXM6Ok1ldGFkYXRhOjptX2Nh
Y2hlZFN0cnVjdHVyZUlEW3QyXSwgdDIKKyAgICBiaW5lcSBKU0NlbGw6Om1fc3RydWN0dXJlSURb
dDBdLCB0MiwgLm9wVG9UaGlzU2xvdwogICAgIGRpc3BhdGNoKCkKLSAKLS5vcFRvVGhpc05vdENl
bGw6Ci0gICAgb3JpIDEsIHQxCi0gICAgYmllcSB0MSwgTnVsbFRhZywgLm9wVG9UaGlzVW5kZWZp
bmVkT3JOdWxsCisKIC5vcFRvVGhpc1Nsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhf
dG9fdGhpcykKICAgICBkaXNwYXRjaCgpCi0KLS5vcFRvVGhpc1VuZGVmaW5lZE9yTnVsbDoKLSAg
ICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDEKLSAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFs
T2JqZWN0W3QxXSwgdDEKLSAgICBsb2FkcCBKU0dsb2JhbE9iamVjdDo6bV9nbG9iYWxUaGlzW3Qx
XSwgdDEKLSAgICB2YWx1ZVByb2ZpbGUoc2l6ZSwgT3BUb1RoaXMsIG1fdmFsdWVQcm9maWxlLCBD
ZWxsVGFnLCB0MSwgdDIpCi0gICAgc3RvcmVpIENlbGxUYWcsIFRhZ09mZnNldFtjZnIsIHQwLCA4
XQotICAgIHN0b3JlaSB0MSwgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XQotICAgIGRpc3BhdGNo
KCkKIGVuZCkKIAogCkBAIC0xNDQyLDEzICsxNDMxLDExIEBAIGVuZCkKIGxsaW50T3BXaXRoUmV0
dXJuKG9wX2lzX2NlbGxfd2l0aF90eXBlLCBPcElzQ2VsbFdpdGhUeXBlLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRD
b25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwLCB0MykKLSAgICBiaW5lcSB0MCwgQ2VsbFRh
ZywgLnJldHVybkZhbHNlQ2FzZQotICAgIGdldHUoc2l6ZSwgT3BJc0NlbGxXaXRoVHlwZSwgbV9m
aXJzdFR5cGUsIHQwKQotICAgIGJiYiBKU0NlbGw6Om1fdHlwZVt0M10sIHQwLCAucmV0dXJuRmFs
c2VDYXNlCi0gICAgZ2V0dShzaXplLCBPcElzQ2VsbFdpdGhUeXBlLCBtX2xhc3RUeXBlLCB0MCkK
LSAgICBiYmEgSlNDZWxsOjptX3R5cGVbdDNdLCB0MCwgLnJldHVybkZhbHNlQ2FzZQotICAgIHJl
dHVybihCb29sZWFuVGFnLCAxKQotLnJldHVybkZhbHNlQ2FzZToKKyAgICBiaW5lcSB0MCwgQ2Vs
bFRhZywgLm5vdENlbGxDYXNlCisgICAgZ2V0dShzaXplLCBPcElzQ2VsbFdpdGhUeXBlLCBtX3R5
cGUsIHQwKQorICAgIGNiZXEgSlNDZWxsOjptX3R5cGVbdDNdLCB0MCwgdDEKKyAgICByZXR1cm4o
Qm9vbGVhblRhZywgdDEpCisubm90Q2VsbENhc2U6CiAgICAgcmV0dXJuKEJvb2xlYW5UYWcsIDAp
CiBlbmQpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXI2NC5hc20KaW5kZXggYjQzNzMwZTMyNmUxLi4yZTYzYmZiN2JhNzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQu
YXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
NjQuYXNtCkBAIC04NzYsMjggKzg3NiwyMCBAQCBsbGludE9wV2l0aFJldHVybihvcF9nZXRfc2Nv
cGUsIE9wR2V0U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCiBlbmQp
CiAKIAotbGxpbnRPcChvcF90b190aGlzLCBPcFRvVGhpcywgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gpCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3RvX3RoaXMsIE9wVG9UaGlzLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKICAgICBnZXQobV9zcmNEc3Qs
IHQwKQotICAgIGxvYWRxIFtjZnIsIHQwLCA4XSwgdDEKLSAgICBidHFueiB0MSwgbm90Q2VsbE1h
c2ssIC5vcFRvVGhpc05vdENlbGwKLSAgICBiYmIgSlNDZWxsOjptX3R5cGVbdDFdLCBPYmplY3RU
eXBlLCAub3BUb1RoaXNTbG93Ci0gICAgdmFsdWVQcm9maWxlKHNpemUsIE9wVG9UaGlzLCBtX3Zh
bHVlUHJvZmlsZSwgdDEsIHQyKQorICAgIGxvYWRxIFtjZnIsIHQwLCA4XSwgdDAKKyAgICBidHFu
eiB0MCwgbm90Q2VsbE1hc2ssIC5vcFRvVGhpc1Nsb3cKKyAgICBiYm5lcSBKU0NlbGw6Om1fdHlw
ZVt0MF0sIEZpbmFsT2JqZWN0VHlwZSwgLm9wVG9UaGlzU2xvdworICAgIGxvYWRpIEpTQ2VsbDo6
bV9zdHJ1Y3R1cmVJRFt0MF0sIHQxCisgICAgbWV0YWRhdGEodDIsIHQzKQorICAgIGxvYWRpIE9w
VG9UaGlzOjpNZXRhZGF0YTo6bV9jYWNoZWRTdHJ1Y3R1cmVJRFt0Ml0sIHQyCisgICAgYmluZXEg
dDEsIHQyLCAub3BUb1RoaXNTbG93CiAgICAgZGlzcGF0Y2goKQogCi0ub3BUb1RoaXNOb3RDZWxs
OgotICAgIGFuZHEgflRhZ1VuZGVmaW5lZCwgdDEKLSAgICBicWVxIHQxLCBWYWx1ZU51bGwsIC5v
cFRvVGhpc1VuZGVmaW5lZE9yTnVsbAogLm9wVG9UaGlzU2xvdzoKICAgICBjYWxsU2xvd1BhdGgo
X3Nsb3dfcGF0aF90b190aGlzKQogICAgIGRpc3BhdGNoKCkKLQotLm9wVG9UaGlzVW5kZWZpbmVk
T3JOdWxsOgotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQotICAgIGxvYWRwIENvZGVCbG9j
azo6bV9nbG9iYWxPYmplY3RbdDFdLCB0MQotICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0OjptX2ds
b2JhbFRoaXNbdDFdLCB0MQotICAgIHZhbHVlUHJvZmlsZShzaXplLCBPcFRvVGhpcywgbV92YWx1
ZVByb2ZpbGUsIHQxLCB0MikKLSAgICBzdG9yZXEgdDEsIFtjZnIsIHQwLCA4XQotICAgIGRpc3Bh
dGNoKCkKIGVuZCkKIAogCkBAIC0xNTU0LDE3ICsxNTQ2LDE1IEBAIGVsc2UKICAgICBlbmQpCiBl
bmQKIAotCiBsbGludE9wV2l0aFJldHVybihvcF9pc19jZWxsX3dpdGhfdHlwZSwgT3BJc0NlbGxX
aXRoVHlwZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBnZXR1KHNp
emUsIE9wSXNDZWxsV2l0aFR5cGUsIG1fdHlwZSwgdDApCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEp
CiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDMpCi0gICAgYnRxbnogdDMs
IG5vdENlbGxNYXNrLCAucmV0dXJuRmFsc2VDYXNlCi0gICAgZ2V0dShzaXplLCBPcElzQ2VsbFdp
dGhUeXBlLCBtX2ZpcnN0VHlwZSwgdDApCi0gICAgYmJiIEpTQ2VsbDo6bV90eXBlW3QzXSwgdDAs
IC5yZXR1cm5GYWxzZUNhc2UKLSAgICBnZXR1KHNpemUsIE9wSXNDZWxsV2l0aFR5cGUsIG1fbGFz
dFR5cGUsIHQwKQotICAgIGJiYSBKU0NlbGw6Om1fdHlwZVt0M10sIHQwLCAucmV0dXJuRmFsc2VD
YXNlCi0gICAgcmV0dXJuKFZhbHVlVHJ1ZSkKLS5yZXR1cm5GYWxzZUNhc2U6CisgICAgYnRxbnog
dDMsIG5vdENlbGxNYXNrLCAubm90Q2VsbENhc2UKKyAgICBjYmVxIEpTQ2VsbDo6bV90eXBlW3Qz
XSwgdDAsIHQxCisgICAgb3JxIFZhbHVlRmFsc2UsIHQxCisgICAgcmV0dXJuKHQxKQorLm5vdENl
bGxDYXNlOgogICAgIHJldHVybihWYWx1ZUZhbHNlKQogZW5kKQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggMjhiYWYzNDE5ZWM0
Li41MzE4NTZiNDc1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5jcHAKQEAgLTM3OSw3ICszNzksNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oYXJyYXlQcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxG
cmFtZS0+dGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRo
aXNWYWx1ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSk7CiAKICAg
ICAvLyAxLiBMZXQgYXJyYXkgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIFRvT2JqZWN0IG9uIHRo
ZSB0aGlzIHZhbHVlLgogICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gdGhpc1ZhbHVlLnRvT2Jq
ZWN0KGdsb2JhbE9iamVjdCk7CkBAIC00ODAsMTIgKzQ4MCwxMyBAQCBKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNUb0xvY2FsZVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYgogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBj
YWxsRnJhbWUtPnRoaXNWYWx1ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJp
Y3QoKSk7CiAKICAgICBKU1ZhbHVlIGxvY2FsZXMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwog
ICAgIEpTVmFsdWUgb3B0aW9ucyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMSk7CiAKICAgICAvLyAx
LiBMZXQgYXJyYXkgYmUgPyBUb09iamVjdCh0aGlzIHZhbHVlKS4KLSAgICBKU09iamVjdCogdGhp
c09iamVjdCA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsK
KyAgICBKU09iamVjdCogdGhpc09iamVjdCA9IHRoaXNWYWx1ZS50b09iamVjdChnbG9iYWxPYmpl
Y3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBTdHJpbmdS
ZWN1cnNpb25DaGVja2VyIGNoZWNrZXIoZ2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KTsKQEAgLTYw
NCw3ICs2MDUsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNKb2lu
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIC8vIDEuIExldCBPIGJlID8gVG9PYmplY3Qo
dGhpcyB2YWx1ZSkuCi0gICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpLnRvT2JqZWN0KGdsb2JhbE9iamVjdCk7CisgICAgSlNPYmplY3QqIHRoaXNPYmplY3Qg
PSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpz
dHJpY3QoKSkudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKICAgICBFWENFUFRJT05fQVNTRVJUKCEh
c2NvcGUuZXhjZXB0aW9uKCkgPT0gIXRoaXNPYmplY3QpOwogICAgIGlmIChVTkxJS0VMWSghdGhp
c09iamVjdCkpCiAgICAgICAgIHJldHVybiBlbmNvZGVkSlNWYWx1ZSgpOwpAQCAtNjU0LDcgKzY1
NSw3IEBAIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjcmVhdGVBcnJheUl0ZXJhdG9yT2JqZWN0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAg
IEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gY2FsbEZyYW1lLT50aGlzVmFsdWUoKS50b09iamVjdChn
bG9iYWxPYmplY3QpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gY2FsbEZyYW1lLT50aGlz
VmFsdWUoKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkpLnRvT2JqZWN0
KGdsb2JhbE9iamVjdCk7CiAgICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3BlLmV4Y2VwdGlvbigp
ID09ICF0aGlzT2JqZWN0KTsKICAgICBVTlVTRURfUEFSQU0oc2NvcGUpOwogICAgIGlmIChVTkxJ
S0VMWSghdGhpc09iamVjdCkpCkBAIC02ODMsNyArNjg0LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGFycmF5UHJvdG9GdW5jUG9wLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEYKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxs
RnJhbWUtPnRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1lLT50
aGlzVmFsdWUoKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkpOwogCiAg
ICAgaWYgKGlzSlNBcnJheSh0aGlzVmFsdWUpKQogICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShhc0FycmF5KHRoaXNWYWx1ZSktPnBvcChnbG9iYWxPYmpl
Y3QpKSk7CkBAIC03MjEsNyArNzIyLDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5
UHJvdG9GdW5jUHVzaCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1lLT50aGlz
VmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCku
dG9UaGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKTsKIAogICAgIGlmIChMSUtF
TFkoaXNKU0FycmF5KHRoaXNWYWx1ZSkgJiYgY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPT0g
MSkpIHsKICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBhc0FycmF5KHRoaXNWYWx1ZSk7CkBAIC03
NTcsNyArNzU4LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jUmV2
ZXJzZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCi0gICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLnRv
T2JqZWN0KGdsb2JhbE9iamVjdCk7CisgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBjYWxsRnJh
bWUtPnRoaXNWYWx1ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSku
dG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKICAgICBFWENFUFRJT05fQVNTRVJUKCEhc2NvcGUuZXhj
ZXB0aW9uKCkgPT0gIXRoaXNPYmplY3QpOwogICAgIGlmIChVTkxJS0VMWSghdGhpc09iamVjdCkp
CiAgICAgICAgIHJldHVybiBlbmNvZGVkSlNWYWx1ZSgpOwpAQCAtODU5LDcgKzg2MCw3IEBAIEpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1NoaWZ0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBKU09iamVj
dCogdGhpc09iaiA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9PYmplY3QoZ2xvYmFsT2JqZWN0
KTsKKyAgICBKU09iamVjdCogdGhpc09iaiA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9UaGlz
KGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKS50b09iamVjdChnbG9iYWxPYmplY3Qp
OwogICAgIEVYQ0VQVElPTl9BU1NFUlQoISFzY29wZS5leGNlcHRpb24oKSA9PSAhdGhpc09iaik7
CiAgICAgaWYgKFVOTElLRUxZKCF0aGlzT2JqKSkKICAgICAgICAgcmV0dXJuIGVuY29kZWRKU1Zh
bHVlKCk7CkBAIC04ODYsNyArODg3LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5
UHJvdG9GdW5jU2xpY2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKICAgICAv
LyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuc2xp
Y2UKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gY2FsbEZyYW1l
LT50aGlzVmFsdWUoKS50b09iamVjdChnbG9iYWxPYmplY3QpOworICAgIEpTT2JqZWN0KiB0aGlz
T2JqID0gY2FsbEZyYW1lLT50aGlzVmFsdWUoKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9k
ZTo6c3RyaWN0KCkpLnRvT2JqZWN0KGdsb2JhbE9iamVjdCk7CiAgICAgRVhDRVBUSU9OX0FTU0VS
VCghIXNjb3BlLmV4Y2VwdGlvbigpID09ICF0aGlzT2JqKTsKICAgICBpZiAoVU5MSUtFTFkoIXRo
aXNPYmopKQogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTE2NCw3ICsxMTY1LDcgQEAgSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jU29ydCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGwKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgIkFycmF5LnByb3RvdHlwZS5zb3J0IHJlcXVpcmVzIHRoZSBjb21wYXJh
dG9yIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24gb3IgdW5kZWZpbmVkIl9zKTsKIAogICAgIGJv
b2wgaXNTdHJpbmdTb3J0ID0gY29tcGFyYXRvclZhbHVlLmlzVW5kZWZpbmVkKCk7Ci0gICAgSlNP
YmplY3QqIHRoaXNPYmplY3QgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLnRvT2JqZWN0KGdsb2Jh
bE9iamVjdCk7CisgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSkudG9PYmplY3QoZ2xv
YmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAg
dWludDY0X3QgbGVuZ3RoID0gdG9MZW5ndGgoZ2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KTsKQEAg
LTEyMTcsNyArMTIxOCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVu
Y1NwbGljZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhCiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKIAotICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gY2FsbEZyYW1lLT50aGlzVmFsdWUoKS50
b09iamVjdChnbG9iYWxPYmplY3QpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gY2FsbEZyYW1l
LT50aGlzVmFsdWUoKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkpLnRv
T2JqZWN0KGdsb2JhbE9iamVjdCk7CiAgICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3BlLmV4Y2Vw
dGlvbigpID09ICF0aGlzT2JqKTsKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNPYmopKQogICAgICAg
ICByZXR1cm4gZW5jb2RlZEpTVmFsdWUoKTsKQEAgLTEzMjMsNyArMTMyNCw3IEBAIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1VuU2hpZnQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogICAgIC8vIDE1LjQuNC4xMwogCi0gICAgSlNPYmplY3QqIHRoaXNPYmogPSBjYWxsRnJhbWUt
PnRoaXNWYWx1ZSgpLnRvT2JqZWN0KGdsb2JhbE9iamVjdCk7CisgICAgSlNPYmplY3QqIHRoaXNP
YmogPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2Rl
OjpzdHJpY3QoKSkudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKICAgICBFWENFUFRJT05fQVNTRVJU
KCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0gIXRoaXNPYmopOwogICAgIGlmIChVTkxJS0VMWSghdGhp
c09iaikpCiAgICAgICAgIHJldHVybiBlbmNvZGVkSlNWYWx1ZSgpOwpAQCAtMTQ3MCw3ICsxNDcx
LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jSW5kZXhPZiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAKICAgICAvLyAxNS40LjQuMTQKLSAgICBKU09iamVjdCogdGhpc09i
amVjdCA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKKyAg
ICBKU09iamVjdCogdGhpc09iamVjdCA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9UaGlzKGds
b2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKS50b09iamVjdChnbG9iYWxPYmplY3QpOwog
ICAgIEVYQ0VQVElPTl9BU1NFUlQoISFzY29wZS5leGNlcHRpb24oKSA9PSAhdGhpc09iamVjdCk7
CiAgICAgaWYgKFVOTElLRUxZKCF0aGlzT2JqZWN0KSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAg
LTE1MTAsNyArMTUxMSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVu
Y0xhc3RJbmRleE9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgLy8gMTUuNC40LjE1Ci0gICAgSlNP
YmplY3QqIHRoaXNPYmplY3QgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLnRvT2JqZWN0KGdsb2Jh
bE9iamVjdCk7CisgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSkudG9PYmplY3QoZ2xv
YmFsT2JqZWN0KTsKICAgICBFWENFUFRJT05fQVNTRVJUKCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0g
IXRoaXNPYmplY3QpOwogICAgIGlmIChVTkxJS0VMWSghdGhpc09iamVjdCkpCiAgICAgICAgIHJl
dHVybiB7IH07CkBAIC0xODEwLDYgKzE4MTEsOCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
YXJyYXlQcm90b0Z1bmNDb25jYXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYQog
ICAgICAgICB9CiAgICAgfQogCisgICAgdGhpc1ZhbHVlID0gdGhpc1ZhbHVlLnRvVGhpcyhnbG9i
YWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKICAgICBpZiAodGhpc1ZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJBcnJheS5w
cm90b3R5cGUuY29uY2F0IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVm
aW5lZCJfcyk7CiAgICAgSlNPYmplY3QqIGN1cnJlbnRFbGVtZW50T2JqZWN0ID0gdGhpc1ZhbHVl
LnRvT2JqZWN0KGdsb2JhbE9iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bc3luY0l0ZXJhdG9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FzeW5jSXRlcmF0b3JQcm90b3R5cGUuY3BwCmluZGV4IDBiNjJjNjI5ZWI5
Yy4uYzczNDBlMTc0OTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bc3luY0l0ZXJhdG9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Bc3luY0l0ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtNDMsOSArNDMsOSBAQCB2b2lk
IEFzeW5jSXRlcmF0b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdAogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5hc3luY0l0ZXJhdG9yU3ltYm9sLCBhc3luY0l0ZXJhdG9yRnVuY3Rp
b24sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsK
IH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFzeW5jSXRlcmF0b3JQcm90b0Z1bmNBc3lu
Y0l0ZXJhdG9yLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oYXN5bmNJdGVyYXRvclByb3RvRnVuY0FzeW5jSXRlcmF0b3Is
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9UaGlzKGds
b2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5j
cHAKaW5kZXggMGE5NmY0YWJmMWZiLi41NGI5ZjNmNTU5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtMjczLDggKzI3Mywy
OCBAQCBKU0NfREVGSU5FX0NPTU1PTl9TTE9XX1BBVEgoc2xvd19wYXRoX3RvX3RoaXMpCiB7CiAg
ICAgQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wVG9UaGlzPigpOworICAg
IGF1dG8mIG1ldGFkYXRhID0gYnl0ZWNvZGUubWV0YWRhdGEoY29kZUJsb2NrKTsKICAgICBKU1Zh
bHVlIHYxID0gR0VUKGJ5dGVjb2RlLm1fc3JjRHN0KS5qc1ZhbHVlKCk7Ci0gICAgSlNPYmplY3Qq
IHZhbHVlID0gdjEudG9TbG9wcHlNb2RlVGhpcyhnbG9iYWxPYmplY3QpOworICAgIGlmICh2MS5p
c0NlbGwoKSkgeworICAgICAgICBTdHJ1Y3R1cmVJRCBteVN0cnVjdHVyZUlEID0gdjEuYXNDZWxs
KCktPnN0cnVjdHVyZUlEKCk7CisgICAgICAgIFN0cnVjdHVyZUlEIG90aGVyU3RydWN0dXJlSUQg
PSBtZXRhZGF0YS5tX2NhY2hlZFN0cnVjdHVyZUlEOworICAgICAgICBpZiAobXlTdHJ1Y3R1cmVJ
RCAhPSBvdGhlclN0cnVjdHVyZUlEKSB7CisgICAgICAgICAgICBpZiAob3RoZXJTdHJ1Y3R1cmVJ
RCkKKyAgICAgICAgICAgICAgICBtZXRhZGF0YS5tX3RvVGhpc1N0YXR1cyA9IFRvVGhpc0NvbmZs
aWN0ZWQ7CisgICAgICAgICAgICBtZXRhZGF0YS5tX2NhY2hlZFN0cnVjdHVyZUlEID0gbXlTdHJ1
Y3R1cmVJRDsKKyAgICAgICAgICAgIHZtLndyaXRlQmFycmllcihjb2RlQmxvY2ssIG15U3RydWN0
dXJlSUQuZGVjb2RlKCkpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgbWV0YWRh
dGEubV90b1RoaXNTdGF0dXMgPSBUb1RoaXNDb25mbGljdGVkOworICAgICAgICBtZXRhZGF0YS5t
X2NhY2hlZFN0cnVjdHVyZUlEID0gU3RydWN0dXJlSUQoKTsKKyAgICB9CisgICAgLy8gTm90ZTog
V2Ugb25seSBuZWVkIHRvIGRvIHRoaXMgdmFsdWUgcHJvZmlsaW5nIGhlcmUgb24gdGhlIHNsb3cg
cGF0aC4gVGhlIGZhc3QgcGF0aAorICAgIC8vIGp1c3QgcmV0dXJucyB0aGUgaW5wdXQgdG8gdG9f
dGhpcyBpZiB0aGUgc3RydWN0dXJlIGNoZWNrIHN1Y2NlZWRzLiBJZiB0aGUgc3RydWN0dXJlCisg
ICAgLy8gY2hlY2sgc3VjY2VlZHMsIGRvaW5nIHZhbHVlIHByb2ZpbGluZyBoZXJlIGlzIGVxdWl2
YWxlbnQgdG8gZG9pbmcgaXQgd2l0aCBhIHBvdGVudGlhbGx5CisgICAgLy8gZGlmZmVyZW50IG9i
amVjdCB0aGF0IHN0aWxsIGhhcyB0aGUgc2FtZSBzdHJ1Y3R1cmUgb24gdGhlIGZhc3QgcGF0aCBz
aW5jZSBpdCdsbCBwcm9kdWNlCisgICAgLy8gdGhlIHNhbWUgU3BlY3VsYXRlZFR5cGUuIFRoZXJl
Zm9yZSwgd2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCB2YWx1ZSBwcm9maWxpbmcgb24gdGhl
CisgICAgLy8gZmFzdCBwYXRoLgorICAgIGF1dG8gdmFsdWUgPSB2MS50b1RoaXMoZ2xvYmFsT2Jq
ZWN0LCBieXRlY29kZS5tX2VjbWFNb2RlKTsKICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkdfQ1VT
VE9NKGJ5dGVjb2RlLm1fc3JjRHN0LCB2YWx1ZSwgUFJPRklMRV9WQUxVRSh2YWx1ZSkpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCmluZGV4IGEy
NjYzNzVjZTEwMC4uYjk1NzkyMzMwMzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21wbGV0aW9uLmNwcApAQCAtMTMyLDcgKzEzMiw5IEBAIEpTVmFsdWUgZXZhbHVhdGUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBK
U1ZhbHVlCiAgICAgUkVMRUFTRV9BU1NFUlQodm0uYXRvbVN0cmluZ1RhYmxlKCkgPT0gVGhyZWFk
OjpjdXJyZW50KCkuYXRvbVN0cmluZ1RhYmxlKCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKCF2bS5p
c0NvbGxlY3RvckJ1c3lPbkN1cnJlbnRUaHJlYWQoKSk7CiAKLSAgICBKU09iamVjdCogdGhpc09i
aiA9IHRoaXNWYWx1ZSA/IHRoaXNWYWx1ZS50b1Nsb3BweU1vZGVUaGlzKGdsb2JhbE9iamVjdCkg
OiBnbG9iYWxPYmplY3QtPmdsb2JhbFRoaXMoKTsKKyAgICBpZiAoIXRoaXNWYWx1ZSB8fCB0aGlz
VmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKKyAgICAgICAgdGhpc1ZhbHVlID0gZ2xvYmFsT2Jq
ZWN0OworICAgIEpTT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PEpTT2JqZWN0Kj4odGhpc1ZhbHVl
LnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzbG9wcHkoKSkpOwogICAgIEpTVmFsdWUg
cmVzdWx0ID0gdm0uaW50ZXJwcmV0ZXIuZXhlY3V0ZVByb2dyYW0oc291cmNlLCBnbG9iYWxPYmpl
Y3QsIHRoaXNPYmopOwogCiAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewpA
QCAtMTYwLDcgKzE2Miw3IEBAIEpTVmFsdWUgZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24oSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU291cmNlQ29kCiAgICAgICAgIGdsb2Jh
bE9iamVjdC0+c2V0R2xvYmFsU2NvcGVFeHRlbnNpb24oSlNXaXRoU2NvcGU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBpZ25vcmVkUHJldmlvdXNTY29wZSwgc2NvcGVFeHRlbnNpb25PYmplY3Qp
KTsKICAgICB9CiAKLSAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0gSlNDOjpldmFsdWF0ZShnbG9i
YWxPYmplY3QsIHNvdXJjZSwgZ2xvYmFsT2JqZWN0LT5nbG9iYWxUaGlzKCksIHJldHVybmVkRXhj
ZXB0aW9uKTsKKyAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0gSlNDOjpldmFsdWF0ZShnbG9iYWxP
YmplY3QsIHNvdXJjZSwgZ2xvYmFsT2JqZWN0LCByZXR1cm5lZEV4Y2VwdGlvbik7CiAKICAgICBp
ZiAoc2NvcGVFeHRlbnNpb25PYmplY3QpCiAgICAgICAgIGdsb2JhbE9iamVjdC0+Y2xlYXJHbG9i
YWxTY29wZUV4dGVuc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlUHJvdG90eXBlLmNwcAppbmRleCA4ZWQ2YjQyYzk1NmYuLjcxZDZjNDk1MzcxOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKQEAgLTM2
Nyw3ICszNjcsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1RvUHJp
bWl0aXZlU3ltYm9sLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpOworICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1lLT50aGlzVmFsdWUoKS50b1RoaXMoZ2xvYmFs
T2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkpOwogICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0
KCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJEYXRlLnByb3RvdHlwZVtTeW1ib2wudG9QcmltaXRpdmVdIGV4cGVjdGVkIHx0aGlzfCB0byBi
ZSBhbiBvYmplY3QuIl9zKTsKICAgICBKU09iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU09i
amVjdCo+KHRoaXNWYWx1ZSk7CkBAIC05MDgsNyArOTA4LDggQEAgSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGRhdGVQcm90b0Z1bmNUb0pTT04sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWwKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIEpTT2JqZWN0KiBvYmplY3QgPSBjYWxs
RnJhbWUtPnRoaXNWYWx1ZSgpLnRvT2JqZWN0KGdsb2JhbE9iamVjdCk7CisgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVD
TUFNb2RlOjpzdHJpY3QoKSk7CisgICAgSlNPYmplY3QqIG9iamVjdCA9IHRoaXNWYWx1ZS50b09i
amVjdChnbG9iYWxPYmplY3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29k
ZWRKU1ZhbHVlKCkpOwogCiAgICAgSlNWYWx1ZSB0aW1lVmFsdWUgPSBvYmplY3QtPnRvUHJpbWl0
aXZlKGdsb2JhbE9iamVjdCwgUHJlZmVyTnVtYmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcAppbmRleCAwOGIxZTVhNTc3MzEuLjAzYzhi
MDU2NDY2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQ
cm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJv
dG90eXBlLmNwcApAQCAtNzMsNyArNzMsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZXJy
b3JQcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgLy8gMS4gTGV0IE8g
YmUgdGhlIHRoaXMgdmFsdWUuCi0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRo
aXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1lLT50aGlzVmFsdWUo
KS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkpOwogCiAgICAgLy8gMi4g
SWYgVHlwZShPKSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCiAg
ICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDSlNWYWx1ZS5jcHAKaW5kZXggY2Q2ZjI2MmZhZDhkLi4zOWE4NDhjM2YwYTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCkBAIC0xNjQs
NiArMTY0LDIwIEBAIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdFNsb3dDYXNlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0pT
VmFsdWUgSlNWYWx1ZTo6dG9UaGlzU2xvcHB5U2xvd0Nhc2UoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkgY29uc3QKK3sKKyAgICBpZiAoaXNJbnQzMigpIHx8IGlzRG91YmxlKCkpCisgICAg
ICAgIHJldHVybiBjb25zdHJ1Y3ROdW1iZXIoZ2xvYmFsT2JqZWN0LCBhc1ZhbHVlKCkpOworICAg
IGlmIChpc1RydWUoKSB8fCBpc0ZhbHNlKCkpCisgICAgICAgIHJldHVybiBjb25zdHJ1Y3RCb29s
ZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oZ2xvYmFsT2JqZWN0LCBhc1ZhbHVlKCkpOworI2lmIFVT
RShCSUdJTlQzMikKKyAgICBpZiAoaXNCaWdJbnQzMigpKQorICAgICAgICByZXR1cm4gQmlnSW50
T2JqZWN0OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QsICp0aGlzKTsK
KyNlbmRpZgorICAgIEFTU0VSVChpc0NlbGwoKSk7CisgICAgcmV0dXJuIHRvT2JqZWN0KGdsb2Jh
bE9iamVjdCk7Cit9CisKIEpTT2JqZWN0KiBKU1ZhbHVlOjpzeW50aGVzaXplUHJvdG90eXBlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDSlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5o
CmluZGV4IGM1NDdiNTdiNjYzZS4uNmNjYTI0Yzc3ZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBAIC0zNTcsNyArMzU3LDcgQEAgcHVibGljOgogICAg
IGJvb2wgcHV0QnlJbmRleChKU0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSwgYm9vbCBzaG91bGRUaHJvdyk7CiAKICAgICBKU1ZhbHVlIGdldFByb3RvdHlwZShK
U0dsb2JhbE9iamVjdCopIGNvbnN0OwotICAgIEpTT2JqZWN0KiB0b1Nsb3BweU1vZGVUaGlzKEpT
R2xvYmFsT2JqZWN0KikgY29uc3Q7CisgICAgSlNWYWx1ZSB0b1RoaXMoSlNHbG9iYWxPYmplY3Qq
LCBFQ01BTW9kZSkgY29uc3Q7CiAKICAgICBzdGF0aWMgYm9vbCBlcXVhbChKU0dsb2JhbE9iamVj
dCosIEpTVmFsdWUgdjEsIEpTVmFsdWUgdjIpOwogICAgIHN0YXRpYyBib29sIGVxdWFsU2xvd0Nh
c2UoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYyKTsKQEAgLTU0Nyw2ICs1
NDcsNyBAQCBwcml2YXRlOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTU3RyaW5nKiB0b1N0cmlu
Z1Nsb3dDYXNlKEpTR2xvYmFsT2JqZWN0KiwgYm9vbCByZXR1cm5FbXB0eVN0cmluZ09uRXJyb3Ip
IGNvbnN0OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIFdURjo6U3RyaW5nIHRvV1RGU3RyaW5nU2xv
d0Nhc2UoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICBKU19FWFBPUlRfUFJJVkFURSBKU09i
amVjdCogdG9PYmplY3RTbG93Q2FzZShKU0dsb2JhbE9iamVjdCopIGNvbnN0OworICAgIEpTX0VY
UE9SVF9QUklWQVRFIEpTVmFsdWUgdG9UaGlzU2xvcHB5U2xvd0Nhc2UoSlNHbG9iYWxPYmplY3Qq
KSBjb25zdDsKIAogICAgIEVuY29kZWRWYWx1ZURlc2NyaXB0b3IgdTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAppbmRleCBiNzc0
ZGM5NzFmMzMuLjUxNWNmNGE1NTdiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBAIC0xMDI5LDkgKzEwMjksMjIgQEAgaW5saW5l
IGNvbnN0IENsYXNzSW5mbyogSlNWYWx1ZTo6Y2xhc3NJbmZvT3JOdWxsKCkgY29uc3QKICAgICBy
ZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Y2xhc3NJbmZvKCkgOiBudWxscHRyOwogfQogCi1B
TFdBWVNfSU5MSU5FIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b1Nsb3BweU1vZGVUaGlzKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CitpbmxpbmUgSlNWYWx1ZSBKU1ZhbHVlOjp0b1Ro
aXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRUNNQU1vZGUgZWNtYU1vZGUpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIGlzVW5kZWZpbmVkT3JOdWxsKCkgPyBnbG9iYWxPYmplY3QtPmdsb2Jh
bFRoaXMoKSA6IHRvT2JqZWN0KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGlzT2JqZWN0KCkpIHsK
KyAgICAgICAgaWYgKGFzT2JqZWN0KCp0aGlzKS0+aW5oZXJpdHM8SlNTY29wZT4oKSkKKyAgICAg
ICAgICAgIHJldHVybiBlY21hTW9kZS5pc1N0cmljdCgpID8ganNVbmRlZmluZWQoKSA6IGdsb2Jh
bE9iamVjdC0+Z2xvYmFsVGhpcygpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisg
ICAgaWYgKGVjbWFNb2RlLmlzU3RyaWN0KCkpCisgICAgICAgIHJldHVybiAqdGhpczsKKworICAg
IEFTU0VSVCghZWNtYU1vZGUuaXNTdHJpY3QoKSk7CisgICAgaWYgKGlzVW5kZWZpbmVkT3JOdWxs
KCkpCisgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbFRoaXMoKTsKKworICAgIHJl
dHVybiB0b1RoaXNTbG9wcHlTbG93Q2FzZShnbG9iYWxPYmplY3QpOwogfQogCiBBTFdBWVNfSU5M
SU5FIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2FzdC5oCmluZGV4IGI1MTk2N2I2NmMxNS4uZmI1ZjJhMzZhMTdkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaApAQCAtNjAsMTAgKzYwLDYgQEAgaW5saW5lIFRvIGpz
Q2FzdChKU1ZhbHVlIGZyb20pCiAvLyBUaGUgZmlyc3QgYW5kIGxhc3QgSlNUeXBlIGFyZSBpbmNs
dXNpdmUKIHN0cnVjdCBKU1R5cGVSYW5nZSB7CiAgICAgYm9vbCBjb250YWlucyhKU1R5cGUgdHlw
ZSkgY29uc3QgeyByZXR1cm4gZmlyc3QgPD0gdHlwZSAmJiB0eXBlIDw9IGxhc3Q7IH0KLSAgICB1
aW50MTZfdCByYXdCaXRzKCkgY29uc3QgeyByZXR1cm4gKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGZp
cnN0KSA8PCA4KSB8IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGxhc3QpOyB9Ci0gICAgdm9pZCBkdW1w
KFByaW50U3RyZWFtJiBvdXQpIGNvbnN0IHsgb3V0LnByaW50KCJKU1R5cGVSYW5nZSB7ICIsIGZp
cnN0LCAiLCAiLCBsYXN0LCAiIH0iKTsgfQotCi0gICAgc3RhdGljIEpTVHlwZVJhbmdlIGZyb21C
aXRzKHVpbnQxNl90IGJpdHMpIHsgcmV0dXJuIEpTVHlwZVJhbmdlIHsgc3RhdGljX2Nhc3Q8SlNU
eXBlPihiaXRzID4+IDgpLCBzdGF0aWNfY2FzdDxKU1R5cGU+KGJpdHMgJiAweGZmKSB9OyB9CiAK
ICAgICBKU1R5cGUgZmlyc3Q7CiAgICAgSlNUeXBlIGxhc3Q7CkBAIC0xNzEsNyArMTY3LDcgQEAg
dXNpbmcgSlNSZXNpemFibGVPckdyb3dhYmxlU2hhcmVkQmlnVWludDY0QXJyYXkgPSBKU0dlbmVy
aWNSZXNpemFibGVPckdyb3dhYmxlU2gKICAgICBtYWNybyhKU01vZHVsZUVudmlyb25tZW50LCBK
U1R5cGU6Ok1vZHVsZUVudmlyb25tZW50VHlwZSwgSlNUeXBlOjpNb2R1bGVFbnZpcm9ubWVudFR5
cGUpIFwKICAgICBtYWNybyhKU0xleGljYWxFbnZpcm9ubWVudCwgSlNUeXBlOjpMZXhpY2FsRW52
aXJvbm1lbnRUeXBlLCBKU1R5cGU6Ok1vZHVsZUVudmlyb25tZW50VHlwZSkgXAogICAgIG1hY3Jv
KEpTU3ltYm9sVGFibGVPYmplY3QsIEpTVHlwZTo6R2xvYmFsT2JqZWN0VHlwZSwgSlNUeXBlOjpN
b2R1bGVFbnZpcm9ubWVudFR5cGUpIFwKLSAgICBtYWNybyhKU1Njb3BlLCBKU1R5cGU6Okdsb2Jh
bE9iamVjdFR5cGUsIEpTVHlwZTo6V2l0aFNjb3BlVHlwZSkgXAorICAgIG1hY3JvKEpTU2NvcGUs
IEZpcnN0U2NvcGVUeXBlLCBMYXN0U2NvcGVUeXBlKSBcCiAgICAgbWFjcm8oU3RyaW5nT2JqZWN0
LCBKU1R5cGU6OlN0cmluZ09iamVjdFR5cGUsIEpTVHlwZTo6RGVyaXZlZFN0cmluZ09iamVjdFR5
cGUpIFwKICAgICBtYWNybyhTaGFkb3dSZWFsbU9iamVjdCwgSlNUeXBlOjpTaGFkb3dSZWFsbVR5
cGUsIEpTVHlwZTo6U2hhZG93UmVhbG1UeXBlKSBcCiAgICAgbWFjcm8oSlNEYXRhVmlldywgSlNU
eXBlOjpEYXRhVmlld1R5cGUsIEpTVHlwZTo6RGF0YVZpZXdUeXBlKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCA0MzgyMTVlYmE2NzUu
LjgzM2MxMjMyMDlmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oCkBAIC0xMTk0LDIxICsxMTk0LDE0IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07
CiAKLWlubGluZSBKU09iamVjdCogSlNHbG9iYWxPYmplY3Q6Omdsb2JhbFRoaXMoKSBjb25zdAor
aW5saW5lIEpTT2JqZWN0KiBKU1Njb3BlOjpnbG9iYWxUaGlzKCkKIHsgCi0gICAgcmV0dXJuIG1f
Z2xvYmFsVGhpcy5nZXQoKTsKLX0KLQotQUxXQVlTX0lOTElORSBKU09iamVjdCogd3JhcEdsb2Jh
bE9iamVjdChKU09iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVChvYmplY3QpOwotICAgIHJl
dHVybiBvYmplY3QtPmlzR2xvYmFsT2JqZWN0KCkgPyBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihv
YmplY3QpLT5nbG9iYWxUaGlzKCkgOiBvYmplY3Q7CisgICAgcmV0dXJuIGdsb2JhbE9iamVjdCgp
LT5nbG9iYWxUaGlzKCk7CiB9CiAKLUFMV0FZU19JTkxJTkUgSlNWYWx1ZSB3cmFwR2xvYmFsT2Jq
ZWN0KEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgQVNTRVJUKHZhbHVlKTsKLSAgICByZXR1cm4gdmFs
dWUuaXNPYmplY3QoKSA/IHdyYXBHbG9iYWxPYmplY3QoYXNPYmplY3QodmFsdWUpKSA6IHZhbHVl
OworaW5saW5lIEpTT2JqZWN0KiBKU0dsb2JhbE9iamVjdDo6Z2xvYmFsVGhpcygpIGNvbnN0Cit7
IAorICAgIHJldHVybiBtX2dsb2JhbFRoaXMuZ2V0KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IGVjNmFlZDU0NzcxNi4uZWYxZTA5M2E1YzlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3RGdW5jdGlvbnMuY3BwCkBAIC03MjgsNyArNzI4LDggQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGdsb2JhbEZ1bmNNYWtlVHlwZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwKIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNQcm90b0dldHRlciwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkuZ2V0UHJvdG90
eXBlKGdsb2JhbE9iamVjdCkpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1lLT50
aGlzVmFsdWUoKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlLmdldFByb3RvdHlwZShnbG9iYWxPYmpl
Y3QpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNQcm90b1NldHRl
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
QEAgLTczNiw3ICs3MzcsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1By
b3RvU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCk7
CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLnRvVGhpcyhn
bG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSk7CiAgICAgaWYgKHRoaXNWYWx1ZS5pc1Vu
ZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCBPYmplY3RQcm90b0NhbGxlZE9uTnVsbE9yVW5kZWZpbmVkRXJyb3IpOwog
CkBAIC0xMTY2LDkgKzExNjcsOSBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVu
Y1RvTGVuZ3RoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYXJndW1lbnQudG9MZW5ndGgoZ2xvYmFsT2JqZWN0
KSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1NwZWNpZXNHZXR0
ZXIsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihnbG9iYWxGdW5jU3BlY2llc0dldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoY2FsbEZyYW1lLT50aGlzVmFsdWUoKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9k
ZTo6c3RyaWN0KCkpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0l0ZXJhdG9yUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSXRlcmF0b3JQcm90b3R5cGUuY3BwCmluZGV4IGU2
NWI1MGM5YTA4NS4uYTYxOWM4MjNmZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0l0ZXJhdG9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0l0ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtODYsOSArODYsOSBAQCB2
b2lkIEpTSXRlcmF0b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB9CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihpdGVyYXRvclByb3RvRnVuY0l0ZXJhdG9yLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oaXRlcmF0b3JQcm90b0Z1bmNJ
dGVyYXRvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxGcmFtZS0+dGhpc1ZhbHVl
KCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbEZyYW1lLT50aGlzVmFsdWUoKS50
b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkpKTsKIH0KIAogLy8gaHR0cHM6
Ly90YzM5LmVzL3Byb3Bvc2FsLWl0ZXJhdG9yLWhlbHBlcnMvI3NlYy1nZXQtaXRlcmF0b3Jwcm90
b3R5cGUtY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmNwcAppbmRleCBiYTcyNTI0NDFiNjEuLjY0OTdkYWZlMjQxMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtMjA2Niw3ICsyMDY2LDcgQEAgYm9vbCBK
U09iamVjdDo6c2V0UHJvdG90eXBlV2l0aEN5Y2xlQ2hlY2soVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LAogCiAgICAgLy8gRGVmYXVsdCByZWFsbSBnbG9iYWwgb2JqZWN0cyBz
aG91bGQgaGF2ZSBtdXRhYmxlIHByb3RvdHlwZXMgZGVzcGl0ZSBoYXZpbmcKICAgICAvLyBhIFBy
b3h5IGdsb2JhbFRoaXMuCi0gICAgQVNTRVJUKGlzR2xvYmFsT2JqZWN0KCkgfHwgIWluaGVyaXRz
PEpTU2NvcGU+KCkpOworICAgIEFTU0VSVCh0aGlzLT5pc0dsb2JhbE9iamVjdCgpIHx8IEpTVmFs
dWUodGhpcykudG9UaGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnNsb3BweSgpKSA9PSB0aGlz
KTsKIAogICAgIGlmICh0aGlzLT5nZXRQcm90b3R5cGVEaXJlY3QoKSA9PSBwcm90b3R5cGUpCiAg
ICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmgKaW5kZXggODBjNjk4ZTc1NGJiLi5kMzM5MThkZWJkZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtOTAwLDkgKzkwMCwxMSBAQCBwdWJsaWM6CiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3Qq
LCBKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9y
JiwgYm9vbCBzaG91bGRUaHJvdyk7CiAgICAgYm9vbCBjcmVhdGVEYXRhUHJvcGVydHkoSlNHbG9i
YWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpOwogCisg
ICAgYm9vbCBpc0Vudmlyb25tZW50KCkgY29uc3Q7CiAgICAgYm9vbCBpc0dsb2JhbE9iamVjdCgp
IGNvbnN0OwogICAgIGJvb2wgaXNKU0xleGljYWxFbnZpcm9ubWVudCgpIGNvbnN0OwogICAgIGJv
b2wgaXNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQoKSBjb25zdDsKKyAgICBib29sIGlzU3RyaWN0
RXZhbEFjdGl2YXRpb24oKSBjb25zdDsKICAgICBib29sIGlzV2l0aFNjb3BlKCkgY29uc3Q7CiAK
ICAgICBib29sIGlzRXJyb3JJbnN0YW5jZSgpIGNvbnN0OwpAQCAtMTM3OCw2ICsxMzgwLDE4IEBA
IGlubGluZSBib29sIEpTT2JqZWN0Ojppc0dsb2JhbExleGljYWxFbnZpcm9ubWVudCgpIGNvbnN0
CiAgICAgcmV0dXJuIHR5cGUoKSA9PSBHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnRUeXBlOwogfQog
CitpbmxpbmUgYm9vbCBKU09iamVjdDo6aXNTdHJpY3RFdmFsQWN0aXZhdGlvbigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHR5cGUoKSA9PSBTdHJpY3RFdmFsQWN0aXZhdGlvblR5cGU7Cit9CisKK2lu
bGluZSBib29sIEpTT2JqZWN0Ojppc0Vudmlyb25tZW50KCkgY29uc3QKK3sKKyAgICBib29sIHJl
c3VsdCA9IEdsb2JhbE9iamVjdFR5cGUgPD0gdHlwZSgpICYmIHR5cGUoKSA8PSBTdHJpY3RFdmFs
QWN0aXZhdGlvblR5cGU7CisgICAgQVNTRVJUKChpc0dsb2JhbE9iamVjdCgpIHx8IGlzSlNMZXhp
Y2FsRW52aXJvbm1lbnQoKSB8fCBpc0dsb2JhbExleGljYWxFbnZpcm9ubWVudCgpIHx8IGlzU3Ry
aWN0RXZhbEFjdGl2YXRpb24oKSkgPT0gcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CiBpbmxpbmUgYm9vbCBKU09iamVjdDo6aXNFcnJvckluc3RhbmNlKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gdHlwZSgpID09IEVycm9ySW5zdGFuY2VUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTY29wZS5oCmluZGV4IGM3Y2NkNzdjZmM0ZC4uOWMyNjQxZDNiNjMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5oCkBAIC03OSw2ICs3OSw4IEBAIHB1Ymxp
YzoKICAgICBTY29wZUNoYWluSXRlcmF0b3IgZW5kKCk7CiAgICAgSlNTY29wZSogbmV4dCgpOwog
CisgICAgSlNPYmplY3QqIGdsb2JhbFRoaXMoKTsKKwogICAgIFN5bWJvbFRhYmxlKiBzeW1ib2xU
YWJsZSgpOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5o
CmluZGV4IGZiN2UyODdhYTRjNC4uY2JiZDA4NDY0NjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGUuaApAQCAtMTAyLDExICsxMDIsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8LSBKU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0IDwtIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50ICovIFwKICAgICAvKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC0gSlNHbG9iYWxPYmplY3QgKi8gXAogICAgIC8qIFN0YXJ0IEpTU2NvcGUgdHlwZXMuICovIFwK
KyAgICAvKiBTdGFydCBlbnZpcm9ubWVudCByZWNvcmQgdHlwZXMuICovIFwKICAgICBtYWNybyhH
bG9iYWxPYmplY3RUeXBlLCBTcGVjT2JqZWN0T3RoZXIpIFwKICAgICBtYWNybyhHbG9iYWxMZXhp
Y2FsRW52aXJvbm1lbnRUeXBlLCBTcGVjT2JqZWN0T3RoZXIpIFwKICAgICBtYWNybyhMZXhpY2Fs
RW52aXJvbm1lbnRUeXBlLCBTcGVjT2JqZWN0T3RoZXIpIFwKICAgICBtYWNybyhNb2R1bGVFbnZp
cm9ubWVudFR5cGUsIFNwZWNPYmplY3RPdGhlcikgXAogICAgIG1hY3JvKFN0cmljdEV2YWxBY3Rp
dmF0aW9uVHlwZSwgU3BlY09iamVjdE90aGVyKSBcCisgICAgLyogRW5kIGVudmlyb25tZW50IHJl
Y29yZCB0eXBlcy4gKi8gXAogICAgIG1hY3JvKFdpdGhTY29wZVR5cGUsIFNwZWNPYmplY3RPdGhl
cikgXAogICAgIC8qIEVuZCBKU1Njb3BlIHR5cGVzLiAqLyBcCiAgICAgXApAQCAtMTU4LDYgKzE2
MCw5IEBAIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTGFzdFR5cGVkQXJyYXlUeXBlRXhjbHVk
aW5nRGF0YVZpZXcgPSBMYXN0VHlwZWRBcnJheVR5CiBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90
IEZpcnN0T2JqZWN0VHlwZSA9IE9iamVjdFR5cGU7CiBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90
IExhc3RPYmplY3RUeXBlID0gTWF4SlNUeXBlOwogCitzdGF0aWMgY29uc3RleHByIHVpbnQzMl90
IEZpcnN0U2NvcGVUeXBlID0gR2xvYmFsT2JqZWN0VHlwZTsKK3N0YXRpYyBjb25zdGV4cHIgdWlu
dDMyX3QgTGFzdFNjb3BlVHlwZSA9IFdpdGhTY29wZVR5cGU7CisKIHN0YXRpYyBjb25zdGV4cHIg
dWludDMyX3QgTnVtYmVyT2ZUeXBlZEFycmF5VHlwZXMgPSBMYXN0VHlwZWRBcnJheVR5cGUgLSBG
aXJzdFR5cGVkQXJyYXlUeXBlICsgMTsKIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTnVtYmVy
T2ZUeXBlZEFycmF5VHlwZXNFeGNsdWRpbmdEYXRhVmlldyA9IE51bWJlck9mVHlwZWRBcnJheVR5
cGVzIC0gMTsKIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTnVtYmVyT2ZUeXBlZEFycmF5VHlw
ZXNFeGNsdWRpbmdCaWdJbnRBcnJheXNBbmREYXRhVmlldyA9IE51bWJlck9mVHlwZWRBcnJheVR5
cGVzIC0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90
b3R5cGUuY3BwCmluZGV4IDM0ZGQ2N2JmZTA4YS4uMzY5NDE0NzkwYzUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKQEAgLTkyLDcg
KzkyLDggQEAgYm9vbCBpc1Bva2VyQnJvcygpCiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihv
YmplY3RQcm90b0Z1bmNWYWx1ZU9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIEpTT2JqZWN0KiB2YWx1ZU9iaiA9IGNhbGxGcmFt
ZS0+dGhpc1ZhbHVlKCkudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKKyAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9UaGlzKGdsb2JhbE9iamVjdCwgRUNNQU1v
ZGU6OnN0cmljdCgpKTsKKyAgICBKU09iamVjdCogdmFsdWVPYmogPSB0aGlzVmFsdWUudG9PYmpl
Y3QoZ2xvYmFsT2JqZWN0KTsKICAgICBpZiAoVU5MSUtFTFkoIXZhbHVlT2JqKSkKICAgICAgICAg
cmV0dXJuIGVuY29kZWRKU1ZhbHVlKCk7CiAgICAgSW50ZWdyaXR5OjphdWRpdFN0cnVjdHVyZUlE
KHZhbHVlT2JqLT5zdHJ1Y3R1cmVJRCgpKTsKQEAgLTEyNCw5ICsxMjUsMTAgQEAgSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY0hhc093blByb3BlcnR5LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE8KICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCisgICAgSlNWYWx1ZSBiYXNlID0g
Y2FsbEZyYW1lLT50aGlzVmFsdWUoKTsKICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IGNhbGxGcmFt
ZS0+YXJndW1lbnQoMCkudG9Qcm9wZXJ0eUtleShnbG9iYWxPYmplY3QpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIEpTT2JqZWN0KiB0aGlz
T2JqZWN0ID0gY2FsbEZyYW1lLT50aGlzVmFsdWUoKS50b09iamVjdChnbG9iYWxPYmplY3QpOwor
ICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gYmFzZS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01B
TW9kZTo6c3RyaWN0KCkpLnRvT2JqZWN0KGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4ob2JqZWN0UHJvdG90eXBlSGFzT3duUHJvcGVydHkoZ2xvYmFs
T2JqZWN0LCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSkpOwogfQpAQCAtMTM5LDcgKzE0MSw4
IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RQcm90b0Z1bmNJc1Byb3RvdHlwZU9m
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgaWYgKCFjYWxsRnJhbWUtPmFyZ3VtZW50
KDApLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFu
KGZhbHNlKSk7CiAKLSAgICBKU09iamVjdCogdGhpc09iaiA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVl
KCkudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxG
cmFtZS0+dGhpc1ZhbHVlKCkudG9UaGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0cmljdCgp
KTsKKyAgICBKU09iamVjdCogdGhpc09iaiA9IHRoaXNWYWx1ZS50b09iamVjdChnbG9iYWxPYmpl
Y3QpOwogICAgIEVYQ0VQVElPTl9BU1NFUlQoISFzY29wZS5leGNlcHRpb24oKSA9PSAhdGhpc09i
aik7CiAgICAgaWYgKFVOTElLRUxZKCF0aGlzT2JqKSkKICAgICAgICAgcmV0dXJuIGVuY29kZWRK
U1ZhbHVlKCk7CkBAIC0xNjIsNyArMTY1LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9i
amVjdFByb3RvRnVuY0RlZmluZUdldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogCi0gICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBjYWxsRnJhbWUt
PnRoaXNWYWx1ZSgpLnRvT2JqZWN0KGdsb2JhbE9iamVjdCk7CisgICAgSlNPYmplY3QqIHRoaXNP
YmplY3QgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFN
b2RlOjpzdHJpY3QoKSkudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAogICAgIEpTVmFsdWUgZ2V0ID0gY2Fs
bEZyYW1lLT5hcmd1bWVudCgxKTsKQEAgLTE4OSw3ICsxOTIsNyBAQCBKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jRGVmaW5lU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iagogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBKU09iamVjdCogdGhpc09iamVjdCA9
IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKKyAgICBKU09i
amVjdCogdGhpc09iamVjdCA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9UaGlzKGdsb2JhbE9i
amVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKS50b09iamVjdChnbG9iYWxPYmplY3QpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCiAgICAgSlNWYWx1
ZSBzZXQgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOwpAQCAtMjE2LDcgKzIxOSw3IEBAIEpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RQcm90b0Z1bmNMb29rdXBHZXR0ZXIsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIEpTT2JqZWN0KiB0
aGlzT2JqZWN0ID0gY2FsbEZyYW1lLT50aGlzVmFsdWUoKS50b09iamVjdChnbG9iYWxPYmplY3Qp
OworICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gY2FsbEZyYW1lLT50aGlzVmFsdWUoKS50b1Ro
aXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkpLnRvT2JqZWN0KGdsb2JhbE9iamVj
dCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b1Byb3BlcnR5S2V5KGdsb2JhbE9i
amVjdCk7CkBAIC0yNDgsNyArMjUxLDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVj
dFByb3RvRnVuY0xvb2t1cFNldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCi0gICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBjYWxsRnJhbWUtPnRo
aXNWYWx1ZSgpLnRvT2JqZWN0KGdsb2JhbE9iamVjdCk7CisgICAgSlNPYmplY3QqIHRoaXNPYmpl
Y3QgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2Rl
OjpzdHJpY3QoKSkudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOwogCiAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBjYWxsRnJhbWUtPmFy
Z3VtZW50KDApLnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKQEAgLTI4Myw3ICsyODYsNyBA
QCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jUHJvcGVydHlJc0VudW1l
cmFibGUsIChKU0dsb2JhbE9iamVjdCogZwogICAgIGF1dG8gcHJvcGVydHlOYW1lID0gY2FsbEZy
YW1lLT5hcmd1bWVudCgwKS50b1Byb3BlcnR5S2V5KGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKLSAgICBKU09iamVjdCog
dGhpc09iamVjdCA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9PYmplY3QoZ2xvYmFsT2JqZWN0
KTsKKyAgICBKU09iamVjdCogdGhpc09iamVjdCA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9U
aGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKS50b09iamVjdChnbG9iYWxPYmpl
Y3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwog
CiAgICAgc2NvcGUucmVsZWFzZSgpOwpAQCAtMzA0LDcgKzMwNyw3IEBAIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihvYmplY3RQcm90b0Z1bmNUb0xvY2FsZVN0cmluZywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPCiAgICAgLy8gMi4gSW52b2tlKFYsICJ0b1N0cmluZyIpCiAKICAgICAvLyBMZXQg
TyBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgVG9PYmplY3QgcGFzc2luZyB0aGUgdGhpcyB2YWx1
ZSBhcyB0aGUgYXJndW1lbnQuCi0gICAgSlNPYmplY3QqIG9iamVjdCA9IHRoaXNWYWx1ZS50b09i
amVjdChnbG9iYWxPYmplY3QpOworICAgIEpTT2JqZWN0KiBvYmplY3QgPSB0aGlzVmFsdWUudG9U
aGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKS50b09iamVjdChnbG9iYWxPYmpl
Y3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwog
CiAgICAgLy8gTGV0IHRvU3RyaW5nIGJlIHRoZSBPLltbR2V0XV0oInRvU3RyaW5nIiwgVikKQEAg
LTMyNSw3ICszMjgsOCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5j
VG9Mb2NhbGVTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogCiBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShvYmplY3RQcm90b3R5cGVUb1N0cmluZyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+
dGhpc1ZhbHVlKCkpKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1Zh
bHVlKCkudG9UaGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iamVjdFByb3RvdHlwZVRvU3RyaW5nKGdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCmluZGV4IDNiOTE0ODZiYWE4Ni4uZDVlN2Nm
OTk0MWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9i
amVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3Qu
Y3BwCkBAIC0xODgsNyArMTg4LDcgQEAgc3RhdGljIEpTVmFsdWUgcGVyZm9ybVByb3h5R2V0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3h5T2JqZWN0KiBwcm94eU8KICAgICBNYXJr
ZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7CiAgICAgYXJndW1lbnRzLmFwcGVuZCh0YXJnZXQp
OwogICAgIGFyZ3VtZW50cy5hcHBlbmQoaWRlbnRpZmllclRvU2FmZVB1YmxpY0pTVmFsdWUodm0s
IElkZW50aWZpZXI6OmZyb21VaWQodm0sIHByb3BlcnR5TmFtZS51aWQoKSkpKTsKLSAgICBhcmd1
bWVudHMuYXBwZW5kKHJlY2VpdmVyKTsKKyAgICBhcmd1bWVudHMuYXBwZW5kKHJlY2VpdmVyLnRv
VGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSkpOwogICAgIEFTU0VSVCghYXJn
dW1lbnRzLmhhc092ZXJmbG93ZWQoKSk7CiAgICAgSlNWYWx1ZSB0cmFwUmVzdWx0ID0gY2FsbChn
bG9iYWxPYmplY3QsIGdldEhhbmRsZXIsIGNhbGxEYXRhLCBoYW5kbGVyLCBhcmd1bWVudHMpOwog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CkBAIC01MTgsNyArNTE4LDcgQEAg
Ym9vbCBQcm94eU9iamVjdDo6cGVyZm9ybVB1dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHB1dFZhbHVlLCBKU1YKICAgICBhcmd1bWVudHMuYXBwZW5kKHRhcmdldCk7CiAg
ICAgYXJndW1lbnRzLmFwcGVuZChpZGVudGlmaWVyVG9TYWZlUHVibGljSlNWYWx1ZSh2bSwgSWRl
bnRpZmllcjo6ZnJvbVVpZCh2bSwgcHJvcGVydHlOYW1lLnVpZCgpKSkpOwogICAgIGFyZ3VtZW50
cy5hcHBlbmQocHV0VmFsdWUpOwotICAgIGFyZ3VtZW50cy5hcHBlbmQodGhpc1ZhbHVlKTsKKyAg
ICBhcmd1bWVudHMuYXBwZW5kKHRoaXNWYWx1ZS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9k
ZTo6c3RyaWN0KCkpKTsKICAgICBBU1NFUlQoIWFyZ3VtZW50cy5oYXNPdmVyZmxvd2VkKCkpOwog
ICAgIEpTVmFsdWUgdHJhcFJlc3VsdCA9IGNhbGwoZ2xvYmFsT2JqZWN0LCBzZXRNZXRob2QsIGNh
bGxEYXRhLCBoYW5kbGVyLCBhcmd1bWVudHMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGZhbHNlKTsKQEAgLTYyNiw3ICs2MjYsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
cGVyZm9ybVByb3h5Q2FsbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcgog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIE1h
cmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50czsKICAgICBhcmd1bWVudHMuYXBwZW5kKHRhcmdl
dCk7Ci0gICAgYXJndW1lbnRzLmFwcGVuZChjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICBh
cmd1bWVudHMuYXBwZW5kKGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9UaGlzKGdsb2JhbE9iamVj
dCwgRUNNQU1vZGU6OnN0cmljdCgpKSk7CiAgICAgYXJndW1lbnRzLmFwcGVuZChhcmdBcnJheSk7
CiAgICAgQVNTRVJUKCFhcmd1bWVudHMuaGFzT3ZlcmZsb3dlZCgpKTsKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShjYWxsKGdsb2JhbE9iamVjdCwgYXBwbHlN
ZXRob2QsIGNhbGxEYXRhLCBoYW5kbGVyLCBhcmd1bWVudHMpKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAppbmRleCBlMWY5NjQ1Nzc0
MDUuLjMyNjA3NzUzZmQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC0xOTYsNyArMTk2LDcgQEAgSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKHJlZ0V4cFByb3RvRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBj
YWxsRnJhbWUtPnRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1l
LT50aGlzVmFsdWUoKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkpOwog
ICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuY3BwCmluZGV4IGEyYWYwOWM1ZTU0
Mi4uNmViMDU5NDAyM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcApAQCAtMTk2LDcgKzE5Niw3IEBAIGJvb2wgU3Bh
cnNlQXJyYXlFbnRyeTo6cHV0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
dGhpc1ZhbHVlLCBTcGFyCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwganNDYXN0PEdldHRlclNldHRlcio+KEJhc2U6OmdldCgpKS0+
Y2FsbFNldHRlcihnbG9iYWxPYmplY3QsIHdyYXBHbG9iYWxPYmplY3QodGhpc1ZhbHVlKSwgdmFs
dWUsIHNob3VsZFRocm93KSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBqc0Nhc3Q8
R2V0dGVyU2V0dGVyKj4oQmFzZTo6Z2V0KCkpLT5jYWxsU2V0dGVyKGdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCB2YWx1ZSwgc2hvdWxkVGhyb3cpKTsKIH0KIAogSlNWYWx1ZSBTcGFyc2VBcnJheUVu
dHJ5OjpnZXROb25TcGFyc2VNb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IGM0ODEzZjNlN2FjYS4uY2VjNDcz
YjNlODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQ
cm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5jcHAKQEAgLTgxNyw5ICs4MTcsMTggQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNT
dHJpbmcqIHJlcGxhY2VVc2luZ1JlZ0V4cFNlYXJjaChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0Kgog
ICAgICAgICB2bSwgZ2xvYmFsT2JqZWN0LCBzdHJpbmcsIHNlYXJjaFZhbHVlLCBjYWxsRGF0YSwg
cmVwbGFjZW1lbnRTdHJpbmcsIHJlcGxhY2VWYWx1ZSkpOwogfQogCi1zdGF0aWMgQUxXQVlTX0lO
TElORSBib29sIGNoZWNrT2JqZWN0Q29lcmNpYmxlKEpTVmFsdWUgdGhpc1ZhbHVlKQorc3RhdGlj
IGlubGluZSBib29sIGNoZWNrT2JqZWN0Q29lcmNpYmxlKEpTVmFsdWUgdGhpc1ZhbHVlKQogewot
ICAgIHJldHVybiB0aGlzVmFsdWUuaXNTdHJpbmcoKSB8fCAhdGhpc1ZhbHVlLmlzVW5kZWZpbmVk
T3JOdWxsKCk7CisgICAgaWYgKHRoaXNWYWx1ZS5pc1N0cmluZygpKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIGlmICh0aGlzVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgaWYgKHRoaXNWYWx1ZS5pc09iamVjdCgpICYmIGFzT2JqZWN0
KHRoaXNWYWx1ZSktPmlzRW52aXJvbm1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90
b0Z1bmNSZXBlYXRDaGFyYWN0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01PcGVy
YXRpb24uaAppbmRleCA4NDNiYzQyODRlOGYuLmMzZjZkMDQ1MWNkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01PcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTU9wZXJhdGlvbi5oCkBAIC0zNSwxMiArMzUsMjIgQEAgcHVi
bGljOgogICAgIHVzaW5nIE9wZXJhdGlvbiA9IEpTQzo6RW5jb2RlZEpTVmFsdWUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKiwgQ2xhc3NQYXJhbWV0ZXIpOwogICAgIHVzaW5n
IFN0YXRpY09wZXJhdGlvbiA9IEpTQzo6RW5jb2RlZEpTVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7CiAKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYWZ0ZXIg
RnVuY3Rpb25DYWxsUmVzb2x2ZU5vZGUgaXMgZml4ZWQgbm90IHRvIHBhc3MgcmVzb2x2ZWQgc2Nv
cGUgYXMgfHRoaXN8IHZhbHVlLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjUzOTcKKyAgICBzdGF0aWMgSlNDbGFzcyogY2FzdChKU0M6OkpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSYgY2FsbEZyYW1lKQor
ICAgIHsKKyAgICAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0RPTUdsb2Jh
bE9iamVjdCwgSlNDbGFzcz4pCisgICAgICAgICAgICByZXR1cm4gY2FzdFRoaXNWYWx1ZTxKU0Ns
YXNzPihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkudG9UaGlzKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkVDTUFNb2RlOjpzdHJpY3QoKSkpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICByZXR1cm4gY2FzdFRoaXNWYWx1ZTxKU0NsYXNzPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOworICAgIH0KKwogICAgIHRlbXBsYXRl
PE9wZXJhdGlvbiBvcGVyYXRpb24sIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yIHNob3VsZFRocm93
ID0gQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OlRocm93PgogICAgIHN0YXRpYyBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGNhbGwoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUmIGNhbGxGcmFtZSwgY29uc3QgY2hhciogb3BlcmF0aW9uTmFtZSkKICAg
ICB7CiAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICAKLSAgICAgICAgYXV0byogdGhp
c09iamVjdCA9IGNhc3RUaGlzVmFsdWU8SlNDbGFzcz4obGV4aWNhbEdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLnRoaXNWYWx1ZSgpKTsKKyAgICAgICAgYXV0byogdGhpc09iamVjdCA9IGNhc3QobGV4
aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKICAgICAgICAgaWYgY29uc3RleHByIChzaG91
bGRUaHJvdyAhPSBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0KSB7CiAgICAgICAgICAg
ICBpZiAoVU5MSUtFTFkoIXRoaXNPYmplY3QpKQogICAgICAgICAgICAgICAgIHJldHVybiB0aHJv
d1RoaXNUeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgSlNDbGFzczo6
aW5mbygpLT5jbGFzc05hbWUsIG9wZXJhdGlvbk5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01PcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTU9wZXJhdGlvblJldHVybmluZ1Byb21pc2UuaApp
bmRleCA1MzVkZTlmNmUyZTkuLjA2MmJlNTkyZDkwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01PcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01PcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlLmgK
QEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVl
IGNhbGwoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUmIGNhbGxGcmFtZSwgY29uc3QgY2hhciogb3BlcmF0aW9uTmFtZSkKICAgICB7CiAgICAg
ICAgIHJldHVybiBKU0M6OkpTVmFsdWU6OmVuY29kZShjYWxsUHJvbWlzZUZ1bmN0aW9uKGxleGlj
YWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgWyZvcGVyYXRpb25OYW1lXSAoSlNDOjpKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUmIGNhbGxGcmFtZSwg
UmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKSB7Ci0gICAgICAgICAgICBhdXRvKiB0aGlz
T2JqZWN0ID0gY2FzdFRoaXNWYWx1ZTxKU0NsYXNzPihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUudGhpc1ZhbHVlKCkpOworICAgICAgICAgICAgYXV0byogdGhpc09iamVjdCA9IElETE9w
ZXJhdGlvbjxKU0NsYXNzPjo6Y2FzdChsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwog
ICAgICAgICAgICAgaWYgY29uc3RleHByIChzaG91bGRUaHJvdyAhPSBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0KSB7CiAgICAgICAgICAgICAgICAgaWYgKFVOTElLRUxZKCF0aGlzT2Jq
ZWN0KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdFByb21pc2VXaXRoVGhpc1R5
cGVFcnJvcihwcm9taXNlLmdldCgpLCBKU0NsYXNzOjppbmZvKCktPmNsYXNzTmFtZSwgb3BlcmF0
aW9uTmFtZSk7CkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBjYWxsUmV0dXJuaW5nUHJvbWlzZVBhaXIoSlNDOjpKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUmIGNhbGxGcmFtZSwgY29uc3QgY2hh
ciogb3BlcmF0aW9uTmFtZSkKICAgICB7CiAgICAgICAgIHJldHVybiBjYWxsUHJvbWlzZVBhaXJG
dW5jdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIFsmb3BlcmF0aW9uTmFtZV0g
KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
JiBjYWxsRnJhbWUsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwgUmVmPERlZmVycmVk
UHJvbWlzZT4mJiBwcm9taXNlMikgewotICAgICAgICAgICAgYXV0byogdGhpc09iamVjdCA9IGNh
c3RUaGlzVmFsdWU8SlNDbGFzcz4obGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLnRoaXNW
YWx1ZSgpKTsKKyAgICAgICAgICAgIGF1dG8qIHRoaXNPYmplY3QgPSBJRExPcGVyYXRpb248SlND
bGFzcz46OmNhc3QobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKICAgICAgICAgICAg
IGlmIGNvbnN0ZXhwciAoc2hvdWxkVGhyb3cgIT0gQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydCkgewogICAgICAgICAgICAgICAgIGlmIChVTkxJS0VMWSghdGhpc09iamVjdCkpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiByZWplY3RQcm9taXNlV2l0aFRoaXNUeXBlRXJyb3IocHJv
bWlzZS5nZXQoKSwgSlNDbGFzczo6aW5mbygpLT5jbGFzc05hbWUsIG9wZXJhdGlvbk5hbWUpOwpA
QCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSURMT3BlcmF0
aW9uPEpTQ2xhc3M+OjpPcGVyYXRpb24gb3BlcmF0aW9uLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
ciBzaG91bGRUaHJvdyA9IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZWplY3RQcm9taXNlPgog
ICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIGNhbGxSZXR1cm5pbmdPd25Qcm9taXNlKEpT
Qzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lJiBj
YWxsRnJhbWUsIGNvbnN0IGNoYXIqIG9wZXJhdGlvbk5hbWUpCiAgICAgewotICAgICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0gY2FzdFRoaXNWYWx1ZTxKU0NsYXNzPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOworICAgICAgICBhdXRvKiB0aGlzT2JqZWN0ID0gSURM
T3BlcmF0aW9uPEpTQ2xhc3M+OjpjYXN0KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7
CiAgICAgICAgIGlmIGNvbnN0ZXhwciAoc2hvdWxkVGhyb3cgIT0gQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydCkgewogICAgICAgICAgICAgaWYgKFVOTElLRUxZKCF0aGlzT2JqZWN0KSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0UHJvbWlzZVdpdGhUaGlzVHlwZUVycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQ2xhc3M6OmluZm8oKS0+Y2xhc3NOYW1lLCBvcGVyYXRpb25O
YW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcAppbmRleCBhMWYxYjZlYzVkZmIuLmE2MTFhY2JkY2YyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtNTU5LDcgKzU1OSw3
IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzaG93TW9kYWxEaWFsb2csIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdFB0CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9i
amVjdC52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAot
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBjYXN0VGhpc1ZhbHVlPEpTRE9NV2luZG93PihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOworICAgIGF1dG8qIHRoaXNPYmpl
Y3QgPSBJRExPcGVyYXRpb248SlNET01XaW5kb3c+OjpjYXN0KGxleGljYWxHbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSk7CiAgICAgaWYgKFVOTElLRUxZKCF0aGlzT2JqZWN0KSkKICAgICAgICAgcmV0
dXJuIHRocm93VGhpc1R5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgIldpbmRv
dyJfcywgInNob3dNb2RhbERpYWxvZyJfcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXJyb3JIYW5kbGVyLmNwcAppbmRleCBjNjI1YWE1YjgwZWQuLjEyOGM2ZmRiMWIzYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcApAQCAt
MTA5LDcgKzEwOSw3IEBAIHZvaWQgSlNFcnJvckhhbmRsZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCiAgICAgICAgIEpTRXhlY1N0
YXRlOjppbnN0cnVtZW50RnVuY3Rpb24oJnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGNhbGxEYXRh
KTsKIAogICAgICAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gZXhjZXB0aW9uOwotICAgICAg
ICBKU1ZhbHVlIHJldHVyblZhbHVlID0gSlNFeGVjU3RhdGU6OnByb2ZpbGVkQ2FsbChnbG9iYWxP
YmplY3QsIEpTQzo6UHJvZmlsaW5nUmVhc29uOjpPdGhlciwganNGdW5jdGlvbiwgY2FsbERhdGEs
ICZnbG9iYWxPYmplY3QtPnByb3h5KCksIGFyZ3MsIGV4Y2VwdGlvbik7CisgICAgICAgIEpTVmFs
dWUgcmV0dXJuVmFsdWUgPSBKU0V4ZWNTdGF0ZTo6cHJvZmlsZWRDYWxsKGdsb2JhbE9iamVjdCwg
SlNDOjpQcm9maWxpbmdSZWFzb246Ok90aGVyLCBqc0Z1bmN0aW9uLCBjYWxsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBhcmdzLCBleGNlcHRpb24pOwogCiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ2FsbEZ1bmN0aW9uKCZzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5oCmluZGV4IDQ2
YWYxNzg1Njc5NS4uNzY3MmFkOTg5Mjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5oCkBAIC02NSw4ICs2NSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICAgICAg
Ly8gSnVzdCBsaWtlIGNhc3RUaGlzVmFsdWUoKSwgdGhpcyBpbXBsZW1lbnRzIHN0ZXAgMi4xLjIu
MSBvZiBodHRwczovL3dlYmlkbC5zcGVjLndoYXR3Zy5vcmcvI2Rmbi1jcmVhdGUtb3BlcmF0aW9u
LWZ1bmN0aW9uCi0gICAgICAgIGF1dG8gdGhpc1ZhbHVlID0gY2FsbEZyYW1lLnRoaXNWYWx1ZSgp
OworICAgICAgICBhdXRvIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS50aGlzVmFsdWUoKS50b1RoaXMo
JmxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6RUNNQU1vZGU6OnN0cmljdCgpKTsKICAgICAgICAg
YXV0byB0aGlzT2JqZWN0ID0ganNFdmVudFRhcmdldENhc3Qodm0sIHRoaXNWYWx1ZS5pc1VuZGVm
aW5lZE9yTnVsbCgpID8gSlNDOjpKU1ZhbHVlKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSA6IHRoaXNW
YWx1ZSk7CiAgICAgICAgIGlmIChVTkxJS0VMWSh0aGlzT2JqZWN0LmlzTnVsbCgpKSkKICAgICAg
ICAgICAgIHJldHVybiB0aHJvd1RoaXNUeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgIkV2ZW50VGFyZ2V0Iiwgb3BlcmF0aW9uTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcAppbmRleCA3YmRmNzJiZjllNmMuLjA1
YmIzYjQ0NDFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1
bGVkQWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRB
Y3Rpb24uY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgdm9pZCBTY2hlZHVsZWRBY3Rpb246OmV4ZWN1
dGUoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlKQogCiAgICAgaWYgKG1fZnVu
Y3Rpb24pIHsKICAgICAgICAgYXV0byogY29udGV4dFdyYXBwZXIgPSBzY3JpcHRDb250cm9sbGVy
LT5nbG9iYWxTY29wZVdyYXBwZXIoKTsKLSAgICAgICAgZXhlY3V0ZUZ1bmN0aW9uSW5Db250ZXh0
KGNvbnRleHRXcmFwcGVyLCAmY29udGV4dFdyYXBwZXItPnByb3h5KCksIHdvcmtlckdsb2JhbFNj
b3BlKTsKKyAgICAgICAgZXhlY3V0ZUZ1bmN0aW9uSW5Db250ZXh0KGNvbnRleHRXcmFwcGVyLCBj
b250ZXh0V3JhcHBlciwgd29ya2VyR2xvYmFsU2NvcGUpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IFNjcmlwdFNvdXJjZUNvZGUgY29kZShtX2NvZGUsIG1fc291cmNlVGFpbnRlZE9yaWdpbiwgVVJM
KHdvcmtlckdsb2JhbFNjb3BlLnVybCgpKSk7CiAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPmV2
YWx1YXRlKGNvZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQppbmRleCBjYmFiYmExOWQ0MjYuLjIzOWUyNTUyNTBjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
QEAgLTU3NTksOSArNTc1OSw3IEBAIHN1YiBHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlckJvZHlEZWZp
bml0aW9uCiAgICAgICAgICMgMy41LjkuMS4gTGV0IFEgYmUgPyBHZXQoTywgaWQpLgogICAgICAg
ICBteSAkaWQgPSAkYXR0cmlidXRlLT5uYW1lOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgYXV0byBpZCA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIFwiJHtpZH1cIl9zKTtc
biIpOwotCi0gICAgICAgIG15ICRnZXRSZWNlaXZlciA9IElzRE9NR2xvYmFsT2JqZWN0KCRpbnRl
cmZhY2UpID8gInRoaXNPYmplY3QucHJveHkoKSIgOiAidGhpc09iamVjdCI7Ci0gICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvIHZhbHVlVG9Gb3J3YXJkVG8gPSAke2dldFJlY2Vp
dmVyfS5nZXQoJmxleGljYWxHbG9iYWxPYmplY3QsIGlkKTtcbiIpOworICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgYXV0byB2YWx1ZVRvRm9yd2FyZFRvID0gdGhpc09iamVjdC5nZXQo
JmxleGljYWxHbG9iYWxPYmplY3QsIGlkKTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7XG4iKTsKICAg
ICAgICAgCiAgICAgICAgICMgMy41LjkuMi4gSWYgVHlwZShRKSBpcyBub3QgT2JqZWN0LCB0aGVu
IHRocm93IGEgVHlwZUVycm9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcAppbmRleCBjYzA3
OTVhYjc0YjMuLjMzMWZhZjE5NTg4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKQEAg
LTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJs
ZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydEJhc2UuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZl
cnRCb29sZWFuLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCiAjaW5jbHVk
ZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydFByb21pc2Uu
aCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCkBAIC05MCw3ICs4OSw2IEBACiAj
aW5jbHVkZSAiSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
QW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5oIgogI2luY2x1ZGUgIkpTVGVzdE5hbWVzcGFjZUNv
bnN0LmgiCiAjaW5jbHVkZSAiSlNUZXN0TmFtZXNwYWNlT2JqZWN0LmgiCi0jaW5jbHVkZSAiSlNU
ZXN0Tm9kZS5oIgogI2luY2x1ZGUgIkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2Vx
dWVuY2UuaCIKICNpbmNsdWRlICJKU1Rlc3RQbHVnaW5JbnRlcmZhY2UuaCIKICNpbmNsdWRlICJK
U1Rlc3RSZWFkT25seU1hcExpa2UuaCIKQEAgLTE3Nyw4ICsxNzUsNiBAQCBzdGF0aWMgSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfcHVibGljQW5kUHJpdmF0
ZUNvbmRpdGlvbgogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0X2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUpOwogc3RhdGljIEpTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1
dGUpOwogI2VuZGlmCi1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9i
YWxPYmplY3RfcHV0Rm9yd2FyZHNBdHRyaWJ1dGUpOwotc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X3B1dEZvcndhcmRzQXR0cmlidXRlKTsKIHN0
YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0QXN5
bmNJdGVyYWJsZUNvbnN0cnVjdG9yKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0QXN5bmNLZXlWYWx1ZUl0ZXJhYmxlQ29uc3RydWN0b3Ip
Owogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKTsKQEAgLTI2MiwyOSArMjU4LDI5IEBAIHVzaW5nIEpT
VGVzdEdsb2JhbE9iamVjdERPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0
cnVjdGFibGU8SlNUZXN0CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBK
U1Rlc3RHbG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKLSAg
ICB7IDQ0LCAtMSB9LAorICAgIHsgNDMsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDAs
IC0xIH0sCi0gICAgeyA3LCAtMSB9LAotICAgIHsgNDgsIC0xIH0sCisgICAgeyA2LCAtMSB9LAor
ICAgIHsgNDcsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNCwgLTEg
fSwKKyAgICB7IDMsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDU4LCAtMSB9LAorICAg
IHsgNTcsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyA1OSwgLTEgfSwKLSAgICB7IDY4LCAtMSB9LAorICAgIHsgNTgsIC0xIH0sCisgICAg
eyA2NywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNSwgLTEgfSwKKyAgICB7IDQsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBA
IC0yOTYsMjYgKzI5MiwyNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXgg
SlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleFsyNjhdID0gewogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMzgsIC0xIH0sCisgICAgeyAz
NywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA3MiwgLTEgfSwKLSAg
ICB7IDE2LCAyNjEgfSwKKyAgICB7IDcxLCAtMSB9LAorICAgIHsgMTUsIDI2MSB9LAogICAgIHsg
LTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDUyLCAtMSB9LAorICAgIHsgNTEsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKLSAgICB7IDQyLCAtMSB9LAotICAgIHsgMjMsIDI1OCB9LAotICAgIHsg
OSwgLTEgfSwKKyAgICB7IDQxLCAtMSB9LAorICAgIHsgMjIsIDI1OCB9LAorICAgIHsgOCwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNDksIC0xIH0sCisgICAgeyA0OCwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTMyNCwy
MCArMzIwLDIwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RH
bG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0x
LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA0MCwgLTEgfSwKKyAgICB7IDM5LCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMjUs
IDI2NiB9LAorICAgIHsgMjQsIDI2NiB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAg
ICB7IDgsIC0xIH0sCisgICAgeyA3LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtMzQ1LDI3ICszNDEsMjcgQEAgc3RhdGljIGNvbnN0
IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXhbMjY4
XSA9IHsKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwK
LSAgICB7IDMzLCAtMSB9LAotICAgIHsgNjEsIC0xIH0sCisgICAgeyAzMiwgLTEgfSwKKyAgICB7
IDYwLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAot
ICAgIHsgMTIsIDI1NyB9LAorICAgIHsgMTEsIDI1NyB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAg
eyA2MywgLTEgfSwKLSAgICB7IDIyLCAtMSB9LAorICAgIHsgNjIsIC0xIH0sCisgICAgeyAyMSwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwK
LSAgICB7IDIxLCAtMSB9LAorICAgIHsgMjAsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAotICAgIHsgNTEsIC0xIH0sCisgICAgeyA1MCwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAotICAgIHsgMzksIC0xIH0sCisgICAgeyAzOCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTM3MywxNCArMzY5LDE0IEBAIHN0
YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RHbG9iYWxPYmplY3RUYWJs
ZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAyNywgLTEgfSwKKyAgICB7IDI2LCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAyLCAtMSB9LAotICAgIHsgNDEsIC0xIH0sCisgICAgeyA0MCwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDI0
LCAtMSB9LAorICAgIHsgMjMsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCkBAIC0zOTMsMTYgKzM4OSwxNSBAQCBzdGF0aWMgY29uc3Qgc3Ry
dWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleFsyNjhdID0g
ewogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAg
IHsgMzEsIC0xIH0sCi0gICAgeyAzLCAtMSB9LAotICAgIHsgNDYsIC0xIH0sCisgICAgeyAzMCwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LAorICAgIHsgNDUsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwK
ICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7
IDU3LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCisgICAgeyA1NiwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTQxMiwyMCArNDA3LDIw
IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RHbG9iYWxPYmpl
Y3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAorICAgIHsg
MTIsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNjksIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKLSAgICB7IDcwLCAtMSB9LAorICAgIHsgNjgsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKLSAgICB7IDMwLCAtMSB9LAotICAgIHsgMzUsIC0xIH0sCisgICAgeyA2OSwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAorICAgIHsgMjksIC0xIH0sCisgICAgeyAzNCwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTQzNCwx
MCArNDI5LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RH
bG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0x
LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxOCwgMjYwIH0sCiAgICAgeyAtMSwgLTEg
fSwKLSAgICB7IDY0LCAtMSB9LAorICAgIHsgMTcsIDI2MCB9LAogICAgIHsgLTEsIC0xIH0sCisg
ICAgeyA2MywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKQEAgLTQ0NSwxMiArNDQwLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFj
dEhhc2hJbmRleCBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAzNywgMjY3
IH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDE5LCAyNTYgfSwKKyAgICB7IDM2LCAyNjcgfSwK
ICAgICB7IC0xLCAtMSB9LAotICAgIHsgNjcsIC0xIH0sCisgICAgeyAxOCwgMjU2IH0sCiAgICAg
eyAtMSwgLTEgfSwKKyAgICB7IDY2LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNDYwLDIwICs0NTUsMjAgQEAgc3RhdGljIGNvbnN0
IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXhbMjY4
XSA9IHsKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwK
LSAgICB7IDE1LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCisgICAgeyAxNCwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDUwLCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCisgICAgeyA0OSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAxNCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAorICAgIHsgMTMsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBA
IC00ODEsNTQgKzQ3Niw1NSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXgg
SlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleFsyNjhdID0gewogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNjIsIC0xIH0sCisgICAgeyAt
MSwgLTEgfSwKKyAgICB7IDYxLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAxLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMSwgLTEgfSwKKyAgICB7IDEwLCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCi0gICAgeyA1MywgMjY0IH0sCi0gICAgeyAxMCwgMjYzIH0sCisgICAgeyA1MiwgMjY0
IH0sCisgICAgeyA5LCAyNjMgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNjUsIC0xIH0sCisg
ICAgeyA2NCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKLSAgICB7IDE3LCAtMSB9LAorICAgIHsgMTYsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAg
ICB7IDI4LCAtMSB9LAorICAgIHsgMjcsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0x
LCAtMSB9LAotICAgIHsgMzQsIC0xIH0sCisgICAgeyAzMywgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDYsIC0xIH0sCi0gICAg
eyA1NSwgLTEgfSwKKyAgICB7IDUsIC0xIH0sCisgICAgeyA1NCwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAotICAgIHsgNTYsIC0xIH0sCisgICAgeyA1NSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsg
MjAsIC0xIH0sCi0gICAgeyAyNiwgMjU5IH0sCi0gICAgeyAyOSwgMjY1IH0sCi0gICAgeyAzMiwg
MjYyIH0sCi0gICAgeyAzNiwgLTEgfSwKLSAgICB7IDQzLCAtMSB9LAotICAgIHsgNDUsIC0xIH0s
Ci0gICAgeyA0NywgLTEgfSwKLSAgICB7IDU0LCAtMSB9LAotICAgIHsgNjAsIC0xIH0sCi0gICAg
eyA2NiwgLTEgfSwKLSAgICB7IDcxLCAtMSB9LAorICAgIHsgMTksIC0xIH0sCisgICAgeyAyNSwg
MjU5IH0sCisgICAgeyAyOCwgMjY1IH0sCisgICAgeyAzMSwgMjYyIH0sCisgICAgeyAzNSwgLTEg
fSwKKyAgICB7IDQyLCAtMSB9LAorICAgIHsgNDQsIC0xIH0sCisgICAgeyA0NiwgLTEgfSwKKyAg
ICB7IDUzLCAtMSB9LAorICAgIHsgNTksIC0xIH0sCisgICAgeyA2NSwgLTEgfSwKKyAgICB7IDcw
LCAtMSB9LAogfTsKIAogCkBAIC01NDEsNyArNTM3LDYgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlVmFsdWVzW10gPQogI2Vsc2UKICAgICB7IHsg
fSwgMCwgTm9JbnRyaW5zaWMsIHsgSGFzaFRhYmxlVmFsdWU6OkVuZCB9IH0sCiAjZW5kaWYKLSAg
ICB7ICJwdXRGb3J3YXJkc0F0dHJpYnV0ZSJfcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgSGFzaFRh
YmxlVmFsdWU6OkdldHRlclNldHRlclR5cGUsIGpzVGVzdEdsb2JhbE9iamVjdF9wdXRGb3J3YXJk
c0F0dHJpYnV0ZSwgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X3B1dEZvcndhcmRzQXR0cmlidXRlIH0g
fSwKICAgICB7ICJUZXN0QXN5bmNJdGVyYWJsZSJfcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgSGFzaFRhYmxl
VmFsdWU6OkdldHRlclNldHRlclR5cGUsIGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0QXN5bmNJdGVy
YWJsZUNvbnN0cnVjdG9yLCAwIH0gfSwKICAgICB7ICJUZXN0QXN5bmNLZXlWYWx1ZUl0ZXJhYmxl
Il9zLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCBOb0ludHJpbnNpYywgeyBIYXNoVGFibGVWYWx1ZTo6R2V0dGVyU2V0dGVyVHlwZSwganNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3RBc3luY0tleVZhbHVlSXRlcmFibGVDb25zdHJ1Y3RvciwgMCB9
IH0sCiAgICAgeyAiVGVzdENFUmVhY3Rpb25zIl9zLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyBIYXNoVGFibGVW
YWx1ZTo6R2V0dGVyU2V0dGVyVHlwZSwganNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RDRVJlYWN0aW9u
c0NvbnN0cnVjdG9yLCAwIH0gfSwKQEAgLTYyNSwzNCArNjIwLDM0IEBAIHN0YXRpYyBjb25zdCBI
YXNoVGFibGVWYWx1ZSBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZVZhbHVlc1tdID0KICAgICB7ICJy
ZWd1bGFyT3BlcmF0aW9uIl9zLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyBIYXNoVGFibGVWYWx1ZTo6TmF0aXZl
RnVuY3Rpb25UeXBlLCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX3JlZ3VsYXJP
cGVyYXRpb24sIDEgfSB9LAogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RHbG9i
YWxPYmplY3RUYWJsZSA9IHsgNzMsIDI1NSwgc3RhdGljX2Nhc3Q8dWludDhfdD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgSlNUZXN0R2xvYmFs
T2JqZWN0OjppbmZvKCksIEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlVmFsdWVzLCBKU1Rlc3RHbG9i
YWxPYmplY3RUYWJsZUluZGV4IH07CitzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEdsb2Jh
bE9iamVjdFRhYmxlID0geyA3MiwgMjU1LCBzdGF0aWNfY2FzdDx1aW50OF90PihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBKU1Rlc3RHbG9iYWxP
YmplY3Q6OmluZm8oKSwgSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVWYWx1ZXMsIEpTVGVzdEdsb2Jh
bE9iamVjdFRhYmxlSW5kZXggfTsKICNlbHNlCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFj
dEhhc2hJbmRleCBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAt
MSwgLTEgfSwKLSAgICB7IDQ0LCAtMSB9LAorICAgIHsgNDMsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKICAgICB7IDAsIC0xIH0sCi0gICAgeyA3LCAtMSB9LAotICAgIHsgNDgsIC0xIH0sCisgICAg
eyA2LCAtMSB9LAorICAgIHsgNDcsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAot
ICAgIHsgNCwgLTEgfSwKKyAgICB7IDMsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDU4
LCAtMSB9LAorICAgIHsgNTcsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCi0gICAgeyA1OSwgLTEgfSwKLSAgICB7IDY4LCAtMSB9LAorICAgIHsgNTgs
IC0xIH0sCisgICAgeyA2NywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNSwgLTEgfSwK
KyAgICB7IDQsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCkBAIC02NjQsMjYgKzY1OSwyNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBh
Y3RIYXNoSW5kZXggSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleFsyNjhdID0gewogICAgIHsg
LTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMzgsIC0x
IH0sCisgICAgeyAzNywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA3
MiwgLTEgfSwKLSAgICB7IDE2LCAyNjEgfSwKKyAgICB7IDcxLCAtMSB9LAorICAgIHsgMTUsIDI2
MSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDUyLCAtMSB9LAor
ICAgIHsgNTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDQyLCAtMSB9LAotICAgIHsgMjMsIDI1
OCB9LAotICAgIHsgOSwgLTEgfSwKKyAgICB7IDQxLCAtMSB9LAorICAgIHsgMjIsIDI1OCB9LAor
ICAgIHsgOCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNDksIC0xIH0sCisgICAgeyA0
OCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKQEAgLTY5MiwyMCArNjg3LDIwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJ
bmRleCBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA0MCwgLTEgfSwKKyAg
ICB7IDM5LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0x
LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAotICAgIHsgMjUsIDI2NiB9LAorICAgIHsgMjQsIDI2NiB9LAogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKLSAgICB7IDgsIC0xIH0sCisgICAgeyA3LCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNzEzLDI3ICs3MDgsMjcgQEAg
c3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEdsb2JhbE9iamVjdFRh
YmxlSW5kZXhbMjY4XSA9IHsKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAg
eyAtMSwgLTEgfSwKLSAgICB7IDMzLCAtMSB9LAotICAgIHsgNjEsIC0xIH0sCisgICAgeyAzMiwg
LTEgfSwKKyAgICB7IDYwLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwK
ICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAotICAgIHsgMTIsIDI1NyB9LAorICAgIHsgMTEsIDI1NyB9LAogICAgIHsgLTEs
IC0xIH0sCi0gICAgeyA2MywgLTEgfSwKLSAgICB7IDIyLCAtMSB9LAorICAgIHsgNjIsIC0xIH0s
CisgICAgeyAyMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAg
eyAtMSwgLTEgfSwKLSAgICB7IDIxLCAtMSB9LAorICAgIHsgMjAsIC0xIH0sCiAgICAgeyAtMSwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwK
LSAgICB7IDM5LCAtMSB9LAorICAgIHsgMzgsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC03NDEsMTQgKzczNiwxNCBAQCBzdGF0aWMg
Y29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRl
eFsyNjhdID0gewogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAotICAgIHsgMjcsIC0xIH0sCisgICAgeyAyNiwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAog
ICAgIHsgMiwgLTEgfSwKLSAgICB7IDQxLCAtMSB9LAorICAgIHsgNDAsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyNCwgLTEg
fSwKKyAgICB7IDIzLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LApAQCAtNzYxLDM5ICs3NTYsMzggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBD
b21wYWN0SGFzaEluZGV4IEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXhbMjY4XSA9IHsKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDMx
LCAtMSB9LAotICAgIHsgMywgLTEgfSwKLSAgICB7IDQ2LCAtMSB9LAorICAgIHsgMzAsIC0xIH0s
CiAgICAgeyAtMSwgLTEgfSwKKyAgICB7IDQ1LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAg
eyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA1Nywg
LTEgfSwKICAgICB7IC0xLCAtMSB9LAorICAgIHsgNTYsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwK
ICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA1MSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAorICAgIHsgNTAsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDEzLCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCisgICAgeyAxMiwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCi0gICAgeyA2OSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNzAsIC0xIH0sCisg
ICAgeyA2OCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMzAsIC0xIH0sCi0gICAgeyAz
NSwgLTEgfSwKKyAgICB7IDY5LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCisgICAgeyAyOSwgLTEg
fSwKKyAgICB7IDM0LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LApAQCAtODAyLDEwICs3OTYsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBD
b21wYWN0SGFzaEluZGV4IEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXhbMjY4XSA9IHsKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDE4
LCAyNjAgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNjQsIC0xIH0sCisgICAgeyAxNywgMjYw
IH0sCiAgICAgeyAtMSwgLTEgfSwKKyAgICB7IDYzLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtODEzLDEyICs4MDcsMTIgQEAgc3Rh
dGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEdsb2JhbE9iamVjdFRhYmxl
SW5kZXhbMjY4XSA9IHsKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKLSAgICB7IDM3LCAyNjcgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMTksIDI1
NiB9LAorICAgIHsgMzYsIDI2NyB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA2NywgLTEgfSwK
KyAgICB7IDE4LCAyNTYgfSwKICAgICB7IC0xLCAtMSB9LAorICAgIHsgNjYsIC0xIH0sCiAgICAg
eyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC04MjgsMjAg
KzgyMiwyMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0R2xv
YmFsT2JqZWN0VGFibGVJbmRleFsyNjhdID0gewogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMTUsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwK
KyAgICB7IDE0LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAotICAgIHsgNTAsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKKyAgICB7IDQ5LCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDE0LCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCisgICAgeyAxMywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTg0OSw1NCArODQzLDU1IEBAIHN0YXRpYyBjb25zdCBz
dHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0g
PSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyA2MiwgLTEgfSwKKyAgICB7IC0xLCAtMSB9LAorICAgIHsgNjEsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IDEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDExLCAtMSB9
LAorICAgIHsgMTAsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDUzLCAyNjQgfSwKLSAgICB7IDEw
LCAyNjMgfSwKKyAgICB7IDUyLCAyNjQgfSwKKyAgICB7IDksIDI2MyB9LAogICAgIHsgLTEsIC0x
IH0sCi0gICAgeyA2NSwgLTEgfSwKKyAgICB7IDY0LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMTcsIC0xIH0sCisgICAgeyAxNiwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMjgsIC0xIH0sCisgICAgeyAyNywgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAzNCwgLTEgfSwKKyAgICB7IDMz
LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAotICAgIHsgNiwgLTEgfSwKLSAgICB7IDU1LCAtMSB9LAorICAgIHsgNSwgLTEgfSwKKyAgICB7
IDU0LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA1NiwgLTEgfSwKKyAgICB7IDU1LCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyMCwgLTEgfSwKLSAgICB7IDI2LCAyNTkgfSwKLSAgICB7
IDI5LCAyNjUgfSwKLSAgICB7IDMyLCAyNjIgfSwKLSAgICB7IDM2LCAtMSB9LAotICAgIHsgNDMs
IC0xIH0sCi0gICAgeyA0NSwgLTEgfSwKLSAgICB7IDQ3LCAtMSB9LAotICAgIHsgNTQsIC0xIH0s
Ci0gICAgeyA2MCwgLTEgfSwKLSAgICB7IDY2LCAtMSB9LAotICAgIHsgNzEsIC0xIH0sCisgICAg
eyAxOSwgLTEgfSwKKyAgICB7IDI1LCAyNTkgfSwKKyAgICB7IDI4LCAyNjUgfSwKKyAgICB7IDMx
LCAyNjIgfSwKKyAgICB7IDM1LCAtMSB9LAorICAgIHsgNDIsIC0xIH0sCisgICAgeyA0NCwgLTEg
fSwKKyAgICB7IDQ2LCAtMSB9LAorICAgIHsgNTMsIC0xIH0sCisgICAgeyA1OSwgLTEgfSwKKyAg
ICB7IDY1LCAtMSB9LAorICAgIHsgNzAsIC0xIH0sCiB9OwogCiAKQEAgLTkwOSw3ICs5MDQsNiBA
QCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVWYWx1
ZXNbXSA9CiAjZWxzZQogICAgIHsgeyB9LCAwLCBOb0ludHJpbnNpYywgeyBIYXNoVGFibGVWYWx1
ZTo6RW5kIH0gfSwKICNlbmRpZgotICAgIHsgInB1dEZvcndhcmRzQXR0cmlidXRlIl9zLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ip
LCBOb0ludHJpbnNpYywgeyBIYXNoVGFibGVWYWx1ZTo6R2V0dGVyU2V0dGVyVHlwZSwganNUZXN0
R2xvYmFsT2JqZWN0X3B1dEZvcndhcmRzQXR0cmlidXRlLCBzZXRKU1Rlc3RHbG9iYWxPYmplY3Rf
cHV0Rm9yd2FyZHNBdHRyaWJ1dGUgfSB9LAogICAgIHsgIlRlc3RBc3luY0l0ZXJhYmxlIl9zLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBO
b0ludHJpbnNpYywgeyBIYXNoVGFibGVWYWx1ZTo6R2V0dGVyU2V0dGVyVHlwZSwganNUZXN0R2xv
YmFsT2JqZWN0X1Rlc3RBc3luY0l0ZXJhYmxlQ29uc3RydWN0b3IsIDAgfSB9LAogICAgIHsgIlRl
c3RBc3luY0tleVZhbHVlSXRlcmFibGUiX3MsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IEhhc2hUYWJsZVZhbHVl
OjpHZXR0ZXJTZXR0ZXJUeXBlLCBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEFzeW5jS2V5VmFsdWVJ
dGVyYWJsZUNvbnN0cnVjdG9yLCAwIH0gfSwKICAgICB7ICJUZXN0Q0VSZWFjdGlvbnMiX3MsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IEhhc2hUYWJsZVZhbHVlOjpHZXR0ZXJTZXR0ZXJUeXBlLCBqc1Rlc3RHbG9i
YWxPYmplY3RfVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IsIDAgfSB9LApAQCAtOTkzLDcgKzk4
Nyw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RHbG9iYWxPYmplY3RUYWJs
ZVZhbHVlc1tdID0KICAgICB7ICJyZWd1bGFyT3BlcmF0aW9uIl9zLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyBI
YXNoVGFibGVWYWx1ZTo6TmF0aXZlRnVuY3Rpb25UeXBlLCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0
YW5jZUZ1bmN0aW9uX3JlZ3VsYXJPcGVyYXRpb24sIDEgfSB9LAogfTsKIAotc3RhdGljIGNvbnN0
IEhhc2hUYWJsZSBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZSA9IHsgNzMsIDI1NSwgc3RhdGljX2Nh
c3Q8dWludDhfdD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSwgSlNUZXN0R2xvYmFsT2JqZWN0OjppbmZvKCksIEpTVGVzdEdsb2JhbE9iamVjdFRh
YmxlVmFsdWVzLCBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZUluZGV4IH07CitzdGF0aWMgY29uc3Qg
SGFzaFRhYmxlIEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlID0geyA3MiwgMjU1LCBzdGF0aWNfY2Fz
dDx1aW50OF90PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVu
Y3Rpb24pLCBKU1Rlc3RHbG9iYWxPYmplY3Q6OmluZm8oKSwgSlNUZXN0R2xvYmFsT2JqZWN0VGFi
bGVWYWx1ZXMsIEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXggfTsKICNlbmRpZgogLyogSGFz
aCB0YWJsZSBmb3IgY29uc3RydWN0b3IgKi8KIApAQCAtMTI2Nyw0MyArMTI2MSw2IEBAIEpTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfZW5hYmxlZEF0UnVudGlt
ZUF0dHJpYnV0ZSwgKEpTR2xvCiAKICNlbmRpZgogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0X3B1dEZvcndhcmRzQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCi17
Ci0gICAgU1VQUFJFU1NfVU5DT1VOVEVEX0xPQ0FMIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0gICAgU1VQUFJFU1NfVU5DT1VOVEVEX0xPQ0FMIGF1dG8mIGltcGwgPSB0aGlz
T2JqZWN0LndyYXBwZWQoKTsKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMSW50ZXJmYWNlPFRlc3ROb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwucHV0Rm9yd2FyZHNBdHRyaWJ1dGUo
KSkpKTsKLX0KLQotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9w
dXRGb3J3YXJkc0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBhdHRyaWJ1dGVOYW1lKSkK
LXsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rl
c3RHbG9iYWxPYmplY3RfcHV0Rm9yd2FyZHNBdHRyaWJ1dGVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGF0dHJpYnV0ZU5hbWUpOwotfQotCi1zdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X3B1dEZvcndhcmRzQXR0cmlidXRlU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgU1VQUFJFU1NfVU5DT1VOVEVEX0xPQ0FMIGF1
dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgVU5VU0VEX1BB
UkFNKHZtKTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
LSAgICBhdXRvIGlkID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInB1dEZvcndhcmRzQXR0
cmlidXRlIl9zKTsKLSAgICBhdXRvIHZhbHVlVG9Gb3J3YXJkVG8gPSB0aGlzT2JqZWN0LnByb3h5
KCkuZ2V0KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBpZCk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElP
Tih0aHJvd1Njb3BlLCBmYWxzZSk7Ci0gICAgaWYgKFVOTElLRUxZKCF2YWx1ZVRvRm9yd2FyZFRv
LmlzT2JqZWN0KCkpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBhdXRv
IGZvcndhcmRJZCA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJuYW1lIl9zKTsKLSAgICBQ
dXRQcm9wZXJ0eVNsb3Qgc2xvdCh2YWx1ZVRvRm9yd2FyZFRvLCBmYWxzZSk7Ci0gICAgYXNPYmpl
Y3QodmFsdWVUb0ZvcndhcmRUbyktPm1ldGhvZFRhYmxlKCktPnB1dChhc09iamVjdCh2YWx1ZVRv
Rm9yd2FyZFRvKSwgJmxleGljYWxHbG9iYWxPYmplY3QsIGZvcndhcmRJZCwgdmFsdWUsIHNsb3Qp
OwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZmFsc2UpOwotICAgIHJldHVy
biB0cnVlOwotfQotCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0X3B1dEZvcndhcmRzQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlLCBQcm9wZXJ0eU5hbWUgYXR0cmlidXRlTmFtZSkpCi17Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X3B1dEZv
cndhcmRzQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsIGF0dHJpYnV0ZU5hbWUpOwotfQotCiBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RBc3luY0l0ZXJhYmxlQ29uc3RydWN0b3JHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhp
c09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEdsb2JhbE9i
amVjdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEdsb2Jh
bE9iamVjdC5pZGwKaW5kZXggYWEwZjVlYTNhMjFiLi4xZTk0Yjg0ODUwMWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0R2xvYmFsT2JqZWN0Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEdsb2JhbE9i
amVjdC5pZGwKQEAgLTQ1LDggKzQ1LDYgQEAKICAgICBbUHJpdmF0ZUlkZW50aWZpZXIsIENvbmRp
dGlvbmFsPVRFU1RfRkVBVFVSRSwgRW5hYmxlZEJ5RGVwcmVjYXRlZEdsb2JhbFNldHRpbmc9VGVz
dEZlYXR1cmVFbmFibGVkXSB1bmRlZmluZWQgdGVzdFByaXZhdGVGdW5jdGlvbigpOwogICAgIFtK
U0J1aWx0aW4sIENvbmRpdGlvbmFsPVRFU1RfRkVBVFVSRSwgRW5hYmxlZEJ5RGVwcmVjYXRlZEds
b2JhbFNldHRpbmc9VGVzdEZlYXR1cmVFbmFibGVkXSB1bmRlZmluZWQgdGVzdEpTQnVpbHRpbkZ1
bmN0aW9uKCk7CiAKLSAgICBbUHV0Rm9yd2FyZHM9bmFtZV0gcmVhZG9ubHkgYXR0cmlidXRlIFRl
c3ROb2RlIHB1dEZvcndhcmRzQXR0cmlidXRlOwotCiAgICAgLy8gW1NlY3VyZUNvbnRleHRdIGF0
dHJpYnV0ZXMgYW5kIG9wZXJhdGlvbnM7IHdpbGwgbm90IGJlIGV4cG9zZWQgdG8gYSBub24tc2Vj
dXJlIGNvbnRleHQuCiAgICAgLy8gRnJvbSA8aHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmFwcHNl
Yy1zZWN1cmUtY29udGV4dHMvI2ludGVncmF0aW9uLWlkbD4gKEVkaXRvcidzIERyYWZ0LCAxNyBO
b3ZlbWJlciAyMDE2KQogICAgIFtTZWN1cmVDb250ZXh0XSBQcm9taXNlPGRvdWJsZT4gY2FsY3Vs
YXRlU2VjcmV0UmVzdWx0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAppbmRleCAxY2QzMjAwNWY4OTYuLjNjZjg1Y2Q1ZGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC04NjQ5LDcgKzg2NDksNyBAQCBib29sIEhUTUxNZWRp
YUVsZW1lbnQ6OmVuc3VyZU1lZGlhQ29udHJvbHMoKQogICAgICAgICAgICAgaWYgKGNhbGxEYXRh
LnR5cGUgPT0gSlNDOjpDYWxsRGF0YTo6VHlwZTo6Tm9uZSkKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICAgICAgICAgIGF1dG8gY29udHJvbGxlclZhbHVlID0gSlNDOjpjYWxs
KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBmdW5jdGlvbiwgY2FsbERhdGEsICZnbG9iYWxPYmplY3Qu
cHJveHkoKSwgYXJnTGlzdCk7CisgICAgICAgICAgICBhdXRvIGNvbnRyb2xsZXJWYWx1ZSA9IEpT
Qzo6Y2FsbCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgZnVuY3Rpb24sIGNhbGxEYXRhLCAmZ2xvYmFs
T2JqZWN0LCBhcmdMaXN0KTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGZhbHNlKTsKIAogICAgICAgICAgICAgYXV0byogY29udHJvbGxlck9iamVjdCA9IEpTQzo6anNE
eW5hbWljQ2FzdDxKU0M6OkpTT2JqZWN0Kj4oY29udHJvbGxlclZhbHVlKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJh
bWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3Mt
ZnJvbS1jbG9zdXJlLWlmcmFtZS1leHBlY3RlZC50eHQKaW5kZXggMGYzOGRkNzEwNzY3Li44YzUx
YWMyMTczZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNj
ZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQudHh0
CkBAIC0xLDUgKzEsNSBAQAogZG9jdW1lbnQuVVJMOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1jaGlsZC5odG1sCiB3
aW5kb3cuZG9jdW1lbnQuVVJMOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2Vz
L25vdGlmeS1wYXJlbnQtZG9uZS5odG1sCi1uYW1lOiBjaGlsZAorbmFtZToKIHdpbmRvdy5uYW1l
OiBjaGlsZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFj
Y2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctZXhwZWN0ZWQudHh0Cmlu
ZGV4IGU3MGMwZGIyNzg4NC4uODJhZjMxZTE1M2I0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1
cmUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIGRvY3VtZW50LlVSTDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3Vy
ZS13aW5kb3ctY2hpbGQuaHRtbAogd2luZG93LmRvY3VtZW50LlVSTDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3Jlc291cmNlcy9ub3RpZnktb3BlbmVyLWRvbmUuaHRtbAotbmFtZTogY2hp
bGQKK25hbWU6CiB3aW5kb3cubmFtZTogY2hpbGQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy13aXRoLWdjLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20t
Y2xvc3VyZS13aW5kb3ctd2l0aC1nYy1leHBlY3RlZC50eHQKaW5kZXggZTcwYzBkYjI3ODg0Li44
MmFmMzFlMTUzYjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20t
YWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctd2l0aC1nYy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy13
aXRoLWdjLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIGRvY3VtZW50LlVSTDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13
aW5kb3ctY2hpbGQuaHRtbAogd2luZG93LmRvY3VtZW50LlVSTDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3Jlc291cmNlcy9ub3RpZnktb3BlbmVyLWRvbmUuaHRtbAotbmFtZTogY2hpbGQK
K25hbWU6CiB3aW5kb3cubmFtZTogY2hpbGQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWh0bWxlbGVsbWVudC13aXRoLWlmcmFtZS1wcm90
by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5J
RUQtaHRtbGVsZWxtZW50LXdpdGgtaWZyYW1lLXByb3RvLWV4cGVjdGVkLnR4dAppbmRleCAzNWI4
ZmY0NTM2Y2QuLmU1NThjZDRjYTllMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3MtREVOSUVELWh0bWxlbGVsbWVudC13aXRoLWlmcmFtZS1wcm90by1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVE
LWh0bWxlbGVsbWVudC13aXRoLWlmcmFtZS1wcm90by1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3
IEBAIFRlc3RzIHRoYXQgbWFraW5nIG90aGVyIGZyYW1lIHdpbmRvdyBhIHByb3RvdHlwZSBkb2Vz
bid0IGV4cG9zZSB0aGF0IHdpbmRvdyBzdWJmCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAK
IAotUEFTUyBfX3Byb3RvX18gPSB0YXJnZXRXaW5kb3cgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogQ2Fubm90IHNldCBwcm90b3R5cGUgb2YgaW1tdXRhYmxlIHByb3RvdHlwZSBvYmplY3QuCitQ
QVNTIF9fcHJvdG9fXyA9IHRhcmdldFdpbmRvdyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBP
YmplY3QucHJvdG90eXBlLl9fcHJvdG9fXyBjYWxsZWQgb24gbnVsbCBvciB1bmRlZmluZWQuCiBQ
QVNTIHRhcmdldFdpbmRvdy5teWlucHV0IHRocmV3IGV4Y2VwdGlvbiBTZWN1cml0eUVycm9yOiBC
bG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBh
Y2Nlc3NpbmcgYSBjcm9zcy1vcmlnaW4gZnJhbWUuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guLgogUEFTUzogc3VjY2Vzc2Z1bGx5UGFyc2VkIHNob3VsZCBiZSAndHJ1
ZScgYW5kIGlzLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3hzcy1ERU5JRUQtbWV0aG9kLXdpdGgtaWZyYW1lLXByb3RvLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1tZXRob2Qtd2l0aC1pZnJhbWUt
cHJvdG8tZXhwZWN0ZWQudHh0CmluZGV4IGRlYTljNDAzNTBmNy4uYTI2YmIzOGE1MTRkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtbWV0aG9k
LXdpdGgtaWZyYW1lLXByb3RvLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtbWV0aG9kLXdpdGgtaWZyYW1lLXByb3RvLWV4cGVjdGVk
LnR4dApAQCAtNyw3ICs3LDcgQEAgVGVzdHMgdGhhdCBtYWtpbmcgb3RoZXIgZnJhbWUgd2luZG93
IGEgcHJvdG90eXBlIGRvZXNuJ3QgZXhwb3NlIHRoYXQgd2luZG93IG1ldGgKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIF9fcHJvdG9fXyA9IHRhcmdldFdpbmRvdyB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBDYW5ub3Qgc2V0IHByb3RvdHlwZSBvZiBpbW11dGFibGUgcHJv
dG90eXBlIG9iamVjdC4KK1BBU1MgX19wcm90b19fID0gdGFyZ2V0V2luZG93IHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IE9iamVjdC5wcm90b3R5cGUuX19wcm90b19fIGNhbGxlZCBvbiBudWxs
IG9yIHVuZGVmaW5lZC4KIFBBU1M6IHN1Y2Nlc3NmdWxseVBhcnNlZCBzaG91bGQgYmUgJ3RydWUn
IGFuZCBpcy4KIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5vbi1zaGFkb3dhYmxlLXByb3B0ZXJ0eS13aXRoLWlm
cmFtZS1wcm90by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3hzcy1ERU5JRUQtbm9uLXNoYWRvd2FibGUtcHJvcHRlcnR5LXdpdGgtaWZyYW1lLXByb3RvLWV4
cGVjdGVkLnR4dAppbmRleCAzYWJmZTNjZWYzMzcuLjhkODVkMDFkNGRjZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5vbi1zaGFkb3dhYmxl
LXByb3B0ZXJ0eS13aXRoLWlmcmFtZS1wcm90by1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5vbi1zaGFkb3dhYmxlLXByb3B0ZXJ0
eS13aXRoLWlmcmFtZS1wcm90by1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIFRlc3RzIHRo
YXQgbWFraW5nIG90aGVyIGZyYW1lIHdpbmRvdyBhIHByb3RvdHlwZSBkb2Vzbid0IGV4cG9zZSB0
aGF0IHdpbmRvdyBwcm9wCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBfX3By
b3RvX18gPSB0YXJnZXRXaW5kb3cgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQ2Fubm90IHNl
dCBwcm90b3R5cGUgb2YgaW1tdXRhYmxlIHByb3RvdHlwZSBvYmplY3QuCitQQVNTIF9fcHJvdG9f
XyA9IHRhcmdldFdpbmRvdyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBPYmplY3QucHJvdG90
eXBlLl9fcHJvdG9fXyBjYWxsZWQgb24gbnVsbCBvciB1bmRlZmluZWQuCiBQQVNTOiBsb2NhdGlv
biA9PT0gb3JpZ2luYWxMb2NhdGlvbiBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KIFBBU1M6IHRo
aXMubG9jYXRpb24gPT09IG9yaWdpbmFsTG9jYXRpb24gc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMu
CiBQQVNTOiBzdWNjZXNzZnVsbHlQYXJzZWQgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtcmVndWxh
ci1wcm9wdGVydHktd2l0aC1pZnJhbWUtcHJvdG8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXJlZ3VsYXItcHJvcHRlcnR5LXdpdGgtaWZy
YW1lLXByb3RvLWV4cGVjdGVkLnR4dAppbmRleCBhODgzZDRlYTA0NDIuLjMzYTJhYjcyZDlmNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXJl
Z3VsYXItcHJvcHRlcnR5LXdpdGgtaWZyYW1lLXByb3RvLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtcmVndWxhci1wcm9wdGVydHkt
d2l0aC1pZnJhbWUtcHJvdG8tZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURQogCiAKIFBBU1MgdGhpcy5fX3Byb3RvX18gPSB0YXJnZXRXaW5kb3cgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQ2Fubm90IHNldCBwcm90b3R5cGUgb2YgaW1tdXRhYmxl
IHByb3RvdHlwZSBvYmplY3QuCi1QQVNTIF9fcHJvdG9fXyA9IHRhcmdldFdpbmRvdyB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBDYW5ub3Qgc2V0IHByb3RvdHlwZSBvZiBpbW11dGFibGUgcHJv
dG90eXBlIG9iamVjdC4KK1BBU1MgX19wcm90b19fID0gdGFyZ2V0V2luZG93IHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IE9iamVjdC5wcm90b3R5cGUuX19wcm90b19fIGNhbGxlZCBvbiBudWxs
IG9yIHVuZGVmaW5lZC4KIFBBU1M6IGlubmVySGVpZ2h0ID09PSBvcmlnaW5hbElubmVySGVpZ2h0
IHNob3VsZCBiZSAndHJ1ZScgYW5kIGlzLgogUEFTUzogdGhpcy5pbm5lckhlaWdodCA9PT0gb3Jp
Z2luYWxJbm5lckhlaWdodCBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KIFBBU1M6IHN1Y2Nlc3Nm
dWxseVBhcnNlZCBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML2VjbWFzY3JpcHQtYmlu
ZGluZy9nbG9iYWwtb2JqZWN0LWltcGxpY2l0LXRoaXMtdmFsdWUtY3Jvc3MtcmVhbG0tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJJ
REwvZWNtYXNjcmlwdC1iaW5kaW5nL2dsb2JhbC1vYmplY3QtaW1wbGljaXQtdGhpcy12YWx1ZS1j
cm9zcy1yZWFsbS1leHBlY3RlZC50eHQKaW5kZXggZGQ2ZjhlZjUyMTEwLi5jMjE0N2JmZTQ3Y2Ug
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
V2ViSURML2VjbWFzY3JpcHQtYmluZGluZy9nbG9iYWwtb2JqZWN0LWltcGxpY2l0LXRoaXMtdmFs
dWUtY3Jvc3MtcmVhbG0tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML2VjbWFzY3JpcHQtYmluZGluZy9nbG9iYWwtb2Jq
ZWN0LWltcGxpY2l0LXRoaXMtdmFsdWUtY3Jvc3MtcmVhbG0tZXhwZWN0ZWQudHh0CkBAIC0yLDcg
KzIsNyBAQAogUEFTUyBDcm9zcy1yZWFsbSBnbG9iYWwgb2JqZWN0J3MgZ2V0dGVyIHRocm93cyB3
aGVuIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgb2JqZWN0CiBQQVNTIENyb3NzLXJlYWxtIGdsb2Jh
bCBvYmplY3QncyBzZXR0ZXIgdGhyb3dzIHdoZW4gY2FsbGVkIG9uIGluY29tcGF0aWJsZSBvYmpl
Y3QKIFBBU1MgQ3Jvc3MtcmVhbG0gZ2xvYmFsIG9iamVjdCdzIG9wZXJhdGlvbiB0aHJvd3Mgd2hl
biBjYWxsZWQgb24gaW5jb21wYXRpYmxlIG9iamVjdAotUEFTUyBDcm9zcy1yZWFsbSBnbG9iYWwg
b2JqZWN0J3MgZ2V0dGVyIGNhbGxlZCBvbiBudWxsIC8gdW5kZWZpbmVkCi1QQVNTIENyb3NzLXJl
YWxtIGdsb2JhbCBvYmplY3QncyBzZXR0ZXIgY2FsbGVkIG9uIG51bGwgLyB1bmRlZmluZWQKK0ZB
SUwgQ3Jvc3MtcmVhbG0gZ2xvYmFsIG9iamVjdCdzIGdldHRlciBjYWxsZWQgb24gbnVsbCAvIHVu
ZGVmaW5lZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJUeXBlRXJyb3I6IFRoZSBXaW5kb3cubmFtZSBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBv
biBpbnN0YW5jZXMgb2YgV2luZG93IgorRkFJTCBDcm9zcy1yZWFsbSBnbG9iYWwgb2JqZWN0J3Mg
c2V0dGVyIGNhbGxlZCBvbiBudWxsIC8gdW5kZWZpbmVkIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVGhlIFdpbmRvdy5sb2Nh
dGlvbiBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgV2luZG93IgogUEFT
UyBDcm9zcy1yZWFsbSBnbG9iYWwgb2JqZWN0J3Mgb3BlcmF0aW9uIGNhbGxlZCBvbiBudWxsIC8g
dW5kZWZpbmVkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvV2ViSURML2VjbWFzY3JpcHQtYmluZGluZy9nbG9iYWwtb2JqZWN0LWltcGxp
Y2l0LXRoaXMtdmFsdWUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML2VjbWFzY3JpcHQtYmluZGluZy9nbG9iYWwtb2Jq
ZWN0LWltcGxpY2l0LXRoaXMtdmFsdWUuYW55LWV4cGVjdGVkLnR4dAppbmRleCAxNmI4ZDBkMzY5
ODkuLjJkYjg1OGQ0NGQ3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9XZWJJREwvZWNtYXNjcmlwdC1iaW5kaW5nL2dsb2JhbC1vYmplY3Qt
aW1wbGljaXQtdGhpcy12YWx1ZS5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML2VjbWFzY3JpcHQtYmluZGluZy9n
bG9iYWwtb2JqZWN0LWltcGxpY2l0LXRoaXMtdmFsdWUuYW55LWV4cGVjdGVkLnR4dApAQCAtNSw3
ICs1LDcgQEAgUEFTUyBHbG9iYWwgb2JqZWN0J3Mgb3BlcmF0aW9uIHRocm93cyB3aGVuIGNhbGxl
ZCBvbiBpbmNvbXBhdGlibGUgb2JqZWN0CiBQQVNTIEdsb2JhbCBvYmplY3QncyBnZXR0ZXIgdGhy
b3dzIHdoZW4gY2FsbGVkIG9uIGluY29tcGF0aWJsZSBvYmplY3QgKGRvY3VtZW50LmFsbCkKIFBB
U1MgR2xvYmFsIG9iamVjdCdzIHNldHRlciB0aHJvd3Mgd2hlbiBjYWxsZWQgb24gaW5jb21wYXRp
YmxlIG9iamVjdCAoZG9jdW1lbnQuYWxsKQogUEFTUyBHbG9iYWwgb2JqZWN0J3Mgb3BlcmF0aW9u
IHRocm93cyB3aGVuIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgb2JqZWN0IChkb2N1bWVudC5hbGwp
Ci1QQVNTIEdsb2JhbCBvYmplY3QncyBnZXR0ZXIgd29ya3Mgd2hlbiBjYWxsZWQgb24gbnVsbCAv
IHVuZGVmaW5lZAotUEFTUyBHbG9iYWwgb2JqZWN0J3Mgc2V0dGVyIHdvcmtzIHdoZW4gY2FsbGVk
IG9uIG51bGwgLyB1bmRlZmluZWQKK0ZBSUwgR2xvYmFsIG9iamVjdCdzIGdldHRlciB3b3JrcyB3
aGVuIGNhbGxlZCBvbiBudWxsIC8gdW5kZWZpbmVkIFRoZSBXaW5kb3cubG9jYXRpb24gZ2V0dGVy
IGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFdpbmRvdworRkFJTCBHbG9iYWwgb2Jq
ZWN0J3Mgc2V0dGVyIHdvcmtzIHdoZW4gY2FsbGVkIG9uIG51bGwgLyB1bmRlZmluZWQgVGhlIFdp
bmRvdy5vbm9ubGluZSBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgV2lu
ZG93CiBQQVNTIEdsb2JhbCBvYmplY3QncyBvcGVyYXRpb24gd29ya3Mgd2hlbiBjYWxsZWQgb24g
bnVsbCAvIHVuZGVmaW5lZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1dlYklETC9lY21hc2NyaXB0LWJpbmRpbmcvZ2xvYmFsLW9iamVj
dC1pbXBsaWNpdC10aGlzLXZhbHVlLmFueS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML2VjbWFzY3Jp
cHQtYmluZGluZy9nbG9iYWwtb2JqZWN0LWltcGxpY2l0LXRoaXMtdmFsdWUuYW55LnNlcnZpY2V3
b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDk4ZWQ5ODlhYjIzYy4uMzlhNWE3YWYzY2M3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYklE
TC9lY21hc2NyaXB0LWJpbmRpbmcvZ2xvYmFsLW9iamVjdC1pbXBsaWNpdC10aGlzLXZhbHVlLmFu
eS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYklETC9lY21hc2NyaXB0LWJpbmRpbmcvZ2xvYmFsLW9i
amVjdC1pbXBsaWNpdC10aGlzLXZhbHVlLmFueS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dApA
QCAtMiw3ICsyLDcgQEAKIFBBU1MgR2xvYmFsIG9iamVjdCdzIGdldHRlciB0aHJvd3Mgd2hlbiBj
YWxsZWQgb24gaW5jb21wYXRpYmxlIG9iamVjdAogUEFTUyBHbG9iYWwgb2JqZWN0J3Mgc2V0dGVy
IHRocm93cyB3aGVuIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgb2JqZWN0CiBQQVNTIEdsb2JhbCBv
YmplY3QncyBvcGVyYXRpb24gdGhyb3dzIHdoZW4gY2FsbGVkIG9uIGluY29tcGF0aWJsZSBvYmpl
Y3QKLVBBU1MgR2xvYmFsIG9iamVjdCdzIGdldHRlciB3b3JrcyB3aGVuIGNhbGxlZCBvbiBudWxs
IC8gdW5kZWZpbmVkCi1QQVNTIEdsb2JhbCBvYmplY3QncyBzZXR0ZXIgd29ya3Mgd2hlbiBjYWxs
ZWQgb24gbnVsbCAvIHVuZGVmaW5lZAorRkFJTCBHbG9iYWwgb2JqZWN0J3MgZ2V0dGVyIHdvcmtz
IHdoZW4gY2FsbGVkIG9uIG51bGwgLyB1bmRlZmluZWQgVGhlIFdvcmtlckdsb2JhbFNjb3BlLmxv
Y2F0aW9uIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBXb3JrZXJHbG9i
YWxTY29wZQorRkFJTCBHbG9iYWwgb2JqZWN0J3Mgc2V0dGVyIHdvcmtzIHdoZW4gY2FsbGVkIG9u
IG51bGwgLyB1bmRlZmluZWQgVGhlIFdvcmtlckdsb2JhbFNjb3BlLm9ub25saW5lIHNldHRlciBj
YW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBXb3JrZXJHbG9iYWxTY29wZQogUEFTUyBH
bG9iYWwgb2JqZWN0J3Mgb3BlcmF0aW9uIHdvcmtzIHdoZW4gY2FsbGVkIG9uIG51bGwgLyB1bmRl
ZmluZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9XZWJJREwvZWNtYXNjcmlwdC1iaW5kaW5nL2dsb2JhbC1vYmplY3QtaW1wbGljaXQt
dGhpcy12YWx1ZS5hbnkuc2hhcmVkd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML2VjbWFzY3JpcHQtYmluZGluZy9n
bG9iYWwtb2JqZWN0LWltcGxpY2l0LXRoaXMtdmFsdWUuYW55LnNoYXJlZHdvcmtlci1leHBlY3Rl
ZC50eHQKaW5kZXggOThlZDk4OWFiMjNjLi4zOWE1YTdhZjNjYzcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML2VjbWFzY3JpcHQt
YmluZGluZy9nbG9iYWwtb2JqZWN0LWltcGxpY2l0LXRoaXMtdmFsdWUuYW55LnNoYXJlZHdvcmtl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9XZWJJREwvZWNtYXNjcmlwdC1iaW5kaW5nL2dsb2JhbC1vYmplY3QtaW1wbGljaXQt
dGhpcy12YWx1ZS5hbnkuc2hhcmVkd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDcgQEAK
IFBBU1MgR2xvYmFsIG9iamVjdCdzIGdldHRlciB0aHJvd3Mgd2hlbiBjYWxsZWQgb24gaW5jb21w
YXRpYmxlIG9iamVjdAogUEFTUyBHbG9iYWwgb2JqZWN0J3Mgc2V0dGVyIHRocm93cyB3aGVuIGNh
bGxlZCBvbiBpbmNvbXBhdGlibGUgb2JqZWN0CiBQQVNTIEdsb2JhbCBvYmplY3QncyBvcGVyYXRp
b24gdGhyb3dzIHdoZW4gY2FsbGVkIG9uIGluY29tcGF0aWJsZSBvYmplY3QKLVBBU1MgR2xvYmFs
IG9iamVjdCdzIGdldHRlciB3b3JrcyB3aGVuIGNhbGxlZCBvbiBudWxsIC8gdW5kZWZpbmVkCi1Q
QVNTIEdsb2JhbCBvYmplY3QncyBzZXR0ZXIgd29ya3Mgd2hlbiBjYWxsZWQgb24gbnVsbCAvIHVu
ZGVmaW5lZAorRkFJTCBHbG9iYWwgb2JqZWN0J3MgZ2V0dGVyIHdvcmtzIHdoZW4gY2FsbGVkIG9u
IG51bGwgLyB1bmRlZmluZWQgVGhlIFdvcmtlckdsb2JhbFNjb3BlLmxvY2F0aW9uIGdldHRlciBj
YW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBXb3JrZXJHbG9iYWxTY29wZQorRkFJTCBH
bG9iYWwgb2JqZWN0J3Mgc2V0dGVyIHdvcmtzIHdoZW4gY2FsbGVkIG9uIG51bGwgLyB1bmRlZmlu
ZWQgVGhlIFdvcmtlckdsb2JhbFNjb3BlLm9ub25saW5lIHNldHRlciBjYW4gb25seSBiZSB1c2Vk
IG9uIGluc3RhbmNlcyBvZiBXb3JrZXJHbG9iYWxTY29wZQogUEFTUyBHbG9iYWwgb2JqZWN0J3Mg
b3BlcmF0aW9uIHdvcmtzIHdoZW4gY2FsbGVkIG9uIG51bGwgLyB1bmRlZmluZWQKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJJREwv
ZWNtYXNjcmlwdC1iaW5kaW5nL2dsb2JhbC1vYmplY3QtaW1wbGljaXQtdGhpcy12YWx1ZS5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvV2ViSURML2VjbWFzY3JpcHQtYmluZGluZy9nbG9iYWwtb2JqZWN0LWltcGxpY2l0
LXRoaXMtdmFsdWUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggOThlZDk4OWFiMjNjLi4z
OWE1YTdhZjNjYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvV2ViSURML2VjbWFzY3JpcHQtYmluZGluZy9nbG9iYWwtb2JqZWN0LWltcGxp
Y2l0LXRoaXMtdmFsdWUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJJREwvZWNtYXNjcmlwdC1iaW5kaW5n
L2dsb2JhbC1vYmplY3QtaW1wbGljaXQtdGhpcy12YWx1ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dApAQCAtMiw3ICsyLDcgQEAKIFBBU1MgR2xvYmFsIG9iamVjdCdzIGdldHRlciB0aHJvd3Mgd2hl
biBjYWxsZWQgb24gaW5jb21wYXRpYmxlIG9iamVjdAogUEFTUyBHbG9iYWwgb2JqZWN0J3Mgc2V0
dGVyIHRocm93cyB3aGVuIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgb2JqZWN0CiBQQVNTIEdsb2Jh
bCBvYmplY3QncyBvcGVyYXRpb24gdGhyb3dzIHdoZW4gY2FsbGVkIG9uIGluY29tcGF0aWJsZSBv
YmplY3QKLVBBU1MgR2xvYmFsIG9iamVjdCdzIGdldHRlciB3b3JrcyB3aGVuIGNhbGxlZCBvbiBu
dWxsIC8gdW5kZWZpbmVkCi1QQVNTIEdsb2JhbCBvYmplY3QncyBzZXR0ZXIgd29ya3Mgd2hlbiBj
YWxsZWQgb24gbnVsbCAvIHVuZGVmaW5lZAorRkFJTCBHbG9iYWwgb2JqZWN0J3MgZ2V0dGVyIHdv
cmtzIHdoZW4gY2FsbGVkIG9uIG51bGwgLyB1bmRlZmluZWQgVGhlIFdvcmtlckdsb2JhbFNjb3Bl
LmxvY2F0aW9uIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBXb3JrZXJH
bG9iYWxTY29wZQorRkFJTCBHbG9iYWwgb2JqZWN0J3Mgc2V0dGVyIHdvcmtzIHdoZW4gY2FsbGVk
IG9uIG51bGwgLyB1bmRlZmluZWQgVGhlIFdvcmtlckdsb2JhbFNjb3BlLm9ub25saW5lIHNldHRl
ciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBXb3JrZXJHbG9iYWxTY29wZQogUEFT
UyBHbG9iYWwgb2JqZWN0J3Mgb3BlcmF0aW9uIHdvcmtzIHdoZW4gY2FsbGVkIG9uIG51bGwgLyB1
bmRlZmluZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvZW1iZWRkZWQtb3BlbmVyLXJlbW92ZS1m
cmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9lbWJlZGRlZC1vcGVuZXItcmVtb3ZlLWZyYW1l
LWV4cGVjdGVkLnR4dAppbmRleCA5NGU3ODE5ODg5ZjUuLjE5YjQ4NDRjMDk0MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dz
ZXJzL3dpbmRvd3MvZW1iZWRkZWQtb3BlbmVyLXJlbW92ZS1mcmFtZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dz
ZXJzL3dpbmRvd3MvZW1iZWRkZWQtb3BlbmVyLXJlbW92ZS1mcmFtZS1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSw0IEBACiAKLVBBU1Mgb3BlbmVyIG9mIGRpc2NhcmRlZCBuZXN0ZWQgYnJvd3Npbmcg
Y29udGV4dAotUEFTUyBvcGVuZXIgb2YgZGlzY2FyZGVkIGF1eGlsaWFyeSBicm93c2luZyBjb250
ZXh0CitGQUlMIG9wZW5lciBvZiBkaXNjYXJkZWQgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHQgVGhl
IFdpbmRvdy5vcGVuZXIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFdp
bmRvdworRkFJTCBvcGVuZXIgb2YgZGlzY2FyZGVkIGF1eGlsaWFyeSBicm93c2luZyBjb250ZXh0
IFRoZSBXaW5kb3cub3BlbmVyIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBv
ZiBXaW5kb3cKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
ZXhlY3V0aW9uLXRpbWluZy8wODMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvZXhlY3V0aW9uLXRpbWluZy8wODMtZXhwZWN0ZWQudHh0CmluZGV4IGM4MmU0
M2QyNjMyZC4uMmNiYjQ4YzI1NjM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3Jp
cHQtZWxlbWVudC9leGVjdXRpb24tdGltaW5nLzA4My1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvZXhlY3V0aW9uLXRpbWluZy8wODMtZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsNCBAQAogRkFJTEVEIChUaGlzIFRDIHJlcXVpcmVzIEphdmFTY3JpcHQg
ZW5hYmxlZCkKIAotRkFJTCAgc2NoZWR1bGVyOiBldmVudCBsaXN0ZW5lciBkZWZpbmVkIGJ5IHNj
cmlwdCBpbiBhIGRvY3VtZW50IGluIGhpc3RvcnkgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3Ro
cyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFsiaW5saW5lIHNjcmlwdCAjMSIsICJJRlJBTUUgc2Ny
aXB0IiwgImVuZCBzY3JpcHQgIzEiLCAiZXZlbnQ6IGZvbyIsICJpbmxpbmUgc2NyaXB0ICMyIl0g
bGVuZ3RoIDUsIGdvdCBbImlubGluZSBzY3JpcHQgIzEiLCAiSUZSQU1FIHNjcmlwdCIsICJlbmQg
c2NyaXB0ICMxIiwgImV2ZW50OiBmb28iLCAiZXZlbnQ6IGZvbyIsICJpbmxpbmUgc2NyaXB0ICMy
IiwgImV2ZW50OiBmb28iXSBsZW5ndGggNworRkFJTCAgc2NoZWR1bGVyOiBldmVudCBsaXN0ZW5l
ciBkZWZpbmVkIGJ5IHNjcmlwdCBpbiBhIGRvY3VtZW50IGluIGhpc3RvcnkgYXNzZXJ0X2FycmF5
X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFsiaW5saW5lIHNjcmlwdCAj
MSIsICJJRlJBTUUgc2NyaXB0IiwgImVuZCBzY3JpcHQgIzEiLCAiZXZlbnQ6IGZvbyIsICJpbmxp
bmUgc2NyaXB0ICMyIl0gbGVuZ3RoIDUsIGdvdCBbImlubGluZSBzY3JpcHQgIzEiLCAiSUZSQU1F
IHNjcmlwdCIsICJlbmQgc2NyaXB0ICMxIiwgImV2ZW50OiBmb28iLCAiZXZlbnQ6IGZvbyIsICJp
bmxpbmUgc2NyaXB0ICMyIl0gbGVuZ3RoIDYKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL3VubG9hZC1hLWRvY3VtZW50
LzAwMV9kZWZhdWx0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy91bmxvYWQtYS1kb2N1bWVudC8wMDFfZGVmYXVsdC1l
eHBlY3RlZC50eHQKaW5kZXggNmUyN2UwNzI1NzQ3Li4wY2Q1ZGZkZTA4OTcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy91
bmxvYWQtYS1kb2N1bWVudC8wMDFfZGVmYXVsdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL3VubG9hZC1hLWRv
Y3VtZW50LzAwMV9kZWZhdWx0LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDcgQEAKIFRlc3QgcmVx
dWlyZXMgcG9wdXAgYmxvY2tlciBkaXNhYmxlZAogCiAKK0hhcm5lc3MgRXJyb3IgKEZBSUwpLCBt
ZXNzYWdlID0gVGVzdCBuYW1lZCAnV2ViU29ja2V0czogbmF2aWdhdGluZyB0b3AtbGV2ZWwgYnJv
d3NpbmcgY29udGV4dCcgc3BlY2lmaWVkIDIgJ2NsZWFudXAnIGZ1bmN0aW9ucywgYW5kIDEgZmFp
bGVkLgorCiBQQVNTIFdlYlNvY2tldHM6IG5hdmlnYXRpbmcgdG9wLWxldmVsIGJyb3dzaW5nIGNv
bnRleHQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJzb2NrZXRzL3VubG9hZC1hLWRvY3VtZW50LzAwMV93c3MtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRz
L3VubG9hZC1hLWRvY3VtZW50LzAwMV93c3MtZXhwZWN0ZWQudHh0CmluZGV4IDZlMjdlMDcyNTc0
Ny4uMGNkNWRmZGUwODk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvdW5sb2FkLWEtZG9jdW1lbnQvMDAxX3dzcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJzb2NrZXRzL3VubG9hZC1hLWRvY3VtZW50LzAwMV93c3MtZXhwZWN0ZWQudHh0CkBAIC0x
LDUgKzEsNyBAQAogVGVzdCByZXF1aXJlcyBwb3B1cCBibG9ja2VyIGRpc2FibGVkCiAKIAorSGFy
bmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBUZXN0IG5hbWVkICdXZWJTb2NrZXRzOiBuYXZp
Z2F0aW5nIHRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0JyBzcGVjaWZpZWQgMiAnY2xlYW51cCcg
ZnVuY3Rpb25zLCBhbmQgMSBmYWlsZWQuCisKIFBBU1MgV2ViU29ja2V0czogbmF2aWdhdGluZyB0
b3AtbGV2ZWwgYnJvd3NpbmcgY29udGV4dAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvdW5sb2FkLWEtZG9jdW1lbnQv
MDAyX2RlZmF1bHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL3VubG9hZC1hLWRvY3VtZW50LzAwMl9kZWZhdWx0LWV4
cGVjdGVkLnR4dAppbmRleCA5MjczYTBhZmY4MjkuLjQxZjY4YTZmNTM3NyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL3Vu
bG9hZC1hLWRvY3VtZW50LzAwMl9kZWZhdWx0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvdW5sb2FkLWEtZG9j
dW1lbnQvMDAyX2RlZmF1bHQtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNyBAQAogVGVzdCByZXF1
aXJlcyBwb3B1cCBibG9ja2VyIGRpc2FibGVkCiAKIAorSGFybmVzcyBFcnJvciAoRkFJTCksIG1l
c3NhZ2UgPSBUZXN0IG5hbWVkICdXZWJTb2NrZXRzOiBuYXZpZ2F0aW5nIHRvcC1sZXZlbCBicm93
c2luZyBjb250ZXh0IHdpdGggY2xvc2VkIHdlYnNvY2tldCcgc3BlY2lmaWVkIDIgJ2NsZWFudXAn
IGZ1bmN0aW9ucywgYW5kIDEgZmFpbGVkLgorCiBGQUlMIFdlYlNvY2tldHM6IG5hdmlnYXRpbmcg
dG9wLWxldmVsIGJyb3dzaW5nIGNvbnRleHQgd2l0aCBjbG9zZWQgd2Vic29ja2V0IGFzc2VydF91
bnJlYWNoZWQ6IGRvY3VtZW50IHdhcyBkaXNjYXJkZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2Rl
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2Vic29ja2V0cy91bmxvYWQtYS1kb2N1bWVudC8wMDJfd3NzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy91bmxv
YWQtYS1kb2N1bWVudC8wMDJfd3NzLWV4cGVjdGVkLnR4dAppbmRleCA5MjczYTBhZmY4MjkuLjQx
ZjY4YTZmNTM3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL3VubG9hZC1hLWRvY3VtZW50LzAwMl93c3MtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
c29ja2V0cy91bmxvYWQtYS1kb2N1bWVudC8wMDJfd3NzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsx
LDcgQEAKIFRlc3QgcmVxdWlyZXMgcG9wdXAgYmxvY2tlciBkaXNhYmxlZAogCiAKK0hhcm5lc3Mg
RXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gVGVzdCBuYW1lZCAnV2ViU29ja2V0czogbmF2aWdhdGlu
ZyB0b3AtbGV2ZWwgYnJvd3NpbmcgY29udGV4dCB3aXRoIGNsb3NlZCB3ZWJzb2NrZXQnIHNwZWNp
ZmllZCAyICdjbGVhbnVwJyBmdW5jdGlvbnMsIGFuZCAxIGZhaWxlZC4KKwogRkFJTCBXZWJTb2Nr
ZXRzOiBuYXZpZ2F0aW5nIHRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0IHdpdGggY2xvc2VkIHdl
YnNvY2tldCBhc3NlcnRfdW5yZWFjaGVkOiBkb2N1bWVudCB3YXMgZGlzY2FyZGVkIFJlYWNoZWQg
dW5yZWFjaGFibGUgY29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvdW5sb2FkLWEtZG9jdW1lbnQvMDAzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
c29ja2V0cy91bmxvYWQtYS1kb2N1bWVudC8wMDMtZXhwZWN0ZWQudHh0CmluZGV4IDA1OTJiYzEw
NWY1ZS4uN2E1YmNhNWM1YjYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvdW5sb2FkLWEtZG9jdW1lbnQvMDAzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnNvY2tldHMvdW5sb2FkLWEtZG9jdW1lbnQvMDAzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsx
LDUgQEAKIAorSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBUZXN0IG5hbWVkICdXZWJT
b2NrZXRzOiBuYXZpZ2F0aW5nIG5lc3RlZCBicm93c2luZyBjb250ZXh0JyBzcGVjaWZpZWQgMiAn
Y2xlYW51cCcgZnVuY3Rpb25zLCBhbmQgMSBmYWlsZWQuCisKIFBBU1MgV2ViU29ja2V0czogbmF2
aWdhdGluZyBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvdW5sb2FkLWEtZG9j
dW1lbnQvMDA0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2Vic29ja2V0cy91bmxvYWQtYS1kb2N1bWVudC8wMDQtZXhwZWN0ZWQudHh0
CmluZGV4IGUxYjJhZGFkOTQ2OC4uZDcxYTU1MjFiODVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvdW5sb2FkLWEtZG9j
dW1lbnQvMDA0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvdW5sb2FkLWEtZG9jdW1lbnQvMDA0LWV4cGVjdGVk
LnR4dApAQCAtMSwzICsxLDUgQEAKIAorSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBU
ZXN0IG5hbWVkICdXZWJTb2NrZXRzOiBuYXZpZ2F0aW5nIG5lc3RlZCBicm93c2luZyBjb250ZXh0
IHdpdGggY2xvc2VkIHdlYnNvY2tldCcgc3BlY2lmaWVkIDIgJ2NsZWFudXAnIGZ1bmN0aW9ucywg
YW5kIDEgZmFpbGVkLgorCiBGQUlMIFdlYlNvY2tldHM6IG5hdmlnYXRpbmcgbmVzdGVkIGJyb3dz
aW5nIGNvbnRleHQgd2l0aCBjbG9zZWQgd2Vic29ja2V0IGFzc2VydF91bnJlYWNoZWQ6IGRvY3Vt
ZW50IHdhcyBkaXNjYXJkZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLXNob3J0aGFuZC1jb25zdHJ1Y3Rpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtc2hvcnRoYW5kLWNvbnN0
cnVjdGlvbi1leHBlY3RlZC50eHQKaW5kZXggNmE1NTgxYmU3MmRjLi42ZmIxNzc1YjA1MzEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLXNob3J0aGFuZC1jb25zdHJ1
Y3Rpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLXNo
b3J0aGFuZC1jb25zdHJ1Y3Rpb24tZXhwZWN0ZWQudHh0CkBAIC02MywxMCArNjMsOCBAQCBQQVNT
ICEhT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih7c2V0ICd4Jyh2YWx1ZSl7fX0sICd4
Jykuc2V0IGlzIHRydWUKIFBBU1MgISFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHtz
ZXQgNDIodmFsdWUpe319LCAnNDInKS5zZXQgaXMgdHJ1ZQogUEFTUyB0aGlzLl9fcHJvdG9fXyA9
IFtdIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IENhbm5vdCBzZXQgcHJvdG90eXBlIG9mIGlt
bXV0YWJsZSBwcm90b3R5cGUgb2JqZWN0LgogUEFTUyAoe19fcHJvdG9fXzogdGhpcy5fX3Byb3Rv
X199KSBpbnN0YW5jZW9mIEFycmF5IGlzIGZhbHNlCi1QQVNTIF9fcHJvdG9fXyA9IFtdIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IENhbm5vdCBzZXQgcHJvdG90eXBlIG9mIGltbXV0YWJsZSBw
cm90b3R5cGUgb2JqZWN0LgotUEFTUyAoe19fcHJvdG9fXzogX19wcm90b19ffSkgaW5zdGFuY2Vv
ZiBBcnJheSBpcyBmYWxzZQotUEFTUyBfX3Byb3RvX18gaXMgT2JqZWN0LmdldFByb3RvdHlwZU9m
KGdsb2JhbFRoaXMpCi1QQVNTIF9fcHJvdG9fXyA9IF9fcHJvdG9fXyBpcyBPYmplY3QuZ2V0UHJv
dG90eXBlT2YoZ2xvYmFsVGhpcykKK1BBU1MgX19wcm90b19fID0gW10gdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogT2JqZWN0LnByb3RvdHlwZS5fX3Byb3RvX18gY2FsbGVkIG9uIG51bGwgb3Ig
dW5kZWZpbmVkLgorUEFTUyAoe19fcHJvdG9fXzogX19wcm90b19ffSkgaW5zdGFuY2VvZiBBcnJh
eSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnX19wcm90b19fJykuCiBTeW50YXhFcnJvcnMKIFBBU1MgKHticmVha30pIHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogQ2Fubm90IHVzZSB0aGUga2V5d29yZCAnYnJlYWsn
IGFzIGEgc2hvcnRoYW5kIHByb3BlcnR5IG5hbWUuLgogUEFTUyAoe2Nhc2V9KSB0aHJldyBleGNl
cHRpb24gU3ludGF4RXJyb3I6IENhbm5vdCB1c2UgdGhlIGtleXdvcmQgJ2Nhc2UnIGFzIGEgc2hv
cnRoYW5kIHByb3BlcnR5IG5hbWUuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL29iamVjdC1saXRlcmFsLXNob3J0aGFuZC1jb25zdHJ1Y3Rpb24uanMgYi9MYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtc2hvcnRoYW5kLWNvbnN0cnVjdGlv
bi5qcwppbmRleCAzOTI2MGM1ODM2ODUuLmQ2MDQ4OTQzMjc2NyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFsLXNob3J0aGFuZC1jb25zdHJ1Y3Rp
b24uanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFsLXNo
b3J0aGFuZC1jb25zdHJ1Y3Rpb24uanMKQEAgLTExMiwxMiArMTEyLDggQEAgc2hvdWxkQmVUcnVl
KCIhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioe3NldCA0Mih2YWx1ZSl7fX0sICc0
MicpLnNldCIpOwogLy8gX19wcm90b19fIHNob3J0aGFuZCBzaG91bGQgbm90IG1vZGlmeSB0aGUg
cHJvdG90eXBlLgogc2hvdWxkVGhyb3coInRoaXMuX19wcm90b19fID0gW10iKTsKIHNob3VsZEJl
RmFsc2UoIih7X19wcm90b19fOiB0aGlzLl9fcHJvdG9fX30pIGluc3RhbmNlb2YgQXJyYXkiKTsK
LQotLy8gX19wcm90b19fIGdldHRlciAvIHNldHRlciBjYWxsZWQgb24gZ2xvYmFsIG9iamVjdAot
c2hvdWxkVGhyb3coIl9fcHJvdG9fXyA9IFtdIiwgJyJUeXBlRXJyb3I6IENhbm5vdCBzZXQgcHJv
dG90eXBlIG9mIGltbXV0YWJsZSBwcm90b3R5cGUgb2JqZWN0IicpOwotc2hvdWxkQmVGYWxzZSgi
KHtfX3Byb3RvX186IF9fcHJvdG9fX30pIGluc3RhbmNlb2YgQXJyYXkiKTsKLXNob3VsZEJlKCJf
X3Byb3RvX18iLCAiT2JqZWN0LmdldFByb3RvdHlwZU9mKGdsb2JhbFRoaXMpIik7Ci1zaG91bGRC
ZSgiX19wcm90b19fID0gX19wcm90b19fIiwgIk9iamVjdC5nZXRQcm90b3R5cGVPZihnbG9iYWxU
aGlzKSIpOworc2hvdWxkVGhyb3coIl9fcHJvdG9fXyA9IFtdIiwgJyJUeXBlRXJyb3I6IE9iamVj
dC5wcm90b3R5cGUuX19wcm90b19fIGNhbGxlZCBvbiBudWxsIG9yIHVuZGVmaW5lZCInKTsKK3No
b3VsZFRocm93KCIoe19fcHJvdG9fXzogX19wcm90b19ffSkgaW5zdGFuY2VvZiBBcnJheSIsICci
VHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyBcJ19fcHJv
dG9fX1wnKSInKTsKIAogLy8gS2V5d29yZHMgLSBTeW50YXggRXJyb3JzCiBkZWJ1ZygiU3ludGF4
RXJyb3JzIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvY3Jhc2gtb24tZ2V0ZGF0YWJhc2VzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2NyYXNoLW9uLWdldGRhdGFiYXNlcy5qcwppbmRleCAwMjA0MGQ3MDFj
NDUuLjNjNTQ0YWE5ODAxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2NyYXNoLW9uLWdldGRhdGFiYXNlcy5qcworKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Jhc2gtb24tZ2V0ZGF0YWJhc2VzLmpzCkBAIC0x
OSw1ICsxOSw1IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3REb2VzTm90Q3Jhc2goKQogICAgICAgICBp
ZiAodHJhbnNhY3Rpb24pCiAgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gKCkg
PT4gbG9jYXRpb24uaGFzaCA9ICdoJzsKICAgICB9Ci0gICAgc2V0VGltZW91dChmaW5pc2hKU1Rl
c3QpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
YmlnLWludC1zdHJpY3Qtc3BlYy10by10aGlzLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1z
dHJpY3Qtc3BlYy10by10aGlzLmpzCmluZGV4IGUxZjBiY2M3MWEzYy4uYjk5MWMxY2IxZjgyIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LXN0cmljdC1zcGVjLXRvLXRoaXMuanMK
KysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1zdHJpY3Qtc3BlYy10by10aGlzLmpzCkBAIC0x
LDQgKzEsMyBAQAotLy9AIHNraXAgaWYgbm90ICRqaXRUZXN0cwogLy9AIHJ1bkRlZmF1bHQoIi0t
dXNlQ29uY3VycmVudEpJVD1mYWxzZSIpCiAKIGZ1bmN0aW9uIGFzc2VydChhKSB7CkBAIC0yMCw1
ICsxOSw1IEBAIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgewogICAgIGFzc2VydChm
b28uYXBwbHkoMzAwKSA9PT0gIm51bWJlciIpOwogfQogCi1hc3NlcnQobnVtYmVyT2ZERkdDb21w
aWxlcyhmb28pID09PSAxKTsKK2Fzc2VydChudW1iZXJPZkRGR0NvbXBpbGVzKGZvbykgPiAxKTsK
IApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZXZhbHVhdGUtd2l0aC1zY29wZS1leHRlbnNp
b24uanMgYi9KU1Rlc3RzL3N0cmVzcy9ldmFsdWF0ZS13aXRoLXNjb3BlLWV4dGVuc2lvbi5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmM5ZTUyOGYyMzllLi4wMDAwMDAwMDAwMDAK
LS0tIGEvSlNUZXN0cy9zdHJlc3MvZXZhbHVhdGUtd2l0aC1zY29wZS1leHRlbnNpb24uanMKKysr
IC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi0vL0AgcnVuQnl0ZWNvZGVDYWNoZU5vQXNzZXJ0
aW9uCi0KLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0
dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBCYWQgdmFsdWU6ICR7
YWN0dWFsfSFgKTsKLX0KLQotZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JNZXNzYWdl
KSB7Ci0gICAgbGV0IGVycm9yVGhyb3duID0gZmFsc2U7Ci0gICAgdHJ5IHsKLSAgICAgICAgZnVu
YygpOwotICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsK
LSAgICAgICAgaWYgKFN0cmluZyhlcnJvcikgIT09IGVycm9yTWVzc2FnZSkKLSAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcihgQmFkIGVycm9yOiAke2Vycm9yfWApOwotICAgIH0KLSAgICBpZiAo
IWVycm9yVGhyb3duKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRpZG4ndCB0aHJvdyEiKTsK
LX0KLQotZnVuY3Rpb24gbWFrZVRlc3RDYXNlcyhpZGVudCkgewotICAgIHJldHVybiBbCi0gICAg
ICAgIGAke2lkZW50fSgpYCwKLSAgICAgICAgYCJ1c2Ugc3RyaWN0IjsgJHtpZGVudH0oKWAsCi0g
ICAgICAgIGBldmFsKCIke2lkZW50fSgpIilgLAotICAgICAgICBgZXZhbCgiJ3VzZSBzdHJpY3Qn
OyAke2lkZW50fSgpIilgLAotICAgICAgICBgKDAsIGV2YWwpKCIke2lkZW50fSgpIilgLAotICAg
ICAgICBgKDAsIGV2YWwpKCIndXNlIHN0cmljdCc7ICR7aWRlbnR9KCkiKWAsCi0gICAgICAgIGAi
dXNlIHN0cmljdCI7ICgwLCBldmFsKSgiJHtpZGVudH0oKSIpYCwKLSAgICAgICAgYG5ldyBGdW5j
dGlvbigiJHtpZGVudH0oKSIpKClgLAotICAgICAgICBgbmV3IEZ1bmN0aW9uKCIndXNlIHN0cmlj
dCc7ICR7aWRlbnR9KCkiKSgpYCwKLSAgICAgICAgYG5ldyBGdW5jdGlvbigiZXZhbCgnJHtpZGVu
dH0oKScpIikoKWAsCi0gICAgICAgIGBuZXcgRnVuY3Rpb24oIid1c2Ugc3RyaWN0JzsgZXZhbCgn
JHtpZGVudH0oKScpIikoKWAsCi0gICAgICAgIGBldmFsKCduZXcgRnVuY3Rpb24oIiR7aWRlbnR9
KCkiKSgpJylgLAotICAgICAgICBgInVzZSBzdHJpY3QiOyBldmFsKCduZXcgRnVuY3Rpb24oIiR7
aWRlbnR9KCkiKSgpJylgLAotICAgICAgICBgKDAsIGV2YWwpKCduZXcgRnVuY3Rpb24oIiR7aWRl
bnR9KCkiKSgpJylgLAotICAgICAgICBTdHJpbmcucmF3YGV2YWwoJ25ldyBGdW5jdGlvbigiXCd1
c2Ugc3RyaWN0XCc7ICR7aWRlbnR9KCkiKSgpJylgLAotICAgICAgICBTdHJpbmcucmF3YGV2YWwo
J25ldyBGdW5jdGlvbigiXCd1c2Ugc3RyaWN0XCc7IGV2YWwoXCcke2lkZW50fSgpXCcpIikoKScp
YCwKLSAgICAgICAgU3RyaW5nLnJhd2AoMCwgZXZhbCkoJ25ldyBGdW5jdGlvbigiXCd1c2Ugc3Ry
aWN0XCc7ICR7aWRlbnR9KCkiKSgpJylgLAotICAgICAgICBTdHJpbmcucmF3YCgwLCBldmFsKSgn
bmV3IEZ1bmN0aW9uKCJcJ3VzZSBzdHJpY3RcJzsgZXZhbChcJyR7aWRlbnR9KClcJykiKSgpJylg
LAotICAgIF07Ci19Ci0KLWZ1bmN0aW9uIG1ha2VTY29wZU9iamVjdCgpIHsKLSAgICBmdW5jdGlv
biBmb28oKSB7IGZvby5sYXN0VGhpc1ZhbHVlID0gdGhpczsgfQotICAgIGZ1bmN0aW9uIGJhcigp
IHsgInVzZSBzdHJpY3QiOyBiYXIubGFzdFRoaXNWYWx1ZSA9IHRoaXM7IH0KLQotICAgIHJldHVy
biB7IGZvbywgYmFyIH07Ci19Ci0KLShmdW5jdGlvbigpIHsKLSAgICBmb3IgKGNvbnN0IHRlc3RD
YXNlIG9mIG1ha2VUZXN0Q2FzZXMoImZvbyIpKSB7Ci0gICAgICAgIGNvbnN0IHNjb3BlRXh0ZW5z
aW9uID0gbWFrZVNjb3BlT2JqZWN0KCk7Ci0KLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAx
MDA7IGkrKykgewotICAgICAgICAgICAgJHZtLmV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKHRl
c3RDYXNlLCBzY29wZUV4dGVuc2lvbik7Ci0gICAgICAgICAgICBzaG91bGRCZShzY29wZUV4dGVu
c2lvbi5mb28ubGFzdFRoaXNWYWx1ZSwgc2NvcGVFeHRlbnNpb24pOwotICAgICAgICB9Ci0KLSAg
ICAgICAgc2hvdWxkVGhyb3coKCkgPT4geyAkdm0uZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24o
dGVzdENhc2UpOyB9LCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbyIp
OwotICAgIH0KLQotICAgIGZvciAoY29uc3QgdGVzdENhc2Ugb2YgbWFrZVRlc3RDYXNlcygiYmFy
IikpIHsKLSAgICAgICAgY29uc3Qgc2NvcGVFeHRlbnNpb24gPSBtYWtlU2NvcGVPYmplY3QoKTsK
LQotICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDsgaSsrKSB7Ci0gICAgICAgICAgICAk
dm0uZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24odGVzdENhc2UsIHNjb3BlRXh0ZW5zaW9uKTsK
LSAgICAgICAgICAgIHNob3VsZEJlKHNjb3BlRXh0ZW5zaW9uLmJhci5sYXN0VGhpc1ZhbHVlLCBz
Y29wZUV4dGVuc2lvbik7Ci0gICAgICAgIH0KLQotICAgICAgICBzaG91bGRUaHJvdygoKSA9PiB7
ICR2bS5ldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbih0ZXN0Q2FzZSk7IH0sICJSZWZlcmVuY2VF
cnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogYmFyIik7Ci0gICAgfQotfSkoKTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1vYmplY3QtYWNjZXNzb3ItcHJvcGVydHktdGhpcy12
YWx1ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1vYmplY3QtYWNjZXNzb3ItcHJvcGVydHkt
dGhpcy12YWx1ZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZkOTMwNzE1MWE0
Li4wMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLW9iamVjdC1hY2Nlc3Nv
ci1wcm9wZXJ0eS10aGlzLXZhbHVlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAot
ZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewotICAgIGlmIChhY3R1YWwgIT09
IGV4cGVjdGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEJhZCB2YWx1ZTogJHthY3R1YWx9
LmApOwotfQotCi0oZnVuY3Rpb24gc2FtZVJlYWxtTm9uSW5kZXgoKSB7Ci0gICAgbGV0IF9fZm9v
ID0gLTE7Ci0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdsb2JhbFRoaXMsICJmb28iLCB7Ci0g
ICAgICAgIGdldCgpIHsKLSAgICAgICAgICAgIHNob3VsZEJlKHRoaXMsIGdsb2JhbFRoaXMpOwot
ICAgICAgICAgICAgcmV0dXJuIF9fZm9vOwotICAgICAgICB9LAotICAgICAgICBzZXQodmFsdWUp
IHsKLSAgICAgICAgICAgIHNob3VsZEJlKHRoaXMsIGdsb2JhbFRoaXMpOwotICAgICAgICAgICAg
X19mb28gPSB2YWx1ZTsKLSAgICAgICAgfSwKLSAgICB9KTsKLQotICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgMWU2OyBpKyspIHsKLSAgICAgICAgc2hvdWxkQmUoZm9vLCBpIC0gMSk7Ci0gICAgICAg
IGZvbyA9IGk7Ci0gICAgICAgIHNob3VsZEJlKGZvbywgaSk7Ci0gICAgfQotfSkoKTsKLQotKGZ1
bmN0aW9uIHNhbWVSZWFsbUluZGV4ZWQoKSB7Ci0gICAgbGV0IF9fMCA9IC0xOwotICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eShnbG9iYWxUaGlzLCAiMCIsIHsKLSAgICAgICAgZ2V0KCkgewotICAg
ICAgICAgICAgc2hvdWxkQmUodGhpcywgZ2xvYmFsVGhpcyk7Ci0gICAgICAgICAgICByZXR1cm4g
X18wOwotICAgICAgICB9LAotICAgICAgICBzZXQodmFsdWUpIHsKLSAgICAgICAgICAgIHNob3Vs
ZEJlKHRoaXMsIGdsb2JhbFRoaXMpOwotICAgICAgICAgICAgX18wID0gdmFsdWU7Ci0gICAgICAg
IH0sCi0gICAgfSk7Ci0KLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNjsgaSsrKSB7Ci0gICAg
ICAgIHNob3VsZEJlKGdsb2JhbFRoaXNbMF0sIGkgLSAxKTsKLSAgICAgICAgZ2xvYmFsVGhpc1sw
XSA9IGk7Ci0gICAgICAgIHNob3VsZEJlKGdsb2JhbFRoaXNbMF0sIGkpOwotICAgIH0KLX0pKCk7
Ci0KLShmdW5jdGlvbiBjcm9zc1JlYWxtTm9uSW5kZXgoKSB7Ci0gICAgY29uc3QgT3RoZXJGdW5j
dGlvbiA9ICR2bS5jcmVhdGVHbG9iYWxPYmplY3QoKS5GdW5jdGlvbjsKLQotICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShnbG9iYWxUaGlzLCAiYmFyIiwgewotICAgICAgICBnZXQ6IG5ldyBPdGhl
ckZ1bmN0aW9uKCJyZXR1cm4gdGhpczsiKSwKLSAgICAgICAgc2V0OiBuZXcgT3RoZXJGdW5jdGlv
bigidmFsdWUiLCAidmFsdWUudGhpc1ZhbHVlID0gdGhpczsiKSwKLSAgICB9KTsKLQotICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgMWU2OyBpKyspIHsKLSAgICAgICAgc2hvdWxkQmUoYmFyLCBnbG9i
YWxUaGlzKTsKLQotICAgICAgICBjb25zdCB2YWx1ZSA9IHt9OwotICAgICAgICBiYXIgPSB2YWx1
ZTsKLSAgICAgICAgc2hvdWxkQmUodmFsdWUudGhpc1ZhbHVlLCBnbG9iYWxUaGlzKTsKLSAgICB9
Ci19KSgpOwotCi0oZnVuY3Rpb24gY3Jvc3NSZWFsbUluZGV4ZWQoKSB7Ci0gICAgY29uc3QgT3Ro
ZXJGdW5jdGlvbiA9ICR2bS5jcmVhdGVHbG9iYWxPYmplY3QoKS5GdW5jdGlvbjsKLQotICAgIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShnbG9iYWxUaGlzLCAiMSIsIHsKLSAgICAgICAgZ2V0OiBuZXcg
T3RoZXJGdW5jdGlvbigicmV0dXJuIHRoaXM7IiksCi0gICAgICAgIHNldDogbmV3IE90aGVyRnVu
Y3Rpb24oInZhbHVlIiwgInZhbHVlLnRoaXNWYWx1ZSA9IHRoaXM7IiksCi0gICAgfSk7Ci0KLSAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNjsgaSsrKSB7Ci0gICAgICAgIHNob3VsZEJlKGdsb2Jh
bFRoaXNbMV0sIGdsb2JhbFRoaXMpOwotCi0gICAgICAgIGNvbnN0IHZhbHVlID0ge307Ci0gICAg
ICAgIGdsb2JhbFRoaXNbMV0gPSB2YWx1ZTsKLSAgICAgICAgc2hvdWxkQmUodmFsdWUudGhpc1Zh
bHVlLCBnbG9iYWxUaGlzKTsKLSAgICB9Ci19KSgpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvdmFyaWFibGUtbmFtZWQtZXZhbC5qcyBiL0pTVGVzdHMvc3RyZXNzL3ZhcmlhYmxlLW5hbWVk
LWV2YWwuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxZjczOThkMmVkNC4uMDAw
MDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvc3RyZXNzL3ZhcmlhYmxlLW5hbWVkLWV2YWwuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1mdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4
cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93IG5l
dyBFcnJvcihgQmFkIHZhbHVlOiAke2FjdHVhbH0uYCk7Ci19Ci0KLWxldCBldmFsOwotCi0oZnVu
Y3Rpb24gdGhpc1ZhbHVlKCkgewotICAgIGV2YWwgPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7
IH07Ci0gICAgc2hvdWxkQmUoZXZhbCgpLCBnbG9iYWxUaGlzKTsKLQotICAgIGV2YWwgPSBmdW5j
dGlvbigpIHsgInVzZSBzdHJpY3QiOyByZXR1cm4gdGhpczsgfTsKLSAgICBzaG91bGRCZShldmFs
KCksIHVuZGVmaW5lZCk7Ci0KLSAgICBjb25zdCBiaW5kaW5nT2JqZWN0ID0geyBldmFsIH07Ci0g
ICAgd2l0aCAoYmluZGluZ09iamVjdCkgewotICAgICAgICBzaG91bGRCZShldmFsKCksIGJpbmRp
bmdPYmplY3QpOwotICAgIH0KLX0pKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>