<?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>200607</bug_id>
          
          <creation_ts>2019-08-09 22:32:29 -0700</creation_ts>
          <short_desc>Remove some more unused 32-bit code</short_desc>
          <delta_ts>2019-08-10 01:05:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1560175</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-08-09 22:32:29 -0700</bug_when>
    <thetext>Remove some more unused 32-bit code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560176</commentid>
    <comment_count>1</comment_count>
      <attachid>375998</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-08-09 22:33:11 -0700</bug_when>
    <thetext>Created attachment 375998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560178</commentid>
    <comment_count>2</comment_count>
      <attachid>375998</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-08-09 22:45:14 -0700</bug_when>
    <thetext>Comment on attachment 375998
Patch

r=ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560203</commentid>
    <comment_count>3</comment_count>
      <attachid>375998</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-10 01:04:43 -0700</bug_when>
    <thetext>Comment on attachment 375998
Patch

Clearing flags on attachment: 375998

Committed r248498: &lt;https://trac.webkit.org/changeset/248498&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560204</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-10 01:04:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560207</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-10 01:05:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/54157374&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375998</attachid>
            <date>2019-08-09 22:33:11 -0700</date>
            <delta_ts>2019-08-10 01:04:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200607-20190809223310.patch</filename>
            <type>text/plain</type>
            <size>42996</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFmMWY1YjEwODgzZjAwOGEx
YzA3YzU2YWFiZWYyNjc5ZGU3MGQxOWQuLjRjNGU3MzlkOTcyMjMzYjM4M2Q2NWZjYWJiMzlkZDcy
YzYwNzRlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMDgtMDkgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNvbWUgbW9y
ZSB1bnVzZWQgMzItYml0IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMDYwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTW9kdWxlcy9PU1gubW9kdWxlbWFwOgorCiAyMDE5LTA4LTA4ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OICg1MjI3OTk4
Nyk6IE1vc3Qgb2YgdGhlIFdLVUlEZWxlZ2F0ZSBjb250ZXh0TWVudSBkZWxlZ2F0ZSBtZXRob2Rz
IGFyZSBub3QgYmVpbmcgY2FsbGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4IDk2YmRkYWRkNzU0
MWE0MDE3NDAwYmJkMmE1MjU5ZGNkZWZkMTFkN2YuLmQ4ZDQ0YTA4Y2U1ZmY0ZTlmYTY5ZjUxNTFi
YzBhNTJlNjAwYThhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTktMDgtMDkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlIHNvbWUgbW9yZSB1bnVzZWQgMzItYml0IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDYwNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAg
ICAgICogV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTktMDgt
MDggIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW0ZUV10g
R2V0IFdlYktpdCwgV2ViS2l0MiwgYW5kIE1pbmlCcm93c2VyIGJ1aWxkaW5nIGFuZCBleGVjdXRp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA5NDQ5ZGYyYjNjZTQxNDkzOWQ4ZWY4
OTRkM2EzN2YxNTM2NjdjY2JiLi5mZTQyMjAyYzgwMjliYWRiOWExODgxM2U2OTliYWNkMzA1NmMy
YjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTkt
MDgtMDkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAg
UmVtb3ZlIHNvbWUgbW9yZSB1bnVzZWQgMzItYml0IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDYwNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0TGVnYWN5
LnhjY29uZmlnOgorICAgICAgICAqIE1pc2MvV2ViU2hhcmluZ1NlcnZpY2VQaWNrZXJDb250cm9s
bGVyLm1tOgorICAgICAgICAoLVtXZWJTaGFyaW5nU2VydmljZVBpY2tlckNvbnRyb2xsZXIgaW5p
dFdpdGhJdGVtczppbmNsdWRlRWRpdG9yU2VydmljZXM6Y2xpZW50OnN0eWxlOl0pOgorICAgICAg
ICAoLVtXZWJTaGFyaW5nU2VydmljZVBpY2tlckNvbnRyb2xsZXIgaW5pdFdpdGhTaGFyaW5nU2Vy
dmljZVBpY2tlcjpjbGllbnQ6XSk6CisgICAgICAgICgtW1dlYlNoYXJpbmdTZXJ2aWNlUGlja2Vy
Q29udHJvbGxlciBzaGFyaW5nU2VydmljZTpkaWRTaGFyZUl0ZW1zOl0pOgorICAgICAgICAqIFBs
dWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIubW06CisgICAgICAgICogUGx1Z2lu
cy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5oOiBSZW1vdmVkLgorICAgICAg
ICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24ubW06IFJlbW92
ZWQuCisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29h
Lmg6CisgICAgICAgIChXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjppbnN0YWxs
S2V5RXZlbnRIYW5kbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZl
bnRIYW5kbGVyQ29jb2E6OnJlbW92ZUtleUV2ZW50SGFuZGxlcik6IERlbGV0ZWQuCisgICAgICAg
ICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tOgorICAgICAg
ICAoV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6V2ViTmV0c2NhcGVQbHVnaW5F
dmVudEhhbmRsZXJDb2NvYSk6CisgICAgICAgIChXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxl
ckNvY29hOjprZXlEb3duKToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVy
Q29jb2E6OmZvY3VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFu
ZGxlckNvY29hOjppbnN0YWxsS2V5RXZlbnRIYW5kbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
Yk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OnJlbW92ZUtleUV2ZW50SGFuZGxlcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpU
U01FdmVudEhhbmRsZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViTmV0c2NhcGVQbHVnaW5FdmVu
dEhhbmRsZXJDb2NvYTo6aGFuZGxlVFNNRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tOgorICAgICAgICAoV2ViQ29udGV4dE1l
bnVDbGllbnQ6OmNvbnRleHRNZW51Rm9yRXZlbnQpOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRN
TFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hZGp1c3RlZEJvdHRvbU9mUGFnZVdp
dGhUb3A6Ym90dG9tOmxpbWl0Ol0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBwcmVzc3VyZUNo
YW5nZVdpdGhFdmVudDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAg
IChMYXllckZsdXNoQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMpOgorCiAyMDE5LTA4LTA4ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIHJ1bnRpbWUgZmxhZyBmb3Ig
bGF6eSBpbWFnZSBsb2FkaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L01vZHVsZXMvT1NY
Lm1vZHVsZW1hcCBiL1NvdXJjZS9XZWJLaXQvTW9kdWxlcy9PU1gubW9kdWxlbWFwCmluZGV4IGUx
ODBjMmM3ZmNlMjBiODBkYmI5NGVlMTI1OGYzMDBlMzY2MmIxZWUuLjg5Y2EwNzRmNDc4MjhjNzM2
NGExZDFmZGEwOThmNDdlZjk3ZjQwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTW9kdWxl
cy9PU1gubW9kdWxlbWFwCisrKyBiL1NvdXJjZS9XZWJLaXQvTW9kdWxlcy9PU1gubW9kdWxlbWFw
CkBAIC0xNSw3ICsxNSw0IEBAIGZyYW1ld29yayBtb2R1bGUgV2ViS2l0IFtzeXN0ZW1dIFtleHRl
cm5fY10gewogICAgIGhlYWRlciAiRE9NUHJvZ3Jlc3NFdmVudC5oIgogICAgIGV4cG9ydCAqCiAg
IH0KLQotICBleGNsdWRlIGhlYWRlciAiSElXZWJWaWV3LmgiCi0gIGV4Y2x1ZGUgaGVhZGVyICJD
YXJib25VdGlscy5oIiAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRm
b3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRl
eCAzYTJiM2Y5MWMzOTc0MjJjNDU0ODY4YzkwZDc3MDExNGUzNmRjOTFmLi4xNzU1YzcwYjlhYTZk
MTlhYjcyYmNjNTJiNWNkYmZkOTBjODc1N2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1N
YWMuY21ha2UKQEAgLTIwMiw3ICsyMDIsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXRMZWdhY3lfU09V
UkNFUwogICAgIG1hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KICAgICBt
YWMvUGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbQogICAgIG1hYy9QbHVnaW5zL1dlYk5l
dHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyLm1tCi0gICAgbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQ
bHVnaW5FdmVudEhhbmRsZXJDYXJib24ubW0KICAgICBtYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpbkV2ZW50SGFuZGxlckNvY29hLm1tCiAgICAgbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVn
aW5QYWNrYWdlLm1tCiAgICAgbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0K
QEAgLTM0MiwxMSArMzQxLDYgQEAgc2V0KFdlYktpdExlZ2FjeV9GT1JXQVJESU5HX0hFQURFUlNf
RklMRVMKIGFkZF9kZWZpbml0aW9ucygiLWluY2x1ZGUgV2ViS2l0UHJlZml4LmgiKQogCiBzZXQo
Qzk5X0ZJTEVTCi0gICAgJHtXRUJLSVRMRUdBQ1lfRElSfS9tYWMvQ2FyYm9uL0NhcmJvblV0aWxz
Lm0KLSAgICAke1dFQktJVExFR0FDWV9ESVJ9L21hYy9DYXJib24vQ2FyYm9uV2luZG93Q29udGVu
dFZpZXcubQotICAgICR7V0VCS0lUTEVHQUNZX0RJUn0vbWFjL0NhcmJvbi9DYXJib25XaW5kb3dG
cmFtZS5tCi0gICAgJHtXRUJLSVRMRUdBQ1lfRElSfS9tYWMvQ2FyYm9uL0hJVmlld0FkYXB0ZXIu
bQotCiAgICAgbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdEVkaXRpbmdEZWxlZ2F0ZS5t
CiAgICAgbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFBvbGljeURlbGVnYXRlLm0KICAg
ICBtYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlEZWxlZ2F0ZS5tCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA5NDNkOGJjM2Y3MTJiMjdhYzU1YWMwNGJlMTQ0ZWU3MjE1Y2Q0Y2NmLi4w
YWI4Yzc0OTczNDQ0ZDExNDFjYTc2ZTZiY2RkYmZhODdmZGYyMWFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEwMiw4ICsxMDIsNiBAQAogCQkxQUM3MTc2RjFBMjY1NjhBMDAyRTMxMTUgLyog
V2ViVmlzaXRlZExpbmtTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUFDNzE3NkQxQTI2NTY4QTAwMkUzMTE1IC8qIFdlYlZpc2l0ZWRMaW5rU3Rv
cmUuaCAqLzsgfTsKIAkJMUFFQTY2RDQwREM2QjFGRjAwM0QxMkJGIC8qIFdlYk5ldHNjYXBlUGx1
Z2luRXZlbnRIYW5kbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQUVBNjZEMjBEQzZCMUZGMDAzRDEyQkYgLyogV2ViTmV0c2NhcGVQbHVnaW5FdmVu
dEhhbmRsZXIuaCAqLzsgfTsKIAkJMUFFQTY2RDUwREM2QjFGRjAwM0QxMkJGIC8qIFdlYk5ldHNj
YXBlUGx1Z2luRXZlbnRIYW5kbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUFFQTY2RDMwREM2QjFGRjAwM0QxMkJGIC8qIFdlYk5ldHNjYXBlUGx1
Z2luRXZlbnRIYW5kbGVyLm1tICovOyB9OwotCQkxQUVBNjZEODBEQzZCMjA5MDAzRDEyQkYgLyog
V2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRUE2NkQ2MERDNkIyMDkwMDNEMTJCRiAvKiBX
ZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5oICovOyB9OwotCQkxQUVBNjZEOTBE
QzZCMjA5MDAzRDEyQkYgLyogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24ubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUVBNjZENzBE
QzZCMjA5MDAzRDEyQkYgLyogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24ubW0g
Ki87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1Xbm8tZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiOyB9OyB9OwogCQkxQUVBNkE1MDBEQzhDRTJGMDAzRDEyQkYgLyogV2ViTmV0c2NhcGVQ
bHVnaW5FdmVudEhhbmRsZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUFFQTZBNEUwREM4Q0UyRjAwM0QxMkJGIC8qIFdlYk5ldHNjYXBlUGx1
Z2luRXZlbnRIYW5kbGVyQ29jb2EuaCAqLzsgfTsKIAkJMUFFQTZBNTEwREM4Q0UyRjAwM0QxMkJG
IC8qIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUVBNkE0RjBEQzhDRTJGMDAzRDEyQkYg
LyogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbSAqLzsgfTsKIAkJMUMwRDQw
ODcwQUMxQzhGNDAwMDlDMTEzIC8qIFdlYktpdFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMEQ0MDg1MEFDMUM4RjQwMDA5QzEx
MyAvKiBXZWJLaXRWZXJzaW9uQ2hlY2tzLmggKi87IH07CkBAIC04MjYsOCArODI0LDYgQEAKIAkJ
MUFDNzE3NkQxQTI2NTY4QTAwMkUzMTE1IC8qIFdlYlZpc2l0ZWRMaW5rU3RvcmUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVmlzaXRlZExpbmtTdG9yZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQUVBNjZEMjBEQzZCMUZGMDAzRDEyQkYgLyogV2ViTmV0
c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUFFQTY2RDMwREM2QjFGRjAwM0QxMkJGIC8qIFdlYk5ldHNjYXBlUGx1Z2luRXZl
bnRIYW5kbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
TmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTFBRUE2NkQ2MERDNkIyMDkwMDNEMTJCRiAvKiBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFu
ZGxlckNhcmJvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOZXRzY2Fw
ZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkxQUVBNjZENzBEQzZCMjA5MDAzRDEyQkYgLyogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDYXJib24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJO
ZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUFFQTZBNEUwREM4Q0UyRjAwM0QxMkJGIC8qIFdlYk5ldHNjYXBlUGx1Z2luRXZl
bnRIYW5kbGVyQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTmV0
c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQUVBNkE0RjBEQzhDRTJGMDAzRDEyQkYgLyogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhh
bmRsZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
Yk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFDMEQ0MDg1MEFDMUM4RjQwMDA5QzExMyAvKiBXZWJLaXRWZXJzaW9uQ2hlY2tz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdFZlcnNpb25DaGVja3Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MDAsOCArMTY5Niw2IEBACiAJCQlj
aGlsZHJlbiA9ICgKIAkJCQkxQUVBNjZEMjBEQzZCMUZGMDAzRDEyQkYgLyogV2ViTmV0c2NhcGVQ
bHVnaW5FdmVudEhhbmRsZXIuaCAqLywKIAkJCQkxQUVBNjZEMzBEQzZCMUZGMDAzRDEyQkYgLyog
V2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIubW0gKi8sCi0JCQkJMUFFQTY2RDYwREM2QjIw
OTAwM0QxMkJGIC8qIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uLmggKi8sCi0J
CQkJMUFFQTY2RDcwREM2QjIwOTAwM0QxMkJGIC8qIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5k
bGVyQ2FyYm9uLm1tICovLAogCQkJCTFBRUE2QTRFMERDOENFMkYwMDNEMTJCRiAvKiBXZWJOZXRz
Y2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLmggKi8sCiAJCQkJMUFFQTZBNEYwREM4Q0UyRjAw
M0QxMkJGIC8qIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0gKi8sCiAJCQkp
OwpAQCAtMzA1MCw3ICszMDQ0LDYgQEAKIAkJCQlBMTBDMUQ3MjE4MjAzMDBFMDAzNjg4M0EgLyog
V2ViTUlNRVR5cGVSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4NUY2MjYxMDcxMkI4
MDAwN0FBMzkzIC8qIFdlYk5hdmlnYXRpb25EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUVB
NjZENDBEQzZCMUZGMDAzRDEyQkYgLyogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCTFBRUE2NkQ4MERDNkIyMDkwMDNEMTJCRiAvKiBXZWJOZXRzY2Fw
ZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFQTZBNTAw
REM4Q0UyRjAwM0QxMkJGIC8qIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzOTgxMDMxMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJOZXRzY2Fw
ZVBsdWdpblBhY2thZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTgxMDJCMDgyNEJGMDEwMDhE
RjAzOCAvKiBXZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjM0
LDExICszMjI3LDExIEBACiAJCQlpc2EgPSBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVp
bGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCTUzN0NGODNDMjJF
RkMxM0QwMEM2RUJCMyAvKiBjaGVjay14Y2ZpbGVsaXN0cy5zaCBpbiBSZXNvdXJjZXMgKi8sCiAJ
CQkJMjlBRUY5NjAxMzRDNzZGQjAwRkU1MDk2IC8qIE91dGxvb2tRdWlya3NVc2VyU2NyaXB0Lmpz
IGluIFJlc291cmNlcyAqLywKIAkJCQk1QzlEOTI1QTIyRDdFOEFEMDA4RTkyNjYgLyogU291cmNl
cy50eHQgaW4gUmVzb3VyY2VzICovLAogCQkJCTVDOUQ5MjVCMjJEN0U4QUQwMDhFOTI2NiAvKiBT
b3VyY2VzQ29jb2EudHh0IGluIFJlc291cmNlcyAqLywKIAkJCQk5Mzk4MTBCNzA4MjRCRjAxMDA4
REYwMzggLyogdXJsX2ljb24udGlmZiBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJNTM3Q0Y4M0MyMkVG
QzEzRDAwQzZFQkIzIC8qIGNoZWNrLXhjZmlsZWxpc3RzLnNoIGluIFJlc291cmNlcyAqLywKIAkJ
CQk5Mzk4MTBCNTA4MjRCRjAxMDA4REYwMzggLyogV2ViQXV0aGVudGljYXRpb25QYW5lbC54aWIg
aW4gUmVzb3VyY2VzICovLAogCQkJCTVERTgzQTdBMEQwRjdGOTQwMENBRDEyQSAvKiBXZWJKYXZh
U2NyaXB0VGV4dElucHV0UGFuZWwueGliIGluIFJlc291cmNlcyAqLywKIAkJCSk7CkBAIC0zNTQ2
LDcgKzM1MzksNiBAQAogCQkJCUExMEMxRDczMTgyMDMwMEUwMDM2ODgzQSAvKiBXZWJNSU1FVHlw
ZVJlZ2lzdHJ5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4NUY2MjgxMDcxMkI5NzAwN0FBMzkz
IC8qIFdlYk5hdmlnYXRpb25EYXRhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFQTY2RDUwREM2
QjFGRjAwM0QxMkJGIC8qIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyLm1tIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMUFFQTY2RDkwREM2QjIwOTAwM0QxMkJGIC8qIFdlYk5ldHNjYXBlUGx1Z2lu
RXZlbnRIYW5kbGVyQ2FyYm9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFQTZBNTEwREM4Q0Uy
RjAwM0QxMkJGIC8qIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0gaW4gU291
cmNlcyAqLywKIAkJCQk5Mzk4MTBENjA4MjRCRjAxMDA4REYwMzggLyogV2ViTmV0c2NhcGVQbHVn
aW5QYWNrYWdlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5ODEwRDEwODI0QkYwMTAwOERGMDM4
IC8qIFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9XZWJLaXRMZWdhY3kueGNj
b25maWcgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9XZWJLaXRMZWdh
Y3kueGNjb25maWcKaW5kZXggZWU2ZjA3NzQ0NDEyNTQ4ZDkxMjY5OTc3NWEyNTU2YThiMDNiNDk5
Zi4uZWIxMDAzZDcxZThkOGZlYzIzNGFhY2Q3ODVjNGFjYzRlZjBlNWRhNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvV2ViS2l0TGVnYWN5LnhjY29u
ZmlnCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL1dlYktpdExl
Z2FjeS54Y2NvbmZpZwpAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIldlYktpdFRhcmdldENv
bmRpdGlvbmFscy54Y2NvbmZpZyIKIAogRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVMgPSAkKEVY
Q0xVREVEX1NPVVJDRV9GSUxFX05BTUVTXyQoV0tfQ09DT0FfVE9VQ0gpKTsKLUVYQ0xVREVEX1NP
VVJDRV9GSUxFX05BTUVTX2NvY29hdG91Y2ggPSAqLmRlZnMgKi54aWIgKi5wZGYgKi50aWZmIENh
cmJvblV0aWxzLiogQ2FyYm9uV2luZG93QWRhcHRlci4qIENhcmJvbldpbmRvd0NvbnRlbnRWaWV3
LiogQ2FyYm9uV2luZG93RnJhbWUuKiBISVZpZXdBZGFwdGVyLiogSElXZWJWaWV3LiogT3V0bG9v
a1F1aXJrc1VzZXJTY3JpcHQuanMgUG9wdXBNZW51TWFjLiogU2VhcmNoUG9wdXBNZW51TWFjLiog
V2ViQ2xpcFZpZXcuKiBXZWJEYXNoYm9hcmRSZWdpb24uKiBXZWJEeW5hbWljU2Nyb2xsQmFyc1Zp
ZXcuKiBXZWJJY29uRGF0YWJhc2UuKiBXZWJJbnNwZWN0b3JDbGllbnQuKiBXZWJKYXZhU2NyaXB0
VGV4dElucHV0UGFuZWwuKiBXZWJOU0V2ZW50RXh0cmFzLiogV2ViTlNQYXN0ZWJvYXJkRXh0cmFz
LiogV2ViTlNXaW5kb3dFeHRyYXMuKiBXZWJQYW5lbEF1dGhlbnRpY2F0aW9uSGFuZGxlci4qIFdl
YlBsdWdpbnNQcml2YXRlLiogV2ViU3RyaW5nVHJ1bmNhdG9yLiogV2ViVGV4dENvbXBsZXRpb25D
b250cm9sbGVyLio7CitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19jb2NvYXRvdWNoID0gKi5k
ZWZzICoueGliICoucGRmICoudGlmZiBPdXRsb29rUXVpcmtzVXNlclNjcmlwdC5qcyBQb3B1cE1l
bnVNYWMuKiBTZWFyY2hQb3B1cE1lbnVNYWMuKiBXZWJDbGlwVmlldy4qIFdlYkRhc2hib2FyZFJl
Z2lvbi4qIFdlYkR5bmFtaWNTY3JvbGxCYXJzVmlldy4qIFdlYkljb25EYXRhYmFzZS4qIFdlYklu
c3BlY3RvckNsaWVudC4qIFdlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC4qIFdlYk5TRXZlbnRF
eHRyYXMuKiBXZWJOU1Bhc3RlYm9hcmRFeHRyYXMuKiBXZWJOU1dpbmRvd0V4dHJhcy4qIFdlYlBh
bmVsQXV0aGVudGljYXRpb25IYW5kbGVyLiogV2ViUGx1Z2luc1ByaXZhdGUuKiBXZWJTdHJpbmdU
cnVuY2F0b3IuKiBXZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIuKjsKIEVYQ0xVREVEX1NPVVJD
RV9GSUxFX05BTUVTXyA9ICpJT1MubW0gTWVtb3J5TWVhc3VyZS5oIFdlYkNhcmV0Q2hhbmdlTGlz
dGVuZXIuaCBXZWJGaXhlZFBvc2l0aW9uQ29udGVudC5oIFdlYkZyYW1lSU9TLmggV2ViRnJhbWVJ
UGhvbmUuaCBXZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmggV2ViR2VvbG9jYXRp
b25Qcml2YXRlLmggV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5oIFdlYk1JTUVUeXBlUmVnaXN0
cnkuaCBXZWJOU1N0cmluZ0V4dHJhc0lPUy5oIFdlYk5TU3RyaW5nRXh0cmFzSVBob25lLmggV2Vi
UERGVmlld0lPUy5oIFdlYlBERlZpZXdJUGhvbmUuaCBXZWJQREZWaWV3UGxhY2Vob2xkZXIuaCBX
ZWJTZWxlY3Rpb25SZWN0LmggV2ViVUlLaXREZWxlZ2F0ZS5oIFdlYlVJS2l0U3VwcG9ydC5oIFdl
YlZpc2libGVQb3NpdGlvbi5oIERPTUhUTUxUZXh0QXJlYUVsZW1lbnRQcml2YXRlLmggRE9NVUlL
aXRFeHRlbnNpb25zLmg7CiAKIEVYUE9SVEVEX1NZTUJPTFNfRklMRSA9ICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5LmdlbmVyYXRl
ZC5leHA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYlNoYXJp
bmdTZXJ2aWNlUGlja2VyQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01p
c2MvV2ViU2hhcmluZ1NlcnZpY2VQaWNrZXJDb250cm9sbGVyLm1tCmluZGV4IDZjYzQ5Y2RiMjU3
Njk5MWM2MmM2ZGE5NTk5NWQ2NzI0OGM4YjAwYjEuLjQ4MGM5MGYzYjU3MTVmNWJhOTQzOWQ3ZjEz
MzI3ZWVhYTRiMTY2OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2Mv
V2ViU2hhcmluZ1NlcnZpY2VQaWNrZXJDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL01pc2MvV2ViU2hhcmluZ1NlcnZpY2VQaWNrZXJDb250cm9sbGVyLm1tCkBAIC03
Niw5ICs3Niw2IEBAIFJldGFpblB0cjxOU0ltYWdlPiBXZWJTaGFyaW5nU2VydmljZVBpY2tlckNs
aWVudDo6aW1hZ2VGb3JDdXJyZW50U2hhcmluZ1NlcnZpY2VQCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
Q09OVFJPTFMpCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJdGVtczooTlNBcnJheSAqKWl0ZW1z
IGluY2x1ZGVFZGl0b3JTZXJ2aWNlczooQk9PTClpbmNsdWRlRWRpdG9yU2VydmljZXMgY2xpZW50
OihXZWJTaGFyaW5nU2VydmljZVBpY2tlckNsaWVudCopcGlja2VyQ2xpZW50IHN0eWxlOihOU1No
YXJpbmdTZXJ2aWNlUGlja2VyU3R5bGUpc3R5bGUKIHsKLSNpZm5kZWYgX19MUDY0X18KLSAgICBy
ZXR1cm4gbmlsOwotI2Vsc2UKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAg
ICAgcmV0dXJuIG5pbDsKIApAQCAtOTEsMTQgKzg4LDEwIEBAIFJldGFpblB0cjxOU0ltYWdlPiBX
ZWJTaGFyaW5nU2VydmljZVBpY2tlckNsaWVudDo6aW1hZ2VGb3JDdXJyZW50U2hhcmluZ1NlcnZp
Y2VQCiAgICAgX3BpY2tlckNsaWVudCA9IHBpY2tlckNsaWVudDsKIAogICAgIHJldHVybiBzZWxm
OwotI2VuZGlmCiB9CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFNoYXJpbmdTZXJ2aWNlUGlj
a2VyOihOU1NoYXJpbmdTZXJ2aWNlUGlja2VyICopc2hhcmluZ1NlcnZpY2VQaWNrZXIgY2xpZW50
OihXZWJTaGFyaW5nU2VydmljZVBpY2tlckNsaWVudCYpcGlja2VyQ2xpZW50CiB7Ci0jaWZuZGVm
IF9fTFA2NF9fCi0gICAgcmV0dXJuIG5pbDsKLSNlbHNlCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBl
ciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKQEAgLTEwOSw3ICsxMDIsNiBAQCBSZXRh
aW5QdHI8TlNJbWFnZT4gV2ViU2hhcmluZ1NlcnZpY2VQaWNrZXJDbGllbnQ6OmltYWdlRm9yQ3Vy
cmVudFNoYXJpbmdTZXJ2aWNlUAogICAgIF9waWNrZXJDbGllbnQgPSAmcGlja2VyQ2xpZW50Owog
CiAgICAgcmV0dXJuIHNlbGY7Ci0jZW5kaWYKIH0KICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9D
T05UUk9MUykKIApAQCAtMjAyLDcgKzE5NCw2IEBAIFJldGFpblB0cjxOU0ltYWdlPiBXZWJTaGFy
aW5nU2VydmljZVBpY2tlckNsaWVudDo6aW1hZ2VGb3JDdXJyZW50U2hhcmluZ1NlcnZpY2VQCiAK
ICAgICBpZiAoW2l0ZW0gaXNLaW5kT2ZDbGFzczpbTlNJbWFnZSBjbGFzc11dKQogICAgICAgICBb
c2VsZiBkaWRTaGFyZUltYWdlRGF0YTpbaXRlbSBUSUZGUmVwcmVzZW50YXRpb25dIGNvbmZpcm1E
YXRhSXNWYWxpZFRJRkZEYXRhOk5PXTsKLSNpZmRlZiBfX0xQNjRfXwogICAgIGVsc2UgaWYgKFtp
dGVtIGlzS2luZE9mQ2xhc3M6W05TSXRlbVByb3ZpZGVyIGNsYXNzXV0pIHsKICAgICAgICAgTlNJ
dGVtUHJvdmlkZXIgKml0ZW1Qcm92aWRlciA9IChOU0l0ZW1Qcm92aWRlciAqKWl0ZW07CiAgICAg
ICAgIE5TU3RyaW5nICppdGVtVVRJID0gaXRlbVByb3ZpZGVyLnJlZ2lzdGVyZWRUeXBlSWRlbnRp
ZmllcnMuZmlyc3RPYmplY3Q7CkBAIC0yMjQsNyArMjE1LDYgQEAgUmV0YWluUHRyPE5TSW1hZ2U+
IFdlYlNoYXJpbmdTZXJ2aWNlUGlja2VyQ2xpZW50OjppbWFnZUZvckN1cnJlbnRTaGFyaW5nU2Vy
dmljZVAKIAogICAgICAgICB9XTsKICAgICB9Ci0jZW5kaWYKICAgICBlbHNlIGlmIChbaXRlbSBp
c0tpbmRPZkNsYXNzOltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3NdXSkgewogICAgICAgICBGcmFt
ZSYgZnJhbWUgPSBfcGlja2VyQ2xpZW50LT5wYWdlRm9yU2hhcmluZ1NlcnZpY2VQaWNrZXIoKnNl
bGYpLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICAgICAgZnJh
bWUuZWRpdG9yKCkucmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKGl0ZW0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpbkV2ZW50SGFuZGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2Vi
TmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIubW0KaW5kZXggMDBmYzBkODAzY2MyYTEyYjFkOTQy
ZjFiYzA0ODBiMmFiZmZmZTg0YS4uZjdhZWRiY2VkNGQ3ZjVjNGJhM2U5NmUzNTYxY2E3ZjBiMjY1
YzhhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpbkV2ZW50SGFuZGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyLm1tCkBAIC0yOSw3ICsyOSw2IEBA
CiAKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBsdWdp
blZpZXcuaCIKLSNpbXBvcnQgIldlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uLmgi
CiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLmgiCiAKIHN0ZDo6
dW5pcXVlX3B0cjxXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlcj4gV2ViTmV0c2NhcGVQbHVn
aW5FdmVudEhhbmRsZXI6OmNyZWF0ZShXZWJOZXRzY2FwZVBsdWdpblZpZXcgKnBsdWdpblZpZXcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBl
UGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVn
aW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDY3NmZkMTc4OWJjOTIyYmMwYTAzMWNjZWZmNmYyODZmY2Q0NzMyNDAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJv
bi5oCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
ICYmICFkZWZpbmVkKF9fTFA2NF9fKQotCi0jaWZuZGVmIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRI
YW5kbGVyQ2FyYm9uX2gKLSNkZWZpbmUgV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJi
b25faAotCi0jaW5jbHVkZSAiV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIuaCIKLQotI2lt
cG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotCi1jbGFz
cyBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbiA6IHB1YmxpYyBXZWJOZXRzY2Fw
ZVBsdWdpbkV2ZW50SGFuZGxlciB7Ci1wdWJsaWM6Ci0gICAgV2ViTmV0c2NhcGVQbHVnaW5FdmVu
dEhhbmRsZXJDYXJib24oV2ViTmV0c2NhcGVQbHVnaW5WaWV3Kik7IAotCi0gICAgdmlydHVhbCB2
b2lkIGRyYXdSZWN0KENHQ29udGV4dFJlZiwgY29uc3QgTlNSZWN0Jik7Ci0KLSAgICB2aXJ0dWFs
IHZvaWQgbW91c2VEb3duKE5TRXZlbnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgbW91c2VEcmFnZ2Vk
KE5TRXZlbnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgbW91c2VFbnRlcmVkKE5TRXZlbnQqKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgbW91c2VFeGl0ZWQoTlNFdmVudCopOwotICAgIHZpcnR1YWwgdm9pZCBt
b3VzZU1vdmVkKE5TRXZlbnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgbW91c2VVcChOU0V2ZW50Kik7
Ci0gICAgdmlydHVhbCBib29sIHNjcm9sbFdoZWVsKE5TRXZlbnQqKTsKLSAgICAKLSAgICB2aXJ0
dWFsIHZvaWQga2V5RG93bihOU0V2ZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIGtleVVwKE5TRXZl
bnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZmxhZ3NDaGFuZ2VkKE5TRXZlbnQqKTsKLSAgICB2aXJ0
dWFsIHZvaWQgc3ludGhldGljS2V5RG93bldpdGhDb21tYW5kTW9kaWZpZXIoaW50IGtleUNvZGUs
IGNoYXIgY2hhcmFjdGVyKTsKLQotICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQo
Ym9vbCBoYXNGb2N1cyk7ICAgIAotICAgIHZpcnR1YWwgdm9pZCBmb2N1c0NoYW5nZWQoYm9vbCBo
YXNGb2N1cyk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRUaW1lcnMoYm9vbCB0aHJvdHRsZVRp
bWVycyk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BUaW1lcnMoKTsKLQotICAgIHZpcnR1YWwgdm9p
ZCogcGxhdGZvcm1XaW5kb3coTlNXaW5kb3cqKTsKLSAgICAKLXByaXZhdGU6Ci0gICAgdm9pZCBz
ZW5kTnVsbEV2ZW50KCk7Ci0KLSAgICB2b2lkIGluc3RhbGxLZXlFdmVudEhhbmRsZXIoKTsKLSAg
ICB2b2lkIHJlbW92ZUtleUV2ZW50SGFuZGxlcigpOwotICAgIAotICAgIHN0YXRpYyBPU1N0YXR1
cyBUU01FdmVudEhhbmRsZXIoRXZlbnRIYW5kbGVyQ2FsbFJlZiwgRXZlbnRSZWYsIHZvaWQgKmV2
ZW50SGFuZGxlcik7Ci0gICAgc3RhdGljIHZvaWQgbnVsbEV2ZW50VGltZXJGaXJlZChDRlJ1bkxv
b3BUaW1lclJlZiwgdm9pZCAqY29udGV4dCk7Ci0KLSAgICBib29sIHNlbmRFdmVudChFdmVudFJl
Y29yZCopOwotICAgIAotICAgIEV2ZW50SGFuZGxlclJlZiBtX2tleUV2ZW50SGFuZGxlcjsKLSAg
ICBib29sIG1fc3VzcGVuZEtleVVwRXZlbnRzOwotICAgIFJldGFpblB0cjxDRlJ1bkxvb3BUaW1l
clJlZj4gbV9udWxsRXZlbnRUaW1lcjsKLX07Ci0KLSNlbmRpZiAvLyBXZWJOZXRzY2FwZVBsdWdp
bkV2ZW50SGFuZGxlckNhcmJvbl9oCi0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkgJiYgIWRlZmluZWQoX19MUDY0X18pCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24ubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRI
YW5kbGVyQ2FyYm9uLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMTc3NTkzMDlk
M2U5MTZiMDUyMjg2MTNiNmFiOGIyZDkzZTY5MGZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2Vi
TmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24ubW0KKysrIC9kZXYvbnVsbApAQCAtMSw0
MzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEFwcGxlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkgJiYgIWRlZmluZWQoX19MUDY0
X18pCi0KLSNpbXBvcnQgIldlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uLmgiCi0K
LSNpbXBvcnQgIldlYk5ldHNjYXBlUGx1Z2luVmlldy5oIgotI2ltcG9ydCAiV2ViS2l0TG9nZ2lu
Zy5oIgotI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgotI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElU
b29sYm94U1BJLmg+Ci0jaW1wb3J0IDxwYWwvc3BpL21hYy9OU0V2ZW50U1BJLmg+Ci0KLS8vIFNl
bmQgbnVsbCBldmVudHMgNTAgdGltZXMgYSBzZWNvbmQgd2hlbiBhY3RpdmUsIHNvIHBsdWctaW5z
IGxpa2UgRmxhc2ggZ2V0IGhpZ2ggZnJhbWUgcmF0ZXMuCi0jZGVmaW5lIE51bGxFdmVudEludGVy
dmFsQWN0aXZlICAgICAgICAgMC4wMgotI2RlZmluZSBOdWxsRXZlbnRJbnRlcnZhbE5vdEFjdGl2
ZSAgICAgIDAuMjUKLQotV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib246OldlYk5l
dHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uKFdlYk5ldHNjYXBlUGx1Z2luVmlldyogcGx1
Z2luVmlldykKLSAgICA6IFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyKHBsdWdpblZpZXcp
Ci0gICAgLCBtX2tleUV2ZW50SGFuZGxlcigwKQotICAgICwgbV9zdXNwZW5kS2V5VXBFdmVudHMo
ZmFsc2UpCi17Ci19Ci0KLXN0YXRpYyB2b2lkIGdldENhcmJvbkV2ZW50KEV2ZW50UmVjb3JkKiBj
YXJib25FdmVudCkKLXsKLSAgICBjYXJib25FdmVudC0+d2hhdCA9IG51bGxFdmVudDsKLSAgICBj
YXJib25FdmVudC0+bWVzc2FnZSA9IDA7Ci0gICAgY2FyYm9uRXZlbnQtPndoZW4gPSBUaWNrQ291
bnQoKTsKLSAgICAKLSAgICBHZXRHbG9iYWxNb3VzZSgmY2FyYm9uRXZlbnQtPndoZXJlKTsKLSAg
ICBjYXJib25FdmVudC0+bW9kaWZpZXJzID0gR2V0Q3VycmVudEtleU1vZGlmaWVycygpOwotICAg
IGlmICghQnV0dG9uKCkpCi0gICAgICAgIGNhcmJvbkV2ZW50LT5tb2RpZmllcnMgfD0gYnRuU3Rh
dGU7Ci19Ci0KLXN0YXRpYyBFdmVudE1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChOU0V2ZW50
ICpldmVudCkKLXsKLSAgICBFdmVudE1vZGlmaWVycyBtb2RpZmllcnM7Ci0gICAgdW5zaWduZWQg
aW50IG1vZGlmaWVyRmxhZ3MgPSBbZXZlbnQgbW9kaWZpZXJGbGFnc107Ci0gICAgTlNFdmVudFR5
cGUgZXZlbnRUeXBlID0gW2V2ZW50IHR5cGVdOwotICAgIAotICAgIG1vZGlmaWVycyA9IDA7Ci0g
ICAgCi0gICAgaWYgKGV2ZW50VHlwZSAhPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gJiYgZXZl
bnRUeXBlICE9IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24pCi0gICAgICAgIG1vZGlmaWVycyB8
PSBidG5TdGF0ZTsKLSAgICAKLSAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmll
ckZsYWdDb21tYW5kKQotICAgICAgICBtb2RpZmllcnMgfD0gY21kS2V5OwotICAgIAotICAgIGlm
IChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KQotICAgICAgICBtb2Rp
ZmllcnMgfD0gc2hpZnRLZXk7Ci0KLSAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdDYXBzTG9jaykKLSAgICAgICAgbW9kaWZpZXJzIHw9IGFscGhhTG9jazsKLQotICAg
IGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikKLSAgICAgICAg
bW9kaWZpZXJzIHw9IG9wdGlvbktleTsKLQotICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbnRyb2wgfHwgZXZlbnRUeXBlID09IE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURvd24pCi0gICAgICAgIG1vZGlmaWVycyB8PSBjb250cm9sS2V5OwotICAgIAotICAgIHJldHVy
biBtb2RpZmllcnM7Ci19Ci0KLXN0YXRpYyB2b2lkIGdldENhcmJvbkV2ZW50KEV2ZW50UmVjb3Jk
ICpjYXJib25FdmVudCwgTlNFdmVudCAqY29jb2FFdmVudCkKLXsKLSAgICBpZiAoW2NvY29hRXZl
bnQgX2V2ZW50UmVmXSAmJiBDb252ZXJ0RXZlbnRSZWZUb0V2ZW50UmVjb3JkKChFdmVudFJlZilb
Y29jb2FFdmVudCBfZXZlbnRSZWZdLCBjYXJib25FdmVudCkpCi0gICAgICAgIHJldHVybjsKLSAg
ICAKLSAgICBOU1BvaW50IHdoZXJlID0gW1tjb2NvYUV2ZW50IHdpbmRvd10gY29udmVydEJhc2VU
b1NjcmVlbjpbY29jb2FFdmVudCBsb2NhdGlvbkluV2luZG93XV07Ci0gICAgICAgIAotICAgIGNh
cmJvbkV2ZW50LT53aGF0ID0gbnVsbEV2ZW50OwotICAgIGNhcmJvbkV2ZW50LT5tZXNzYWdlID0g
MDsKLSAgICBjYXJib25FdmVudC0+d2hlbiA9IChVSW50MzIpKFtjb2NvYUV2ZW50IHRpbWVzdGFt
cF0gKiA2MCk7IC8vIHNlY29uZHMgdG8gdGlja3MKLSAgICBjYXJib25FdmVudC0+d2hlcmUuaCA9
IChzaG9ydCl3aGVyZS54OwotICAgIGNhcmJvbkV2ZW50LT53aGVyZS52ID0gKHNob3J0KShOU01h
eFkoWyhOU1NjcmVlbiAqKVtbTlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXSBmcmFt
ZV0pIC0gd2hlcmUueSk7Ci0gICAgY2FyYm9uRXZlbnQtPm1vZGlmaWVycyA9IG1vZGlmaWVyc0Zv
ckV2ZW50KGNvY29hRXZlbnQpOwotfQotCi12b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5k
bGVyQ2FyYm9uOjpzZW5kTnVsbEV2ZW50KCkKLXsKLSAgICBFdmVudFJlY29yZCBldmVudDsKLSAg
ICAKLSAgICBnZXRDYXJib25FdmVudCgmZXZlbnQpOwotICAgIAotICAgIC8vIFBsdWctaW4gc2hv
dWxkIG5vdCByZWFjdCB0byBjdXJzb3IgcG9zaXRpb24gd2hlbiBub3QgYWN0aXZlIG9yIHdoZW4g
YSBtZW51IGlzIGRvd24uCi0gICAgTWVudVRyYWNraW5nRGF0YSB0cmFja2luZ0RhdGE7Ci0gICAg
T1NTdGF0dXMgZXJyb3IgPSBHZXRNZW51VHJhY2tpbmdEYXRhKE5VTEwsICZ0cmFja2luZ0RhdGEp
OwotICAgIAotICAgIC8vIFBsdWctaW4gc2hvdWxkIG5vdCByZWFjdCB0byBjdXJzb3IgcG9zaXRp
b24gd2hlbiB0aGUgYWN0dWFsIHdpbmRvdyBpcyBub3Qga2V5LgotICAgIGlmICghW1ttX3BsdWdp
blZpZXcgd2luZG93XSBpc0tleVdpbmRvd10gfHwgKGVycm9yID09IG5vRXJyICYmIHRyYWNraW5n
RGF0YS5tZW51KSkgewotICAgICAgICAvLyBGSVhNRTogRG9lcyBwYXNzaW5nIGEgdiBhbmQgaCBv
ZiAtMSByZWFsbHkgcHJldmVudCBpdCBmcm9tIHJlYWN0aW5nIHRvIHRoZSBjdXJzb3IgcG9zaXRp
b24/Ci0gICAgICAgIGV2ZW50LndoZXJlLnYgPSAtMTsKLSAgICAgICAgZXZlbnQud2hlcmUuaCA9
IC0xOwotICAgIH0KLSAgICAKLSAgICBzZW5kRXZlbnQoJmV2ZW50KTsKLX0KLQotdm9pZCBXZWJO
ZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbjo6ZHJhd1JlY3QoQ0dDb250ZXh0UmVmLCBj
b25zdCBOU1JlY3QmKQotewotICAgIEV2ZW50UmVjb3JkIGV2ZW50OwotICAgIAotICAgIGdldENh
cmJvbkV2ZW50KCZldmVudCk7Ci0gICAgZXZlbnQud2hhdCA9IHVwZGF0ZUV2dDsKLSAgICBXaW5k
b3dSZWYgd2luZG93UmVmID0gKFdpbmRvd1JlZilbW21fcGx1Z2luVmlldyB3aW5kb3ddIHdpbmRv
d1JlZl07Ci0gICAgZXZlbnQubWVzc2FnZSA9ICh1bnNpZ25lZCBsb25nKXdpbmRvd1JlZjsKLSAg
ICAKLSAgICBCT09MIGFjY2VwdGVkRXZlbnQ7Ci0gICAgYWNjZXB0ZWRFdmVudCA9IHNlbmRFdmVu
dCgmZXZlbnQpOwotICAgIAotICAgIExPRyhQbHVnaW5FdmVudHMsICJOUFBfSGFuZGxlRXZlbnQo
dXBkYXRlRXZ0KTogJWQiLCBhY2NlcHRlZEV2ZW50KTsKLX0KLQotdm9pZCBXZWJOZXRzY2FwZVBs
dWdpbkV2ZW50SGFuZGxlckNhcmJvbjo6bW91c2VEb3duKE5TRXZlbnQqIHRoZUV2ZW50KQotewot
ICAgIEV2ZW50UmVjb3JkIGV2ZW50OwotICAgIAotICAgIGdldENhcmJvbkV2ZW50KCZldmVudCwg
dGhlRXZlbnQpOwotICAgIGV2ZW50LndoYXQgPSA6Om1vdXNlRG93bjsKLSAgICAKLSAgICBCT09M
IGFjY2VwdGVkRXZlbnQ7Ci0gICAgYWNjZXB0ZWRFdmVudCA9IHNlbmRFdmVudCgmZXZlbnQpOwot
ICAgIAotICAgIExPRyhQbHVnaW5FdmVudHMsICJOUFBfSGFuZGxlRXZlbnQobW91c2VEb3duKTog
JWQgcHQudj0lZCwgcHQuaD0lZCIsIGFjY2VwdGVkRXZlbnQsIGV2ZW50LndoZXJlLnYsIGV2ZW50
LndoZXJlLmgpOyAgICAKLX0KLQotdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNh
cmJvbjo6bW91c2VVcChOU0V2ZW50KiB0aGVFdmVudCkKLXsKLSAgICBFdmVudFJlY29yZCBldmVu
dDsKLSAgICAKLSAgICBnZXRDYXJib25FdmVudCgmZXZlbnQsIHRoZUV2ZW50KTsKLSAgICBldmVu
dC53aGF0ID0gOjptb3VzZVVwOwotICAgIAotICAgIEJPT0wgYWNjZXB0ZWRFdmVudDsKLSAgICBh
Y2NlcHRlZEV2ZW50ID0gc2VuZEV2ZW50KCZldmVudCk7Ci0gICAgCi0gICAgTE9HKFBsdWdpbkV2
ZW50cywgIk5QUF9IYW5kbGVFdmVudChtb3VzZVVwKTogJWQgcHQudj0lZCwgcHQuaD0lZCIsIGFj
Y2VwdGVkRXZlbnQsIGV2ZW50LndoZXJlLnYsIGV2ZW50LndoZXJlLmgpOyAgICAKLX0KLQotYm9v
bCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbjo6c2Nyb2xsV2hlZWwoTlNFdmVu
dCogdGhlRXZlbnQpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIFdlYk5ldHNjYXBl
UGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjptb3VzZUVudGVyZWQoTlNFdmVudCogdGhlRXZlbnQp
Ci17Ci0gICAgRXZlbnRSZWNvcmQgZXZlbnQ7Ci0gICAgCi0gICAgZ2V0Q2FyYm9uRXZlbnQoJmV2
ZW50LCB0aGVFdmVudCk7Ci0gICAgZXZlbnQud2hhdCA9IE5QRXZlbnRUeXBlX0FkanVzdEN1cnNv
ckV2ZW50OwotICAgIAotICAgIEJPT0wgYWNjZXB0ZWRFdmVudDsKLSAgICBhY2NlcHRlZEV2ZW50
ID0gc2VuZEV2ZW50KCZldmVudCk7Ci0gICAgCi0gICAgTE9HKFBsdWdpbkV2ZW50cywgIk5QUF9I
YW5kbGVFdmVudChtb3VzZUVudGVyZWQpOiAlZCIsIGFjY2VwdGVkRXZlbnQpOyAgICAKLX0KLQot
dm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbjo6bW91c2VFeGl0ZWQoTlNF
dmVudCogdGhlRXZlbnQpCi17Ci0gICAgRXZlbnRSZWNvcmQgZXZlbnQ7Ci0gICAgCi0gICAgZ2V0
Q2FyYm9uRXZlbnQoJmV2ZW50LCB0aGVFdmVudCk7Ci0gICAgZXZlbnQud2hhdCA9IE5QRXZlbnRU
eXBlX0FkanVzdEN1cnNvckV2ZW50OwotICAgIAotICAgIEJPT0wgYWNjZXB0ZWRFdmVudDsKLSAg
ICBhY2NlcHRlZEV2ZW50ID0gc2VuZEV2ZW50KCZldmVudCk7Ci0gICAgCi0gICAgTE9HKFBsdWdp
bkV2ZW50cywgIk5QUF9IYW5kbGVFdmVudChtb3VzZUV4aXRlZCk6ICVkIiwgYWNjZXB0ZWRFdmVu
dCk7ICAgIAotfQotCi12b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjpt
b3VzZURyYWdnZWQoTlNFdmVudCopCi17Ci19Ci0KLXZvaWQgV2ViTmV0c2NhcGVQbHVnaW5FdmVu
dEhhbmRsZXJDYXJib246Om1vdXNlTW92ZWQoTlNFdmVudCogdGhlRXZlbnQpCi17Ci0gICAgRXZl
bnRSZWNvcmQgZXZlbnQ7Ci0gICAgCi0gICAgZ2V0Q2FyYm9uRXZlbnQoJmV2ZW50LCB0aGVFdmVu
dCk7Ci0gICAgZXZlbnQud2hhdCA9IE5QRXZlbnRUeXBlX0FkanVzdEN1cnNvckV2ZW50OwotICAg
IAotICAgIEJPT0wgYWNjZXB0ZWRFdmVudDsKLSAgICBhY2NlcHRlZEV2ZW50ID0gc2VuZEV2ZW50
KCZldmVudCk7Ci0gICAgCi0gICAgTE9HKFBsdWdpbkV2ZW50cywgIk5QUF9IYW5kbGVFdmVudCht
b3VzZU1vdmVkKTogJWQiLCBhY2NlcHRlZEV2ZW50KTsKLX0KLQotdm9pZCBXZWJOZXRzY2FwZVBs
dWdpbkV2ZW50SGFuZGxlckNhcmJvbjo6a2V5RG93bihOU0V2ZW50ICp0aGVFdmVudCkKLXsKLSAg
ICBtX3N1c3BlbmRLZXlVcEV2ZW50cyA9IHRydWU7Ci0gICAgVFNNUHJvY2Vzc1Jhd0tleUV2ZW50
KChFdmVudFJlZilbdGhlRXZlbnQgX2V2ZW50UmVmXSk7Ci19Ci0KLXZvaWQgV2ViTmV0c2NhcGVQ
bHVnaW5FdmVudEhhbmRsZXJDYXJib246OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlm
aWVyKGludCBrZXlDb2RlLCBjaGFyIGNoYXJhY3RlcikKLXsKLSAgICBFdmVudFJlY29yZCBldmVu
dDsKLSAgICBnZXRDYXJib25FdmVudCgmZXZlbnQpOwotICAgIAotICAgIGV2ZW50LndoYXQgPSA6
OmtleURvd247Ci0gICAgZXZlbnQubW9kaWZpZXJzIHw9IGNtZEtleTsKLSAgICBldmVudC5tZXNz
YWdlID0ga2V5Q29kZSA8PCA4IHwgY2hhcmFjdGVyOwotICAgIHNlbmRFdmVudCgmZXZlbnQpOwot
fQotCi1zdGF0aWMgVUludDMyIGtleU1lc3NhZ2VGb3JFdmVudChOU0V2ZW50ICpldmVudCkKLXsK
LSAgICBOU0RhdGEgKmRhdGEgPSBbW2V2ZW50IGNoYXJhY3RlcnNdIGRhdGFVc2luZ0VuY29kaW5n
OkNGU3RyaW5nQ29udmVydEVuY29kaW5nVG9OU1N0cmluZ0VuY29kaW5nKENGU3RyaW5nR2V0U3lz
dGVtRW5jb2RpbmcoKSldOwotICAgIGlmICghZGF0YSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAg
ICBVSW50OCBjaGFyYWN0ZXJDb2RlOwotICAgIFtkYXRhIGdldEJ5dGVzOiZjaGFyYWN0ZXJDb2Rl
IGxlbmd0aDoxXTsKLSAgICBVSW50MTYga2V5Q29kZSA9IFtldmVudCBrZXlDb2RlXTsKLSAgICBy
ZXR1cm4ga2V5Q29kZSA8PCA4IHwgY2hhcmFjdGVyQ29kZTsKLX0gICAgCi0gICAgCi12b2lkIFdl
Yk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjprZXlVcChOU0V2ZW50KiB0aGVFdmVu
dCkKLXsKLSAgICBUU01Qcm9jZXNzUmF3S2V5RXZlbnQoKEV2ZW50UmVmKVt0aGVFdmVudCBfZXZl
bnRSZWZdKTsKLSAgICAKLSAgICAvLyBUU00gd29uJ3Qgc2VuZCBrZXlVcCBldmVudHMgc28gd2Ug
aGF2ZSB0byBzZW5kIHRoZW0gb3Vyc2VsdmVzLgotICAgIC8vIE9ubHkgc2VuZCBrZXlVcCBldmVu
dHMgYWZ0ZXIgd2UgcmVjZWl2ZSB0aGUgVFNNIGNhbGxiYWNrIGJlY2F1c2UgdGhpcyBpcyB3aGF0
IHBsdWctaW4gZXhwZWN0IGZyb20gT1MgOS4KLSAgICBpZiAoIW1fc3VzcGVuZEtleVVwRXZlbnRz
KSB7Ci0gICAgICAgIEV2ZW50UmVjb3JkIGV2ZW50OwotICAgICAgICAKLSAgICAgICAgZ2V0Q2Fy
Ym9uRXZlbnQoJmV2ZW50LCB0aGVFdmVudCk7Ci0gICAgICAgIGV2ZW50LndoYXQgPSA6OmtleVVw
OwotICAgICAgICAKLSAgICAgICAgaWYgKGV2ZW50Lm1lc3NhZ2UgPT0gMCkKLSAgICAgICAgICAg
IGV2ZW50Lm1lc3NhZ2UgPSBrZXlNZXNzYWdlRm9yRXZlbnQodGhlRXZlbnQpOwotICAgICAgICAK
LSAgICAgICAgc2VuZEV2ZW50KCZldmVudCk7Ci0gICAgfSAgICAKLX0KLQotdm9pZCBXZWJOZXRz
Y2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbjo6ZmxhZ3NDaGFuZ2VkKE5TRXZlbnQqKQotewot
fQotCi12b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjpmb2N1c0NoYW5n
ZWQoYm9vbCBoYXNGb2N1cykKLXsKLSAgICBFdmVudFJlY29yZCBldmVudDsKLSAgICAKLSAgICBn
ZXRDYXJib25FdmVudCgmZXZlbnQpOwotICAgIGJvb2wgYWNjZXB0ZWRFdmVudDsKLSAgICBpZiAo
aGFzRm9jdXMpIHsKLSAgICAgICAgZXZlbnQud2hhdCA9IE5QRXZlbnRUeXBlX0dldEZvY3VzRXZl
bnQ7Ci0gICAgICAgIGFjY2VwdGVkRXZlbnQgPSBzZW5kRXZlbnQoJmV2ZW50KTsKLSAgICAgICAg
TE9HKFBsdWdpbkV2ZW50cywgIk5QUF9IYW5kbGVFdmVudChOUEV2ZW50VHlwZV9HZXRGb2N1c0V2
ZW50KTogJWQiLCBhY2NlcHRlZEV2ZW50KTsKLSAgICAgICAgaW5zdGFsbEtleUV2ZW50SGFuZGxl
cigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGV2ZW50LndoYXQgPSBOUEV2ZW50VHlwZV9Mb3Nl
Rm9jdXNFdmVudDsKLSAgICAgICAgYWNjZXB0ZWRFdmVudCA9IHNlbmRFdmVudCgmZXZlbnQpOwot
ICAgICAgICBMT0coUGx1Z2luRXZlbnRzLCAiTlBQX0hhbmRsZUV2ZW50KE5QRXZlbnRUeXBlX0xv
c2VGb2N1c0V2ZW50KTogJWQiLCBhY2NlcHRlZEV2ZW50KTsKLSAgICAgICAgcmVtb3ZlS2V5RXZl
bnRIYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5k
bGVyQ2FyYm9uOjp3aW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBoYXNGb2N1cykKLXsKLSAgICBXaW5k
b3dSZWYgd2luZG93UmVmID0gKFdpbmRvd1JlZilbW21fcGx1Z2luVmlldyB3aW5kb3ddIHdpbmRv
d1JlZl07Ci0KLSAgICBTZXRVc2VyRm9jdXNXaW5kb3cod2luZG93UmVmKTsKLSAgICAKLSAgICBF
dmVudFJlY29yZCBldmVudDsKLSAgICAKLSAgICBnZXRDYXJib25FdmVudCgmZXZlbnQpOwotICAg
IGV2ZW50LndoYXQgPSBhY3RpdmF0ZUV2dDsKLSAgICBldmVudC5tZXNzYWdlID0gKHVuc2lnbmVk
IGxvbmcpd2luZG93UmVmOwotICAgIGlmIChoYXNGb2N1cykKLSAgICAgICAgZXZlbnQubW9kaWZp
ZXJzIHw9IGFjdGl2ZUZsYWc7Ci0gICAgCi0gICAgQk9PTCBhY2NlcHRlZEV2ZW50OwotICAgIGFj
Y2VwdGVkRXZlbnQgPSBzZW5kRXZlbnQoJmV2ZW50KTsKLSAgICAKLSAgICBMT0coUGx1Z2luRXZl
bnRzLCAiTlBQX0hhbmRsZUV2ZW50KGFjdGl2YXRlRXZlbnQpOiAlZCAgaXNBY3RpdmU6ICVkIiwg
YWNjZXB0ZWRFdmVudCwgaGFzRm9jdXMpOyAgICAKLX0KLQotT1NTdGF0dXMgV2ViTmV0c2NhcGVQ
bHVnaW5FdmVudEhhbmRsZXJDYXJib246OlRTTUV2ZW50SGFuZGxlcihFdmVudEhhbmRsZXJDYWxs
UmVmIGluSGFuZGxlclJlZiwgRXZlbnRSZWYgaW5FdmVudCwgdm9pZCAqZXZlbnRIYW5kbGVyKQot
eyAgICAKLSAgICBFdmVudFJlZiByYXdLZXlFdmVudFJlZjsKLSAgICBPU1N0YXR1cyBzdGF0dXMg
PSBHZXRFdmVudFBhcmFtZXRlcihpbkV2ZW50LCBrRXZlbnRQYXJhbVRleHRJbnB1dFNlbmRLZXli
b2FyZEV2ZW50LCB0eXBlRXZlbnRSZWYsIE5VTEwsIHNpemVvZihFdmVudFJlZiksIE5VTEwsICZy
YXdLZXlFdmVudFJlZik7Ci0gICAgaWYgKHN0YXR1cyAhPSBub0VycikgewotICAgICAgICBMT0df
RVJST1IoIkdldEV2ZW50UGFyYW1ldGVyIGZhaWxlZCB3aXRoIGVycm9yOiAlZCIsIHN0YXR1cyk7
Ci0gICAgICAgIHJldHVybiBub0VycjsKLSAgICB9Ci0gICAgCi0gICAgLy8gVHdvLXBhc3MgcmVh
ZCB0byBhbGxvY2F0ZS9leHRyYWN0IE1hYyBjaGFyQ29kZXMKLSAgICBCeXRlQ291bnQgbnVtQnl0
ZXM7ICAgIAotICAgIHN0YXR1cyA9IEdldEV2ZW50UGFyYW1ldGVyKHJhd0tleUV2ZW50UmVmLCBr
RXZlbnRQYXJhbUtleU1hY0NoYXJDb2RlcywgdHlwZUNoYXIsIE5VTEwsIDAsICZudW1CeXRlcywg
TlVMTCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBub0VycikgewotICAgICAgICBMT0dfRVJST1IoIkdl
dEV2ZW50UGFyYW1ldGVyIGZhaWxlZCB3aXRoIGVycm9yOiAlZCIsIHN0YXR1cyk7Ci0gICAgICAg
IHJldHVybiBub0VycjsKLSAgICB9Ci0gICAgY2hhciAqYnVmZmVyID0gKGNoYXIgKiltYWxsb2Mo
bnVtQnl0ZXMpOwotICAgIHN0YXR1cyA9IEdldEV2ZW50UGFyYW1ldGVyKHJhd0tleUV2ZW50UmVm
LCBrRXZlbnRQYXJhbUtleU1hY0NoYXJDb2RlcywgdHlwZUNoYXIsIE5VTEwsIG51bUJ5dGVzLCBO
VUxMLCBidWZmZXIpOwotICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKLSAgICAgICAgTE9HX0VS
Uk9SKCJHZXRFdmVudFBhcmFtZXRlciBmYWlsZWQgd2l0aCBlcnJvcjogJWQiLCBzdGF0dXMpOwot
ICAgICAgICBmcmVlKGJ1ZmZlcik7Ci0gICAgICAgIHJldHVybiBub0VycjsKLSAgICB9Ci0gICAg
Ci0gICAgRXZlbnRSZWYgY2xvbmVFdmVudCA9IENvcHlFdmVudChyYXdLZXlFdmVudFJlZik7Ci0g
ICAgdW5zaWduZWQgaTsKLSAgICBmb3IgKGkgPSAwOyBpIDwgbnVtQnl0ZXM7IGkrKykgewotICAg
ICAgICBzdGF0dXMgPSBTZXRFdmVudFBhcmFtZXRlcihjbG9uZUV2ZW50LCBrRXZlbnRQYXJhbUtl
eU1hY0NoYXJDb2RlcywgdHlwZUNoYXIsIDEgLyogb25lIGNoYXIgY29kZSAqLywgJmJ1ZmZlcltp
XSk7Ci0gICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKLSAgICAgICAgICAgIExPR19FUlJP
UigiU2V0RXZlbnRQYXJhbWV0ZXIgZmFpbGVkIHdpdGggZXJyb3I6ICVkIiwgc3RhdHVzKTsKLSAg
ICAgICAgICAgIGZyZWUoYnVmZmVyKTsKLSAgICAgICAgICAgIHJldHVybiBub0VycjsKLSAgICAg
ICAgfQotICAgICAgICAKLSAgICAgICAgRXZlbnRSZWNvcmQgZXZlbnRSZWM7Ci0gICAgICAgIGlm
IChDb252ZXJ0RXZlbnRSZWZUb0V2ZW50UmVjb3JkKGNsb25lRXZlbnQsICZldmVudFJlYykpIHsK
LSAgICAgICAgICAgIEJPT0wgYWNjZXB0ZWRFdmVudDsKLSAgICAgICAgICAgIGFjY2VwdGVkRXZl
bnQgPSBzdGF0aWNfY2FzdDxXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbio+KGV2
ZW50SGFuZGxlciktPnNlbmRFdmVudCgmZXZlbnRSZWMpOwotICAgICAgICAgICAgCi0gICAgICAg
ICAgICBMT0coUGx1Z2luRXZlbnRzLCAiTlBQX0hhbmRsZUV2ZW50KGtleURvd24pOiAlZCBjaGFy
Q29kZTolYyBrZXlDb2RlOiVsdSIsCi0gICAgICAgICAgICAgICAgYWNjZXB0ZWRFdmVudCwgKGNo
YXIpIChldmVudFJlYy5tZXNzYWdlICYgY2hhckNvZGVNYXNrKSwgKGV2ZW50UmVjLm1lc3NhZ2Ug
JiBrZXlDb2RlTWFzaykpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBXZSBvcmlnaW5h
bGx5IHRob3VnaHQgdGhhdCBpZiB0aGUgcGx1Zy1pbiBkaWRuJ3QgYWNjZXB0IHRoaXMgZXZlbnQs
Ci0gICAgICAgICAgICAvLyB3ZSBzaG91bGQgcGFzcyBpdCBhbG9uZyBzbyB0aGF0IGtleWJvYXJk
IHNjcm9sbGluZywgZm9yIGV4YW1wbGUsIHdpbGwgd29yay4KLSAgICAgICAgICAgIC8vIEluIHBy
YWN0aWNlLCB0aGlzIGlzIG5vdCBhIGdvb2QgaWRlYSwgYmVjYXVzZSBwbHVnLWlucyB0ZW5kIHRv
IGVhdCB0aGUgZXZlbnQgYnV0IHJldHVybiBmYWxzZS4KLSAgICAgICAgICAgIC8vIE1hY0lFIGhh
bmRsZXMgZWFjaCBrZXkgZXZlbnQgdHdpY2UgYmVjYXVzZSBvZiB0aGlzLCBidXQgd2Ugd2lsbCBl
bXVsYXRlIHRoZSBvdGhlciBicm93c2VycyBpbnN0ZWFkLgotICAgICAgICB9Ci0gICAgfQotICAg
IFJlbGVhc2VFdmVudChjbG9uZUV2ZW50KTsKLSAgICAKLSAgICBmcmVlKGJ1ZmZlcik7Ci0gICAg
Ci0gICAgcmV0dXJuIG5vRXJyOwotfQotCi12b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5k
bGVyQ2FyYm9uOjppbnN0YWxsS2V5RXZlbnRIYW5kbGVyKCkKLXsKLSAgICBzdGF0aWMgY29uc3Qg
RXZlbnRUeXBlU3BlYyBzVFNNRXZlbnRzW10gPQotICAgIHsKLSAgICAgICAgeyBrRXZlbnRDbGFz
c1RleHRJbnB1dCwga0V2ZW50VGV4dElucHV0VW5pY29kZUZvcktleUV2ZW50IH0KLSAgICB9Owot
ICAgIAotICAgIGlmICghbV9rZXlFdmVudEhhbmRsZXIpIHsKLSAgICAgICAgSW5zdGFsbEV2ZW50
SGFuZGxlcihHZXRXaW5kb3dFdmVudFRhcmdldCgoV2luZG93UmVmKVtbbV9wbHVnaW5WaWV3IHdp
bmRvd10gd2luZG93UmVmXSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV3RXZlbnRI
YW5kbGVyVVBQKFRTTUV2ZW50SGFuZGxlciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
R2V0RXZlbnRUeXBlQ291bnQoc1RTTUV2ZW50cyksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc1RTTUV2ZW50cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZtX2tleUV2ZW50SGFuZGxlcik7Ci0gICAgfQotfQotCi12
b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjpyZW1vdmVLZXlFdmVudEhh
bmRsZXIoKQotewotICAgIGlmIChtX2tleUV2ZW50SGFuZGxlcikgewotICAgICAgICBSZW1vdmVF
dmVudEhhbmRsZXIobV9rZXlFdmVudEhhbmRsZXIpOwotICAgICAgICBtX2tleUV2ZW50SGFuZGxl
ciA9IDA7Ci0gICAgfSAgICAKLX0KLQotdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxl
ckNhcmJvbjo6bnVsbEV2ZW50VGltZXJGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiB0aW1lclJlZiwg
dm9pZCAqY29udGV4dCkKLXsKLSAgICBzdGF0aWNfY2FzdDxXZWJOZXRzY2FwZVBsdWdpbkV2ZW50
SGFuZGxlckNhcmJvbio+KGNvbnRleHQpLT5zZW5kTnVsbEV2ZW50KCk7Ci19Ci0KLXZvaWQgV2Vi
TmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib246OnN0YXJ0VGltZXJzKGJvb2wgdGhyb3R0
bGVUaW1lcnMpCi17Ci0gICAgQVNTRVJUKCFtX251bGxFdmVudFRpbWVyKTsKLSAgICAKLSAgICBD
RlRpbWVJbnRlcnZhbCBpbnRlcnZhbCA9ICF0aHJvdHRsZVRpbWVycyA/IE51bGxFdmVudEludGVy
dmFsQWN0aXZlIDogTnVsbEV2ZW50SW50ZXJ2YWxOb3RBY3RpdmU7ICAgIAotICAgIAotICAgIENG
UnVuTG9vcFRpbWVyQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCBOVUxMLCBOVUxMLCBOVUxM
IH07Ci0gICAgbV9udWxsRXZlbnRUaW1lciA9IGFkb3B0Q0YoQ0ZSdW5Mb29wVGltZXJDcmVhdGUo
MCwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBpbnRlcnZhbCwgaW50ZXJ2YWwsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCBudWxs
RXZlbnRUaW1lckZpcmVkLCAmY29udGV4dCkpOwotICAgIENGUnVuTG9vcEFkZFRpbWVyKENGUnVu
TG9vcEdldEN1cnJlbnQoKSwgbV9udWxsRXZlbnRUaW1lci5nZXQoKSwga0NGUnVuTG9vcERlZmF1
bHRNb2RlKTsKLX0KLQotdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbjo6
c3RvcFRpbWVycygpCi17Ci0gICAgaWYgKCFtX251bGxFdmVudFRpbWVyKQotICAgICAgICByZXR1
cm47Ci0gICAgCi0gICAgQ0ZSdW5Mb29wVGltZXJJbnZhbGlkYXRlKG1fbnVsbEV2ZW50VGltZXIu
Z2V0KCkpOwotICAgIG1fbnVsbEV2ZW50VGltZXIgPSAwOwotfQotCi12b2lkKiBXZWJOZXRzY2Fw
ZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbjo6cGxhdGZvcm1XaW5kb3coTlNXaW5kb3cqIHdpbmRv
dykKLXsKLSAgICByZXR1cm4gW3dpbmRvdyB3aW5kb3dSZWZdOwotfQotCi1ib29sIFdlYk5ldHNj
YXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjpzZW5kRXZlbnQoRXZlbnRSZWNvcmQqIGV2ZW50
KQotewotICAgIC8vIElmIGF0IGFueSBwb2ludCB0aGUgdXNlciBjbGlja3Mgb3IgcHJlc3NlcyBh
IGtleSBmcm9tIHdpdGhpbiBhIHBsdWdpbiwgc2V0IHRoZSAKLSAgICAvLyBjdXJyZW50RXZlbnRJ
c1VzZXJHZXN0dXJlIGZsYWcgdG8gdHJ1ZS4gVGhpcyBpcyBpbXBvcnRhbnQgdG8gZGlmZmVyZW50
aWF0ZSBsZWdpdGltYXRlIAotICAgIC8vIHdpbmRvdy5vcGVuKCkgY2FsbHM7ICB3ZSBzdGlsbCB3
YW50IHRvIGFsbG93IHRob3NlLiAgU2VlIHJkYXI6Ly9wcm9ibGVtLzQwMTA3NjUKLSAgICBpZiAo
ZXZlbnQtPndoYXQgPT0gOjptb3VzZURvd24gfHwgZXZlbnQtPndoYXQgPT0gOjprZXlEb3duIHx8
IGV2ZW50LT53aGF0ID09IDo6bW91c2VVcCB8fCBldmVudC0+d2hhdCA9PSA6OmF1dG9LZXkpCi0g
ICAgICAgIG1fY3VycmVudEV2ZW50SXNVc2VyR2VzdHVyZSA9IHRydWU7Ci0gICAgCi0gICAgbV9z
dXNwZW5kS2V5VXBFdmVudHMgPSBmYWxzZTsgCi0KLSAgICBib29sIHJlc3VsdCA9IFttX3BsdWdp
blZpZXcgc2VuZEV2ZW50OmV2ZW50IGlzRHJhd1JlY3Q6ZXZlbnQtPndoYXQgPT0gdXBkYXRlRXZ0
XTsKLSAgICAKLSAgICBtX2N1cnJlbnRFdmVudElzVXNlckdlc3R1cmUgPSBmYWxzZTsKLSAgICAK
LSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpICYmICFkZWZpbmVkKF9fTFA2NF9fKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLmggYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5k
bGVyQ29jb2EuaAppbmRleCAyMWZlODlkZmQ0MzM1NjA4MDUzMWQ0Mjg0ZmU1ODQzZjA1OTA5Yzg1
Li43MDgzNzc2ZDI4YTc1Y2ZiNTQyNTMzZDkwZjM3NzhlODVhYmNkMWQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5k
bGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNj
YXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EuaApAQCAtNTksMTkgKzU5LDYgQEAgcHJpdmF0ZToK
ICAgICBib29sIHNlbmRNb3VzZUV2ZW50KE5TRXZlbnQqLCBOUENvY29hRXZlbnRUeXBlKTsKICAg
ICBib29sIHNlbmRLZXlFdmVudChOU0V2ZW50KiwgTlBDb2NvYUV2ZW50VHlwZSk7CiAgICAgYm9v
bCBzZW5kRXZlbnQoTlBDb2NvYUV2ZW50Kik7Ci0gICAgCi0jaWZuZGVmIF9fTFA2NF9fCi0gICAg
dm9pZCBpbnN0YWxsS2V5RXZlbnRIYW5kbGVyKCk7Ci0gICAgdm9pZCByZW1vdmVLZXlFdmVudEhh
bmRsZXIoKTsKLSAgICAKLSAgICBzdGF0aWMgT1NTdGF0dXMgVFNNRXZlbnRIYW5kbGVyKEV2ZW50
SGFuZGxlckNhbGxSZWYsIEV2ZW50UmVmLCB2b2lkICpldmVudEhhbmRsZXIpOwotICAgIE9TU3Rh
dHVzIGhhbmRsZVRTTUV2ZW50KEV2ZW50UmVmKTsKLQotICAgIEV2ZW50SGFuZGxlclJlZiBtX2tl
eUV2ZW50SGFuZGxlcjsKLSNlbHNlCi0gICAgaW5saW5lIHZvaWQgaW5zdGFsbEtleUV2ZW50SGFu
ZGxlcigpIHsgfQotICAgIHZvaWQgcmVtb3ZlS2V5RXZlbnRIYW5kbGVyKCkgeyB9Ci0jZW5kaWYK
IH07CiAKICNlbmRpZiAvL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2FfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdp
bkV2ZW50SGFuZGxlckNvY29hLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tCmluZGV4IGQ1ODE4MWEwZDc4MDIz
NDlhNTU5NGVhNWFkNjBkZDVjMzYyOTFhODMuLmJlN2IwZTViYjBiNGZjMjQ2N2Y4MmQ2NzAzOWU3
YmYyOWI1YmM4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMv
V2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0K
QEAgLTM0LDkgKzM0LDYgQEAKIAogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6
V2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYShXZWJOZXRzY2FwZVBsdWdpblZpZXcq
IHBsdWdpblZpZXcpCiAgICAgOiBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlcihwbHVnaW5W
aWV3KQotI2lmbmRlZiBfX0xQNjRfXwotICAgICwgbV9rZXlFdmVudEhhbmRsZXIoMCkKLSNlbmRp
ZgogewogfQogCkBAIC0xMjUsMTQgKzEyMiw3IEBAIGJvb2wgV2ViTmV0c2NhcGVQbHVnaW5FdmVu
dEhhbmRsZXJDb2NvYTo6c2VuZE1vdXNlRXZlbnQoTlNFdmVudCAqbnNFdmVudCwgTlBDb2NvCiB2
b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OmtleURvd24oTlNFdmVudCAq
ZXZlbnQpCiB7CiAgICAgYm9vbCByZXR2YWwgPSBzZW5kS2V5RXZlbnQoZXZlbnQsIE5QQ29jb2FF
dmVudEtleURvd24pOwotICAgIAotI2lmbmRlZiBfX0xQNjRfXwotICAgIC8vIElmIHRoZSBwbHVn
LWluIGRpZCBub3QgaGFuZGxlIHRoZSBldmVudCwgcGFzcyBpdCBvbiB0byB0aGUgSW5wdXQgTWFu
YWdlci4KLSAgICBpZiAocmV0dmFsKQotICAgICAgICBUU01Qcm9jZXNzUmF3S2V5RXZlbnQoKEV2
ZW50UmVmKVtldmVudCBfZXZlbnRSZWZdKTsKLSNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHJldHZh
bCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29h
OjprZXlVcChOU0V2ZW50ICpldmVudCkKQEAgLTIwMywxMSArMTkzLDYgQEAgdm9pZCBXZWJOZXRz
Y2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpmb2N1c0NoYW5nZWQoYm9vbCBoYXNGb2N1cykK
ICAgICBldmVudC5kYXRhLmZvY3VzLmhhc0ZvY3VzID0gaGFzRm9jdXM7CiAgICAgCiAgICAgc2Vu
ZEV2ZW50KCZldmVudCk7Ci0gICAgCi0gICAgaWYgKGhhc0ZvY3VzKQotICAgICAgICBpbnN0YWxs
S2V5RXZlbnRIYW5kbGVyKCk7Ci0gICAgZWxzZQotICAgICAgICByZW1vdmVLZXlFdmVudEhhbmRs
ZXIoKTsKIH0KIAogdm9pZCogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6cGxh
dGZvcm1XaW5kb3coTlNXaW5kb3cgKndpbmRvdykKQEAgLTIzNyw2NyArMjIyLDQgQEAgYm9vbCBX
ZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpzZW5kRXZlbnQoTlBDb2NvYUV2ZW50
KiBldmVudCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi0jaWZuZGVmIF9fTFA2NF9fCi0KLXZv
aWQgV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6aW5zdGFsbEtleUV2ZW50SGFu
ZGxlcigpCi17Ci0gICAgc3RhdGljIGNvbnN0IEV2ZW50VHlwZVNwZWMgVFNNRXZlbnRzW10gPQot
ICAgIHsKLSAgICAgICAgeyBrRXZlbnRDbGFzc1RleHRJbnB1dCwga0V2ZW50VGV4dElucHV0VW5p
Y29kZUZvcktleUV2ZW50IH0KLSAgICB9OwotICAgIAotICAgIGlmICghbV9rZXlFdmVudEhhbmRs
ZXIpCi0gICAgICAgIEluc3RhbGxFdmVudEhhbmRsZXIoR2V0V2luZG93RXZlbnRUYXJnZXQoKFdp
bmRvd1JlZilbW21fcGx1Z2luVmlldyB3aW5kb3ddIHdpbmRvd1JlZl0pLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5ld0V2ZW50SGFuZGxlclVQUChUU01FdmVudEhhbmRsZXIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdldEV2ZW50VHlwZUNvdW50KFRTTUV2ZW50cyksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVFNNRXZlbnRzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1fa2V5RXZlbnRI
YW5kbGVyKTsKLX0KLQotdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpy
ZW1vdmVLZXlFdmVudEhhbmRsZXIoKQotewotICAgIGlmIChtX2tleUV2ZW50SGFuZGxlcikgewot
ICAgICAgICBSZW1vdmVFdmVudEhhbmRsZXIobV9rZXlFdmVudEhhbmRsZXIpOwotICAgICAgICBt
X2tleUV2ZW50SGFuZGxlciA9IDA7Ci0gICAgfSAgICAKLX0KLQotT1NTdGF0dXMgV2ViTmV0c2Nh
cGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6VFNNRXZlbnRIYW5kbGVyKEV2ZW50SGFuZGxlckNh
bGxSZWYgaW5IYW5kbGVyUmVmLCBFdmVudFJlZiBldmVudCwgdm9pZCogZXZlbnRIYW5kbGVyKQot
ewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNv
Y29hKj4oZXZlbnRIYW5kbGVyKS0+aGFuZGxlVFNNRXZlbnQoZXZlbnQpOwotfQotCi1PU1N0YXR1
cyBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpoYW5kbGVUU01FdmVudChFdmVu
dFJlZiBldmVudFJlZikKLXsKLSAgICBBU1NFUlQoR2V0RXZlbnRLaW5kKGV2ZW50UmVmKSA9PSBr
RXZlbnRUZXh0SW5wdXRVbmljb2RlRm9yS2V5RXZlbnQpOwotICAgIAotICAgIC8vIEdldCB0aGUg
dGV4dCBidWZmZXIgc2l6ZS4KLSAgICBCeXRlQ291bnQgc2l6ZTsKLSAgICBPU1N0YXR1cyByZXN1
bHQgPSBHZXRFdmVudFBhcmFtZXRlcihldmVudFJlZiwga0V2ZW50UGFyYW1UZXh0SW5wdXRTZW5k
VGV4dCwgdHlwZVVuaWNvZGVUZXh0LCAwLCAwLCAmc2l6ZSwgMCk7Ci0gICAgaWYgKHJlc3VsdCAh
PSBub0VycikKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAKLSAgICB1bnNpZ25lZCBsZW5n
dGggPSBzaXplIC8gc2l6ZW9mKFVuaUNoYXIpOwotICAgIFZlY3RvcjxVbmlDaGFyLCAxNj4gY2hh
cmFjdGVycyhsZW5ndGgpOwotICAgIAotICAgIC8vIE5vdyBnZXQgdGhlIGFjdHVhbCB0ZXh0Lgot
ICAgIHJlc3VsdCA9IEdldEV2ZW50UGFyYW1ldGVyKGV2ZW50UmVmLCBrRXZlbnRQYXJhbVRleHRJ
bnB1dFNlbmRUZXh0LCB0eXBlVW5pY29kZVRleHQsIDAsIHNpemUsIDAsIGNoYXJhY3RlcnMuZGF0
YSgpKTsKLSAgICBpZiAocmVzdWx0ICE9IG5vRXJyKQotICAgICAgICByZXR1cm4gcmVzdWx0Owot
Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0ZXh0ID0gYWRvcHRDRihDRlN0cmluZ0NyZWF0
ZVdpdGhDaGFyYWN0ZXJzKDAsIGNoYXJhY3RlcnMuZGF0YSgpLCBsZW5ndGgpKTsKLQotICAgIE5Q
Q29jb2FFdmVudCBldmVudDsKLSAgICAKLSAgICBpbml0aWFsaXplRXZlbnQoJmV2ZW50LCBOUENv
Y29hRXZlbnRUZXh0SW5wdXQpOwotICAgIGV2ZW50LmRhdGEudGV4dC50ZXh0ID0gcmVpbnRlcnBy
ZXRfY2FzdDxOUE5TU3RyaW5nKj4oY29uc3RfY2FzdDxDRk11dGFibGVTdHJpbmdSZWY+KHRleHQu
Z2V0KCkpKTsKLSAgICAKLSAgICBzZW5kRXZlbnQoJmV2ZW50KTsKLQotICAgIHJldHVybiBub0Vy
cjsKLX0KLQotI2VuZGlmIC8vIF9fTFA2NF9fCi0KICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KaW5kZXggMjM0NzgxYjBiZTg2
YTRiZGE1MGMwY2U1NjQ4NDIyMzg4YjQyYmVjYS4uZWYwMzUwMzQyYmI4MjI0NmNkMTlmMzU0ZDli
Y2MwMjkxZjI5MDQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KQEAgLTIzNSw3ICsy
MzUsNyBAQCBOU01lbnUgKldlYkNvbnRleHRNZW51Q2xpZW50Ojpjb250ZXh0TWVudUZvckV2ZW50
KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKnZpZXcsCiAgICAgaWYgKCFwYWdlKQogICAgICAgICBy
ZXR1cm4gbmlsOwogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpICYmIGRlZmluZWQoX19M
UDY0X18pCisjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgaWYgKEltYWdlKiBpbWFn
ZSA9IHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmNvbnRleHQoKS5jb250cm9sbGVkSW1h
Z2UoKSkgewogICAgICAgICBBU1NFUlQocGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuY29u
dGV4dCgpLmhpdFRlc3RSZXN1bHQoKS5pbm5lck5vZGUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDcxZDI1OTdiMjJlMDI1MGE5
ZDU2YzliZmM3MDlmYjNhMDNmYmQ4Y2IuLjNjMWU2NjczMDYwMzc0MjUzY2UyYTdjODMxMmUyYjIz
OTUyMGYwMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
SFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlldy5tbQpAQCAtMjU0NiwxNCArMjU0NiwxMSBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICBmbG9hdCBuZXdCb3R0b207CiAgICAgdmlldy0+YWRqdXN0UGFnZUhlaWdo
dERlcHJlY2F0ZWQoJm5ld0JvdHRvbSwgdG9wLCBib3R0b20sIGJvdHRvbUxpbWl0KTsKIAotI2lm
ZGVmIF9fTFA2NF9fCiAgICAgLy8gSWYgdGhlIG5ldyBib3R0b20gaXMgZXF1YWwgdG8gdGhlIG9s
ZCBib3R0b20gKHdoZW4gYm90aCBhcmUgdHJlYXRlZCBhcyBmbG9hdHMpLCB3ZSBqdXN0IHJldHVy
biB0aGUgb3JpZ2luYWwKICAgICAvLyBib3R0b20uIFRoaXMgcHJldmVudHMgcm91bmRpbmcgZXJy
b3JzIHRoYXQgY2FuIG9jY3VyIHdoZW4gY29udmVydGluZyBuZXdCb3R0b20gdG8gYSBkb3VibGUu
CiAgICAgaWYgKFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbChzdGF0aWNfY2FzdDxmbG9hdD4oYm90
dG9tKSwgbmV3Qm90dG9tKSkKICAgICAgICAgcmV0dXJuIGJvdHRvbTsKLSAgICBlbHNlCi0jZW5k
aWYKLSAgICAgICAgcmV0dXJuIG5ld0JvdHRvbTsKKyAgICByZXR1cm4gbmV3Qm90dG9tOwogfQog
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTQ1MDgsNyArNDUwNSw3IEBAIEFMTE9XX0RF
UFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogCiAtICh2b2lkKXByZXNzdXJlQ2hhbmdlV2l0
aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSNpZiBQTEFURk9STShNQUMpICYmIGRlZmluZWQo
X19MUDY0X18pCisjaWYgUExBVEZPUk0oTUFDKQogICAgIE5TRXZlbnQgKmxhc3RQcmVzc3VyZUV2
ZW50ID0gW1tzZWxmIF93ZWJWaWV3XSBfcHJlc3N1cmVFdmVudF07CiAgICAgaWYgKGV2ZW50LnBo
YXNlICE9IE5TRXZlbnRQaGFzZUNoYW5nZWQgJiYgZXZlbnQucGhhc2UgIT0gTlNFdmVudFBoYXNl
QmVnYW4gJiYgZXZlbnQucGhhc2UgIT0gTlNFdmVudFBoYXNlRW5kZWQpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBiZjMx
MDg4MzM0MmE4NmQzNTkyYzg4MzdiNDg4NzBhM2Y2YjRjYmU4Li41NGJjZDEwYWNkODlhMDE4OGE1
NjQ4MjU5N2JkZGFiNmNkYzEwMmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCkBAIC05MjAzLDE1ICs5MjAzLDcgQEAgYm9vbCBMYXllckZsdXNoQ29udHJv
bGxlcjo6Zmx1c2hMYXllcnMoKQogICAgIC8vIEFuIE5TV2luZG93IG1heSBub3QgZGlzcGxheSBp
biB0aGUgbmV4dCBydW5sb29wIGN5Y2xlIGFmdGVyIGRpcnR5aW5nIGR1ZSB0byBkZWxheWVkIHdp
bmRvdyBkaXNwbGF5IGxvZ2ljLAogICAgIC8vIGluIHdoaWNoIGNhc2UgdGhpcyBvYnNlcnZlciBj
YW4gZmlyZSBmaXJzdC4gU28gaWYgdGhlIHdpbmRvdyBpcyBkdWUgZm9yIGEgZGlzcGxheSwgZG9u
J3QgY29tbWl0CiAgICAgLy8gbGF5ZXIgY2hhbmdlcywgb3RoZXJ3aXNlIHRoZXknbGwgc2hvdyBv
biBzY3JlZW4gYmVmb3JlIHRoZSB2aWV3IGRyYXdpbmcuCi0gICAgYm9vbCB2aWV3c05lZWREaXNw
bGF5OwotI2lmbmRlZiBfX0xQNjRfXwotICAgIGlmICh3aW5kb3cgJiYgW3dpbmRvdyBfd3JhcHND
YXJib25XaW5kb3ddKQotICAgICAgICB2aWV3c05lZWREaXNwbGF5ID0gSElWaWV3R2V0TmVlZHNE
aXNwbGF5KEhJVmlld0dldFJvb3Qoc3RhdGljX2Nhc3Q8V2luZG93UmVmPihbd2luZG93IHdpbmRv
d1JlZl0pKSk7Ci0gICAgZWxzZQotI2VuZGlmCi0gICAgICAgIHZpZXdzTmVlZERpc3BsYXkgPSBb
d2luZG93IHZpZXdzTmVlZERpc3BsYXldOwotCi0gICAgaWYgKHZpZXdzTmVlZERpc3BsYXkpCisg
ICAgaWYgKHdpbmRvdy52aWV3c05lZWREaXNwbGF5KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAj
ZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTMwMAogI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykK
</data>

          </attachment>
      

    </bug>

</bugzilla>