<?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>178093</bug_id>
          
          <creation_ts>2017-10-09 14:14:47 -0700</creation_ts>
          <short_desc>REGRESSION(r223015): Regressed Kraken on iOS by 20% (Requested by keith_mi_ on #webkit).</short_desc>
          <delta_ts>2017-10-09 14:19: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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1358411</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-09 14:14:47 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/223015 broke the build:
Regressed Kraken on iOS by 20% (Requested by keith_mi_ 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>1358413</commentid>
    <comment_count>1</comment_count>
      <attachid>323214</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-09 14:14:59 -0700</bug_when>
    <thetext>Created attachment 323214
ROLLOUT of r223015

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>1358415</commentid>
    <comment_count>2</comment_count>
      <attachid>323214</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-09 14:17:18 -0700</bug_when>
    <thetext>Comment on attachment 323214
ROLLOUT of r223015

Clearing flags on attachment: 323214

Committed r223069: &lt;http://trac.webkit.org/changeset/223069&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358416</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-09 14:17:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358419</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-09 14:17:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/34894972&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323214</attachid>
            <date>2017-10-09 14:14:59 -0700</date>
            <delta_ts>2017-10-09 14:17:18 -0700</delta_ts>
            <desc>ROLLOUT of r223015</desc>
            <filename>bug-178093-20171009171458.patch</filename>
            <type>text/plain</type>
            <size>40362</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzMDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZTE0MzI1YTEwNmNmYWI1OGQ3MGIxYzlmYWFlZDQ1ZGFiYzc0ODlmLi40YmEzNmUzMDlhZjZmYzI4
MmQ5M2U3OWQ3MDRkNjFmM2U4YzBjMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNy0xMC0wOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIyMzAxNSBhbmQgcjIy
MzAyNS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
ODA5MworCisgICAgICAgIFJlZ3Jlc3NlZCBLcmFrZW4gb24gaU9TIGJ5IDIwJSAoUmVxdWVzdGVk
IGJ5IGtlaXRoX21pXyBvbgorICAgICAgICAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBj
aGFuZ2VzZXRzOgorCisgICAgICAgICJFbmFibGUgZ2lnYWNhZ2Ugb24gaU9TIgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NTg2CisgICAgICAgIGh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIyMzAxNQorCisgICAgICAgICJVbnJldmll
d2VkLCBkaXNhYmxlIEdpZ2FjYWdlIG9uIEFSTTY0IExpbnV4IgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NTg2CisgICAgICAgIGh0dHA6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzIyMzAyNQorCiAyMDE3LTEwLTA5ICBLZWl0aCBNaWxsZXIg
IDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNvcnQgdW5p
ZmllZCBzb3VyY2VzIGFnYWluIG5vdyB0aGF0IHRoZXkgYXJlIG51bWJlcmVkIG51bWVyaWNhbGx5
IHJhdGhlciB0aGFuIGxleGljb2dyYXBoaWNhbGx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxs
b2MvQ2hhbmdlTG9nIGIvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCmluZGV4IGY4YmVjNDg0Njgz
OGFiYzY2ZWFlNDJlYTVkMmJiOTg1ODAwMTc4OTUuLmU2NmI1ZmYyMjExMDQwMDFkZjI1YTUyZjEy
ODZiMzlhMWIwYTg0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNy0xMC0wOSAg
Q29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjIyMzAxNSBhbmQgcjIyMzAyNS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODA5MworCisgICAgICAgIFJlZ3Jlc3Nl
ZCBLcmFrZW4gb24gaU9TIGJ5IDIwJSAoUmVxdWVzdGVkIGJ5IGtlaXRoX21pXyBvbgorICAgICAg
ICAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJF
bmFibGUgZ2lnYWNhZ2Ugb24gaU9TIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc3NTg2CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hh
bmdlc2V0LzIyMzAxNQorCisgICAgICAgICJVbnJldmlld2VkLCBkaXNhYmxlIEdpZ2FjYWdlIG9u
IEFSTTY0IExpbnV4IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc3NTg2CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIy
MzAyNQorCiAyMDE3LTEwLTA3ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGRpc2FibGUgR2lnYWNhZ2Ugb24gQVJNNjQgTGludXgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAy
MjgwMjE1NGI4MDI1ZmJmYWQ3NTAyZjFjNTZiZDg1ZmRmMTE5MjFkLi42NmI4MTM2ZGNiOWJiNjFi
MTUyZjljMTFiYmU1MTllYjJjNDEwYmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xMTk5NCw3ICsxMTk5NCw3IEBAIHByaXZhdGU6CiAg
ICAgCiAgICAgTFZhbHVlIGNhZ2VkKEdpZ2FjYWdlOjpLaW5kIGtpbmQsIExWYWx1ZSBwdHIpCiAg
ICAgewotICAgICAgICBpZiAoIUdpZ2FjYWdlOjppc0VuYWJsZWQoa2luZCkpCisgICAgICAgIGlm
ICghR2lnYWNhZ2U6OnNob3VsZEJlRW5hYmxlZCgpKQogICAgICAgICAgICAgcmV0dXJuIHB0cjsK
ICAgICAgICAgCiAgICAgICAgIGlmIChraW5kID09IEdpZ2FjYWdlOjpQcmltaXRpdmUgJiYgR2ln
YWNhZ2U6OmNhblByaW1pdGl2ZUdpZ2FjYWdlQmVEaXNhYmxlZCgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCBlMWU0YTViZmY2YzJjOGJlZWZj
OGM1NjkxYmY0MDIyNmM0NWU1ZDllLi5mM2I2MjEzNTgxMWZmOTBkMDg3NTM3ZjY0NWU2MWZlNTgw
MjUwYzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgK
QEAgLTEzMTQsNyArMTMxNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhZ2UoR2lnYWNhZ2U6Oktp
bmQga2luZCwgR1BSUmVnIHN0b3JhZ2UpCiAgICAgewogI2lmIEdJR0FDQUdFX0VOQUJMRUQKLSAg
ICAgICAgaWYgKCFHaWdhY2FnZTo6aXNFbmFibGVkKGtpbmQpKQorICAgICAgICBpZiAoIUdpZ2Fj
YWdlOjpzaG91bGRCZUVuYWJsZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAg
ICAgICAgIGFuZFB0cihUcnVzdGVkSW1tUHRyKEdpZ2FjYWdlOjptYXNrKGtpbmQpKSwgc3RvcmFn
ZSk7CkBAIC0xMzI4LDcgKzEzMjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYWdlQ29uZGl0aW9u
YWxseShHaWdhY2FnZTo6S2luZCBraW5kLCBHUFJSZWcgc3RvcmFnZSwgR1BSUmVnIHNjcmF0Y2gp
CiAgICAgewogI2lmIEdJR0FDQUdFX0VOQUJMRUQKLSAgICAgICAgaWYgKCFHaWdhY2FnZTo6aXNF
bmFibGVkKGtpbmQpKQorICAgICAgICBpZiAoIUdpZ2FjYWdlOjpzaG91bGRCZUVuYWJsZWQoKSkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgICAgIGlmIChraW5kICE9IEdpZ2Fj
YWdlOjpQcmltaXRpdmUgfHwgR2lnYWNhZ2U6OmlzRGlzYWJsaW5nUHJpbWl0aXZlR2lnYWNhZ2VE
aXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
YXJtNjQucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYgppbmRl
eCBlODA2Zjk5MWI1YTU2ZjcxMjg5ZGJkMjk3ZDIyMjNiOTM2OTE2ZDgwLi5lYWQ0ODkxMzNhNjhl
ZDcyYmY2NTQ1ODMyYjExOWJjODJlZjc5MDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9hcm02NC5yYgpAQCAtMjYwLDMxICsyNjAsNiBAQCBkZWYgYXJtNjRMb3dlck1hbGZv
cm1lZExvYWRTdG9yZUFkZHJlc3NlcyhsaXN0KQogICAgIG5ld0xpc3QKIGVuZAogCi1kZWYgYXJt
NjRMb3dlckxhYmVsUmVmZXJlbmNlcyhsaXN0KQotICAgIG5ld0xpc3QgPSBbXQotICAgIGxpc3Qu
ZWFjaCB7Ci0gICAgICAgIHwgbm9kZSB8Ci0gICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rp
b24KLSAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKLSAgICAgICAgICAgIHdoZW4gImxvYWRp
IiwgImxvYWRpcyIsICJsb2FkcCIsICJsb2FkcSIsICJsb2FkYiIsICJsb2FkYnMiLCAibG9hZGgi
LCAibG9hZGhzIgotICAgICAgICAgICAgICAgIGxhYmVsUmVmID0gbm9kZS5vcGVyYW5kc1swXQot
ICAgICAgICAgICAgICAgIGlmIGxhYmVsUmVmLmlzX2E/IExhYmVsUmVmZXJlbmNlCi0gICAgICAg
ICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQotICAgICAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiZ2xv
YmFsYWRkciIsIFtMYWJlbFJlZmVyZW5jZS5uZXcobm9kZS5jb2RlT3JpZ2luLCBsYWJlbFJlZi5s
YWJlbCksIHRtcF0pCi0gICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24u
bmV3KGNvZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBbQWRkcmVzcy5uZXcobm9kZS5jb2RlT3JpZ2lu
LCB0bXAsIEltbWVkaWF0ZS5uZXcobm9kZS5jb2RlT3JpZ2luLCBsYWJlbFJlZi5vZmZzZXQpKSwg
bm9kZS5vcGVyYW5kc1sxXV0pCi0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IG5vZGUKLSAgICAgICAgICAgICAgICBlbmQKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKLSAgICAgICAgICAgIGVuZAotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKLSAgICAgICAgZW5kCi0gICAg
fQotICAgIG5ld0xpc3QKLWVuZAotCiAjIFdvcmthcm91bmQgZm9yIENvcnRleC1BNTMgZXJyYXR1
bSAoODM1NzY5KQogZGVmIGFybTY0Q29ydGV4QTUzRml4ODM1NzY5KGxpc3QpCiAgICAgbmV3TGlz
dCA9IFtdCkBAIC0zMjEsNyArMjk2LDYgQEAgY2xhc3MgU2VxdWVuY2UKICAgICAgICAgcmVzdWx0
ID0gcmlzY0xvd2VySGFyZEJyYW5jaE9wczY0KHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlz
Y0xvd2VyU2hpZnRPcHMocmVzdWx0KQogICAgICAgICByZXN1bHQgPSBhcm02NExvd2VyTWFsZm9y
bWVkTG9hZFN0b3JlQWRkcmVzc2VzKHJlc3VsdCkKLSAgICAgICAgcmVzdWx0ID0gYXJtNjRMb3dl
ckxhYmVsUmVmZXJlbmNlcyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZv
cm1lZEFkZHJlc3NlcyhyZXN1bHQpIHsKICAgICAgICAgICAgIHwgbm9kZSwgYWRkcmVzcyB8CiAg
ICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCkBAIC05MzAsMTUgKzkwNCw2IEBAIGNsYXNzIElu
c3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dFN0cigiI2lmIENQVShBUk02NF9DT1JURVhB
NTMpIikKICAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgogICAgICAgICAgICAgJGFzbS5wdXRT
dHIoIiNlbmRpZiIpCi0gICAgICAgIHdoZW4gImdsb2JhbGFkZHIiCi0gICAgICAgICAgICB1aWQg
PSAkYXNtLm5ld1VJRAotICAgICAgICAgICAgJGFzbS5wdXRzICJMX29mZmxpbmVhc21fbG9oX2Fk
cnBfI3t1aWR9OiIKLSAgICAgICAgICAgICRhc20ucHV0cyAiYWRycCAje29wZXJhbmRzWzFdLmFy
bTY0T3BlcmFuZCg6cHRyKX0sICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9QEdPVFBBR0UiCi0gICAg
ICAgICAgICAkYXNtLnB1dHMgIkxfb2ZmbGluZWFzbV9sb2hfbGRyXyN7dWlkfToiCi0gICAgICAg
ICAgICAkYXNtLnB1dHMgImxkciAje29wZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6cHRyKX0sIFsj
e29wZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6cHRyKX0sICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9
QEdPVFBBR0VPRkZdIgotICAgICAgICAgICAgJGFzbS5kZWZlckFjdGlvbiB7Ci0gICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICIubG9oIEFkcnBMZHJHb3QgTF9vZmZsaW5lYXNtX2xvaF9hZHJwXyN7
dWlkfSwgTF9vZmZsaW5lYXNtX2xvaF9sZHJfI3t1aWR9IgotICAgICAgICAgICAgfQogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBsb3dlckRlZmF1bHQKICAgICAgICAgZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIKaW5kZXggMDI0MDQ5YjY2MDY3NWM4N2M4MTFmYjVh
ZjEyZjlmYjA2MmY1NTcyMi4uOGQ3NjU2NTFhZDIyMzExN2IxZjkxMjNhY2FhMzI3ZWZjMWZiM2Qw
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXNtLnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYgpAQCAtNDYsOCArNDYs
NiBAQCBjbGFzcyBBc3NlbWJsZXIKICAgICAgICAgQGNvZGVPcmlnaW4gPSBuaWwKICAgICAgICAg
QG51bUxvY2FsTGFiZWxzID0gMAogICAgICAgICBAbnVtR2xvYmFsTGFiZWxzID0gMAotICAgICAg
ICBAZGVmZXJyZWRBY3Rpb25zID0gW10KLSAgICAgICAgQGNvdW50ID0gMAogCiAgICAgICAgIEBu
ZXdsaW5lU3BhY2VyU3RhdGUgPSA6bm9uZQogICAgICAgICBAbGFzdGxhYmVsID0gIiIKQEAgLTc1
LDIzICs3MywxMCBAQCBjbGFzcyBBc3NlbWJsZXIKICAgICAgICAgICAgIHB1dHNQcm9jRW5kSWZO
ZWVkZWQKICAgICAgICAgZW5kCiAgICAgICAgIHB1dHNMYXN0Q29tbWVudAotICAgICAgICBAZGVm
ZXJyZWRBY3Rpb25zLmVhY2ggewotICAgICAgICAgICAgfCBhY3Rpb24gfAotICAgICAgICAgICAg
YWN0aW9uLmNhbGwoKQotICAgICAgICB9CiAgICAgICAgIEBvdXRwLnB1dHMgIk9GRkxJTkVfQVNN
X0VORCIgaWYgISRlbWl0V2luQXNtCiAgICAgICAgIEBzdGF0ZSA9IDpjcHAKICAgICBlbmQKICAg
ICAKLSAgICBkZWYgZGVmZXJBY3Rpb24oJnByb2MpCi0gICAgICAgIEBkZWZlcnJlZEFjdGlvbnMg
PDwgcHJvYwotICAgIGVuZAotICAgIAotICAgIGRlZiBuZXdVSUQKLSAgICAgICAgQGNvdW50ICs9
IDEKLSAgICAgICAgQGNvdW50Ci0gICAgZW5kCi0gICAgCiAgICAgZGVmIGluQXNtCiAgICAgICAg
IGVudGVyQXNtCiAgICAgICAgIHlpZWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9pbnN0cnVjdGlvbnMucmIKaW5kZXggOWRkNGRjNzA3OGUxNWE4OTZlNWM4ODMxNGY0
YmEwYzcyNmZjZmMzMC4uYmJmY2U3MTkzYjNjMzcwNTE3YTZlMTA4OWZkZWRiOGMyNjAxMWJkMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25z
LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5y
YgpAQCAtMjY3LDggKzI2Nyw3IEBAIEFSTV9JTlNUUlVDVElPTlMgPQogQVJNNjRfSU5TVFJVQ1RJ
T05TID0KICAgICBbCiAgICAgICJwY3J0b2FkZHIiLCAgICMgQWRkcmVzcyBmcm9tIFBDIHJlbGF0
aXZlIG9mZnNldCAtIGFkciBpbnN0cnVjdGlvbgotICAgICAibm9wRml4Q29ydGV4QTUzRXJyODM1
NzY5IiwgIyBub3Agb24gQ29ydGV4LUE1MyAobm90aGluZyBvdGhlcndpc2UpCi0gICAgICJnbG9i
YWxhZGRyIgorICAgICAibm9wRml4Q29ydGV4QTUzRXJyODM1NzY5IiAjIG5vcCBvbiBDb3J0ZXgt
QTUzIChub3RoaW5nIG90aGVyd2lzZSkKICAgICBdCiAKIFJJU0NfSU5TVFJVQ1RJT05TID0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL2JtYWxsb2Mv
Q01ha2VMaXN0cy50eHQKaW5kZXggM2I4NDlmZDg5NjJmMjQwODNmNjg2MWEzMDcwYzYxZDU2MTk2
NmIzYi4uM2ZhYjY5ZjBhZDVmZmQwZjk4NzEyMjA5ZmVmMWVmNmVmYTU5NGIzOCAxMDA2NDQKLS0t
IGEvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL2JtYWxsb2MvQ01h
a2VMaXN0cy50eHQKQEAgLTEzLDcgKzEzLDYgQEAgc2V0KGJtYWxsb2NfU09VUkNFUwogICAgIGJt
YWxsb2MvRW52aXJvbm1lbnQuY3BwCiAgICAgYm1hbGxvYy9HaWdhY2FnZS5jcHAKICAgICBibWFs
bG9jL0hlYXAuY3BwCi0gICAgYm1hbGxvYy9IZWFwS2luZC5jcHAKICAgICBibWFsbG9jL0xhcmdl
TWFwLmNwcAogICAgIGJtYWxsb2MvTG9nZ2luZy5jcHAKICAgICBibWFsbG9jL09iamVjdFR5cGUu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZmY0NTMwNTRjNTM2ZDExMDQzMWRmZWQzNTgzMjdhMWJjMjk4MTBhYy4uYzkwNzYw
YTNkYjVjNjA2MTQzMzI5YjBiZmM4NjlhZTRjNzA2ZDJmNyAxMDA2NDQKLS0tIGEvU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTUsNyArMTUsNiBAQAog
CQkwRjVCRjE1MjFGMjJFMTU3MDAyOUQ5MUQgLyogU2NhdmVuZ2VyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUJGMTUwMUYyMkUxNTcwMDI5RDkx
RCAvKiBTY2F2ZW5nZXIuY3BwICovOyB9OwogCQkwRjVCRjE1MzFGMjJFMTU3MDAyOUQ5MUQgLyog
U2NhdmVuZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjVCRjE1MTFGMjJFMTU3MDAyOUQ5MUQgLyogU2NhdmVuZ2VyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1QkYxNzMxRjIzQzU3MTAwMjlE
OTFEIC8qIEJFeHBvcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGNUJGMTcyMUYyM0M1NzEwMDI5RDkxRCAvKiBCRXhwb3J0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEZENTU3MzMxRjdFREI3QjAw
QjFGMEEzIC8qIEhlYXBLaW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGRDU1NzMyMUY3RURCN0IwMEIxRjBBMyAvKiBIZWFwS2luZC5jcHAgKi87
IH07CiAJCTE0MDAyNzQ5MThGODlDMTMwMDExNUM5NyAvKiBIZWFwLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNERBMzIwQzE4ODc1QjA5MDA3MjY5RTAg
LyogSGVhcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTE0MDAyNzRBMThGODlDMjMwMDExNUM5NyAvKiBWTUhlYXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NEY3QkZDMThCRkM1MTcwMDM1MzdGMyAv
KiBWTUhlYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkxNDBGQTAwMzE5Q0U0MjlDMDBGRkQzQzggLyogQnVtcFJhbmdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDBGQTAwMjE5Q0U0MjlDMDBGRkQz
QzggLyogQnVtcFJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTkxLDcgKzkwLDYgQEAKIAkJMEY1QkYxNTAxRjIyRTE1NzAwMjlEOTFEIC8q
IFNjYXZlbmdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTY2F2ZW5nZXIuY3BwOyBwYXRoID0g
Ym1hbGxvYy9TY2F2ZW5nZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVC
RjE1MTFGMjJFMTU3MDAyOUQ5MUQgLyogU2NhdmVuZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNjYXZl
bmdlci5oOyBwYXRoID0gYm1hbGxvYy9TY2F2ZW5nZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY1QkYxNzIxRjIzQzU3MTAwMjlEOTFEIC8qIEJFeHBvcnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gQkV4cG9ydC5oOyBwYXRoID0gYm1hbGxvYy9CRXhwb3J0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTBGRDU1NzMyMUY3RURCN0IwMEIxRjBBMyAvKiBIZWFwS2luZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBIZWFwS2luZC5jcHA7IHBhdGgg
PSBibWFsbG9jL0hlYXBLaW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQw
RkEwMDIxOUNFNDI5QzAwRkZEM0M4IC8qIEJ1bXBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBCdW1wUmFuZ2UuaDsgcGF0aCA9IGJtYWxsb2MvQnVtcFJhbmdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0MEZBMDA0MTlDRTRCNjgwMEZGRDNDOCAvKiBM
aW5lTWV0YWRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGluZU1ldGFk
YXRhLmg7IHBhdGggPSBibWFsbG9jL0xpbmVNZXRhZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxNDEwNUU4MzE4RTE0Mzc0MDAzQTEwNkUgLyogT2JqZWN0VHlwZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPYmplY3RUeXBlLmNwcDsgcGF0aCA9
IGJtYWxsb2MvT2JqZWN0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
ODksNyArMjg3LDYgQEAKIAkJCQkxNDEzRTQ2MDE4OURDRTFFMDA1NDZENjggLyogQklubGluZS5o
ICovLAogCQkJCTE0QzkxOUM4MThGQ0M1OUYwMDI4REI0MyAvKiBCUGxhdGZvcm0uaCAqLywKIAkJ
CQkxNEQ5REI0NTE3RjI0NDcxMDBFQUFCNzkgLyogRml4ZWRWZWN0b3IuaCAqLywKLQkJCQkwRkQ1
NTczMjFGN0VEQjdCMDBCMUYwQTMgLyogSGVhcEtpbmQuY3BwICovLAogCQkJCTBGNUJGMTQ2MUYy
MkE4QjEwMDI5RDkxRCAvKiBIZWFwS2luZC5oICovLAogCQkJCTE0MUQ5QUZGMUM4RTUxQzAwMDBB
QkJBMCAvKiBMaXN0LmggKi8sCiAJCQkJNDQyNkUyN0UxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dp
bmcuY3BwICovLApAQCAtNDU5LDcgKzQ1Niw2IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJMEY1QkYxNTIxRjIyRTE1NzAwMjlEOTFEIC8qIFNj
YXZlbmdlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkQ1NTczMzFGN0VEQjdCMDBCMUYwQTMg
LyogSGVhcEtpbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRGMjcxQzMxOEVBMzk3ODAwOEMx
NTJGIC8qIEFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTk5QzVDQzFFQzNGMTU5
MDBBMkY3QkIgLyogQXZhaWxhYmxlTWVtb3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RjI3
MUM0MThFQTM5N0IwMDhDMTUyRiAvKiBDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQ2FjaGUuY3BwIGIvU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9DYWNoZS5jcHAKaW5kZXggYzk3YjkwOTVmYjY3M2I3Zjc0MjQ3MWY2ODE4NjljZmM0YzFh
OTM1My4uMjZmNDIwMmVlNWRkNTI3YTkzMjhlYTRkNmQ5ZjJjYmIzZmJmOTJkOSAxMDA2NDQKLS0t
IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9DYWNoZS5jcHAKKysrIGIvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9DYWNoZS5jcHAKQEAgLTM1LDggKzM1LDYgQEAgdm9pZCBDYWNoZTo6c2NhdmVuZ2Uo
SGVhcEtpbmQgaGVhcEtpbmQpCiAgICAgUGVySGVhcEtpbmQ8Q2FjaGU+KiBjYWNoZXMgPSBQZXJU
aHJlYWQ8UGVySGVhcEtpbmQ8Q2FjaGU+Pjo6Z2V0RmFzdENhc2UoKTsKICAgICBpZiAoIWNhY2hl
cykKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghaXNBY3RpdmVIZWFwS2luZChoZWFwS2luZCkp
Ci0gICAgICAgIHJldHVybjsKIAogICAgIGNhY2hlcy0+YXQoaGVhcEtpbmQpLmFsbG9jYXRvcigp
LnNjYXZlbmdlKCk7CiAgICAgY2FjaGVzLT5hdChoZWFwS2luZCkuZGVhbGxvY2F0b3IoKS5zY2F2
ZW5nZSgpOwpAQCAtNTAsMjcgKzQ4LDI3IEBAIENhY2hlOjpDYWNoZShIZWFwS2luZCBoZWFwS2lu
ZCkKIAogQk5PX0lOTElORSB2b2lkKiBDYWNoZTo6dHJ5QWxsb2NhdGVTbG93Q2FzZU51bGxDYWNo
ZShIZWFwS2luZCBoZWFwS2luZCwgc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIFBlclRocmVh
ZDxQZXJIZWFwS2luZDxDYWNoZT4+OjpnZXRTbG93Q2FzZSgpLT5hdChtYXBUb0FjdGl2ZUhlYXBL
aW5kKGhlYXBLaW5kKSkuYWxsb2NhdG9yKCkudHJ5QWxsb2NhdGUoc2l6ZSk7CisgICAgcmV0dXJu
IFBlclRocmVhZDxQZXJIZWFwS2luZDxDYWNoZT4+OjpnZXRTbG93Q2FzZSgpLT5hdChoZWFwS2lu
ZCkuYWxsb2NhdG9yKCkudHJ5QWxsb2NhdGUoc2l6ZSk7CiB9CiAKIEJOT19JTkxJTkUgdm9pZCog
Q2FjaGU6OmFsbG9jYXRlU2xvd0Nhc2VOdWxsQ2FjaGUoSGVhcEtpbmQgaGVhcEtpbmQsIHNpemVf
dCBzaXplKQogewotICAgIHJldHVybiBQZXJUaHJlYWQ8UGVySGVhcEtpbmQ8Q2FjaGU+Pjo6Z2V0
U2xvd0Nhc2UoKS0+YXQobWFwVG9BY3RpdmVIZWFwS2luZChoZWFwS2luZCkpLmFsbG9jYXRvcigp
LmFsbG9jYXRlKHNpemUpOworICAgIHJldHVybiBQZXJUaHJlYWQ8UGVySGVhcEtpbmQ8Q2FjaGU+
Pjo6Z2V0U2xvd0Nhc2UoKS0+YXQoaGVhcEtpbmQpLmFsbG9jYXRvcigpLmFsbG9jYXRlKHNpemUp
OwogfQogCiBCTk9fSU5MSU5FIHZvaWQqIENhY2hlOjphbGxvY2F0ZVNsb3dDYXNlTnVsbENhY2hl
KEhlYXBLaW5kIGhlYXBLaW5kLCBzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkKIHsKLSAg
ICByZXR1cm4gUGVyVGhyZWFkPFBlckhlYXBLaW5kPENhY2hlPj46OmdldFNsb3dDYXNlKCktPmF0
KG1hcFRvQWN0aXZlSGVhcEtpbmQoaGVhcEtpbmQpKS5hbGxvY2F0b3IoKS5hbGxvY2F0ZShhbGln
bm1lbnQsIHNpemUpOworICAgIHJldHVybiBQZXJUaHJlYWQ8UGVySGVhcEtpbmQ8Q2FjaGU+Pjo6
Z2V0U2xvd0Nhc2UoKS0+YXQoaGVhcEtpbmQpLmFsbG9jYXRvcigpLmFsbG9jYXRlKGFsaWdubWVu
dCwgc2l6ZSk7CiB9CiAKIEJOT19JTkxJTkUgdm9pZCBDYWNoZTo6ZGVhbGxvY2F0ZVNsb3dDYXNl
TnVsbENhY2hlKEhlYXBLaW5kIGhlYXBLaW5kLCB2b2lkKiBvYmplY3QpCiB7Ci0gICAgUGVyVGhy
ZWFkPFBlckhlYXBLaW5kPENhY2hlPj46OmdldFNsb3dDYXNlKCktPmF0KG1hcFRvQWN0aXZlSGVh
cEtpbmQoaGVhcEtpbmQpKS5kZWFsbG9jYXRvcigpLmRlYWxsb2NhdGUob2JqZWN0KTsKKyAgICBQ
ZXJUaHJlYWQ8UGVySGVhcEtpbmQ8Q2FjaGU+Pjo6Z2V0U2xvd0Nhc2UoKS0+YXQoaGVhcEtpbmQp
LmRlYWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShvYmplY3QpOwogfQogCiBCTk9fSU5MSU5FIHZvaWQq
IENhY2hlOjpyZWFsbG9jYXRlU2xvd0Nhc2VOdWxsQ2FjaGUoSGVhcEtpbmQgaGVhcEtpbmQsIHZv
aWQqIG9iamVjdCwgc2l6ZV90IG5ld1NpemUpCiB7Ci0gICAgcmV0dXJuIFBlclRocmVhZDxQZXJI
ZWFwS2luZDxDYWNoZT4+OjpnZXRTbG93Q2FzZSgpLT5hdChtYXBUb0FjdGl2ZUhlYXBLaW5kKGhl
YXBLaW5kKSkuYWxsb2NhdG9yKCkucmVhbGxvY2F0ZShvYmplY3QsIG5ld1NpemUpOworICAgIHJl
dHVybiBQZXJUaHJlYWQ8UGVySGVhcEtpbmQ8Q2FjaGU+Pjo6Z2V0U2xvd0Nhc2UoKS0+YXQoaGVh
cEtpbmQpLmFsbG9jYXRvcigpLnJlYWxsb2NhdGUob2JqZWN0LCBuZXdTaXplKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgYm1hbGxvYwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9D
YWNoZS5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9DYWNoZS5oCmluZGV4IGM0MTRlYzg3YWQ4
ZTRjMmQyNDc5MjU3MDQ3NzYxNGY3NWQzOGE2ZmEuLmYyN2MwNGRmODk0YzdiZDcwNWI5NTk0ZTMz
MmQ5ODE2MDU0Y2QxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQ2FjaGUu
aAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0NhY2hlLmgKQEAgLTY4LDcgKzY4LDcgQEAg
aW5saW5lIHZvaWQqIENhY2hlOjp0cnlBbGxvY2F0ZShIZWFwS2luZCBoZWFwS2luZCwgc2l6ZV90
IHNpemUpCiAgICAgUGVySGVhcEtpbmQ8Q2FjaGU+KiBjYWNoZXMgPSBQZXJUaHJlYWQ8UGVySGVh
cEtpbmQ8Q2FjaGU+Pjo6Z2V0RmFzdENhc2UoKTsKICAgICBpZiAoIWNhY2hlcykKICAgICAgICAg
cmV0dXJuIHRyeUFsbG9jYXRlU2xvd0Nhc2VOdWxsQ2FjaGUoaGVhcEtpbmQsIHNpemUpOwotICAg
IHJldHVybiBjYWNoZXMtPmF0KG1hcFRvQWN0aXZlSGVhcEtpbmRBZnRlckVuc3VyaW5nR2lnYWNh
Z2UoaGVhcEtpbmQpKS5hbGxvY2F0b3IoKS50cnlBbGxvY2F0ZShzaXplKTsKKyAgICByZXR1cm4g
Y2FjaGVzLT5hdChoZWFwS2luZCkuYWxsb2NhdG9yKCkudHJ5QWxsb2NhdGUoc2l6ZSk7CiB9CiAK
IGlubGluZSB2b2lkKiBDYWNoZTo6YWxsb2NhdGUoSGVhcEtpbmQgaGVhcEtpbmQsIHNpemVfdCBz
aXplKQpAQCAtNzYsNyArNzYsNyBAQCBpbmxpbmUgdm9pZCogQ2FjaGU6OmFsbG9jYXRlKEhlYXBL
aW5kIGhlYXBLaW5kLCBzaXplX3Qgc2l6ZSkKICAgICBQZXJIZWFwS2luZDxDYWNoZT4qIGNhY2hl
cyA9IFBlclRocmVhZDxQZXJIZWFwS2luZDxDYWNoZT4+OjpnZXRGYXN0Q2FzZSgpOwogICAgIGlm
ICghY2FjaGVzKQogICAgICAgICByZXR1cm4gYWxsb2NhdGVTbG93Q2FzZU51bGxDYWNoZShoZWFw
S2luZCwgc2l6ZSk7Ci0gICAgcmV0dXJuIGNhY2hlcy0+YXQobWFwVG9BY3RpdmVIZWFwS2luZEFm
dGVyRW5zdXJpbmdHaWdhY2FnZShoZWFwS2luZCkpLmFsbG9jYXRvcigpLmFsbG9jYXRlKHNpemUp
OworICAgIHJldHVybiBjYWNoZXMtPmF0KGhlYXBLaW5kKS5hbGxvY2F0b3IoKS5hbGxvY2F0ZShz
aXplKTsKIH0KIAogaW5saW5lIHZvaWQqIENhY2hlOjp0cnlBbGxvY2F0ZShIZWFwS2luZCBoZWFw
S2luZCwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpCkBAIC04NCw3ICs4NCw3IEBAIGlu
bGluZSB2b2lkKiBDYWNoZTo6dHJ5QWxsb2NhdGUoSGVhcEtpbmQgaGVhcEtpbmQsIHNpemVfdCBh
bGlnbm1lbnQsIHNpemVfdCBzaXplCiAgICAgUGVySGVhcEtpbmQ8Q2FjaGU+KiBjYWNoZXMgPSBQ
ZXJUaHJlYWQ8UGVySGVhcEtpbmQ8Q2FjaGU+Pjo6Z2V0RmFzdENhc2UoKTsKICAgICBpZiAoIWNh
Y2hlcykKICAgICAgICAgcmV0dXJuIGFsbG9jYXRlU2xvd0Nhc2VOdWxsQ2FjaGUoaGVhcEtpbmQs
IGFsaWdubWVudCwgc2l6ZSk7Ci0gICAgcmV0dXJuIGNhY2hlcy0+YXQobWFwVG9BY3RpdmVIZWFw
S2luZEFmdGVyRW5zdXJpbmdHaWdhY2FnZShoZWFwS2luZCkpLmFsbG9jYXRvcigpLnRyeUFsbG9j
YXRlKGFsaWdubWVudCwgc2l6ZSk7CisgICAgcmV0dXJuIGNhY2hlcy0+YXQoaGVhcEtpbmQpLmFs
bG9jYXRvcigpLnRyeUFsbG9jYXRlKGFsaWdubWVudCwgc2l6ZSk7CiB9CiAKIGlubGluZSB2b2lk
KiBDYWNoZTo6YWxsb2NhdGUoSGVhcEtpbmQgaGVhcEtpbmQsIHNpemVfdCBhbGlnbm1lbnQsIHNp
emVfdCBzaXplKQpAQCAtOTIsNyArOTIsNyBAQCBpbmxpbmUgdm9pZCogQ2FjaGU6OmFsbG9jYXRl
KEhlYXBLaW5kIGhlYXBLaW5kLCBzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkKICAgICBQ
ZXJIZWFwS2luZDxDYWNoZT4qIGNhY2hlcyA9IFBlclRocmVhZDxQZXJIZWFwS2luZDxDYWNoZT4+
OjpnZXRGYXN0Q2FzZSgpOwogICAgIGlmICghY2FjaGVzKQogICAgICAgICByZXR1cm4gYWxsb2Nh
dGVTbG93Q2FzZU51bGxDYWNoZShoZWFwS2luZCwgYWxpZ25tZW50LCBzaXplKTsKLSAgICByZXR1
cm4gY2FjaGVzLT5hdChtYXBUb0FjdGl2ZUhlYXBLaW5kQWZ0ZXJFbnN1cmluZ0dpZ2FjYWdlKGhl
YXBLaW5kKSkuYWxsb2NhdG9yKCkuYWxsb2NhdGUoYWxpZ25tZW50LCBzaXplKTsKKyAgICByZXR1
cm4gY2FjaGVzLT5hdChoZWFwS2luZCkuYWxsb2NhdG9yKCkuYWxsb2NhdGUoYWxpZ25tZW50LCBz
aXplKTsKIH0KIAogaW5saW5lIHZvaWQgQ2FjaGU6OmRlYWxsb2NhdGUoSGVhcEtpbmQgaGVhcEtp
bmQsIHZvaWQqIG9iamVjdCkKQEAgLTEwMCw3ICsxMDAsNyBAQCBpbmxpbmUgdm9pZCBDYWNoZTo6
ZGVhbGxvY2F0ZShIZWFwS2luZCBoZWFwS2luZCwgdm9pZCogb2JqZWN0KQogICAgIFBlckhlYXBL
aW5kPENhY2hlPiogY2FjaGVzID0gUGVyVGhyZWFkPFBlckhlYXBLaW5kPENhY2hlPj46OmdldEZh
c3RDYXNlKCk7CiAgICAgaWYgKCFjYWNoZXMpCiAgICAgICAgIHJldHVybiBkZWFsbG9jYXRlU2xv
d0Nhc2VOdWxsQ2FjaGUoaGVhcEtpbmQsIG9iamVjdCk7Ci0gICAgcmV0dXJuIGNhY2hlcy0+YXQo
bWFwVG9BY3RpdmVIZWFwS2luZEFmdGVyRW5zdXJpbmdHaWdhY2FnZShoZWFwS2luZCkpLmRlYWxs
b2NhdG9yKCkuZGVhbGxvY2F0ZShvYmplY3QpOworICAgIHJldHVybiBjYWNoZXMtPmF0KGhlYXBL
aW5kKS5kZWFsbG9jYXRvcigpLmRlYWxsb2NhdGUob2JqZWN0KTsKIH0KIAogaW5saW5lIHZvaWQq
IENhY2hlOjpyZWFsbG9jYXRlKEhlYXBLaW5kIGhlYXBLaW5kLCB2b2lkKiBvYmplY3QsIHNpemVf
dCBuZXdTaXplKQpAQCAtMTA4LDcgKzEwOCw3IEBAIGlubGluZSB2b2lkKiBDYWNoZTo6cmVhbGxv
Y2F0ZShIZWFwS2luZCBoZWFwS2luZCwgdm9pZCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkKICAg
ICBQZXJIZWFwS2luZDxDYWNoZT4qIGNhY2hlcyA9IFBlclRocmVhZDxQZXJIZWFwS2luZDxDYWNo
ZT4+OjpnZXRGYXN0Q2FzZSgpOwogICAgIGlmICghY2FjaGVzKQogICAgICAgICByZXR1cm4gcmVh
bGxvY2F0ZVNsb3dDYXNlTnVsbENhY2hlKGhlYXBLaW5kLCBvYmplY3QsIG5ld1NpemUpOwotICAg
IHJldHVybiBjYWNoZXMtPmF0KG1hcFRvQWN0aXZlSGVhcEtpbmRBZnRlckVuc3VyaW5nR2lnYWNh
Z2UoaGVhcEtpbmQpKS5hbGxvY2F0b3IoKS5yZWFsbG9jYXRlKG9iamVjdCwgbmV3U2l6ZSk7Cisg
ICAgcmV0dXJuIGNhY2hlcy0+YXQoaGVhcEtpbmQpLmFsbG9jYXRvcigpLnJlYWxsb2NhdGUob2Jq
ZWN0LCBuZXdTaXplKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgYm1hbGxvYwpkaWZmIC0tZ2l0IGEv
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5jcHAgYi9Tb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL0dpZ2FjYWdlLmNwcAppbmRleCA0YzRiZDE5ZGRiZTMwZDdiOWRiZTg1Y2UzNmM1ODgzMzIy
OTBhMzdhLi40NjNlZjE2MDYzNTlmOTVmYWU4YjUyZjBlODcxMTQxNjM1Y2U4N2ViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmNwcAorKysgYi9Tb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmNwcApAQCAtMzMsMjkgKzMzLDEyIEBACiAjaW5jbHVkZSA8
Y3N0ZGlvPgogI2luY2x1ZGUgPG11dGV4PgogCi0jaWYgQkNQVShBUk02NCkKLS8vIEZJWE1FOiBU
aGVyZSBpcyBubyBnb29kIHJlYXNvbiBmb3IgQVJNNjQgdG8gYmUgc3BlY2lhbC4KLS8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc2MDUKLSNkZWZpbmUgUFJJTUlU
SVZFX0dJR0FDQUdFX1JVTldBWSAwCi0jZWxzZQotLy8gRklYTUU6IENvbnNpZGVyIG1ha2luZyB0
aGlzIDMyR0IsIGluIGNhc2UgdW5zaWduZWQgMzItYml0IGluZGljZXMgZmluZCB0aGVpciB3YXkg
aW50byBpbmRleGVkIGFjY2Vzc2VzLgotLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NTA2MgotI2RlZmluZSBQUklNSVRJVkVfR0lHQUNBR0VfUlVOV0FZICgxNmxs
dSAqIDEwMjQgKiAxMDI0ICogMTAyNCkKLSNlbmRpZgotCi0vLyBGSVhNRTogUmVjb25zaWRlciB0
aGlzLgotLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTkyMQot
I2RlZmluZSBKU1ZBTFVFX0dJR0FDQUdFX1JVTldBWSAwCi0jZGVmaW5lIFNUUklOR19HSUdBQ0FH
RV9SVU5XQVkgMAotCiBjaGFyIGdfZ2lnYWNhZ2VCYXNlUHRyc1tHSUdBQ0FHRV9CQVNFX1BUUlNf
U0laRV0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZChHSUdBQ0FHRV9CQVNFX1BUUlNfU0laRSkpKTsK
IAogdXNpbmcgbmFtZXNwYWNlIGJtYWxsb2M7CiAKIG5hbWVzcGFjZSBHaWdhY2FnZSB7CiAKLWJv
b2wgZ193YXNFbmFibGVkOwotCiBuYW1lc3BhY2UgewogCiBib29sIHNfaXNEaXNhYmxpbmdQcmlt
aXRpdmVHaWdhY2FnZURpc2FibGVkOwpAQCAtODYsNiArNjksOCBAQCBwdWJsaWM6CiAgICAgfQog
fTsKIAorfSAvLyBhbm9ueW1vdXMgbmFtZXNwY2UKKwogc3RydWN0IENhbGxiYWNrIHsKICAgICBD
YWxsYmFjaygpIHsgfQogICAgIApAQCAtMTA1LDggKzkwLDYgQEAgc3RydWN0IFByaW1pdGl2ZURp
c2FibGVDYWxsYmFja3MgewogICAgIFZlY3RvcjxDYWxsYmFjaz4gY2FsbGJhY2tzOwogfTsKIAot
fSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCi0KIHZvaWQgZW5zdXJlR2lnYWNhZ2UoKQogewogI2lm
IEdJR0FDQUdFX0VOQUJMRUQKQEAgLTExNywyMCArMTAwLDEyIEBAIHZvaWQgZW5zdXJlR2lnYWNh
Z2UoKQogICAgICAgICAgICAgaWYgKCFzaG91bGRCZUVuYWJsZWQoKSkKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGJvb2wgb2sgPSB0cnVlOwotICAg
ICAgICAgICAgCiAgICAgICAgICAgICBmb3JFYWNoS2luZCgKICAgICAgICAgICAgICAgICBbJl0g
KEtpbmQga2luZCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoIW9rKQotICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogUmFuZG9t
aXplIHdoZXJlIHRoaXMgZ29lcy4KICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTI0NQogICAgICAgICAgICAgICAgICAgICBi
YXNlUHRyKGtpbmQpID0gdHJ5Vk1BbGxvY2F0ZShhbGlnbm1lbnQoa2luZCksIHRvdGFsU2l6ZShr
aW5kKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghYmFzZVB0cihraW5kKSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKEdJR0FDQUdFX0FMTE9DQVRJT05fQ0FOX0ZBSUwpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvayA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRkFUQUw6IENvdWxkIG5vdCBhbGxvY2F0ZSAl
cyBnaWdhY2FnZS5cbiIsIG5hbWUoa2luZCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgQkNS
QVNIKCk7CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTEzOCw0NCArMTEzLDExIEBAIHZvaWQg
ZW5zdXJlR2lnYWNhZ2UoKQogICAgICAgICAgICAgICAgICAgICB2bURlYWxsb2NhdGVQaHlzaWNh
bFBhZ2VzKGJhc2VQdHIoa2luZCksIHRvdGFsU2l6ZShraW5kKSk7CiAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghb2spIHsKLSAgICAgICAgICAgICAg
ICBmb3JFYWNoS2luZCgKLSAgICAgICAgICAgICAgICAgICAgWyZdIChLaW5kIGtpbmQpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICghYmFzZVB0cihraW5kKSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHZtRGVhbGxvY2F0ZShiYXNlUHRyKGtpbmQpLCB0b3RhbFNpemUoa2lu
ZCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBi
YXNlUHRyKGtpbmQpID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCiAgICAgICAgICAg
ICBwcm90ZWN0R2lnYWNhZ2VCYXNlUHRycygpOwotICAgICAgICAgICAgZ193YXNFbmFibGVkID0g
dHJ1ZTsKICAgICAgICAgfSk7CiAjZW5kaWYgLy8gR0lHQUNBR0VfRU5BQkxFRAogfQogCi1zaXpl
X3QgcnVud2F5KEtpbmQga2luZCkKLXsKLSAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIFBy
aW1pdGl2ZToKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4oUFJJTUlUSVZFX0dJ
R0FDQUdFX1JVTldBWSk7Ci0gICAgY2FzZSBKU1ZhbHVlOgotICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8c2l6ZV90PihKU1ZBTFVFX0dJR0FDQUdFX1JVTldBWSk7Ci0gICAgY2FzZSBTdHJpbmc6
Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+KFNUUklOR19HSUdBQ0FHRV9SVU5X
QVkpOwotICAgIH0KLSAgICBCQ1JBU0goKTsKLSAgICByZXR1cm4gMDsKLX0KLQotc2l6ZV90IHRv
dGFsU2l6ZShLaW5kIGtpbmQpCi17Ci0gICAgcmV0dXJuIHNpemUoa2luZCkgKyBydW53YXkoa2lu
ZCk7Ci19Ci0KIHZvaWQgZGlzYWJsZVByaW1pdGl2ZUdpZ2FjYWdlKCkKIHsKICAgICBlbnN1cmVH
aWdhY2FnZSgpOwpAQCAtMjQ1LDI3ICsxODcsNyBAQCBib29sIGlzRGlzYWJsaW5nUHJpbWl0aXZl
R2lnYWNhZ2VEaXNhYmxlZCgpCiAKIGJvb2wgc2hvdWxkQmVFbmFibGVkKCkKIHsKLSAgICBzdGF0
aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3RhdGljIGJvb2wgY2FjaGVkOwotICAg
IHN0ZDo6Y2FsbF9vbmNlKAotICAgICAgICBvbmNlRmxhZywKLSAgICAgICAgW10gewotICAgICAg
ICAgICAgYm9vbCByZXN1bHQgPSBHSUdBQ0FHRV9FTkFCTEVEICYmICFQZXJQcm9jZXNzPEVudmly
b25tZW50Pjo6Z2V0KCktPmlzRGVidWdIZWFwRW5hYmxlZCgpOwotICAgICAgICAgICAgaWYgKCFy
ZXN1bHQpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgCi0gICAgICAgICAg
ICBpZiAoY2hhciogZ2lnYWNhZ2VFbmFibGVkID0gZ2V0ZW52KCJHSUdBQ0FHRV9FTkFCTEVEIikp
IHsKLSAgICAgICAgICAgICAgICBpZiAoIXN0cmNhc2VjbXAoZ2lnYWNhZ2VFbmFibGVkLCAibm8i
KSB8fCAhc3RyY2FzZWNtcChnaWdhY2FnZUVuYWJsZWQsICJmYWxzZSIpIHx8ICFzdHJjYXNlY21w
KGdpZ2FjYWdlRW5hYmxlZCwgIjAiKSkgewotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgIldhcm5pbmc6IGRpc2FibGluZyBnaWdhY2FnZSBiZWNhdXNlIEdJR0FDQUdFX0VOQUJM
RUQ9JXMhXG4iLCBnaWdhY2FnZUVuYWJsZWQpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjYXNlY21wKGdpZ2FjYWdlRW5hYmxlZCwg
InllcyIpICYmIHN0cmNhc2VjbXAoZ2lnYWNhZ2VFbmFibGVkLCAidHJ1ZSIpICYmIHN0cmNhc2Vj
bXAoZ2lnYWNhZ2VFbmFibGVkLCAiMSIpKQotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgIldhcm5pbmc6IGludmFsaWQgYXJndW1lbnQgdG8gR0lHQUNBR0VfRU5BQkxFRDogJXNc
biIsIGdpZ2FjYWdlRW5hYmxlZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIGNhY2hlZCA9IHRydWU7Ci0gICAgICAgIH0pOwotICAgIAotICAgIHJldHVybiBjYWNo
ZWQ7CisgICAgcmV0dXJuIEdJR0FDQUdFX0VOQUJMRUQgJiYgIVBlclByb2Nlc3M8RW52aXJvbm1l
bnQ+OjpnZXQoKS0+aXNEZWJ1Z0hlYXBFbmFibGVkKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEdp
Z2FjYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmggYi9T
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmgKaW5kZXggM2E4MjNkYjA0YzllZjFmNmMz
NmVhM2E2MjIwZTYwYmI2MGNlYmZkMS4uM2I3NTc5YmI2N2QwYjFjNzcwNTk4MTFhMTM2NWRlYzdi
YzAxZGU2YSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5oCisr
KyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2UuaApAQCAtMzIsMTkgKzMyLDkgQEAK
ICNpbmNsdWRlIDxjc3RkZGVmPgogI2luY2x1ZGUgPGludHR5cGVzLmg+CiAKLSNpZiBCQ1BVKEFS
TTY0KQotLy8gRklYTUU6IFRoaXMgY2FuIHByb2JhYmx5IGJlIGEgbG90IGJpZ2dlciBvbiBpT1Mu
IEkganVzdCBoYXZlbid0IHRyaWVkIHRvIG1ha2UgaXQgYmlnZ2VyIHlldC4KLS8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc2MDUKLSNkZWZpbmUgUFJJTUlUSVZF
X0dJR0FDQUdFX1NJWkUgMHg0MDAwMDAwMGxsdQotI2RlZmluZSBKU1ZBTFVFX0dJR0FDQUdFX1NJ
WkUgMHg0MDAwMDAwMGxsdQotI2RlZmluZSBTVFJJTkdfR0lHQUNBR0VfU0laRSAweDQwMDAwMDAw
bGx1Ci0jZGVmaW5lIEdJR0FDQUdFX0FMTE9DQVRJT05fQ0FOX0ZBSUwgMQotI2Vsc2UKICNkZWZp
bmUgUFJJTUlUSVZFX0dJR0FDQUdFX1NJWkUgMHg4MDAwMDAwMDBsbHUKICNkZWZpbmUgSlNWQUxV
RV9HSUdBQ0FHRV9TSVpFIDB4NDAwMDAwMDAwbGx1CiAjZGVmaW5lIFNUUklOR19HSUdBQ0FHRV9T
SVpFIDB4NDAwMDAwMDAwbGx1Ci0jZGVmaW5lIEdJR0FDQUdFX0FMTE9DQVRJT05fQ0FOX0ZBSUwg
MAotI2VuZGlmCiAKICNkZWZpbmUgR0lHQUNBR0VfU0laRV9UT19NQVNLKHNpemUpICgoc2l6ZSkg
LSAxKQogCkBAIC01MiwyNSArNDIsMjcgQEAKICNkZWZpbmUgSlNWQUxVRV9HSUdBQ0FHRV9NQVNL
IEdJR0FDQUdFX1NJWkVfVE9fTUFTSyhKU1ZBTFVFX0dJR0FDQUdFX1NJWkUpCiAjZGVmaW5lIFNU
UklOR19HSUdBQ0FHRV9NQVNLIEdJR0FDQUdFX1NJWkVfVE9fTUFTSyhTVFJJTkdfR0lHQUNBR0Vf
U0laRSkKIAotI2lmIChCT1MoREFSV0lOKSAmJiAoQkNQVShBUk02NCkgfHwgQkNQVShYODZfNjQp
KSkgfHwgKEJPUyhMSU5VWCkgJiYgQkNQVShYODZfNjQpKQorLy8gRklYTUU6IENvbnNpZGVyIG1h
a2luZyB0aGlzIDMyR0IsIGluIGNhc2UgdW5zaWduZWQgMzItYml0IGluZGljZXMgZmluZCB0aGVp
ciB3YXkgaW50byBpbmRleGVkIGFjY2Vzc2VzLgorLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NTA2MgorI2RlZmluZSBQUklNSVRJVkVfR0lHQUNBR0VfUlVOV0FZ
ICgxNmxsdSAqIDEwMjQgKiAxMDI0ICogMTAyNCkKKworLy8gRklYTUU6IFJlY29uc2lkZXIgdGhp
cy4KKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU5MjEKKyNk
ZWZpbmUgSlNWQUxVRV9HSUdBQ0FHRV9SVU5XQVkgMAorI2RlZmluZSBTVFJJTkdfR0lHQUNBR0Vf
UlVOV0FZIDAKKworI2lmIChCT1MoREFSV0lOKSB8fCBCT1MoTElOVVgpKSAmJiBCQ1BVKFg4Nl82
NCkKICNkZWZpbmUgR0lHQUNBR0VfRU5BQkxFRCAxCiAjZWxzZQogI2RlZmluZSBHSUdBQ0FHRV9F
TkFCTEVEIDAKICNlbmRpZgogCi0jaWYgQkNQVShBUk02NCkKLSNkZWZpbmUgR0lHQUNBR0VfQkFT
RV9QVFJTX1NJWkUgMTYzODQKLSNlbHNlCi0jZGVmaW5lIEdJR0FDQUdFX0JBU0VfUFRSU19TSVpF
IDQwOTYKLSNlbmRpZgorI2RlZmluZSBHSUdBQ0FHRV9CQVNFX1BUUlNfU0laRSA4MTkyCiAKIGV4
dGVybiAiQyIgQkVYUE9SVCBjaGFyIGdfZ2lnYWNhZ2VCYXNlUHRyc1tHSUdBQ0FHRV9CQVNFX1BU
UlNfU0laRV0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZChHSUdBQ0FHRV9CQVNFX1BUUlNfU0laRSkp
KTsKIAogbmFtZXNwYWNlIEdpZ2FjYWdlIHsKIAotZXh0ZXJuIEJFWFBPUlQgYm9vbCBnX3dhc0Vu
YWJsZWQ7Ci1CSU5MSU5FIGJvb2wgd2FzRW5hYmxlZCgpIHsgcmV0dXJuIGdfd2FzRW5hYmxlZDsg
fQotCiBzdHJ1Y3QgQmFzZVB0cnMgewogICAgIHZvaWQqIHByaW1pdGl2ZTsKICAgICB2b2lkKiBq
c1ZhbHVlOwpAQCAtMTM1LDExICsxMjcsNiBAQCBCSU5MSU5FIHZvaWQqJiBiYXNlUHRyKEtpbmQg
a2luZCkKICAgICByZXR1cm4gYmFzZVB0cihiYXNlUHRycygpLCBraW5kKTsKIH0KIAotQklOTElO
RSBib29sIGlzRW5hYmxlZChLaW5kIGtpbmQpCi17Ci0gICAgcmV0dXJuICEhYmFzZVB0cihraW5k
KTsKLX0KLQogQklOTElORSBzaXplX3Qgc2l6ZShLaW5kIGtpbmQpCiB7CiAgICAgc3dpdGNoIChr
aW5kKSB7CkBAIC0xNjQsOCArMTUxLDI0IEBAIEJJTkxJTkUgc2l6ZV90IG1hc2soS2luZCBraW5k
KQogICAgIHJldHVybiBHSUdBQ0FHRV9TSVpFX1RPX01BU0soc2l6ZShraW5kKSk7CiB9CiAKLXNp
emVfdCBydW53YXkoS2luZCBraW5kKTsKLXNpemVfdCB0b3RhbFNpemUoS2luZCBraW5kKTsKK0JJ
TkxJTkUgc2l6ZV90IHJ1bndheShLaW5kIGtpbmQpCit7CisgICAgc3dpdGNoIChraW5kKSB7Cisg
ICAgY2FzZSBQcmltaXRpdmU6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+KFBS
SU1JVElWRV9HSUdBQ0FHRV9SVU5XQVkpOworICAgIGNhc2UgSlNWYWx1ZToKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PHNpemVfdD4oSlNWQUxVRV9HSUdBQ0FHRV9SVU5XQVkpOworICAgIGNh
c2UgU3RyaW5nOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8c2l6ZV90PihTVFJJTkdfR0lH
QUNBR0VfUlVOV0FZKTsKKyAgICB9CisgICAgQkNSQVNIKCk7CisgICAgcmV0dXJuIDA7Cit9CisK
K0JJTkxJTkUgc2l6ZV90IHRvdGFsU2l6ZShLaW5kIGtpbmQpCit7CisgICAgcmV0dXJuIHNpemUo
a2luZCkgKyBydW53YXkoa2luZCk7Cit9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CiB2b2lk
IGZvckVhY2hLaW5kKGNvbnN0IEZ1bmMmIGZ1bmMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL0hlYXAuY3BwIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmNwcAppbmRl
eCA0YWNlYjI2ZmI5MzdjMTA0YjQ1Mjg2YjUzN2E5YjI5NWUwZDkwZjYwLi4xYzE3MTBjMDczMDZh
ZDU4N2UxN2FjZjk1NjE3MzY5MWE3M2NkYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAKQEAg
LTE3Nyw4ICsxNzcsNiBAQCB2b2lkIEhlYXA6OmRlYWxsb2NhdGVMaW5lQ2FjaGUoc3RkOjpsb2Nr
X2d1YXJkPFN0YXRpY011dGV4PiYsIExpbmVDYWNoZSYgbGluZUNhYwogCiB2b2lkIEhlYXA6OmFs
bG9jYXRlU21hbGxDaHVuayhzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+JiBsb2NrLCBzaXpl
X3QgcGFnZUNsYXNzKQogewotICAgIFJFTEVBU0VfQkFTU0VSVChpc0FjdGl2ZUhlYXBLaW5kKG1f
a2luZCkpOwotICAgIAogICAgIHNpemVfdCBwYWdlU2l6ZSA9IGJtYWxsb2M6OnBhZ2VTaXplKHBh
Z2VDbGFzcyk7CiAKICAgICBDaHVuayogY2h1bmsgPSBbJl0oKSB7CkBAIC0yMjMsOCArMjIxLDYg
QEAgdm9pZCBIZWFwOjpkZWFsbG9jYXRlU21hbGxDaHVuayhDaHVuayogY2h1bmssIHNpemVfdCBw
YWdlQ2xhc3MpCiAKIFNtYWxsUGFnZSogSGVhcDo6YWxsb2NhdGVTbWFsbFBhZ2Uoc3RkOjpsb2Nr
X2d1YXJkPFN0YXRpY011dGV4PiYgbG9jaywgc2l6ZV90IHNpemVDbGFzcywgTGluZUNhY2hlJiBs
aW5lQ2FjaGUpCiB7Ci0gICAgUkVMRUFTRV9CQVNTRVJUKGlzQWN0aXZlSGVhcEtpbmQobV9raW5k
KSk7Ci0KICAgICBpZiAoIWxpbmVDYWNoZVtzaXplQ2xhc3NdLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIGxpbmVDYWNoZVtzaXplQ2xhc3NdLnBvcEZyb250KCk7CiAKQEAgLTMwNCw4ICszMDAs
NiBAQCB2b2lkIEhlYXA6OmFsbG9jYXRlU21hbGxCdW1wUmFuZ2VzQnlNZXRhZGF0YSgKICAgICBC
dW1wQWxsb2NhdG9yJiBhbGxvY2F0b3IsIEJ1bXBSYW5nZUNhY2hlJiByYW5nZUNhY2hlLAogICAg
IExpbmVDYWNoZSYgbGluZUNhY2hlKQogewotICAgIFJFTEVBU0VfQkFTU0VSVChpc0FjdGl2ZUhl
YXBLaW5kKG1fa2luZCkpOwotCiAgICAgU21hbGxQYWdlKiBwYWdlID0gYWxsb2NhdGVTbWFsbFBh
Z2UobG9jaywgc2l6ZUNsYXNzLCBsaW5lQ2FjaGUpOwogICAgIFNtYWxsTGluZSogbGluZXMgPSBw
YWdlLT5iZWdpbigpOwogICAgIEJBU1NFUlQocGFnZS0+aGFzRnJlZUxpbmVzKGxvY2spKTsKQEAg
LTM2OCw4ICszNjIsNiBAQCB2b2lkIEhlYXA6OmFsbG9jYXRlU21hbGxCdW1wUmFuZ2VzQnlPYmpl
Y3QoCiAgICAgQnVtcEFsbG9jYXRvciYgYWxsb2NhdG9yLCBCdW1wUmFuZ2VDYWNoZSYgcmFuZ2VD
YWNoZSwKICAgICBMaW5lQ2FjaGUmIGxpbmVDYWNoZSkKIHsKLSAgICBSRUxFQVNFX0JBU1NFUlQo
aXNBY3RpdmVIZWFwS2luZChtX2tpbmQpKTsKLQogICAgIHNpemVfdCBzaXplID0gYWxsb2NhdG9y
LnNpemUoKTsKICAgICBTbWFsbFBhZ2UqIHBhZ2UgPSBhbGxvY2F0ZVNtYWxsUGFnZShsb2NrLCBz
aXplQ2xhc3MsIGxpbmVDYWNoZSk7CiAgICAgQkFTU0VSVChwYWdlLT5oYXNGcmVlTGluZXMobG9j
aykpOwpAQCAtNDIyLDggKzQxNCw2IEBAIHZvaWQgSGVhcDo6YWxsb2NhdGVTbWFsbEJ1bXBSYW5n
ZXNCeU9iamVjdCgKIAogTGFyZ2VSYW5nZSBIZWFwOjpzcGxpdEFuZEFsbG9jYXRlKExhcmdlUmFu
Z2UmIHJhbmdlLCBzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSwgQWxsb2NhdGlvbktpbmQg
YWxsb2NhdGlvbktpbmQpCiB7Ci0gICAgUkVMRUFTRV9CQVNTRVJUKGlzQWN0aXZlSGVhcEtpbmQo
bV9raW5kKSk7Ci0KICAgICBMYXJnZVJhbmdlIHByZXY7CiAgICAgTGFyZ2VSYW5nZSBuZXh0Owog
CkBAIC00NzEsOCArNDYxLDYgQEAgTGFyZ2VSYW5nZSBIZWFwOjpzcGxpdEFuZEFsbG9jYXRlKExh
cmdlUmFuZ2UmIHJhbmdlLCBzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2kKIAogdm9pZCogSGVh
cDo6dHJ5QWxsb2NhdGVMYXJnZShzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+Jiwgc2l6ZV90
IGFsaWdubWVudCwgc2l6ZV90IHNpemUsIEFsbG9jYXRpb25LaW5kIGFsbG9jYXRpb25LaW5kKQog
ewotICAgIFJFTEVBU0VfQkFTU0VSVChpc0FjdGl2ZUhlYXBLaW5kKG1fa2luZCkpOwotCiAgICAg
QkFTU0VSVChpc1Bvd2VyT2ZUd28oYWxpZ25tZW50KSk7CiAgICAgCiAgICAgaWYgKG1fZGVidWdI
ZWFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwS2luZC5jcHAgYi9T
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXBLaW5kLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjM0M2I5NTg3YzQwNzRhMDAxZTUyNmU4MzI0YmMzMjZhNTA3ZGNlNy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL0hlYXBLaW5kLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgIkhlYXBL
aW5kLmgiCi0KLW5hbWVzcGFjZSBibWFsbG9jIHsKLQotYm9vbCBpc0FjdGl2ZUhlYXBLaW5kKEhl
YXBLaW5kIGtpbmQpCi17Ci0gICAgR2lnYWNhZ2U6OmVuc3VyZUdpZ2FjYWdlKCk7Ci0gICAgcmV0
dXJuIGlzQWN0aXZlSGVhcEtpbmRBZnRlckVuc3VyaW5nR2lnYWNhZ2Uoa2luZCk7Ci19Ci0KLUhl
YXBLaW5kIG1hcFRvQWN0aXZlSGVhcEtpbmQoSGVhcEtpbmQga2luZCkKLXsKLSAgICBHaWdhY2Fn
ZTo6ZW5zdXJlR2lnYWNhZ2UoKTsKLSAgICByZXR1cm4gbWFwVG9BY3RpdmVIZWFwS2luZEFmdGVy
RW5zdXJpbmdHaWdhY2FnZShraW5kKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgYm1hbGxvYwpkaWZm
IC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwS2luZC5oIGIvU291cmNlL2JtYWxs
b2MvYm1hbGxvYy9IZWFwS2luZC5oCmluZGV4IDk1YWZjZTM5NmQ1NjA4NWYzM2VkN2VlNTkzMzI3
ODVmNTUwNWE1NjkuLmZlODc2MmRmOGYyYzgwNTEzYzU5ZjliZTdkYjMxYWIyZDExN2E5MjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcEtpbmQuaAorKysgYi9Tb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL0hlYXBLaW5kLmgKQEAgLTg1LDM3ICs4NSw1IEBAIEJJTkxJTkUgSGVh
cEtpbmQgaGVhcEtpbmQoR2lnYWNhZ2U6OktpbmQga2luZCkKICAgICByZXR1cm4gSGVhcEtpbmQ6
OlByaW1hcnk7CiB9CiAKLUJJTkxJTkUgYm9vbCBpc0FjdGl2ZUhlYXBLaW5kQWZ0ZXJFbnN1cmlu
Z0dpZ2FjYWdlKEhlYXBLaW5kIGtpbmQpCi17Ci0gICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2Fz
ZSBIZWFwS2luZDo6UHJpbWl0aXZlR2lnYWNhZ2U6Ci0gICAgY2FzZSBIZWFwS2luZDo6SlNWYWx1
ZUdpZ2FjYWdlOgotICAgIGNhc2UgSGVhcEtpbmQ6OlN0cmluZ0dpZ2FjYWdlOgotICAgICAgICBp
ZiAoR2lnYWNhZ2U6Ondhc0VuYWJsZWQoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgfQotfQotCi1CRVhQT1JUIGJvb2wgaXNBY3RpdmVIZWFwS2luZChIZWFwS2luZCk7Ci0KLUJJ
TkxJTkUgSGVhcEtpbmQgbWFwVG9BY3RpdmVIZWFwS2luZEFmdGVyRW5zdXJpbmdHaWdhY2FnZShI
ZWFwS2luZCBraW5kKQotewotICAgIHN3aXRjaCAoa2luZCkgewotICAgIGNhc2UgSGVhcEtpbmQ6
OlByaW1pdGl2ZUdpZ2FjYWdlOgotICAgIGNhc2UgSGVhcEtpbmQ6OkpTVmFsdWVHaWdhY2FnZToK
LSAgICBjYXNlIEhlYXBLaW5kOjpTdHJpbmdHaWdhY2FnZToKLSAgICAgICAgaWYgKEdpZ2FjYWdl
Ojp3YXNFbmFibGVkKCkpCi0gICAgICAgICAgICByZXR1cm4ga2luZDsKLSAgICAgICAgcmV0dXJu
IEhlYXBLaW5kOjpQcmltYXJ5OwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBraW5kOwot
ICAgIH0KLX0KLQotQkVYUE9SVCBIZWFwS2luZCBtYXBUb0FjdGl2ZUhlYXBLaW5kKEhlYXBLaW5k
KTsKLQogfSAvLyBuYW1lc3BhY2UgYm1hbGxvYwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL1NjYXZlbmdlci5jcHAgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1NjYXZlbmdl
ci5jcHAKaW5kZXggYjExYTA2YzU2OTNkNDM3NjRjMGM1NDRkZGZhYzM4NWUzOGMzMTAxOS4uYWMy
YTY2ODNiMTE5YmU5YjQ3OWJlYjY0MTRlNWE0Y2E1ZGZjZjhmMSAxMDA2NDQKLS0tIGEvU291cmNl
L2JtYWxsb2MvYm1hbGxvYy9TY2F2ZW5nZXIuY3BwCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvU2NhdmVuZ2VyLmNwcApAQCAtMTE3LDExICsxMTcsOCBAQCB2b2lkIFNjYXZlbmdlcjo6c2No
ZWR1bGUoc2l6ZV90IGJ5dGVzKQogdm9pZCBTY2F2ZW5nZXI6OnNjYXZlbmdlKCkKIHsKICAgICBz
dGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+IGxvY2soSGVhcDo6bXV0ZXgoKSk7Ci0gICAgZm9y
ICh1bnNpZ25lZCBpID0gbnVtSGVhcHM7IGktLTspIHsKLSAgICAgICAgaWYgKCFpc0FjdGl2ZUhl
YXBLaW5kKHN0YXRpY19jYXN0PEhlYXBLaW5kPihpKSkpCi0gICAgICAgICAgICBjb250aW51ZTsK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1IZWFwczsgaS0tOykKICAgICAgICAgUGVyUHJvY2Vz
czxQZXJIZWFwS2luZDxIZWFwPj46OmdldCgpLT5hdChpKS5zY2F2ZW5nZShsb2NrKTsKLSAgICB9
CiB9CiAKIHZvaWQgU2NhdmVuZ2VyOjp0aHJlYWRFbnRyeVBvaW50KFNjYXZlbmdlciogc2NhdmVu
Z2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9ibWFsbG9jLmggYi9Tb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL2JtYWxsb2MuaAppbmRleCBkMTMxNzM0NGNkOTFmY2I5OTc2YWU1
OTZmOGNhOWI1MGZiOWRmNDllLi41ZDZkZDIxOGMwMmQzYjRjZjE0MWY5ZmI5OTQ5ODYwZGQzYjU0
ZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL2JtYWxsb2MuaAorKysgYi9T
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL2JtYWxsb2MuaApAQCAtNjgsNyArNjgsNiBAQCBpbmxpbmUg
dm9pZCogcmVhbGxvYyh2b2lkKiBvYmplY3QsIHNpemVfdCBuZXdTaXplLCBIZWFwS2luZCBraW5k
ID0gSGVhcEtpbmQ6OlByaQogLy8gUmV0dXJucyBudWxsIGZvciBmYWlsdXJlCiBpbmxpbmUgdm9p
ZCogdHJ5TGFyZ2VNZW1hbGlnblZpcnR1YWwoc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUs
IEhlYXBLaW5kIGtpbmQgPSBIZWFwS2luZDo6UHJpbWFyeSkKIHsKLSAgICBraW5kID0gbWFwVG9B
Y3RpdmVIZWFwS2luZChraW5kKTsKICAgICBIZWFwJiBoZWFwID0gUGVyUHJvY2VzczxQZXJIZWFw
S2luZDxIZWFwPj46OmdldCgpLT5hdChraW5kKTsKICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGlj
TXV0ZXg+IGxvY2soSGVhcDo6bXV0ZXgoKSk7CiAgICAgcmV0dXJuIGhlYXAuYWxsb2NhdGVMYXJn
ZShsb2NrLCBhbGlnbm1lbnQsIHNpemUsIEFsbG9jYXRpb25LaW5kOjpWaXJ0dWFsKTsKQEAgLTgx
LDcgKzgwLDYgQEAgaW5saW5lIHZvaWQgZnJlZSh2b2lkKiBvYmplY3QsIEhlYXBLaW5kIGtpbmQg
PSBIZWFwS2luZDo6UHJpbWFyeSkKIAogaW5saW5lIHZvaWQgZnJlZUxhcmdlVmlydHVhbCh2b2lk
KiBvYmplY3QsIEhlYXBLaW5kIGtpbmQgPSBIZWFwS2luZDo6UHJpbWFyeSkKIHsKLSAgICBraW5k
ID0gbWFwVG9BY3RpdmVIZWFwS2luZChraW5kKTsKICAgICBIZWFwJiBoZWFwID0gUGVyUHJvY2Vz
czxQZXJIZWFwS2luZDxIZWFwPj46OmdldCgpLT5hdChraW5kKTsKICAgICBzdGQ6OmxvY2tfZ3Vh
cmQ8U3RhdGljTXV0ZXg+IGxvY2soSGVhcDo6bXV0ZXgoKSk7CiAgICAgaGVhcC5kZWFsbG9jYXRl
TGFyZ2UobG9jaywgb2JqZWN0LCBBbGxvY2F0aW9uS2luZDo6VmlydHVhbCk7CkBAIC0xMDIsNyAr
MTAwLDYgQEAgaW5saW5lIHZvaWQgc2NhdmVuZ2UoKQogCiBpbmxpbmUgYm9vbCBpc0VuYWJsZWQo
SGVhcEtpbmQga2luZCA9IEhlYXBLaW5kOjpQcmltYXJ5KQogewotICAgIGtpbmQgPSBtYXBUb0Fj
dGl2ZUhlYXBLaW5kKGtpbmQpOwogICAgIHN0ZDo6dW5pcXVlX2xvY2s8U3RhdGljTXV0ZXg+IGxv
Y2soSGVhcDo6bXV0ZXgoKSk7CiAgICAgcmV0dXJuICFQZXJQcm9jZXNzPFBlckhlYXBLaW5kPEhl
YXA+Pjo6Z2V0RmFzdENhc2UoKS0+YXQoa2luZCkuZGVidWdIZWFwKCk7CiB9CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTZhNTk3NDIxNDhiZGRi
MWU1Mjk0NGVkZmZlZDJkMmFlMWIxZjZiYi4uZTM1MWQ0YTBjNTEzZDJmY2QwNjVkZjUwY2MxNDMz
YjUwZjJiODIzMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTEwLTA5ICBDb21taXQgUXVldWUgIDxjb21taXQt
cXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjIz
MDE1IGFuZCByMjIzMDI1LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc4MDkzCisKKyAgICAgICAgUmVncmVzc2VkIEtyYWtlbiBvbiBpT1MgYnkgMjAl
IChSZXF1ZXN0ZWQgYnkga2VpdGhfbWlfIG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAg
IFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIkVuYWJsZSBnaWdhY2FnZSBvbiBpT1Mi
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc1ODYK
KyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjIzMDE1CisKKyAgICAg
ICAgIlVucmV2aWV3ZWQsIGRpc2FibGUgR2lnYWNhZ2Ugb24gQVJNNjQgTGludXgiCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc1ODYKKyAgICAgICAg
aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjIzMDI1CisKIDIwMTctMTAtMDkgIFNh
bSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIEhhc2hNYXA6OmtleXMo
KSBhbmQgSGFzaE1hcDo6dmFsdWVzKCkgd29yayB3aXRoIFdURjo6bWFwL1dURjo6Y29weVRvVmVj
dG9yCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9v
bHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwppbmRleCA0YTcwN2M3NjJmNWYzNWNiMjkw
MzY3YzNmMWM5MzFkNjAzNjJkMDIzLi40MjEwOTY0YjE5YzdjMTYzMmIyZGMwNDMwZTMzMDJkNTMw
YzZmMjgxIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisr
KyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKQEAgLTUxMyw3ICs1MTMsNyBA
QCBkZWYgYmFzZU91dHB1dE5hbWUoa2luZCkKICAgICAiI3skY29sbGVjdGlvbk5hbWV9LyN7JGJl
bmNobWFya30uI3traW5kfSIKIGVuZAogCi1kZWYgYWRkUnVuQ29tbWFuZChraW5kLCBjb21tYW5k
LCBvdXRwdXRIYW5kbGVyLCBlcnJvckhhbmRsZXIsICphZGRpdGlvbmFsRW52KQorZGVmIGFkZFJ1
bkNvbW1hbmQoa2luZCwgY29tbWFuZCwgb3V0cHV0SGFuZGxlciwgZXJyb3JIYW5kbGVyKQogICAg
ICRkaWRBZGRSdW5Db21tYW5kID0gdHJ1ZQogICAgIG5hbWUgPSBiYXNlT3V0cHV0TmFtZShraW5k
KQogICAgIGlmICRmaWx0ZXIgYW5kIG5hbWUgIX4gJGZpbHRlcgpAQCAtNTIyLDcgKzUyMiw2IEBA
IGRlZiBhZGRSdW5Db21tYW5kKGtpbmQsIGNvbW1hbmQsIG91dHB1dEhhbmRsZXIsIGVycm9ySGFu
ZGxlciwgKmFkZGl0aW9uYWxFbnYpCiAgICAgcGxhbiA9IFBsYW4ubmV3KAogICAgICAgICAkYmVu
Y2htYXJrRGlyZWN0b3J5LCBjb21tYW5kLCAiI3skY29sbGVjdGlvbk5hbWV9LyN7JGJlbmNobWFy
a30iLCBuYW1lLCBvdXRwdXRIYW5kbGVyLAogICAgICAgICBlcnJvckhhbmRsZXIpCi0gICAgcGxh
bi5hZGRpdGlvbmFsRW52LnB1c2goKmFkZGl0aW9uYWxFbnYpCiAgICAgaWYgJG51bUNoaWxkUHJv
Y2Vzc2VzID4gMSBhbmQgJHJ1bkNvbW1hbmRPcHRpb25zWzppc1Nsb3ddCiAgICAgICAgICRydW5s
aXN0LnVuc2hpZnQgcGxhbgogICAgIGVsc2UKQEAgLTEzMDgsMTYgKzEzMDcsOCBAQCBkZWYgZGVm
YXVsdFJ1bk1vemlsbGFUZXN0KG1vZGUsICpleHRyYUZpbGVzKQogICAgIGVuZAogZW5kCiAKLWRl
ZiBydW5Ob2lzeVRlc3RJbXBsKGtpbmQsIG9wdGlvbnMsIGFkZGl0aW9uYWxFbnYpCi0gICAgYWRk
UnVuQ29tbWFuZChraW5kLCBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyBvcHRpb25z
ICsgWyRiZW5jaG1hcmsudG9fc10sIG5vaXN5T3V0cHV0SGFuZGxlciwgbm9pc3lFcnJvckhhbmRs
ZXIsICphZGRpdGlvbmFsRW52KQotZW5kCi0KIGRlZiBydW5Ob2lzeVRlc3Qoa2luZCwgKm9wdGlv
bnMpCi0gICAgcnVuTm9pc3lUZXN0SW1wbChraW5kLCBvcHRpb25zLCBbXSkKLWVuZAotCi1kZWYg
cnVuTm9pc3lUZXN0V2l0aEVudihraW5kLCAqYWRkaXRpb25hbEVudikKLSAgICBydW5Ob2lzeVRl
c3RJbXBsKGtpbmQsIFtdLCBhZGRpdGlvbmFsRW52KQorICAgIGFkZFJ1bkNvbW1hbmQoa2luZCwg
W3BhdGhUb1ZNLnRvX3NdICsgQkFTRV9PUFRJT05TICsgb3B0aW9ucyArIFskYmVuY2htYXJrLnRv
X3NdLCBub2lzeU91dHB1dEhhbmRsZXIsIG5vaXN5RXJyb3JIYW5kbGVyKQogZW5kCiAKIGRlZiBy
dW5Ob2lzeVRlc3REZWZhdWx0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHJ1Ynkv
anNjLXN0cmVzcy10ZXN0LXdyaXRlci1kZWZhdWx0LnJiIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRy
dWJ5L2pzYy1zdHJlc3MtdGVzdC13cml0ZXItZGVmYXVsdC5yYgppbmRleCAwNTUzZjJlYWRkM2Y3
MmYwNmYzZjMyYTcyYzUzM2QyYmRjMjI5ZTc1Li5hZWQ1NzM2ZTJmYjYxYmRmZTJjZGU5N2FhNWVh
MTMxZDI4NjAwNTg0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHJ1YnkvanNjLXN0
cmVzcy10ZXN0LXdyaXRlci1kZWZhdWx0LnJiCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cnVi
eS9qc2Mtc3RyZXNzLXRlc3Qtd3JpdGVyLWRlZmF1bHQucmIKQEAgLTIxNSw3ICsyMTUsNyBAQCBk
ZWYgY2hha3JhUGFzc0ZhaWxFcnJvckhhbmRsZXIKIGVuZAogCiBjbGFzcyBQbGFuCi0gICAgYXR0
cl9yZWFkZXIgOmRpcmVjdG9yeSwgOmFyZ3VtZW50cywgOmZhbWlseSwgOm5hbWUsIDpvdXRwdXRI
YW5kbGVyLCA6ZXJyb3JIYW5kbGVyLCA6YWRkaXRpb25hbEVudgorICAgIGF0dHJfcmVhZGVyIDpk
aXJlY3RvcnksIDphcmd1bWVudHMsIDpmYW1pbHksIDpuYW1lLCA6b3V0cHV0SGFuZGxlciwgOmVy
cm9ySGFuZGxlcgogICAgIGF0dHJfYWNjZXNzb3IgOmluZGV4CiAgICAgCiAgICAgZGVmIGluaXRp
YWxpemUoZGlyZWN0b3J5LCBhcmd1bWVudHMsIGZhbWlseSwgbmFtZSwgb3V0cHV0SGFuZGxlciwg
ZXJyb3JIYW5kbGVyKQpAQCAtMjI2LDcgKzIyNiw2IEBAIGNsYXNzIFBsYW4KICAgICAgICAgQG91
dHB1dEhhbmRsZXIgPSBvdXRwdXRIYW5kbGVyCiAgICAgICAgIEBlcnJvckhhbmRsZXIgPSBlcnJv
ckhhbmRsZXIKICAgICAgICAgQGlzU2xvdyA9ICEhJHJ1bkNvbW1hbmRPcHRpb25zWzppc1Nsb3dd
Ci0gICAgICAgIEBhZGRpdGlvbmFsRW52ID0gW10KICAgICBlbmQKICAgICAKICAgICBkZWYgc2hl
bGxDb21tYW5kCkBAIC0yMzQsNyArMjMzLDcgQEAgY2xhc3MgUGxhbgogICAgICAgICAjIGluIHRo
ZSBzdWJzaGVsbCB3aGVuIHdlIHJldHVybiB3ZSB3aWxsIGJlIGluIG91ciBvcmlnaW5hbCBkaXJl
Y3RvcnkuIFRoaXMgaXMgbmljZSBiZWNhdXNlIHdlIGRvbid0CiAgICAgICAgICMgaGF2ZSB0byBi
ZW5kIG92ZXIgYmFja3dhcmRzIHRvIGRvIHRoaW5ncyByZWxhdGl2ZSB0byB0aGUgcm9vdC4KICAg
ICAgICAgc2NyaXB0ID0gIihjZCAuLi8je1NoZWxsd29yZHMuc2hlbGxlc2NhcGUoQGRpcmVjdG9y
eS50b19zKX0gJiYgKCIKLSAgICAgICAgKCRlbnZWYXJzICsgYWRkaXRpb25hbEVudikuZWFjaCB7
IHx2YXJ8IHNjcmlwdCArPSAiZXhwb3J0ICIgPDwgdmFyIDw8ICI7ICIgfQorICAgICAgICAkZW52
VmFycy5lYWNoIHsgfHZhcnwgc2NyaXB0ICs9ICJleHBvcnQgIiA8PCB2YXIgPDwgIjsgIiB9CiAg
ICAgICAgIHNjcmlwdCArPSAiXCIkQFwiICIgKyBlc2NhcGVBbGwoQGFyZ3VtZW50cykgKyAiKSki
CiAgICAgICAgIHJldHVybiBzY3JpcHQKICAgICBlbmQKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hh
bmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2Y2Y2UzZjMwYjgyM2Q1OGQzNjEzYWMx
ZTgyZDNjNjBlNGZjNjE1MC4uNTFiOTRkZGM0MGFlZDZiYjg0NTk1OGUyZWU1OTQ4MzJmYzVkMDVm
MyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAxNy0xMC0wOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIyMzAxNSBh
bmQgcjIyMzAyNS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3ODA5MworCisgICAgICAgIFJlZ3Jlc3NlZCBLcmFrZW4gb24gaU9TIGJ5IDIwJSAoUmVx
dWVzdGVkIGJ5IGtlaXRoX21pXyBvbgorICAgICAgICAjd2Via2l0KS4KKworICAgICAgICBSZXZl
cnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJFbmFibGUgZ2lnYWNhZ2Ugb24gaU9TIgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NTg2CisgICAg
ICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIyMzAxNQorCisgICAgICAgICJV
bnJldmlld2VkLCBkaXNhYmxlIEdpZ2FjYWdlIG9uIEFSTTY0IExpbnV4IgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NTg2CisgICAgICAgIGh0dHA6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIyMzAyNQorCiAyMDE3LTEwLTA5ICBSeWFuIEhh
ZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBleHBlY3RhdGlv
bnMgZm9yIHRlc3QyNjIgdGVzdHMgdGhhdCBwYXNzIGFmdGVyIHIyMjMwNDMuCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9kaXNhYmxlLWdpZ2FjYWdlLWFycmF5cy5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2Rpc2FibGUtZ2lnYWNhZ2UtYXJyYXlzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyMTJmYjFlZTcxMjI4YjA5MjdlNDY1N2NkYzg0NDdlNGQ1YzA4ZTBmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvc3RyZXNzL2Rpc2Fi
bGUtZ2lnYWNhZ2UtYXJyYXlzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotLy9A
IHJ1bk5vaXN5VGVzdFdpdGhFbnYgImRpc2FibGUtZ2lnYWNhZ2UiLCAiR0lHQUNBR0VfRU5BQkxF
RD0wIgotCi0oZnVuY3Rpb24oKSB7Ci0gICAgZnVuY3Rpb24gZm9vKGFycmF5LCBpKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFycmF5W2ldOwotICAgIH0KLSAgICAKLSAgICBub0lubGluZShmb28p
OwotICAgIAotICAgIHZhciBhcnJheSA9IG5ldyBBcnJheSgxMDAwKTsKLSAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKQotICAgICAgICBhcnJheVtpXSA9IDUgLSBpOwot
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7Ci0gICAgICAgIHZhciByZXN1bHQg
PSAwOwotICAgICAgICB2YXIgZXhwZWN0ZWRSZXN1bHQgPSAwOwotICAgICAgICBmb3IgKHZhciBq
ID0gMDsgaiA8IGFycmF5Lmxlbmd0aDsgKytqKSB7Ci0gICAgICAgICAgICByZXN1bHQgKz0gZm9v
KGFycmF5LCBqKTsKLSAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0ICs9IDUgLSBqOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWRSZXN1bHQpCi0gICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkJhZCByZXN1bHQ6ICIgKyByZXN1bHQpOwotICAgIH0KLX0pKCk7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kaXNhYmxlLWdpZ2FjYWdlLXN0cmluZ3MuanMgYi9K
U1Rlc3RzL3N0cmVzcy9kaXNhYmxlLWdpZ2FjYWdlLXN0cmluZ3MuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDc2MWQwNjc2OWY3NjJlMmIxNzM3MTEwZjg3ZDY0YjIwZjI1OGU0NWUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9z
dHJlc3MvZGlzYWJsZS1naWdhY2FnZS1zdHJpbmdzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjUg
KzAsMCBAQAotLy9AIHJ1bk5vaXN5VGVzdFdpdGhFbnYgImRpc2FibGUtZ2lnYWNhZ2UiLCAiR0lH
QUNBR0VfRU5BQkxFRD0wIgotCi0oZnVuY3Rpb24oKSB7Ci0gICAgZnVuY3Rpb24gZm9vKGFycmF5
LCBpKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFycmF5LmNoYXJDb2RlQXQoaSk7Ci0gICAgfQot
ICAgIAotICAgIG5vSW5saW5lKGZvbyk7Ci0gICAgCi0gICAgdmFyIGFycmF5ID0gIiI7Ci0gICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkKLSAgICAgICAgYXJyYXkgKz0g
U3RyaW5nLmZyb21DaGFyQ29kZSg1IC0gaSk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
OyArK2kpIHsKLSAgICAgICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgICAgIHZhciBleHBlY3RlZFJl
c3VsdCA9IDA7Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXJyYXkubGVuZ3RoOyArK2op
IHsKLSAgICAgICAgICAgIHJlc3VsdCArPSBmb28oYXJyYXksIGopOwotICAgICAgICAgICAgZXhw
ZWN0ZWRSZXN1bHQgKz0gNSAtIGo7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdCAhPSBl
eHBlY3RlZFJlc3VsdCkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJlc3VsdDog
IiArIHJlc3VsdCk7Ci0gICAgfQotfSkoKTsKLQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
ZGlzYWJsZS1naWdhY2FnZS10eXBlZC1hcnJheXMuanMgYi9KU1Rlc3RzL3N0cmVzcy9kaXNhYmxl
LWdpZ2FjYWdlLXR5cGVkLWFycmF5cy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzY2M2MxZTU5YzNhYjU0ZjIwN2I3ZmRhMDU5M2ZhZjZhMTQwNDEyYy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9kaXNhYmxlLWdp
Z2FjYWdlLXR5cGVkLWFycmF5cy5qcworKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLS8v
QCBydW5Ob2lzeVRlc3RXaXRoRW52ICJkaXNhYmxlLWdpZ2FjYWdlIiwgIkdJR0FDQUdFX0VOQUJM
RUQ9MCIKLQotKGZ1bmN0aW9uKCkgewotICAgIGZ1bmN0aW9uIGZvbyhhcnJheSwgaSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBhcnJheVtpXTsKLSAgICB9Ci0gICAgCi0gICAgbm9JbmxpbmUoZm9v
KTsKLSAgICAKLSAgICB2YXIgYXJyYXkgPSBuZXcgSW50MzJBcnJheSgxMDAwKTsKLSAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKQotICAgICAgICBhcnJheVtpXSA9IDUg
LSBpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7Ci0gICAgICAgIHZhciBy
ZXN1bHQgPSAwOwotICAgICAgICB2YXIgZXhwZWN0ZWRSZXN1bHQgPSAwOwotICAgICAgICBmb3Ig
KHZhciBqID0gMDsgaiA8IGFycmF5Lmxlbmd0aDsgKytqKSB7Ci0gICAgICAgICAgICByZXN1bHQg
Kz0gZm9vKGFycmF5LCBqKTsKLSAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0ICs9IDUgLSBqOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWRSZXN1bHQpCi0gICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByZXN1bHQ6ICIgKyByZXN1bHQpOwotICAgIH0KLX0p
KCk7Ci0K
</data>

          </attachment>
      

    </bug>

</bugzilla>