<?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>124568</bug_id>
          
          <creation_ts>2013-11-18 23:48:34 -0800</creation_ts>
          <short_desc>REGRESSION(r159455): broke two api tests (see bug 124564) (Requested by thorton on #webkit).</short_desc>
          <delta_ts>2013-11-18 23:51:17 -0800</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>528+ (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>124325</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>951988</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-18 23:48:34 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/159455 broke the build:
broke two api tests (see bug 124564) (Requested by thorton 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>951990</commentid>
    <comment_count>1</comment_count>
      <attachid>217275</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-18 23:49:01 -0800</bug_when>
    <thetext>Created attachment 217275
ROLLOUT of r159455

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>951994</commentid>
    <comment_count>2</comment_count>
      <attachid>217275</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-18 23:51:16 -0800</bug_when>
    <thetext>Comment on attachment 217275
ROLLOUT of r159455

Clearing flags on attachment: 217275

Committed r159487: &lt;http://trac.webkit.org/changeset/159487&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951995</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-18 23:51:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217275</attachid>
            <date>2013-11-18 23:49:01 -0800</date>
            <delta_ts>2013-11-18 23:51:16 -0800</delta_ts>
            <desc>ROLLOUT of r159455</desc>
            <filename>bug-124568-20131118234901.patch</filename>
            <type>text/plain</type>
            <size>67182</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZiMjZjZjg5YjdlMWVl
NWYyOWRhNWJlNzc2MWYxNWZkOWYxMTZkOC4uZTdjNWFmNmU4MTJkZDM3OWZmY2QyMTgxZjEwNTFk
ZDQ4MTY3NzE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEzLTExLTE4ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTU5NDU1LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8xNTk0NTUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNDU2OAorCisgICAgICAgIGJyb2tlIHR3byBhcGkgdGVzdHMgKHNlZSBidWcgMTI0
NTY0KSAoUmVxdWVzdGVkIGJ5IHRob3J0b24gb24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAg
ICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTS5tbToKKyAgICAgICAgKC1bRE9NTm9kZSByZW5kZXJlZElt
YWdlXSk6CisgICAgICAgICgtW0RPTVJhbmdlIHJlbmRlcmVkSW1hZ2VGb3JjaW5nQmxhY2tUZXh0
Ol0pOgorICAgICAgICAqIGRvbS9DbGlwYm9hcmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xp
cGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2UpOgorICAgICAgICAqIGRvbS9DbGlwYm9hcmRNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZSk6CisgICAgICAg
ICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJv
bGxlcjo6c3RhcnREcmFnKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjb3BlZEZyYW1lUGFpbnRpbmdTdGF0ZTo6U2NvcGVkRnJhbWVQYWludGluZ1N0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEZyYW1lUGFpbnRpbmdTdGF0ZTo6flNjb3BlZEZy
YW1lUGFpbnRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6bm9kZUltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpkcmFnSW1hZ2VGb3JTZWxlY3Rpb24pOgorICAgICAg
ICAqIHBhZ2UvRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lU25hcHNob3R0aW5nLmg6IFJlbW92ZWQuCisg
ICAgICAgICogcGFnZS9tYWMvRnJhbWVNYWMubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2Uvd2luL0ZyYW1lV2luLmguCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6bm9kZUltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpkcmFnSW1hZ2VGb3JTZWxlY3Rpb24pOgorICAg
ICAgICAqIHBhZ2UvbWFjL0ZyYW1lU25hcHNob3R0aW5nTWFjLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2Uvd2luL0ZyYW1lV2luLmguCisgICAgICAgICogcGFnZS9tYWMvRnJhbWVT
bmFwc2hvdHRpbmdNYWMubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6aW1hZ2VGcm9tUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpzZWxlY3Rpb25JbWFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpyYW5nZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OnNuYXBzaG90RHJhZ0ltYWdlKToKKyAg
ICAgICAgKiBwYWdlL3dpbi9GcmFtZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6
ZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpub2RlSW1h
Z2UpOgorICAgICAgICAqIHBhZ2Uvd2luL0ZyYW1lV2luLmg6CisgICAgICAgICogcGxhdGZvcm0v
RHJhZ0ltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpdERyYWdJbWFnZVRvTWF4U2l6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9EcmFnSW1hZ2UuaDoKKwogMjAxMy0xMS0xOCAgTWFyayBSb3dlICA8bXJvd2VAYXBw
bGUuY29tPgogCiAgICAgICAgIFVzZSBody5hY3RpdmVjcHUgZm9yIGRldGVybWluaW5nIGhvdyBt
YW55IHByb2Nlc3NlcyB0byBzcGF3bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9zL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwppbmRleCBkMGE3ODk2ODdjMDhi
NTJhODcyNGM4OGFmNWRlOTNhMjA1MDNkM2YzLi5hYjQzNjM1MDcxYmVmODJkMTVmNjExMDMyM2Y1
Yzg1ZjI5MjhlOGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMTEt
MTggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNTk0NTUuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzE1OTQ1NQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI0NTY4CisKKyAgICAgICAgYnJva2UgdHdvIGFwaSB0ZXN0cyAoc2Vl
IGJ1ZyAxMjQ1NjQpIChSZXF1ZXN0ZWQgYnkgdGhvcnRvbiBvbgorICAgICAgICAjd2Via2l0KS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lSU9TLm1tOgorCiAyMDEzLTExLTE4
ICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KIAogICAgICAgICBDb25z
b2xpZGF0ZSB2YXJpb3VzIGZyYW1lIHNuYXBzaG90IGNhcGFiaWxpdGllcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwppbmRleCA3OGE1NGRlODE4NTY4NzYxZWNlNmUxZTQ0NjcyY2U0YjI5OGE3YzgwLi5iZGNjZTg5
NmUwMGI2Mjc4YjhiYTA2ZDlmMmI4MjVmODI3NzJkOTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTMtMTEtMTggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNTk0NTUuCisgICAg
ICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE1OTQ1NQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NTY4CisKKyAgICAgICAgYnJv
a2UgdHdvIGFwaSB0ZXN0cyAoc2VlIGJ1ZyAxMjQ1NjQpIChSZXF1ZXN0ZWQgYnkgdGhvcnRvbiBv
bgorICAgICAgICAjd2Via2l0KS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9zZWxlY3Rpb25EcmFnZ2luZ0ltYWdlXSk6CisgICAg
ICAgICgtW1dlYkhUTUxWaWV3IHNlbGVjdGlvbkltYWdlRm9yY2luZ0JsYWNrVGV4dDpdKToKKwog
MjAxMy0xMS0xOCAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2Fi
bGUgZGVwcmVjYXRpb24gd2FybmluZ3MgcmVsYXRlZCB0byBOU0NhbGVuZGFyRGF0ZSBpbiBXZWJI
aXN0b3J5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGMyZDlhNmRhMGVkNzIxMWM3ZmI5OGU3MjdiYTM2
YWQ3NzdhYjk2YjguLmZmNjM0OTk3NGEyNDMyODBiNzUyNDZiNTg0YjA1YmVjNmU4MDhkNjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAxMy0xMS0xOCAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE1OTQ1NS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
MTU5NDU1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjQ1NjgKKworICAgICAgICBicm9rZSB0d28gYXBpIHRlc3RzIChzZWUgYnVnIDEyNDU2NCkgKFJl
cXVlc3RlZCBieSB0aG9ydG9uIG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgICogRE9N
Q29yZUNsYXNzZXMuY3BwOgorICAgICAgICAoRE9NRWxlbWVudDo6cmVuZGVyZWRJbWFnZSk6CisK
KzIwMTMtMTEtMTggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNTk0MzAuCiAgICAgICAgIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE1OTQzMAogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDcx
Y2EzMjYwZTNkM2EwOTk1YmZjZGZmYzY0MTQxY2Q5Zjk1ZjNlM2IuLjQ3MGRmMjQxZWZlODk2M2Nj
NmY0Nzc1NjJkNGM1MDU2MzhiZjc1OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzI2LDcg
KzE3MjYsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9Gb2N1c0NvbnRyb2xsZXIu
Y3BwCiAgICAgcGFnZS9GcmFtZS5jcHAKICAgICBwYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ci5jcHAKLSAgICBwYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNwcAogICAgIHBhZ2UvRnJhbWVUcmVl
LmNwcAogICAgIHBhZ2UvRnJhbWVWaWV3LmNwcAogICAgIHBhZ2UvR2VzdHVyZVRhcEhpZ2hsaWdo
dGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggM2RhMDFiYWM3NjBmZTlj
YjMyM2IyZmUzYjdiYTEwOTg3YmJhMTZiNi4uMjM4ODJhNjk5ZGFjZTA2MmU3MzA0ZDM2MzQwYzRl
ZDgxNDQ1YjIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MTE4LDggKzQx
MTgsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oIFwKLQlTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNwcCBcCi0JU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVNuYXBzaG90dGluZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJl
ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmggXAogCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDhjZGQxZmY2
ZTM0YmYzNmZiOWE2NDhlODY4YjI0NzBjZmJlNzBlNDkuLjE0MjQyYjMyMTJmOWY0YWUxZDhiM2Qz
NjIyNTUyM2VlNzgxNjgyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC00MjcsNiArNDI3LDcg
QEAgX19aTjdXZWJDb3JlMTRjb29raWVzRW5hYmxlZEVSS05TXzIxTmV0d29ya1N0b3JhZ2VTZXNz
aW9uRVJLTlNfM1VSTEVTNV8KIF9fWk43V2ViQ29yZTE0ZGVjb2RlSG9zdE5hbWVFUDhOU1N0cmlu
ZwogX19aTjdXZWJDb3JlMTRlbmNvZGVIb3N0TmFtZUVQOE5TU3RyaW5nCiBfX1pON1dlYkNvcmUx
NGVuZE9mUGFyYWdyYXBoRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FTlNfMjdFZGl0aW5nQm91bmRh
cnlDcm9zc2luZ1J1bGVFCitfX1pON1dlYkNvcmUxNHNlbGVjdGlvbkltYWdlRVBOU181RnJhbWVF
YgogX19aTjdXZWJDb3JlMTRzZXRNZXRhZGF0YVVSTEVSTjNXVEY2U3RyaW5nRVJLUzFfUzRfCiBf
X1pON1dlYkNvcmUxNUFmZmluZVRyYW5zZm9ybTVmbGlwWUV2CiBfX1pON1dlYkNvcmUxNUFmZmlu
ZVRyYW5zZm9ybTVzY2FsZUVkCkBAIC04ODYsNyArODg3LDYgQEAgX19aTjdXZWJDb3JlMjdBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZUJhc2VDMkV2CiBfX1pON1dlYkNvcmUyN0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbkMxRU4zV1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFYlJLTlMxXzZTdHJp
bmdFCiBfX1pON1dlYkNvcmUyN0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazE0c2V0T3JpZW50
YXRpb25FTjNXVEYxMFBhc3NSZWZQdHJJTlNfMjFEZXZpY2VPcmllbnRhdGlvbkRhdGFFRUUKIF9f
Wk43V2ViQ29yZTI3RGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrQzFFdgotX19aTjdXZWJDb3Jl
MjdjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rpb25FUk5TXzVGcmFtZUViCiBfX1pON1dlYkNvcmUy
N3Byb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbEVSS05TXzNVUkxFUzJfCiBfX1pON1dlYkNvcmUy
N3N0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlc0VQRnZ2RQogX19aTjdXZWJDb3JlMjhEb2N1bWVu
dFN0eWxlU2hlZXRDb2xsZWN0aW9uMTJhZGRVc2VyU2hlZXRFTjNXVEY3UGFzc1JlZklOU18xOFN0
eWxlU2hlZXRDb250ZW50c0VFRQpAQCAtMjAzMiw2ICsyMDMyLDcgQEAgX19aTjdXZWJDb3JlMzhj
b250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudUV2CiBfX1pON1dlYkNvcmU0MmNv
bnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZ0V2CiBfX1pON1dlYkNvcmU0
MmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZ0V2CiBfX1pON1dlYkNv
cmU0NmNvbnRleHRNZW51SXRlbVRhZ0NvcnJlY3RTcGVsbGluZ0F1dG9tYXRpY2FsbHlFdgorX19a
TjdXZWJDb3JlNUZyYW1lOW5vZGVJbWFnZUVQTlNfNE5vZGVFCiBfX1pON1dlYkNvcmU2Q3Vyc29y
OGZyb21UeXBlRU5TMF80VHlwZUUKIF9fWk43V2ViQ29yZTZDdXJzb3JDMUVQTlNfNUltYWdlRVJL
TlNfOEludFBvaW50RQogX19aTjdXZWJDb3JlNkN1cnNvckMxRVJLUzBfCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCAyNzExZTNkODI5ZjM4
ZTQ5NDJiMDIxM2UxNzlmMzIwNDliYmNiNDhlLi44N2ZmNmRkNmU2ZmIzMmFlOTVhYTMwYWI5OWIy
ODliYzBlNjEwYjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2oKQEAgLTY5ODMsNyArNjk4Myw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxwYWdlXEZvY3VzQ29udHJvbGxlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxwYWdlXEZyYW1lLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2Vc
RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHBhZ2VcRnJhbWVTbmFwc2hvdHRpbmcuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccGFnZVxGcmFtZVRyZWUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cGFnZVxGcmFtZVZpZXcuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxH
cm91cFNldHRpbmdzLmNwcCIgLz4KQEAgLTE4ODI1LDcgKzE4ODI0LDYgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHBhZ2VcRm9jdXNEaXJlY3Rpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHBhZ2VcRnJhbWUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHBhZ2VcRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxwYWdlXEZyYW1lU25hcHNob3R0aW5nLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxwYWdlXEZyYW1lVHJlZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
cGFnZVxGcmFtZVZpZXcuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcR3Jv
dXBTZXR0aW5ncy5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDQ0NWM3ZDc2NTc5MWEyYWY2MjczMGZj
YzEzNWExYzQ4MDYzNTA4MjQuLmEyOGY0MjRkYWNjZGQzMDU4NTFkNDVmMDNkNmQzMDcyNGIzNDg1
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTcxNyw5ICs3MTcsNiBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGFnZVxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwIj4KICAgICAgIDxGaWx0
ZXI+cGFnZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccGFnZVxGcmFtZVNuYXBzaG90dGluZy5jcHAiPgotICAgICAgPEZpbHRlcj5wYWdlPC9G
aWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdl
XEZyYW1lVHJlZS5jcHAiPgogICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CkBAIC03NjI2LDkgKzc2MjMsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
cGFnZVxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCI+CiAgICAgICA8RmlsdGVyPnBhZ2U8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2Vc
RnJhbWVTbmFwc2hvdHRpbmcuaCI+Ci0gICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KLSAgICA8
L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcRnJhbWVUcmVlLmgi
PgogICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmE5
MjE4ZGViMWVhOTViOWZiNmU0YzRhYzNlNzJiN2M3MWE2M2U5MC4uMTIyYjI2YmY0ODc1ZWMwNDY0
ZmIzMDNlMmQxMDAyYTg2NDNlODFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjAwNSw2ICsyMDA1LDcgQEAKIAkJNjVBMjE0
ODUwOTdBM0Y1MzAwQjkwNTBBIC8qIEZyYW1lVHJlZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVBMjE0ODMwOTdBM0Y1MzAwQjkwNTBBIC8qIEZyYW1l
VHJlZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTY1QkYwMjJFMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUJGMDIyOTA5NzQ4MTYzMDBDNDMxOTYgLyog
RnJhbWUuY3BwICovOyB9OwogCQk2NUJGMDIyRjA5NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1QkYwMjJBMDk3
NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTY1QkYwMjQ1MDk3NDgxOTAwMEM0MzE5NiAvKiBGcmFtZU1hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1QkYwMjND
MDk3NDgxOTAwMEM0MzE5NiAvKiBGcmFtZU1hYy5tbSAqLzsgfTsKIAkJNjVDOTdBRjMwOEVBOTA4
ODAwQUNEMjczIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjVDOTdBRjIwOEVBOTA4ODAwQUNEMjczIC8qIGNvbmZpZy5oICovOyB9Owog
CQk2NUNCRkVGOTA5NzRGNjA3MDAxREFDMjUgLyogRnJhbWVWaWV3LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1Q0JGRUY3MDk3NEY2MDcwMDFEQUMy
NSAvKiBGcmFtZVZpZXcuY3BwICovOyB9OwogCQk2NUNCRkVGQTA5NzRGNjA3MDAxREFDMjUgLyog
RnJhbWVWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2NUNCRkVGODA5NzRGNjA3MDAxREFDMjUgLyogRnJhbWVWaWV3LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIyMDUsNiArMjIwNiw4IEBACiAJ
CTdDNTM0M0ZDMTdCNzRCNjMwMDQyMzJGMCAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M1MzQzRkEx
N0I3NEI2MzAwNDIzMkYwIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgKi87IH07CiAJ
CTdDNTM0M0ZEMTdCNzRCNjMwMDQyMzJGMCAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNTM0M0ZCMTdC
NzRCNjMwMDQyMzJGMCAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCAqLzsgfTsKIAkJN0ND
N0UzRDcxNzIwOEMwRjAwM0M1Mjc3IC8qIElETlNjcmlwdFdoaXRlTGlzdC50eHQgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQzdFM0Q2MTcyMDhDMEYw
MDNDNTI3NyAvKiBJRE5TY3JpcHRXaGl0ZUxpc3QudHh0ICovOyB9OworCQk3Q0UzMERBOTE3MUI2
M0QyMDBFQzMzRTEgLyogRnJhbWVTbmFwc2hvdHRpbmdNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0UzMERBNzE3MUI2M0QyMDBFQzMzRTEgLyog
RnJhbWVTbmFwc2hvdHRpbmdNYWMubW0gKi87IH07CisJCTdDRTMwREFBMTcxQjYzRDIwMEVDMzNF
MSAvKiBGcmFtZVNuYXBzaG90dGluZ01hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0NFMzBEQTgxNzFCNjNEMjAwRUMzM0UxIC8qIEZyYW1lU25hcHNo
b3R0aW5nTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJN0Q3NDFCREExNzcyMjZBQTAwODU5MTcwIC8qIENTU1ZhbHVlS2V5d29yZHMuaCBpbiBD
b3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDY1NjU4MTQ4MDlEMTMwNDMwMDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRzLmggKi87IH07CiAJ
CTdFMTJFOTBGMTVGQTVEM0EwMDVFNDEyNiAvKiBDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTEyRTkwRDE1
RkE1RDNBMDA1RTQxMjYgLyogQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5oICovOyB9OwogCQk3
RTEyRTkxMDE1RkE1RDNBMDA1RTQxMjYgLyogQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTEyRTkwRTE1
RkE1RDNBMDA1RTQxMjYgLyogQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHAgKi87IH07CkBA
IC01MjQxLDggKzUyNDQsNiBAQAogCQlDM0NGMTdBNTE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJn
ZXRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzNDRjE3QTExNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDM0NGMTdBNjE1QjAw
NjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMzQ0YxN0EyMTVCMDA2M0YwMDI3NkQz
OSAvKiBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwICovOyB9OwogCQlDM0NGMTdBNzE1QjAw
NjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDM0NGMTdBMzE1QjAwNjNGMDAyNzZEMzkg
LyogSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQzRDRDYyOUExODM4Mzc2NjAwN0VCQUYxIC8qIEZyYW1l
U25hcHNob3R0aW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM0Q0Q2Mjk4MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5jcHAg
Ki87IH07Ci0JCUM0Q0Q2MjlCMTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzRDRDYyOTkx
ODM4Mzc2NjAwN0VCQUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzUwQjU2MTYxMjExOUQyMzAwOEI0NkUw
IC8qIEdyb3VwU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzUwQjU2MTQxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuY3Bw
ICovOyB9OwogCQlDNTBCNTYxNzEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUwQjU2MTUxMjEx
OUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDNTBEMEU4MjBGRjQyNzI5MDBBQzI2NDQgLyogU3Rv
cmFnZU5hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNTBEMEU4MDBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5hbWVzcGFjZS5jcHAg
Ki87IH07CkBAIC04NzQwLDYgKzg3NDEsNyBAQAogCQk2NUE2NDBGMDA1MzNCQjFGMDA4NUU3Nzcg
LyogQmxvY2tFeGNlcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEJsb2NrRXhjZXB0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNjVCRjAyMjkwOTc0ODE2MzAwQzQz
MTk2IC8qIEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
cmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1QkYwMjJBMDk3NDgxNjMw
MEM0MzE5NiAvKiBGcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJh
bWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjVCRjAyM0MwOTc0ODE5MDAwQzQz
MTk2IC8qIEZyYW1lTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEZyYW1lTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUM5N0FGMjA4
RUE5MDg4MDBBQ0QyNzMgLyogY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDQ7IHVzZXNUYWJzID0gMDsgfTsKIAkJNjVDQkZFRjcwOTc0RjYwNzAwMURBQzI1
IC8qIEZyYW1lVmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RnJhbWVWaWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjVDQkZFRjgwOTc0
RjYwNzAwMURBQzI1IC8qIEZyYW1lVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRnJhbWVWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTY3LDYg
Kzg5NjksOCBAQAogCQk3QzYxMzZGODE3MTBDMzUyMDBGRjRBNTcgLyogSW5GaWxlc1BhcnNlci5w
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
c2NyaXB0LnBlcmw7IG5hbWUgPSBJbkZpbGVzUGFyc2VyLnBtOyBwYXRoID0gc2NyaXB0cy9JbkZp
bGVzUGFyc2VyLnBtOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzYxMzZGOTE3MTBD
MzUyMDBGRjRBNTcgLyogU3RhdGljU3RyaW5nLnBtICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucGVybDsgbmFtZSA9IFN0YXRpY1N0
cmluZy5wbTsgcGF0aCA9IHNjcmlwdHMvU3RhdGljU3RyaW5nLnBtOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3Q0M3RTNENjE3MjA4QzBGMDAzQzUyNzcgLyogSUROU2NyaXB0V2hpdGVM
aXN0LnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJRE5TY3JpcHRXaGl0ZUxpc3QudHh0OyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0UzMERBNzE3MUI2M0QyMDBFQzMzRTEgLyog
RnJhbWVTbmFwc2hvdHRpbmdNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBGcmFtZVNuYXBzaG90dGluZ01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJN0NFMzBEQTgxNzFCNjNEMjAwRUMzM0UxIC8qIEZyYW1lU25hcHNob3R0aW5nTWFjLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lU25hcHNob3R0aW5nTWFjLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFMTJFOTBEMTVGQTVEM0EwMDVFNDEyNiAv
KiBDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IEN1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuaDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9t
RmlsdGVyTWVzaEdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTEy
RTkwRTE1RkE1RDNBMDA1RTQxMjYgLyogQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXN0b21GaWx0ZXJNZXNoR2VuZXJh
dG9yLmNwcDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFMzNDRDAwMTI3RjM0MEQwMEJFOEYxNyAvKiBQ
dXJnZVByaW9yaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1cmdlUHJp
b3JpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMjcwLDggKzEyMjc0LDYg
QEAKIAkJQzNDRjE3QTExNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWRUYXJnZXRPYnNlcnZlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDM0NGMTdBMjE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJn
ZXRPYnNlcnZlclJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMzQ0YxN0EzMTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyUmVnaXN0
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWRUYXJnZXRPYnNlcnZlclJl
Z2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM0Q0Q2Mjk4MTgzODM3NjYw
MDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGcmFtZVNuYXBzaG90dGluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUM0Q0Q2Mjk5MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZVNuYXBzaG90dGluZy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTBCNTYxNDEyMTE5RDIzMDA4QjQ2RTAgLyog
R3JvdXBTZXR0aW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBH
cm91cFNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUwQjU2MTUx
MjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR3JvdXBTZXR0aW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDNTBEMEU4MDBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5hbWVzcGFjZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlTmFtZXNwYWNlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NjA1LDggKzE1NjA3LDYgQEAKIAkJCQk2NUJG
MDIyQTA5NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuaCAqLywKIAkJCQk5NzRBODYyMDE0QjdBREJC
MDAzRkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcCAqLywKIAkJCQk5NzRBODYy
MTE0QjdBREJCMDAzRkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmggKi8sCi0JCQkJ
QzRDRDYyOTgxODM4Mzc2NjAwN0VCQUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmNwcCAqLywKLQkJ
CQlDNENENjI5OTE4MzgzNzY2MDA3RUJBRjEgLyogRnJhbWVTbmFwc2hvdHRpbmcuaCAqLywKIAkJ
CQk2NUEyMTQ4MjA5N0EzRjUzMDBCOTA1MEEgLyogRnJhbWVUcmVlLmNwcCAqLywKIAkJCQk2NUEy
MTQ4MzA5N0EzRjUzMDBCOTA1MEEgLyogRnJhbWVUcmVlLmggKi8sCiAJCQkJNjVDQkZFRjcwOTc0
RjYwNzAwMURBQzI1IC8qIEZyYW1lVmlldy5jcHAgKi8sCkBAIC0xNjUyMSw2ICsxNjUyMSw5IEBA
CiAJCQkJQUJBRjIyMDcwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9tZU1hYy5tbSAqLywKIAkJCQlB
NzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi8sCiAJCQkJ
OTNDMDlBN0UwQjA2NEVFRjAwNUFCRDREIC8qIEV2ZW50SGFuZGxlck1hYy5tbSAqLywKKwkJCQk2
NUJGMDIzQzA5NzQ4MTkwMDBDNDMxOTYgLyogRnJhbWVNYWMubW0gKi8sCisJCQkJN0NFMzBEQTgx
NzFCNjNEMjAwRUMzM0UxIC8qIEZyYW1lU25hcHNob3R0aW5nTWFjLmggKi8sCisJCQkJN0NFMzBE
QTcxNzFCNjNEMjAwRUMzM0UxIC8qIEZyYW1lU25hcHNob3R0aW5nTWFjLm1tICovLAogCQkJCTFD
MjY0OTdCMEQ3RTI0RUMwMEJEMTBGMiAvKiBQYWdlTWFjLmNwcCAqLywKIAkJCQlFMUMyRjI0ODE1
MzNBMjEyMDA4M0Y5NzQgLyogU2V0dGluZ3NNYWMubW0gKi8sCiAJCQkJRjU4Nzg1NEMwMkRFMzc1
OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLywKQEAgLTIyMTE5LDcgKzIyMTIyLDYg
QEAKIAkJCQkxQTU2OUNGODBEN0UyQjgyMDA3QzM5ODMgLyogY19jbGFzcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE1NjlDRkEwRDdFMkI4MjAwN0MzOTgzIC8qIGNfaW5zdGFuY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBNTY5Q0ZDMEQ3RTJCODIwMDdDMzk4MyAvKiBjX3J1bnRpbWUuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUM0Q0Q2MjlCMTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90
dGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NjlDRkUwRDdFMkI4MjAwN0MzOTgzIC8qIGNf
dXRpbGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMUEwOTc5QzNCRDAwNDY3NzQxIC8q
IENhY2hlZENTU1N0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjRCNENDMENCNDI5
NUQwMDVGMkI2MiAvKiBDYWNoZWRGb250LmggaW4gSGVhZGVycyAqLywKQEAgLTIyOTc5LDYgKzIy
OTgxLDcgQEAKIAkJCQk2MjhEMjE0RTEyMTMxRUY0MDA1NURDRkMgLyogRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE3MkFGNzAxODBGMjg5NTAwRkJBREI5IC8q
IENyeXB0b0tleVVzYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUwRTA5OUU2NDkyMDA1
NkU1ODEgLyogRnJhbWVTZWxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTdDRTMwREFBMTcx
QjYzRDIwMEVDMzNFMSAvKiBGcmFtZVNuYXBzaG90dGluZ01hYy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNjVBMjE0ODUwOTdBM0Y1MzAwQjkwNTBBIC8qIEZyYW1lVHJlZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjVDQkZFRkEwOTc0RjYwNzAwMURBQzI1IC8qIEZyYW1lVmlldy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTcyMDVBQjAxMjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50
LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MjU4LDggKzI2MjYxLDEwIEBACiAJCQkJOTMyRTE2MDkw
QUY1NzgzNDAwMjVGNDA4IC8qIEZyYW1lTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQw
MDBFQkEyMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk4NkJBNzY2RTE2NjQyN0E4MDA1QkU1RDEgLyogRnJhbWVMb2FkUmVx
dWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk2NUJGMDI0NTA5NzQ4MTkwMDBDNDMxOTYgLyog
RnJhbWVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUwRDA5OUU2NDkyMDA1NkU1ODEg
LyogRnJhbWVTZWxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEE4Qzk2RUIwQkU2OTAz
MjAwNEVFRkYwIC8qIEZyYW1lU2VsZWN0aW9uTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJN0NF
MzBEQTkxNzFCNjNEMjAwRUMzM0UxIC8qIEZyYW1lU25hcHNob3R0aW5nTWFjLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDc5NjlEQUQxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDRGF0YUNoYW5uZWxF
dmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NUEyMTQ4NDA5N0EzRjUzMDBCOTA1MEEgLyog
RnJhbWVUcmVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0QzkxQTEwMTgwMjM0MzkwMEExN0Y2
RCAvKiBUZXh0UGFpbnRTdHlsZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3NzY1LDcgKzI3Nzcw
LDYgQEAKIAkJCQk1MUUwQkIzOTBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzI3N0U1MjE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVh
bVRyYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1MEQwRTgyMEZGNDI3MjkwMEFDMjY0NCAv
KiBTdG9yYWdlTmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUM0Q0Q2MjlBMTgzODM3
NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
NTVFMzhDMDEwMDQwRDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUFCMDlEQjQxNkFGNUY2QzAwODUzOEU3IC8qIFN0b3JhZ2VTdHJhdGVn
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTEwMkQ5NTBGRDlBQTJEMDBGQUZGMDQgLyogU3Rv
cmFnZVN5bmNNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTS5tbQppbmRleCBhNmFjMzk5YzBlNzc2NDM1OWQ1YTkyZjNmZWVlY2JhYzBmMjViY2JhLi5j
YzAzNjU1MjZlMzE2ZTA1ZDViMTViYjc0NDRjM2JiMmJjZmE5MDUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTS5tbQpAQCAtMzYsOSArMzYsOSBAQAogI2ltcG9ydCAiRE9NTm9kZUludGVy
bmFsLmgiCiAjaW1wb3J0ICJET01Qcml2YXRlLmgiCiAjaW1wb3J0ICJET01SYW5nZUludGVybmFs
LmgiCi0jaW1wb3J0ICJEcmFnSW1hZ2UuaCIKICNpbXBvcnQgIkZvbnQuaCIKICNpbXBvcnQgIkZy
YW1lLmgiCisjaW1wb3J0ICJGcmFtZVNuYXBzaG90dGluZ01hYy5oIgogI2ltcG9ydCAiSFRNTEVs
ZW1lbnQuaCIKICNpbXBvcnQgIkhUTUxOYW1lcy5oIgogI2ltcG9ydCAiSFRNTFBhcnNlcklkaW9t
cy5oIgpAQCAtMjg3LDkgKzI4Nyw5IEBAIGlkIDxET01FdmVudFRhcmdldD4ga2l0KFdlYkNvcmU6
OkV2ZW50VGFyZ2V0KiBldmVudFRhcmdldCkKICAgICAvLyBGSVhNRTogQ291bGQgd2UgbW92ZSB0
aGlzIGZ1bmN0aW9uIHRvIFdlYkNvcmU6Ok5vZGUgYW5kIGF1dG9nZW5lcmF0ZT8KICAgICBXZWJD
b3JlOjpOb2RlKiBub2RlID0gY29yZShzZWxmKTsKICAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUg
PSBub2RlLT5kb2N1bWVudCgpLmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSB8fCAhbm9kZSkKKyAg
ICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIHJldHVybiBbW2NyZWF0ZURy
YWdJbWFnZUZvck5vZGUoKmZyYW1lLCAqbm9kZSkgcmV0YWluXSBhdXRvcmVsZWFzZV07CisgICAg
cmV0dXJuIGZyYW1lLT5ub2RlSW1hZ2Uobm9kZSkuZ2V0KCk7CiB9CiAKIC0gKE5TQXJyYXkgKil0
ZXh0UmVjdHMKQEAgLTMzMiwxMCArMzMyLDEwIEBAIGlkIDxET01FdmVudFRhcmdldD4ga2l0KFdl
YkNvcmU6OkV2ZW50VGFyZ2V0KiBldmVudFRhcmdldCkKIHsKICAgICBXZWJDb3JlOjpSYW5nZSog
cmFuZ2UgPSBjb3JlKHNlbGYpOwogICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IHJhbmdlLT5v
d25lckRvY3VtZW50KCkuZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lIHx8ICFyYW5nZSkKKyAgICBp
ZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgcmV0dXJuIFtbY3JlYXRlRHJh
Z0ltYWdlRm9yUmFuZ2UoKmZyYW1lLCAqcmFuZ2UsIGZvcmNlQmxhY2tUZXh0KSByZXRhaW5dIGF1
dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gV2ViQ29yZTo6cmFuZ2VJbWFnZShmcmFtZSwgcmFuZ2Us
IGZvcmNlQmxhY2tUZXh0KTsKIH0KIAogLSAoTlNBcnJheSAqKXRleHRSZWN0cwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Q2xpcGJvYXJkLmNwcAppbmRleCAzMDdmY2MxNWY3ZDA4MDhmY2RlZDY0OWEyNzJlYmMwY2I2ODAz
NTczLi45ZDJlMjc1MmZkZjJiN2M2NjQyYTI0MjRmODgwNjNlYzhhNzFjN2M4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQ2xpcGJvYXJkLmNwcApAQCAtMjc3LDExICsyNzcsMTAgQEAgRHJhZ0ltYWdlUmVmIENsaXBi
b2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBsb2NhdGlvbikgY29uc3QKIAogICAgIGlm
IChtX2RyYWdJbWFnZUVsZW1lbnQpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZHJh
Z0ltYWdlRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAgICAgICAgcmV0dXJuIGNy
ZWF0ZURyYWdJbWFnZUZvck5vZGUoKmZyYW1lLCAqbV9kcmFnSW1hZ2VFbGVtZW50KTsKKyAgICAg
ICAgICAgIHJldHVybiBmcmFtZS0+bm9kZUltYWdlKG1fZHJhZ0ltYWdlRWxlbWVudC5nZXQoKSk7
CiAgICAgfQogCi0gICAgLy8gV2UgZG8gbm90IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGNy
ZWF0ZSBhIGRyYWcgaW1hZ2UsIHVzZSB0aGUgZGVmYXVsdCBpY29uLgotICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiAwOyAvLyBXZSBkbyBub3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24g
dG8gY3JlYXRlIGEgZHJhZyBpbWFnZSwgdXNlIHRoZSBkZWZhdWx0IGljb24uCiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZE1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmRNYWMubW0KaW5kZXggYTA5YjMwYTRhNjY4M2JhMWZkN2Zi
NDVmYTg5YjJkYmVjMDBjMzI0ZS4uNzZjYTZmY2EzZTQyNDA3YjVmOGU3YjM1ZTY1ODczN2MyMTEz
ZThmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZE1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkTWFjLm1tCkBAIC0yOCw3ICsyOCw3IEBACiAK
ICNpbXBvcnQgIkNhY2hlZEltYWdlLmgiCiAjaW1wb3J0ICJFbGVtZW50LmgiCi0jaW1wb3J0ICJE
cmFnSW1hZ2UuaCIKKyNpbXBvcnQgIkZyYW1lU25hcHNob3R0aW5nTWFjLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMzcsMTYgKzM3LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8v
IENsaXBib2FyZDo6ZHJhZ0ltYWdlIGluIENsaXBib2FyZC5jcHAgZG9lcyBub3QgaGFuZGxlIGNv
cnJlY3RseSwgc28gbXVzdCByZXNvbHZlIHRoYXQgYXMgd2VsbC4KIERyYWdJbWFnZVJlZiBDbGlw
Ym9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgbG9jYXRpb24pIGNvbnN0CiB7Ci0gICAg
RHJhZ0ltYWdlUmVmIHJlc3VsdCA9IG5pbDsKKyAgICBOU0ltYWdlICpyZXN1bHQgPSBuaWw7CiAg
ICAgaWYgKG1fZHJhZ0ltYWdlRWxlbWVudCkgewogICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0g
bV9kcmFnSW1hZ2VFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpIHsKLSAgICAgICAgICAgIElu
dFJlY3QgaW1hZ2VSZWN0OwotICAgICAgICAgICAgSW50UmVjdCBlbGVtZW50UmVjdDsKLSAgICAg
ICAgICAgIHJlc3VsdCA9IGNyZWF0ZURyYWdJbWFnZUZvckltYWdlKCpmcmFtZSwgKm1fZHJhZ0lt
YWdlRWxlbWVudCwgaW1hZ2VSZWN0LCBlbGVtZW50UmVjdCk7CisgICAgICAgICAgICBOU1JlY3Qg
aW1hZ2VSZWN0OworICAgICAgICAgICAgTlNSZWN0IGVsZW1lbnRSZWN0OworICAgICAgICAgICAg
cmVzdWx0ID0gc25hcHNob3REcmFnSW1hZ2UoZnJhbWUsIG1fZHJhZ0ltYWdlRWxlbWVudC5nZXQo
KSwgJmltYWdlUmVjdCwgJmVsZW1lbnRSZWN0KTsKICAgICAgICAgICAgIC8vIENsaWVudCBzcGVj
aWZpZXMgcG9pbnQgcmVsYXRpdmUgdG8gZWxlbWVudCwgbm90IHRoZSB3aG9sZSBpbWFnZSwgd2hp
Y2ggbWF5IGluY2x1ZGUgY2hpbGQKICAgICAgICAgICAgIC8vIGxheWVycyBzcHJlYWQgb3V0IGFs
bCBvdmVyIHRoZSBwbGFjZS4KLSAgICAgICAgICAgIGxvY2F0aW9uLnNldFgoZWxlbWVudFJlY3Qu
eCgpIC0gaW1hZ2VSZWN0LngoKSArIG1fZHJhZ0xvY2F0aW9uLngoKSk7Ci0gICAgICAgICAgICBs
b2NhdGlvbi5zZXRZKGltYWdlUmVjdC5oZWlnaHQoKSAtIChlbGVtZW50UmVjdC55KCkgLSBpbWFn
ZVJlY3QueSgpICsgbV9kcmFnTG9jYXRpb24ueSgpKSk7CisgICAgICAgICAgICBsb2NhdGlvbi5z
ZXRYKGVsZW1lbnRSZWN0Lm9yaWdpbi54IC0gaW1hZ2VSZWN0Lm9yaWdpbi54ICsgbV9kcmFnTG9j
YXRpb24ueCgpKTsKKyAgICAgICAgICAgIGxvY2F0aW9uLnNldFkoaW1hZ2VSZWN0LnNpemUuaGVp
Z2h0IC0gKGVsZW1lbnRSZWN0Lm9yaWdpbi55IC0gaW1hZ2VSZWN0Lm9yaWdpbi55ICsgbV9kcmFn
TG9jYXRpb24ueSgpKSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1fZHJhZ0ltYWdlKSB7
CiAgICAgICAgIHJlc3VsdCA9IG1fZHJhZ0ltYWdlLT5pbWFnZSgpLT5nZXROU0ltYWdlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGY4NjZkY2ZkZmJiMjdjZWM1
NjU5NjVjY2JjMzVjZDU3ODI5OTg2ZGIuLjdlYjI0OWRmN2ZmOWI1NWE4ZWNlNWFlN2ZmNDcyZTBj
ZDdiYWMyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0zNyw3
ICszNyw2IEBACiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNpbmNsdWRlICJEcmFnQ2xpZW50
LmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKLSNpbmNsdWRlICJEcmFnSW1hZ2UuaCIKICNpbmNs
dWRlICJEcmFnU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkRyYWdTdGF0ZS5oIgogI2luY2x1ZGUgIkVk
aXRvci5oIgpAQCAtNzgxLDcgKzc4MCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJh
ZyhGcmFtZSYgc3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9uCiAgICAg
ICAgIH0KICAgICAgICAgbV9jbGllbnQud2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKERyYWdT
b3VyY2VBY3Rpb25TZWxlY3Rpb24sIGRyYWdPcmlnaW4sIGNsaXBib2FyZCk7CiAgICAgICAgIGlm
ICghZHJhZ0ltYWdlKSB7Ci0gICAgICAgICAgICBkcmFnSW1hZ2UgPSBkaXNzb2x2ZURyYWdJbWFn
ZVRvRnJhY3Rpb24oY3JlYXRlRHJhZ0ltYWdlRm9yU2VsZWN0aW9uKHNyYyksIERyYWdJbWFnZUFs
cGhhKTsKKyAgICAgICAgICAgIGRyYWdJbWFnZSA9IGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlv
bihzcmMuZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKCksIERyYWdJbWFnZUFscGhhKTsKICAgICAgICAg
ICAgIGRyYWdMb2MgPSBkcmFnTG9jRm9yU2VsZWN0aW9uRHJhZyhzcmMpOwogICAgICAgICAgICAg
bV9kcmFnT2Zmc2V0ID0gSW50UG9pbnQoZHJhZ09yaWdpbi54KCkgLSBkcmFnTG9jLngoKSwgZHJh
Z09yaWdpbi55KCkgLSBkcmFnTG9jLnkoKSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAK
aW5kZXggNWMwMzYxMWU4Yjc1MWY5MTZkZTJlZDRiNzI2YjYzNjFiNzJmYWExNS4uNjI0MWVlM2M5
NTJiNDYxNTVjMjkyMDZiMDhmOTAxZTAwZTUyZjU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAg
LTk2Niw0ICs5NjYsMTA4IEBAIGJvb2wgRnJhbWU6OmlzVVJMQWxsb3dlZChjb25zdCBVUkwmIHVy
bCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorI2lmICFQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShXSU4pCitzdHJ1Y3QgU2NvcGVkRnJhbWVQYWludGluZ1N0YXRlIHsKKyAgICBTY29w
ZWRGcmFtZVBhaW50aW5nU3RhdGUoRnJhbWUqIGZyYW1lLCBOb2RlKiBub2RlKQorICAgICAgICA6
IGZyYW1lKGZyYW1lKQorICAgICAgICAsIG5vZGUobm9kZSkKKyAgICAgICAgLCBwYWludEJlaGF2
aW9yKGZyYW1lLT52aWV3KCktPnBhaW50QmVoYXZpb3IoKSkKKyAgICAgICAgLCBiYWNrZ3JvdW5k
Q29sb3IoZnJhbWUtPnZpZXcoKS0+YmFzZUJhY2tncm91bmRDb2xvcigpKQorICAgIHsKKyAgICAg
ICAgQVNTRVJUKCFub2RlIHx8IG5vZGUtPnJlbmRlcmVyKCkpOworICAgICAgICBpZiAobm9kZSkK
KyAgICAgICAgICAgIG5vZGUtPnJlbmRlcmVyKCktPnVwZGF0ZURyYWdTdGF0ZSh0cnVlKTsKKyAg
ICB9CisKKyAgICB+U2NvcGVkRnJhbWVQYWludGluZ1N0YXRlKCkKKyAgICB7CisgICAgICAgIGlm
IChub2RlICYmIG5vZGUtPnJlbmRlcmVyKCkpCisgICAgICAgICAgICBub2RlLT5yZW5kZXJlcigp
LT51cGRhdGVEcmFnU3RhdGUoZmFsc2UpOworICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRQYWlu
dEJlaGF2aW9yKHBhaW50QmVoYXZpb3IpOworICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRCYXNl
QmFja2dyb3VuZENvbG9yKGJhY2tncm91bmRDb2xvcik7CisgICAgICAgIGZyYW1lLT52aWV3KCkt
PnNldE5vZGVUb0RyYXcoMCk7CisgICAgfQorCisgICAgRnJhbWUqIGZyYW1lOworICAgIE5vZGUq
IG5vZGU7CisgICAgUGFpbnRCZWhhdmlvciBwYWludEJlaGF2aW9yOworICAgIENvbG9yIGJhY2tn
cm91bmRDb2xvcjsKK307CisKK0RyYWdJbWFnZVJlZiBGcmFtZTo6bm9kZUltYWdlKE5vZGUqIG5v
ZGUpCit7CisgICAgaWYgKCFub2RlLT5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIGNvbnN0IFNjb3BlZEZyYW1lUGFpbnRpbmdTdGF0ZSBzdGF0ZSh0aGlzLCBub2Rl
KTsKKworICAgIG1fdmlldy0+c2V0UGFpbnRCZWhhdmlvcihzdGF0ZS5wYWludEJlaGF2aW9yIHwg
UGFpbnRCZWhhdmlvckZsYXR0ZW5Db21wb3NpdGluZ0xheWVycyk7CisKKyAgICAvLyBXaGVuIGdl
bmVyYXRpbmcgdGhlIGRyYWcgaW1hZ2UgZm9yIGFuIGVsZW1lbnQsIGlnbm9yZSB0aGUgZG9jdW1l
bnQgYmFja2dyb3VuZC4KKyAgICBtX3ZpZXctPnNldEJhc2VCYWNrZ3JvdW5kQ29sb3IoQ29sb3I6
OnRyYW5zcGFyZW50KTsKKyAgICBtX2RvYy0+dXBkYXRlTGF5b3V0KCk7CisgICAgbV92aWV3LT5z
ZXROb2RlVG9EcmF3KG5vZGUpOyAvLyBFbmFibGUgc3BlY2lhbCBzdWItdHJlZSBkcmF3aW5nIG1v
ZGUuCisKKyAgICAvLyBEb2N1bWVudDo6dXBkYXRlTGF5b3V0IG1heSBoYXZlIGJsb3duIGF3YXkg
dGhlIG9yaWdpbmFsIHJlbmRlcmVyLgorICAgIGF1dG8gcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJl
cigpOworICAgIGlmICghcmVuZGVyZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
TGF5b3V0UmVjdCB0b3BMZXZlbFJlY3Q7CisgICAgSW50UmVjdCBwYWludGluZ1JlY3QgPSBwaXhl
bFNuYXBwZWRJbnRSZWN0KHJlbmRlcmVyLT5wYWludGluZ1Jvb3RSZWN0KHRvcExldmVsUmVjdCkp
OworCisgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSAxOworICAgIGlmIChtX3BhZ2UpCisg
ICAgICAgIGRldmljZVNjYWxlRmFjdG9yID0gbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpOwor
ICAgIHBhaW50aW5nUmVjdC5zZXRXaWR0aChwYWludGluZ1JlY3Qud2lkdGgoKSAqIGRldmljZVNj
YWxlRmFjdG9yKTsKKyAgICBwYWludGluZ1JlY3Quc2V0SGVpZ2h0KHBhaW50aW5nUmVjdC5oZWln
aHQoKSAqIGRldmljZVNjYWxlRmFjdG9yKTsKKworICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVm
ZmVyKEltYWdlQnVmZmVyOjpjcmVhdGUocGFpbnRpbmdSZWN0LnNpemUoKSwgZGV2aWNlU2NhbGVG
YWN0b3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpKTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgYnVmZmVyLT5jb250ZXh0KCktPnRyYW5zbGF0ZSgtcGFpbnRp
bmdSZWN0LngoKSwgLXBhaW50aW5nUmVjdC55KCkpOworICAgIGJ1ZmZlci0+Y29udGV4dCgpLT5j
bGlwKEZsb2F0UmVjdCgwLCAwLCBwYWludGluZ1JlY3QubWF4WCgpLCBwYWludGluZ1JlY3QubWF4
WSgpKSk7CisKKyAgICBtX3ZpZXctPnBhaW50Q29udGVudHMoYnVmZmVyLT5jb250ZXh0KCksIHBh
aW50aW5nUmVjdCk7CisKKyAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gYnVmZmVyLT5jb3B5SW1h
Z2UoKTsKKworICAgIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBvcmllbnRhdGlvbkRlc2Ny
aXB0aW9uKHJlbmRlcmVyLT5zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpKTsKKyNpZiBF
TkFCTEUoQ1NTX0lNQUdFX09SSUVOVEFUSU9OKQorICAgIG9yaWVudGF0aW9uRGVzY3JpcHRpb24u
c2V0SW1hZ2VPcmllbnRhdGlvbkVudW0ocmVuZGVyZXItPnN0eWxlKCkuaW1hZ2VPcmllbnRhdGlv
bigpKTsKKyNlbmRpZgorICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoaW1hZ2Uu
Z2V0KCksIG9yaWVudGF0aW9uRGVzY3JpcHRpb24pOworfQorCitEcmFnSW1hZ2VSZWYgRnJhbWU6
OmRyYWdJbWFnZUZvclNlbGVjdGlvbigpCit7CisgICAgaWYgKCFzZWxlY3Rpb24oKS5pc1Jhbmdl
KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgY29uc3QgU2NvcGVkRnJhbWVQYWludGluZ1N0
YXRlIHN0YXRlKHRoaXMsIDApOworICAgIG1fdmlldy0+c2V0UGFpbnRCZWhhdmlvcihQYWludEJl
aGF2aW9yU2VsZWN0aW9uT25seSk7CisgICAgbV9kb2MtPnVwZGF0ZUxheW91dCgpOworCisgICAg
SW50UmVjdCBwYWludGluZ1JlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHNlbGVjdGlvbigpLmJvdW5k
cygpKTsKKworICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gMTsKKyAgICBpZiAobV9wYWdl
KQorICAgICAgICBkZXZpY2VTY2FsZUZhY3RvciA9IG1fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3Io
KTsKKyAgICBwYWludGluZ1JlY3Quc2V0V2lkdGgocGFpbnRpbmdSZWN0LndpZHRoKCkgKiBkZXZp
Y2VTY2FsZUZhY3Rvcik7CisgICAgcGFpbnRpbmdSZWN0LnNldEhlaWdodChwYWludGluZ1JlY3Qu
aGVpZ2h0KCkgKiBkZXZpY2VTY2FsZUZhY3Rvcik7CisKKyAgICBPd25QdHI8SW1hZ2VCdWZmZXI+
IGJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHBhaW50aW5nUmVjdC5zaXplKCksIGRldmljZVNj
YWxlRmFjdG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKSk7CisgICAgaWYgKCFidWZmZXIpCisgICAg
ICAgIHJldHVybiAwOworICAgIGJ1ZmZlci0+Y29udGV4dCgpLT50cmFuc2xhdGUoLXBhaW50aW5n
UmVjdC54KCksIC1wYWludGluZ1JlY3QueSgpKTsKKyAgICBidWZmZXItPmNvbnRleHQoKS0+Y2xp
cChGbG9hdFJlY3QoMCwgMCwgcGFpbnRpbmdSZWN0Lm1heFgoKSwgcGFpbnRpbmdSZWN0Lm1heFko
KSkpOworCisgICAgbV92aWV3LT5wYWludENvbnRlbnRzKGJ1ZmZlci0+Y29udGV4dCgpLCBwYWlu
dGluZ1JlY3QpOworCisgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdl
KCk7CisgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShpbWFnZS5nZXQoKSwgSW1h
Z2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IDVmMTg2NmZlMjAyZmNmZWE2NDQyYzBiYmVm
ODIwZjU2ZWQyM2U3NGQuLjg0MDdlOWUyYmNmM2VlZmVkZGJmMDUzMWJlNmNlOTI3OTQ1NzI3N2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNkZWZpbmUgRnJhbWVfaAogCiAj
aW5jbHVkZSAiQWRqdXN0Vmlld1NpemVPck5vdC5oIgorI2luY2x1ZGUgIkRyYWdJbWFnZS5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVk
ZSAiSW50UmVjdC5oIgpAQCAtNTcsMTMgKzU4LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBjbGFzcyBFZGl0b3I7CiAgICAgY2xhc3MgRWxlbWVudDsKICAgICBjbGFzcyBFdmVudEhhbmRs
ZXI7Ci0gICAgY2xhc3MgRmxvYXRTaXplOwogICAgIGNsYXNzIEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlcjsKICAgICBjbGFzcyBGcmFtZVNlbGVjdGlvbjsKICAgICBjbGFzcyBGcmFtZVZpZXc7CiAg
ICAgY2xhc3MgSFRNTEZyYW1lT3duZXJFbGVtZW50OwogICAgIGNsYXNzIEhUTUxUYWJsZUNlbGxF
bGVtZW50OwotICAgIGNsYXNzIEltYWdlQnVmZmVyOwogICAgIGNsYXNzIEludFJlY3Q7CiAgICAg
Y2xhc3MgTWFpbkZyYW1lOwogICAgIGNsYXNzIE5vZGU7CkBAIC0xNzgsNiArMTc3LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIFN0cmluZyBkaXNwbGF5U3RyaW5nTW9kaWZpZWRC
eUVuY29kaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogCisgICAgICAgIERyYWdJbWFnZVJlZiBu
b2RlSW1hZ2UoTm9kZSopOworICAgICAgICBEcmFnSW1hZ2VSZWYgZHJhZ0ltYWdlRm9yU2VsZWN0
aW9uKCk7CisKICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvclBvaW50
KGNvbnN0IEludFBvaW50JiBmcmFtZVBvaW50KTsKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50
QXRQb2ludChjb25zdCBJbnRQb2ludCYgd2luZG93UG9pbnQpOwogICAgICAgICBQYXNzUmVmUHRy
PFJhbmdlPiByYW5nZUZvclBvaW50KGNvbnN0IEludFBvaW50JiBmcmFtZVBvaW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVTbmFwc2hvdHRpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVNuYXBzaG90dGluZy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQ5YTFlYjliMzU2Mjg4YjA0NTg2OTY1NjcwZjIwY2ZjNGI0MGFiMDAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVNuYXBzaG90dGluZy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMzIgKzAsMCBA
QAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMg
IkFTCi0gKiBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQKLSAqIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQQotICogUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBIT0xERVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiRnJhbWVTbmFwc2hvdHRpbmcuaCIKLQotI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZVNl
bGVjdGlvbi5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVy
LmgiCi0jaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLXN0cnVjdCBTY29wZWRGcmFtZVBhaW50aW5nU3RhdGUgewotICAg
IFNjb3BlZEZyYW1lUGFpbnRpbmdTdGF0ZShGcmFtZSYgZnJhbWUsIE5vZGUqIG5vZGUpCi0gICAg
OiBmcmFtZShmcmFtZSkKLSAgICAsIG5vZGUobm9kZSkKLSAgICAsIHBhaW50QmVoYXZpb3IoZnJh
bWUudmlldygpLT5wYWludEJlaGF2aW9yKCkpCi0gICAgLCBiYWNrZ3JvdW5kQ29sb3IoZnJhbWUu
dmlldygpLT5iYXNlQmFja2dyb3VuZENvbG9yKCkpCi0gICAgewotICAgICAgICBBU1NFUlQoIW5v
ZGUgfHwgbm9kZS0+cmVuZGVyZXIoKSk7Ci0gICAgfQotCi0gICAgflNjb3BlZEZyYW1lUGFpbnRp
bmdTdGF0ZSgpCi0gICAgewotICAgICAgICBmcmFtZS52aWV3KCktPnNldFBhaW50QmVoYXZpb3Io
cGFpbnRCZWhhdmlvcik7Ci0gICAgICAgIGZyYW1lLnZpZXcoKS0+c2V0QmFzZUJhY2tncm91bmRD
b2xvcihiYWNrZ3JvdW5kQ29sb3IpOwotICAgICAgICBmcmFtZS52aWV3KCktPnNldE5vZGVUb0Ry
YXcobnVsbHB0cik7Ci0gICAgfQotCi0gICAgRnJhbWUmIGZyYW1lOwotICAgIE5vZGUqIG5vZGU7
Ci0gICAgUGFpbnRCZWhhdmlvciBwYWludEJlaGF2aW9yOwotICAgIENvbG9yIGJhY2tncm91bmRD
b2xvcjsKLX07Ci0KLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gc25hcHNob3RGcmFtZVJl
Y3QoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRSZWN0JiBpbWFnZVJlY3QsIFNuYXBzaG90T3B0aW9u
cyBvcHRpb25zKQotewotICAgIEZyYW1lVmlldzo6U2VsZWN0aW9uSW5TbmFwc2hvdCBzaG91bGRJ
bmNsdWRlU2VsZWN0aW9uID0gRnJhbWVWaWV3OjpJbmNsdWRlU2VsZWN0aW9uOwotICAgIGlmIChv
cHRpb25zICYgU25hcHNob3RPcHRpb25zRXhjbHVkZVNlbGVjdGlvbkhpZ2hsaWdodGluZykKLSAg
ICAgICAgc2hvdWxkSW5jbHVkZVNlbGVjdGlvbiA9IEZyYW1lVmlldzo6RXhjbHVkZVNlbGVjdGlv
bjsKLQotICAgIEZyYW1lVmlldzo6Q29vcmRpbmF0ZVNwYWNlRm9yU25hcHNob3QgY29vcmRpbmF0
ZVNwYWNlID0gRnJhbWVWaWV3OjpEb2N1bWVudENvb3JkaW5hdGVzOwotICAgIGlmIChvcHRpb25z
ICYgU25hcHNob3RPcHRpb25zSW5WaWV3Q29vcmRpbmF0ZXMpCi0gICAgICAgIGNvb3JkaW5hdGVT
cGFjZSA9IEZyYW1lVmlldzo6Vmlld0Nvb3JkaW5hdGVzOwotCi0gICAgUGFpbnRCZWhhdmlvciB0
ZXh0UGFpbnRCZWhhdmlvciA9IDA7Ci0gICAgaWYgKG9wdGlvbnMgJiBTbmFwc2hvdE9wdGlvbnNG
b3JjZUJsYWNrVGV4dCkKLSAgICAgICAgdGV4dFBhaW50QmVoYXZpb3IgPSBQYWludEJlaGF2aW9y
Rm9yY2VCbGFja1RleHQ7Ci0KLSAgICBjb25zdCBTY29wZWRGcmFtZVBhaW50aW5nU3RhdGUgc3Rh
dGUoZnJhbWUsIG51bGxwdHIpOwotCi0gICAgLy8gT3RoZXIgcGFpbnQgYmVoYXZpb3JzIGFyZSBz
ZXQgYnkgcGFpbnRDb250ZW50c0ZvclNuYXBzaG90LgotICAgIFBhaW50QmVoYXZpb3IgZXhpc3Rp
bmdCZWhhdmlvciA9IGZyYW1lLnZpZXcoKS0+cGFpbnRCZWhhdmlvcigpOwotICAgIGZyYW1lLnZp
ZXcoKS0+c2V0UGFpbnRCZWhhdmlvcihleGlzdGluZ0JlaGF2aW9yIHwgdGV4dFBhaW50QmVoYXZp
b3IpOwotICAgIGZyYW1lLmRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpOwotCi0gICAgZmxvYXQg
ZGV2aWNlU2NhbGVGYWN0b3IgPSBmcmFtZS5wYWdlKCkgPyBmcmFtZS5wYWdlKCktPmRldmljZVNj
YWxlRmFjdG9yKCkgOiAxOwotICAgIEludFJlY3QgdXNlZFJlY3QoaW1hZ2VSZWN0KTsKLSAgICB1
c2VkUmVjdC5zY2FsZShkZXZpY2VTY2FsZUZhY3Rvcik7Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXI+IGJ1ZmZlciA9IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4oSW1hZ2VC
dWZmZXI6OmNyZWF0ZSh1c2VkUmVjdC5zaXplKCksIGRldmljZVNjYWxlRmFjdG9yLCBDb2xvclNw
YWNlRGV2aWNlUkdCKS5sZWFrUHRyKCkpOwotICAgIGlmICghYnVmZmVyKQotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICBidWZmZXItPmNvbnRleHQoKS0+dHJhbnNsYXRlKC11c2VkUmVjdC54
KCksIC11c2VkUmVjdC55KCkpOwotICAgIGJ1ZmZlci0+Y29udGV4dCgpLT5jbGlwKEZsb2F0UmVj
dCgwLCAwLCB1c2VkUmVjdC5tYXhYKCksIHVzZWRSZWN0Lm1heFkoKSkpOwotCi0gICAgZnJhbWUu
dmlldygpLT5wYWludENvbnRlbnRzRm9yU25hcHNob3QoYnVmZmVyLT5jb250ZXh0KCksIHVzZWRS
ZWN0LCBzaG91bGRJbmNsdWRlU2VsZWN0aW9uLCBjb29yZGluYXRlU3BhY2UpOwotICAgIHJldHVy
biBidWZmZXI7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gc25hcHNob3RTZWxl
Y3Rpb24oRnJhbWUmIGZyYW1lLCBTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucykKLXsKLSAgICBpZiAo
IWZyYW1lLnNlbGVjdGlvbigpLmlzUmFuZ2UoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
LSAgICAvLyBGb3JjZSBzZWxlY3Rpb24gaGlnaGxpZ2h0aW5nIHRvIGJlIGluY2x1ZGVkLgotICAg
IG9wdGlvbnMgJj0gflNuYXBzaG90T3B0aW9uc0V4Y2x1ZGVTZWxlY3Rpb25IaWdobGlnaHRpbmc7
Ci0gICAgSW50UmVjdCBzZWxlY3Rpb25SZWN0ID0gZW5jbG9zaW5nSW50UmVjdChmcmFtZS5zZWxl
Y3Rpb24oKS5ib3VuZHMoKSk7Ci0gICAgcmV0dXJuIHNuYXBzaG90RnJhbWVSZWN0KGZyYW1lLCBz
ZWxlY3Rpb25SZWN0LCBvcHRpb25zKTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVy
PiBzbmFwc2hvdE5vZGUoRnJhbWUmIGZyYW1lLCBOb2RlJiBub2RlKQotewotICAgIGlmICghbm9k
ZS5yZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGNvbnN0IFNjb3Bl
ZEZyYW1lUGFpbnRpbmdTdGF0ZSBzdGF0ZShmcmFtZSwgJm5vZGUpOwotCi0gICAgZnJhbWUudmll
dygpLT5zZXRCYXNlQmFja2dyb3VuZENvbG9yKENvbG9yOjp0cmFuc3BhcmVudCk7Ci0gICAgZnJh
bWUuZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7Ci0gICAgZnJhbWUudmlldygpLT5zZXROb2Rl
VG9EcmF3KCZub2RlKTsKLQotICAgIC8vIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQgbWF5IGhhdmUg
Ymxvd24gYXdheSB0aGUgb3JpZ2luYWwgcmVuZGVyZXIuCi0gICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKLSAgICBpZiAoIXJlbmRlcmVyKQotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLQotICAgIExheW91dFJlY3QgdG9wTGV2ZWxSZWN0OwotICAgIEludFJlY3Qg
cGFpbnRpbmdSZWN0ID0gcGl4ZWxTbmFwcGVkSW50UmVjdChyZW5kZXJlci0+cGFpbnRpbmdSb290
UmVjdCh0b3BMZXZlbFJlY3QpKTsKLSAgICByZXR1cm4gc25hcHNob3RGcmFtZVJlY3QoZnJhbWUs
IHBhaW50aW5nUmVjdCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVTbmFwc2hvdHRpbmcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVTbmFwc2hvdHRpbmcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Yjc4OTNiZDQwZTY4MDY2MDE3OWRjYWQ0YjUyZTYwMGM0MjU5M2I1MC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
U25hcHNob3R0aW5nLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0vKgotICogIENv
cHlyaWdodCAoQykgMjAxMyBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgot
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMKLSAqIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRAotICogVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBCi0gKiBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIEhPTERFUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBGcmFtZVNuYXBz
aG90dGluZ19oCi0jZGVmaW5lIEZyYW1lU25hcHNob3R0aW5nX2gKLQotI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRnJhbWU7Ci1jbGFzcyBJ
bnRSZWN0OwotY2xhc3MgSW1hZ2VCdWZmZXI7Ci1jbGFzcyBOb2RlOwotCi1lbnVtIHsKLSAgICBT
bmFwc2hvdE9wdGlvbnNOb25lID0gMCwKLSAgICBTbmFwc2hvdE9wdGlvbnNFeGNsdWRlU2VsZWN0
aW9uSGlnaGxpZ2h0aW5nID0gMSA8PCAwLAotICAgIFNuYXBzaG90T3B0aW9uc0luVmlld0Nvb3Jk
aW5hdGVzID0gMSA8PCAxLAotICAgIFNuYXBzaG90T3B0aW9uc0ZvcmNlQmxhY2tUZXh0ID0gMSA8
PCAyLAotfTsKLXR5cGVkZWYgdWludDMyX3QgU25hcHNob3RPcHRpb25zOwotCi1zdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VCdWZmZXI+IHNuYXBzaG90RnJhbWVSZWN0KEZyYW1lJiwgY29uc3QgSW50UmVj
dCYsIFNuYXBzaG90T3B0aW9ucyA9IFNuYXBzaG90T3B0aW9uc05vbmUpOwotc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyPiBzbmFwc2hvdE5vZGUoRnJhbWUmLCBOb2RlJik7Ci1zdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VCdWZmZXI+IHNuYXBzaG90U2VsZWN0aW9uKEZyYW1lJiwgU25hcHNob3RPcHRp
b25zID0gU25hcHNob3RPcHRpb25zTm9uZSk7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmIC8vIEZyYW1lU25hcHNob3R0aW5nX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbWFjL0ZyYW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRnJhbWVNYWMu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGFmYjFmOTFiY2JkNmYwNjI3YTYxZDFlOTRkZTliNzE0YThiNTQzNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0ZyYW1lTWFjLm1tCkBA
IC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJGcmFtZS5oIgorCisjaW1wb3J0ICJE
b2N1bWVudC5oIgorI2ltcG9ydCAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbXBvcnQgIkZyYW1l
U2VsZWN0aW9uLmgiCisjaW1wb3J0ICJGcmFtZVNuYXBzaG90dGluZ01hYy5oIgorI2ltcG9ydCAi
RnJhbWVWaWV3LmgiCisjaW1wb3J0ICJSZW5kZXJPYmplY3QuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitEcmFnSW1hZ2VSZWYgRnJhbWU6Om5vZGVJbWFnZShOb2RlKiBub2RlKQoreworICAg
IG1fZG9jLT51cGRhdGVMYXlvdXQoKTsgLy8gZm9yY2VzIHN0eWxlIHJlY2FsYworCisgICAgUmVu
ZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CisgICAgaWYgKCFyZW5kZXJl
cikKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBMYXlvdXRSZWN0IHRvcExldmVsUmVjdDsKKyAg
ICBOU1JlY3QgcGFpbnRpbmdSZWN0ID0gcGl4ZWxTbmFwcGVkSW50UmVjdChyZW5kZXJlci0+cGFp
bnRpbmdSb290UmVjdCh0b3BMZXZlbFJlY3QpKTsKKworICAgIG1fdmlldy0+c2V0Tm9kZVRvRHJh
dyhub2RlKTsgLy8gaW52b2tlIHNwZWNpYWwgc3ViLXRyZWUgZHJhd2luZyBtb2RlCisgICAgTlNJ
bWFnZSogcmVzdWx0ID0gaW1hZ2VGcm9tUmVjdCh0aGlzLCBwYWludGluZ1JlY3QpOworICAgIG1f
dmlldy0+c2V0Tm9kZVRvRHJhdygwKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0RyYWdJ
bWFnZVJlZiBGcmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKCkKK3sKKyAgICBpZiAoIXNlbGVj
dGlvbigpLmlzUmFuZ2UoKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICByZXR1cm4gc2VsZWN0
aW9uSW1hZ2UodGhpcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0ZyYW1lU25hcHNob3R0aW5nTWFjLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9GcmFtZVNuYXBzaG90dGluZ01hYy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYWI2
N2U3NjU4MTRhZTZjYmM5MDFiYWQ0NGFmZDE1M2Y4NjJhMjIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL21hYy9GcmFtZVNuYXBzaG90dGluZ01hYy5oCkBAIC0wLDAgKzEs
NDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZyYW1lU25hcHNob3R0aW5nTWFjX2gKKyNkZWZpbmUg
RnJhbWVTbmFwc2hvdHRpbmdNYWNfaAorCitPQkpDX0NMQVNTIE5TSW1hZ2U7CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CitjbGFzcyBSYW5nZTsKK2NsYXNzIE5vZGU7CisK
K05TSW1hZ2UqIHNlbGVjdGlvbkltYWdlKEZyYW1lKiwgYm9vbCBmb3JjZUJsYWNrVGV4dCA9IGZh
bHNlKTsKK05TSW1hZ2UqIHJhbmdlSW1hZ2UoRnJhbWUqLCBSYW5nZSosIGJvb2wgZm9yY2VCbGFj
a1RleHQgPSBmYWxzZSk7CitOU0ltYWdlKiBzbmFwc2hvdERyYWdJbWFnZShGcmFtZSosIE5vZGUq
LCBOU1JlY3QqIGltYWdlUmVjdCwgTlNSZWN0KiBlbGVtZW50UmVjdCk7CitOU0ltYWdlKiBpbWFn
ZUZyb21SZWN0KEZyYW1lKiwgTlNSZWN0KTsKKworfQorCisjZW5kaWYgLy8gRnJhbWVTbmFwc2hv
dHRpbmdNYWNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRnJhbWVTbmFw
c2hvdHRpbmdNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9GcmFtZVNuYXBzaG90dGlu
Z01hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lOTJjMmYyM2NiMTdiZDAzZDRlOGE1ZWUxOTUxNGFjNDM5MWQx
OWViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRnJhbWVTbmFw
c2hvdHRpbmdNYWMubW0KQEAgLTAsMCArMSwxNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55
cG9wLmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJGcmFtZVNuYXBzaG90dGluZ01hYy5oIgorCisjaW1wb3J0ICJCbG9ja0V4Y2VwdGlvbnMuaCIK
KyNpbXBvcnQgIkRvY3VtZW50LmgiCisjaW1wb3J0ICJGcmFtZS5oIgorI2ltcG9ydCAiRnJhbWVT
ZWxlY3Rpb24uaCIKKyNpbXBvcnQgIkZyYW1lVmlldy5oIgorI2ltcG9ydCAiR3JhcGhpY3NDb250
ZXh0LmgiCisjaW1wb3J0ICJSYW5nZS5oIgorI2ltcG9ydCAiUmVuZGVyVmlldy5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK05TSW1hZ2UqIGltYWdlRnJvbVJlY3QoRnJhbWUqIGZyYW1lLCBO
U1JlY3QgcmVjdCkKK3sKKyAgICBQYWludEJlaGF2aW9yIG9sZEJlaGF2aW9yID0gZnJhbWUtPnZp
ZXcoKS0+cGFpbnRCZWhhdmlvcigpOworICAgIGZyYW1lLT52aWV3KCktPnNldFBhaW50QmVoYXZp
b3Iob2xkQmVoYXZpb3IgfCBQYWludEJlaGF2aW9yRmxhdHRlbkNvbXBvc2l0aW5nTGF5ZXJzKTsK
KyAgICAKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgCisgICAgTlNJbWFn
ZSogcmVzdWx0SW1hZ2UgPSBbW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6cmVjdC5zaXpl
XSBhdXRvcmVsZWFzZV07CisgICAgCisgICAgaWYgKHJlY3Quc2l6ZS53aWR0aCAhPSAwICYmIHJl
Y3Quc2l6ZS5oZWlnaHQgIT0gMCkgeworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgICAgICBbcmVzdWx0SW1hZ2Ugc2V0RmxpcHBlZDpZRVNdOworI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICBbcmVzdWx0SW1hZ2UgbG9ja0ZvY3VzXTsKKworICAgICAg
ICBHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0KChDR0NvbnRleHRSZWYpW1tOU0dyYXBo
aWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XSk7ICAgICAgICAKKyAgICAg
ICAgZ3JhcGhpY3NDb250ZXh0LnNhdmUoKTsKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LnRyYW5z
bGF0ZSgtcmVjdC5vcmlnaW4ueCwgLXJlY3Qub3JpZ2luLnkpOworICAgICAgICBmcmFtZS0+dmll
dygpLT5wYWludENvbnRlbnRzKCZncmFwaGljc0NvbnRleHQsIEludFJlY3QocmVjdCkpOworICAg
ICAgICBncmFwaGljc0NvbnRleHQucmVzdG9yZSgpOworCisgICAgICAgIFtyZXN1bHRJbWFnZSB1
bmxvY2tGb2N1c107CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAg
IFtyZXN1bHRJbWFnZSBzZXRGbGlwcGVkOk5PXTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICB9CisgICAgCisgICAgZnJhbWUtPnZpZXcoKS0+c2V0UGFpbnRCZWhhdmlvcihvbGRC
ZWhhdmlvcik7CisgICAgcmV0dXJuIHJlc3VsdEltYWdlOworICAgIAorICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CisgICAgCisgICAgZnJhbWUtPnZpZXcoKS0+c2V0UGFpbnRCZWhhdmlv
cihvbGRCZWhhdmlvcik7CisgICAgcmV0dXJuIG5pbDsKK30KKworTlNJbWFnZSogc2VsZWN0aW9u
SW1hZ2UoRnJhbWUqIGZyYW1lLCBib29sIGZvcmNlQmxhY2tUZXh0KQoreworICAgIGZyYW1lLT52
aWV3KCktPnNldFBhaW50QmVoYXZpb3IoUGFpbnRCZWhhdmlvclNlbGVjdGlvbk9ubHkgfCAoZm9y
Y2VCbGFja1RleHQgPyBQYWludEJlaGF2aW9yRm9yY2VCbGFja1RleHQgOiAwKSk7CisgICAgZnJh
bWUtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpOworICAgIE5TSW1hZ2UqIHJlc3VsdCA9IGlt
YWdlRnJvbVJlY3QoZnJhbWUsIGZyYW1lLT5zZWxlY3Rpb24oKS5ib3VuZHMoKSk7CisgICAgZnJh
bWUtPnZpZXcoKS0+c2V0UGFpbnRCZWhhdmlvcihQYWludEJlaGF2aW9yTm9ybWFsKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCitOU0ltYWdlICpyYW5nZUltYWdlKEZyYW1lKiBmcmFtZSwgUmFu
Z2UqIHJhbmdlLCBib29sIGZvcmNlQmxhY2tUZXh0KQoreworICAgIGZyYW1lLT52aWV3KCktPnNl
dFBhaW50QmVoYXZpb3IoUGFpbnRCZWhhdmlvclNlbGVjdGlvbk9ubHkgfCAoZm9yY2VCbGFja1Rl
eHQgPyBQYWludEJlaGF2aW9yRm9yY2VCbGFja1RleHQgOiAwKSk7CisgICAgZnJhbWUtPmRvY3Vt
ZW50KCktPnVwZGF0ZUxheW91dCgpOworICAgIFJlbmRlclZpZXcqIHZpZXcgPSBmcmFtZS0+Y29u
dGVudFJlbmRlcmVyKCk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1cm4gbmlsOworCisg
ICAgUG9zaXRpb24gc3RhcnQgPSByYW5nZS0+c3RhcnRQb3NpdGlvbigpOworICAgIFBvc2l0aW9u
IGNhbmRpZGF0ZSA9IHN0YXJ0LmRvd25zdHJlYW0oKTsKKyAgICBpZiAoY2FuZGlkYXRlLmRlcHJl
Y2F0ZWROb2RlKCkgJiYgY2FuZGlkYXRlLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCkpCisg
ICAgICAgIHN0YXJ0ID0gY2FuZGlkYXRlOworCisgICAgUG9zaXRpb24gZW5kID0gcmFuZ2UtPmVu
ZFBvc2l0aW9uKCk7CisgICAgY2FuZGlkYXRlID0gZW5kLnVwc3RyZWFtKCk7CisgICAgaWYgKGNh
bmRpZGF0ZS5kZXByZWNhdGVkTm9kZSgpICYmIGNhbmRpZGF0ZS5kZXByZWNhdGVkTm9kZSgpLT5y
ZW5kZXJlcigpKQorICAgICAgICBlbmQgPSBjYW5kaWRhdGU7CisKKyAgICBpZiAoc3RhcnQuaXNO
dWxsKCkgfHwgZW5kLmlzTnVsbCgpIHx8IHN0YXJ0ID09IGVuZCkKKyAgICAgICAgcmV0dXJuIG5p
bDsKKworICAgIFJlbmRlck9iamVjdCogc2F2ZWRTdGFydFJlbmRlcmVyOworICAgIGludCBzYXZl
ZFN0YXJ0T2Zmc2V0OworICAgIFJlbmRlck9iamVjdCogc2F2ZWRFbmRSZW5kZXJlcjsKKyAgICBp
bnQgc2F2ZWRFbmRPZmZzZXQ7CisgICAgdmlldy0+Z2V0U2VsZWN0aW9uKHNhdmVkU3RhcnRSZW5k
ZXJlciwgc2F2ZWRTdGFydE9mZnNldCwgc2F2ZWRFbmRSZW5kZXJlciwgc2F2ZWRFbmRPZmZzZXQp
OworCisgICAgUmVuZGVyT2JqZWN0KiBzdGFydFJlbmRlcmVyID0gc3RhcnQuZGVwcmVjYXRlZE5v
ZGUoKS0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIXN0YXJ0UmVuZGVyZXIpCisgICAgICAgIHJldHVy
biBuaWw7CisKKyAgICBSZW5kZXJPYmplY3QqIGVuZFJlbmRlcmVyID0gZW5kLmRlcHJlY2F0ZWRO
b2RlKCktPnJlbmRlcmVyKCk7CisgICAgaWYgKCFlbmRSZW5kZXJlcikKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIHZpZXctPnNldFNlbGVjdGlvbihzdGFydFJlbmRlcmVyLCBzdGFydC5kZXBy
ZWNhdGVkRWRpdGluZ09mZnNldCgpLCBlbmRSZW5kZXJlciwgZW5kLmRlcHJlY2F0ZWRFZGl0aW5n
T2Zmc2V0KCksIFJlbmRlclZpZXc6OlJlcGFpbnROb3RoaW5nKTsKKyAgICBOU0ltYWdlKiByZXN1
bHQgPSBpbWFnZUZyb21SZWN0KGZyYW1lLCB2aWV3LT5zZWxlY3Rpb25Cb3VuZHMoKSk7CisgICAg
dmlldy0+c2V0U2VsZWN0aW9uKHNhdmVkU3RhcnRSZW5kZXJlciwgc2F2ZWRTdGFydE9mZnNldCwg
c2F2ZWRFbmRSZW5kZXJlciwgc2F2ZWRFbmRPZmZzZXQsIFJlbmRlclZpZXc6OlJlcGFpbnROb3Ro
aW5nKTsKKworICAgIGZyYW1lLT52aWV3KCktPnNldFBhaW50QmVoYXZpb3IoUGFpbnRCZWhhdmlv
ck5vcm1hbCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCitOU0ltYWdlKiBzbmFwc2hvdERy
YWdJbWFnZShGcmFtZSogZnJhbWUsIE5vZGUqIG5vZGUsIE5TUmVjdCogaW1hZ2VSZWN0LCBOU1Jl
Y3QqIGVsZW1lbnRSZWN0KQoreworICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBub2RlLT5y
ZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyZXIpCisgICAgICAgIHJldHVybiBuaWw7CisgICAg
CisgICAgcmVuZGVyZXItPnVwZGF0ZURyYWdTdGF0ZSh0cnVlKTsgICAgLy8gbWFyayBkcmFnZ2Vk
IG5vZGVzIChzbyB0aGV5IHBpY2sgdXAgdGhlIHJpZ2h0IENTUykKKyAgICBmcmFtZS0+ZG9jdW1l
bnQoKS0+dXBkYXRlTGF5b3V0KCk7ICAvLyBmb3JjZXMgc3R5bGUgcmVjYWxjIC0gbmVlZGVkIHNp
bmNlIGNoYW5naW5nIHRoZSBkcmFnIHN0YXRlIG1pZ2h0CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gaW1wbHkgbmV3IHN0eWxlcywgcGx1cyBKUyBjb3VsZCBoYXZl
IGNoYW5nZWQgb3RoZXIgdGhpbmdzCisKKworICAgIC8vIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQg
bWF5IGhhdmUgYmxvd24gYXdheSB0aGUgb3JpZ2luYWwgUmVuZGVyRWxlbWVudC4KKyAgICByZW5k
ZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CisgICAgaWYgKCFyZW5kZXJlcikKKyAgICAgICAgcmV0
dXJuIG5pbDsKKworICAgIExheW91dFJlY3QgdG9wTGV2ZWxSZWN0OworICAgIE5TUmVjdCBwYWlu
dGluZ1JlY3QgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KHJlbmRlcmVyLT5wYWludGluZ1Jvb3RSZWN0
KHRvcExldmVsUmVjdCkpOworCisgICAgaWYgKE5TSXNFbXB0eVJlY3QocGFpbnRpbmdSZWN0KSkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGZyYW1lLT52aWV3KCktPnNldE5vZGVUb0RyYXco
bm9kZSk7IC8vIGludm9rZSBzcGVjaWFsIHN1Yi10cmVlIGRyYXdpbmcgbW9kZQorICAgIE5TSW1h
Z2UqIHJlc3VsdCA9IGltYWdlRnJvbVJlY3QoZnJhbWUsIHBhaW50aW5nUmVjdCk7CisgICAgcmVu
ZGVyZXItPnVwZGF0ZURyYWdTdGF0ZShmYWxzZSk7CisgICAgZnJhbWUtPmRvY3VtZW50KCktPnVw
ZGF0ZUxheW91dCgpOworICAgIGZyYW1lLT52aWV3KCktPnNldE5vZGVUb0RyYXcoMCk7CisKKyAg
ICBpZiAoZWxlbWVudFJlY3QpCisgICAgICAgICplbGVtZW50UmVjdCA9IHBpeGVsU25hcHBlZElu
dFJlY3QodG9wTGV2ZWxSZWN0KTsKKyAgICBpZiAoaW1hZ2VSZWN0KQorICAgICAgICAqaW1hZ2VS
ZWN0ID0gcGFpbnRpbmdSZWN0OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0ZyYW1lV2lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0ZyYW1lV2luLmNwcAppbmRleCA5Njc0ZjE3
NjhmNWRkODQyNWI2MGM3YWYxNmYwZjFmN2Q2Zjc2MzFlLi41YWFmM2E2NzhjOWU1NDNhZjY4M2Iz
N2FkNWIwNmNjZTA2NDQzYjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9G
cmFtZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRnJhbWVXaW4uY3BwCkBA
IC01Nyw0ICs1NywzMCBAQCBHRElPYmplY3Q8SEJJVE1BUD4gaW1hZ2VGcm9tU2VsZWN0aW9uKEZy
YW1lKiBmcmFtZSwgYm9vbCBmb3JjZUJsYWNrVGV4dCkKICAgICByZXR1cm4gaW1hZ2U7CiB9CiAK
K0RyYWdJbWFnZVJlZiBGcmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKCkKK3sKKyAgICBpZiAo
c2VsZWN0aW9uKCkuaXNSYW5nZSgpKQorICAgICAgICByZXR1cm4gaW1hZ2VGcm9tU2VsZWN0aW9u
KHRoaXMsIGZhbHNlKS5sZWFrKCk7CisKKyAgICByZXR1cm4gMDsKK30KKworRHJhZ0ltYWdlUmVm
IEZyYW1lOjpub2RlSW1hZ2UoTm9kZSogbm9kZSkKK3sKKyAgICBkb2N1bWVudCgpLT51cGRhdGVM
YXlvdXQoKTsKKworICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigp
OworICAgIGlmICghcmVuZGVyZXIpCisgICAgICAgIHJldHVybiAwOworCisgICAgTGF5b3V0UmVj
dCB0b3BMZXZlbFJlY3Q7CisgICAgSW50UmVjdCBwYWludGluZ1JlY3QgPSBwaXhlbFNuYXBwZWRJ
bnRSZWN0KHJlbmRlcmVyLT5wYWludGluZ1Jvb3RSZWN0KHRvcExldmVsUmVjdCkpOworCisgICAg
bV92aWV3LT5zZXROb2RlVG9EcmF3KG5vZGUpOyAvLyBpbnZva2Ugc3BlY2lhbCBzdWItdHJlZSBk
cmF3aW5nIG1vZGUKKyAgICBHRElPYmplY3Q8SEJJVE1BUD4gcmVzdWx0ID0gaW1hZ2VGcm9tUmVj
dCh0aGlzLCBwYWludGluZ1JlY3QpOworICAgIG1fdmlldy0+c2V0Tm9kZVRvRHJhdygwKTsKKwor
ICAgIHJldHVybiByZXN1bHQubGVhaygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9GcmFtZVdpbi5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS93aW4vRnJhbWVXaW4uaAppbmRleCAyNjk3MjVjMWY5YjliODBkNTc4MTQ4NGY5
MzFhYjI1ZGQzYWUzMzE3Li4zYTI3MjNlNjNkNmQ3ZTdlYzA0NGNiMTJmMmVhN2JkMDZjZmU2NTlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9GcmFtZVdpbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0ZyYW1lV2luLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3Mg
RnJhbWU7CiBjbGFzcyBJbnRSZWN0OwogCiBHRElPYmplY3Q8SEJJVE1BUD4gaW1hZ2VGcm9tUmVj
dChjb25zdCBGcmFtZSosIEludFJlY3QmKTsKLUdESU9iamVjdDxIQklUTUFQPiBpbWFnZUZyb21T
ZWxlY3Rpb24oRnJhbWUqLCBib29sIGZvcmNlQmxhY2tUZXh0KTsKK0dESU9iamVjdDxIQklUTUFQ
PiBpbWFnZUZyb21TZWxlY3Rpb24oRnJhbWUqLCBib29sIGZvcmNlV2hpdGVUZXh0KTsKIHZvaWQg
Y29tcHV0ZVBhZ2VSZWN0c0ZvckZyYW1lKEZyYW1lKiwgY29uc3QgSW50UmVjdCYgcHJpbnRSZWN0
LCBmbG9hdCBoZWFkZXJIZWlnaHQsIGZsb2F0IGZvb3RlckhlaWdodCwgZmxvYXQgdXNlclNjYWxl
RmFjdG9yLCBWZWN0b3I8SW50UmVjdD4mIG91dFBhZ2VzLCBpbnQmIG91dFBhZ2VIZWlnaHQpOwog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9EcmFnSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNw
cAppbmRleCA3YzQ2NzQ4MWJkNTZhM2Q3NWI5NjkwZmYxMWVhZTYzYzVlYjg4YTY2Li5iODFhZmQ1
NzllODI5M2VlZmEyYmE5M2I5YmI1NWMxZjUwNzZjZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RyYWdJbWFnZS5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAog
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgpAQCAtMjgsMzcgKzI4LDI5IEBACiAKICNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQogCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZVNuYXBzaG90
dGluZy5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgi
Ci0jaW5jbHVkZSAiUmFuZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKLSNpbmNsdWRl
ICJSZW5kZXJWaWV3LmgiCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKLQorICAgIAogRHJhZ0ltYWdl
UmVmIGZpdERyYWdJbWFnZVRvTWF4U2l6ZShEcmFnSW1hZ2VSZWYgaW1hZ2UsIGNvbnN0IEludFNp
emUmIHNyY1NpemUsIGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAgICAgZmxvYXQgaGVpZ2h0UmVz
aXplUmF0aW8gPSAwLjBmOwogICAgIGZsb2F0IHdpZHRoUmVzaXplUmF0aW8gPSAwLjBmOwogICAg
IGZsb2F0IHJlc2l6ZVJhdGlvID0gLTEuMGY7CiAgICAgSW50U2l6ZSBvcmlnaW5hbFNpemUgPSBk
cmFnSW1hZ2VTaXplKGltYWdlKTsKLQorICAgIAogICAgIGlmIChzcmNTaXplLndpZHRoKCkgPiBz
aXplLndpZHRoKCkpIHsKICAgICAgICAgd2lkdGhSZXNpemVSYXRpbyA9IHNpemUud2lkdGgoKSAv
IChmbG9hdClzcmNTaXplLndpZHRoKCk7CiAgICAgICAgIHJlc2l6ZVJhdGlvID0gd2lkdGhSZXNp
emVSYXRpbzsKICAgICB9Ci0KKyAgICAKICAgICBpZiAoc3JjU2l6ZS5oZWlnaHQoKSA+IHNpemUu
aGVpZ2h0KCkpIHsKICAgICAgICAgaGVpZ2h0UmVzaXplUmF0aW8gPSBzaXplLmhlaWdodCgpIC8g
KGZsb2F0KXNyY1NpemUuaGVpZ2h0KCk7CiAgICAgICAgIGlmICgocmVzaXplUmF0aW8gPCAwLjBm
KSB8fCAocmVzaXplUmF0aW8gPiBoZWlnaHRSZXNpemVSYXRpbykpCiAgICAgICAgICAgICByZXNp
emVSYXRpbyA9IGhlaWdodFJlc2l6ZVJhdGlvOwogICAgIH0KLQorICAgIAogICAgIGlmIChzcmNT
aXplID09IG9yaWdpbmFsU2l6ZSkKICAgICAgICAgcmV0dXJuIHJlc2l6ZVJhdGlvID4gMC4wZiA/
IHNjYWxlRHJhZ0ltYWdlKGltYWdlLCBGbG9hdFNpemUocmVzaXplUmF0aW8sIHJlc2l6ZVJhdGlv
KSkgOiBpbWFnZTsKLQorICAgIAogICAgIC8vIFRoZSBpbWFnZSB3YXMgc2NhbGVkIGluIHRoZSB3
ZWJwYWdlIHNvIGF0IG1pbmltdW0gd2UgbXVzdCBhY2NvdW50IGZvciB0aGF0IHNjYWxpbmcKICAg
ICBmbG9hdCBzY2FsZXggPSBzcmNTaXplLndpZHRoKCkgLyAoZmxvYXQpb3JpZ2luYWxTaXplLndp
ZHRoKCk7CiAgICAgZmxvYXQgc2NhbGV5ID0gc3JjU2l6ZS5oZWlnaHQoKSAvIChmbG9hdClvcmln
aW5hbFNpemUuaGVpZ2h0KCk7CkBAIC02NiwxNTEgKzU4LDE0IEBAIERyYWdJbWFnZVJlZiBmaXRE
cmFnSW1hZ2VUb01heFNpemUoRHJhZ0ltYWdlUmVmIGltYWdlLCBjb25zdCBJbnRTaXplJiBzcmNT
aXplLCBjCiAgICAgICAgIHNjYWxleCAqPSByZXNpemVSYXRpbzsKICAgICAgICAgc2NhbGV5ICo9
IHJlc2l6ZVJhdGlvOwogICAgIH0KLQorICAgIAogICAgIHJldHVybiBzY2FsZURyYWdJbWFnZShp
bWFnZSwgRmxvYXRTaXplKHNjYWxleCwgc2NhbGV5KSk7CiB9CiAKLXN0cnVjdCBTY29wZWROb2Rl
RHJhZ1N0YXRlIHsKLSAgICBTY29wZWROb2RlRHJhZ1N0YXRlKEZyYW1lJiBmcmFtZSwgTm9kZSYg
bm9kZSkKLSAgICA6IGZyYW1lKGZyYW1lKQotICAgICwgbm9kZShub2RlKQotICAgIHsKLSAgICAg
ICAgQVNTRVJUKG5vZGUucmVuZGVyZXIoKSk7Ci0gICAgICAgIG5vZGUucmVuZGVyZXIoKS0+dXBk
YXRlRHJhZ1N0YXRlKHRydWUpOwotICAgICAgICBmcmFtZS5kb2N1bWVudCgpLT51cGRhdGVMYXlv
dXQoKTsKLSAgICB9Ci0KLSAgICB+U2NvcGVkTm9kZURyYWdTdGF0ZSgpCi0gICAgewotICAgICAg
ICBpZiAobm9kZS5yZW5kZXJlcigpKSB7Ci0gICAgICAgICAgICBub2RlLnJlbmRlcmVyKCktPnVw
ZGF0ZURyYWdTdGF0ZShmYWxzZSk7Ci0gICAgICAgICAgICBmcmFtZS5kb2N1bWVudCgpLT51cGRh
dGVMYXlvdXQoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEZyYW1lJiBmcmFtZTsKLSAgICBO
b2RlJiBub2RlOwotfTsKLQotc3RhdGljIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9t
U25hcHNob3Qoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBzbmFwc2hvdCwgTm9kZSogbm9k
ZSkKLXsKLSAgICBpZiAoIXNuYXBzaG90KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAg
IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBvcmllbnRhdGlvbjsKLSNpZiBFTkFCTEUoQ1NT
X0lNQUdFX09SSUVOVEFUSU9OKQotICAgIGlmIChub2RlKSB7Ci0gICAgICAgIFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICBpZiAoIXJlbmRlcmVyKQot
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICAgICAgb3JpZW50YXRpb24uc2V0UmVz
cGVjdEltYWdlT3JpZW50YXRpb24ocmVuZGVyZXItPnNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uKCkpOwotICAgICAgICBvcmllbnRhdGlvbi5zZXRJbWFnZU9yaWVudGF0aW9uRW51bShyZW5k
ZXJlci0+c3R5bGUoKS5pbWFnZU9yaWVudGF0aW9uKCkpOwotICAgIH0KLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKG5vZGUpOwotI2VuZGlmCi0gICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IHNuYXBz
aG90LT5jb3B5SW1hZ2UoSW1hZ2VCdWZmZXI6OmZhc3RDb3B5SW1hZ2VNb2RlKCkpOwotICAgIGlm
ICghaW1hZ2UpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBjcmVhdGVEcmFn
SW1hZ2VGcm9tSW1hZ2UoaW1hZ2UuZ2V0KCksIG9yaWVudGF0aW9uKTsKLX0KLQotRHJhZ0ltYWdl
UmVmIGNyZWF0ZURyYWdJbWFnZUZvck5vZGUoRnJhbWUmIGZyYW1lLCBOb2RlJiBub2RlKQotewot
ICAgIFNjb3BlZE5vZGVEcmFnU3RhdGUgZW5hYmxlRHJhZyhmcmFtZSwgbm9kZSk7Ci0gICAgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBzbmFwc2hvdCA9IHNuYXBzaG90Tm9kZShmcmFtZSwg
bm9kZSk7Ci0gICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21TbmFwc2hvdChzdGQ6Om1vdmUo
c25hcHNob3QpLCAmbm9kZSk7Ci19Ci0KLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JT
ZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBib29sIGZvcmNlQmxhY2tUZXh0KQotewotICAgIFNuYXBz
aG90T3B0aW9ucyBvcHRpb25zID0gZm9yY2VCbGFja1RleHQgPyBTbmFwc2hvdE9wdGlvbnNGb3Jj
ZUJsYWNrVGV4dCA6IFNuYXBzaG90T3B0aW9uc05vbmU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyPiBzbmFwc2hvdCA9IHNuYXBzaG90U2VsZWN0aW9uKGZyYW1lLCBvcHRpb25zKTsK
LSAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbVNuYXBzaG90KHN0ZDo6bW92ZShzbmFwc2hv
dCksIG51bGxwdHIpOwotfQotCi1zdHJ1Y3QgU2NvcGVkRnJhbWVTZWxlY3Rpb25TdGF0ZSB7Ci0g
ICAgU2NvcGVkRnJhbWVTZWxlY3Rpb25TdGF0ZShGcmFtZSYgZnJhbWUpCi0gICAgOiBmcmFtZShm
cmFtZSkKLSAgICB7Ci0gICAgICAgIGlmIChSZW5kZXJWaWV3KiByb290ID0gZnJhbWUuY29udGVu
dFJlbmRlcmVyKCkpCi0gICAgICAgICAgICByb290LT5nZXRTZWxlY3Rpb24oc3RhcnRSZW5kZXJl
ciwgc3RhcnRPZmZzZXQsIGVuZFJlbmRlcmVyLCBlbmRPZmZzZXQpOwotICAgIH0KLQotICAgIH5T
Y29wZWRGcmFtZVNlbGVjdGlvblN0YXRlKCkKLSAgICB7Ci0gICAgICAgIGlmIChSZW5kZXJWaWV3
KiByb290ID0gZnJhbWUuY29udGVudFJlbmRlcmVyKCkpCi0gICAgICAgICAgICByb290LT5zZXRT
ZWxlY3Rpb24oc3RhcnRSZW5kZXJlciwgc3RhcnRPZmZzZXQsIGVuZFJlbmRlcmVyLCBlbmRPZmZz
ZXQsIFJlbmRlclZpZXc6OlJlcGFpbnROb3RoaW5nKTsKLSAgICB9Ci0KLSAgICBGcmFtZSYgZnJh
bWU7Ci0gICAgUmVuZGVyT2JqZWN0KiBzdGFydFJlbmRlcmVyOwotICAgIFJlbmRlck9iamVjdCog
ZW5kUmVuZGVyZXI7Ci0gICAgaW50IHN0YXJ0T2Zmc2V0OwotICAgIGludCBlbmRPZmZzZXQ7Ci19
OwotCi1EcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yUmFuZ2UoRnJhbWUmIGZyYW1lLCBS
YW5nZSYgcmFuZ2UsIGJvb2wgZm9yY2VCbGFja1RleHQpCi17Ci0gICAgZnJhbWUuZG9jdW1lbnQo
KS0+dXBkYXRlTGF5b3V0KCk7Ci0gICAgUmVuZGVyVmlldyogdmlldyA9IGZyYW1lLmNvbnRlbnRS
ZW5kZXJlcigpOwotICAgIGlmICghdmlldykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAg
ICAvLyBUbyBzbmFwc2hvdCB0aGUgcmFuZ2UsIHRlbXBvcmFyaWx5IHNlbGVjdCBpdCBhbmQgdGFr
ZSBzZWxlY3Rpb24gc25hcHNob3QuCi0gICAgUG9zaXRpb24gc3RhcnQgPSByYW5nZS5zdGFydFBv
c2l0aW9uKCk7Ci0gICAgUG9zaXRpb24gY2FuZGlkYXRlID0gc3RhcnQuZG93bnN0cmVhbSgpOwot
ICAgIGlmIChjYW5kaWRhdGUuZGVwcmVjYXRlZE5vZGUoKSAmJiBjYW5kaWRhdGUuZGVwcmVjYXRl
ZE5vZGUoKS0+cmVuZGVyZXIoKSkKLSAgICAgICAgc3RhcnQgPSBjYW5kaWRhdGU7Ci0KLSAgICBQ
b3NpdGlvbiBlbmQgPSByYW5nZS5lbmRQb3NpdGlvbigpOwotICAgIGNhbmRpZGF0ZSA9IGVuZC51
cHN0cmVhbSgpOwotICAgIGlmIChjYW5kaWRhdGUuZGVwcmVjYXRlZE5vZGUoKSAmJiBjYW5kaWRh
dGUuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSkKLSAgICAgICAgZW5kID0gY2FuZGlkYXRl
OwotCi0gICAgaWYgKHN0YXJ0LmlzTnVsbCgpIHx8IGVuZC5pc051bGwoKSB8fCBzdGFydCA9PSBl
bmQpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgY29uc3QgU2NvcGVkRnJhbWVTZWxl
Y3Rpb25TdGF0ZSBzZWxlY3Rpb25TdGF0ZShmcmFtZSk7Ci0KLSAgICBSZW5kZXJPYmplY3QqIHN0
YXJ0UmVuZGVyZXIgPSBzdGFydC5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpOwotICAgIFJl
bmRlck9iamVjdCogZW5kUmVuZGVyZXIgPSBlbmQuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIo
KTsKLSAgICBpZiAoIXN0YXJ0UmVuZGVyZXIgfHwgIWVuZFJlbmRlcmVyKQotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLQotICAgIFNuYXBzaG90T3B0aW9ucyBvcHRpb25zID0gZm9yY2VCbGFja1Rl
eHQgPyBTbmFwc2hvdE9wdGlvbnNGb3JjZUJsYWNrVGV4dCA6IFNuYXBzaG90T3B0aW9uc05vbmU7
Ci0gICAgdmlldy0+c2V0U2VsZWN0aW9uKHN0YXJ0UmVuZGVyZXIsIHN0YXJ0LmRlcHJlY2F0ZWRF
ZGl0aW5nT2Zmc2V0KCksIGVuZFJlbmRlcmVyLCBlbmQuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQo
KSwgUmVuZGVyVmlldzo6UmVwYWludE5vdGhpbmcpOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlcj4gc25hcHNob3QgPSBzbmFwc2hvdFNlbGVjdGlvbihmcmFtZSwgb3B0aW9ucyk7Ci0g
ICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21TbmFwc2hvdChzdGQ6Om1vdmUoc25hcHNob3Qp
LCBudWxscHRyKTsKLX0KLQotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckltYWdlKEZy
YW1lJiBmcmFtZSwgTm9kZSYgbm9kZSwgSW50UmVjdCYgaW1hZ2VSZWN0LCBJbnRSZWN0JiBlbGVt
ZW50UmVjdCkKLXsKLSAgICBTY29wZWROb2RlRHJhZ1N0YXRlIGVuYWJsZURyYWcoZnJhbWUsIG5v
ZGUpOwotCi0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKLSAg
ICBpZiAoIXJlbmRlcmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIC8vIENhbGN1
bGF0ZSBpbWFnZSBhbmQgZWxlbWVudCBtZXRyaWNzIGZvciB0aGUgY2xpZW50LCB0aGVuIGNyZWF0
ZSBkcmFnIGltYWdlLgotICAgIExheW91dFJlY3QgdG9wTGV2ZWxSZWN0OwotICAgIEludFJlY3Qg
cGFpbnRpbmdSZWN0ID0gcGl4ZWxTbmFwcGVkSW50UmVjdChyZW5kZXJlci0+cGFpbnRpbmdSb290
UmVjdCh0b3BMZXZlbFJlY3QpKTsKLQotICAgIGlmIChwYWludGluZ1JlY3QuaXNFbXB0eSgpKQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGVsZW1lbnRSZWN0ID0gcGl4ZWxTbmFwcGVk
SW50UmVjdCh0b3BMZXZlbFJlY3QpOwotICAgIGltYWdlUmVjdCA9IHBhaW50aW5nUmVjdDsKLQot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gc25hcHNob3QgPSBzbmFwc2hvdE5vZGUo
ZnJhbWUsIG5vZGUpOwotICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGcm9tU25hcHNob3Qoc3Rk
Ojptb3ZlKHNuYXBzaG90KSwgJm5vZGUpOwotfQotCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgKCFQ
TEFURk9STShXSU4pIHx8IE9TKFdJTkNFKSkKIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VG
b3JMaW5rKFVSTCYsIGNvbnN0IFN0cmluZyYsIEZvbnRSZW5kZXJpbmdNb2RlKQogewotICAgIHJl
dHVybiBudWxscHRyOworICAgIHJldHVybiAwOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRHJhZ0ltYWdlLmgKaW5kZXggZDgzNjk2ZTMzMTFjY2U1NDE3MzUyYjZkMDQ2OTlhMTAzMzQ0
MGYwZS4uZDhmNTJiY2ZhZDQ0MjQzZjhhY2NiODY3MGEwOTRhZjExM2M0YjI0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKQEAgLTI2LDExICsyNiwxMCBAQAogI2lmbmRlZiBEcmFn
SW1hZ2VfaAogI2RlZmluZSBEcmFnSW1hZ2VfaAogCi0jaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAj
aW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKLSNpbmNsdWRlICJGcmFtZVNuYXBzaG90dGlu
Zy5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJJbnRTaXplLmgi
CisjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogI2lm
IFBMQVRGT1JNKE1BQykKQEAgLTQyLDQ2ICs0MSwzOCBAQCB0eXBlZGVmIHN0cnVjdCBIQklUTUFQ
X18qIEhCSVRNQVA7CiB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc3VyZmFjZSBjYWlyb19zdXJmYWNl
X3Q7CiAjZW5kaWYKIAotLy8gV2UgbmVlZCB0byAjZGVmaW5lIFlPZmZzZXQgYXMgaXQgbmVlZHMg
dG8gYmUgc2hhcmVkIHdpdGggV2ViS2l0CisvL1dlIG5lZWQgdG8gI2RlZmluZSBZT2Zmc2V0IGFz
IGl0IG5lZWRzIHRvIGJlIHNoYXJlZCB3aXRoIFdlYktpdAogI2RlZmluZSBEcmFnTGFiZWxCb3Jk
ZXJZT2Zmc2V0IDIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBGcmFtZTsKLWNsYXNz
IEltYWdlOwotY2xhc3MgSW50UmVjdDsKLWNsYXNzIE5vZGU7Ci1jbGFzcyBSYW5nZTsKLWNsYXNz
IFVSTDsKKyAgICBjbGFzcyBJbWFnZTsKKyAgICBjbGFzcyBVUkw7CiAKICNpZiBQTEFURk9STShN
QUMpCi10eXBlZGVmIFJldGFpblB0cjxOU0ltYWdlPiBEcmFnSW1hZ2VSZWY7CisgICAgdHlwZWRl
ZiBSZXRhaW5QdHI8TlNJbWFnZT4gRHJhZ0ltYWdlUmVmOwogI2VsaWYgUExBVEZPUk0oV0lOKQot
dHlwZWRlZiBIQklUTUFQIERyYWdJbWFnZVJlZjsKKyAgICB0eXBlZGVmIEhCSVRNQVAgRHJhZ0lt
YWdlUmVmOwogI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShOSVgpCi10eXBlZGVmIGNh
aXJvX3N1cmZhY2VfdCogRHJhZ0ltYWdlUmVmOworICAgIHR5cGVkZWYgY2Fpcm9fc3VyZmFjZV90
KiBEcmFnSW1hZ2VSZWY7CiAjZWxpZiBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEJMQUNLQkVS
UlkpCi10eXBlZGVmIHZvaWQqIERyYWdJbWFnZVJlZjsKKyAgICB0eXBlZGVmIHZvaWQqIERyYWdJ
bWFnZVJlZjsKICNlbmRpZgotCi1JbnRTaXplIGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdlUmVmKTsK
LQotLy8gVGhlc2UgZnVuY3Rpb25zIHNob3VsZCBiZSBtZW1vcnkgbmV1dHJhbCwgZWcuIGlmIHRo
ZXkgcmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIGltYWdlLAotLy8gdGhleSBzaG91bGQgcmVsZWFz
ZSB0aGUgaW5wdXQgaW1hZ2UuIEFzIGEgY29yb2xsYXJ5IHRoZXNlIG1ldGhvZHMgZG9uJ3QgZ3Vh
cmFudGVlCi0vLyB0aGUgaW5wdXQgaW1hZ2UgcmVmIHdpbGwgc3RpbGwgYmUgdmFsaWQgYWZ0ZXIg
dGhleSBoYXZlIGJlZW4gY2FsbGVkLgotRHJhZ0ltYWdlUmVmIGZpdERyYWdJbWFnZVRvTWF4U2l6
ZShEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIGNvbnN0IEludFNpemUmIGRz
dFNpemUpOwotRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiwgRmxvYXRT
aXplIHNjYWxlKTsKLURyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJh
Z0ltYWdlUmVmLCBmbG9hdCBkZWx0YSk7Ci0KLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VG
cm9tSW1hZ2UoSW1hZ2UqLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pOwotRHJhZ0ltYWdl
UmVmIGNyZWF0ZURyYWdJbWFnZUljb25Gb3JDYWNoZWRJbWFnZUZpbGVuYW1lKGNvbnN0IFN0cmlu
ZyYpOwotCi1EcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTm9kZShGcmFtZSYsIE5vZGUm
KTsKLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rpb24oRnJhbWUmLCBib29s
IGZvcmNlQmxhY2tUZXh0ID0gZmFsc2UpOwotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZv
clJhbmdlKEZyYW1lJiwgUmFuZ2UmLCBib29sIGZvcmNlQmxhY2tUZXh0ID0gZmFsc2UpOwotRHJh
Z0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckltYWdlKEZyYW1lJiwgTm9kZSYsIEludFJlY3Qm
IGltYWdlUmVjdCwgSW50UmVjdCYgZWxlbWVudFJlY3QpOwotRHJhZ0ltYWdlUmVmIGNyZWF0ZURy
YWdJbWFnZUZvckxpbmsoVVJMJiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgRm9udFJlbmRlcmluZ01v
ZGUpOwotdm9pZCBkZWxldGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmKTsKKyAgICAKKyAgICBJbnRT
aXplIGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdlUmVmKTsKKyAgICAKKyAgICAvL1RoZXNlIGZ1bmN0
aW9ucyBzaG91bGQgYmUgbWVtb3J5IG5ldXRyYWwsIGVnLiBpZiB0aGV5IHJldHVybiBhIG5ld2x5
IGFsbG9jYXRlZCBpbWFnZSwgCisgICAgLy90aGV5IHNob3VsZCByZWxlYXNlIHRoZSBpbnB1dCBp
bWFnZS4gIEFzIGEgY29yb2xsYXJ5IHRoZXNlIG1ldGhvZHMgZG9uJ3QgZ3VhcmFudGVlCisgICAg
Ly90aGUgaW5wdXQgaW1hZ2UgcmVmIHdpbGwgc3RpbGwgYmUgdmFsaWQgYWZ0ZXIgdGhleSBoYXZl
IGJlZW4gY2FsbGVkCisgICAgRHJhZ0ltYWdlUmVmIGZpdERyYWdJbWFnZVRvTWF4U2l6ZShEcmFn
SW1hZ2VSZWYgaW1hZ2UsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIGNvbnN0IEludFNpemUmIHNp
emUpOworICAgIERyYWdJbWFnZVJlZiBzY2FsZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYsIEZsb2F0
U2l6ZSBzY2FsZSk7CisgICAgRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlv
bihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0IGRlbHRhKTsKKyAgICAKKyAgICBEcmFnSW1hZ2VS
ZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiwgSW1hZ2VPcmllbnRhdGlvbkRlc2Ny
aXB0aW9uKTsKKyAgICBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZElt
YWdlRmlsZW5hbWUoY29uc3QgU3RyaW5nJik7CisgICAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJ
bWFnZUZvckxpbmsoVVJMJiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgRm9udFJlbmRlcmluZ01vZGUp
OworICAgIHZvaWQgZGVsZXRlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZik7CiB9CiAKLSNlbmRpZiAv
LyBEcmFnSW1hZ2VfaAorCisjZW5kaWYgLy8hRHJhZ0ltYWdlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lSU9TLm1tIGIvU291cmNlL1dlYktp
dC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVJT1MubW0KaW5kZXggZDU2MmExNjE5MjY1ZmE2
MWUwYjRjMTg5NmEwOGZmNWZlYjEzYjVlYi4uNWRmZjZmMGZlOWMxZDlmMmRlNGExZTExOTNhNWVm
YjQ0NjJkMDc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVJT1MubW0KQEAgLTMzLDcgKzMzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lU2Vs
ZWN0aW9uLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0ZyYW1lU25hcHNob3R0aW5nLmg+CisjaW1wb3J0
IDxXZWJDb3JlL0ZyYW1lU25hcHNob3R0aW5nTWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1l
Vmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL2h0bWxlZGl0aW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5t
bQppbmRleCBhZmJmOGNjNjRlMDU0M2VkMjM1YjcyNjEzZGRiYTNhODA4YjkzZjEwLi40ODYyODBl
NDdiNmE1NWQ2OTNmODRhMzUxNDJkYTMzOGUyYmY3OWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTg1LDcgKzg1LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUv
RG9jdW1lbnRGcmFnbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRHJhZ0NvbnRyb2xsZXIuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvRHJhZ0ltYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRvci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9FZGl0b3JEZWxldGVBY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvRWxlbWVudC5o
PgpAQCAtOTYsNiArOTUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9GcmFtZUxvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVNlbGVjdGlvbi5o
PgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVNuYXBzaG90dGluZ01hYy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9GcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTENvbnZlcnRlci5oPgogI2lt
cG9ydCA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KQEAgLTE4MjAsMTIgKzE4MjAsNyBAQCBzdGF0aWMg
Ym9vbCBtb3VzZUV2ZW50SXNQYXJ0T2ZDbGlja09yRHJhZyhOU0V2ZW50ICpldmVudCkKIHsKICAg
ICBpZiAoIVtzZWxmIF9oYXNTZWxlY3Rpb25dKQogICAgICAgICByZXR1cm4gbmlsOwotCi0gICAg
RnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoW3NlbGYgX2ZyYW1lXSk7Ci0gICAgaWYgKCFjb3JlRnJh
bWUpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBOU0ltYWdlICpkcmFnSW1hZ2UgPSBbW2Ny
ZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbigqY29yZUZyYW1lKSByZXRhaW5dIGF1dG9yZWxlYXNl
XTsKKyAgICBOU0ltYWdlICpkcmFnSW1hZ2UgPSBzZWxlY3Rpb25JbWFnZShjb3JlKFtzZWxmIF9m
cmFtZV0pKTsKICAgICBbZHJhZ0ltYWdlIF93ZWJfZGlzc29sdmVUb0ZyYWN0aW9uOldlYkRyYWdJ
bWFnZUFscGhhXTsKICAgICByZXR1cm4gZHJhZ0ltYWdlOwogfQpAQCAtNTk3MCwxMSArNTk2NSw3
IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3Ry
aW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiB7CiAgICAgaWYgKCFbc2VsZiBfaGFzU2VsZWN0
aW9uXSkKICAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3Jl
KFtzZWxmIF9mcmFtZV0pOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm4gbmls
OwotICAgIHJldHVybiBbW2NyZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbigqY29yZUZyYW1lLCBm
b3JjZUJsYWNrVGV4dCkgcmV0YWluXSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIHNlbGVjdGlv
bkltYWdlKGNvcmUoW3NlbGYgX2ZyYW1lXSksIGZvcmNlQmxhY2tUZXh0KTsKIH0KIAogLSAoTlNS
ZWN0KXNlbGVjdGlvbkltYWdlUmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vRE9N
Q29yZUNsYXNzZXMuY3BwIGIvU291cmNlL1dlYktpdC93aW4vRE9NQ29yZUNsYXNzZXMuY3BwCmlu
ZGV4IGI4MWQ0YTdkNzM0NzdhZGY4YmRiNzgzYjI1MWRlMWRjOWZmZDkzMDcuLmNjYmQ3MTkwMWU0
NTU3OTAzMWI5MDJiYTU2YTg5NGU2YThkNzljYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luL0RPTUNvcmVDbGFzc2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9ET01Db3JlQ2xh
c3Nlcy5jcHAKQEAgLTM2LDEwICszNiwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ09NUHRyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01XaW5kb3cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3Vt
ZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9EcmFnSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0VsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaW1wbGVGb250RGF0YS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSFRNTEZvcm1FbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MSW5wdXRF
bGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KQEAgLTQ5LDcgKzQ5LDYg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL05vZGVMaXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5k
ZXJFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJUcmVlQXNUZXh0Lmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9TaW1wbGVGb250RGF0YS5oPgogCiAjaW5jbHVkZSA8aW5pdGd1aWQuaD4K
IC8vIHszQjBDMEVGRi00NzhCLTRiMGItODI5MC1EMjMyMUUwOEUyM0V9CkBAIC0xMjgwLDcgKzEy
NzksNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERPTUVsZW1lbnQ6OnJlbmRlcmVkSW1h
Z2UoSEJJVE1BUCogaW1hZ2UpCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIEVfRkFJ
TDsKIAotICAgICppbWFnZSA9IGNyZWF0ZURyYWdJbWFnZUZvck5vZGUoKmZyYW1lLCAqbV9lbGVt
ZW50KTsKKyAgICAqaW1hZ2UgPSBmcmFtZS0+bm9kZUltYWdlKG1fZWxlbWVudCk7CiAgICAgaWYg
KCEqaW1hZ2UpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>