<?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>172075</bug_id>
          
          <creation_ts>2017-05-13 13:30:48 -0700</creation_ts>
          <short_desc>REGRESSION(r216808): caused lldb to hang when debugging (Requested by smfr on #webkit).</short_desc>
          <delta_ts>2017-05-13 13:33:04 -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>171865</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1308332</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-13 13:30:48 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/216808 broke the build:
caused lldb to hang when debugging (Requested by smfr 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>1308334</commentid>
    <comment_count>1</comment_count>
      <attachid>310028</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-13 13:31:00 -0700</bug_when>
    <thetext>Created attachment 310028
ROLLOUT of r216808

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>1308335</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-05-13 13:31:20 -0700</bug_when>
    <thetext>rdar://problem/32178892</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308337</commentid>
    <comment_count>3</comment_count>
      <attachid>310028</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-13 13:33:02 -0700</bug_when>
    <thetext>Comment on attachment 310028
ROLLOUT of r216808

Clearing flags on attachment: 310028

Committed r216827: &lt;http://trac.webkit.org/changeset/216827&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308338</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-13 13:33:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310028</attachid>
            <date>2017-05-13 13:31:00 -0700</date>
            <delta_ts>2017-05-13 13:33:02 -0700</delta_ts>
            <desc>ROLLOUT of r216808</desc>
            <filename>bug-172075-20170513163059.patch</filename>
            <type>text/plain</type>
            <size>48383</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NGY4YjQxM2I5MWUwYjEzODdiZGYyMDY1ZGVlMmI1MWI4OTA1YmUzLi43Zjk2NGJmM2IxMDg0ZmI5
N2MyODVlYmZjNzRhMmFhOWRhZDIxNzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwxOSBAQAogMjAxNy0wNS0xMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CiAKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIxNjgwOC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjA3NQorCisgICAg
ICAgIGNhdXNlZCBsbGRiIHRvIGhhbmcgd2hlbiBkZWJ1Z2dpbmcgKFJlcXVlc3RlZCBieSBzbWZy
IG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKwor
ICAgICAgICAiVXNlIE1hY2ggZXhjZXB0aW9ucyBpbnN0ZWFkIG9mIHNpZ25hbHMgd2hlcmUgcG9z
c2libGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzE4NjUKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjE2ODA4CisK
KzIwMTctMDUtMTMgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTY4MDEuCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIwNzIKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAxNjg1MzE1NGI0
ZGJiZWFmODgyODBlZTliODY4YjUwYThmMjk0MjI1Li5kNTE5NTI1NDJhMjA1ZGQwM2U1M2ExNjVl
MmUzMTRlNGEyZjQ0ZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA1LTEzICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMjE2ODA4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcyMDc1CisKKyAgICAgICAgY2F1c2VkIGxsZGIgdG8gaGFuZyB3aGVuIGRl
YnVnZ2luZyAoUmVxdWVzdGVkIGJ5IHNtZnIgb24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAg
ICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJVc2UgTWFjaCBleGNlcHRpb25zIGlu
c3RlYWQgb2Ygc2lnbmFscyB3aGVyZSBwb3NzaWJsZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTg2NQorICAgICAgICBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8yMTY4MDgKKwogMjAxNy0wNS0xMiAgS2VpdGggTWlsbGVyICA8a2Vp
dGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgTWFjaCBleGNlcHRpb25zIGluc3Rl
YWQgb2Ygc2lnbmFscyB3aGVyZSBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKaW5kZXggZTUw
MjU3YzkzM2YyYmZiMDM3NjExZDg0MDc0YmJmN2VkODE3M2IwNC4uZDVlNTMyNDNiNzhkZjc1MTM0
MmFkOGQzOTBhNGIwNDEzZDllZWY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCkBAIC0zMCwxOCAr
MzAsMTAgQEAKICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgiCiAjaW5jbHVkZSAiSmF2
YVNjcmlwdENvcmUuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCi0KICNpbmNsdWRlIDxjaHJvbm8+
Ci0jaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9O
UykKLSNpbmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPgotI2VuZGlmCi0KIHVzaW5nIG5hbWVz
cGFjZSBzdGQ6OmNocm9ubzsKIHVzaW5nIEpTQzo6T3B0aW9uczsKIApAQCAtODUsMTUgKzc3LDYg
QEAgc3RhdGljIGJvb2wgZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGN0eCwg
dm9pZCopCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykK
LWJvb2wgZGlzcGF0Y2hUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9IGZhbHNlOwotc3RhdGljIGJv
b2wgZGlzcGF0Y2hUZXJtaXRhdGVDYWxsYmFjayhKU0NvbnRleHRSZWYsIHZvaWQqKQotewotICAg
IGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPSB0cnVlOwotICAgIHJldHVybiB0cnVl
OwotfQotI2VuZGlmCi0KIHN0cnVjdCBUaWVyT3B0aW9ucyB7CiAgICAgY29uc3QgY2hhciogdGll
cjsKICAgICB1bnNpZ25lZCB0aW1lTGltaXRBZGp1c3RtZW50TWlsbGlzOwpAQCAtMzgyLDY1ICsz
NjUsNiBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIAotI2lmIEhBVkUoTUFDSF9FWENFUFRJT05TKQotICAgICAgICAvKiBUZXN0IHNjcmlw
dCB0aW1lb3V0IGZyb20gZGlzcGF0Y2ggcXVldWU6ICovCi0gICAgICAgIHRpbWVMaW1pdCA9ICgx
MDAgKyB0aWVyQWRqdXN0bWVudE1pbGxpcykgLyAxMDAwLjA7Ci0gICAgICAgIEpTQ29udGV4dEdy
b3VwU2V0RXhlY3V0aW9uVGltZUxpbWl0KGNvbnRleHRHcm91cCwgdGltZUxpbWl0LCBkaXNwYXRj
aFRlcm1pdGF0ZUNhbGxiYWNrLCAwKTsKLSAgICAgICAgewotICAgICAgICAgICAgdW5zaWduZWQg
dGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQgPSAzMDAgKyB0aWVyQWRqdXN0bWVudE1p
bGxpczsKLQotICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVyOwotICAgICAg
ICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJmdW5jdGlvbiBmb28oKSB7IHZhciBz
dGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDA7IGkrKyk7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gIik7
Ci0gICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRv
Z1Nob3VsZEhhdmVGaXJlZCAvIDEwMDAuMCk7Ci0gICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFw
cGVuZExpdGVyYWwoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsKLQotICAgICAgICAgICAgSlNTdHJp
bmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRl
ci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVs
bHB0cjsKLSAgICAgICAgICAgIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPSBmYWxz
ZTsKLQotICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBkbyB0aGlzIHNpbmNlIGJsb2NrcyBjYW4g
b25seSBjYXB0dXJlIHRoaW5ncyBhcyBjb25zdC4KLSAgICAgICAgICAgIEpTR2xvYmFsQ29udGV4
dFJlZiYgY29udGV4dFJlZiA9IGNvbnRleHQ7Ci0gICAgICAgICAgICBKU1N0cmluZ1JlZiYgc2Ny
aXB0UmVmID0gc2NyaXB0OwotICAgICAgICAgICAgSlNWYWx1ZVJlZiYgZXhjZXB0aW9uUmVmID0g
ZXhjZXB0aW9uOwotCi0gICAgICAgICAgICBMb2NrIHN5bmNMb2NrOwotICAgICAgICAgICAgTG9j
ayYgc3luY0xvY2tSZWYgPSBzeW5jTG9jazsKLSAgICAgICAgICAgIENvbmRpdGlvbiBzeW5jaHJv
bml6ZTsKLSAgICAgICAgICAgIENvbmRpdGlvbiYgc3luY2hyb25pemVSZWYgPSBzeW5jaHJvbml6
ZTsKLSAgICAgICAgICAgIGJvb2wgZGlkU3luY2hyb25pemUgPSBmYWxzZTsKLSAgICAgICAgICAg
IGJvb2wmIGRpZFN5bmNocm9uaXplUmVmID0gZGlkU3luY2hyb25pemU7Ci0KLSAgICAgICAgICAg
IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgc3RhcnRUaW1lOwotICAgICAgICAgICAgc3RkOjpj
aHJvbm86Om1pY3Jvc2Vjb25kcyBlbmRUaW1lOwotCi0gICAgICAgICAgICBzdGQ6OmNocm9ubzo6
bWljcm9zZWNvbmRzJiBzdGFydFRpbWVSZWYgPSBzdGFydFRpbWU7Ci0gICAgICAgICAgICBzdGQ6
OmNocm9ubzo6bWljcm9zZWNvbmRzJiBlbmRUaW1lUmVmID0gZW5kVGltZTsKLQotICAgICAgICAg
ICAgZGlzcGF0Y2hfZ3JvdXBfdCBncm91cCA9IGRpc3BhdGNoX2dyb3VwX2NyZWF0ZSgpOwotICAg
ICAgICAgICAgZGlzcGF0Y2hfZ3JvdXBfYXN5bmMoZ3JvdXAsIGRpc3BhdGNoX2dldF9nbG9iYWxf
cXVldWUoMCwgMCksIF57Ci0gICAgICAgICAgICAgICAgc3RhcnRUaW1lUmVmID0gY3VycmVudENQ
VVRpbWUoKTsKLSAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHRSZWYsIHNj
cmlwdFJlZiwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvblJlZik7Ci0gICAgICAgICAg
ICAgICAgZW5kVGltZVJlZiA9IGN1cnJlbnRDUFVUaW1lKCk7Ci0gICAgICAgICAgICAgICAgYXV0
byBsb2NrZXIgPSBXVEY6OmhvbGRMb2NrKHN5bmNMb2NrUmVmKTsKLSAgICAgICAgICAgICAgICBk
aWRTeW5jaHJvbml6ZVJlZiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgc3luY2hyb25pemVSZWYu
bm90aWZ5QWxsKCk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhzeW5jTG9jayk7Ci0gICAgICAgICAgICBzeW5jaHJvbml6ZS53YWl0KHN5bmNM
b2NrLCBbJl0geyByZXR1cm4gZGlkU3luY2hyb25pemU7IH0pOwotCi0gICAgICAgICAgICBpZiAo
KChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IG1pbGxpc2Vjb25kcyh0aW1lQWZ0ZXJXYXRjaGRvZ1No
b3VsZEhhdmVGaXJlZCkpICYmIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQpCi0gICAg
ICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgdGlt
ZWQgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IG1pbGxp
c2Vjb25kcyh0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpCi0gICAgICAgICAgICAg
ICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIGRpZCBub3Qg
dGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAg
ICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAg
ICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSB0aW1lb3V0
IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAg
ICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotI2VuZGlm
Ci0KICAgICAgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShjb250ZXh0KTsKIAogICAgICAgICBP
cHRpb25zOjpzZXRPcHRpb25zKHNhdmVkT3B0aW9uc0J1aWxkZXIudG9TdHJpbmcoKS5hc2NpaSgp
LmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xv
Y2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAppbmRleCAz
MWUyZGI0MGIyMTZlYWEyYjExNDI0YjgwM2ZiN2Y5MWRkNGUyNjFmLi5jMTc1YWUwYzQ4MmVkMjdi
ZDVmNmJkYzg3OTY4ZTc1ZDQ1YWY1MGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0xvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTG9jay5jcHAKQEAgLTMwLDggKzMwLDYgQEAKICNpbmNsdWRlICJTYW1wbGluZ1Byb2ZpbGVy
LmgiCiAjaW5jbHVkZSAiV2FzbU1hY2hpbmVUaHJlYWRzLmgiCiAjaW5jbHVkZSA8dGhyZWFkPgot
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGhyZWFkcy9TaWduYWxz
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC0xNTAsMTAgKzE0OCw2IEBAIHZvaWQgSlNMb2Nr
OjpkaWRBY3F1aXJlTG9jaygpCiAgICAgV2FzbTo6c3RhcnRUcmFja2luZ0N1cnJlbnRUaHJlYWQo
KTsKICNlbmRpZgogCi0jaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCi0gICAgcmVnaXN0ZXJUaHJl
YWRGb3JNYWNoRXhjZXB0aW9uSGFuZGxpbmcoJlRocmVhZDo6Y3VycmVudCgpKTsKLSNlbmRpZgot
CiAgICAgbV92bS0+dHJhcHMoKS5ub3RpZnlHcmFiQWxsTG9ja3MoKTsKIAogI2lmIEVOQUJMRShT
QU1QTElOR19QUk9GSUxFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5j
cHAKaW5kZXggOWYxMmRmOTVjZDkwY2E5MDQ3ZDY2Y2IxNzZjZDBkY2UxMDM1OTE3Ni4uMzc1Nzc4
NjgyYWJmZjA1YWVjNTM0YTI1MmUwMTg2OGZjMzJlMjA1MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTQzLDcgKzQzLDYgQEAKICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLSNpbmNsdWRlIDx3dGYvdGhyZWFkcy9TaWduYWxz
Lmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlIDxjcnRfZXh0ZXJucy5oPgpAQCAt
MzU5LDEwICszNTgsNiBAQCBzdGF0aWMgdm9pZCBvdmVycmlkZURlZmF1bHRzKCkKICNpZiAhRU5B
QkxFKFdFQkFTU0VNQkxZX0ZBU1RfTUVNT1JZKQogICAgIE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5
RmFzdE1lbW9yeSgpID0gZmFsc2U7CiAjZW5kaWYKLQotI2lmICFIQVZFKE1BQ0hfRVhDRVBUSU9O
UykKLSAgICBPcHRpb25zOjp1c2VNYWNoRm9yRXhjZXB0aW9ucygpID0gZmFsc2U7Ci0jZW5kaWYK
IH0KIAogc3RhdGljIHZvaWQgcmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucygpCkBAIC01NTUsMTEg
KzU1MCw2IEBAIHZvaWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgpCiAKICAgICAgICAgICAgIGR1bXBP
cHRpb25zSWZOZWVkZWQoKTsKICAgICAgICAgICAgIGVuc3VyZU9wdGlvbnNBcmVDb2hlcmVudCgp
OwotCi0jaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCi0gICAgICAgICAgICBpZiAoT3B0aW9uczo6
dXNlTWFjaEZvckV4Y2VwdGlvbnMoKSkKLSAgICAgICAgICAgICAgICBoYW5kbGVTaWduYWxzV2l0
aE1hY2goKTsKLSNlbmRpZgogICAgICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oCmluZGV4IDkyMGJhMWUzODA1YTgzMTQyYjQwODRmMDRkYjkzNWZkM2My
NzVjNDUuLjcyOGEyNzM5ODU1NDg2N2NlNzM3YWQ0ZWM1OTZmMjlhN2I1ZWMwOTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAgLTQyMSw4ICs0MjEsNiBAQCB0eXBl
ZGVmIGNvbnN0IGNoYXIqIG9wdGlvblN0cmluZzsKICAgICB2KHVuc2lnbmVkLCB3YXRjaGRvZywg
MCwgTm9ybWFsLCAid2F0Y2hkb2cgdGltZW91dCAoMCA9IERpc2FibGVkLCBOID0gYSB0aW1lb3V0
IHBlcmlvZCBvZiBOIG1pbGxpc2Vjb25kcykiKSBcCiAgICAgdihib29sLCB1c2VQb2xsaW5nVHJh
cHMsIGZhbHNlLCBOb3JtYWwsICJ1c2UgcG9sbGluZyAoaW5zdGVhZCBvZiBzaWduYWxsaW5nKSBW
TSB0cmFwcyIpIFwKICAgICBcCi0gICAgdihib29sLCB1c2VNYWNoRm9yRXhjZXB0aW9ucywgdHJ1
ZSwgTm9ybWFsLCAiVXNlIG1hY2ggZXhjZXB0aW9ucyByYXRoZXIgdGhhbiBzaWduYWxzIHRvIGhh
bmRsZSBmYXVsdHMgYW5kIHBhc3MgdGhyZWFkIG1lc3NhZ2VzLiAoVGhpcyBkb2VzIG5vdGhpbmcg
b24gcGxhdGZvcm1zIHdpdGhvdXQgbWFjaCkiKSBcCi0gICAgXAogICAgIHYoYm9vbCwgdXNlSUNT
dGF0cywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIFwKICAgICB2KHVuc2lnbmVkLCBw
cm90b3R5cGVIaXRDb3VudEZvckxMSW50Q2FjaGluZywgMiwgTm9ybWFsLCAiTnVtYmVyIG9mIHBy
b3RvdHlwZSBwcm9wZXJ0eSBoaXRzIGJlZm9yZSBjYWNoaW5nIGEgcHJvdG90eXBlIGluIHRoZSBM
TEludC4gQSBjb3VudCBvZiAwIG1lYW5zIG5ldmVyIGNhY2hlLiIpIFwKQEAgLTQ0Niw3ICs0NDQs
NiBAQCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9wdGlvblN0cmluZzsKICAgICB2KHVuc2lnbmVkLCB3
ZWJBc3NlbWJseUJCUU9wdGltaXphdGlvbkxldmVsLCAxLCBOb3JtYWwsICJCMyBPcHRpbWl6YXRp
b24gbGV2ZWwgZm9yIEJCUSBXZWIgQXNzZW1ibHkgbW9kdWxlIGNvbXBpbGF0aW9ucy4iKSBcCiAg
ICAgdih1bnNpZ25lZCwgd2ViQXNzZW1ibHlPTUdPcHRpbWl6YXRpb25MZXZlbCwgT3B0aW9uczo6
ZGVmYXVsdEIzT3B0TGV2ZWwoKSwgTm9ybWFsLCAiQjMgT3B0aW1pemF0aW9uIGxldmVsIGZvciBP
TUcgV2ViIEFzc2VtYmx5IG1vZHVsZSBjb21waWxhdGlvbnMuIikgXAogICAgIFwKLSAgICB2KGJv
b2wsIHVzZUJCUVRpZXJVcENoZWNrcywgdHJ1ZSwgTm9ybWFsLCAiRW5hYmxlcyB0aWVyIHVwIGNo
ZWNrcyBmb3Igb3VyIEJCUSBjb2RlLiIpIFwKICAgICB2KHVuc2lnbmVkLCB3ZWJBc3NlbWJseU9N
R1RpZXJVcENvdW50LCA1MDAwLCBOb3JtYWwsICJUaGUgY291bnRkb3duIGJlZm9yZSB3ZSB0aWVy
IHVwIGEgZnVuY3Rpb24gdG8gT01HLiIpIFwKICAgICB2KHVuc2lnbmVkLCB3ZWJBc3NlbWJseUxv
b3BEZWNyZW1lbnQsIDE1LCBOb3JtYWwsICJUaGUgYW1vdW50IHRoZSB0aWVyIHVwIGNvdW50ZG93
biBpcyBkZWNyZW1lbnRlZCBvbiBlYWNoIGxvb3AgYmFja2VkZ2UuIikgXAogICAgIHYodW5zaWdu
ZWQsIHdlYkFzc2VtYmx5RnVuY3Rpb25FbnRyeURlY3JlbWVudCwgMSwgTm9ybWFsLCAiVGhlIGFt
b3VudCB0aGUgdGllciB1cCBjb3VudGRvd24gaXMgZGVjcmVtZW50ZWQgb24gZWFjaCBmdW5jdGlv
biBlbnRyeS4iKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TVRyYXBzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCmlu
ZGV4IDhjNTdjNDU2YWU0MzY4YWRmMjhlYTBhNjQ1OGU3YzAzOWE5NzBlZTkuLjFiYWFjZTYwNDRl
NjYwYThlNTQ0MWZiYWQwMThlYTkwOTMxYTRjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNVHJhcHMuY3BwCkBAIC01MywxMSArNTMsMTEgQEAgQUxXQVlTX0lOTElORSBWTSYg
Vk1UcmFwczo6dm0oKSBjb25zdAogI2lmIEVOQUJMRShTSUdOQUxfQkFTRURfVk1fVFJBUFMpCiAK
IHN0cnVjdCBTaWduYWxDb250ZXh0IHsKLSAgICBTaWduYWxDb250ZXh0KFBsYXRmb3JtUmVnaXN0
ZXJzJiByZWdpc3RlcnMpCi0gICAgICAgIDogcmVnaXN0ZXJzKHJlZ2lzdGVycykKLSAgICAgICAg
LCB0cmFwUEMoTWFjaGluZUNvbnRleHQ6Omluc3RydWN0aW9uUG9pbnRlcihyZWdpc3RlcnMpKQot
ICAgICAgICAsIHN0YWNrUG9pbnRlcihNYWNoaW5lQ29udGV4dDo6c3RhY2tQb2ludGVyKHJlZ2lz
dGVycykpCi0gICAgICAgICwgZnJhbWVQb2ludGVyKE1hY2hpbmVDb250ZXh0OjpmcmFtZVBvaW50
ZXIocmVnaXN0ZXJzKSkKKyAgICBTaWduYWxDb250ZXh0KG1jb250ZXh0X3QmIG1jb250ZXh0KQor
ICAgICAgICA6IG1jb250ZXh0KG1jb250ZXh0KQorICAgICAgICAsIHRyYXBQQyhNYWNoaW5lQ29u
dGV4dDo6aW5zdHJ1Y3Rpb25Qb2ludGVyKG1jb250ZXh0KSkKKyAgICAgICAgLCBzdGFja1BvaW50
ZXIoTWFjaGluZUNvbnRleHQ6OnN0YWNrUG9pbnRlcihtY29udGV4dCkpCisgICAgICAgICwgZnJh
bWVQb2ludGVyKE1hY2hpbmVDb250ZXh0OjpmcmFtZVBvaW50ZXIobWNvbnRleHQpKQogICAgIHsK
ICNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoWDg2KQogICAgICAgICAvLyBPbiBYODZfNjQsIFNJR1RS
QVAgcmVwb3J0cyB0aGUgYWRkcmVzcyBhZnRlciB0aGUgdHJhcHBpbmcgUEMuIFNvLCBkZWMgYnkg
MS4KQEAgLTY4LDExICs2OCwxMSBAQCBzdHJ1Y3QgU2lnbmFsQ29udGV4dCB7CiAgICAgdm9pZCBh
ZGp1c3RQQ1RvUG9pbnRUb1RyYXBwaW5nSW5zdHJ1Y3Rpb24oKQogICAgIHsKICNpZiBDUFUoWDg2
XzY0KSB8fCBDUFUoWDg2KQotICAgICAgICBNYWNoaW5lQ29udGV4dDo6aW5zdHJ1Y3Rpb25Qb2lu
dGVyKHJlZ2lzdGVycykgPSB0cmFwUEM7CisgICAgICAgIE1hY2hpbmVDb250ZXh0OjppbnN0cnVj
dGlvblBvaW50ZXIobWNvbnRleHQpID0gdHJhcFBDOwogI2VuZGlmCiAgICAgfQogCi0gICAgUGxh
dGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVyczsKKyAgICBtY29udGV4dF90JiBtY29udGV4dDsKICAg
ICB2b2lkKiB0cmFwUEM7CiAgICAgdm9pZCogc3RhY2tQb2ludGVyOwogICAgIHZvaWQqIGZyYW1l
UG9pbnRlcjsKQEAgLTEzMCw4ICsxMzAsOCBAQCBzdGF0aWMgRXhwZWN0ZWQ8Vk1BbmRTdGFja0Jv
dW5kcywgVk1UcmFwczo6RXJyb3I+IGZpbmRBY3RpdmVWTUFuZFN0YWNrQm91bmRzKFNpZwogCiBz
dGF0aWMgdm9pZCBpbnN0YWxsU2lnbmFsSGFuZGxlcigpCiB7Ci0gICAgaW5zdGFsbFNpZ25hbEhh
bmRsZXIoU2lnbmFsOjpUcmFwLCBbXSAoU2lnbmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1SZWdpc3Rl
cnMmIHJlZ2lzdGVycykgLT4gU2lnbmFsQWN0aW9uIHsKLSAgICAgICAgU2lnbmFsQ29udGV4dCBj
b250ZXh0KHJlZ2lzdGVycyk7CisgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpUcmFw
LCBbXSAoaW50LCBzaWdpbmZvX3QqLCB2b2lkKiB1YXApIC0+IFNpZ25hbEFjdGlvbiB7CisgICAg
ICAgIFNpZ25hbENvbnRleHQgY29udGV4dChzdGF0aWNfY2FzdDx1Y29udGV4dF90Kj4odWFwKS0+
dWNfbWNvbnRleHQpOwogCiAgICAgICAgIGlmICghaXNKSVRQQyhjb250ZXh0LnRyYXBQQykpCiAg
ICAgICAgICAgICByZXR1cm4gU2lnbmFsQWN0aW9uOjpOb3RIYW5kbGVkOwpAQCAtNDA0LDggKzQw
NCw4IEBAIHZvaWQgVk1UcmFwczo6U2lnbmFsU2VuZGVyOjpzZW5kKCkKICAgICAgICAgICAgIFZN
JiB2bSA9ICptX3ZtOwogICAgICAgICAgICAgYXV0byBvcHRpb25hbE93bmVyVGhyZWFkID0gdm0u
b3duZXJUaHJlYWQoKTsKICAgICAgICAgICAgIGlmIChvcHRpb25hbE93bmVyVGhyZWFkKSB7Ci0g
ICAgICAgICAgICAgICAgc2VuZE1lc3NhZ2UoKm9wdGlvbmFsT3duZXJUaHJlYWQudmFsdWUoKS5n
ZXQoKSwgW10gKFBsYXRmb3JtUmVnaXN0ZXJzJiByZWdpc3RlcnMpIC0+IHZvaWQgewotICAgICAg
ICAgICAgICAgICAgICBTaWduYWxDb250ZXh0IGNvbnRleHQocmVnaXN0ZXJzKTsKKyAgICAgICAg
ICAgICAgICBzZW5kTWVzc2FnZSgqb3B0aW9uYWxPd25lclRocmVhZC52YWx1ZSgpLmdldCgpLCBb
XSAoc2lnaW5mb190KiwgdWNvbnRleHRfdCogdWNvbnRleHQpIC0+IHZvaWQgeworICAgICAgICAg
ICAgICAgICAgICBTaWduYWxDb250ZXh0IGNvbnRleHQodWNvbnRleHQtPnVjX21jb250ZXh0KTsK
ICAgICAgICAgICAgICAgICAgICAgYXV0byBhY3RpdmVWTUFuZFN0YWNrQm91bmRzID0gZmluZEFj
dGl2ZVZNQW5kU3RhY2tCb3VuZHMoY29udGV4dCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChh
Y3RpdmVWTUFuZFN0YWNrQm91bmRzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBWTSogdm0g
PSBhY3RpdmVWTUFuZFN0YWNrQm91bmRzLnZhbHVlKCkudm07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAKaW5kZXggNzFhNmU0MjU1
YzY0NWRkNmFmM2JkYjI1MGNjZjEzYWQ4YzFhOGE0NC4uNGFkYWVmZjFjZGEyZDFmYmM2ZjkwNjFm
MDYzZTE0ZDJlNjMzMDA0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29s
cy9TaWdpbGxDcmFzaEFuYWx5emVyLmNwcApAQCAtNzgsMTEgKzc4LDExIEBAIHByaXZhdGU6CiAj
ZW5kaWYgLy8gVVNFKE9TX0xPRykKIAogc3RydWN0IFNpZ25hbENvbnRleHQgewotICAgIFNpZ25h
bENvbnRleHQoUGxhdGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVycykKLSAgICAgICAgOiByZWdpc3Rl
cnMocmVnaXN0ZXJzKQotICAgICAgICAsIG1hY2hpbmVQQyhNYWNoaW5lQ29udGV4dDo6aW5zdHJ1
Y3Rpb25Qb2ludGVyKHJlZ2lzdGVycykpCi0gICAgICAgICwgc3RhY2tQb2ludGVyKE1hY2hpbmVD
b250ZXh0OjpzdGFja1BvaW50ZXIocmVnaXN0ZXJzKSkKLSAgICAgICAgLCBmcmFtZVBvaW50ZXIo
TWFjaGluZUNvbnRleHQ6OmZyYW1lUG9pbnRlcihyZWdpc3RlcnMpKQorICAgIFNpZ25hbENvbnRl
eHQobWNvbnRleHRfdCYgbWNvbnRleHQpCisgICAgICAgIDogbWNvbnRleHQobWNvbnRleHQpCisg
ICAgICAgICwgbWFjaGluZVBDKE1hY2hpbmVDb250ZXh0OjppbnN0cnVjdGlvblBvaW50ZXIobWNv
bnRleHQpKQorICAgICAgICAsIHN0YWNrUG9pbnRlcihNYWNoaW5lQ29udGV4dDo6c3RhY2tQb2lu
dGVyKG1jb250ZXh0KSkKKyAgICAgICAgLCBmcmFtZVBvaW50ZXIoTWFjaGluZUNvbnRleHQ6OmZy
YW1lUG9pbnRlcihtY29udGV4dCkpCiAgICAgeyB9CiAKICAgICB2b2lkIGR1bXAoKQpAQCAtMTEy
LDcgKzExMiw3IEBAIHN0cnVjdCBTaWduYWxDb250ZXh0IHsKICAgICAgICAgdihncykKIAogI2Rl
ZmluZSBEVU1QX1JFR0lTVEVSKF9fcmVnKSBcCi0gICAgICAgIGxvZygiUmVnaXN0ZXIgIiAjX19y
ZWcgIjogJXAiLCByZWludGVycHJldF9jYXN0PHZvaWQqPihyZWdpc3RlcnMuX18jI19fcmVnKSk7
CisgICAgICAgIGxvZygiUmVnaXN0ZXIgIiAjX19yZWcgIjogJXAiLCByZWludGVycHJldF9jYXN0
PHZvaWQqPihtY29udGV4dC0+X19zcy5fXyMjX19yZWcpKTsKICAgICAgICAgRk9SX0VBQ0hfUkVH
SVNURVIoRFVNUF9SRUdJU1RFUikKICN1bmRlZiBGT1JfRUFDSF9SRUdJU1RFUgogCkBAIC0xMjAs
MjAgKzEyMCwyMCBAQCBzdHJ1Y3QgU2lnbmFsQ29udGV4dCB7CiAgICAgICAgIGludCBpOwogICAg
ICAgICBmb3IgKGkgPSAwOyBpIDwgMjg7IGkgKz0gNCkgewogICAgICAgICAgICAgbG9nKCJ4JWQ6
ICUwMTZsbHggeCVkOiAlMDE2bGx4IHglZDogJTAxNmxseCB4JWQ6ICUwMTZsbHgiLAotICAgICAg
ICAgICAgICAgIGksIHJlZ2lzdGVycy5fX3hbaV0sCi0gICAgICAgICAgICAgICAgaSsxLCByZWdp
c3RlcnMuX194W2krMV0sCi0gICAgICAgICAgICAgICAgaSsyLCByZWdpc3RlcnMuX194W2krMl0s
Ci0gICAgICAgICAgICAgICAgaSszLCByZWdpc3RlcnMuX194W2krM10pOworICAgICAgICAgICAg
ICAgIGksIG1jb250ZXh0LT5fX3NzLl9feFtpXSwKKyAgICAgICAgICAgICAgICBpKzEsIG1jb250
ZXh0LT5fX3NzLl9feFtpKzFdLAorICAgICAgICAgICAgICAgIGkrMiwgbWNvbnRleHQtPl9fc3Mu
X194W2krMl0sCisgICAgICAgICAgICAgICAgaSszLCBtY29udGV4dC0+X19zcy5fX3hbaSszXSk7
CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUKGkgPCAyOSk7CiAgICAgICAgIGxvZygieCVkOiAl
MDE2bGx4IGZwOiAlMDE2bGx4IGxyOiAlMDE2bGx4IiwKLSAgICAgICAgICAgIGksIHJlZ2lzdGVy
cy5fX3hbaV0sIHJlZ2lzdGVycy5fX2ZwLCByZWdpc3RlcnMuX19scik7CisgICAgICAgICAgICBp
LCBtY29udGV4dC0+X19zcy5fX3hbaV0sIG1jb250ZXh0LT5fX3NzLl9fZnAsIG1jb250ZXh0LT5f
X3NzLl9fbHIpOwogICAgICAgICBsb2coInNwOiAlMDE2bGx4IHBjOiAlMDE2bGx4IGNwc3I6ICUw
OHgiLAotICAgICAgICAgICAgcmVnaXN0ZXJzLl9fc3AsIHJlZ2lzdGVycy5fX3BjLCByZWdpc3Rl
cnMuX19jcHNyKTsKKyAgICAgICAgICAgIG1jb250ZXh0LT5fX3NzLl9fc3AsIG1jb250ZXh0LT5f
X3NzLl9fcGMsIG1jb250ZXh0LT5fX3NzLl9fY3Bzcik7CiAjZW5kaWYKICAgICB9CiAKLSAgICBQ
bGF0Zm9ybVJlZ2lzdGVycyYgcmVnaXN0ZXJzOworICAgIG1jb250ZXh0X3QmIG1jb250ZXh0Owog
ICAgIHZvaWQqIG1hY2hpbmVQQzsKICAgICB2b2lkKiBzdGFja1BvaW50ZXI7CiAgICAgdm9pZCog
ZnJhbWVQb2ludGVyOwpAQCAtMTQyLDggKzE0Miw4IEBAIHN0cnVjdCBTaWduYWxDb250ZXh0IHsK
IHN0YXRpYyB2b2lkIGluc3RhbGxDcmFzaEhhbmRsZXIoKQogewogI2lmIENQVShYODZfNjQpIHx8
IENQVShBUk02NCkKLSAgICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OklsbCwgW10gKFNp
Z25hbCwgU2lnSW5mbyYsIFBsYXRmb3JtUmVnaXN0ZXJzJiByZWdpc3RlcnMpIHsKLSAgICAgICAg
U2lnbmFsQ29udGV4dCBjb250ZXh0KHJlZ2lzdGVycyk7CisgICAgaW5zdGFsbFNpZ25hbEhhbmRs
ZXIoU2lnbmFsOjpJbGwsIFtdIChpbnQsIHNpZ2luZm9fdCosIHZvaWQqIHVhcCkgeworICAgICAg
ICBTaWduYWxDb250ZXh0IGNvbnRleHQoc3RhdGljX2Nhc3Q8dWNvbnRleHRfdCo+KHVhcCktPnVj
X21jb250ZXh0KTsKIAogICAgICAgICBpZiAoIWlzSklUUEMoY29udGV4dC5tYWNoaW5lUEMpKQog
ICAgICAgICAgICAgcmV0dXJuIFNpZ25hbEFjdGlvbjo6Tm90SGFuZGxlZDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAppbmRleCBiMWI1OThkMjBjNWMwMDc3ZDll
OWQwOGUzNjhhZDVjYTE3ODMxYmFmLi4xZGQwY2QxZDgzNWM2YzJmMjMxYjAwYjg4NmRkZTRhZjcy
YzI2M2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxh
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCkBA
IC0yNDIsNyArMjQyLDcgQEAgdm9pZCBCQlFQbGFuOjpjb21waWxlRnVuY3Rpb25zKENvbXBpbGF0
aW9uRWZmb3J0IGVmZm9ydCkKICAgICAgICAgQVNTRVJUKHZhbGlkYXRlRnVuY3Rpb24oZnVuY3Rp
b25TdGFydCwgZnVuY3Rpb25MZW5ndGgsIHNpZ25hdHVyZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi5n
ZXQoKSkpOwogCiAgICAgICAgIG1fdW5saW5rZWRXYXNtVG9XYXNtQ2FsbHNbZnVuY3Rpb25JbmRl
eF0gPSBWZWN0b3I8VW5saW5rZWRXYXNtVG9XYXNtQ2FsbD4oKTsKLSAgICAgICAgVGllclVwQ291
bnQqIHRpZXJVcCA9IE9wdGlvbnM6OnVzZUJCUVRpZXJVcENoZWNrcygpID8gJm1fdGllclVwQ291
bnRzW2Z1bmN0aW9uSW5kZXhdIDogbnVsbHB0cjsKKyAgICAgICAgVGllclVwQ291bnQqIHRpZXJV
cCA9ICZtX3RpZXJVcENvdW50c1tmdW5jdGlvbkluZGV4XTsKICAgICAgICAgYXV0byBwYXJzZUFu
ZENvbXBpbGVSZXN1bHQgPSBwYXJzZUFuZENvbXBpbGUobV9jb21waWxhdGlvbkNvbnRleHRzW2Z1
bmN0aW9uSW5kZXhdLCBmdW5jdGlvblN0YXJ0LCBmdW5jdGlvbkxlbmd0aCwgc2lnbmF0dXJlLCBt
X3VubGlua2VkV2FzbVRvV2FzbUNhbGxzW2Z1bmN0aW9uSW5kZXhdLCBtX21vZHVsZUluZm9ybWF0
aW9uLmdldCgpLCBtX21vZGUsIENvbXBpbGF0aW9uTW9kZTo6QkJRTW9kZSwgZnVuY3Rpb25JbmRl
eCwgdGllclVwKTsKIAogICAgICAgICBpZiAoVU5MSUtFTFkoIXBhcnNlQW5kQ29tcGlsZVJlc3Vs
dCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GYXVsdFNp
Z25hbEhhbmRsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2ln
bmFsSGFuZGxlci5jcHAKaW5kZXggMjY0YzM0ZGU0NWRhMTc1YTVkNTE0MWMxNzFlZmU5NWUwNjNj
NWUyNy4uMmUwYzk5YTM5YmViZDMxNzhiOTE0OGQ5NThmZTUzZTU3YTYyMjk3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5j
cHAKQEAgLTUyLDggKzUyLDkgQEAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxIYXNoU2V0PHN0
ZDo6dHVwbGU8dm9pZCosIHZvaWQqPj4+IGNvZGVMb2NhdGlvbnM7IC8vICgKIAogc3RhdGljIGJv
b2wgZmFzdEhhbmRsZXJJbnN0YWxsZWQgeyBmYWxzZSB9OwogCi1zdGF0aWMgU2lnbmFsQWN0aW9u
IHRyYXBIYW5kbGVyKFNpZ25hbCwgU2lnSW5mbyYgc2lnSW5mbywgUGxhdGZvcm1SZWdpc3RlcnMm
IGNvbnRleHQpCitzdGF0aWMgU2lnbmFsQWN0aW9uIHRyYXBIYW5kbGVyKGludCwgc2lnaW5mb190
KiBzaWdJbmZvLCB2b2lkKiB1Y29udGV4dCkKIHsKKyAgICBtY29udGV4dF90JiBjb250ZXh0ID0g
c3RhdGljX2Nhc3Q8dWNvbnRleHRfdCo+KHVjb250ZXh0KS0+dWNfbWNvbnRleHQ7CiAgICAgdm9p
ZCogZmF1bHRpbmdJbnN0cnVjdGlvbiA9IE1hY2hpbmVDb250ZXh0OjppbnN0cnVjdGlvblBvaW50
ZXIoY29udGV4dCk7CiAgICAgZGF0YUxvZ0xuSWYodmVyYm9zZSwgInN0YXJ0aW5nIGhhbmRsZXIg
Zm9yIGZhdWx0IGF0OiAiLCBSYXdQb2ludGVyKGZhdWx0aW5nSW5zdHJ1Y3Rpb24pKTsKIApAQCAt
NjMsNyArNjQsNyBAQCBzdGF0aWMgU2lnbmFsQWN0aW9uIHRyYXBIYW5kbGVyKFNpZ25hbCwgU2ln
SW5mbyYgc2lnSW5mbywgUGxhdGZvcm1SZWdpc3RlcnMmIGNvbgogICAgIGlmIChpc0pJVFBDKGZh
dWx0aW5nSW5zdHJ1Y3Rpb24pKSB7CiAgICAgICAgIGJvb2wgZmF1bHRlZEluQWN0aXZlRmFzdE1l
bW9yeSA9IGZhbHNlOwogICAgICAgICB7Ci0gICAgICAgICAgICB2b2lkKiBmYXVsdGluZ0FkZHJl
c3MgPSBzaWdJbmZvLmZhdWx0aW5nQWRkcmVzczsKKyAgICAgICAgICAgIHZvaWQqIGZhdWx0aW5n
QWRkcmVzcyA9IHNpZ0luZm8tPnNpX2FkZHI7CiAgICAgICAgICAgICBkYXRhTG9nTG5JZih2ZXJi
b3NlLCAiY2hlY2tpbmcgZmF1bHRpbmcgYWRkcmVzczogIiwgUmF3UG9pbnRlcihmYXVsdGluZ0Fk
ZHJlc3MpLCAiIGlzIGluIGFuIGFjdGl2ZSBmYXN0IG1lbW9yeSIpOwogICAgICAgICAgICAgZmF1
bHRlZEluQWN0aXZlRmFzdE1lbW9yeSA9IFdhc206Ok1lbW9yeTo6YWRkcmVzc0lzSW5BY3RpdmVG
YXN0TWVtb3J5KGZhdWx0aW5nQWRkcmVzcyk7CiAgICAgICAgIH0KQEAgLTEyMywxMSArMTI0LDEx
IEBAIHZvaWQgZW5hYmxlRmFzdE1lbW9yeSgpCiAgICAgICAgICAgICByZXR1cm47CiAKICNpZiBF
TkFCTEUoV0VCQVNTRU1CTFlfRkFTVF9NRU1PUlkpCi0gICAgICAgIGluc3RhbGxTaWduYWxIYW5k
bGVyKFNpZ25hbDo6QnVzLCBbXSAoU2lnbmFsIHNpZ25hbCwgU2lnSW5mbyYgc2lnSW5mbywgUGxh
dGZvcm1SZWdpc3RlcnMmIHVjb250ZXh0KSB7CisgICAgICAgIGluc3RhbGxTaWduYWxIYW5kbGVy
KFNpZ25hbDo6QnVzLCBbXSAoaW50IHNpZ25hbCwgc2lnaW5mb190KiBzaWdJbmZvLCB2b2lkKiB1
Y29udGV4dCkgewogICAgICAgICAgICAgcmV0dXJuIHRyYXBIYW5kbGVyKHNpZ25hbCwgc2lnSW5m
bywgdWNvbnRleHQpOwogICAgICAgICB9KTsKIAotICAgICAgICBpbnN0YWxsU2lnbmFsSGFuZGxl
cihTaWduYWw6OlNlZ1YsIFtdIChTaWduYWwgc2lnbmFsLCBTaWdJbmZvJiBzaWdJbmZvLCBQbGF0
Zm9ybVJlZ2lzdGVycyYgdWNvbnRleHQpIHsKKyAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIo
U2lnbmFsOjpTZWdWLCBbXSAoaW50IHNpZ25hbCwgc2lnaW5mb190KiBzaWdJbmZvLCB2b2lkKiB1
Y29udGV4dCkgewogICAgICAgICAgICAgcmV0dXJuIHRyYXBIYW5kbGVyKHNpZ25hbCwgc2lnSW5m
bywgdWNvbnRleHQpOwogICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU1hY2hpbmVUaHJlYWRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21NYWNoaW5lVGhyZWFkcy5jcHAKaW5kZXggMGEzNjdmZDVlMjI1MjdlOWMzYzg3
NTM2ZWNmZDcyYjEzZGY3OWQ1Yi4uNWFhYzg3YWNiNTc0N2M3ZmNhMmY5MzZlYzljZjY3OGI0MzE3
ODE3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1hY2hpbmVU
aHJlYWRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWFjaGluZVRo
cmVhZHMuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiTWFjaGluZVN0YWNrTWFya2Vy
LmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZE1lc3NhZ2UuaD4KLSNpbmNsdWRlIDx3dGYvdGhyZWFkcy9TaWduYWxzLmg+CiAKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKQEAgLTU4LDcgKzU3LDcgQEAgdm9pZCByZXNldElu
c3RydWN0aW9uQ2FjaGVPbkFsbFRocmVhZHMoKQogCiAgICAgY29uc3QgRG91Ymx5TGlua2VkTGlz
dDxNYWNoaW5lVGhyZWFkczo6TWFjaGluZVRocmVhZD4mIHRocmVhZHMgPSB3YXNtVGhyZWFkcygp
LnRocmVhZHNMaXN0SGVhZChsb2NrZXIpOwogICAgIGZvciAoY29uc3QgYXV0byogdGhyZWFkID0g
dGhyZWFkcy5oZWFkKCk7IHRocmVhZDsgdGhyZWFkID0gdGhyZWFkLT5uZXh0KCkpIHsKLSAgICAg
ICAgc2VuZE1lc3NhZ2UodGhyZWFkLT5tX3RocmVhZC5nZXQoKSwgW10gKGNvbnN0IFBsYXRmb3Jt
UmVnaXN0ZXJzJikgeworICAgICAgICBzZW5kTWVzc2FnZSh0aHJlYWQtPm1fdGhyZWFkLmdldCgp
LCBbXSAoc2lnaW5mb190KiwgdWNvbnRleHRfdCopIHsKICAgICAgICAgICAgIC8vIEl0J3MgbGlr
ZWx5IHRoYXQgdGhlIHNpZ25hbCBoYW5kbGVyIHdpbGwgYWxyZWFkeSByZXNldCB0aGUgaW5zdHJ1
Y3Rpb24gY2FjaGUgYnV0IHdlIG1pZ2h0IGFzIHdlbGwgYmUgc3VyZS4KICAgICAgICAgICAgIFdU
Rjo6Y3Jvc3NNb2RpZnlpbmdDb2RlRmVuY2UoKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL0NvbmZpZ3VyYXRpb25zL1dURi54Y2NvbmZpZyBiL1NvdXJjZS9XVEYvQ29uZmln
dXJhdGlvbnMvV1RGLnhjY29uZmlnCmluZGV4IGFmMTk5Y2ViOTUwNmY4OTUwZDMzYTljZTQ4MDdi
YTZkYmI3YjI3ZTUuLjQyMWVmZDk2MWMxNDY4Y2QyMGRkYzViYmY4ODk2MjBlZTFjZjU4ZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ29uZmlndXJhdGlvbnMvV1RGLnhjY29uZmlnCisrKyBiL1Nv
dXJjZS9XVEYvQ29uZmlndXJhdGlvbnMvV1RGLnhjY29uZmlnCkBAIC0yNyw2ICsyNywzIEBAIFBS
T0RVQ1RfTkFNRSA9IFdURjsKIAogR0NDX1NZTUJPTFNfUFJJVkFURV9FWFRFUk4gPSBZRVM7CiBT
VFJJUF9JTlNUQUxMRURfUFJPRFVDVCA9IE5POwotCi1FWENMVURFRF9TT1VSQ0VfRklMRV9OQU1F
U18gPSBNYWNoRXhjZXB0aW9ucy5kZWZzCi1FWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU1tzZGs9
aXBob25lb3MqXSA9ICQoRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNfJChVU0VfSU5URVJOQUxf
U0RLKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZmNTY4
NDM0MmY5YzA0N2M5ZTY3ZTA2NGY3ZGJiYmYzNzI1ZjM3OTguLmY1NmUxNWNiZGU5ZjRjNmFmZDk3
YTk5NDU0ZmVhMTUyMjdkYjhlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNjQsNyArNjQsNiBAQAogCQk1MjE4MzAxMkM5OUU0NzZBODRFRUJFQTggLyog
U3ltYm9sSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNzJCQkRCMTA3RkE0MjQ4ODYxNzhCOUUgLyogU3ltYm9sSW1wbC5jcHAgKi87IH07CiAJ
CTUzMTFCRDUzMUVBNzFDQUQwMDUyNTI4MSAvKiBTaWduYWxzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMTFCRDUxMUVBNzFDQUQwMDUyNTI4MSAv
KiBTaWduYWxzLmNwcCAqLzsgfTsKIAkJNTMxMUJENUMxRUE4MjJGOTAwNTI1MjgxIC8qIFRocmVh
ZE1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTMxMUJENUIxRUE4MjJGOTAwNTI1MjgxIC8qIFRocmVhZE1lc3NhZ2UuY3BwICovOyB9Owot
CQk1MzUzNEYyQTFFQzBFMTBFMDAxNDFCMkYgLyogTWFjaEV4Y2VwdGlvbnMuZGVmcyBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNTM0RjI5MUVDMEUxMEUw
MDE0MUIyRiAvKiBNYWNoRXhjZXB0aW9ucy5kZWZzICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKENsaWVudCwgU2VydmVyLCApOyB9OyB9OwogCQk3MEE5OTNGRTFBRDcxNTEzMDBGQTYxNUIg
LyogU3ltYm9sUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzBBOTkzRkMxQUQ3MTUxMzAwRkE2MTVCIC8qIFN5bWJvbFJlZ2lzdHJ5LmNw
cCAqLzsgfTsKIAkJNzBFQ0E2MEQxQjAyNDI2ODAwNDQ5NzM5IC8qIEF0b21pY1N0cmluZ0ltcGwu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzBFQ0E2
MEExQjAyNDI2ODAwNDQ5NzM5IC8qIEF0b21pY1N0cmluZ0ltcGwuY3BwICovOyB9OwogCQk3QUZF
QzZCMTFFQjIyQjU5MDBEQURFMzYgLyogVVVJRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUZFQzZCMDFFQjIyQjU5MDBEQURFMzYgLyogVVVJRC5j
cHAgKi87IH07CkBAIC0zMDAsNyArMjk5LDYgQEAKIAkJNTMxMUJENTcxRUE3RTFBMTAwNTI1Mjgx
IC8qIFNpZ25hbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2lnbmFscy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzExQkQ1OTFFQTgxQTk2MDA1MjUyODEg
LyogVGhyZWFkTWVzc2FnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJl
YWRNZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMTFCRDVCMUVBODIy
RjkwMDUyNTI4MSAvKiBUaHJlYWRNZXNzYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFRocmVhZE1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk1MzUzNEYyOTFFQzBFMTBFMDAxNDFCMkYgLyogTWFjaEV4Y2VwdGlvbnMuZGVmcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUubWlnOyBwYXRoID0gTWFjaEV4Y2VwdGlvbnMuZGVmczsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM5RUIwNjIxRDU1Mjg0MjAwQzgyRUY3IC8qIExFQkRl
Y29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTEVCRGVjb2Rlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0VDMjUzQzFFOTVBRDMwMDAwODMxQjkgLyog
UHJpb3JpdHlRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcmlvcml0
eVF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1MzA3MUM5MUM0MDQyNzIw
MDM4NDg5OCAvKiBUaW55TFJVQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGlueUxSVUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDI0LDcg
KzEwMjIsNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMUE0MjhCOEIxQzhGODlERDAwNTFFOUVC
IC8qIEFwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaCAqLywKIAkJCQkxQUNBREQ4MjE4
ODQ0ODAxMDBEOEI3MUQgLyogRGVwcmVjYXRlZFN5bWJvbHNVc2VkQnlTYWZhcmkubW0gKi8sCi0J
CQkJNTM1MzRGMjkxRUMwRTEwRTAwMTQxQjJGIC8qIE1hY2hFeGNlcHRpb25zLmRlZnMgKi8sCiAJ
CQkJQThBNDcyQzUxNTFBODI1QTAwNDEyM0ZGIC8qIE1haW5UaHJlYWRNYWMubW0gKi8sCiAJCQkp
OwogCQkJcGF0aCA9IG1hYzsKQEAgLTEzNDksNyArMTM0Niw2IEBACiAJCQkJMTQzRjYxMUYxNTY1
RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNCNzI1RUM5
ODc0NDZBRDkzRjFBNDQwIC8qIFJhbmRvbURldmljZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTUzNTM0RjJBMUVDMEUxMEUwMDE0MUIyRiAvKiBNYWNoRXhjZXB0aW9ucy5kZWZzIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MUExNTFBODI1QjAwNDEyM0ZGIC8qIFJlZkNvdW50ZWRM
ZWFrQ291bnRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQ0RFRDBGMzE4MTE1Qzg1MDA0REJB
NzAgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQ0RFRDBFRjE4MTE1QzM4MDA0
REJBNzAgLyogUnVuTG9vcENGLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggZjNh
MzRmNWI2MWM4MTM2NDJlMjA4YTFkYjk5MWNkOWZiYmEzOGMyOC4uNjc3ZjgxMjRhMDFlNTZjZmJm
ZTJkOWQ2MTI5N2FhNmM0ZmQzMmU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC02NjQsMTAgKzY2NCw2IEBA
CiAjZGVmaW5lIEhBVkVfUkVBRExJTkUgMQogI2RlZmluZSBIQVZFX1NZU19USU1FQl9IIDEKIAot
I2lmIF9faGFzX2luY2x1ZGUoPG1hY2gvbWFjaF9leGMuZGVmcz4pICYmICEoUExBVEZPUk0oV0FU
Q0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikpCi0jZGVmaW5lIEhBVkVfTUFDSF9FWENFUFRJT05T
IDEKLSNlbmRpZgotCiAjaWYgIVBMQVRGT1JNKEdUSykKICNkZWZpbmUgVVNFX0FDQ0VMRVJBVEUg
MQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVJlZ2lzdGVycy5o
IGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1SZWdpc3RlcnMuaAppbmRleCA4NGJkODkzNzQ5OWRh
OTllYWE4NmI3MzY5NWY3YzViODFhYzI2MGNlLi5kNWI1YWJjMjIxYmJhZDgyOTc2MTkzZWNlNTFj
MWM3NjE3NWRiMDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVJlZ2lzdGVy
cy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtUmVnaXN0ZXJzLmgKQEAgLTI2LDExICsy
Niw5IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgotI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogI2lmIE9TKERBUldJTikKICNpbmNsdWRlIDxtYWNo
L3RocmVhZF9hY3QuaD4KLSNpbmNsdWRlIDxzaWduYWwuaD4KICNlbGlmIE9TKFdJTkRPV1MpCiAj
aW5jbHVkZSA8d2luZG93cy5oPgogI2Vsc2UKQEAgLTU3LDExICs1NSw2IEBAIHR5cGVkZWYgYXJt
X3RocmVhZF9zdGF0ZTY0X3QgUGxhdGZvcm1SZWdpc3RlcnM7CiAjZXJyb3IgVW5rbm93biBBcmNo
aXRlY3R1cmUKICNlbmRpZgogCi1pbmxpbmUgUGxhdGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVyc0Zy
b21VQ29udGV4dCh1Y29udGV4dF90KiB1Y29udGV4dCkKLXsKLSAgICByZXR1cm4gdWNvbnRleHQt
PnVjX21jb250ZXh0LT5fX3NzOwotfQotCiAjZWxpZiBPUyhXSU5ET1dTKQogCiB1c2luZyBQbGF0
Zm9ybVJlZ2lzdGVycyA9IENPTlRFWFQ7CkBAIC03MiwxMSArNjUsNiBAQCBzdHJ1Y3QgUGxhdGZv
cm1SZWdpc3RlcnMgewogICAgIG1jb250ZXh0X3QgbWFjaGluZUNvbnRleHQ7CiB9OwogCi1pbmxp
bmUgUGxhdGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVyc0Zyb21VQ29udGV4dCh1Y29udGV4dF90KiB1
Y29udGV4dCkKLXsKLSAgICByZXR1cm4gKmJpdHdpc2VfY2FzdDxQbGF0Zm9ybVJlZ2lzdGVycyo+
KCZ1Y29udGV4dC0+dWNfbWNvbnRleHQpOwotfQotCiAjZWxzZQogCiBzdHJ1Y3QgUGxhdGZvcm1S
ZWdpc3RlcnMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuaCBiL1Nv
dXJjZS9XVEYvd3RmL1N0YWNrQm91bmRzLmgKaW5kZXggY2Q2MmMxNDhhNmM3ZWZjOTUxN2E4YjA5
YjhhMzJjN2ZlMTkwY2RlZi4uNTU0NjA0ZjJhYjQ4NGM3Y2Y3MWVlMzg2MzBjZWI0Yzc5YzMzZTk3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9TdGFja0JvdW5kcy5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
OiBtX29yaWdpbihvcmlnaW4pCiAgICAgICAgICwgbV9ib3VuZChlbmQpCiAgICAgeworICAgICAg
ICBjaGVja0NvbnNpc3RlbmN5KCk7CiAgICAgfQogCiAgICAgdm9pZCogb3JpZ2luKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZEhvbGRlci5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9UaHJlYWRIb2xkZXIuY3BwCmluZGV4IDVlYWE3MjBlODZlZWNiM2UzMjE0NzEyNDdkODk1
Njg0MGRmMmVlZjYuLjMwYjIyN2NkYjhhYzUyNjA3NTBiNDdkNDgyYWJjMmQ1NWJlM2FjOTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZEhvbGRlci5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvVGhyZWFkSG9sZGVyLmNwcApAQCAtMzQsMTcgKzM0LDEyIEBACiAKICNpbmNsdWRlICJU
aHJlYWRpbmcuaCIKIAotI2luY2x1ZGUgPHd0Zi90aHJlYWRzL1NpZ25hbHMuaD4KLQogbmFtZXNw
YWNlIFdURiB7CiAKIFRocmVhZFNwZWNpZmljS2V5IFRocmVhZEhvbGRlcjo6bV9rZXkgPSBJbnZh
bGlkVGhyZWFkU3BlY2lmaWNLZXk7CiAKIFRocmVhZEhvbGRlcjo6flRocmVhZEhvbGRlcigpCiB7
Ci0jaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCi0gICAgdW5yZWdpc3RlclRocmVhZEZvck1hY2hF
eGNlcHRpb25IYW5kbGluZygmbV90aHJlYWQuZ2V0KCkpOwotI2VuZGlmCiAgICAgbV90aHJlYWQt
PmRpZEV4aXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkTWVzc2Fn
ZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmNwcAppbmRleCBiOTk0Y2FjZDYy
NmQ0YzZjZmQ1YzE2ODEwOWI1NWI2OWRkMjNiOTk2Li5mMTRiYzQ1ZDM2MTRjN2M2NjM1ZWIxN2Fi
MGUyNzI4MTZhMTM3M2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRNZXNzYWdl
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmNwcApAQCAtMzYsOSArMzYs
NiBAQAogI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvdGhyZWFkcy9TaWdu
YWxzLmg+CiAKLSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLSNpbmNsdWRlIDxtYWNoL3RocmVh
ZF9hY3QuaD4KLSNlbmRpZgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtODYsMTIgKzgzLDEyIEBA
IHZvaWQgaW5pdGlhbGl6ZVRocmVhZE1lc3NhZ2VzKCkKIH0KIAogU1VQUFJFU1NfQVNBTgotc3Rh
dGljIE1lc3NhZ2VTdGF0dXMgc2VuZE1lc3NhZ2VVc2luZ1NpZ25hbChUaHJlYWQmIHRocmVhZCwg
Y29uc3QgVGhyZWFkTWVzc2FnZSYgbWVzc2FnZSkKK01lc3NhZ2VTdGF0dXMgc2VuZE1lc3NhZ2VT
Y29wZWQoVGhyZWFkJiB0aHJlYWQsIGNvbnN0IFRocmVhZE1lc3NhZ2UmIG1lc3NhZ2UpCiB7CiAg
ICAgY29uc3RleHByIFNpZ25hbCBzaWduYWwgPSBTaWduYWw6OlVzcjsKICAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgb25jZTsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSB7Ci0gICAgICAg
IGluc3RhbGxTaWduYWxIYW5kbGVyKHNpZ25hbCwgW10gKFNpZ25hbCwgU2lnSW5mbyYsIFBsYXRm
b3JtUmVnaXN0ZXJzJiByZWdpc3RlcnMpIHsKKyAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIo
c2lnbmFsLCBbXSAoaW50LCBzaWdpbmZvX3QqIGluZm8sIHZvaWQqIHVhcCkgewogICAgICAgICAg
ICAgVGhyZWFkKiB0aHJlYWQgPSBUaHJlYWQ6OmN1cnJlbnRNYXlCZU51bGwoKTsKIAogICAgICAg
ICAgICAgaWYgKCF0aHJlYWQpIHsKQEAgLTEwMSw3ICs5OCw3IEBAIHN0YXRpYyBNZXNzYWdlU3Rh
dHVzIHNlbmRNZXNzYWdlVXNpbmdTaWduYWwoVGhyZWFkJiB0aHJlYWQsIGNvbnN0IFRocmVhZE1l
c3NhZ2UmCiAKICAgICAgICAgICAgIC8vIE5vZGUgc2hvdWxkIGJlIGRlbGV0ZWQgaW4gdGhlIHNl
bmRlciB0aHJlYWQuIERlbGV0aW5nIE5vZGVzIGluIHNpZ25hbCBoYW5kbGVyIGNhdXNlcyBkZWFk
IGxvY2suCiAgICAgICAgICAgICB0aHJlYWQtPnRocmVhZE1lc3NhZ2VzKCkuY29uc3VtZUFsbFdp
dGhOb2RlKFsmXSAoVGhyZWFkTWVzc2FnZURhdGEqIGRhdGEsIE5vZGUqIG5vZGUpIHsKLSAgICAg
ICAgICAgICAgICBkYXRhLT5tZXNzYWdlKHJlZ2lzdGVycyk7CisgICAgICAgICAgICAgICAgZGF0
YS0+bWVzc2FnZShpbmZvLCBzdGF0aWNfY2FzdDx1Y29udGV4dF90Kj4odWFwKSk7CiAgICAgICAg
ICAgICAgICAgLy8gQnkgc2V0dGluZyByYW4gdmFyaWFibGUsICgxKSB0aGUgc2VuZGVyIGFja25v
d2xlZGdlcyB0aGUgY29tcGxldGlvbiBhbmQKICAgICAgICAgICAgICAgICAvLyAoMikgZ2V0cyB0
aGUgTm9kZSB0byBiZSBkZWxldGVkLgogICAgICAgICAgICAgICAgIGRhdGEtPnJhbi5zdG9yZShu
b2RlKTsKQEAgLTE1OSw2MiArMTU2LDYgQEAgc3RhdGljIE1lc3NhZ2VTdGF0dXMgc2VuZE1lc3Nh
Z2VVc2luZ1NpZ25hbChUaHJlYWQmIHRocmVhZCwgY29uc3QgVGhyZWFkTWVzc2FnZSYKICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi0jaWYgSEFWRShNQUNIX0VYQ0VQVElP
TlMpCi1zdGF0aWMgTWVzc2FnZVN0YXR1cyBzZW5kTWVzc2FnZVVzaW5nTWFjaChUaHJlYWQmIHRo
cmVhZCwgY29uc3QgVGhyZWFkTWVzc2FnZSYgbWVzc2FnZSkKLXsKLSAgICBzdGF0aWMgU3RhdGlj
TG9jayBtZXNzYWdlTG9jazsKLSAgICBhdXRvIGxvY2tob2xkZXIgPSBob2xkTG9jayhtZXNzYWdl
TG9jayk7Ci0KLSAgICBhdXRvIHJlc3VsdCA9IHRocmVhZC5zdXNwZW5kKCk7Ci0gICAgaWYgKCFy
ZXN1bHQpCi0gICAgICAgIHJldHVybiBNZXNzYWdlU3RhdHVzOjpUaHJlYWRFeGl0ZWQ7Ci0KLSNp
ZiBDUFUoWDg2KQotICAgIHVuc2lnbmVkIHVzZXJDb3VudCA9IHNpemVvZihQbGF0Zm9ybVJlZ2lz
dGVycykgLyBzaXplb2YoaW50KTsKLSAgICB0aHJlYWRfc3RhdGVfZmxhdm9yX3QgZmxhdm9yID0g
aTM4Nl9USFJFQURfU1RBVEU7Ci0jZWxpZiBDUFUoWDg2XzY0KQotICAgIHVuc2lnbmVkIHVzZXJD
b3VudCA9IHg4Nl9USFJFQURfU1RBVEU2NF9DT1VOVDsKLSAgICB0aHJlYWRfc3RhdGVfZmxhdm9y
X3QgZmxhdm9yID0geDg2X1RIUkVBRF9TVEFURTY0OwotI2VsaWYgQ1BVKEFSTSkKLSAgICB1bnNp
Z25lZCB1c2VyQ291bnQgPSBBUk1fVEhSRUFEX1NUQVRFX0NPVU5UOwotICAgIHRocmVhZF9zdGF0
ZV9mbGF2b3JfdCBmbGF2b3IgPSBBUk1fVEhSRUFEX1NUQVRFOwotI2VsaWYgQ1BVKEFSTTY0KQot
ICAgIHVuc2lnbmVkIHVzZXJDb3VudCA9IEFSTV9USFJFQURfU1RBVEU2NF9DT1VOVDsKLSAgICB0
aHJlYWRfc3RhdGVfZmxhdm9yX3QgZmxhdm9yID0gQVJNX1RIUkVBRF9TVEFURTY0OwotI2Vsc2UK
LSNlcnJvciBVbmtub3duIEFyY2hpdGVjdHVyZQotI2VuZGlmCi0KLSAgICBQbGF0Zm9ybVJlZ2lz
dGVycyByZWdpc3RlcnM7Ci0gICAgdGhyZWFkX3N0YXRlX3Qgc3RhdGUgPSByZWludGVycHJldF9j
YXN0PHRocmVhZF9zdGF0ZV90PigmcmVnaXN0ZXJzKTsKLSAgICB0aHJlYWRfZ2V0X3N0YXRlKHRo
cmVhZC5tYWNoVGhyZWFkKCksIGZsYXZvciwgc3RhdGUsICZ1c2VyQ291bnQpOwotCi0gICAgbWVz
c2FnZShyZWdpc3RlcnMpOwotCi0gICAgdGhyZWFkX3NldF9zdGF0ZSh0aHJlYWQubWFjaFRocmVh
ZCgpLCBmbGF2b3IsIHN0YXRlLCB1c2VyQ291bnQpOwotCi0gICAgdGhyZWFkLnJlc3VtZSgpOwot
ICAgIHJldHVybiBNZXNzYWdlU3RhdHVzOjpNZXNzYWdlUmFuOwotfQotCi1zdGF0aWMgYm9vbCB1
c2VNYWNoID0gZmFsc2U7Ci12b2lkIGRlbGl2ZXJNZXNzYWdlc1VzaW5nTWFjaCgpCi17Ci0gICAg
dXNlTWFjaCA9IHRydWU7Ci19Ci0KLSNlbmRpZiAvLyBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLQot
TWVzc2FnZVN0YXR1cyBzZW5kTWVzc2FnZVNjb3BlZChUaHJlYWQmIHRocmVhZCwgY29uc3QgVGhy
ZWFkTWVzc2FnZSYgbWVzc2FnZSkKLXsKLSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLSAgICBp
ZiAodXNlTWFjaCkKLSAgICAgICAgcmV0dXJuIHNlbmRNZXNzYWdlVXNpbmdNYWNoKHRocmVhZCwg
bWVzc2FnZSk7Ci0jZW5kaWYKLSAgICByZXR1cm4gc2VuZE1lc3NhZ2VVc2luZ1NpZ25hbCh0aHJl
YWQsIG1lc3NhZ2UpOwotfQotCi0KIH0gLy8gbmFtZXNwYWNlIFdURgogCiAjZW5kaWYgLy8gVVNF
KFBUSFJFQURTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkTWVzc2FnZS5oIGIv
U291cmNlL1dURi93dGYvVGhyZWFkTWVzc2FnZS5oCmluZGV4IDMwMDQ3MmIzZTcxYzQyZWM4OTg3
NGEzZGUwZmYzNzYxY2E5NjkxMGMuLjlhZTUzZjI5Y2Y3ZThmYjAwZWY5MjExZDE2Y2UyY2RlZDYw
M2VjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZE1lc3NhZ2UuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNl
IFdURiB7CiB2b2lkIGluaXRpYWxpemVUaHJlYWRNZXNzYWdlcygpOwogCiBjbGFzcyBUaHJlYWRN
ZXNzYWdlRGF0YTsKLXVzaW5nIFRocmVhZE1lc3NhZ2UgPSBTY29wZWRMYW1iZGE8dm9pZChQbGF0
Zm9ybVJlZ2lzdGVycyYpPjsKK3VzaW5nIFRocmVhZE1lc3NhZ2UgPSBTY29wZWRMYW1iZGE8dm9p
ZChzaWdpbmZvX3QqLCB1Y29udGV4dF90Kik+OwogCiBlbnVtIGNsYXNzIE1lc3NhZ2VTdGF0dXMg
ewogICAgIE1lc3NhZ2VSYW4sCkBAIC01MSwxNCArNTEsMTAgQEAgTWVzc2FnZVN0YXR1cyBzZW5k
TWVzc2FnZVNjb3BlZChUaHJlYWQmLCBjb25zdCBUaHJlYWRNZXNzYWdlJik7CiB0ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jdG9yPgogTWVzc2FnZVN0YXR1cyBzZW5kTWVzc2FnZShUaHJlYWQmIHRhcmdl
dFRocmVhZCwgY29uc3QgRnVuY3RvciYgZnVuYykKIHsKLSAgICBhdXRvIGxhbWJkYSA9IHNjb3Bl
ZExhbWJkYVJlZjx2b2lkKFBsYXRmb3JtUmVnaXN0ZXJzJik+KGZ1bmMpOworICAgIGF1dG8gbGFt
YmRhID0gc2NvcGVkTGFtYmRhUmVmPHZvaWQoc2lnaW5mb190KiwgdWNvbnRleHRfdCopPihmdW5j
KTsKICAgICByZXR1cm4gc2VuZE1lc3NhZ2VTY29wZWQodGFyZ2V0VGhyZWFkLCBsYW1iZGEpOwog
fQogCi0jaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCi12b2lkIGRlbGl2ZXJNZXNzYWdlc1VzaW5n
TWFjaCgpOwotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OnNlbmRN
ZXNzYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRpbmcuaAppbmRleCAzNTE0ZThjMDlmMGZjOTRkNTM0YmUyZjNiNmU3YzQ5
NTBlMGJjZjA1Li5kMmU1MzZkZjdhODY5NmQ4ZTZiOTViYTQzZTE3M2QzYjU1MGJmMTZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9U
aHJlYWRpbmcuaApAQCAtMTM4LDEwICsxMzgsNiBAQCBwdWJsaWM6CiAKICNpZiBVU0UoUFRIUkVB
RFMpCiAgICAgTG9ja2xlc3NCYWc8VGhyZWFkTWVzc2FnZURhdGEqPiYgdGhyZWFkTWVzc2FnZXMo
KSB7IHJldHVybiBtX3RocmVhZE1lc3NhZ2VzOyB9Ci0KLSNpZiBPUyhEQVJXSU4pCi0gICAgbWFj
aF9wb3J0X3QgbWFjaFRocmVhZCgpIHsgcmV0dXJuIG1fcGxhdGZvcm1UaHJlYWQ7IH0KLSNlbmRp
ZgogI2VuZGlmCiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9N
YWNoRXhjZXB0aW9ucy5kZWZzIGIvU291cmNlL1dURi93dGYvbWFjL01hY2hFeGNlcHRpb25zLmRl
ZnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyMDU3NDJhNGVkNTAwZjgwNjRmZWVi
NDk1NWE3Yzk3MGQ5OWFmMGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dURi93dGYvbWFjL01hY2hFeGNlcHRpb25zLmRlZnMKKysrIC9kZXYv
bnVsbApAQCAtMSwyNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgPG1hY2gvbWFjaF9leGMuZGVmcz4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRz
L1NpZ25hbHMuY3BwCmluZGV4IDcwN2NhOWMyZDMyYTc2ODBhMzk4M2E4MmVjZjBiN2Q2YmZlZWVl
Y2EuLjg1NWIyOGIzMTcyMTcyN2NmMWY0MzFhOTE4YTI1MWRjMmU2YTNkZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
dGhyZWFkcy9TaWduYWxzLmNwcApAQCAtMjgsMjY3ICsyOCwyMSBAQAogCiAjaWYgVVNFKFBUSFJF
QURTKQogCi0jaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCi1leHRlcm4gIkMiIHsKLSNpbmNsdWRl
ICJNYWNoRXhjZXB0aW9uc1NlcnZlci5oIgotfTsKLSNlbmRpZgotCiAjaW5jbHVkZSA8Y3N0ZGlv
PgogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHNpZ25hbC5oPgotCi0jaWYgSEFWRShNQUNI
X0VYQ0VQVElPTlMpCi0jaW5jbHVkZSA8bWFjaC9tYWNoLmg+Ci0jaW5jbHVkZSA8bWFjaC90aHJl
YWRfYWN0Lmg+Ci0jZW5kaWYKLQogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8
d3RmL0RhdGFMb2cuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9M
b2NrbGVzc0JhZy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUg
PHd0Zi9UaHJlYWRNZXNzYWdlLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgotCiAKIG5h
bWVzcGFjZSBXVEYgewogCi0gICAgCiBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPExvY2tsZXNz
QmFnPFNpZ25hbEhhbmRsZXI+PiBoYW5kbGVyc1tzdGF0aWNfY2FzdDxzaXplX3Q+KFNpZ25hbDo6
TnVtYmVyT2ZTaWduYWxzKV0gPSB7IH07Ci1zdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6
ZU9uY2VGbGFnc1tzdGF0aWNfY2FzdDxzaXplX3Q+KFNpZ25hbDo6TnVtYmVyT2ZTaWduYWxzKV07
CiBzdGF0aWMgc3RydWN0IHNpZ2FjdGlvbiBvbGRBY3Rpb25zW3N0YXRpY19jYXN0PHNpemVfdD4o
U2lnbmFsOjpOdW1iZXJPZlNpZ25hbHMpXTsKK3N0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFs
aXplT25jZUZsYWdzW3N0YXRpY19jYXN0PHNpemVfdD4oU2lnbmFsOjpOdW1iZXJPZlNpZ25hbHMp
XTsKIAotI2lmIEhBVkUoTUFDSF9FWENFUFRJT05TKQotLy8gWW91IGNhbiByZWFkIG1vcmUgYWJv
dXQgbWFjaCBleGNlcHRpb25zIGhlcmU6Ci0vLyBodHRwOi8vd3d3LmNzLmNtdS5lZHUvYWZzL2Nz
L3Byb2plY3QvbWFjaC9wdWJsaWMvZG9jL3VucHVibGlzaGVkL2V4Y2VwdGlvbi5wcwotLy8gYW5k
IHRoZSBNYWNoIGludGVyZmFjZSBHZW5lcmF0b3IgKE1pRykgaGVyZToKLS8vIGh0dHA6Ly93d3cu
Y3MuY211LmVkdS9hZnMvY3MvcHJvamVjdC9tYWNoL3B1YmxpYy9kb2MvdW5wdWJsaXNoZWQvbWln
LnBzCi0KLXN0YXRpYyBtYWNoX3BvcnRfdCBleGNlcHRpb25Qb3J0Owotc3RhdGljIGNvbnN0ZXhw
ciBzaXplX3QgbWF4TWVzc2FnZVNpemUgPSAxICogS0I7Ci0KLXN0YXRpYyB2b2lkIHN0YXJ0TWFj
aEV4Y2VwdGlvbkhhbmRsZXJUaHJlYWQoKQotewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBv
bmNlOwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKLSAgICAgICAgaWYgKG1hY2hfcG9y
dF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgJmV4
Y2VwdGlvblBvcnQpICE9IEtFUk5fU1VDQ0VTUykKLSAgICAgICAgICAgIENSQVNIKCk7Ci0KLSAg
ICAgICAgaWYgKG1hY2hfcG9ydF9pbnNlcnRfcmlnaHQobWFjaF90YXNrX3NlbGYoKSwgZXhjZXB0
aW9uUG9ydCwgZXhjZXB0aW9uUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpICE9IEtFUk5f
U1VDQ0VTUykKLSAgICAgICAgICAgIENSQVNIKCk7Ci0KLSAgICAgICAgLy8gRklYTUU6IFRoaXMg
c2hvdWxkIHVzZSBhIGRpc3BhdGNoIHF1ZXVlLgotICAgICAgICAvLyBTZWU6IGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIwMDMKLSAgICAgICAgKHZvaWQpVGhyZWFk
OjpjcmVhdGUoCi0gICAgICAgICAgICAiV1RGIE1hY2ggRXhjZXB0aW9uIFRocmVhZCIsIFtdICgp
IHsKLSAgICAgICAgICAgICAgICB1bmlvbiBNZXNzYWdlIHsKLSAgICAgICAgICAgICAgICAgICAg
bWFjaF9tc2dfaGVhZGVyX3QgaGVhZGVyOwotICAgICAgICAgICAgICAgICAgICBjaGFyIGRhdGFb
bWF4TWVzc2FnZVNpemVdOwotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgTWVz
c2FnZSBtZXNzYWdlSGVhZGVySW47Ci0gICAgICAgICAgICAgICAgTWVzc2FnZSBtZXNzYWdlSGVh
ZGVyT3V0OwotCi0gICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgICAgICAg
ICAgICAga2Vybl9yZXR1cm5fdCBtZXNzYWdlUmVzdWx0ID0gbWFjaF9tc2coJm1lc3NhZ2VIZWFk
ZXJJbi5oZWFkZXIsIE1BQ0hfUkNWX01TRywgMCwgbWF4TWVzc2FnZVNpemUsIGV4Y2VwdGlvblBv
cnQsIE1BQ0hfTVNHX1RJTUVPVVRfTk9ORSwgTUFDSF9QT1JUX05VTEwpOwotICAgICAgICAgICAg
ICAgICAgICBpZiAobWVzc2FnZVJlc3VsdCA9PSBLRVJOX1NVQ0NFU1MpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghbWFjaF9leGNfc2VydmVyKCZtZXNzYWdlSGVhZGVySW4uaGVhZGVy
LCAmbWVzc2FnZUhlYWRlck91dC5oZWFkZXIpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENSQVNIKCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VSZXN1bHQgPSBtYWNo
X21zZygmbWVzc2FnZUhlYWRlck91dC5oZWFkZXIsIE1BQ0hfU0VORF9NU0csIG1lc3NhZ2VIZWFk
ZXJPdXQuaGVhZGVyLm1zZ2hfc2l6ZSwgMCwgbWVzc2FnZUhlYWRlck91dC5oZWFkZXIubXNnaF9s
b2NhbF9wb3J0LCAwLCBNQUNIX1BPUlRfTlVMTCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVChtZXNzYWdlUmVzdWx0ID09IEtFUk5fU1VDQ0VTUyk7Ci0gICAgICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nTG4oIkZh
aWxlZCB0byByZWNlaXZlIG1hY2ggbWVzc2FnZSBkdWUgdG8gIiwgbWFjaF9lcnJvcl9zdHJpbmco
bWVzc2FnZVJlc3VsdCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgfSkubGVha1JlZigpOwotICAgIH0pOwotfQotCi1zdGF0aWMgU2lnbmFsIGZyb21N
YWNoRXhjZXB0aW9uKGV4Y2VwdGlvbl90eXBlX3QgdHlwZSkKLXsKLSAgICBzd2l0Y2ggKHR5cGUp
IHsKLSAgICBjYXNlIEVYQ19CQURfQUNDRVNTOiByZXR1cm4gU2lnbmFsOjpTZWdWOwotICAgIGNh
c2UgRVhDX0JBRF9JTlNUUlVDVElPTjogcmV0dXJuIFNpZ25hbDo6SWxsOwotICAgIGNhc2UgRVhD
X0JSRUFLUE9JTlQ6IHJldHVybiBTaWduYWw6OlRyYXA7Ci0gICAgZGVmYXVsdDogYnJlYWs7Ci0g
ICAgfQotICAgIHJldHVybiBTaWduYWw6OlVua25vd247Ci19Ci0KLXN0YXRpYyBleGNlcHRpb25f
bWFza190IHRvTWFjaE1hc2soU2lnbmFsIHNpZ25hbCkKLXsKLSAgICBzd2l0Y2ggKHNpZ25hbCkg
ewotICAgIGNhc2UgU2lnbmFsOjpTZWdWOiByZXR1cm4gRVhDX01BU0tfQkFEX0FDQ0VTUzsKLSAg
ICBjYXNlIFNpZ25hbDo6SWxsOiByZXR1cm4gRVhDX01BU0tfQkFEX0lOU1RSVUNUSU9OOwotICAg
IGNhc2UgU2lnbmFsOjpUcmFwOiByZXR1cm4gRVhDX01BU0tfQlJFQUtQT0lOVDsKLSAgICBkZWZh
dWx0OiBicmVhazsKLSAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0K
LQotZXh0ZXJuICJDIiB7Ci0KLS8vIFdlIG5lZWQgdG8gaW1wbGVtZW50IHN0dWJzIGZvciBjYXRj
aF9tYWNoX2V4Y2VwdGlvbl9yYWlzZSBhbmQgY2F0Y2hfbWFjaF9leGNlcHRpb25fcmFpc2Vfc3Rh
dGVfaWRlbnRpdHkuCi0vLyBUaGUgTWlHIGdlbmVyYXRlZCBmaWxlIHdpbGwgZmFpbCB0byBsaW5r
IG90aGVyd2lzZSwgZXZlbiB0aG91Z2ggd2UgZG9uJ3QgdXNlIHRoZSBmdW5jdGlvbnMuIE9ubHkg
dGhlCi0vLyBjYXRjaF9tYWNoX2V4Y2VwdGlvbl9yYWlzZV9zdGF0ZSBmdW5jdGlvbiBzaG91bGQg
YmUgY2FsbGVkIGJlY2F1c2Ugd2UgcGFzcyBFWENFUFRJT05fU1RBVEUgdG8KLS8vIHRocmVhZF9z
ZXRfZXhjZXB0aW9uX3BvcnRzLgota2Vybl9yZXR1cm5fdCBjYXRjaF9tYWNoX2V4Y2VwdGlvbl9y
YWlzZShtYWNoX3BvcnRfdCwgbWFjaF9wb3J0X3QsIG1hY2hfcG9ydF90LCBleGNlcHRpb25fdHlw
ZV90LCBtYWNoX2V4Y2VwdGlvbl9kYXRhX3QsIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QpCi17Ci0g
ICAgZGF0YUxvZ0xuKCJXZSBzaG91bGQgbm90IGhhdmUgY2FsbGVkIGNhdGNoX2V4Y2VwdGlvbl9y
YWlzZSgpLCBwbGVhc2UgZmlsZSBhIGJ1ZyBhdCBidWdzLndlYmtpdC5vcmciKTsKLSAgICByZXR1
cm4gS0VSTl9GQUlMVVJFOwotfQotCi1rZXJuX3JldHVybl90IGNhdGNoX21hY2hfZXhjZXB0aW9u
X3JhaXNlX3N0YXRlX2lkZW50aXR5KG1hY2hfcG9ydF90LCBtYWNoX3BvcnRfdCwgbWFjaF9wb3J0
X3QsIGV4Y2VwdGlvbl90eXBlX3QsIG1hY2hfZXhjZXB0aW9uX2RhdGFfdCwgbWFjaF9tc2dfdHlw
ZV9udW1iZXJfdCwgaW50KiwgdGhyZWFkX3N0YXRlX3QsIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3Qs
IHRocmVhZF9zdGF0ZV90LCAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCopCi17Ci0gICAgZGF0YUxv
Z0xuKCJXZSBzaG91bGQgbm90IGhhdmUgY2FsbGVkIGNhdGNoX21hY2hfZXhjZXB0aW9uX3JhaXNl
X3N0YXRlX2lkZW50aXR5LCBwbGVhc2UgZmlsZSBhIGJ1ZyBhdCBidWdzLndlYmtpdC5vcmciKTsK
LSAgICByZXR1cm4gS0VSTl9GQUlMVVJFOwotfQotCi1rZXJuX3JldHVybl90IGNhdGNoX21hY2hf
ZXhjZXB0aW9uX3JhaXNlX3N0YXRlKAotICAgIG1hY2hfcG9ydF90IHBvcnQsCi0gICAgZXhjZXB0
aW9uX3R5cGVfdCBleGNlcHRpb25UeXBlLAotICAgIGNvbnN0IG1hY2hfZXhjZXB0aW9uX2RhdGFf
dCBleGNlcHRpb25EYXRhLAotICAgIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgZGF0YUNvdW50LAot
ICAgIGludCogc3RhdGVGbGF2b3IsCi0gICAgY29uc3QgdGhyZWFkX3N0YXRlX3QgaW5TdGF0ZSwK
LSAgICBtYWNoX21zZ190eXBlX251bWJlcl90IGluU3RhdGVDb3VudCwKLSAgICB0aHJlYWRfc3Rh
dGVfdCBvdXRTdGF0ZSwKLSAgICBtYWNoX21zZ190eXBlX251bWJlcl90KiBvdXRTdGF0ZUNvdW50
KQotewotICAgIFJFTEVBU0VfQVNTRVJUKHBvcnQgPT0gZXhjZXB0aW9uUG9ydCk7Ci0gICAgU2ln
bmFsIHNpZ25hbCA9IGZyb21NYWNoRXhjZXB0aW9uKGV4Y2VwdGlvblR5cGUpOwotICAgIFJFTEVB
U0VfQVNTRVJUKHNpZ25hbCAhPSBTaWduYWw6OlVua25vd24pOwotCi0gICAgbWVtY3B5KG91dFN0
YXRlLCBpblN0YXRlLCBpblN0YXRlQ291bnQgKiBzaXplb2YoaW5TdGF0ZVswXSkpOwotICAgICpv
dXRTdGF0ZUNvdW50ID0gaW5TdGF0ZUNvdW50OwotCi0jaWYgQ1BVKFg4Nl82NCkKLSAgICBSRUxF
QVNFX0FTU0VSVCgqc3RhdGVGbGF2b3IgPT0geDg2X1RIUkVBRF9TVEFURSk7Ci0gICAgUGxhdGZv
cm1SZWdpc3RlcnMmIHJlZ2lzdGVycyA9IHJlaW50ZXJwcmV0X2Nhc3Q8eDg2X3RocmVhZF9zdGF0
ZV90Kj4ob3V0U3RhdGUpLT51dHMudHM2NDsKLSNlbGlmIENQVShYODYpCi0gICAgUkVMRUFTRV9B
U1NFUlQoKnN0YXRlRmxhdm9yID09IHg4Nl9USFJFQURfU1RBVEUpOwotICAgIFBsYXRmb3JtUmVn
aXN0ZXJzJiByZWdpc3RlcnMgPSByZWludGVycHJldF9jYXN0PHg4Nl90aHJlYWRfc3RhdGVfdCo+
KG91dFN0YXRlKS0+dXRzLnRzMzI7Ci0jZWxpZiBDUFUoQVJNNjQpCi0gICAgUkVMRUFTRV9BU1NF
UlQoKnN0YXRlRmxhdm9yID09IEFSTV9USFJFQURfU1RBVEUpOwotICAgIFBsYXRmb3JtUmVnaXN0
ZXJzJiByZWdpc3RlcnMgPSByZWludGVycHJldF9jYXN0PGFybV91bmlmaWVkX3RocmVhZF9zdGF0
ZSo+KG91dFN0YXRlKS0+dHNfNjQ7Ci0jZWxpZiBDUFUoQVJNKQotICAgIFJFTEVBU0VfQVNTRVJU
KCpzdGF0ZUZsYXZvciA9PSBBUk1fVEhSRUFEX1NUQVRFKTsKLSAgICBQbGF0Zm9ybVJlZ2lzdGVy
cyYgcmVnaXN0ZXJzID0gcmVpbnRlcnByZXRfY2FzdDxhcm1fdW5pZmllZF90aHJlYWRfc3RhdGUq
PihvdXRTdGF0ZSktPnRzXzMyOwotI2VuZGlmCi0KLSAgICBTaWdJbmZvIGluZm87Ci0gICAgaWYg
KHNpZ25hbCA9PSBTaWduYWw6OlNlZ1YpIHsKLSAgICAgICAgQVNTRVJUX1VOVVNFRChkYXRhQ291
bnQsIGRhdGFDb3VudCA9PSAyKTsKLSAgICAgICAgaW5mby5mYXVsdGluZ0FkZHJlc3MgPSByZWlu
dGVycHJldF9jYXN0PHZvaWQqPihleGNlcHRpb25EYXRhWzFdKTsKLSAgICB9Ci0KLSAgICBib29s
IGRpZEhhbmRsZSA9IGZhbHNlOwotICAgIGhhbmRsZXJzW3N0YXRpY19jYXN0PHNpemVfdD4oc2ln
bmFsKV0tPml0ZXJhdGUoWyZdIChjb25zdCBTaWduYWxIYW5kbGVyJiBoYW5kbGVyKSB7Ci0gICAg
ICAgIFNpZ25hbEFjdGlvbiBoYW5kbGVyUmVzdWx0ID0gaGFuZGxlcihzaWduYWwsIGluZm8sIHJl
Z2lzdGVycyk7Ci0gICAgICAgIGRpZEhhbmRsZSB8PSBoYW5kbGVyUmVzdWx0ID09IFNpZ25hbEFj
dGlvbjo6SGFuZGxlZDsKLSAgICB9KTsKLQotICAgIGlmIChkaWRIYW5kbGUpCi0gICAgICAgIHJl
dHVybiBLRVJOX1NVQ0NFU1M7Ci0gICAgcmV0dXJuIEtFUk5fRkFJTFVSRTsKLX0KLQotfTsKLQot
c3RhdGljIGJvb2wgdXNlTWFjaCB7IGZhbHNlIH07Ci12b2lkIGhhbmRsZVNpZ25hbHNXaXRoTWFj
aCgpCi17Ci0gICAgZGVsaXZlck1lc3NhZ2VzVXNpbmdNYWNoKCk7Ci0gICAgdXNlTWFjaCA9IHRy
dWU7Ci19Ci0KLQotc3RhdGljIFN0YXRpY0xvY2sgdGhyZWFkTG9jazsKLWV4Y2VwdGlvbl9tYXNr
X3QgYWN0aXZlRXhjZXB0aW9ucyB7IDAgfTsKLQotaW5saW5lIHZvaWQgc2V0RXhjZXB0aW9uUG9y
dHMoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBUaHJlYWQqIHRocmVhZCkKLXsKLSAgICBrZXJuX3Jl
dHVybl90IHJlc3VsdCA9IHRocmVhZF9zZXRfZXhjZXB0aW9uX3BvcnRzKHRocmVhZC0+bWFjaFRo
cmVhZCgpLCBhY3RpdmVFeGNlcHRpb25zLCBleGNlcHRpb25Qb3J0LCBFWENFUFRJT05fU1RBVEUg
fCBNQUNIX0VYQ0VQVElPTl9DT0RFUywgTUFDSElORV9USFJFQURfU1RBVEUpOwotICAgIGlmIChy
ZXN1bHQgIT0gS0VSTl9TVUNDRVNTKSB7Ci0gICAgICAgIGRhdGFMb2dMbigidGhyZWFkIHNldCBw
b3J0IGZhaWxlZCBkdWUgdG8gIiwgbWFjaF9lcnJvcl9zdHJpbmcocmVzdWx0KSk7Ci0gICAgICAg
IENSQVNIKCk7Ci0gICAgfQotfQotCi1pbmxpbmUgSGFzaFNldDxUaHJlYWQqPiYgYWN0aXZlVGhy
ZWFkcyhjb25zdCBBYnN0cmFjdExvY2tlciYpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEhhc2hTZXQ8VGhyZWFkKj4+IGFjdGl2ZVRocmVhZHM7Ci0gICAgcmV0dXJuIGFjdGl2ZVRocmVh
ZHM7Ci19Ci0KLXZvaWQgcmVnaXN0ZXJUaHJlYWRGb3JNYWNoRXhjZXB0aW9uSGFuZGxpbmcoVGhy
ZWFkKiB0aHJlYWQpCi17Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayh0aHJlYWRMb2NrKTsK
LSAgICBhdXRvIHJlc3VsdCA9IGFjdGl2ZVRocmVhZHMobG9ja2VyKS5hZGQodGhyZWFkKTsKLQot
ICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgc2V0RXhjZXB0aW9uUG9ydHMobG9j
a2VyLCB0aHJlYWQpOwotfQotCi12b2lkIHVucmVnaXN0ZXJUaHJlYWRGb3JNYWNoRXhjZXB0aW9u
SGFuZGxpbmcoVGhyZWFkKiB0aHJlYWQpCi17Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayh0
aHJlYWRMb2NrKTsKLSAgICBhY3RpdmVUaHJlYWRzKGxvY2tlcikucmVtb3ZlKHRocmVhZCk7Ci19
Ci0KLSNlbHNlCi1zdGF0aWMgY29uc3RleHByIGJvb2wgdXNlTWFjaCA9IGZhbHNlOwotI2VuZGlm
IC8vIEhBVkUoTUFDSF9FWENFUFRJT05TKQotCi1zdGF0aWMgdm9pZCBqc2NTaWduYWxIYW5kbGVy
KGludCwgc2lnaW5mb190Kiwgdm9pZCopOwotCi12b2lkIGluc3RhbGxTaWduYWxIYW5kbGVyKFNp
Z25hbCBzaWduYWwsIFNpZ25hbEhhbmRsZXImJiBoYW5kbGVyKQotewotICAgIEFTU0VSVChzaWdu
YWwgPCBTaWduYWw6OlVua25vd24pOwotI2lmIEhBVkUoTUFDSF9FWENFUFRJT05TKQotICAgIC8v
IFNpbmNlIG1hY2ggb25seSBoYXMgRVhDX0JBRF9BQ0NFU1MsIHdoaWNoIGNvdmVycyBib3RoIFNl
Z1YgYW5kIEJ1cywgd2UgYXJiaXRhcmlseSBjaG9vc2UgdG8gbWFrZQotICAgIC8vIG1hY2ggRVhD
X0JBRF9BQ0NFU1NlcyBtYXAgdG8gU2VnVi4KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGp1c3Qg
dXNlIGEgc2luZ2xlIFNpZ25hbDo6QmFkQWNjZXNzIHZhbHVlIGluc3RlYWQgb2YgU2VnVi9CdXMu
Ci0gICAgLy8gU2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcy
MDYzCi0gICAgaWYgKHNpZ25hbCA9PSBTaWduYWw6OkJ1cyAmJiB1c2VNYWNoKQotICAgICAgICBy
ZXR1cm47Ci0gICAgQVNTRVJUKCF1c2VNYWNoIHx8IHNpZ25hbCAhPSBTaWduYWw6OlVzcik7Ci0K
LSAgICBpZiAodXNlTWFjaCkKLSAgICAgICAgc3RhcnRNYWNoRXhjZXB0aW9uSGFuZGxlclRocmVh
ZCgpOwotI2VuZGlmCi0KLSAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplT25jZUZsYWdzW3N0
YXRpY19jYXN0PHNpemVfdD4oc2lnbmFsKV0sIFsmXSB7Ci0gICAgICAgIGhhbmRsZXJzW3N0YXRp
Y19jYXN0PHNpemVfdD4oc2lnbmFsKV0uY29uc3RydWN0KCk7Ci0KLSAgICAgICAgaWYgKCF1c2VN
YWNoKSB7Ci0gICAgICAgICAgICBzdHJ1Y3Qgc2lnYWN0aW9uIGFjdGlvbjsKLSAgICAgICAgICAg
IGFjdGlvbi5zYV9zaWdhY3Rpb24gPSBqc2NTaWduYWxIYW5kbGVyOwotICAgICAgICAgICAgYXV0
byByZXN1bHQgPSBzaWdmaWxsc2V0KCZhY3Rpb24uc2FfbWFzayk7Ci0gICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVCghcmVzdWx0KTsKLSAgICAgICAgICAgIGFjdGlvbi5zYV9mbGFncyA9IFNBX1NJ
R0lORk87Ci0gICAgICAgICAgICByZXN1bHQgPSBzaWdhY3Rpb24odG9TeXN0ZW1TaWduYWwoc2ln
bmFsKSwgJmFjdGlvbiwgJm9sZEFjdGlvbnNbc3RhdGljX2Nhc3Q8c2l6ZV90PihzaWduYWwpXSk7
Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCghcmVzdWx0KTsKLSAgICAgICAgfQotCi0gICAg
fSk7Ci0KLSAgICBoYW5kbGVyc1tzdGF0aWNfY2FzdDxzaXplX3Q+KHNpZ25hbCldLT5hZGQoV1RG
TW92ZShoYW5kbGVyKSk7Ci0KLSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLSAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKHRocmVhZExvY2spOwotICAgIGlmICh1c2VNYWNoKSB7Ci0gICAgICAg
IGFjdGl2ZUV4Y2VwdGlvbnMgfD0gdG9NYWNoTWFzayhzaWduYWwpOwotCi0gICAgICAgIGZvciAo
VGhyZWFkKiB0aHJlYWQgOiBhY3RpdmVUaHJlYWRzKGxvY2tlcikpCi0gICAgICAgICAgICBzZXRF
eGNlcHRpb25Qb3J0cyhsb2NrZXIsIHRocmVhZCk7Ci0gICAgfQotI2VuZGlmCi19Ci0KLXZvaWQg
anNjU2lnbmFsSGFuZGxlcihpbnQgc2lnLCBzaWdpbmZvX3QqIGluZm8sIHZvaWQqIHVjb250ZXh0
KQorc3RhdGljIHZvaWQganNjU2lnbmFsSGFuZGxlcihpbnQgc2lnLCBzaWdpbmZvX3QqIGluZm8s
IHZvaWQqIG1jb250ZXh0KQogewogICAgIFNpZ25hbCBzaWduYWwgPSBmcm9tU3lzdGVtU2lnbmFs
KHNpZyk7CiAKQEAgLTMwOCwxNiArNjIsMTAgQEAgdm9pZCBqc2NTaWduYWxIYW5kbGVyKGludCBz
aWcsIHNpZ2luZm9fdCogaW5mbywgdm9pZCogdWNvbnRleHQpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBTaWdJbmZvIHNpZ0luZm87Ci0gICAgaWYgKHNpZ25hbCA9PSBTaWduYWw6OlNl
Z1YgfHwgc2lnbmFsID09IFNpZ25hbDo6QnVzKQotICAgICAgICBzaWdJbmZvLmZhdWx0aW5nQWRk
cmVzcyA9IGluZm8tPnNpX2FkZHI7Ci0KLSAgICBQbGF0Zm9ybVJlZ2lzdGVycyYgcmVnaXN0ZXJz
ID0gcmVnaXN0ZXJzRnJvbVVDb250ZXh0KHJlaW50ZXJwcmV0X2Nhc3Q8dWNvbnRleHRfdCo+KHVj
b250ZXh0KSk7Ci0KICAgICBib29sIGRpZEhhbmRsZSA9IGZhbHNlOwogICAgIGJvb2wgcmVzdG9y
ZURlZmF1bHRIYW5kbGVyID0gZmFsc2U7CiAgICAgaGFuZGxlcnNbc3RhdGljX2Nhc3Q8c2l6ZV90
PihzaWduYWwpXS0+aXRlcmF0ZShbJl0gKGNvbnN0IFNpZ25hbEhhbmRsZXImIGhhbmRsZXIpIHsK
LSAgICAgICAgc3dpdGNoIChoYW5kbGVyKHNpZ25hbCwgc2lnSW5mbywgcmVnaXN0ZXJzKSkgewor
ICAgICAgICBzd2l0Y2ggKGhhbmRsZXIoc2lnLCBpbmZvLCBtY29udGV4dCkpIHsKICAgICAgICAg
Y2FzZSBTaWduYWxBY3Rpb246OkhhbmRsZWQ6CiAgICAgICAgICAgICBkaWRIYW5kbGUgPSB0cnVl
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMzcsMTMgKzg1LDEzIEBAIHZvaWQganNjU2lnbmFs
SGFuZGxlcihpbnQgc2lnLCBzaWdpbmZvX3QqIGluZm8sIHZvaWQqIHVjb250ZXh0KQogICAgIHN0
cnVjdCBzaWdhY3Rpb24mIG9sZEFjdGlvbiA9IG9sZEFjdGlvbnNbc3RhdGljX2Nhc3Q8c2l6ZV90
PihzaWduYWwpXTsKICAgICBpZiAoc2lnbmFsID09IFNpZ25hbDo6VXNyKSB7CiAgICAgICAgIGlm
IChvbGRBY3Rpb24uc2Ffc2lnYWN0aW9uKQotICAgICAgICAgICAgb2xkQWN0aW9uLnNhX3NpZ2Fj
dGlvbihzaWcsIGluZm8sIHVjb250ZXh0KTsKKyAgICAgICAgICAgIG9sZEFjdGlvbi5zYV9zaWdh
Y3Rpb24oc2lnLCBpbmZvLCBtY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBpZiAoIWRpZEhhbmRsZSkgewogICAgICAgICBpZiAob2xkQWN0aW9uLnNhX3NpZ2FjdGlvbikg
ewotICAgICAgICAgICAgb2xkQWN0aW9uLnNhX3NpZ2FjdGlvbihzaWcsIGluZm8sIHVjb250ZXh0
KTsKKyAgICAgICAgICAgIG9sZEFjdGlvbi5zYV9zaWdhY3Rpb24oc2lnLCBpbmZvLCBtY29udGV4
dCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMzUyLDYgKzEwMCwyNCBA
QCB2b2lkIGpzY1NpZ25hbEhhbmRsZXIoaW50IHNpZywgc2lnaW5mb190KiBpbmZvLCB2b2lkKiB1
Y29udGV4dCkKICAgICB9CiB9CiAKK3ZvaWQgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsIHNp
Z25hbCwgU2lnbmFsSGFuZGxlciYmIGhhbmRsZXIpCit7CisgICAgQVNTRVJUKHNpZ25hbCA8IFNp
Z25hbDo6VW5rbm93bik7CisgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZU9uY2VGbGFnc1tz
dGF0aWNfY2FzdDxzaXplX3Q+KHNpZ25hbCldLCBbJl0geworICAgICAgICBoYW5kbGVyc1tzdGF0
aWNfY2FzdDxzaXplX3Q+KHNpZ25hbCldLmNvbnN0cnVjdCgpOworCisgICAgICAgIHN0cnVjdCBz
aWdhY3Rpb24gYWN0aW9uOworICAgICAgICBhY3Rpb24uc2Ffc2lnYWN0aW9uID0ganNjU2lnbmFs
SGFuZGxlcjsKKyAgICAgICAgYXV0byByZXN1bHQgPSBzaWdmaWxsc2V0KCZhY3Rpb24uc2FfbWFz
ayk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFyZXN1bHQpOworICAgICAgICBhY3Rpb24uc2Ff
ZmxhZ3MgPSBTQV9TSUdJTkZPOworICAgICAgICByZXN1bHQgPSBzaWdhY3Rpb24odG9TeXN0ZW1T
aWduYWwoc2lnbmFsKSwgJmFjdGlvbiwgJm9sZEFjdGlvbnNbc3RhdGljX2Nhc3Q8c2l6ZV90Pihz
aWduYWwpXSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFyZXN1bHQpOworICAgIH0pOworCisg
ICAgaGFuZGxlcnNbc3RhdGljX2Nhc3Q8c2l6ZV90PihzaWduYWwpXS0+YWRkKFdURk1vdmUoaGFu
ZGxlcikpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogI2VuZGlmIC8vIFVTRShQVEhSRUFE
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5oIGIvU291cmNl
L1dURi93dGYvdGhyZWFkcy9TaWduYWxzLmgKaW5kZXggYTgxOGU1YjUyMGU3MGU5ZjNiY2Y3YWMx
NDRjYTUyODI2YzI5MjRlOS4uMWU0ZWI0NmVhYTc3NGExZWU4OWY2ZmIyZGFlZjMzMjY4Y2U1Njc3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGhyZWFkcy9TaWduYWxzLmgKKysrIGIvU291
cmNlL1dURi93dGYvdGhyZWFkcy9TaWduYWxzLmgKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1
ZGUgPHNpZ25hbC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9Q
bGF0Zm9ybVJlZ2lzdGVycy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtODAsMTEgKzc5LDcg
QEAgZW51bSBjbGFzcyBTaWduYWxBY3Rpb24gewogICAgIEZvcmNlRGVmYXVsdAogfTsKIAotc3Ry
dWN0IFNpZ0luZm8gewotICAgIHZvaWQqIGZhdWx0aW5nQWRkcmVzcyB7IDAgfTsKLX07Ci0KLXVz
aW5nIFNpZ25hbEhhbmRsZXIgPSBGdW5jdGlvbjxTaWduYWxBY3Rpb24oU2lnbmFsLCBTaWdJbmZv
JiwgUGxhdGZvcm1SZWdpc3RlcnMmKT47Cit1c2luZyBTaWduYWxIYW5kbGVyID0gRnVuY3Rpb248
U2lnbmFsQWN0aW9uKGludCwgc2lnaW5mb190Kiwgdm9pZCopPjsKIAogLy8gQ2FsbCB0aGlzIG1l
dGhvZCB3aGVuZXZlciB5b3Ugd2FudCB0byBpbnN0YWxsIGEgc2lnbmFsIGhhbmRsZXIuIEl0J3Mg
b2sgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIGxhemlseS4KIC8vIE5vdGU6IFlvdXIgc2lnbmFsIGhh
bmRsZXIgd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSB0aGUgaGFuZGxlciBmb3IgdGhlIGRlc2ly
ZWQgc2lnbmFsIGlzIGNhbGxlZC4KQEAgLTkyLDI1ICs4Nyw5IEBAIHVzaW5nIFNpZ25hbEhhbmRs
ZXIgPSBGdW5jdGlvbjxTaWduYWxBY3Rpb24oU2lnbmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1SZWdp
c3RlcnMmCiAvLyBUaGlzIGZ1bmN0aW9uIGlzIGN1cnJlbnRseSBhIG9uZSB3YXkgc3RyZWV0IGku
ZS4gb25jZSBpbnN0YWxsZWQsIGEgc2lnbmFsIGhhbmRsZXIgY2Fubm90IGJlIHVuaW5zdGFsbGVk
Lgogdm9pZCBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWwsIFNpZ25hbEhhbmRsZXImJik7CiAK
LQotI2lmIEhBVkUoTUFDSF9FWENFUFRJT05TKQotY2xhc3MgVGhyZWFkOwotdm9pZCByZWdpc3Rl
clRocmVhZEZvck1hY2hFeGNlcHRpb25IYW5kbGluZyhUaHJlYWQqKTsKLXZvaWQgdW5yZWdpc3Rl
clRocmVhZEZvck1hY2hFeGNlcHRpb25IYW5kbGluZyhUaHJlYWQqKTsKLQotdm9pZCBoYW5kbGVT
aWduYWxzV2l0aE1hY2goKTsKLSNlbmRpZiAvLyBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLQogfSAv
LyBuYW1lc3BhY2UgV1RGCiAKLSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLXVzaW5nIFdURjo6
cmVnaXN0ZXJUaHJlYWRGb3JNYWNoRXhjZXB0aW9uSGFuZGxpbmc7Ci11c2luZyBXVEY6OnVucmVn
aXN0ZXJUaHJlYWRGb3JNYWNoRXhjZXB0aW9uSGFuZGxpbmc7Ci11c2luZyBXVEY6OmhhbmRsZVNp
Z25hbHNXaXRoTWFjaDsKLSNlbmRpZiAvLyBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLQogdXNpbmcg
V1RGOjpTaWduYWw7Ci11c2luZyBXVEY6OlNpZ0luZm87CiB1c2luZyBXVEY6OnRvU3lzdGVtU2ln
bmFsOwogdXNpbmcgV1RGOjpmcm9tU3lzdGVtU2lnbmFsOwogdXNpbmcgV1RGOjpTaWduYWxBY3Rp
b247CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MTBmZWEwMTA4NWJlNGMwOGVlNmJlOTFjZmRmNTgyYmY2OGE3NTIxYy4uNjQwYzYyMWNiNTI3MjQ5
ZDI2ZmRmZWI4YTRlZWM5Njk0OGY1Zjc0YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA1LTEzICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMjE2ODA4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcyMDc1CisKKyAgICAgICAgY2F1c2VkIGxsZGIgdG8gaGFuZyB3aGVuIGRl
YnVnZ2luZyAoUmVxdWVzdGVkIGJ5IHNtZnIgb24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAg
ICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJVc2UgTWFjaCBleGNlcHRpb25zIGlu
c3RlYWQgb2Ygc2lnbmFscyB3aGVyZSBwb3NzaWJsZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTg2NQorICAgICAgICBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8yMTY4MDgKKwogMjAxNy0wNS0xMiAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmFtZSBXS0NvbnRlbnRFeHRl
bnNpb24gdG8gV0tDb250ZW50UnVsZUxpc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1RocmVhZE1lc3NhZ2VzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1RocmVhZE1lc3NhZ2VzLmNwcAppbmRleCBlNmE1Nzg5NGJiNTE2ZmUxY2U3MTNkMDdi
ZjE4ZjA3MDZlZmE5MzdjLi5kNjNlOWJmMWU3NTA2OGI2YzFhN2U3ZTZlOGI2N2M0ZWIwNTE1ODgy
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UaHJlYWRNZXNzYWdl
cy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVGhyZWFkTWVzc2FnZXMu
Y3BwCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyB2b2lkIHJ1blRocmVhZE1lc3NhZ2VUZXN0KHVu
c2lnbmVkIG51bVNlbmRlcnMsIHVuc2lnbmVkIG51bU1lc3NhZ2VzKQogICAgIGZvciAodW5zaWdu
ZWQgc2VuZGVySUQgPSAwOyBzZW5kZXJJRCA8IG51bVNlbmRlcnM7ICsrc2VuZGVySUQpIHsKICAg
ICAgICAgc2VuZGVyVGhyZWFkc1tzZW5kZXJJRF0gPSBUaHJlYWQ6OmNyZWF0ZSgiVGhyZWFkTWVz
c2FnZSBzZW5kZXIiLCBbc2VuZGVySUQsIG51bU1lc3NhZ2VzLCByZWNlaXZlclRocmVhZCwgJm1l
c3NhZ2VzUnVuLCAmaGFuZGxlcnNSdW5dICgpIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBudW1NZXNzYWdlczsgKytpKSB7Ci0gICAgICAgICAgICAgICAgYXV0byByZXN1
bHQgPSBzZW5kTWVzc2FnZSgqcmVjZWl2ZXJUaHJlYWQuZ2V0KCksIFtzZW5kZXJJRCwgJmhhbmRs
ZXJzUnVuXSAoUGxhdGZvcm1SZWdpc3RlcnMmKSB7CisgICAgICAgICAgICAgICAgYXV0byByZXN1
bHQgPSBzZW5kTWVzc2FnZSgqcmVjZWl2ZXJUaHJlYWQuZ2V0KCksIFtzZW5kZXJJRCwgJmhhbmRs
ZXJzUnVuXSAoc2lnaW5mb190KiwgdWNvbnRleHRfdCopIHsKICAgICAgICAgICAgICAgICAgICAg
aGFuZGxlcnNSdW5bc2VuZGVySURdKys7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAg
ICAgICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFdURjo6TWVzc2FnZVN0YXR1czo6TWVzc2FnZVJh
bik7CkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKIFRFU1QoVGhyZWFkTWVzc2FnZSwgU2lnbmFs
c1dvcmtPbkV4aXQpCiB7CiAgICAgc3RhdGljIGJvb2wgaGFuZGxlclJhbiA9IGZhbHNlOwotICAg
IGluc3RhbGxTaWduYWxIYW5kbGVyKFNpZ25hbDo6VXNyLCBbXSAoU2lnbmFsLCBTaWdJbmZvJiwg
UGxhdGZvcm1SZWdpc3RlcnMmKSAtPiBTaWduYWxBY3Rpb24geworICAgIGluc3RhbGxTaWduYWxI
YW5kbGVyKFNpZ25hbDo6VXNyLCBbXSAoaW50LCBzaWdpbmZvX3QqLCB2b2lkKikgLT4gU2lnbmFs
QWN0aW9uIHsKICAgICAgICAgZGF0YUxvZ0xuKCJoZXJlIik7CiAgICAgICAgIGhhbmRsZXJSYW4g
PSB0cnVlOwogICAgICAgICByZXR1cm4gU2lnbmFsQWN0aW9uOjpIYW5kbGVkOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>