<?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>199871</bug_id>
          
          <creation_ts>2019-07-17 11:00:03 -0700</creation_ts>
          <short_desc>REGRESSION(r247505): &quot;Caused failed ASSERT in stress test&quot; (Requested by creid on #webkit).</short_desc>
          <delta_ts>2019-07-17 11:15:17 -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>199759</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>chris.reid</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1553578</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-17 11:00:03 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/247505 broke the build:
&quot;Caused failed ASSERT in stress test&quot; (Requested by creid on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553580</commentid>
    <comment_count>1</comment_count>
      <attachid>374308</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-17 11:00:15 -0700</bug_when>
    <thetext>Created attachment 374308
ROLLOUT of r247505

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553589</commentid>
    <comment_count>2</comment_count>
      <attachid>374308</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-17 11:13:03 -0700</bug_when>
    <thetext>Comment on attachment 374308
ROLLOUT of r247505

Clearing flags on attachment: 374308

Committed r247523: &lt;https://trac.webkit.org/changeset/247523&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553590</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-17 11:13:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553592</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-17 11:15:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/53211837&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374308</attachid>
            <date>2019-07-17 11:00:15 -0700</date>
            <delta_ts>2019-07-17 11:13:03 -0700</delta_ts>
            <desc>ROLLOUT of r247505</desc>
            <filename>bug-199871-20190717110014.patch</filename>
            <type>text/plain</type>
            <size>35045</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YWVmN2YwYjhlODYyMzY3NTk2MzAyNDNmMGEwYWNhNWQ3ZjZmNjdjLi40MzE3NTYyYzc5YjJjMjc5
MmQwZTdlYjBiYmQ1NDdmMjk5ZjNjYmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxOS0wNy0xNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0NzUwNS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTg3MQorCisgICAg
ICAgICJDYXVzZWQgZmFpbGVkIEFTU0VSVCBpbiBzdHJlc3MgdGVzdCIgKFJlcXVlc3RlZCBieSBj
cmVpZCBvbgorICAgICAgICAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6
CisKKyAgICAgICAgIkJ5dGVjb2RlIGNhY2hlIHNob3VsZCB1c2UgRmlsZVN5c3RlbSIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTc1OQorICAgICAg
ICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQ3NTA1CisKIDIwMTktMDctMTYg
IENocmlzdG9waGVyIFJlaWQgIDxjaHJpcy5yZWlkQHNvbnkuY29tPgogCiAgICAgICAgIEJ5dGVj
b2RlIGNhY2hlIHNob3VsZCB1c2UgRmlsZVN5c3RlbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjMjk2MzVmNzM5MGQ4ZDlhMWM4
MzdiMjUzMjk4OGY2MjY1NTk4Y2VlLi5iNjYxYWZmYWU1M2UxYjY5Nzg1NDQzYzY0OTZiM2FjMDIx
YjRhOGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTA3LTE3ICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMjQ3NTA1LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk5ODcxCisKKyAgICAgICAgIkNhdXNlZCBmYWlsZWQgQVNTRVJUIGluIHN0cmVzcyB0ZXN0
IiAoUmVxdWVzdGVkIGJ5IGNyZWlkIG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgIFJl
dmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiQnl0ZWNvZGUgY2FjaGUgc2hvdWxkIHVzZSBG
aWxlU3lzdGVtIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk5NzU5CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNDc1
MDUKKwogMjAxOS0wNy0xNiAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29ueS5jb20+
CiAKICAgICAgICAgQnl0ZWNvZGUgY2FjaGUgc2hvdWxkIHVzZSBGaWxlU3lzdGVtCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggMzJmM2JiOGYxNDAyNzUzOGE1OWJiZjhhYmI2Njc3YmJmZGIyNzgyNy4uMGE2ZjYyMDlj
NzBlZmI1ZmYzNjRhNGEzNTZiNGViNDc4MmFhZmM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDE5LTA3LTE3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4K
KworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ3NTA1LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5ODcxCisKKyAgICAgICAgIkNh
dXNlZCBmYWlsZWQgQVNTRVJUIGluIHN0cmVzcyB0ZXN0IiAoUmVxdWVzdGVkIGJ5IGNyZWlkIG9u
CisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAg
ICAgICAiQnl0ZWNvZGUgY2FjaGUgc2hvdWxkIHVzZSBGaWxlU3lzdGVtIgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5NzU5CisgICAgICAgIGh0dHBz
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNDc1MDUKKwogMjAxOS0wNy0xNyAgS2VubmV0
aCBSdXNzZWxsICA8a2JyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNYWtlIEFOR0xFIHdvcmsg
aW5zaWRlIFdlYktpdDIncyBzYW5kYm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTU2NyaXB0Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdC5t
bQppbmRleCAzY2MwNDEyMWE0YTljMzJiOWEzMWEwYjFmZDJlNTJjZjczN2M0YmU5Li5jZTYyYTM4
MDlmYmFjN2EwZmUzMWFjZDRiNjkxMTcxOGQ2NGIyNDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNTY3JpcHQubW0KQEAgLTEzMCw3ICsxMzAsNyBAQCBzdGF0aWMgYm9vbCB2YWxpZGF0ZUJ5
dGVjb2RlQ2FjaGVQYXRoKE5TVVJMKiBjYWNoZVBhdGgsIE5TRXJyb3IqKiBlcnJvcikKIAogICAg
IGJvb2wgc3VjY2VzcyA9IGZhbHNlOwogICAgIFN0cmluZyBzeXN0ZW1QYXRoID0gZmlsZVBhdGhV
UkwuZmlsZVN5c3RlbVBhdGgoKTsKLSAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBmaWxl
RGF0YShzeXN0ZW1QYXRoLCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNj
ZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBmaWxlRGF0YShzeXN0ZW1QYXRo
LCBzdWNjZXNzKTsKICAgICBpZiAoIXN1Y2Nlc3MpCiAgICAgICAgIHJldHVybiBjcmVhdGVFcnJv
cihbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkZpbGUgYXQgcGF0aCAlQCBjb3VsZCBub3Qg
YmUgbWFwcGVkLiIsIHN0YXRpY19jYXN0PE5TU3RyaW5nICo+KHN5c3RlbVBhdGgpXSwgZXJyb3Ip
OwogCkBAIC0xNTMsMTkgKzE1MywyMiBAQCBzdGF0aWMgYm9vbCB2YWxpZGF0ZUJ5dGVjb2RlQ2Fj
aGVQYXRoKE5TVVJMKiBjYWNoZVBhdGgsIE5TRXJyb3IqKiBlcnJvcikKICAgICBpZiAoIW1fY2Fj
aGVQYXRoKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGZkID0gRmlsZVN5c3RlbTo6b3Bl
bkFuZExvY2tGaWxlKFttX2NhY2hlUGF0aCBwYXRoXS5VVEY4U3RyaW5nLCBGaWxlU3lzdGVtOjpG
aWxlT3Blbk1vZGU6OlJlYWQsIHtGaWxlU3lzdGVtOjpGaWxlTG9ja01vZGU6OkV4Y2x1c2l2ZSwg
RmlsZVN5c3RlbTo6RmlsZUxvY2tNb2RlOjpOb25ibG9ja2luZ30pOwotICAgIGlmICghRmlsZVN5
c3RlbTo6aXNIYW5kbGVWYWxpZChmZCkpCisgICAgaW50IGZkID0gb3BlbihbbV9jYWNoZVBhdGgg
cGF0aF0uVVRGOFN0cmluZywgT19SRE9OTFkgfCBPX0VYTE9DSyB8IE9fTk9OQkxPQ0ssIDA2NjYp
OworICAgIGlmIChmZCA9PSAtMSkKICAgICAgICAgcmV0dXJuOwogICAgIGF1dG8gY2xvc2VGRCA9
IG1ha2VTY29wZUV4aXQoWyZdIHsKLSAgICAgICAgRmlsZVN5c3RlbTo6dW5sb2NrQW5kQ2xvc2VG
aWxlKGZkKTsKKyAgICAgICAgY2xvc2UoZmQpOwogICAgIH0pOwogCi0gICAgYm9vbCBzdWNjZXNz
OwotICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGUoZmQsIEZpbGVTeXN0
ZW06Ok1hcHBlZEZpbGVNb2RlOjpQcml2YXRlLCBzdWNjZXNzKTsKLSAgICBpZiAoIXN1Y2Nlc3Mp
CisgICAgc3RydWN0IHN0YXQgc2I7CisgICAgaW50IHJlcyA9IGZzdGF0KGZkLCAmc2IpOworICAg
IHNpemVfdCBzaXplID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihzYi5zdF9zaXplKTsKKyAgICBpZiAo
cmVzIHx8ICFzaXplKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWY8SlNDOjpDYWNoZWRCeXRl
Y29kZT4gY2FjaGVkQnl0ZWNvZGUgPSBKU0M6OkNhY2hlZEJ5dGVjb2RlOjpjcmVhdGUoV1RGTW92
ZShtYXBwZWRGaWxlKSk7CisgICAgdm9pZCogYnVmZmVyID0gbW1hcChudWxscHRyLCBzaXplLCBQ
Uk9UX1JFQUQsIE1BUF9QUklWQVRFLCBmZCwgMCk7CisKKyAgICBSZWY8SlNDOjpDYWNoZWRCeXRl
Y29kZT4gY2FjaGVkQnl0ZWNvZGUgPSBKU0M6OkNhY2hlZEJ5dGVjb2RlOjpjcmVhdGUoYnVmZmVy
LCBzaXplKTsKIAogICAgIEpTQzo6Vk0mIHZtID0gW21fdmlydHVhbE1hY2hpbmUgdm1dOwogICAg
IEpTQzo6U291cmNlQ29kZSBzb3VyY2VDb2RlID0gW3NlbGYgc291cmNlQ29kZV07CkBAIC0yODgs
NyArMjkxLDcgQEAgc3RhdGljIGJvb2wgdmFsaWRhdGVCeXRlY29kZUNhY2hlUGF0aChOU1VSTCog
Y2FjaGVQYXRoLCBOU0Vycm9yKiogZXJyb3IpCiAKICAgICBpZiAoY2FjaGVFcnJvci5pc1ZhbGlk
KCkpIHsKICAgICAgICAgbV9jYWNoZWRCeXRlY29kZSA9IEpTQzo6Q2FjaGVkQnl0ZWNvZGU6OmNy
ZWF0ZSgpOwotICAgICAgICBGaWxlU3lzdGVtOjp0cnVuY2F0ZUZpbGUoZmQsIDApOworICAgICAg
ICBmdHJ1bmNhdGUoZmQsIDApOwogICAgICAgICBlcnJvciA9IG1ha2VTdHJpbmcoIlVuYWJsZSB0
byBnZW5lcmF0ZSBieXRlY29kZSBmb3IgdGhpcyBKU1NjcmlwdCBiZWNhdXNlOiAiLCBjYWNoZUVy
cm9yLm1lc3NhZ2UoKSk7CiAgICAgICAgIHJldHVybiBOTzsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODNiODIxNGE0YTNkOTYwMGIxZjA0YjY0ODBhOWIwNjEy
OTlkYzIzNi4uNmEwNGQzODRiOWY4OGFhZTJmMmU5OTgwNmZlMDYwNmI3OTE0YjdlYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjIzLDcgKzIyMyw3IEBAIGFkZF9jdXN0
b21fY29tbWFuZCgKIGlmIChXVEZfT1NfTUFDX09TX1gpCiAgICAgZXhlY3V0ZV9wcm9jZXNzKENP
TU1BTkQgYmFzaCAtYyAiZGF0ZSArJyVzJyIgT1VUUFVUX1ZBUklBQkxFIEJVSUxEX1RJTUUgT1VU
UFVUX1NUUklQX1RSQUlMSU5HX1dISVRFU1BBQ0UpCiBlbHNlICgpCi0gICAgc3RyaW5nKFRJTUVT
VEFNUCBCVUlMRF9USU1FICIlcyIpCisgICAgc2V0KEJVSUxEX1RJTUUgMCkKIGVuZGlmICgpCiAK
IGZpbGUoV1JJVEUgJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9CeXRlY29k
ZUNhY2hlVmVyc2lvbi5oICIjZGVmaW5lIEpTQ19CWVRFQ09ERV9DQUNIRV9WRVJTSU9OICR7QlVJ
TERfVElNRX1cbiIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDc0NjUyYTIwY2VjZmZiNDM1ODkw
MWNlMzExZWU3NzhjNDVkMTJkODkuLmQ0ZmEyMjJjNzIxY2Y0YTdlNzFhZDQ3ODZmOTg0MTExMjQx
ZTE4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC04NSw3ICs4NSw2IEBACiAjaW5jbHVkZSA8
dHlwZV90cmFpdHM+CiAjaW5jbHVkZSA8d3RmL0JveC5oPgogI2luY2x1ZGUgPHd0Zi9Db21tYVBy
aW50ZXIuaD4KLSNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1
ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CkBAIC0xMDA0LDYgKzEwMDMsNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGNvbW1pdENhY2hlZEJ5dGVjb2RlKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7Cisj
aWYgT1MoREFSV0lOKQogICAgICAgICBpZiAoIWNhY2hlRW5hYmxlZCgpIHx8ICFtX2NhY2hlZEJ5
dGVjb2RlIHx8ICFtX2NhY2hlZEJ5dGVjb2RlLT5oYXNVcGRhdGVzKCkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKQEAgLTEwMTIsMzMgKzEwMTIsMzIgQEAgcHVibGljOgogICAgICAgICB9KTsKIAog
ICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBjYWNoZVBhdGgoKTsKLSAgICAgICAgYXV0byBmZCA9
IEZpbGVTeXN0ZW06Om9wZW5BbmRMb2NrRmlsZShmaWxlbmFtZSwgRmlsZVN5c3RlbTo6RmlsZU9w
ZW5Nb2RlOjpXcml0ZSwge0ZpbGVTeXN0ZW06OkZpbGVMb2NrTW9kZTo6RXhjbHVzaXZlLCBGaWxl
U3lzdGVtOjpGaWxlTG9ja01vZGU6Ok5vbmJsb2NraW5nfSk7Ci0gICAgICAgIGlmICghRmlsZVN5
c3RlbTo6aXNIYW5kbGVWYWxpZChmZCkpCisgICAgICAgIGludCBmZCA9IG9wZW4oZmlsZW5hbWUu
dXRmOCgpLmRhdGEoKSwgT19DUkVBVCB8IE9fV1JPTkxZIHwgT19UUlVOQyB8IE9fRVhMT0NLIHwg
T19OT05CTE9DSywgMDY2Nik7CisgICAgICAgIGlmIChmZCA9PSAtMSkKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICBhdXRvIGNsb3NlRkQgPSBtYWtlU2NvcGVFeGl0KFsmXSB7Ci0gICAg
ICAgICAgICBGaWxlU3lzdGVtOjp1bmxvY2tBbmRDbG9zZUZpbGUoZmQpOworICAgICAgICAgICAg
Y2xvc2UoZmQpOwogICAgICAgICB9KTsKIAotICAgICAgICBsb25nIGxvbmcgZmlsZVNpemU7Ci0g
ICAgICAgIGlmICghRmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUoZmQsIGZpbGVTaXplKSkKLSAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICBzaXplX3QgY2FjaGVGaWxlU2l6ZTsKLSAgICAgICAg
aWYgKCFXVEY6OmNvbnZlcnRTYWZlbHkoZmlsZVNpemUsIGNhY2hlRmlsZVNpemUpIHx8IGNhY2hl
RmlsZVNpemUgIT0gbV9jYWNoZWRCeXRlY29kZS0+c2l6ZSgpKSB7CisgICAgICAgIHN0cnVjdCBz
dGF0IHNiOworICAgICAgICBpbnQgcmVzID0gZnN0YXQoZmQsICZzYik7CisgICAgICAgIHNpemVf
dCBzaXplID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihzYi5zdF9zaXplKTsKKyAgICAgICAgaWYgKHJl
cyB8fCBzaXplICE9IG1fY2FjaGVkQnl0ZWNvZGUtPnNpemUoKSkgewogICAgICAgICAgICAgLy8g
VGhlIGJ5dGVjb2RlIGNhY2hlIGhhcyBhbHJlYWR5IGJlZW4gdXBkYXRlZAogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjp0cnVuY2F0ZUZp
bGUoZmQsIG1fY2FjaGVkQnl0ZWNvZGUtPnNpemVGb3JVcGRhdGUoKSkpCisgICAgICAgIGlmIChm
dHJ1bmNhdGUoZmQsIG1fY2FjaGVkQnl0ZWNvZGUtPnNpemVGb3JVcGRhdGUoKSkpCiAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgbV9jYWNoZWRCeXRlY29kZS0+Y29tbWl0VXBkYXRlcyhb
Jl0gKG9mZl90IG9mZnNldCwgY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IHNpemUpIHsKLSAgICAg
ICAgICAgIGxvbmcgbG9uZyByZXN1bHQgPSBGaWxlU3lzdGVtOjpzZWVrRmlsZShmZCwgb2Zmc2V0
LCBGaWxlU3lzdGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsKKyAgICAgICAgICAgIG9m
Zl90IHJlc3VsdCA9IGxzZWVrKGZkLCBvZmZzZXQsIFNFRUtfU0VUKTsKICAgICAgICAgICAgIEFT
U0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQgIT0gLTEpOwotICAgICAgICAgICAgc2l6ZV90IGJ5
dGVzV3JpdHRlbiA9IHN0YXRpY19jYXN0PHNpemVfdD4oRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUo
ZmQsIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihkYXRhKSwgc2l6ZSkpOworICAgICAgICAgICAg
c2l6ZV90IGJ5dGVzV3JpdHRlbiA9IHN0YXRpY19jYXN0PHNpemVfdD4od3JpdGUoZmQsIGRhdGEs
IHNpemUpKTsKICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQoYnl0ZXNXcml0dGVuLCBieXRlc1dy
aXR0ZW4gPT0gc2l6ZSk7CiAgICAgICAgIH0pOworI2VuZGlmCiAgICAgfQogCiBwcml2YXRlOgpA
QCAtMTA0NywxMiArMTA0NiwxNCBAQCBwcml2YXRlOgogICAgICAgICBpZiAoIWNhY2hlRW5hYmxl
ZCgpKQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxscHRy
KTsKICAgICAgICAgY29uc3QgY2hhciogY2FjaGVQYXRoID0gT3B0aW9uczo6ZGlza0NhY2hlUGF0
aCgpOwotICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxl
TmFtZShzb3VyY2VPcmlnaW4oKS5zdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY2FjaGVQYXRoLCBtYWtlU3RyaW5nKHNvdXJjZSgp
LnRvU3RyaW5nKCkuaGFzaCgpLCAnLScsIGZpbGVuYW1lLCAiLmJ5dGVjb2RlLWNhY2hlIikpOwor
ICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBzb3VyY2VPcmlnaW4oKS5zdHJpbmcoKTsKKyAgICAg
ICAgZmlsZW5hbWUucmVwbGFjZSgnLycsICdfJyk7CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5n
KGNhY2hlUGF0aCwgJy8nLCBzb3VyY2UoKS50b1N0cmluZygpLmhhc2goKSwgJy0nLCBmaWxlbmFt
ZSwgIi5ieXRlY29kZS1jYWNoZSIpOwogICAgIH0KIAogICAgIHZvaWQgbG9hZEJ5dGVjb2RlKCkg
Y29uc3QKICAgICB7CisjaWYgT1MoREFSV0lOKQogICAgICAgICBpZiAoIWNhY2hlRW5hYmxlZCgp
KQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0xMDYwLDIxICsxMDYxLDI1IEBAIHByaXZhdGU6
CiAgICAgICAgIGlmIChmaWxlbmFtZS5pc051bGwoKSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICBhdXRvIGZkID0gRmlsZVN5c3RlbTo6b3BlbkFuZExvY2tGaWxlKGZpbGVuYW1lLCBG
aWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWQsIHtGaWxlU3lzdGVtOjpGaWxlTG9ja01vZGU6
OlNoYXJlZCwgRmlsZVN5c3RlbTo6RmlsZUxvY2tNb2RlOjpOb25ibG9ja2luZ30pOwotICAgICAg
ICBpZiAoIUZpbGVTeXN0ZW06OmlzSGFuZGxlVmFsaWQoZmQpKQorICAgICAgICBpbnQgZmQgPSBv
cGVuKGZpbGVuYW1lLnV0ZjgoKS5kYXRhKCksIE9fUkRPTkxZIHwgT19TSExPQ0sgfCBPX05PTkJM
T0NLKTsKKyAgICAgICAgaWYgKGZkID09IC0xKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIGF1dG8gY2xvc2VGRCA9IG1ha2VTY29wZUV4aXQoWyZdIHsKLSAgICAgICAgICAgIEZpbGVT
eXN0ZW06OnVubG9ja0FuZENsb3NlRmlsZShmZCk7CisgICAgICAgICAgICBjbG9zZShmZCk7CiAg
ICAgICAgIH0pOwogCi0gICAgICAgIGJvb2wgc3VjY2VzczsKLSAgICAgICAgRmlsZVN5c3RlbTo6
TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoZmQsIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVN
b2RlOjpQcml2YXRlLCBzdWNjZXNzKTsKLQotICAgICAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAg
IHN0cnVjdCBzdGF0IHNiOworICAgICAgICBpbnQgcmVzID0gZnN0YXQoZmQsICZzYik7CisgICAg
ICAgIHNpemVfdCBzaXplID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihzYi5zdF9zaXplKTsKKyAgICAg
ICAgaWYgKHJlcyB8fCAhc2l6ZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtX2Nh
Y2hlZEJ5dGVjb2RlID0gQ2FjaGVkQnl0ZWNvZGU6OmNyZWF0ZShXVEZNb3ZlKG1hcHBlZEZpbGVE
YXRhKSk7CisgICAgICAgIHZvaWQqIGJ1ZmZlciA9IG1tYXAobnVsbHB0ciwgc2l6ZSwgUFJPVF9S
RUFELCBNQVBfUFJJVkFURSwgZmQsIDApOworICAgICAgICBpZiAoYnVmZmVyID09IE1BUF9GQUlM
RUQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fY2FjaGVkQnl0ZWNvZGUgPSBDYWNo
ZWRCeXRlY29kZTo6Y3JlYXRlKGJ1ZmZlciwgc2l6ZSk7CisjZW5kaWYKICAgICB9CiAKICAgICBT
aGVsbFNvdXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmln
aW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9z
aXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVQYXlsb2FkLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5jcHAKaW5kZXggZjRhYjliYzg0ODg3
NDUxM2E4ZTRjMjFlMTYyYjlkMzUwZWRkZTE1MC4uOGMzZTg1YjM5YzBmZTgyZTM5YWE4YzIxZjEy
MjNhYjcyNmEyNDg4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q2FjaGVQYXlsb2FkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNo
ZVBheWxvYWQuY3BwCkBAIC0zMiwxMCArMzIsMTIgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLUNh
Y2hlUGF5bG9hZCBDYWNoZVBheWxvYWQ6Om1ha2VNYXBwZWRQYXlsb2FkKEZpbGVTeXN0ZW06Ok1h
cHBlZEZpbGVEYXRhJiYgZGF0YSkKKyNpZiAhT1MoV0lORE9XUykKK0NhY2hlUGF5bG9hZCBDYWNo
ZVBheWxvYWQ6Om1ha2VNYXBwZWRQYXlsb2FkKHZvaWQqIGRhdGEsIHNpemVfdCBzaXplKQogewot
ICAgIHJldHVybiBDYWNoZVBheWxvYWQodHJ1ZSwgZGF0YS5sZWFrSGFuZGxlKCksIGRhdGEuc2l6
ZSgpKTsKKyAgICByZXR1cm4gQ2FjaGVQYXlsb2FkKHRydWUsIGRhdGEsIHNpemUpOwogfQorI2Vu
ZGlmCiAKIENhY2hlUGF5bG9hZCBDYWNoZVBheWxvYWQ6Om1ha2VNYWxsb2NQYXlsb2FkKE1hbGxv
Y1B0cjx1aW50OF90PiYmIGRhdGEsIHNpemVfdCBzaXplKQogewpAQCAtNzQsNyArNzYsMTEgQEAg
dm9pZCBDYWNoZVBheWxvYWQ6OmZyZWVEYXRhKCkKICAgICBpZiAoIW1fZGF0YSkKICAgICAgICAg
cmV0dXJuOwogICAgIGlmIChtX21hcHBlZCkgewotICAgICAgICBGaWxlU3lzdGVtOjp1bm1hcFZp
ZXdPZkZpbGUobV9kYXRhLCBtX3NpemUpOworI2lmICFPUyhXSU5ET1dTKQorICAgICAgICBtdW5t
YXAobV9kYXRhLCBtX3NpemUpOworI2Vsc2UKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyNlbmRpZgogICAgIH0gZWxzZQogICAgICAgICBmYXN0RnJlZShtX2RhdGEpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVQYXlsb2Fk
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZVBheWxvYWQuaAppbmRleCA3
ZWFiNTg5N2Y2YTk4YjIzYTM4MDNmODM5YTE4NDA3MWUyZDU0ZmE5Li5lMDQ4ZjMxOTM3YzhjMDc3
NDUxMGE4NmM2NzFmOWFjNWEyN2E2MjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9DYWNoZVBheWxvYWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9DYWNoZVBheWxvYWQuaApAQCAtMjUsMTQgKzI1LDE1IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvTWFsbG9jUHRyLmg+
CiAKIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBDYWNoZVBheWxvYWQgewogcHVibGljOgotICAg
IEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBDYWNoZVBheWxvYWQgbWFrZU1hcHBlZFBheWxvYWQo
RmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEmJik7CisjaWYgIU9TKFdJTkRPV1MpCisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIENhY2hlUGF5bG9hZCBtYWtlTWFwcGVkUGF5bG9hZCh2b2lk
Kiwgc2l6ZV90KTsKKyNlbmRpZgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBDYWNoZVBh
eWxvYWQgbWFrZU1hbGxvY1BheWxvYWQoTWFsbG9jUHRyPHVpbnQ4X3Q+JiYsIHNpemVfdCk7CiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIENhY2hlUGF5bG9hZCBtYWtlRW1wdHlQYXlsb2Fk
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZEJ5
dGVjb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRCeXRlY29kZS5o
CmluZGV4IGQ3NTYxMzk1M2JjNTFlNTgwYmQ0ODk0MjE3OWRjMTk3MDEyM2I0MDQuLjE1Y2FiM2Mw
NDcwYmEwY2EwNjJkNTU1ZTQ3YzNmZmRkYzhmZWQ3OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZEJ5dGVjb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ2FjaGVkQnl0ZWNvZGUuaApAQCAtNDYsMTAgKzQ2LDEyIEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2FjaGVkQnl0ZWNvZGUoQ2FjaGVQYXls
b2FkOjptYWtlRW1wdHlQYXlsb2FkKCkpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPENhY2hl
ZEJ5dGVjb2RlPiBjcmVhdGUoRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEmJiBkYXRhLCBMZWFm
RXhlY3V0YWJsZU1hcCYmIGxlYWZFeGVjdXRhYmxlcyA9IHsgfSkKKyNpZiAhT1MoV0lORE9XUykK
KyAgICBzdGF0aWMgUmVmPENhY2hlZEJ5dGVjb2RlPiBjcmVhdGUodm9pZCogZGF0YSwgc2l6ZV90
IHNpemUsIExlYWZFeGVjdXRhYmxlTWFwJiYgbGVhZkV4ZWN1dGFibGVzID0geyB9KQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2FjaGVkQnl0ZWNvZGUoQ2FjaGVQYXlsb2Fk
OjptYWtlTWFwcGVkUGF5bG9hZChXVEZNb3ZlKGRhdGEpKSwgV1RGTW92ZShsZWFmRXhlY3V0YWJs
ZXMpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hlZEJ5dGVjb2RlKENhY2hl
UGF5bG9hZDo6bWFrZU1hcHBlZFBheWxvYWQoZGF0YSwgc2l6ZSksIFdURk1vdmUobGVhZkV4ZWN1
dGFibGVzKSkpOwogICAgIH0KKyNlbmRpZgogCiAgICAgc3RhdGljIFJlZjxDYWNoZWRCeXRlY29k
ZT4gY3JlYXRlKE1hbGxvY1B0cjx1aW50OF90PiYmIGRhdGEsIHNpemVfdCBzaXplLCBMZWFmRXhl
Y3V0YWJsZU1hcCYmIGxlYWZFeGVjdXRhYmxlcykKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAKaW5kZXggNmZlNTU1MDU0MDYwYTE3OWQwNzgw
OWQ5ZjAwZGE4YjU4YmRlMDYyYy4uNmU4M2EyODQ0Y2UzNjE1YWJkOTM1Zjg1ZDViZTY3Mjc5MzYw
NjM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlw
ZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNw
cApAQCAtODgsNyArODgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHB0cmRpZmZfdCBtX29mZnNldDsK
ICAgICB9OwogCi0gICAgRW5jb2RlcihWTSYgdm0sIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhh
bmRsZSBmZCA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAgRW5j
b2RlcihWTSYgdm0sIGludCBmZCA9IC0xKQogICAgICAgICA6IG1fdm0odm0pCiAgICAgICAgICwg
bV9mZChmZCkKICAgICAgICAgLCBtX2Jhc2VPZmZzZXQoMCkKQEAgLTE1Miw4ICsxNTIsMTIgQEAg
cHVibGljOgogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIG1fY3VycmVudFBh
Z2UtPmFsaWduRW5kKCk7CiAKLSAgICAgICAgaWYgKEZpbGVTeXN0ZW06OmlzSGFuZGxlVmFsaWQo
bV9mZCkpIHsKKyAgICAgICAgaWYgKG1fZmQgIT0gLTEpIHsKKyNpZiAhT1MoV0lORE9XUykKICAg
ICAgICAgICAgIHJldHVybiByZWxlYXNlTWFwcGVkKGVycm9yKTsKKyNlbHNlCisgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCiAgICAgICAgIH0KIAogICAg
ICAgICBzaXplX3Qgc2l6ZSA9IG1fYmFzZU9mZnNldCArIG1fY3VycmVudFBhZ2UtPnNpemUoKTsK
QEAgLTE2OCwxNiArMTcyLDE3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6CisjaWYgIU9T
KFdJTkRPV1MpCiAgICAgUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiByZWxlYXNlTWFwcGVkKEJ5dGVj
b2RlQ2FjaGVFcnJvciYgZXJyb3IpCiAgICAgewogICAgICAgICBzaXplX3Qgc2l6ZSA9IG1fYmFz
ZU9mZnNldCArIG1fY3VycmVudFBhZ2UtPnNpemUoKTsKLSAgICAgICAgaWYgKCFGaWxlU3lzdGVt
Ojp0cnVuY2F0ZUZpbGUobV9mZCwgc2l6ZSkpIHsKKyAgICAgICAgaWYgKGZ0cnVuY2F0ZShtX2Zk
LCBzaXplKSkgewogICAgICAgICAgICAgZXJyb3IgPSBCeXRlY29kZUNhY2hlRXJyb3I6OlN0YW5k
YXJkRXJyb3IoZXJybm8pOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0K
IAogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhZ2UgOiBtX3BhZ2VzKSB7Ci0gICAgICAgICAg
ICBpbnQgYnl0ZXNXcml0dGVuID0gRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9mZCwgcmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4ocGFnZS5idWZmZXIoKSksIHBhZ2Uuc2l6ZSgpKTsKKyAgICAgICAg
ICAgIHNzaXplX3QgYnl0ZXNXcml0dGVuID0gd3JpdGUobV9mZCwgcGFnZS5idWZmZXIoKSwgcGFn
ZS5zaXplKCkpOwogICAgICAgICAgICAgaWYgKGJ5dGVzV3JpdHRlbiA9PSAtMSkgewogICAgICAg
ICAgICAgICAgIGVycm9yID0gQnl0ZWNvZGVDYWNoZUVycm9yOjpTdGFuZGFyZEVycm9yKGVycm5v
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE4OSwxNSArMTk0LDE1IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBib29sIHN1Y2Nl
c3M7Ci0gICAgICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKG1f
ZmQsIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpQcml2YXRlLCBzdWNjZXNzKTsKLSAgICAg
ICAgaWYgKCFzdWNjZXNzKSB7CisgICAgICAgIHZvaWQqIGJ1ZmZlciA9IG1tYXAobnVsbHB0ciwg
c2l6ZSwgUFJPVF9SRUFELCBNQVBfUFJJVkFURSwgbV9mZCwgMCk7CisgICAgICAgIGlmIChidWZm
ZXIgPT0gTUFQX0ZBSUxFRCkgewogICAgICAgICAgICAgZXJyb3IgPSBCeXRlY29kZUNhY2hlRXJy
b3I6OlN0YW5kYXJkRXJyb3IoZXJybm8pOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgICAgIH0KIAotICAgICAgICByZXR1cm4gQ2FjaGVkQnl0ZWNvZGU6OmNyZWF0ZShXVEZNb3Zl
KG1hcHBlZEZpbGVEYXRhKSwgV1RGTW92ZShtX2xlYWZFeGVjdXRhYmxlcykpOworICAgICAgICBy
ZXR1cm4gQ2FjaGVkQnl0ZWNvZGU6OmNyZWF0ZShidWZmZXIsIHNpemUsIFdURk1vdmUobV9sZWFm
RXhlY3V0YWJsZXMpKTsKICAgICB9CisjZW5kaWYKIAogICAgIGNsYXNzIFBhZ2UgewogICAgIHB1
YmxpYzoKQEAgLTI2NSw3ICsyNzAsNyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIFZNJiBtX3Zt
OwotICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2ZkOworICAgIGludCBtX2Zk
OwogICAgIHB0cmRpZmZfdCBtX2Jhc2VPZmZzZXQ7CiAgICAgUGFnZSogbV9jdXJyZW50UGFnZTsK
ICAgICBWZWN0b3I8UGFnZT4gbV9wYWdlczsKQEAgLTIzNzEsNyArMjM3Niw3IEBAIHZvaWQgZW5j
b2RlQ29kZUJsb2NrKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNvdXJjZUNvZGVLZXkmIGtleSwg
Y29uc3QgVW5saW5rZWRDCiAgICAgZW50cnktPmVuY29kZShlbmNvZGVyLCB7IGtleSwganNDYXN0
PGNvbnN0IFVubGlua2VkQ29kZUJsb2NrVHlwZSo+KGNvZGVCbG9jaykgfSk7CiB9CiAKLVJlZlB0
cjxDYWNoZWRCeXRlY29kZT4gZW5jb2RlQ29kZUJsb2NrKFZNJiB2bSwgY29uc3QgU291cmNlQ29k
ZUtleSYga2V5LCBjb25zdCBVbmxpbmtlZENvZGVCbG9jayogY29kZUJsb2NrLCBGaWxlU3lzdGVt
OjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmQsIEJ5dGVjb2RlQ2FjaGVFcnJvciYgZXJyb3IpCitSZWZQ
dHI8Q2FjaGVkQnl0ZWNvZGU+IGVuY29kZUNvZGVCbG9jayhWTSYgdm0sIGNvbnN0IFNvdXJjZUNv
ZGVLZXkmIGtleSwgY29uc3QgVW5saW5rZWRDb2RlQmxvY2sqIGNvZGVCbG9jaywgaW50IGZkLCBC
eXRlY29kZUNhY2hlRXJyb3ImIGVycm9yKQogewogICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJ
bmZvID0gY29kZUJsb2NrLT5jbGFzc0luZm8odm0pOwogCkBAIC0yMzg5LDcgKzIzOTQsNyBAQCBS
ZWZQdHI8Q2FjaGVkQnl0ZWNvZGU+IGVuY29kZUNvZGVCbG9jayhWTSYgdm0sIGNvbnN0IFNvdXJj
ZUNvZGVLZXkmIGtleSwgY29uc3QgVQogUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBlbmNvZGVDb2Rl
QmxvY2soVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlS2V5JiBrZXksIGNvbnN0IFVubGlua2VkQ29k
ZUJsb2NrKiBjb2RlQmxvY2spCiB7CiAgICAgQnl0ZWNvZGVDYWNoZUVycm9yIGVycm9yOwotICAg
IHJldHVybiBlbmNvZGVDb2RlQmxvY2sodm0sIGtleSwgY29kZUJsb2NrLCBGaWxlU3lzdGVtOjpp
bnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlLCBlcnJvcik7CisgICAgcmV0dXJuIGVuY29kZUNvZGVC
bG9jayh2bSwga2V5LCBjb2RlQmxvY2ssIC0xLCBlcnJvcik7CiB9CiAKIFJlZlB0cjxDYWNoZWRC
eXRlY29kZT4gZW5jb2RlRnVuY3Rpb25Db2RlQmxvY2soVk0mIHZtLCBjb25zdCBVbmxpbmtlZEZ1
bmN0aW9uQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5dGVjb2RlQ2FjaGVFcnJvciYgZXJyb3IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuaAppbmRleCAwNWNiMWIx
NmVmNGQ5ZTgzZjVkNjIxNTAxNzU3NWEyZWY5ODQ4NDVhLi4xYjYyZDhkNDZjYjhkOGRlOTcwOWFk
MjY3ZDJhNTVjODhmZGYyNTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9DYWNoZWRUeXBlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nh
Y2hlZFR5cGVzLmgKQEAgLTEwOSw3ICsxMDksNyBAQCBwcml2YXRlOgogfTsKIAogSlNfRVhQT1JU
X1BSSVZBVEUgUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBlbmNvZGVDb2RlQmxvY2soVk0mLCBjb25z
dCBTb3VyY2VDb2RlS2V5JiwgY29uc3QgVW5saW5rZWRDb2RlQmxvY2sqKTsKLUpTX0VYUE9SVF9Q
UklWQVRFIFJlZlB0cjxDYWNoZWRCeXRlY29kZT4gZW5jb2RlQ29kZUJsb2NrKFZNJiwgY29uc3Qg
U291cmNlQ29kZUtleSYsIGNvbnN0IFVubGlua2VkQ29kZUJsb2NrKiwgRmlsZVN5c3RlbTo6UGxh
dGZvcm1GaWxlSGFuZGxlIGZkLCBCeXRlY29kZUNhY2hlRXJyb3ImKTsKK0pTX0VYUE9SVF9QUklW
QVRFIFJlZlB0cjxDYWNoZWRCeXRlY29kZT4gZW5jb2RlQ29kZUJsb2NrKFZNJiwgY29uc3QgU291
cmNlQ29kZUtleSYsIGNvbnN0IFVubGlua2VkQ29kZUJsb2NrKiwgaW50IGZkLCBCeXRlY29kZUNh
Y2hlRXJyb3ImKTsKIAogVW5saW5rZWRDb2RlQmxvY2sqIGRlY29kZUNvZGVCbG9ja0ltcGwoVk0m
LCBjb25zdCBTb3VyY2VDb2RlS2V5JiwgUmVmPENhY2hlZEJ5dGVjb2RlPik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCmluZGV4IDI2YTIzN2JjMzZmZTNk
MWE4ZjY1M2VlNTNiMDRlYTA1OGYwYjdkZWEuLjg0Mjc2OGUzMDM0ZjA0ODQ3ODQyZDU1NzcwNDY3
OGUzMGFhNjI2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
ZGVDYWNoZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hl
LmNwcApAQCAtMjI1LDcgKzIyNSw3IEBAIFNvdXJjZUNvZGVLZXkgc291cmNlQ29kZUtleUZvclNl
cmlhbGl6ZWRNb2R1bGUoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2VDCiAgICAgcmV0
dXJuIHNvdXJjZUNvZGVLZXlGb3JTZXJpYWxpemVkQnl0ZWNvZGUodm0sIHNvdXJjZUNvZGUsIFNv
dXJjZUNvZGVUeXBlOjpNb2R1bGVUeXBlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCB7IH0pOwog
fQogCi1SZWZQdHI8Q2FjaGVkQnl0ZWNvZGU+IHNlcmlhbGl6ZUJ5dGVjb2RlKFZNJiB2bSwgVW5s
aW5rZWRDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBTb3Vy
Y2VDb2RlVHlwZSBjb2RlVHlwZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIEpTUGFy
c2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUg
ZmQsIEJ5dGVjb2RlQ2FjaGVFcnJvciYgZXJyb3IsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1v
ZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSkKK1JlZlB0cjxDYWNoZWRCeXRlY29kZT4gc2VyaWFsaXpl
Qnl0ZWNvZGUoVk0mIHZtLCBVbmxpbmtlZENvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBTb3Vy
Y2VDb2RlJiBzb3VyY2UsIFNvdXJjZUNvZGVUeXBlIGNvZGVUeXBlLCBKU1BhcnNlclN0cmljdE1v
ZGUgc3RyaWN0TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUsIGludCBmZCwgQnl0
ZWNvZGVDYWNoZUVycm9yJiBlcnJvciwgT3B0aW9uU2V0PENvZGVHZW5lcmF0aW9uTW9kZT4gY29k
ZUdlbmVyYXRpb25Nb2RlKQogewogICAgIHJldHVybiBlbmNvZGVDb2RlQmxvY2sodm0sCiAgICAg
ICAgIHNvdXJjZUNvZGVLZXlGb3JTZXJpYWxpemVkQnl0ZWNvZGUodm0sIHNvdXJjZSwgY29kZVR5
cGUsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIGNvZGVHZW5lcmF0aW9uTW9kZSksIGNvZGVCbG9j
aywgZmQsIGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvZGVDYWNoZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgK
aW5kZXggN2MzN2FiMDc5ODQ5ZDUxMzE1YjY1ZTA5NTM2OGI4MGFkOGVjN2I1Mi4uZTIwNzFkMzlk
ZDg2Y2M5ZTM3ZTViZmI3YjdmOTUzN2RiOGUxMDdjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29kZUNhY2hlLmgKQEAgLTMxOCw3ICszMTgsNyBAQCByZWN1cnNpdmVseUdlbmVy
YXRlVW5saW5rZWRDb2RlQmxvY2soVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpT
UGFyc2VyUwogfQogCiB2b2lkIHdyaXRlQ29kZUJsb2NrKFZNJiwgY29uc3QgU291cmNlQ29kZUtl
eSYsIGNvbnN0IFNvdXJjZUNvZGVWYWx1ZSYpOwotUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBzZXJp
YWxpemVCeXRlY29kZShWTSYsIFVubGlua2VkQ29kZUJsb2NrKiwgY29uc3QgU291cmNlQ29kZSYs
IFNvdXJjZUNvZGVUeXBlLCBKU1BhcnNlclN0cmljdE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9kZSwg
RmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZkLCBCeXRlY29kZUNhY2hlRXJyb3ImLCBP
cHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPik7CitSZWZQdHI8Q2FjaGVkQnl0ZWNvZGU+IHNl
cmlhbGl6ZUJ5dGVjb2RlKFZNJiwgVW5saW5rZWRDb2RlQmxvY2sqLCBjb25zdCBTb3VyY2VDb2Rl
JiwgU291cmNlQ29kZVR5cGUsIEpTUGFyc2VyU3RyaWN0TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2Rl
LCBpbnQgZmQsIEJ5dGVjb2RlQ2FjaGVFcnJvciYsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1v
ZGU+KTsKIFNvdXJjZUNvZGVLZXkgc291cmNlQ29kZUtleUZvclNlcmlhbGl6ZWRQcm9ncmFtKFZN
JiwgY29uc3QgU291cmNlQ29kZSYpOwogU291cmNlQ29kZUtleSBzb3VyY2VDb2RlS2V5Rm9yU2Vy
aWFsaXplZE1vZHVsZShWTSYsIGNvbnN0IFNvdXJjZUNvZGUmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAppbmRleCAwMGExNWM5NzlmNmM1NjllZmEz
MDZjNjQ1NGVkNDA0MDUxM2I3ZGYwLi5kYmZmMTc4ZGU2YjNlOGUwNTVlNjU5OGQwYzI1NWE4Mjll
MzUzNDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0
aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNw
cApAQCAtOTIsNyArOTIsNyBAQCBib29sIGNoZWNrTW9kdWxlU3ludGF4KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBQYXJzZXJFcnJvciYgZQogICAgIHJldHVybiB0
cnVlOwogfQogCi1SZWZQdHI8Q2FjaGVkQnl0ZWNvZGU+IGdlbmVyYXRlUHJvZ3JhbUJ5dGVjb2Rl
KFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZp
bGVIYW5kbGUgZmQsIEJ5dGVjb2RlQ2FjaGVFcnJvciYgZXJyb3IpCitSZWZQdHI8Q2FjaGVkQnl0
ZWNvZGU+IGdlbmVyYXRlUHJvZ3JhbUJ5dGVjb2RlKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYg
c291cmNlLCBpbnQgZmQsIEJ5dGVjb2RlQ2FjaGVFcnJvciYgZXJyb3IpCiB7CiAgICAgSlNMb2Nr
SG9sZGVyIGxvY2sodm0pOwogICAgIFJFTEVBU0VfQVNTRVJUKHZtLmF0b21TdHJpbmdUYWJsZSgp
ID09IFRocmVhZDo6Y3VycmVudCgpLmF0b21TdHJpbmdUYWJsZSgpKTsKQEAgLTExMiw3ICsxMTIs
NyBAQCBSZWZQdHI8Q2FjaGVkQnl0ZWNvZGU+IGdlbmVyYXRlUHJvZ3JhbUJ5dGVjb2RlKFZNJiB2
bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLAogICAgIHJldHVybiBzZXJpYWxpemVCeXRlY29k
ZSh2bSwgdW5saW5rZWRDb2RlQmxvY2ssIHNvdXJjZSwgU291cmNlQ29kZVR5cGU6OlByb2dyYW1U
eXBlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCBmZCwgZXJyb3IsIHsgfSk7CiB9CiAKLVJlZlB0
cjxDYWNoZWRCeXRlY29kZT4gZ2VuZXJhdGVNb2R1bGVCeXRlY29kZShWTSYgdm0sIGNvbnN0IFNv
dXJjZUNvZGUmIHNvdXJjZSwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZkLCBCeXRl
Y29kZUNhY2hlRXJyb3ImIGVycm9yKQorUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBnZW5lcmF0ZU1v
ZHVsZUJ5dGVjb2RlKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBpbnQgZmQsIEJ5
dGVjb2RlQ2FjaGVFcnJvciYgZXJyb3IpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwog
ICAgIFJFTEVBU0VfQVNTRVJUKHZtLmF0b21TdHJpbmdUYWJsZSgpID09IFRocmVhZDo6Y3VycmVu
dCgpLmF0b21TdHJpbmdUYWJsZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbXBsZXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bXBsZXRpb24uaAppbmRleCBiMWU4ZTI5YjUwMmM3NzMwYjEzYjYzMGJjMzk3YmY5MTE2M2ViMzhh
Li44YTk3YzE3MTIyNDA2MzM0ZWUyY2RhMmZiM2I0OTViMjQ0M2FhZWU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oCkBAIC0yNCw3ICsyNCw2IEBACiAKICNp
bmNsdWRlICJDYWxsRGF0YS5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKLSNpbmNsdWRlIDx3
dGYvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPHd0Zi9OYWtlZFB0ci5oPgogCiBuYW1lc3BhY2Ug
SlNDIHsKQEAgLTQ0LDggKzQzLDggQEAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBjaGVja1N5bnRh
eChWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBQYXJzZXJFcnJvciYpOwogSlNfRVhQT1JUX1BSSVZB
VEUgYm9vbCBjaGVja1N5bnRheChFeGVjU3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNWYWx1
ZSogZXhjZXB0aW9uID0gMCk7CiBKU19FWFBPUlRfUFJJVkFURSBib29sIGNoZWNrTW9kdWxlU3lu
dGF4KEV4ZWNTdGF0ZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBQYXJzZXJFcnJvciYpOwogCi1KU19F
WFBPUlRfUFJJVkFURSBSZWZQdHI8Q2FjaGVkQnl0ZWNvZGU+IGdlbmVyYXRlUHJvZ3JhbUJ5dGVj
b2RlKFZNJiwgY29uc3QgU291cmNlQ29kZSYsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRs
ZSBmZCwgQnl0ZWNvZGVDYWNoZUVycm9yJik7Ci1KU19FWFBPUlRfUFJJVkFURSBSZWZQdHI8Q2Fj
aGVkQnl0ZWNvZGU+IGdlbmVyYXRlTW9kdWxlQnl0ZWNvZGUoVk0mLCBjb25zdCBTb3VyY2VDb2Rl
JiwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZkLCBCeXRlY29kZUNhY2hlRXJyb3Im
KTsKK0pTX0VYUE9SVF9QUklWQVRFIFJlZlB0cjxDYWNoZWRCeXRlY29kZT4gZ2VuZXJhdGVQcm9n
cmFtQnl0ZWNvZGUoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgaW50IGZkLCBCeXRlY29kZUNhY2hl
RXJyb3ImKTsKK0pTX0VYUE9SVF9QUklWQVRFIFJlZlB0cjxDYWNoZWRCeXRlY29kZT4gZ2VuZXJh
dGVNb2R1bGVCeXRlY29kZShWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBpbnQgZmQsIEJ5dGVjb2Rl
Q2FjaGVFcnJvciYpOwogCiBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIGV2YWx1YXRlKEV4ZWNT
dGF0ZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU1ZhbHVlIHRoaXNWYWx1ZSwgTmFrZWRQdHI8RXhj
ZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24pOwogaW5saW5lIEpTVmFsdWUgZXZhbHVhdGUoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IEpTVmFsdWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0u
Y3BwIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKaW5kZXggNDMzMTI0NTQzNmU0MzQz
ZWQ4MDc2ZDkzN2E0YzE5NWI1MDA5NzZlMS4uOTc1NDI5YmFkMDlmMTcxNTg3YzYzZjkzM2ExZTdj
YTJkOTY1N2U5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKQEAgLTQwLDExICs0MCw2IEBACiAjaW5j
bHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYKIAotI2lmIFVTRShHTElCKQotI2luY2x1ZGUgPGdpby9n
ZmlsZWRlc2NyaXB0b3JiYXNlZC5oPgotI2luY2x1ZGUgPGdpby9naW8uaD4KLSNlbmRpZgotCiBu
YW1lc3BhY2UgV1RGIHsKIAogbmFtZXNwYWNlIEZpbGVTeXN0ZW1JbXBsIHsKQEAgLTI3OSw2NCAr
Mjc0LDU1IEBAIGJvb2wgZXhjbHVkZUZyb21CYWNrdXAoY29uc3QgU3RyaW5nJikKIAogI2VuZGlm
CiAKKyNpZiBIQVZFKE1NQVApCisKIE1hcHBlZEZpbGVEYXRhOjp+TWFwcGVkRmlsZURhdGEoKQog
ewogICAgIGlmICghbV9maWxlRGF0YSkKICAgICAgICAgcmV0dXJuOwotICAgIHVubWFwVmlld09m
RmlsZShtX2ZpbGVEYXRhLCBtX2ZpbGVTaXplKTsKLX0KLQotI2lmIEhBVkUoTU1BUCkKLQotTWFw
cGVkRmlsZURhdGE6Ok1hcHBlZEZpbGVEYXRhKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgsIE1hcHBl
ZEZpbGVNb2RlIG1vZGUsIGJvb2wmIHN1Y2Nlc3MpCi17Ci0gICAgYXV0byBmZCA9IG9wZW5GaWxl
KGZpbGVQYXRoLCBGaWxlT3Blbk1vZGU6OlJlYWQpOwotCi0gICAgc3VjY2VzcyA9IG1hcEZpbGVI
YW5kbGUoZmQsIG1vZGUpOwotICAgIGNsb3NlRmlsZShmZCk7CisgICAgbXVubWFwKG1fZmlsZURh
dGEsIG1fZmlsZVNpemUpOwogfQogCi1ib29sIE1hcHBlZEZpbGVEYXRhOjptYXBGaWxlSGFuZGxl
KFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIE1hcHBlZEZpbGVNb2RlIG1vZGUpCitNYXBwZWRG
aWxlRGF0YTo6TWFwcGVkRmlsZURhdGEoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCwgYm9vbCYgc3Vj
Y2VzcykKIHsKLSAgICBpZiAoIWlzSGFuZGxlVmFsaWQoaGFuZGxlKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgaW50IGZkOwotI2lmIFVTRShHTElCKQotICAgIGF1dG8qIGlucHV0U3Ry
ZWFtID0gZ19pb19zdHJlYW1fZ2V0X2lucHV0X3N0cmVhbShHX0lPX1NUUkVBTShoYW5kbGUpKTsK
LSAgICBmZCA9IGdfZmlsZV9kZXNjcmlwdG9yX2Jhc2VkX2dldF9mZChHX0ZJTEVfREVTQ1JJUFRP
Ul9CQVNFRChpbnB1dFN0cmVhbSkpOwotI2Vsc2UKLSAgICBmZCA9IGhhbmRsZTsKLSNlbmRpZgor
ICAgIENTdHJpbmcgZnNSZXAgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZmlsZVBhdGgpOwor
ICAgIGludCBmZCA9ICFmc1JlcC5pc051bGwoKSA/IG9wZW4oZnNSZXAuZGF0YSgpLCBPX1JET05M
WSkgOiAtMTsKKyAgICBpZiAoZmQgPCAwKSB7CisgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIHN0cnVjdCBzdGF0IGZpbGVTdGF0OwogICAgIGlm
IChmc3RhdChmZCwgJmZpbGVTdGF0KSkgewotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGNsb3NlKGZkKTsKKyAgICAgICAgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgdW5zaWduZWQgc2l6ZTsKICAgICBpZiAoIVdURjo6Y29udmVydFNhZmVseShm
aWxlU3RhdC5zdF9zaXplLCBzaXplKSkgewotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGNsb3NlKGZkKTsKKyAgICAgICAgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgaWYgKCFzaXplKSB7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBj
bG9zZShmZCk7CisgICAgICAgIHN1Y2Nlc3MgPSB0cnVlOworICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgdm9pZCogZGF0YSA9IG1tYXAoMCwgc2l6ZSwgUFJPVF9SRUFELCBNQVBfRklMRSB8
IChtb2RlID09IE1hcHBlZEZpbGVNb2RlOjpTaGFyZWQgPyBNQVBfU0hBUkVEIDogTUFQX1BSSVZB
VEUpLCBmZCwgMCk7CisgICAgdm9pZCogZGF0YSA9IG1tYXAoMCwgc2l6ZSwgUFJPVF9SRUFELCBN
QVBfRklMRSB8IE1BUF9TSEFSRUQsIGZkLCAwKTsKKyAgICBjbG9zZShmZCk7CiAKICAgICBpZiAo
ZGF0YSA9PSBNQVBfRkFJTEVEKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgc3Vj
Y2VzcyA9IGZhbHNlOworICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgc3VjY2VzcyA9IHRy
dWU7CiAgICAgbV9maWxlRGF0YSA9IGRhdGE7CiAgICAgbV9maWxlU2l6ZSA9IHNpemU7Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgdW5tYXBWaWV3T2ZGaWxlKHZvaWQqIGJ1ZmZlciwgc2l6
ZV90IHNpemUpCi17Ci0gICAgcmV0dXJuICFtdW5tYXAoYnVmZmVyLCBzaXplKTsKIH0KIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmggYi9Tb3VyY2UvV1RG
L3d0Zi9GaWxlU3lzdGVtLmgKaW5kZXggNmFlMzg2MmVhMzNkMjBlOGZlNzM1Yzc2MmYxNjVmZmMz
ZTUzYmY2Zi4uMzJmZTc2ZGY0MDAwNzJjZmI3NDk5YjdmZDQ4YTNhM2IxNDhiMmE0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zp
bGVTeXN0ZW0uaApAQCAtOTYsMTEgKzk2LDYgQEAgZW51bSBjbGFzcyBGaWxlTG9ja01vZGUgewog
ICAgIE5vbmJsb2NraW5nID0gMSA8PCAyLAogfTsKIAotZW51bSBjbGFzcyBNYXBwZWRGaWxlTW9k
ZSB7Ci0gICAgU2hhcmVkLAotICAgIFByaXZhdGUsCi19OwotCiBlbnVtIGNsYXNzIFNob3VsZEZv
bGxvd1N5bWJvbGljTGlua3MgeyBObywgWWVzIH07CiAKIFdURl9FWFBPUlRfUFJJVkFURSBib29s
IGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJik7CkBAIC0xNDMsNyArMTM4LDcgQEAgV1RGX0VYUE9S
VF9QUklWQVRFIFBsYXRmb3JtRmlsZUhhbmRsZSBvcGVuRmlsZShjb25zdCBTdHJpbmcmIHBhdGgs
IEZpbGVPcGVuTW9kZSkKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGNsb3NlRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUmKTsKIC8vIFJldHVybnMgdGhlIHJlc3VsdGluZyBvZmZzZXQgZnJvbSB0aGUg
YmVnaW5uaW5nIG9mIHRoZSBmaWxlIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZS4KIFdURl9F
WFBPUlRfUFJJVkFURSBsb25nIGxvbmcgc2Vla0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBsb25n
IGxvbmcgb2Zmc2V0LCBGaWxlU2Vla09yaWdpbik7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCB0
cnVuY2F0ZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KTsKK2Jvb2wg
dHJ1bmNhdGVGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCk7CiAvLyBS
ZXR1cm5zIG51bWJlciBvZiBieXRlcyBhY3R1YWxseSByZWFkIGlmIHN1Y2Nlc3NmdWwsIC0xIG90
aGVyd2lzZS4KIFdURl9FWFBPUlRfUFJJVkFURSBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxl
SGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKTsKIC8vIFJldHVybnMgbnVtYmVy
IG9mIGJ5dGVzIGFjdHVhbGx5IHdyaXR0ZW4gaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgpA
QCAtMTk2LDE0ICsxOTEsMTEgQEAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyByZWFsUGF0aChj
b25zdCBTdHJpbmcmKTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzU2FmZVRvVXNlTWVtb3J5
TWFwRm9yUGF0aChjb25zdCBTdHJpbmcmKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIG1ha2VT
YWZlVG9Vc2VNZW1vcnlNYXBGb3JQYXRoKGNvbnN0IFN0cmluZyYpOwogCi1XVEZfRVhQT1JUX1BS
SVZBVEUgYm9vbCB1bm1hcFZpZXdPZkZpbGUodm9pZCogYnVmZmVyLCBzaXplX3QpOwotCiBjbGFz
cyBNYXBwZWRGaWxlRGF0YSB7CiBwdWJsaWM6CiAgICAgTWFwcGVkRmlsZURhdGEoKSB7IH0KICAg
ICBNYXBwZWRGaWxlRGF0YShNYXBwZWRGaWxlRGF0YSYmKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgTWFwcGVkRmlsZURhdGEoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCwgTWFwcGVkRmlsZU1vZGUs
IGJvb2wmIHN1Y2Nlc3MpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSBNYXBwZWRGaWxlRGF0YShQ
bGF0Zm9ybUZpbGVIYW5kbGUsIE1hcHBlZEZpbGVNb2RlLCBib29sJiBzdWNjZXNzKTsKKyAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgTWFwcGVkRmlsZURhdGEoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCwg
Ym9vbCYgc3VjY2Vzcyk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIH5NYXBwZWRGaWxlRGF0YSgp
OwogICAgIE1hcHBlZEZpbGVEYXRhJiBvcGVyYXRvcj0oTWFwcGVkRmlsZURhdGEmJik7CiAKQEAg
LTIxMSwyMCArMjAzLDExIEBAIHB1YmxpYzoKICAgICBjb25zdCB2b2lkKiBkYXRhKCkgY29uc3Qg
eyByZXR1cm4gbV9maWxlRGF0YTsgfQogICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJldHVy
biBtX2ZpbGVTaXplOyB9CiAKLSAgICB2b2lkKiBsZWFrSGFuZGxlKCkgeyByZXR1cm4gc3RkOjpl
eGNoYW5nZShtX2ZpbGVEYXRhLCBudWxscHRyKTsgfQotCiBwcml2YXRlOgotICAgIFdURl9FWFBP
UlRfUFJJVkFURSBib29sIG1hcEZpbGVIYW5kbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBNYXBwZWRG
aWxlTW9kZSk7Ci0KICAgICB2b2lkKiBtX2ZpbGVEYXRhIHsgbnVsbHB0ciB9OwogICAgIHVuc2ln
bmVkIG1fZmlsZVNpemUgeyAwIH07CiB9OwogCi1pbmxpbmUgTWFwcGVkRmlsZURhdGE6Ok1hcHBl
ZEZpbGVEYXRhKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIE1hcHBlZEZpbGVNb2RlIG1vZGUs
IGJvb2wmIHN1Y2Nlc3MpCi17Ci0gICAgc3VjY2VzcyA9IG1hcEZpbGVIYW5kbGUoaGFuZGxlLCBt
b2RlKTsKLX0KLQogaW5saW5lIE1hcHBlZEZpbGVEYXRhOjpNYXBwZWRGaWxlRGF0YShNYXBwZWRG
aWxlRGF0YSYmIG90aGVyKQogICAgIDogbV9maWxlRGF0YShzdGQ6OmV4Y2hhbmdlKG90aGVyLm1f
ZmlsZURhdGEsIG51bGxwdHIpKQogICAgICwgbV9maWxlU2l6ZShzdGQ6OmV4Y2hhbmdlKG90aGVy
Lm1fZmlsZVNpemUsIDApKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVVJRC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9VVUlELmNwcAppbmRleCAxNWNhMDBhNzEwYjk3YzY5MDI1ZWI1MDE1ZDAw
MTcxZTg5YTNhNDVkLi44NTk2OGJmNTkxMTZkMTNjYWQ5MjM5NmYzMzlmMjA0ZmUxZGMyMTUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9V
VUlELmNwcApAQCAtNjYsOCArNjYsOCBAQCBTdHJpbmcgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmlu
ZygpCiAKIFN0cmluZyBib290U2Vzc2lvblVVSURTdHJpbmcoKQogewotI2lmIE9TKERBUldJTikK
ICAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFN0cmluZz4gYm9vdFNlc3Npb25VVUlEOwor
I2lmIE9TKERBUldJTikKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUtleTsKICAgICBz
dGQ6OmNhbGxfb25jZShvbmNlS2V5LCBbXSB7CiAgICAgICAgIHNpemVfdCB1dWlkTGVuZ3RoID0g
Mzc7CkBAIC03NiwxMCArNzYsOCBAQCBTdHJpbmcgYm9vdFNlc3Npb25VVUlEU3RyaW5nKCkKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgYm9vdFNlc3Npb25VVUlELmNvbnN0cnVjdChzdGF0
aWNfY2FzdDxjb25zdCBjaGFyKj4odXVpZCksIHV1aWRMZW5ndGggLSAxKTsKICAgICB9KTsKLSAg
ICByZXR1cm4gYm9vdFNlc3Npb25VVUlEOwotI2Vsc2UKLSAgICByZXR1cm4gU3RyaW5nKCk7CiAj
ZW5kaWYKKyAgICByZXR1cm4gYm9vdFNlc3Npb25VVUlEOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwIGIv
U291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKaW5kZXggODZjMDRmOWQ1ZTEz
NDBkOWI0Zjk3ZjBkN2Y3OTAwZTI4YjMzMTdkMi4uYTVlMGJhNjI5ZDI5OTBiOWRlNjczOWYyOTRm
NmYwNjM5MzAzMzgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lzdGVt
R2xpYi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKQEAg
LTM5MCwxMSArMzkwLDYgQEAgbG9uZyBsb25nIHNlZWtGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBo
YW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQsIEZpbGVTZWVrT3JpZ2luIG8KICAgICByZXR1cm4gZ19z
ZWVrYWJsZV90ZWxsKEdfU0VFS0FCTEUoZ19pb19zdHJlYW1fZ2V0X2lucHV0X3N0cmVhbShHX0lP
X1NUUkVBTShoYW5kbGUpKSkpOwogfQogCi1ib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVI
YW5kbGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQotewotICAgIHJldHVybiBnX3NlZWthYmxl
X3RydW5jYXRlKEdfU0VFS0FCTEUoZ19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19JT19T
VFJFQU0oaGFuZGxlKSkpLCBvZmZzZXQsIG51bGxwdHIsIG51bGxwdHIpOwotfQotCiBpbnQgd3Jp
dGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgY29uc3QgY2hhciogZGF0YSwgaW50
IGxlbmd0aCkKIHsKICAgICBnc2l6ZSBieXRlc1dyaXR0ZW47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5
c3RlbVdpbi5jcHAKaW5kZXggNTg1NDBkYjc4YzhmYjY5NTEzNzRhYThkNTQ1YWVkNzk5ODU1NDUy
NS4uNThjOTM0NDgwOGU2NzEwNTNlMzE2MGUwNzk2YjQwMjI5NzcyNThlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3dpbi9GaWxlU3lzdGVtV2luLmNwcApAQCAtNDcwLDE0ICs0NzAsNiBAQCBsb25nIGxvbmcgc2Vl
a0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCwgRmlsZVNl
ZWtPcmlnaW4gbwogICAgIHJldHVybiBsYXJnZU9mZnNldC5RdWFkUGFydDsKIH0KIAotYm9vbCB0
cnVuY2F0ZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCkK
LXsKLSAgICBGSUxFX0VORF9PRl9GSUxFX0lORk8gZW9mSW5mbzsKLSAgICBlb2ZJbmZvLkVuZE9m
RmlsZS5RdWFkUGFydCA9IG9mZnNldDsKLQotICAgIHJldHVybiBTZXRGaWxlSW5mb3JtYXRpb25C
eUhhbmRsZShoYW5kbGUsIEZpbGVFbmRPZkZpbGVJbmZvLCAmZW9mSW5mbywgc2l6ZW9mKEZJTEVf
RU5EX09GX0ZJTEVfSU5GTykpOwotfQotCiBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFu
ZGxlIGhhbmRsZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBpZiAoIWlz
SGFuZGxlVmFsaWQoaGFuZGxlKSkKQEAgLTU5Niw0MyArNTg4LDQzIEBAIGJvb2wgZGVsZXRlTm9u
RW1wdHlEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBkaXJlY3RvcnlQYXRoKQogICAgIHJldHVybiAh
U0hGaWxlT3BlcmF0aW9uKCZkZWxldGVPcGVyYXRpb24pOwogfQogCi1ib29sIHVubWFwVmlld09m
RmlsZSh2b2lkKiBidWZmZXIsIHNpemVfdCkKK01hcHBlZEZpbGVEYXRhOjp+TWFwcGVkRmlsZURh
dGEoKQogewotICAgIHJldHVybiBVbm1hcFZpZXdPZkZpbGUoYnVmZmVyKTsKKyAgICBpZiAoIW1f
ZmlsZURhdGEpCisgICAgICAgIHJldHVybjsKKyAgICBVbm1hcFZpZXdPZkZpbGUobV9maWxlRGF0
YSk7CiB9CiAKLU1hcHBlZEZpbGVEYXRhOjpNYXBwZWRGaWxlRGF0YShjb25zdCBTdHJpbmcmIGZp
bGVQYXRoLCBNYXBwZWRGaWxlTW9kZSBtb2RlLCBib29sJiBzdWNjZXNzKQorTWFwcGVkRmlsZURh
dGE6Ok1hcHBlZEZpbGVEYXRhKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgsIGJvb2wmIHN1Y2Nlc3Mp
CiB7CisgICAgc3VjY2VzcyA9IGZhbHNlOwogICAgIGF1dG8gZmlsZSA9IENyZWF0ZUZpbGUoZmls
ZVBhdGgud2lkZUNoYXJhY3RlcnMoKS5kYXRhKCksIEdFTkVSSUNfUkVBRCwgMCwgbnVsbHB0ciwg
T1BFTl9FWElTVElORywgRklMRV9BVFRSSUJVVEVfTk9STUFMLCBudWxscHRyKTsKLQotICAgIHN1
Y2Nlc3MgPSBtYXBGaWxlSGFuZGxlKGZpbGUsIG1vZGUpOwotICAgIGNsb3NlRmlsZShmaWxlKTsK
LX0KLQotYm9vbCBNYXBwZWRGaWxlRGF0YTo6bWFwRmlsZUhhbmRsZShQbGF0Zm9ybUZpbGVIYW5k
bGUgaGFuZGxlLCBNYXBwZWRGaWxlTW9kZSkKLXsKLSAgICBpZiAoIWlzSGFuZGxlVmFsaWQoaGFu
ZGxlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChmaWxlID09IElOVkFMSURfSEFO
RExFX1ZBTFVFKQorICAgICAgICByZXR1cm47CiAKICAgICBsb25nIGxvbmcgc2l6ZTsKLSAgICBp
ZiAoIWdldEZpbGVTaXplKGhhbmRsZSwgc2l6ZSkgfHwgc2l6ZSA+IHN0ZDo6bnVtZXJpY19saW1p
dHM8c2l6ZV90Pjo6bWF4KCkgfHwgc2l6ZSA+IHN0ZDo6bnVtZXJpY19saW1pdHM8ZGVjbHR5cGUo
bV9maWxlU2l6ZSk+OjptYXgoKSkgewotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFn
ZXRGaWxlU2l6ZShmaWxlLCBzaXplKSB8fCBzaXplID4gc3RkOjpudW1lcmljX2xpbWl0czxzaXpl
X3Q+OjptYXgoKSB8fCBzaXplID4gc3RkOjpudW1lcmljX2xpbWl0czxkZWNsdHlwZShtX2ZpbGVT
aXplKT46Om1heCgpKSB7CisgICAgICAgIENsb3NlSGFuZGxlKGZpbGUpOworICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgaWYgKCFzaXplKSB7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBDbG9zZUhhbmRsZShmaWxlKTsKKyAgICAgICAgc3VjY2VzcyA9IHRydWU7CisgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIG1hcHBpbmcgPSBDcmVhdGVGaWxlTWFwcGluZyho
YW5kbGUsIG51bGxwdHIsIFBBR0VfUkVBRE9OTFksIDAsIDAsIG51bGxwdHIpOworICAgIGF1dG8g
bWFwcGluZyA9IENyZWF0ZUZpbGVNYXBwaW5nKGZpbGUsIG51bGxwdHIsIFBBR0VfUkVBRE9OTFks
IDAsIDAsIG51bGxwdHIpOworICAgIENsb3NlSGFuZGxlKGZpbGUpOwogICAgIGlmICghbWFwcGlu
ZykKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm47CiAKICAgICBtX2ZpbGVE
YXRhID0gTWFwVmlld09mRmlsZShtYXBwaW5nLCBGSUxFX01BUF9SRUFELCAwLCAwLCBzaXplKTsK
ICAgICBDbG9zZUhhbmRsZShtYXBwaW5nKTsKICAgICBpZiAoIW1fZmlsZURhdGEpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuOwogICAgIG1fZmlsZVNpemUgPSBzaXplOwot
ICAgIHJldHVybiB0cnVlOworICAgIHN1Y2Nlc3MgPSB0cnVlOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBGaWxlU3lzdGVtSW1wbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hh
cmVkQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAK
aW5kZXggNjFmZDdjNDg3N2EyYmFhNTZjYjIyZDQwNDg2NTk1M2UwMzU5NDA4MC4uYmUwMTQ5YTRh
NmU1Mzk2MTY5NDJlZDUyNTNlODI3MTExMTg0MjkwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TaGFyZWRCdWZmZXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIFNoYXJlZEJ1ZmZlcjo6U2hhcmVk
QnVmZmVyKEdzdE1hcHBlZEJ1ZmZlciYgbWFwcGVkQnVmZmVyKQogUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoY29uc3QgU3RyaW5nJiBm
aWxlUGF0aCkKIHsKICAgICBib29sIG1hcHBpbmdTdWNjZXNzOwotICAgIEZpbGVTeXN0ZW06Ok1h
cHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKGZpbGVQYXRoLCBGaWxlU3lzdGVtOjpNYXBwZWRG
aWxlTW9kZTo6U2hhcmVkLCBtYXBwaW5nU3VjY2Vzcyk7CisgICAgRmlsZVN5c3RlbTo6TWFwcGVk
RmlsZURhdGEgbWFwcGVkRmlsZURhdGEoZmlsZVBhdGgsIG1hcHBpbmdTdWNjZXNzKTsKIAogICAg
IGlmICghbWFwcGluZ1N1Y2Nlc3MpCiAgICAgICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0
ZUZyb21SZWFkaW5nRmlsZShmaWxlUGF0aCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTJkNDI3NjQwODk4NzQ3MjI1OWZhZTA0ZDU5ZDc2NjIz
YTE1OGY5My4uYTAyMTgzYzlkOGZlYWYzYThmYzhiNDg0YmFmMTQyMDlhOGZhZTgwNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDE5LTA3LTE3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4K
KworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ3NTA1LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5ODcxCisKKyAgICAgICAgIkNh
dXNlZCBmYWlsZWQgQVNTRVJUIGluIHN0cmVzcyB0ZXN0IiAoUmVxdWVzdGVkIGJ5IGNyZWlkIG9u
CisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAg
ICAgICAiQnl0ZWNvZGUgY2FjaGUgc2hvdWxkIHVzZSBGaWxlU3lzdGVtIgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5NzU5CisgICAgICAgIGh0dHBz
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNDc1MDUKKwogMjAxOS0wNy0xNyAgUnVzc2Vs
bCBFcHN0ZWluICA8cnVzc2VsbF9lQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRpbmcgc2VsZiB0
byBjb250cmlidXRvcnMuanNvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxl
U3lzdGVtLmNwcAppbmRleCBkMGU1MTUxYTk5OTI5YTgzNzI3MzQ5Mzc1M2E1ODBlYmYzMmQzOGY3
Li44MzA1NTI1NTZkZTE3ZmY2NzdhOTI0MDU3NWRhNzA3MTZmMTFlNmUzIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtOTQsNyArOTQsNyBAQCBw
cml2YXRlOgogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBNYXBwaW5nTWlzc2luZ0ZpbGUpCiB7CiAg
ICAgYm9vbCBzdWNjZXNzOwotICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZp
bGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmls
ZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CisgICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEg
bWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBzdWNjZXNzKTsKICAg
ICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcyk7CiAgICAgRVhQRUNUX1RSVUUoIW1hcHBlZEZpbGVEYXRh
KTsKIH0KQEAgLTEwMiw3ICsxMDIsNyBAQCBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdN
aXNzaW5nRmlsZSkKIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgTWFwcGluZ0V4aXN0aW5nRmlsZSkK
IHsKICAgICBib29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFw
cGVkRmlsZURhdGEodGVtcEZpbGVQYXRoKCksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpT
aGFyZWQsIHN1Y2Nlc3MpOworICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZp
bGVEYXRhKHRlbXBGaWxlUGF0aCgpLCBzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRShzdWNjZXNz
KTsKICAgICBFWFBFQ1RfVFJVRSghIW1hcHBlZEZpbGVEYXRhKTsKICAgICBFWFBFQ1RfVFJVRSht
YXBwZWRGaWxlRGF0YS5zaXplKCkgPT0gc3RybGVuKEZpbGVTeXN0ZW1UZXN0RGF0YSkpOwpAQCAt
MTEyLDcgKzExMiw3IEBAIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgTWFwcGluZ0V4aXN0aW5nRmls
ZSkKIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgTWFwcGluZ0V4aXN0aW5nRW1wdHlGaWxlKQogewog
ICAgIGJvb2wgc3VjY2VzczsKLSAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRG
aWxlRGF0YSh0ZW1wRW1wdHlGaWxlUGF0aCgpLCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6
U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRG
aWxlRGF0YSh0ZW1wRW1wdHlGaWxlUGF0aCgpLCBzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRShz
dWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRSghbWFwcGVkRmlsZURhdGEpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>