<?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>148785</bug_id>
          
          <creation_ts>2015-09-03 21:52:04 -0700</creation_ts>
          <short_desc>REGRESSION(r189338): Caused tons of crashes (Requested by cdumez on #webkit).</short_desc>
          <delta_ts>2015-09-03 21:54:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148538</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>bburg</cc>
    
    <cc>cdumez</cc>
    
    <cc>joepeck</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1123335</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-03 21:52:04 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/189338 broke the build:
Caused tons of crashes (Requested by cdumez 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>1123337</commentid>
    <comment_count>1</comment_count>
      <attachid>260563</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-03 21:52:46 -0700</bug_when>
    <thetext>Created attachment 260563
ROLLOUT of r189338

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>1123338</commentid>
    <comment_count>2</comment_count>
      <attachid>260563</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-03 21:54:14 -0700</bug_when>
    <thetext>Comment on attachment 260563
ROLLOUT of r189338

Clearing flags on attachment: 260563

Committed r189340: &lt;http://trac.webkit.org/changeset/189340&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123339</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-03 21:54:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260563</attachid>
            <date>2015-09-03 21:52:46 -0700</date>
            <delta_ts>2015-09-03 21:54:14 -0700</delta_ts>
            <desc>ROLLOUT of r189338</desc>
            <filename>bug-148785-20150903215245.patch</filename>
            <type>text/plain</type>
            <size>75363</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5MzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NDBiZjg0MWRmNjBjN2I2YjU5YjA4MGMxNTJjODgyNDEwN2M1MWUxLi5mNjhiMzNjNDJkYWE4YTkz
ZWU3M2ExMWY2ODI5MzE1ZTA2NmM1ZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNS0wOS0wMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4OTMzOC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODc4NQorCisgICAg
ICAgIENhdXNlZCB0b25zIG9mIGNyYXNoZXMgKFJlcXVlc3RlZCBieSBjZHVtZXogb24gI3dlYmtp
dCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJXZWIgSW5zcGVj
dG9yOiBJbnNwZWN0b3JDb250cm9sbGVyIHNob3VsZCBzdXBwb3J0IG11bHRpcGxlCisgICAgICAg
IGZyb250ZW5kIGNoYW5uZWxzIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ4NTM4CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzE4OTMzOAorCiAyMDE1LTA5LTAzICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21h
aWwuY29tPgogCiAgICAgICAgIFtFUzZdIEluc3RhbnRpYXRlIE1vZHVsZSBFbnZpcm9ubWVudCBi
aW5kaW5ncyBhbmQgZXhlY3V0ZSBtb2R1bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYmEwY2Q2NTE4YjcyNGM2
OTgyZjgyYWRlMDg0ZWUzYzFjNzdjOGZlLi43ZGNiZGUwOTA3NjAyN2RlY2E3YWU1OWU5ZmZiN2Rl
N2VmYjMxOWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDktMDMgIENvbW1p
dCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIxODkzMzguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDg3ODUKKworICAgICAgICBDYXVzZWQgdG9ucyBvZiBjcmFzaGVzIChS
ZXF1ZXN0ZWQgYnkgY2R1bWV6IG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5n
ZXNldDoKKworICAgICAgICAiV2ViIEluc3BlY3RvcjogSW5zcGVjdG9yQ29udHJvbGxlciBzaG91
bGQgc3VwcG9ydCBtdWx0aXBsZQorICAgICAgICBmcm9udGVuZCBjaGFubmVscyIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODUzOAorICAgICAgICBo
dHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xODkzMzgKKwogMjAxNS0wOS0wMyAgQnJp
YW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbnNw
ZWN0b3JDb250cm9sbGVyIHNob3VsZCBzdXBwb3J0IG11bHRpcGxlIGZyb250ZW5kIGNoYW5uZWxz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKaW5kZXggOTFkZWU5OTIzYzVlNjgzMmMzYWQyM2E3NGJhZjJjM2M2Yjgx
MjRmOS4uODFmYjJiMmNjZTcyOGZiYTlkZjk1MWViOTBmZTA0MjY0ZDBhMzI3NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA5LTAzICBDb21taXQgUXVldWUgIDxjb21t
aXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MTg5MzM4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ4Nzg1CisKKyAgICAgICAgQ2F1c2VkIHRvbnMgb2YgY3Jhc2hlcyAoUmVxdWVzdGVkIGJ5IGNk
dW1leiBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAg
ICAgIldlYiBJbnNwZWN0b3I6IEluc3BlY3RvckNvbnRyb2xsZXIgc2hvdWxkIHN1cHBvcnQgbXVs
dGlwbGUKKyAgICAgICAgZnJvbnRlbmQgY2hhbm5lbHMiCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg1MzgKKyAgICAgICAgaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMTg5MzM4CisKIDIwMTUtMDktMDMgIEJyaWFuIEJ1cmcgIDxiYnVy
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogSW5zcGVjdG9yQ29udHJvbGxl
ciBzaG91bGQgc3VwcG9ydCBtdWx0aXBsZSBmcm9udGVuZCBjaGFubmVscwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CmluZGV4IDM2NmQ2MWQ0MTM5ODZhNmJmZDhjOTkxMDJmNGY4MTEwNDcwMGM1YmYuLjRjNjBhZTJj
MDg2MDQ4ZWNlYTFhNGM2MjJhODNmYjhkYWIyYzkxM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNS0wOS0wMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4OTMzOC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODc4NQorCisgICAg
ICAgIENhdXNlZCB0b25zIG9mIGNyYXNoZXMgKFJlcXVlc3RlZCBieSBjZHVtZXogb24gI3dlYmtp
dCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJXZWIgSW5zcGVj
dG9yOiBJbnNwZWN0b3JDb250cm9sbGVyIHNob3VsZCBzdXBwb3J0IG11bHRpcGxlCisgICAgICAg
IGZyb250ZW5kIGNoYW5uZWxzIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ4NTM4CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzE4OTMzOAorCiAyMDE1LTA5LTAzICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEluc3BlY3RvckNvbnRyb2xsZXIgc2hvdWxkIHN1cHBv
cnQgbXVsdGlwbGUgZnJvbnRlbmQgY2hhbm5lbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4ODhhODJjYzlmNTM5
M2VhODE3OTZjY2U3MzZiZDc1ZTJlN2I5YjI5Li4xYmY5NTVmZTFjNzk2YmZjMGQxZmYzYmI3MDhk
YjcxYWEyMGQyMTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDktMDMgIENv
bW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxODkzMzguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDg3ODUKKworICAgICAgICBDYXVzZWQgdG9ucyBvZiBjcmFzaGVz
IChSZXF1ZXN0ZWQgYnkgY2R1bWV6IG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNo
YW5nZXNldDoKKworICAgICAgICAiV2ViIEluc3BlY3RvcjogSW5zcGVjdG9yQ29udHJvbGxlciBz
aG91bGQgc3VwcG9ydCBtdWx0aXBsZQorICAgICAgICBmcm9udGVuZCBjaGFubmVscyIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODUzOAorICAgICAg
ICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xODkzMzgKKwogMjAxNS0wOS0wMyAg
QnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJ
bnNwZWN0b3JDb250cm9sbGVyIHNob3VsZCBzdXBwb3J0IG11bHRpcGxlIGZyb250ZW5kIGNoYW5u
ZWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYzE4YTMxODU0MGJmNDA3
MThiMzA5NzJiYTJjZmRjZjYzNmZlODE5NS4uNDdlMDgzMzY4OTMzZTY2MzNjMmZjYWM5MzVmYTQ1
NjY3NTVmMmE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzIzLDcg
KzMyMyw2IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0TWFuYWdlci5jcHAKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNb2R1bGUu
Y3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuY3BwCi0gICAgaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlci5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmNwcAog
ICAgIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCAyNTM5MGZiNGYzZjBhZTBiZDlhNTJiZjcy
OGIyNjUxODRkNzY4MmQ0Li40YTgwMTBhNjc4MGRiYjE0M2M4MGFlOTViN2UzNzg0YzJlNDkxN2Mz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKQEAgLTU5NSw3ICs1OTUs
NiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluamVjdGVkU2NyaXB0
TW9kdWxlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNw
ZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGlu
c3BlY3RvclxJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAiIC8+Ci0gICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclZhbHVlcy5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSlNJbmplY3RlZFNjcmlw
dEhvc3QuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEpTSW5q
ZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmNwcCIgLz4KQEAgLTEzODYsNyArMTM4NSw2IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0
b3JFbnZpcm9ubWVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9y
XEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kUm91dGVyLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yVmFsdWVzLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSlNJbmplY3RlZFNjcmlwdEhvc3QuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxKU0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5ODY3ZTg2NjQx
MmQ2ZThkNGY4YTdiZmYzOGVhNjEzNWJhNTZmZGFkLi5jZGU4M2UwY2Y5MzMxNzgwNjI5ZWZjNmUx
M2QyN2VjNGU0OGNlYjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE5NSw4
ICsxMTk1LDYgQEAKIAkJOTlFNDVBMjYxOEExQjI1OTAwMjZEODhGIC8qIEVuY29kZWRWYWx1ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNDVBMjEx
OEExQjI1OTAwMjZEODhGIC8qIEVuY29kZWRWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5RTQ1QTI3MThBMUIyNTkwMDI2RDg4RiAvKiBJ
bnB1dEN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTlFNDVBMjIxOEExQjI1OTAwMjZEODhGIC8qIElucHV0Q3Vyc29yLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlFNDVBMjgxOEExQjI1OTAw
MjZEODhGIC8qIE5vbmRldGVybWluaXN0aWNJbnB1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNDVBMjMxOEExQjI1OTAwMjZEODhGIC8qIE5vbmRl
dGVybWluaXN0aWNJbnB1dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTk5RjFBNkZFMUI4RTZEOTQwMDQ2M0IyNiAvKiBJbnNwZWN0b3JGcm9udGVu
ZFJvdXRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5OUYxQTZGQzFCOEU2RDk0MDA0NjNCMjYgLyogSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3Bw
ICovOyB9OwotCQk5OUYxQTcwMTFCOThGQkVDMDA0NjNCMjYgLyogSW5zcGVjdG9yRnJvbnRlbmRS
b3V0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5
RjFBNzAwMUI5OEZCRUMwMDQ2M0IyNiAvKiBJbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlFNzI5NDA3MTkw
RjAxQTUwMDFBOTFCNSAvKiBJbml0aWFsaXplVGhyZWFkaW5nLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNzg2MzZDMEQ5QkVFQzMwMEQ3NEU3NSAv
KiBJbml0aWFsaXplVGhyZWFkaW5nLmNwcCAqLzsgfTsKIAkJOUU3Mjk0MDgxOTBGMDIxRTAwMUE5
MUI1IC8qIEluaXRpYWxpemVMTFZNUE9TSVguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDRUZBQzUxODA1RTc1NTAwNDcyQ0U0IC8qIEluaXRpYWxp
emVMTFZNUE9TSVguY3BwICovOyB9OwogCQk5RTcyOTQwQjE5MEYwNTE0MDAxQTkxQjUgLyogQnVu
ZGxlUGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUU3Mjk0MEExOTBGMDUxNDAwMUE5MUI1IC8qIEJ1bmRsZVBhdGguaCAqLzsgfTsKQEAgLTMwNjUs
OCArMzA2Myw2IEBACiAJCTk5RTQ1QTIxMThBMUIyNTkwMDI2RDg4RiAvKiBFbmNvZGVkVmFsdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRW5jb2RlZFZhbHVlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5RTQ1QTIyMThBMUIyNTkwMDI2RDg4RiAvKiBJbnB1
dEN1cnNvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnB1dEN1cnNvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUU0NUEyMzE4QTFCMjU5MDAyNkQ4OEYg
LyogTm9uZGV0ZXJtaW5pc3RpY0lucHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE5vbmRldGVybWluaXN0aWNJbnB1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5OUYxQTZGQzFCOEU2RDk0MDA0NjNCMjYgLyogSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRS
b3V0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OUYxQTcwMDFCOThGQkVD
MDA0NjNCMjYgLyogSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUI0OTU0RTgxQTY2NDBEQjAwMjgxNUE2IC8qIFBhcnNlckZ1bmN0aW9u
SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYXJzZXJGdW5jdGlvbkluZm8uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUU3Mjk0MDkxOTBGMDMwNjAwMUE5MUI1IC8qIEJ1bmRsZVBhdGgu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCdW5kbGVQYXRoLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RTcyOTQwQTE5MEYwNTE0MDAxQTkxQjUg
LyogQnVuZGxlUGF0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCdW5kbGVQ
YXRoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NzE3LDcgKzU3MTMsNiBAQAog
CQlBNUJBMTVERjE4MjM0MDkyMDBBODJFNjkgLyogaW5zcGVjdG9yICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk5OUYxQTcwMDFCOThGQkVDMDA0NjNCMjYg
LyogSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaCAqLywKIAkJCQlBNTEzRTVDQzE4NUZCOTkyMDA3
RTk1QUQgLyogYWdlbnRzICovLAogCQkJCUE1RUE3MEUzMTlGNUIwRTIwMDk4RjVFQyAvKiBhdWdt
ZW50YWJsZSAqLywKIAkJCQlBNTMyNDM4RDE4NTY5NkNBMDAyRUQ2OTIgLyogcHJvdG9jb2wgKi8s
CkBAIC01NzQ5LDcgKzU3NDQsNiBAQAogCQkJCUE1OTNDRjdCMTg0MDM2MDMwMEJGQ0UyNyAvKiBJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oICovLAogCQkJCUE1RDBBMUJBMTg2MjMwMUIwMEM3
QjQ5NiAvKiBJbnNwZWN0b3JFbnZpcm9ubWVudC5oICovLAogCQkJCUE1OTQ1NTk0MTgyNDc5RUIw
MENDMzg0MyAvKiBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCAqLywKLQkJCQk5OUYxQTZGQzFC
OEU2RDk0MDA0NjNCMjYgLyogSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3BwICovLAogCQkJCUE1
NUQ5M0FCMTg1MTRGNzkwMDQwMERFRCAvKiBJbnNwZWN0b3JQcm90b2NvbFR5cGVzLmggKi8sCiAJ
CQkJQTU5M0NGODAxODQwMzc3MTAwQkZDRTI3IC8qIEluc3BlY3RvclZhbHVlcy5jcHAgKi8sCiAJ
CQkJQTU5M0NGODExODQwMzc3MTAwQkZDRTI3IC8qIEluc3BlY3RvclZhbHVlcy5oICovLApAQCAt
NTkxMyw3ICs1OTA3LDYgQEAKIAkJCQlBMUEwMDlDMTE4MzFBMjZFMDBDRjg3MTEgLyogQVJNNjRB
c3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODk4RjMyMUIyNzY4OUYwMDgzQTMzQyAv
KiBERkdJbnRlZ2VyUmFuZ2VPcHRpbWl6YXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODZEM0IyQzQxMDE1NkJERTAwMjg2NUU3IC8qIEFSTUFzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJOTlGMUE3MDExQjk4RkJFQzAwNDYzQjI2IC8qIEluc3BlY3RvckZyb250ZW5kUm91dGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3OTY0NjU2QTFCOTUyRkYwMDAzMDU5RUUgLyogR2V0UHV0
SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzk3RTA3QUExQjhGQ0ZCOTAwODQwMEJBIC8qIEpT
R2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkUwNTAyODFB
QTkwOTU2MDBEMzNCMzMgLyogU2NvcGVkQXJndW1lbnRzLmggaW4gSGVhZGVycyAqLywKQEAgLTc5
NDgsNyArNzk0MSw2IEBACiAJCQkJQzIyNTQ5NDMxNUY3REJBQTAwNjVFODk4IC8qIFNsb3RWaXNp
dG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA0MDJDMEU2QTc2NDAwMDc4NkU2QSAvKiBT
bWFsbFN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTNFRjg4NzQxQjY2REYyMzAwM0Yy
NkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTlG
MUE2RkUxQjhFNkQ5NDAwNDYzQjI2IC8qIEluc3BlY3RvckZyb250ZW5kUm91dGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGOEYyQjlFMTczMDZDOEQwMDdEQkRBNSAvKiBTb3VyY2VDb2RlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3VyY2VQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzNFOEQxQzFCOTAxM0MzMDAzNDZCNTIg
LyogSlNOYXRpdmVTdGRGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlci5jcHAKaW5kZXggMDkzNmI0MTExYzI0MTMzNGQ3NDljMjI0MWQzYjZjMTQ1MTg2OTA3
ZC4uNGQ0NWRhOTllMWJmNjY0NzUzN2Q4NGMxNDEzNTIyOTM5YjA5ODA4OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlci5jcHAKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlci5oIgogCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMzYsMTUgKzM1LDYgQEAKIAogbmFtZXNwYWNlIElu
c3BlY3RvciB7CiAKLVN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVyOjpTdXBwbGVtZW50YWxC
YWNrZW5kRGlzcGF0Y2hlcihCYWNrZW5kRGlzcGF0Y2hlciYgYmFja2VuZERpc3BhdGNoZXIpCi0g
ICAgOiBtX2JhY2tlbmREaXNwYXRjaGVyKGJhY2tlbmREaXNwYXRjaGVyKQotewotfQotCi1TdXBw
bGVtZW50YWxCYWNrZW5kRGlzcGF0Y2hlcjo6flN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVy
KCkKLXsKLX0KLQogQmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZTo6Q2FsbGJhY2tCYXNl
KFJlZjxCYWNrZW5kRGlzcGF0Y2hlcj4mJiBiYWNrZW5kRGlzcGF0Y2hlciwgbG9uZyByZXF1ZXN0
SWQpCiAgICAgOiBtX2JhY2tlbmREaXNwYXRjaGVyKFdURjo6bW92ZShiYWNrZW5kRGlzcGF0Y2hl
cikpCiAgICAgLCBtX3JlcXVlc3RJZChyZXF1ZXN0SWQpCkBAIC03OSwyOCArNjksMTUgQEAgdm9p
ZCBCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlOjpzZW5kU3VjY2VzcyhSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiYmIHBhcnQKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLT5zZW5kUmVzcG9u
c2UobV9yZXF1ZXN0SWQsIFdURjo6bW92ZShwYXJ0aWFsTWVzc2FnZSkpOwogfQogCi1CYWNrZW5k
RGlzcGF0Y2hlcjo6QmFja2VuZERpc3BhdGNoZXIoUmVmPEZyb250ZW5kUm91dGVyPiYmIHJvdXRl
cikKLSAgICA6IG1fZnJvbnRlbmRSb3V0ZXIoV1RGOjptb3ZlKHJvdXRlcikpCi17Ci19Ci0KLVJl
ZjxCYWNrZW5kRGlzcGF0Y2hlcj4gQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShSZWY8RnJvbnRl
bmRSb3V0ZXI+JiYgcm91dGVyKQorUmVmPEJhY2tlbmREaXNwYXRjaGVyPiBCYWNrZW5kRGlzcGF0
Y2hlcjo6Y3JlYXRlKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFubmVsKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEJhY2tlbmREaXNwYXRjaGVyKFdURjo6bW92ZShyb3V0ZXIpKSk7
Ci19Ci0KLWJvb2wgQmFja2VuZERpc3BhdGNoZXI6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9mcm9udGVuZFJvdXRlci0+aGFzRnJvbnRlbmRzKCk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQmFja2VuZERpc3BhdGNoZXIoZnJvbnRlbmRDaGFubmVsKSk7CiB9CiAKIHZvaWQg
QmFja2VuZERpc3BhdGNoZXI6OnJlZ2lzdGVyRGlzcGF0Y2hlckZvckRvbWFpbihjb25zdCBTdHJp
bmcmIGRvbWFpbiwgU3VwcGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIqIGRpc3BhdGNoZXIpCiB7
Ci0gICAgQVNTRVJUX0FSRyhkaXNwYXRjaGVyLCBkaXNwYXRjaGVyKTsKLQotICAgIC8vIEZJWE1F
OiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQ4NDkyPiBBZ2VudHMgc2hvdWxkIG9ubHkgcmVnaXN0
ZXIgd2l0aCB0aGUgYmFja2VuZCBvbmNlLAotICAgIC8vIGFuZCB3ZSBzaG91bGQgcmUtYWRkIHRo
ZSBhc3NlcnRpb24gdGhhdCBvbmx5IG9uZSBkaXNwYXRjaGVyIGlzIHJlZ2lzdGVyZWQgcGVyIGRv
bWFpbi4KLSAgICBtX2Rpc3BhdGNoZXJzLnNldChkb21haW4sIGRpc3BhdGNoZXIpOworICAgIGF1
dG8gcmVzdWx0ID0gbV9kaXNwYXRjaGVycy5hZGQoZG9tYWluLCBkaXNwYXRjaGVyKTsKKyAgICBB
U1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwogfQogCiB2b2lkIEJhY2tl
bmREaXNwYXRjaGVyOjpkaXNwYXRjaChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0xODgsNiAr
MTY1LDkgQEAgdm9pZCBCYWNrZW5kRGlzcGF0Y2hlcjo6ZGlzcGF0Y2goY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQogCiB2b2lkIEJhY2tlbmREaXNwYXRjaGVyOjpzZW5kUmVzcG9uc2UobG9uZyByZXF1
ZXN0SWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiYgcmVzdWx0KQogeworICAgIGlmICghbV9m
cm9udGVuZENoYW5uZWwpCisgICAgICAgIHJldHVybjsKKwogICAgIEFTU0VSVCghbV9wcm90b2Nv
bEVycm9ycy5zaXplKCkpOwogCiAgICAgLy8gVGhlIEpTT04tUlBDIDIuMCBzcGVjaWZpY2F0aW9u
IHJlcXVpcmVzIHRoYXQgdGhlICJlcnJvciIgbWVtYmVyIGhhdmUgdGhlIHZhbHVlICdudWxsJwpA
QCAtMTk1LDcgKzE3NSw3IEBAIHZvaWQgQmFja2VuZERpc3BhdGNoZXI6OnNlbmRSZXNwb25zZShs
b25nIHJlcXVlc3RJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mJiByCiAgICAgUmVmPEluc3Bl
Y3Rvck9iamVjdD4gcmVzcG9uc2VNZXNzYWdlID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsK
ICAgICByZXNwb25zZU1lc3NhZ2UtPnNldE9iamVjdChBU0NJSUxpdGVyYWwoInJlc3VsdCIpLCBy
ZXN1bHQpOwogICAgIHJlc3BvbnNlTWVzc2FnZS0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoImlk
IiksIHJlcXVlc3RJZCk7Ci0gICAgbV9mcm9udGVuZFJvdXRlci0+c2VuZFJlc3BvbnNlKHJlc3Bv
bnNlTWVzc2FnZS0+dG9KU09OU3RyaW5nKCkpOworICAgIG1fZnJvbnRlbmRDaGFubmVsLT5zZW5k
TWVzc2FnZVRvRnJvbnRlbmQocmVzcG9uc2VNZXNzYWdlLT50b0pTT05TdHJpbmcoKSk7CiB9CiAK
IHZvaWQgQmFja2VuZERpc3BhdGNoZXI6OnNlbmRQZW5kaW5nRXJyb3JzKCkKQEAgLTIxMCw2ICsx
OTAsOSBAQCB2b2lkIEJhY2tlbmREaXNwYXRjaGVyOjpzZW5kUGVuZGluZ0Vycm9ycygpCiAgICAg
ICAgIC0zMjAwMCwgLy8gU2VydmVyRXJyb3IKICAgICB9OwogCisgICAgaWYgKCFtX2Zyb250ZW5k
Q2hhbm5lbCkKKyAgICAgICAgcmV0dXJuOworICAgIAogICAgIC8vIFRvIGNvbnN0cnVjdCB0aGUg
ZXJyb3Igb2JqZWN0LCBvbmx5IHVzZSB0aGUgbGFzdCBlcnJvcidzIGNvZGUgYW5kIG1lc3NhZ2Uu
CiAgICAgLy8gUGVyIEpTT04tUlBDIDIuMCwgU2VjdGlvbiA1LjEsIHRoZSAnZGF0YScgbWVtYmVy
IG1heSBjb250YWluIG5lc3RlZCBlcnJvcnMsCiAgICAgLy8gYnV0IG9ubHkgb25lIHRvcC1sZXZl
bCBFcnJvciBvYmplY3Qgc2hvdWxkIGJlIHNlbnQgcGVyIHJlcXVlc3QuCkBAIC0yNDQsNyArMjI3
LDcgQEAgdm9pZCBCYWNrZW5kRGlzcGF0Y2hlcjo6c2VuZFBlbmRpbmdFcnJvcnMoKQogICAgICAg
ICBtZXNzYWdlLT5zZXRWYWx1ZShBU0NJSUxpdGVyYWwoImlkIiksIEluc3BlY3RvclZhbHVlOjpu
dWxsKCkpOwogICAgIH0KIAotICAgIG1fZnJvbnRlbmRSb3V0ZXItPnNlbmRSZXNwb25zZShtZXNz
YWdlLT50b0pTT05TdHJpbmcoKSk7CisgICAgbV9mcm9udGVuZENoYW5uZWwtPnNlbmRNZXNzYWdl
VG9Gcm9udGVuZChtZXNzYWdlLT50b0pTT05TdHJpbmcoKSk7CiAKICAgICBtX3Byb3RvY29sRXJy
b3JzLmNsZWFyKCk7CiAgICAgbV9jdXJyZW50UmVxdWVzdElkID0gTnVsbG9wdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIuaAppbmRleCBjNjFjZjFkMGNkM2Y4NTQ3ZTRkNTYwODI4MGQwMGFjODc3ZTk1
YzA5Li5mMjI0ODJkOWIwZjk1MTI4OTczOTUxY2Y4MzIzMjdmMGFiMzgxNTAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlci5oCkBAIC0zNSwxNCArMzUsMTUgQEAKIG5hbWVzcGFjZSBJbnNwZWN0b3Ig
ewogCiBjbGFzcyBCYWNrZW5kRGlzcGF0Y2hlcjsKLWNsYXNzIEZyb250ZW5kUm91dGVyOworY2xh
c3MgRnJvbnRlbmRDaGFubmVsOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAogY2xh
c3MgU3VwcGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxTdXBw
bGVtZW50YWxCYWNrZW5kRGlzcGF0Y2hlcj4gewogcHVibGljOgotICAgIFN1cHBsZW1lbnRhbEJh
Y2tlbmREaXNwYXRjaGVyKEJhY2tlbmREaXNwYXRjaGVyJik7Ci0gICAgdmlydHVhbCB+U3VwcGxl
bWVudGFsQmFja2VuZERpc3BhdGNoZXIoKTsKKyAgICBTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0
Y2hlcihCYWNrZW5kRGlzcGF0Y2hlciYgYmFja2VuZERpc3BhdGNoZXIpCisgICAgICAgIDogbV9i
YWNrZW5kRGlzcGF0Y2hlcihiYWNrZW5kRGlzcGF0Y2hlcikgeyB9CisgICAgdmlydHVhbCB+U3Vw
cGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2gobG9uZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SW5zcGVjdG9yT2Jq
ZWN0PiYmIG1lc3NhZ2UpID0gMDsKIHByb3RlY3RlZDoKICAgICBSZWY8QmFja2VuZERpc3BhdGNo
ZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7CkBAIC01MCw3ICs1MSw3IEBAIHByb3RlY3RlZDoKIAog
Y2xhc3MgQmFja2VuZERpc3BhdGNoZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxCYWNrZW5kRGlzcGF0
Y2hlcj4gewogcHVibGljOgotICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8QmFja2Vu
ZERpc3BhdGNoZXI+IGNyZWF0ZShSZWY8RnJvbnRlbmRSb3V0ZXI+JiYpOworICAgIEpTX0VYUE9S
VF9QUklWQVRFIHN0YXRpYyBSZWY8QmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShGcm9udGVuZENo
YW5uZWwqKTsKIAogICAgIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIENhbGxiYWNrQmFzZSA6IHB1
YmxpYyBSZWZDb3VudGVkPENhbGxiYWNrQmFzZT4gewogICAgIHB1YmxpYzoKQEAgLTY4LDcgKzY5
LDggQEAgcHVibGljOgogICAgICAgICBib29sIG1fYWxyZWFkeVNlbnQgeyBmYWxzZSB9OwogICAg
IH07CiAKLSAgICBib29sIGlzQWN0aXZlKCkgY29uc3Q7CisgICAgdm9pZCBjbGVhckZyb250ZW5k
KCkgeyBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7IH0KKyAgICBib29sIGlzQWN0aXZlKCkg
Y29uc3QgeyByZXR1cm4gISFtX2Zyb250ZW5kQ2hhbm5lbDsgfQogCiAgICAgYm9vbCBoYXNQcm90
b2NvbEVycm9ycygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdG9jb2xFcnJvcnMuc2l6ZSgpID4gMDsg
fQogCkBAIC0xMDIsOSArMTA0LDEyIEBAIHB1YmxpYzoKICAgICBSZWZQdHI8SW5zcGVjdG9yQXJy
YXk+IGdldEFycmF5KEluc3BlY3Rvck9iamVjdCosIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCog
dmFsdWVGb3VuZCk7CiAKIHByaXZhdGU6Ci0gICAgQmFja2VuZERpc3BhdGNoZXIoUmVmPEZyb250
ZW5kUm91dGVyPiYmKTsKKyAgICBCYWNrZW5kRGlzcGF0Y2hlcihGcm9udGVuZENoYW5uZWwqIGNo
YW5uZWwpCisgICAgICAgIDogbV9mcm9udGVuZENoYW5uZWwoY2hhbm5lbCkKKyAgICB7CisgICAg
fQogCi0gICAgUmVmPEZyb250ZW5kUm91dGVyPiBtX2Zyb250ZW5kUm91dGVyOworICAgIEZyb250
ZW5kQ2hhbm5lbCogbV9mcm9udGVuZENoYW5uZWw7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN1cHBs
ZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVyKj4gbV9kaXNwYXRjaGVyczsKIAogICAgIC8vIFByb3Rv
Y29sIGVycm9ycyByZXBvcnRlZCBmb3IgdGhlIHRvcC1sZXZlbCByZXF1ZXN0IGJlaW5nIHByb2Nl
c3NlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRSb3V0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZFJvdXRlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDI4N2E2NzhhNjVlZmJlYjYwZjVmZGQ4YjNjMTIyOTVmZGQ2ZWQzMTAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
MTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJ
bnNwZWN0b3JGcm9udGVuZFJvdXRlci5oIgotCi0jaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsLmgiCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLQotbmFtZXNwYWNlIEluc3Bl
Y3RvciB7Ci0KLVJlZjxGcm9udGVuZFJvdXRlcj4gRnJvbnRlbmRSb3V0ZXI6OmNyZWF0ZSgpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRnJvbnRlbmRSb3V0ZXIpOwotfQotCi12b2lkIEZy
b250ZW5kUm91dGVyOjpjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKiBjb25uZWN0aW9u
KQotewotICAgIEFTU0VSVF9BUkcoY29ubmVjdGlvbiwgY29ubmVjdGlvbik7Ci0KLSAgICBpZiAo
bV9jb25uZWN0aW9ucy5jb250YWlucyhjb25uZWN0aW9uKSkgewotICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fY29ubmVjdGlvbnMu
YXBwZW5kKGNvbm5lY3Rpb24pOwotfQotCi12b2lkIEZyb250ZW5kUm91dGVyOjpkaXNjb25uZWN0
RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKiBjb25uZWN0aW9uKQotewotICAgIEFTU0VSVF9BUkco
Y29ubmVjdGlvbiwgY29ubmVjdGlvbik7Ci0KLSAgICBpZiAoIW1fY29ubmVjdGlvbnMuY29udGFp
bnMoY29ubmVjdGlvbikpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBtX2Nvbm5lY3Rpb25zLnJlbW92ZUZpcnN0KGNvbm5lY3Rp
b24pOwotfQotCi12b2lkIEZyb250ZW5kUm91dGVyOjpkaXNjb25uZWN0QWxsRnJvbnRlbmRzKCkK
LXsKLSAgICBtX2Nvbm5lY3Rpb25zLmNsZWFyKCk7Ci19Ci0KLS8vIEZJWE1FOiA8aHR0cHM6Ly93
ZWJraXQub3JnL2IvMTQ4NDkyPiByZW1vdmUgdGhpcyBtZXRob2Qgb25jZSBhZ2VudHMgbW92ZSB0
byB1c2luZyBGcm9udGVuZFJvdXRlciBkaXJlY3RseS4KLUZyb250ZW5kQ2hhbm5lbCogRnJvbnRl
bmRSb3V0ZXI6OmxlYWtDaGFubmVsKCkgY29uc3QKLXsKLSAgICBpZiAobV9jb25uZWN0aW9ucy5z
aXplKCkpCi0gICAgICAgIHJldHVybiBtX2Nvbm5lY3Rpb25zLmF0KDApOwotCi0gICAgcmV0dXJu
IG51bGxwdHI7Ci19Ci0KLWJvb2wgRnJvbnRlbmRSb3V0ZXI6Omhhc0xvY2FsRnJvbnRlbmQoKSBj
b25zdAotewotICAgIGZvciAoYXV0byogY29ubmVjdGlvbiA6IG1fY29ubmVjdGlvbnMpIHsKLSAg
ICAgICAgaWYgKGNvbm5lY3Rpb24tPmNvbm5lY3Rpb25UeXBlKCkgPT0gRnJvbnRlbmRDaGFubmVs
OjpDb25uZWN0aW9uVHlwZTo6TG9jYWwpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgRnJvbnRlbmRSb3V0ZXI6Omhhc1JlbW90
ZUZyb250ZW5kKCkgY29uc3QKLXsKLSAgICBmb3IgKGF1dG8qIGNvbm5lY3Rpb24gOiBtX2Nvbm5l
Y3Rpb25zKSB7Ci0gICAgICAgIGlmIChjb25uZWN0aW9uLT5jb25uZWN0aW9uVHlwZSgpID09IEZy
b250ZW5kQ2hhbm5lbDo6Q29ubmVjdGlvblR5cGU6OlJlbW90ZSkKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBGcm9udGVuZFJv
dXRlcjo6c2VuZEV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgY29uc3QKLXsKLSAgICBmb3Ig
KGF1dG8qIGNvbm5lY3Rpb24gOiBtX2Nvbm5lY3Rpb25zKQotICAgICAgICBjb25uZWN0aW9uLT5z
ZW5kTWVzc2FnZVRvRnJvbnRlbmQobWVzc2FnZSk7Ci19Ci0KLXZvaWQgRnJvbnRlbmRSb3V0ZXI6
OnNlbmRSZXNwb25zZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0Ci17Ci0gICAgLy8gRklY
TUU6IHNlbmQgcmVzcG9uc2VzIHRvIHRoZSBhcHByb3ByaWF0ZSBmcm9udGVuZC4KLSAgICBmb3Ig
KGF1dG8qIGNvbm5lY3Rpb24gOiBtX2Nvbm5lY3Rpb25zKQotICAgICAgICBjb25uZWN0aW9uLT5z
ZW5kTWVzc2FnZVRvRnJvbnRlbmQobWVzc2FnZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEluc3Bl
Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZFJvdXRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZFJvdXRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YTY0
MTFiZWM0MjY1NzcwMDVkMjg5YmQ0MzNkYjBhMDM4MjMzOWJhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEluc3BlY3RvckZyb250ZW5kUm91dGVyX2gKLSNkZWZp
bmUgSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXJfaAotCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgSW5zcGVjdG9yIHsK
LQotY2xhc3MgRnJvbnRlbmRDaGFubmVsOwotCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBGcm9u
dGVuZFJvdXRlciA6IHB1YmxpYyBSZWZDb3VudGVkPEZyb250ZW5kUm91dGVyPiB7Ci1wdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxGcm9udGVuZFJvdXRlcj4gY3JlYXRlKCk7Ci0KLSAgICBib29sIGhh
c0Zyb250ZW5kcygpIGNvbnN0IHsgcmV0dXJuICFtX2Nvbm5lY3Rpb25zLmlzRW1wdHkoKTsgfQot
ICAgIGJvb2wgaGFzTG9jYWxGcm9udGVuZCgpIGNvbnN0OwotICAgIGJvb2wgaGFzUmVtb3RlRnJv
bnRlbmQoKSBjb25zdDsKLQotICAgIHZvaWQgY29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5l
bCopOwotICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCopOwotICAg
IHZvaWQgZGlzY29ubmVjdEFsbEZyb250ZW5kcygpOwotCi0gICAgLy8gRklYTUU6IDxodHRwczov
L3dlYmtpdC5vcmcvYi8xNDg0OTI+IHJlbW92ZSB0aGlzIG1ldGhvZCBvbmNlIGFnZW50cyBtb3Zl
IHRvIHVzaW5nIEZyb250ZW5kUm91dGVyIGRpcmVjdGx5LgotICAgIEZyb250ZW5kQ2hhbm5lbCog
bGVha0NoYW5uZWwoKSBjb25zdDsKLQotICAgIHZvaWQgc2VuZEV2ZW50KGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkgY29uc3Q7Ci0gICAgdm9pZCBzZW5kUmVzcG9uc2UoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBWZWN0b3I8RnJvbnRlbmRDaGFubmVsKiwgMj4g
bV9jb25uZWN0aW9uczsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgotCi0jZW5kaWYg
Ly8gIWRlZmluZWQoSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXJfaCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCAzMzUwZmMwZDE4OTUxZjA4MmZhNzk3MTEyMDdh
NWIyODA3ZWY0Y2FjLi4xNDNkN2YxMzQ3ZWFiMmM1ZjFmYzFjMzc5OGNiODVmMzI0NzUyOTFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0zNSw3ICszNSw2
IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgot
I2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kUm91dGVyLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxP
YmplY3QuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oIgpAQCAtNjQsOCArNjMsNyBAQCBuYW1l
c3BhY2UgSW5zcGVjdG9yIHsKIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6SlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QpCiAgICAgOiBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCiAgICAgLCBtX2luamVjdGVk
U2NyaXB0TWFuYWdlcihzdGQ6Om1ha2VfdW5pcXVlPEluamVjdGVkU2NyaXB0TWFuYWdlcj4oKnRo
aXMsIEluamVjdGVkU2NyaXB0SG9zdDo6Y3JlYXRlKCkpKQotICAgICwgbV9mcm9udGVuZFJvdXRl
cihGcm9udGVuZFJvdXRlcjo6Y3JlYXRlKCkpCi0gICAgLCBtX2JhY2tlbmREaXNwYXRjaGVyKEJh
Y2tlbmREaXNwYXRjaGVyOjpjcmVhdGUobV9mcm9udGVuZFJvdXRlci5jb3B5UmVmKCkpKQorICAg
ICwgbV9mcm9udGVuZENoYW5uZWwobnVsbHB0cikKICAgICAsIG1fZXhlY3V0aW9uU3RvcHdhdGNo
KFN0b3B3YXRjaDo6Y3JlYXRlKCkpCiAgICAgLCBtX2luY2x1ZGVOYXRpdmVDYWxsU3RhY2tXaXRo
RXhjZXB0aW9ucyh0cnVlKQogICAgICwgbV9pc0F1dG9tYXRpY0luc3BlY3Rpb24oZmFsc2UpCkBA
IC0xMDAsMjQgKzk4LDIyIEBAIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6fkpT
R2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcigpCiAKIHZvaWQgSlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyOjpnbG9iYWxPYmplY3REZXN0cm95ZWQoKQogewotICAgIGRpc2Nv
bm5lY3RBbGxGcm9udGVuZHMoKTsKKyAgICBkaXNjb25uZWN0RnJvbnRlbmQoRGlzY29ubmVjdFJl
YXNvbjo6SW5zcGVjdGVkVGFyZ2V0RGVzdHJveWVkKTsKIAogICAgIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLT5kaXNjb25uZWN0KCk7CiB9CiAKIHZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5u
ZWwsIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uKQogewotICAgIEFTU0VSVF9BUkcoZnJvbnRl
bmRDaGFubmVsLCBmcm9udGVuZENoYW5uZWwpOworICAgIEFTU0VSVCghbV9mcm9udGVuZENoYW5u
ZWwpOworICAgIEFTU0VSVCghbV9iYWNrZW5kRGlzcGF0Y2hlcik7CiAKICAgICBtX2lzQXV0b21h
dGljSW5zcGVjdGlvbiA9IGlzQXV0b21hdGljSW5zcGVjdGlvbjsKIAotICAgIGJvb2wgY29ubmVj
dGVkRmlyc3RGcm9udGVuZCA9ICFtX2Zyb250ZW5kUm91dGVyLT5oYXNGcm9udGVuZHMoKTsKLSAg
ICBtX2Zyb250ZW5kUm91dGVyLT5jb25uZWN0RnJvbnRlbmQoZnJvbnRlbmRDaGFubmVsKTsKKyAg
ICBtX2Zyb250ZW5kQ2hhbm5lbCA9IGZyb250ZW5kQ2hhbm5lbDsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShmcm9udGVuZENoYW5uZWwpOwogCi0g
ICAgaWYgKCFjb25uZWN0ZWRGaXJzdEZyb250ZW5kKQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
X2FnZW50cy5kaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoZnJvbnRlbmRDaGFubmVsLCAmbV9i
YWNrZW5kRGlzcGF0Y2hlci5nZXQoKSk7CisgICAgbV9hZ2VudHMuZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKGZyb250ZW5kQ2hhbm5lbCwgbV9iYWNrZW5kRGlzcGF0Y2hlci5nZXQoKSk7CiAK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKICAgICBtX2luc3Bl
Y3RvckFnZW50LT5hY3RpdmF0ZUV4dHJhRG9tYWlucyhtX2FnZW50cy5leHRyYURvbWFpbnMoKSk7
CkBAIC0xMjcsMzEgKzEyMywxNiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlcjo6Y29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbgogI2VuZGlmCiB9
CiAKLXZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJv
bnRlbmQoRnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwpCit2b2lkIEpTR2xvYmFsT2Jq
ZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKERpc2Nvbm5lY3RSZWFz
b24gcmVhc29uKQogewotICAgIEFTU0VSVF9BUkcoZnJvbnRlbmRDaGFubmVsLCBmcm9udGVuZENo
YW5uZWwpOwotCi0gICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlz
Y29ubmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJveWVkKTsKLQotICAgIG1fZnJvbnRlbmRSb3V0
ZXItPmRpc2Nvbm5lY3RGcm9udGVuZChmcm9udGVuZENoYW5uZWwpOwotCi0gICAgbV9pc0F1dG9t
YXRpY0luc3BlY3Rpb24gPSBmYWxzZTsKLQotICAgIGJvb2wgZGlzY29ubmVjdGVkTGFzdEZyb250
ZW5kID0gIW1fZnJvbnRlbmRSb3V0ZXItPmhhc0Zyb250ZW5kcygpOwotICAgIGlmICghZGlzY29u
bmVjdGVkTGFzdEZyb250ZW5kKQorICAgIGlmICghbV9mcm9udGVuZENoYW5uZWwpCiAgICAgICAg
IHJldHVybjsKIAotI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQot
ICAgIGlmIChtX2F1Z21lbnRpbmdDbGllbnQpCi0gICAgICAgIG1fYXVnbWVudGluZ0NsaWVudC0+
aW5zcGVjdG9yRGlzY29ubmVjdGVkKCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBKU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RBbGxGcm9udGVuZHMoKQotewotICAgIG1f
YWdlbnRzLndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb246Oklu
c3BlY3RlZFRhcmdldERlc3Ryb3llZCk7CisgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQocmVhc29uKTsKIAotICAgIG1fZnJvbnRlbmRSb3V0ZXItPmRpc2Nvbm5lY3RB
bGxGcm9udGVuZHMoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyLT5jbGVhckZyb250ZW5kKCk7
CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CisgICAgbV9mcm9udGVuZENoYW5u
ZWwgPSBudWxscHRyOwogCiAgICAgbV9pc0F1dG9tYXRpY0luc3BlY3Rpb24gPSBmYWxzZTsKIApA
QCAtMTYzLDExICsxNDQsMTUgQEAgdm9pZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXI6OmRpc2Nvbm5lY3RBbGxGcm9udGVuZHMoKQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVj
dG9yQ29udHJvbGxlcjo6ZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLT5kaXNwYXRjaChtZXNzYWdlKTsK
KyAgICBpZiAobV9iYWNrZW5kRGlzcGF0Y2hlcikKKyAgICAgICAgbV9iYWNrZW5kRGlzcGF0Y2hl
ci0+ZGlzcGF0Y2gobWVzc2FnZSk7CiB9CiAKIHZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyOjpwYXVzZSgpCiB7CisgICAgaWYgKCFtX2Zyb250ZW5kQ2hhbm5lbCkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgRXJyb3JTdHJpbmcgZHVtbXlFcnJvcjsKICAgICBtX2RlYnVnZ2Vy
QWdlbnQtPmVuYWJsZShkdW1teUVycm9yKTsKICAgICBtX2RlYnVnZ2VyQWdlbnQtPnBhdXNlKGR1
bW15RXJyb3IpOwpAQCAtMjc3LDExICsyNjIsMTMgQEAgdm9pZCBKU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmFwcGVuZEV4dHJhQWdlbnQoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3QK
IHsKICAgICBTdHJpbmcgZG9tYWluTmFtZSA9IGFnZW50LT5kb21haW5OYW1lKCk7CiAKLSAgICBh
Z2VudC0+ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKG1fZnJvbnRlbmRSb3V0ZXItPmxlYWtD
aGFubmVsKCksICZtX2JhY2tlbmREaXNwYXRjaGVyLmdldCgpKTsKKyAgICBpZiAobV9mcm9udGVu
ZENoYW5uZWwpCisgICAgICAgIGFnZW50LT5kaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQobV9m
cm9udGVuZENoYW5uZWwsIG1fYmFja2VuZERpc3BhdGNoZXIuZ2V0KCkpOwogCiAgICAgbV9hZ2Vu
dHMuYXBwZW5kRXh0cmFBZ2VudChXVEY6Om1vdmUoYWdlbnQpKTsKIAotICAgIG1faW5zcGVjdG9y
QWdlbnQtPmFjdGl2YXRlRXh0cmFEb21haW4oZG9tYWluTmFtZSk7CisgICAgaWYgKG1fZnJvbnRl
bmRDaGFubmVsKQorICAgICAgICBtX2luc3BlY3RvckFnZW50LT5hY3RpdmF0ZUV4dHJhRG9tYWlu
KGRvbWFpbk5hbWUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlci5oCmluZGV4IGFhZTMyZTNjODk5M2JmNzA3ZTY2YjdmNTIwNTgyMzJhNzNhNzM5NzEuLjZl
M2Y5NGVhYzIzNGVjODk4MzY5OGNlYWM3M2YxNmUwMzYwNGNiY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNTMsNyArNTMsNiBAQCBuYW1lc3BhY2UgSW5zcGVj
dG9yIHsKIAogY2xhc3MgQmFja2VuZERpc3BhdGNoZXI7CiBjbGFzcyBGcm9udGVuZENoYW5uZWw7
Ci1jbGFzcyBGcm9udGVuZFJvdXRlcjsKIGNsYXNzIEluamVjdGVkU2NyaXB0TWFuYWdlcjsKIGNs
YXNzIEluc3BlY3RvckFnZW50OwogY2xhc3MgSW5zcGVjdG9yQ29uc29sZUFnZW50OwpAQCAtNzQs
OSArNzMsNyBAQCBwdWJsaWM6CiAgICAgfkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxl
cigpOwogCiAgICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKiwgYm9vbCBp
c0F1dG9tYXRpY0luc3BlY3Rpb24pOwotICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKEZyb250
ZW5kQ2hhbm5lbCopOwotICAgIHZvaWQgZGlzY29ubmVjdEFsbEZyb250ZW5kcygpOwotCisgICAg
dm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoRGlzY29ubmVjdFJlYXNvbik7CiAgICAgdm9pZCBkaXNw
YXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIGdsb2Jh
bE9iamVjdERlc3Ryb3llZCgpOwpAQCAtMTAyLDcgKzk5LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgQXVnbWVudGFibGVJbnNwZWN0b3JDb250cm9sbGVyQ2xpZW50KiBhdWdtZW50YWJsZUluc3Bl
Y3RvckNvbnRyb2xsZXJDbGllbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2F1Z21lbnRp
bmdDbGllbnQ7IH0gCiAgICAgdmlydHVhbCB2b2lkIHNldEF1Z21lbnRhYmxlSW5zcGVjdG9yQ29u
dHJvbGxlckNsaWVudChBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQqIGNsaWVu
dCkgb3ZlcnJpZGUgeyBtX2F1Z21lbnRpbmdDbGllbnQgPSBjbGllbnQ7IH0KIAotICAgIHZpcnR1
YWwgY29uc3QgRnJvbnRlbmRSb3V0ZXImIGZyb250ZW5kUm91dGVyKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9mcm9udGVuZFJvdXRlci5nZXQoKTsgfQorICAgIHZpcnR1YWwgRnJvbnRlbmRD
aGFubmVsKiBmcm9udGVuZENoYW5uZWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Zyb250
ZW5kQ2hhbm5lbDsgfQogICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRFeHRyYUFnZW50KHN0ZDo6dW5p
cXVlX3B0cjxJbnNwZWN0b3JBZ2VudEJhc2U+KSBvdmVycmlkZTsKICNlbmRpZgogCkBAIC0xMTYs
OCArMTEzLDggQEAgcHJpdmF0ZToKICAgICBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIG1fY29uc29s
ZUFnZW50OwogICAgIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIG1fZGVidWdnZXJBZ2VudDsKICAg
ICBBZ2VudFJlZ2lzdHJ5IG1fYWdlbnRzOwotICAgIFJlZjxGcm9udGVuZFJvdXRlcj4gbV9mcm9u
dGVuZFJvdXRlcjsKLSAgICBSZWY8QmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNo
ZXI7CisgICAgRnJvbnRlbmRDaGFubmVsKiBtX2Zyb250ZW5kQ2hhbm5lbDsKKyAgICBSZWZQdHI8
QmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7CiAgICAgUmVmPFdURjo6U3Rv
cHdhdGNoPiBtX2V4ZWN1dGlvblN0b3B3YXRjaDsKICAgICBib29sIG1faW5jbHVkZU5hdGl2ZUNh
bGxTdGFja1dpdGhFeGNlcHRpb25zOwogICAgIGJvb2wgbV9pc0F1dG9tYXRpY0luc3BlY3Rpb247
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JBZ2VudC5jcHAKaW5kZXggODYyMjRiYTZiYjYzYjQ5NWVkYWEwNjZjMjdmYzQzYWM3
NjgwZTY5MS4uN2IyZjNjZjE4MGM0ZTc4Mjg4ZGQwOWMwOTI0Njk0OTE5YzY3OTg0YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckFnZW50LmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkluc3BlY3RvckFnZW50
LmgiCiAKICNpbmNsdWRlICJJbnNwZWN0b3JFbnZpcm9ubWVudC5oIgotI2luY2x1ZGUgIkluc3Bl
Y3RvckZyb250ZW5kUm91dGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5j
bHVkZSAiU2NyaXB0VmFsdWUuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5k
ZXggMWYxZDliMWJhMDQ3NjczYTZkMDgxNDc5NTUxNTNiMDAwZDMwMThhZC4uODhkODE1MTgyNmRl
NDU3Nzc1MjgwODI2MDk0ZmNlYTZlYWI0MTc2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJDb25zb2xlTWVzc2FnZS5oIgog
I2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgotI2luY2x1ZGUgIkluc3BlY3RvckZy
b250ZW5kUm91dGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAi
U2NyaXB0Q2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IGFjYWMxNzBhNDAzMTUxMDBjMTYzMjc4OTVm
Yjc0OWNmOTBmYzdhOTUuLmMyZjYzY2VjYWM2YjZhODViMzU0YWYwZTA1MjJhNWI5NDM3MmI4MDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAj
aW5jbHVkZSAiQ29udGVudFNlYXJjaFV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkluamVjdGVkU2Ny
aXB0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgiCi0jaW5jbHVkZSAiSW5z
cGVjdG9yRnJvbnRlbmRSb3V0ZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNp
bmNsdWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgogI2luY2x1ZGUgIlNjcmlwdERlYnVnU2VydmVy
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcAppbmRleCBhZGRmZWJjMTkwYjgwZWM3
ZjZmNjQ4MzA2ZjczNzI0OTA2OTNhYWMzLi4zMjEwNGEyZGYyOGE5NjBhM2Q0OTgyZmY4NGFjMTkz
ZDI3MzNiM2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTM3LDcgKzM3
LDYgQEAKICNpbmNsdWRlICJIZWFwSXRlcmF0aW9uU2NvcGUuaCIKICNpbmNsdWRlICJJbmplY3Rl
ZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgotI2luY2x1ZGUg
Ikluc3BlY3RvckZyb250ZW5kUm91dGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgi
CiAjaW5jbHVkZSAiSlNMb2NrLmgiCiAjaW5jbHVkZSAiUGFyc2VyRXJyb3IuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYXVnbWVudGFibGUvQXVnbWVudGFi
bGVJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2F1Z21lbnRhYmxlL0F1Z21lbnRhYmxlSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGIwZDI1
YjBiNjcyYTI5NjdjYWZmNTc4YmY0ZjU4ODhlOWU5NTRmNzkuLjI0NTZhYzU5MTlkOGEwZDU2NTlk
NmY3MWNjMDc1ODhmNmM3NzY4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYXVnbWVudGFibGUvQXVnbWVudGFibGVJbnNwZWN0b3JDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hdWdtZW50YWJsZS9BdWdtZW50YWJs
ZUluc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMjksNyArMjksNyBAQAogI2lmIEVOQUJMRShJTlNQ
RUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
QXVnbWVudGFibGVJbnNwZWN0b3JDb250cm9sbGVyQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7
CiAKQEAgLTQyLDEwICs0MiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBBdWdtZW50YWJsZUlu
c3BlY3RvckNvbnRyb2xsZXJDbGllbnQqIGF1Z21lbnRhYmxlSW5zcGVjdG9yQ29udHJvbGxlckNs
aWVudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXVnbWVudGFibGVJbnNwZWN0
b3JDb250cm9sbGVyQ2xpZW50KEF1Z21lbnRhYmxlSW5zcGVjdG9yQ29udHJvbGxlckNsaWVudCop
ID0gMDsKIAotICAgIHZpcnR1YWwgY29uc3QgRnJvbnRlbmRSb3V0ZXImIGZyb250ZW5kUm91dGVy
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgRnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5u
ZWwoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFwcGVuZEV4dHJhQWdlbnQoc3RkOjp1
bmlxdWVfcHRyPEluc3BlY3RvckFnZW50QmFzZT4pID0gMDsKIAotICAgIGJvb2wgY29ubmVjdGVk
KCkgY29uc3QgeyByZXR1cm4gZnJvbnRlbmRSb3V0ZXIoKS5oYXNGcm9udGVuZHMoKTsgfQorICAg
IGJvb2wgY29ubmVjdGVkKCkgY29uc3QgeyByZXR1cm4gISFmcm9udGVuZENoYW5uZWwoKTsgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3JEZWJ1Z2dhYmxlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3JEZWJ1
Z2dhYmxlLmgKaW5kZXggZGEyNDI5OWU0ZGQyNWYzNmYyMTU2NWI2MTNhNmRjMDZkYWJiMDE3Ny4u
MDY0YjgzYWU4MzgzOGUxYWIzNmU1ZTc1ZjA2ZjZmOTc1MGYwODgwOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yRGVidWdn
YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90
ZUluc3BlY3RvckRlYnVnZ2FibGUuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGhhc0xvY2FsRGVidWdnZXIoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZv
aWQgY29ubmVjdChGcm9udGVuZENoYW5uZWwqLCBib29sIGlzQXV0b21hdGljSW5zcGVjdGlvbikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0KEZyb250ZW5kQ2hhbm5lbCopID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hNZXNzYWdlRnJvbVJlbW90ZUZyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRpY2F0aW5nKGJvb2wpIHsgfSAvLyBEZWZhdWx0IGlz
IHRvIGRvIG5vdGhpbmcuCiAgICAgdmlydHVhbCB2b2lkIHBhdXNlKCkgeyB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9y
RGVidWdnYWJsZUNvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3JlbW90ZS9SZW1vdGVJbnNwZWN0b3JEZWJ1Z2dhYmxlQ29ubmVjdGlvbi5tbQppbmRleCBlZDZj
ZDYwZGNjMDEwMWQwYjhmNmQzNWE4ODQxZjNmZTIxZjQ5MDE0Li5iZWRhYWQ3ZmFlNDBjNThjODk2
NzJlNGQxYTBiMGE1MTFlOTY1YWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3JEZWJ1Z2dhYmxlQ29ubmVjdGlvbi5tbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0
b3JEZWJ1Z2dhYmxlQ29ubmVjdGlvbi5tbQpAQCAtMTkxLDcgKzE5MSw3IEBAIHZvaWQgUmVtb3Rl
SW5zcGVjdG9yRGVidWdnYWJsZUNvbm5lY3Rpb246OmNsb3NlKCkKIAogICAgICAgICAgICAgaWYg
KG1fZGVidWdnYWJsZSkgewogICAgICAgICAgICAgICAgIGlmIChtX2Nvbm5lY3RlZCkKLSAgICAg
ICAgICAgICAgICAgICAgbV9kZWJ1Z2dhYmxlLT5kaXNjb25uZWN0KHRoaXMpOworICAgICAgICAg
ICAgICAgICAgICBtX2RlYnVnZ2FibGUtPmRpc2Nvbm5lY3QoKTsKIAogICAgICAgICAgICAgICAg
IG1fZGVidWdnYWJsZSA9IG51bGxwdHI7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBf
YWx0ZXJuYXRlX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfYWx0ZXJuYXRlX2Jh
Y2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkKaW5kZXggMzc1Y2UwNWNhNDRhYjRlNDA5NTU4MzU0
NjczNzAzMzIyZDU5MWFiNC4uZDRhOGQ1YWZlZWQ0NDUyZWU5ZmJmNzhlYTUyYjk0MzNmYWIyMzY3
OCAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2Nv
ZGVnZW4vZ2VuZXJhdGVfY3BwX2FsdGVybmF0ZV9iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dl
bmVyYXRlX2NwcF9hbHRlcm5hdGVfYmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weQpAQCAtNDcs
NyArNDcsNiBAQCBjbGFzcyBDcHBBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlckhlYWRlckdlbmVy
YXRvcihHZW5lcmF0b3IpOgogICAgIGRlZiBnZW5lcmF0ZV9vdXRwdXQoc2VsZik6CiAgICAgICAg
IGhlYWRlcnMgPSBbCiAgICAgICAgICAgICAnIkluc3BlY3RvclByb3RvY29sVHlwZXMuaCInLAot
ICAgICAgICAgICAgJzxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4nLAogICAg
ICAgICAgICAgJzxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPics
CiAgICAgICAgIF0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2JhY2tlbmRfZGlzcGF0Y2hlcl9pbXBsZW1l
bnRhdGlvbi5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2Rl
Z2VuL2dlbmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkKaW5k
ZXggYjM2YzBiMTNjMDhkOTExMTI5NDY0N2I2Yjg2ZGJkYmUyOGJmZDczNS4uMTI1MTE0OTMzY2U5
Mjg4MTViNDJkNDUyZjUyM2VhZWNkMzA3YTExZSAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2JhY2tlbmRfZGlz
cGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfYmFja2VuZF9kaXNwYXRjaGVyX2lt
cGxlbWVudGF0aW9uLnB5CkBAIC01MCw3ICs1MCw2IEBAIGNsYXNzIENwcEJhY2tlbmREaXNwYXRj
aGVySW1wbGVtZW50YXRpb25HZW5lcmF0b3IoR2VuZXJhdG9yKToKICAgICBkZWYgZ2VuZXJhdGVf
b3V0cHV0KHNlbGYpOgogICAgICAgICBzZWNvbmRhcnlfaGVhZGVycyA9IFsKICAgICAgICAgICAg
ICc8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oPicsCi0gICAgICAgICAgICAn
PGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPicsCiAgICAgICAgICAgICAnPGlu
c3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaD4nLAogICAgICAgICAgICAgJzx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4nLAogICAgICAgICAgICAgJzx3dGYvdGV4dC9DU3RyaW5nLmg+J10KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVy
YXRlX29iamNfZnJvbnRlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfZnJv
bnRlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weQppbmRleCA5NDAxOGU1OWY2ZmFmNjAy
MDdiYWVjZDY1YmI1NTNhNTJiMGZlNTdkLi5mYjJkZTRmNjFmM2ZjMDFkN2E0NjA4MDhhOTg1NWM1
YWRhMmY5MDAwIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmpjX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50
YXRpb24ucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2Nv
ZGVnZW4vZ2VuZXJhdGVfb2JqY19mcm9udGVuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5
CkBAIC05OCw3ICs5OCw5IEBAIGNsYXNzIE9iakNGcm9udGVuZERpc3BhdGNoZXJJbXBsZW1lbnRh
dGlvbkdlbmVyYXRvcihHZW5lcmF0b3IpOgogICAgICAgICBsaW5lcyA9IFtdCiAgICAgICAgIGxp
bmVzLmFwcGVuZChzZWxmLl9nZW5lcmF0ZV9ldmVudF9zaWduYXR1cmUoZG9tYWluLCBldmVudCkp
CiAgICAgICAgIGxpbmVzLmFwcGVuZCgneycpCi0gICAgICAgIGxpbmVzLmFwcGVuZCgnICAgIGNv
bnN0IEZyb250ZW5kUm91dGVyJiByb3V0ZXIgPSBfY29udHJvbGxlci0+ZnJvbnRlbmRSb3V0ZXIo
KTsnKQorICAgICAgICBsaW5lcy5hcHBlbmQoJyAgICBGcm9udGVuZENoYW5uZWwqIGZyb250ZW5k
Q2hhbm5lbCA9IF9jb250cm9sbGVyLT5mcm9udGVuZENoYW5uZWwoKTsnKQorICAgICAgICBsaW5l
cy5hcHBlbmQoJyAgICBpZiAoIWZyb250ZW5kQ2hhbm5lbCknKQorICAgICAgICBsaW5lcy5hcHBl
bmQoJyAgICAgICAgcmV0dXJuOycpCiAgICAgICAgIGxpbmVzLmFwcGVuZCgnJykKIAogICAgICAg
ICByZXF1aXJlZF9wb2ludGVyX3BhcmFtZXRlcnMgPSBmaWx0ZXIobGFtYmRhIHBhcmFtZXRlcjog
bm90IHBhcmFtZXRlci5pc19vcHRpb25hbCBhbmQgT2JqQ0dlbmVyYXRvci5pc190eXBlX29iamNf
cG9pbnRlcl90eXBlKHBhcmFtZXRlci50eXBlKSwgZXZlbnQuZXZlbnRfcGFyYW1ldGVycykKQEAg
LTEyNCw3ICsxMjYsNyBAQCBjbGFzcyBPYmpDRnJvbnRlbmREaXNwYXRjaGVySW1wbGVtZW50YXRp
b25HZW5lcmF0b3IoR2VuZXJhdG9yKToKICAgICAgICAgbGluZXMuYXBwZW5kKCcgICAganNvbk1l
c3NhZ2UtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoIm1ldGhvZCIpLCBBU0NJSUxpdGVyYWwoIiVz
LiVzIikpOycgJSAoZG9tYWluLmRvbWFpbl9uYW1lLCBldmVudC5ldmVudF9uYW1lKSkKICAgICAg
ICAgaWYgZXZlbnQuZXZlbnRfcGFyYW1ldGVyczoKICAgICAgICAgICAgIGxpbmVzLmV4dGVuZChz
ZWxmLl9nZW5lcmF0ZV9ldmVudF9vdXRfcGFyYW1ldGVycyhkb21haW4sIGV2ZW50KSkKLSAgICAg
ICAgbGluZXMuYXBwZW5kKCcgICAgcm91dGVyLnNlbmRFdmVudChqc29uTWVzc2FnZS0+dG9KU09O
U3RyaW5nKCkpOycpCisgICAgICAgIGxpbmVzLmFwcGVuZCgnICAgIGZyb250ZW5kQ2hhbm5lbC0+
c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGpzb25NZXNzYWdlLT50b0pTT05TdHJpbmcoKSk7JykKICAg
ICAgICAgbGluZXMuYXBwZW5kKCd9JykKICAgICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3REZWJ1Z2dhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0RGVidWdnYWJsZS5jcHAKaW5kZXggMmFlYTIwMzVmMzFhZmVmOWU3YTFlNjEzZTVlYjQ3
MmFiNGU1MDZhOS4uZWVjYzViYTAzMGFiNTQwY2E1ZTQzZGRkNWFhOGFkMjJjMzczNjkxZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1
Z2dhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdERlYnVnZ2FibGUuY3BwCkBAIC01NiwxMSArNTYsMTEgQEAgdm9pZCBKU0dsb2JhbE9iamVj
dERlYnVnZ2FibGU6OmNvbm5lY3QoRnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwsIGJv
b2wgYXUKICAgICBtX2dsb2JhbE9iamVjdC5pbnNwZWN0b3JDb250cm9sbGVyKCkuY29ubmVjdEZy
b250ZW5kKGZyb250ZW5kQ2hhbm5lbCwgYXV0b21hdGljSW5zcGVjdGlvbik7CiB9CiAKLXZvaWQg
SlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KEZyb250ZW5kQ2hhbm5lbCogZnJv
bnRlbmRDaGFubmVsKQordm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3Qo
KQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoJm1fZ2xvYmFsT2JqZWN0LnZtKCkpOwogCi0g
ICAgbV9nbG9iYWxPYmplY3QuaW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVu
ZChmcm9udGVuZENoYW5uZWwpOworICAgIG1fZ2xvYmFsT2JqZWN0Lmluc3BlY3RvckNvbnRyb2xs
ZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJv
eWVkKTsKIH0KIAogdm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OnBhdXNlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdn
YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1
Z2dhYmxlLmgKaW5kZXggMDNmZDE3ZDBmZjBhNDY2Njk2NjU5M2EyMjZjNTA0ZjNlMTZhMmFhYS4u
NjBjZTU4YTQ0Yzc5MzU5YTc3MzlhOTA3OWI5OTMwZGQxMmFiYTM5NCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxl
LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYXNMb2NhbERl
YnVnZ2VyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCBjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiwgYm9vbCBhdXRvbWF0aWNJ
bnNwZWN0aW9uKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdChJbnNwZWN0
b3I6OkZyb250ZW5kQ2hhbm5lbCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25u
ZWN0KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1v
dGVGcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBwYXVzZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJv
dXRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YTliNmE3ZmM0N2RkMTY5ZTI2
YTQ2NWNmM2I3NGUzYTQ0M2E2Mjk4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZFJvdXRlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0j
aWZuZGVmIFdlYkNvcmVfRldEX0luc3BlY3RvckZyb250ZW5kUm91dGVyX2gKLSNkZWZpbmUgV2Vi
Q29yZV9GV0RfSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXJfaAotI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IGM0NWFjMWZmNWY0NmY4ZGFh
YWIyNmY4N2I1N2FmNDc5OTNmNjZjNmQuLjA2NmMzYWVlZTU2NDYzZmIzMTM1ZjE5Njk3YjViM2Rj
OTdhMmFlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvagpAQCAtMjAzMzYsNyArMjAzMzYsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cRm9yd2FyZGluZ0hlYWRlcnNcaW5zcGVjdG9yXEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xpbnNw
ZWN0b3JcSW5zcGVjdG9yRW52aXJvbm1lbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXEZvcndhcmRpbmdIZWFkZXJzXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwu
aCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXGluc3Bl
Y3RvclxJbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNcaW5zcGVjdG9yXEluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVycy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNc
aW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXGluc3BlY3RvclxJbnNwZWN0b3JQcm90
b2NvbE9iamVjdHMuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGll
bnQuaAppbmRleCA2ZDM5YTRjOTJhZGNmNTI4NmYyNDgxNTJlYzFjNTI2OTNiYWRkZDg4Li5lZTdk
OGZhYzQ2NWQxZTVjZWRlMjBlMmMxOGVkZTVkNWY4MTA2MTFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCkBAIC0yNywxNCArMjcsMTEgQEAKICNpZm5kZWYg
SW5zcGVjdG9yQ2xpZW50X2gKICNkZWZpbmUgSW5zcGVjdG9yQ2xpZW50X2gKIAorI2luY2x1ZGUg
Ikluc3BlY3RvckZvcndhcmRpbmcuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAotbmFtZXNwYWNl
IEluc3BlY3RvciB7Ci1jbGFzcyBGcm9udGVuZENoYW5uZWw7Ci19Ci0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRmxvYXRSZWN0OwpAQCAtNDgsNyArNDUsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgaW5zcGVjdG9yRGVzdHJveWVkKCkgPSAwOwogCi0gICAgdmlydHVhbCBJ
bnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogb3Blbkluc3BlY3RvckZyb250ZW5kKEluc3BlY3Rv
ckNvbnRyb2xsZXIqKSA9IDA7CisgICAgdmlydHVhbCBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwq
IG9wZW5JbnNwZWN0b3JGcm9udGVuZChJbnNwZWN0b3JDb250cm9sbGVyKikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBjbG9zZUluc3BlY3RvckZyb250ZW5kKCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBicmluZ0Zyb250ZW5kVG9Gcm9udCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzaXpl
TWFpbkZyYW1lKEZyYW1lKikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggOGE3ZGYyMGFjMDRjN2UwMmZiOWFjY2I5ODk3OWVk
MzU2NDE1MGY3ZC4uMjc3ZjE2YjZmNDc1MDU3YjE3NDYzN2IzNjdkM2NhNWEwNWE4M2NiYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApA
QCAtNjgsNyArNjgsNiBAQAogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlci5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
cnMuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5o
PgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1
ZGUgPGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaD4KICNpbmNsdWRlIDxwcm9maWxl
ci9MZWdhY3lQcm9maWxlci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CkBAIC04Niw4
ICs4NSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3Bl
Y3RvckNvbnRyb2xsZXIoUGFnZSYgcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGll
bnQpCiAgICAgOiBtX2luc3RydW1lbnRpbmdBZ2VudHMoSW5zdHJ1bWVudGluZ0FnZW50czo6Y3Jl
YXRlKCp0aGlzKSkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKHN0ZDo6bWFrZV91bmlx
dWU8V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyPigqdGhpcywgV2ViSW5qZWN0ZWRTY3JpcHRIb3N0
OjpjcmVhdGUoKSkpCi0gICAgLCBtX2Zyb250ZW5kUm91dGVyKEZyb250ZW5kUm91dGVyOjpjcmVh
dGUoKSkKLSAgICAsIG1fYmFja2VuZERpc3BhdGNoZXIoQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0
ZShtX2Zyb250ZW5kUm91dGVyLmNvcHlSZWYoKSkpCiAgICAgLCBtX292ZXJsYXkoc3RkOjptYWtl
X3VuaXF1ZTxJbnNwZWN0b3JPdmVybGF5PihwYWdlLCBpbnNwZWN0b3JDbGllbnQpKQogICAgICwg
bV9leGVjdXRpb25TdG9wd2F0Y2goU3RvcHdhdGNoOjpjcmVhdGUoKSkKICAgICAsIG1fcGFnZShw
YWdlKQpAQCAtMTgwLDggKzE3Nyw3IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6On5JbnNwZWN0b3JD
b250cm9sbGVyKCkKIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjppbnNwZWN0ZWRQYWdlRGVz
dHJveWVkKCkKIHsKLSAgICBkaXNjb25uZWN0QWxsRnJvbnRlbmRzKCk7Ci0KKyAgICBkaXNjb25u
ZWN0RnJvbnRlbmQoRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdGVkVGFyZ2V0RGVzdHJveWVkKTsK
ICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+ZGlzY29ubmVjdCgpOwogICAgIG1faW5zcGVj
dG9yQ2xpZW50LT5pbnNwZWN0b3JEZXN0cm95ZWQoKTsKICAgICBtX2luc3BlY3RvckNsaWVudCA9
IG51bGxwdHI7CkBAIC0xOTQsMTIgKzE5MCwxMiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50KEluc3BlY3RvckZyb250ZW5kQ2xpZW50KiBpbgog
CiBib29sIEluc3BlY3RvckNvbnRyb2xsZXI6Omhhc0xvY2FsRnJvbnRlbmQoKSBjb25zdAogewot
ICAgIHJldHVybiBtX2Zyb250ZW5kUm91dGVyLT5oYXNMb2NhbEZyb250ZW5kKCk7CisgICAgcmV0
dXJuIG1fZnJvbnRlbmRDaGFubmVsICYmIG1fZnJvbnRlbmRDaGFubmVsLT5jb25uZWN0aW9uVHlw
ZSgpID09IEZyb250ZW5kQ2hhbm5lbDo6Q29ubmVjdGlvblR5cGU6OkxvY2FsOwogfQogCiBib29s
IEluc3BlY3RvckNvbnRyb2xsZXI6Omhhc1JlbW90ZUZyb250ZW5kKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gbV9mcm9udGVuZFJvdXRlci0+aGFzUmVtb3RlRnJvbnRlbmQoKTsKKyAgICByZXR1cm4g
bV9mcm9udGVuZENoYW5uZWwgJiYgbV9mcm9udGVuZENoYW5uZWwtPmNvbm5lY3Rpb25UeXBlKCkg
PT0gRnJvbnRlbmRDaGFubmVsOjpDb25uZWN0aW9uVHlwZTo6UmVtb3RlOwogfQogCiBib29sIElu
c3BlY3RvckNvbnRyb2xsZXI6Omhhc0luc3BlY3RvckZyb250ZW5kQ2xpZW50KCkgY29uc3QKQEAg
LTIyMyw5NiArMjE5LDc0IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkQ2xlYXJXaW5k
b3dPYmplY3RJbldvcmxkKEZyYW1lJiBmcmFtZSwgRE9NV3JhcHBlcldvCiAKIHZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVs
KiBmcm9udGVuZENoYW5uZWwsIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uKQogewotICAgIEFT
U0VSVF9BUkcoZnJvbnRlbmRDaGFubmVsLCBmcm9udGVuZENoYW5uZWwpOworICAgIEFTU0VSVChm
cm9udGVuZENoYW5uZWwpOwogICAgIEFTU0VSVChtX2luc3BlY3RvckNsaWVudCk7CisgICAgQVNT
RVJUKCFtX2Zyb250ZW5kQ2hhbm5lbCk7CisgICAgQVNTRVJUKCFtX2JhY2tlbmREaXNwYXRjaGVy
KTsKIAotICAgIGJvb2wgY29ubmVjdGVkRmlyc3RGcm9udGVuZCA9ICFtX2Zyb250ZW5kUm91dGVy
LT5oYXNGcm9udGVuZHMoKTsKICAgICBtX2lzQXV0b21hdGljSW5zcGVjdGlvbiA9IGlzQXV0b21h
dGljSW5zcGVjdGlvbjsKIAotICAgIG1fZnJvbnRlbmRSb3V0ZXItPmNvbm5lY3RGcm9udGVuZChm
cm9udGVuZENoYW5uZWwpOworICAgIG1fZnJvbnRlbmRDaGFubmVsID0gZnJvbnRlbmRDaGFubmVs
OworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGZy
b250ZW5kQ2hhbm5lbCk7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyb250ZW5k
Q3JlYXRlZCgpOworICAgIG1fYWdlbnRzLmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChmcm9u
dGVuZENoYW5uZWwsIG1fYmFja2VuZERpc3BhdGNoZXIuZ2V0KCkpOwogCi0gICAgaWYgKGNvbm5l
Y3RlZEZpcnN0RnJvbnRlbmQpIHsKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpy
ZWdpc3Rlckluc3RydW1lbnRpbmdBZ2VudHMobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpKTsK
LSAgICAgICAgbV9hZ2VudHMuZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKGZyb250ZW5kQ2hh
bm5lbCwgJm1fYmFja2VuZERpc3BhdGNoZXIuZ2V0KCkpOwotICAgIH0KKyAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OnJlZ2lzdGVySW5zdHJ1bWVudGluZ0FnZW50cyhtX2luc3RydW1lbnRp
bmdBZ2VudHMuZ2V0KCkpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJvbnRlbmRD
cmVhdGVkKCk7CiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKLSAgICBpZiAoIW1fZnJv
bnRlbmRSb3V0ZXItPmhhc1JlbW90ZUZyb250ZW5kKCkpCisgICAgaWYgKCFoYXNSZW1vdGVGcm9u
dGVuZCgpKQogICAgICAgICBtX3BhZ2UucmVtb3RlSW5zcGVjdG9ySW5mb3JtYXRpb25EaWRDaGFu
Z2UoKTsKICNlbmRpZgogfQogCi12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RG
cm9udGVuZChGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCkKK3ZvaWQgSW5zcGVjdG9y
Q29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKERpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQog
ewotICAgIC8vIFRoZSBsb2NhbCBmcm9udGVuZCBjbGllbnQgc2hvdWxkIGJlIGRpc2Nvbm5lY3Rl
ZCBmaXJzdCBzbyBpdCBzdG9wcyBzZW5kaW5nIG1lc3NhZ2VzLgotICAgIEFTU0VSVCghbV9mcm9u
dGVuZFJvdXRlci0+aGFzTG9jYWxGcm9udGVuZCgpIHx8ICFtX2luc3BlY3RvckZyb250ZW5kQ2xp
ZW50KTsKLQotICAgIG1fZnJvbnRlbmRSb3V0ZXItPmRpc2Nvbm5lY3RGcm9udGVuZChmcm9udGVu
ZENoYW5uZWwpOwotICAgIG1faXNBdXRvbWF0aWNJbnNwZWN0aW9uID0gZmFsc2U7Ci0KLSAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyb250ZW5kRGVsZXRlZCgpOwotCi0gICAgYm9vbCBk
aXNjb25uZWN0ZWRMYXN0RnJvbnRlbmQgPSAhbV9mcm9udGVuZFJvdXRlci0+aGFzRnJvbnRlbmRz
KCk7Ci0gICAgaWYgKGRpc2Nvbm5lY3RlZExhc3RGcm9udGVuZCkgewotICAgICAgICAvLyBSZWxl
YXNlIG92ZXJsYXkgcGFnZSByZXNvdXJjZXMuCi0gICAgICAgIG1fb3ZlcmxheS0+ZnJlZVBhZ2Uo
KTsKLSAgICAgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29u
bmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJveWVkKTsKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp1bnJlZ2lzdGVySW5zdHJ1bWVudGluZ0FnZW50cyhtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCkpOwotICAgIH0KKyAgICBpZiAoIW1fZnJvbnRlbmRDaGFubmVsKQorICAgICAg
ICByZXR1cm47CiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKLSAgICBpZiAoIW1fZnJv
bnRlbmRSb3V0ZXItPmhhc0Zyb250ZW5kcygpKQorICAgIGlmICghaGFzUmVtb3RlRnJvbnRlbmQo
KSkKICAgICAgICAgbV9wYWdlLnJlbW90ZUluc3BlY3RvckluZm9ybWF0aW9uRGlkQ2hhbmdlKCk7
CiAjZW5kaWYKLX0KIAotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0QWxsRnJv
bnRlbmRzKCkKLXsKLSAgICAvLyBUaGUgbG9jYWwgZnJvbnRlbmQgY2xpZW50IHNob3VsZCBiZSBk
aXNjb25uZWN0ZWQgZmlyc3Qgc28gaXQgc3RvcHMgc2VuZGluZyBtZXNzYWdlcy4KLSAgICBBU1NF
UlQoIW1fZnJvbnRlbmRSb3V0ZXItPmhhc0xvY2FsRnJvbnRlbmQoKSB8fCAhbV9pbnNwZWN0b3JG
cm9udGVuZENsaWVudCk7CisgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQocmVhc29uKTsKIAotICAgIG1fYWdlbnRzLndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KERpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RlZFRhcmdldERlc3Ryb3llZCk7CisgICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIg
PSBudWxscHRyOworICAgIG1fZnJvbnRlbmRDaGFubmVsID0gbnVsbHB0cjsKIAotICAgIG1fZnJv
bnRlbmRSb3V0ZXItPmRpc2Nvbm5lY3RBbGxGcm9udGVuZHMoKTsKICAgICBtX2lzQXV0b21hdGlj
SW5zcGVjdGlvbiA9IGZhbHNlOwogCiAgICAgLy8gUmVsZWFzZSBvdmVybGF5IHBhZ2UgcmVzb3Vy
Y2VzLgogICAgIG1fb3ZlcmxheS0+ZnJlZVBhZ2UoKTsKLQotICAgIHdoaWxlIChJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246Omhhc0Zyb250ZW5kcygpKQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmZyb250ZW5kRGVsZXRlZCgpOwotCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpmcm9udGVuZERlbGV0ZWQoKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnVu
cmVnaXN0ZXJJbnN0cnVtZW50aW5nQWdlbnRzKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSk7
Ci0gICAgCi0jaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCi0gICAgbV9wYWdlLnJlbW90ZUlu
c3BlY3RvckluZm9ybWF0aW9uRGlkQ2hhbmdlKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0
b3JDb250cm9sbGVyOjpzaG93KCkKIHsKLSAgICBBU1NFUlQoIW1fZnJvbnRlbmRSb3V0ZXItPmhh
c1JlbW90ZUZyb250ZW5kKCkpOwotCi0gICAgLy8gVGhlIGxvY2FsIGZyb250ZW5kIGNsaWVudCBz
aG91bGQgYmUgZGlzY29ubmVjdGVkIGlmIHRoZXJlJ3Mgbm8gbG9jYWwgZnJvbnRlbmQuCi0gICAg
QVNTRVJUKG1fZnJvbnRlbmRSb3V0ZXItPmhhc0xvY2FsRnJvbnRlbmQoKSB8fCAhbV9pbnNwZWN0
b3JGcm9udGVuZENsaWVudCk7CisgICAgQVNTRVJUKCFoYXNSZW1vdGVGcm9udGVuZCgpKTsKIAog
ICAgIGlmICghZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9mcm9udGVu
ZFJvdXRlci0+aGFzTG9jYWxGcm9udGVuZCgpKQorICAgIGlmIChtX2Zyb250ZW5kQ2hhbm5lbCkK
ICAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQtPmJyaW5nRnJvbnRlbmRUb0Zyb250KCk7Ci0gICAg
ZWxzZSBpZiAoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCA9IG1f
aW5zcGVjdG9yQ2xpZW50LT5vcGVuSW5zcGVjdG9yRnJvbnRlbmQodGhpcykpCi0gICAgICAgIGNv
bm5lY3RGcm9udGVuZChmcm9udGVuZENoYW5uZWwpOworICAgIGVsc2UgeworICAgICAgICBpZiAo
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCA9IG1faW5zcGVjdG9y
Q2xpZW50LT5vcGVuSW5zcGVjdG9yRnJvbnRlbmQodGhpcykpIHsKKyAgICAgICAgICAgIGJvb2wg
aXNBdXRvbWF0aWNJbnNwZWN0aW9uID0gZmFsc2U7CisgICAgICAgICAgICBjb25uZWN0RnJvbnRl
bmQoZnJvbnRlbmRDaGFubmVsLCBpc0F1dG9tYXRpY0luc3BlY3Rpb24pOworICAgICAgICB9Cisg
ICAgfQogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNsb3NlKCkKIHsKLSAgICBpZiAo
bV9mcm9udGVuZFJvdXRlci0+aGFzTG9jYWxGcm9udGVuZCgpKQotICAgICAgICBtX2luc3BlY3Rv
ckNsaWVudC0+Y2xvc2VJbnNwZWN0b3JGcm9udGVuZCgpOwotCi0gICAgQVNTRVJUKCFtX2Zyb250
ZW5kUm91dGVyLT5oYXNMb2NhbEZyb250ZW5kKCkpOworICAgIGlmICghbV9mcm9udGVuZENoYW5u
ZWwpCisgICAgICAgIHJldHVybjsKKyAgICBkaXNjb25uZWN0RnJvbnRlbmQoRGlzY29ubmVjdFJl
YXNvbjo6SW5zcGVjdG9yRGVzdHJveWVkKTsKKyAgICBtX2luc3BlY3RvckNsaWVudC0+Y2xvc2VJ
bnNwZWN0b3JGcm9udGVuZCgpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldFBy
b2Nlc3NJZChsb25nIHByb2Nlc3NJZCkKQEAgLTM2Myw3ICszMzcsOCBAQCBQYWdlJiBJbnNwZWN0
b3JDb250cm9sbGVyOjppbnNwZWN0ZWRQYWdlKCkgY29uc3QKIAogdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpkaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQogewotICAgIG1fYmFja2VuZERpc3BhdGNoZXItPmRpc3BhdGNoKG1lc3NhZ2UpOworICAgIGlm
IChtX2JhY2tlbmREaXNwYXRjaGVyKQorICAgICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLT5kaXNw
YXRjaChtZXNzYWdlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpoaWRlSGlnaGxp
Z2h0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5o
CmluZGV4IDZlMTVjZWRkN2I1NzgyZjM5OGFmMzQ1NDM2Y2M2MTE4NmU3Nzc5ODQuLmRmYjdlODUw
OWFjNmM3Yjk3MDRmOWI1NGEzMmEwNjg5NGFhMWY4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNDUsNyArNDUsNiBAQAogbmFtZXNw
YWNlIEluc3BlY3RvciB7CiBjbGFzcyBCYWNrZW5kRGlzcGF0Y2hlcjsKIGNsYXNzIEZyb250ZW5k
Q2hhbm5lbDsKLWNsYXNzIEZyb250ZW5kUm91dGVyOwogY2xhc3MgSW5zcGVjdG9yQWdlbnQ7CiBj
bGFzcyBJbnNwZWN0b3JPYmplY3Q7CiAKQEAgLTk5LDkgKzk4LDggQEAgcHVibGljOgogICAgIGJv
b2wgaGFzTG9jYWxGcm9udGVuZCgpIGNvbnN0OwogICAgIGJvb2wgaGFzUmVtb3RlRnJvbnRlbmQo
KSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29ubmVjdEZyb250ZW5kKEluc3Bl
Y3Rvcjo6RnJvbnRlbmRDaGFubmVsKiwgYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24gPSBmYWxz
ZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9y
OjpGcm9udGVuZENoYW5uZWwqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc2Nvbm5lY3RB
bGxGcm9udGVuZHMoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbm5lY3RGcm9udGVuZChJ
bnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24pOwogICAgIHZvaWQgc2V0UHJvY2Vzc0lkKGxvbmcpOwogCiAgICAgdm9p
ZCBpbnNwZWN0KE5vZGUqKTsKQEAgLTE0Miw4ICsxNDAsOCBAQCBwcml2YXRlOgogCiAgICAgUmVm
PEluc3RydW1lbnRpbmdBZ2VudHM+IG1faW5zdHJ1bWVudGluZ0FnZW50czsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyPiBtX2luamVjdGVkU2NyaXB0TWFuYWdl
cjsKLSAgICBSZWY8SW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlcj4gbV9mcm9udGVuZFJvdXRlcjsK
LSAgICBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hl
cjsKKyAgICBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlz
cGF0Y2hlcjsKKyAgICBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogbV9mcm9udGVuZENoYW5u
ZWwgeyBudWxscHRyIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvck92ZXJsYXk+IG1f
b3ZlcmxheTsKICAgICBSZWY8V1RGOjpTdG9wd2F0Y2g+IG1fZXhlY3V0aW9uU3RvcHdhdGNoOwog
ICAgIEluc3BlY3Rvcjo6QWdlbnRSZWdpc3RyeSBtX2FnZW50czsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAppbmRleCBjN2Y2YTZl
MzQyMzA5YjVjYTFmNTE3MzQ0MmZhNTFiNGZlMTE0YzI1Li5jYzQ3M2Q3NjE3YjdiOTlmYjNlZjEw
YTI5YWEzZWNmOWE1ZDA2NzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCkBAIC00NCw3ICs0NCw2IEBACiAjaW5jbHVkZSAi
U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiU1FMVmFsdWUuaCIKICNp
bmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRSb3V0ZXIuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCBhM2VhYmI3YjExNDg3MDVmZGY0
Y2UyZjFlZTRmOGQ4Y2ExMGNkYzUzLi5lZjNiMTg1YzM2MWQ4NzI3NGZjMDRjZGViNDU1ZTEyYjRk
ZWFhNDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bmRleGVkREJBZ2VudC5jcHAKQEAgLTY0LDcgKzY0LDYgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMu
aD4KLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KICNpbmNs
dWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4IDE0MzJlZjBkOTNl
MzJjNjllNTcwNWJkNGVmZjNkNDBkZDQxZjRhYzMuLjg1NzkxOTk5ZmMzYjA3MTU2MzRkMjZiZmNl
YWM4MDM4NDhkMTNkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTYyLDcgKzYyLDYgQEAKICNpbmNsdWRlICJVUkwu
aCIKICNpbmNsdWRlICJXZWJTb2NrZXRGcmFtZS5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9JZGVu
dGlmaWVyc0ZhY3RvcnkuaD4KLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRS
b3V0ZXIuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5jbHVk
ZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3Jp
cHRDYWxsU3RhY2tGYWN0b3J5Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggOGEyMmQ1YzZmNzM4MWUyMmQ0
N2NkNzc4MjI3MzM1NzJhMDY3Mjk2NS4uMjJiMDg3ZTE4NWU1Y2NhNTJkZGI4YzRmMzU4NDMxNmJh
NGRlZDJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNDgsNyArNDgsNiBAQAogI2luY2x1ZGUgIldvcmtl
clRocmVhZC5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
ci5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+
Ci0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0b3B3YXRjaC5oPgogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwpAQCAtODEs
OCArODAsNiBAQCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpXb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbAogICAgICwgbV9pbnN0cnVtZW50aW5n
QWdlbnRzKEluc3RydW1lbnRpbmdBZ2VudHM6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX2luamVj
dGVkU2NyaXB0TWFuYWdlcihzdGQ6Om1ha2VfdW5pcXVlPFdlYkluamVjdGVkU2NyaXB0TWFuYWdl
cj4oKnRoaXMsIFdlYkluamVjdGVkU2NyaXB0SG9zdDo6Y3JlYXRlKCkpKQogICAgICwgbV9leGVj
dXRpb25TdG9wd2F0Y2goU3RvcHdhdGNoOjpjcmVhdGUoKSkKLSAgICAsIG1fZnJvbnRlbmRSb3V0
ZXIoRnJvbnRlbmRSb3V0ZXI6OmNyZWF0ZSgpKQotICAgICwgbV9iYWNrZW5kRGlzcGF0Y2hlcihC
YWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKG1fZnJvbnRlbmRSb3V0ZXIuY29weVJlZigpKSkKIHsK
ICAgICBhdXRvIHJ1bnRpbWVBZ2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyUnVudGltZUFn
ZW50PigqbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIsICZ3b3JrZXJHbG9iYWxTY29wZSk7CiAgICAg
bV9ydW50aW1lQWdlbnQgPSBydW50aW1lQWdlbnQuZ2V0KCk7CkBAIC0xMTcsMjcgKzExNCwyNyBA
QCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjp+V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigp
CiAKIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKCkKIHsK
LSAgICBBU1NFUlQoIW1fZnJvbnRlbmRSb3V0ZXItPmhhc0Zyb250ZW5kcygpKTsKLSAgICBBU1NF
UlQoIW1fZm9yd2FyZGluZ0NoYW5uZWwpOwotCi0gICAgbV9mb3J3YXJkaW5nQ2hhbm5lbCA9IHN0
ZDo6bWFrZV91bmlxdWU8UGFnZUluc3BlY3RvclByb3h5PihtX3dvcmtlckdsb2JhbFNjb3BlKTsK
LSAgICBtX2Zyb250ZW5kUm91dGVyLT5jb25uZWN0RnJvbnRlbmQobV9mb3J3YXJkaW5nQ2hhbm5l
bC5nZXQoKSk7Ci0gICAgbV9hZ2VudHMuZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKG1fZm9y
d2FyZGluZ0NoYW5uZWwuZ2V0KCksICZtX2JhY2tlbmREaXNwYXRjaGVyLmdldCgpKTsKKyAgICBB
U1NFUlQoIW1fZnJvbnRlbmRDaGFubmVsKTsKKyAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IHN0ZDo6
bWFrZV91bmlxdWU8UGFnZUluc3BlY3RvclByb3h5PihtX3dvcmtlckdsb2JhbFNjb3BlKTsKKyAg
ICBtX2JhY2tlbmREaXNwYXRjaGVyID0gQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShtX2Zyb250
ZW5kQ2hhbm5lbC5nZXQoKSk7CisgICAgbV9hZ2VudHMuZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNr
ZW5kKG1fZnJvbnRlbmRDaGFubmVsLmdldCgpLCBtX2JhY2tlbmREaXNwYXRjaGVyLmdldCgpKTsK
IH0KIAogdm9pZCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQo
SW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKLSAgICBBU1NFUlQobV9mcm9u
dGVuZFJvdXRlci0+aGFzRnJvbnRlbmRzKCkpOwotICAgIEFTU0VSVChtX2ZvcndhcmRpbmdDaGFu
bmVsKTsKKyAgICBpZiAoIW1fZnJvbnRlbmRDaGFubmVsKQorICAgICAgICByZXR1cm47CiAKICAg
ICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwotICAgIG1f
ZnJvbnRlbmRSb3V0ZXItPmRpc2Nvbm5lY3RGcm9udGVuZChtX2ZvcndhcmRpbmdDaGFubmVsLmdl
dCgpKTsKLSAgICBtX2ZvcndhcmRpbmdDaGFubmVsID0gbnVsbHB0cjsKKyAgICBtX2JhY2tlbmRE
aXNwYXRjaGVyLT5jbGVhckZyb250ZW5kKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7CisgICAgbV9mcm9udGVuZENoYW5uZWwgPSBudWxscHRyOwogfQogCiB2b2lkIFdvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXI6OmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+ZGlzcGF0Y2gobWVz
c2FnZSk7CisgICAgaWYgKG1fYmFja2VuZERpc3BhdGNoZXIpCisgICAgICAgIG1fYmFja2VuZERp
c3BhdGNoZXItPmRpc3BhdGNoKG1lc3NhZ2UpOwogfQogCiB2b2lkIFdvcmtlckluc3BlY3RvckNv
bnRyb2xsZXI6OnJlc3VtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCA1YmRlMWUxYjc5NjdlNWI2Y2VlNWFhOWZh
Nzc5N2UwZDViOTAxM2RlLi5kZTgxNDgwZDA4M2M1MGNkODBkYzI3ZmE0MTYxZGNmMDM1ZjViZTFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmgKQEAgLTQxLDEwICs0MSw2IEBACiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotbmFtZXNwYWNlIEluc3BlY3RvciB7Ci1jbGFzcyBG
cm9udGVuZFJvdXRlcjsKLX07Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOwpAQCAtODIsMTAgKzc4LDkgQEAgcHJpdmF0ZToKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyPiBtX2luamVjdGVkU2NyaXB0TWFu
YWdlcjsKICAgICBXb3JrZXJSdW50aW1lQWdlbnQqIG1fcnVudGltZUFnZW50IHsgbnVsbHB0ciB9
OwogICAgIEluc3BlY3Rvcjo6QWdlbnRSZWdpc3RyeSBtX2FnZW50czsKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWw+IG1fZm9yd2FyZGluZ0NoYW5uZWw7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsPiBtX2Zyb250ZW5k
Q2hhbm5lbDsKICAgICBSZWY8V1RGOjpTdG9wd2F0Y2g+IG1fZXhlY3V0aW9uU3RvcHdhdGNoOwot
ICAgIFJlZjxJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyPiBtX2Zyb250ZW5kUm91dGVyOwotICAg
IFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwor
ICAgIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRj
aGVyOwogICAgIFZlY3RvcjxJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUsIDI+IG1faW5q
ZWN0ZWRTY3JpcHRJbnN0cnVtZW50YXRpb25Db29raWVzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VEZWJ1Z2dhYmxlLmNwcAppbmRleCAyNDk4M2JlYzRhNzljZTczOGI0M2U5MGUyOGRjMDA1
ZTM4YTZiNGFjLi5mZTdiMjk0ODZhZGU4YjRmYTNmM2Y0OWEwZWZhZDljZDcwMDk3ZGRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcApAQCAtODAsMTAgKzgwLDEwIEBAIHZv
aWQgUGFnZURlYnVnZ2FibGU6OmNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGNo
YW5uZWwsIGJvb2wgaXNBdXRvbWF0CiAgICAgaW5zcGVjdG9yQ29udHJvbGxlci5jb25uZWN0RnJv
bnRlbmQoY2hhbm5lbCwgaXNBdXRvbWF0aWNJbnNwZWN0aW9uKTsKIH0KIAotdm9pZCBQYWdlRGVi
dWdnYWJsZTo6ZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCkK
K3ZvaWQgUGFnZURlYnVnZ2FibGU6OmRpc2Nvbm5lY3QoKQogewogICAgIEluc3BlY3RvckNvbnRy
b2xsZXImIGluc3BlY3RvckNvbnRyb2xsZXIgPSBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigp
OwotICAgIGluc3BlY3RvckNvbnRyb2xsZXIuZGlzY29ubmVjdEZyb250ZW5kKGNoYW5uZWwpOwor
ICAgIGluc3BlY3RvckNvbnRyb2xsZXIuZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RGlz
Y29ubmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJveWVkKTsKIAogICAgIGlmIChtX2ZvcmNlZERl
dmVsb3BlckV4dHJhc0VuYWJsZWQpIHsKICAgICAgICAgbV9mb3JjZWREZXZlbG9wZXJFeHRyYXNF
bmFibGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1
Z2dhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmgKaW5kZXggYjI5
MDk0ZjU5OWMxYWMxZGQzZjVkZDIzNzQxYjVmZGIxYjZhYzU3ZC4uNmFlZmNjM2NiNDViOTIwMTcw
ZTk3OTQ1OGJlNWFiMDYwYjM2YTRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlRGVidWdnYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUu
aApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGhhc0xvY2FsRGVi
dWdnZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0KEluc3Bl
Y3Rvcjo6RnJvbnRlbmRDaGFubmVsKiwgYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24pIG92ZXJy
aWRlOwotICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFu
bmVsKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZUZyb250ZW5kKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldEluZGljYXRp
bmcoYm9vbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRl
eCAwZWY3Y2Y3MjYxMWJkY2YyZWVjODliZTY4Nzg1MzliYzk3Y2VjNGE0Li4zMWJmNTE3NDNhODgx
Y2ZjYjgyNWE1NzhiNDZhYjJjYzJjY2Y1NTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCkBAIC0xNzM0LDggKzE3MzQsOSBAQCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gSW50ZXJu
YWxzOjpvcGVuRHVtbXlJbnNwZWN0b3JGcm9udGVuZChjb25zdCBTdHJpbmcmIHVybCkKICAgICBt
X2Zyb250ZW5kQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JGcm9udGVuZENsaWVu
dER1bW15PigmcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLCBmcm9udGVuZFBhZ2UpOwogICAg
IGZyb250ZW5kUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnNldEluc3BlY3RvckZyb250ZW5k
Q2xpZW50KG1fZnJvbnRlbmRDbGllbnQuZ2V0KCkpOwogCisgICAgYm9vbCBpc0F1dG9tYXRpY0lu
c3BlY3Rpb24gPSBmYWxzZTsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IHN0ZDo6bWFrZV91bmlx
dWU8SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsRHVtbXk+KGZyb250ZW5kUGFnZSk7Ci0gICAgcGFn
ZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmNvbm5lY3RGcm9udGVuZChtX2Zyb250ZW5kQ2hhbm5l
bC5nZXQoKSk7CisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmNvbm5lY3RGcm9udGVu
ZChtX2Zyb250ZW5kQ2hhbm5lbC5nZXQoKSwgaXNBdXRvbWF0aWNJbnNwZWN0aW9uKTsKIAogICAg
IHJldHVybiBtX2Zyb250ZW5kV2luZG93OwogfQpAQCAtMTc0NiwxMyArMTc0Nyw5IEBAIHZvaWQg
SW50ZXJuYWxzOjpjbG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQoKQogICAgIEFTU0VSVChwYWdl
KTsKICAgICBBU1NFUlQobV9mcm9udGVuZFdpbmRvdyk7CiAKLSAgICBQYWdlKiBmcm9udGVuZFBh
Z2UgPSBtX2Zyb250ZW5kV2luZG93LT5kb2N1bWVudCgpLT5wYWdlKCk7Ci0gICAgQVNTRVJUKGZy
b250ZW5kUGFnZSk7CisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RG
cm9udGVuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RvckRlc3Ryb3llZCk7
CiAKLSAgICBmcm9udGVuZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5zZXRJbnNwZWN0b3JG
cm9udGVuZENsaWVudChudWxscHRyKTsKICAgICBtX2Zyb250ZW5kQ2xpZW50ID0gbnVsbHB0cjsK
LQotICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQobV9m
cm9udGVuZENoYW5uZWwuZ2V0KCkpOwogICAgIG1fZnJvbnRlbmRDaGFubmVsID0gbnVsbHB0cjsK
IAogICAgIG1fZnJvbnRlbmRXaW5kb3ctPmNsb3NlKG1fZnJvbnRlbmRXaW5kb3ctPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCmluZGV4IDAxYjRiYzkwNGM3MzU3MWNkYjZhM2M5
MTM5MjJmMzQ4YmU1YWVlNmEuLmM1MGRiYjdhNThkOGI2NDM2MDA2YTVmOWMwY2Q4ZWRkOTc0ZDdi
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5oCkBAIC0xMjQsNyArMTI0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB2b2lkIGJyaW5nVG9Gcm9udCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZVdp
bmRvdygpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzY29ubmVjdEZyb21CYWNrZW5kKCk7CisgICAg
dmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RGcm9tQmFja2VuZCgpOwogCiAgICAgdmlydHVhbCB2b2lk
IGF0dGFjaFdpbmRvdyhEb2NrU2lkZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRldGFj
aFdpbmRvdygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IDZlNTQ1NmIzMTAzNWMxMjI5NTI4
MjEyZjllNGRkOGM3Y2Q3MmQ0ZjAuLjgwNjAwM2E2MjQ1NDA1NzI5Y2FlZjhhNjcxMjNjNjMxNWJh
ZTRlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JDbGllbnQubW0KQEAgLTg3LDcgKzg3LDcgQEAgc3RhdGljIGNvbnN0IENHRmxv
YXQgaW5pdGlhbFdpbmRvd0hlaWdodCA9IDY1MDsKIC0gKFdlYkluc3BlY3RvckNsaWVudCopaW5z
cGVjdG9yQ2xpZW50OwogLSAodm9pZClzZXRBdHRhY2hlZFdpbmRvd0hlaWdodDoodW5zaWduZWQp
aGVpZ2h0OwogLSAodm9pZClzZXREb2NraW5nVW5hdmFpbGFibGU6KEJPT0wpdW5hdmFpbGFibGU7
Ci0tICh2b2lkKWRlc3Ryb3lJbnNwZWN0b3JWaWV3OworLSAodm9pZClkZXN0cm95SW5zcGVjdG9y
VmlldzooYm9vbClub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyOwogQGVuZAogCiAKQEAgLTEzMCw3
ICsxMzAsNiBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6Y2xvc2VJbnNwZWN0b3JGcm9udGVu
ZCgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpicmluZ0Zyb250ZW5kVG9Gcm9udCgpCiB7
Ci0gICAgQVNTRVJUKG1fZnJvbnRlbmRDbGllbnQpOwogICAgIG1fZnJvbnRlbmRDbGllbnQtPmJy
aW5nVG9Gcm9udCgpOwogfQogCkBAIC0yNTMsMTIgKzI1MiwxMiBAQCB2b2lkIFdlYkluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50OjpicmluZ1RvRnJvbnQoKQogCiB2b2lkIFdlYkluc3BlY3RvckZyb250
ZW5kQ2xpZW50OjpjbG9zZVdpbmRvdygpCiB7Ci0gICAgW21fd2luZG93Q29udHJvbGxlci5nZXQo
KSBkZXN0cm95SW5zcGVjdG9yVmlld107CisgICAgW21fd2luZG93Q29udHJvbGxlci5nZXQoKSBk
ZXN0cm95SW5zcGVjdG9yVmlldzp0cnVlXTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVu
ZENsaWVudDo6ZGlzY29ubmVjdEZyb21CYWNrZW5kKCkKIHsKLSAgICBbbV93aW5kb3dDb250cm9s
bGVyLmdldCgpIGRlc3Ryb3lJbnNwZWN0b3JWaWV3XTsKKyAgICBbbV93aW5kb3dDb250cm9sbGVy
LmdldCgpIGRlc3Ryb3lJbnNwZWN0b3JWaWV3OmZhbHNlXTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0
b3JGcm9udGVuZENsaWVudDo6YXR0YWNoV2luZG93KERvY2tTaWRlKQpAQCAtNTIzLDcgKzUyMiw3
IEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmFwcGVuZChjb25zdCBTdHJpbmcm
IHN1Z2dlc3RlZFVSTCwgY29uc3QgU3RyaW5nCiAKIC0gKEJPT0wpd2luZG93U2hvdWxkQ2xvc2U6
KGlkKXNlbmRlcgogewotICAgIFtzZWxmIGRlc3Ryb3lJbnNwZWN0b3JWaWV3XTsKKyAgICBbc2Vs
ZiBkZXN0cm95SW5zcGVjdG9yVmlldzp0cnVlXTsKIAogICAgIHJldHVybiBZRVM7CiB9CkBAIC02
NzcsNyArNjc2LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6YXBwZW5kKGNv
bnN0IFN0cmluZyYgc3VnZ2VzdGVkVVJMLCBjb25zdCBTdHJpbmcKICAgICAvLyBEbyBub3RoaW5n
LgogfQogCi0tICh2b2lkKWRlc3Ryb3lJbnNwZWN0b3JWaWV3CistICh2b2lkKWRlc3Ryb3lJbnNw
ZWN0b3JWaWV3Oihib29sKW5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXIKIHsKICAgICBSZXRhaW5Q
dHI8V2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlcj4gcHJvdGVjdChzZWxmKTsKIApAQCAtNjkz
LDkgKzY5Miw5IEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmFwcGVuZChjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZFVSTCwgY29uc3QgU3RyaW5nCiAKICAgICBfdmlzaWJsZSA9IE5P
OwogCi0gICAgaWYgKFBhZ2UqIGluc3BlY3RlZFBhZ2UgPSBbX2luc3BlY3RlZFdlYlZpZXcuZ2V0
KCkgcGFnZV0pIHsKLSAgICAgICAgaW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50KG51bGxwdHIpOwotICAgICAgICBpbnNwZWN0ZWRQ
YWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKF9pbnNwZWN0b3JD
bGllbnQpOworICAgIGlmIChub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyKSB7CisgICAgICAgIGlm
IChQYWdlKiBpbnNwZWN0ZWRQYWdlID0gW19pbnNwZWN0ZWRXZWJWaWV3LmdldCgpIHBhZ2VdKQor
ICAgICAgICAgICAgaW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5l
Y3RGcm9udGVuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RvckRlc3Ryb3ll
ZCk7CiAgICAgfQogCiAgICAgW193ZWJWaWV3IGNsb3NlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCmluZGV4IGY4
NDVlMjViYTg4Y2VlN2NjZmIwMWYxYzY1Mzg3MWQ2MGUxMTEzNTYuLjQ1ZDRhYjBkYTE2MDc0Yzc2
YjA4YmI2MzRkMTNhZGFiZDZkNmJhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAtMTc0LDcgKzE3NCw3
IEBAIFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogV2ViSW5zcGVjdG9yQ2xpZW50
OjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQoSW5zCiB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6Y2xv
c2VJbnNwZWN0b3JGcm9udGVuZCgpCiB7CiAgICAgaWYgKG1fZnJvbnRlbmRDbGllbnQpCi0gICAg
ICAgIG1fZnJvbnRlbmRDbGllbnQtPmRlc3Ryb3lJbnNwZWN0b3JWaWV3KCk7CisgICAgICAgIG1f
ZnJvbnRlbmRDbGllbnQtPmRlc3Ryb3lJbnNwZWN0b3JWaWV3KGZhbHNlKTsKIH0KIAogdm9pZCBX
ZWJJbnNwZWN0b3JDbGllbnQ6OmJyaW5nRnJvbnRlbmRUb0Zyb250KCkKQEAgLTIzNyw3ICsyMzcs
NyBAQCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQoV2ViVmlldyogaW5zcGVjdGVkV2ViVmlldwogCiBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVu
dDo6fldlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50KCkKIHsKLSAgICBkZXN0cm95SW5zcGVjdG9y
VmlldygpOworICAgIGRlc3Ryb3lJbnNwZWN0b3JWaWV3KHRydWUpOwogfQogCiB2b2lkIFdlYklu
c3BlY3RvckZyb250ZW5kQ2xpZW50Ojpmcm9udGVuZExvYWRlZCgpCkBAIC0yNjksNyArMjY5LDcg
QEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6YnJpbmdUb0Zyb250KCkKIAogdm9p
ZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2xvc2VXaW5kb3coKQogewotICAgIGRlc3Ry
b3lJbnNwZWN0b3JWaWV3KCk7CisgICAgZGVzdHJveUluc3BlY3RvclZpZXcodHJ1ZSk7CiB9CiAK
IHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmF0dGFjaFdpbmRvdyhEb2NrU2lkZSkK
QEAgLTQyMSw3ICs0MjEsNyBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpzaG93
V2luZG93V2l0aG91dE5vdGlmaWNhdGlvbnMoKQogICAgIG1faW5zcGVjdG9yQ2xpZW50LT51cGRh
dGVIaWdobGlnaHQoKTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVz
dHJveUluc3BlY3RvclZpZXcoKQordm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVz
dHJveUluc3BlY3RvclZpZXcoYm9vbCBub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyKQogewogICAg
IG1faW5zcGVjdG9yQ2xpZW50LT5yZWxlYXNlRnJvbnRlbmQoKTsKIApAQCAtNDMxLDEwICs0MzEs
MTAgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVzdHJveUluc3BlY3RvclZp
ZXcoKQogCiAgICAgY2xvc2VXaW5kb3dXaXRob3V0Tm90aWZpY2F0aW9ucygpOwogCi0gICAgbV9p
bnNwZWN0ZWRXZWJWaWV3LT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5zZXRJbnNwZWN0
b3JGcm9udGVuZENsaWVudChudWxscHRyKTsKLSAgICBtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2Uo
KS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChtX2luc3BlY3RvckNs
aWVudCk7Ci0gICAgbV9pbnNwZWN0b3JDbGllbnQtPnVwZGF0ZUhpZ2hsaWdodCgpOwotCisgICAg
aWYgKG5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXIpIHsKKyAgICAgICAgbV9pbnNwZWN0ZWRXZWJW
aWV3LT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoSW5z
cGVjdG9yOjpEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0b3JEZXN0cm95ZWQpOworICAgICAgICBt
X2luc3BlY3RvckNsaWVudC0+dXBkYXRlSGlnaGxpZ2h0KCk7CisgICAgfQogICAgIDo6RGVzdHJv
eVdpbmRvdyhtX2Zyb250ZW5kSHduZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggOTU2OGRhMDMzZmU0
NjQ3N2FmZjEzY2I3MzQ4NzFhNjNlMDMwMjJjZi4uOWZiMzg2ZTMxY2Q5NGRhMDdiNjhmMmM1MWY4
NTYzYjM5NTVlYzcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTExMyw3ICsxMTMsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBXVEY6OlN0cmluZyYg
bmV3VVJMKTsKIAotICAgIHZvaWQgZGVzdHJveUluc3BlY3RvclZpZXcoKTsKKyAgICB2b2lkIGRl
c3Ryb3lJbnNwZWN0b3JWaWV3KGJvb2wgbm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcik7CiAKIHBy
aXZhdGU6CiAgICAgdm9pZCBjbG9zZVdpbmRvd1dpdGhvdXROb3RpZmljYXRpb25zKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudC5jcHAKaW5kZXggNjZlOWJjNzBkYWMwNDQ4NzY5NDNmYjVkZDM5
Y2RiMmE3NGQyMzZmYS4uNWE3ZjE3MDBiZDE5YWJjYWE3Zjc4NTZkYTJhMDNlYjZjZTI2ZjFiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAtODIsMTkgKzgyLDE3IEBAIHZvaWQg
V2ViSW5zcGVjdG9yQ2xpZW50OjppbnNwZWN0b3JEZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlz
OwogfQogCi1JbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogV2ViSW5zcGVjdG9yQ2xpZW50Ojpv
cGVuSW5zcGVjdG9yRnJvbnRlbmQoSW5zcGVjdG9yQ29udHJvbGxlciogY29udHJvbGxlcikKK1dl
YkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogV2ViSW5zcGVjdG9yQ2xpZW50OjpvcGVu
SW5zcGVjdG9yRnJvbnRlbmQoSW5zcGVjdG9yQ29udHJvbGxlciogY29udHJvbGxlcikKIHsKLSAg
ICBtX3BhZ2UtPmluc3BlY3RvcigpLT5vcGVuRnJvbnRlbmRDb25uZWN0aW9uKGNvbnRyb2xsZXIt
PmlzVW5kZXJUZXN0KCkpOworICAgIG1fcGFnZS0+aW5zcGVjdG9yKCktPmNyZWF0ZUluc3BlY3Rv
clBhZ2UoY29udHJvbGxlci0+aXNVbmRlclRlc3QoKSk7CiAKICAgICByZXR1cm4gbV9wYWdlLT5p
bnNwZWN0b3IoKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmNsb3NlSW5zcGVjdG9y
RnJvbnRlbmQoKQogewotICAgIGlmIChtX3BhZ2UtPmluc3BlY3RvcigpKSB7Ci0gICAgICAgIG1f
cGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVu
ZChtX3BhZ2UtPmluc3BlY3RvcigpKTsKLSAgICAgICAgbV9wYWdlLT5pbnNwZWN0b3IoKS0+Y2xv
c2VGcm9udGVuZENvbm5lY3Rpb24oKTsKLSAgICB9CisgICAgaWYgKG1fcGFnZS0+aW5zcGVjdG9y
KCkpCisgICAgICAgIG1fcGFnZS0+aW5zcGVjdG9yKCktPmNsb3NlRnJvbnRlbmQoKTsKIH0KIAog
dm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmJyaW5nRnJvbnRlbmRUb0Zyb250KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5oCmluZGV4IGI4MzgwYjFiODhiMTc2MTQxZmZjNGE4NDU3Mzg4NDBkN2Jk
OThkOGMuLjlhNDQwMGJlNWFiYTZiOTk1MTVmNmQ4OTFmNmU5YTgxNTY3OGE0MTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JDbGllbnQuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBXZWJJbnNwZWN0
b3JDbGllbnRfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JDbGllbnQuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0luc3BlY3RvckZvcndhcmRpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bh
Z2VPdmVybGF5Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIApAQCAtNTIsNyArNTMsNyBA
QCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6Okluc3BlY3RvckNsaWVudAogICAgIHZvaWQgaW5z
cGVjdG9yRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKLSAgICBJbnNwZWN0b3I6OkZyb250ZW5kQ2hh
bm5lbCogb3Blbkluc3BlY3RvckZyb250ZW5kKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXIq
KSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIG9wZW5J
bnNwZWN0b3JGcm9udGVuZChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyKikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBjbG9zZUluc3BlY3RvckZyb250ZW5kKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBi
cmluZ0Zyb250ZW5kVG9Gcm9udCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVzaXplTWFpbkZy
YW1lKFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IDU5NjlhYTIyZjM2ZGY5NDEx
ZDVkYTEwNTZmMWQyNmQzMDIwZWQ1MjkuLmUwYWQ3NTQ0NDU4NWQ4YTllN2EyZTcxNjMxNWExNTE5
Zjk1ZWZmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJJbnNwZWN0b3IuY3BwCkBAIC03MCw3ICs3MCw3IEBAIFdlYkluc3BlY3Rvcjo6fldlYkluc3Bl
Y3RvcigpCiB9CiAKIC8vIENhbGxlZCBmcm9tIFdlYkluc3BlY3RvckNsaWVudAotdm9pZCBXZWJJ
bnNwZWN0b3I6Om9wZW5Gcm9udGVuZENvbm5lY3Rpb24oYm9vbCB1bmRlclRlc3QpCit2b2lkIFdl
Ykluc3BlY3Rvcjo6Y3JlYXRlSW5zcGVjdG9yUGFnZShib29sIHVuZGVyVGVzdCkKIHsKICNpZiBP
UyhEQVJXSU4pCiAgICAgbWFjaF9wb3J0X3QgbGlzdGVuaW5nUG9ydDsKQEAgLTkzLDcgKzkzLDcg
QEAgdm9pZCBXZWJJbnNwZWN0b3I6Om9wZW5Gcm9udGVuZENvbm5lY3Rpb24oYm9vbCB1bmRlclRl
c3QpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OkNyZWF0ZUluc3BlY3RvclBhZ2Uo
Y29ubmVjdGlvbkNsaWVudFBvcnQsIGNhbkF0dGFjaFdpbmRvdygpLCB1bmRlclRlc3QpLCBtX3Bh
Z2UtPnBhZ2VJRCgpKTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3I6OmNsb3NlRnJvbnRlbmRDb25u
ZWN0aW9uKCkKK3ZvaWQgV2ViSW5zcGVjdG9yOjpjbG9zZUZyb250ZW5kKCkKIHsKICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6RGlkQ2xvc2UoKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiAK
QEAgLTI2Miw3ICsyNjIsOCBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6cmVtb3RlRnJvbnRlbmRDb25u
ZWN0ZWQoKQogewogICAgIGlmIChtX3BhZ2UtPmNvcmVQYWdlKCkpIHsKICAgICAgICAgbV9yZW1v
dGVGcm9udGVuZENvbm5lY3RlZCA9IHRydWU7Ci0gICAgICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLmNvbm5lY3RGcm9udGVuZCh0aGlzKTsKKyAgICAgICAgYm9v
bCBpc0F1dG9tYXRpY0luc3BlY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgbV9wYWdlLT5jb3JlUGFn
ZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuY29ubmVjdEZyb250ZW5kKHRoaXMsIGlzQXV0b21h
dGljSW5zcGVjdGlvbik7CiAgICAgfQogfQogCkBAIC0yNzEsNyArMjcyLDcgQEAgdm9pZCBXZWJJ
bnNwZWN0b3I6OnJlbW90ZUZyb250ZW5kRGlzY29ubmVjdGVkKCkKICAgICBtX3JlbW90ZUZyb250
ZW5kQ29ubmVjdGVkID0gZmFsc2U7CiAKICAgICBpZiAobV9wYWdlLT5jb3JlUGFnZSgpKQotICAg
ICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0
RnJvbnRlbmQodGhpcyk7CisgICAgICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb246
Okluc3BlY3RvckRlc3Ryb3llZCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCmluZGV4IDAwMTI4NzljZmE5YzZkMWI0
NWQyMzA4ODBjZTIyZDk4ZGRiOGFkMjQuLjA0MDA4ZTE1ZGM3YTI2ZmZiYTM3N2FjYjA2NzE1NjI4
NjYxMWRlYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
SW5zcGVjdG9yLmgKQEAgLTk3LDkgKzk3LDkgQEAgcHJpdmF0ZToKICAgICBib29sIGNhbkF0dGFj
aFdpbmRvdygpOwogCiAgICAgLy8gQ2FsbGVkIGZyb20gV2ViSW5zcGVjdG9yQ2xpZW50Ci0gICAg
dm9pZCBvcGVuRnJvbnRlbmRDb25uZWN0aW9uKGJvb2wgdW5kZXJUZXN0KTsKLSAgICB2b2lkIGNs
b3NlRnJvbnRlbmRDb25uZWN0aW9uKCk7CisgICAgdm9pZCBjcmVhdGVJbnNwZWN0b3JQYWdlKGJv
b2wgdW5kZXJUZXN0KTsKIAorICAgIHZvaWQgY2xvc2VGcm9udGVuZCgpOwogICAgIHZvaWQgYnJp
bmdUb0Zyb250KCk7CiAKICAgICBXZWJQYWdlKiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzVjZTVjNDZmMDNjYmIwOWViN2I3ZmNi
MDFmMDQ0NGE1ZjkxZjAwNi4uYTY0NDYxNDkyZTFmNjhlMmE3NjAzZjhlMTJiOWU4OGIwYWVjNzY0
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDE1LTA5LTAzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTg5MzM4LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4Nzg1CisKKyAg
ICAgICAgQ2F1c2VkIHRvbnMgb2YgY3Jhc2hlcyAoUmVxdWVzdGVkIGJ5IGNkdW1leiBvbiAjd2Vi
a2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIldlYiBJbnNw
ZWN0b3I6IEluc3BlY3RvckNvbnRyb2xsZXIgc2hvdWxkIHN1cHBvcnQgbXVsdGlwbGUKKyAgICAg
ICAgZnJvbnRlbmQgY2hhbm5lbHMiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDg1MzgKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMTg5MzM4CisKIDIwMTUtMDktMDMgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogSW5zcGVjdG9yQ29udHJvbGxlciBzaG91bGQgc3Vw
cG9ydCBtdWx0aXBsZSBmcm9udGVuZCBjaGFubmVscwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDAyYTkxYmNiMjc3ODEyZTFjNDVjYzlhZTc2MTE5MjI1
ZDY4MjY5NjYuLjQ5MjYyMmU0YTJkNDQ1ZmM0YjRiOGJkMzM5ZGJjMmY0NzhiZTMxOTQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTIwMzksMTMgKzIw
MzksNiBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogCiAg
ICAgd29ya1F1ZXVlLmNsZWFyKCk7CiAKLSAgICAvLyBJZiB0aGUgdGVzdCBwYWdlIGNvdWxkIGhh
dmUgcG9zc2libHkgb3BlbmVkIHRoZSBXZWIgSW5zcGVjdG9yIGZyb250ZW5kLAotICAgIC8vIHRo
ZW4gdHJ5IHRvIGNsb3NlIGl0IGluIGNhc2UgaXQgd2FzIGFjY2lkZW50YWxseSBsZWZ0IG9wZW4u
Ci0gICAgaWYgKHNob3VsZEVuYWJsZURldmVsb3BlckV4dHJhcyhwYXRoT3JVUkwuY19zdHIoKSkp
IHsKLSAgICAgICAgZ1Rlc3RSdW5uZXItPmNsb3NlV2ViSW5zcGVjdG9yKCk7Ci0gICAgICAgIGdU
ZXN0UnVubmVyLT5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGZhbHNlKTsKLSAgICB9Ci0KICAg
ICBpZiAoZ1Rlc3RSdW5uZXItPmNsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSgpKSB7
CiAgICAgICAgIE5TQXJyYXkqIGFycmF5ID0gW0R1bXBSZW5kZXJUcmVlV2luZG93IG9wZW5XaW5k
b3dzXTsKIApAQCAtMjA2OSw2ICsyMDYyLDEyIEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qg
c3RyaW5nJiBpbnB1dExpbmUpCiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvLyBJZiBkZXZlbG9w
ZXIgZXh0cmFzIGVuYWJsZWQgV2ViIEluc3BlY3RvciBtYXkgaGF2ZSBiZWVuIG9wZW4gYnkgdGhl
IHRlc3QuCisgICAgaWYgKHNob3VsZEVuYWJsZURldmVsb3BlckV4dHJhcyhwYXRoT3JVUkwuY19z
dHIoKSkpIHsKKyAgICAgICAgZ1Rlc3RSdW5uZXItPmNsb3NlV2ViSW5zcGVjdG9yKCk7CisgICAg
ICAgIGdUZXN0UnVubmVyLT5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGZhbHNlKTsKKyAgICB9
CisKICAgICByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcoKTsKIAog
ICAgIC8vIExvYWRpbmcgYW4gZW1wdHkgcmVxdWVzdCBzeW5jaHJvbm91c2x5IHJlcGxhY2VzIHRo
ZSBkb2N1bWVudCB3aXRoIGEgYmxhbmsgb25lLCB3aGljaCBpcyBuZWNlc3NhcnkKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGQwMmNmZWM1ODgyNTQ0
NTc5NGJkYTBiOTVmZDBmZWMwMzg5MTc0MDIuLmU1NmViMWY1MzdiOTQwM2Y1NWM2ZWQwM2M5ZDE3
Yjg3OTA4MDlkNTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcApAQCAtMTE0NywxMyArMTE0Nyw2IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3Ry
aW5nJiBpbnB1dExpbmUpCiAgICAgLy8gRXZlbnRTZW5kaW5nQ29udHJvbGxlciBjbGVhclNhdmVk
RXZlbnRzCiAgICAgd29ya1F1ZXVlLmNsZWFyKCk7CiAKLSAgICAvLyBJZiB0aGUgdGVzdCBwYWdl
IGNvdWxkIGhhdmUgcG9zc2libHkgb3BlbmVkIHRoZSBXZWIgSW5zcGVjdG9yIGZyb250ZW5kLAot
ICAgIC8vIHRoZW4gdHJ5IHRvIGNsb3NlIGl0IGluIGNhc2UgaXQgd2FzIGFjY2lkZW50YWxseSBs
ZWZ0IG9wZW4uCi0gICAgaWYgKHNob3VsZEVuYWJsZURldmVsb3BlckV4dHJhcyhwYXRoT3JVUkwu
Y19zdHIoKSkpIHsKLSAgICAgICAgOjpnVGVzdFJ1bm5lci0+Y2xvc2VXZWJJbnNwZWN0b3IoKTsK
LSAgICAgICAgOjpnVGVzdFJ1bm5lci0+c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChmYWxzZSk7
Ci0gICAgfQotCiAgICAgaWYgKDo6Z1Rlc3RSdW5uZXItPmNsb3NlUmVtYWluaW5nV2luZG93c1do
ZW5Db21wbGV0ZSgpKSB7CiAgICAgICAgIFZlY3RvcjxIV05EPiB3aW5kb3dzID0gb3BlbldpbmRv
d3MoKTsKICAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHdpbmRvd3Muc2l6ZSgpOwpAQCAtMTE2OCw2
ICsxMTYxLDExIEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1dExpbmUp
CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAoc2hvdWxkRW5hYmxlRGV2ZWxvcGVyRXh0cmFz
KHBhdGhPclVSTC5jX3N0cigpKSkgeworICAgICAgICA6OmdUZXN0UnVubmVyLT5jbG9zZVdlYklu
c3BlY3RvcigpOworICAgICAgICA6OmdUZXN0UnVubmVyLT5zZXREZXZlbG9wZXJFeHRyYXNFbmFi
bGVkKGZhbHNlKTsKKyAgICB9CisKICAgICByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJl
Zm9yZVRlc3RpbmcoKTsKIAogICAgIC8vIExvYWRpbmcgYW4gZW1wdHkgcmVxdWVzdCBzeW5jaHJv
bm91c2x5IHJlcGxhY2VzIHRoZSBkb2N1bWVudCB3aXRoIGEgYmxhbmsgb25lLCB3aGljaCBpcyBu
ZWNlc3NhcnkK
</data>

          </attachment>
      

    </bug>

</bugzilla>