<?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>158374</bug_id>
          
          <creation_ts>2016-06-03 17:52:33 -0700</creation_ts>
          <short_desc>REGRESSION(r201663): Broke the Windows build (Requested by andersca on #webkit).</short_desc>
          <delta_ts>2016-06-03 17:55:40 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>158354</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>andersca</cc>
    
    <cc>cdumez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1199159</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-03 17:52:33 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/201663 broke the build:
Broke the Windows build (Requested by andersca 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>1199161</commentid>
    <comment_count>1</comment_count>
      <attachid>280495</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-03 17:53:17 -0700</bug_when>
    <thetext>Created attachment 280495
ROLLOUT of r201663

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>1199162</commentid>
    <comment_count>2</comment_count>
      <attachid>280495</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-03 17:55:36 -0700</bug_when>
    <thetext>Comment on attachment 280495
ROLLOUT of r201663

Clearing flags on attachment: 280495

Committed r201673: &lt;http://trac.webkit.org/changeset/201673&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199163</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-03 17:55:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280495</attachid>
            <date>2016-06-03 17:53:17 -0700</date>
            <delta_ts>2016-06-03 17:55:36 -0700</delta_ts>
            <desc>ROLLOUT of r201663</desc>
            <filename>bug-158374-20160603175438.patch</filename>
            <type>text/plain</type>
            <size>69463</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDI0ZGU5NmZmZTlmNGVkOTA0OGM0MDQ0
MTQwOGY0MWQwNzUxNWRkZTguLmQwNmVmOWEzOTllOTVjNjc1MmM0NGQyOGU5YTQ0YmFhOWU0YWVj
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDYtMDMgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIy
MDE2NjMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTgzNzQKKworICAgICAgICBCcm9rZSB0aGUgV2luZG93cyBidWlsZCAoUmVxdWVzdGVkIGJ5IGFu
ZGVyc2NhIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAg
ICAgICAiUmVuYW1lIE5vbmNvcHlhYmxlRnVuY3Rpb24gdG8gRnVuY3Rpb24iCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgzNTQKKyAgICAgICAgaHR0
cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjAxNjYzCisKIDIwMTYtMDYtMDMgIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgTm9uY29w
eWFibGVGdW5jdGlvbiB0byBGdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg1NDBhYjYyZGI5YWYzMWZj
ZTI4NzUyYTcwY2ZjNTgwYThlNjJjODYuLmQ4NDNiYjhmMDU5OTQ4Y2MzZWYxNWJkM2NlOGMyYzYw
MmVmNDBkOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wNi0wMyAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjIwMTY2My4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1ODM3NAorCisgICAgICAgIEJyb2tlIHRoZSBXaW5kb3dzIGJ1aWxkIChS
ZXF1ZXN0ZWQgYnkgYW5kZXJzY2Egb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hh
bmdlc2V0OgorCisgICAgICAgICJSZW5hbWUgTm9uY29weWFibGVGdW5jdGlvbiB0byBGdW5jdGlv
biIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODM1
NAorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMDE2NjMKKwogMjAx
Ni0wNi0wMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBDcmFz
aCB1bmRlciBWaXNpYmxlU2VsZWN0aW9uOjpmaXJzdFJhbmdlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDY2ZGY3
MThkZmFmMzYzZTc2OGUzNzZiZjIwMmE1MTRkNzhhYWIzNi4uYzZhODUxOWYzZWUzYzMyMTQ4ZTg2
ZmRhNDY3OWFkYTI4NjdmYjFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wNi0w
MyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIwMTY2My4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODM3NAorCisgICAgICAgIEJyb2tlIHRoZSBXaW5kb3dz
IGJ1aWxkIChSZXF1ZXN0ZWQgYnkgYW5kZXJzY2Egb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2
ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJSZW5hbWUgTm9uY29weWFibGVGdW5jdGlvbiB0
byBGdW5jdGlvbiIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1ODM1NAorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMDE2
NjMKKwogMjAxNi0wNi0wMyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbmFtZSBOb25jb3B5YWJsZUZ1bmN0aW9uIHRvIEZ1bmN0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggM2JmMTI5MzBjZjM5MjQ4MGZmYjdmM2VkMjI0ODNjZjNhZmU0Mjg3Mi4uMWZmOGE5ZTA4
MGE4NjIxOTVhZGE4YjNkYTM1YjMyNDczOTkzYWJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDE2LTA2LTAzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4K
KworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjAxNjYzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4Mzc0CisKKyAgICAgICAgQnJv
a2UgdGhlIFdpbmRvd3MgYnVpbGQgKFJlcXVlc3RlZCBieSBhbmRlcnNjYSBvbiAjd2Via2l0KS4K
KworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIlJlbmFtZSBOb25jb3B5
YWJsZUZ1bmN0aW9uIHRvIEZ1bmN0aW9uIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MzU0CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
Y2hhbmdlc2V0LzIwMTY2MworCiAyMDE2LTA2LTAzICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNj
YUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIE5vbmNvcHlhYmxlRnVuY3Rpb24gdG8gRnVu
Y3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDExOGUx
OGMxOWYxZjRhOTlhN2IzNTk5NjhlZDQyNDQ3NWYzYjJhNDcuLjA2NjMwZjBmMTA0NjFkZjQ3YmQ4
MjZmOWI1YTdhMDFiYTMzYWExNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTE4LDcgKzExOCw3IEBACiAJCTdFMjlDMzNFMTVGRkQ3OUIwMDUxNkQ2MSAv
KiBPYmpjUnVudGltZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0UyOUMzM0QxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFz
LmggKi87IH07CiAJCTgxMzQwMTM4MTVCMDkyRkQwMDFGRjBCOCAvKiBCYXNlNjQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODEzNDAxMzYxNUIwOTJG
RDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAgKi87IH07CiAJCTgxMzQwMTM5MTVCMDkyRkQwMDFGRjBC
OCAvKiBCYXNlNjQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgxMzQwMTM3MTVCMDkyRkQwMDFGRjBCOCAvKiBCYXNlNjQuaCAqLzsgfTsKLQkJODNGMkJB
REYxQ0Y5NTI0RTAwM0U5OUMzIC8qIEZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0YyQkFERTFDRjk1MjRFMDAzRTk5QzMgLyogRnVuY3Rp
b24uaCAqLzsgfTsKKwkJODNGMkJBREYxQ0Y5NTI0RTAwM0U5OUMzIC8qIE5vbmNvcHlhYmxlRnVu
Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
RjJCQURFMUNGOTUyNEUwMDNFOTlDMyAvKiBOb25jb3B5YWJsZUZ1bmN0aW9uLmggKi87IH07CiAJ
CTgzRkJBOTMyMTlERjQ1OTcwMEYzMEFEQiAvKiBUeXBlQ2FzdHMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkJBOTMxMTlERjQ1OTcwMEYzMEFEQiAv
KiBUeXBlQ2FzdHMuaCAqLzsgfTsKIAkJODZGNDZGNjExQTI4NDBFRTAwQ0NCRjIyIC8qIFJlZkNv
dW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
RjQ2RjVGMUEyODQwRUUwMENDQkYyMiAvKiBSZWZDb3VudGVyLmggKi87IH07CiAJCTkzOTM0QkQz
MThBMUU4QzMwMEQwRDZBMSAvKiBTdHJpbmdWaWV3T2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTM0QkQyMThBMUU4QzMwMEQwRDZBMSAvKiBT
dHJpbmdWaWV3T2JqQy5tbSAqLzsgfTsKQEAgLTQ0Nyw3ICs0NDcsNyBAQAogCQk3RTI5QzMzRDE1
RkZENzlCMDA1MTZENjEgLyogT2JqY1J1bnRpbWVFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gT2JqY1J1bnRpbWVFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODEzNDAxMzYxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlNjQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4MTM0MDEzNzE1QjA5MkZEMDAxRkYwQjggLyogQmFzZTY0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2U2NC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk4M0YyQkFERTFDRjk1MjRFMDAzRTk5QzMgLyogRnVuY3Rpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJODNGMkJBREUxQ0Y5NTI0RTAwM0U5OUMzIC8qIE5vbmNvcHlhYmxlRnVuY3Rp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9uY29weWFibGVGdW5jdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZCQTkzMTE5REY0NTk3MDBGMzBB
REIgLyogVHlwZUNhc3RzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVD
YXN0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkY0NkY1RjFBMjg0MEVFMDBD
Q0JGMjIgLyogUmVmQ291bnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZWZDb3VudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTM0QkQyMThBMUU4
QzMwMEQwRDZBMSAvKiBTdHJpbmdWaWV3T2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IFN0cmluZ1ZpZXdPYmpDLm1tOyBwYXRoID0gbWFjL1N0cmluZ1ZpZXdP
YmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODQwLDcgKzg0MCw2IEBACiAJ
CQkJMEY5RDMzNUMxNjVEQkE3MzAwNUFEMzg3IC8qIEZpbGVQcmludFN0cmVhbS5oICovLAogCQkJ
CTBGMkI2NkE1MTdCNkI0RjcwMEE3QUUzRiAvKiBGbGlwQnl0ZXMuaCAqLywKIAkJCQlBOEE0NzJB
NjE1MUE4MjVBMDA0MTIzRkYgLyogRm9yd2FyZC5oICovLAotCQkJCTgzRjJCQURFMUNGOTUyNEUw
MDNFOTlDMyAvKiBGdW5jdGlvbi5oICovLAogCQkJCTFBMUQ4QjlEMTczMTg3OTgwMDE0MURBNCAv
KiBGdW5jdGlvbkRpc3BhdGNoZXIuY3BwICovLAogCQkJCTFBMUQ4QjlCMTczMTg2Q0UwMDE0MURB
NCAvKiBGdW5jdGlvbkRpc3BhdGNoZXIuaCAqLywKIAkJCQlBOEE0NzJBODE1MUE4MjVBMDA0MTIz
RkYgLyogR2V0UHRyLmggKi8sCkBAIC04ODcsNiArODg2LDcgQEAKIAkJCQkxQTNGNkJFNjE3NEFE
QTIxMDBCMkVFQTcgLyogTmV2ZXJEZXN0cm95ZWQuaCAqLywKIAkJCQkwRjBEODVCMzE3MjM0Q0Ix
MDAzMzgyMTAgLyogTm9Mb2NrLmggKi8sCiAJCQkJQThBNDcyRDAxNTFBODI1QjAwNDEyM0ZGIC8q
IE5vbmNvcHlhYmxlLmggKi8sCisJCQkJODNGMkJBREUxQ0Y5NTI0RTAwM0U5OUMzIC8qIE5vbmNv
cHlhYmxlRnVuY3Rpb24uaCAqLywKIAkJCQlBOEE0NzJENTE1MUE4MjVCMDA0MTIzRkYgLyogTnVt
YmVyT2ZDb3Jlcy5jcHAgKi8sCiAJCQkJQThBNDcyRDYxNTFBODI1QjAwNDEyM0ZGIC8qIE51bWJl
ck9mQ29yZXMuaCAqLywKIAkJCQk3RTI5QzMzRDE1RkZENzlCMDA1MTZENjEgLyogT2JqY1J1bnRp
bWVFeHRyYXMuaCAqLywKQEAgLTEyNTAsNyArMTI1MCw3IEBACiAJCQkJQThBNDczRDkxNTFBODI1
QjAwNDEyM0ZGIC8qIEhhc2hUYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczREExNTFB
ODI1QjAwNDEyM0ZGIC8qIEhhc2hUcmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0RC
MTUxQTgyNUIwMDQxMjNGRiAvKiBIZXhOdW1iZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTgzRjJC
QURGMUNGOTUyNEUwMDNFOTlDMyAvKiBGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJODNG
MkJBREYxQ0Y5NTI0RTAwM0U5OUMzIC8qIE5vbmNvcHlhYmxlRnVuY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTI2ODRENDM2MUMwMDBENDAwMDgxRDY2MyAvKiBJbmRleFNwYXJzZVNldC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThBNDczREMxNTFBODI1QjAwNDEyM0ZGIC8qIElubGluZUFTTS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwREEwODQxNzk5RjA0RDAwNTI5QTlCIC8qIEluc2VydGlv
bi5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVh
ZFRhc2suaCBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFzay5oCmluZGV4IGQ2OWUzMGFj
MjZiZTllMDRiMDRmNTBjYWNmMmNmMTg0YzM3ZjJmMzcuLjFhMTZlM2EzOTBlYWE0YmMzZjIxYzMw
YmUxOWQzYzk4ZWNjNTFmNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFk
VGFzay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFzay5oCkBAIC0yNiw3ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5o
PgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZUZ1
bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV1RG
IHsKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3Jvc3NUaHJlYWRUYXNrIHsKIHB1YmxpYzoKICAg
ICBDcm9zc1RocmVhZFRhc2soKSA9IGRlZmF1bHQ7CiAKLSAgICBDcm9zc1RocmVhZFRhc2soRnVu
Y3Rpb248dm9pZCAoKT4mJiB0YXNrRnVuY3Rpb24pCisgICAgQ3Jvc3NUaHJlYWRUYXNrKE5vbmNv
cHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJiB0YXNrRnVuY3Rpb24pCiAgICAgICAgIDogbV90YXNr
RnVuY3Rpb24oV1RGTW92ZSh0YXNrRnVuY3Rpb24pKQogICAgIHsKICAgICAgICAgQVNTRVJUKHRh
c2tGdW5jdGlvbik7CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3Rl
ZDoKLSAgICBGdW5jdGlvbjx2b2lkICgpPiBtX3Rhc2tGdW5jdGlvbjsKKyAgICBOb25jb3B5YWJs
ZUZ1bmN0aW9uPHZvaWQgKCk+IG1fdGFza0Z1bmN0aW9uOwogfTsKIAogdGVtcGxhdGUgPHR5cGVu
YW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0Z1bmN0aW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9GdW5jdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1ZDJiMmRiOGRlYWJjZDFjMjM2Y2ZmZDIzNzJjODZjYTUzMDdiNmY0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYv
d3RmL0Z1bmN0aW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5OSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDxtZW1vcnk+Ci0jaW5jbHVkZSA8d3RmL0Zhc3RN
YWxsb2MuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBG
dW5jdGlvbjsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIE91dCwgdHlwZW5hbWUuLi4gSW4+Ci1jbGFz
cyBGdW5jdGlvbjxPdXQoSW4uLi4pPiB7Ci1wdWJsaWM6Ci0gICAgRnVuY3Rpb24oKSA9IGRlZmF1
bHQ7Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDYWxsYWJsZVR5cGUsIGNsYXNzID0gdHlwZW5h
bWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19ydmFsdWVfcmVmZXJlbmNlPENhbGxhYmxlVHlwZSYm
Pjo6dmFsdWU+Ojp0eXBlPgotICAgIEZ1bmN0aW9uKENhbGxhYmxlVHlwZSYmIGNhbGxhYmxlKQot
ICAgICAgICA6IG1fY2FsbGFibGVXcmFwcGVyKHN0ZDo6bWFrZV91bmlxdWU8Q2FsbGFibGVXcmFw
cGVyPENhbGxhYmxlVHlwZT4+KFdURk1vdmUoY2FsbGFibGUpKSkKLSAgICB7Ci0gICAgfQotCi0g
ICAgT3V0IG9wZXJhdG9yKCkoSW4uLi4gaW4pIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAobV9j
YWxsYWJsZVdyYXBwZXIpCi0gICAgICAgICAgICByZXR1cm4gbV9jYWxsYWJsZVdyYXBwZXItPmNh
bGwoc3RkOjpmb3J3YXJkPEluPihpbikuLi4pOwotICAgICAgICByZXR1cm4gT3V0KCk7Ci0gICAg
fQotCi0gICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuICEhbV9jYWxs
YWJsZVdyYXBwZXI7IH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENhbGxhYmxlVHlwZSwgY2xh
c3MgPSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3J2YWx1ZV9yZWZlcmVuY2U8Q2Fs
bGFibGVUeXBlJiY+Ojp2YWx1ZT46OnR5cGU+Ci0gICAgRnVuY3Rpb24mIG9wZXJhdG9yPShDYWxs
YWJsZVR5cGUmJiBjYWxsYWJsZSkKLSAgICB7Ci0gICAgICAgIG1fY2FsbGFibGVXcmFwcGVyID0g
c3RkOjptYWtlX3VuaXF1ZTxDYWxsYWJsZVdyYXBwZXI8Q2FsbGFibGVUeXBlPj4oV1RGTW92ZShj
YWxsYWJsZSkpOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgRnVuY3Rpb24m
IG9wZXJhdG9yPShzdGQ6Om51bGxwdHJfdCkKLSAgICB7Ci0gICAgICAgIG1fY2FsbGFibGVXcmFw
cGVyID0gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLQotcHJpdmF0ZToK
LSAgICBjbGFzcyBDYWxsYWJsZVdyYXBwZXJCYXNlIHsKLSAgICAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIH5DYWxsYWJsZVdyYXBwZXJC
YXNlKCkgeyB9Ci0KLSAgICAgICAgdmlydHVhbCBPdXQgY2FsbChJbi4uLikgPSAwOwotICAgIH07
Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDYWxsYWJsZVR5cGU+Ci0gICAgY2xhc3MgQ2FsbGFi
bGVXcmFwcGVyIDogcHVibGljIENhbGxhYmxlV3JhcHBlckJhc2UgewotICAgIHB1YmxpYzoKLSAg
ICAgICAgZXhwbGljaXQgQ2FsbGFibGVXcmFwcGVyKENhbGxhYmxlVHlwZSYmIGNhbGxhYmxlKQot
ICAgICAgICAgICAgOiBtX2NhbGxhYmxlKFdURk1vdmUoY2FsbGFibGUpKQotICAgICAgICB7Ci0g
ICAgICAgIH0KLQotICAgICAgICBDYWxsYWJsZVdyYXBwZXIoY29uc3QgQ2FsbGFibGVXcmFwcGVy
JikgPSBkZWxldGU7Ci0gICAgICAgIENhbGxhYmxlV3JhcHBlciYgb3BlcmF0b3I9KGNvbnN0IENh
bGxhYmxlV3JhcHBlciYpID0gZGVsZXRlOwotCi0gICAgICAgIE91dCBjYWxsKEluLi4uIGluKSBm
aW5hbCB7IHJldHVybiBtX2NhbGxhYmxlKHN0ZDo6Zm9yd2FyZDxJbj4oaW4pLi4uKTsgfQotCi0g
ICAgcHJpdmF0ZToKLSAgICAgICAgQ2FsbGFibGVUeXBlIG1fY2FsbGFibGU7Ci0gICAgfTsKLQot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWxsYWJsZVdyYXBwZXJCYXNlPiBtX2NhbGxhYmxlV3JhcHBl
cjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OkZ1bmN0aW9uOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvRnVuY3Rpb25EaXNwYXRjaGVyLmggYi9Tb3VyY2UvV1RG
L3d0Zi9GdW5jdGlvbkRpc3BhdGNoZXIuaAppbmRleCAzNDRhMTYwMjA4NDBmNWNkNDUwOWQ3Y2Uz
NjRkNzM3ZDQ5OGVlNzMzLi5iNTJlZWNmMWViZjI2OWE0MDYwOGJhMmE4Njc1YTc1MWQzODM0ODYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GdW5jdGlvbkRpc3BhdGNoZXIuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9GdW5jdGlvbkRpc3BhdGNoZXIuaApAQCAtMjcsNyArMjcsNyBAQAogI2Rl
ZmluZSBGdW5jdGlvbkRpc3BhdGNoZXJfaAogCiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KLSNpbmNs
dWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGVGdW5jdGlvbi5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV1RG
IHsKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgRnVuY3Rpb25EaXNwYXRjaGVyIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPEZ1bmN0aW9uRGlzcGF0Y2hlcj4gewogcHVibGljOgogICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5GdW5jdGlvbkRpc3BhdGNoZXIoKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaChGdW5jdGlvbjx2b2lkICgpPiYmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoKE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJikgPSAwOwogCiBw
cm90ZWN0ZWQ6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZ1bmN0aW9uRGlzcGF0Y2hlcigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9NYWluVGhyZWFkLmNwcAppbmRleCA2ZDQyYzRmZGJkYWRlMmIwMTc4MTNiYTQ0NzBkZDJjZGRh
YTc1ZjhhLi5iZDExZTEwYzJkNTEyOTMxY2ExNjE3NWMxOTlkMWRlMTcxZDc1NWVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9N
YWluVGhyZWFkLmNwcApAQCAtNDcsOSArNDcsOSBAQCBzdGF0aWMgVGhyZWFkSWRlbnRpZmllciBt
YWluVGhyZWFkSWRlbnRpZmllcjsKIAogc3RhdGljIFN0YXRpY0xvY2sgbWFpblRocmVhZEZ1bmN0
aW9uUXVldWVNdXRleDsKIAotc3RhdGljIERlcXVlPEZ1bmN0aW9uPHZvaWQgKCk+PiYgZnVuY3Rp
b25RdWV1ZSgpCitzdGF0aWMgRGVxdWU8Tm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPj4mIGZ1
bmN0aW9uUXVldWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxEZXF1ZTxGdW5jdGlv
bjx2b2lkICgpPj4+IGZ1bmN0aW9uUXVldWU7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERl
cXVlPE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4+PiBmdW5jdGlvblF1ZXVlOwogICAgIHJl
dHVybiBmdW5jdGlvblF1ZXVlOwogfQogCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBkaXNwYXRj
aEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFkKCkKIAogICAgIGF1dG8gc3RhcnRUaW1lID0gc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CiAKLSAgICBGdW5jdGlvbjx2b2lkICgpPiBmdW5j
dGlvbjsKKyAgICBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uOwogCiAgICAg
d2hpbGUgKHRydWUpIHsKICAgICAgICAgewpAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgZGlzcGF0
Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCgpCiAgICAgfQogfQogCi12b2lkIGNhbGxPbk1haW5U
aHJlYWQoRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKK3ZvaWQgY2FsbE9uTWFpblRocmVh
ZChOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJU
KGZ1bmN0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5oIGIv
U291cmNlL1dURi93dGYvTWFpblRocmVhZC5oCmluZGV4IDk0YzcwYzY2ZDZkODMyYmM5ZjUzNGUw
MjA4MWFkNjBmZmU1M2QyYTYuLmYxOWY1NTkwMTlkYjc5NzUwYjVmOGJkZWNlYjU5ZWZlZmRkYWU1
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9NYWluVGhyZWFkLmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogI2luY2x1ZGUgPGZ1bmN0
aW9uYWw+CiAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Cisj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlRnVuY3Rpb24uaD4KIAogbmFtZXNwYWNlIFdURiB7CiAK
QEAgLTQxLDcgKzQxLDcgQEAgdHlwZWRlZiB1aW50MzJfdCBUaHJlYWRJZGVudGlmaWVyOwogLy8g
TXVzdCBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCiBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBpbml0aWFsaXplTWFpblRocmVhZCgpOwogCi1XVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBj
YWxsT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQgKCk+JiYpOworV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgY2FsbE9uTWFpblRocmVhZChOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYpOwog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBjYWxsT25XZWJU
aHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5UaHJlYWQodm9pZCAoXmJsb2NrKSgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL05vbmNvcHlhYmxlRnVuY3Rpb24uaCBiL1NvdXJjZS9XVEYv
d3RmL05vbmNvcHlhYmxlRnVuY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjlmNGRjMDY0MTc2NjQ3MWQy
ZWJjMmQ1M2M5ZmNkNDZhYTNhZTUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
Tm9uY29weWFibGVGdW5jdGlvbi5oCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5o
PgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIE5vbmNvcHlh
YmxlRnVuY3Rpb247CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBPdXQsIHR5cGVuYW1lLi4uIEluPgor
Y2xhc3MgTm9uY29weWFibGVGdW5jdGlvbjxPdXQoSW4uLi4pPiB7CitwdWJsaWM6CisgICAgTm9u
Y29weWFibGVGdW5jdGlvbigpID0gZGVmYXVsdDsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENh
bGxhYmxlVHlwZSwgY2xhc3MgPSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3J2YWx1
ZV9yZWZlcmVuY2U8Q2FsbGFibGVUeXBlJiY+Ojp2YWx1ZT46OnR5cGU+CisgICAgTm9uY29weWFi
bGVGdW5jdGlvbihDYWxsYWJsZVR5cGUmJiBjYWxsYWJsZSkKKyAgICAgICAgOiBtX2NhbGxhYmxl
V3JhcHBlcihzdGQ6Om1ha2VfdW5pcXVlPENhbGxhYmxlV3JhcHBlcjxDYWxsYWJsZVR5cGU+PihX
VEZNb3ZlKGNhbGxhYmxlKSkpCisgICAgeworICAgIH0KKworICAgIE91dCBvcGVyYXRvcigpKElu
Li4uIGluKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKG1fY2FsbGFibGVXcmFwcGVyKQorICAg
ICAgICAgICAgcmV0dXJuIG1fY2FsbGFibGVXcmFwcGVyLT5jYWxsKHN0ZDo6Zm9yd2FyZDxJbj4o
aW4pLi4uKTsKKyAgICAgICAgcmV0dXJuIE91dCgpOworICAgIH0KKworICAgIGV4cGxpY2l0IG9w
ZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiAhIW1fY2FsbGFibGVXcmFwcGVyOyB9CisKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBDYWxsYWJsZVR5cGUsIGNsYXNzID0gdHlwZW5hbWUgc3RkOjpl
bmFibGVfaWY8c3RkOjppc19ydmFsdWVfcmVmZXJlbmNlPENhbGxhYmxlVHlwZSYmPjo6dmFsdWU+
Ojp0eXBlPgorICAgIE5vbmNvcHlhYmxlRnVuY3Rpb24mIG9wZXJhdG9yPShDYWxsYWJsZVR5cGUm
JiBjYWxsYWJsZSkKKyAgICB7CisgICAgICAgIG1fY2FsbGFibGVXcmFwcGVyID0gc3RkOjptYWtl
X3VuaXF1ZTxDYWxsYWJsZVdyYXBwZXI8Q2FsbGFibGVUeXBlPj4oV1RGTW92ZShjYWxsYWJsZSkp
OworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgTm9uY29weWFibGVGdW5jdGlv
biYgb3BlcmF0b3I9KHN0ZDo6bnVsbHB0cl90KQorICAgIHsKKyAgICAgICAgbV9jYWxsYWJsZVdy
YXBwZXIgPSBudWxscHRyOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCitwcml2YXRl
OgorICAgIGNsYXNzIENhbGxhYmxlV3JhcHBlckJhc2UgeworICAgICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfkNhbGxhYmxlV3JhcHBl
ckJhc2UoKSB7IH0KKworICAgICAgICB2aXJ0dWFsIE91dCBjYWxsKEluLi4uKSA9IDA7CisgICAg
fTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENhbGxhYmxlVHlwZT4KKyAgICBjbGFzcyBDYWxs
YWJsZVdyYXBwZXIgOiBwdWJsaWMgQ2FsbGFibGVXcmFwcGVyQmFzZSB7CisgICAgcHVibGljOgor
ICAgICAgICBleHBsaWNpdCBDYWxsYWJsZVdyYXBwZXIoQ2FsbGFibGVUeXBlJiYgY2FsbGFibGUp
CisgICAgICAgICAgICA6IG1fY2FsbGFibGUoV1RGTW92ZShjYWxsYWJsZSkpCisgICAgICAgIHsK
KyAgICAgICAgfQorCisgICAgICAgIENhbGxhYmxlV3JhcHBlcihjb25zdCBDYWxsYWJsZVdyYXBw
ZXImKSA9IGRlbGV0ZTsKKyAgICAgICAgQ2FsbGFibGVXcmFwcGVyJiBvcGVyYXRvcj0oY29uc3Qg
Q2FsbGFibGVXcmFwcGVyJikgPSBkZWxldGU7CisKKyAgICAgICAgT3V0IGNhbGwoSW4uLi4gaW4p
IGZpbmFsIHsgcmV0dXJuIG1fY2FsbGFibGUoc3RkOjpmb3J3YXJkPEluPihpbikuLi4pOyB9CisK
KyAgICBwcml2YXRlOgorICAgICAgICBDYWxsYWJsZVR5cGUgbV9jYWxsYWJsZTsKKyAgICB9Owor
CisgICAgc3RkOjp1bmlxdWVfcHRyPENhbGxhYmxlV3JhcHBlckJhc2U+IG1fY2FsbGFibGVXcmFw
cGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6Tm9uY29weWFibGVG
dW5jdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwIGIvU291cmNl
L1dURi93dGYvUnVuTG9vcC5jcHAKaW5kZXggM2IwMjY3ZTk3MWI5MGYxZjNmZWM4YWJhYjllODYy
ZGRiMGY3YTJjNy4uOTY2MGYxNTE0ZTVmMDk4MTg2Mjk5OGY4MTc0MTczNjAwOTYyNGE2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
UnVuTG9vcC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygp
CiAKICAgICBzaXplX3QgZnVuY3Rpb25zVG9IYW5kbGUgPSAwOwogICAgIHsKLSAgICAgICAgRnVu
Y3Rpb248dm9pZCAoKT4gZnVuY3Rpb247CisgICAgICAgIE5vbmNvcHlhYmxlRnVuY3Rpb248dm9p
ZCAoKT4gZnVuY3Rpb247CiAgICAgICAgIHsKICAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX2Z1bmN0aW9uUXVldWVMb2NrKTsKICAgICAgICAgICAgIGZ1bmN0aW9uc1RvSGFuZGxlID0g
bV9mdW5jdGlvblF1ZXVlLnNpemUoKTsKQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIFJ1bkxvb3A6
OnBlcmZvcm1Xb3JrKCkKICAgICB9CiAKICAgICBmb3IgKHNpemVfdCBmdW5jdGlvbnNIYW5kbGVk
ID0gMTsgZnVuY3Rpb25zSGFuZGxlZCA8IGZ1bmN0aW9uc1RvSGFuZGxlOyArK2Z1bmN0aW9uc0hh
bmRsZWQpIHsKLSAgICAgICAgRnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb247CisgICAgICAgIE5v
bmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb247CiAgICAgICAgIHsKICAgICAgICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVMb2NrKTsKIApAQCAtMTIzLDcg
KzEyMyw3IEBAIHZvaWQgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKQogICAgIH0KIH0KIAotdm9pZCBS
dW5Mb29wOjpkaXNwYXRjaChGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQordm9pZCBSdW5M
b29wOjpkaXNwYXRjaChOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7
CiAgICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2UvV1RGL3d0Zi9S
dW5Mb29wLmgKaW5kZXggMzYxMWQ3YTM5Y2I1OWNjMGY0OGU4YjE3ZGJiMmJlMjY2OWE5NGQ5NS4u
ZTE1NThiNjI1OWMyN2YwZjcwOTAxNWVkNTljMTUyYjk4NjU1MzVkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApAQCAt
NTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29s
IGlzTWFpbigpOwogICAgIH5SdW5Mb29wKCk7CiAKLSAgICB2b2lkIGRpc3BhdGNoKEZ1bmN0aW9u
PHZvaWQgKCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2goTm9uY29weWFibGVGdW5j
dGlvbjx2b2lkICgpPiYmKSBvdmVycmlkZTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0
aWMgdm9pZCBydW4oKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdG9wKCk7CkBAIC03
OSw3ICs3OSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgVVNFKEdMSUJfRVZFTlRfTE9PUCkg
fHwgVVNFKEdFTkVSSUNfRVZFTlRfTE9PUCkKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBk
aXNwYXRjaEFmdGVyKHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcywgRnVuY3Rpb248dm9pZCAoKT4m
Jik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGlzcGF0Y2hBZnRlcihzdGQ6OmNocm9u
bzo6bmFub3NlY29uZHMsIE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJik7CiAjZW5kaWYK
IAogICAgIGNsYXNzIFRpbWVyQmFzZSB7CkBAIC0xNTUsNyArMTU1LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHBlcmZvcm1Xb3JrKCk7CiAKICAgICBNdXRleCBtX2Z1bmN0aW9uUXVldWVMb2NrOwot
ICAgIERlcXVlPEZ1bmN0aW9uPHZvaWQgKCk+PiBtX2Z1bmN0aW9uUXVldWU7CisgICAgRGVxdWU8
Tm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPj4gbV9mdW5jdGlvblF1ZXVlOwogCiAjaWYgVVNF
KFdJTkRPV1NfRVZFTlRfTE9PUCkKICAgICBzdGF0aWMgYm9vbCByZWdpc3RlclJ1bkxvb3BNZXNz
YWdlV2luZG93Q2xhc3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5o
IGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmgKaW5kZXggYzk2YWEyZDk0MGQ2MTZjZWRmYzgy
NDIyNDYwOTNkNjU4ODk0MzczMi4uZTU1MzI1OTRhNTQzMjRkNjg4MTFmZTE2NmRhNDBiZjc1MjM0
Mjg0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmgKKysrIGIvU291cmNl
L1dURi93dGYvV29ya1F1ZXVlLmgKQEAgLTcyLDggKzcyLDggQEAgcHVibGljOgogICAgIFdURl9F
WFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFdvcmtRdWV1ZT4gY3JlYXRlKGNvbnN0IGNoYXIqIG5h
bWUsIFR5cGUgPSBUeXBlOjpTZXJpYWwsIFFPUyA9IFFPUzo6RGVmYXVsdCk7CiAgICAgdmlydHVh
bCB+V29ya1F1ZXVlKCk7CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkaXNwYXRjaChG
dW5jdGlvbjx2b2lkICgpPiYmKSBvdmVycmlkZTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBkaXNwYXRjaEFmdGVyKHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcywgRnVuY3Rpb248dm9pZCAo
KT4mJik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGlzcGF0Y2goTm9uY29weWFibGVG
dW5jdGlvbjx2b2lkICgpPiYmKSBvdmVycmlkZTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBkaXNwYXRjaEFmdGVyKHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcywgTm9uY29weWFibGVGdW5j
dGlvbjx2b2lkICgpPiYmKTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBj
b25jdXJyZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIGNvbnN0IHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoc2l6ZV90IGluZGV4KT4mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29jb2Ev
V29ya1F1ZXVlQ29jb2EuY3BwIGIvU291cmNlL1dURi93dGYvY29jb2EvV29ya1F1ZXVlQ29jb2Eu
Y3BwCmluZGV4IGZkYmVmNzNiYWVjMTZhYzU0MmNmYTY0ZTBmYjRmY2M3MzNhZTgyNWEuLjk5NWE5
NTRhYWMxZGI3NDEzM2RlOWNmYjk0ZjE5NDhjOTQxMjc0MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2Nv
YS9Xb3JrUXVldWVDb2NvYS5jcHAKQEAgLTI4LDEwICsyOCwxMCBAQAogCiBuYW1lc3BhY2UgV1RG
IHsKIAotdm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rp
b24pCit2b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2goTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgp
PiYmIGZ1bmN0aW9uKQogewogICAgIHJlZigpOwotICAgIGF1dG8qIGZ1bmN0aW9uUHRyID0gbmV3
IEZ1bmN0aW9uPHZvaWQgKCk+KFdURk1vdmUoZnVuY3Rpb24pKTsKKyAgICBhdXRvKiBmdW5jdGlv
blB0ciA9IG5ldyBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+KFdURk1vdmUoZnVuY3Rpb24p
KTsKICAgICBkaXNwYXRjaF9hc3luYyhtX2Rpc3BhdGNoUXVldWUsIF57CiAgICAgICAgICgqZnVu
Y3Rpb25QdHIpKCk7CiAgICAgICAgIGRlbGV0ZSBmdW5jdGlvblB0cjsKQEAgLTM5LDEwICszOSwx
MCBAQCB2b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2goRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlv
bikKICAgICB9KTsKIH0KIAotdm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJv
bm86Om5hbm9zZWNvbmRzIGR1cmF0aW9uLCBGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQor
dm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGR1
cmF0aW9uLCBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7CiAgICAg
cmVmKCk7Ci0gICAgYXV0byogZnVuY3Rpb25QdHIgPSBuZXcgRnVuY3Rpb248dm9pZCAoKT4oV1RG
TW92ZShmdW5jdGlvbikpOworICAgIGF1dG8qIGZ1bmN0aW9uUHRyID0gbmV3IE5vbmNvcHlhYmxl
RnVuY3Rpb248dm9pZCAoKT4oV1RGTW92ZShmdW5jdGlvbikpOwogICAgIGRpc3BhdGNoX2FmdGVy
KGRpc3BhdGNoX3RpbWUoRElTUEFUQ0hfVElNRV9OT1csIGR1cmF0aW9uLmNvdW50KCkpLCBtX2Rp
c3BhdGNoUXVldWUsIF57CiAgICAgICAgICgqZnVuY3Rpb25QdHIpKCk7CiAgICAgICAgIGRlbGV0
ZSBmdW5jdGlvblB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1
ZXVlV29ya0l0ZW1FZmwuaCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlV29ya0l0
ZW1FZmwuaAppbmRleCAxNjJiYWI0MmE4YjQ4OGI3N2ZkYzUxOTZmZDY0OWQ3MTJkY2FmMDAwLi4z
ZGRmZTU3ZGU2YTNkZmYzZmY4ODUxZjBkMDJhMjhmMDAxZTM2NjU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZVdvcmtJdGVtRWZsLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvZWZsL0Rpc3BhdGNoUXVldWVXb3JrSXRlbUVmbC5oCkBAIC0zNCw3ICszNCw3IEBACiAK
IGNsYXNzIFdvcmtJdGVtIHsKIHB1YmxpYzoKLSAgICBXb3JrSXRlbShSZWY8V29ya1F1ZXVlPiYm
IHdvcmtRdWV1ZSwgRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKKyAgICBXb3JrSXRlbShS
ZWY8V29ya1F1ZXVlPiYmIHdvcmtRdWV1ZSwgTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiYm
IGZ1bmN0aW9uKQogICAgICAgICA6IG1fd29ya1F1ZXVlKFdURk1vdmUod29ya1F1ZXVlKSkKICAg
ICAgICAgLCBtX2Z1bmN0aW9uKFdURk1vdmUoZnVuY3Rpb24pKQogICAgIHsKQEAgLTQ0LDEyICs0
NCwxMiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgUmVmPFdvcmtRdWV1ZT4gbV93b3JrUXVl
dWU7Ci0gICAgRnVuY3Rpb248dm9pZCAoKT4gbV9mdW5jdGlvbjsKKyAgICBOb25jb3B5YWJsZUZ1
bmN0aW9uPHZvaWQgKCk+IG1fZnVuY3Rpb247CiB9OwogCiBjbGFzcyBUaW1lcldvcmtJdGVtIDog
cHVibGljIFdvcmtJdGVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFRp
bWVyV29ya0l0ZW0+IGNyZWF0ZShSZWY8V29ya1F1ZXVlPiYmIHdvcmtRdWV1ZSwgRnVuY3Rpb248
dm9pZCAoKT4mJiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGRlbGF5TmFub1Nl
Y29uZHMpCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxUaW1lcldvcmtJdGVtPiBjcmVhdGUo
UmVmPFdvcmtRdWV1ZT4mJiB3b3JrUXVldWUsIE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4m
JiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGRlbGF5TmFub1NlY29uZHMpCiAg
ICAgewogICAgICAgICBBU1NFUlQoZGVsYXlOYW5vU2Vjb25kcy5jb3VudCgpID49IDApOwogICAg
ICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFRpbWVyV29ya0l0ZW0+KG5ldyBUaW1lcldvcmtJ
dGVtKFdURk1vdmUod29ya1F1ZXVlKSwgV1RGTW92ZShmdW5jdGlvbiksIG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpICogMTAwMDAwMDAwMC4wICsgZGVsYXlOYW5vU2Vjb25kcy5jb3VudCgp
KSk7CkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0V4cGlyZWQoZG91Ymxl
IGN1cnJlbnRUaW1lTmFub1NlY29uZHMpIGNvbnN0IHsgcmV0dXJuIGN1cnJlbnRUaW1lTmFub1Nl
Y29uZHMgPj0gbV9leHBpcmF0aW9uVGltZU5hbm9TZWNvbmRzOyB9CiAKIHByb3RlY3RlZDoKLSAg
ICBUaW1lcldvcmtJdGVtKFJlZjxXb3JrUXVldWU+JiYgd29ya1F1ZXVlLCBGdW5jdGlvbjx2b2lk
ICgpPiYmIGZ1bmN0aW9uLCBkb3VibGUgZXhwaXJhdGlvblRpbWVOYW5vU2Vjb25kcykKKyAgICBU
aW1lcldvcmtJdGVtKFJlZjxXb3JrUXVldWU+JiYgd29ya1F1ZXVlLCBOb25jb3B5YWJsZUZ1bmN0
aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24sIGRvdWJsZSBleHBpcmF0aW9uVGltZU5hbm9TZWNvbmRz
KQogICAgICAgICA6IFdvcmtJdGVtKFdURk1vdmUod29ya1F1ZXVlKSwgV1RGTW92ZShmdW5jdGlv
bikpCiAgICAgICAgICwgbV9leHBpcmF0aW9uVGltZU5hbm9TZWNvbmRzKGV4cGlyYXRpb25UaW1l
TmFub1NlY29uZHMpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZWZsL1dvcmtR
dWV1ZUVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvV29ya1F1ZXVlRWZsLmNwcAppbmRleCBk
YTkxM2JmMDRjZTcyNzMxMDc2N2VmNDc5NGZkZDJiODc4YTVmNGVkLi40MGQxOTM5ZmNkNGQwZWZh
NTY4OWViMDJlZDk5ODZhOWQ3ODIwNTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9lZmwv
V29ya1F1ZXVlRWZsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvV29ya1F1ZXVlRWZsLmNw
cApAQCAtNTQsNyArNTQsNyBAQCB2b2lkIFdvcmtRdWV1ZTo6dW5yZWdpc3RlclNvY2tldEV2ZW50
SGFuZGxlcihpbnQgZmlsZURlc2NyaXB0b3IpCiAgICAgbV9kaXNwYXRjaFF1ZXVlLT5jbGVhclNv
Y2tldEV2ZW50SGFuZGxlcigpOwogfQogCi12b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2goRnVuY3Rp
b248dm9pZCAoKT4mJiBmdW5jdGlvbikKK3ZvaWQgV29ya1F1ZXVlOjpkaXNwYXRjaChOb25jb3B5
YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7CiAgICAgaWYgKCFtX2Rpc3BhdGNo
UXVldWUpCiAgICAgICAgIHJldHVybjsKQEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBXb3JrUXVldWU6
OmRpc3BhdGNoKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiAgICAgbV9kaXNwYXRjaFF1
ZXVlLT5kaXNwYXRjaChzdGQ6Om1ha2VfdW5pcXVlPFdvcmtJdGVtPigqdGhpcywgV1RGTW92ZShm
dW5jdGlvbikpKTsKIH0KIAotdm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJv
bm86Om5hbm9zZWNvbmRzIGR1cmF0aW9uLCBGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQor
dm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGR1
cmF0aW9uLCBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7CiAgICAg
aWYgKCFtX2Rpc3BhdGNoUXVldWUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvZ2Vu
ZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKaW5kZXggMjVhZTZmMTk1YzMyZmI0MTJlMDU5NThjMzVi
MzM4OTU5MzI3NDhhOC4uMTcxYWQzMDI3MjY5MjI4NmYzMmYwOTQ5MmY0ZjI4MzdhOTdhYjZjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKQEAgLTMyLDEyICsz
MiwxMiBAQCBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6U2NoZWR1
bGVkVGFzayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTY2hlZHVsZWRUYXNrPiB7CiBX
VEZfTUFLRV9OT05DT1BZQUJMRShTY2hlZHVsZWRUYXNrKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmUHRyPFNjaGVkdWxlZFRhc2s+IGNyZWF0ZShGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9u
LCBkb3VibGUgaW50ZXJ2YWwsIGJvb2wgcmVwZWF0aW5nKQorICAgIHN0YXRpYyBSZWZQdHI8U2No
ZWR1bGVkVGFzaz4gY3JlYXRlKE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlv
biwgZG91YmxlIGludGVydmFsLCBib29sIHJlcGVhdGluZykKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU2NoZWR1bGVkVGFzayhXVEZNb3ZlKGZ1bmN0aW9uKSwgaW50ZXJ2YWws
IHJlcGVhdGluZykpOwogICAgIH0KIAotICAgIFNjaGVkdWxlZFRhc2soRnVuY3Rpb248dm9pZCAo
KT4mJiBmdW5jdGlvbiwgZG91YmxlIGludGVydmFsLCBib29sIHJlcGVhdGluZykKKyAgICBTY2hl
ZHVsZWRUYXNrKE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbiwgZG91Ymxl
IGludGVydmFsLCBib29sIHJlcGVhdGluZykKICAgICAgICAgOiBtX2Z1bmN0aW9uKFdURk1vdmUo
ZnVuY3Rpb24pKQogICAgICAgICAsIG1fZmlyZUludGVydmFsKHN0ZDo6Y2hyb25vOjpkdXJhdGlv
bl9jYXN0PHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM+KHN0ZDo6Y2hyb25vOjpkdXJhdGlvbjxk
b3VibGU+KGludGVydmFsKSkpCiAgICAgICAgICwgbV9pc1JlcGVhdGluZyhyZXBlYXRpbmcpCkBA
IC05MCw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgRnVuY3Rpb248
dm9pZCAoKT4gbV9mdW5jdGlvbjsKKyAgICBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+IG1f
ZnVuY3Rpb247CiAgICAgQ29uZGl0aW9uOjpDbG9jazo6dGltZV9wb2ludCBtX3NjaGVkdWxlZFRp
bWVQb2ludDsKICAgICBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIG1fZmlyZUludGVydmFsOwog
ICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1faXNBY3RpdmUgeyB0cnVlIH07CkBAIC0yMzcsNyArMjM3
LDcgQEAgdm9pZCBSdW5Mb29wOjpzY2hlZHVsZUFuZFdha2VVcChSZWZQdHI8VGltZXJCYXNlOjpT
Y2hlZHVsZWRUYXNrPiB0YXNrKQogICAgIHdha2VVcChsb2NrZXIpOwogfQogCi12b2lkIFJ1bkxv
b3A6OmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGRlbGF5LCBGdW5jdGlv
bjx2b2lkICgpPiYmIGZ1bmN0aW9uKQordm9pZCBSdW5Mb29wOjpkaXNwYXRjaEFmdGVyKHN0ZDo6
Y2hyb25vOjpuYW5vc2Vjb25kcyBkZWxheSwgTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiYm
IGZ1bmN0aW9uKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9vcExvY2spOwogICAgIGJv
b2wgcmVwZWF0aW5nID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmlj
L1dvcmtRdWV1ZUdlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVH
ZW5lcmljLmNwcAppbmRleCA1YzdiOWI3NjU2Njk1ZGI3NmNlY2JhNzQ1MzYxYzYxZWIyZWIxMWQ2
Li43ZjgwZTY5Y2E1YzdjMzA2ZjkwNzdjNGY5Yzg1MDNlY2M2ZTU0NWM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgdm9p
ZCBXb3JrUXVldWU6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCiAgICAgfQogfQogCi12b2lkIFdvcmtR
dWV1ZTo6ZGlzcGF0Y2goRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKK3ZvaWQgV29ya1F1
ZXVlOjpkaXNwYXRjaChOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7
CiAgICAgUmVmUHRyPFdvcmtRdWV1ZT4gcHJvdGVjdCh0aGlzKTsKICAgICBtX3J1bkxvb3AtPmRp
c3BhdGNoKFtwcm90ZWN0LCBmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CkBAIC04OSw3
ICs4OSw3IEBAIHZvaWQgV29ya1F1ZXVlOjpkaXNwYXRjaChGdW5jdGlvbjx2b2lkICgpPiYmIGZ1
bmN0aW9uKQogICAgIH0pOwogfQogCi12b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlcihzdGQ6
OmNocm9ubzo6bmFub3NlY29uZHMgZGVsYXksIEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24p
Cit2b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlcihzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMg
ZGVsYXksIE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsKICAgICBS
ZWZQdHI8V29ya1F1ZXVlPiBwcm90ZWN0KHRoaXMpOwogICAgIG1fcnVuTG9vcC0+ZGlzcGF0Y2hB
ZnRlcihkZWxheSwgW3Byb3RlY3QsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwIGIvU291cmNlL1dU
Ri93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAKaW5kZXggOTI3Y2UzMjU0ZjhiNTYyNzhiYTZiN2Zm
MDIxYzBkZjBhYTVmMzIxNi4uODliN2Y3MDcwYzlkNDI4ZTdiOGZiODE3YTdmOWU3YjNhZGRmOWYx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAKQEAgLTEyNCw3ICsxMjQsNyBAQCB2
b2lkIFJ1bkxvb3A6Ondha2VVcCgpCiBjbGFzcyBEaXNwYXRjaEFmdGVyQ29udGV4dCB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgRGlzcGF0Y2hBZnRlckNvbnRl
eHQoRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKKyAgICBEaXNwYXRjaEFmdGVyQ29udGV4
dChOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiAgICAgICAgIDogbV9m
dW5jdGlvbihXVEZNb3ZlKGZ1bmN0aW9uKSkKICAgICB7CiAgICAgfQpAQCAtMTM1LDEwICsxMzUs
MTAgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBGdW5jdGlvbjx2b2lkICgpPiBt
X2Z1bmN0aW9uOworICAgIE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4gbV9mdW5jdGlvbjsK
IH07CiAKLXZvaWQgUnVuTG9vcDo6ZGlzcGF0Y2hBZnRlcihzdGQ6OmNocm9ubzo6bmFub3NlY29u
ZHMgZHVyYXRpb24sIEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCit2b2lkIFJ1bkxvb3A6
OmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGR1cmF0aW9uLCBOb25jb3B5
YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7CiAgICAgR1JlZlB0cjxHU291cmNl
PiBzb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXcoc3RkOjpjaHJvbm86OmR1
cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oZHVyYXRpb24pLmNvdW50KCkp
KTsKICAgICBnX3NvdXJjZV9zZXRfbmFtZShzb3VyY2UuZ2V0KCksICJbV2ViS2l0XSBSdW5Mb29w
IGRpc3BhdGNoQWZ0ZXIiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrSXRl
bVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya0l0ZW1XaW4uY3BwCmluZGV4IDdiNzMw
OTAwMjJhZWNiNWI3NWM4YTU2NTgxMzU3ZGVhMTE3YTdmYzIuLjg2NDIzMjJiOWU1MTZhN2U2MTNj
M2MwNGEyNGY2YTMwNzU0MzRmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3Jr
SXRlbVdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL1dvcmtJdGVtV2luLmNwcApAQCAt
MzIsMTMgKzMyLDEzIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1Xb3JrSXRlbVdpbjo6V29ya0l0
ZW1XaW4oRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbiwgV29ya1F1ZXVlKiBxdWV1ZSkKK1dv
cmtJdGVtV2luOjpXb3JrSXRlbVdpbihOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVu
Y3Rpb24sIFdvcmtRdWV1ZSogcXVldWUpCiAgICAgOiBtX2Z1bmN0aW9uKFdURk1vdmUoZnVuY3Rp
b24pKQogICAgICwgbV9xdWV1ZShxdWV1ZSkKIHsKIH0KIAotUmVmUHRyPFdvcmtJdGVtV2luPiBX
b3JrSXRlbVdpbjo6Y3JlYXRlKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24sIFdvcmtRdWV1
ZSogcXVldWUpCitSZWZQdHI8V29ya0l0ZW1XaW4+IFdvcmtJdGVtV2luOjpjcmVhdGUoTm9uY29w
eWFibGVGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uLCBXb3JrUXVldWUqIHF1ZXVlKQogewog
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV29ya0l0ZW1XaW4oV1RGTW92ZShmdW5jdGlvbiksIHF1
ZXVlKSk7CiB9CkBAIC00Nyw3ICs0Nyw3IEBAIFdvcmtJdGVtV2luOjp+V29ya0l0ZW1XaW4oKQog
ewogfQogCi1IYW5kbGVXb3JrSXRlbTo6SGFuZGxlV29ya0l0ZW0oSEFORExFIGhhbmRsZSwgRnVu
Y3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbiwgV29ya1F1ZXVlKiBxdWV1ZSkKK0hhbmRsZVdvcmtJ
dGVtOjpIYW5kbGVXb3JrSXRlbShIQU5ETEUgaGFuZGxlLCBOb25jb3B5YWJsZUZ1bmN0aW9uPHZv
aWQgKCk+JiYgZnVuY3Rpb24sIFdvcmtRdWV1ZSogcXVldWUpCiAgICAgOiBXb3JrSXRlbVdpbihX
VEZNb3ZlKGZ1bmN0aW9uKSwgcXVldWUpCiAgICAgLCBtX2hhbmRsZShoYW5kbGUpCiAgICAgLCBt
X3dhaXRIYW5kbGUoMCkKQEAgLTU1LDcgKzU1LDcgQEAgSGFuZGxlV29ya0l0ZW06OkhhbmRsZVdv
cmtJdGVtKEhBTkRMRSBoYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24sIFdvcmsK
ICAgICBBU1NFUlRfQVJHKGhhbmRsZSwgaGFuZGxlKTsKIH0KIAotUmVmUHRyPEhhbmRsZVdvcmtJ
dGVtPiBIYW5kbGVXb3JrSXRlbTo6Y3JlYXRlQnlBZG9wdGluZ0hhbmRsZShIQU5ETEUgaGFuZGxl
LCBGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uLCBXb3JrUXVldWUqIHF1ZXVlKQorUmVmUHRy
PEhhbmRsZVdvcmtJdGVtPiBIYW5kbGVXb3JrSXRlbTo6Y3JlYXRlQnlBZG9wdGluZ0hhbmRsZShI
QU5ETEUgaGFuZGxlLCBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24sIFdv
cmtRdWV1ZSogcXVldWUpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIYW5kbGVXb3JrSXRl
bShoYW5kbGUsIFdURk1vdmUoZnVuY3Rpb24pLCBxdWV1ZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvd2luL1dvcmtJdGVtV2luLmggYi9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya0l0
ZW1XaW4uaAppbmRleCAyNGVlMjY1MmI1ODQ5ODljZjEwMmQxMmM5ODQzMDU1NGNlMGY4NjhhLi5i
YWE3N2Q5N2E3NDlhMzJlMjIyZDFiMTk5Mzg3Nzc0NDM1MjEzYWY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi93aW4vV29ya0l0ZW1XaW4uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vV29y
a0l0ZW1XaW4uaApAQCAtMzksMzAgKzM5LDMwIEBAIGNsYXNzIFdvcmtRdWV1ZTsKIAogY2xhc3Mg
V29ya0l0ZW1XaW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya0l0ZW1XaW4+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPFdvcmtJdGVtV2luPiBjcmVhdGUoRnVuY3Rpb248
dm9pZCAoKT4mJiwgV29ya1F1ZXVlKik7CisgICAgc3RhdGljIFJlZlB0cjxXb3JrSXRlbVdpbj4g
Y3JlYXRlKE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJiwgV29ya1F1ZXVlKik7CiAgICAg
dmlydHVhbCB+V29ya0l0ZW1XaW4oKTsKIAotICAgIEZ1bmN0aW9uPHZvaWQgKCk+JiBmdW5jdGlv
bigpIHsgcmV0dXJuIG1fZnVuY3Rpb247IH0KKyAgICBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQg
KCk+JiBmdW5jdGlvbigpIHsgcmV0dXJuIG1fZnVuY3Rpb247IH0KICAgICBXb3JrUXVldWUqIHF1
ZXVlKCkgY29uc3QgeyByZXR1cm4gbV9xdWV1ZS5nZXQoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAg
V29ya0l0ZW1XaW4oRnVuY3Rpb248dm9pZCAoKT4mJiwgV29ya1F1ZXVlKik7CisgICAgV29ya0l0
ZW1XaW4oTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiYmLCBXb3JrUXVldWUqKTsKIAogcHJp
dmF0ZToKLSAgICBGdW5jdGlvbjx2b2lkICgpPiBtX2Z1bmN0aW9uOworICAgIE5vbmNvcHlhYmxl
RnVuY3Rpb248dm9pZCAoKT4gbV9mdW5jdGlvbjsKICAgICBSZWZQdHI8V29ya1F1ZXVlPiBtX3F1
ZXVlOwogfTsKIAogY2xhc3MgSGFuZGxlV29ya0l0ZW0gOiBwdWJsaWMgV29ya0l0ZW1XaW4gewog
cHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SGFuZGxlV29ya0l0ZW0+IGNyZWF0ZUJ5QWRvcHRp
bmdIYW5kbGUoSEFORExFLCBGdW5jdGlvbjx2b2lkICgpPiYmLCBXb3JrUXVldWUqKTsKKyAgICBz
dGF0aWMgUmVmUHRyPEhhbmRsZVdvcmtJdGVtPiBjcmVhdGVCeUFkb3B0aW5nSGFuZGxlKEhBTkRM
RSwgTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiYmLCBXb3JrUXVldWUqKTsKICAgICB2aXJ0
dWFsIH5IYW5kbGVXb3JrSXRlbSgpOwogCiAgICAgdm9pZCBzZXRXYWl0SGFuZGxlKEhBTkRMRSB3
YWl0SGFuZGxlKSB7IG1fd2FpdEhhbmRsZSA9IHdhaXRIYW5kbGU7IH0KICAgICBIQU5ETEUgd2Fp
dEhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2FpdEhhbmRsZTsgfQogCiBwcml2YXRlOgotICAg
IEhhbmRsZVdvcmtJdGVtKEhBTkRMRSwgRnVuY3Rpb248dm9pZCAoKT4mJiwgV29ya1F1ZXVlKik7
CisgICAgSGFuZGxlV29ya0l0ZW0oSEFORExFLCBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+
JiYsIFdvcmtRdWV1ZSopOwogCiAgICAgSEFORExFIG1faGFuZGxlOwogICAgIEhBTkRMRSBtX3dh
aXRIYW5kbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya1F1ZXVlV2luLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwCmluZGV4IDg1NWM0MjlkNzQ0
YjkwMDA4ZTJhOGQ4NjlhOWE5Yjc1N2ZmYjYzZGUuLmU0NTI5ODE0OWNhNDdiYWI5ZGU2MGQwOWM2
ZWQwMmRiNGRmOTY5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVX
aW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwCkBAIC0xMjks
NyArMTI5LDcgQEAgdm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCiAgICAgOjpE
ZWxldGVUaW1lclF1ZXVlRXgobV90aW1lclF1ZXVlLCAwKTsKIH0KIAotdm9pZCBXb3JrUXVldWU6
OmRpc3BhdGNoKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCit2b2lkIFdvcmtRdWV1ZTo6
ZGlzcGF0Y2goTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogewogICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX3dvcmtJdGVtUXVldWVMb2NrKTsKICAgICByZWYoKTsKQEAg
LTE0OSw3ICsxNDksNyBAQCBzdHJ1Y3QgVGltZXJDb250ZXh0IDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFRpbWVyQ29udGV4dD4gewogICAgIHN0YXRpYyBSZWZQdHI8VGltZXJDb250ZXh0
PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgVGltZXJDb250ZXh0KTsgfQogCiAgICAg
V29ya1F1ZXVlKiBxdWV1ZTsKLSAgICBGdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbjsKKyAgICBO
b25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uOwogICAgIE11dGV4IHRpbWVyTXV0
ZXg7CiAgICAgSEFORExFIHRpbWVyOwogCkBAIC0xODAsNyArMTgwLDcgQEAgdm9pZCBXb3JrUXVl
dWU6OnRpbWVyQ2FsbGJhY2sodm9pZCogY29udGV4dCwgQk9PTEVBTiB0aW1lck9yV2FpdEZpcmVk
KQogICAgIH0KIH0KIAotdm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86
Om5hbm9zZWNvbmRzIGR1cmF0aW9uLCBGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQordm9p
ZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGR1cmF0
aW9uLCBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7CiAgICAgQVNT
RVJUKG1fdGltZXJRdWV1ZSk7CiAgICAgcmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVj
dGlvbi5jcHAKaW5kZXggOGYwZWFhYjk2YjY2ZjU3OWJkZGI2Y2ZmMjQ5NTgzODA3ZTlmZDRmNC4u
OTY2OGYzMDAyMDBjMGU5NzU4NWZjMTE5MmFjNGU0ZWM3MzY1ZTI3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRw
b2ludFBlZXJDb25uZWN0aW9uLmNwcApAQCAtOTUsNyArOTUsNyBAQCBNZWRpYUVuZHBvaW50UGVl
ckNvbm5lY3Rpb246Ok1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbihQZWVyQ29ubmVjdGlvbkJh
Y2tlbmRDbAogICAgIG1fbWVkaWFFbmRwb2ludC0+Z2VuZXJhdGVEdGxzSW5mbygpOwogfQogCi12
b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6cnVuVGFzayhGdW5jdGlvbjx2b2lkICgp
PiYmIHRhc2spCit2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6cnVuVGFzayhOb25j
b3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgdGFzaykKIHsKICAgICBpZiAobV9kdGxzRmluZ2Vy
cHJpbnQuaXNOdWxsKCkpIHsKICAgICAgICAgLy8gT25seSBvbmUgdGFzayBuZWVkcyB0byBiZSBk
ZWZlcnJlZCBzaW5jZSBpdCB3aWxsIGhvbGQgb2ZmIGFueSBvdGhlcnMgdW50aWwgY29tcGxldGVk
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVu
ZHBvaW50UGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgKaW5kZXggZmZiNjRmMTE5YTM4Y2Q4MzVi
NjNjM2EyNDk2MjVlNmZhYmQxNTJjYS4uZjI1ODJmYjQzMTI1ZWJiNGRiNWU4MjJkNzhiOWEzYjY1
NGRiODY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCkBAIC0zNyw3ICszNyw3
IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQZWVyQ29ubmVjdGlv
bkJhY2tlbmQuaCIKICNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb24uaCIKLSNpbmNsdWRl
IDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGVGdW5jdGlvbi5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzksNyAr
NzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhck5lZ290aWF0aW9uTmVlZGVkU3RhdGUoKSBv
dmVycmlkZSB7IG5vdEltcGxlbWVudGVkKCk7IH07CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBydW5U
YXNrKEZ1bmN0aW9uPHZvaWQgKCk+JiYpOworICAgIHZvaWQgcnVuVGFzayhOb25jb3B5YWJsZUZ1
bmN0aW9uPHZvaWQgKCk+JiYpOwogICAgIHZvaWQgc3RhcnRSdW5uaW5nVGFza3MoKTsKIAogICAg
IHZvaWQgY3JlYXRlT2ZmZXJUYXNrKFJUQ09mZmVyT3B0aW9ucyYsIFBlZXJDb25uZWN0aW9uOjpT
ZXNzaW9uRGVzY3JpcHRpb25Qcm9taXNlJik7CkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAg
ICAgUGVlckNvbm5lY3Rpb25CYWNrZW5kQ2xpZW50KiBtX2NsaWVudDsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8TWVkaWFFbmRwb2ludD4gbV9tZWRpYUVuZHBvaW50OwogCi0gICAgRnVuY3Rpb248dm9p
ZCAoKT4gbV9pbml0aWFsRGVmZXJyZWRUYXNrOworICAgIE5vbmNvcHlhYmxlRnVuY3Rpb248dm9p
ZCAoKT4gbV9pbml0aWFsRGVmZXJyZWRUYXNrOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNEUFBy
b2Nlc3Nvcj4gbV9zZHBQcm9jZXNzb3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaAppbmRleCA4OGE3ZjcxMTM2YzBk
MzYxYmY3MjNlOTg3OGJhYmYzYWVlZjYwYWRlLi5jZmU4ZjE1ZWU0ODQ3NzhkMjRhMDllODI0OTgx
ODViMDA3NjcxMzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAi
QXVkaW9JT0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiQXVkaW9Ob2RlLmgiCiAjaW5jbHVkZSAiQXVk
aW9Tb3VyY2VQcm92aWRlci5oIgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZUZ1bmN0aW9uLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NTksOSArNTksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZUlucHV0KGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UmVu
ZGVyaW5nKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoRnVuY3Rpb248dm9pZCAoKT4m
JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHN1c3BlbmQoRnVuY3Rpb248dm9pZCAoKT4mJikgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIGNsb3NlKEZ1bmN0aW9uPHZvaWQgKCk+JiYpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCByZXN1bWUoTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiYmKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBjbG9zZShOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYp
IHsgfQogCiAgICAgdmlydHVhbCBib29sIGlzUGxheWluZygpIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdm9pZCBpc1BsYXlpbmdEaWRDaGFuZ2UoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlLmNwcAppbmRleCA3Y2VjY2JhMzk1MDUxMTg0YmE1ZDg5ODUyNGVlNGNkMTQwZmE2YzIy
Li5hYzEzNzFlMmE1YTU3MzMzNmI0NjhjZTVhN2MxZjdmNTk3MjFkMmM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBEZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKICAgICAgICAgbV9kZXN0aW5hdGlvbi0+
c3RhcnQoKTsKIH0KIAotdm9pZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlc3VtZShG
dW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQordm9pZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGU6OnJlc3VtZShOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7
CiAgICAgQVNTRVJUKGlzSW5pdGlhbGl6ZWQoKSk7CiAgICAgaWYgKGlzSW5pdGlhbGl6ZWQoKSkK
QEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6cmVz
dW1lKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiAgICAgICAgIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPnBvc3RUYXNrKFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAotdm9pZCBEZWZhdWx0
QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN1c3BlbmQoRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlv
bikKK3ZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdXNwZW5kKE5vbmNvcHlhYmxl
RnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQoaXNJbml0aWFsaXpl
ZCgpKTsKICAgICBpZiAoaXNJbml0aWFsaXplZCgpKQpAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQg
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdXNwZW5kKEZ1bmN0aW9uPHZvaWQgKCk+JiYg
ZnVuY3Rpb24pCiAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFdURk1v
dmUoZnVuY3Rpb24pKTsKIH0KIAotdm9pZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmNs
b3NlKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKK3ZvaWQgRGVmYXVsdEF1ZGlvRGVzdGlu
YXRpb25Ob2RlOjpjbG9zZShOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikK
IHsKICAgICBBU1NFUlQoaXNJbml0aWFsaXplZCgpKTsKICAgICB1bmluaXRpYWxpemUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IDM1YTBkZjE2ZDM0NDdlZWFmNjlkYTk0YjU3YTE5
ZmM1MmVjMWYzOWEuLjA5YzliMzhiN2Y5MjJiMDUzMjE2NzllMzViM2M2NWJmMTc2MTRmNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZh
dWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtNTAsOSArNTAsOSBAQCBwdWJsaWM6CiAgICAg
Ly8gQXVkaW9EZXN0aW5hdGlvbk5vZGUKICAgICB2b2lkIGVuYWJsZUlucHV0KGNvbnN0IFN0cmlu
ZyYgaW5wdXREZXZpY2VJZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdGFydFJlbmRlcmluZygpIG92
ZXJyaWRlOwotICAgIHZvaWQgcmVzdW1lKEZ1bmN0aW9uPHZvaWQgKCk+JiYpIG92ZXJyaWRlOwot
ICAgIHZvaWQgc3VzcGVuZChGdW5jdGlvbjx2b2lkICgpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lk
IGNsb3NlKEZ1bmN0aW9uPHZvaWQgKCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzdW1lKE5v
bmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzdXNwZW5k
KE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjbG9z
ZShOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYpIG92ZXJyaWRlOwogICAgIHVuc2lnbmVk
IGxvbmcgbWF4Q2hhbm5lbENvdW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1BsYXlp
bmcoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURP
TUNhbGxiYWNrTWljcm90YXNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01DYWxs
YmFja01pY3JvdGFzay5jcHAKaW5kZXggNjZmNTkwYTQ5NzVhZTk2ODNjNjFhMTYxNWYyOWJkMWRk
NzRhNzAwMi4uN2FhMjI2OWY0YzVmZTExNzMwODYzY2YyMTMyZmZmZDgyNjkyMmU2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwCkBA
IC0yOCw3ICsyOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQWN0aXZlRE9NQ2FsbGJh
Y2tNaWNyb3Rhc2s6OkFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrKE1pY3JvdGFza1F1ZXVlJiBx
dWV1ZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgRnVu
Y3Rpb248dm9pZCgpPiYmIHRhc2spCitBY3RpdmVET01DYWxsYmFja01pY3JvdGFzazo6QWN0aXZl
RE9NQ2FsbGJhY2tNaWNyb3Rhc2soTWljcm90YXNrUXVldWUmIHF1ZXVlLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBOb25jb3B5YWJsZUZ1bmN0aW9uPHZv
aWQoKT4mJiB0YXNrKQogICAgIDogQWN0aXZlRE9NQ2FsbGJhY2soJnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpCiAgICAgLCBtX3F1ZXVlKHF1ZXVlKQogICAgICwgbV90YXNrKFdURk1vdmUodGFzaykp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rh
c2suaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01DYWxsYmFja01pY3JvdGFzay5oCmlu
ZGV4IDhhN2Y3ZjYzNzA4MzNlYjA3NjJmMmNjZWUyNTZjMTFlMTc2ZmVlNjUuLmUxMWM0ZDA3YTRh
YWE1NGI5ZGZiM2IzMWQ0MTNjMTkyNTAwOGJjYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9BY3RpdmVET01DYWxsYmFja01pY3JvdGFzay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9BY3RpdmVET01DYWxsYmFja01pY3JvdGFzay5oCkBAIC0yNywxNCArMjcsMTQgQEAKIAogI2lu
Y2x1ZGUgIkFjdGl2ZURPTUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiTWljcm90YXNrcy5oIgotI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZUZ1bmN0aW9u
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWN0aXZlRE9NQ2FsbGJhY2tNaWNy
b3Rhc2sgZmluYWwgOiBwdWJsaWMgTWljcm90YXNrLCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQ
T1JUIEFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrKE1pY3JvdGFza1F1ZXVlJiwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIEZ1bmN0aW9uPHZvaWQoKT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQg
QWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2soTWljcm90YXNrUXVldWUmLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgTm9uY29weWFibGVGdW5jdGlvbjx2b2lkKCk+JiYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgfkFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrKCk7CiAKICAgICBSZXN1
bHQgcnVuKCkgb3ZlcnJpZGU7CkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gYmUg
YWNjZXNzZWQgdmlhIHRoZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCB3aGljaCBzaG91bGQgaG9s
ZCBhIHJlZmVyZW5jZSB0byB0aGUgcmVsZXZlbnQKICAgICAvLyBxdWV1ZS4KICAgICBNaWNyb3Rh
c2tRdWV1ZSYgbV9xdWV1ZTsKLSAgICBGdW5jdGlvbjx2b2lkKCk+IG1fdGFzazsKKyAgICBOb25j
b3B5YWJsZUZ1bmN0aW9uPHZvaWQoKT4gbV90YXNrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXgg
ZGU5OTI5Njg5ZjIyZjQ0MDVmNDMzNmE2Y2FhMjFmYzIyOGExZTI2MS4uZGQwYWIyMWUyMDYyNTU5
OTU5YjM3MjljOThmODhmODc4OTBhNDJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9D
b25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGVGdW5jdGlvbi5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEV4ZWNT
dGF0ZTsKQEAgLTEzMywyMCArMTMzLDIwIEBAIHB1YmxpYzoKICAgICBwdWJsaWM6CiAgICAgICAg
IGVudW0gQ2xlYW51cFRhc2tUYWcgeyBDbGVhbnVwVGFzayB9OwogCi0gICAgICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8IXN0ZDo6aXNf
YmFzZV9vZjxUYXNrLCBUPjo6dmFsdWUgJiYgc3RkOjppc19jb252ZXJ0aWJsZTxULCBGdW5jdGlv
bjx2b2lkIChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+Pjo6dmFsdWU+Ojp0eXBlPgorICAgICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lm
PCFzdGQ6OmlzX2Jhc2Vfb2Y8VGFzaywgVD46OnZhbHVlICYmIHN0ZDo6aXNfY29udmVydGlibGU8
VCwgTm9uY29weWFibGVGdW5jdGlvbjx2b2lkIChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+Pjo6
dmFsdWU+Ojp0eXBlPgogICAgICAgICBUYXNrKFQgdGFzaykKICAgICAgICAgICAgIDogbV90YXNr
KFdURk1vdmUodGFzaykpCiAgICAgICAgICAgICAsIG1faXNDbGVhbnVwVGFzayhmYWxzZSkKICAg
ICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgVGFzayhGdW5jdGlvbjx2b2lkICgpPiYmIHRh
c2spCisgICAgICAgIFRhc2soTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiYmIHRhc2spCiAg
ICAgICAgICAgICA6IG1fdGFzayhbdGFzayA9IFdURk1vdmUodGFzayldKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKSB7IHRhc2soKTsgfSkKICAgICAgICAgICAgICwgbV9pc0NsZWFudXBUYXNrKGZh
bHNlKQogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSA9IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfY29udmVydGlibGU8
VCwgRnVuY3Rpb248dm9pZCAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPj46OnZhbHVlPjo6dHlw
ZT4KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSB0eXBlbmFtZSBzdGQ6
OmVuYWJsZV9pZjxzdGQ6OmlzX2NvbnZlcnRpYmxlPFQsIE5vbmNvcHlhYmxlRnVuY3Rpb248dm9p
ZCAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPj46OnZhbHVlPjo6dHlwZT4KICAgICAgICAgVGFz
ayhDbGVhbnVwVGFza1RhZywgVCB0YXNrKQogICAgICAgICAgICAgOiBtX3Rhc2soV1RGTW92ZSh0
YXNrKSkKICAgICAgICAgICAgICwgbV9pc0NsZWFudXBUYXNrKHRydWUpCkBAIC0xNjMsNyArMTYz
LDcgQEAgcHVibGljOgogICAgICAgICBib29sIGlzQ2xlYW51cFRhc2soKSBjb25zdCB7IHJldHVy
biBtX2lzQ2xlYW51cFRhc2s7IH0KIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgRnVuY3Rpb248
dm9pZCAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiBtX3Rhc2s7CisgICAgICAgIE5vbmNvcHlh
YmxlRnVuY3Rpb248dm9pZCAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiBtX3Rhc2s7CiAgICAg
ICAgIGJvb2wgbV9pc0NsZWFudXBUYXNrOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvQXN5bmNGaWxlU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvQXN5bmNGaWxlU3RyZWFtLmNwcAppbmRleCBiMzI4N2VlZTFiNzgwYWEwYWNhZjQxYTNlNjFi
MzQzZDcxMzBlNGNkLi40YWU2YzgwY2UzNGU3OTRlNWVjNjJkNzgyYzU4MTI4ZjE3NmQyZWE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0FzeW5jRmlsZVN0cmVhbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3BwCkBAIC0zOSw3ICsz
OSw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTWVzc2Fn
ZVF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlRnVuY3Rpb24uaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC02NCwxMiArNjQsMTIgQEAgaW5saW5lIEFzeW5jRmlsZVN0
cmVhbTo6SW50ZXJuYWxzOjpJbnRlcm5hbHMoRmlsZVN0cmVhbUNsaWVudCYgY2xpZW50KQogI2Vu
ZGlmCiB9CiAKLXN0YXRpYyB2b2lkIGNhbGxPbkZpbGVUaHJlYWQoRnVuY3Rpb248dm9pZCAoKT4m
JiBmdW5jdGlvbikKK3N0YXRpYyB2b2lkIGNhbGxPbkZpbGVUaHJlYWQoTm9uY29weWFibGVGdW5j
dGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNZXNz
YWdlUXVldWU8RnVuY3Rpb248dm9pZCAoKT4+PiBxdWV1ZTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8TWVzc2FnZVF1ZXVlPE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4+PiBxdWV1ZTsK
IAogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBjcmVhdGVGaWxlVGhyZWFkT25jZTsKICAgICBz
dGQ6OmNhbGxfb25jZShjcmVhdGVGaWxlVGhyZWFkT25jZSwgW10gewpAQCAtOTAsNyArOTAsNyBA
QCBzdGF0aWMgdm9pZCBjYWxsT25GaWxlVGhyZWFkKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rp
b24pCiAgICAgICAgIH0pOwogICAgIH0pOwogCi0gICAgcXVldWUuZ2V0KCkuYXBwZW5kKHN0ZDo6
bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCAoKT4+KFdURk1vdmUoZnVuY3Rpb24pKSk7CisgICAg
cXVldWUuZ2V0KCkuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8Tm9uY29weWFibGVGdW5jdGlvbjx2
b2lkICgpPj4oV1RGTW92ZShmdW5jdGlvbikpKTsKIH0KIAogQXN5bmNGaWxlU3RyZWFtOjpBc3lu
Y0ZpbGVTdHJlYW0oRmlsZVN0cmVhbUNsaWVudCYgY2xpZW50KQpAQCAtMTE0LDcgKzExNCw3IEBA
IEFzeW5jRmlsZVN0cmVhbTo6fkFzeW5jRmlsZVN0cmVhbSgpCiAgICAgfSk7CiB9CiAKLXZvaWQg
QXN5bmNGaWxlU3RyZWFtOjpwZXJmb3JtKEZ1bmN0aW9uPHN0ZDo6ZnVuY3Rpb248dm9pZChGaWxl
U3RyZWFtQ2xpZW50Jik+KEZpbGVTdHJlYW0mKT4mJiBvcGVyYXRpb24pCit2b2lkIEFzeW5jRmls
ZVN0cmVhbTo6cGVyZm9ybShOb25jb3B5YWJsZUZ1bmN0aW9uPHN0ZDo6ZnVuY3Rpb248dm9pZChG
aWxlU3RyZWFtQ2xpZW50Jik+KEZpbGVTdHJlYW0mKT4mJiBvcGVyYXRpb24pCiB7CiAgICAgYXV0
byYgaW50ZXJuYWxzID0gKm1faW50ZXJuYWxzOwogICAgIGNhbGxPbkZpbGVUaHJlYWQoWyZpbnRl
cm5hbHMsIG9wZXJhdGlvbiA9IFdURk1vdmUob3BlcmF0aW9uKV0gewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvQXN5bmNGaWxlU3RyZWFtLmgKaW5kZXggMzVlODVhN2ExNWRlMzM5NzdjNzdlNzQ2YWJh
ZDMwOGExOWNlYmMyZS4uMDg4YmIzNzc0NmY0NzU5ODJkNDcwODRkZjUwNjFmMTk3NmM2OTJlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0FzeW5jRmlsZVN0cmVhbS5oCkBAIC0zNCw3ICszNCw3
IEBACiAKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0j
aW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlRnVuY3Rp
b24uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0KCk7Ci0gICAgdm9pZCBwZXJmb3JtKEZ1bmN0aW9u
PHN0ZDo6ZnVuY3Rpb248dm9pZChGaWxlU3RyZWFtQ2xpZW50Jik+KEZpbGVTdHJlYW0mKT4mJik7
CisgICAgdm9pZCBwZXJmb3JtKE5vbmNvcHlhYmxlRnVuY3Rpb248c3RkOjpmdW5jdGlvbjx2b2lk
KEZpbGVTdHJlYW1DbGllbnQmKT4oRmlsZVN0cmVhbSYpPiYmKTsKIAogICAgIHN0cnVjdCBJbnRl
cm5hbHM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFscz4gbV9pbnRlcm5hbHM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggOTVlYzc4MjhjZWFlYWQ0MWJmMmQ2OWQ4NjViYmU2
ZTUwNjYyM2U5Zi4uZjA1YmYxYTM5OTBkZjVmZDJjNmE3NzJjOTgxMDcxY2ZmNWY0MjNiZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzEzMyw3ICszMTMzLDcgQEAgdm9pZCBGcmFt
ZVZpZXc6OmZsdXNoQW55UGVuZGluZ1Bvc3RMYXlvdXRUYXNrcygpCiAgICAgICAgIHVwZGF0ZUVt
YmVkZGVkT2JqZWN0c1RpbWVyRmlyZWQoKTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnF1ZXVlUG9z
dExheW91dENhbGxiYWNrKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKK3ZvaWQgRnJhbWVW
aWV3OjpxdWV1ZVBvc3RMYXlvdXRDYWxsYmFjayhOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQoKT4m
JiBjYWxsYmFjaykKIHsKICAgICBtX3Bvc3RMYXlvdXRDYWxsYmFja1F1ZXVlLmFwcGVuZChXVEZN
b3ZlKGNhbGxiYWNrKSk7CiB9CkBAIC0zMTQ2LDcgKzMxNDYsNyBAQCB2b2lkIEZyYW1lVmlldzo6
Zmx1c2hQb3N0TGF5b3V0VGFza3NRdWV1ZSgpCiAgICAgaWYgKCFtX3Bvc3RMYXlvdXRDYWxsYmFj
a1F1ZXVlLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVmVjdG9yPEZ1bmN0aW9uPHZv
aWQoKT4+IHF1ZXVlID0gV1RGTW92ZShtX3Bvc3RMYXlvdXRDYWxsYmFja1F1ZXVlKTsKKyAgICBW
ZWN0b3I8Tm9uY29weWFibGVGdW5jdGlvbjx2b2lkKCk+PiBxdWV1ZSA9IFdURk1vdmUobV9wb3N0
TGF5b3V0Q2FsbGJhY2tRdWV1ZSk7CiAgICAgZm9yIChhdXRvJiB0YXNrIDogcXVldWUpCiAgICAg
ICAgIHRhc2soKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGU1OGNmNjJhNWI3NzE5
MmE2ODA4YWYwOTM3ZjVlNDAyOTVmZDUwYjMuLmY0NDQ5ZTUzNDhlNTg3MzIyMjA5YmNhNjY2ZDQx
YjZjMjgzMGRlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMzcsNyArMzcsNyBAQAog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNs
dWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGVGdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTEsNyArMTExLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2NoZWR1bGVSZWxheW91dCgpOwogICAgIHZvaWQgc2NoZWR1bGVSZWxheW91
dE9mU3VidHJlZShSZW5kZXJFbGVtZW50Jik7CiAgICAgdm9pZCB1bnNjaGVkdWxlUmVsYXlvdXQo
KTsKLSAgICB2b2lkIHF1ZXVlUG9zdExheW91dENhbGxiYWNrKEZ1bmN0aW9uPHZvaWQoKT4mJik7
CisgICAgdm9pZCBxdWV1ZVBvc3RMYXlvdXRDYWxsYmFjayhOb25jb3B5YWJsZUZ1bmN0aW9uPHZv
aWQoKT4mJik7CiAgICAgYm9vbCBsYXlvdXRQZW5kaW5nKCkgY29uc3Q7CiAgICAgYm9vbCBpc0lu
TGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRQaGFzZSAhPSBPdXRzaWRlTGF5b3V0OyB9
CiAgICAgYm9vbCBpc0luUmVuZGVyVHJlZUxheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0
UGhhc2UgPT0gSW5SZW5kZXJUcmVlTGF5b3V0OyB9CkBAIC04MjgsNyArODI4LDcgQEAgcHJpdmF0
ZToKICAgICBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3I7CiAK
ICAgICBJbnRSZWN0KiBtX2NhY2hlZFdpbmRvd0NsaXBSZWN0IHsgbnVsbHB0ciB9OwotICAgIFZl
Y3RvcjxGdW5jdGlvbjx2b2lkKCk+PiBtX3Bvc3RMYXlvdXRDYWxsYmFja1F1ZXVlOworICAgIFZl
Y3RvcjxOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQoKT4+IG1fcG9zdExheW91dENhbGxiYWNrUXVl
dWU7CiB9OwogCiBpbmxpbmUgdm9pZCBGcmFtZVZpZXc6OmluY3JlbWVudFZpc3VhbGx5Tm9uRW1w
dHlDaGFyYWN0ZXJDb3VudCh1bnNpZ25lZCBjb3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCmluZGV4IDczMGMwYTZiZDkzZjQ1Nzhk
MWVkYmY5YWNlMWNkODY1NjZlNmM5ODguLjU3NjA3ODNkYjhjZTAwMzVjOGVlNDA3OGE1NDVmNzA1
ZmY2MTJkZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVGhyZWFkLmNwcApAQCAtNDUsNyArNDUsNyBAQCBib29sIFNjcm9sbGluZ1RocmVhZDo6aXND
dXJyZW50VGhyZWFkKCkKICAgICByZXR1cm4gdGhyZWFkSWRlbnRpZmllciAmJiBjdXJyZW50VGhy
ZWFkKCkgPT0gdGhyZWFkSWRlbnRpZmllcjsKIH0KIAotdm9pZCBTY3JvbGxpbmdUaHJlYWQ6OmRp
c3BhdGNoKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCit2b2lkIFNjcm9sbGluZ1RocmVh
ZDo6ZGlzcGF0Y2goTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogewog
ICAgIGF1dG8mIHNjcm9sbGluZ1RocmVhZCA9IFNjcm9sbGluZ1RocmVhZDo6c2luZ2xldG9uKCk7
CiAgICAgc2Nyb2xsaW5nVGhyZWFkLmNyZWF0ZVRocmVhZElmTmVlZGVkKCk7CkBAIC01OCw3ICs1
OCw3IEBAIHZvaWQgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaChGdW5jdGlvbjx2b2lkICgpPiYm
IGZ1bmN0aW9uKQogICAgIHNjcm9sbGluZ1RocmVhZC53YWtlVXBSdW5Mb29wKCk7CiB9CiAKLXZv
aWQgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaEJhcnJpZXIoRnVuY3Rpb248dm9pZCAoKT4mJiBm
dW5jdGlvbikKK3ZvaWQgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaEJhcnJpZXIoTm9uY29weWFi
bGVGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogewogICAgIGRpc3BhdGNoKFtmdW5jdGlv
biA9IFdURk1vdmUoZnVuY3Rpb24pXSgpIG11dGFibGUgewogICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFdURk1vdmUoZnVuY3Rpb24pKTsKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIFNjcm9sbGlu
Z1RocmVhZDo6ZGlzcGF0Y2hGdW5jdGlvbnNGcm9tU2Nyb2xsaW5nVGhyZWFkKCkKIHsKICAgICBB
U1NFUlQoaXNDdXJyZW50VGhyZWFkKCkpOwogCi0gICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQgKCk+
PiBmdW5jdGlvbnM7CisgICAgVmVjdG9yPE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4+IGZ1
bmN0aW9uczsKICAgICAKICAgICB7CiAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2Nr
KG1fZnVuY3Rpb25zTXV0ZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUaHJlYWQuaAppbmRleCA1NTA5MDU1MWQ1NGJhM2ZkNWU1MTg2YWQ1ZmI2MzVmNDFh
Njc4NjBhLi4wMzdmOTViOTBiNjNhOWRlYjEzMWMzODFiZDlkMzI0OTk3YjU0MWVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuaApAQCAtMzMs
NyArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24u
aD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGVGdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTQ4LDExICs0OCwxMSBA
QCBjbGFzcyBTY3JvbGxpbmdUaHJlYWQgewogCiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXND
dXJyZW50VGhyZWFkKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZGlzcGF0Y2go
RnVuY3Rpb248dm9pZCAoKT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZGlz
cGF0Y2goTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiYmKTsKIAogICAgIC8vIFdpbGwgZGlz
cGF0Y2ggdGhlIGdpdmVuIGZ1bmN0aW9uIG9uIHRoZSBtYWluIHRocmVhZCBvbmNlIGFsbCBwZW5k
aW5nIGZ1bmN0aW9ucwogICAgIC8vIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkIGhhdmUgZmluaXNo
ZWQgZXhlY3V0aW5nLiBVc2VkIGZvciBzeW5jaHJvbml6YXRpb24gcHVycG9zZXMuCi0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZGlzcGF0Y2hCYXJyaWVyKEZ1bmN0aW9uPHZvaWQgKCk+
JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRpc3BhdGNoQmFycmllcihOb25j
b3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYpOwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBOZXZl
ckRlc3Ryb3llZDxTY3JvbGxpbmdUaHJlYWQ+OwpAQCAtODAsNyArODAsNyBAQCBwcml2YXRlOgog
ICAgIExvY2sgbV9pbml0aWFsaXplUnVuTG9vcE11dGV4OwogCiAgICAgTG9jayBtX2Z1bmN0aW9u
c011dGV4OwotICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkICgpPj4gbV9mdW5jdGlvbnM7CisgICAg
VmVjdG9yPE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4+IG1fZnVuY3Rpb25zOwogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1c2UgV2ViQ29yZTo6UnVu
TG9vcCBoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rh
c2tRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNw
cAppbmRleCAxYWE3ZTFiODc2M2ZmMWI0N2RmYjhlMjEzOTQwNzY0NWViNzU1ZWIyLi4wYzZjMjQz
YjhlMDhjYTEyYjg5NjZkOWZhYWNjZGU0MjIyZjkwMTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNwcApAQCAtMzYsNyArMzYsNyBAQCBUYXNrRGlzcGF0
Y2hlcjxUaW1lcj46OlRhc2tEaXNwYXRjaGVyKCkKIHsKIH0KIAotdm9pZCBUYXNrRGlzcGF0Y2hl
cjxUaW1lcj46OnBvc3RUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKK3ZvaWQgVGFz
a0Rpc3BhdGNoZXI8VGltZXI+Ojpwb3N0VGFzayhOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQoKT4m
JiBmdW5jdGlvbikKIHsKICAgICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQoV1RGTW92ZShmdW5jdGlv
bikpOwogICAgIHBlbmRpbmdEaXNwYXRjaGVycygpLmFwcGVuZChtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW5l
cmljVGFza1F1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVl
LmgKaW5kZXggZjUwYTM2MTM5ZjJmNzZlMDQ1Njc3YjY5ODU1YzA1ZjU1ZTQyYzYzMC4uNGQ4NWM5
YTBiMjE4NDk4YzY5NTE0NjE5MTA2ZDM4ZDA3OTk5MWFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaW5jbHVkZSAi
VGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24u
aD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGVGdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGlj
OgogICAgIHsKICAgICB9CiAKLSAgICB2b2lkIHBvc3RUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiBm
KQorICAgIHZvaWQgcG9zdFRhc2soTm9uY29weWFibGVGdW5jdGlvbjx2b2lkKCk+JiYgZikKICAg
ICB7CiAgICAgICAgIG1fY29udGV4dC5wb3N0VGFzayhXVEZNb3ZlKGYpKTsKICAgICB9CkBAIC01
Myw3ICs1Myw3IEBAIHRlbXBsYXRlPD4KIGNsYXNzIFRhc2tEaXNwYXRjaGVyPFRpbWVyPiB7CiBw
dWJsaWM6CiAgICAgVGFza0Rpc3BhdGNoZXIoKTsKLSAgICB2b2lkIHBvc3RUYXNrKEZ1bmN0aW9u
PHZvaWQoKT4mJik7CisgICAgdm9pZCBwb3N0VGFzayhOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQo
KT4mJik7CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIFRpbWVyJiBzaGFyZWRUaW1lcigpOwpAQCAt
NjMsNyArNjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hPbmVUYXNrKCk7CiAKICAg
ICBXZWFrUHRyRmFjdG9yeTxUYXNrRGlzcGF0Y2hlcj4gbV93ZWFrUHRyRmFjdG9yeTsKLSAgICBE
ZXF1ZTxGdW5jdGlvbjx2b2lkKCk+PiBtX3BlbmRpbmdUYXNrczsKKyAgICBEZXF1ZTxOb25jb3B5
YWJsZUZ1bmN0aW9uPHZvaWQoKT4+IG1fcGVuZGluZ1Rhc2tzOwogfTsKIAogdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAg
dHlwZWRlZiBGdW5jdGlvbjx2b2lkKCk+IFRhc2tGdW5jdGlvbjsKKyAgICB0eXBlZGVmIE5vbmNv
cHlhYmxlRnVuY3Rpb248dm9pZCgpPiBUYXNrRnVuY3Rpb247CiAKICAgICB2b2lkIGVucXVldWVU
YXNrKFRhc2tGdW5jdGlvbiYmIHRhc2spCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApp
bmRleCA5ODliMmVmMzU2ZjNkOTY4M2EyZjdkOGZiZDVkZTJlNjc5ZGU0N2Y3Li44NjlhNjhlOTg4
NmIyZDBiZjU5OGJlMzBhOTJkZGY2NDVkZTkzNzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4K
LSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGVGdW5j
dGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgogCkBAIC0xNDMsNyArMTQzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVRyYWNrcygp
OwogICAgIHZvaWQgcmVuZGVyaW5nTW9kZUNoYW5nZWQoKTsKIAotICAgIHZvaWQgc2NoZWR1bGVE
ZWZlcnJlZFRhc2soRnVuY3Rpb248dm9pZCAoKT4mJik7CisgICAgdm9pZCBzY2hlZHVsZURlZmVy
cmVkVGFzayhOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYpOwogCiAgICAgZW51bSBEaXNw
bGF5TW9kZSB7CiAgICAgICAgIE5vbmUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXgg
YWJmNDM3ZDM3MTY1ZmZlZTM2ZWIwN2QyY2FjNGZjZGI0ZDg1ZmY4MC4uODRjN2Q2MjMyNGY2NDcx
MWUxNjVlNTI0M2RmODhmMjFhNTBlZDdlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpA
QCAtNjI0LDcgKzYyNCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTCiAgICAgbV9wbGF5ZXIt
Pm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQgKCk+JiYg
ZnVuY3Rpb24pCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2No
ZWR1bGVEZWZlcnJlZFRhc2soTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9u
KQogewogICAgIEFTU0VSVChmdW5jdGlvbik7CiAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1Ro
aXMgPSBjcmVhdGVXZWFrUHRyKCksIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
UHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuY3BwCmluZGV4IDE4NzJjZDJjOGJjMzI5NTU4MzI2Y2ZmZjFkOTZmYTdlZDc1
YTgyMjguLmQ0OWQxNTEyMTM5NjM4ODY0OWRlMTU3YzMwNDcxNzQ5M2ViZmNjYmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmNwcApAQCAtMjk5LDcgKzI5OSw3IEBAIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRl
Ojp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKICAgICB9KTsKIH0KIAotdm9p
ZCBNZWRpYVN0cmVhbVByaXZhdGU6OnNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQg
KCk+JiYgZnVuY3Rpb24pCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJl
ZFRhc2soTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogewogICAgIEFT
U0VSVChmdW5jdGlvbik7CiAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBjcmVhdGVX
ZWFrUHRyKCksIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgK
aW5kZXggMjVjNGRiNGQzMzE1ZDU4NWNlYmI4MGY5YTE2MTlmOGQ0ZDJjYmMzMS4uOTIzMDRlZmJk
NjM0OWFjZjE5Njk3NTRmZjgyOGEwNmZhNDRjMGQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKQEAgLTQx
LDcgKzQxLDcgQEAKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgotI2luY2x1ZGUg
PHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZUZ1bmN0aW9uLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMTEyLDcgKzExMiw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CiAgICAgdm9pZCB1cGRhdGVBY3RpdmVWaWRlb1Ry
YWNrKCk7CiAKLSAgICB2b2lkIHNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQgKCk+
JiYpOworICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soTm9uY29weWFibGVGdW5jdGlvbjx2
b2lkICgpPiYmKTsKIAogICAgIFdlYWtQdHJGYWN0b3J5PE1lZGlhU3RyZWFtUHJpdmF0ZT4gbV93
ZWFrUHRyRmFjdG9yeTsKICAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2Fw
dHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
TWVkaWFDYXB0dXJlU291cmNlLmgKaW5kZXggNzRkN2ZmYzFmMjRmMDgxOTMyNDBmY2UwNjMxNzg1
YmQ2NDVmNmVhMC4uZjQ3NGFlYjliN2M3M2NiYzRjODM0YzJmMWVjOTJiNTg5YzE0NWM2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFD
YXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJH
ZW5lcmljVGFza1F1ZXVlLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2lu
Y2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIApAQCAtODYsNyArODYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBzZXRWaWRlb1NhbXBsZUJ1ZmZlckRlbGVnYXRlKEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1
dCopOwogICAgIHZvaWQgc2V0QXVkaW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZShBVkNhcHR1cmVBdWRp
b0RhdGFPdXRwdXQqKTsKIAotICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soRnVuY3Rpb248
dm9pZCAoKT4mJik7CisgICAgdm9pZCBzY2hlZHVsZURlZmVycmVkVGFzayhOb25jb3B5YWJsZUZ1
bmN0aW9uPHZvaWQgKCk+JiYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgc2V0dXBTZXNzaW9uKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZN
ZWRpYUNhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW0KaW5kZXggYzJkOTI4ZGViM2U2YjUwODk4ODI1
NmJjNTMzNzU3OWNkOWFmYzdmNC4uNzZhZmQ5YmJlNWEwN2U5YTc1OGFhNDViOGU3YzdlNjUxY2Jj
YjMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbQpAQCAtMjQwLDcgKzI0MCw3IEBA
IHZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnNldEF1ZGlvU2FtcGxlQnVmZmVyRGVsZWdhdGUo
QVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0CiAgICAgW2F1ZGlvT3V0cHV0IHNldFNhbXBsZUJ1ZmZl
ckRlbGVnYXRlOm1fb2JqY09ic2VydmVyLmdldCgpIHF1ZXVlOmdsb2JhQXVkaW9DYXB0dXJlU2Vy
aWFsUXVldWUoKV07CiB9CiAKLXZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnNjaGVkdWxlRGVm
ZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCit2b2lkIEFWTWVkaWFDYXB0
dXJlU291cmNlOjpzY2hlZHVsZURlZmVycmVkVGFzayhOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQg
KCk+JiYgZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsKICAgICBjYWxsT25NYWlu
VGhyZWFkKFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKSwgZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1
bmN0aW9uKV0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVz
b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCmlu
ZGV4IDI0YjQxMmM1MDczNGVhMGY0MTcxYzY2YTBlOWVmODg3ZWI1NTJhNjUuLmUxNzI1NjNkZGRj
NGNlYjI1ZDlmZGE2YTMwM2UyY2YwOTFiZjAwZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVRyZWVSZXNvbHZlci5jcHAKQEAgLTUyMSwxMyArNTIxLDEzIEBAIHN0ZDo6dW5pcXVlX3B0
cjxVcGRhdGU+IFRyZWVSZXNvbHZlcjo6cmVzb2x2ZShDaGFuZ2UgY2hhbmdlKQogICAgIHJldHVy
biBXVEZNb3ZlKG1fdXBkYXRlKTsKIH0KIAotc3RhdGljIFZlY3RvcjxGdW5jdGlvbjx2b2lkICgp
Pj4mIHBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tRdWV1ZSgpCitzdGF0aWMgVmVjdG9yPE5vbmNvcHlh
YmxlRnVuY3Rpb248dm9pZCAoKT4+JiBwb3N0UmVzb2x1dGlvbkNhbGxiYWNrUXVldWUoKQogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8RnVuY3Rpb248dm9pZCAoKT4+PiB2ZWN0
b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxOb25jb3B5YWJsZUZ1bmN0aW9u
PHZvaWQgKCk+Pj4gdmVjdG9yOwogICAgIHJldHVybiB2ZWN0b3I7CiB9CiAKLXZvaWQgcXVldWVQ
b3N0UmVzb2x1dGlvbkNhbGxiYWNrKEZ1bmN0aW9uPHZvaWQgKCk+JiYgY2FsbGJhY2spCit2b2lk
IHF1ZXVlUG9zdFJlc29sdXRpb25DYWxsYmFjayhOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+
JiYgY2FsbGJhY2spCiB7CiAgICAgcG9zdFJlc29sdXRpb25DYWxsYmFja1F1ZXVlKCkuYXBwZW5k
KFdURk1vdmUoY2FsbGJhY2spKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlVHJlZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNv
bHZlci5oCmluZGV4IDdjZDkxM2ZiMGEzMDgzNGFjZDc4NTRkZjk3MmRhZDMzZTExYWI5YjcuLjNj
ZTcwNDYyNjc0NWE5MzZlYjRjZGI1Yjk4YmE3NDA3NjA4YzE1MTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIlN0
eWxlVXBkYXRlLmgiCiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZUZ1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0xMTAsNyArMTEwLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXBk
YXRlPiBtX3VwZGF0ZTsKIH07CiAKLXZvaWQgcXVldWVQb3N0UmVzb2x1dGlvbkNhbGxiYWNrKEZ1
bmN0aW9uPHZvaWQgKCk+JiYpOwordm9pZCBxdWV1ZVBvc3RSZXNvbHV0aW9uQ2FsbGJhY2soTm9u
Y29weWFibGVGdW5jdGlvbjx2b2lkICgpPiYmKTsKIGJvb2wgcG9zdFJlc29sdXRpb25DYWxsYmFj
a3NBcmVTdXNwZW5kZWQoKTsKIAogYm9vbCBpc1BsYWNlaG9sZGVyU3R5bGUoY29uc3QgUmVuZGVy
U3R5bGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlU3luY01h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAK
aW5kZXggZWRjOWViMzNjNTAzNTUyMGFjNTQyZDM1ZDBhNWJjYTIyZjljNzZkMi4uZTFhNGExNWRk
ZDdmMzQ3MTYxZTQ0NDMzNzFmYzQ3YjcyMjY4Zjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9y
YWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgU3RyaW5nIFN0b3Jh
Z2VTeW5jTWFuYWdlcjo6ZnVsbERhdGFiYXNlRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBkYXRhYmFz
ZUlkZW50aWZpZXIKICAgICByZXR1cm4gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fcGF0aCwg
ZGF0YWJhc2VJZGVudGlmaWVyICsgIi5sb2NhbHN0b3JhZ2UiKTsKIH0KIAotdm9pZCBTdG9yYWdl
U3luY01hbmFnZXI6OmRpc3BhdGNoKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCit2b2lk
IFN0b3JhZ2VTeW5jTWFuYWdlcjo6ZGlzcGF0Y2goTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgp
PiYmIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJU
KG1fdGhyZWFkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlU3lu
Y01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuaApp
bmRleCA4OWU2YjQzM2E1MWU2M2RlZTM5ZDc4OWQxZDhlNWJhNWIzYjJkNmQwLi43NWE0ODZiNjIw
YzJiYjMxMmFlOGNkZjlkNTA2NGI0MDI2YmExZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdl
L1N0b3JhZ2VTeW5jTWFuYWdlci5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlIDxmdW5j
dGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
Lmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFN0b3JhZ2VTeW5jTWFuYWdlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCk7CiAgICAg
flN0b3JhZ2VTeW5jTWFuYWdlcigpOwogCi0gICAgdm9pZCBkaXNwYXRjaChGdW5jdGlvbjx2b2lk
ICgpPiYmKTsKKyAgICB2b2lkIGRpc3BhdGNoKE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4m
Jik7CiAgICAgdm9pZCBjbG9zZSgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0
b3JhZ2VUaHJlYWQuY3BwCmluZGV4IDBiNmVkMDc2ZmZmNTVhMTFkOTE2YmRlNTk5ZGNkNWJjMDFl
OGUxNjUuLjI5NjZlMDQwNmUxNzA0ZjIyMGM1MWMyNmRlNzhkMDgyMTQyNmM2MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAKQEAgLTc0LDExICs3NCwxMSBAQCB2b2lk
IFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnQoKQogICAgIH0KIH0KIAotdm9pZCBTdG9y
YWdlVGhyZWFkOjpkaXNwYXRjaChGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQordm9pZCBT
dG9yYWdlVGhyZWFkOjpkaXNwYXRjaChOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVu
Y3Rpb24pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoIW1fcXVl
dWUua2lsbGVkKCkgJiYgbV90aHJlYWRJRCk7Ci0gICAgbV9xdWV1ZS5hcHBlbmQoc3RkOjptYWtl
X3VuaXF1ZTxGdW5jdGlvbjx2b2lkICgpPj4oV1RGTW92ZShmdW5jdGlvbikpKTsKKyAgICBtX3F1
ZXVlLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4+
KFdURk1vdmUoZnVuY3Rpb24pKSk7CiB9CiAKIHZvaWQgU3RvcmFnZVRocmVhZDo6dGVybWluYXRl
KCkKQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBTdG9yYWdlVGhyZWFkOjp0ZXJtaW5hdGUoKQogICAg
IGlmICghbV90aHJlYWRJRCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9xdWV1ZS5hcHBlbmQo
c3RkOjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkICgpPj4oW3RoaXNdIHsKKyAgICBtX3F1ZXVl
LmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4+KFt0
aGlzXSB7CiAgICAgICAgIHBlcmZvcm1UZXJtaW5hdGUoKTsKICAgICB9KSk7CiAgICAgd2FpdEZv
clRocmVhZENvbXBsZXRpb24obV90aHJlYWRJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2UvU3RvcmFnZVRocmVhZC5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VU
aHJlYWQuaAppbmRleCAzZjFiODg0NWI2ZjNmZDdjZmU4NzE4MDJjZWE0N2QxMGNiMTQwODRlLi40
NzUyZDViMTllMWIwNmNhYTllN2VlZDg4NDRiNDlkNWYzZmNiZmEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZS9TdG9yYWdlVGhyZWFkLmgKQEAgLTI2LDkgKzI2LDEwIEBACiAjaWZuZGVmIFN0b3JhZ2VU
aHJlYWRfaAogI2RlZmluZSBTdG9yYWdlVGhyZWFkX2gKIAotI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bi5oPgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVlLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlRnVu
Y3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTQ1LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIGJvb2wgc3RhcnQoKTsKICAgICB2b2lk
IHRlcm1pbmF0ZSgpOwogCi0gICAgdm9pZCBkaXNwYXRjaChGdW5jdGlvbjx2b2lkICgpPiYmKTsK
KyAgICB2b2lkIGRpc3BhdGNoKE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJik7CiAKICAg
ICBzdGF0aWMgdm9pZCByZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnlJbkFsbFRocmVhZHMoKTsK
IApAQCAtNTgsNyArNTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVyZm9ybVRlcm1pbmF0ZSgp
OwogCiAgICAgVGhyZWFkSWRlbnRpZmllciBtX3RocmVhZElEOwotICAgIE1lc3NhZ2VRdWV1ZTxG
dW5jdGlvbjx2b2lkICgpPj4gbV9xdWV1ZTsKKyAgICBNZXNzYWdlUXVldWU8Tm9uY29weWFibGVG
dW5jdGlvbjx2b2lkICgpPj4gbV9xdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApp
bmRleCA3M2U1YWM5ZjUwZjdlMDE5ZGZjNTc1NWJmMWJkYzkwMzcxOGJlZjlkLi4zZmZkNTQxYzE0
YjY3NzdlYzYzZWQ0YWVjZTc5ZTc0YWVmMDAwZmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0zMDgsNyArMzA4LDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6ZGlkR3JhbnRTYW5kYm94RXh0ZW5zaW9uc1RvRGF0YWJhc2VQcm9j
ZXNzRm9yQmxvYnModWludDY0X3QKICAgICAgICAgaGFuZGxlcigpOwogfQogCi1zdGF0aWMgdm9p
ZCBmZXRjaERpc2tDYWNoZUVudHJpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgRnVuY3Rpb248dm9pZCAoVmVjdG9y
PFdlYnNpdGVEYXRhOjpFbnRyeT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorc3RhdGljIHZvaWQg
ZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIE5vbmNvcHlhYmxlRnVuY3Rpb248dm9p
ZCAoVmVjdG9yPFdlYnNpdGVEYXRhOjpFbnRyeT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
I2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIGlmIChOZXR3b3JrQ2FjaGU6OnNpbmdsZXRv
bigpLmlzRW5hYmxlZCgpKSB7CkBAIC0zNTIsNyArMzUyLDcgQEAgc3RhdGljIHZvaWQgZmV0Y2hE
aXNrQ2FjaGVFbnRyaWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0
YUZldGMKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgT3B0
aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgdWludDY0X3QgY2Fs
bGJhY2tJRCkKIHsKICAgICBzdHJ1Y3QgQ2FsbGJhY2tBZ2dyZWdhdG9yIGZpbmFsIDogcHVibGlj
IFJlZkNvdW50ZWQ8Q2FsbGJhY2tBZ2dyZWdhdG9yPiB7Ci0gICAgICAgIGV4cGxpY2l0IENhbGxi
YWNrQWdncmVnYXRvcihGdW5jdGlvbjx2b2lkIChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCisgICAgICAgIGV4cGxpY2l0IENhbGxiYWNrQWdncmVnYXRvcihOb25jb3B5YWJsZUZ1
bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICAgICAg
ICAgIDogbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAg
ICAgICAgewogICAgICAgICB9CkBAIC0zNjYsNyArMzY2LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGEKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKLSAgICAgICAgRnVuY3Rpb248dm9p
ZCAoV2Vic2l0ZURhdGEpPiBtX2NvbXBsZXRpb25IYW5kbGVyOworICAgICAgICBOb25jb3B5YWJs
ZUZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKICAgICAg
ICAgV2Vic2l0ZURhdGEgbV93ZWJzaXRlRGF0YTsKICAgICB9OwogCkBAIC00MTIsNyArNDEyLDcg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXQKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQog
Ci1zdGF0aWMgdm9pZCBjbGVhckRpc2tDYWNoZUVudHJpZXMoY29uc3QgVmVjdG9yPFNlY3VyaXR5
T3JpZ2luRGF0YT4mIG9yaWdpbnMsIEZ1bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCitzdGF0aWMgdm9pZCBjbGVhckRpc2tDYWNoZUVudHJpZXMoY29uc3QgVmVjdG9yPFNlY3Vy
aXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBpZiAo
TmV0d29ya0NhY2hlOjpzaW5nbGV0b24oKS5pc0VuYWJsZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggODEzM2MyMjEzYjM0MDNj
MmUxODRlNjNlNTM5NDViNWIwZDg0NzliNi4uNjUwNGU3NWE5ZGZkNjE0MzYwZTI1ZTE0MGUzOWRl
ZmYxNGY0NDlmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCkBAIC0zNSw4ICszNSw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRl
IDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGVGdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KIAogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCmluZGV4IGU0OTEzMWZjN2VhMzFhYzgyNjlh
NzJmNmY1YjU5OWViNjM3OThmMzIuLjA3Njc2MTgxMDk0OGMyYmMwYjhlYWJmMjAwMjVjMDI0Y2Mx
ZDVkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlLmNwcApAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQgQ2FjaGU6OnJlbW92ZShj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgcmVtb3ZlKG1ha2VD
YWNoZUtleShyZXF1ZXN0KSk7CiB9CiAKLXZvaWQgQ2FjaGU6OnRyYXZlcnNlKEZ1bmN0aW9uPHZv
aWQgKGNvbnN0IFRyYXZlcnNhbEVudHJ5Kik+JiYgdHJhdmVyc2VIYW5kbGVyKQordm9pZCBDYWNo
ZTo6dHJhdmVyc2UoTm9uY29weWFibGVGdW5jdGlvbjx2b2lkIChjb25zdCBUcmF2ZXJzYWxFbnRy
eSopPiYmIHRyYXZlcnNlSGFuZGxlcikKIHsKICAgICBBU1NFUlQoaXNFbmFibGVkKCkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGUuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5o
CmluZGV4IDJjNmI3YzI3MTIwZWViNGZkMzc4MzM4NjM3ODMxOWU2MzFkYmIyODMuLjhlMjNkYzE2
YmI5MTQ1ZTIxMzRjOGIzNWU5YmFhMjY5YmFhYzRkYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCkBAIC0zMiw3ICszMiw3IEBA
CiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlU3RvcmFnZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZVJl
c291cmNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVk
ZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlRnVuY3Rpb24uaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgRW50cnkmIGVudHJ5Owog
ICAgICAgICBjb25zdCBTdG9yYWdlOjpSZWNvcmRJbmZvJiByZWNvcmRJbmZvOwogICAgIH07Ci0g
ICAgdm9pZCB0cmF2ZXJzZShGdW5jdGlvbjx2b2lkIChjb25zdCBUcmF2ZXJzYWxFbnRyeSopPiYm
KTsKKyAgICB2b2lkIHRyYXZlcnNlKE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoY29uc3QgVHJh
dmVyc2FsRW50cnkqKT4mJik7CiAgICAgdm9pZCByZW1vdmUoY29uc3QgS2V5Jik7CiAgICAgdm9p
ZCByZW1vdmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5l
bFNvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlSU9DaGFubmVsU291cC5jcHAKaW5kZXggODRiOTQ5Nzk2ZjQ3ZTE1YjNjYmZlNGUyOTAzNjg3
NzEyZDFkNzliNi4uOGM5MWM5ZWM2NzU4ODIyYzZiMzBmNWZiNDBiODJjMWM2NDhkNGVmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
SU9DaGFubmVsU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgUmVmPElP
Q2hhbm5lbD4gSU9DaGFubmVsOjpvcGVuKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgsIElPQ2hhbm5l
bDo6VHlwZSB0eXBlKQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElPQ2hhbm5lbChmaWxlUGF0
aCwgdHlwZSkpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgcnVuVGFza0luUXVldWUoRnVuY3Rp
b248dm9pZCAoKT4mJiB0YXNrLCBXb3JrUXVldWUqIHF1ZXVlKQorc3RhdGljIGlubGluZSB2b2lk
IHJ1blRhc2tJblF1ZXVlKE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJiB0YXNrLCBXb3Jr
UXVldWUqIHF1ZXVlKQogewogICAgIGlmIChxdWV1ZSkgewogICAgICAgICBxdWV1ZS0+ZGlzcGF0
Y2goV1RGTW92ZSh0YXNrKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmgKaW5kZXggOTU3ZjQwZDVjOTkyY2Q1
MmZmZDk4N2JkYTRlNmVjNWYzNGQ3NjcxNy4uZTI1ZDM4YzY4Y2E1MDU5MjQ5MzBhOTc0Mjc4OWU1
MDFmZThkMmMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3RvcmFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaApAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1
ZGUgPHd0Zi9CbG9vbUZpbHRlci5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNs
dWRlIDx3dGYvV29ya1F1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBA
IC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICAgICAgU2hhcmVDb3VudCA9IDEgPDwgMSwKICAg
ICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgVHJhdmVyc2VGbGFnczsKLSAgICB0eXBlZGVmIEZ1
bmN0aW9uPHZvaWQgKGNvbnN0IFJlY29yZCosIGNvbnN0IFJlY29yZEluZm8mKT4gVHJhdmVyc2VI
YW5kbGVyOworICAgIHR5cGVkZWYgTm9uY29weWFibGVGdW5jdGlvbjx2b2lkIChjb25zdCBSZWNv
cmQqLCBjb25zdCBSZWNvcmRJbmZvJik+IFRyYXZlcnNlSGFuZGxlcjsKICAgICAvLyBOdWxsIHJl
Y29yZCBzaWduYWxzIGVuZC4KICAgICB2b2lkIHRyYXZlcnNlKGNvbnN0IFN0cmluZyYgdHlwZSwg
VHJhdmVyc2VGbGFncywgVHJhdmVyc2VIYW5kbGVyJiYpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>