<?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>273731</bug_id>
          
          <creation_ts>2024-05-04 02:37:17 -0700</creation_ts>
          <short_desc>REGRESSION(278366@main): cause build failure</short_desc>
          <delta_ts>2024-05-13 13:15:41 -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>DUPLICATE</resolution>
          <dup_id>273732</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>273264</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>keith_miller</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2033271</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2024-05-04 02:37:17 -0700</bug_when>
    <thetext>https://commits.webkit.org/278366@main introduced a regression:
cause build failure

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>2033273</commentid>
    <comment_count>1</comment_count>
      <attachid>471279</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2024-05-04 02:37:25 -0700</bug_when>
    <thetext>Created attachment 471279
REVERT of 278366@main

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 revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert 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>2034695</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-05-11 02:38:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/127924405&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2035038</commentid>
    <comment_count>3</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2024-05-13 13:15:41 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 273732 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>471279</attachid>
            <date>2024-05-04 02:37:25 -0700</date>
            <delta_ts>2024-05-04 02:44:55 -0700</delta_ts>
            <desc>REVERT of 278366@main</desc>
            <filename>bug-273731-20240504093724.patch</filename>
            <type>text/plain</type>
            <size>1334719</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSBkYzYxZGE4ODM5ZjU3OTk5ZDIyNDM1YjgyMzY1NmU3MjBmM2RhMGI2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBTYXQsIDQgTWF5IDIwMjQgMDk6Mzc6MjEgKzAwMDAKU3ViamVjdDogW1BBVENIXSBV
bnJldmlld2VkLCByZXZlcnRpbmcgMjc4MzY2QG1haW4uCiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjczNzMxCgpjYXVzZSBidWlsZCBmYWlsdXJlCgpSZXZlcnRlZCBj
aGFuZ2VzZXQ6CgoiSklUIG9wZXJhdGlvbnMgc2hvdWxkIHJldHVybiB0aGUgY3VycmVudCBleGNl
cHRpb24gaW4gYSByZXR1cm4gR1BSIHdoZW4gaXQncyBmcmVlLiIKaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MzI2NApodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy8y
NzgzNjZAbWFpbgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCAgICAg
ICAgICB8ICAgIDEgLQogLi4uL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogIHwgICAgNCAtCiAuLi4vSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
LmggfCAgICA1IC0KIC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAgICAgICAg
ICB8ICAgIDUgKy0KIC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHAgICAgICAg
ICB8ICAgIDMgKy0KIC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJSSVNDVjY0LmNwcCAgICAg
ICB8ICAgIDMgKy0KIC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3BwICAg
ICB8ICAgIDUgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGUuaCAgICAgICAgICAg
ICB8ICAgIDEgLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwICAgICAg
IHwgICAgNyArLQogLi4uL2IzL2Fpci9BaXJDQ2FsbGluZ0NvbnZlbnRpb24uY3BwICAgICAgICAg
IHwgICAxMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oICAgICAgICAgICAg
IHwgICAgMSAtCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzUuY3BwICAgICAgICAg
fCAgIDM2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzYuY3BwICAgICAgICAg
fCAgICA4ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzcuY3BwICAgICAgICAg
fCAgIDEyICstCiAuLi4vZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaCAgICAgICAgICAgICAg
fCAgICAyICstCiAuLi4vZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggICAgICAg
fCAgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyaXRoTW9kZS5oICAgICAg
fCAgICAzICstCiAuLi4vZGZnL0RGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCAgICAgICAg
fCAgICAxICsKIC4uLi9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwICB8
ICAgIDMgKy0KIC4uLi9ERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oICB8
ICAgIDMgKwogLi4ubGxDcmVhdGVEaXJlY3RBcmd1bWVudHNTbG93UGF0aEdlbmVyYXRvci5oIHwg
ICAgMSArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmggICAgfCAg
IDE3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwICAgICAgfCAg
ICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuaCAgICAgICAgfCAg
ICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwICAgfCAx
MzAzICsrKystLS0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgg
ICAgIHwgICA2MiArLQogLi4uL0RGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9y
LmggIHwgICAgMSArCiAuLi4vSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9y
LmggfCAgMTQyICstCiAuLi4vSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cCAgfCAgMjQyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmggfCAgMTY2ICstCiAuLi4vZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwICAgICAgICAg
ICAgfCAgIDE5ICstCiAuLi4vZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwICAgICAgICAgICAg
ICAgfCAgIDM5ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAgfCAyNTUwICsrKysrKysrLS0tLS0tLS0tCiAuLi4vSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9T
UkV4aXRDb21waWxlci5jcHAgfCAgICAyICstCiAuLi4vSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9T
UkV4aXRDb21waWxlci5oICAgfCAgICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE9wZXJhdGlvbnMuY3BwICAgfCAgIDEyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE9wZXJhdGlvbnMuaCAgICAgfCAgIDEyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE91dHB1dC5jcHAgICAgICAgfCAgICA4IC0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
T3V0cHV0LmggICAgICAgICB8ICAgIDMgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNz
ZW1ibHlIZWxwZXJzLmNwcCB8ICAgMjggKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNz
ZW1ibHlIZWxwZXJzLmggICB8ICAgIDUgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0Nh
bGxIZWxwZXJzLmggICAgICB8ICAgIDggKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
LmggICAgICAgICAgICAgICB8ICAgNTUgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q2FsbC5jcHAgICAgICAgICB8ICAgIDYgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lcy5oICAgICAgICB8ICAgNDAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAgICB8ICA4MTYgKystLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuaCAgICAgfCAgIDg1ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L09wZXJhdGlvblJlc3VsdC5oICAgfCAgMTc5IC0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRUaHVua3MuaCAgICAgfCAgICA0ICstCiAuLi4vSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BdG9taWNzT2JqZWN0LmNwcCAgfCAgIDMwICstCiAuLi4vSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuaCAgfCAgICA3ICstCiAuLi4vSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGNlcHRpb25TY29wZS5oICAgfCAgICAyICstCiAuLi4vcnVudGltZS9IYXNoTWFwSW1wbElu
bGluZXMuaCAgICAgICAgICAgICAgfCAgICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXRoQ29tbW9uLmNwcCAgfCAgIDg0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXRoQ29tbW9uLmggICAgfCAgIDkzICstCiAuLi4vcnVudGltZS9TdHJpbmdQcm90b3R5
cGUuY3BwICAgICAgICAgICAgICAgfCAgIDE1ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9v
bHMvSlNEb2xsYXJWTS5jcHAgICAgfCAgIDMyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3BlcmF0aW9ucy5jcHAgfCAgMTIwICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3BlcmF0aW9ucy5oICAgfCAgMTM5ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFy
ci9ZYXJySklULmNwcCAgICAgICAgfCAgICA0ICstCiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUNh
bGxpbmdDb252ZW50aW9ucy5oICAgfCAgIDI0ICstCiBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcu
Y3BwICAgICAgICAgICAgICAgICAgfCAgICAzICstCiAuLi4vYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0gICAgICAgfCAgICA0ICstCiAuLi4vYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdERPTUpJVC5jcHAgfCAgIDIwICstCiBTb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2Vs
ZWN0b3JDb21waWxlci5jcHAgICAgfCAgMjU4ICstCiBTb3VyY2UvV2ViQ29yZS9kb21qaXQvSlNE
b2N1bWVudERPTUpJVC5jcHAgICAgfCAgIDE3ICstCiA2NiBmaWxlcyBjaGFuZ2VkLCAzMTIwIGlu
c2VydGlvbnMoKyksIDM2NzYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9PcGVyYXRpb25SZXN1bHQuaAoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCBkZmE3YTA1ZTJlNzYuLmRjZDRjMjZiMWNkOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODc4LDcgKzg3OCw2IEBAIHNldChKYXZhU2Ny
aXB0Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgaml0L0pJVE9wZXJhdGlvbnMu
aAogICAgIGppdC9KSVRTdHViUm91dGluZS5oCiAgICAgaml0L0pJVFRodW5rcy5oCi0gICAgaml0
L09wZXJhdGlvblJlc3VsdC5oCiAgICAgaml0L1BDVG9Db2RlT3JpZ2luTWFwLmgKICAgICBqaXQv
UG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaAogICAgIGppdC9SZWcuaApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAwYWEwNjVjOWYyMGMuLjRjMmZlYjFiY2E5OSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMjgsNyArMTAyOCw2IEBACiAJCTUzNTU1NzE0MUQ5
RDlFQTUwMDZENTgzQiAvKiBXYXNtTWVtb3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MzU1NTcxMzFEOUQ5RUE1MDA2RDU4M0IgLyogV2FzbU1lbW9y
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUz
NUMyNDYxMUY3ODkyOEUwMDZFQzQwRSAvKiBjcmVhdGVfcmVnZXhfdGFibGVzIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxOEY4MjExMTc4RUI0QjAwMjQ2
NUE3IC8qIGNyZWF0ZV9yZWdleF90YWJsZXMgKi87IH07CiAJCTUzNUMyNDZDMUY3QTE3NzgwMDZF
QzQwRSAvKiBVbmlmaWVkU291cmNlMTM2LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUzNUMyNDZCMUY3QTE3NzcwMDZFQzQwRSAvKiBVbmlmaWVkU291
cmNlMTM2LmNwcCAqLzsgfTsKLQkJNTM1RUMwOTcyQkNFRjcxOTAwQ0NDNUY3IC8qIE9wZXJhdGlv
blJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTM1RUMwOTYyQkNFRjcxOTAwQ0NDNUY3IC8qIE9wZXJhdGlvblJlc3VsdC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUzNjYzRkRBMjM1NjJGOTYw
MDVFQTY4QyAvKiBCeXRlY29kZUluZGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MzY2M0ZEOTIzNTYyRjkwMDA1RUE2OEMgLyogQnl0ZWNvZGVJbmRl
eC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUz
NkIzMTBDMUY3MUM1OTkwMDM3RkMzMyAvKiBVbmlmaWVkU291cmNlMTE5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNkIzMDg3MUY3MUM1MzgwMDM3
RkMzMyAvKiBVbmlmaWVkU291cmNlMTE5LmNwcCAqLzsgfTsKIAkJNTM2QjMxMEQxRjcxQzU5OTAw
MzdGQzMzIC8qIFVuaWZpZWRTb3VyY2UxMjUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTM2QjMwODgxRjcxQzUzODAwMzdGQzMzIC8qIFVuaWZpZWRT
b3VyY2UxMjUuY3BwICovOyB9OwpAQCAtNDA4NCw3ICs0MDgzLDYgQEAKIAkJNTM1NTU3MTUxRDlE
RkEzMjAwNkQ1ODNCIC8qIFdhc21NZW1vcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2FzbU1lbW9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUzNUMyNDZCMUY3QTE3NzcwMDZFQzQwRSAvKiBVbmlmaWVkU291cmNlMTM2LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMzYuY3BwOyBwYXRo
ID0gIkRlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL3VuaWZpZWQtc291cmNlcy9VbmlmaWVk
U291cmNlMTM2LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUz
NUUwOEM5MjI1NDYwQUIwMERGMDBDQSAvKiBwb3N0cHJvY2Vzcy1oZWFkZXItcnVsZSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuc2NyaXB0LnNoOyBwYXRoID0gInBvc3Rwcm9jZXNzLWhlYWRlci1ydWxlIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTM1RUMwOTYyQkNFRjcxOTAwQ0NDNUY3IC8qIE9w
ZXJhdGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcGVyYXRpb25SZXN1bHQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM2MERBQkIyMzU2QURDQTAwM0Y2QUI4IC8qIEJ5dGVj
b2RlSW5kZXguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnl0ZWNvZGVJbmRleC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzNjYzRkQ5MjM1NjJGOTAwMDVFQTY4QyAvKiBCeXRl
Y29kZUluZGV4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ5dGVjb2RlSW5k
ZXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM2OTZFNTcyMEEzQTcwMjAwRDdF
MDFFIC8qIEJ5dGVjb2RlU3RydWN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCeXRlY29kZVN0cnVjdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY5MTYs
NyArNjkxNCw2IEBACiAJCQkJNzI2QjkxQUMyNjU4MTY1MzAwOEU2RjgyIC8qIEpJVFdvcmtsaXN0
VGhyZWFkLmNwcCAqLywKIAkJCQk3MjZCOTFBODI2NTgxNjUyMDA4RTZGODIgLyogSklUV29ya2xp
c3RUaHJlYWQuaCAqLywKIAkJCQlBNzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZh
Y2VKSVQuaCAqLywKLQkJCQk1MzVFQzA5NjJCQ0VGNzE5MDBDQ0M1RjcgLyogT3BlcmF0aW9uUmVz
dWx0LmggKi8sCiAJCQkJNzkyQ0IzNDcxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3JpZ2lu
TWFwLmNwcCAqLywKIAkJCQk3OTJDQjM0ODFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmln
aW5NYXAuaCAqLywKIAkJCQkwRkU4MzQxNTFBNkVGOTdCMDBEMDQ4NDcgLyogUG9seW1vcnBoaWND
YWxsU3R1YlJvdXRpbmUuY3BwICovLApAQCAtMTE0NzgsNyArMTE0NzUsNiBAQAogCQkJCTE0QTQ2
ODBEMjE2RkE1NkEwMDBEMkIxQSAvKiBPcGNvZGVTaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJCREMyQzE1MUZERTkxMDBDRDg5MTAgLyogT3BlcmFuZHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE3MDQ0N0VBMTdBMEJENDYwMEY1ODk4RSAvKiBPcGVyYW5kc0lubGluZXMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTUzNUVDMDk3MkJDRUY3MTkwMENDQzVGNyAvKiBPcGVyYXRpb25SZXN1bHQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMThDNDQ4MEUxNkY1Q0QwMEIzNDQ2MCAvKiBPcGVyYXRpb25z
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkUyMjhFRDE0MzZBQjI3MDAxOTZDNDggLyogT3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkUzODQyMzMyMzI0RDUxQjAwOURENDQ1IC8qIE9wdGlv
bnNMaXN0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAppbmRleCAyM2Y1MzgyNTY4ZDAuLmY2MGM1YzY3OTFjMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIu
aApAQCAtOTM2LDExICs5MzYsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBicmFuY2hUZXN0
MzIoY29uZCwgYWRkcmVzcywgbWFzayk7CiAgICAgfQogCi0gICAgSnVtcCBicmFuY2hUZXN0UHRy
KFJlc3VsdENvbmRpdGlvbiBjb25kLCBBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcywgVHJ1c3RlZElt
bTMyIG1hc2sgPSBUcnVzdGVkSW1tMzIoLTEpKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGJyYW5j
aFRlc3QzMihjb25kLCBhZGRyZXNzLCBtYXNrKTsKLSAgICB9Ci0KICAgICBKdW1wIGJyYW5jaEFk
ZFB0cihSZXN1bHRDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVz
dCkKICAgICB7CiAgICAgICAgIHJldHVybiBicmFuY2hBZGQzMihjb25kLCBzcmMsIGRlc3QpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk02NC5jcHAKaW5kZXggMDNiODVkMjMxNmRmLi5mMzhkYmQ1ZDBmMWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0
LmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAKICNp
bmNsdWRlICJKU0NQdHJUYWcuaCIKLSNpbmNsdWRlICJPcGVyYXRpb25SZXN1bHQuaCIKICNpbmNs
dWRlICJQcm9iZUNvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYvSW5saW5lQVNNLmg+CiAjaW5jbHVk
ZSA8d3RmL1Rab25lTWFsbG9jSW5saW5lcy5oPgpAQCAtNjEsOSArNjAsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogV1RGX01BS0VfVFpPTkVfQUxMT0NBVEVEX0lNUEwoTWFjcm9Bc3NlbWJsZXJBUk02
NCk7CiAKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oY3RpTWFzbVByb2JlVHJh
bXBvbGluZSwgdm9pZCwgKCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihjdGlNYXNtUHJv
YmVUcmFtcG9saW5lLCB2b2lkLCAoKSk7CiBKU0NfQU5OT1RBVEVfSklUX09QRVJBVElPTl9QUk9C
RShjdGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVS
QVRJT04oY3RpTWFzbVByb2JlVHJhbXBvbGluZVNJTUQsIHZvaWQsICgpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04oY3RpTWFzbVByb2JlVHJhbXBvbGluZVNJTUQsIHZvaWQsICgpKTsKIEpT
Q19BTk5PVEFURV9KSVRfT1BFUkFUSU9OX1BST0JFKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVTSU1E
KTsKIAogdXNpbmcgbmFtZXNwYWNlIEFSTTY0UmVnaXN0ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHAKaW5kZXgg
MTJlN2NkYTgyYTI1Li5kYzBiNmE2YzA2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmNwcApAQCAtMjgsMTMgKzI4
LDEyIEBACiAjaWYgRU5BQkxFKEFTU0VNQkxFUikgJiYgQ1BVKEFSTV9USFVNQjIpCiAjaW5jbHVk
ZSAiTWFjcm9Bc3NlbWJsZXIuaCIKIAotI2luY2x1ZGUgIk9wZXJhdGlvblJlc3VsdC5oIgogI2lu
Y2x1ZGUgIlByb2JlQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KIAogbmFt
ZXNwYWNlIEpTQyB7CiAKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oY3RpTWFz
bVByb2JlVHJhbXBvbGluZSwgdm9pZCwgKCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihj
dGlNYXNtUHJvYmVUcmFtcG9saW5lLCB2b2lkLCAoKSk7CiBKU0NfQU5OT1RBVEVfSklUX09QRVJB
VElPTl9QUk9CRShjdGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKIAogdXNpbmcgbmFtZXNwYWNlIEFS
TVJlZ2lzdGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJSSVNDVjY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJSSVNDVjY0LmNwcAppbmRleCBmOWI0NjQxODRmZDEuLjFlNDJlNjJk
YTdmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclJJU0NWNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJSSVNDVjY0LmNwcApAQCAtMjgsMTMgKzI4LDEyIEBACiAKICNpZiBFTkFC
TEUoQVNTRU1CTEVSKSAmJiBDUFUoUklTQ1Y2NCkKIAotI2luY2x1ZGUgIk9wZXJhaXRvblJlc3Vs
dC5oIgogI2luY2x1ZGUgIlByb2JlQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00u
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJ
T04oY3RpTWFzbVByb2JlVHJhbXBvbGluZSwgdm9pZCwgKCkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihjdGlNYXNtUHJvYmVUcmFtcG9saW5lLCB2b2lkLCAoKSk7CiBKU0NfQU5OT1RBVEVf
SklUX09QRVJBVElPTl9QUk9CRShjdGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKIAogdXNpbmcgbmFt
ZXNwYWNlIFJJU0NWNjRSZWdpc3RlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3BwCmluZGV4IGFkY2Qx
ZDMxZThkMS4uYWI1MTdlYzQ4YjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcApAQCAtMjgsNyAr
MjgsNiBAQAogI2lmIEVOQUJMRShBU1NFTUJMRVIpICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0
KSkKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgogCi0jaW5jbHVkZSAiT3BlcmF0aW9uUmVz
dWx0LmgiCiAjaW5jbHVkZSAiUHJvYmVDb250ZXh0LmgiCiAjaW5jbHVkZSA8d3RmL0lubGluZUFT
TS5oPgogCkBAIC00MiwxMCArNDEsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLUpTQ19ERUNM
QVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oY3RpTWFzbVByb2JlVHJhbXBvbGluZSwgdm9pZCwg
KCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihjdGlNYXNtUHJvYmVUcmFtcG9saW5lLCB2
b2lkLCAoKSk7CiBKU0NfQU5OT1RBVEVfSklUX09QRVJBVElPTl9QUk9CRShjdGlNYXNtUHJvYmVU
cmFtcG9saW5lKTsKICNpZiBDUFUoWDg2XzY0KQotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09Q
RVJBVElPTihjdGlNYXNtUHJvYmVUcmFtcG9saW5lU0lNRCwgdm9pZCwgKCkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihjdGlNYXNtUHJvYmVUcmFtcG9saW5lU0lNRCwgdm9pZCwgKCkpOwog
SlNDX0FOTk9UQVRFX0pJVF9PUEVSQVRJT05fUFJPQkUoY3RpTWFzbVByb2JlVHJhbXBvbGluZVNJ
TUQpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5
cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGUuaAppbmRleCAxMTQzNmEwMmUz
YmEuLmEyOWFmNWNlNzEwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
VHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGUuaApAQCAtNjUsNyAr
NjUsNiBAQCBwdWJsaWM6CiAKICAgICB+VHlwZSgpID0gZGVmYXVsdDsKIAotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBudW1iZXJPZlByaW1pdGl2ZVR5cGVzID0gVjEyOCArIDE7CiAgICAgc3Rh
dGljIFR5cGUgdHVwbGVGcm9tSW5kZXgodW5zaWduZWQgaW5kZXgpIHsgQVNTRVJUKCEoaW5kZXgg
JiB0dXBsZUZsYWcpKTsgcmV0dXJuIGJpdHdpc2VfY2FzdDxUeXBlPihpbmRleCB8IHR1cGxlRmxh
Zyk7IH0KIAogICAgIFR5cGVLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQgJiB0dXBs
ZUZsYWcgPyBUdXBsZSA6IG1fa2luZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzVmFsaWRhdGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRh
dGUuY3BwCmluZGV4IGE1YzY5ODRiYmQxMy4uZWFhYTM3NDlmYzU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCkBAIC02OTksMTMgKzY5OSwxMCBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPj0gMSwgKCJBdCAi
LCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+Y2hpbGQoMCktPnR5
cGUoKSA9PSBwb2ludGVyVHlwZSgpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAg
IGlmICh2YWx1ZS0+dHlwZSgpLmlzVHVwbGUoKSkgewotICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogUmlnaHQgbm93IHdlIG9ubHkgc3VwcG9ydCBhIHBhaXIgb2YgdHdvIEdQUiB2YWx1ZXMg
c2luY2Ugb24gZXZlcnkgY2FsbGluZworICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogUmln
aHQgbm93IHdlIG9ubHkgc3VwcG9ydCBhIHBhaXIgb2YgcmVnaXN0ZXIgc2l6ZWQgdmFsdWVzIHNp
bmNlIG9uIGV2ZXJ5IGNhbGxpbmcKICAgICAgICAgICAgICAgICAgICAgLy8gY29udmVudGlvbiB3
ZSBzdXBwb3J0IHRoYXQncyByZXR1cm5lZCBpbiByZXR1cm5WYWx1ZUdQUi9yZXR1cm5WYWx1ZUdQ
UjIsIHJlc3BlY3RpdmVseS4KICAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUobV9wcm9jZWR1
cmUucmVzdWx0Q291bnQodmFsdWUtPnR5cGUoKSkgPT0gMiwgKCJBdCAiLCAqdmFsdWUpKTsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKGlzMzJCaXQoKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
IFZBTElEQVRFKG1fcHJvY2VkdXJlLnR5cGVBdE9mZnNldCh2YWx1ZS0+dHlwZSgpLCAwKSA9PSBy
ZWdpc3RlclR5cGUoKSwgKCJBdCAiLCAqdmFsdWUpKTsKLSAgICAgICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUobV9wcm9jZWR1cmUudHlwZUF0T2Zm
c2V0KHZhbHVlLT50eXBlKCksIDApLmlzSW50KCksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAg
ICAgICAgICAgICAgIFZBTElEQVRFKG1fcHJvY2VkdXJlLnR5cGVBdE9mZnNldCh2YWx1ZS0+dHlw
ZSgpLCAwKSA9PSByZWdpc3RlclR5cGUoKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAg
ICAgICAgICAgVkFMSURBVEUobV9wcm9jZWR1cmUudHlwZUF0T2Zmc2V0KHZhbHVlLT50eXBlKCks
IDEpID09IHJlZ2lzdGVyVHlwZSgpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbGlu
Z0NvbnZlbnRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbGlu
Z0NvbnZlbnRpb24uY3BwCmluZGV4IDc5NWM5ZGYxNGNmZi4uZjkyMjEzNjQ4OTNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxsaW5nQ29udmVudGlvbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbGluZ0NvbnZlbnRp
b24uY3BwCkBAIC0xMTQsMTMgKzExNCwxMCBAQCBzaXplX3QgY0NhbGxSZXN1bHRDb3VudChDb2Rl
JiBjb2RlLCBDQ2FsbFZhbHVlKiB2YWx1ZSkKICAgICAgICAgICAgIHJldHVybiAyOwogICAgICAg
ICByZXR1cm4gMTsKICAgICBjYXNlIFR1cGxlOgotICAgICAgICAvLyBXZSBvbmx5IHN1cHBvcnQg
ZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGVhY2ggcGFyYW1ldGVyIGluIGl0cyBvd24gcmVnaXN0ZXIg
Zm9yIG5vdy4KKyAgICAgICAgLy8gV2Ugb25seSBzdXBwb3J0IHR1cGxlcyB0aGF0IHJldHVybiBl
eGFjdGx5IHR3byByZWdpc3RlciBzaXplZCBpbnRzLgogICAgICAgICBVTlVTRURfUEFSQU0oY29k
ZSk7CiAgICAgICAgIEFTU0VSVChjb2RlLnByb2MoKS5yZXN1bHRDb3VudCh2YWx1ZS0+dHlwZSgp
KSA9PSAyKTsKLSAgICAgICAgaWYgKGlzMzJCaXQoKSkKLSAgICAgICAgICAgIEFTU0VSVChjb2Rl
LnByb2MoKS50eXBlQXRPZmZzZXQodmFsdWUtPnR5cGUoKSwgMCkgPT0gcG9pbnRlclR5cGUoKSk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEFTU0VSVChjb2RlLnByb2MoKS50eXBlQXRPZmZz
ZXQodmFsdWUtPnR5cGUoKSwgMCkuaXNJbnQoKSk7CisgICAgICAgIEFTU0VSVChjb2RlLnByb2Mo
KS50eXBlQXRPZmZzZXQodmFsdWUtPnR5cGUoKSwgMCkgPT0gcG9pbnRlclR5cGUoKSk7CiAgICAg
ICAgIEFTU0VSVChjb2RlLnByb2MoKS50eXBlQXRPZmZzZXQodmFsdWUtPnR5cGUoKSwgMSkgPT0g
cG9pbnRlclR5cGUoKSk7CiAgICAgICAgIHJldHVybiAyOwogICAgIGRlZmF1bHQ6CkBAIC0xNzQs
MTAgKzE3MSw3IEBAIFRtcCBjQ2FsbFJlc3VsdChDb2RlJiBjb2RlLCBDQ2FsbFZhbHVlKiB2YWx1
ZSwgdW5zaWduZWQgaW5kZXgpCiAgICAgY2FzZSBUdXBsZToKICAgICAgICAgQVNTRVJUX1VOVVNF
RChjb2RlLCBjb2RlLnByb2MoKS5yZXN1bHRDb3VudCh2YWx1ZS0+dHlwZSgpKSA9PSAyKTsKICAg
ICAgICAgLy8gV2Ugb25seSBzdXBwb3J0IGZ1bmN0aW9ucyB0aGF0IHJldHVybiBlYWNoIHBhcmFt
ZXRlciBpbiBpdHMgb3duIHJlZ2lzdGVyIGZvciBub3cuCi0gICAgICAgIGlmIChpczMyQml0KCkp
Ci0gICAgICAgICAgICBBU1NFUlQoY29kZS5wcm9jKCkudHlwZUF0T2Zmc2V0KHZhbHVlLT50eXBl
KCksIDApID09IHJlZ2lzdGVyVHlwZSgpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgQVNT
RVJUKGNvZGUucHJvYygpLnR5cGVBdE9mZnNldCh2YWx1ZS0+dHlwZSgpLCAwKS5pc0ludCgpKTsK
KyAgICAgICAgQVNTRVJUKGNvZGUucHJvYygpLnR5cGVBdE9mZnNldCh2YWx1ZS0+dHlwZSgpLCAw
KSA9PSByZWdpc3RlclR5cGUoKSk7CiAgICAgICAgIEFTU0VSVChjb2RlLnByb2MoKS50eXBlQXRP
ZmZzZXQodmFsdWUtPnR5cGUoKSwgMSkgPT0gcmVnaXN0ZXJUeXBlKCkpOwogICAgICAgICByZXR1
cm4gaW5kZXggPyBUbXAoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyKSA6IFRtcChHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUik7CiAgICAgY2FzZSBWMTI4OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiMy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5o
CmluZGV4IDg2ODI3OWIyMjkwNi4uOTE3NTM1YWMyM2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiMy5oCkBAIC02OCw3ICs2OCw2IEBACiAjaW5jbHVkZSAiSklUQ29tcGlsYXRpb24uaCIKICNp
bmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgotI2luY2x1ZGUg
Ik9wZXJhdGlvblJlc3VsdC5oIgogI2luY2x1ZGUgIlB1cmVOYU4uaCIKICNpbmNsdWRlIDxjbWF0
aD4KICNpbmNsdWRlIDxyZWdleD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjNfNS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzUuY3BwCmlu
ZGV4IDM1YzhhZWMzZjcwMy4uZDNmZWM0YjgwOWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvdGVzdGIzXzUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjNfNS5jcHAKQEAgLTE5NjIsOSArMTk2Miw5IEBAIHZvaWQgdGVzdEVxdWFsRG91YmxlKGRv
dWJsZSBsZWZ0LCBkb3VibGUgcmlnaHQsIGJvb2wgcmVzdWx0KQogfQogCiBleHRlcm4gIkMiIHsK
LXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lO
VEVSTkFMKHNpbXBsZUZ1bmN0aW9uLCBpbnQsIChpbnQsIGludCkpOworc3RhdGljIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwoc2ltcGxlRnVuY3Rpb24sIGlu
dCwgKGludCwgaW50KSk7CiB9Ci1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oc2lt
cGxlRnVuY3Rpb24sIGludCwgKGludCBhLCBpbnQgYikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04oc2ltcGxlRnVuY3Rpb24sIGludCwgKGludCBhLCBpbnQgYikpCiB7CiAgICAgcmV0dXJuIGEg
KyBiOwogfQpAQCAtMjA2MCw5ICsyMDYwLDkgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZVB1cmUoaW50
IGEsIGludCBiKQogCiAKIGV4dGVybiAiQyIgewotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBU
X0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwoZnVuY3Rpb25XaXRoSGVsbGFBcmd1
bWVudHMsIGludCwgKGludCBhLCBpbnQgYiwgaW50IGMsIGludCBkLCBpbnQgZSwgaW50IGYsIGlu
dCBnLCBpbnQgaCwgaW50IGksIGludCBqLCBpbnQgaywgaW50IGwsIGludCBtLCBpbnQgbiwgaW50
IG8sIGludCBwLCBpbnQgcSwgaW50IHIsIGludCBzLCBpbnQgdCwgaW50IHUsIGludCB2LCBpbnQg
dywgaW50IHgsIGludCB5LCBpbnQgeikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T05fV0lUSE9VVF9XVEZfSU5URVJOQUwoZnVuY3Rpb25XaXRoSGVsbGFBcmd1bWVudHMsIGludCwg
KGludCBhLCBpbnQgYiwgaW50IGMsIGludCBkLCBpbnQgZSwgaW50IGYsIGludCBnLCBpbnQgaCwg
aW50IGksIGludCBqLCBpbnQgaywgaW50IGwsIGludCBtLCBpbnQgbiwgaW50IG8sIGludCBwLCBp
bnQgcSwgaW50IHIsIGludCBzLCBpbnQgdCwgaW50IHUsIGludCB2LCBpbnQgdywgaW50IHgsIGlu
dCB5LCBpbnQgeikpOwogfQotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKGZ1bmN0
aW9uV2l0aEhlbGxhQXJndW1lbnRzLCBpbnQsIChpbnQgYSwgaW50IGIsIGludCBjLCBpbnQgZCwg
aW50IGUsIGludCBmLCBpbnQgZywgaW50IGgsIGludCBpLCBpbnQgaiwgaW50IGssIGludCBsLCBp
bnQgbSwgaW50IG4sIGludCBvLCBpbnQgcCwgaW50IHEsIGludCByLCBpbnQgcywgaW50IHQsIGlu
dCB1LCBpbnQgdiwgaW50IHcsIGludCB4LCBpbnQgeSwgaW50IHopKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKGZ1bmN0aW9uV2l0aEhlbGxhQXJndW1lbnRzLCBpbnQsIChpbnQgYSwgaW50IGIs
IGludCBjLCBpbnQgZCwgaW50IGUsIGludCBmLCBpbnQgZywgaW50IGgsIGludCBpLCBpbnQgaiwg
aW50IGssIGludCBsLCBpbnQgbSwgaW50IG4sIGludCBvLCBpbnQgcCwgaW50IHEsIGludCByLCBp
bnQgcywgaW50IHQsIGludCB1LCBpbnQgdiwgaW50IHcsIGludCB4LCBpbnQgeSwgaW50IHopKQog
ewogICAgIHJldHVybiAoYSA8PCAwKSArIChiIDw8IDEpICsgKGMgPDwgMikgKyAoZCA8PCAzKSAr
IChlIDw8IDQpICsgKGYgPDwgNSkgKyAoZyA8PCA2KSArIChoIDw8IDcpICsgKGkgPDwgOCkgKyAo
aiA8PCA5KSArIChrIDw8IDEwKSArIChsIDw8IDExKSArIChtIDw8IDEyKSArIChuIDw8IDEzKSAr
IChvIDw8IDE0KSArIChwIDw8IDE1KSArIChxIDw8IDE2KSArIChyIDw8IDE3KSArIChzIDw8IDE4
KSArICh0IDw8IDE5KSArICh1IDw8IDIwKSArICh2IDw8IDIxKSArICh3IDw8IDIyKSArICh4IDw8
IDIzKSArICh5IDw8IDI0KSArICh6IDw8IDI1KTsKIH0KQEAgLTIwODcsOSArMjA4Nyw5IEBAIHZv
aWQgdGVzdENhbGxGdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cygpCiB9CiAKIGV4dGVybiAiQyIg
ewotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZf
SU5URVJOQUwoZnVuY3Rpb25XaXRoSGVsbGFBcmd1bWVudHMyLCB1aW50NjRfdCwgKHVpbnQ2NF90
IGEsIHVpbnQ2NF90IGIsIHVpbnQ2NF90IGMsIHVpbnQ2NF90IGQsIHVpbnQ2NF90IGUsIHVpbnQ2
NF90IGYsIHVpbnQ2NF90IGcsIHVpbnQ2NF90IGgsIHVpbnQ2NF90IGksIHVpbnQ2NF90IGosIHVp
bnQ2NF90IGssIHVpbnQ2NF90IGwsIHVpbnQ2NF90IG0sIHVpbnQ2NF90IG4sIHVpbnQ2NF90IG8s
IHVpbnQ2NF90IHAsIHVpbnQ2NF90IHEsIHVpbnQ2NF90IHIsIHVpbnQ2NF90IHMsIHVpbnQ2NF90
IHQsIHVpbnQ2NF90IHUsIHVpbnQ2NF90IHYsIHVpbnQ2NF90IHcsIHVpbnQ2NF90IHgsIHVpbnQ2
NF90IHksIHVpbnQ2NF90IHopKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJ
VEhPVVRfV1RGX0lOVEVSTkFMKGZ1bmN0aW9uV2l0aEhlbGxhQXJndW1lbnRzMiwgdWludDY0X3Qs
ICh1aW50NjRfdCBhLCB1aW50NjRfdCBiLCB1aW50NjRfdCBjLCB1aW50NjRfdCBkLCB1aW50NjRf
dCBlLCB1aW50NjRfdCBmLCB1aW50NjRfdCBnLCB1aW50NjRfdCBoLCB1aW50NjRfdCBpLCB1aW50
NjRfdCBqLCB1aW50NjRfdCBrLCB1aW50NjRfdCBsLCB1aW50NjRfdCBtLCB1aW50NjRfdCBuLCB1
aW50NjRfdCBvLCB1aW50NjRfdCBwLCB1aW50NjRfdCBxLCB1aW50NjRfdCByLCB1aW50NjRfdCBz
LCB1aW50NjRfdCB0LCB1aW50NjRfdCB1LCB1aW50NjRfdCB2LCB1aW50NjRfdCB3LCB1aW50NjRf
dCB4LCB1aW50NjRfdCB5LCB1aW50NjRfdCB6KSk7CiB9Ci1KU0NfREVGSU5FX05PRVhDRVBUX0pJ
VF9PUEVSQVRJT04oZnVuY3Rpb25XaXRoSGVsbGFBcmd1bWVudHMyLCB1aW50NjRfdCwgKHVpbnQ2
NF90IGEsIHVpbnQ2NF90IGIsIHVpbnQ2NF90IGMsIHVpbnQ2NF90IGQsIHVpbnQ2NF90IGUsIHVp
bnQ2NF90IGYsIHVpbnQ2NF90IGcsIHVpbnQ2NF90IGgsIHVpbnQ2NF90IGksIHVpbnQ2NF90IGos
IHVpbnQ2NF90IGssIHVpbnQ2NF90IGwsIHVpbnQ2NF90IG0sIHVpbnQ2NF90IG4sIHVpbnQ2NF90
IG8sIHVpbnQ2NF90IHAsIHVpbnQ2NF90IHEsIHVpbnQ2NF90IHIsIHVpbnQ2NF90IHMsIHVpbnQ2
NF90IHQsIHVpbnQ2NF90IHUsIHVpbnQ2NF90IHYsIHVpbnQ2NF90IHcsIHVpbnQ2NF90IHgsIHVp
bnQ2NF90IHksIHVpbnQ2NF90IHopKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGZ1bmN0aW9u
V2l0aEhlbGxhQXJndW1lbnRzMiwgdWludDY0X3QsICh1aW50NjRfdCBhLCB1aW50NjRfdCBiLCB1
aW50NjRfdCBjLCB1aW50NjRfdCBkLCB1aW50NjRfdCBlLCB1aW50NjRfdCBmLCB1aW50NjRfdCBn
LCB1aW50NjRfdCBoLCB1aW50NjRfdCBpLCB1aW50NjRfdCBqLCB1aW50NjRfdCBrLCB1aW50NjRf
dCBsLCB1aW50NjRfdCBtLCB1aW50NjRfdCBuLCB1aW50NjRfdCBvLCB1aW50NjRfdCBwLCB1aW50
NjRfdCBxLCB1aW50NjRfdCByLCB1aW50NjRfdCBzLCB1aW50NjRfdCB0LCB1aW50NjRfdCB1LCB1
aW50NjRfdCB2LCB1aW50NjRfdCB3LCB1aW50NjRfdCB4LCB1aW50NjRfdCB5LCB1aW50NjRfdCB6
KSkKIHsKICAgICByZXR1cm4gKGEgPDwgMCkgKyAoYiA8PCAxKSArIChjIDw8IDIpICsgKGQgPDwg
MykgKyAoZSA8PCA0KSArIChmIDw8IDUpICsgKGcgPDwgNikgKyAoaCA8PCA3KSArIChpIDw8IDgp
ICsgKGogPDwgOSkgKyAoayA8PCAxMCkgKyAobCA8PCAxMSkgKyAobSA8PCAxMikgKyAobiA8PCAx
MykgKyAobyA8PCAxNCkgKyAocCA8PCAxNSkgKyAocSA8PCAxNikgKyAociA8PCAxNykgKyAocyA8
PCAxOCkgKyAodCA8PCAxOSkgKyAodSA8PCAyMCkgKyAodiA8PCAyMSkgKyAodyA8PCAyMikgKyAo
eCA8PCAyMykgKyAoeSA8PCAyNCkgKyAoeiA8PCAyNSk7CiB9CkBAIC0yMTE4LDEwICsyMTE4LDEw
IEBAIHZvaWQgdGVzdENhbGxGdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50czIoKQogfQogCiBleHRl
cm4gIkMiIHsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhP
VVRfV1RGX0lOVEVSTkFMKGZ1bmN0aW9uV2l0aEhlbGxhQXJndW1lbnRzMywgaW50LCAoaW50IGFy
ZzAsaW50IGFyZzEsaW50IGFyZzIsaW50IGFyZzMsaW50IGFyZzQsaW50IGFyZzUsaW50IGFyZzYs
aW50IGFyZzcsaW50IGFyZzgsaW50IGFyZzksaW50IGFyZzEwLGludCBhcmcxMSxpbnQgYXJnMTIs
aW50IGFyZzEzLGludCBhcmcxNCxpbnQgYXJnMTUsaW50IGFyZzE2LGludCBhcmcxNyxpbnQgYXJn
MTgsaW50IGFyZzE5LGludCBhcmcyMCxpbnQgYXJnMjEsaW50IGFyZzIyLGludCBhcmcyMyxpbnQg
YXJnMjQsaW50IGFyZzI1LGludCBhcmcyNixpbnQgYXJnMjcsaW50IGFyZzI4LGludCBhcmcyOSxp
bnQgYXJnMzAsaW50IGFyZzMxLGludCBhcmczMixpbnQgYXJnMzMsaW50IGFyZzM0LGludCBhcmcz
NSxpbnQgYXJnMzYsaW50IGFyZzM3LGludCBhcmczOCxpbnQgYXJnMzksaW50IGFyZzQwLGludCBh
cmc0MSxpbnQgYXJnNDIsaW50IGFyZzQzLGludCBhcmc0NCxpbnQgYXJnNDUsaW50IGFyZzQ2LGlu
dCBhcmc0NyxpbnQgYXJnNDgsaW50IGFyZzQ5LGludCBhcmc1MCxpbnQgYXJnNTEsaW50IGFyZzUy
LGludCBhcmc1MyxpbnQgYXJnNTQsaW50IGFyZzU1LGludCBhcmc1NixpbnQgYXJnNTcsaW50IGFy
ZzU4LGludCBhcmc1OSxpbnQgYXJnNjAsaW50IGFyZzYxLGludCBhcmc2MixpbnQgYXJnNjMsaW50
IGFyZzY0LGludCBhcmc2NSxpbnQgYXJnNjYsaW50IGFyZzY3LGludCBhcmc2OCxpbnQgYXJnNjks
aW50IGFyZzcwLGludCBhcmc3MSxpbnQgYXJnNzIsaW50IGFyZzczLGludCBhcmc3NCxpbnQgYXJn
NzUsaW50IGFyZzc2LGludCBhcmc3NyxpbnQgYXJnNzgsaW50IGFyZzc5LGludCBhcmc4MCxpbnQg
YXJnODEsaW50IGFyZzgyLGludCBhcmc4MyxpbnQgYXJnODQsaW50IGFyZzg1LGludCBhcmc4Nixp
bnQgYXJnODcsaW50IGFyZzg4LGludCBhcmc4OSxpbnQgYXJnOTAsaW50IGFyZzkxLGludCBhcmc5
MixpbnQgYXJnOTMsaW50IGFyZzk0LGludCBhcmc5NSxpbnQgYXJnOTYsaW50IGFyZzk3LGludCBh
cmc5OCxpbnQgYXJnOTksaW50IGFyZzEwMCxpbnQgYXJnMTAxLGludCBhcmcxMDIsaW50IGFyZzEw
MyxpbnQgYXJnMTA0LGludCBhcmcxMDUsaW50IGFyZzEwNixpbnQgYXJnMTA3LGludCBhcmcxMDgs
aW50IGFyZzEwOSxpbnQgYXJnMTEwLGludCBhcmcxMTEsaW50IGFyZzExMixpbnQgYXJnMTEzLGlu
dCBhcmcxMTQsaW50IGFyZzExNSxpbnQgYXJnMTE2LGludCBhcmcxMTcsaW50IGFyZzExOCxpbnQg
YXJnMTE5LGludCBhcmcxMjAsaW50IGFyZzEyMSxpbnQgYXJnMTIyLGludCBhcmcxMjMsaW50IGFy
ZzEyNCxpbnQgYXJnMTI1LGludCBhcmcxMjYsaW50IGFyZzEyNyxpbnQgYXJnMTI4LGludCBhcmcx
MjksaW50IGFyZzEzMCxpbnQgYXJnMTMxLGludCBhcmcxMzIsaW50IGFyZzEzMyxpbnQgYXJnMTM0
LGludCBhcmcxMzUsaW50IGFyZzEzNixpbnQgYXJnMTM3LGludCBhcmcxMzgsaW50IGFyZzEzOSxp
bnQgYXJnMTQwLGludCBhcmcxNDEsaW50IGFyZzE0MixpbnQgYXJnMTQzLGludCBhcmcxNDQsaW50
IGFyZzE0NSxpbnQgYXJnMTQ2LGludCBhcmcxNDcsaW50IGFyZzE0OCxpbnQgYXJnMTQ5LGludCBh
cmcxNTAsaW50IGFyZzE1MSxpbnQgYXJnMTUyLGludCBhcmcxNTMsaW50IGFyZzE1NCxpbnQgYXJn
MTU1LGludCBhcmcxNTYsaW50IGFyZzE1NyxpbnQgYXJnMTU4LGludCBhcmcxNTksaW50IGFyZzE2
MCxpbnQgYXJnMTYxLGludCBhcmcxNjIsaW50IGFyZzE2MyxpbnQgYXJnMTY0LGludCBhcmcxNjUs
aW50IGFyZzE2NixpbnQgYXJnMTY3LGludCBhcmcxNjgsaW50IGFyZzE2OSxpbnQgYXJnMTcwLGlu
dCBhcmcxNzEsaW50IGFyZzE3MixpbnQgYXJnMTczLGludCBhcmcxNzQsaW50IGFyZzE3NSxpbnQg
YXJnMTc2LGludCBhcmcxNzcsaW50IGFyZzE3OCxpbnQgYXJnMTc5LGludCBhcmcxODAsaW50IGFy
ZzE4MSxpbnQgYXJnMTgyLGludCBhcmcxODMsaW50IGFyZzE4NCxpbnQgYXJnMTg1LGludCBhcmcx
ODYsaW50IGFyZzE4NyxpbnQgYXJnMTg4LGludCBhcmcxODksaW50IGFyZzE5MCxpbnQgYXJnMTkx
LGludCBhcmcxOTIsaW50IGFyZzE5MyxpbnQgYXJnMTk0LGludCBhcmcxOTUsaW50IGFyZzE5Nixp
bnQgYXJnMTk3LGludCBhcmcxOTgsaW50IGFyZzE5OSxpbnQgYXJnMjAwLGludCBhcmcyMDEsaW50
IGFyZzIwMixpbnQgYXJnMjAzLGludCBhcmcyMDQsaW50IGFyZzIwNSxpbnQgYXJnMjA2LGludCBh
cmcyMDcsaW50IGFyZzIwOCxpbnQgYXJnMjA5LGludCBhcmcyMTAsaW50IGFyZzIxMSxpbnQgYXJn
MjEyLGludCBhcmcyMTMsaW50IGFyZzIxNCxpbnQgYXJnMjE1LGludCBhcmcyMTYsaW50IGFyZzIx
NyxpbnQgYXJnMjE4LGludCBhcmcyMTksaW50IGFyZzIyMCxpbnQgYXJnMjIxLGludCBhcmcyMjIs
aW50IGFyZzIyMyxpbnQgYXJnMjI0LGludCBhcmcyMjUsaW50IGFyZzIyNixpbnQgYXJnMjI3LGlu
dCBhcmcyMjgsaW50IGFyZzIyOSxpbnQgYXJnMjMwLGludCBhcmcyMzEsaW50IGFyZzIzMixpbnQg
YXJnMjMzLGludCBhcmcyMzQsaW50IGFyZzIzNSxpbnQgYXJnMjM2LGludCBhcmcyMzcsaW50IGFy
ZzIzOCxpbnQgYXJnMjM5LGludCBhcmcyNDAsaW50IGFyZzI0MSxpbnQgYXJnMjQyLGludCBhcmcy
NDMsaW50IGFyZzI0NCxpbnQgYXJnMjQ1LGludCBhcmcyNDYsaW50IGFyZzI0NyxpbnQgYXJnMjQ4
LGludCBhcmcyNDksaW50IGFyZzI1MCxpbnQgYXJnMjUxLGludCBhcmcyNTIsaW50IGFyZzI1Myxp
bnQgYXJnMjU0LGludCBhcmcyNTUsaW50IGFyZzI1NixpbnQgYXJnMjU3LGludCBhcmcyNTgsaW50
IGFyZzI1OSxpbnQgYXJnMjYwLGludCBhcmcyNjEsaW50IGFyZzI2MixpbnQgYXJnMjYzLGludCBh
cmcyNjQsaW50IGFyZzI2NSxpbnQgYXJnMjY2LGludCBhcmcyNjcsaW50IGFyZzI2OCxpbnQgYXJn
MjY5LGludCBhcmcyNzAsaW50IGFyZzI3MSxpbnQgYXJnMjcyLGludCBhcmcyNzMsaW50IGFyZzI3
NCxpbnQgYXJnMjc1LGludCBhcmcyNzYsaW50IGFyZzI3NyxpbnQgYXJnMjc4LGludCBhcmcyNzks
aW50IGFyZzI4MCxpbnQgYXJnMjgxLGludCBhcmcyODIsaW50IGFyZzI4MyxpbnQgYXJnMjg0LGlu
dCBhcmcyODUsaW50IGFyZzI4NixpbnQgYXJnMjg3LGludCBhcmcyODgsaW50IGFyZzI4OSxpbnQg
YXJnMjkwLGludCBhcmcyOTEsaW50IGFyZzI5MixpbnQgYXJnMjkzLGludCBhcmcyOTQsaW50IGFy
ZzI5NSxpbnQgYXJnMjk2LGludCBhcmcyOTcsaW50IGFyZzI5OCxpbnQgYXJnMjk5LGludCBhcmcz
MDAsaW50IGFyZzMwMSxpbnQgYXJnMzAyLGludCBhcmczMDMsaW50IGFyZzMwNCxpbnQgYXJnMzA1
LGludCBhcmczMDYsaW50IGFyZzMwNyxpbnQgYXJnMzA4LGludCBhcmczMDksaW50IGFyZzMxMCxp
bnQgYXJnMzExLGludCBhcmczMTIsaW50IGFyZzMxMyxpbnQgYXJnMzE0LGludCBhcmczMTUsaW50
IGFyZzMxNixpbnQgYXJnMzE3LGludCBhcmczMTgsaW50IGFyZzMxOSxpbnQgYXJnMzIwLGludCBh
cmczMjEsaW50IGFyZzMyMixpbnQgYXJnMzIzLGludCBhcmczMjQsaW50IGFyZzMyNSxpbnQgYXJn
MzI2LGludCBhcmczMjcsaW50IGFyZzMyOCxpbnQgYXJnMzI5LGludCBhcmczMzAsaW50IGFyZzMz
MSxpbnQgYXJnMzMyLGludCBhcmczMzMsaW50IGFyZzMzNCxpbnQgYXJnMzM1LGludCBhcmczMzYs
aW50IGFyZzMzNyxpbnQgYXJnMzM4LGludCBhcmczMzksaW50IGFyZzM0MCxpbnQgYXJnMzQxLGlu
dCBhcmczNDIsaW50IGFyZzM0MyxpbnQgYXJnMzQ0LGludCBhcmczNDUsaW50IGFyZzM0NixpbnQg
YXJnMzQ3LGludCBhcmczNDgsaW50IGFyZzM0OSxpbnQgYXJnMzUwLGludCBhcmczNTEsaW50IGFy
ZzM1MixpbnQgYXJnMzUzLGludCBhcmczNTQsaW50IGFyZzM1NSxpbnQgYXJnMzU2LGludCBhcmcz
NTcsaW50IGFyZzM1OCxpbnQgYXJnMzU5LGludCBhcmczNjAsaW50IGFyZzM2MSxpbnQgYXJnMzYy
LGludCBhcmczNjMsaW50IGFyZzM2NCxpbnQgYXJnMzY1LGludCBhcmczNjYsaW50IGFyZzM2Nyxp
bnQgYXJnMzY4LGludCBhcmczNjksaW50IGFyZzM3MCxpbnQgYXJnMzcxLGludCBhcmczNzIsaW50
IGFyZzM3MyxpbnQgYXJnMzc0LGludCBhcmczNzUsaW50IGFyZzM3NixpbnQgYXJnMzc3LGludCBh
cmczNzgsaW50IGFyZzM3OSxpbnQgYXJnMzgwLGludCBhcmczODEsaW50IGFyZzM4MixpbnQgYXJn
MzgzLGludCBhcmczODQsaW50IGFyZzM4NSxpbnQgYXJnMzg2LGludCBhcmczODcsaW50IGFyZzM4
OCxpbnQgYXJnMzg5LGludCBhcmczOTAsaW50IGFyZzM5MSxpbnQgYXJnMzkyLGludCBhcmczOTMs
aW50IGFyZzM5NCxpbnQgYXJnMzk1LGludCBhcmczOTYsaW50IGFyZzM5NyxpbnQgYXJnMzk4LGlu
dCBhcmczOTksaW50IGFyZzQwMCxpbnQgYXJnNDAxLGludCBhcmc0MDIsaW50IGFyZzQwMyxpbnQg
YXJnNDA0LGludCBhcmc0MDUsaW50IGFyZzQwNixpbnQgYXJnNDA3LGludCBhcmc0MDgsaW50IGFy
ZzQwOSxpbnQgYXJnNDEwLGludCBhcmc0MTEsaW50IGFyZzQxMixpbnQgYXJnNDEzLGludCBhcmc0
MTQsaW50IGFyZzQxNSxpbnQgYXJnNDE2LGludCBhcmc0MTcsaW50IGFyZzQxOCxpbnQgYXJnNDE5
LGludCBhcmc0MjAsaW50IGFyZzQyMSxpbnQgYXJnNDIyLGludCBhcmc0MjMsaW50IGFyZzQyNCxp
bnQgYXJnNDI1LGludCBhcmc0MjYsaW50IGFyZzQyNyxpbnQgYXJnNDI4LGludCBhcmc0MjksaW50
IGFyZzQzMCxpbnQgYXJnNDMxLGludCBhcmc0MzIsaW50IGFyZzQzMyxpbnQgYXJnNDM0LGludCBh
cmc0MzUsaW50IGFyZzQzNixpbnQgYXJnNDM3LGludCBhcmc0MzgsaW50IGFyZzQzOSxpbnQgYXJn
NDQwLGludCBhcmc0NDEsaW50IGFyZzQ0MixpbnQgYXJnNDQzLGludCBhcmc0NDQsaW50IGFyZzQ0
NSxpbnQgYXJnNDQ2LGludCBhcmc0NDcsaW50IGFyZzQ0OCxpbnQgYXJnNDQ5LGludCBhcmc0NTAs
aW50IGFyZzQ1MSxpbnQgYXJnNDUyLGludCBhcmc0NTMsaW50IGFyZzQ1NCxpbnQgYXJnNDU1LGlu
dCBhcmc0NTYsaW50IGFyZzQ1NyxpbnQgYXJnNDU4LGludCBhcmc0NTksaW50IGFyZzQ2MCxpbnQg
YXJnNDYxLGludCBhcmc0NjIsaW50IGFyZzQ2MyxpbnQgYXJnNDY0LGludCBhcmc0NjUsaW50IGFy
ZzQ2NixpbnQgYXJnNDY3LGludCBhcmc0NjgsaW50IGFyZzQ2OSxpbnQgYXJnNDcwLGludCBhcmc0
NzEsaW50IGFyZzQ3MixpbnQgYXJnNDczLGludCBhcmc0NzQsaW50IGFyZzQ3NSxpbnQgYXJnNDc2
LGludCBhcmc0NzcsaW50IGFyZzQ3OCxpbnQgYXJnNDc5LGludCBhcmc0ODAsaW50IGFyZzQ4MSxp
bnQgYXJnNDgyLGludCBhcmc0ODMsaW50IGFyZzQ4NCxpbnQgYXJnNDg1LGludCBhcmc0ODYsaW50
IGFyZzQ4NyxpbnQgYXJnNDg4LGludCBhcmc0ODksaW50IGFyZzQ5MCxpbnQgYXJnNDkxLGludCBh
cmc0OTIsaW50IGFyZzQ5MyxpbnQgYXJnNDk0LGludCBhcmc0OTUsaW50IGFyZzQ5NixpbnQgYXJn
NDk3LGludCBhcmc0OTgsaW50IGFyZzQ5OSxpbnQgYXJnNTAwLGludCBhcmc1MDEsaW50IGFyZzUw
MixpbnQgYXJnNTAzLGludCBhcmc1MDQsaW50IGFyZzUwNSxpbnQgYXJnNTA2LGludCBhcmc1MDcs
aW50IGFyZzUwOCxpbnQgYXJnNTA5LGludCBhcmc1MTAsaW50IGFyZzUxMSxpbnQgYXJnNTEyLGlu
dCBhcmc1MTMsaW50IGFyZzUxNCxpbnQgYXJnNTE1LGludCBhcmc1MTYsaW50IGFyZzUxNyxpbnQg
YXJnNTE4LGludCBhcmc1MTksaW50IGFyZzUyMCxpbnQgYXJnNTIxLGludCBhcmc1MjIsaW50IGFy
ZzUyMyxpbnQgYXJnNTI0LGludCBhcmc1MjUsaW50IGFyZzUyNixpbnQgYXJnNTI3LGludCBhcmc1
MjgsaW50IGFyZzUyOSxpbnQgYXJnNTMwLGludCBhcmc1MzEsaW50IGFyZzUzMixpbnQgYXJnNTMz
LGludCBhcmc1MzQsaW50IGFyZzUzNSxpbnQgYXJnNTM2LGludCBhcmc1MzcsaW50IGFyZzUzOCxp
bnQgYXJnNTM5LGludCBhcmc1NDAsaW50IGFyZzU0MSxpbnQgYXJnNTQyLGludCBhcmc1NDMsaW50
IGFyZzU0NCxpbnQgYXJnNTQ1LGludCBhcmc1NDYsaW50IGFyZzU0NyxpbnQgYXJnNTQ4LGludCBh
cmc1NDksaW50IGFyZzU1MCxpbnQgYXJnNTUxLGludCBhcmc1NTIsaW50IGFyZzU1MyxpbnQgYXJn
NTU0LGludCBhcmc1NTUsaW50IGFyZzU1NixpbnQgYXJnNTU3LGludCBhcmc1NTgsaW50IGFyZzU1
OSxpbnQgYXJnNTYwLGludCBhcmc1NjEsaW50IGFyZzU2MixpbnQgYXJnNTYzLGludCBhcmc1NjQs
aW50IGFyZzU2NSxpbnQgYXJnNTY2LGludCBhcmc1NjcsaW50IGFyZzU2OCxpbnQgYXJnNTY5LGlu
dCBhcmc1NzAsaW50IGFyZzU3MSxpbnQgYXJnNTcyLGludCBhcmc1NzMsaW50IGFyZzU3NCxpbnQg
YXJnNTc1LGludCBhcmc1NzYsaW50IGFyZzU3NyxpbnQgYXJnNTc4LGludCBhcmc1NzksaW50IGFy
ZzU4MCxpbnQgYXJnNTgxLGludCBhcmc1ODIsaW50IGFyZzU4MyxpbnQgYXJnNTg0LGludCBhcmc1
ODUsaW50IGFyZzU4NixpbnQgYXJnNTg3LGludCBhcmc1ODgsaW50IGFyZzU4OSxpbnQgYXJnNTkw
LGludCBhcmc1OTEsaW50IGFyZzU5MixpbnQgYXJnNTkzLGludCBhcmc1OTQsaW50IGFyZzU5NSxp
bnQgYXJnNTk2LGludCBhcmc1OTcsaW50IGFyZzU5OCxpbnQgYXJnNTk5LGludCBhcmc2MDAsaW50
IGFyZzYwMSxpbnQgYXJnNjAyLGludCBhcmc2MDMsaW50IGFyZzYwNCxpbnQgYXJnNjA1LGludCBh
cmc2MDYsaW50IGFyZzYwNyxpbnQgYXJnNjA4LGludCBhcmc2MDksaW50IGFyZzYxMCxpbnQgYXJn
NjExLGludCBhcmc2MTIsaW50IGFyZzYxMyxpbnQgYXJnNjE0LGludCBhcmc2MTUsaW50IGFyZzYx
NixpbnQgYXJnNjE3LGludCBhcmc2MTgsaW50IGFyZzYxOSxpbnQgYXJnNjIwLGludCBhcmc2MjEs
aW50IGFyZzYyMixpbnQgYXJnNjIzLGludCBhcmc2MjQsaW50IGFyZzYyNSxpbnQgYXJnNjI2LGlu
dCBhcmc2MjcsaW50IGFyZzYyOCxpbnQgYXJnNjI5LGludCBhcmc2MzAsaW50IGFyZzYzMSxpbnQg
YXJnNjMyLGludCBhcmc2MzMsaW50IGFyZzYzNCxpbnQgYXJnNjM1LGludCBhcmc2MzYsaW50IGFy
ZzYzNyxpbnQgYXJnNjM4LGludCBhcmc2MzksaW50IGFyZzY0MCxpbnQgYXJnNjQxLGludCBhcmc2
NDIsaW50IGFyZzY0MyxpbnQgYXJnNjQ0LGludCBhcmc2NDUsaW50IGFyZzY0NixpbnQgYXJnNjQ3
LGludCBhcmc2NDgsaW50IGFyZzY0OSxpbnQgYXJnNjUwLGludCBhcmc2NTEsaW50IGFyZzY1Mixp
bnQgYXJnNjUzLGludCBhcmc2NTQsaW50IGFyZzY1NSxpbnQgYXJnNjU2LGludCBhcmc2NTcsaW50
IGFyZzY1OCxpbnQgYXJnNjU5LGludCBhcmc2NjAsaW50IGFyZzY2MSxpbnQgYXJnNjYyLGludCBh
cmc2NjMsaW50IGFyZzY2NCxpbnQgYXJnNjY1LGludCBhcmc2NjYsaW50IGFyZzY2NyxpbnQgYXJn
NjY4LGludCBhcmc2NjksaW50IGFyZzY3MCxpbnQgYXJnNjcxLGludCBhcmc2NzIsaW50IGFyZzY3
MyxpbnQgYXJnNjc0LGludCBhcmc2NzUsaW50IGFyZzY3NixpbnQgYXJnNjc3LGludCBhcmc2Nzgs
aW50IGFyZzY3OSxpbnQgYXJnNjgwLGludCBhcmc2ODEsaW50IGFyZzY4MixpbnQgYXJnNjgzLGlu
dCBhcmc2ODQsaW50IGFyZzY4NSxpbnQgYXJnNjg2LGludCBhcmc2ODcsaW50IGFyZzY4OCxpbnQg
YXJnNjg5LGludCBhcmc2OTAsaW50IGFyZzY5MSxpbnQgYXJnNjkyLGludCBhcmc2OTMsaW50IGFy
ZzY5NCxpbnQgYXJnNjk1LGludCBhcmc2OTYsaW50IGFyZzY5NyxpbnQgYXJnNjk4LGludCBhcmc2
OTksaW50IGFyZzcwMCxpbnQgYXJnNzAxLGludCBhcmc3MDIsaW50IGFyZzcwMyxpbnQgYXJnNzA0
LGludCBhcmc3MDUsaW50IGFyZzcwNixpbnQgYXJnNzA3LGludCBhcmc3MDgsaW50IGFyZzcwOSxp
bnQgYXJnNzEwLGludCBhcmc3MTEsaW50IGFyZzcxMixpbnQgYXJnNzEzLGludCBhcmc3MTQsaW50
IGFyZzcxNSxpbnQgYXJnNzE2LGludCBhcmc3MTcsaW50IGFyZzcxOCxpbnQgYXJnNzE5LGludCBh
cmc3MjAsaW50IGFyZzcyMSxpbnQgYXJnNzIyLGludCBhcmc3MjMsaW50IGFyZzcyNCxpbnQgYXJn
NzI1LGludCBhcmc3MjYsaW50IGFyZzcyNyxpbnQgYXJnNzI4LGludCBhcmc3MjksaW50IGFyZzcz
MCxpbnQgYXJnNzMxLGludCBhcmc3MzIsaW50IGFyZzczMyxpbnQgYXJnNzM0LGludCBhcmc3MzUs
aW50IGFyZzczNixpbnQgYXJnNzM3LGludCBhcmc3MzgsaW50IGFyZzczOSxpbnQgYXJnNzQwLGlu
dCBhcmc3NDEsaW50IGFyZzc0MixpbnQgYXJnNzQzLGludCBhcmc3NDQsaW50IGFyZzc0NSxpbnQg
YXJnNzQ2LGludCBhcmc3NDcsaW50IGFyZzc0OCxpbnQgYXJnNzQ5LGludCBhcmc3NTAsaW50IGFy
Zzc1MSxpbnQgYXJnNzUyLGludCBhcmc3NTMsaW50IGFyZzc1NCxpbnQgYXJnNzU1LGludCBhcmc3
NTYsaW50IGFyZzc1NyxpbnQgYXJnNzU4LGludCBhcmc3NTksaW50IGFyZzc2MCxpbnQgYXJnNzYx
LGludCBhcmc3NjIsaW50IGFyZzc2MyxpbnQgYXJnNzY0LGludCBhcmc3NjUsaW50IGFyZzc2Nixp
bnQgYXJnNzY3LGludCBhcmc3NjgsaW50IGFyZzc2OSxpbnQgYXJnNzcwLGludCBhcmc3NzEsaW50
IGFyZzc3MixpbnQgYXJnNzczLGludCBhcmc3NzQsaW50IGFyZzc3NSxpbnQgYXJnNzc2LGludCBh
cmc3NzcsaW50IGFyZzc3OCxpbnQgYXJnNzc5LGludCBhcmc3ODAsaW50IGFyZzc4MSxpbnQgYXJn
NzgyLGludCBhcmc3ODMsaW50IGFyZzc4NCxpbnQgYXJnNzg1LGludCBhcmc3ODYsaW50IGFyZzc4
NyxpbnQgYXJnNzg4LGludCBhcmc3ODksaW50IGFyZzc5MCxpbnQgYXJnNzkxLGludCBhcmc3OTIs
aW50IGFyZzc5MyxpbnQgYXJnNzk0LGludCBhcmc3OTUsaW50IGFyZzc5NixpbnQgYXJnNzk3LGlu
dCBhcmc3OTgsaW50IGFyZzc5OSxpbnQgYXJnODAwLGludCBhcmc4MDEsaW50IGFyZzgwMixpbnQg
YXJnODAzLGludCBhcmc4MDQsaW50IGFyZzgwNSxpbnQgYXJnODA2LGludCBhcmc4MDcsaW50IGFy
ZzgwOCxpbnQgYXJnODA5LGludCBhcmc4MTAsaW50IGFyZzgxMSxpbnQgYXJnODEyLGludCBhcmc4
MTMsaW50IGFyZzgxNCxpbnQgYXJnODE1LGludCBhcmc4MTYsaW50IGFyZzgxNyxpbnQgYXJnODE4
LGludCBhcmc4MTksaW50IGFyZzgyMCxpbnQgYXJnODIxLGludCBhcmc4MjIsaW50IGFyZzgyMyxp
bnQgYXJnODI0LGludCBhcmc4MjUsaW50IGFyZzgyNixpbnQgYXJnODI3LGludCBhcmc4MjgsaW50
IGFyZzgyOSxpbnQgYXJnODMwLGludCBhcmc4MzEsaW50IGFyZzgzMixpbnQgYXJnODMzLGludCBh
cmc4MzQsaW50IGFyZzgzNSxpbnQgYXJnODM2LGludCBhcmc4MzcsaW50IGFyZzgzOCxpbnQgYXJn
ODM5LGludCBhcmc4NDAsaW50IGFyZzg0MSxpbnQgYXJnODQyLGludCBhcmc4NDMsaW50IGFyZzg0
NCxpbnQgYXJnODQ1LGludCBhcmc4NDYsaW50IGFyZzg0NyxpbnQgYXJnODQ4LGludCBhcmc4NDks
aW50IGFyZzg1MCxpbnQgYXJnODUxLGludCBhcmc4NTIsaW50IGFyZzg1MyxpbnQgYXJnODU0LGlu
dCBhcmc4NTUsaW50IGFyZzg1NixpbnQgYXJnODU3LGludCBhcmc4NTgsaW50IGFyZzg1OSxpbnQg
YXJnODYwLGludCBhcmc4NjEsaW50IGFyZzg2MixpbnQgYXJnODYzLGludCBhcmc4NjQsaW50IGFy
Zzg2NSxpbnQgYXJnODY2LGludCBhcmc4NjcsaW50IGFyZzg2OCxpbnQgYXJnODY5LGludCBhcmc4
NzAsaW50IGFyZzg3MSxpbnQgYXJnODcyLGludCBhcmc4NzMsaW50IGFyZzg3NCxpbnQgYXJnODc1
LGludCBhcmc4NzYsaW50IGFyZzg3NyxpbnQgYXJnODc4LGludCBhcmc4NzksaW50IGFyZzg4MCxp
bnQgYXJnODgxLGludCBhcmc4ODIsaW50IGFyZzg4MyxpbnQgYXJnODg0LGludCBhcmc4ODUsaW50
IGFyZzg4NixpbnQgYXJnODg3LGludCBhcmc4ODgsaW50IGFyZzg4OSxpbnQgYXJnODkwLGludCBh
cmc4OTEsaW50IGFyZzg5MixpbnQgYXJnODkzLGludCBhcmc4OTQsaW50IGFyZzg5NSxpbnQgYXJn
ODk2LGludCBhcmc4OTcsaW50IGFyZzg5OCxpbnQgYXJnODk5LGludCBhcmc5MDAsaW50IGFyZzkw
MSxpbnQgYXJnOTAyLGludCBhcmc5MDMsaW50IGFyZzkwNCxpbnQgYXJnOTA1LGludCBhcmc5MDYs
aW50IGFyZzkwNyxpbnQgYXJnOTA4LGludCBhcmc5MDksaW50IGFyZzkxMCxpbnQgYXJnOTExLGlu
dCBhcmc5MTIsaW50IGFyZzkxMyxpbnQgYXJnOTE0LGludCBhcmc5MTUsaW50IGFyZzkxNixpbnQg
YXJnOTE3LGludCBhcmc5MTgsaW50IGFyZzkxOSxpbnQgYXJnOTIwLGludCBhcmc5MjEsaW50IGFy
ZzkyMixpbnQgYXJnOTIzLGludCBhcmc5MjQsaW50IGFyZzkyNSxpbnQgYXJnOTI2LGludCBhcmc5
MjcsaW50IGFyZzkyOCxpbnQgYXJnOTI5LGludCBhcmc5MzAsaW50IGFyZzkzMSxpbnQgYXJnOTMy
LGludCBhcmc5MzMsaW50IGFyZzkzNCxpbnQgYXJnOTM1LGludCBhcmc5MzYsaW50IGFyZzkzNyxp
bnQgYXJnOTM4LGludCBhcmc5MzksaW50IGFyZzk0MCxpbnQgYXJnOTQxLGludCBhcmc5NDIsaW50
IGFyZzk0MyxpbnQgYXJnOTQ0LGludCBhcmc5NDUsaW50IGFyZzk0NixpbnQgYXJnOTQ3LGludCBh
cmc5NDgsaW50IGFyZzk0OSxpbnQgYXJnOTUwLGludCBhcmc5NTEsaW50IGFyZzk1MixpbnQgYXJn
OTUzLGludCBhcmc5NTQsaW50IGFyZzk1NSxpbnQgYXJnOTU2LGludCBhcmc5NTcsaW50IGFyZzk1
OCxpbnQgYXJnOTU5LGludCBhcmc5NjAsaW50IGFyZzk2MSxpbnQgYXJnOTYyLGludCBhcmc5NjMs
aW50IGFyZzk2NCxpbnQgYXJnOTY1LGludCBhcmc5NjYsaW50IGFyZzk2NyxpbnQgYXJnOTY4LGlu
dCBhcmc5NjksaW50IGFyZzk3MCxpbnQgYXJnOTcxLGludCBhcmc5NzIsaW50IGFyZzk3MyxpbnQg
YXJnOTc0LGludCBhcmc5NzUsaW50IGFyZzk3NixpbnQgYXJnOTc3LGludCBhcmc5NzgsaW50IGFy
Zzk3OSxpbnQgYXJnOTgwLGludCBhcmc5ODEsaW50IGFyZzk4MixpbnQgYXJnOTgzLGludCBhcmc5
ODQsaW50IGFyZzk4NSxpbnQgYXJnOTg2LGludCBhcmc5ODcsaW50IGFyZzk4OCxpbnQgYXJnOTg5
LGludCBhcmc5OTAsaW50IGFyZzk5MSxpbnQgYXJnOTkyLGludCBhcmc5OTMsaW50IGFyZzk5NCxp
bnQgYXJnOTk1LGludCBhcmc5OTYsaW50IGFyZzk5NyxpbnQgYXJnOTk4LGludCBhcmc5OTksaW50
IGFyZzEwMDAsaW50IGFyZzEwMDEsaW50IGFyZzEwMDIsaW50IGFyZzEwMDMsaW50IGFyZzEwMDQs
aW50IGFyZzEwMDUsaW50IGFyZzEwMDYsaW50IGFyZzEwMDcsaW50IGFyZzEwMDgsaW50IGFyZzEw
MDksaW50IGFyZzEwMTAsaW50IGFyZzEwMTEsaW50IGFyZzEwMTIsaW50IGFyZzEwMTMsaW50IGFy
ZzEwMTQsaW50IGFyZzEwMTUsaW50IGFyZzEwMTYsaW50IGFyZzEwMTcsaW50IGFyZzEwMTgsaW50
IGFyZzEwMTksaW50IGFyZzEwMjAsaW50IGFyZzEwMjEsaW50IGFyZzEwMjIsaW50IGFyZzEwMjMs
aW50IGFyZzEwMjQsaW50IGFyZzEwMjUsaW50IGFyZzEwMjYsaW50IGFyZzEwMjcsaW50IGFyZzEw
MjgsaW50IGFyZzEwMjksaW50IGFyZzEwMzAsaW50IGFyZzEwMzEsaW50IGFyZzEwMzIsaW50IGFy
ZzEwMzMsaW50IGFyZzEwMzQsaW50IGFyZzEwMzUsaW50IGFyZzEwMzYsaW50IGFyZzEwMzcsaW50
IGFyZzEwMzgsaW50IGFyZzEwMzksaW50IGFyZzEwNDAsaW50IGFyZzEwNDEsaW50IGFyZzEwNDIs
aW50IGFyZzEwNDMsaW50IGFyZzEwNDQsaW50IGFyZzEwNDUsaW50IGFyZzEwNDYsaW50IGFyZzEw
NDcsaW50IGFyZzEwNDgsaW50IGFyZzEwNDksaW50IGFyZzEwNTAsaW50IGFyZzEwNTEsaW50IGFy
ZzEwNTIsaW50IGFyZzEwNTMsaW50IGFyZzEwNTQsaW50IGFyZzEwNTUsaW50IGFyZzEwNTYsaW50
IGFyZzEwNTcsaW50IGFyZzEwNTgsaW50IGFyZzEwNTksaW50IGFyZzEwNjAsaW50IGFyZzEwNjEs
aW50IGFyZzEwNjIsaW50IGFyZzEwNjMsaW50IGFyZzEwNjQsaW50IGFyZzEwNjUsaW50IGFyZzEw
NjYsaW50IGFyZzEwNjcsaW50IGFyZzEwNjgsaW50IGFyZzEwNjksaW50IGFyZzEwNzAsaW50IGFy
ZzEwNzEsaW50IGFyZzEwNzIsaW50IGFyZzEwNzMsaW50IGFyZzEwNzQsaW50IGFyZzEwNzUsaW50
IGFyZzEwNzYsaW50IGFyZzEwNzcsaW50IGFyZzEwNzgsaW50IGFyZzEwNzksaW50IGFyZzEwODAs
aW50IGFyZzEwODEsaW50IGFyZzEwODIsaW50IGFyZzEwODMsaW50IGFyZzEwODQsaW50IGFyZzEw
ODUsaW50IGFyZzEwODYsaW50IGFyZzEwODcsaW50IGFyZzEwODgsaW50IGFyZzEwODksaW50IGFy
ZzEwOTAsaW50IGFyZzEwOTEsaW50IGFyZzEwOTIsaW50IGFyZzEwOTMsaW50IGFyZzEwOTQsaW50
IGFyZzEwOTUsaW50IGFyZzEwOTYsaW50IGFyZzEwOTcsaW50IGFyZzEwOTgsaW50IGFyZzEwOTks
aW50IGFyZzExMDAsaW50IGFyZzExMDEsaW50IGFyZzExMDIsaW50IGFyZzExMDMsaW50IGFyZzEx
MDQsaW50IGFyZzExMDUsaW50IGFyZzExMDYsaW50IGFyZzExMDcsaW50IGFyZzExMDgsaW50IGFy
ZzExMDksaW50IGFyZzExMTAsaW50IGFyZzExMTEsaW50IGFyZzExMTIsaW50IGFyZzExMTMsaW50
IGFyZzExMTQsaW50IGFyZzExMTUsaW50IGFyZzExMTYsaW50IGFyZzExMTcsaW50IGFyZzExMTgs
aW50IGFyZzExMTksaW50IGFyZzExMjAsaW50IGFyZzExMjEsaW50IGFyZzExMjIsaW50IGFyZzEx
MjMsaW50IGFyZzExMjQsaW50IGFyZzExMjUsaW50IGFyZzExMjYsaW50IGFyZzExMjcsaW50IGFy
ZzExMjgsaW50IGFyZzExMjksaW50IGFyZzExMzAsaW50IGFyZzExMzEsaW50IGFyZzExMzIsaW50
IGFyZzExMzMsaW50IGFyZzExMzQsaW50IGFyZzExMzUsaW50IGFyZzExMzYsaW50IGFyZzExMzcs
aW50IGFyZzExMzgsaW50IGFyZzExMzksaW50IGFyZzExNDAsaW50IGFyZzExNDEsaW50IGFyZzEx
NDIsaW50IGFyZzExNDMsaW50IGFyZzExNDQsaW50IGFyZzExNDUsaW50IGFyZzExNDYsaW50IGFy
ZzExNDcsaW50IGFyZzExNDgsaW50IGFyZzExNDksaW50IGFyZzExNTAsaW50IGFyZzExNTEsaW50
IGFyZzExNTIsaW50IGFyZzExNTMsaW50IGFyZzExNTQsaW50IGFyZzExNTUsaW50IGFyZzExNTYs
aW50IGFyZzExNTcsaW50IGFyZzExNTgsaW50IGFyZzExNTksaW50IGFyZzExNjAsaW50IGFyZzEx
NjEsaW50IGFyZzExNjIsaW50IGFyZzExNjMsaW50IGFyZzExNjQsaW50IGFyZzExNjUsaW50IGFy
ZzExNjYsaW50IGFyZzExNjcsaW50IGFyZzExNjgsaW50IGFyZzExNjksaW50IGFyZzExNzAsaW50
IGFyZzExNzEsaW50IGFyZzExNzIsaW50IGFyZzExNzMsaW50IGFyZzExNzQsaW50IGFyZzExNzUs
aW50IGFyZzExNzYsaW50IGFyZzExNzcsaW50IGFyZzExNzgsaW50IGFyZzExNzksaW50IGFyZzEx
ODAsaW50IGFyZzExODEsaW50IGFyZzExODIsaW50IGFyZzExODMsaW50IGFyZzExODQsaW50IGFy
ZzExODUsaW50IGFyZzExODYsaW50IGFyZzExODcsaW50IGFyZzExODgsaW50IGFyZzExODksaW50
IGFyZzExOTAsaW50IGFyZzExOTEsaW50IGFyZzExOTIsaW50IGFyZzExOTMsaW50IGFyZzExOTQs
aW50IGFyZzExOTUsaW50IGFyZzExOTYsaW50IGFyZzExOTcsaW50IGFyZzExOTgsaW50IGFyZzEx
OTksaW50IGFyZzEyMDAsaW50IGFyZzEyMDEsaW50IGFyZzEyMDIsaW50IGFyZzEyMDMsaW50IGFy
ZzEyMDQsaW50IGFyZzEyMDUsaW50IGFyZzEyMDYsaW50IGFyZzEyMDcsaW50IGFyZzEyMDgsaW50
IGFyZzEyMDksaW50IGFyZzEyMTAsaW50IGFyZzEyMTEsaW50IGFyZzEyMTIsaW50IGFyZzEyMTMs
aW50IGFyZzEyMTQsaW50IGFyZzEyMTUsaW50IGFyZzEyMTYsaW50IGFyZzEyMTcsaW50IGFyZzEy
MTgsaW50IGFyZzEyMTksaW50IGFyZzEyMjAsaW50IGFyZzEyMjEsaW50IGFyZzEyMjIsaW50IGFy
ZzEyMjMsaW50IGFyZzEyMjQsaW50IGFyZzEyMjUsaW50IGFyZzEyMjYsaW50IGFyZzEyMjcsaW50
IGFyZzEyMjgsaW50IGFyZzEyMjksaW50IGFyZzEyMzAsaW50IGFyZzEyMzEsaW50IGFyZzEyMzIs
aW50IGFyZzEyMzMsaW50IGFyZzEyMzQsaW50IGFyZzEyMzUsaW50IGFyZzEyMzYsaW50IGFyZzEy
MzcsaW50IGFyZzEyMzgsaW50IGFyZzEyMzksaW50IGFyZzEyNDAsaW50IGFyZzEyNDEsaW50IGFy
ZzEyNDIsaW50IGFyZzEyNDMsaW50IGFyZzEyNDQsaW50IGFyZzEyNDUsaW50IGFyZzEyNDYsaW50
IGFyZzEyNDcsaW50IGFyZzEyNDgsaW50IGFyZzEyNDksaW50IGFyZzEyNTAsaW50IGFyZzEyNTEs
aW50IGFyZzEyNTIsaW50IGFyZzEyNTMsaW50IGFyZzEyNTQsaW50IGFyZzEyNTUsaW50IGFyZzEy
NTYsaW50IGFyZzEyNTcsaW50IGFyZzEyNTgsaW50IGFyZzEyNTksaW50IGFyZzEyNjAsaW50IGFy
ZzEyNjEsaW50IGFyZzEyNjIsaW50IGFyZzEyNjMsaW50IGFyZzEyNjQsaW50IGFyZzEyNjUsaW50
IGFyZzEyNjYsaW50IGFyZzEyNjcsaW50IGFyZzEyNjgsaW50IGFyZzEyNjksaW50IGFyZzEyNzAs
aW50IGFyZzEyNzEsaW50IGFyZzEyNzIsaW50IGFyZzEyNzMsaW50IGFyZzEyNzQsaW50IGFyZzEy
NzUsaW50IGFyZzEyNzYsaW50IGFyZzEyNzcsaW50IGFyZzEyNzgsaW50IGFyZzEyNzksaW50IGFy
ZzEyODAsaW50IGFyZzEyODEsaW50IGFyZzEyODIsaW50IGFyZzEyODMsaW50IGFyZzEyODQsaW50
IGFyZzEyODUsaW50IGFyZzEyODYsaW50IGFyZzEyODcsaW50IGFyZzEyODgsaW50IGFyZzEyODks
aW50IGFyZzEyOTAsaW50IGFyZzEyOTEsaW50IGFyZzEyOTIsaW50IGFyZzEyOTMsaW50IGFyZzEy
OTQsaW50IGFyZzEyOTUsaW50IGFyZzEyOTYsaW50IGFyZzEyOTcsaW50IGFyZzEyOTgsaW50IGFy
ZzEyOTksaW50IGFyZzEzMDAsaW50IGFyZzEzMDEsaW50IGFyZzEzMDIsaW50IGFyZzEzMDMsaW50
IGFyZzEzMDQsaW50IGFyZzEzMDUsaW50IGFyZzEzMDYsaW50IGFyZzEzMDcsaW50IGFyZzEzMDgs
aW50IGFyZzEzMDksaW50IGFyZzEzMTAsaW50IGFyZzEzMTEsaW50IGFyZzEzMTIsaW50IGFyZzEz
MTMsaW50IGFyZzEzMTQsaW50IGFyZzEzMTUsaW50IGFyZzEzMTYsaW50IGFyZzEzMTcsaW50IGFy
ZzEzMTgsaW50IGFyZzEzMTksaW50IGFyZzEzMjAsaW50IGFyZzEzMjEsaW50IGFyZzEzMjIsaW50
IGFyZzEzMjMsaW50IGFyZzEzMjQsaW50IGFyZzEzMjUsaW50IGFyZzEzMjYsaW50IGFyZzEzMjcs
aW50IGFyZzEzMjgsaW50IGFyZzEzMjksaW50IGFyZzEzMzAsaW50IGFyZzEzMzEsaW50IGFyZzEz
MzIsaW50IGFyZzEzMzMsaW50IGFyZzEzMzQsaW50IGFyZzEzMzUsaW50IGFyZzEzMzYsaW50IGFy
ZzEzMzcsaW50IGFyZzEzMzgsaW50IGFyZzEzMzksaW50IGFyZzEzNDAsaW50IGFyZzEzNDEsaW50
IGFyZzEzNDIsaW50IGFyZzEzNDMsaW50IGFyZzEzNDQsaW50IGFyZzEzNDUsaW50IGFyZzEzNDYs
aW50IGFyZzEzNDcsaW50IGFyZzEzNDgsaW50IGFyZzEzNDksaW50IGFyZzEzNTAsaW50IGFyZzEz
NTEsaW50IGFyZzEzNTIsaW50IGFyZzEzNTMsaW50IGFyZzEzNTQsaW50IGFyZzEzNTUsaW50IGFy
ZzEzNTYsaW50IGFyZzEzNTcsaW50IGFyZzEzNTgsaW50IGFyZzEzNTksaW50IGFyZzEzNjAsaW50
IGFyZzEzNjEsaW50IGFyZzEzNjIsaW50IGFyZzEzNjMsaW50IGFyZzEzNjQsaW50IGFyZzEzNjUs
aW50IGFyZzEzNjYsaW50IGFyZzEzNjcsaW50IGFyZzEzNjgsaW50IGFyZzEzNjksaW50IGFyZzEz
NzAsaW50IGFyZzEzNzEsaW50IGFyZzEzNzIsaW50IGFyZzEzNzMsaW50IGFyZzEzNzQsaW50IGFy
ZzEzNzUsaW50IGFyZzEzNzYsaW50IGFyZzEzNzcsaW50IGFyZzEzNzgsaW50IGFyZzEzNzksaW50
IGFyZzEzODAsaW50IGFyZzEzODEsaW50IGFyZzEzODIsaW50IGFyZzEzODMsaW50IGFyZzEzODQs
aW50IGFyZzEzODUsaW50IGFyZzEzODYsaW50IGFyZzEzODcsaW50IGFyZzEzODgsaW50IGFyZzEz
ODksaW50IGFyZzEzOTAsaW50IGFyZzEzOTEsaW50IGFyZzEzOTIsaW50IGFyZzEzOTMsaW50IGFy
ZzEzOTQsaW50IGFyZzEzOTUsaW50IGFyZzEzOTYsaW50IGFyZzEzOTcsaW50IGFyZzEzOTgsaW50
IGFyZzEzOTksaW50IGFyZzE0MDAsaW50IGFyZzE0MDEsaW50IGFyZzE0MDIsaW50IGFyZzE0MDMs
aW50IGFyZzE0MDQsaW50IGFyZzE0MDUsaW50IGFyZzE0MDYsaW50IGFyZzE0MDcsaW50IGFyZzE0
MDgsaW50IGFyZzE0MDksaW50IGFyZzE0MTAsaW50IGFyZzE0MTEsaW50IGFyZzE0MTIsaW50IGFy
ZzE0MTMsaW50IGFyZzE0MTQsaW50IGFyZzE0MTUsaW50IGFyZzE0MTYsaW50IGFyZzE0MTcsaW50
IGFyZzE0MTgsaW50IGFyZzE0MTksaW50IGFyZzE0MjAsaW50IGFyZzE0MjEsaW50IGFyZzE0MjIs
aW50IGFyZzE0MjMsaW50IGFyZzE0MjQsaW50IGFyZzE0MjUsaW50IGFyZzE0MjYsaW50IGFyZzE0
MjcsaW50IGFyZzE0MjgsaW50IGFyZzE0MjksaW50IGFyZzE0MzAsaW50IGFyZzE0MzEsaW50IGFy
ZzE0MzIsaW50IGFyZzE0MzMsaW50IGFyZzE0MzQsaW50IGFyZzE0MzUsaW50IGFyZzE0MzYsaW50
IGFyZzE0MzcsaW50IGFyZzE0MzgsaW50IGFyZzE0MzksaW50IGFyZzE0NDAsaW50IGFyZzE0NDEs
aW50IGFyZzE0NDIsaW50IGFyZzE0NDMsaW50IGFyZzE0NDQsaW50IGFyZzE0NDUsaW50IGFyZzE0
NDYsaW50IGFyZzE0NDcsaW50IGFyZzE0NDgsaW50IGFyZzE0NDksaW50IGFyZzE0NTAsaW50IGFy
ZzE0NTEsaW50IGFyZzE0NTIsaW50IGFyZzE0NTMsaW50IGFyZzE0NTQsaW50IGFyZzE0NTUsaW50
IGFyZzE0NTYsaW50IGFyZzE0NTcsaW50IGFyZzE0NTgsaW50IGFyZzE0NTksaW50IGFyZzE0NjAs
aW50IGFyZzE0NjEsaW50IGFyZzE0NjIsaW50IGFyZzE0NjMsaW50IGFyZzE0NjQsaW50IGFyZzE0
NjUsaW50IGFyZzE0NjYsaW50IGFyZzE0NjcsaW50IGFyZzE0NjgsaW50IGFyZzE0NjksaW50IGFy
ZzE0NzAsaW50IGFyZzE0NzEsaW50IGFyZzE0NzIsaW50IGFyZzE0NzMsaW50IGFyZzE0NzQsaW50
IGFyZzE0NzUsaW50IGFyZzE0NzYsaW50IGFyZzE0NzcsaW50IGFyZzE0NzgsaW50IGFyZzE0Nzks
aW50IGFyZzE0ODAsaW50IGFyZzE0ODEsaW50IGFyZzE0ODIsaW50IGFyZzE0ODMsaW50IGFyZzE0
ODQsaW50IGFyZzE0ODUsaW50IGFyZzE0ODYsaW50IGFyZzE0ODcsaW50IGFyZzE0ODgsaW50IGFy
ZzE0ODksaW50IGFyZzE0OTAsaW50IGFyZzE0OTEsaW50IGFyZzE0OTIsaW50IGFyZzE0OTMsaW50
IGFyZzE0OTQsaW50IGFyZzE0OTUsaW50IGFyZzE0OTYsaW50IGFyZzE0OTcsaW50IGFyZzE0OTgs
aW50IGFyZzE0OTksaW50IGFyZzE1MDAsaW50IGFyZzE1MDEsaW50IGFyZzE1MDIsaW50IGFyZzE1
MDMsaW50IGFyZzE1MDQsaW50IGFyZzE1MDUsaW50IGFyZzE1MDYsaW50IGFyZzE1MDcsaW50IGFy
ZzE1MDgsaW50IGFyZzE1MDksaW50IGFyZzE1MTAsaW50IGFyZzE1MTEsaW50IGFyZzE1MTIsaW50
IGFyZzE1MTMsaW50IGFyZzE1MTQsaW50IGFyZzE1MTUsaW50IGFyZzE1MTYsaW50IGFyZzE1MTcs
aW50IGFyZzE1MTgsaW50IGFyZzE1MTksaW50IGFyZzE1MjAsaW50IGFyZzE1MjEsaW50IGFyZzE1
MjIsaW50IGFyZzE1MjMsaW50IGFyZzE1MjQsaW50IGFyZzE1MjUsaW50IGFyZzE1MjYsaW50IGFy
ZzE1MjcsaW50IGFyZzE1MjgsaW50IGFyZzE1MjksaW50IGFyZzE1MzAsaW50IGFyZzE1MzEsaW50
IGFyZzE1MzIsaW50IGFyZzE1MzMsaW50IGFyZzE1MzQsaW50IGFyZzE1MzUsaW50IGFyZzE1MzYs
aW50IGFyZzE1MzcsaW50IGFyZzE1MzgsaW50IGFyZzE1MzksaW50IGFyZzE1NDAsaW50IGFyZzE1
NDEsaW50IGFyZzE1NDIsaW50IGFyZzE1NDMsaW50IGFyZzE1NDQsaW50IGFyZzE1NDUsaW50IGFy
ZzE1NDYsaW50IGFyZzE1NDcsaW50IGFyZzE1NDgsaW50IGFyZzE1NDksaW50IGFyZzE1NTAsaW50
IGFyZzE1NTEsaW50IGFyZzE1NTIsaW50IGFyZzE1NTMsaW50IGFyZzE1NTQsaW50IGFyZzE1NTUs
aW50IGFyZzE1NTYsaW50IGFyZzE1NTcsaW50IGFyZzE1NTgsaW50IGFyZzE1NTksaW50IGFyZzE1
NjAsaW50IGFyZzE1NjEsaW50IGFyZzE1NjIsaW50IGFyZzE1NjMsaW50IGFyZzE1NjQsaW50IGFy
ZzE1NjUsaW50IGFyZzE1NjYsaW50IGFyZzE1NjcsaW50IGFyZzE1NjgsaW50IGFyZzE1NjksaW50
IGFyZzE1NzAsaW50IGFyZzE1NzEsaW50IGFyZzE1NzIsaW50IGFyZzE1NzMsaW50IGFyZzE1NzQs
aW50IGFyZzE1NzUsaW50IGFyZzE1NzYsaW50IGFyZzE1NzcsaW50IGFyZzE1NzgsaW50IGFyZzE1
NzksaW50IGFyZzE1ODAsaW50IGFyZzE1ODEsaW50IGFyZzE1ODIsaW50IGFyZzE1ODMsaW50IGFy
ZzE1ODQsaW50IGFyZzE1ODUsaW50IGFyZzE1ODYsaW50IGFyZzE1ODcsaW50IGFyZzE1ODgsaW50
IGFyZzE1ODksaW50IGFyZzE1OTAsaW50IGFyZzE1OTEsaW50IGFyZzE1OTIsaW50IGFyZzE1OTMs
aW50IGFyZzE1OTQsaW50IGFyZzE1OTUsaW50IGFyZzE1OTYsaW50IGFyZzE1OTcsaW50IGFyZzE1
OTgsaW50IGFyZzE1OTksaW50IGFyZzE2MDAsaW50IGFyZzE2MDEsaW50IGFyZzE2MDIsaW50IGFy
ZzE2MDMsaW50IGFyZzE2MDQsaW50IGFyZzE2MDUsaW50IGFyZzE2MDYsaW50IGFyZzE2MDcsaW50
IGFyZzE2MDgsaW50IGFyZzE2MDksaW50IGFyZzE2MTAsaW50IGFyZzE2MTEsaW50IGFyZzE2MTIs
aW50IGFyZzE2MTMsaW50IGFyZzE2MTQsaW50IGFyZzE2MTUsaW50IGFyZzE2MTYsaW50IGFyZzE2
MTcsaW50IGFyZzE2MTgsaW50IGFyZzE2MTksaW50IGFyZzE2MjAsaW50IGFyZzE2MjEsaW50IGFy
ZzE2MjIsaW50IGFyZzE2MjMsaW50IGFyZzE2MjQsaW50IGFyZzE2MjUsaW50IGFyZzE2MjYsaW50
IGFyZzE2MjcsaW50IGFyZzE2MjgsaW50IGFyZzE2MjksaW50IGFyZzE2MzAsaW50IGFyZzE2MzEs
aW50IGFyZzE2MzIsaW50IGFyZzE2MzMsaW50IGFyZzE2MzQsaW50IGFyZzE2MzUsaW50IGFyZzE2
MzYsaW50IGFyZzE2MzcsaW50IGFyZzE2MzgsaW50IGFyZzE2MzksaW50IGFyZzE2NDAsaW50IGFy
ZzE2NDEsaW50IGFyZzE2NDIsaW50IGFyZzE2NDMsaW50IGFyZzE2NDQsaW50IGFyZzE2NDUsaW50
IGFyZzE2NDYsaW50IGFyZzE2NDcsaW50IGFyZzE2NDgsaW50IGFyZzE2NDksaW50IGFyZzE2NTAs
aW50IGFyZzE2NTEsaW50IGFyZzE2NTIsaW50IGFyZzE2NTMsaW50IGFyZzE2NTQsaW50IGFyZzE2
NTUsaW50IGFyZzE2NTYsaW50IGFyZzE2NTcsaW50IGFyZzE2NTgsaW50IGFyZzE2NTksaW50IGFy
ZzE2NjAsaW50IGFyZzE2NjEsaW50IGFyZzE2NjIsaW50IGFyZzE2NjMsaW50IGFyZzE2NjQsaW50
IGFyZzE2NjUsaW50IGFyZzE2NjYsaW50IGFyZzE2NjcsaW50IGFyZzE2NjgsaW50IGFyZzE2Njks
aW50IGFyZzE2NzAsaW50IGFyZzE2NzEsaW50IGFyZzE2NzIsaW50IGFyZzE2NzMsaW50IGFyZzE2
NzQsaW50IGFyZzE2NzUsaW50IGFyZzE2NzYsaW50IGFyZzE2NzcsaW50IGFyZzE2NzgsaW50IGFy
ZzE2NzksaW50IGFyZzE2ODAsaW50IGFyZzE2ODEsaW50IGFyZzE2ODIsaW50IGFyZzE2ODMsaW50
IGFyZzE2ODQsaW50IGFyZzE2ODUsaW50IGFyZzE2ODYsaW50IGFyZzE2ODcsaW50IGFyZzE2ODgs
aW50IGFyZzE2ODksaW50IGFyZzE2OTAsaW50IGFyZzE2OTEsaW50IGFyZzE2OTIsaW50IGFyZzE2
OTMsaW50IGFyZzE2OTQsaW50IGFyZzE2OTUsaW50IGFyZzE2OTYsaW50IGFyZzE2OTcsaW50IGFy
ZzE2OTgsaW50IGFyZzE2OTksaW50IGFyZzE3MDAsaW50IGFyZzE3MDEsaW50IGFyZzE3MDIsaW50
IGFyZzE3MDMsaW50IGFyZzE3MDQsaW50IGFyZzE3MDUsaW50IGFyZzE3MDYsaW50IGFyZzE3MDcs
aW50IGFyZzE3MDgsaW50IGFyZzE3MDksaW50IGFyZzE3MTAsaW50IGFyZzE3MTEsaW50IGFyZzE3
MTIsaW50IGFyZzE3MTMsaW50IGFyZzE3MTQsaW50IGFyZzE3MTUsaW50IGFyZzE3MTYsaW50IGFy
ZzE3MTcsaW50IGFyZzE3MTgsaW50IGFyZzE3MTksaW50IGFyZzE3MjAsaW50IGFyZzE3MjEsaW50
IGFyZzE3MjIsaW50IGFyZzE3MjMsaW50IGFyZzE3MjQsaW50IGFyZzE3MjUsaW50IGFyZzE3MjYs
aW50IGFyZzE3MjcsaW50IGFyZzE3MjgsaW50IGFyZzE3MjksaW50IGFyZzE3MzAsaW50IGFyZzE3
MzEsaW50IGFyZzE3MzIsaW50IGFyZzE3MzMsaW50IGFyZzE3MzQsaW50IGFyZzE3MzUsaW50IGFy
ZzE3MzYsaW50IGFyZzE3MzcsaW50IGFyZzE3MzgsaW50IGFyZzE3MzksaW50IGFyZzE3NDAsaW50
IGFyZzE3NDEsaW50IGFyZzE3NDIsaW50IGFyZzE3NDMsaW50IGFyZzE3NDQsaW50IGFyZzE3NDUs
aW50IGFyZzE3NDYsaW50IGFyZzE3NDcsaW50IGFyZzE3NDgsaW50IGFyZzE3NDksaW50IGFyZzE3
NTAsaW50IGFyZzE3NTEsaW50IGFyZzE3NTIsaW50IGFyZzE3NTMsaW50IGFyZzE3NTQsaW50IGFy
ZzE3NTUsaW50IGFyZzE3NTYsaW50IGFyZzE3NTcsaW50IGFyZzE3NTgsaW50IGFyZzE3NTksaW50
IGFyZzE3NjAsaW50IGFyZzE3NjEsaW50IGFyZzE3NjIsaW50IGFyZzE3NjMsaW50IGFyZzE3NjQs
aW50IGFyZzE3NjUsaW50IGFyZzE3NjYsaW50IGFyZzE3NjcsaW50IGFyZzE3NjgsaW50IGFyZzE3
NjksaW50IGFyZzE3NzAsaW50IGFyZzE3NzEsaW50IGFyZzE3NzIsaW50IGFyZzE3NzMsaW50IGFy
ZzE3NzQsaW50IGFyZzE3NzUsaW50IGFyZzE3NzYsaW50IGFyZzE3NzcsaW50IGFyZzE3NzgsaW50
IGFyZzE3NzksaW50IGFyZzE3ODAsaW50IGFyZzE3ODEsaW50IGFyZzE3ODIsaW50IGFyZzE3ODMs
aW50IGFyZzE3ODQsaW50IGFyZzE3ODUsaW50IGFyZzE3ODYsaW50IGFyZzE3ODcsaW50IGFyZzE3
ODgsaW50IGFyZzE3ODksaW50IGFyZzE3OTAsaW50IGFyZzE3OTEsaW50IGFyZzE3OTIsaW50IGFy
ZzE3OTMsaW50IGFyZzE3OTQsaW50IGFyZzE3OTUsaW50IGFyZzE3OTYsaW50IGFyZzE3OTcsaW50
IGFyZzE3OTgsaW50IGFyZzE3OTksaW50IGFyZzE4MDAsaW50IGFyZzE4MDEsaW50IGFyZzE4MDIs
aW50IGFyZzE4MDMsaW50IGFyZzE4MDQsaW50IGFyZzE4MDUsaW50IGFyZzE4MDYsaW50IGFyZzE4
MDcsaW50IGFyZzE4MDgsaW50IGFyZzE4MDksaW50IGFyZzE4MTAsaW50IGFyZzE4MTEsaW50IGFy
ZzE4MTIsaW50IGFyZzE4MTMsaW50IGFyZzE4MTQsaW50IGFyZzE4MTUsaW50IGFyZzE4MTYsaW50
IGFyZzE4MTcsaW50IGFyZzE4MTgsaW50IGFyZzE4MTksaW50IGFyZzE4MjAsaW50IGFyZzE4MjEs
aW50IGFyZzE4MjIsaW50IGFyZzE4MjMsaW50IGFyZzE4MjQsaW50IGFyZzE4MjUsaW50IGFyZzE4
MjYsaW50IGFyZzE4MjcsaW50IGFyZzE4MjgsaW50IGFyZzE4MjksaW50IGFyZzE4MzAsaW50IGFy
ZzE4MzEsaW50IGFyZzE4MzIsaW50IGFyZzE4MzMsaW50IGFyZzE4MzQsaW50IGFyZzE4MzUsaW50
IGFyZzE4MzYsaW50IGFyZzE4MzcsaW50IGFyZzE4MzgsaW50IGFyZzE4MzksaW50IGFyZzE4NDAs
aW50IGFyZzE4NDEsaW50IGFyZzE4NDIsaW50IGFyZzE4NDMsaW50IGFyZzE4NDQsaW50IGFyZzE4
NDUsaW50IGFyZzE4NDYsaW50IGFyZzE4NDcsaW50IGFyZzE4NDgsaW50IGFyZzE4NDksaW50IGFy
ZzE4NTAsaW50IGFyZzE4NTEsaW50IGFyZzE4NTIsaW50IGFyZzE4NTMsaW50IGFyZzE4NTQsaW50
IGFyZzE4NTUsaW50IGFyZzE4NTYsaW50IGFyZzE4NTcsaW50IGFyZzE4NTgsaW50IGFyZzE4NTks
aW50IGFyZzE4NjAsaW50IGFyZzE4NjEsaW50IGFyZzE4NjIsaW50IGFyZzE4NjMsaW50IGFyZzE4
NjQsaW50IGFyZzE4NjUsaW50IGFyZzE4NjYsaW50IGFyZzE4NjcsaW50IGFyZzE4NjgsaW50IGFy
ZzE4NjksaW50IGFyZzE4NzAsaW50IGFyZzE4NzEsaW50IGFyZzE4NzIsaW50IGFyZzE4NzMsaW50
IGFyZzE4NzQsaW50IGFyZzE4NzUsaW50IGFyZzE4NzYsaW50IGFyZzE4NzcsaW50IGFyZzE4Nzgs
aW50IGFyZzE4NzksaW50IGFyZzE4ODAsaW50IGFyZzE4ODEsaW50IGFyZzE4ODIsaW50IGFyZzE4
ODMsaW50IGFyZzE4ODQsaW50IGFyZzE4ODUsaW50IGFyZzE4ODYsaW50IGFyZzE4ODcsaW50IGFy
ZzE4ODgsaW50IGFyZzE4ODksaW50IGFyZzE4OTAsaW50IGFyZzE4OTEsaW50IGFyZzE4OTIsaW50
IGFyZzE4OTMsaW50IGFyZzE4OTQsaW50IGFyZzE4OTUsaW50IGFyZzE4OTYsaW50IGFyZzE4OTcs
aW50IGFyZzE4OTgsaW50IGFyZzE4OTksaW50IGFyZzE5MDAsaW50IGFyZzE5MDEsaW50IGFyZzE5
MDIsaW50IGFyZzE5MDMsaW50IGFyZzE5MDQsaW50IGFyZzE5MDUsaW50IGFyZzE5MDYsaW50IGFy
ZzE5MDcsaW50IGFyZzE5MDgsaW50IGFyZzE5MDksaW50IGFyZzE5MTAsaW50IGFyZzE5MTEsaW50
IGFyZzE5MTIsaW50IGFyZzE5MTMsaW50IGFyZzE5MTQsaW50IGFyZzE5MTUsaW50IGFyZzE5MTYs
aW50IGFyZzE5MTcsaW50IGFyZzE5MTgsaW50IGFyZzE5MTksaW50IGFyZzE5MjAsaW50IGFyZzE5
MjEsaW50IGFyZzE5MjIsaW50IGFyZzE5MjMsaW50IGFyZzE5MjQsaW50IGFyZzE5MjUsaW50IGFy
ZzE5MjYsaW50IGFyZzE5MjcsaW50IGFyZzE5MjgsaW50IGFyZzE5MjksaW50IGFyZzE5MzAsaW50
IGFyZzE5MzEsaW50IGFyZzE5MzIsaW50IGFyZzE5MzMsaW50IGFyZzE5MzQsaW50IGFyZzE5MzUs
aW50IGFyZzE5MzYsaW50IGFyZzE5MzcsaW50IGFyZzE5MzgsaW50IGFyZzE5MzksaW50IGFyZzE5
NDAsaW50IGFyZzE5NDEsaW50IGFyZzE5NDIsaW50IGFyZzE5NDMsaW50IGFyZzE5NDQsaW50IGFy
ZzE5NDUsaW50IGFyZzE5NDYsaW50IGFyZzE5NDcsaW50IGFyZzE5NDgsaW50IGFyZzE5NDksaW50
IGFyZzE5NTAsaW50IGFyZzE5NTEsaW50IGFyZzE5NTIsaW50IGFyZzE5NTMsaW50IGFyZzE5NTQs
aW50IGFyZzE5NTUsaW50IGFyZzE5NTYsaW50IGFyZzE5NTcsaW50IGFyZzE5NTgsaW50IGFyZzE5
NTksaW50IGFyZzE5NjAsaW50IGFyZzE5NjEsaW50IGFyZzE5NjIsaW50IGFyZzE5NjMsaW50IGFy
ZzE5NjQsaW50IGFyZzE5NjUsaW50IGFyZzE5NjYsaW50IGFyZzE5NjcsaW50IGFyZzE5NjgsaW50
IGFyZzE5NjksaW50IGFyZzE5NzAsaW50IGFyZzE5NzEsaW50IGFyZzE5NzIsaW50IGFyZzE5NzMs
aW50IGFyZzE5NzQsaW50IGFyZzE5NzUsaW50IGFyZzE5NzYsaW50IGFyZzE5NzcsaW50IGFyZzE5
NzgsaW50IGFyZzE5NzksaW50IGFyZzE5ODAsaW50IGFyZzE5ODEsaW50IGFyZzE5ODIsaW50IGFy
ZzE5ODMsaW50IGFyZzE5ODQsaW50IGFyZzE5ODUsaW50IGFyZzE5ODYsaW50IGFyZzE5ODcsaW50
IGFyZzE5ODgsaW50IGFyZzE5ODksaW50IGFyZzE5OTAsaW50IGFyZzE5OTEsaW50IGFyZzE5OTIs
aW50IGFyZzE5OTMsaW50IGFyZzE5OTQsaW50IGFyZzE5OTUsaW50IGFyZzE5OTYsaW50IGFyZzE5
OTcsaW50IGFyZzE5OTgsaW50IGFyZzE5OTksaW50IGFyZzIwMDAsaW50IGFyZzIwMDEsaW50IGFy
ZzIwMDIsaW50IGFyZzIwMDMsaW50IGFyZzIwMDQsaW50IGFyZzIwMDUsaW50IGFyZzIwMDYsaW50
IGFyZzIwMDcsaW50IGFyZzIwMDgsaW50IGFyZzIwMDksaW50IGFyZzIwMTAsaW50IGFyZzIwMTEs
aW50IGFyZzIwMTIsaW50IGFyZzIwMTMsaW50IGFyZzIwMTQsaW50IGFyZzIwMTUsaW50IGFyZzIw
MTYsaW50IGFyZzIwMTcsaW50IGFyZzIwMTgsaW50IGFyZzIwMTksaW50IGFyZzIwMjAsaW50IGFy
ZzIwMjEsaW50IGFyZzIwMjIsaW50IGFyZzIwMjMsaW50IGFyZzIwMjQsaW50IGFyZzIwMjUsaW50
IGFyZzIwMjYsaW50IGFyZzIwMjcsaW50IGFyZzIwMjgsaW50IGFyZzIwMjksaW50IGFyZzIwMzAs
aW50IGFyZzIwMzEsaW50IGFyZzIwMzIsaW50IGFyZzIwMzMsaW50IGFyZzIwMzQsaW50IGFyZzIw
MzUsaW50IGFyZzIwMzYsaW50IGFyZzIwMzcsaW50IGFyZzIwMzgsaW50IGFyZzIwMzksaW50IGFy
ZzIwNDAsaW50IGFyZzIwNDEsaW50IGFyZzIwNDIsaW50IGFyZzIwNDMsaW50IGFyZzIwNDQsaW50
IGFyZzIwNDUsaW50IGFyZzIwNDYsaW50IGFyZzIwNDcsaW50IGFyZzIwNDgsaW50IGFyZzIwNDks
aW50IGFyZzIwNTAsaW50IGFyZzIwNTEsaW50IGFyZzIwNTIsaW50IGFyZzIwNTMsaW50IGFyZzIw
NTQsaW50IGFyZzIwNTUsaW50IGFyZzIwNTYsaW50IGFyZzIwNTcsaW50IGFyZzIwNTgsaW50IGFy
ZzIwNTksaW50IGFyZzIwNjAsaW50IGFyZzIwNjEsaW50IGFyZzIwNjIsaW50IGFyZzIwNjMsaW50
IGFyZzIwNjQsaW50IGFyZzIwNjUsaW50IGFyZzIwNjYsaW50IGFyZzIwNjcsaW50IGFyZzIwNjgs
aW50IGFyZzIwNjksaW50IGFyZzIwNzAsaW50IGFyZzIwNzEsaW50IGFyZzIwNzIsaW50IGFyZzIw
NzMsaW50IGFyZzIwNzQsaW50IGFyZzIwNzUsaW50IGFyZzIwNzYsaW50IGFyZzIwNzcsaW50IGFy
ZzIwNzgsaW50IGFyZzIwNzksaW50IGFyZzIwODAsaW50IGFyZzIwODEsaW50IGFyZzIwODIsaW50
IGFyZzIwODMsaW50IGFyZzIwODQsaW50IGFyZzIwODUsaW50IGFyZzIwODYsaW50IGFyZzIwODcs
aW50IGFyZzIwODgsaW50IGFyZzIwODksaW50IGFyZzIwOTAsaW50IGFyZzIwOTEsaW50IGFyZzIw
OTIsaW50IGFyZzIwOTMsaW50IGFyZzIwOTQsaW50IGFyZzIwOTUsaW50IGFyZzIwOTYsaW50IGFy
ZzIwOTcsaW50IGFyZzIwOTgsaW50IGFyZzIwOTksaW50IGFyZzIxMDAsaW50IGFyZzIxMDEsaW50
IGFyZzIxMDIsaW50IGFyZzIxMDMsaW50IGFyZzIxMDQsaW50IGFyZzIxMDUsaW50IGFyZzIxMDYs
aW50IGFyZzIxMDcsaW50IGFyZzIxMDgsaW50IGFyZzIxMDksaW50IGFyZzIxMTAsaW50IGFyZzIx
MTEsaW50IGFyZzIxMTIsaW50IGFyZzIxMTMsaW50IGFyZzIxMTQsaW50IGFyZzIxMTUsaW50IGFy
ZzIxMTYsaW50IGFyZzIxMTcsaW50IGFyZzIxMTgsaW50IGFyZzIxMTksaW50IGFyZzIxMjAsaW50
IGFyZzIxMjEsaW50IGFyZzIxMjIsaW50IGFyZzIxMjMsaW50IGFyZzIxMjQsaW50IGFyZzIxMjUs
aW50IGFyZzIxMjYsaW50IGFyZzIxMjcsaW50IGFyZzIxMjgsaW50IGFyZzIxMjksaW50IGFyZzIx
MzAsaW50IGFyZzIxMzEsaW50IGFyZzIxMzIsaW50IGFyZzIxMzMsaW50IGFyZzIxMzQsaW50IGFy
ZzIxMzUsaW50IGFyZzIxMzYsaW50IGFyZzIxMzcsaW50IGFyZzIxMzgsaW50IGFyZzIxMzksaW50
IGFyZzIxNDAsaW50IGFyZzIxNDEsaW50IGFyZzIxNDIsaW50IGFyZzIxNDMsaW50IGFyZzIxNDQs
aW50IGFyZzIxNDUsaW50IGFyZzIxNDYsaW50IGFyZzIxNDcsaW50IGFyZzIxNDgsaW50IGFyZzIx
NDksaW50IGFyZzIxNTAsaW50IGFyZzIxNTEsaW50IGFyZzIxNTIsaW50IGFyZzIxNTMsaW50IGFy
ZzIxNTQsaW50IGFyZzIxNTUsaW50IGFyZzIxNTYsaW50IGFyZzIxNTcsaW50IGFyZzIxNTgsaW50
IGFyZzIxNTksaW50IGFyZzIxNjAsaW50IGFyZzIxNjEsaW50IGFyZzIxNjIsaW50IGFyZzIxNjMs
aW50IGFyZzIxNjQsaW50IGFyZzIxNjUsaW50IGFyZzIxNjYsaW50IGFyZzIxNjcsaW50IGFyZzIx
NjgsaW50IGFyZzIxNjksaW50IGFyZzIxNzAsaW50IGFyZzIxNzEsaW50IGFyZzIxNzIsaW50IGFy
ZzIxNzMsaW50IGFyZzIxNzQsaW50IGFyZzIxNzUsaW50IGFyZzIxNzYsaW50IGFyZzIxNzcsaW50
IGFyZzIxNzgsaW50IGFyZzIxNzksaW50IGFyZzIxODAsaW50IGFyZzIxODEsaW50IGFyZzIxODIs
aW50IGFyZzIxODMsaW50IGFyZzIxODQsaW50IGFyZzIxODUsaW50IGFyZzIxODYsaW50IGFyZzIx
ODcsaW50IGFyZzIxODgsaW50IGFyZzIxODksaW50IGFyZzIxOTAsaW50IGFyZzIxOTEsaW50IGFy
ZzIxOTIsaW50IGFyZzIxOTMsaW50IGFyZzIxOTQsaW50IGFyZzIxOTUsaW50IGFyZzIxOTYsaW50
IGFyZzIxOTcsaW50IGFyZzIxOTgsaW50IGFyZzIxOTksaW50IGFyZzIyMDAsaW50IGFyZzIyMDEs
aW50IGFyZzIyMDIsaW50IGFyZzIyMDMsaW50IGFyZzIyMDQsaW50IGFyZzIyMDUsaW50IGFyZzIy
MDYsaW50IGFyZzIyMDcsaW50IGFyZzIyMDgsaW50IGFyZzIyMDksaW50IGFyZzIyMTAsaW50IGFy
ZzIyMTEsaW50IGFyZzIyMTIsaW50IGFyZzIyMTMsaW50IGFyZzIyMTQsaW50IGFyZzIyMTUsaW50
IGFyZzIyMTYsaW50IGFyZzIyMTcsaW50IGFyZzIyMTgsaW50IGFyZzIyMTksaW50IGFyZzIyMjAs
aW50IGFyZzIyMjEsaW50IGFyZzIyMjIsaW50IGFyZzIyMjMsaW50IGFyZzIyMjQsaW50IGFyZzIy
MjUsaW50IGFyZzIyMjYsaW50IGFyZzIyMjcsaW50IGFyZzIyMjgsaW50IGFyZzIyMjksaW50IGFy
ZzIyMzAsaW50IGFyZzIyMzEsaW50IGFyZzIyMzIsaW50IGFyZzIyMzMsaW50IGFyZzIyMzQsaW50
IGFyZzIyMzUsaW50IGFyZzIyMzYsaW50IGFyZzIyMzcsaW50IGFyZzIyMzgsaW50IGFyZzIyMzks
aW50IGFyZzIyNDAsaW50IGFyZzIyNDEsaW50IGFyZzIyNDIsaW50IGFyZzIyNDMsaW50IGFyZzIy
NDQsaW50IGFyZzIyNDUsaW50IGFyZzIyNDYsaW50IGFyZzIyNDcsaW50IGFyZzIyNDgsaW50IGFy
ZzIyNDksaW50IGFyZzIyNTAsaW50IGFyZzIyNTEsaW50IGFyZzIyNTIsaW50IGFyZzIyNTMsaW50
IGFyZzIyNTQsaW50IGFyZzIyNTUsaW50IGFyZzIyNTYsaW50IGFyZzIyNTcsaW50IGFyZzIyNTgs
aW50IGFyZzIyNTksaW50IGFyZzIyNjAsaW50IGFyZzIyNjEsaW50IGFyZzIyNjIsaW50IGFyZzIy
NjMsaW50IGFyZzIyNjQsaW50IGFyZzIyNjUsaW50IGFyZzIyNjYsaW50IGFyZzIyNjcsaW50IGFy
ZzIyNjgsaW50IGFyZzIyNjksaW50IGFyZzIyNzAsaW50IGFyZzIyNzEsaW50IGFyZzIyNzIsaW50
IGFyZzIyNzMsaW50IGFyZzIyNzQsaW50IGFyZzIyNzUsaW50IGFyZzIyNzYsaW50IGFyZzIyNzcs
aW50IGFyZzIyNzgsaW50IGFyZzIyNzksaW50IGFyZzIyODAsaW50IGFyZzIyODEsaW50IGFyZzIy
ODIsaW50IGFyZzIyODMsaW50IGFyZzIyODQsaW50IGFyZzIyODUsaW50IGFyZzIyODYsaW50IGFy
ZzIyODcsaW50IGFyZzIyODgsaW50IGFyZzIyODksaW50IGFyZzIyOTAsaW50IGFyZzIyOTEsaW50
IGFyZzIyOTIsaW50IGFyZzIyOTMsaW50IGFyZzIyOTQsaW50IGFyZzIyOTUsaW50IGFyZzIyOTYs
aW50IGFyZzIyOTcsaW50IGFyZzIyOTgsaW50IGFyZzIyOTksaW50IGFyZzIzMDAsaW50IGFyZzIz
MDEsaW50IGFyZzIzMDIsaW50IGFyZzIzMDMsaW50IGFyZzIzMDQsaW50IGFyZzIzMDUsaW50IGFy
ZzIzMDYsaW50IGFyZzIzMDcsaW50IGFyZzIzMDgsaW50IGFyZzIzMDksaW50IGFyZzIzMTAsaW50
IGFyZzIzMTEsaW50IGFyZzIzMTIsaW50IGFyZzIzMTMsaW50IGFyZzIzMTQsaW50IGFyZzIzMTUs
aW50IGFyZzIzMTYsaW50IGFyZzIzMTcsaW50IGFyZzIzMTgsaW50IGFyZzIzMTksaW50IGFyZzIz
MjAsaW50IGFyZzIzMjEsaW50IGFyZzIzMjIsaW50IGFyZzIzMjMsaW50IGFyZzIzMjQsaW50IGFy
ZzIzMjUsaW50IGFyZzIzMjYsaW50IGFyZzIzMjcsaW50IGFyZzIzMjgsaW50IGFyZzIzMjksaW50
IGFyZzIzMzAsaW50IGFyZzIzMzEsaW50IGFyZzIzMzIsaW50IGFyZzIzMzMsaW50IGFyZzIzMzQs
aW50IGFyZzIzMzUsaW50IGFyZzIzMzYsaW50IGFyZzIzMzcsaW50IGFyZzIzMzgsaW50IGFyZzIz
MzksaW50IGFyZzIzNDAsaW50IGFyZzIzNDEsaW50IGFyZzIzNDIsaW50IGFyZzIzNDMsaW50IGFy
ZzIzNDQsaW50IGFyZzIzNDUsaW50IGFyZzIzNDYsaW50IGFyZzIzNDcsaW50IGFyZzIzNDgsaW50
IGFyZzIzNDksaW50IGFyZzIzNTAsaW50IGFyZzIzNTEsaW50IGFyZzIzNTIsaW50IGFyZzIzNTMs
aW50IGFyZzIzNTQsaW50IGFyZzIzNTUsaW50IGFyZzIzNTYsaW50IGFyZzIzNTcsaW50IGFyZzIz
NTgsaW50IGFyZzIzNTksaW50IGFyZzIzNjAsaW50IGFyZzIzNjEsaW50IGFyZzIzNjIsaW50IGFy
ZzIzNjMsaW50IGFyZzIzNjQsaW50IGFyZzIzNjUsaW50IGFyZzIzNjYsaW50IGFyZzIzNjcsaW50
IGFyZzIzNjgsaW50IGFyZzIzNjksaW50IGFyZzIzNzAsaW50IGFyZzIzNzEsaW50IGFyZzIzNzIs
aW50IGFyZzIzNzMsaW50IGFyZzIzNzQsaW50IGFyZzIzNzUsaW50IGFyZzIzNzYsaW50IGFyZzIz
NzcsaW50IGFyZzIzNzgsaW50IGFyZzIzNzksaW50IGFyZzIzODAsaW50IGFyZzIzODEsaW50IGFy
ZzIzODIsaW50IGFyZzIzODMsaW50IGFyZzIzODQsaW50IGFyZzIzODUsaW50IGFyZzIzODYsaW50
IGFyZzIzODcsaW50IGFyZzIzODgsaW50IGFyZzIzODksaW50IGFyZzIzOTAsaW50IGFyZzIzOTEs
aW50IGFyZzIzOTIsaW50IGFyZzIzOTMsaW50IGFyZzIzOTQsaW50IGFyZzIzOTUsaW50IGFyZzIz
OTYsaW50IGFyZzIzOTcsaW50IGFyZzIzOTgsaW50IGFyZzIzOTksaW50IGFyZzI0MDAsaW50IGFy
ZzI0MDEsaW50IGFyZzI0MDIsaW50IGFyZzI0MDMsaW50IGFyZzI0MDQsaW50IGFyZzI0MDUsaW50
IGFyZzI0MDYsaW50IGFyZzI0MDcsaW50IGFyZzI0MDgsaW50IGFyZzI0MDksaW50IGFyZzI0MTAs
aW50IGFyZzI0MTEsaW50IGFyZzI0MTIsaW50IGFyZzI0MTMsaW50IGFyZzI0MTQsaW50IGFyZzI0
MTUsaW50IGFyZzI0MTYsaW50IGFyZzI0MTcsaW50IGFyZzI0MTgsaW50IGFyZzI0MTksaW50IGFy
ZzI0MjAsaW50IGFyZzI0MjEsaW50IGFyZzI0MjIsaW50IGFyZzI0MjMsaW50IGFyZzI0MjQsaW50
IGFyZzI0MjUsaW50IGFyZzI0MjYsaW50IGFyZzI0MjcsaW50IGFyZzI0MjgsaW50IGFyZzI0Mjks
aW50IGFyZzI0MzAsaW50IGFyZzI0MzEsaW50IGFyZzI0MzIsaW50IGFyZzI0MzMsaW50IGFyZzI0
MzQsaW50IGFyZzI0MzUsaW50IGFyZzI0MzYsaW50IGFyZzI0MzcsaW50IGFyZzI0MzgsaW50IGFy
ZzI0MzksaW50IGFyZzI0NDAsaW50IGFyZzI0NDEsaW50IGFyZzI0NDIsaW50IGFyZzI0NDMsaW50
IGFyZzI0NDQsaW50IGFyZzI0NDUsaW50IGFyZzI0NDYsaW50IGFyZzI0NDcsaW50IGFyZzI0NDgs
aW50IGFyZzI0NDksaW50IGFyZzI0NTAsaW50IGFyZzI0NTEsaW50IGFyZzI0NTIsaW50IGFyZzI0
NTMsaW50IGFyZzI0NTQsaW50IGFyZzI0NTUsaW50IGFyZzI0NTYsaW50IGFyZzI0NTcsaW50IGFy
ZzI0NTgsaW50IGFyZzI0NTksaW50IGFyZzI0NjAsaW50IGFyZzI0NjEsaW50IGFyZzI0NjIsaW50
IGFyZzI0NjMsaW50IGFyZzI0NjQsaW50IGFyZzI0NjUsaW50IGFyZzI0NjYsaW50IGFyZzI0Njcs
aW50IGFyZzI0NjgsaW50IGFyZzI0NjksaW50IGFyZzI0NzAsaW50IGFyZzI0NzEsaW50IGFyZzI0
NzIsaW50IGFyZzI0NzMsaW50IGFyZzI0NzQsaW50IGFyZzI0NzUsaW50IGFyZzI0NzYsaW50IGFy
ZzI0NzcsaW50IGFyZzI0NzgsaW50IGFyZzI0NzksaW50IGFyZzI0ODAsaW50IGFyZzI0ODEsaW50
IGFyZzI0ODIsaW50IGFyZzI0ODMsaW50IGFyZzI0ODQsaW50IGFyZzI0ODUsaW50IGFyZzI0ODYs
aW50IGFyZzI0ODcsaW50IGFyZzI0ODgsaW50IGFyZzI0ODksaW50IGFyZzI0OTAsaW50IGFyZzI0
OTEsaW50IGFyZzI0OTIsaW50IGFyZzI0OTMsaW50IGFyZzI0OTQsaW50IGFyZzI0OTUsaW50IGFy
ZzI0OTYsaW50IGFyZzI0OTcsaW50IGFyZzI0OTgsaW50IGFyZzI0OTksaW50IGFyZzI1MDAsaW50
IGFyZzI1MDEsaW50IGFyZzI1MDIsaW50IGFyZzI1MDMsaW50IGFyZzI1MDQsaW50IGFyZzI1MDUs
aW50IGFyZzI1MDYsaW50IGFyZzI1MDcsaW50IGFyZzI1MDgsaW50IGFyZzI1MDksaW50IGFyZzI1
MTAsaW50IGFyZzI1MTEsaW50IGFyZzI1MTIsaW50IGFyZzI1MTMsaW50IGFyZzI1MTQsaW50IGFy
ZzI1MTUsaW50IGFyZzI1MTYsaW50IGFyZzI1MTcsaW50IGFyZzI1MTgsaW50IGFyZzI1MTksaW50
IGFyZzI1MjAsaW50IGFyZzI1MjEsaW50IGFyZzI1MjIsaW50IGFyZzI1MjMsaW50IGFyZzI1MjQs
aW50IGFyZzI1MjUsaW50IGFyZzI1MjYsaW50IGFyZzI1MjcsaW50IGFyZzI1MjgsaW50IGFyZzI1
MjksaW50IGFyZzI1MzAsaW50IGFyZzI1MzEsaW50IGFyZzI1MzIsaW50IGFyZzI1MzMsaW50IGFy
ZzI1MzQsaW50IGFyZzI1MzUsaW50IGFyZzI1MzYsaW50IGFyZzI1MzcsaW50IGFyZzI1MzgsaW50
IGFyZzI1MzksaW50IGFyZzI1NDAsaW50IGFyZzI1NDEsaW50IGFyZzI1NDIsaW50IGFyZzI1NDMs
aW50IGFyZzI1NDQsaW50IGFyZzI1NDUsaW50IGFyZzI1NDYsaW50IGFyZzI1NDcsaW50IGFyZzI1
NDgsaW50IGFyZzI1NDksaW50IGFyZzI1NTAsaW50IGFyZzI1NTEsaW50IGFyZzI1NTIsaW50IGFy
ZzI1NTMsaW50IGFyZzI1NTQsaW50IGFyZzI1NTUsaW50IGFyZzI1NTYsaW50IGFyZzI1NTcsaW50
IGFyZzI1NTgsaW50IGFyZzI1NTksaW50IGFyZzI1NjAsaW50IGFyZzI1NjEsaW50IGFyZzI1NjIs
aW50IGFyZzI1NjMsaW50IGFyZzI1NjQsaW50IGFyZzI1NjUsaW50IGFyZzI1NjYsaW50IGFyZzI1
NjcsaW50IGFyZzI1NjgsaW50IGFyZzI1NjksaW50IGFyZzI1NzAsaW50IGFyZzI1NzEsaW50IGFy
ZzI1NzIsaW50IGFyZzI1NzMsaW50IGFyZzI1NzQsaW50IGFyZzI1NzUsaW50IGFyZzI1NzYsaW50
IGFyZzI1NzcsaW50IGFyZzI1NzgsaW50IGFyZzI1NzksaW50IGFyZzI1ODAsaW50IGFyZzI1ODEs
aW50IGFyZzI1ODIsaW50IGFyZzI1ODMsaW50IGFyZzI1ODQsaW50IGFyZzI1ODUsaW50IGFyZzI1
ODYsaW50IGFyZzI1ODcsaW50IGFyZzI1ODgsaW50IGFyZzI1ODksaW50IGFyZzI1OTAsaW50IGFy
ZzI1OTEsaW50IGFyZzI1OTIsaW50IGFyZzI1OTMsaW50IGFyZzI1OTQsaW50IGFyZzI1OTUsaW50
IGFyZzI1OTYsaW50IGFyZzI1OTcsaW50IGFyZzI1OTgsaW50IGFyZzI1OTksaW50IGFyZzI2MDAs
aW50IGFyZzI2MDEsaW50IGFyZzI2MDIsaW50IGFyZzI2MDMsaW50IGFyZzI2MDQsaW50IGFyZzI2
MDUsaW50IGFyZzI2MDYsaW50IGFyZzI2MDcsaW50IGFyZzI2MDgsaW50IGFyZzI2MDksaW50IGFy
ZzI2MTAsaW50IGFyZzI2MTEsaW50IGFyZzI2MTIsaW50IGFyZzI2MTMsaW50IGFyZzI2MTQsaW50
IGFyZzI2MTUsaW50IGFyZzI2MTYsaW50IGFyZzI2MTcsaW50IGFyZzI2MTgsaW50IGFyZzI2MTks
aW50IGFyZzI2MjAsaW50IGFyZzI2MjEsaW50IGFyZzI2MjIsaW50IGFyZzI2MjMsaW50IGFyZzI2
MjQsaW50IGFyZzI2MjUsaW50IGFyZzI2MjYsaW50IGFyZzI2MjcsaW50IGFyZzI2MjgsaW50IGFy
ZzI2MjksaW50IGFyZzI2MzAsaW50IGFyZzI2MzEsaW50IGFyZzI2MzIsaW50IGFyZzI2MzMsaW50
IGFyZzI2MzQsaW50IGFyZzI2MzUsaW50IGFyZzI2MzYsaW50IGFyZzI2MzcsaW50IGFyZzI2Mzgs
aW50IGFyZzI2MzksaW50IGFyZzI2NDAsaW50IGFyZzI2NDEsaW50IGFyZzI2NDIsaW50IGFyZzI2
NDMsaW50IGFyZzI2NDQsaW50IGFyZzI2NDUsaW50IGFyZzI2NDYsaW50IGFyZzI2NDcsaW50IGFy
ZzI2NDgsaW50IGFyZzI2NDksaW50IGFyZzI2NTAsaW50IGFyZzI2NTEsaW50IGFyZzI2NTIsaW50
IGFyZzI2NTMsaW50IGFyZzI2NTQsaW50IGFyZzI2NTUsaW50IGFyZzI2NTYsaW50IGFyZzI2NTcs
aW50IGFyZzI2NTgsaW50IGFyZzI2NTksaW50IGFyZzI2NjAsaW50IGFyZzI2NjEsaW50IGFyZzI2
NjIsaW50IGFyZzI2NjMsaW50IGFyZzI2NjQsaW50IGFyZzI2NjUsaW50IGFyZzI2NjYsaW50IGFy
ZzI2NjcsaW50IGFyZzI2NjgsaW50IGFyZzI2NjksaW50IGFyZzI2NzAsaW50IGFyZzI2NzEsaW50
IGFyZzI2NzIsaW50IGFyZzI2NzMsaW50IGFyZzI2NzQsaW50IGFyZzI2NzUsaW50IGFyZzI2NzYs
aW50IGFyZzI2NzcsaW50IGFyZzI2NzgsaW50IGFyZzI2NzksaW50IGFyZzI2ODAsaW50IGFyZzI2
ODEsaW50IGFyZzI2ODIsaW50IGFyZzI2ODMsaW50IGFyZzI2ODQsaW50IGFyZzI2ODUsaW50IGFy
ZzI2ODYsaW50IGFyZzI2ODcsaW50IGFyZzI2ODgsaW50IGFyZzI2ODksaW50IGFyZzI2OTAsaW50
IGFyZzI2OTEsaW50IGFyZzI2OTIsaW50IGFyZzI2OTMsaW50IGFyZzI2OTQsaW50IGFyZzI2OTUs
aW50IGFyZzI2OTYsaW50IGFyZzI2OTcsaW50IGFyZzI2OTgsaW50IGFyZzI2OTksaW50IGFyZzI3
MDAsaW50IGFyZzI3MDEsaW50IGFyZzI3MDIsaW50IGFyZzI3MDMsaW50IGFyZzI3MDQsaW50IGFy
ZzI3MDUsaW50IGFyZzI3MDYsaW50IGFyZzI3MDcsaW50IGFyZzI3MDgsaW50IGFyZzI3MDksaW50
IGFyZzI3MTAsaW50IGFyZzI3MTEsaW50IGFyZzI3MTIsaW50IGFyZzI3MTMsaW50IGFyZzI3MTQs
aW50IGFyZzI3MTUsaW50IGFyZzI3MTYsaW50IGFyZzI3MTcsaW50IGFyZzI3MTgsaW50IGFyZzI3
MTksaW50IGFyZzI3MjAsaW50IGFyZzI3MjEsaW50IGFyZzI3MjIsaW50IGFyZzI3MjMsaW50IGFy
ZzI3MjQsaW50IGFyZzI3MjUsaW50IGFyZzI3MjYsaW50IGFyZzI3MjcsaW50IGFyZzI3MjgsaW50
IGFyZzI3MjksaW50IGFyZzI3MzAsaW50IGFyZzI3MzEsaW50IGFyZzI3MzIsaW50IGFyZzI3MzMs
aW50IGFyZzI3MzQsaW50IGFyZzI3MzUsaW50IGFyZzI3MzYsaW50IGFyZzI3MzcsaW50IGFyZzI3
MzgsaW50IGFyZzI3MzksaW50IGFyZzI3NDAsaW50IGFyZzI3NDEsaW50IGFyZzI3NDIsaW50IGFy
ZzI3NDMsaW50IGFyZzI3NDQsaW50IGFyZzI3NDUsaW50IGFyZzI3NDYsaW50IGFyZzI3NDcsaW50
IGFyZzI3NDgsaW50IGFyZzI3NDksaW50IGFyZzI3NTAsaW50IGFyZzI3NTEsaW50IGFyZzI3NTIs
aW50IGFyZzI3NTMsaW50IGFyZzI3NTQsaW50IGFyZzI3NTUsaW50IGFyZzI3NTYsaW50IGFyZzI3
NTcsaW50IGFyZzI3NTgsaW50IGFyZzI3NTksaW50IGFyZzI3NjAsaW50IGFyZzI3NjEsaW50IGFy
ZzI3NjIsaW50IGFyZzI3NjMsaW50IGFyZzI3NjQsaW50IGFyZzI3NjUsaW50IGFyZzI3NjYsaW50
IGFyZzI3NjcsaW50IGFyZzI3NjgsaW50IGFyZzI3NjksaW50IGFyZzI3NzAsaW50IGFyZzI3NzEs
aW50IGFyZzI3NzIsaW50IGFyZzI3NzMsaW50IGFyZzI3NzQsaW50IGFyZzI3NzUsaW50IGFyZzI3
NzYsaW50IGFyZzI3NzcsaW50IGFyZzI3NzgsaW50IGFyZzI3NzksaW50IGFyZzI3ODAsaW50IGFy
ZzI3ODEsaW50IGFyZzI3ODIsaW50IGFyZzI3ODMsaW50IGFyZzI3ODQsaW50IGFyZzI3ODUsaW50
IGFyZzI3ODYsaW50IGFyZzI3ODcsaW50IGFyZzI3ODgsaW50IGFyZzI3ODksaW50IGFyZzI3OTAs
aW50IGFyZzI3OTEsaW50IGFyZzI3OTIsaW50IGFyZzI3OTMsaW50IGFyZzI3OTQsaW50IGFyZzI3
OTUsaW50IGFyZzI3OTYsaW50IGFyZzI3OTcsaW50IGFyZzI3OTgsaW50IGFyZzI3OTksaW50IGFy
ZzI4MDAsaW50IGFyZzI4MDEsaW50IGFyZzI4MDIsaW50IGFyZzI4MDMsaW50IGFyZzI4MDQsaW50
IGFyZzI4MDUsaW50IGFyZzI4MDYsaW50IGFyZzI4MDcsaW50IGFyZzI4MDgsaW50IGFyZzI4MDks
aW50IGFyZzI4MTAsaW50IGFyZzI4MTEsaW50IGFyZzI4MTIsaW50IGFyZzI4MTMsaW50IGFyZzI4
MTQsaW50IGFyZzI4MTUsaW50IGFyZzI4MTYsaW50IGFyZzI4MTcsaW50IGFyZzI4MTgsaW50IGFy
ZzI4MTksaW50IGFyZzI4MjAsaW50IGFyZzI4MjEsaW50IGFyZzI4MjIsaW50IGFyZzI4MjMsaW50
IGFyZzI4MjQsaW50IGFyZzI4MjUsaW50IGFyZzI4MjYsaW50IGFyZzI4MjcsaW50IGFyZzI4Mjgs
aW50IGFyZzI4MjksaW50IGFyZzI4MzAsaW50IGFyZzI4MzEsaW50IGFyZzI4MzIsaW50IGFyZzI4
MzMsaW50IGFyZzI4MzQsaW50IGFyZzI4MzUsaW50IGFyZzI4MzYsaW50IGFyZzI4MzcsaW50IGFy
ZzI4MzgsaW50IGFyZzI4MzksaW50IGFyZzI4NDAsaW50IGFyZzI4NDEsaW50IGFyZzI4NDIsaW50
IGFyZzI4NDMsaW50IGFyZzI4NDQsaW50IGFyZzI4NDUsaW50IGFyZzI4NDYsaW50IGFyZzI4NDcs
aW50IGFyZzI4NDgsaW50IGFyZzI4NDksaW50IGFyZzI4NTAsaW50IGFyZzI4NTEsaW50IGFyZzI4
NTIsaW50IGFyZzI4NTMsaW50IGFyZzI4NTQsaW50IGFyZzI4NTUsaW50IGFyZzI4NTYsaW50IGFy
ZzI4NTcsaW50IGFyZzI4NTgsaW50IGFyZzI4NTksaW50IGFyZzI4NjAsaW50IGFyZzI4NjEsaW50
IGFyZzI4NjIsaW50IGFyZzI4NjMsaW50IGFyZzI4NjQsaW50IGFyZzI4NjUsaW50IGFyZzI4NjYs
aW50IGFyZzI4NjcsaW50IGFyZzI4NjgsaW50IGFyZzI4NjksaW50IGFyZzI4NzAsaW50IGFyZzI4
NzEsaW50IGFyZzI4NzIsaW50IGFyZzI4NzMsaW50IGFyZzI4NzQsaW50IGFyZzI4NzUsaW50IGFy
ZzI4NzYsaW50IGFyZzI4NzcsaW50IGFyZzI4NzgsaW50IGFyZzI4NzksaW50IGFyZzI4ODAsaW50
IGFyZzI4ODEsaW50IGFyZzI4ODIsaW50IGFyZzI4ODMsaW50IGFyZzI4ODQsaW50IGFyZzI4ODUs
aW50IGFyZzI4ODYsaW50IGFyZzI4ODcsaW50IGFyZzI4ODgsaW50IGFyZzI4ODksaW50IGFyZzI4
OTAsaW50IGFyZzI4OTEsaW50IGFyZzI4OTIsaW50IGFyZzI4OTMsaW50IGFyZzI4OTQsaW50IGFy
ZzI4OTUsaW50IGFyZzI4OTYsaW50IGFyZzI4OTcsaW50IGFyZzI4OTgsaW50IGFyZzI4OTksaW50
IGFyZzI5MDAsaW50IGFyZzI5MDEsaW50IGFyZzI5MDIsaW50IGFyZzI5MDMsaW50IGFyZzI5MDQs
aW50IGFyZzI5MDUsaW50IGFyZzI5MDYsaW50IGFyZzI5MDcsaW50IGFyZzI5MDgsaW50IGFyZzI5
MDksaW50IGFyZzI5MTAsaW50IGFyZzI5MTEsaW50IGFyZzI5MTIsaW50IGFyZzI5MTMsaW50IGFy
ZzI5MTQsaW50IGFyZzI5MTUsaW50IGFyZzI5MTYsaW50IGFyZzI5MTcsaW50IGFyZzI5MTgsaW50
IGFyZzI5MTksaW50IGFyZzI5MjAsaW50IGFyZzI5MjEsaW50IGFyZzI5MjIsaW50IGFyZzI5MjMs
aW50IGFyZzI5MjQsaW50IGFyZzI5MjUsaW50IGFyZzI5MjYsaW50IGFyZzI5MjcsaW50IGFyZzI5
MjgsaW50IGFyZzI5MjksaW50IGFyZzI5MzAsaW50IGFyZzI5MzEsaW50IGFyZzI5MzIsaW50IGFy
ZzI5MzMsaW50IGFyZzI5MzQsaW50IGFyZzI5MzUsaW50IGFyZzI5MzYsaW50IGFyZzI5MzcsaW50
IGFyZzI5MzgsaW50IGFyZzI5MzksaW50IGFyZzI5NDAsaW50IGFyZzI5NDEsaW50IGFyZzI5NDIs
aW50IGFyZzI5NDMsaW50IGFyZzI5NDQsaW50IGFyZzI5NDUsaW50IGFyZzI5NDYsaW50IGFyZzI5
NDcsaW50IGFyZzI5NDgsaW50IGFyZzI5NDksaW50IGFyZzI5NTAsaW50IGFyZzI5NTEsaW50IGFy
ZzI5NTIsaW50IGFyZzI5NTMsaW50IGFyZzI5NTQsaW50IGFyZzI5NTUsaW50IGFyZzI5NTYsaW50
IGFyZzI5NTcsaW50IGFyZzI5NTgsaW50IGFyZzI5NTksaW50IGFyZzI5NjAsaW50IGFyZzI5NjEs
aW50IGFyZzI5NjIsaW50IGFyZzI5NjMsaW50IGFyZzI5NjQsaW50IGFyZzI5NjUsaW50IGFyZzI5
NjYsaW50IGFyZzI5NjcsaW50IGFyZzI5NjgsaW50IGFyZzI5NjksaW50IGFyZzI5NzAsaW50IGFy
ZzI5NzEsaW50IGFyZzI5NzIsaW50IGFyZzI5NzMsaW50IGFyZzI5NzQsaW50IGFyZzI5NzUsaW50
IGFyZzI5NzYsaW50IGFyZzI5NzcsaW50IGFyZzI5NzgsaW50IGFyZzI5NzksaW50IGFyZzI5ODAs
aW50IGFyZzI5ODEsaW50IGFyZzI5ODIsaW50IGFyZzI5ODMsaW50IGFyZzI5ODQsaW50IGFyZzI5
ODUsaW50IGFyZzI5ODYsaW50IGFyZzI5ODcsaW50IGFyZzI5ODgsaW50IGFyZzI5ODksaW50IGFy
ZzI5OTAsaW50IGFyZzI5OTEsaW50IGFyZzI5OTIsaW50IGFyZzI5OTMsaW50IGFyZzI5OTQsaW50
IGFyZzI5OTUsaW50IGFyZzI5OTYsaW50IGFyZzI5OTcsaW50IGFyZzI5OTgsaW50IGFyZzI5OTks
aW50IGFyZzMwMDAsaW50IGFyZzMwMDEsaW50IGFyZzMwMDIsaW50IGFyZzMwMDMsaW50IGFyZzMw
MDQsaW50IGFyZzMwMDUsaW50IGFyZzMwMDYsaW50IGFyZzMwMDcsaW50IGFyZzMwMDgsaW50IGFy
ZzMwMDksaW50IGFyZzMwMTAsaW50IGFyZzMwMTEsaW50IGFyZzMwMTIsaW50IGFyZzMwMTMsaW50
IGFyZzMwMTQsaW50IGFyZzMwMTUsaW50IGFyZzMwMTYsaW50IGFyZzMwMTcsaW50IGFyZzMwMTgs
aW50IGFyZzMwMTksaW50IGFyZzMwMjAsaW50IGFyZzMwMjEsaW50IGFyZzMwMjIsaW50IGFyZzMw
MjMsaW50IGFyZzMwMjQsaW50IGFyZzMwMjUsaW50IGFyZzMwMjYsaW50IGFyZzMwMjcsaW50IGFy
ZzMwMjgsaW50IGFyZzMwMjksaW50IGFyZzMwMzAsaW50IGFyZzMwMzEsaW50IGFyZzMwMzIsaW50
IGFyZzMwMzMsaW50IGFyZzMwMzQsaW50IGFyZzMwMzUsaW50IGFyZzMwMzYsaW50IGFyZzMwMzcs
aW50IGFyZzMwMzgsaW50IGFyZzMwMzksaW50IGFyZzMwNDAsaW50IGFyZzMwNDEsaW50IGFyZzMw
NDIsaW50IGFyZzMwNDMsaW50IGFyZzMwNDQsaW50IGFyZzMwNDUsaW50IGFyZzMwNDYsaW50IGFy
ZzMwNDcsaW50IGFyZzMwNDgsaW50IGFyZzMwNDksaW50IGFyZzMwNTAsaW50IGFyZzMwNTEsaW50
IGFyZzMwNTIsaW50IGFyZzMwNTMsaW50IGFyZzMwNTQsaW50IGFyZzMwNTUsaW50IGFyZzMwNTYs
aW50IGFyZzMwNTcsaW50IGFyZzMwNTgsaW50IGFyZzMwNTksaW50IGFyZzMwNjAsaW50IGFyZzMw
NjEsaW50IGFyZzMwNjIsaW50IGFyZzMwNjMsaW50IGFyZzMwNjQsaW50IGFyZzMwNjUsaW50IGFy
ZzMwNjYsaW50IGFyZzMwNjcsaW50IGFyZzMwNjgsaW50IGFyZzMwNjksaW50IGFyZzMwNzAsaW50
IGFyZzMwNzEsaW50IGFyZzMwNzIsaW50IGFyZzMwNzMsaW50IGFyZzMwNzQsaW50IGFyZzMwNzUs
aW50IGFyZzMwNzYsaW50IGFyZzMwNzcsaW50IGFyZzMwNzgsaW50IGFyZzMwNzksaW50IGFyZzMw
ODAsaW50IGFyZzMwODEsaW50IGFyZzMwODIsaW50IGFyZzMwODMsaW50IGFyZzMwODQsaW50IGFy
ZzMwODUsaW50IGFyZzMwODYsaW50IGFyZzMwODcsaW50IGFyZzMwODgsaW50IGFyZzMwODksaW50
IGFyZzMwOTAsaW50IGFyZzMwOTEsaW50IGFyZzMwOTIsaW50IGFyZzMwOTMsaW50IGFyZzMwOTQs
aW50IGFyZzMwOTUsaW50IGFyZzMwOTYsaW50IGFyZzMwOTcsaW50IGFyZzMwOTgsaW50IGFyZzMw
OTksaW50IGFyZzMxMDAsaW50IGFyZzMxMDEsaW50IGFyZzMxMDIsaW50IGFyZzMxMDMsaW50IGFy
ZzMxMDQsaW50IGFyZzMxMDUsaW50IGFyZzMxMDYsaW50IGFyZzMxMDcsaW50IGFyZzMxMDgsaW50
IGFyZzMxMDksaW50IGFyZzMxMTAsaW50IGFyZzMxMTEsaW50IGFyZzMxMTIsaW50IGFyZzMxMTMs
aW50IGFyZzMxMTQsaW50IGFyZzMxMTUsaW50IGFyZzMxMTYsaW50IGFyZzMxMTcsaW50IGFyZzMx
MTgsaW50IGFyZzMxMTksaW50IGFyZzMxMjAsaW50IGFyZzMxMjEsaW50IGFyZzMxMjIsaW50IGFy
ZzMxMjMsaW50IGFyZzMxMjQsaW50IGFyZzMxMjUsaW50IGFyZzMxMjYsaW50IGFyZzMxMjcsaW50
IGFyZzMxMjgsaW50IGFyZzMxMjksaW50IGFyZzMxMzAsaW50IGFyZzMxMzEsaW50IGFyZzMxMzIs
aW50IGFyZzMxMzMsaW50IGFyZzMxMzQsaW50IGFyZzMxMzUsaW50IGFyZzMxMzYsaW50IGFyZzMx
MzcsaW50IGFyZzMxMzgsaW50IGFyZzMxMzksaW50IGFyZzMxNDAsaW50IGFyZzMxNDEsaW50IGFy
ZzMxNDIsaW50IGFyZzMxNDMsaW50IGFyZzMxNDQsaW50IGFyZzMxNDUsaW50IGFyZzMxNDYsaW50
IGFyZzMxNDcsaW50IGFyZzMxNDgsaW50IGFyZzMxNDksaW50IGFyZzMxNTAsaW50IGFyZzMxNTEs
aW50IGFyZzMxNTIsaW50IGFyZzMxNTMsaW50IGFyZzMxNTQsaW50IGFyZzMxNTUsaW50IGFyZzMx
NTYsaW50IGFyZzMxNTcsaW50IGFyZzMxNTgsaW50IGFyZzMxNTksaW50IGFyZzMxNjAsaW50IGFy
ZzMxNjEsaW50IGFyZzMxNjIsaW50IGFyZzMxNjMsaW50IGFyZzMxNjQsaW50IGFyZzMxNjUsaW50
IGFyZzMxNjYsaW50IGFyZzMxNjcsaW50IGFyZzMxNjgsaW50IGFyZzMxNjksaW50IGFyZzMxNzAs
aW50IGFyZzMxNzEsaW50IGFyZzMxNzIsaW50IGFyZzMxNzMsaW50IGFyZzMxNzQsaW50IGFyZzMx
NzUsaW50IGFyZzMxNzYsaW50IGFyZzMxNzcsaW50IGFyZzMxNzgsaW50IGFyZzMxNzksaW50IGFy
ZzMxODAsaW50IGFyZzMxODEsaW50IGFyZzMxODIsaW50IGFyZzMxODMsaW50IGFyZzMxODQsaW50
IGFyZzMxODUsaW50IGFyZzMxODYsaW50IGFyZzMxODcsaW50IGFyZzMxODgsaW50IGFyZzMxODks
aW50IGFyZzMxOTAsaW50IGFyZzMxOTEsaW50IGFyZzMxOTIsaW50IGFyZzMxOTMsaW50IGFyZzMx
OTQsaW50IGFyZzMxOTUsaW50IGFyZzMxOTYsaW50IGFyZzMxOTcsaW50IGFyZzMxOTgsaW50IGFy
ZzMxOTksaW50IGFyZzMyMDAsaW50IGFyZzMyMDEsaW50IGFyZzMyMDIsaW50IGFyZzMyMDMsaW50
IGFyZzMyMDQsaW50IGFyZzMyMDUsaW50IGFyZzMyMDYsaW50IGFyZzMyMDcsaW50IGFyZzMyMDgs
aW50IGFyZzMyMDksaW50IGFyZzMyMTAsaW50IGFyZzMyMTEsaW50IGFyZzMyMTIsaW50IGFyZzMy
MTMsaW50IGFyZzMyMTQsaW50IGFyZzMyMTUsaW50IGFyZzMyMTYsaW50IGFyZzMyMTcsaW50IGFy
ZzMyMTgsaW50IGFyZzMyMTksaW50IGFyZzMyMjAsaW50IGFyZzMyMjEsaW50IGFyZzMyMjIsaW50
IGFyZzMyMjMsaW50IGFyZzMyMjQsaW50IGFyZzMyMjUsaW50IGFyZzMyMjYsaW50IGFyZzMyMjcs
aW50IGFyZzMyMjgsaW50IGFyZzMyMjksaW50IGFyZzMyMzAsaW50IGFyZzMyMzEsaW50IGFyZzMy
MzIsaW50IGFyZzMyMzMsaW50IGFyZzMyMzQsaW50IGFyZzMyMzUsaW50IGFyZzMyMzYsaW50IGFy
ZzMyMzcsaW50IGFyZzMyMzgsaW50IGFyZzMyMzksaW50IGFyZzMyNDAsaW50IGFyZzMyNDEsaW50
IGFyZzMyNDIsaW50IGFyZzMyNDMsaW50IGFyZzMyNDQsaW50IGFyZzMyNDUsaW50IGFyZzMyNDYs
aW50IGFyZzMyNDcsaW50IGFyZzMyNDgsaW50IGFyZzMyNDksaW50IGFyZzMyNTAsaW50IGFyZzMy
NTEsaW50IGFyZzMyNTIsaW50IGFyZzMyNTMsaW50IGFyZzMyNTQsaW50IGFyZzMyNTUsaW50IGFy
ZzMyNTYsaW50IGFyZzMyNTcsaW50IGFyZzMyNTgsaW50IGFyZzMyNTksaW50IGFyZzMyNjAsaW50
IGFyZzMyNjEsaW50IGFyZzMyNjIsaW50IGFyZzMyNjMsaW50IGFyZzMyNjQsaW50IGFyZzMyNjUs
aW50IGFyZzMyNjYsaW50IGFyZzMyNjcsaW50IGFyZzMyNjgsaW50IGFyZzMyNjksaW50IGFyZzMy
NzAsaW50IGFyZzMyNzEsaW50IGFyZzMyNzIsaW50IGFyZzMyNzMsaW50IGFyZzMyNzQsaW50IGFy
ZzMyNzUsaW50IGFyZzMyNzYsaW50IGFyZzMyNzcsaW50IGFyZzMyNzgsaW50IGFyZzMyNzksaW50
IGFyZzMyODAsaW50IGFyZzMyODEsaW50IGFyZzMyODIsaW50IGFyZzMyODMsaW50IGFyZzMyODQs
aW50IGFyZzMyODUsaW50IGFyZzMyODYsaW50IGFyZzMyODcsaW50IGFyZzMyODgsaW50IGFyZzMy
ODksaW50IGFyZzMyOTAsaW50IGFyZzMyOTEsaW50IGFyZzMyOTIsaW50IGFyZzMyOTMsaW50IGFy
ZzMyOTQsaW50IGFyZzMyOTUsaW50IGFyZzMyOTYsaW50IGFyZzMyOTcsaW50IGFyZzMyOTgsaW50
IGFyZzMyOTksaW50IGFyZzMzMDAsaW50IGFyZzMzMDEsaW50IGFyZzMzMDIsaW50IGFyZzMzMDMs
aW50IGFyZzMzMDQsaW50IGFyZzMzMDUsaW50IGFyZzMzMDYsaW50IGFyZzMzMDcsaW50IGFyZzMz
MDgsaW50IGFyZzMzMDksaW50IGFyZzMzMTAsaW50IGFyZzMzMTEsaW50IGFyZzMzMTIsaW50IGFy
ZzMzMTMsaW50IGFyZzMzMTQsaW50IGFyZzMzMTUsaW50IGFyZzMzMTYsaW50IGFyZzMzMTcsaW50
IGFyZzMzMTgsaW50IGFyZzMzMTksaW50IGFyZzMzMjAsaW50IGFyZzMzMjEsaW50IGFyZzMzMjIs
aW50IGFyZzMzMjMsaW50IGFyZzMzMjQsaW50IGFyZzMzMjUsaW50IGFyZzMzMjYsaW50IGFyZzMz
MjcsaW50IGFyZzMzMjgsaW50IGFyZzMzMjksaW50IGFyZzMzMzAsaW50IGFyZzMzMzEsaW50IGFy
ZzMzMzIsaW50IGFyZzMzMzMsaW50IGFyZzMzMzQsaW50IGFyZzMzMzUsaW50IGFyZzMzMzYsaW50
IGFyZzMzMzcsaW50IGFyZzMzMzgsaW50IGFyZzMzMzksaW50IGFyZzMzNDAsaW50IGFyZzMzNDEs
aW50IGFyZzMzNDIsaW50IGFyZzMzNDMsaW50IGFyZzMzNDQsaW50IGFyZzMzNDUsaW50IGFyZzMz
NDYsaW50IGFyZzMzNDcsaW50IGFyZzMzNDgsaW50IGFyZzMzNDksaW50IGFyZzMzNTAsaW50IGFy
ZzMzNTEsaW50IGFyZzMzNTIsaW50IGFyZzMzNTMsaW50IGFyZzMzNTQsaW50IGFyZzMzNTUsaW50
IGFyZzMzNTYsaW50IGFyZzMzNTcsaW50IGFyZzMzNTgsaW50IGFyZzMzNTksaW50IGFyZzMzNjAs
aW50IGFyZzMzNjEsaW50IGFyZzMzNjIsaW50IGFyZzMzNjMsaW50IGFyZzMzNjQsaW50IGFyZzMz
NjUsaW50IGFyZzMzNjYsaW50IGFyZzMzNjcsaW50IGFyZzMzNjgsaW50IGFyZzMzNjksaW50IGFy
ZzMzNzAsaW50IGFyZzMzNzEsaW50IGFyZzMzNzIsaW50IGFyZzMzNzMsaW50IGFyZzMzNzQsaW50
IGFyZzMzNzUsaW50IGFyZzMzNzYsaW50IGFyZzMzNzcsaW50IGFyZzMzNzgsaW50IGFyZzMzNzks
aW50IGFyZzMzODAsaW50IGFyZzMzODEsaW50IGFyZzMzODIsaW50IGFyZzMzODMsaW50IGFyZzMz
ODQsaW50IGFyZzMzODUsaW50IGFyZzMzODYsaW50IGFyZzMzODcsaW50IGFyZzMzODgsaW50IGFy
ZzMzODksaW50IGFyZzMzOTAsaW50IGFyZzMzOTEsaW50IGFyZzMzOTIsaW50IGFyZzMzOTMsaW50
IGFyZzMzOTQsaW50IGFyZzMzOTUsaW50IGFyZzMzOTYsaW50IGFyZzMzOTcsaW50IGFyZzMzOTgs
aW50IGFyZzMzOTksaW50IGFyZzM0MDAsaW50IGFyZzM0MDEsaW50IGFyZzM0MDIsaW50IGFyZzM0
MDMsaW50IGFyZzM0MDQsaW50IGFyZzM0MDUsaW50IGFyZzM0MDYsaW50IGFyZzM0MDcsaW50IGFy
ZzM0MDgsaW50IGFyZzM0MDksaW50IGFyZzM0MTAsaW50IGFyZzM0MTEsaW50IGFyZzM0MTIsaW50
IGFyZzM0MTMsaW50IGFyZzM0MTQsaW50IGFyZzM0MTUsaW50IGFyZzM0MTYsaW50IGFyZzM0MTcs
aW50IGFyZzM0MTgsaW50IGFyZzM0MTksaW50IGFyZzM0MjAsaW50IGFyZzM0MjEsaW50IGFyZzM0
MjIsaW50IGFyZzM0MjMsaW50IGFyZzM0MjQsaW50IGFyZzM0MjUsaW50IGFyZzM0MjYsaW50IGFy
ZzM0MjcsaW50IGFyZzM0MjgsaW50IGFyZzM0MjksaW50IGFyZzM0MzAsaW50IGFyZzM0MzEsaW50
IGFyZzM0MzIsaW50IGFyZzM0MzMsaW50IGFyZzM0MzQsaW50IGFyZzM0MzUsaW50IGFyZzM0MzYs
aW50IGFyZzM0MzcsaW50IGFyZzM0MzgsaW50IGFyZzM0MzksaW50IGFyZzM0NDAsaW50IGFyZzM0
NDEsaW50IGFyZzM0NDIsaW50IGFyZzM0NDMsaW50IGFyZzM0NDQsaW50IGFyZzM0NDUsaW50IGFy
ZzM0NDYsaW50IGFyZzM0NDcsaW50IGFyZzM0NDgsaW50IGFyZzM0NDksaW50IGFyZzM0NTAsaW50
IGFyZzM0NTEsaW50IGFyZzM0NTIsaW50IGFyZzM0NTMsaW50IGFyZzM0NTQsaW50IGFyZzM0NTUs
aW50IGFyZzM0NTYsaW50IGFyZzM0NTcsaW50IGFyZzM0NTgsaW50IGFyZzM0NTksaW50IGFyZzM0
NjAsaW50IGFyZzM0NjEsaW50IGFyZzM0NjIsaW50IGFyZzM0NjMsaW50IGFyZzM0NjQsaW50IGFy
ZzM0NjUsaW50IGFyZzM0NjYsaW50IGFyZzM0NjcsaW50IGFyZzM0NjgsaW50IGFyZzM0NjksaW50
IGFyZzM0NzAsaW50IGFyZzM0NzEsaW50IGFyZzM0NzIsaW50IGFyZzM0NzMsaW50IGFyZzM0NzQs
aW50IGFyZzM0NzUsaW50IGFyZzM0NzYsaW50IGFyZzM0NzcsaW50IGFyZzM0NzgsaW50IGFyZzM0
NzksaW50IGFyZzM0ODAsaW50IGFyZzM0ODEsaW50IGFyZzM0ODIsaW50IGFyZzM0ODMsaW50IGFy
ZzM0ODQsaW50IGFyZzM0ODUsaW50IGFyZzM0ODYsaW50IGFyZzM0ODcsaW50IGFyZzM0ODgsaW50
IGFyZzM0ODksaW50IGFyZzM0OTAsaW50IGFyZzM0OTEsaW50IGFyZzM0OTIsaW50IGFyZzM0OTMs
aW50IGFyZzM0OTQsaW50IGFyZzM0OTUsaW50IGFyZzM0OTYsaW50IGFyZzM0OTcsaW50IGFyZzM0
OTgsaW50IGFyZzM0OTksaW50IGFyZzM1MDAsaW50IGFyZzM1MDEsaW50IGFyZzM1MDIsaW50IGFy
ZzM1MDMsaW50IGFyZzM1MDQsaW50IGFyZzM1MDUsaW50IGFyZzM1MDYsaW50IGFyZzM1MDcsaW50
IGFyZzM1MDgsaW50IGFyZzM1MDksaW50IGFyZzM1MTAsaW50IGFyZzM1MTEsaW50IGFyZzM1MTIs
aW50IGFyZzM1MTMsaW50IGFyZzM1MTQsaW50IGFyZzM1MTUsaW50IGFyZzM1MTYsaW50IGFyZzM1
MTcsaW50IGFyZzM1MTgsaW50IGFyZzM1MTksaW50IGFyZzM1MjAsaW50IGFyZzM1MjEsaW50IGFy
ZzM1MjIsaW50IGFyZzM1MjMsaW50IGFyZzM1MjQsaW50IGFyZzM1MjUsaW50IGFyZzM1MjYsaW50
IGFyZzM1MjcsaW50IGFyZzM1MjgsaW50IGFyZzM1MjksaW50IGFyZzM1MzAsaW50IGFyZzM1MzEs
aW50IGFyZzM1MzIsaW50IGFyZzM1MzMsaW50IGFyZzM1MzQsaW50IGFyZzM1MzUsaW50IGFyZzM1
MzYsaW50IGFyZzM1MzcsaW50IGFyZzM1MzgsaW50IGFyZzM1MzksaW50IGFyZzM1NDAsaW50IGFy
ZzM1NDEsaW50IGFyZzM1NDIsaW50IGFyZzM1NDMsaW50IGFyZzM1NDQsaW50IGFyZzM1NDUsaW50
IGFyZzM1NDYsaW50IGFyZzM1NDcsaW50IGFyZzM1NDgsaW50IGFyZzM1NDksaW50IGFyZzM1NTAs
aW50IGFyZzM1NTEsaW50IGFyZzM1NTIsaW50IGFyZzM1NTMsaW50IGFyZzM1NTQsaW50IGFyZzM1
NTUsaW50IGFyZzM1NTYsaW50IGFyZzM1NTcsaW50IGFyZzM1NTgsaW50IGFyZzM1NTksaW50IGFy
ZzM1NjAsaW50IGFyZzM1NjEsaW50IGFyZzM1NjIsaW50IGFyZzM1NjMsaW50IGFyZzM1NjQsaW50
IGFyZzM1NjUsaW50IGFyZzM1NjYsaW50IGFyZzM1NjcsaW50IGFyZzM1NjgsaW50IGFyZzM1Njks
aW50IGFyZzM1NzAsaW50IGFyZzM1NzEsaW50IGFyZzM1NzIsaW50IGFyZzM1NzMsaW50IGFyZzM1
NzQsaW50IGFyZzM1NzUsaW50IGFyZzM1NzYsaW50IGFyZzM1NzcsaW50IGFyZzM1NzgsaW50IGFy
ZzM1NzksaW50IGFyZzM1ODAsaW50IGFyZzM1ODEsaW50IGFyZzM1ODIsaW50IGFyZzM1ODMsaW50
IGFyZzM1ODQsaW50IGFyZzM1ODUsaW50IGFyZzM1ODYsaW50IGFyZzM1ODcsaW50IGFyZzM1ODgs
aW50IGFyZzM1ODksaW50IGFyZzM1OTAsaW50IGFyZzM1OTEsaW50IGFyZzM1OTIsaW50IGFyZzM1
OTMsaW50IGFyZzM1OTQsaW50IGFyZzM1OTUsaW50IGFyZzM1OTYsaW50IGFyZzM1OTcsaW50IGFy
ZzM1OTgsaW50IGFyZzM1OTksaW50IGFyZzM2MDAsaW50IGFyZzM2MDEsaW50IGFyZzM2MDIsaW50
IGFyZzM2MDMsaW50IGFyZzM2MDQsaW50IGFyZzM2MDUsaW50IGFyZzM2MDYsaW50IGFyZzM2MDcs
aW50IGFyZzM2MDgsaW50IGFyZzM2MDksaW50IGFyZzM2MTAsaW50IGFyZzM2MTEsaW50IGFyZzM2
MTIsaW50IGFyZzM2MTMsaW50IGFyZzM2MTQsaW50IGFyZzM2MTUsaW50IGFyZzM2MTYsaW50IGFy
ZzM2MTcsaW50IGFyZzM2MTgsaW50IGFyZzM2MTksaW50IGFyZzM2MjAsaW50IGFyZzM2MjEsaW50
IGFyZzM2MjIsaW50IGFyZzM2MjMsaW50IGFyZzM2MjQsaW50IGFyZzM2MjUsaW50IGFyZzM2MjYs
aW50IGFyZzM2MjcsaW50IGFyZzM2MjgsaW50IGFyZzM2MjksaW50IGFyZzM2MzAsaW50IGFyZzM2
MzEsaW50IGFyZzM2MzIsaW50IGFyZzM2MzMsaW50IGFyZzM2MzQsaW50IGFyZzM2MzUsaW50IGFy
ZzM2MzYsaW50IGFyZzM2MzcsaW50IGFyZzM2MzgsaW50IGFyZzM2MzksaW50IGFyZzM2NDAsaW50
IGFyZzM2NDEsaW50IGFyZzM2NDIsaW50IGFyZzM2NDMsaW50IGFyZzM2NDQsaW50IGFyZzM2NDUs
aW50IGFyZzM2NDYsaW50IGFyZzM2NDcsaW50IGFyZzM2NDgsaW50IGFyZzM2NDksaW50IGFyZzM2
NTAsaW50IGFyZzM2NTEsaW50IGFyZzM2NTIsaW50IGFyZzM2NTMsaW50IGFyZzM2NTQsaW50IGFy
ZzM2NTUsaW50IGFyZzM2NTYsaW50IGFyZzM2NTcsaW50IGFyZzM2NTgsaW50IGFyZzM2NTksaW50
IGFyZzM2NjAsaW50IGFyZzM2NjEsaW50IGFyZzM2NjIsaW50IGFyZzM2NjMsaW50IGFyZzM2NjQs
aW50IGFyZzM2NjUsaW50IGFyZzM2NjYsaW50IGFyZzM2NjcsaW50IGFyZzM2NjgsaW50IGFyZzM2
NjksaW50IGFyZzM2NzAsaW50IGFyZzM2NzEsaW50IGFyZzM2NzIsaW50IGFyZzM2NzMsaW50IGFy
ZzM2NzQsaW50IGFyZzM2NzUsaW50IGFyZzM2NzYsaW50IGFyZzM2NzcsaW50IGFyZzM2NzgsaW50
IGFyZzM2NzksaW50IGFyZzM2ODAsaW50IGFyZzM2ODEsaW50IGFyZzM2ODIsaW50IGFyZzM2ODMs
aW50IGFyZzM2ODQsaW50IGFyZzM2ODUsaW50IGFyZzM2ODYsaW50IGFyZzM2ODcsaW50IGFyZzM2
ODgsaW50IGFyZzM2ODksaW50IGFyZzM2OTAsaW50IGFyZzM2OTEsaW50IGFyZzM2OTIsaW50IGFy
ZzM2OTMsaW50IGFyZzM2OTQsaW50IGFyZzM2OTUsaW50IGFyZzM2OTYsaW50IGFyZzM2OTcsaW50
IGFyZzM2OTgsaW50IGFyZzM2OTksaW50IGFyZzM3MDAsaW50IGFyZzM3MDEsaW50IGFyZzM3MDIs
aW50IGFyZzM3MDMsaW50IGFyZzM3MDQsaW50IGFyZzM3MDUsaW50IGFyZzM3MDYsaW50IGFyZzM3
MDcsaW50IGFyZzM3MDgsaW50IGFyZzM3MDksaW50IGFyZzM3MTAsaW50IGFyZzM3MTEsaW50IGFy
ZzM3MTIsaW50IGFyZzM3MTMsaW50IGFyZzM3MTQsaW50IGFyZzM3MTUsaW50IGFyZzM3MTYsaW50
IGFyZzM3MTcsaW50IGFyZzM3MTgsaW50IGFyZzM3MTksaW50IGFyZzM3MjAsaW50IGFyZzM3MjEs
aW50IGFyZzM3MjIsaW50IGFyZzM3MjMsaW50IGFyZzM3MjQsaW50IGFyZzM3MjUsaW50IGFyZzM3
MjYsaW50IGFyZzM3MjcsaW50IGFyZzM3MjgsaW50IGFyZzM3MjksaW50IGFyZzM3MzAsaW50IGFy
ZzM3MzEsaW50IGFyZzM3MzIsaW50IGFyZzM3MzMsaW50IGFyZzM3MzQsaW50IGFyZzM3MzUsaW50
IGFyZzM3MzYsaW50IGFyZzM3MzcsaW50IGFyZzM3MzgsaW50IGFyZzM3MzksaW50IGFyZzM3NDAs
aW50IGFyZzM3NDEsaW50IGFyZzM3NDIsaW50IGFyZzM3NDMsaW50IGFyZzM3NDQsaW50IGFyZzM3
NDUsaW50IGFyZzM3NDYsaW50IGFyZzM3NDcsaW50IGFyZzM3NDgsaW50IGFyZzM3NDksaW50IGFy
ZzM3NTAsaW50IGFyZzM3NTEsaW50IGFyZzM3NTIsaW50IGFyZzM3NTMsaW50IGFyZzM3NTQsaW50
IGFyZzM3NTUsaW50IGFyZzM3NTYsaW50IGFyZzM3NTcsaW50IGFyZzM3NTgsaW50IGFyZzM3NTks
aW50IGFyZzM3NjAsaW50IGFyZzM3NjEsaW50IGFyZzM3NjIsaW50IGFyZzM3NjMsaW50IGFyZzM3
NjQsaW50IGFyZzM3NjUsaW50IGFyZzM3NjYsaW50IGFyZzM3NjcsaW50IGFyZzM3NjgsaW50IGFy
ZzM3NjksaW50IGFyZzM3NzAsaW50IGFyZzM3NzEsaW50IGFyZzM3NzIsaW50IGFyZzM3NzMsaW50
IGFyZzM3NzQsaW50IGFyZzM3NzUsaW50IGFyZzM3NzYsaW50IGFyZzM3NzcsaW50IGFyZzM3Nzgs
aW50IGFyZzM3NzksaW50IGFyZzM3ODAsaW50IGFyZzM3ODEsaW50IGFyZzM3ODIsaW50IGFyZzM3
ODMsaW50IGFyZzM3ODQsaW50IGFyZzM3ODUsaW50IGFyZzM3ODYsaW50IGFyZzM3ODcsaW50IGFy
ZzM3ODgsaW50IGFyZzM3ODksaW50IGFyZzM3OTAsaW50IGFyZzM3OTEsaW50IGFyZzM3OTIsaW50
IGFyZzM3OTMsaW50IGFyZzM3OTQsaW50IGFyZzM3OTUsaW50IGFyZzM3OTYsaW50IGFyZzM3OTcs
aW50IGFyZzM3OTgsaW50IGFyZzM3OTksaW50IGFyZzM4MDAsaW50IGFyZzM4MDEsaW50IGFyZzM4
MDIsaW50IGFyZzM4MDMsaW50IGFyZzM4MDQsaW50IGFyZzM4MDUsaW50IGFyZzM4MDYsaW50IGFy
ZzM4MDcsaW50IGFyZzM4MDgsaW50IGFyZzM4MDksaW50IGFyZzM4MTAsaW50IGFyZzM4MTEsaW50
IGFyZzM4MTIsaW50IGFyZzM4MTMsaW50IGFyZzM4MTQsaW50IGFyZzM4MTUsaW50IGFyZzM4MTYs
aW50IGFyZzM4MTcsaW50IGFyZzM4MTgsaW50IGFyZzM4MTksaW50IGFyZzM4MjAsaW50IGFyZzM4
MjEsaW50IGFyZzM4MjIsaW50IGFyZzM4MjMsaW50IGFyZzM4MjQsaW50IGFyZzM4MjUsaW50IGFy
ZzM4MjYsaW50IGFyZzM4MjcsaW50IGFyZzM4MjgsaW50IGFyZzM4MjksaW50IGFyZzM4MzAsaW50
IGFyZzM4MzEsaW50IGFyZzM4MzIsaW50IGFyZzM4MzMsaW50IGFyZzM4MzQsaW50IGFyZzM4MzUs
aW50IGFyZzM4MzYsaW50IGFyZzM4MzcsaW50IGFyZzM4MzgsaW50IGFyZzM4MzksaW50IGFyZzM4
NDAsaW50IGFyZzM4NDEsaW50IGFyZzM4NDIsaW50IGFyZzM4NDMsaW50IGFyZzM4NDQsaW50IGFy
ZzM4NDUsaW50IGFyZzM4NDYsaW50IGFyZzM4NDcsaW50IGFyZzM4NDgsaW50IGFyZzM4NDksaW50
IGFyZzM4NTAsaW50IGFyZzM4NTEsaW50IGFyZzM4NTIsaW50IGFyZzM4NTMsaW50IGFyZzM4NTQs
aW50IGFyZzM4NTUsaW50IGFyZzM4NTYsaW50IGFyZzM4NTcsaW50IGFyZzM4NTgsaW50IGFyZzM4
NTksaW50IGFyZzM4NjAsaW50IGFyZzM4NjEsaW50IGFyZzM4NjIsaW50IGFyZzM4NjMsaW50IGFy
ZzM4NjQsaW50IGFyZzM4NjUsaW50IGFyZzM4NjYsaW50IGFyZzM4NjcsaW50IGFyZzM4NjgsaW50
IGFyZzM4NjksaW50IGFyZzM4NzAsaW50IGFyZzM4NzEsaW50IGFyZzM4NzIsaW50IGFyZzM4NzMs
aW50IGFyZzM4NzQsaW50IGFyZzM4NzUsaW50IGFyZzM4NzYsaW50IGFyZzM4NzcsaW50IGFyZzM4
NzgsaW50IGFyZzM4NzksaW50IGFyZzM4ODAsaW50IGFyZzM4ODEsaW50IGFyZzM4ODIsaW50IGFy
ZzM4ODMsaW50IGFyZzM4ODQsaW50IGFyZzM4ODUsaW50IGFyZzM4ODYsaW50IGFyZzM4ODcsaW50
IGFyZzM4ODgsaW50IGFyZzM4ODksaW50IGFyZzM4OTAsaW50IGFyZzM4OTEsaW50IGFyZzM4OTIs
aW50IGFyZzM4OTMsaW50IGFyZzM4OTQsaW50IGFyZzM4OTUsaW50IGFyZzM4OTYsaW50IGFyZzM4
OTcsaW50IGFyZzM4OTgsaW50IGFyZzM4OTksaW50IGFyZzM5MDAsaW50IGFyZzM5MDEsaW50IGFy
ZzM5MDIsaW50IGFyZzM5MDMsaW50IGFyZzM5MDQsaW50IGFyZzM5MDUsaW50IGFyZzM5MDYsaW50
IGFyZzM5MDcsaW50IGFyZzM5MDgsaW50IGFyZzM5MDksaW50IGFyZzM5MTAsaW50IGFyZzM5MTEs
aW50IGFyZzM5MTIsaW50IGFyZzM5MTMsaW50IGFyZzM5MTQsaW50IGFyZzM5MTUsaW50IGFyZzM5
MTYsaW50IGFyZzM5MTcsaW50IGFyZzM5MTgsaW50IGFyZzM5MTksaW50IGFyZzM5MjAsaW50IGFy
ZzM5MjEsaW50IGFyZzM5MjIsaW50IGFyZzM5MjMsaW50IGFyZzM5MjQsaW50IGFyZzM5MjUsaW50
IGFyZzM5MjYsaW50IGFyZzM5MjcsaW50IGFyZzM5MjgsaW50IGFyZzM5MjksaW50IGFyZzM5MzAs
aW50IGFyZzM5MzEsaW50IGFyZzM5MzIsaW50IGFyZzM5MzMsaW50IGFyZzM5MzQsaW50IGFyZzM5
MzUsaW50IGFyZzM5MzYsaW50IGFyZzM5MzcsaW50IGFyZzM5MzgsaW50IGFyZzM5MzksaW50IGFy
ZzM5NDAsaW50IGFyZzM5NDEsaW50IGFyZzM5NDIsaW50IGFyZzM5NDMsaW50IGFyZzM5NDQsaW50
IGFyZzM5NDUsaW50IGFyZzM5NDYsaW50IGFyZzM5NDcsaW50IGFyZzM5NDgsaW50IGFyZzM5NDks
aW50IGFyZzM5NTAsaW50IGFyZzM5NTEsaW50IGFyZzM5NTIsaW50IGFyZzM5NTMsaW50IGFyZzM5
NTQsaW50IGFyZzM5NTUsaW50IGFyZzM5NTYsaW50IGFyZzM5NTcsaW50IGFyZzM5NTgsaW50IGFy
ZzM5NTksaW50IGFyZzM5NjAsaW50IGFyZzM5NjEsaW50IGFyZzM5NjIsaW50IGFyZzM5NjMsaW50
IGFyZzM5NjQsaW50IGFyZzM5NjUsaW50IGFyZzM5NjYsaW50IGFyZzM5NjcsaW50IGFyZzM5Njgs
aW50IGFyZzM5NjksaW50IGFyZzM5NzAsaW50IGFyZzM5NzEsaW50IGFyZzM5NzIsaW50IGFyZzM5
NzMsaW50IGFyZzM5NzQsaW50IGFyZzM5NzUsaW50IGFyZzM5NzYsaW50IGFyZzM5NzcsaW50IGFy
ZzM5NzgsaW50IGFyZzM5NzksaW50IGFyZzM5ODAsaW50IGFyZzM5ODEsaW50IGFyZzM5ODIsaW50
IGFyZzM5ODMsaW50IGFyZzM5ODQsaW50IGFyZzM5ODUsaW50IGFyZzM5ODYsaW50IGFyZzM5ODcs
aW50IGFyZzM5ODgsaW50IGFyZzM5ODksaW50IGFyZzM5OTAsaW50IGFyZzM5OTEsaW50IGFyZzM5
OTIsaW50IGFyZzM5OTMsaW50IGFyZzM5OTQsaW50IGFyZzM5OTUsaW50IGFyZzM5OTYsaW50IGFy
ZzM5OTcsaW50IGFyZzM5OTgsaW50IGFyZzM5OTksaW50IGFyZzQwMDAsaW50IGFyZzQwMDEsaW50
IGFyZzQwMDIsaW50IGFyZzQwMDMsaW50IGFyZzQwMDQsaW50IGFyZzQwMDUsaW50IGFyZzQwMDYs
aW50IGFyZzQwMDcsaW50IGFyZzQwMDgsaW50IGFyZzQwMDksaW50IGFyZzQwMTAsaW50IGFyZzQw
MTEsaW50IGFyZzQwMTIsaW50IGFyZzQwMTMsaW50IGFyZzQwMTQsaW50IGFyZzQwMTUsaW50IGFy
ZzQwMTYsaW50IGFyZzQwMTcsaW50IGFyZzQwMTgsaW50IGFyZzQwMTksaW50IGFyZzQwMjAsaW50
IGFyZzQwMjEsaW50IGFyZzQwMjIsaW50IGFyZzQwMjMsaW50IGFyZzQwMjQsaW50IGFyZzQwMjUs
aW50IGFyZzQwMjYsaW50IGFyZzQwMjcsaW50IGFyZzQwMjgsaW50IGFyZzQwMjksaW50IGFyZzQw
MzAsaW50IGFyZzQwMzEsaW50IGFyZzQwMzIsaW50IGFyZzQwMzMsaW50IGFyZzQwMzQsaW50IGFy
ZzQwMzUsaW50IGFyZzQwMzYsaW50IGFyZzQwMzcsaW50IGFyZzQwMzgsaW50IGFyZzQwMzksaW50
IGFyZzQwNDAsaW50IGFyZzQwNDEsaW50IGFyZzQwNDIsaW50IGFyZzQwNDMsaW50IGFyZzQwNDQs
aW50IGFyZzQwNDUsaW50IGFyZzQwNDYsaW50IGFyZzQwNDcsaW50IGFyZzQwNDgsaW50IGFyZzQw
NDksaW50IGFyZzQwNTAsaW50IGFyZzQwNTEsaW50IGFyZzQwNTIsaW50IGFyZzQwNTMsaW50IGFy
ZzQwNTQsaW50IGFyZzQwNTUsaW50IGFyZzQwNTYsaW50IGFyZzQwNTcsaW50IGFyZzQwNTgsaW50
IGFyZzQwNTksaW50IGFyZzQwNjAsaW50IGFyZzQwNjEsaW50IGFyZzQwNjIsaW50IGFyZzQwNjMs
aW50IGFyZzQwNjQsaW50IGFyZzQwNjUsaW50IGFyZzQwNjYsaW50IGFyZzQwNjcsaW50IGFyZzQw
NjgsaW50IGFyZzQwNjksaW50IGFyZzQwNzAsaW50IGFyZzQwNzEsaW50IGFyZzQwNzIsaW50IGFy
ZzQwNzMsaW50IGFyZzQwNzQsaW50IGFyZzQwNzUsaW50IGFyZzQwNzYsaW50IGFyZzQwNzcsaW50
IGFyZzQwNzgsaW50IGFyZzQwNzksaW50IGFyZzQwODAsaW50IGFyZzQwODEsaW50IGFyZzQwODIs
aW50IGFyZzQwODMsaW50IGFyZzQwODQsaW50IGFyZzQwODUsaW50IGFyZzQwODYsaW50IGFyZzQw
ODcsaW50IGFyZzQwODgsaW50IGFyZzQwODksaW50IGFyZzQwOTAsaW50IGFyZzQwOTEsaW50IGFy
ZzQwOTIsaW50IGFyZzQwOTMsaW50IGFyZzQwOTQsaW50IGFyZzQwOTUsaW50IGFyZzQwOTYsaW50
IGFyZzQwOTcsaW50IGFyZzQwOTgsaW50IGFyZzQwOTksaW50IGFyZzQxMDAsaW50IGFyZzQxMDEs
aW50IGFyZzQxMDIsaW50IGFyZzQxMDMsaW50IGFyZzQxMDQsaW50IGFyZzQxMDUsaW50IGFyZzQx
MDYsaW50IGFyZzQxMDcsaW50IGFyZzQxMDgsaW50IGFyZzQxMDksaW50IGFyZzQxMTAsaW50IGFy
ZzQxMTEsaW50IGFyZzQxMTIsaW50IGFyZzQxMTMsaW50IGFyZzQxMTQsaW50IGFyZzQxMTUsaW50
IGFyZzQxMTYsaW50IGFyZzQxMTcsaW50IGFyZzQxMTgsaW50IGFyZzQxMTksaW50IGFyZzQxMjAs
aW50IGFyZzQxMjEsaW50IGFyZzQxMjIsaW50IGFyZzQxMjMsaW50IGFyZzQxMjQsaW50IGFyZzQx
MjUsaW50IGFyZzQxMjYsaW50IGFyZzQxMjcsaW50IGFyZzQxMjgsaW50IGFyZzQxMjksaW50IGFy
ZzQxMzAsaW50IGFyZzQxMzEsaW50IGFyZzQxMzIsaW50IGFyZzQxMzMsaW50IGFyZzQxMzQsaW50
IGFyZzQxMzUsaW50IGFyZzQxMzYsaW50IGFyZzQxMzcsaW50IGFyZzQxMzgsaW50IGFyZzQxMzks
aW50IGFyZzQxNDAsaW50IGFyZzQxNDEsaW50IGFyZzQxNDIsaW50IGFyZzQxNDMsaW50IGFyZzQx
NDQsaW50IGFyZzQxNDUsaW50IGFyZzQxNDYsaW50IGFyZzQxNDcsaW50IGFyZzQxNDgsaW50IGFy
ZzQxNDksaW50IGFyZzQxNTAsaW50IGFyZzQxNTEsaW50IGFyZzQxNTIsaW50IGFyZzQxNTMsaW50
IGFyZzQxNTQsaW50IGFyZzQxNTUsaW50IGFyZzQxNTYsaW50IGFyZzQxNTcsaW50IGFyZzQxNTgs
aW50IGFyZzQxNTksaW50IGFyZzQxNjAsaW50IGFyZzQxNjEsaW50IGFyZzQxNjIsaW50IGFyZzQx
NjMsaW50IGFyZzQxNjQsaW50IGFyZzQxNjUsaW50IGFyZzQxNjYsaW50IGFyZzQxNjcsaW50IGFy
ZzQxNjgsaW50IGFyZzQxNjksaW50IGFyZzQxNzAsaW50IGFyZzQxNzEsaW50IGFyZzQxNzIsaW50
IGFyZzQxNzMsaW50IGFyZzQxNzQsaW50IGFyZzQxNzUsaW50IGFyZzQxNzYsaW50IGFyZzQxNzcs
aW50IGFyZzQxNzgsaW50IGFyZzQxNzksaW50IGFyZzQxODAsaW50IGFyZzQxODEsaW50IGFyZzQx
ODIsaW50IGFyZzQxODMsaW50IGFyZzQxODQsaW50IGFyZzQxODUsaW50IGFyZzQxODYsaW50IGFy
ZzQxODcsaW50IGFyZzQxODgsaW50IGFyZzQxODksaW50IGFyZzQxOTAsaW50IGFyZzQxOTEsaW50
IGFyZzQxOTIsaW50IGFyZzQxOTMsaW50IGFyZzQxOTQsaW50IGFyZzQxOTUsaW50IGFyZzQxOTYs
aW50IGFyZzQxOTcsaW50IGFyZzQxOTgsaW50IGFyZzQxOTksaW50IGFyZzQyMDAsaW50IGFyZzQy
MDEsaW50IGFyZzQyMDIsaW50IGFyZzQyMDMsaW50IGFyZzQyMDQsaW50IGFyZzQyMDUsaW50IGFy
ZzQyMDYsaW50IGFyZzQyMDcsaW50IGFyZzQyMDgsaW50IGFyZzQyMDksaW50IGFyZzQyMTAsaW50
IGFyZzQyMTEsaW50IGFyZzQyMTIsaW50IGFyZzQyMTMsaW50IGFyZzQyMTQsaW50IGFyZzQyMTUs
aW50IGFyZzQyMTYsaW50IGFyZzQyMTcsaW50IGFyZzQyMTgsaW50IGFyZzQyMTksaW50IGFyZzQy
MjAsaW50IGFyZzQyMjEsaW50IGFyZzQyMjIsaW50IGFyZzQyMjMsaW50IGFyZzQyMjQsaW50IGFy
ZzQyMjUsaW50IGFyZzQyMjYsaW50IGFyZzQyMjcsaW50IGFyZzQyMjgsaW50IGFyZzQyMjksaW50
IGFyZzQyMzAsaW50IGFyZzQyMzEsaW50IGFyZzQyMzIsaW50IGFyZzQyMzMsaW50IGFyZzQyMzQs
aW50IGFyZzQyMzUsaW50IGFyZzQyMzYsaW50IGFyZzQyMzcsaW50IGFyZzQyMzgsaW50IGFyZzQy
MzksaW50IGFyZzQyNDAsaW50IGFyZzQyNDEsaW50IGFyZzQyNDIsaW50IGFyZzQyNDMsaW50IGFy
ZzQyNDQsaW50IGFyZzQyNDUsaW50IGFyZzQyNDYsaW50IGFyZzQyNDcsaW50IGFyZzQyNDgsaW50
IGFyZzQyNDksaW50IGFyZzQyNTAsaW50IGFyZzQyNTEsaW50IGFyZzQyNTIsaW50IGFyZzQyNTMs
aW50IGFyZzQyNTQsaW50IGFyZzQyNTUsaW50IGFyZzQyNTYsaW50IGFyZzQyNTcsaW50IGFyZzQy
NTgsaW50IGFyZzQyNTksaW50IGFyZzQyNjAsaW50IGFyZzQyNjEsaW50IGFyZzQyNjIsaW50IGFy
ZzQyNjMsaW50IGFyZzQyNjQsaW50IGFyZzQyNjUsaW50IGFyZzQyNjYsaW50IGFyZzQyNjcsaW50
IGFyZzQyNjgsaW50IGFyZzQyNjksaW50IGFyZzQyNzAsaW50IGFyZzQyNzEsaW50IGFyZzQyNzIs
aW50IGFyZzQyNzMsaW50IGFyZzQyNzQsaW50IGFyZzQyNzUsaW50IGFyZzQyNzYsaW50IGFyZzQy
NzcsaW50IGFyZzQyNzgsaW50IGFyZzQyNzksaW50IGFyZzQyODAsaW50IGFyZzQyODEsaW50IGFy
ZzQyODIsaW50IGFyZzQyODMsaW50IGFyZzQyODQsaW50IGFyZzQyODUsaW50IGFyZzQyODYsaW50
IGFyZzQyODcsaW50IGFyZzQyODgsaW50IGFyZzQyODksaW50IGFyZzQyOTAsaW50IGFyZzQyOTEs
aW50IGFyZzQyOTIsaW50IGFyZzQyOTMsaW50IGFyZzQyOTQsaW50IGFyZzQyOTUsaW50IGFyZzQy
OTYsaW50IGFyZzQyOTcsaW50IGFyZzQyOTgsaW50IGFyZzQyOTksaW50IGFyZzQzMDAsaW50IGFy
ZzQzMDEsaW50IGFyZzQzMDIsaW50IGFyZzQzMDMsaW50IGFyZzQzMDQsaW50IGFyZzQzMDUsaW50
IGFyZzQzMDYsaW50IGFyZzQzMDcsaW50IGFyZzQzMDgsaW50IGFyZzQzMDksaW50IGFyZzQzMTAs
aW50IGFyZzQzMTEsaW50IGFyZzQzMTIsaW50IGFyZzQzMTMsaW50IGFyZzQzMTQsaW50IGFyZzQz
MTUsaW50IGFyZzQzMTYsaW50IGFyZzQzMTcsaW50IGFyZzQzMTgsaW50IGFyZzQzMTksaW50IGFy
ZzQzMjAsaW50IGFyZzQzMjEsaW50IGFyZzQzMjIsaW50IGFyZzQzMjMsaW50IGFyZzQzMjQsaW50
IGFyZzQzMjUsaW50IGFyZzQzMjYsaW50IGFyZzQzMjcsaW50IGFyZzQzMjgsaW50IGFyZzQzMjks
aW50IGFyZzQzMzAsaW50IGFyZzQzMzEsaW50IGFyZzQzMzIsaW50IGFyZzQzMzMsaW50IGFyZzQz
MzQsaW50IGFyZzQzMzUsaW50IGFyZzQzMzYsaW50IGFyZzQzMzcsaW50IGFyZzQzMzgsaW50IGFy
ZzQzMzksaW50IGFyZzQzNDAsaW50IGFyZzQzNDEsaW50IGFyZzQzNDIsaW50IGFyZzQzNDMsaW50
IGFyZzQzNDQsaW50IGFyZzQzNDUsaW50IGFyZzQzNDYsaW50IGFyZzQzNDcsaW50IGFyZzQzNDgs
aW50IGFyZzQzNDksaW50IGFyZzQzNTAsaW50IGFyZzQzNTEsaW50IGFyZzQzNTIsaW50IGFyZzQz
NTMsaW50IGFyZzQzNTQsaW50IGFyZzQzNTUsaW50IGFyZzQzNTYsaW50IGFyZzQzNTcsaW50IGFy
ZzQzNTgsaW50IGFyZzQzNTksaW50IGFyZzQzNjAsaW50IGFyZzQzNjEsaW50IGFyZzQzNjIsaW50
IGFyZzQzNjMsaW50IGFyZzQzNjQsaW50IGFyZzQzNjUsaW50IGFyZzQzNjYsaW50IGFyZzQzNjcs
aW50IGFyZzQzNjgsaW50IGFyZzQzNjksaW50IGFyZzQzNzAsaW50IGFyZzQzNzEsaW50IGFyZzQz
NzIsaW50IGFyZzQzNzMsaW50IGFyZzQzNzQsaW50IGFyZzQzNzUsaW50IGFyZzQzNzYsaW50IGFy
ZzQzNzcsaW50IGFyZzQzNzgsaW50IGFyZzQzNzksaW50IGFyZzQzODAsaW50IGFyZzQzODEsaW50
IGFyZzQzODIsaW50IGFyZzQzODMsaW50IGFyZzQzODQsaW50IGFyZzQzODUsaW50IGFyZzQzODYs
aW50IGFyZzQzODcsaW50IGFyZzQzODgsaW50IGFyZzQzODksaW50IGFyZzQzOTAsaW50IGFyZzQz
OTEsaW50IGFyZzQzOTIsaW50IGFyZzQzOTMsaW50IGFyZzQzOTQsaW50IGFyZzQzOTUsaW50IGFy
ZzQzOTYsaW50IGFyZzQzOTcsaW50IGFyZzQzOTgsaW50IGFyZzQzOTksaW50IGFyZzQ0MDAsaW50
IGFyZzQ0MDEsaW50IGFyZzQ0MDIsaW50IGFyZzQ0MDMsaW50IGFyZzQ0MDQsaW50IGFyZzQ0MDUs
aW50IGFyZzQ0MDYsaW50IGFyZzQ0MDcsaW50IGFyZzQ0MDgsaW50IGFyZzQ0MDksaW50IGFyZzQ0
MTAsaW50IGFyZzQ0MTEsaW50IGFyZzQ0MTIsaW50IGFyZzQ0MTMsaW50IGFyZzQ0MTQsaW50IGFy
ZzQ0MTUsaW50IGFyZzQ0MTYsaW50IGFyZzQ0MTcsaW50IGFyZzQ0MTgsaW50IGFyZzQ0MTksaW50
IGFyZzQ0MjAsaW50IGFyZzQ0MjEsaW50IGFyZzQ0MjIsaW50IGFyZzQ0MjMsaW50IGFyZzQ0MjQs
aW50IGFyZzQ0MjUsaW50IGFyZzQ0MjYsaW50IGFyZzQ0MjcsaW50IGFyZzQ0MjgsaW50IGFyZzQ0
MjksaW50IGFyZzQ0MzAsaW50IGFyZzQ0MzEsaW50IGFyZzQ0MzIsaW50IGFyZzQ0MzMsaW50IGFy
ZzQ0MzQsaW50IGFyZzQ0MzUsaW50IGFyZzQ0MzYsaW50IGFyZzQ0MzcsaW50IGFyZzQ0MzgsaW50
IGFyZzQ0MzksaW50IGFyZzQ0NDAsaW50IGFyZzQ0NDEsaW50IGFyZzQ0NDIsaW50IGFyZzQ0NDMs
aW50IGFyZzQ0NDQsaW50IGFyZzQ0NDUsaW50IGFyZzQ0NDYsaW50IGFyZzQ0NDcsaW50IGFyZzQ0
NDgsaW50IGFyZzQ0NDksaW50IGFyZzQ0NTAsaW50IGFyZzQ0NTEsaW50IGFyZzQ0NTIsaW50IGFy
ZzQ0NTMsaW50IGFyZzQ0NTQsaW50IGFyZzQ0NTUsaW50IGFyZzQ0NTYsaW50IGFyZzQ0NTcsaW50
IGFyZzQ0NTgsaW50IGFyZzQ0NTksaW50IGFyZzQ0NjAsaW50IGFyZzQ0NjEsaW50IGFyZzQ0NjIs
aW50IGFyZzQ0NjMsaW50IGFyZzQ0NjQsaW50IGFyZzQ0NjUsaW50IGFyZzQ0NjYsaW50IGFyZzQ0
NjcsaW50IGFyZzQ0NjgsaW50IGFyZzQ0NjksaW50IGFyZzQ0NzAsaW50IGFyZzQ0NzEsaW50IGFy
ZzQ0NzIsaW50IGFyZzQ0NzMsaW50IGFyZzQ0NzQsaW50IGFyZzQ0NzUsaW50IGFyZzQ0NzYsaW50
IGFyZzQ0NzcsaW50IGFyZzQ0NzgsaW50IGFyZzQ0NzksaW50IGFyZzQ0ODAsaW50IGFyZzQ0ODEs
aW50IGFyZzQ0ODIsaW50IGFyZzQ0ODMsaW50IGFyZzQ0ODQsaW50IGFyZzQ0ODUsaW50IGFyZzQ0
ODYsaW50IGFyZzQ0ODcsaW50IGFyZzQ0ODgsaW50IGFyZzQ0ODksaW50IGFyZzQ0OTAsaW50IGFy
ZzQ0OTEsaW50IGFyZzQ0OTIsaW50IGFyZzQ0OTMsaW50IGFyZzQ0OTQsaW50IGFyZzQ0OTUsaW50
IGFyZzQ0OTYsaW50IGFyZzQ0OTcsaW50IGFyZzQ0OTgsaW50IGFyZzQ0OTksaW50IGFyZzQ1MDAs
aW50IGFyZzQ1MDEsaW50IGFyZzQ1MDIsaW50IGFyZzQ1MDMsaW50IGFyZzQ1MDQsaW50IGFyZzQ1
MDUsaW50IGFyZzQ1MDYsaW50IGFyZzQ1MDcsaW50IGFyZzQ1MDgsaW50IGFyZzQ1MDksaW50IGFy
ZzQ1MTAsaW50IGFyZzQ1MTEsaW50IGFyZzQ1MTIsaW50IGFyZzQ1MTMsaW50IGFyZzQ1MTQsaW50
IGFyZzQ1MTUsaW50IGFyZzQ1MTYsaW50IGFyZzQ1MTcsaW50IGFyZzQ1MTgsaW50IGFyZzQ1MTks
aW50IGFyZzQ1MjAsaW50IGFyZzQ1MjEsaW50IGFyZzQ1MjIsaW50IGFyZzQ1MjMsaW50IGFyZzQ1
MjQsaW50IGFyZzQ1MjUsaW50IGFyZzQ1MjYsaW50IGFyZzQ1MjcsaW50IGFyZzQ1MjgsaW50IGFy
ZzQ1MjksaW50IGFyZzQ1MzAsaW50IGFyZzQ1MzEsaW50IGFyZzQ1MzIsaW50IGFyZzQ1MzMsaW50
IGFyZzQ1MzQsaW50IGFyZzQ1MzUsaW50IGFyZzQ1MzYsaW50IGFyZzQ1MzcsaW50IGFyZzQ1Mzgs
aW50IGFyZzQ1MzksaW50IGFyZzQ1NDAsaW50IGFyZzQ1NDEsaW50IGFyZzQ1NDIsaW50IGFyZzQ1
NDMsaW50IGFyZzQ1NDQsaW50IGFyZzQ1NDUsaW50IGFyZzQ1NDYsaW50IGFyZzQ1NDcsaW50IGFy
ZzQ1NDgsaW50IGFyZzQ1NDksaW50IGFyZzQ1NTAsaW50IGFyZzQ1NTEsaW50IGFyZzQ1NTIsaW50
IGFyZzQ1NTMsaW50IGFyZzQ1NTQsaW50IGFyZzQ1NTUsaW50IGFyZzQ1NTYsaW50IGFyZzQ1NTcs
aW50IGFyZzQ1NTgsaW50IGFyZzQ1NTksaW50IGFyZzQ1NjAsaW50IGFyZzQ1NjEsaW50IGFyZzQ1
NjIsaW50IGFyZzQ1NjMsaW50IGFyZzQ1NjQsaW50IGFyZzQ1NjUsaW50IGFyZzQ1NjYsaW50IGFy
ZzQ1NjcsaW50IGFyZzQ1NjgsaW50IGFyZzQ1NjksaW50IGFyZzQ1NzAsaW50IGFyZzQ1NzEsaW50
IGFyZzQ1NzIsaW50IGFyZzQ1NzMsaW50IGFyZzQ1NzQsaW50IGFyZzQ1NzUsaW50IGFyZzQ1NzYs
aW50IGFyZzQ1NzcsaW50IGFyZzQ1NzgsaW50IGFyZzQ1NzksaW50IGFyZzQ1ODAsaW50IGFyZzQ1
ODEsaW50IGFyZzQ1ODIsaW50IGFyZzQ1ODMsaW50IGFyZzQ1ODQsaW50IGFyZzQ1ODUsaW50IGFy
ZzQ1ODYsaW50IGFyZzQ1ODcsaW50IGFyZzQ1ODgsaW50IGFyZzQ1ODksaW50IGFyZzQ1OTAsaW50
IGFyZzQ1OTEsaW50IGFyZzQ1OTIsaW50IGFyZzQ1OTMsaW50IGFyZzQ1OTQsaW50IGFyZzQ1OTUs
aW50IGFyZzQ1OTYsaW50IGFyZzQ1OTcsaW50IGFyZzQ1OTgsaW50IGFyZzQ1OTksaW50IGFyZzQ2
MDAsaW50IGFyZzQ2MDEsaW50IGFyZzQ2MDIsaW50IGFyZzQ2MDMsaW50IGFyZzQ2MDQsaW50IGFy
ZzQ2MDUsaW50IGFyZzQ2MDYsaW50IGFyZzQ2MDcsaW50IGFyZzQ2MDgsaW50IGFyZzQ2MDksaW50
IGFyZzQ2MTAsaW50IGFyZzQ2MTEsaW50IGFyZzQ2MTIsaW50IGFyZzQ2MTMsaW50IGFyZzQ2MTQs
aW50IGFyZzQ2MTUsaW50IGFyZzQ2MTYsaW50IGFyZzQ2MTcsaW50IGFyZzQ2MTgsaW50IGFyZzQ2
MTksaW50IGFyZzQ2MjAsaW50IGFyZzQ2MjEsaW50IGFyZzQ2MjIsaW50IGFyZzQ2MjMsaW50IGFy
ZzQ2MjQsaW50IGFyZzQ2MjUsaW50IGFyZzQ2MjYsaW50IGFyZzQ2MjcsaW50IGFyZzQ2MjgsaW50
IGFyZzQ2MjksaW50IGFyZzQ2MzAsaW50IGFyZzQ2MzEsaW50IGFyZzQ2MzIsaW50IGFyZzQ2MzMs
aW50IGFyZzQ2MzQsaW50IGFyZzQ2MzUsaW50IGFyZzQ2MzYsaW50IGFyZzQ2MzcsaW50IGFyZzQ2
MzgsaW50IGFyZzQ2MzksaW50IGFyZzQ2NDAsaW50IGFyZzQ2NDEsaW50IGFyZzQ2NDIsaW50IGFy
ZzQ2NDMsaW50IGFyZzQ2NDQsaW50IGFyZzQ2NDUsaW50IGFyZzQ2NDYsaW50IGFyZzQ2NDcsaW50
IGFyZzQ2NDgsaW50IGFyZzQ2NDksaW50IGFyZzQ2NTAsaW50IGFyZzQ2NTEsaW50IGFyZzQ2NTIs
aW50IGFyZzQ2NTMsaW50IGFyZzQ2NTQsaW50IGFyZzQ2NTUsaW50IGFyZzQ2NTYsaW50IGFyZzQ2
NTcsaW50IGFyZzQ2NTgsaW50IGFyZzQ2NTksaW50IGFyZzQ2NjAsaW50IGFyZzQ2NjEsaW50IGFy
ZzQ2NjIsaW50IGFyZzQ2NjMsaW50IGFyZzQ2NjQsaW50IGFyZzQ2NjUsaW50IGFyZzQ2NjYsaW50
IGFyZzQ2NjcsaW50IGFyZzQ2NjgsaW50IGFyZzQ2NjksaW50IGFyZzQ2NzAsaW50IGFyZzQ2NzEs
aW50IGFyZzQ2NzIsaW50IGFyZzQ2NzMsaW50IGFyZzQ2NzQsaW50IGFyZzQ2NzUsaW50IGFyZzQ2
NzYsaW50IGFyZzQ2NzcsaW50IGFyZzQ2NzgsaW50IGFyZzQ2NzksaW50IGFyZzQ2ODAsaW50IGFy
ZzQ2ODEsaW50IGFyZzQ2ODIsaW50IGFyZzQ2ODMsaW50IGFyZzQ2ODQsaW50IGFyZzQ2ODUsaW50
IGFyZzQ2ODYsaW50IGFyZzQ2ODcsaW50IGFyZzQ2ODgsaW50IGFyZzQ2ODksaW50IGFyZzQ2OTAs
aW50IGFyZzQ2OTEsaW50IGFyZzQ2OTIsaW50IGFyZzQ2OTMsaW50IGFyZzQ2OTQsaW50IGFyZzQ2
OTUsaW50IGFyZzQ2OTYsaW50IGFyZzQ2OTcsaW50IGFyZzQ2OTgsaW50IGFyZzQ2OTksaW50IGFy
ZzQ3MDAsaW50IGFyZzQ3MDEsaW50IGFyZzQ3MDIsaW50IGFyZzQ3MDMsaW50IGFyZzQ3MDQsaW50
IGFyZzQ3MDUsaW50IGFyZzQ3MDYsaW50IGFyZzQ3MDcsaW50IGFyZzQ3MDgsaW50IGFyZzQ3MDks
aW50IGFyZzQ3MTAsaW50IGFyZzQ3MTEsaW50IGFyZzQ3MTIsaW50IGFyZzQ3MTMsaW50IGFyZzQ3
MTQsaW50IGFyZzQ3MTUsaW50IGFyZzQ3MTYsaW50IGFyZzQ3MTcsaW50IGFyZzQ3MTgsaW50IGFy
ZzQ3MTksaW50IGFyZzQ3MjAsaW50IGFyZzQ3MjEsaW50IGFyZzQ3MjIsaW50IGFyZzQ3MjMsaW50
IGFyZzQ3MjQsaW50IGFyZzQ3MjUsaW50IGFyZzQ3MjYsaW50IGFyZzQ3MjcsaW50IGFyZzQ3Mjgs
aW50IGFyZzQ3MjksaW50IGFyZzQ3MzAsaW50IGFyZzQ3MzEsaW50IGFyZzQ3MzIsaW50IGFyZzQ3
MzMsaW50IGFyZzQ3MzQsaW50IGFyZzQ3MzUsaW50IGFyZzQ3MzYsaW50IGFyZzQ3MzcsaW50IGFy
ZzQ3MzgsaW50IGFyZzQ3MzksaW50IGFyZzQ3NDAsaW50IGFyZzQ3NDEsaW50IGFyZzQ3NDIsaW50
IGFyZzQ3NDMsaW50IGFyZzQ3NDQsaW50IGFyZzQ3NDUsaW50IGFyZzQ3NDYsaW50IGFyZzQ3NDcs
aW50IGFyZzQ3NDgsaW50IGFyZzQ3NDksaW50IGFyZzQ3NTAsaW50IGFyZzQ3NTEsaW50IGFyZzQ3
NTIsaW50IGFyZzQ3NTMsaW50IGFyZzQ3NTQsaW50IGFyZzQ3NTUsaW50IGFyZzQ3NTYsaW50IGFy
ZzQ3NTcsaW50IGFyZzQ3NTgsaW50IGFyZzQ3NTksaW50IGFyZzQ3NjAsaW50IGFyZzQ3NjEsaW50
IGFyZzQ3NjIsaW50IGFyZzQ3NjMsaW50IGFyZzQ3NjQsaW50IGFyZzQ3NjUsaW50IGFyZzQ3NjYs
aW50IGFyZzQ3NjcsaW50IGFyZzQ3NjgsaW50IGFyZzQ3NjksaW50IGFyZzQ3NzAsaW50IGFyZzQ3
NzEsaW50IGFyZzQ3NzIsaW50IGFyZzQ3NzMsaW50IGFyZzQ3NzQsaW50IGFyZzQ3NzUsaW50IGFy
ZzQ3NzYsaW50IGFyZzQ3NzcsaW50IGFyZzQ3NzgsaW50IGFyZzQ3NzksaW50IGFyZzQ3ODAsaW50
IGFyZzQ3ODEsaW50IGFyZzQ3ODIsaW50IGFyZzQ3ODMsaW50IGFyZzQ3ODQsaW50IGFyZzQ3ODUs
aW50IGFyZzQ3ODYsaW50IGFyZzQ3ODcsaW50IGFyZzQ3ODgsaW50IGFyZzQ3ODksaW50IGFyZzQ3
OTAsaW50IGFyZzQ3OTEsaW50IGFyZzQ3OTIsaW50IGFyZzQ3OTMsaW50IGFyZzQ3OTQsaW50IGFy
ZzQ3OTUsaW50IGFyZzQ3OTYsaW50IGFyZzQ3OTcsaW50IGFyZzQ3OTgsaW50IGFyZzQ3OTksaW50
IGFyZzQ4MDAsaW50IGFyZzQ4MDEsaW50IGFyZzQ4MDIsaW50IGFyZzQ4MDMsaW50IGFyZzQ4MDQs
aW50IGFyZzQ4MDUsaW50IGFyZzQ4MDYsaW50IGFyZzQ4MDcsaW50IGFyZzQ4MDgsaW50IGFyZzQ4
MDksaW50IGFyZzQ4MTAsaW50IGFyZzQ4MTEsaW50IGFyZzQ4MTIsaW50IGFyZzQ4MTMsaW50IGFy
ZzQ4MTQsaW50IGFyZzQ4MTUsaW50IGFyZzQ4MTYsaW50IGFyZzQ4MTcsaW50IGFyZzQ4MTgsaW50
IGFyZzQ4MTksaW50IGFyZzQ4MjAsaW50IGFyZzQ4MjEsaW50IGFyZzQ4MjIsaW50IGFyZzQ4MjMs
aW50IGFyZzQ4MjQsaW50IGFyZzQ4MjUsaW50IGFyZzQ4MjYsaW50IGFyZzQ4MjcsaW50IGFyZzQ4
MjgsaW50IGFyZzQ4MjksaW50IGFyZzQ4MzAsaW50IGFyZzQ4MzEsaW50IGFyZzQ4MzIsaW50IGFy
ZzQ4MzMsaW50IGFyZzQ4MzQsaW50IGFyZzQ4MzUsaW50IGFyZzQ4MzYsaW50IGFyZzQ4MzcsaW50
IGFyZzQ4MzgsaW50IGFyZzQ4MzksaW50IGFyZzQ4NDAsaW50IGFyZzQ4NDEsaW50IGFyZzQ4NDIs
aW50IGFyZzQ4NDMsaW50IGFyZzQ4NDQsaW50IGFyZzQ4NDUsaW50IGFyZzQ4NDYsaW50IGFyZzQ4
NDcsaW50IGFyZzQ4NDgsaW50IGFyZzQ4NDksaW50IGFyZzQ4NTAsaW50IGFyZzQ4NTEsaW50IGFy
ZzQ4NTIsaW50IGFyZzQ4NTMsaW50IGFyZzQ4NTQsaW50IGFyZzQ4NTUsaW50IGFyZzQ4NTYsaW50
IGFyZzQ4NTcsaW50IGFyZzQ4NTgsaW50IGFyZzQ4NTksaW50IGFyZzQ4NjAsaW50IGFyZzQ4NjEs
aW50IGFyZzQ4NjIsaW50IGFyZzQ4NjMsaW50IGFyZzQ4NjQsaW50IGFyZzQ4NjUsaW50IGFyZzQ4
NjYsaW50IGFyZzQ4NjcsaW50IGFyZzQ4NjgsaW50IGFyZzQ4NjksaW50IGFyZzQ4NzAsaW50IGFy
ZzQ4NzEsaW50IGFyZzQ4NzIsaW50IGFyZzQ4NzMsaW50IGFyZzQ4NzQsaW50IGFyZzQ4NzUsaW50
IGFyZzQ4NzYsaW50IGFyZzQ4NzcsaW50IGFyZzQ4NzgsaW50IGFyZzQ4NzksaW50IGFyZzQ4ODAs
aW50IGFyZzQ4ODEsaW50IGFyZzQ4ODIsaW50IGFyZzQ4ODMsaW50IGFyZzQ4ODQsaW50IGFyZzQ4
ODUsaW50IGFyZzQ4ODYsaW50IGFyZzQ4ODcsaW50IGFyZzQ4ODgsaW50IGFyZzQ4ODksaW50IGFy
ZzQ4OTAsaW50IGFyZzQ4OTEsaW50IGFyZzQ4OTIsaW50IGFyZzQ4OTMsaW50IGFyZzQ4OTQsaW50
IGFyZzQ4OTUsaW50IGFyZzQ4OTYsaW50IGFyZzQ4OTcsaW50IGFyZzQ4OTgsaW50IGFyZzQ4OTks
aW50IGFyZzQ5MDAsaW50IGFyZzQ5MDEsaW50IGFyZzQ5MDIsaW50IGFyZzQ5MDMsaW50IGFyZzQ5
MDQsaW50IGFyZzQ5MDUsaW50IGFyZzQ5MDYsaW50IGFyZzQ5MDcsaW50IGFyZzQ5MDgsaW50IGFy
ZzQ5MDksaW50IGFyZzQ5MTAsaW50IGFyZzQ5MTEsaW50IGFyZzQ5MTIsaW50IGFyZzQ5MTMsaW50
IGFyZzQ5MTQsaW50IGFyZzQ5MTUsaW50IGFyZzQ5MTYsaW50IGFyZzQ5MTcsaW50IGFyZzQ5MTgs
aW50IGFyZzQ5MTksaW50IGFyZzQ5MjAsaW50IGFyZzQ5MjEsaW50IGFyZzQ5MjIsaW50IGFyZzQ5
MjMsaW50IGFyZzQ5MjQsaW50IGFyZzQ5MjUsaW50IGFyZzQ5MjYsaW50IGFyZzQ5MjcsaW50IGFy
ZzQ5MjgsaW50IGFyZzQ5MjksaW50IGFyZzQ5MzAsaW50IGFyZzQ5MzEsaW50IGFyZzQ5MzIsaW50
IGFyZzQ5MzMsaW50IGFyZzQ5MzQsaW50IGFyZzQ5MzUsaW50IGFyZzQ5MzYsaW50IGFyZzQ5Mzcs
aW50IGFyZzQ5MzgsaW50IGFyZzQ5MzksaW50IGFyZzQ5NDAsaW50IGFyZzQ5NDEsaW50IGFyZzQ5
NDIsaW50IGFyZzQ5NDMsaW50IGFyZzQ5NDQsaW50IGFyZzQ5NDUsaW50IGFyZzQ5NDYsaW50IGFy
ZzQ5NDcsaW50IGFyZzQ5NDgsaW50IGFyZzQ5NDksaW50IGFyZzQ5NTAsaW50IGFyZzQ5NTEsaW50
IGFyZzQ5NTIsaW50IGFyZzQ5NTMsaW50IGFyZzQ5NTQsaW50IGFyZzQ5NTUsaW50IGFyZzQ5NTYs
aW50IGFyZzQ5NTcsaW50IGFyZzQ5NTgsaW50IGFyZzQ5NTksaW50IGFyZzQ5NjAsaW50IGFyZzQ5
NjEsaW50IGFyZzQ5NjIsaW50IGFyZzQ5NjMsaW50IGFyZzQ5NjQsaW50IGFyZzQ5NjUsaW50IGFy
ZzQ5NjYsaW50IGFyZzQ5NjcsaW50IGFyZzQ5NjgsaW50IGFyZzQ5NjksaW50IGFyZzQ5NzAsaW50
IGFyZzQ5NzEsaW50IGFyZzQ5NzIsaW50IGFyZzQ5NzMsaW50IGFyZzQ5NzQsaW50IGFyZzQ5NzUs
aW50IGFyZzQ5NzYsaW50IGFyZzQ5NzcsaW50IGFyZzQ5NzgsaW50IGFyZzQ5NzksaW50IGFyZzQ5
ODAsaW50IGFyZzQ5ODEsaW50IGFyZzQ5ODIsaW50IGFyZzQ5ODMsaW50IGFyZzQ5ODQsaW50IGFy
ZzQ5ODUsaW50IGFyZzQ5ODYsaW50IGFyZzQ5ODcsaW50IGFyZzQ5ODgsaW50IGFyZzQ5ODksaW50
IGFyZzQ5OTAsaW50IGFyZzQ5OTEsaW50IGFyZzQ5OTIsaW50IGFyZzQ5OTMsaW50IGFyZzQ5OTQs
aW50IGFyZzQ5OTUsaW50IGFyZzQ5OTYsaW50IGFyZzQ5OTcsaW50IGFyZzQ5OTgsaW50IGFyZzQ5
OTkpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVS
TkFMKGZ1bmN0aW9uV2l0aEhlbGxhQXJndW1lbnRzMywgaW50LCAoaW50IGFyZzAsaW50IGFyZzEs
aW50IGFyZzIsaW50IGFyZzMsaW50IGFyZzQsaW50IGFyZzUsaW50IGFyZzYsaW50IGFyZzcsaW50
IGFyZzgsaW50IGFyZzksaW50IGFyZzEwLGludCBhcmcxMSxpbnQgYXJnMTIsaW50IGFyZzEzLGlu
dCBhcmcxNCxpbnQgYXJnMTUsaW50IGFyZzE2LGludCBhcmcxNyxpbnQgYXJnMTgsaW50IGFyZzE5
LGludCBhcmcyMCxpbnQgYXJnMjEsaW50IGFyZzIyLGludCBhcmcyMyxpbnQgYXJnMjQsaW50IGFy
ZzI1LGludCBhcmcyNixpbnQgYXJnMjcsaW50IGFyZzI4LGludCBhcmcyOSxpbnQgYXJnMzAsaW50
IGFyZzMxLGludCBhcmczMixpbnQgYXJnMzMsaW50IGFyZzM0LGludCBhcmczNSxpbnQgYXJnMzYs
aW50IGFyZzM3LGludCBhcmczOCxpbnQgYXJnMzksaW50IGFyZzQwLGludCBhcmc0MSxpbnQgYXJn
NDIsaW50IGFyZzQzLGludCBhcmc0NCxpbnQgYXJnNDUsaW50IGFyZzQ2LGludCBhcmc0NyxpbnQg
YXJnNDgsaW50IGFyZzQ5LGludCBhcmc1MCxpbnQgYXJnNTEsaW50IGFyZzUyLGludCBhcmc1Myxp
bnQgYXJnNTQsaW50IGFyZzU1LGludCBhcmc1NixpbnQgYXJnNTcsaW50IGFyZzU4LGludCBhcmc1
OSxpbnQgYXJnNjAsaW50IGFyZzYxLGludCBhcmc2MixpbnQgYXJnNjMsaW50IGFyZzY0LGludCBh
cmc2NSxpbnQgYXJnNjYsaW50IGFyZzY3LGludCBhcmc2OCxpbnQgYXJnNjksaW50IGFyZzcwLGlu
dCBhcmc3MSxpbnQgYXJnNzIsaW50IGFyZzczLGludCBhcmc3NCxpbnQgYXJnNzUsaW50IGFyZzc2
LGludCBhcmc3NyxpbnQgYXJnNzgsaW50IGFyZzc5LGludCBhcmc4MCxpbnQgYXJnODEsaW50IGFy
ZzgyLGludCBhcmc4MyxpbnQgYXJnODQsaW50IGFyZzg1LGludCBhcmc4NixpbnQgYXJnODcsaW50
IGFyZzg4LGludCBhcmc4OSxpbnQgYXJnOTAsaW50IGFyZzkxLGludCBhcmc5MixpbnQgYXJnOTMs
aW50IGFyZzk0LGludCBhcmc5NSxpbnQgYXJnOTYsaW50IGFyZzk3LGludCBhcmc5OCxpbnQgYXJn
OTksaW50IGFyZzEwMCxpbnQgYXJnMTAxLGludCBhcmcxMDIsaW50IGFyZzEwMyxpbnQgYXJnMTA0
LGludCBhcmcxMDUsaW50IGFyZzEwNixpbnQgYXJnMTA3LGludCBhcmcxMDgsaW50IGFyZzEwOSxp
bnQgYXJnMTEwLGludCBhcmcxMTEsaW50IGFyZzExMixpbnQgYXJnMTEzLGludCBhcmcxMTQsaW50
IGFyZzExNSxpbnQgYXJnMTE2LGludCBhcmcxMTcsaW50IGFyZzExOCxpbnQgYXJnMTE5LGludCBh
cmcxMjAsaW50IGFyZzEyMSxpbnQgYXJnMTIyLGludCBhcmcxMjMsaW50IGFyZzEyNCxpbnQgYXJn
MTI1LGludCBhcmcxMjYsaW50IGFyZzEyNyxpbnQgYXJnMTI4LGludCBhcmcxMjksaW50IGFyZzEz
MCxpbnQgYXJnMTMxLGludCBhcmcxMzIsaW50IGFyZzEzMyxpbnQgYXJnMTM0LGludCBhcmcxMzUs
aW50IGFyZzEzNixpbnQgYXJnMTM3LGludCBhcmcxMzgsaW50IGFyZzEzOSxpbnQgYXJnMTQwLGlu
dCBhcmcxNDEsaW50IGFyZzE0MixpbnQgYXJnMTQzLGludCBhcmcxNDQsaW50IGFyZzE0NSxpbnQg
YXJnMTQ2LGludCBhcmcxNDcsaW50IGFyZzE0OCxpbnQgYXJnMTQ5LGludCBhcmcxNTAsaW50IGFy
ZzE1MSxpbnQgYXJnMTUyLGludCBhcmcxNTMsaW50IGFyZzE1NCxpbnQgYXJnMTU1LGludCBhcmcx
NTYsaW50IGFyZzE1NyxpbnQgYXJnMTU4LGludCBhcmcxNTksaW50IGFyZzE2MCxpbnQgYXJnMTYx
LGludCBhcmcxNjIsaW50IGFyZzE2MyxpbnQgYXJnMTY0LGludCBhcmcxNjUsaW50IGFyZzE2Nixp
bnQgYXJnMTY3LGludCBhcmcxNjgsaW50IGFyZzE2OSxpbnQgYXJnMTcwLGludCBhcmcxNzEsaW50
IGFyZzE3MixpbnQgYXJnMTczLGludCBhcmcxNzQsaW50IGFyZzE3NSxpbnQgYXJnMTc2LGludCBh
cmcxNzcsaW50IGFyZzE3OCxpbnQgYXJnMTc5LGludCBhcmcxODAsaW50IGFyZzE4MSxpbnQgYXJn
MTgyLGludCBhcmcxODMsaW50IGFyZzE4NCxpbnQgYXJnMTg1LGludCBhcmcxODYsaW50IGFyZzE4
NyxpbnQgYXJnMTg4LGludCBhcmcxODksaW50IGFyZzE5MCxpbnQgYXJnMTkxLGludCBhcmcxOTIs
aW50IGFyZzE5MyxpbnQgYXJnMTk0LGludCBhcmcxOTUsaW50IGFyZzE5NixpbnQgYXJnMTk3LGlu
dCBhcmcxOTgsaW50IGFyZzE5OSxpbnQgYXJnMjAwLGludCBhcmcyMDEsaW50IGFyZzIwMixpbnQg
YXJnMjAzLGludCBhcmcyMDQsaW50IGFyZzIwNSxpbnQgYXJnMjA2LGludCBhcmcyMDcsaW50IGFy
ZzIwOCxpbnQgYXJnMjA5LGludCBhcmcyMTAsaW50IGFyZzIxMSxpbnQgYXJnMjEyLGludCBhcmcy
MTMsaW50IGFyZzIxNCxpbnQgYXJnMjE1LGludCBhcmcyMTYsaW50IGFyZzIxNyxpbnQgYXJnMjE4
LGludCBhcmcyMTksaW50IGFyZzIyMCxpbnQgYXJnMjIxLGludCBhcmcyMjIsaW50IGFyZzIyMyxp
bnQgYXJnMjI0LGludCBhcmcyMjUsaW50IGFyZzIyNixpbnQgYXJnMjI3LGludCBhcmcyMjgsaW50
IGFyZzIyOSxpbnQgYXJnMjMwLGludCBhcmcyMzEsaW50IGFyZzIzMixpbnQgYXJnMjMzLGludCBh
cmcyMzQsaW50IGFyZzIzNSxpbnQgYXJnMjM2LGludCBhcmcyMzcsaW50IGFyZzIzOCxpbnQgYXJn
MjM5LGludCBhcmcyNDAsaW50IGFyZzI0MSxpbnQgYXJnMjQyLGludCBhcmcyNDMsaW50IGFyZzI0
NCxpbnQgYXJnMjQ1LGludCBhcmcyNDYsaW50IGFyZzI0NyxpbnQgYXJnMjQ4LGludCBhcmcyNDks
aW50IGFyZzI1MCxpbnQgYXJnMjUxLGludCBhcmcyNTIsaW50IGFyZzI1MyxpbnQgYXJnMjU0LGlu
dCBhcmcyNTUsaW50IGFyZzI1NixpbnQgYXJnMjU3LGludCBhcmcyNTgsaW50IGFyZzI1OSxpbnQg
YXJnMjYwLGludCBhcmcyNjEsaW50IGFyZzI2MixpbnQgYXJnMjYzLGludCBhcmcyNjQsaW50IGFy
ZzI2NSxpbnQgYXJnMjY2LGludCBhcmcyNjcsaW50IGFyZzI2OCxpbnQgYXJnMjY5LGludCBhcmcy
NzAsaW50IGFyZzI3MSxpbnQgYXJnMjcyLGludCBhcmcyNzMsaW50IGFyZzI3NCxpbnQgYXJnMjc1
LGludCBhcmcyNzYsaW50IGFyZzI3NyxpbnQgYXJnMjc4LGludCBhcmcyNzksaW50IGFyZzI4MCxp
bnQgYXJnMjgxLGludCBhcmcyODIsaW50IGFyZzI4MyxpbnQgYXJnMjg0LGludCBhcmcyODUsaW50
IGFyZzI4NixpbnQgYXJnMjg3LGludCBhcmcyODgsaW50IGFyZzI4OSxpbnQgYXJnMjkwLGludCBh
cmcyOTEsaW50IGFyZzI5MixpbnQgYXJnMjkzLGludCBhcmcyOTQsaW50IGFyZzI5NSxpbnQgYXJn
Mjk2LGludCBhcmcyOTcsaW50IGFyZzI5OCxpbnQgYXJnMjk5LGludCBhcmczMDAsaW50IGFyZzMw
MSxpbnQgYXJnMzAyLGludCBhcmczMDMsaW50IGFyZzMwNCxpbnQgYXJnMzA1LGludCBhcmczMDYs
aW50IGFyZzMwNyxpbnQgYXJnMzA4LGludCBhcmczMDksaW50IGFyZzMxMCxpbnQgYXJnMzExLGlu
dCBhcmczMTIsaW50IGFyZzMxMyxpbnQgYXJnMzE0LGludCBhcmczMTUsaW50IGFyZzMxNixpbnQg
YXJnMzE3LGludCBhcmczMTgsaW50IGFyZzMxOSxpbnQgYXJnMzIwLGludCBhcmczMjEsaW50IGFy
ZzMyMixpbnQgYXJnMzIzLGludCBhcmczMjQsaW50IGFyZzMyNSxpbnQgYXJnMzI2LGludCBhcmcz
MjcsaW50IGFyZzMyOCxpbnQgYXJnMzI5LGludCBhcmczMzAsaW50IGFyZzMzMSxpbnQgYXJnMzMy
LGludCBhcmczMzMsaW50IGFyZzMzNCxpbnQgYXJnMzM1LGludCBhcmczMzYsaW50IGFyZzMzNyxp
bnQgYXJnMzM4LGludCBhcmczMzksaW50IGFyZzM0MCxpbnQgYXJnMzQxLGludCBhcmczNDIsaW50
IGFyZzM0MyxpbnQgYXJnMzQ0LGludCBhcmczNDUsaW50IGFyZzM0NixpbnQgYXJnMzQ3LGludCBh
cmczNDgsaW50IGFyZzM0OSxpbnQgYXJnMzUwLGludCBhcmczNTEsaW50IGFyZzM1MixpbnQgYXJn
MzUzLGludCBhcmczNTQsaW50IGFyZzM1NSxpbnQgYXJnMzU2LGludCBhcmczNTcsaW50IGFyZzM1
OCxpbnQgYXJnMzU5LGludCBhcmczNjAsaW50IGFyZzM2MSxpbnQgYXJnMzYyLGludCBhcmczNjMs
aW50IGFyZzM2NCxpbnQgYXJnMzY1LGludCBhcmczNjYsaW50IGFyZzM2NyxpbnQgYXJnMzY4LGlu
dCBhcmczNjksaW50IGFyZzM3MCxpbnQgYXJnMzcxLGludCBhcmczNzIsaW50IGFyZzM3MyxpbnQg
YXJnMzc0LGludCBhcmczNzUsaW50IGFyZzM3NixpbnQgYXJnMzc3LGludCBhcmczNzgsaW50IGFy
ZzM3OSxpbnQgYXJnMzgwLGludCBhcmczODEsaW50IGFyZzM4MixpbnQgYXJnMzgzLGludCBhcmcz
ODQsaW50IGFyZzM4NSxpbnQgYXJnMzg2LGludCBhcmczODcsaW50IGFyZzM4OCxpbnQgYXJnMzg5
LGludCBhcmczOTAsaW50IGFyZzM5MSxpbnQgYXJnMzkyLGludCBhcmczOTMsaW50IGFyZzM5NCxp
bnQgYXJnMzk1LGludCBhcmczOTYsaW50IGFyZzM5NyxpbnQgYXJnMzk4LGludCBhcmczOTksaW50
IGFyZzQwMCxpbnQgYXJnNDAxLGludCBhcmc0MDIsaW50IGFyZzQwMyxpbnQgYXJnNDA0LGludCBh
cmc0MDUsaW50IGFyZzQwNixpbnQgYXJnNDA3LGludCBhcmc0MDgsaW50IGFyZzQwOSxpbnQgYXJn
NDEwLGludCBhcmc0MTEsaW50IGFyZzQxMixpbnQgYXJnNDEzLGludCBhcmc0MTQsaW50IGFyZzQx
NSxpbnQgYXJnNDE2LGludCBhcmc0MTcsaW50IGFyZzQxOCxpbnQgYXJnNDE5LGludCBhcmc0MjAs
aW50IGFyZzQyMSxpbnQgYXJnNDIyLGludCBhcmc0MjMsaW50IGFyZzQyNCxpbnQgYXJnNDI1LGlu
dCBhcmc0MjYsaW50IGFyZzQyNyxpbnQgYXJnNDI4LGludCBhcmc0MjksaW50IGFyZzQzMCxpbnQg
YXJnNDMxLGludCBhcmc0MzIsaW50IGFyZzQzMyxpbnQgYXJnNDM0LGludCBhcmc0MzUsaW50IGFy
ZzQzNixpbnQgYXJnNDM3LGludCBhcmc0MzgsaW50IGFyZzQzOSxpbnQgYXJnNDQwLGludCBhcmc0
NDEsaW50IGFyZzQ0MixpbnQgYXJnNDQzLGludCBhcmc0NDQsaW50IGFyZzQ0NSxpbnQgYXJnNDQ2
LGludCBhcmc0NDcsaW50IGFyZzQ0OCxpbnQgYXJnNDQ5LGludCBhcmc0NTAsaW50IGFyZzQ1MSxp
bnQgYXJnNDUyLGludCBhcmc0NTMsaW50IGFyZzQ1NCxpbnQgYXJnNDU1LGludCBhcmc0NTYsaW50
IGFyZzQ1NyxpbnQgYXJnNDU4LGludCBhcmc0NTksaW50IGFyZzQ2MCxpbnQgYXJnNDYxLGludCBh
cmc0NjIsaW50IGFyZzQ2MyxpbnQgYXJnNDY0LGludCBhcmc0NjUsaW50IGFyZzQ2NixpbnQgYXJn
NDY3LGludCBhcmc0NjgsaW50IGFyZzQ2OSxpbnQgYXJnNDcwLGludCBhcmc0NzEsaW50IGFyZzQ3
MixpbnQgYXJnNDczLGludCBhcmc0NzQsaW50IGFyZzQ3NSxpbnQgYXJnNDc2LGludCBhcmc0Nzcs
aW50IGFyZzQ3OCxpbnQgYXJnNDc5LGludCBhcmc0ODAsaW50IGFyZzQ4MSxpbnQgYXJnNDgyLGlu
dCBhcmc0ODMsaW50IGFyZzQ4NCxpbnQgYXJnNDg1LGludCBhcmc0ODYsaW50IGFyZzQ4NyxpbnQg
YXJnNDg4LGludCBhcmc0ODksaW50IGFyZzQ5MCxpbnQgYXJnNDkxLGludCBhcmc0OTIsaW50IGFy
ZzQ5MyxpbnQgYXJnNDk0LGludCBhcmc0OTUsaW50IGFyZzQ5NixpbnQgYXJnNDk3LGludCBhcmc0
OTgsaW50IGFyZzQ5OSxpbnQgYXJnNTAwLGludCBhcmc1MDEsaW50IGFyZzUwMixpbnQgYXJnNTAz
LGludCBhcmc1MDQsaW50IGFyZzUwNSxpbnQgYXJnNTA2LGludCBhcmc1MDcsaW50IGFyZzUwOCxp
bnQgYXJnNTA5LGludCBhcmc1MTAsaW50IGFyZzUxMSxpbnQgYXJnNTEyLGludCBhcmc1MTMsaW50
IGFyZzUxNCxpbnQgYXJnNTE1LGludCBhcmc1MTYsaW50IGFyZzUxNyxpbnQgYXJnNTE4LGludCBh
cmc1MTksaW50IGFyZzUyMCxpbnQgYXJnNTIxLGludCBhcmc1MjIsaW50IGFyZzUyMyxpbnQgYXJn
NTI0LGludCBhcmc1MjUsaW50IGFyZzUyNixpbnQgYXJnNTI3LGludCBhcmc1MjgsaW50IGFyZzUy
OSxpbnQgYXJnNTMwLGludCBhcmc1MzEsaW50IGFyZzUzMixpbnQgYXJnNTMzLGludCBhcmc1MzQs
aW50IGFyZzUzNSxpbnQgYXJnNTM2LGludCBhcmc1MzcsaW50IGFyZzUzOCxpbnQgYXJnNTM5LGlu
dCBhcmc1NDAsaW50IGFyZzU0MSxpbnQgYXJnNTQyLGludCBhcmc1NDMsaW50IGFyZzU0NCxpbnQg
YXJnNTQ1LGludCBhcmc1NDYsaW50IGFyZzU0NyxpbnQgYXJnNTQ4LGludCBhcmc1NDksaW50IGFy
ZzU1MCxpbnQgYXJnNTUxLGludCBhcmc1NTIsaW50IGFyZzU1MyxpbnQgYXJnNTU0LGludCBhcmc1
NTUsaW50IGFyZzU1NixpbnQgYXJnNTU3LGludCBhcmc1NTgsaW50IGFyZzU1OSxpbnQgYXJnNTYw
LGludCBhcmc1NjEsaW50IGFyZzU2MixpbnQgYXJnNTYzLGludCBhcmc1NjQsaW50IGFyZzU2NSxp
bnQgYXJnNTY2LGludCBhcmc1NjcsaW50IGFyZzU2OCxpbnQgYXJnNTY5LGludCBhcmc1NzAsaW50
IGFyZzU3MSxpbnQgYXJnNTcyLGludCBhcmc1NzMsaW50IGFyZzU3NCxpbnQgYXJnNTc1LGludCBh
cmc1NzYsaW50IGFyZzU3NyxpbnQgYXJnNTc4LGludCBhcmc1NzksaW50IGFyZzU4MCxpbnQgYXJn
NTgxLGludCBhcmc1ODIsaW50IGFyZzU4MyxpbnQgYXJnNTg0LGludCBhcmc1ODUsaW50IGFyZzU4
NixpbnQgYXJnNTg3LGludCBhcmc1ODgsaW50IGFyZzU4OSxpbnQgYXJnNTkwLGludCBhcmc1OTEs
aW50IGFyZzU5MixpbnQgYXJnNTkzLGludCBhcmc1OTQsaW50IGFyZzU5NSxpbnQgYXJnNTk2LGlu
dCBhcmc1OTcsaW50IGFyZzU5OCxpbnQgYXJnNTk5LGludCBhcmc2MDAsaW50IGFyZzYwMSxpbnQg
YXJnNjAyLGludCBhcmc2MDMsaW50IGFyZzYwNCxpbnQgYXJnNjA1LGludCBhcmc2MDYsaW50IGFy
ZzYwNyxpbnQgYXJnNjA4LGludCBhcmc2MDksaW50IGFyZzYxMCxpbnQgYXJnNjExLGludCBhcmc2
MTIsaW50IGFyZzYxMyxpbnQgYXJnNjE0LGludCBhcmc2MTUsaW50IGFyZzYxNixpbnQgYXJnNjE3
LGludCBhcmc2MTgsaW50IGFyZzYxOSxpbnQgYXJnNjIwLGludCBhcmc2MjEsaW50IGFyZzYyMixp
bnQgYXJnNjIzLGludCBhcmc2MjQsaW50IGFyZzYyNSxpbnQgYXJnNjI2LGludCBhcmc2MjcsaW50
IGFyZzYyOCxpbnQgYXJnNjI5LGludCBhcmc2MzAsaW50IGFyZzYzMSxpbnQgYXJnNjMyLGludCBh
cmc2MzMsaW50IGFyZzYzNCxpbnQgYXJnNjM1LGludCBhcmc2MzYsaW50IGFyZzYzNyxpbnQgYXJn
NjM4LGludCBhcmc2MzksaW50IGFyZzY0MCxpbnQgYXJnNjQxLGludCBhcmc2NDIsaW50IGFyZzY0
MyxpbnQgYXJnNjQ0LGludCBhcmc2NDUsaW50IGFyZzY0NixpbnQgYXJnNjQ3LGludCBhcmc2NDgs
aW50IGFyZzY0OSxpbnQgYXJnNjUwLGludCBhcmc2NTEsaW50IGFyZzY1MixpbnQgYXJnNjUzLGlu
dCBhcmc2NTQsaW50IGFyZzY1NSxpbnQgYXJnNjU2LGludCBhcmc2NTcsaW50IGFyZzY1OCxpbnQg
YXJnNjU5LGludCBhcmc2NjAsaW50IGFyZzY2MSxpbnQgYXJnNjYyLGludCBhcmc2NjMsaW50IGFy
ZzY2NCxpbnQgYXJnNjY1LGludCBhcmc2NjYsaW50IGFyZzY2NyxpbnQgYXJnNjY4LGludCBhcmc2
NjksaW50IGFyZzY3MCxpbnQgYXJnNjcxLGludCBhcmc2NzIsaW50IGFyZzY3MyxpbnQgYXJnNjc0
LGludCBhcmc2NzUsaW50IGFyZzY3NixpbnQgYXJnNjc3LGludCBhcmc2NzgsaW50IGFyZzY3OSxp
bnQgYXJnNjgwLGludCBhcmc2ODEsaW50IGFyZzY4MixpbnQgYXJnNjgzLGludCBhcmc2ODQsaW50
IGFyZzY4NSxpbnQgYXJnNjg2LGludCBhcmc2ODcsaW50IGFyZzY4OCxpbnQgYXJnNjg5LGludCBh
cmc2OTAsaW50IGFyZzY5MSxpbnQgYXJnNjkyLGludCBhcmc2OTMsaW50IGFyZzY5NCxpbnQgYXJn
Njk1LGludCBhcmc2OTYsaW50IGFyZzY5NyxpbnQgYXJnNjk4LGludCBhcmc2OTksaW50IGFyZzcw
MCxpbnQgYXJnNzAxLGludCBhcmc3MDIsaW50IGFyZzcwMyxpbnQgYXJnNzA0LGludCBhcmc3MDUs
aW50IGFyZzcwNixpbnQgYXJnNzA3LGludCBhcmc3MDgsaW50IGFyZzcwOSxpbnQgYXJnNzEwLGlu
dCBhcmc3MTEsaW50IGFyZzcxMixpbnQgYXJnNzEzLGludCBhcmc3MTQsaW50IGFyZzcxNSxpbnQg
YXJnNzE2LGludCBhcmc3MTcsaW50IGFyZzcxOCxpbnQgYXJnNzE5LGludCBhcmc3MjAsaW50IGFy
ZzcyMSxpbnQgYXJnNzIyLGludCBhcmc3MjMsaW50IGFyZzcyNCxpbnQgYXJnNzI1LGludCBhcmc3
MjYsaW50IGFyZzcyNyxpbnQgYXJnNzI4LGludCBhcmc3MjksaW50IGFyZzczMCxpbnQgYXJnNzMx
LGludCBhcmc3MzIsaW50IGFyZzczMyxpbnQgYXJnNzM0LGludCBhcmc3MzUsaW50IGFyZzczNixp
bnQgYXJnNzM3LGludCBhcmc3MzgsaW50IGFyZzczOSxpbnQgYXJnNzQwLGludCBhcmc3NDEsaW50
IGFyZzc0MixpbnQgYXJnNzQzLGludCBhcmc3NDQsaW50IGFyZzc0NSxpbnQgYXJnNzQ2LGludCBh
cmc3NDcsaW50IGFyZzc0OCxpbnQgYXJnNzQ5LGludCBhcmc3NTAsaW50IGFyZzc1MSxpbnQgYXJn
NzUyLGludCBhcmc3NTMsaW50IGFyZzc1NCxpbnQgYXJnNzU1LGludCBhcmc3NTYsaW50IGFyZzc1
NyxpbnQgYXJnNzU4LGludCBhcmc3NTksaW50IGFyZzc2MCxpbnQgYXJnNzYxLGludCBhcmc3NjIs
aW50IGFyZzc2MyxpbnQgYXJnNzY0LGludCBhcmc3NjUsaW50IGFyZzc2NixpbnQgYXJnNzY3LGlu
dCBhcmc3NjgsaW50IGFyZzc2OSxpbnQgYXJnNzcwLGludCBhcmc3NzEsaW50IGFyZzc3MixpbnQg
YXJnNzczLGludCBhcmc3NzQsaW50IGFyZzc3NSxpbnQgYXJnNzc2LGludCBhcmc3NzcsaW50IGFy
Zzc3OCxpbnQgYXJnNzc5LGludCBhcmc3ODAsaW50IGFyZzc4MSxpbnQgYXJnNzgyLGludCBhcmc3
ODMsaW50IGFyZzc4NCxpbnQgYXJnNzg1LGludCBhcmc3ODYsaW50IGFyZzc4NyxpbnQgYXJnNzg4
LGludCBhcmc3ODksaW50IGFyZzc5MCxpbnQgYXJnNzkxLGludCBhcmc3OTIsaW50IGFyZzc5Myxp
bnQgYXJnNzk0LGludCBhcmc3OTUsaW50IGFyZzc5NixpbnQgYXJnNzk3LGludCBhcmc3OTgsaW50
IGFyZzc5OSxpbnQgYXJnODAwLGludCBhcmc4MDEsaW50IGFyZzgwMixpbnQgYXJnODAzLGludCBh
cmc4MDQsaW50IGFyZzgwNSxpbnQgYXJnODA2LGludCBhcmc4MDcsaW50IGFyZzgwOCxpbnQgYXJn
ODA5LGludCBhcmc4MTAsaW50IGFyZzgxMSxpbnQgYXJnODEyLGludCBhcmc4MTMsaW50IGFyZzgx
NCxpbnQgYXJnODE1LGludCBhcmc4MTYsaW50IGFyZzgxNyxpbnQgYXJnODE4LGludCBhcmc4MTks
aW50IGFyZzgyMCxpbnQgYXJnODIxLGludCBhcmc4MjIsaW50IGFyZzgyMyxpbnQgYXJnODI0LGlu
dCBhcmc4MjUsaW50IGFyZzgyNixpbnQgYXJnODI3LGludCBhcmc4MjgsaW50IGFyZzgyOSxpbnQg
YXJnODMwLGludCBhcmc4MzEsaW50IGFyZzgzMixpbnQgYXJnODMzLGludCBhcmc4MzQsaW50IGFy
ZzgzNSxpbnQgYXJnODM2LGludCBhcmc4MzcsaW50IGFyZzgzOCxpbnQgYXJnODM5LGludCBhcmc4
NDAsaW50IGFyZzg0MSxpbnQgYXJnODQyLGludCBhcmc4NDMsaW50IGFyZzg0NCxpbnQgYXJnODQ1
LGludCBhcmc4NDYsaW50IGFyZzg0NyxpbnQgYXJnODQ4LGludCBhcmc4NDksaW50IGFyZzg1MCxp
bnQgYXJnODUxLGludCBhcmc4NTIsaW50IGFyZzg1MyxpbnQgYXJnODU0LGludCBhcmc4NTUsaW50
IGFyZzg1NixpbnQgYXJnODU3LGludCBhcmc4NTgsaW50IGFyZzg1OSxpbnQgYXJnODYwLGludCBh
cmc4NjEsaW50IGFyZzg2MixpbnQgYXJnODYzLGludCBhcmc4NjQsaW50IGFyZzg2NSxpbnQgYXJn
ODY2LGludCBhcmc4NjcsaW50IGFyZzg2OCxpbnQgYXJnODY5LGludCBhcmc4NzAsaW50IGFyZzg3
MSxpbnQgYXJnODcyLGludCBhcmc4NzMsaW50IGFyZzg3NCxpbnQgYXJnODc1LGludCBhcmc4NzYs
aW50IGFyZzg3NyxpbnQgYXJnODc4LGludCBhcmc4NzksaW50IGFyZzg4MCxpbnQgYXJnODgxLGlu
dCBhcmc4ODIsaW50IGFyZzg4MyxpbnQgYXJnODg0LGludCBhcmc4ODUsaW50IGFyZzg4NixpbnQg
YXJnODg3LGludCBhcmc4ODgsaW50IGFyZzg4OSxpbnQgYXJnODkwLGludCBhcmc4OTEsaW50IGFy
Zzg5MixpbnQgYXJnODkzLGludCBhcmc4OTQsaW50IGFyZzg5NSxpbnQgYXJnODk2LGludCBhcmc4
OTcsaW50IGFyZzg5OCxpbnQgYXJnODk5LGludCBhcmc5MDAsaW50IGFyZzkwMSxpbnQgYXJnOTAy
LGludCBhcmc5MDMsaW50IGFyZzkwNCxpbnQgYXJnOTA1LGludCBhcmc5MDYsaW50IGFyZzkwNyxp
bnQgYXJnOTA4LGludCBhcmc5MDksaW50IGFyZzkxMCxpbnQgYXJnOTExLGludCBhcmc5MTIsaW50
IGFyZzkxMyxpbnQgYXJnOTE0LGludCBhcmc5MTUsaW50IGFyZzkxNixpbnQgYXJnOTE3LGludCBh
cmc5MTgsaW50IGFyZzkxOSxpbnQgYXJnOTIwLGludCBhcmc5MjEsaW50IGFyZzkyMixpbnQgYXJn
OTIzLGludCBhcmc5MjQsaW50IGFyZzkyNSxpbnQgYXJnOTI2LGludCBhcmc5MjcsaW50IGFyZzky
OCxpbnQgYXJnOTI5LGludCBhcmc5MzAsaW50IGFyZzkzMSxpbnQgYXJnOTMyLGludCBhcmc5MzMs
aW50IGFyZzkzNCxpbnQgYXJnOTM1LGludCBhcmc5MzYsaW50IGFyZzkzNyxpbnQgYXJnOTM4LGlu
dCBhcmc5MzksaW50IGFyZzk0MCxpbnQgYXJnOTQxLGludCBhcmc5NDIsaW50IGFyZzk0MyxpbnQg
YXJnOTQ0LGludCBhcmc5NDUsaW50IGFyZzk0NixpbnQgYXJnOTQ3LGludCBhcmc5NDgsaW50IGFy
Zzk0OSxpbnQgYXJnOTUwLGludCBhcmc5NTEsaW50IGFyZzk1MixpbnQgYXJnOTUzLGludCBhcmc5
NTQsaW50IGFyZzk1NSxpbnQgYXJnOTU2LGludCBhcmc5NTcsaW50IGFyZzk1OCxpbnQgYXJnOTU5
LGludCBhcmc5NjAsaW50IGFyZzk2MSxpbnQgYXJnOTYyLGludCBhcmc5NjMsaW50IGFyZzk2NCxp
bnQgYXJnOTY1LGludCBhcmc5NjYsaW50IGFyZzk2NyxpbnQgYXJnOTY4LGludCBhcmc5NjksaW50
IGFyZzk3MCxpbnQgYXJnOTcxLGludCBhcmc5NzIsaW50IGFyZzk3MyxpbnQgYXJnOTc0LGludCBh
cmc5NzUsaW50IGFyZzk3NixpbnQgYXJnOTc3LGludCBhcmc5NzgsaW50IGFyZzk3OSxpbnQgYXJn
OTgwLGludCBhcmc5ODEsaW50IGFyZzk4MixpbnQgYXJnOTgzLGludCBhcmc5ODQsaW50IGFyZzk4
NSxpbnQgYXJnOTg2LGludCBhcmc5ODcsaW50IGFyZzk4OCxpbnQgYXJnOTg5LGludCBhcmc5OTAs
aW50IGFyZzk5MSxpbnQgYXJnOTkyLGludCBhcmc5OTMsaW50IGFyZzk5NCxpbnQgYXJnOTk1LGlu
dCBhcmc5OTYsaW50IGFyZzk5NyxpbnQgYXJnOTk4LGludCBhcmc5OTksaW50IGFyZzEwMDAsaW50
IGFyZzEwMDEsaW50IGFyZzEwMDIsaW50IGFyZzEwMDMsaW50IGFyZzEwMDQsaW50IGFyZzEwMDUs
aW50IGFyZzEwMDYsaW50IGFyZzEwMDcsaW50IGFyZzEwMDgsaW50IGFyZzEwMDksaW50IGFyZzEw
MTAsaW50IGFyZzEwMTEsaW50IGFyZzEwMTIsaW50IGFyZzEwMTMsaW50IGFyZzEwMTQsaW50IGFy
ZzEwMTUsaW50IGFyZzEwMTYsaW50IGFyZzEwMTcsaW50IGFyZzEwMTgsaW50IGFyZzEwMTksaW50
IGFyZzEwMjAsaW50IGFyZzEwMjEsaW50IGFyZzEwMjIsaW50IGFyZzEwMjMsaW50IGFyZzEwMjQs
aW50IGFyZzEwMjUsaW50IGFyZzEwMjYsaW50IGFyZzEwMjcsaW50IGFyZzEwMjgsaW50IGFyZzEw
MjksaW50IGFyZzEwMzAsaW50IGFyZzEwMzEsaW50IGFyZzEwMzIsaW50IGFyZzEwMzMsaW50IGFy
ZzEwMzQsaW50IGFyZzEwMzUsaW50IGFyZzEwMzYsaW50IGFyZzEwMzcsaW50IGFyZzEwMzgsaW50
IGFyZzEwMzksaW50IGFyZzEwNDAsaW50IGFyZzEwNDEsaW50IGFyZzEwNDIsaW50IGFyZzEwNDMs
aW50IGFyZzEwNDQsaW50IGFyZzEwNDUsaW50IGFyZzEwNDYsaW50IGFyZzEwNDcsaW50IGFyZzEw
NDgsaW50IGFyZzEwNDksaW50IGFyZzEwNTAsaW50IGFyZzEwNTEsaW50IGFyZzEwNTIsaW50IGFy
ZzEwNTMsaW50IGFyZzEwNTQsaW50IGFyZzEwNTUsaW50IGFyZzEwNTYsaW50IGFyZzEwNTcsaW50
IGFyZzEwNTgsaW50IGFyZzEwNTksaW50IGFyZzEwNjAsaW50IGFyZzEwNjEsaW50IGFyZzEwNjIs
aW50IGFyZzEwNjMsaW50IGFyZzEwNjQsaW50IGFyZzEwNjUsaW50IGFyZzEwNjYsaW50IGFyZzEw
NjcsaW50IGFyZzEwNjgsaW50IGFyZzEwNjksaW50IGFyZzEwNzAsaW50IGFyZzEwNzEsaW50IGFy
ZzEwNzIsaW50IGFyZzEwNzMsaW50IGFyZzEwNzQsaW50IGFyZzEwNzUsaW50IGFyZzEwNzYsaW50
IGFyZzEwNzcsaW50IGFyZzEwNzgsaW50IGFyZzEwNzksaW50IGFyZzEwODAsaW50IGFyZzEwODEs
aW50IGFyZzEwODIsaW50IGFyZzEwODMsaW50IGFyZzEwODQsaW50IGFyZzEwODUsaW50IGFyZzEw
ODYsaW50IGFyZzEwODcsaW50IGFyZzEwODgsaW50IGFyZzEwODksaW50IGFyZzEwOTAsaW50IGFy
ZzEwOTEsaW50IGFyZzEwOTIsaW50IGFyZzEwOTMsaW50IGFyZzEwOTQsaW50IGFyZzEwOTUsaW50
IGFyZzEwOTYsaW50IGFyZzEwOTcsaW50IGFyZzEwOTgsaW50IGFyZzEwOTksaW50IGFyZzExMDAs
aW50IGFyZzExMDEsaW50IGFyZzExMDIsaW50IGFyZzExMDMsaW50IGFyZzExMDQsaW50IGFyZzEx
MDUsaW50IGFyZzExMDYsaW50IGFyZzExMDcsaW50IGFyZzExMDgsaW50IGFyZzExMDksaW50IGFy
ZzExMTAsaW50IGFyZzExMTEsaW50IGFyZzExMTIsaW50IGFyZzExMTMsaW50IGFyZzExMTQsaW50
IGFyZzExMTUsaW50IGFyZzExMTYsaW50IGFyZzExMTcsaW50IGFyZzExMTgsaW50IGFyZzExMTks
aW50IGFyZzExMjAsaW50IGFyZzExMjEsaW50IGFyZzExMjIsaW50IGFyZzExMjMsaW50IGFyZzEx
MjQsaW50IGFyZzExMjUsaW50IGFyZzExMjYsaW50IGFyZzExMjcsaW50IGFyZzExMjgsaW50IGFy
ZzExMjksaW50IGFyZzExMzAsaW50IGFyZzExMzEsaW50IGFyZzExMzIsaW50IGFyZzExMzMsaW50
IGFyZzExMzQsaW50IGFyZzExMzUsaW50IGFyZzExMzYsaW50IGFyZzExMzcsaW50IGFyZzExMzgs
aW50IGFyZzExMzksaW50IGFyZzExNDAsaW50IGFyZzExNDEsaW50IGFyZzExNDIsaW50IGFyZzEx
NDMsaW50IGFyZzExNDQsaW50IGFyZzExNDUsaW50IGFyZzExNDYsaW50IGFyZzExNDcsaW50IGFy
ZzExNDgsaW50IGFyZzExNDksaW50IGFyZzExNTAsaW50IGFyZzExNTEsaW50IGFyZzExNTIsaW50
IGFyZzExNTMsaW50IGFyZzExNTQsaW50IGFyZzExNTUsaW50IGFyZzExNTYsaW50IGFyZzExNTcs
aW50IGFyZzExNTgsaW50IGFyZzExNTksaW50IGFyZzExNjAsaW50IGFyZzExNjEsaW50IGFyZzEx
NjIsaW50IGFyZzExNjMsaW50IGFyZzExNjQsaW50IGFyZzExNjUsaW50IGFyZzExNjYsaW50IGFy
ZzExNjcsaW50IGFyZzExNjgsaW50IGFyZzExNjksaW50IGFyZzExNzAsaW50IGFyZzExNzEsaW50
IGFyZzExNzIsaW50IGFyZzExNzMsaW50IGFyZzExNzQsaW50IGFyZzExNzUsaW50IGFyZzExNzYs
aW50IGFyZzExNzcsaW50IGFyZzExNzgsaW50IGFyZzExNzksaW50IGFyZzExODAsaW50IGFyZzEx
ODEsaW50IGFyZzExODIsaW50IGFyZzExODMsaW50IGFyZzExODQsaW50IGFyZzExODUsaW50IGFy
ZzExODYsaW50IGFyZzExODcsaW50IGFyZzExODgsaW50IGFyZzExODksaW50IGFyZzExOTAsaW50
IGFyZzExOTEsaW50IGFyZzExOTIsaW50IGFyZzExOTMsaW50IGFyZzExOTQsaW50IGFyZzExOTUs
aW50IGFyZzExOTYsaW50IGFyZzExOTcsaW50IGFyZzExOTgsaW50IGFyZzExOTksaW50IGFyZzEy
MDAsaW50IGFyZzEyMDEsaW50IGFyZzEyMDIsaW50IGFyZzEyMDMsaW50IGFyZzEyMDQsaW50IGFy
ZzEyMDUsaW50IGFyZzEyMDYsaW50IGFyZzEyMDcsaW50IGFyZzEyMDgsaW50IGFyZzEyMDksaW50
IGFyZzEyMTAsaW50IGFyZzEyMTEsaW50IGFyZzEyMTIsaW50IGFyZzEyMTMsaW50IGFyZzEyMTQs
aW50IGFyZzEyMTUsaW50IGFyZzEyMTYsaW50IGFyZzEyMTcsaW50IGFyZzEyMTgsaW50IGFyZzEy
MTksaW50IGFyZzEyMjAsaW50IGFyZzEyMjEsaW50IGFyZzEyMjIsaW50IGFyZzEyMjMsaW50IGFy
ZzEyMjQsaW50IGFyZzEyMjUsaW50IGFyZzEyMjYsaW50IGFyZzEyMjcsaW50IGFyZzEyMjgsaW50
IGFyZzEyMjksaW50IGFyZzEyMzAsaW50IGFyZzEyMzEsaW50IGFyZzEyMzIsaW50IGFyZzEyMzMs
aW50IGFyZzEyMzQsaW50IGFyZzEyMzUsaW50IGFyZzEyMzYsaW50IGFyZzEyMzcsaW50IGFyZzEy
MzgsaW50IGFyZzEyMzksaW50IGFyZzEyNDAsaW50IGFyZzEyNDEsaW50IGFyZzEyNDIsaW50IGFy
ZzEyNDMsaW50IGFyZzEyNDQsaW50IGFyZzEyNDUsaW50IGFyZzEyNDYsaW50IGFyZzEyNDcsaW50
IGFyZzEyNDgsaW50IGFyZzEyNDksaW50IGFyZzEyNTAsaW50IGFyZzEyNTEsaW50IGFyZzEyNTIs
aW50IGFyZzEyNTMsaW50IGFyZzEyNTQsaW50IGFyZzEyNTUsaW50IGFyZzEyNTYsaW50IGFyZzEy
NTcsaW50IGFyZzEyNTgsaW50IGFyZzEyNTksaW50IGFyZzEyNjAsaW50IGFyZzEyNjEsaW50IGFy
ZzEyNjIsaW50IGFyZzEyNjMsaW50IGFyZzEyNjQsaW50IGFyZzEyNjUsaW50IGFyZzEyNjYsaW50
IGFyZzEyNjcsaW50IGFyZzEyNjgsaW50IGFyZzEyNjksaW50IGFyZzEyNzAsaW50IGFyZzEyNzEs
aW50IGFyZzEyNzIsaW50IGFyZzEyNzMsaW50IGFyZzEyNzQsaW50IGFyZzEyNzUsaW50IGFyZzEy
NzYsaW50IGFyZzEyNzcsaW50IGFyZzEyNzgsaW50IGFyZzEyNzksaW50IGFyZzEyODAsaW50IGFy
ZzEyODEsaW50IGFyZzEyODIsaW50IGFyZzEyODMsaW50IGFyZzEyODQsaW50IGFyZzEyODUsaW50
IGFyZzEyODYsaW50IGFyZzEyODcsaW50IGFyZzEyODgsaW50IGFyZzEyODksaW50IGFyZzEyOTAs
aW50IGFyZzEyOTEsaW50IGFyZzEyOTIsaW50IGFyZzEyOTMsaW50IGFyZzEyOTQsaW50IGFyZzEy
OTUsaW50IGFyZzEyOTYsaW50IGFyZzEyOTcsaW50IGFyZzEyOTgsaW50IGFyZzEyOTksaW50IGFy
ZzEzMDAsaW50IGFyZzEzMDEsaW50IGFyZzEzMDIsaW50IGFyZzEzMDMsaW50IGFyZzEzMDQsaW50
IGFyZzEzMDUsaW50IGFyZzEzMDYsaW50IGFyZzEzMDcsaW50IGFyZzEzMDgsaW50IGFyZzEzMDks
aW50IGFyZzEzMTAsaW50IGFyZzEzMTEsaW50IGFyZzEzMTIsaW50IGFyZzEzMTMsaW50IGFyZzEz
MTQsaW50IGFyZzEzMTUsaW50IGFyZzEzMTYsaW50IGFyZzEzMTcsaW50IGFyZzEzMTgsaW50IGFy
ZzEzMTksaW50IGFyZzEzMjAsaW50IGFyZzEzMjEsaW50IGFyZzEzMjIsaW50IGFyZzEzMjMsaW50
IGFyZzEzMjQsaW50IGFyZzEzMjUsaW50IGFyZzEzMjYsaW50IGFyZzEzMjcsaW50IGFyZzEzMjgs
aW50IGFyZzEzMjksaW50IGFyZzEzMzAsaW50IGFyZzEzMzEsaW50IGFyZzEzMzIsaW50IGFyZzEz
MzMsaW50IGFyZzEzMzQsaW50IGFyZzEzMzUsaW50IGFyZzEzMzYsaW50IGFyZzEzMzcsaW50IGFy
ZzEzMzgsaW50IGFyZzEzMzksaW50IGFyZzEzNDAsaW50IGFyZzEzNDEsaW50IGFyZzEzNDIsaW50
IGFyZzEzNDMsaW50IGFyZzEzNDQsaW50IGFyZzEzNDUsaW50IGFyZzEzNDYsaW50IGFyZzEzNDcs
aW50IGFyZzEzNDgsaW50IGFyZzEzNDksaW50IGFyZzEzNTAsaW50IGFyZzEzNTEsaW50IGFyZzEz
NTIsaW50IGFyZzEzNTMsaW50IGFyZzEzNTQsaW50IGFyZzEzNTUsaW50IGFyZzEzNTYsaW50IGFy
ZzEzNTcsaW50IGFyZzEzNTgsaW50IGFyZzEzNTksaW50IGFyZzEzNjAsaW50IGFyZzEzNjEsaW50
IGFyZzEzNjIsaW50IGFyZzEzNjMsaW50IGFyZzEzNjQsaW50IGFyZzEzNjUsaW50IGFyZzEzNjYs
aW50IGFyZzEzNjcsaW50IGFyZzEzNjgsaW50IGFyZzEzNjksaW50IGFyZzEzNzAsaW50IGFyZzEz
NzEsaW50IGFyZzEzNzIsaW50IGFyZzEzNzMsaW50IGFyZzEzNzQsaW50IGFyZzEzNzUsaW50IGFy
ZzEzNzYsaW50IGFyZzEzNzcsaW50IGFyZzEzNzgsaW50IGFyZzEzNzksaW50IGFyZzEzODAsaW50
IGFyZzEzODEsaW50IGFyZzEzODIsaW50IGFyZzEzODMsaW50IGFyZzEzODQsaW50IGFyZzEzODUs
aW50IGFyZzEzODYsaW50IGFyZzEzODcsaW50IGFyZzEzODgsaW50IGFyZzEzODksaW50IGFyZzEz
OTAsaW50IGFyZzEzOTEsaW50IGFyZzEzOTIsaW50IGFyZzEzOTMsaW50IGFyZzEzOTQsaW50IGFy
ZzEzOTUsaW50IGFyZzEzOTYsaW50IGFyZzEzOTcsaW50IGFyZzEzOTgsaW50IGFyZzEzOTksaW50
IGFyZzE0MDAsaW50IGFyZzE0MDEsaW50IGFyZzE0MDIsaW50IGFyZzE0MDMsaW50IGFyZzE0MDQs
aW50IGFyZzE0MDUsaW50IGFyZzE0MDYsaW50IGFyZzE0MDcsaW50IGFyZzE0MDgsaW50IGFyZzE0
MDksaW50IGFyZzE0MTAsaW50IGFyZzE0MTEsaW50IGFyZzE0MTIsaW50IGFyZzE0MTMsaW50IGFy
ZzE0MTQsaW50IGFyZzE0MTUsaW50IGFyZzE0MTYsaW50IGFyZzE0MTcsaW50IGFyZzE0MTgsaW50
IGFyZzE0MTksaW50IGFyZzE0MjAsaW50IGFyZzE0MjEsaW50IGFyZzE0MjIsaW50IGFyZzE0MjMs
aW50IGFyZzE0MjQsaW50IGFyZzE0MjUsaW50IGFyZzE0MjYsaW50IGFyZzE0MjcsaW50IGFyZzE0
MjgsaW50IGFyZzE0MjksaW50IGFyZzE0MzAsaW50IGFyZzE0MzEsaW50IGFyZzE0MzIsaW50IGFy
ZzE0MzMsaW50IGFyZzE0MzQsaW50IGFyZzE0MzUsaW50IGFyZzE0MzYsaW50IGFyZzE0MzcsaW50
IGFyZzE0MzgsaW50IGFyZzE0MzksaW50IGFyZzE0NDAsaW50IGFyZzE0NDEsaW50IGFyZzE0NDIs
aW50IGFyZzE0NDMsaW50IGFyZzE0NDQsaW50IGFyZzE0NDUsaW50IGFyZzE0NDYsaW50IGFyZzE0
NDcsaW50IGFyZzE0NDgsaW50IGFyZzE0NDksaW50IGFyZzE0NTAsaW50IGFyZzE0NTEsaW50IGFy
ZzE0NTIsaW50IGFyZzE0NTMsaW50IGFyZzE0NTQsaW50IGFyZzE0NTUsaW50IGFyZzE0NTYsaW50
IGFyZzE0NTcsaW50IGFyZzE0NTgsaW50IGFyZzE0NTksaW50IGFyZzE0NjAsaW50IGFyZzE0NjEs
aW50IGFyZzE0NjIsaW50IGFyZzE0NjMsaW50IGFyZzE0NjQsaW50IGFyZzE0NjUsaW50IGFyZzE0
NjYsaW50IGFyZzE0NjcsaW50IGFyZzE0NjgsaW50IGFyZzE0NjksaW50IGFyZzE0NzAsaW50IGFy
ZzE0NzEsaW50IGFyZzE0NzIsaW50IGFyZzE0NzMsaW50IGFyZzE0NzQsaW50IGFyZzE0NzUsaW50
IGFyZzE0NzYsaW50IGFyZzE0NzcsaW50IGFyZzE0NzgsaW50IGFyZzE0NzksaW50IGFyZzE0ODAs
aW50IGFyZzE0ODEsaW50IGFyZzE0ODIsaW50IGFyZzE0ODMsaW50IGFyZzE0ODQsaW50IGFyZzE0
ODUsaW50IGFyZzE0ODYsaW50IGFyZzE0ODcsaW50IGFyZzE0ODgsaW50IGFyZzE0ODksaW50IGFy
ZzE0OTAsaW50IGFyZzE0OTEsaW50IGFyZzE0OTIsaW50IGFyZzE0OTMsaW50IGFyZzE0OTQsaW50
IGFyZzE0OTUsaW50IGFyZzE0OTYsaW50IGFyZzE0OTcsaW50IGFyZzE0OTgsaW50IGFyZzE0OTks
aW50IGFyZzE1MDAsaW50IGFyZzE1MDEsaW50IGFyZzE1MDIsaW50IGFyZzE1MDMsaW50IGFyZzE1
MDQsaW50IGFyZzE1MDUsaW50IGFyZzE1MDYsaW50IGFyZzE1MDcsaW50IGFyZzE1MDgsaW50IGFy
ZzE1MDksaW50IGFyZzE1MTAsaW50IGFyZzE1MTEsaW50IGFyZzE1MTIsaW50IGFyZzE1MTMsaW50
IGFyZzE1MTQsaW50IGFyZzE1MTUsaW50IGFyZzE1MTYsaW50IGFyZzE1MTcsaW50IGFyZzE1MTgs
aW50IGFyZzE1MTksaW50IGFyZzE1MjAsaW50IGFyZzE1MjEsaW50IGFyZzE1MjIsaW50IGFyZzE1
MjMsaW50IGFyZzE1MjQsaW50IGFyZzE1MjUsaW50IGFyZzE1MjYsaW50IGFyZzE1MjcsaW50IGFy
ZzE1MjgsaW50IGFyZzE1MjksaW50IGFyZzE1MzAsaW50IGFyZzE1MzEsaW50IGFyZzE1MzIsaW50
IGFyZzE1MzMsaW50IGFyZzE1MzQsaW50IGFyZzE1MzUsaW50IGFyZzE1MzYsaW50IGFyZzE1Mzcs
aW50IGFyZzE1MzgsaW50IGFyZzE1MzksaW50IGFyZzE1NDAsaW50IGFyZzE1NDEsaW50IGFyZzE1
NDIsaW50IGFyZzE1NDMsaW50IGFyZzE1NDQsaW50IGFyZzE1NDUsaW50IGFyZzE1NDYsaW50IGFy
ZzE1NDcsaW50IGFyZzE1NDgsaW50IGFyZzE1NDksaW50IGFyZzE1NTAsaW50IGFyZzE1NTEsaW50
IGFyZzE1NTIsaW50IGFyZzE1NTMsaW50IGFyZzE1NTQsaW50IGFyZzE1NTUsaW50IGFyZzE1NTYs
aW50IGFyZzE1NTcsaW50IGFyZzE1NTgsaW50IGFyZzE1NTksaW50IGFyZzE1NjAsaW50IGFyZzE1
NjEsaW50IGFyZzE1NjIsaW50IGFyZzE1NjMsaW50IGFyZzE1NjQsaW50IGFyZzE1NjUsaW50IGFy
ZzE1NjYsaW50IGFyZzE1NjcsaW50IGFyZzE1NjgsaW50IGFyZzE1NjksaW50IGFyZzE1NzAsaW50
IGFyZzE1NzEsaW50IGFyZzE1NzIsaW50IGFyZzE1NzMsaW50IGFyZzE1NzQsaW50IGFyZzE1NzUs
aW50IGFyZzE1NzYsaW50IGFyZzE1NzcsaW50IGFyZzE1NzgsaW50IGFyZzE1NzksaW50IGFyZzE1
ODAsaW50IGFyZzE1ODEsaW50IGFyZzE1ODIsaW50IGFyZzE1ODMsaW50IGFyZzE1ODQsaW50IGFy
ZzE1ODUsaW50IGFyZzE1ODYsaW50IGFyZzE1ODcsaW50IGFyZzE1ODgsaW50IGFyZzE1ODksaW50
IGFyZzE1OTAsaW50IGFyZzE1OTEsaW50IGFyZzE1OTIsaW50IGFyZzE1OTMsaW50IGFyZzE1OTQs
aW50IGFyZzE1OTUsaW50IGFyZzE1OTYsaW50IGFyZzE1OTcsaW50IGFyZzE1OTgsaW50IGFyZzE1
OTksaW50IGFyZzE2MDAsaW50IGFyZzE2MDEsaW50IGFyZzE2MDIsaW50IGFyZzE2MDMsaW50IGFy
ZzE2MDQsaW50IGFyZzE2MDUsaW50IGFyZzE2MDYsaW50IGFyZzE2MDcsaW50IGFyZzE2MDgsaW50
IGFyZzE2MDksaW50IGFyZzE2MTAsaW50IGFyZzE2MTEsaW50IGFyZzE2MTIsaW50IGFyZzE2MTMs
aW50IGFyZzE2MTQsaW50IGFyZzE2MTUsaW50IGFyZzE2MTYsaW50IGFyZzE2MTcsaW50IGFyZzE2
MTgsaW50IGFyZzE2MTksaW50IGFyZzE2MjAsaW50IGFyZzE2MjEsaW50IGFyZzE2MjIsaW50IGFy
ZzE2MjMsaW50IGFyZzE2MjQsaW50IGFyZzE2MjUsaW50IGFyZzE2MjYsaW50IGFyZzE2MjcsaW50
IGFyZzE2MjgsaW50IGFyZzE2MjksaW50IGFyZzE2MzAsaW50IGFyZzE2MzEsaW50IGFyZzE2MzIs
aW50IGFyZzE2MzMsaW50IGFyZzE2MzQsaW50IGFyZzE2MzUsaW50IGFyZzE2MzYsaW50IGFyZzE2
MzcsaW50IGFyZzE2MzgsaW50IGFyZzE2MzksaW50IGFyZzE2NDAsaW50IGFyZzE2NDEsaW50IGFy
ZzE2NDIsaW50IGFyZzE2NDMsaW50IGFyZzE2NDQsaW50IGFyZzE2NDUsaW50IGFyZzE2NDYsaW50
IGFyZzE2NDcsaW50IGFyZzE2NDgsaW50IGFyZzE2NDksaW50IGFyZzE2NTAsaW50IGFyZzE2NTEs
aW50IGFyZzE2NTIsaW50IGFyZzE2NTMsaW50IGFyZzE2NTQsaW50IGFyZzE2NTUsaW50IGFyZzE2
NTYsaW50IGFyZzE2NTcsaW50IGFyZzE2NTgsaW50IGFyZzE2NTksaW50IGFyZzE2NjAsaW50IGFy
ZzE2NjEsaW50IGFyZzE2NjIsaW50IGFyZzE2NjMsaW50IGFyZzE2NjQsaW50IGFyZzE2NjUsaW50
IGFyZzE2NjYsaW50IGFyZzE2NjcsaW50IGFyZzE2NjgsaW50IGFyZzE2NjksaW50IGFyZzE2NzAs
aW50IGFyZzE2NzEsaW50IGFyZzE2NzIsaW50IGFyZzE2NzMsaW50IGFyZzE2NzQsaW50IGFyZzE2
NzUsaW50IGFyZzE2NzYsaW50IGFyZzE2NzcsaW50IGFyZzE2NzgsaW50IGFyZzE2NzksaW50IGFy
ZzE2ODAsaW50IGFyZzE2ODEsaW50IGFyZzE2ODIsaW50IGFyZzE2ODMsaW50IGFyZzE2ODQsaW50
IGFyZzE2ODUsaW50IGFyZzE2ODYsaW50IGFyZzE2ODcsaW50IGFyZzE2ODgsaW50IGFyZzE2ODks
aW50IGFyZzE2OTAsaW50IGFyZzE2OTEsaW50IGFyZzE2OTIsaW50IGFyZzE2OTMsaW50IGFyZzE2
OTQsaW50IGFyZzE2OTUsaW50IGFyZzE2OTYsaW50IGFyZzE2OTcsaW50IGFyZzE2OTgsaW50IGFy
ZzE2OTksaW50IGFyZzE3MDAsaW50IGFyZzE3MDEsaW50IGFyZzE3MDIsaW50IGFyZzE3MDMsaW50
IGFyZzE3MDQsaW50IGFyZzE3MDUsaW50IGFyZzE3MDYsaW50IGFyZzE3MDcsaW50IGFyZzE3MDgs
aW50IGFyZzE3MDksaW50IGFyZzE3MTAsaW50IGFyZzE3MTEsaW50IGFyZzE3MTIsaW50IGFyZzE3
MTMsaW50IGFyZzE3MTQsaW50IGFyZzE3MTUsaW50IGFyZzE3MTYsaW50IGFyZzE3MTcsaW50IGFy
ZzE3MTgsaW50IGFyZzE3MTksaW50IGFyZzE3MjAsaW50IGFyZzE3MjEsaW50IGFyZzE3MjIsaW50
IGFyZzE3MjMsaW50IGFyZzE3MjQsaW50IGFyZzE3MjUsaW50IGFyZzE3MjYsaW50IGFyZzE3Mjcs
aW50IGFyZzE3MjgsaW50IGFyZzE3MjksaW50IGFyZzE3MzAsaW50IGFyZzE3MzEsaW50IGFyZzE3
MzIsaW50IGFyZzE3MzMsaW50IGFyZzE3MzQsaW50IGFyZzE3MzUsaW50IGFyZzE3MzYsaW50IGFy
ZzE3MzcsaW50IGFyZzE3MzgsaW50IGFyZzE3MzksaW50IGFyZzE3NDAsaW50IGFyZzE3NDEsaW50
IGFyZzE3NDIsaW50IGFyZzE3NDMsaW50IGFyZzE3NDQsaW50IGFyZzE3NDUsaW50IGFyZzE3NDYs
aW50IGFyZzE3NDcsaW50IGFyZzE3NDgsaW50IGFyZzE3NDksaW50IGFyZzE3NTAsaW50IGFyZzE3
NTEsaW50IGFyZzE3NTIsaW50IGFyZzE3NTMsaW50IGFyZzE3NTQsaW50IGFyZzE3NTUsaW50IGFy
ZzE3NTYsaW50IGFyZzE3NTcsaW50IGFyZzE3NTgsaW50IGFyZzE3NTksaW50IGFyZzE3NjAsaW50
IGFyZzE3NjEsaW50IGFyZzE3NjIsaW50IGFyZzE3NjMsaW50IGFyZzE3NjQsaW50IGFyZzE3NjUs
aW50IGFyZzE3NjYsaW50IGFyZzE3NjcsaW50IGFyZzE3NjgsaW50IGFyZzE3NjksaW50IGFyZzE3
NzAsaW50IGFyZzE3NzEsaW50IGFyZzE3NzIsaW50IGFyZzE3NzMsaW50IGFyZzE3NzQsaW50IGFy
ZzE3NzUsaW50IGFyZzE3NzYsaW50IGFyZzE3NzcsaW50IGFyZzE3NzgsaW50IGFyZzE3NzksaW50
IGFyZzE3ODAsaW50IGFyZzE3ODEsaW50IGFyZzE3ODIsaW50IGFyZzE3ODMsaW50IGFyZzE3ODQs
aW50IGFyZzE3ODUsaW50IGFyZzE3ODYsaW50IGFyZzE3ODcsaW50IGFyZzE3ODgsaW50IGFyZzE3
ODksaW50IGFyZzE3OTAsaW50IGFyZzE3OTEsaW50IGFyZzE3OTIsaW50IGFyZzE3OTMsaW50IGFy
ZzE3OTQsaW50IGFyZzE3OTUsaW50IGFyZzE3OTYsaW50IGFyZzE3OTcsaW50IGFyZzE3OTgsaW50
IGFyZzE3OTksaW50IGFyZzE4MDAsaW50IGFyZzE4MDEsaW50IGFyZzE4MDIsaW50IGFyZzE4MDMs
aW50IGFyZzE4MDQsaW50IGFyZzE4MDUsaW50IGFyZzE4MDYsaW50IGFyZzE4MDcsaW50IGFyZzE4
MDgsaW50IGFyZzE4MDksaW50IGFyZzE4MTAsaW50IGFyZzE4MTEsaW50IGFyZzE4MTIsaW50IGFy
ZzE4MTMsaW50IGFyZzE4MTQsaW50IGFyZzE4MTUsaW50IGFyZzE4MTYsaW50IGFyZzE4MTcsaW50
IGFyZzE4MTgsaW50IGFyZzE4MTksaW50IGFyZzE4MjAsaW50IGFyZzE4MjEsaW50IGFyZzE4MjIs
aW50IGFyZzE4MjMsaW50IGFyZzE4MjQsaW50IGFyZzE4MjUsaW50IGFyZzE4MjYsaW50IGFyZzE4
MjcsaW50IGFyZzE4MjgsaW50IGFyZzE4MjksaW50IGFyZzE4MzAsaW50IGFyZzE4MzEsaW50IGFy
ZzE4MzIsaW50IGFyZzE4MzMsaW50IGFyZzE4MzQsaW50IGFyZzE4MzUsaW50IGFyZzE4MzYsaW50
IGFyZzE4MzcsaW50IGFyZzE4MzgsaW50IGFyZzE4MzksaW50IGFyZzE4NDAsaW50IGFyZzE4NDEs
aW50IGFyZzE4NDIsaW50IGFyZzE4NDMsaW50IGFyZzE4NDQsaW50IGFyZzE4NDUsaW50IGFyZzE4
NDYsaW50IGFyZzE4NDcsaW50IGFyZzE4NDgsaW50IGFyZzE4NDksaW50IGFyZzE4NTAsaW50IGFy
ZzE4NTEsaW50IGFyZzE4NTIsaW50IGFyZzE4NTMsaW50IGFyZzE4NTQsaW50IGFyZzE4NTUsaW50
IGFyZzE4NTYsaW50IGFyZzE4NTcsaW50IGFyZzE4NTgsaW50IGFyZzE4NTksaW50IGFyZzE4NjAs
aW50IGFyZzE4NjEsaW50IGFyZzE4NjIsaW50IGFyZzE4NjMsaW50IGFyZzE4NjQsaW50IGFyZzE4
NjUsaW50IGFyZzE4NjYsaW50IGFyZzE4NjcsaW50IGFyZzE4NjgsaW50IGFyZzE4NjksaW50IGFy
ZzE4NzAsaW50IGFyZzE4NzEsaW50IGFyZzE4NzIsaW50IGFyZzE4NzMsaW50IGFyZzE4NzQsaW50
IGFyZzE4NzUsaW50IGFyZzE4NzYsaW50IGFyZzE4NzcsaW50IGFyZzE4NzgsaW50IGFyZzE4Nzks
aW50IGFyZzE4ODAsaW50IGFyZzE4ODEsaW50IGFyZzE4ODIsaW50IGFyZzE4ODMsaW50IGFyZzE4
ODQsaW50IGFyZzE4ODUsaW50IGFyZzE4ODYsaW50IGFyZzE4ODcsaW50IGFyZzE4ODgsaW50IGFy
ZzE4ODksaW50IGFyZzE4OTAsaW50IGFyZzE4OTEsaW50IGFyZzE4OTIsaW50IGFyZzE4OTMsaW50
IGFyZzE4OTQsaW50IGFyZzE4OTUsaW50IGFyZzE4OTYsaW50IGFyZzE4OTcsaW50IGFyZzE4OTgs
aW50IGFyZzE4OTksaW50IGFyZzE5MDAsaW50IGFyZzE5MDEsaW50IGFyZzE5MDIsaW50IGFyZzE5
MDMsaW50IGFyZzE5MDQsaW50IGFyZzE5MDUsaW50IGFyZzE5MDYsaW50IGFyZzE5MDcsaW50IGFy
ZzE5MDgsaW50IGFyZzE5MDksaW50IGFyZzE5MTAsaW50IGFyZzE5MTEsaW50IGFyZzE5MTIsaW50
IGFyZzE5MTMsaW50IGFyZzE5MTQsaW50IGFyZzE5MTUsaW50IGFyZzE5MTYsaW50IGFyZzE5MTcs
aW50IGFyZzE5MTgsaW50IGFyZzE5MTksaW50IGFyZzE5MjAsaW50IGFyZzE5MjEsaW50IGFyZzE5
MjIsaW50IGFyZzE5MjMsaW50IGFyZzE5MjQsaW50IGFyZzE5MjUsaW50IGFyZzE5MjYsaW50IGFy
ZzE5MjcsaW50IGFyZzE5MjgsaW50IGFyZzE5MjksaW50IGFyZzE5MzAsaW50IGFyZzE5MzEsaW50
IGFyZzE5MzIsaW50IGFyZzE5MzMsaW50IGFyZzE5MzQsaW50IGFyZzE5MzUsaW50IGFyZzE5MzYs
aW50IGFyZzE5MzcsaW50IGFyZzE5MzgsaW50IGFyZzE5MzksaW50IGFyZzE5NDAsaW50IGFyZzE5
NDEsaW50IGFyZzE5NDIsaW50IGFyZzE5NDMsaW50IGFyZzE5NDQsaW50IGFyZzE5NDUsaW50IGFy
ZzE5NDYsaW50IGFyZzE5NDcsaW50IGFyZzE5NDgsaW50IGFyZzE5NDksaW50IGFyZzE5NTAsaW50
IGFyZzE5NTEsaW50IGFyZzE5NTIsaW50IGFyZzE5NTMsaW50IGFyZzE5NTQsaW50IGFyZzE5NTUs
aW50IGFyZzE5NTYsaW50IGFyZzE5NTcsaW50IGFyZzE5NTgsaW50IGFyZzE5NTksaW50IGFyZzE5
NjAsaW50IGFyZzE5NjEsaW50IGFyZzE5NjIsaW50IGFyZzE5NjMsaW50IGFyZzE5NjQsaW50IGFy
ZzE5NjUsaW50IGFyZzE5NjYsaW50IGFyZzE5NjcsaW50IGFyZzE5NjgsaW50IGFyZzE5NjksaW50
IGFyZzE5NzAsaW50IGFyZzE5NzEsaW50IGFyZzE5NzIsaW50IGFyZzE5NzMsaW50IGFyZzE5NzQs
aW50IGFyZzE5NzUsaW50IGFyZzE5NzYsaW50IGFyZzE5NzcsaW50IGFyZzE5NzgsaW50IGFyZzE5
NzksaW50IGFyZzE5ODAsaW50IGFyZzE5ODEsaW50IGFyZzE5ODIsaW50IGFyZzE5ODMsaW50IGFy
ZzE5ODQsaW50IGFyZzE5ODUsaW50IGFyZzE5ODYsaW50IGFyZzE5ODcsaW50IGFyZzE5ODgsaW50
IGFyZzE5ODksaW50IGFyZzE5OTAsaW50IGFyZzE5OTEsaW50IGFyZzE5OTIsaW50IGFyZzE5OTMs
aW50IGFyZzE5OTQsaW50IGFyZzE5OTUsaW50IGFyZzE5OTYsaW50IGFyZzE5OTcsaW50IGFyZzE5
OTgsaW50IGFyZzE5OTksaW50IGFyZzIwMDAsaW50IGFyZzIwMDEsaW50IGFyZzIwMDIsaW50IGFy
ZzIwMDMsaW50IGFyZzIwMDQsaW50IGFyZzIwMDUsaW50IGFyZzIwMDYsaW50IGFyZzIwMDcsaW50
IGFyZzIwMDgsaW50IGFyZzIwMDksaW50IGFyZzIwMTAsaW50IGFyZzIwMTEsaW50IGFyZzIwMTIs
aW50IGFyZzIwMTMsaW50IGFyZzIwMTQsaW50IGFyZzIwMTUsaW50IGFyZzIwMTYsaW50IGFyZzIw
MTcsaW50IGFyZzIwMTgsaW50IGFyZzIwMTksaW50IGFyZzIwMjAsaW50IGFyZzIwMjEsaW50IGFy
ZzIwMjIsaW50IGFyZzIwMjMsaW50IGFyZzIwMjQsaW50IGFyZzIwMjUsaW50IGFyZzIwMjYsaW50
IGFyZzIwMjcsaW50IGFyZzIwMjgsaW50IGFyZzIwMjksaW50IGFyZzIwMzAsaW50IGFyZzIwMzEs
aW50IGFyZzIwMzIsaW50IGFyZzIwMzMsaW50IGFyZzIwMzQsaW50IGFyZzIwMzUsaW50IGFyZzIw
MzYsaW50IGFyZzIwMzcsaW50IGFyZzIwMzgsaW50IGFyZzIwMzksaW50IGFyZzIwNDAsaW50IGFy
ZzIwNDEsaW50IGFyZzIwNDIsaW50IGFyZzIwNDMsaW50IGFyZzIwNDQsaW50IGFyZzIwNDUsaW50
IGFyZzIwNDYsaW50IGFyZzIwNDcsaW50IGFyZzIwNDgsaW50IGFyZzIwNDksaW50IGFyZzIwNTAs
aW50IGFyZzIwNTEsaW50IGFyZzIwNTIsaW50IGFyZzIwNTMsaW50IGFyZzIwNTQsaW50IGFyZzIw
NTUsaW50IGFyZzIwNTYsaW50IGFyZzIwNTcsaW50IGFyZzIwNTgsaW50IGFyZzIwNTksaW50IGFy
ZzIwNjAsaW50IGFyZzIwNjEsaW50IGFyZzIwNjIsaW50IGFyZzIwNjMsaW50IGFyZzIwNjQsaW50
IGFyZzIwNjUsaW50IGFyZzIwNjYsaW50IGFyZzIwNjcsaW50IGFyZzIwNjgsaW50IGFyZzIwNjks
aW50IGFyZzIwNzAsaW50IGFyZzIwNzEsaW50IGFyZzIwNzIsaW50IGFyZzIwNzMsaW50IGFyZzIw
NzQsaW50IGFyZzIwNzUsaW50IGFyZzIwNzYsaW50IGFyZzIwNzcsaW50IGFyZzIwNzgsaW50IGFy
ZzIwNzksaW50IGFyZzIwODAsaW50IGFyZzIwODEsaW50IGFyZzIwODIsaW50IGFyZzIwODMsaW50
IGFyZzIwODQsaW50IGFyZzIwODUsaW50IGFyZzIwODYsaW50IGFyZzIwODcsaW50IGFyZzIwODgs
aW50IGFyZzIwODksaW50IGFyZzIwOTAsaW50IGFyZzIwOTEsaW50IGFyZzIwOTIsaW50IGFyZzIw
OTMsaW50IGFyZzIwOTQsaW50IGFyZzIwOTUsaW50IGFyZzIwOTYsaW50IGFyZzIwOTcsaW50IGFy
ZzIwOTgsaW50IGFyZzIwOTksaW50IGFyZzIxMDAsaW50IGFyZzIxMDEsaW50IGFyZzIxMDIsaW50
IGFyZzIxMDMsaW50IGFyZzIxMDQsaW50IGFyZzIxMDUsaW50IGFyZzIxMDYsaW50IGFyZzIxMDcs
aW50IGFyZzIxMDgsaW50IGFyZzIxMDksaW50IGFyZzIxMTAsaW50IGFyZzIxMTEsaW50IGFyZzIx
MTIsaW50IGFyZzIxMTMsaW50IGFyZzIxMTQsaW50IGFyZzIxMTUsaW50IGFyZzIxMTYsaW50IGFy
ZzIxMTcsaW50IGFyZzIxMTgsaW50IGFyZzIxMTksaW50IGFyZzIxMjAsaW50IGFyZzIxMjEsaW50
IGFyZzIxMjIsaW50IGFyZzIxMjMsaW50IGFyZzIxMjQsaW50IGFyZzIxMjUsaW50IGFyZzIxMjYs
aW50IGFyZzIxMjcsaW50IGFyZzIxMjgsaW50IGFyZzIxMjksaW50IGFyZzIxMzAsaW50IGFyZzIx
MzEsaW50IGFyZzIxMzIsaW50IGFyZzIxMzMsaW50IGFyZzIxMzQsaW50IGFyZzIxMzUsaW50IGFy
ZzIxMzYsaW50IGFyZzIxMzcsaW50IGFyZzIxMzgsaW50IGFyZzIxMzksaW50IGFyZzIxNDAsaW50
IGFyZzIxNDEsaW50IGFyZzIxNDIsaW50IGFyZzIxNDMsaW50IGFyZzIxNDQsaW50IGFyZzIxNDUs
aW50IGFyZzIxNDYsaW50IGFyZzIxNDcsaW50IGFyZzIxNDgsaW50IGFyZzIxNDksaW50IGFyZzIx
NTAsaW50IGFyZzIxNTEsaW50IGFyZzIxNTIsaW50IGFyZzIxNTMsaW50IGFyZzIxNTQsaW50IGFy
ZzIxNTUsaW50IGFyZzIxNTYsaW50IGFyZzIxNTcsaW50IGFyZzIxNTgsaW50IGFyZzIxNTksaW50
IGFyZzIxNjAsaW50IGFyZzIxNjEsaW50IGFyZzIxNjIsaW50IGFyZzIxNjMsaW50IGFyZzIxNjQs
aW50IGFyZzIxNjUsaW50IGFyZzIxNjYsaW50IGFyZzIxNjcsaW50IGFyZzIxNjgsaW50IGFyZzIx
NjksaW50IGFyZzIxNzAsaW50IGFyZzIxNzEsaW50IGFyZzIxNzIsaW50IGFyZzIxNzMsaW50IGFy
ZzIxNzQsaW50IGFyZzIxNzUsaW50IGFyZzIxNzYsaW50IGFyZzIxNzcsaW50IGFyZzIxNzgsaW50
IGFyZzIxNzksaW50IGFyZzIxODAsaW50IGFyZzIxODEsaW50IGFyZzIxODIsaW50IGFyZzIxODMs
aW50IGFyZzIxODQsaW50IGFyZzIxODUsaW50IGFyZzIxODYsaW50IGFyZzIxODcsaW50IGFyZzIx
ODgsaW50IGFyZzIxODksaW50IGFyZzIxOTAsaW50IGFyZzIxOTEsaW50IGFyZzIxOTIsaW50IGFy
ZzIxOTMsaW50IGFyZzIxOTQsaW50IGFyZzIxOTUsaW50IGFyZzIxOTYsaW50IGFyZzIxOTcsaW50
IGFyZzIxOTgsaW50IGFyZzIxOTksaW50IGFyZzIyMDAsaW50IGFyZzIyMDEsaW50IGFyZzIyMDIs
aW50IGFyZzIyMDMsaW50IGFyZzIyMDQsaW50IGFyZzIyMDUsaW50IGFyZzIyMDYsaW50IGFyZzIy
MDcsaW50IGFyZzIyMDgsaW50IGFyZzIyMDksaW50IGFyZzIyMTAsaW50IGFyZzIyMTEsaW50IGFy
ZzIyMTIsaW50IGFyZzIyMTMsaW50IGFyZzIyMTQsaW50IGFyZzIyMTUsaW50IGFyZzIyMTYsaW50
IGFyZzIyMTcsaW50IGFyZzIyMTgsaW50IGFyZzIyMTksaW50IGFyZzIyMjAsaW50IGFyZzIyMjEs
aW50IGFyZzIyMjIsaW50IGFyZzIyMjMsaW50IGFyZzIyMjQsaW50IGFyZzIyMjUsaW50IGFyZzIy
MjYsaW50IGFyZzIyMjcsaW50IGFyZzIyMjgsaW50IGFyZzIyMjksaW50IGFyZzIyMzAsaW50IGFy
ZzIyMzEsaW50IGFyZzIyMzIsaW50IGFyZzIyMzMsaW50IGFyZzIyMzQsaW50IGFyZzIyMzUsaW50
IGFyZzIyMzYsaW50IGFyZzIyMzcsaW50IGFyZzIyMzgsaW50IGFyZzIyMzksaW50IGFyZzIyNDAs
aW50IGFyZzIyNDEsaW50IGFyZzIyNDIsaW50IGFyZzIyNDMsaW50IGFyZzIyNDQsaW50IGFyZzIy
NDUsaW50IGFyZzIyNDYsaW50IGFyZzIyNDcsaW50IGFyZzIyNDgsaW50IGFyZzIyNDksaW50IGFy
ZzIyNTAsaW50IGFyZzIyNTEsaW50IGFyZzIyNTIsaW50IGFyZzIyNTMsaW50IGFyZzIyNTQsaW50
IGFyZzIyNTUsaW50IGFyZzIyNTYsaW50IGFyZzIyNTcsaW50IGFyZzIyNTgsaW50IGFyZzIyNTks
aW50IGFyZzIyNjAsaW50IGFyZzIyNjEsaW50IGFyZzIyNjIsaW50IGFyZzIyNjMsaW50IGFyZzIy
NjQsaW50IGFyZzIyNjUsaW50IGFyZzIyNjYsaW50IGFyZzIyNjcsaW50IGFyZzIyNjgsaW50IGFy
ZzIyNjksaW50IGFyZzIyNzAsaW50IGFyZzIyNzEsaW50IGFyZzIyNzIsaW50IGFyZzIyNzMsaW50
IGFyZzIyNzQsaW50IGFyZzIyNzUsaW50IGFyZzIyNzYsaW50IGFyZzIyNzcsaW50IGFyZzIyNzgs
aW50IGFyZzIyNzksaW50IGFyZzIyODAsaW50IGFyZzIyODEsaW50IGFyZzIyODIsaW50IGFyZzIy
ODMsaW50IGFyZzIyODQsaW50IGFyZzIyODUsaW50IGFyZzIyODYsaW50IGFyZzIyODcsaW50IGFy
ZzIyODgsaW50IGFyZzIyODksaW50IGFyZzIyOTAsaW50IGFyZzIyOTEsaW50IGFyZzIyOTIsaW50
IGFyZzIyOTMsaW50IGFyZzIyOTQsaW50IGFyZzIyOTUsaW50IGFyZzIyOTYsaW50IGFyZzIyOTcs
aW50IGFyZzIyOTgsaW50IGFyZzIyOTksaW50IGFyZzIzMDAsaW50IGFyZzIzMDEsaW50IGFyZzIz
MDIsaW50IGFyZzIzMDMsaW50IGFyZzIzMDQsaW50IGFyZzIzMDUsaW50IGFyZzIzMDYsaW50IGFy
ZzIzMDcsaW50IGFyZzIzMDgsaW50IGFyZzIzMDksaW50IGFyZzIzMTAsaW50IGFyZzIzMTEsaW50
IGFyZzIzMTIsaW50IGFyZzIzMTMsaW50IGFyZzIzMTQsaW50IGFyZzIzMTUsaW50IGFyZzIzMTYs
aW50IGFyZzIzMTcsaW50IGFyZzIzMTgsaW50IGFyZzIzMTksaW50IGFyZzIzMjAsaW50IGFyZzIz
MjEsaW50IGFyZzIzMjIsaW50IGFyZzIzMjMsaW50IGFyZzIzMjQsaW50IGFyZzIzMjUsaW50IGFy
ZzIzMjYsaW50IGFyZzIzMjcsaW50IGFyZzIzMjgsaW50IGFyZzIzMjksaW50IGFyZzIzMzAsaW50
IGFyZzIzMzEsaW50IGFyZzIzMzIsaW50IGFyZzIzMzMsaW50IGFyZzIzMzQsaW50IGFyZzIzMzUs
aW50IGFyZzIzMzYsaW50IGFyZzIzMzcsaW50IGFyZzIzMzgsaW50IGFyZzIzMzksaW50IGFyZzIz
NDAsaW50IGFyZzIzNDEsaW50IGFyZzIzNDIsaW50IGFyZzIzNDMsaW50IGFyZzIzNDQsaW50IGFy
ZzIzNDUsaW50IGFyZzIzNDYsaW50IGFyZzIzNDcsaW50IGFyZzIzNDgsaW50IGFyZzIzNDksaW50
IGFyZzIzNTAsaW50IGFyZzIzNTEsaW50IGFyZzIzNTIsaW50IGFyZzIzNTMsaW50IGFyZzIzNTQs
aW50IGFyZzIzNTUsaW50IGFyZzIzNTYsaW50IGFyZzIzNTcsaW50IGFyZzIzNTgsaW50IGFyZzIz
NTksaW50IGFyZzIzNjAsaW50IGFyZzIzNjEsaW50IGFyZzIzNjIsaW50IGFyZzIzNjMsaW50IGFy
ZzIzNjQsaW50IGFyZzIzNjUsaW50IGFyZzIzNjYsaW50IGFyZzIzNjcsaW50IGFyZzIzNjgsaW50
IGFyZzIzNjksaW50IGFyZzIzNzAsaW50IGFyZzIzNzEsaW50IGFyZzIzNzIsaW50IGFyZzIzNzMs
aW50IGFyZzIzNzQsaW50IGFyZzIzNzUsaW50IGFyZzIzNzYsaW50IGFyZzIzNzcsaW50IGFyZzIz
NzgsaW50IGFyZzIzNzksaW50IGFyZzIzODAsaW50IGFyZzIzODEsaW50IGFyZzIzODIsaW50IGFy
ZzIzODMsaW50IGFyZzIzODQsaW50IGFyZzIzODUsaW50IGFyZzIzODYsaW50IGFyZzIzODcsaW50
IGFyZzIzODgsaW50IGFyZzIzODksaW50IGFyZzIzOTAsaW50IGFyZzIzOTEsaW50IGFyZzIzOTIs
aW50IGFyZzIzOTMsaW50IGFyZzIzOTQsaW50IGFyZzIzOTUsaW50IGFyZzIzOTYsaW50IGFyZzIz
OTcsaW50IGFyZzIzOTgsaW50IGFyZzIzOTksaW50IGFyZzI0MDAsaW50IGFyZzI0MDEsaW50IGFy
ZzI0MDIsaW50IGFyZzI0MDMsaW50IGFyZzI0MDQsaW50IGFyZzI0MDUsaW50IGFyZzI0MDYsaW50
IGFyZzI0MDcsaW50IGFyZzI0MDgsaW50IGFyZzI0MDksaW50IGFyZzI0MTAsaW50IGFyZzI0MTEs
aW50IGFyZzI0MTIsaW50IGFyZzI0MTMsaW50IGFyZzI0MTQsaW50IGFyZzI0MTUsaW50IGFyZzI0
MTYsaW50IGFyZzI0MTcsaW50IGFyZzI0MTgsaW50IGFyZzI0MTksaW50IGFyZzI0MjAsaW50IGFy
ZzI0MjEsaW50IGFyZzI0MjIsaW50IGFyZzI0MjMsaW50IGFyZzI0MjQsaW50IGFyZzI0MjUsaW50
IGFyZzI0MjYsaW50IGFyZzI0MjcsaW50IGFyZzI0MjgsaW50IGFyZzI0MjksaW50IGFyZzI0MzAs
aW50IGFyZzI0MzEsaW50IGFyZzI0MzIsaW50IGFyZzI0MzMsaW50IGFyZzI0MzQsaW50IGFyZzI0
MzUsaW50IGFyZzI0MzYsaW50IGFyZzI0MzcsaW50IGFyZzI0MzgsaW50IGFyZzI0MzksaW50IGFy
ZzI0NDAsaW50IGFyZzI0NDEsaW50IGFyZzI0NDIsaW50IGFyZzI0NDMsaW50IGFyZzI0NDQsaW50
IGFyZzI0NDUsaW50IGFyZzI0NDYsaW50IGFyZzI0NDcsaW50IGFyZzI0NDgsaW50IGFyZzI0NDks
aW50IGFyZzI0NTAsaW50IGFyZzI0NTEsaW50IGFyZzI0NTIsaW50IGFyZzI0NTMsaW50IGFyZzI0
NTQsaW50IGFyZzI0NTUsaW50IGFyZzI0NTYsaW50IGFyZzI0NTcsaW50IGFyZzI0NTgsaW50IGFy
ZzI0NTksaW50IGFyZzI0NjAsaW50IGFyZzI0NjEsaW50IGFyZzI0NjIsaW50IGFyZzI0NjMsaW50
IGFyZzI0NjQsaW50IGFyZzI0NjUsaW50IGFyZzI0NjYsaW50IGFyZzI0NjcsaW50IGFyZzI0Njgs
aW50IGFyZzI0NjksaW50IGFyZzI0NzAsaW50IGFyZzI0NzEsaW50IGFyZzI0NzIsaW50IGFyZzI0
NzMsaW50IGFyZzI0NzQsaW50IGFyZzI0NzUsaW50IGFyZzI0NzYsaW50IGFyZzI0NzcsaW50IGFy
ZzI0NzgsaW50IGFyZzI0NzksaW50IGFyZzI0ODAsaW50IGFyZzI0ODEsaW50IGFyZzI0ODIsaW50
IGFyZzI0ODMsaW50IGFyZzI0ODQsaW50IGFyZzI0ODUsaW50IGFyZzI0ODYsaW50IGFyZzI0ODcs
aW50IGFyZzI0ODgsaW50IGFyZzI0ODksaW50IGFyZzI0OTAsaW50IGFyZzI0OTEsaW50IGFyZzI0
OTIsaW50IGFyZzI0OTMsaW50IGFyZzI0OTQsaW50IGFyZzI0OTUsaW50IGFyZzI0OTYsaW50IGFy
ZzI0OTcsaW50IGFyZzI0OTgsaW50IGFyZzI0OTksaW50IGFyZzI1MDAsaW50IGFyZzI1MDEsaW50
IGFyZzI1MDIsaW50IGFyZzI1MDMsaW50IGFyZzI1MDQsaW50IGFyZzI1MDUsaW50IGFyZzI1MDYs
aW50IGFyZzI1MDcsaW50IGFyZzI1MDgsaW50IGFyZzI1MDksaW50IGFyZzI1MTAsaW50IGFyZzI1
MTEsaW50IGFyZzI1MTIsaW50IGFyZzI1MTMsaW50IGFyZzI1MTQsaW50IGFyZzI1MTUsaW50IGFy
ZzI1MTYsaW50IGFyZzI1MTcsaW50IGFyZzI1MTgsaW50IGFyZzI1MTksaW50IGFyZzI1MjAsaW50
IGFyZzI1MjEsaW50IGFyZzI1MjIsaW50IGFyZzI1MjMsaW50IGFyZzI1MjQsaW50IGFyZzI1MjUs
aW50IGFyZzI1MjYsaW50IGFyZzI1MjcsaW50IGFyZzI1MjgsaW50IGFyZzI1MjksaW50IGFyZzI1
MzAsaW50IGFyZzI1MzEsaW50IGFyZzI1MzIsaW50IGFyZzI1MzMsaW50IGFyZzI1MzQsaW50IGFy
ZzI1MzUsaW50IGFyZzI1MzYsaW50IGFyZzI1MzcsaW50IGFyZzI1MzgsaW50IGFyZzI1MzksaW50
IGFyZzI1NDAsaW50IGFyZzI1NDEsaW50IGFyZzI1NDIsaW50IGFyZzI1NDMsaW50IGFyZzI1NDQs
aW50IGFyZzI1NDUsaW50IGFyZzI1NDYsaW50IGFyZzI1NDcsaW50IGFyZzI1NDgsaW50IGFyZzI1
NDksaW50IGFyZzI1NTAsaW50IGFyZzI1NTEsaW50IGFyZzI1NTIsaW50IGFyZzI1NTMsaW50IGFy
ZzI1NTQsaW50IGFyZzI1NTUsaW50IGFyZzI1NTYsaW50IGFyZzI1NTcsaW50IGFyZzI1NTgsaW50
IGFyZzI1NTksaW50IGFyZzI1NjAsaW50IGFyZzI1NjEsaW50IGFyZzI1NjIsaW50IGFyZzI1NjMs
aW50IGFyZzI1NjQsaW50IGFyZzI1NjUsaW50IGFyZzI1NjYsaW50IGFyZzI1NjcsaW50IGFyZzI1
NjgsaW50IGFyZzI1NjksaW50IGFyZzI1NzAsaW50IGFyZzI1NzEsaW50IGFyZzI1NzIsaW50IGFy
ZzI1NzMsaW50IGFyZzI1NzQsaW50IGFyZzI1NzUsaW50IGFyZzI1NzYsaW50IGFyZzI1NzcsaW50
IGFyZzI1NzgsaW50IGFyZzI1NzksaW50IGFyZzI1ODAsaW50IGFyZzI1ODEsaW50IGFyZzI1ODIs
aW50IGFyZzI1ODMsaW50IGFyZzI1ODQsaW50IGFyZzI1ODUsaW50IGFyZzI1ODYsaW50IGFyZzI1
ODcsaW50IGFyZzI1ODgsaW50IGFyZzI1ODksaW50IGFyZzI1OTAsaW50IGFyZzI1OTEsaW50IGFy
ZzI1OTIsaW50IGFyZzI1OTMsaW50IGFyZzI1OTQsaW50IGFyZzI1OTUsaW50IGFyZzI1OTYsaW50
IGFyZzI1OTcsaW50IGFyZzI1OTgsaW50IGFyZzI1OTksaW50IGFyZzI2MDAsaW50IGFyZzI2MDEs
aW50IGFyZzI2MDIsaW50IGFyZzI2MDMsaW50IGFyZzI2MDQsaW50IGFyZzI2MDUsaW50IGFyZzI2
MDYsaW50IGFyZzI2MDcsaW50IGFyZzI2MDgsaW50IGFyZzI2MDksaW50IGFyZzI2MTAsaW50IGFy
ZzI2MTEsaW50IGFyZzI2MTIsaW50IGFyZzI2MTMsaW50IGFyZzI2MTQsaW50IGFyZzI2MTUsaW50
IGFyZzI2MTYsaW50IGFyZzI2MTcsaW50IGFyZzI2MTgsaW50IGFyZzI2MTksaW50IGFyZzI2MjAs
aW50IGFyZzI2MjEsaW50IGFyZzI2MjIsaW50IGFyZzI2MjMsaW50IGFyZzI2MjQsaW50IGFyZzI2
MjUsaW50IGFyZzI2MjYsaW50IGFyZzI2MjcsaW50IGFyZzI2MjgsaW50IGFyZzI2MjksaW50IGFy
ZzI2MzAsaW50IGFyZzI2MzEsaW50IGFyZzI2MzIsaW50IGFyZzI2MzMsaW50IGFyZzI2MzQsaW50
IGFyZzI2MzUsaW50IGFyZzI2MzYsaW50IGFyZzI2MzcsaW50IGFyZzI2MzgsaW50IGFyZzI2Mzks
aW50IGFyZzI2NDAsaW50IGFyZzI2NDEsaW50IGFyZzI2NDIsaW50IGFyZzI2NDMsaW50IGFyZzI2
NDQsaW50IGFyZzI2NDUsaW50IGFyZzI2NDYsaW50IGFyZzI2NDcsaW50IGFyZzI2NDgsaW50IGFy
ZzI2NDksaW50IGFyZzI2NTAsaW50IGFyZzI2NTEsaW50IGFyZzI2NTIsaW50IGFyZzI2NTMsaW50
IGFyZzI2NTQsaW50IGFyZzI2NTUsaW50IGFyZzI2NTYsaW50IGFyZzI2NTcsaW50IGFyZzI2NTgs
aW50IGFyZzI2NTksaW50IGFyZzI2NjAsaW50IGFyZzI2NjEsaW50IGFyZzI2NjIsaW50IGFyZzI2
NjMsaW50IGFyZzI2NjQsaW50IGFyZzI2NjUsaW50IGFyZzI2NjYsaW50IGFyZzI2NjcsaW50IGFy
ZzI2NjgsaW50IGFyZzI2NjksaW50IGFyZzI2NzAsaW50IGFyZzI2NzEsaW50IGFyZzI2NzIsaW50
IGFyZzI2NzMsaW50IGFyZzI2NzQsaW50IGFyZzI2NzUsaW50IGFyZzI2NzYsaW50IGFyZzI2Nzcs
aW50IGFyZzI2NzgsaW50IGFyZzI2NzksaW50IGFyZzI2ODAsaW50IGFyZzI2ODEsaW50IGFyZzI2
ODIsaW50IGFyZzI2ODMsaW50IGFyZzI2ODQsaW50IGFyZzI2ODUsaW50IGFyZzI2ODYsaW50IGFy
ZzI2ODcsaW50IGFyZzI2ODgsaW50IGFyZzI2ODksaW50IGFyZzI2OTAsaW50IGFyZzI2OTEsaW50
IGFyZzI2OTIsaW50IGFyZzI2OTMsaW50IGFyZzI2OTQsaW50IGFyZzI2OTUsaW50IGFyZzI2OTYs
aW50IGFyZzI2OTcsaW50IGFyZzI2OTgsaW50IGFyZzI2OTksaW50IGFyZzI3MDAsaW50IGFyZzI3
MDEsaW50IGFyZzI3MDIsaW50IGFyZzI3MDMsaW50IGFyZzI3MDQsaW50IGFyZzI3MDUsaW50IGFy
ZzI3MDYsaW50IGFyZzI3MDcsaW50IGFyZzI3MDgsaW50IGFyZzI3MDksaW50IGFyZzI3MTAsaW50
IGFyZzI3MTEsaW50IGFyZzI3MTIsaW50IGFyZzI3MTMsaW50IGFyZzI3MTQsaW50IGFyZzI3MTUs
aW50IGFyZzI3MTYsaW50IGFyZzI3MTcsaW50IGFyZzI3MTgsaW50IGFyZzI3MTksaW50IGFyZzI3
MjAsaW50IGFyZzI3MjEsaW50IGFyZzI3MjIsaW50IGFyZzI3MjMsaW50IGFyZzI3MjQsaW50IGFy
ZzI3MjUsaW50IGFyZzI3MjYsaW50IGFyZzI3MjcsaW50IGFyZzI3MjgsaW50IGFyZzI3MjksaW50
IGFyZzI3MzAsaW50IGFyZzI3MzEsaW50IGFyZzI3MzIsaW50IGFyZzI3MzMsaW50IGFyZzI3MzQs
aW50IGFyZzI3MzUsaW50IGFyZzI3MzYsaW50IGFyZzI3MzcsaW50IGFyZzI3MzgsaW50IGFyZzI3
MzksaW50IGFyZzI3NDAsaW50IGFyZzI3NDEsaW50IGFyZzI3NDIsaW50IGFyZzI3NDMsaW50IGFy
ZzI3NDQsaW50IGFyZzI3NDUsaW50IGFyZzI3NDYsaW50IGFyZzI3NDcsaW50IGFyZzI3NDgsaW50
IGFyZzI3NDksaW50IGFyZzI3NTAsaW50IGFyZzI3NTEsaW50IGFyZzI3NTIsaW50IGFyZzI3NTMs
aW50IGFyZzI3NTQsaW50IGFyZzI3NTUsaW50IGFyZzI3NTYsaW50IGFyZzI3NTcsaW50IGFyZzI3
NTgsaW50IGFyZzI3NTksaW50IGFyZzI3NjAsaW50IGFyZzI3NjEsaW50IGFyZzI3NjIsaW50IGFy
ZzI3NjMsaW50IGFyZzI3NjQsaW50IGFyZzI3NjUsaW50IGFyZzI3NjYsaW50IGFyZzI3NjcsaW50
IGFyZzI3NjgsaW50IGFyZzI3NjksaW50IGFyZzI3NzAsaW50IGFyZzI3NzEsaW50IGFyZzI3NzIs
aW50IGFyZzI3NzMsaW50IGFyZzI3NzQsaW50IGFyZzI3NzUsaW50IGFyZzI3NzYsaW50IGFyZzI3
NzcsaW50IGFyZzI3NzgsaW50IGFyZzI3NzksaW50IGFyZzI3ODAsaW50IGFyZzI3ODEsaW50IGFy
ZzI3ODIsaW50IGFyZzI3ODMsaW50IGFyZzI3ODQsaW50IGFyZzI3ODUsaW50IGFyZzI3ODYsaW50
IGFyZzI3ODcsaW50IGFyZzI3ODgsaW50IGFyZzI3ODksaW50IGFyZzI3OTAsaW50IGFyZzI3OTEs
aW50IGFyZzI3OTIsaW50IGFyZzI3OTMsaW50IGFyZzI3OTQsaW50IGFyZzI3OTUsaW50IGFyZzI3
OTYsaW50IGFyZzI3OTcsaW50IGFyZzI3OTgsaW50IGFyZzI3OTksaW50IGFyZzI4MDAsaW50IGFy
ZzI4MDEsaW50IGFyZzI4MDIsaW50IGFyZzI4MDMsaW50IGFyZzI4MDQsaW50IGFyZzI4MDUsaW50
IGFyZzI4MDYsaW50IGFyZzI4MDcsaW50IGFyZzI4MDgsaW50IGFyZzI4MDksaW50IGFyZzI4MTAs
aW50IGFyZzI4MTEsaW50IGFyZzI4MTIsaW50IGFyZzI4MTMsaW50IGFyZzI4MTQsaW50IGFyZzI4
MTUsaW50IGFyZzI4MTYsaW50IGFyZzI4MTcsaW50IGFyZzI4MTgsaW50IGFyZzI4MTksaW50IGFy
ZzI4MjAsaW50IGFyZzI4MjEsaW50IGFyZzI4MjIsaW50IGFyZzI4MjMsaW50IGFyZzI4MjQsaW50
IGFyZzI4MjUsaW50IGFyZzI4MjYsaW50IGFyZzI4MjcsaW50IGFyZzI4MjgsaW50IGFyZzI4Mjks
aW50IGFyZzI4MzAsaW50IGFyZzI4MzEsaW50IGFyZzI4MzIsaW50IGFyZzI4MzMsaW50IGFyZzI4
MzQsaW50IGFyZzI4MzUsaW50IGFyZzI4MzYsaW50IGFyZzI4MzcsaW50IGFyZzI4MzgsaW50IGFy
ZzI4MzksaW50IGFyZzI4NDAsaW50IGFyZzI4NDEsaW50IGFyZzI4NDIsaW50IGFyZzI4NDMsaW50
IGFyZzI4NDQsaW50IGFyZzI4NDUsaW50IGFyZzI4NDYsaW50IGFyZzI4NDcsaW50IGFyZzI4NDgs
aW50IGFyZzI4NDksaW50IGFyZzI4NTAsaW50IGFyZzI4NTEsaW50IGFyZzI4NTIsaW50IGFyZzI4
NTMsaW50IGFyZzI4NTQsaW50IGFyZzI4NTUsaW50IGFyZzI4NTYsaW50IGFyZzI4NTcsaW50IGFy
ZzI4NTgsaW50IGFyZzI4NTksaW50IGFyZzI4NjAsaW50IGFyZzI4NjEsaW50IGFyZzI4NjIsaW50
IGFyZzI4NjMsaW50IGFyZzI4NjQsaW50IGFyZzI4NjUsaW50IGFyZzI4NjYsaW50IGFyZzI4Njcs
aW50IGFyZzI4NjgsaW50IGFyZzI4NjksaW50IGFyZzI4NzAsaW50IGFyZzI4NzEsaW50IGFyZzI4
NzIsaW50IGFyZzI4NzMsaW50IGFyZzI4NzQsaW50IGFyZzI4NzUsaW50IGFyZzI4NzYsaW50IGFy
ZzI4NzcsaW50IGFyZzI4NzgsaW50IGFyZzI4NzksaW50IGFyZzI4ODAsaW50IGFyZzI4ODEsaW50
IGFyZzI4ODIsaW50IGFyZzI4ODMsaW50IGFyZzI4ODQsaW50IGFyZzI4ODUsaW50IGFyZzI4ODYs
aW50IGFyZzI4ODcsaW50IGFyZzI4ODgsaW50IGFyZzI4ODksaW50IGFyZzI4OTAsaW50IGFyZzI4
OTEsaW50IGFyZzI4OTIsaW50IGFyZzI4OTMsaW50IGFyZzI4OTQsaW50IGFyZzI4OTUsaW50IGFy
ZzI4OTYsaW50IGFyZzI4OTcsaW50IGFyZzI4OTgsaW50IGFyZzI4OTksaW50IGFyZzI5MDAsaW50
IGFyZzI5MDEsaW50IGFyZzI5MDIsaW50IGFyZzI5MDMsaW50IGFyZzI5MDQsaW50IGFyZzI5MDUs
aW50IGFyZzI5MDYsaW50IGFyZzI5MDcsaW50IGFyZzI5MDgsaW50IGFyZzI5MDksaW50IGFyZzI5
MTAsaW50IGFyZzI5MTEsaW50IGFyZzI5MTIsaW50IGFyZzI5MTMsaW50IGFyZzI5MTQsaW50IGFy
ZzI5MTUsaW50IGFyZzI5MTYsaW50IGFyZzI5MTcsaW50IGFyZzI5MTgsaW50IGFyZzI5MTksaW50
IGFyZzI5MjAsaW50IGFyZzI5MjEsaW50IGFyZzI5MjIsaW50IGFyZzI5MjMsaW50IGFyZzI5MjQs
aW50IGFyZzI5MjUsaW50IGFyZzI5MjYsaW50IGFyZzI5MjcsaW50IGFyZzI5MjgsaW50IGFyZzI5
MjksaW50IGFyZzI5MzAsaW50IGFyZzI5MzEsaW50IGFyZzI5MzIsaW50IGFyZzI5MzMsaW50IGFy
ZzI5MzQsaW50IGFyZzI5MzUsaW50IGFyZzI5MzYsaW50IGFyZzI5MzcsaW50IGFyZzI5MzgsaW50
IGFyZzI5MzksaW50IGFyZzI5NDAsaW50IGFyZzI5NDEsaW50IGFyZzI5NDIsaW50IGFyZzI5NDMs
aW50IGFyZzI5NDQsaW50IGFyZzI5NDUsaW50IGFyZzI5NDYsaW50IGFyZzI5NDcsaW50IGFyZzI5
NDgsaW50IGFyZzI5NDksaW50IGFyZzI5NTAsaW50IGFyZzI5NTEsaW50IGFyZzI5NTIsaW50IGFy
ZzI5NTMsaW50IGFyZzI5NTQsaW50IGFyZzI5NTUsaW50IGFyZzI5NTYsaW50IGFyZzI5NTcsaW50
IGFyZzI5NTgsaW50IGFyZzI5NTksaW50IGFyZzI5NjAsaW50IGFyZzI5NjEsaW50IGFyZzI5NjIs
aW50IGFyZzI5NjMsaW50IGFyZzI5NjQsaW50IGFyZzI5NjUsaW50IGFyZzI5NjYsaW50IGFyZzI5
NjcsaW50IGFyZzI5NjgsaW50IGFyZzI5NjksaW50IGFyZzI5NzAsaW50IGFyZzI5NzEsaW50IGFy
ZzI5NzIsaW50IGFyZzI5NzMsaW50IGFyZzI5NzQsaW50IGFyZzI5NzUsaW50IGFyZzI5NzYsaW50
IGFyZzI5NzcsaW50IGFyZzI5NzgsaW50IGFyZzI5NzksaW50IGFyZzI5ODAsaW50IGFyZzI5ODEs
aW50IGFyZzI5ODIsaW50IGFyZzI5ODMsaW50IGFyZzI5ODQsaW50IGFyZzI5ODUsaW50IGFyZzI5
ODYsaW50IGFyZzI5ODcsaW50IGFyZzI5ODgsaW50IGFyZzI5ODksaW50IGFyZzI5OTAsaW50IGFy
ZzI5OTEsaW50IGFyZzI5OTIsaW50IGFyZzI5OTMsaW50IGFyZzI5OTQsaW50IGFyZzI5OTUsaW50
IGFyZzI5OTYsaW50IGFyZzI5OTcsaW50IGFyZzI5OTgsaW50IGFyZzI5OTksaW50IGFyZzMwMDAs
aW50IGFyZzMwMDEsaW50IGFyZzMwMDIsaW50IGFyZzMwMDMsaW50IGFyZzMwMDQsaW50IGFyZzMw
MDUsaW50IGFyZzMwMDYsaW50IGFyZzMwMDcsaW50IGFyZzMwMDgsaW50IGFyZzMwMDksaW50IGFy
ZzMwMTAsaW50IGFyZzMwMTEsaW50IGFyZzMwMTIsaW50IGFyZzMwMTMsaW50IGFyZzMwMTQsaW50
IGFyZzMwMTUsaW50IGFyZzMwMTYsaW50IGFyZzMwMTcsaW50IGFyZzMwMTgsaW50IGFyZzMwMTks
aW50IGFyZzMwMjAsaW50IGFyZzMwMjEsaW50IGFyZzMwMjIsaW50IGFyZzMwMjMsaW50IGFyZzMw
MjQsaW50IGFyZzMwMjUsaW50IGFyZzMwMjYsaW50IGFyZzMwMjcsaW50IGFyZzMwMjgsaW50IGFy
ZzMwMjksaW50IGFyZzMwMzAsaW50IGFyZzMwMzEsaW50IGFyZzMwMzIsaW50IGFyZzMwMzMsaW50
IGFyZzMwMzQsaW50IGFyZzMwMzUsaW50IGFyZzMwMzYsaW50IGFyZzMwMzcsaW50IGFyZzMwMzgs
aW50IGFyZzMwMzksaW50IGFyZzMwNDAsaW50IGFyZzMwNDEsaW50IGFyZzMwNDIsaW50IGFyZzMw
NDMsaW50IGFyZzMwNDQsaW50IGFyZzMwNDUsaW50IGFyZzMwNDYsaW50IGFyZzMwNDcsaW50IGFy
ZzMwNDgsaW50IGFyZzMwNDksaW50IGFyZzMwNTAsaW50IGFyZzMwNTEsaW50IGFyZzMwNTIsaW50
IGFyZzMwNTMsaW50IGFyZzMwNTQsaW50IGFyZzMwNTUsaW50IGFyZzMwNTYsaW50IGFyZzMwNTcs
aW50IGFyZzMwNTgsaW50IGFyZzMwNTksaW50IGFyZzMwNjAsaW50IGFyZzMwNjEsaW50IGFyZzMw
NjIsaW50IGFyZzMwNjMsaW50IGFyZzMwNjQsaW50IGFyZzMwNjUsaW50IGFyZzMwNjYsaW50IGFy
ZzMwNjcsaW50IGFyZzMwNjgsaW50IGFyZzMwNjksaW50IGFyZzMwNzAsaW50IGFyZzMwNzEsaW50
IGFyZzMwNzIsaW50IGFyZzMwNzMsaW50IGFyZzMwNzQsaW50IGFyZzMwNzUsaW50IGFyZzMwNzYs
aW50IGFyZzMwNzcsaW50IGFyZzMwNzgsaW50IGFyZzMwNzksaW50IGFyZzMwODAsaW50IGFyZzMw
ODEsaW50IGFyZzMwODIsaW50IGFyZzMwODMsaW50IGFyZzMwODQsaW50IGFyZzMwODUsaW50IGFy
ZzMwODYsaW50IGFyZzMwODcsaW50IGFyZzMwODgsaW50IGFyZzMwODksaW50IGFyZzMwOTAsaW50
IGFyZzMwOTEsaW50IGFyZzMwOTIsaW50IGFyZzMwOTMsaW50IGFyZzMwOTQsaW50IGFyZzMwOTUs
aW50IGFyZzMwOTYsaW50IGFyZzMwOTcsaW50IGFyZzMwOTgsaW50IGFyZzMwOTksaW50IGFyZzMx
MDAsaW50IGFyZzMxMDEsaW50IGFyZzMxMDIsaW50IGFyZzMxMDMsaW50IGFyZzMxMDQsaW50IGFy
ZzMxMDUsaW50IGFyZzMxMDYsaW50IGFyZzMxMDcsaW50IGFyZzMxMDgsaW50IGFyZzMxMDksaW50
IGFyZzMxMTAsaW50IGFyZzMxMTEsaW50IGFyZzMxMTIsaW50IGFyZzMxMTMsaW50IGFyZzMxMTQs
aW50IGFyZzMxMTUsaW50IGFyZzMxMTYsaW50IGFyZzMxMTcsaW50IGFyZzMxMTgsaW50IGFyZzMx
MTksaW50IGFyZzMxMjAsaW50IGFyZzMxMjEsaW50IGFyZzMxMjIsaW50IGFyZzMxMjMsaW50IGFy
ZzMxMjQsaW50IGFyZzMxMjUsaW50IGFyZzMxMjYsaW50IGFyZzMxMjcsaW50IGFyZzMxMjgsaW50
IGFyZzMxMjksaW50IGFyZzMxMzAsaW50IGFyZzMxMzEsaW50IGFyZzMxMzIsaW50IGFyZzMxMzMs
aW50IGFyZzMxMzQsaW50IGFyZzMxMzUsaW50IGFyZzMxMzYsaW50IGFyZzMxMzcsaW50IGFyZzMx
MzgsaW50IGFyZzMxMzksaW50IGFyZzMxNDAsaW50IGFyZzMxNDEsaW50IGFyZzMxNDIsaW50IGFy
ZzMxNDMsaW50IGFyZzMxNDQsaW50IGFyZzMxNDUsaW50IGFyZzMxNDYsaW50IGFyZzMxNDcsaW50
IGFyZzMxNDgsaW50IGFyZzMxNDksaW50IGFyZzMxNTAsaW50IGFyZzMxNTEsaW50IGFyZzMxNTIs
aW50IGFyZzMxNTMsaW50IGFyZzMxNTQsaW50IGFyZzMxNTUsaW50IGFyZzMxNTYsaW50IGFyZzMx
NTcsaW50IGFyZzMxNTgsaW50IGFyZzMxNTksaW50IGFyZzMxNjAsaW50IGFyZzMxNjEsaW50IGFy
ZzMxNjIsaW50IGFyZzMxNjMsaW50IGFyZzMxNjQsaW50IGFyZzMxNjUsaW50IGFyZzMxNjYsaW50
IGFyZzMxNjcsaW50IGFyZzMxNjgsaW50IGFyZzMxNjksaW50IGFyZzMxNzAsaW50IGFyZzMxNzEs
aW50IGFyZzMxNzIsaW50IGFyZzMxNzMsaW50IGFyZzMxNzQsaW50IGFyZzMxNzUsaW50IGFyZzMx
NzYsaW50IGFyZzMxNzcsaW50IGFyZzMxNzgsaW50IGFyZzMxNzksaW50IGFyZzMxODAsaW50IGFy
ZzMxODEsaW50IGFyZzMxODIsaW50IGFyZzMxODMsaW50IGFyZzMxODQsaW50IGFyZzMxODUsaW50
IGFyZzMxODYsaW50IGFyZzMxODcsaW50IGFyZzMxODgsaW50IGFyZzMxODksaW50IGFyZzMxOTAs
aW50IGFyZzMxOTEsaW50IGFyZzMxOTIsaW50IGFyZzMxOTMsaW50IGFyZzMxOTQsaW50IGFyZzMx
OTUsaW50IGFyZzMxOTYsaW50IGFyZzMxOTcsaW50IGFyZzMxOTgsaW50IGFyZzMxOTksaW50IGFy
ZzMyMDAsaW50IGFyZzMyMDEsaW50IGFyZzMyMDIsaW50IGFyZzMyMDMsaW50IGFyZzMyMDQsaW50
IGFyZzMyMDUsaW50IGFyZzMyMDYsaW50IGFyZzMyMDcsaW50IGFyZzMyMDgsaW50IGFyZzMyMDks
aW50IGFyZzMyMTAsaW50IGFyZzMyMTEsaW50IGFyZzMyMTIsaW50IGFyZzMyMTMsaW50IGFyZzMy
MTQsaW50IGFyZzMyMTUsaW50IGFyZzMyMTYsaW50IGFyZzMyMTcsaW50IGFyZzMyMTgsaW50IGFy
ZzMyMTksaW50IGFyZzMyMjAsaW50IGFyZzMyMjEsaW50IGFyZzMyMjIsaW50IGFyZzMyMjMsaW50
IGFyZzMyMjQsaW50IGFyZzMyMjUsaW50IGFyZzMyMjYsaW50IGFyZzMyMjcsaW50IGFyZzMyMjgs
aW50IGFyZzMyMjksaW50IGFyZzMyMzAsaW50IGFyZzMyMzEsaW50IGFyZzMyMzIsaW50IGFyZzMy
MzMsaW50IGFyZzMyMzQsaW50IGFyZzMyMzUsaW50IGFyZzMyMzYsaW50IGFyZzMyMzcsaW50IGFy
ZzMyMzgsaW50IGFyZzMyMzksaW50IGFyZzMyNDAsaW50IGFyZzMyNDEsaW50IGFyZzMyNDIsaW50
IGFyZzMyNDMsaW50IGFyZzMyNDQsaW50IGFyZzMyNDUsaW50IGFyZzMyNDYsaW50IGFyZzMyNDcs
aW50IGFyZzMyNDgsaW50IGFyZzMyNDksaW50IGFyZzMyNTAsaW50IGFyZzMyNTEsaW50IGFyZzMy
NTIsaW50IGFyZzMyNTMsaW50IGFyZzMyNTQsaW50IGFyZzMyNTUsaW50IGFyZzMyNTYsaW50IGFy
ZzMyNTcsaW50IGFyZzMyNTgsaW50IGFyZzMyNTksaW50IGFyZzMyNjAsaW50IGFyZzMyNjEsaW50
IGFyZzMyNjIsaW50IGFyZzMyNjMsaW50IGFyZzMyNjQsaW50IGFyZzMyNjUsaW50IGFyZzMyNjYs
aW50IGFyZzMyNjcsaW50IGFyZzMyNjgsaW50IGFyZzMyNjksaW50IGFyZzMyNzAsaW50IGFyZzMy
NzEsaW50IGFyZzMyNzIsaW50IGFyZzMyNzMsaW50IGFyZzMyNzQsaW50IGFyZzMyNzUsaW50IGFy
ZzMyNzYsaW50IGFyZzMyNzcsaW50IGFyZzMyNzgsaW50IGFyZzMyNzksaW50IGFyZzMyODAsaW50
IGFyZzMyODEsaW50IGFyZzMyODIsaW50IGFyZzMyODMsaW50IGFyZzMyODQsaW50IGFyZzMyODUs
aW50IGFyZzMyODYsaW50IGFyZzMyODcsaW50IGFyZzMyODgsaW50IGFyZzMyODksaW50IGFyZzMy
OTAsaW50IGFyZzMyOTEsaW50IGFyZzMyOTIsaW50IGFyZzMyOTMsaW50IGFyZzMyOTQsaW50IGFy
ZzMyOTUsaW50IGFyZzMyOTYsaW50IGFyZzMyOTcsaW50IGFyZzMyOTgsaW50IGFyZzMyOTksaW50
IGFyZzMzMDAsaW50IGFyZzMzMDEsaW50IGFyZzMzMDIsaW50IGFyZzMzMDMsaW50IGFyZzMzMDQs
aW50IGFyZzMzMDUsaW50IGFyZzMzMDYsaW50IGFyZzMzMDcsaW50IGFyZzMzMDgsaW50IGFyZzMz
MDksaW50IGFyZzMzMTAsaW50IGFyZzMzMTEsaW50IGFyZzMzMTIsaW50IGFyZzMzMTMsaW50IGFy
ZzMzMTQsaW50IGFyZzMzMTUsaW50IGFyZzMzMTYsaW50IGFyZzMzMTcsaW50IGFyZzMzMTgsaW50
IGFyZzMzMTksaW50IGFyZzMzMjAsaW50IGFyZzMzMjEsaW50IGFyZzMzMjIsaW50IGFyZzMzMjMs
aW50IGFyZzMzMjQsaW50IGFyZzMzMjUsaW50IGFyZzMzMjYsaW50IGFyZzMzMjcsaW50IGFyZzMz
MjgsaW50IGFyZzMzMjksaW50IGFyZzMzMzAsaW50IGFyZzMzMzEsaW50IGFyZzMzMzIsaW50IGFy
ZzMzMzMsaW50IGFyZzMzMzQsaW50IGFyZzMzMzUsaW50IGFyZzMzMzYsaW50IGFyZzMzMzcsaW50
IGFyZzMzMzgsaW50IGFyZzMzMzksaW50IGFyZzMzNDAsaW50IGFyZzMzNDEsaW50IGFyZzMzNDIs
aW50IGFyZzMzNDMsaW50IGFyZzMzNDQsaW50IGFyZzMzNDUsaW50IGFyZzMzNDYsaW50IGFyZzMz
NDcsaW50IGFyZzMzNDgsaW50IGFyZzMzNDksaW50IGFyZzMzNTAsaW50IGFyZzMzNTEsaW50IGFy
ZzMzNTIsaW50IGFyZzMzNTMsaW50IGFyZzMzNTQsaW50IGFyZzMzNTUsaW50IGFyZzMzNTYsaW50
IGFyZzMzNTcsaW50IGFyZzMzNTgsaW50IGFyZzMzNTksaW50IGFyZzMzNjAsaW50IGFyZzMzNjEs
aW50IGFyZzMzNjIsaW50IGFyZzMzNjMsaW50IGFyZzMzNjQsaW50IGFyZzMzNjUsaW50IGFyZzMz
NjYsaW50IGFyZzMzNjcsaW50IGFyZzMzNjgsaW50IGFyZzMzNjksaW50IGFyZzMzNzAsaW50IGFy
ZzMzNzEsaW50IGFyZzMzNzIsaW50IGFyZzMzNzMsaW50IGFyZzMzNzQsaW50IGFyZzMzNzUsaW50
IGFyZzMzNzYsaW50IGFyZzMzNzcsaW50IGFyZzMzNzgsaW50IGFyZzMzNzksaW50IGFyZzMzODAs
aW50IGFyZzMzODEsaW50IGFyZzMzODIsaW50IGFyZzMzODMsaW50IGFyZzMzODQsaW50IGFyZzMz
ODUsaW50IGFyZzMzODYsaW50IGFyZzMzODcsaW50IGFyZzMzODgsaW50IGFyZzMzODksaW50IGFy
ZzMzOTAsaW50IGFyZzMzOTEsaW50IGFyZzMzOTIsaW50IGFyZzMzOTMsaW50IGFyZzMzOTQsaW50
IGFyZzMzOTUsaW50IGFyZzMzOTYsaW50IGFyZzMzOTcsaW50IGFyZzMzOTgsaW50IGFyZzMzOTks
aW50IGFyZzM0MDAsaW50IGFyZzM0MDEsaW50IGFyZzM0MDIsaW50IGFyZzM0MDMsaW50IGFyZzM0
MDQsaW50IGFyZzM0MDUsaW50IGFyZzM0MDYsaW50IGFyZzM0MDcsaW50IGFyZzM0MDgsaW50IGFy
ZzM0MDksaW50IGFyZzM0MTAsaW50IGFyZzM0MTEsaW50IGFyZzM0MTIsaW50IGFyZzM0MTMsaW50
IGFyZzM0MTQsaW50IGFyZzM0MTUsaW50IGFyZzM0MTYsaW50IGFyZzM0MTcsaW50IGFyZzM0MTgs
aW50IGFyZzM0MTksaW50IGFyZzM0MjAsaW50IGFyZzM0MjEsaW50IGFyZzM0MjIsaW50IGFyZzM0
MjMsaW50IGFyZzM0MjQsaW50IGFyZzM0MjUsaW50IGFyZzM0MjYsaW50IGFyZzM0MjcsaW50IGFy
ZzM0MjgsaW50IGFyZzM0MjksaW50IGFyZzM0MzAsaW50IGFyZzM0MzEsaW50IGFyZzM0MzIsaW50
IGFyZzM0MzMsaW50IGFyZzM0MzQsaW50IGFyZzM0MzUsaW50IGFyZzM0MzYsaW50IGFyZzM0Mzcs
aW50IGFyZzM0MzgsaW50IGFyZzM0MzksaW50IGFyZzM0NDAsaW50IGFyZzM0NDEsaW50IGFyZzM0
NDIsaW50IGFyZzM0NDMsaW50IGFyZzM0NDQsaW50IGFyZzM0NDUsaW50IGFyZzM0NDYsaW50IGFy
ZzM0NDcsaW50IGFyZzM0NDgsaW50IGFyZzM0NDksaW50IGFyZzM0NTAsaW50IGFyZzM0NTEsaW50
IGFyZzM0NTIsaW50IGFyZzM0NTMsaW50IGFyZzM0NTQsaW50IGFyZzM0NTUsaW50IGFyZzM0NTYs
aW50IGFyZzM0NTcsaW50IGFyZzM0NTgsaW50IGFyZzM0NTksaW50IGFyZzM0NjAsaW50IGFyZzM0
NjEsaW50IGFyZzM0NjIsaW50IGFyZzM0NjMsaW50IGFyZzM0NjQsaW50IGFyZzM0NjUsaW50IGFy
ZzM0NjYsaW50IGFyZzM0NjcsaW50IGFyZzM0NjgsaW50IGFyZzM0NjksaW50IGFyZzM0NzAsaW50
IGFyZzM0NzEsaW50IGFyZzM0NzIsaW50IGFyZzM0NzMsaW50IGFyZzM0NzQsaW50IGFyZzM0NzUs
aW50IGFyZzM0NzYsaW50IGFyZzM0NzcsaW50IGFyZzM0NzgsaW50IGFyZzM0NzksaW50IGFyZzM0
ODAsaW50IGFyZzM0ODEsaW50IGFyZzM0ODIsaW50IGFyZzM0ODMsaW50IGFyZzM0ODQsaW50IGFy
ZzM0ODUsaW50IGFyZzM0ODYsaW50IGFyZzM0ODcsaW50IGFyZzM0ODgsaW50IGFyZzM0ODksaW50
IGFyZzM0OTAsaW50IGFyZzM0OTEsaW50IGFyZzM0OTIsaW50IGFyZzM0OTMsaW50IGFyZzM0OTQs
aW50IGFyZzM0OTUsaW50IGFyZzM0OTYsaW50IGFyZzM0OTcsaW50IGFyZzM0OTgsaW50IGFyZzM0
OTksaW50IGFyZzM1MDAsaW50IGFyZzM1MDEsaW50IGFyZzM1MDIsaW50IGFyZzM1MDMsaW50IGFy
ZzM1MDQsaW50IGFyZzM1MDUsaW50IGFyZzM1MDYsaW50IGFyZzM1MDcsaW50IGFyZzM1MDgsaW50
IGFyZzM1MDksaW50IGFyZzM1MTAsaW50IGFyZzM1MTEsaW50IGFyZzM1MTIsaW50IGFyZzM1MTMs
aW50IGFyZzM1MTQsaW50IGFyZzM1MTUsaW50IGFyZzM1MTYsaW50IGFyZzM1MTcsaW50IGFyZzM1
MTgsaW50IGFyZzM1MTksaW50IGFyZzM1MjAsaW50IGFyZzM1MjEsaW50IGFyZzM1MjIsaW50IGFy
ZzM1MjMsaW50IGFyZzM1MjQsaW50IGFyZzM1MjUsaW50IGFyZzM1MjYsaW50IGFyZzM1MjcsaW50
IGFyZzM1MjgsaW50IGFyZzM1MjksaW50IGFyZzM1MzAsaW50IGFyZzM1MzEsaW50IGFyZzM1MzIs
aW50IGFyZzM1MzMsaW50IGFyZzM1MzQsaW50IGFyZzM1MzUsaW50IGFyZzM1MzYsaW50IGFyZzM1
MzcsaW50IGFyZzM1MzgsaW50IGFyZzM1MzksaW50IGFyZzM1NDAsaW50IGFyZzM1NDEsaW50IGFy
ZzM1NDIsaW50IGFyZzM1NDMsaW50IGFyZzM1NDQsaW50IGFyZzM1NDUsaW50IGFyZzM1NDYsaW50
IGFyZzM1NDcsaW50IGFyZzM1NDgsaW50IGFyZzM1NDksaW50IGFyZzM1NTAsaW50IGFyZzM1NTEs
aW50IGFyZzM1NTIsaW50IGFyZzM1NTMsaW50IGFyZzM1NTQsaW50IGFyZzM1NTUsaW50IGFyZzM1
NTYsaW50IGFyZzM1NTcsaW50IGFyZzM1NTgsaW50IGFyZzM1NTksaW50IGFyZzM1NjAsaW50IGFy
ZzM1NjEsaW50IGFyZzM1NjIsaW50IGFyZzM1NjMsaW50IGFyZzM1NjQsaW50IGFyZzM1NjUsaW50
IGFyZzM1NjYsaW50IGFyZzM1NjcsaW50IGFyZzM1NjgsaW50IGFyZzM1NjksaW50IGFyZzM1NzAs
aW50IGFyZzM1NzEsaW50IGFyZzM1NzIsaW50IGFyZzM1NzMsaW50IGFyZzM1NzQsaW50IGFyZzM1
NzUsaW50IGFyZzM1NzYsaW50IGFyZzM1NzcsaW50IGFyZzM1NzgsaW50IGFyZzM1NzksaW50IGFy
ZzM1ODAsaW50IGFyZzM1ODEsaW50IGFyZzM1ODIsaW50IGFyZzM1ODMsaW50IGFyZzM1ODQsaW50
IGFyZzM1ODUsaW50IGFyZzM1ODYsaW50IGFyZzM1ODcsaW50IGFyZzM1ODgsaW50IGFyZzM1ODks
aW50IGFyZzM1OTAsaW50IGFyZzM1OTEsaW50IGFyZzM1OTIsaW50IGFyZzM1OTMsaW50IGFyZzM1
OTQsaW50IGFyZzM1OTUsaW50IGFyZzM1OTYsaW50IGFyZzM1OTcsaW50IGFyZzM1OTgsaW50IGFy
ZzM1OTksaW50IGFyZzM2MDAsaW50IGFyZzM2MDEsaW50IGFyZzM2MDIsaW50IGFyZzM2MDMsaW50
IGFyZzM2MDQsaW50IGFyZzM2MDUsaW50IGFyZzM2MDYsaW50IGFyZzM2MDcsaW50IGFyZzM2MDgs
aW50IGFyZzM2MDksaW50IGFyZzM2MTAsaW50IGFyZzM2MTEsaW50IGFyZzM2MTIsaW50IGFyZzM2
MTMsaW50IGFyZzM2MTQsaW50IGFyZzM2MTUsaW50IGFyZzM2MTYsaW50IGFyZzM2MTcsaW50IGFy
ZzM2MTgsaW50IGFyZzM2MTksaW50IGFyZzM2MjAsaW50IGFyZzM2MjEsaW50IGFyZzM2MjIsaW50
IGFyZzM2MjMsaW50IGFyZzM2MjQsaW50IGFyZzM2MjUsaW50IGFyZzM2MjYsaW50IGFyZzM2Mjcs
aW50IGFyZzM2MjgsaW50IGFyZzM2MjksaW50IGFyZzM2MzAsaW50IGFyZzM2MzEsaW50IGFyZzM2
MzIsaW50IGFyZzM2MzMsaW50IGFyZzM2MzQsaW50IGFyZzM2MzUsaW50IGFyZzM2MzYsaW50IGFy
ZzM2MzcsaW50IGFyZzM2MzgsaW50IGFyZzM2MzksaW50IGFyZzM2NDAsaW50IGFyZzM2NDEsaW50
IGFyZzM2NDIsaW50IGFyZzM2NDMsaW50IGFyZzM2NDQsaW50IGFyZzM2NDUsaW50IGFyZzM2NDYs
aW50IGFyZzM2NDcsaW50IGFyZzM2NDgsaW50IGFyZzM2NDksaW50IGFyZzM2NTAsaW50IGFyZzM2
NTEsaW50IGFyZzM2NTIsaW50IGFyZzM2NTMsaW50IGFyZzM2NTQsaW50IGFyZzM2NTUsaW50IGFy
ZzM2NTYsaW50IGFyZzM2NTcsaW50IGFyZzM2NTgsaW50IGFyZzM2NTksaW50IGFyZzM2NjAsaW50
IGFyZzM2NjEsaW50IGFyZzM2NjIsaW50IGFyZzM2NjMsaW50IGFyZzM2NjQsaW50IGFyZzM2NjUs
aW50IGFyZzM2NjYsaW50IGFyZzM2NjcsaW50IGFyZzM2NjgsaW50IGFyZzM2NjksaW50IGFyZzM2
NzAsaW50IGFyZzM2NzEsaW50IGFyZzM2NzIsaW50IGFyZzM2NzMsaW50IGFyZzM2NzQsaW50IGFy
ZzM2NzUsaW50IGFyZzM2NzYsaW50IGFyZzM2NzcsaW50IGFyZzM2NzgsaW50IGFyZzM2NzksaW50
IGFyZzM2ODAsaW50IGFyZzM2ODEsaW50IGFyZzM2ODIsaW50IGFyZzM2ODMsaW50IGFyZzM2ODQs
aW50IGFyZzM2ODUsaW50IGFyZzM2ODYsaW50IGFyZzM2ODcsaW50IGFyZzM2ODgsaW50IGFyZzM2
ODksaW50IGFyZzM2OTAsaW50IGFyZzM2OTEsaW50IGFyZzM2OTIsaW50IGFyZzM2OTMsaW50IGFy
ZzM2OTQsaW50IGFyZzM2OTUsaW50IGFyZzM2OTYsaW50IGFyZzM2OTcsaW50IGFyZzM2OTgsaW50
IGFyZzM2OTksaW50IGFyZzM3MDAsaW50IGFyZzM3MDEsaW50IGFyZzM3MDIsaW50IGFyZzM3MDMs
aW50IGFyZzM3MDQsaW50IGFyZzM3MDUsaW50IGFyZzM3MDYsaW50IGFyZzM3MDcsaW50IGFyZzM3
MDgsaW50IGFyZzM3MDksaW50IGFyZzM3MTAsaW50IGFyZzM3MTEsaW50IGFyZzM3MTIsaW50IGFy
ZzM3MTMsaW50IGFyZzM3MTQsaW50IGFyZzM3MTUsaW50IGFyZzM3MTYsaW50IGFyZzM3MTcsaW50
IGFyZzM3MTgsaW50IGFyZzM3MTksaW50IGFyZzM3MjAsaW50IGFyZzM3MjEsaW50IGFyZzM3MjIs
aW50IGFyZzM3MjMsaW50IGFyZzM3MjQsaW50IGFyZzM3MjUsaW50IGFyZzM3MjYsaW50IGFyZzM3
MjcsaW50IGFyZzM3MjgsaW50IGFyZzM3MjksaW50IGFyZzM3MzAsaW50IGFyZzM3MzEsaW50IGFy
ZzM3MzIsaW50IGFyZzM3MzMsaW50IGFyZzM3MzQsaW50IGFyZzM3MzUsaW50IGFyZzM3MzYsaW50
IGFyZzM3MzcsaW50IGFyZzM3MzgsaW50IGFyZzM3MzksaW50IGFyZzM3NDAsaW50IGFyZzM3NDEs
aW50IGFyZzM3NDIsaW50IGFyZzM3NDMsaW50IGFyZzM3NDQsaW50IGFyZzM3NDUsaW50IGFyZzM3
NDYsaW50IGFyZzM3NDcsaW50IGFyZzM3NDgsaW50IGFyZzM3NDksaW50IGFyZzM3NTAsaW50IGFy
ZzM3NTEsaW50IGFyZzM3NTIsaW50IGFyZzM3NTMsaW50IGFyZzM3NTQsaW50IGFyZzM3NTUsaW50
IGFyZzM3NTYsaW50IGFyZzM3NTcsaW50IGFyZzM3NTgsaW50IGFyZzM3NTksaW50IGFyZzM3NjAs
aW50IGFyZzM3NjEsaW50IGFyZzM3NjIsaW50IGFyZzM3NjMsaW50IGFyZzM3NjQsaW50IGFyZzM3
NjUsaW50IGFyZzM3NjYsaW50IGFyZzM3NjcsaW50IGFyZzM3NjgsaW50IGFyZzM3NjksaW50IGFy
ZzM3NzAsaW50IGFyZzM3NzEsaW50IGFyZzM3NzIsaW50IGFyZzM3NzMsaW50IGFyZzM3NzQsaW50
IGFyZzM3NzUsaW50IGFyZzM3NzYsaW50IGFyZzM3NzcsaW50IGFyZzM3NzgsaW50IGFyZzM3Nzks
aW50IGFyZzM3ODAsaW50IGFyZzM3ODEsaW50IGFyZzM3ODIsaW50IGFyZzM3ODMsaW50IGFyZzM3
ODQsaW50IGFyZzM3ODUsaW50IGFyZzM3ODYsaW50IGFyZzM3ODcsaW50IGFyZzM3ODgsaW50IGFy
ZzM3ODksaW50IGFyZzM3OTAsaW50IGFyZzM3OTEsaW50IGFyZzM3OTIsaW50IGFyZzM3OTMsaW50
IGFyZzM3OTQsaW50IGFyZzM3OTUsaW50IGFyZzM3OTYsaW50IGFyZzM3OTcsaW50IGFyZzM3OTgs
aW50IGFyZzM3OTksaW50IGFyZzM4MDAsaW50IGFyZzM4MDEsaW50IGFyZzM4MDIsaW50IGFyZzM4
MDMsaW50IGFyZzM4MDQsaW50IGFyZzM4MDUsaW50IGFyZzM4MDYsaW50IGFyZzM4MDcsaW50IGFy
ZzM4MDgsaW50IGFyZzM4MDksaW50IGFyZzM4MTAsaW50IGFyZzM4MTEsaW50IGFyZzM4MTIsaW50
IGFyZzM4MTMsaW50IGFyZzM4MTQsaW50IGFyZzM4MTUsaW50IGFyZzM4MTYsaW50IGFyZzM4MTcs
aW50IGFyZzM4MTgsaW50IGFyZzM4MTksaW50IGFyZzM4MjAsaW50IGFyZzM4MjEsaW50IGFyZzM4
MjIsaW50IGFyZzM4MjMsaW50IGFyZzM4MjQsaW50IGFyZzM4MjUsaW50IGFyZzM4MjYsaW50IGFy
ZzM4MjcsaW50IGFyZzM4MjgsaW50IGFyZzM4MjksaW50IGFyZzM4MzAsaW50IGFyZzM4MzEsaW50
IGFyZzM4MzIsaW50IGFyZzM4MzMsaW50IGFyZzM4MzQsaW50IGFyZzM4MzUsaW50IGFyZzM4MzYs
aW50IGFyZzM4MzcsaW50IGFyZzM4MzgsaW50IGFyZzM4MzksaW50IGFyZzM4NDAsaW50IGFyZzM4
NDEsaW50IGFyZzM4NDIsaW50IGFyZzM4NDMsaW50IGFyZzM4NDQsaW50IGFyZzM4NDUsaW50IGFy
ZzM4NDYsaW50IGFyZzM4NDcsaW50IGFyZzM4NDgsaW50IGFyZzM4NDksaW50IGFyZzM4NTAsaW50
IGFyZzM4NTEsaW50IGFyZzM4NTIsaW50IGFyZzM4NTMsaW50IGFyZzM4NTQsaW50IGFyZzM4NTUs
aW50IGFyZzM4NTYsaW50IGFyZzM4NTcsaW50IGFyZzM4NTgsaW50IGFyZzM4NTksaW50IGFyZzM4
NjAsaW50IGFyZzM4NjEsaW50IGFyZzM4NjIsaW50IGFyZzM4NjMsaW50IGFyZzM4NjQsaW50IGFy
ZzM4NjUsaW50IGFyZzM4NjYsaW50IGFyZzM4NjcsaW50IGFyZzM4NjgsaW50IGFyZzM4NjksaW50
IGFyZzM4NzAsaW50IGFyZzM4NzEsaW50IGFyZzM4NzIsaW50IGFyZzM4NzMsaW50IGFyZzM4NzQs
aW50IGFyZzM4NzUsaW50IGFyZzM4NzYsaW50IGFyZzM4NzcsaW50IGFyZzM4NzgsaW50IGFyZzM4
NzksaW50IGFyZzM4ODAsaW50IGFyZzM4ODEsaW50IGFyZzM4ODIsaW50IGFyZzM4ODMsaW50IGFy
ZzM4ODQsaW50IGFyZzM4ODUsaW50IGFyZzM4ODYsaW50IGFyZzM4ODcsaW50IGFyZzM4ODgsaW50
IGFyZzM4ODksaW50IGFyZzM4OTAsaW50IGFyZzM4OTEsaW50IGFyZzM4OTIsaW50IGFyZzM4OTMs
aW50IGFyZzM4OTQsaW50IGFyZzM4OTUsaW50IGFyZzM4OTYsaW50IGFyZzM4OTcsaW50IGFyZzM4
OTgsaW50IGFyZzM4OTksaW50IGFyZzM5MDAsaW50IGFyZzM5MDEsaW50IGFyZzM5MDIsaW50IGFy
ZzM5MDMsaW50IGFyZzM5MDQsaW50IGFyZzM5MDUsaW50IGFyZzM5MDYsaW50IGFyZzM5MDcsaW50
IGFyZzM5MDgsaW50IGFyZzM5MDksaW50IGFyZzM5MTAsaW50IGFyZzM5MTEsaW50IGFyZzM5MTIs
aW50IGFyZzM5MTMsaW50IGFyZzM5MTQsaW50IGFyZzM5MTUsaW50IGFyZzM5MTYsaW50IGFyZzM5
MTcsaW50IGFyZzM5MTgsaW50IGFyZzM5MTksaW50IGFyZzM5MjAsaW50IGFyZzM5MjEsaW50IGFy
ZzM5MjIsaW50IGFyZzM5MjMsaW50IGFyZzM5MjQsaW50IGFyZzM5MjUsaW50IGFyZzM5MjYsaW50
IGFyZzM5MjcsaW50IGFyZzM5MjgsaW50IGFyZzM5MjksaW50IGFyZzM5MzAsaW50IGFyZzM5MzEs
aW50IGFyZzM5MzIsaW50IGFyZzM5MzMsaW50IGFyZzM5MzQsaW50IGFyZzM5MzUsaW50IGFyZzM5
MzYsaW50IGFyZzM5MzcsaW50IGFyZzM5MzgsaW50IGFyZzM5MzksaW50IGFyZzM5NDAsaW50IGFy
ZzM5NDEsaW50IGFyZzM5NDIsaW50IGFyZzM5NDMsaW50IGFyZzM5NDQsaW50IGFyZzM5NDUsaW50
IGFyZzM5NDYsaW50IGFyZzM5NDcsaW50IGFyZzM5NDgsaW50IGFyZzM5NDksaW50IGFyZzM5NTAs
aW50IGFyZzM5NTEsaW50IGFyZzM5NTIsaW50IGFyZzM5NTMsaW50IGFyZzM5NTQsaW50IGFyZzM5
NTUsaW50IGFyZzM5NTYsaW50IGFyZzM5NTcsaW50IGFyZzM5NTgsaW50IGFyZzM5NTksaW50IGFy
ZzM5NjAsaW50IGFyZzM5NjEsaW50IGFyZzM5NjIsaW50IGFyZzM5NjMsaW50IGFyZzM5NjQsaW50
IGFyZzM5NjUsaW50IGFyZzM5NjYsaW50IGFyZzM5NjcsaW50IGFyZzM5NjgsaW50IGFyZzM5Njks
aW50IGFyZzM5NzAsaW50IGFyZzM5NzEsaW50IGFyZzM5NzIsaW50IGFyZzM5NzMsaW50IGFyZzM5
NzQsaW50IGFyZzM5NzUsaW50IGFyZzM5NzYsaW50IGFyZzM5NzcsaW50IGFyZzM5NzgsaW50IGFy
ZzM5NzksaW50IGFyZzM5ODAsaW50IGFyZzM5ODEsaW50IGFyZzM5ODIsaW50IGFyZzM5ODMsaW50
IGFyZzM5ODQsaW50IGFyZzM5ODUsaW50IGFyZzM5ODYsaW50IGFyZzM5ODcsaW50IGFyZzM5ODgs
aW50IGFyZzM5ODksaW50IGFyZzM5OTAsaW50IGFyZzM5OTEsaW50IGFyZzM5OTIsaW50IGFyZzM5
OTMsaW50IGFyZzM5OTQsaW50IGFyZzM5OTUsaW50IGFyZzM5OTYsaW50IGFyZzM5OTcsaW50IGFy
ZzM5OTgsaW50IGFyZzM5OTksaW50IGFyZzQwMDAsaW50IGFyZzQwMDEsaW50IGFyZzQwMDIsaW50
IGFyZzQwMDMsaW50IGFyZzQwMDQsaW50IGFyZzQwMDUsaW50IGFyZzQwMDYsaW50IGFyZzQwMDcs
aW50IGFyZzQwMDgsaW50IGFyZzQwMDksaW50IGFyZzQwMTAsaW50IGFyZzQwMTEsaW50IGFyZzQw
MTIsaW50IGFyZzQwMTMsaW50IGFyZzQwMTQsaW50IGFyZzQwMTUsaW50IGFyZzQwMTYsaW50IGFy
ZzQwMTcsaW50IGFyZzQwMTgsaW50IGFyZzQwMTksaW50IGFyZzQwMjAsaW50IGFyZzQwMjEsaW50
IGFyZzQwMjIsaW50IGFyZzQwMjMsaW50IGFyZzQwMjQsaW50IGFyZzQwMjUsaW50IGFyZzQwMjYs
aW50IGFyZzQwMjcsaW50IGFyZzQwMjgsaW50IGFyZzQwMjksaW50IGFyZzQwMzAsaW50IGFyZzQw
MzEsaW50IGFyZzQwMzIsaW50IGFyZzQwMzMsaW50IGFyZzQwMzQsaW50IGFyZzQwMzUsaW50IGFy
ZzQwMzYsaW50IGFyZzQwMzcsaW50IGFyZzQwMzgsaW50IGFyZzQwMzksaW50IGFyZzQwNDAsaW50
IGFyZzQwNDEsaW50IGFyZzQwNDIsaW50IGFyZzQwNDMsaW50IGFyZzQwNDQsaW50IGFyZzQwNDUs
aW50IGFyZzQwNDYsaW50IGFyZzQwNDcsaW50IGFyZzQwNDgsaW50IGFyZzQwNDksaW50IGFyZzQw
NTAsaW50IGFyZzQwNTEsaW50IGFyZzQwNTIsaW50IGFyZzQwNTMsaW50IGFyZzQwNTQsaW50IGFy
ZzQwNTUsaW50IGFyZzQwNTYsaW50IGFyZzQwNTcsaW50IGFyZzQwNTgsaW50IGFyZzQwNTksaW50
IGFyZzQwNjAsaW50IGFyZzQwNjEsaW50IGFyZzQwNjIsaW50IGFyZzQwNjMsaW50IGFyZzQwNjQs
aW50IGFyZzQwNjUsaW50IGFyZzQwNjYsaW50IGFyZzQwNjcsaW50IGFyZzQwNjgsaW50IGFyZzQw
NjksaW50IGFyZzQwNzAsaW50IGFyZzQwNzEsaW50IGFyZzQwNzIsaW50IGFyZzQwNzMsaW50IGFy
ZzQwNzQsaW50IGFyZzQwNzUsaW50IGFyZzQwNzYsaW50IGFyZzQwNzcsaW50IGFyZzQwNzgsaW50
IGFyZzQwNzksaW50IGFyZzQwODAsaW50IGFyZzQwODEsaW50IGFyZzQwODIsaW50IGFyZzQwODMs
aW50IGFyZzQwODQsaW50IGFyZzQwODUsaW50IGFyZzQwODYsaW50IGFyZzQwODcsaW50IGFyZzQw
ODgsaW50IGFyZzQwODksaW50IGFyZzQwOTAsaW50IGFyZzQwOTEsaW50IGFyZzQwOTIsaW50IGFy
ZzQwOTMsaW50IGFyZzQwOTQsaW50IGFyZzQwOTUsaW50IGFyZzQwOTYsaW50IGFyZzQwOTcsaW50
IGFyZzQwOTgsaW50IGFyZzQwOTksaW50IGFyZzQxMDAsaW50IGFyZzQxMDEsaW50IGFyZzQxMDIs
aW50IGFyZzQxMDMsaW50IGFyZzQxMDQsaW50IGFyZzQxMDUsaW50IGFyZzQxMDYsaW50IGFyZzQx
MDcsaW50IGFyZzQxMDgsaW50IGFyZzQxMDksaW50IGFyZzQxMTAsaW50IGFyZzQxMTEsaW50IGFy
ZzQxMTIsaW50IGFyZzQxMTMsaW50IGFyZzQxMTQsaW50IGFyZzQxMTUsaW50IGFyZzQxMTYsaW50
IGFyZzQxMTcsaW50IGFyZzQxMTgsaW50IGFyZzQxMTksaW50IGFyZzQxMjAsaW50IGFyZzQxMjEs
aW50IGFyZzQxMjIsaW50IGFyZzQxMjMsaW50IGFyZzQxMjQsaW50IGFyZzQxMjUsaW50IGFyZzQx
MjYsaW50IGFyZzQxMjcsaW50IGFyZzQxMjgsaW50IGFyZzQxMjksaW50IGFyZzQxMzAsaW50IGFy
ZzQxMzEsaW50IGFyZzQxMzIsaW50IGFyZzQxMzMsaW50IGFyZzQxMzQsaW50IGFyZzQxMzUsaW50
IGFyZzQxMzYsaW50IGFyZzQxMzcsaW50IGFyZzQxMzgsaW50IGFyZzQxMzksaW50IGFyZzQxNDAs
aW50IGFyZzQxNDEsaW50IGFyZzQxNDIsaW50IGFyZzQxNDMsaW50IGFyZzQxNDQsaW50IGFyZzQx
NDUsaW50IGFyZzQxNDYsaW50IGFyZzQxNDcsaW50IGFyZzQxNDgsaW50IGFyZzQxNDksaW50IGFy
ZzQxNTAsaW50IGFyZzQxNTEsaW50IGFyZzQxNTIsaW50IGFyZzQxNTMsaW50IGFyZzQxNTQsaW50
IGFyZzQxNTUsaW50IGFyZzQxNTYsaW50IGFyZzQxNTcsaW50IGFyZzQxNTgsaW50IGFyZzQxNTks
aW50IGFyZzQxNjAsaW50IGFyZzQxNjEsaW50IGFyZzQxNjIsaW50IGFyZzQxNjMsaW50IGFyZzQx
NjQsaW50IGFyZzQxNjUsaW50IGFyZzQxNjYsaW50IGFyZzQxNjcsaW50IGFyZzQxNjgsaW50IGFy
ZzQxNjksaW50IGFyZzQxNzAsaW50IGFyZzQxNzEsaW50IGFyZzQxNzIsaW50IGFyZzQxNzMsaW50
IGFyZzQxNzQsaW50IGFyZzQxNzUsaW50IGFyZzQxNzYsaW50IGFyZzQxNzcsaW50IGFyZzQxNzgs
aW50IGFyZzQxNzksaW50IGFyZzQxODAsaW50IGFyZzQxODEsaW50IGFyZzQxODIsaW50IGFyZzQx
ODMsaW50IGFyZzQxODQsaW50IGFyZzQxODUsaW50IGFyZzQxODYsaW50IGFyZzQxODcsaW50IGFy
ZzQxODgsaW50IGFyZzQxODksaW50IGFyZzQxOTAsaW50IGFyZzQxOTEsaW50IGFyZzQxOTIsaW50
IGFyZzQxOTMsaW50IGFyZzQxOTQsaW50IGFyZzQxOTUsaW50IGFyZzQxOTYsaW50IGFyZzQxOTcs
aW50IGFyZzQxOTgsaW50IGFyZzQxOTksaW50IGFyZzQyMDAsaW50IGFyZzQyMDEsaW50IGFyZzQy
MDIsaW50IGFyZzQyMDMsaW50IGFyZzQyMDQsaW50IGFyZzQyMDUsaW50IGFyZzQyMDYsaW50IGFy
ZzQyMDcsaW50IGFyZzQyMDgsaW50IGFyZzQyMDksaW50IGFyZzQyMTAsaW50IGFyZzQyMTEsaW50
IGFyZzQyMTIsaW50IGFyZzQyMTMsaW50IGFyZzQyMTQsaW50IGFyZzQyMTUsaW50IGFyZzQyMTYs
aW50IGFyZzQyMTcsaW50IGFyZzQyMTgsaW50IGFyZzQyMTksaW50IGFyZzQyMjAsaW50IGFyZzQy
MjEsaW50IGFyZzQyMjIsaW50IGFyZzQyMjMsaW50IGFyZzQyMjQsaW50IGFyZzQyMjUsaW50IGFy
ZzQyMjYsaW50IGFyZzQyMjcsaW50IGFyZzQyMjgsaW50IGFyZzQyMjksaW50IGFyZzQyMzAsaW50
IGFyZzQyMzEsaW50IGFyZzQyMzIsaW50IGFyZzQyMzMsaW50IGFyZzQyMzQsaW50IGFyZzQyMzUs
aW50IGFyZzQyMzYsaW50IGFyZzQyMzcsaW50IGFyZzQyMzgsaW50IGFyZzQyMzksaW50IGFyZzQy
NDAsaW50IGFyZzQyNDEsaW50IGFyZzQyNDIsaW50IGFyZzQyNDMsaW50IGFyZzQyNDQsaW50IGFy
ZzQyNDUsaW50IGFyZzQyNDYsaW50IGFyZzQyNDcsaW50IGFyZzQyNDgsaW50IGFyZzQyNDksaW50
IGFyZzQyNTAsaW50IGFyZzQyNTEsaW50IGFyZzQyNTIsaW50IGFyZzQyNTMsaW50IGFyZzQyNTQs
aW50IGFyZzQyNTUsaW50IGFyZzQyNTYsaW50IGFyZzQyNTcsaW50IGFyZzQyNTgsaW50IGFyZzQy
NTksaW50IGFyZzQyNjAsaW50IGFyZzQyNjEsaW50IGFyZzQyNjIsaW50IGFyZzQyNjMsaW50IGFy
ZzQyNjQsaW50IGFyZzQyNjUsaW50IGFyZzQyNjYsaW50IGFyZzQyNjcsaW50IGFyZzQyNjgsaW50
IGFyZzQyNjksaW50IGFyZzQyNzAsaW50IGFyZzQyNzEsaW50IGFyZzQyNzIsaW50IGFyZzQyNzMs
aW50IGFyZzQyNzQsaW50IGFyZzQyNzUsaW50IGFyZzQyNzYsaW50IGFyZzQyNzcsaW50IGFyZzQy
NzgsaW50IGFyZzQyNzksaW50IGFyZzQyODAsaW50IGFyZzQyODEsaW50IGFyZzQyODIsaW50IGFy
ZzQyODMsaW50IGFyZzQyODQsaW50IGFyZzQyODUsaW50IGFyZzQyODYsaW50IGFyZzQyODcsaW50
IGFyZzQyODgsaW50IGFyZzQyODksaW50IGFyZzQyOTAsaW50IGFyZzQyOTEsaW50IGFyZzQyOTIs
aW50IGFyZzQyOTMsaW50IGFyZzQyOTQsaW50IGFyZzQyOTUsaW50IGFyZzQyOTYsaW50IGFyZzQy
OTcsaW50IGFyZzQyOTgsaW50IGFyZzQyOTksaW50IGFyZzQzMDAsaW50IGFyZzQzMDEsaW50IGFy
ZzQzMDIsaW50IGFyZzQzMDMsaW50IGFyZzQzMDQsaW50IGFyZzQzMDUsaW50IGFyZzQzMDYsaW50
IGFyZzQzMDcsaW50IGFyZzQzMDgsaW50IGFyZzQzMDksaW50IGFyZzQzMTAsaW50IGFyZzQzMTEs
aW50IGFyZzQzMTIsaW50IGFyZzQzMTMsaW50IGFyZzQzMTQsaW50IGFyZzQzMTUsaW50IGFyZzQz
MTYsaW50IGFyZzQzMTcsaW50IGFyZzQzMTgsaW50IGFyZzQzMTksaW50IGFyZzQzMjAsaW50IGFy
ZzQzMjEsaW50IGFyZzQzMjIsaW50IGFyZzQzMjMsaW50IGFyZzQzMjQsaW50IGFyZzQzMjUsaW50
IGFyZzQzMjYsaW50IGFyZzQzMjcsaW50IGFyZzQzMjgsaW50IGFyZzQzMjksaW50IGFyZzQzMzAs
aW50IGFyZzQzMzEsaW50IGFyZzQzMzIsaW50IGFyZzQzMzMsaW50IGFyZzQzMzQsaW50IGFyZzQz
MzUsaW50IGFyZzQzMzYsaW50IGFyZzQzMzcsaW50IGFyZzQzMzgsaW50IGFyZzQzMzksaW50IGFy
ZzQzNDAsaW50IGFyZzQzNDEsaW50IGFyZzQzNDIsaW50IGFyZzQzNDMsaW50IGFyZzQzNDQsaW50
IGFyZzQzNDUsaW50IGFyZzQzNDYsaW50IGFyZzQzNDcsaW50IGFyZzQzNDgsaW50IGFyZzQzNDks
aW50IGFyZzQzNTAsaW50IGFyZzQzNTEsaW50IGFyZzQzNTIsaW50IGFyZzQzNTMsaW50IGFyZzQz
NTQsaW50IGFyZzQzNTUsaW50IGFyZzQzNTYsaW50IGFyZzQzNTcsaW50IGFyZzQzNTgsaW50IGFy
ZzQzNTksaW50IGFyZzQzNjAsaW50IGFyZzQzNjEsaW50IGFyZzQzNjIsaW50IGFyZzQzNjMsaW50
IGFyZzQzNjQsaW50IGFyZzQzNjUsaW50IGFyZzQzNjYsaW50IGFyZzQzNjcsaW50IGFyZzQzNjgs
aW50IGFyZzQzNjksaW50IGFyZzQzNzAsaW50IGFyZzQzNzEsaW50IGFyZzQzNzIsaW50IGFyZzQz
NzMsaW50IGFyZzQzNzQsaW50IGFyZzQzNzUsaW50IGFyZzQzNzYsaW50IGFyZzQzNzcsaW50IGFy
ZzQzNzgsaW50IGFyZzQzNzksaW50IGFyZzQzODAsaW50IGFyZzQzODEsaW50IGFyZzQzODIsaW50
IGFyZzQzODMsaW50IGFyZzQzODQsaW50IGFyZzQzODUsaW50IGFyZzQzODYsaW50IGFyZzQzODcs
aW50IGFyZzQzODgsaW50IGFyZzQzODksaW50IGFyZzQzOTAsaW50IGFyZzQzOTEsaW50IGFyZzQz
OTIsaW50IGFyZzQzOTMsaW50IGFyZzQzOTQsaW50IGFyZzQzOTUsaW50IGFyZzQzOTYsaW50IGFy
ZzQzOTcsaW50IGFyZzQzOTgsaW50IGFyZzQzOTksaW50IGFyZzQ0MDAsaW50IGFyZzQ0MDEsaW50
IGFyZzQ0MDIsaW50IGFyZzQ0MDMsaW50IGFyZzQ0MDQsaW50IGFyZzQ0MDUsaW50IGFyZzQ0MDYs
aW50IGFyZzQ0MDcsaW50IGFyZzQ0MDgsaW50IGFyZzQ0MDksaW50IGFyZzQ0MTAsaW50IGFyZzQ0
MTEsaW50IGFyZzQ0MTIsaW50IGFyZzQ0MTMsaW50IGFyZzQ0MTQsaW50IGFyZzQ0MTUsaW50IGFy
ZzQ0MTYsaW50IGFyZzQ0MTcsaW50IGFyZzQ0MTgsaW50IGFyZzQ0MTksaW50IGFyZzQ0MjAsaW50
IGFyZzQ0MjEsaW50IGFyZzQ0MjIsaW50IGFyZzQ0MjMsaW50IGFyZzQ0MjQsaW50IGFyZzQ0MjUs
aW50IGFyZzQ0MjYsaW50IGFyZzQ0MjcsaW50IGFyZzQ0MjgsaW50IGFyZzQ0MjksaW50IGFyZzQ0
MzAsaW50IGFyZzQ0MzEsaW50IGFyZzQ0MzIsaW50IGFyZzQ0MzMsaW50IGFyZzQ0MzQsaW50IGFy
ZzQ0MzUsaW50IGFyZzQ0MzYsaW50IGFyZzQ0MzcsaW50IGFyZzQ0MzgsaW50IGFyZzQ0MzksaW50
IGFyZzQ0NDAsaW50IGFyZzQ0NDEsaW50IGFyZzQ0NDIsaW50IGFyZzQ0NDMsaW50IGFyZzQ0NDQs
aW50IGFyZzQ0NDUsaW50IGFyZzQ0NDYsaW50IGFyZzQ0NDcsaW50IGFyZzQ0NDgsaW50IGFyZzQ0
NDksaW50IGFyZzQ0NTAsaW50IGFyZzQ0NTEsaW50IGFyZzQ0NTIsaW50IGFyZzQ0NTMsaW50IGFy
ZzQ0NTQsaW50IGFyZzQ0NTUsaW50IGFyZzQ0NTYsaW50IGFyZzQ0NTcsaW50IGFyZzQ0NTgsaW50
IGFyZzQ0NTksaW50IGFyZzQ0NjAsaW50IGFyZzQ0NjEsaW50IGFyZzQ0NjIsaW50IGFyZzQ0NjMs
aW50IGFyZzQ0NjQsaW50IGFyZzQ0NjUsaW50IGFyZzQ0NjYsaW50IGFyZzQ0NjcsaW50IGFyZzQ0
NjgsaW50IGFyZzQ0NjksaW50IGFyZzQ0NzAsaW50IGFyZzQ0NzEsaW50IGFyZzQ0NzIsaW50IGFy
ZzQ0NzMsaW50IGFyZzQ0NzQsaW50IGFyZzQ0NzUsaW50IGFyZzQ0NzYsaW50IGFyZzQ0NzcsaW50
IGFyZzQ0NzgsaW50IGFyZzQ0NzksaW50IGFyZzQ0ODAsaW50IGFyZzQ0ODEsaW50IGFyZzQ0ODIs
aW50IGFyZzQ0ODMsaW50IGFyZzQ0ODQsaW50IGFyZzQ0ODUsaW50IGFyZzQ0ODYsaW50IGFyZzQ0
ODcsaW50IGFyZzQ0ODgsaW50IGFyZzQ0ODksaW50IGFyZzQ0OTAsaW50IGFyZzQ0OTEsaW50IGFy
ZzQ0OTIsaW50IGFyZzQ0OTMsaW50IGFyZzQ0OTQsaW50IGFyZzQ0OTUsaW50IGFyZzQ0OTYsaW50
IGFyZzQ0OTcsaW50IGFyZzQ0OTgsaW50IGFyZzQ0OTksaW50IGFyZzQ1MDAsaW50IGFyZzQ1MDEs
aW50IGFyZzQ1MDIsaW50IGFyZzQ1MDMsaW50IGFyZzQ1MDQsaW50IGFyZzQ1MDUsaW50IGFyZzQ1
MDYsaW50IGFyZzQ1MDcsaW50IGFyZzQ1MDgsaW50IGFyZzQ1MDksaW50IGFyZzQ1MTAsaW50IGFy
ZzQ1MTEsaW50IGFyZzQ1MTIsaW50IGFyZzQ1MTMsaW50IGFyZzQ1MTQsaW50IGFyZzQ1MTUsaW50
IGFyZzQ1MTYsaW50IGFyZzQ1MTcsaW50IGFyZzQ1MTgsaW50IGFyZzQ1MTksaW50IGFyZzQ1MjAs
aW50IGFyZzQ1MjEsaW50IGFyZzQ1MjIsaW50IGFyZzQ1MjMsaW50IGFyZzQ1MjQsaW50IGFyZzQ1
MjUsaW50IGFyZzQ1MjYsaW50IGFyZzQ1MjcsaW50IGFyZzQ1MjgsaW50IGFyZzQ1MjksaW50IGFy
ZzQ1MzAsaW50IGFyZzQ1MzEsaW50IGFyZzQ1MzIsaW50IGFyZzQ1MzMsaW50IGFyZzQ1MzQsaW50
IGFyZzQ1MzUsaW50IGFyZzQ1MzYsaW50IGFyZzQ1MzcsaW50IGFyZzQ1MzgsaW50IGFyZzQ1Mzks
aW50IGFyZzQ1NDAsaW50IGFyZzQ1NDEsaW50IGFyZzQ1NDIsaW50IGFyZzQ1NDMsaW50IGFyZzQ1
NDQsaW50IGFyZzQ1NDUsaW50IGFyZzQ1NDYsaW50IGFyZzQ1NDcsaW50IGFyZzQ1NDgsaW50IGFy
ZzQ1NDksaW50IGFyZzQ1NTAsaW50IGFyZzQ1NTEsaW50IGFyZzQ1NTIsaW50IGFyZzQ1NTMsaW50
IGFyZzQ1NTQsaW50IGFyZzQ1NTUsaW50IGFyZzQ1NTYsaW50IGFyZzQ1NTcsaW50IGFyZzQ1NTgs
aW50IGFyZzQ1NTksaW50IGFyZzQ1NjAsaW50IGFyZzQ1NjEsaW50IGFyZzQ1NjIsaW50IGFyZzQ1
NjMsaW50IGFyZzQ1NjQsaW50IGFyZzQ1NjUsaW50IGFyZzQ1NjYsaW50IGFyZzQ1NjcsaW50IGFy
ZzQ1NjgsaW50IGFyZzQ1NjksaW50IGFyZzQ1NzAsaW50IGFyZzQ1NzEsaW50IGFyZzQ1NzIsaW50
IGFyZzQ1NzMsaW50IGFyZzQ1NzQsaW50IGFyZzQ1NzUsaW50IGFyZzQ1NzYsaW50IGFyZzQ1Nzcs
aW50IGFyZzQ1NzgsaW50IGFyZzQ1NzksaW50IGFyZzQ1ODAsaW50IGFyZzQ1ODEsaW50IGFyZzQ1
ODIsaW50IGFyZzQ1ODMsaW50IGFyZzQ1ODQsaW50IGFyZzQ1ODUsaW50IGFyZzQ1ODYsaW50IGFy
ZzQ1ODcsaW50IGFyZzQ1ODgsaW50IGFyZzQ1ODksaW50IGFyZzQ1OTAsaW50IGFyZzQ1OTEsaW50
IGFyZzQ1OTIsaW50IGFyZzQ1OTMsaW50IGFyZzQ1OTQsaW50IGFyZzQ1OTUsaW50IGFyZzQ1OTYs
aW50IGFyZzQ1OTcsaW50IGFyZzQ1OTgsaW50IGFyZzQ1OTksaW50IGFyZzQ2MDAsaW50IGFyZzQ2
MDEsaW50IGFyZzQ2MDIsaW50IGFyZzQ2MDMsaW50IGFyZzQ2MDQsaW50IGFyZzQ2MDUsaW50IGFy
ZzQ2MDYsaW50IGFyZzQ2MDcsaW50IGFyZzQ2MDgsaW50IGFyZzQ2MDksaW50IGFyZzQ2MTAsaW50
IGFyZzQ2MTEsaW50IGFyZzQ2MTIsaW50IGFyZzQ2MTMsaW50IGFyZzQ2MTQsaW50IGFyZzQ2MTUs
aW50IGFyZzQ2MTYsaW50IGFyZzQ2MTcsaW50IGFyZzQ2MTgsaW50IGFyZzQ2MTksaW50IGFyZzQ2
MjAsaW50IGFyZzQ2MjEsaW50IGFyZzQ2MjIsaW50IGFyZzQ2MjMsaW50IGFyZzQ2MjQsaW50IGFy
ZzQ2MjUsaW50IGFyZzQ2MjYsaW50IGFyZzQ2MjcsaW50IGFyZzQ2MjgsaW50IGFyZzQ2MjksaW50
IGFyZzQ2MzAsaW50IGFyZzQ2MzEsaW50IGFyZzQ2MzIsaW50IGFyZzQ2MzMsaW50IGFyZzQ2MzQs
aW50IGFyZzQ2MzUsaW50IGFyZzQ2MzYsaW50IGFyZzQ2MzcsaW50IGFyZzQ2MzgsaW50IGFyZzQ2
MzksaW50IGFyZzQ2NDAsaW50IGFyZzQ2NDEsaW50IGFyZzQ2NDIsaW50IGFyZzQ2NDMsaW50IGFy
ZzQ2NDQsaW50IGFyZzQ2NDUsaW50IGFyZzQ2NDYsaW50IGFyZzQ2NDcsaW50IGFyZzQ2NDgsaW50
IGFyZzQ2NDksaW50IGFyZzQ2NTAsaW50IGFyZzQ2NTEsaW50IGFyZzQ2NTIsaW50IGFyZzQ2NTMs
aW50IGFyZzQ2NTQsaW50IGFyZzQ2NTUsaW50IGFyZzQ2NTYsaW50IGFyZzQ2NTcsaW50IGFyZzQ2
NTgsaW50IGFyZzQ2NTksaW50IGFyZzQ2NjAsaW50IGFyZzQ2NjEsaW50IGFyZzQ2NjIsaW50IGFy
ZzQ2NjMsaW50IGFyZzQ2NjQsaW50IGFyZzQ2NjUsaW50IGFyZzQ2NjYsaW50IGFyZzQ2NjcsaW50
IGFyZzQ2NjgsaW50IGFyZzQ2NjksaW50IGFyZzQ2NzAsaW50IGFyZzQ2NzEsaW50IGFyZzQ2NzIs
aW50IGFyZzQ2NzMsaW50IGFyZzQ2NzQsaW50IGFyZzQ2NzUsaW50IGFyZzQ2NzYsaW50IGFyZzQ2
NzcsaW50IGFyZzQ2NzgsaW50IGFyZzQ2NzksaW50IGFyZzQ2ODAsaW50IGFyZzQ2ODEsaW50IGFy
ZzQ2ODIsaW50IGFyZzQ2ODMsaW50IGFyZzQ2ODQsaW50IGFyZzQ2ODUsaW50IGFyZzQ2ODYsaW50
IGFyZzQ2ODcsaW50IGFyZzQ2ODgsaW50IGFyZzQ2ODksaW50IGFyZzQ2OTAsaW50IGFyZzQ2OTEs
aW50IGFyZzQ2OTIsaW50IGFyZzQ2OTMsaW50IGFyZzQ2OTQsaW50IGFyZzQ2OTUsaW50IGFyZzQ2
OTYsaW50IGFyZzQ2OTcsaW50IGFyZzQ2OTgsaW50IGFyZzQ2OTksaW50IGFyZzQ3MDAsaW50IGFy
ZzQ3MDEsaW50IGFyZzQ3MDIsaW50IGFyZzQ3MDMsaW50IGFyZzQ3MDQsaW50IGFyZzQ3MDUsaW50
IGFyZzQ3MDYsaW50IGFyZzQ3MDcsaW50IGFyZzQ3MDgsaW50IGFyZzQ3MDksaW50IGFyZzQ3MTAs
aW50IGFyZzQ3MTEsaW50IGFyZzQ3MTIsaW50IGFyZzQ3MTMsaW50IGFyZzQ3MTQsaW50IGFyZzQ3
MTUsaW50IGFyZzQ3MTYsaW50IGFyZzQ3MTcsaW50IGFyZzQ3MTgsaW50IGFyZzQ3MTksaW50IGFy
ZzQ3MjAsaW50IGFyZzQ3MjEsaW50IGFyZzQ3MjIsaW50IGFyZzQ3MjMsaW50IGFyZzQ3MjQsaW50
IGFyZzQ3MjUsaW50IGFyZzQ3MjYsaW50IGFyZzQ3MjcsaW50IGFyZzQ3MjgsaW50IGFyZzQ3Mjks
aW50IGFyZzQ3MzAsaW50IGFyZzQ3MzEsaW50IGFyZzQ3MzIsaW50IGFyZzQ3MzMsaW50IGFyZzQ3
MzQsaW50IGFyZzQ3MzUsaW50IGFyZzQ3MzYsaW50IGFyZzQ3MzcsaW50IGFyZzQ3MzgsaW50IGFy
ZzQ3MzksaW50IGFyZzQ3NDAsaW50IGFyZzQ3NDEsaW50IGFyZzQ3NDIsaW50IGFyZzQ3NDMsaW50
IGFyZzQ3NDQsaW50IGFyZzQ3NDUsaW50IGFyZzQ3NDYsaW50IGFyZzQ3NDcsaW50IGFyZzQ3NDgs
aW50IGFyZzQ3NDksaW50IGFyZzQ3NTAsaW50IGFyZzQ3NTEsaW50IGFyZzQ3NTIsaW50IGFyZzQ3
NTMsaW50IGFyZzQ3NTQsaW50IGFyZzQ3NTUsaW50IGFyZzQ3NTYsaW50IGFyZzQ3NTcsaW50IGFy
ZzQ3NTgsaW50IGFyZzQ3NTksaW50IGFyZzQ3NjAsaW50IGFyZzQ3NjEsaW50IGFyZzQ3NjIsaW50
IGFyZzQ3NjMsaW50IGFyZzQ3NjQsaW50IGFyZzQ3NjUsaW50IGFyZzQ3NjYsaW50IGFyZzQ3Njcs
aW50IGFyZzQ3NjgsaW50IGFyZzQ3NjksaW50IGFyZzQ3NzAsaW50IGFyZzQ3NzEsaW50IGFyZzQ3
NzIsaW50IGFyZzQ3NzMsaW50IGFyZzQ3NzQsaW50IGFyZzQ3NzUsaW50IGFyZzQ3NzYsaW50IGFy
ZzQ3NzcsaW50IGFyZzQ3NzgsaW50IGFyZzQ3NzksaW50IGFyZzQ3ODAsaW50IGFyZzQ3ODEsaW50
IGFyZzQ3ODIsaW50IGFyZzQ3ODMsaW50IGFyZzQ3ODQsaW50IGFyZzQ3ODUsaW50IGFyZzQ3ODYs
aW50IGFyZzQ3ODcsaW50IGFyZzQ3ODgsaW50IGFyZzQ3ODksaW50IGFyZzQ3OTAsaW50IGFyZzQ3
OTEsaW50IGFyZzQ3OTIsaW50IGFyZzQ3OTMsaW50IGFyZzQ3OTQsaW50IGFyZzQ3OTUsaW50IGFy
ZzQ3OTYsaW50IGFyZzQ3OTcsaW50IGFyZzQ3OTgsaW50IGFyZzQ3OTksaW50IGFyZzQ4MDAsaW50
IGFyZzQ4MDEsaW50IGFyZzQ4MDIsaW50IGFyZzQ4MDMsaW50IGFyZzQ4MDQsaW50IGFyZzQ4MDUs
aW50IGFyZzQ4MDYsaW50IGFyZzQ4MDcsaW50IGFyZzQ4MDgsaW50IGFyZzQ4MDksaW50IGFyZzQ4
MTAsaW50IGFyZzQ4MTEsaW50IGFyZzQ4MTIsaW50IGFyZzQ4MTMsaW50IGFyZzQ4MTQsaW50IGFy
ZzQ4MTUsaW50IGFyZzQ4MTYsaW50IGFyZzQ4MTcsaW50IGFyZzQ4MTgsaW50IGFyZzQ4MTksaW50
IGFyZzQ4MjAsaW50IGFyZzQ4MjEsaW50IGFyZzQ4MjIsaW50IGFyZzQ4MjMsaW50IGFyZzQ4MjQs
aW50IGFyZzQ4MjUsaW50IGFyZzQ4MjYsaW50IGFyZzQ4MjcsaW50IGFyZzQ4MjgsaW50IGFyZzQ4
MjksaW50IGFyZzQ4MzAsaW50IGFyZzQ4MzEsaW50IGFyZzQ4MzIsaW50IGFyZzQ4MzMsaW50IGFy
ZzQ4MzQsaW50IGFyZzQ4MzUsaW50IGFyZzQ4MzYsaW50IGFyZzQ4MzcsaW50IGFyZzQ4MzgsaW50
IGFyZzQ4MzksaW50IGFyZzQ4NDAsaW50IGFyZzQ4NDEsaW50IGFyZzQ4NDIsaW50IGFyZzQ4NDMs
aW50IGFyZzQ4NDQsaW50IGFyZzQ4NDUsaW50IGFyZzQ4NDYsaW50IGFyZzQ4NDcsaW50IGFyZzQ4
NDgsaW50IGFyZzQ4NDksaW50IGFyZzQ4NTAsaW50IGFyZzQ4NTEsaW50IGFyZzQ4NTIsaW50IGFy
ZzQ4NTMsaW50IGFyZzQ4NTQsaW50IGFyZzQ4NTUsaW50IGFyZzQ4NTYsaW50IGFyZzQ4NTcsaW50
IGFyZzQ4NTgsaW50IGFyZzQ4NTksaW50IGFyZzQ4NjAsaW50IGFyZzQ4NjEsaW50IGFyZzQ4NjIs
aW50IGFyZzQ4NjMsaW50IGFyZzQ4NjQsaW50IGFyZzQ4NjUsaW50IGFyZzQ4NjYsaW50IGFyZzQ4
NjcsaW50IGFyZzQ4NjgsaW50IGFyZzQ4NjksaW50IGFyZzQ4NzAsaW50IGFyZzQ4NzEsaW50IGFy
ZzQ4NzIsaW50IGFyZzQ4NzMsaW50IGFyZzQ4NzQsaW50IGFyZzQ4NzUsaW50IGFyZzQ4NzYsaW50
IGFyZzQ4NzcsaW50IGFyZzQ4NzgsaW50IGFyZzQ4NzksaW50IGFyZzQ4ODAsaW50IGFyZzQ4ODEs
aW50IGFyZzQ4ODIsaW50IGFyZzQ4ODMsaW50IGFyZzQ4ODQsaW50IGFyZzQ4ODUsaW50IGFyZzQ4
ODYsaW50IGFyZzQ4ODcsaW50IGFyZzQ4ODgsaW50IGFyZzQ4ODksaW50IGFyZzQ4OTAsaW50IGFy
ZzQ4OTEsaW50IGFyZzQ4OTIsaW50IGFyZzQ4OTMsaW50IGFyZzQ4OTQsaW50IGFyZzQ4OTUsaW50
IGFyZzQ4OTYsaW50IGFyZzQ4OTcsaW50IGFyZzQ4OTgsaW50IGFyZzQ4OTksaW50IGFyZzQ5MDAs
aW50IGFyZzQ5MDEsaW50IGFyZzQ5MDIsaW50IGFyZzQ5MDMsaW50IGFyZzQ5MDQsaW50IGFyZzQ5
MDUsaW50IGFyZzQ5MDYsaW50IGFyZzQ5MDcsaW50IGFyZzQ5MDgsaW50IGFyZzQ5MDksaW50IGFy
ZzQ5MTAsaW50IGFyZzQ5MTEsaW50IGFyZzQ5MTIsaW50IGFyZzQ5MTMsaW50IGFyZzQ5MTQsaW50
IGFyZzQ5MTUsaW50IGFyZzQ5MTYsaW50IGFyZzQ5MTcsaW50IGFyZzQ5MTgsaW50IGFyZzQ5MTks
aW50IGFyZzQ5MjAsaW50IGFyZzQ5MjEsaW50IGFyZzQ5MjIsaW50IGFyZzQ5MjMsaW50IGFyZzQ5
MjQsaW50IGFyZzQ5MjUsaW50IGFyZzQ5MjYsaW50IGFyZzQ5MjcsaW50IGFyZzQ5MjgsaW50IGFy
ZzQ5MjksaW50IGFyZzQ5MzAsaW50IGFyZzQ5MzEsaW50IGFyZzQ5MzIsaW50IGFyZzQ5MzMsaW50
IGFyZzQ5MzQsaW50IGFyZzQ5MzUsaW50IGFyZzQ5MzYsaW50IGFyZzQ5MzcsaW50IGFyZzQ5Mzgs
aW50IGFyZzQ5MzksaW50IGFyZzQ5NDAsaW50IGFyZzQ5NDEsaW50IGFyZzQ5NDIsaW50IGFyZzQ5
NDMsaW50IGFyZzQ5NDQsaW50IGFyZzQ5NDUsaW50IGFyZzQ5NDYsaW50IGFyZzQ5NDcsaW50IGFy
ZzQ5NDgsaW50IGFyZzQ5NDksaW50IGFyZzQ5NTAsaW50IGFyZzQ5NTEsaW50IGFyZzQ5NTIsaW50
IGFyZzQ5NTMsaW50IGFyZzQ5NTQsaW50IGFyZzQ5NTUsaW50IGFyZzQ5NTYsaW50IGFyZzQ5NTcs
aW50IGFyZzQ5NTgsaW50IGFyZzQ5NTksaW50IGFyZzQ5NjAsaW50IGFyZzQ5NjEsaW50IGFyZzQ5
NjIsaW50IGFyZzQ5NjMsaW50IGFyZzQ5NjQsaW50IGFyZzQ5NjUsaW50IGFyZzQ5NjYsaW50IGFy
ZzQ5NjcsaW50IGFyZzQ5NjgsaW50IGFyZzQ5NjksaW50IGFyZzQ5NzAsaW50IGFyZzQ5NzEsaW50
IGFyZzQ5NzIsaW50IGFyZzQ5NzMsaW50IGFyZzQ5NzQsaW50IGFyZzQ5NzUsaW50IGFyZzQ5NzYs
aW50IGFyZzQ5NzcsaW50IGFyZzQ5NzgsaW50IGFyZzQ5NzksaW50IGFyZzQ5ODAsaW50IGFyZzQ5
ODEsaW50IGFyZzQ5ODIsaW50IGFyZzQ5ODMsaW50IGFyZzQ5ODQsaW50IGFyZzQ5ODUsaW50IGFy
ZzQ5ODYsaW50IGFyZzQ5ODcsaW50IGFyZzQ5ODgsaW50IGFyZzQ5ODksaW50IGFyZzQ5OTAsaW50
IGFyZzQ5OTEsaW50IGFyZzQ5OTIsaW50IGFyZzQ5OTMsaW50IGFyZzQ5OTQsaW50IGFyZzQ5OTUs
aW50IGFyZzQ5OTYsaW50IGFyZzQ5OTcsaW50IGFyZzQ5OTgsaW50IGFyZzQ5OTkpKTsKIH0gLy8g
ZXh0ZXJuICJDIgogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oZnVuY3Rpb25X
aXRoSGVsbGFBcmd1bWVudHMzLCBpbnQsIChpbnQgYXJnMCxpbnQgYXJnMSxpbnQgYXJnMixpbnQg
YXJnMyxpbnQgYXJnNCxpbnQgYXJnNSxpbnQgYXJnNixpbnQgYXJnNyxpbnQgYXJnOCxpbnQgYXJn
OSxpbnQgYXJnMTAsaW50IGFyZzExLGludCBhcmcxMixpbnQgYXJnMTMsaW50IGFyZzE0LGludCBh
cmcxNSxpbnQgYXJnMTYsaW50IGFyZzE3LGludCBhcmcxOCxpbnQgYXJnMTksaW50IGFyZzIwLGlu
dCBhcmcyMSxpbnQgYXJnMjIsaW50IGFyZzIzLGludCBhcmcyNCxpbnQgYXJnMjUsaW50IGFyZzI2
LGludCBhcmcyNyxpbnQgYXJnMjgsaW50IGFyZzI5LGludCBhcmczMCxpbnQgYXJnMzEsaW50IGFy
ZzMyLGludCBhcmczMyxpbnQgYXJnMzQsaW50IGFyZzM1LGludCBhcmczNixpbnQgYXJnMzcsaW50
IGFyZzM4LGludCBhcmczOSxpbnQgYXJnNDAsaW50IGFyZzQxLGludCBhcmc0MixpbnQgYXJnNDMs
aW50IGFyZzQ0LGludCBhcmc0NSxpbnQgYXJnNDYsaW50IGFyZzQ3LGludCBhcmc0OCxpbnQgYXJn
NDksaW50IGFyZzUwLGludCBhcmc1MSxpbnQgYXJnNTIsaW50IGFyZzUzLGludCBhcmc1NCxpbnQg
YXJnNTUsaW50IGFyZzU2LGludCBhcmc1NyxpbnQgYXJnNTgsaW50IGFyZzU5LGludCBhcmc2MCxp
bnQgYXJnNjEsaW50IGFyZzYyLGludCBhcmc2MyxpbnQgYXJnNjQsaW50IGFyZzY1LGludCBhcmc2
NixpbnQgYXJnNjcsaW50IGFyZzY4LGludCBhcmc2OSxpbnQgYXJnNzAsaW50IGFyZzcxLGludCBh
cmc3MixpbnQgYXJnNzMsaW50IGFyZzc0LGludCBhcmc3NSxpbnQgYXJnNzYsaW50IGFyZzc3LGlu
dCBhcmc3OCxpbnQgYXJnNzksaW50IGFyZzgwLGludCBhcmc4MSxpbnQgYXJnODIsaW50IGFyZzgz
LGludCBhcmc4NCxpbnQgYXJnODUsaW50IGFyZzg2LGludCBhcmc4NyxpbnQgYXJnODgsaW50IGFy
Zzg5LGludCBhcmc5MCxpbnQgYXJnOTEsaW50IGFyZzkyLGludCBhcmc5MyxpbnQgYXJnOTQsaW50
IGFyZzk1LGludCBhcmc5NixpbnQgYXJnOTcsaW50IGFyZzk4LGludCBhcmc5OSxpbnQgYXJnMTAw
LGludCBhcmcxMDEsaW50IGFyZzEwMixpbnQgYXJnMTAzLGludCBhcmcxMDQsaW50IGFyZzEwNSxp
bnQgYXJnMTA2LGludCBhcmcxMDcsaW50IGFyZzEwOCxpbnQgYXJnMTA5LGludCBhcmcxMTAsaW50
IGFyZzExMSxpbnQgYXJnMTEyLGludCBhcmcxMTMsaW50IGFyZzExNCxpbnQgYXJnMTE1LGludCBh
cmcxMTYsaW50IGFyZzExNyxpbnQgYXJnMTE4LGludCBhcmcxMTksaW50IGFyZzEyMCxpbnQgYXJn
MTIxLGludCBhcmcxMjIsaW50IGFyZzEyMyxpbnQgYXJnMTI0LGludCBhcmcxMjUsaW50IGFyZzEy
NixpbnQgYXJnMTI3LGludCBhcmcxMjgsaW50IGFyZzEyOSxpbnQgYXJnMTMwLGludCBhcmcxMzEs
aW50IGFyZzEzMixpbnQgYXJnMTMzLGludCBhcmcxMzQsaW50IGFyZzEzNSxpbnQgYXJnMTM2LGlu
dCBhcmcxMzcsaW50IGFyZzEzOCxpbnQgYXJnMTM5LGludCBhcmcxNDAsaW50IGFyZzE0MSxpbnQg
YXJnMTQyLGludCBhcmcxNDMsaW50IGFyZzE0NCxpbnQgYXJnMTQ1LGludCBhcmcxNDYsaW50IGFy
ZzE0NyxpbnQgYXJnMTQ4LGludCBhcmcxNDksaW50IGFyZzE1MCxpbnQgYXJnMTUxLGludCBhcmcx
NTIsaW50IGFyZzE1MyxpbnQgYXJnMTU0LGludCBhcmcxNTUsaW50IGFyZzE1NixpbnQgYXJnMTU3
LGludCBhcmcxNTgsaW50IGFyZzE1OSxpbnQgYXJnMTYwLGludCBhcmcxNjEsaW50IGFyZzE2Mixp
bnQgYXJnMTYzLGludCBhcmcxNjQsaW50IGFyZzE2NSxpbnQgYXJnMTY2LGludCBhcmcxNjcsaW50
IGFyZzE2OCxpbnQgYXJnMTY5LGludCBhcmcxNzAsaW50IGFyZzE3MSxpbnQgYXJnMTcyLGludCBh
cmcxNzMsaW50IGFyZzE3NCxpbnQgYXJnMTc1LGludCBhcmcxNzYsaW50IGFyZzE3NyxpbnQgYXJn
MTc4LGludCBhcmcxNzksaW50IGFyZzE4MCxpbnQgYXJnMTgxLGludCBhcmcxODIsaW50IGFyZzE4
MyxpbnQgYXJnMTg0LGludCBhcmcxODUsaW50IGFyZzE4NixpbnQgYXJnMTg3LGludCBhcmcxODgs
aW50IGFyZzE4OSxpbnQgYXJnMTkwLGludCBhcmcxOTEsaW50IGFyZzE5MixpbnQgYXJnMTkzLGlu
dCBhcmcxOTQsaW50IGFyZzE5NSxpbnQgYXJnMTk2LGludCBhcmcxOTcsaW50IGFyZzE5OCxpbnQg
YXJnMTk5LGludCBhcmcyMDAsaW50IGFyZzIwMSxpbnQgYXJnMjAyLGludCBhcmcyMDMsaW50IGFy
ZzIwNCxpbnQgYXJnMjA1LGludCBhcmcyMDYsaW50IGFyZzIwNyxpbnQgYXJnMjA4LGludCBhcmcy
MDksaW50IGFyZzIxMCxpbnQgYXJnMjExLGludCBhcmcyMTIsaW50IGFyZzIxMyxpbnQgYXJnMjE0
LGludCBhcmcyMTUsaW50IGFyZzIxNixpbnQgYXJnMjE3LGludCBhcmcyMTgsaW50IGFyZzIxOSxp
bnQgYXJnMjIwLGludCBhcmcyMjEsaW50IGFyZzIyMixpbnQgYXJnMjIzLGludCBhcmcyMjQsaW50
IGFyZzIyNSxpbnQgYXJnMjI2LGludCBhcmcyMjcsaW50IGFyZzIyOCxpbnQgYXJnMjI5LGludCBh
cmcyMzAsaW50IGFyZzIzMSxpbnQgYXJnMjMyLGludCBhcmcyMzMsaW50IGFyZzIzNCxpbnQgYXJn
MjM1LGludCBhcmcyMzYsaW50IGFyZzIzNyxpbnQgYXJnMjM4LGludCBhcmcyMzksaW50IGFyZzI0
MCxpbnQgYXJnMjQxLGludCBhcmcyNDIsaW50IGFyZzI0MyxpbnQgYXJnMjQ0LGludCBhcmcyNDUs
aW50IGFyZzI0NixpbnQgYXJnMjQ3LGludCBhcmcyNDgsaW50IGFyZzI0OSxpbnQgYXJnMjUwLGlu
dCBhcmcyNTEsaW50IGFyZzI1MixpbnQgYXJnMjUzLGludCBhcmcyNTQsaW50IGFyZzI1NSxpbnQg
YXJnMjU2LGludCBhcmcyNTcsaW50IGFyZzI1OCxpbnQgYXJnMjU5LGludCBhcmcyNjAsaW50IGFy
ZzI2MSxpbnQgYXJnMjYyLGludCBhcmcyNjMsaW50IGFyZzI2NCxpbnQgYXJnMjY1LGludCBhcmcy
NjYsaW50IGFyZzI2NyxpbnQgYXJnMjY4LGludCBhcmcyNjksaW50IGFyZzI3MCxpbnQgYXJnMjcx
LGludCBhcmcyNzIsaW50IGFyZzI3MyxpbnQgYXJnMjc0LGludCBhcmcyNzUsaW50IGFyZzI3Nixp
bnQgYXJnMjc3LGludCBhcmcyNzgsaW50IGFyZzI3OSxpbnQgYXJnMjgwLGludCBhcmcyODEsaW50
IGFyZzI4MixpbnQgYXJnMjgzLGludCBhcmcyODQsaW50IGFyZzI4NSxpbnQgYXJnMjg2LGludCBh
cmcyODcsaW50IGFyZzI4OCxpbnQgYXJnMjg5LGludCBhcmcyOTAsaW50IGFyZzI5MSxpbnQgYXJn
MjkyLGludCBhcmcyOTMsaW50IGFyZzI5NCxpbnQgYXJnMjk1LGludCBhcmcyOTYsaW50IGFyZzI5
NyxpbnQgYXJnMjk4LGludCBhcmcyOTksaW50IGFyZzMwMCxpbnQgYXJnMzAxLGludCBhcmczMDIs
aW50IGFyZzMwMyxpbnQgYXJnMzA0LGludCBhcmczMDUsaW50IGFyZzMwNixpbnQgYXJnMzA3LGlu
dCBhcmczMDgsaW50IGFyZzMwOSxpbnQgYXJnMzEwLGludCBhcmczMTEsaW50IGFyZzMxMixpbnQg
YXJnMzEzLGludCBhcmczMTQsaW50IGFyZzMxNSxpbnQgYXJnMzE2LGludCBhcmczMTcsaW50IGFy
ZzMxOCxpbnQgYXJnMzE5LGludCBhcmczMjAsaW50IGFyZzMyMSxpbnQgYXJnMzIyLGludCBhcmcz
MjMsaW50IGFyZzMyNCxpbnQgYXJnMzI1LGludCBhcmczMjYsaW50IGFyZzMyNyxpbnQgYXJnMzI4
LGludCBhcmczMjksaW50IGFyZzMzMCxpbnQgYXJnMzMxLGludCBhcmczMzIsaW50IGFyZzMzMyxp
bnQgYXJnMzM0LGludCBhcmczMzUsaW50IGFyZzMzNixpbnQgYXJnMzM3LGludCBhcmczMzgsaW50
IGFyZzMzOSxpbnQgYXJnMzQwLGludCBhcmczNDEsaW50IGFyZzM0MixpbnQgYXJnMzQzLGludCBh
cmczNDQsaW50IGFyZzM0NSxpbnQgYXJnMzQ2LGludCBhcmczNDcsaW50IGFyZzM0OCxpbnQgYXJn
MzQ5LGludCBhcmczNTAsaW50IGFyZzM1MSxpbnQgYXJnMzUyLGludCBhcmczNTMsaW50IGFyZzM1
NCxpbnQgYXJnMzU1LGludCBhcmczNTYsaW50IGFyZzM1NyxpbnQgYXJnMzU4LGludCBhcmczNTks
aW50IGFyZzM2MCxpbnQgYXJnMzYxLGludCBhcmczNjIsaW50IGFyZzM2MyxpbnQgYXJnMzY0LGlu
dCBhcmczNjUsaW50IGFyZzM2NixpbnQgYXJnMzY3LGludCBhcmczNjgsaW50IGFyZzM2OSxpbnQg
YXJnMzcwLGludCBhcmczNzEsaW50IGFyZzM3MixpbnQgYXJnMzczLGludCBhcmczNzQsaW50IGFy
ZzM3NSxpbnQgYXJnMzc2LGludCBhcmczNzcsaW50IGFyZzM3OCxpbnQgYXJnMzc5LGludCBhcmcz
ODAsaW50IGFyZzM4MSxpbnQgYXJnMzgyLGludCBhcmczODMsaW50IGFyZzM4NCxpbnQgYXJnMzg1
LGludCBhcmczODYsaW50IGFyZzM4NyxpbnQgYXJnMzg4LGludCBhcmczODksaW50IGFyZzM5MCxp
bnQgYXJnMzkxLGludCBhcmczOTIsaW50IGFyZzM5MyxpbnQgYXJnMzk0LGludCBhcmczOTUsaW50
IGFyZzM5NixpbnQgYXJnMzk3LGludCBhcmczOTgsaW50IGFyZzM5OSxpbnQgYXJnNDAwLGludCBh
cmc0MDEsaW50IGFyZzQwMixpbnQgYXJnNDAzLGludCBhcmc0MDQsaW50IGFyZzQwNSxpbnQgYXJn
NDA2LGludCBhcmc0MDcsaW50IGFyZzQwOCxpbnQgYXJnNDA5LGludCBhcmc0MTAsaW50IGFyZzQx
MSxpbnQgYXJnNDEyLGludCBhcmc0MTMsaW50IGFyZzQxNCxpbnQgYXJnNDE1LGludCBhcmc0MTYs
aW50IGFyZzQxNyxpbnQgYXJnNDE4LGludCBhcmc0MTksaW50IGFyZzQyMCxpbnQgYXJnNDIxLGlu
dCBhcmc0MjIsaW50IGFyZzQyMyxpbnQgYXJnNDI0LGludCBhcmc0MjUsaW50IGFyZzQyNixpbnQg
YXJnNDI3LGludCBhcmc0MjgsaW50IGFyZzQyOSxpbnQgYXJnNDMwLGludCBhcmc0MzEsaW50IGFy
ZzQzMixpbnQgYXJnNDMzLGludCBhcmc0MzQsaW50IGFyZzQzNSxpbnQgYXJnNDM2LGludCBhcmc0
MzcsaW50IGFyZzQzOCxpbnQgYXJnNDM5LGludCBhcmc0NDAsaW50IGFyZzQ0MSxpbnQgYXJnNDQy
LGludCBhcmc0NDMsaW50IGFyZzQ0NCxpbnQgYXJnNDQ1LGludCBhcmc0NDYsaW50IGFyZzQ0Nyxp
bnQgYXJnNDQ4LGludCBhcmc0NDksaW50IGFyZzQ1MCxpbnQgYXJnNDUxLGludCBhcmc0NTIsaW50
IGFyZzQ1MyxpbnQgYXJnNDU0LGludCBhcmc0NTUsaW50IGFyZzQ1NixpbnQgYXJnNDU3LGludCBh
cmc0NTgsaW50IGFyZzQ1OSxpbnQgYXJnNDYwLGludCBhcmc0NjEsaW50IGFyZzQ2MixpbnQgYXJn
NDYzLGludCBhcmc0NjQsaW50IGFyZzQ2NSxpbnQgYXJnNDY2LGludCBhcmc0NjcsaW50IGFyZzQ2
OCxpbnQgYXJnNDY5LGludCBhcmc0NzAsaW50IGFyZzQ3MSxpbnQgYXJnNDcyLGludCBhcmc0NzMs
aW50IGFyZzQ3NCxpbnQgYXJnNDc1LGludCBhcmc0NzYsaW50IGFyZzQ3NyxpbnQgYXJnNDc4LGlu
dCBhcmc0NzksaW50IGFyZzQ4MCxpbnQgYXJnNDgxLGludCBhcmc0ODIsaW50IGFyZzQ4MyxpbnQg
YXJnNDg0LGludCBhcmc0ODUsaW50IGFyZzQ4NixpbnQgYXJnNDg3LGludCBhcmc0ODgsaW50IGFy
ZzQ4OSxpbnQgYXJnNDkwLGludCBhcmc0OTEsaW50IGFyZzQ5MixpbnQgYXJnNDkzLGludCBhcmc0
OTQsaW50IGFyZzQ5NSxpbnQgYXJnNDk2LGludCBhcmc0OTcsaW50IGFyZzQ5OCxpbnQgYXJnNDk5
LGludCBhcmc1MDAsaW50IGFyZzUwMSxpbnQgYXJnNTAyLGludCBhcmc1MDMsaW50IGFyZzUwNCxp
bnQgYXJnNTA1LGludCBhcmc1MDYsaW50IGFyZzUwNyxpbnQgYXJnNTA4LGludCBhcmc1MDksaW50
IGFyZzUxMCxpbnQgYXJnNTExLGludCBhcmc1MTIsaW50IGFyZzUxMyxpbnQgYXJnNTE0LGludCBh
cmc1MTUsaW50IGFyZzUxNixpbnQgYXJnNTE3LGludCBhcmc1MTgsaW50IGFyZzUxOSxpbnQgYXJn
NTIwLGludCBhcmc1MjEsaW50IGFyZzUyMixpbnQgYXJnNTIzLGludCBhcmc1MjQsaW50IGFyZzUy
NSxpbnQgYXJnNTI2LGludCBhcmc1MjcsaW50IGFyZzUyOCxpbnQgYXJnNTI5LGludCBhcmc1MzAs
aW50IGFyZzUzMSxpbnQgYXJnNTMyLGludCBhcmc1MzMsaW50IGFyZzUzNCxpbnQgYXJnNTM1LGlu
dCBhcmc1MzYsaW50IGFyZzUzNyxpbnQgYXJnNTM4LGludCBhcmc1MzksaW50IGFyZzU0MCxpbnQg
YXJnNTQxLGludCBhcmc1NDIsaW50IGFyZzU0MyxpbnQgYXJnNTQ0LGludCBhcmc1NDUsaW50IGFy
ZzU0NixpbnQgYXJnNTQ3LGludCBhcmc1NDgsaW50IGFyZzU0OSxpbnQgYXJnNTUwLGludCBhcmc1
NTEsaW50IGFyZzU1MixpbnQgYXJnNTUzLGludCBhcmc1NTQsaW50IGFyZzU1NSxpbnQgYXJnNTU2
LGludCBhcmc1NTcsaW50IGFyZzU1OCxpbnQgYXJnNTU5LGludCBhcmc1NjAsaW50IGFyZzU2MSxp
bnQgYXJnNTYyLGludCBhcmc1NjMsaW50IGFyZzU2NCxpbnQgYXJnNTY1LGludCBhcmc1NjYsaW50
IGFyZzU2NyxpbnQgYXJnNTY4LGludCBhcmc1NjksaW50IGFyZzU3MCxpbnQgYXJnNTcxLGludCBh
cmc1NzIsaW50IGFyZzU3MyxpbnQgYXJnNTc0LGludCBhcmc1NzUsaW50IGFyZzU3NixpbnQgYXJn
NTc3LGludCBhcmc1NzgsaW50IGFyZzU3OSxpbnQgYXJnNTgwLGludCBhcmc1ODEsaW50IGFyZzU4
MixpbnQgYXJnNTgzLGludCBhcmc1ODQsaW50IGFyZzU4NSxpbnQgYXJnNTg2LGludCBhcmc1ODcs
aW50IGFyZzU4OCxpbnQgYXJnNTg5LGludCBhcmc1OTAsaW50IGFyZzU5MSxpbnQgYXJnNTkyLGlu
dCBhcmc1OTMsaW50IGFyZzU5NCxpbnQgYXJnNTk1LGludCBhcmc1OTYsaW50IGFyZzU5NyxpbnQg
YXJnNTk4LGludCBhcmc1OTksaW50IGFyZzYwMCxpbnQgYXJnNjAxLGludCBhcmc2MDIsaW50IGFy
ZzYwMyxpbnQgYXJnNjA0LGludCBhcmc2MDUsaW50IGFyZzYwNixpbnQgYXJnNjA3LGludCBhcmc2
MDgsaW50IGFyZzYwOSxpbnQgYXJnNjEwLGludCBhcmc2MTEsaW50IGFyZzYxMixpbnQgYXJnNjEz
LGludCBhcmc2MTQsaW50IGFyZzYxNSxpbnQgYXJnNjE2LGludCBhcmc2MTcsaW50IGFyZzYxOCxp
bnQgYXJnNjE5LGludCBhcmc2MjAsaW50IGFyZzYyMSxpbnQgYXJnNjIyLGludCBhcmc2MjMsaW50
IGFyZzYyNCxpbnQgYXJnNjI1LGludCBhcmc2MjYsaW50IGFyZzYyNyxpbnQgYXJnNjI4LGludCBh
cmc2MjksaW50IGFyZzYzMCxpbnQgYXJnNjMxLGludCBhcmc2MzIsaW50IGFyZzYzMyxpbnQgYXJn
NjM0LGludCBhcmc2MzUsaW50IGFyZzYzNixpbnQgYXJnNjM3LGludCBhcmc2MzgsaW50IGFyZzYz
OSxpbnQgYXJnNjQwLGludCBhcmc2NDEsaW50IGFyZzY0MixpbnQgYXJnNjQzLGludCBhcmc2NDQs
aW50IGFyZzY0NSxpbnQgYXJnNjQ2LGludCBhcmc2NDcsaW50IGFyZzY0OCxpbnQgYXJnNjQ5LGlu
dCBhcmc2NTAsaW50IGFyZzY1MSxpbnQgYXJnNjUyLGludCBhcmc2NTMsaW50IGFyZzY1NCxpbnQg
YXJnNjU1LGludCBhcmc2NTYsaW50IGFyZzY1NyxpbnQgYXJnNjU4LGludCBhcmc2NTksaW50IGFy
ZzY2MCxpbnQgYXJnNjYxLGludCBhcmc2NjIsaW50IGFyZzY2MyxpbnQgYXJnNjY0LGludCBhcmc2
NjUsaW50IGFyZzY2NixpbnQgYXJnNjY3LGludCBhcmc2NjgsaW50IGFyZzY2OSxpbnQgYXJnNjcw
LGludCBhcmc2NzEsaW50IGFyZzY3MixpbnQgYXJnNjczLGludCBhcmc2NzQsaW50IGFyZzY3NSxp
bnQgYXJnNjc2LGludCBhcmc2NzcsaW50IGFyZzY3OCxpbnQgYXJnNjc5LGludCBhcmc2ODAsaW50
IGFyZzY4MSxpbnQgYXJnNjgyLGludCBhcmc2ODMsaW50IGFyZzY4NCxpbnQgYXJnNjg1LGludCBh
cmc2ODYsaW50IGFyZzY4NyxpbnQgYXJnNjg4LGludCBhcmc2ODksaW50IGFyZzY5MCxpbnQgYXJn
NjkxLGludCBhcmc2OTIsaW50IGFyZzY5MyxpbnQgYXJnNjk0LGludCBhcmc2OTUsaW50IGFyZzY5
NixpbnQgYXJnNjk3LGludCBhcmc2OTgsaW50IGFyZzY5OSxpbnQgYXJnNzAwLGludCBhcmc3MDEs
aW50IGFyZzcwMixpbnQgYXJnNzAzLGludCBhcmc3MDQsaW50IGFyZzcwNSxpbnQgYXJnNzA2LGlu
dCBhcmc3MDcsaW50IGFyZzcwOCxpbnQgYXJnNzA5LGludCBhcmc3MTAsaW50IGFyZzcxMSxpbnQg
YXJnNzEyLGludCBhcmc3MTMsaW50IGFyZzcxNCxpbnQgYXJnNzE1LGludCBhcmc3MTYsaW50IGFy
ZzcxNyxpbnQgYXJnNzE4LGludCBhcmc3MTksaW50IGFyZzcyMCxpbnQgYXJnNzIxLGludCBhcmc3
MjIsaW50IGFyZzcyMyxpbnQgYXJnNzI0LGludCBhcmc3MjUsaW50IGFyZzcyNixpbnQgYXJnNzI3
LGludCBhcmc3MjgsaW50IGFyZzcyOSxpbnQgYXJnNzMwLGludCBhcmc3MzEsaW50IGFyZzczMixp
bnQgYXJnNzMzLGludCBhcmc3MzQsaW50IGFyZzczNSxpbnQgYXJnNzM2LGludCBhcmc3MzcsaW50
IGFyZzczOCxpbnQgYXJnNzM5LGludCBhcmc3NDAsaW50IGFyZzc0MSxpbnQgYXJnNzQyLGludCBh
cmc3NDMsaW50IGFyZzc0NCxpbnQgYXJnNzQ1LGludCBhcmc3NDYsaW50IGFyZzc0NyxpbnQgYXJn
NzQ4LGludCBhcmc3NDksaW50IGFyZzc1MCxpbnQgYXJnNzUxLGludCBhcmc3NTIsaW50IGFyZzc1
MyxpbnQgYXJnNzU0LGludCBhcmc3NTUsaW50IGFyZzc1NixpbnQgYXJnNzU3LGludCBhcmc3NTgs
aW50IGFyZzc1OSxpbnQgYXJnNzYwLGludCBhcmc3NjEsaW50IGFyZzc2MixpbnQgYXJnNzYzLGlu
dCBhcmc3NjQsaW50IGFyZzc2NSxpbnQgYXJnNzY2LGludCBhcmc3NjcsaW50IGFyZzc2OCxpbnQg
YXJnNzY5LGludCBhcmc3NzAsaW50IGFyZzc3MSxpbnQgYXJnNzcyLGludCBhcmc3NzMsaW50IGFy
Zzc3NCxpbnQgYXJnNzc1LGludCBhcmc3NzYsaW50IGFyZzc3NyxpbnQgYXJnNzc4LGludCBhcmc3
NzksaW50IGFyZzc4MCxpbnQgYXJnNzgxLGludCBhcmc3ODIsaW50IGFyZzc4MyxpbnQgYXJnNzg0
LGludCBhcmc3ODUsaW50IGFyZzc4NixpbnQgYXJnNzg3LGludCBhcmc3ODgsaW50IGFyZzc4OSxp
bnQgYXJnNzkwLGludCBhcmc3OTEsaW50IGFyZzc5MixpbnQgYXJnNzkzLGludCBhcmc3OTQsaW50
IGFyZzc5NSxpbnQgYXJnNzk2LGludCBhcmc3OTcsaW50IGFyZzc5OCxpbnQgYXJnNzk5LGludCBh
cmc4MDAsaW50IGFyZzgwMSxpbnQgYXJnODAyLGludCBhcmc4MDMsaW50IGFyZzgwNCxpbnQgYXJn
ODA1LGludCBhcmc4MDYsaW50IGFyZzgwNyxpbnQgYXJnODA4LGludCBhcmc4MDksaW50IGFyZzgx
MCxpbnQgYXJnODExLGludCBhcmc4MTIsaW50IGFyZzgxMyxpbnQgYXJnODE0LGludCBhcmc4MTUs
aW50IGFyZzgxNixpbnQgYXJnODE3LGludCBhcmc4MTgsaW50IGFyZzgxOSxpbnQgYXJnODIwLGlu
dCBhcmc4MjEsaW50IGFyZzgyMixpbnQgYXJnODIzLGludCBhcmc4MjQsaW50IGFyZzgyNSxpbnQg
YXJnODI2LGludCBhcmc4MjcsaW50IGFyZzgyOCxpbnQgYXJnODI5LGludCBhcmc4MzAsaW50IGFy
ZzgzMSxpbnQgYXJnODMyLGludCBhcmc4MzMsaW50IGFyZzgzNCxpbnQgYXJnODM1LGludCBhcmc4
MzYsaW50IGFyZzgzNyxpbnQgYXJnODM4LGludCBhcmc4MzksaW50IGFyZzg0MCxpbnQgYXJnODQx
LGludCBhcmc4NDIsaW50IGFyZzg0MyxpbnQgYXJnODQ0LGludCBhcmc4NDUsaW50IGFyZzg0Nixp
bnQgYXJnODQ3LGludCBhcmc4NDgsaW50IGFyZzg0OSxpbnQgYXJnODUwLGludCBhcmc4NTEsaW50
IGFyZzg1MixpbnQgYXJnODUzLGludCBhcmc4NTQsaW50IGFyZzg1NSxpbnQgYXJnODU2LGludCBh
cmc4NTcsaW50IGFyZzg1OCxpbnQgYXJnODU5LGludCBhcmc4NjAsaW50IGFyZzg2MSxpbnQgYXJn
ODYyLGludCBhcmc4NjMsaW50IGFyZzg2NCxpbnQgYXJnODY1LGludCBhcmc4NjYsaW50IGFyZzg2
NyxpbnQgYXJnODY4LGludCBhcmc4NjksaW50IGFyZzg3MCxpbnQgYXJnODcxLGludCBhcmc4NzIs
aW50IGFyZzg3MyxpbnQgYXJnODc0LGludCBhcmc4NzUsaW50IGFyZzg3NixpbnQgYXJnODc3LGlu
dCBhcmc4NzgsaW50IGFyZzg3OSxpbnQgYXJnODgwLGludCBhcmc4ODEsaW50IGFyZzg4MixpbnQg
YXJnODgzLGludCBhcmc4ODQsaW50IGFyZzg4NSxpbnQgYXJnODg2LGludCBhcmc4ODcsaW50IGFy
Zzg4OCxpbnQgYXJnODg5LGludCBhcmc4OTAsaW50IGFyZzg5MSxpbnQgYXJnODkyLGludCBhcmc4
OTMsaW50IGFyZzg5NCxpbnQgYXJnODk1LGludCBhcmc4OTYsaW50IGFyZzg5NyxpbnQgYXJnODk4
LGludCBhcmc4OTksaW50IGFyZzkwMCxpbnQgYXJnOTAxLGludCBhcmc5MDIsaW50IGFyZzkwMyxp
bnQgYXJnOTA0LGludCBhcmc5MDUsaW50IGFyZzkwNixpbnQgYXJnOTA3LGludCBhcmc5MDgsaW50
IGFyZzkwOSxpbnQgYXJnOTEwLGludCBhcmc5MTEsaW50IGFyZzkxMixpbnQgYXJnOTEzLGludCBh
cmc5MTQsaW50IGFyZzkxNSxpbnQgYXJnOTE2LGludCBhcmc5MTcsaW50IGFyZzkxOCxpbnQgYXJn
OTE5LGludCBhcmc5MjAsaW50IGFyZzkyMSxpbnQgYXJnOTIyLGludCBhcmc5MjMsaW50IGFyZzky
NCxpbnQgYXJnOTI1LGludCBhcmc5MjYsaW50IGFyZzkyNyxpbnQgYXJnOTI4LGludCBhcmc5Mjks
aW50IGFyZzkzMCxpbnQgYXJnOTMxLGludCBhcmc5MzIsaW50IGFyZzkzMyxpbnQgYXJnOTM0LGlu
dCBhcmc5MzUsaW50IGFyZzkzNixpbnQgYXJnOTM3LGludCBhcmc5MzgsaW50IGFyZzkzOSxpbnQg
YXJnOTQwLGludCBhcmc5NDEsaW50IGFyZzk0MixpbnQgYXJnOTQzLGludCBhcmc5NDQsaW50IGFy
Zzk0NSxpbnQgYXJnOTQ2LGludCBhcmc5NDcsaW50IGFyZzk0OCxpbnQgYXJnOTQ5LGludCBhcmc5
NTAsaW50IGFyZzk1MSxpbnQgYXJnOTUyLGludCBhcmc5NTMsaW50IGFyZzk1NCxpbnQgYXJnOTU1
LGludCBhcmc5NTYsaW50IGFyZzk1NyxpbnQgYXJnOTU4LGludCBhcmc5NTksaW50IGFyZzk2MCxp
bnQgYXJnOTYxLGludCBhcmc5NjIsaW50IGFyZzk2MyxpbnQgYXJnOTY0LGludCBhcmc5NjUsaW50
IGFyZzk2NixpbnQgYXJnOTY3LGludCBhcmc5NjgsaW50IGFyZzk2OSxpbnQgYXJnOTcwLGludCBh
cmc5NzEsaW50IGFyZzk3MixpbnQgYXJnOTczLGludCBhcmc5NzQsaW50IGFyZzk3NSxpbnQgYXJn
OTc2LGludCBhcmc5NzcsaW50IGFyZzk3OCxpbnQgYXJnOTc5LGludCBhcmc5ODAsaW50IGFyZzk4
MSxpbnQgYXJnOTgyLGludCBhcmc5ODMsaW50IGFyZzk4NCxpbnQgYXJnOTg1LGludCBhcmc5ODYs
aW50IGFyZzk4NyxpbnQgYXJnOTg4LGludCBhcmc5ODksaW50IGFyZzk5MCxpbnQgYXJnOTkxLGlu
dCBhcmc5OTIsaW50IGFyZzk5MyxpbnQgYXJnOTk0LGludCBhcmc5OTUsaW50IGFyZzk5NixpbnQg
YXJnOTk3LGludCBhcmc5OTgsaW50IGFyZzk5OSxpbnQgYXJnMTAwMCxpbnQgYXJnMTAwMSxpbnQg
YXJnMTAwMixpbnQgYXJnMTAwMyxpbnQgYXJnMTAwNCxpbnQgYXJnMTAwNSxpbnQgYXJnMTAwNixp
bnQgYXJnMTAwNyxpbnQgYXJnMTAwOCxpbnQgYXJnMTAwOSxpbnQgYXJnMTAxMCxpbnQgYXJnMTAx
MSxpbnQgYXJnMTAxMixpbnQgYXJnMTAxMyxpbnQgYXJnMTAxNCxpbnQgYXJnMTAxNSxpbnQgYXJn
MTAxNixpbnQgYXJnMTAxNyxpbnQgYXJnMTAxOCxpbnQgYXJnMTAxOSxpbnQgYXJnMTAyMCxpbnQg
YXJnMTAyMSxpbnQgYXJnMTAyMixpbnQgYXJnMTAyMyxpbnQgYXJnMTAyNCxpbnQgYXJnMTAyNSxp
bnQgYXJnMTAyNixpbnQgYXJnMTAyNyxpbnQgYXJnMTAyOCxpbnQgYXJnMTAyOSxpbnQgYXJnMTAz
MCxpbnQgYXJnMTAzMSxpbnQgYXJnMTAzMixpbnQgYXJnMTAzMyxpbnQgYXJnMTAzNCxpbnQgYXJn
MTAzNSxpbnQgYXJnMTAzNixpbnQgYXJnMTAzNyxpbnQgYXJnMTAzOCxpbnQgYXJnMTAzOSxpbnQg
YXJnMTA0MCxpbnQgYXJnMTA0MSxpbnQgYXJnMTA0MixpbnQgYXJnMTA0MyxpbnQgYXJnMTA0NCxp
bnQgYXJnMTA0NSxpbnQgYXJnMTA0NixpbnQgYXJnMTA0NyxpbnQgYXJnMTA0OCxpbnQgYXJnMTA0
OSxpbnQgYXJnMTA1MCxpbnQgYXJnMTA1MSxpbnQgYXJnMTA1MixpbnQgYXJnMTA1MyxpbnQgYXJn
MTA1NCxpbnQgYXJnMTA1NSxpbnQgYXJnMTA1NixpbnQgYXJnMTA1NyxpbnQgYXJnMTA1OCxpbnQg
YXJnMTA1OSxpbnQgYXJnMTA2MCxpbnQgYXJnMTA2MSxpbnQgYXJnMTA2MixpbnQgYXJnMTA2Myxp
bnQgYXJnMTA2NCxpbnQgYXJnMTA2NSxpbnQgYXJnMTA2NixpbnQgYXJnMTA2NyxpbnQgYXJnMTA2
OCxpbnQgYXJnMTA2OSxpbnQgYXJnMTA3MCxpbnQgYXJnMTA3MSxpbnQgYXJnMTA3MixpbnQgYXJn
MTA3MyxpbnQgYXJnMTA3NCxpbnQgYXJnMTA3NSxpbnQgYXJnMTA3NixpbnQgYXJnMTA3NyxpbnQg
YXJnMTA3OCxpbnQgYXJnMTA3OSxpbnQgYXJnMTA4MCxpbnQgYXJnMTA4MSxpbnQgYXJnMTA4Mixp
bnQgYXJnMTA4MyxpbnQgYXJnMTA4NCxpbnQgYXJnMTA4NSxpbnQgYXJnMTA4NixpbnQgYXJnMTA4
NyxpbnQgYXJnMTA4OCxpbnQgYXJnMTA4OSxpbnQgYXJnMTA5MCxpbnQgYXJnMTA5MSxpbnQgYXJn
MTA5MixpbnQgYXJnMTA5MyxpbnQgYXJnMTA5NCxpbnQgYXJnMTA5NSxpbnQgYXJnMTA5NixpbnQg
YXJnMTA5NyxpbnQgYXJnMTA5OCxpbnQgYXJnMTA5OSxpbnQgYXJnMTEwMCxpbnQgYXJnMTEwMSxp
bnQgYXJnMTEwMixpbnQgYXJnMTEwMyxpbnQgYXJnMTEwNCxpbnQgYXJnMTEwNSxpbnQgYXJnMTEw
NixpbnQgYXJnMTEwNyxpbnQgYXJnMTEwOCxpbnQgYXJnMTEwOSxpbnQgYXJnMTExMCxpbnQgYXJn
MTExMSxpbnQgYXJnMTExMixpbnQgYXJnMTExMyxpbnQgYXJnMTExNCxpbnQgYXJnMTExNSxpbnQg
YXJnMTExNixpbnQgYXJnMTExNyxpbnQgYXJnMTExOCxpbnQgYXJnMTExOSxpbnQgYXJnMTEyMCxp
bnQgYXJnMTEyMSxpbnQgYXJnMTEyMixpbnQgYXJnMTEyMyxpbnQgYXJnMTEyNCxpbnQgYXJnMTEy
NSxpbnQgYXJnMTEyNixpbnQgYXJnMTEyNyxpbnQgYXJnMTEyOCxpbnQgYXJnMTEyOSxpbnQgYXJn
MTEzMCxpbnQgYXJnMTEzMSxpbnQgYXJnMTEzMixpbnQgYXJnMTEzMyxpbnQgYXJnMTEzNCxpbnQg
YXJnMTEzNSxpbnQgYXJnMTEzNixpbnQgYXJnMTEzNyxpbnQgYXJnMTEzOCxpbnQgYXJnMTEzOSxp
bnQgYXJnMTE0MCxpbnQgYXJnMTE0MSxpbnQgYXJnMTE0MixpbnQgYXJnMTE0MyxpbnQgYXJnMTE0
NCxpbnQgYXJnMTE0NSxpbnQgYXJnMTE0NixpbnQgYXJnMTE0NyxpbnQgYXJnMTE0OCxpbnQgYXJn
MTE0OSxpbnQgYXJnMTE1MCxpbnQgYXJnMTE1MSxpbnQgYXJnMTE1MixpbnQgYXJnMTE1MyxpbnQg
YXJnMTE1NCxpbnQgYXJnMTE1NSxpbnQgYXJnMTE1NixpbnQgYXJnMTE1NyxpbnQgYXJnMTE1OCxp
bnQgYXJnMTE1OSxpbnQgYXJnMTE2MCxpbnQgYXJnMTE2MSxpbnQgYXJnMTE2MixpbnQgYXJnMTE2
MyxpbnQgYXJnMTE2NCxpbnQgYXJnMTE2NSxpbnQgYXJnMTE2NixpbnQgYXJnMTE2NyxpbnQgYXJn
MTE2OCxpbnQgYXJnMTE2OSxpbnQgYXJnMTE3MCxpbnQgYXJnMTE3MSxpbnQgYXJnMTE3MixpbnQg
YXJnMTE3MyxpbnQgYXJnMTE3NCxpbnQgYXJnMTE3NSxpbnQgYXJnMTE3NixpbnQgYXJnMTE3Nyxp
bnQgYXJnMTE3OCxpbnQgYXJnMTE3OSxpbnQgYXJnMTE4MCxpbnQgYXJnMTE4MSxpbnQgYXJnMTE4
MixpbnQgYXJnMTE4MyxpbnQgYXJnMTE4NCxpbnQgYXJnMTE4NSxpbnQgYXJnMTE4NixpbnQgYXJn
MTE4NyxpbnQgYXJnMTE4OCxpbnQgYXJnMTE4OSxpbnQgYXJnMTE5MCxpbnQgYXJnMTE5MSxpbnQg
YXJnMTE5MixpbnQgYXJnMTE5MyxpbnQgYXJnMTE5NCxpbnQgYXJnMTE5NSxpbnQgYXJnMTE5Nixp
bnQgYXJnMTE5NyxpbnQgYXJnMTE5OCxpbnQgYXJnMTE5OSxpbnQgYXJnMTIwMCxpbnQgYXJnMTIw
MSxpbnQgYXJnMTIwMixpbnQgYXJnMTIwMyxpbnQgYXJnMTIwNCxpbnQgYXJnMTIwNSxpbnQgYXJn
MTIwNixpbnQgYXJnMTIwNyxpbnQgYXJnMTIwOCxpbnQgYXJnMTIwOSxpbnQgYXJnMTIxMCxpbnQg
YXJnMTIxMSxpbnQgYXJnMTIxMixpbnQgYXJnMTIxMyxpbnQgYXJnMTIxNCxpbnQgYXJnMTIxNSxp
bnQgYXJnMTIxNixpbnQgYXJnMTIxNyxpbnQgYXJnMTIxOCxpbnQgYXJnMTIxOSxpbnQgYXJnMTIy
MCxpbnQgYXJnMTIyMSxpbnQgYXJnMTIyMixpbnQgYXJnMTIyMyxpbnQgYXJnMTIyNCxpbnQgYXJn
MTIyNSxpbnQgYXJnMTIyNixpbnQgYXJnMTIyNyxpbnQgYXJnMTIyOCxpbnQgYXJnMTIyOSxpbnQg
YXJnMTIzMCxpbnQgYXJnMTIzMSxpbnQgYXJnMTIzMixpbnQgYXJnMTIzMyxpbnQgYXJnMTIzNCxp
bnQgYXJnMTIzNSxpbnQgYXJnMTIzNixpbnQgYXJnMTIzNyxpbnQgYXJnMTIzOCxpbnQgYXJnMTIz
OSxpbnQgYXJnMTI0MCxpbnQgYXJnMTI0MSxpbnQgYXJnMTI0MixpbnQgYXJnMTI0MyxpbnQgYXJn
MTI0NCxpbnQgYXJnMTI0NSxpbnQgYXJnMTI0NixpbnQgYXJnMTI0NyxpbnQgYXJnMTI0OCxpbnQg
YXJnMTI0OSxpbnQgYXJnMTI1MCxpbnQgYXJnMTI1MSxpbnQgYXJnMTI1MixpbnQgYXJnMTI1Myxp
bnQgYXJnMTI1NCxpbnQgYXJnMTI1NSxpbnQgYXJnMTI1NixpbnQgYXJnMTI1NyxpbnQgYXJnMTI1
OCxpbnQgYXJnMTI1OSxpbnQgYXJnMTI2MCxpbnQgYXJnMTI2MSxpbnQgYXJnMTI2MixpbnQgYXJn
MTI2MyxpbnQgYXJnMTI2NCxpbnQgYXJnMTI2NSxpbnQgYXJnMTI2NixpbnQgYXJnMTI2NyxpbnQg
YXJnMTI2OCxpbnQgYXJnMTI2OSxpbnQgYXJnMTI3MCxpbnQgYXJnMTI3MSxpbnQgYXJnMTI3Mixp
bnQgYXJnMTI3MyxpbnQgYXJnMTI3NCxpbnQgYXJnMTI3NSxpbnQgYXJnMTI3NixpbnQgYXJnMTI3
NyxpbnQgYXJnMTI3OCxpbnQgYXJnMTI3OSxpbnQgYXJnMTI4MCxpbnQgYXJnMTI4MSxpbnQgYXJn
MTI4MixpbnQgYXJnMTI4MyxpbnQgYXJnMTI4NCxpbnQgYXJnMTI4NSxpbnQgYXJnMTI4NixpbnQg
YXJnMTI4NyxpbnQgYXJnMTI4OCxpbnQgYXJnMTI4OSxpbnQgYXJnMTI5MCxpbnQgYXJnMTI5MSxp
bnQgYXJnMTI5MixpbnQgYXJnMTI5MyxpbnQgYXJnMTI5NCxpbnQgYXJnMTI5NSxpbnQgYXJnMTI5
NixpbnQgYXJnMTI5NyxpbnQgYXJnMTI5OCxpbnQgYXJnMTI5OSxpbnQgYXJnMTMwMCxpbnQgYXJn
MTMwMSxpbnQgYXJnMTMwMixpbnQgYXJnMTMwMyxpbnQgYXJnMTMwNCxpbnQgYXJnMTMwNSxpbnQg
YXJnMTMwNixpbnQgYXJnMTMwNyxpbnQgYXJnMTMwOCxpbnQgYXJnMTMwOSxpbnQgYXJnMTMxMCxp
bnQgYXJnMTMxMSxpbnQgYXJnMTMxMixpbnQgYXJnMTMxMyxpbnQgYXJnMTMxNCxpbnQgYXJnMTMx
NSxpbnQgYXJnMTMxNixpbnQgYXJnMTMxNyxpbnQgYXJnMTMxOCxpbnQgYXJnMTMxOSxpbnQgYXJn
MTMyMCxpbnQgYXJnMTMyMSxpbnQgYXJnMTMyMixpbnQgYXJnMTMyMyxpbnQgYXJnMTMyNCxpbnQg
YXJnMTMyNSxpbnQgYXJnMTMyNixpbnQgYXJnMTMyNyxpbnQgYXJnMTMyOCxpbnQgYXJnMTMyOSxp
bnQgYXJnMTMzMCxpbnQgYXJnMTMzMSxpbnQgYXJnMTMzMixpbnQgYXJnMTMzMyxpbnQgYXJnMTMz
NCxpbnQgYXJnMTMzNSxpbnQgYXJnMTMzNixpbnQgYXJnMTMzNyxpbnQgYXJnMTMzOCxpbnQgYXJn
MTMzOSxpbnQgYXJnMTM0MCxpbnQgYXJnMTM0MSxpbnQgYXJnMTM0MixpbnQgYXJnMTM0MyxpbnQg
YXJnMTM0NCxpbnQgYXJnMTM0NSxpbnQgYXJnMTM0NixpbnQgYXJnMTM0NyxpbnQgYXJnMTM0OCxp
bnQgYXJnMTM0OSxpbnQgYXJnMTM1MCxpbnQgYXJnMTM1MSxpbnQgYXJnMTM1MixpbnQgYXJnMTM1
MyxpbnQgYXJnMTM1NCxpbnQgYXJnMTM1NSxpbnQgYXJnMTM1NixpbnQgYXJnMTM1NyxpbnQgYXJn
MTM1OCxpbnQgYXJnMTM1OSxpbnQgYXJnMTM2MCxpbnQgYXJnMTM2MSxpbnQgYXJnMTM2MixpbnQg
YXJnMTM2MyxpbnQgYXJnMTM2NCxpbnQgYXJnMTM2NSxpbnQgYXJnMTM2NixpbnQgYXJnMTM2Nyxp
bnQgYXJnMTM2OCxpbnQgYXJnMTM2OSxpbnQgYXJnMTM3MCxpbnQgYXJnMTM3MSxpbnQgYXJnMTM3
MixpbnQgYXJnMTM3MyxpbnQgYXJnMTM3NCxpbnQgYXJnMTM3NSxpbnQgYXJnMTM3NixpbnQgYXJn
MTM3NyxpbnQgYXJnMTM3OCxpbnQgYXJnMTM3OSxpbnQgYXJnMTM4MCxpbnQgYXJnMTM4MSxpbnQg
YXJnMTM4MixpbnQgYXJnMTM4MyxpbnQgYXJnMTM4NCxpbnQgYXJnMTM4NSxpbnQgYXJnMTM4Nixp
bnQgYXJnMTM4NyxpbnQgYXJnMTM4OCxpbnQgYXJnMTM4OSxpbnQgYXJnMTM5MCxpbnQgYXJnMTM5
MSxpbnQgYXJnMTM5MixpbnQgYXJnMTM5MyxpbnQgYXJnMTM5NCxpbnQgYXJnMTM5NSxpbnQgYXJn
MTM5NixpbnQgYXJnMTM5NyxpbnQgYXJnMTM5OCxpbnQgYXJnMTM5OSxpbnQgYXJnMTQwMCxpbnQg
YXJnMTQwMSxpbnQgYXJnMTQwMixpbnQgYXJnMTQwMyxpbnQgYXJnMTQwNCxpbnQgYXJnMTQwNSxp
bnQgYXJnMTQwNixpbnQgYXJnMTQwNyxpbnQgYXJnMTQwOCxpbnQgYXJnMTQwOSxpbnQgYXJnMTQx
MCxpbnQgYXJnMTQxMSxpbnQgYXJnMTQxMixpbnQgYXJnMTQxMyxpbnQgYXJnMTQxNCxpbnQgYXJn
MTQxNSxpbnQgYXJnMTQxNixpbnQgYXJnMTQxNyxpbnQgYXJnMTQxOCxpbnQgYXJnMTQxOSxpbnQg
YXJnMTQyMCxpbnQgYXJnMTQyMSxpbnQgYXJnMTQyMixpbnQgYXJnMTQyMyxpbnQgYXJnMTQyNCxp
bnQgYXJnMTQyNSxpbnQgYXJnMTQyNixpbnQgYXJnMTQyNyxpbnQgYXJnMTQyOCxpbnQgYXJnMTQy
OSxpbnQgYXJnMTQzMCxpbnQgYXJnMTQzMSxpbnQgYXJnMTQzMixpbnQgYXJnMTQzMyxpbnQgYXJn
MTQzNCxpbnQgYXJnMTQzNSxpbnQgYXJnMTQzNixpbnQgYXJnMTQzNyxpbnQgYXJnMTQzOCxpbnQg
YXJnMTQzOSxpbnQgYXJnMTQ0MCxpbnQgYXJnMTQ0MSxpbnQgYXJnMTQ0MixpbnQgYXJnMTQ0Myxp
bnQgYXJnMTQ0NCxpbnQgYXJnMTQ0NSxpbnQgYXJnMTQ0NixpbnQgYXJnMTQ0NyxpbnQgYXJnMTQ0
OCxpbnQgYXJnMTQ0OSxpbnQgYXJnMTQ1MCxpbnQgYXJnMTQ1MSxpbnQgYXJnMTQ1MixpbnQgYXJn
MTQ1MyxpbnQgYXJnMTQ1NCxpbnQgYXJnMTQ1NSxpbnQgYXJnMTQ1NixpbnQgYXJnMTQ1NyxpbnQg
YXJnMTQ1OCxpbnQgYXJnMTQ1OSxpbnQgYXJnMTQ2MCxpbnQgYXJnMTQ2MSxpbnQgYXJnMTQ2Mixp
bnQgYXJnMTQ2MyxpbnQgYXJnMTQ2NCxpbnQgYXJnMTQ2NSxpbnQgYXJnMTQ2NixpbnQgYXJnMTQ2
NyxpbnQgYXJnMTQ2OCxpbnQgYXJnMTQ2OSxpbnQgYXJnMTQ3MCxpbnQgYXJnMTQ3MSxpbnQgYXJn
MTQ3MixpbnQgYXJnMTQ3MyxpbnQgYXJnMTQ3NCxpbnQgYXJnMTQ3NSxpbnQgYXJnMTQ3NixpbnQg
YXJnMTQ3NyxpbnQgYXJnMTQ3OCxpbnQgYXJnMTQ3OSxpbnQgYXJnMTQ4MCxpbnQgYXJnMTQ4MSxp
bnQgYXJnMTQ4MixpbnQgYXJnMTQ4MyxpbnQgYXJnMTQ4NCxpbnQgYXJnMTQ4NSxpbnQgYXJnMTQ4
NixpbnQgYXJnMTQ4NyxpbnQgYXJnMTQ4OCxpbnQgYXJnMTQ4OSxpbnQgYXJnMTQ5MCxpbnQgYXJn
MTQ5MSxpbnQgYXJnMTQ5MixpbnQgYXJnMTQ5MyxpbnQgYXJnMTQ5NCxpbnQgYXJnMTQ5NSxpbnQg
YXJnMTQ5NixpbnQgYXJnMTQ5NyxpbnQgYXJnMTQ5OCxpbnQgYXJnMTQ5OSxpbnQgYXJnMTUwMCxp
bnQgYXJnMTUwMSxpbnQgYXJnMTUwMixpbnQgYXJnMTUwMyxpbnQgYXJnMTUwNCxpbnQgYXJnMTUw
NSxpbnQgYXJnMTUwNixpbnQgYXJnMTUwNyxpbnQgYXJnMTUwOCxpbnQgYXJnMTUwOSxpbnQgYXJn
MTUxMCxpbnQgYXJnMTUxMSxpbnQgYXJnMTUxMixpbnQgYXJnMTUxMyxpbnQgYXJnMTUxNCxpbnQg
YXJnMTUxNSxpbnQgYXJnMTUxNixpbnQgYXJnMTUxNyxpbnQgYXJnMTUxOCxpbnQgYXJnMTUxOSxp
bnQgYXJnMTUyMCxpbnQgYXJnMTUyMSxpbnQgYXJnMTUyMixpbnQgYXJnMTUyMyxpbnQgYXJnMTUy
NCxpbnQgYXJnMTUyNSxpbnQgYXJnMTUyNixpbnQgYXJnMTUyNyxpbnQgYXJnMTUyOCxpbnQgYXJn
MTUyOSxpbnQgYXJnMTUzMCxpbnQgYXJnMTUzMSxpbnQgYXJnMTUzMixpbnQgYXJnMTUzMyxpbnQg
YXJnMTUzNCxpbnQgYXJnMTUzNSxpbnQgYXJnMTUzNixpbnQgYXJnMTUzNyxpbnQgYXJnMTUzOCxp
bnQgYXJnMTUzOSxpbnQgYXJnMTU0MCxpbnQgYXJnMTU0MSxpbnQgYXJnMTU0MixpbnQgYXJnMTU0
MyxpbnQgYXJnMTU0NCxpbnQgYXJnMTU0NSxpbnQgYXJnMTU0NixpbnQgYXJnMTU0NyxpbnQgYXJn
MTU0OCxpbnQgYXJnMTU0OSxpbnQgYXJnMTU1MCxpbnQgYXJnMTU1MSxpbnQgYXJnMTU1MixpbnQg
YXJnMTU1MyxpbnQgYXJnMTU1NCxpbnQgYXJnMTU1NSxpbnQgYXJnMTU1NixpbnQgYXJnMTU1Nyxp
bnQgYXJnMTU1OCxpbnQgYXJnMTU1OSxpbnQgYXJnMTU2MCxpbnQgYXJnMTU2MSxpbnQgYXJnMTU2
MixpbnQgYXJnMTU2MyxpbnQgYXJnMTU2NCxpbnQgYXJnMTU2NSxpbnQgYXJnMTU2NixpbnQgYXJn
MTU2NyxpbnQgYXJnMTU2OCxpbnQgYXJnMTU2OSxpbnQgYXJnMTU3MCxpbnQgYXJnMTU3MSxpbnQg
YXJnMTU3MixpbnQgYXJnMTU3MyxpbnQgYXJnMTU3NCxpbnQgYXJnMTU3NSxpbnQgYXJnMTU3Nixp
bnQgYXJnMTU3NyxpbnQgYXJnMTU3OCxpbnQgYXJnMTU3OSxpbnQgYXJnMTU4MCxpbnQgYXJnMTU4
MSxpbnQgYXJnMTU4MixpbnQgYXJnMTU4MyxpbnQgYXJnMTU4NCxpbnQgYXJnMTU4NSxpbnQgYXJn
MTU4NixpbnQgYXJnMTU4NyxpbnQgYXJnMTU4OCxpbnQgYXJnMTU4OSxpbnQgYXJnMTU5MCxpbnQg
YXJnMTU5MSxpbnQgYXJnMTU5MixpbnQgYXJnMTU5MyxpbnQgYXJnMTU5NCxpbnQgYXJnMTU5NSxp
bnQgYXJnMTU5NixpbnQgYXJnMTU5NyxpbnQgYXJnMTU5OCxpbnQgYXJnMTU5OSxpbnQgYXJnMTYw
MCxpbnQgYXJnMTYwMSxpbnQgYXJnMTYwMixpbnQgYXJnMTYwMyxpbnQgYXJnMTYwNCxpbnQgYXJn
MTYwNSxpbnQgYXJnMTYwNixpbnQgYXJnMTYwNyxpbnQgYXJnMTYwOCxpbnQgYXJnMTYwOSxpbnQg
YXJnMTYxMCxpbnQgYXJnMTYxMSxpbnQgYXJnMTYxMixpbnQgYXJnMTYxMyxpbnQgYXJnMTYxNCxp
bnQgYXJnMTYxNSxpbnQgYXJnMTYxNixpbnQgYXJnMTYxNyxpbnQgYXJnMTYxOCxpbnQgYXJnMTYx
OSxpbnQgYXJnMTYyMCxpbnQgYXJnMTYyMSxpbnQgYXJnMTYyMixpbnQgYXJnMTYyMyxpbnQgYXJn
MTYyNCxpbnQgYXJnMTYyNSxpbnQgYXJnMTYyNixpbnQgYXJnMTYyNyxpbnQgYXJnMTYyOCxpbnQg
YXJnMTYyOSxpbnQgYXJnMTYzMCxpbnQgYXJnMTYzMSxpbnQgYXJnMTYzMixpbnQgYXJnMTYzMyxp
bnQgYXJnMTYzNCxpbnQgYXJnMTYzNSxpbnQgYXJnMTYzNixpbnQgYXJnMTYzNyxpbnQgYXJnMTYz
OCxpbnQgYXJnMTYzOSxpbnQgYXJnMTY0MCxpbnQgYXJnMTY0MSxpbnQgYXJnMTY0MixpbnQgYXJn
MTY0MyxpbnQgYXJnMTY0NCxpbnQgYXJnMTY0NSxpbnQgYXJnMTY0NixpbnQgYXJnMTY0NyxpbnQg
YXJnMTY0OCxpbnQgYXJnMTY0OSxpbnQgYXJnMTY1MCxpbnQgYXJnMTY1MSxpbnQgYXJnMTY1Mixp
bnQgYXJnMTY1MyxpbnQgYXJnMTY1NCxpbnQgYXJnMTY1NSxpbnQgYXJnMTY1NixpbnQgYXJnMTY1
NyxpbnQgYXJnMTY1OCxpbnQgYXJnMTY1OSxpbnQgYXJnMTY2MCxpbnQgYXJnMTY2MSxpbnQgYXJn
MTY2MixpbnQgYXJnMTY2MyxpbnQgYXJnMTY2NCxpbnQgYXJnMTY2NSxpbnQgYXJnMTY2NixpbnQg
YXJnMTY2NyxpbnQgYXJnMTY2OCxpbnQgYXJnMTY2OSxpbnQgYXJnMTY3MCxpbnQgYXJnMTY3MSxp
bnQgYXJnMTY3MixpbnQgYXJnMTY3MyxpbnQgYXJnMTY3NCxpbnQgYXJnMTY3NSxpbnQgYXJnMTY3
NixpbnQgYXJnMTY3NyxpbnQgYXJnMTY3OCxpbnQgYXJnMTY3OSxpbnQgYXJnMTY4MCxpbnQgYXJn
MTY4MSxpbnQgYXJnMTY4MixpbnQgYXJnMTY4MyxpbnQgYXJnMTY4NCxpbnQgYXJnMTY4NSxpbnQg
YXJnMTY4NixpbnQgYXJnMTY4NyxpbnQgYXJnMTY4OCxpbnQgYXJnMTY4OSxpbnQgYXJnMTY5MCxp
bnQgYXJnMTY5MSxpbnQgYXJnMTY5MixpbnQgYXJnMTY5MyxpbnQgYXJnMTY5NCxpbnQgYXJnMTY5
NSxpbnQgYXJnMTY5NixpbnQgYXJnMTY5NyxpbnQgYXJnMTY5OCxpbnQgYXJnMTY5OSxpbnQgYXJn
MTcwMCxpbnQgYXJnMTcwMSxpbnQgYXJnMTcwMixpbnQgYXJnMTcwMyxpbnQgYXJnMTcwNCxpbnQg
YXJnMTcwNSxpbnQgYXJnMTcwNixpbnQgYXJnMTcwNyxpbnQgYXJnMTcwOCxpbnQgYXJnMTcwOSxp
bnQgYXJnMTcxMCxpbnQgYXJnMTcxMSxpbnQgYXJnMTcxMixpbnQgYXJnMTcxMyxpbnQgYXJnMTcx
NCxpbnQgYXJnMTcxNSxpbnQgYXJnMTcxNixpbnQgYXJnMTcxNyxpbnQgYXJnMTcxOCxpbnQgYXJn
MTcxOSxpbnQgYXJnMTcyMCxpbnQgYXJnMTcyMSxpbnQgYXJnMTcyMixpbnQgYXJnMTcyMyxpbnQg
YXJnMTcyNCxpbnQgYXJnMTcyNSxpbnQgYXJnMTcyNixpbnQgYXJnMTcyNyxpbnQgYXJnMTcyOCxp
bnQgYXJnMTcyOSxpbnQgYXJnMTczMCxpbnQgYXJnMTczMSxpbnQgYXJnMTczMixpbnQgYXJnMTcz
MyxpbnQgYXJnMTczNCxpbnQgYXJnMTczNSxpbnQgYXJnMTczNixpbnQgYXJnMTczNyxpbnQgYXJn
MTczOCxpbnQgYXJnMTczOSxpbnQgYXJnMTc0MCxpbnQgYXJnMTc0MSxpbnQgYXJnMTc0MixpbnQg
YXJnMTc0MyxpbnQgYXJnMTc0NCxpbnQgYXJnMTc0NSxpbnQgYXJnMTc0NixpbnQgYXJnMTc0Nyxp
bnQgYXJnMTc0OCxpbnQgYXJnMTc0OSxpbnQgYXJnMTc1MCxpbnQgYXJnMTc1MSxpbnQgYXJnMTc1
MixpbnQgYXJnMTc1MyxpbnQgYXJnMTc1NCxpbnQgYXJnMTc1NSxpbnQgYXJnMTc1NixpbnQgYXJn
MTc1NyxpbnQgYXJnMTc1OCxpbnQgYXJnMTc1OSxpbnQgYXJnMTc2MCxpbnQgYXJnMTc2MSxpbnQg
YXJnMTc2MixpbnQgYXJnMTc2MyxpbnQgYXJnMTc2NCxpbnQgYXJnMTc2NSxpbnQgYXJnMTc2Nixp
bnQgYXJnMTc2NyxpbnQgYXJnMTc2OCxpbnQgYXJnMTc2OSxpbnQgYXJnMTc3MCxpbnQgYXJnMTc3
MSxpbnQgYXJnMTc3MixpbnQgYXJnMTc3MyxpbnQgYXJnMTc3NCxpbnQgYXJnMTc3NSxpbnQgYXJn
MTc3NixpbnQgYXJnMTc3NyxpbnQgYXJnMTc3OCxpbnQgYXJnMTc3OSxpbnQgYXJnMTc4MCxpbnQg
YXJnMTc4MSxpbnQgYXJnMTc4MixpbnQgYXJnMTc4MyxpbnQgYXJnMTc4NCxpbnQgYXJnMTc4NSxp
bnQgYXJnMTc4NixpbnQgYXJnMTc4NyxpbnQgYXJnMTc4OCxpbnQgYXJnMTc4OSxpbnQgYXJnMTc5
MCxpbnQgYXJnMTc5MSxpbnQgYXJnMTc5MixpbnQgYXJnMTc5MyxpbnQgYXJnMTc5NCxpbnQgYXJn
MTc5NSxpbnQgYXJnMTc5NixpbnQgYXJnMTc5NyxpbnQgYXJnMTc5OCxpbnQgYXJnMTc5OSxpbnQg
YXJnMTgwMCxpbnQgYXJnMTgwMSxpbnQgYXJnMTgwMixpbnQgYXJnMTgwMyxpbnQgYXJnMTgwNCxp
bnQgYXJnMTgwNSxpbnQgYXJnMTgwNixpbnQgYXJnMTgwNyxpbnQgYXJnMTgwOCxpbnQgYXJnMTgw
OSxpbnQgYXJnMTgxMCxpbnQgYXJnMTgxMSxpbnQgYXJnMTgxMixpbnQgYXJnMTgxMyxpbnQgYXJn
MTgxNCxpbnQgYXJnMTgxNSxpbnQgYXJnMTgxNixpbnQgYXJnMTgxNyxpbnQgYXJnMTgxOCxpbnQg
YXJnMTgxOSxpbnQgYXJnMTgyMCxpbnQgYXJnMTgyMSxpbnQgYXJnMTgyMixpbnQgYXJnMTgyMyxp
bnQgYXJnMTgyNCxpbnQgYXJnMTgyNSxpbnQgYXJnMTgyNixpbnQgYXJnMTgyNyxpbnQgYXJnMTgy
OCxpbnQgYXJnMTgyOSxpbnQgYXJnMTgzMCxpbnQgYXJnMTgzMSxpbnQgYXJnMTgzMixpbnQgYXJn
MTgzMyxpbnQgYXJnMTgzNCxpbnQgYXJnMTgzNSxpbnQgYXJnMTgzNixpbnQgYXJnMTgzNyxpbnQg
YXJnMTgzOCxpbnQgYXJnMTgzOSxpbnQgYXJnMTg0MCxpbnQgYXJnMTg0MSxpbnQgYXJnMTg0Mixp
bnQgYXJnMTg0MyxpbnQgYXJnMTg0NCxpbnQgYXJnMTg0NSxpbnQgYXJnMTg0NixpbnQgYXJnMTg0
NyxpbnQgYXJnMTg0OCxpbnQgYXJnMTg0OSxpbnQgYXJnMTg1MCxpbnQgYXJnMTg1MSxpbnQgYXJn
MTg1MixpbnQgYXJnMTg1MyxpbnQgYXJnMTg1NCxpbnQgYXJnMTg1NSxpbnQgYXJnMTg1NixpbnQg
YXJnMTg1NyxpbnQgYXJnMTg1OCxpbnQgYXJnMTg1OSxpbnQgYXJnMTg2MCxpbnQgYXJnMTg2MSxp
bnQgYXJnMTg2MixpbnQgYXJnMTg2MyxpbnQgYXJnMTg2NCxpbnQgYXJnMTg2NSxpbnQgYXJnMTg2
NixpbnQgYXJnMTg2NyxpbnQgYXJnMTg2OCxpbnQgYXJnMTg2OSxpbnQgYXJnMTg3MCxpbnQgYXJn
MTg3MSxpbnQgYXJnMTg3MixpbnQgYXJnMTg3MyxpbnQgYXJnMTg3NCxpbnQgYXJnMTg3NSxpbnQg
YXJnMTg3NixpbnQgYXJnMTg3NyxpbnQgYXJnMTg3OCxpbnQgYXJnMTg3OSxpbnQgYXJnMTg4MCxp
bnQgYXJnMTg4MSxpbnQgYXJnMTg4MixpbnQgYXJnMTg4MyxpbnQgYXJnMTg4NCxpbnQgYXJnMTg4
NSxpbnQgYXJnMTg4NixpbnQgYXJnMTg4NyxpbnQgYXJnMTg4OCxpbnQgYXJnMTg4OSxpbnQgYXJn
MTg5MCxpbnQgYXJnMTg5MSxpbnQgYXJnMTg5MixpbnQgYXJnMTg5MyxpbnQgYXJnMTg5NCxpbnQg
YXJnMTg5NSxpbnQgYXJnMTg5NixpbnQgYXJnMTg5NyxpbnQgYXJnMTg5OCxpbnQgYXJnMTg5OSxp
bnQgYXJnMTkwMCxpbnQgYXJnMTkwMSxpbnQgYXJnMTkwMixpbnQgYXJnMTkwMyxpbnQgYXJnMTkw
NCxpbnQgYXJnMTkwNSxpbnQgYXJnMTkwNixpbnQgYXJnMTkwNyxpbnQgYXJnMTkwOCxpbnQgYXJn
MTkwOSxpbnQgYXJnMTkxMCxpbnQgYXJnMTkxMSxpbnQgYXJnMTkxMixpbnQgYXJnMTkxMyxpbnQg
YXJnMTkxNCxpbnQgYXJnMTkxNSxpbnQgYXJnMTkxNixpbnQgYXJnMTkxNyxpbnQgYXJnMTkxOCxp
bnQgYXJnMTkxOSxpbnQgYXJnMTkyMCxpbnQgYXJnMTkyMSxpbnQgYXJnMTkyMixpbnQgYXJnMTky
MyxpbnQgYXJnMTkyNCxpbnQgYXJnMTkyNSxpbnQgYXJnMTkyNixpbnQgYXJnMTkyNyxpbnQgYXJn
MTkyOCxpbnQgYXJnMTkyOSxpbnQgYXJnMTkzMCxpbnQgYXJnMTkzMSxpbnQgYXJnMTkzMixpbnQg
YXJnMTkzMyxpbnQgYXJnMTkzNCxpbnQgYXJnMTkzNSxpbnQgYXJnMTkzNixpbnQgYXJnMTkzNyxp
bnQgYXJnMTkzOCxpbnQgYXJnMTkzOSxpbnQgYXJnMTk0MCxpbnQgYXJnMTk0MSxpbnQgYXJnMTk0
MixpbnQgYXJnMTk0MyxpbnQgYXJnMTk0NCxpbnQgYXJnMTk0NSxpbnQgYXJnMTk0NixpbnQgYXJn
MTk0NyxpbnQgYXJnMTk0OCxpbnQgYXJnMTk0OSxpbnQgYXJnMTk1MCxpbnQgYXJnMTk1MSxpbnQg
YXJnMTk1MixpbnQgYXJnMTk1MyxpbnQgYXJnMTk1NCxpbnQgYXJnMTk1NSxpbnQgYXJnMTk1Nixp
bnQgYXJnMTk1NyxpbnQgYXJnMTk1OCxpbnQgYXJnMTk1OSxpbnQgYXJnMTk2MCxpbnQgYXJnMTk2
MSxpbnQgYXJnMTk2MixpbnQgYXJnMTk2MyxpbnQgYXJnMTk2NCxpbnQgYXJnMTk2NSxpbnQgYXJn
MTk2NixpbnQgYXJnMTk2NyxpbnQgYXJnMTk2OCxpbnQgYXJnMTk2OSxpbnQgYXJnMTk3MCxpbnQg
YXJnMTk3MSxpbnQgYXJnMTk3MixpbnQgYXJnMTk3MyxpbnQgYXJnMTk3NCxpbnQgYXJnMTk3NSxp
bnQgYXJnMTk3NixpbnQgYXJnMTk3NyxpbnQgYXJnMTk3OCxpbnQgYXJnMTk3OSxpbnQgYXJnMTk4
MCxpbnQgYXJnMTk4MSxpbnQgYXJnMTk4MixpbnQgYXJnMTk4MyxpbnQgYXJnMTk4NCxpbnQgYXJn
MTk4NSxpbnQgYXJnMTk4NixpbnQgYXJnMTk4NyxpbnQgYXJnMTk4OCxpbnQgYXJnMTk4OSxpbnQg
YXJnMTk5MCxpbnQgYXJnMTk5MSxpbnQgYXJnMTk5MixpbnQgYXJnMTk5MyxpbnQgYXJnMTk5NCxp
bnQgYXJnMTk5NSxpbnQgYXJnMTk5NixpbnQgYXJnMTk5NyxpbnQgYXJnMTk5OCxpbnQgYXJnMTk5
OSxpbnQgYXJnMjAwMCxpbnQgYXJnMjAwMSxpbnQgYXJnMjAwMixpbnQgYXJnMjAwMyxpbnQgYXJn
MjAwNCxpbnQgYXJnMjAwNSxpbnQgYXJnMjAwNixpbnQgYXJnMjAwNyxpbnQgYXJnMjAwOCxpbnQg
YXJnMjAwOSxpbnQgYXJnMjAxMCxpbnQgYXJnMjAxMSxpbnQgYXJnMjAxMixpbnQgYXJnMjAxMyxp
bnQgYXJnMjAxNCxpbnQgYXJnMjAxNSxpbnQgYXJnMjAxNixpbnQgYXJnMjAxNyxpbnQgYXJnMjAx
OCxpbnQgYXJnMjAxOSxpbnQgYXJnMjAyMCxpbnQgYXJnMjAyMSxpbnQgYXJnMjAyMixpbnQgYXJn
MjAyMyxpbnQgYXJnMjAyNCxpbnQgYXJnMjAyNSxpbnQgYXJnMjAyNixpbnQgYXJnMjAyNyxpbnQg
YXJnMjAyOCxpbnQgYXJnMjAyOSxpbnQgYXJnMjAzMCxpbnQgYXJnMjAzMSxpbnQgYXJnMjAzMixp
bnQgYXJnMjAzMyxpbnQgYXJnMjAzNCxpbnQgYXJnMjAzNSxpbnQgYXJnMjAzNixpbnQgYXJnMjAz
NyxpbnQgYXJnMjAzOCxpbnQgYXJnMjAzOSxpbnQgYXJnMjA0MCxpbnQgYXJnMjA0MSxpbnQgYXJn
MjA0MixpbnQgYXJnMjA0MyxpbnQgYXJnMjA0NCxpbnQgYXJnMjA0NSxpbnQgYXJnMjA0NixpbnQg
YXJnMjA0NyxpbnQgYXJnMjA0OCxpbnQgYXJnMjA0OSxpbnQgYXJnMjA1MCxpbnQgYXJnMjA1MSxp
bnQgYXJnMjA1MixpbnQgYXJnMjA1MyxpbnQgYXJnMjA1NCxpbnQgYXJnMjA1NSxpbnQgYXJnMjA1
NixpbnQgYXJnMjA1NyxpbnQgYXJnMjA1OCxpbnQgYXJnMjA1OSxpbnQgYXJnMjA2MCxpbnQgYXJn
MjA2MSxpbnQgYXJnMjA2MixpbnQgYXJnMjA2MyxpbnQgYXJnMjA2NCxpbnQgYXJnMjA2NSxpbnQg
YXJnMjA2NixpbnQgYXJnMjA2NyxpbnQgYXJnMjA2OCxpbnQgYXJnMjA2OSxpbnQgYXJnMjA3MCxp
bnQgYXJnMjA3MSxpbnQgYXJnMjA3MixpbnQgYXJnMjA3MyxpbnQgYXJnMjA3NCxpbnQgYXJnMjA3
NSxpbnQgYXJnMjA3NixpbnQgYXJnMjA3NyxpbnQgYXJnMjA3OCxpbnQgYXJnMjA3OSxpbnQgYXJn
MjA4MCxpbnQgYXJnMjA4MSxpbnQgYXJnMjA4MixpbnQgYXJnMjA4MyxpbnQgYXJnMjA4NCxpbnQg
YXJnMjA4NSxpbnQgYXJnMjA4NixpbnQgYXJnMjA4NyxpbnQgYXJnMjA4OCxpbnQgYXJnMjA4OSxp
bnQgYXJnMjA5MCxpbnQgYXJnMjA5MSxpbnQgYXJnMjA5MixpbnQgYXJnMjA5MyxpbnQgYXJnMjA5
NCxpbnQgYXJnMjA5NSxpbnQgYXJnMjA5NixpbnQgYXJnMjA5NyxpbnQgYXJnMjA5OCxpbnQgYXJn
MjA5OSxpbnQgYXJnMjEwMCxpbnQgYXJnMjEwMSxpbnQgYXJnMjEwMixpbnQgYXJnMjEwMyxpbnQg
YXJnMjEwNCxpbnQgYXJnMjEwNSxpbnQgYXJnMjEwNixpbnQgYXJnMjEwNyxpbnQgYXJnMjEwOCxp
bnQgYXJnMjEwOSxpbnQgYXJnMjExMCxpbnQgYXJnMjExMSxpbnQgYXJnMjExMixpbnQgYXJnMjEx
MyxpbnQgYXJnMjExNCxpbnQgYXJnMjExNSxpbnQgYXJnMjExNixpbnQgYXJnMjExNyxpbnQgYXJn
MjExOCxpbnQgYXJnMjExOSxpbnQgYXJnMjEyMCxpbnQgYXJnMjEyMSxpbnQgYXJnMjEyMixpbnQg
YXJnMjEyMyxpbnQgYXJnMjEyNCxpbnQgYXJnMjEyNSxpbnQgYXJnMjEyNixpbnQgYXJnMjEyNyxp
bnQgYXJnMjEyOCxpbnQgYXJnMjEyOSxpbnQgYXJnMjEzMCxpbnQgYXJnMjEzMSxpbnQgYXJnMjEz
MixpbnQgYXJnMjEzMyxpbnQgYXJnMjEzNCxpbnQgYXJnMjEzNSxpbnQgYXJnMjEzNixpbnQgYXJn
MjEzNyxpbnQgYXJnMjEzOCxpbnQgYXJnMjEzOSxpbnQgYXJnMjE0MCxpbnQgYXJnMjE0MSxpbnQg
YXJnMjE0MixpbnQgYXJnMjE0MyxpbnQgYXJnMjE0NCxpbnQgYXJnMjE0NSxpbnQgYXJnMjE0Nixp
bnQgYXJnMjE0NyxpbnQgYXJnMjE0OCxpbnQgYXJnMjE0OSxpbnQgYXJnMjE1MCxpbnQgYXJnMjE1
MSxpbnQgYXJnMjE1MixpbnQgYXJnMjE1MyxpbnQgYXJnMjE1NCxpbnQgYXJnMjE1NSxpbnQgYXJn
MjE1NixpbnQgYXJnMjE1NyxpbnQgYXJnMjE1OCxpbnQgYXJnMjE1OSxpbnQgYXJnMjE2MCxpbnQg
YXJnMjE2MSxpbnQgYXJnMjE2MixpbnQgYXJnMjE2MyxpbnQgYXJnMjE2NCxpbnQgYXJnMjE2NSxp
bnQgYXJnMjE2NixpbnQgYXJnMjE2NyxpbnQgYXJnMjE2OCxpbnQgYXJnMjE2OSxpbnQgYXJnMjE3
MCxpbnQgYXJnMjE3MSxpbnQgYXJnMjE3MixpbnQgYXJnMjE3MyxpbnQgYXJnMjE3NCxpbnQgYXJn
MjE3NSxpbnQgYXJnMjE3NixpbnQgYXJnMjE3NyxpbnQgYXJnMjE3OCxpbnQgYXJnMjE3OSxpbnQg
YXJnMjE4MCxpbnQgYXJnMjE4MSxpbnQgYXJnMjE4MixpbnQgYXJnMjE4MyxpbnQgYXJnMjE4NCxp
bnQgYXJnMjE4NSxpbnQgYXJnMjE4NixpbnQgYXJnMjE4NyxpbnQgYXJnMjE4OCxpbnQgYXJnMjE4
OSxpbnQgYXJnMjE5MCxpbnQgYXJnMjE5MSxpbnQgYXJnMjE5MixpbnQgYXJnMjE5MyxpbnQgYXJn
MjE5NCxpbnQgYXJnMjE5NSxpbnQgYXJnMjE5NixpbnQgYXJnMjE5NyxpbnQgYXJnMjE5OCxpbnQg
YXJnMjE5OSxpbnQgYXJnMjIwMCxpbnQgYXJnMjIwMSxpbnQgYXJnMjIwMixpbnQgYXJnMjIwMyxp
bnQgYXJnMjIwNCxpbnQgYXJnMjIwNSxpbnQgYXJnMjIwNixpbnQgYXJnMjIwNyxpbnQgYXJnMjIw
OCxpbnQgYXJnMjIwOSxpbnQgYXJnMjIxMCxpbnQgYXJnMjIxMSxpbnQgYXJnMjIxMixpbnQgYXJn
MjIxMyxpbnQgYXJnMjIxNCxpbnQgYXJnMjIxNSxpbnQgYXJnMjIxNixpbnQgYXJnMjIxNyxpbnQg
YXJnMjIxOCxpbnQgYXJnMjIxOSxpbnQgYXJnMjIyMCxpbnQgYXJnMjIyMSxpbnQgYXJnMjIyMixp
bnQgYXJnMjIyMyxpbnQgYXJnMjIyNCxpbnQgYXJnMjIyNSxpbnQgYXJnMjIyNixpbnQgYXJnMjIy
NyxpbnQgYXJnMjIyOCxpbnQgYXJnMjIyOSxpbnQgYXJnMjIzMCxpbnQgYXJnMjIzMSxpbnQgYXJn
MjIzMixpbnQgYXJnMjIzMyxpbnQgYXJnMjIzNCxpbnQgYXJnMjIzNSxpbnQgYXJnMjIzNixpbnQg
YXJnMjIzNyxpbnQgYXJnMjIzOCxpbnQgYXJnMjIzOSxpbnQgYXJnMjI0MCxpbnQgYXJnMjI0MSxp
bnQgYXJnMjI0MixpbnQgYXJnMjI0MyxpbnQgYXJnMjI0NCxpbnQgYXJnMjI0NSxpbnQgYXJnMjI0
NixpbnQgYXJnMjI0NyxpbnQgYXJnMjI0OCxpbnQgYXJnMjI0OSxpbnQgYXJnMjI1MCxpbnQgYXJn
MjI1MSxpbnQgYXJnMjI1MixpbnQgYXJnMjI1MyxpbnQgYXJnMjI1NCxpbnQgYXJnMjI1NSxpbnQg
YXJnMjI1NixpbnQgYXJnMjI1NyxpbnQgYXJnMjI1OCxpbnQgYXJnMjI1OSxpbnQgYXJnMjI2MCxp
bnQgYXJnMjI2MSxpbnQgYXJnMjI2MixpbnQgYXJnMjI2MyxpbnQgYXJnMjI2NCxpbnQgYXJnMjI2
NSxpbnQgYXJnMjI2NixpbnQgYXJnMjI2NyxpbnQgYXJnMjI2OCxpbnQgYXJnMjI2OSxpbnQgYXJn
MjI3MCxpbnQgYXJnMjI3MSxpbnQgYXJnMjI3MixpbnQgYXJnMjI3MyxpbnQgYXJnMjI3NCxpbnQg
YXJnMjI3NSxpbnQgYXJnMjI3NixpbnQgYXJnMjI3NyxpbnQgYXJnMjI3OCxpbnQgYXJnMjI3OSxp
bnQgYXJnMjI4MCxpbnQgYXJnMjI4MSxpbnQgYXJnMjI4MixpbnQgYXJnMjI4MyxpbnQgYXJnMjI4
NCxpbnQgYXJnMjI4NSxpbnQgYXJnMjI4NixpbnQgYXJnMjI4NyxpbnQgYXJnMjI4OCxpbnQgYXJn
MjI4OSxpbnQgYXJnMjI5MCxpbnQgYXJnMjI5MSxpbnQgYXJnMjI5MixpbnQgYXJnMjI5MyxpbnQg
YXJnMjI5NCxpbnQgYXJnMjI5NSxpbnQgYXJnMjI5NixpbnQgYXJnMjI5NyxpbnQgYXJnMjI5OCxp
bnQgYXJnMjI5OSxpbnQgYXJnMjMwMCxpbnQgYXJnMjMwMSxpbnQgYXJnMjMwMixpbnQgYXJnMjMw
MyxpbnQgYXJnMjMwNCxpbnQgYXJnMjMwNSxpbnQgYXJnMjMwNixpbnQgYXJnMjMwNyxpbnQgYXJn
MjMwOCxpbnQgYXJnMjMwOSxpbnQgYXJnMjMxMCxpbnQgYXJnMjMxMSxpbnQgYXJnMjMxMixpbnQg
YXJnMjMxMyxpbnQgYXJnMjMxNCxpbnQgYXJnMjMxNSxpbnQgYXJnMjMxNixpbnQgYXJnMjMxNyxp
bnQgYXJnMjMxOCxpbnQgYXJnMjMxOSxpbnQgYXJnMjMyMCxpbnQgYXJnMjMyMSxpbnQgYXJnMjMy
MixpbnQgYXJnMjMyMyxpbnQgYXJnMjMyNCxpbnQgYXJnMjMyNSxpbnQgYXJnMjMyNixpbnQgYXJn
MjMyNyxpbnQgYXJnMjMyOCxpbnQgYXJnMjMyOSxpbnQgYXJnMjMzMCxpbnQgYXJnMjMzMSxpbnQg
YXJnMjMzMixpbnQgYXJnMjMzMyxpbnQgYXJnMjMzNCxpbnQgYXJnMjMzNSxpbnQgYXJnMjMzNixp
bnQgYXJnMjMzNyxpbnQgYXJnMjMzOCxpbnQgYXJnMjMzOSxpbnQgYXJnMjM0MCxpbnQgYXJnMjM0
MSxpbnQgYXJnMjM0MixpbnQgYXJnMjM0MyxpbnQgYXJnMjM0NCxpbnQgYXJnMjM0NSxpbnQgYXJn
MjM0NixpbnQgYXJnMjM0NyxpbnQgYXJnMjM0OCxpbnQgYXJnMjM0OSxpbnQgYXJnMjM1MCxpbnQg
YXJnMjM1MSxpbnQgYXJnMjM1MixpbnQgYXJnMjM1MyxpbnQgYXJnMjM1NCxpbnQgYXJnMjM1NSxp
bnQgYXJnMjM1NixpbnQgYXJnMjM1NyxpbnQgYXJnMjM1OCxpbnQgYXJnMjM1OSxpbnQgYXJnMjM2
MCxpbnQgYXJnMjM2MSxpbnQgYXJnMjM2MixpbnQgYXJnMjM2MyxpbnQgYXJnMjM2NCxpbnQgYXJn
MjM2NSxpbnQgYXJnMjM2NixpbnQgYXJnMjM2NyxpbnQgYXJnMjM2OCxpbnQgYXJnMjM2OSxpbnQg
YXJnMjM3MCxpbnQgYXJnMjM3MSxpbnQgYXJnMjM3MixpbnQgYXJnMjM3MyxpbnQgYXJnMjM3NCxp
bnQgYXJnMjM3NSxpbnQgYXJnMjM3NixpbnQgYXJnMjM3NyxpbnQgYXJnMjM3OCxpbnQgYXJnMjM3
OSxpbnQgYXJnMjM4MCxpbnQgYXJnMjM4MSxpbnQgYXJnMjM4MixpbnQgYXJnMjM4MyxpbnQgYXJn
MjM4NCxpbnQgYXJnMjM4NSxpbnQgYXJnMjM4NixpbnQgYXJnMjM4NyxpbnQgYXJnMjM4OCxpbnQg
YXJnMjM4OSxpbnQgYXJnMjM5MCxpbnQgYXJnMjM5MSxpbnQgYXJnMjM5MixpbnQgYXJnMjM5Myxp
bnQgYXJnMjM5NCxpbnQgYXJnMjM5NSxpbnQgYXJnMjM5NixpbnQgYXJnMjM5NyxpbnQgYXJnMjM5
OCxpbnQgYXJnMjM5OSxpbnQgYXJnMjQwMCxpbnQgYXJnMjQwMSxpbnQgYXJnMjQwMixpbnQgYXJn
MjQwMyxpbnQgYXJnMjQwNCxpbnQgYXJnMjQwNSxpbnQgYXJnMjQwNixpbnQgYXJnMjQwNyxpbnQg
YXJnMjQwOCxpbnQgYXJnMjQwOSxpbnQgYXJnMjQxMCxpbnQgYXJnMjQxMSxpbnQgYXJnMjQxMixp
bnQgYXJnMjQxMyxpbnQgYXJnMjQxNCxpbnQgYXJnMjQxNSxpbnQgYXJnMjQxNixpbnQgYXJnMjQx
NyxpbnQgYXJnMjQxOCxpbnQgYXJnMjQxOSxpbnQgYXJnMjQyMCxpbnQgYXJnMjQyMSxpbnQgYXJn
MjQyMixpbnQgYXJnMjQyMyxpbnQgYXJnMjQyNCxpbnQgYXJnMjQyNSxpbnQgYXJnMjQyNixpbnQg
YXJnMjQyNyxpbnQgYXJnMjQyOCxpbnQgYXJnMjQyOSxpbnQgYXJnMjQzMCxpbnQgYXJnMjQzMSxp
bnQgYXJnMjQzMixpbnQgYXJnMjQzMyxpbnQgYXJnMjQzNCxpbnQgYXJnMjQzNSxpbnQgYXJnMjQz
NixpbnQgYXJnMjQzNyxpbnQgYXJnMjQzOCxpbnQgYXJnMjQzOSxpbnQgYXJnMjQ0MCxpbnQgYXJn
MjQ0MSxpbnQgYXJnMjQ0MixpbnQgYXJnMjQ0MyxpbnQgYXJnMjQ0NCxpbnQgYXJnMjQ0NSxpbnQg
YXJnMjQ0NixpbnQgYXJnMjQ0NyxpbnQgYXJnMjQ0OCxpbnQgYXJnMjQ0OSxpbnQgYXJnMjQ1MCxp
bnQgYXJnMjQ1MSxpbnQgYXJnMjQ1MixpbnQgYXJnMjQ1MyxpbnQgYXJnMjQ1NCxpbnQgYXJnMjQ1
NSxpbnQgYXJnMjQ1NixpbnQgYXJnMjQ1NyxpbnQgYXJnMjQ1OCxpbnQgYXJnMjQ1OSxpbnQgYXJn
MjQ2MCxpbnQgYXJnMjQ2MSxpbnQgYXJnMjQ2MixpbnQgYXJnMjQ2MyxpbnQgYXJnMjQ2NCxpbnQg
YXJnMjQ2NSxpbnQgYXJnMjQ2NixpbnQgYXJnMjQ2NyxpbnQgYXJnMjQ2OCxpbnQgYXJnMjQ2OSxp
bnQgYXJnMjQ3MCxpbnQgYXJnMjQ3MSxpbnQgYXJnMjQ3MixpbnQgYXJnMjQ3MyxpbnQgYXJnMjQ3
NCxpbnQgYXJnMjQ3NSxpbnQgYXJnMjQ3NixpbnQgYXJnMjQ3NyxpbnQgYXJnMjQ3OCxpbnQgYXJn
MjQ3OSxpbnQgYXJnMjQ4MCxpbnQgYXJnMjQ4MSxpbnQgYXJnMjQ4MixpbnQgYXJnMjQ4MyxpbnQg
YXJnMjQ4NCxpbnQgYXJnMjQ4NSxpbnQgYXJnMjQ4NixpbnQgYXJnMjQ4NyxpbnQgYXJnMjQ4OCxp
bnQgYXJnMjQ4OSxpbnQgYXJnMjQ5MCxpbnQgYXJnMjQ5MSxpbnQgYXJnMjQ5MixpbnQgYXJnMjQ5
MyxpbnQgYXJnMjQ5NCxpbnQgYXJnMjQ5NSxpbnQgYXJnMjQ5NixpbnQgYXJnMjQ5NyxpbnQgYXJn
MjQ5OCxpbnQgYXJnMjQ5OSxpbnQgYXJnMjUwMCxpbnQgYXJnMjUwMSxpbnQgYXJnMjUwMixpbnQg
YXJnMjUwMyxpbnQgYXJnMjUwNCxpbnQgYXJnMjUwNSxpbnQgYXJnMjUwNixpbnQgYXJnMjUwNyxp
bnQgYXJnMjUwOCxpbnQgYXJnMjUwOSxpbnQgYXJnMjUxMCxpbnQgYXJnMjUxMSxpbnQgYXJnMjUx
MixpbnQgYXJnMjUxMyxpbnQgYXJnMjUxNCxpbnQgYXJnMjUxNSxpbnQgYXJnMjUxNixpbnQgYXJn
MjUxNyxpbnQgYXJnMjUxOCxpbnQgYXJnMjUxOSxpbnQgYXJnMjUyMCxpbnQgYXJnMjUyMSxpbnQg
YXJnMjUyMixpbnQgYXJnMjUyMyxpbnQgYXJnMjUyNCxpbnQgYXJnMjUyNSxpbnQgYXJnMjUyNixp
bnQgYXJnMjUyNyxpbnQgYXJnMjUyOCxpbnQgYXJnMjUyOSxpbnQgYXJnMjUzMCxpbnQgYXJnMjUz
MSxpbnQgYXJnMjUzMixpbnQgYXJnMjUzMyxpbnQgYXJnMjUzNCxpbnQgYXJnMjUzNSxpbnQgYXJn
MjUzNixpbnQgYXJnMjUzNyxpbnQgYXJnMjUzOCxpbnQgYXJnMjUzOSxpbnQgYXJnMjU0MCxpbnQg
YXJnMjU0MSxpbnQgYXJnMjU0MixpbnQgYXJnMjU0MyxpbnQgYXJnMjU0NCxpbnQgYXJnMjU0NSxp
bnQgYXJnMjU0NixpbnQgYXJnMjU0NyxpbnQgYXJnMjU0OCxpbnQgYXJnMjU0OSxpbnQgYXJnMjU1
MCxpbnQgYXJnMjU1MSxpbnQgYXJnMjU1MixpbnQgYXJnMjU1MyxpbnQgYXJnMjU1NCxpbnQgYXJn
MjU1NSxpbnQgYXJnMjU1NixpbnQgYXJnMjU1NyxpbnQgYXJnMjU1OCxpbnQgYXJnMjU1OSxpbnQg
YXJnMjU2MCxpbnQgYXJnMjU2MSxpbnQgYXJnMjU2MixpbnQgYXJnMjU2MyxpbnQgYXJnMjU2NCxp
bnQgYXJnMjU2NSxpbnQgYXJnMjU2NixpbnQgYXJnMjU2NyxpbnQgYXJnMjU2OCxpbnQgYXJnMjU2
OSxpbnQgYXJnMjU3MCxpbnQgYXJnMjU3MSxpbnQgYXJnMjU3MixpbnQgYXJnMjU3MyxpbnQgYXJn
MjU3NCxpbnQgYXJnMjU3NSxpbnQgYXJnMjU3NixpbnQgYXJnMjU3NyxpbnQgYXJnMjU3OCxpbnQg
YXJnMjU3OSxpbnQgYXJnMjU4MCxpbnQgYXJnMjU4MSxpbnQgYXJnMjU4MixpbnQgYXJnMjU4Myxp
bnQgYXJnMjU4NCxpbnQgYXJnMjU4NSxpbnQgYXJnMjU4NixpbnQgYXJnMjU4NyxpbnQgYXJnMjU4
OCxpbnQgYXJnMjU4OSxpbnQgYXJnMjU5MCxpbnQgYXJnMjU5MSxpbnQgYXJnMjU5MixpbnQgYXJn
MjU5MyxpbnQgYXJnMjU5NCxpbnQgYXJnMjU5NSxpbnQgYXJnMjU5NixpbnQgYXJnMjU5NyxpbnQg
YXJnMjU5OCxpbnQgYXJnMjU5OSxpbnQgYXJnMjYwMCxpbnQgYXJnMjYwMSxpbnQgYXJnMjYwMixp
bnQgYXJnMjYwMyxpbnQgYXJnMjYwNCxpbnQgYXJnMjYwNSxpbnQgYXJnMjYwNixpbnQgYXJnMjYw
NyxpbnQgYXJnMjYwOCxpbnQgYXJnMjYwOSxpbnQgYXJnMjYxMCxpbnQgYXJnMjYxMSxpbnQgYXJn
MjYxMixpbnQgYXJnMjYxMyxpbnQgYXJnMjYxNCxpbnQgYXJnMjYxNSxpbnQgYXJnMjYxNixpbnQg
YXJnMjYxNyxpbnQgYXJnMjYxOCxpbnQgYXJnMjYxOSxpbnQgYXJnMjYyMCxpbnQgYXJnMjYyMSxp
bnQgYXJnMjYyMixpbnQgYXJnMjYyMyxpbnQgYXJnMjYyNCxpbnQgYXJnMjYyNSxpbnQgYXJnMjYy
NixpbnQgYXJnMjYyNyxpbnQgYXJnMjYyOCxpbnQgYXJnMjYyOSxpbnQgYXJnMjYzMCxpbnQgYXJn
MjYzMSxpbnQgYXJnMjYzMixpbnQgYXJnMjYzMyxpbnQgYXJnMjYzNCxpbnQgYXJnMjYzNSxpbnQg
YXJnMjYzNixpbnQgYXJnMjYzNyxpbnQgYXJnMjYzOCxpbnQgYXJnMjYzOSxpbnQgYXJnMjY0MCxp
bnQgYXJnMjY0MSxpbnQgYXJnMjY0MixpbnQgYXJnMjY0MyxpbnQgYXJnMjY0NCxpbnQgYXJnMjY0
NSxpbnQgYXJnMjY0NixpbnQgYXJnMjY0NyxpbnQgYXJnMjY0OCxpbnQgYXJnMjY0OSxpbnQgYXJn
MjY1MCxpbnQgYXJnMjY1MSxpbnQgYXJnMjY1MixpbnQgYXJnMjY1MyxpbnQgYXJnMjY1NCxpbnQg
YXJnMjY1NSxpbnQgYXJnMjY1NixpbnQgYXJnMjY1NyxpbnQgYXJnMjY1OCxpbnQgYXJnMjY1OSxp
bnQgYXJnMjY2MCxpbnQgYXJnMjY2MSxpbnQgYXJnMjY2MixpbnQgYXJnMjY2MyxpbnQgYXJnMjY2
NCxpbnQgYXJnMjY2NSxpbnQgYXJnMjY2NixpbnQgYXJnMjY2NyxpbnQgYXJnMjY2OCxpbnQgYXJn
MjY2OSxpbnQgYXJnMjY3MCxpbnQgYXJnMjY3MSxpbnQgYXJnMjY3MixpbnQgYXJnMjY3MyxpbnQg
YXJnMjY3NCxpbnQgYXJnMjY3NSxpbnQgYXJnMjY3NixpbnQgYXJnMjY3NyxpbnQgYXJnMjY3OCxp
bnQgYXJnMjY3OSxpbnQgYXJnMjY4MCxpbnQgYXJnMjY4MSxpbnQgYXJnMjY4MixpbnQgYXJnMjY4
MyxpbnQgYXJnMjY4NCxpbnQgYXJnMjY4NSxpbnQgYXJnMjY4NixpbnQgYXJnMjY4NyxpbnQgYXJn
MjY4OCxpbnQgYXJnMjY4OSxpbnQgYXJnMjY5MCxpbnQgYXJnMjY5MSxpbnQgYXJnMjY5MixpbnQg
YXJnMjY5MyxpbnQgYXJnMjY5NCxpbnQgYXJnMjY5NSxpbnQgYXJnMjY5NixpbnQgYXJnMjY5Nyxp
bnQgYXJnMjY5OCxpbnQgYXJnMjY5OSxpbnQgYXJnMjcwMCxpbnQgYXJnMjcwMSxpbnQgYXJnMjcw
MixpbnQgYXJnMjcwMyxpbnQgYXJnMjcwNCxpbnQgYXJnMjcwNSxpbnQgYXJnMjcwNixpbnQgYXJn
MjcwNyxpbnQgYXJnMjcwOCxpbnQgYXJnMjcwOSxpbnQgYXJnMjcxMCxpbnQgYXJnMjcxMSxpbnQg
YXJnMjcxMixpbnQgYXJnMjcxMyxpbnQgYXJnMjcxNCxpbnQgYXJnMjcxNSxpbnQgYXJnMjcxNixp
bnQgYXJnMjcxNyxpbnQgYXJnMjcxOCxpbnQgYXJnMjcxOSxpbnQgYXJnMjcyMCxpbnQgYXJnMjcy
MSxpbnQgYXJnMjcyMixpbnQgYXJnMjcyMyxpbnQgYXJnMjcyNCxpbnQgYXJnMjcyNSxpbnQgYXJn
MjcyNixpbnQgYXJnMjcyNyxpbnQgYXJnMjcyOCxpbnQgYXJnMjcyOSxpbnQgYXJnMjczMCxpbnQg
YXJnMjczMSxpbnQgYXJnMjczMixpbnQgYXJnMjczMyxpbnQgYXJnMjczNCxpbnQgYXJnMjczNSxp
bnQgYXJnMjczNixpbnQgYXJnMjczNyxpbnQgYXJnMjczOCxpbnQgYXJnMjczOSxpbnQgYXJnMjc0
MCxpbnQgYXJnMjc0MSxpbnQgYXJnMjc0MixpbnQgYXJnMjc0MyxpbnQgYXJnMjc0NCxpbnQgYXJn
Mjc0NSxpbnQgYXJnMjc0NixpbnQgYXJnMjc0NyxpbnQgYXJnMjc0OCxpbnQgYXJnMjc0OSxpbnQg
YXJnMjc1MCxpbnQgYXJnMjc1MSxpbnQgYXJnMjc1MixpbnQgYXJnMjc1MyxpbnQgYXJnMjc1NCxp
bnQgYXJnMjc1NSxpbnQgYXJnMjc1NixpbnQgYXJnMjc1NyxpbnQgYXJnMjc1OCxpbnQgYXJnMjc1
OSxpbnQgYXJnMjc2MCxpbnQgYXJnMjc2MSxpbnQgYXJnMjc2MixpbnQgYXJnMjc2MyxpbnQgYXJn
Mjc2NCxpbnQgYXJnMjc2NSxpbnQgYXJnMjc2NixpbnQgYXJnMjc2NyxpbnQgYXJnMjc2OCxpbnQg
YXJnMjc2OSxpbnQgYXJnMjc3MCxpbnQgYXJnMjc3MSxpbnQgYXJnMjc3MixpbnQgYXJnMjc3Myxp
bnQgYXJnMjc3NCxpbnQgYXJnMjc3NSxpbnQgYXJnMjc3NixpbnQgYXJnMjc3NyxpbnQgYXJnMjc3
OCxpbnQgYXJnMjc3OSxpbnQgYXJnMjc4MCxpbnQgYXJnMjc4MSxpbnQgYXJnMjc4MixpbnQgYXJn
Mjc4MyxpbnQgYXJnMjc4NCxpbnQgYXJnMjc4NSxpbnQgYXJnMjc4NixpbnQgYXJnMjc4NyxpbnQg
YXJnMjc4OCxpbnQgYXJnMjc4OSxpbnQgYXJnMjc5MCxpbnQgYXJnMjc5MSxpbnQgYXJnMjc5Mixp
bnQgYXJnMjc5MyxpbnQgYXJnMjc5NCxpbnQgYXJnMjc5NSxpbnQgYXJnMjc5NixpbnQgYXJnMjc5
NyxpbnQgYXJnMjc5OCxpbnQgYXJnMjc5OSxpbnQgYXJnMjgwMCxpbnQgYXJnMjgwMSxpbnQgYXJn
MjgwMixpbnQgYXJnMjgwMyxpbnQgYXJnMjgwNCxpbnQgYXJnMjgwNSxpbnQgYXJnMjgwNixpbnQg
YXJnMjgwNyxpbnQgYXJnMjgwOCxpbnQgYXJnMjgwOSxpbnQgYXJnMjgxMCxpbnQgYXJnMjgxMSxp
bnQgYXJnMjgxMixpbnQgYXJnMjgxMyxpbnQgYXJnMjgxNCxpbnQgYXJnMjgxNSxpbnQgYXJnMjgx
NixpbnQgYXJnMjgxNyxpbnQgYXJnMjgxOCxpbnQgYXJnMjgxOSxpbnQgYXJnMjgyMCxpbnQgYXJn
MjgyMSxpbnQgYXJnMjgyMixpbnQgYXJnMjgyMyxpbnQgYXJnMjgyNCxpbnQgYXJnMjgyNSxpbnQg
YXJnMjgyNixpbnQgYXJnMjgyNyxpbnQgYXJnMjgyOCxpbnQgYXJnMjgyOSxpbnQgYXJnMjgzMCxp
bnQgYXJnMjgzMSxpbnQgYXJnMjgzMixpbnQgYXJnMjgzMyxpbnQgYXJnMjgzNCxpbnQgYXJnMjgz
NSxpbnQgYXJnMjgzNixpbnQgYXJnMjgzNyxpbnQgYXJnMjgzOCxpbnQgYXJnMjgzOSxpbnQgYXJn
Mjg0MCxpbnQgYXJnMjg0MSxpbnQgYXJnMjg0MixpbnQgYXJnMjg0MyxpbnQgYXJnMjg0NCxpbnQg
YXJnMjg0NSxpbnQgYXJnMjg0NixpbnQgYXJnMjg0NyxpbnQgYXJnMjg0OCxpbnQgYXJnMjg0OSxp
bnQgYXJnMjg1MCxpbnQgYXJnMjg1MSxpbnQgYXJnMjg1MixpbnQgYXJnMjg1MyxpbnQgYXJnMjg1
NCxpbnQgYXJnMjg1NSxpbnQgYXJnMjg1NixpbnQgYXJnMjg1NyxpbnQgYXJnMjg1OCxpbnQgYXJn
Mjg1OSxpbnQgYXJnMjg2MCxpbnQgYXJnMjg2MSxpbnQgYXJnMjg2MixpbnQgYXJnMjg2MyxpbnQg
YXJnMjg2NCxpbnQgYXJnMjg2NSxpbnQgYXJnMjg2NixpbnQgYXJnMjg2NyxpbnQgYXJnMjg2OCxp
bnQgYXJnMjg2OSxpbnQgYXJnMjg3MCxpbnQgYXJnMjg3MSxpbnQgYXJnMjg3MixpbnQgYXJnMjg3
MyxpbnQgYXJnMjg3NCxpbnQgYXJnMjg3NSxpbnQgYXJnMjg3NixpbnQgYXJnMjg3NyxpbnQgYXJn
Mjg3OCxpbnQgYXJnMjg3OSxpbnQgYXJnMjg4MCxpbnQgYXJnMjg4MSxpbnQgYXJnMjg4MixpbnQg
YXJnMjg4MyxpbnQgYXJnMjg4NCxpbnQgYXJnMjg4NSxpbnQgYXJnMjg4NixpbnQgYXJnMjg4Nyxp
bnQgYXJnMjg4OCxpbnQgYXJnMjg4OSxpbnQgYXJnMjg5MCxpbnQgYXJnMjg5MSxpbnQgYXJnMjg5
MixpbnQgYXJnMjg5MyxpbnQgYXJnMjg5NCxpbnQgYXJnMjg5NSxpbnQgYXJnMjg5NixpbnQgYXJn
Mjg5NyxpbnQgYXJnMjg5OCxpbnQgYXJnMjg5OSxpbnQgYXJnMjkwMCxpbnQgYXJnMjkwMSxpbnQg
YXJnMjkwMixpbnQgYXJnMjkwMyxpbnQgYXJnMjkwNCxpbnQgYXJnMjkwNSxpbnQgYXJnMjkwNixp
bnQgYXJnMjkwNyxpbnQgYXJnMjkwOCxpbnQgYXJnMjkwOSxpbnQgYXJnMjkxMCxpbnQgYXJnMjkx
MSxpbnQgYXJnMjkxMixpbnQgYXJnMjkxMyxpbnQgYXJnMjkxNCxpbnQgYXJnMjkxNSxpbnQgYXJn
MjkxNixpbnQgYXJnMjkxNyxpbnQgYXJnMjkxOCxpbnQgYXJnMjkxOSxpbnQgYXJnMjkyMCxpbnQg
YXJnMjkyMSxpbnQgYXJnMjkyMixpbnQgYXJnMjkyMyxpbnQgYXJnMjkyNCxpbnQgYXJnMjkyNSxp
bnQgYXJnMjkyNixpbnQgYXJnMjkyNyxpbnQgYXJnMjkyOCxpbnQgYXJnMjkyOSxpbnQgYXJnMjkz
MCxpbnQgYXJnMjkzMSxpbnQgYXJnMjkzMixpbnQgYXJnMjkzMyxpbnQgYXJnMjkzNCxpbnQgYXJn
MjkzNSxpbnQgYXJnMjkzNixpbnQgYXJnMjkzNyxpbnQgYXJnMjkzOCxpbnQgYXJnMjkzOSxpbnQg
YXJnMjk0MCxpbnQgYXJnMjk0MSxpbnQgYXJnMjk0MixpbnQgYXJnMjk0MyxpbnQgYXJnMjk0NCxp
bnQgYXJnMjk0NSxpbnQgYXJnMjk0NixpbnQgYXJnMjk0NyxpbnQgYXJnMjk0OCxpbnQgYXJnMjk0
OSxpbnQgYXJnMjk1MCxpbnQgYXJnMjk1MSxpbnQgYXJnMjk1MixpbnQgYXJnMjk1MyxpbnQgYXJn
Mjk1NCxpbnQgYXJnMjk1NSxpbnQgYXJnMjk1NixpbnQgYXJnMjk1NyxpbnQgYXJnMjk1OCxpbnQg
YXJnMjk1OSxpbnQgYXJnMjk2MCxpbnQgYXJnMjk2MSxpbnQgYXJnMjk2MixpbnQgYXJnMjk2Myxp
bnQgYXJnMjk2NCxpbnQgYXJnMjk2NSxpbnQgYXJnMjk2NixpbnQgYXJnMjk2NyxpbnQgYXJnMjk2
OCxpbnQgYXJnMjk2OSxpbnQgYXJnMjk3MCxpbnQgYXJnMjk3MSxpbnQgYXJnMjk3MixpbnQgYXJn
Mjk3MyxpbnQgYXJnMjk3NCxpbnQgYXJnMjk3NSxpbnQgYXJnMjk3NixpbnQgYXJnMjk3NyxpbnQg
YXJnMjk3OCxpbnQgYXJnMjk3OSxpbnQgYXJnMjk4MCxpbnQgYXJnMjk4MSxpbnQgYXJnMjk4Mixp
bnQgYXJnMjk4MyxpbnQgYXJnMjk4NCxpbnQgYXJnMjk4NSxpbnQgYXJnMjk4NixpbnQgYXJnMjk4
NyxpbnQgYXJnMjk4OCxpbnQgYXJnMjk4OSxpbnQgYXJnMjk5MCxpbnQgYXJnMjk5MSxpbnQgYXJn
Mjk5MixpbnQgYXJnMjk5MyxpbnQgYXJnMjk5NCxpbnQgYXJnMjk5NSxpbnQgYXJnMjk5NixpbnQg
YXJnMjk5NyxpbnQgYXJnMjk5OCxpbnQgYXJnMjk5OSxpbnQgYXJnMzAwMCxpbnQgYXJnMzAwMSxp
bnQgYXJnMzAwMixpbnQgYXJnMzAwMyxpbnQgYXJnMzAwNCxpbnQgYXJnMzAwNSxpbnQgYXJnMzAw
NixpbnQgYXJnMzAwNyxpbnQgYXJnMzAwOCxpbnQgYXJnMzAwOSxpbnQgYXJnMzAxMCxpbnQgYXJn
MzAxMSxpbnQgYXJnMzAxMixpbnQgYXJnMzAxMyxpbnQgYXJnMzAxNCxpbnQgYXJnMzAxNSxpbnQg
YXJnMzAxNixpbnQgYXJnMzAxNyxpbnQgYXJnMzAxOCxpbnQgYXJnMzAxOSxpbnQgYXJnMzAyMCxp
bnQgYXJnMzAyMSxpbnQgYXJnMzAyMixpbnQgYXJnMzAyMyxpbnQgYXJnMzAyNCxpbnQgYXJnMzAy
NSxpbnQgYXJnMzAyNixpbnQgYXJnMzAyNyxpbnQgYXJnMzAyOCxpbnQgYXJnMzAyOSxpbnQgYXJn
MzAzMCxpbnQgYXJnMzAzMSxpbnQgYXJnMzAzMixpbnQgYXJnMzAzMyxpbnQgYXJnMzAzNCxpbnQg
YXJnMzAzNSxpbnQgYXJnMzAzNixpbnQgYXJnMzAzNyxpbnQgYXJnMzAzOCxpbnQgYXJnMzAzOSxp
bnQgYXJnMzA0MCxpbnQgYXJnMzA0MSxpbnQgYXJnMzA0MixpbnQgYXJnMzA0MyxpbnQgYXJnMzA0
NCxpbnQgYXJnMzA0NSxpbnQgYXJnMzA0NixpbnQgYXJnMzA0NyxpbnQgYXJnMzA0OCxpbnQgYXJn
MzA0OSxpbnQgYXJnMzA1MCxpbnQgYXJnMzA1MSxpbnQgYXJnMzA1MixpbnQgYXJnMzA1MyxpbnQg
YXJnMzA1NCxpbnQgYXJnMzA1NSxpbnQgYXJnMzA1NixpbnQgYXJnMzA1NyxpbnQgYXJnMzA1OCxp
bnQgYXJnMzA1OSxpbnQgYXJnMzA2MCxpbnQgYXJnMzA2MSxpbnQgYXJnMzA2MixpbnQgYXJnMzA2
MyxpbnQgYXJnMzA2NCxpbnQgYXJnMzA2NSxpbnQgYXJnMzA2NixpbnQgYXJnMzA2NyxpbnQgYXJn
MzA2OCxpbnQgYXJnMzA2OSxpbnQgYXJnMzA3MCxpbnQgYXJnMzA3MSxpbnQgYXJnMzA3MixpbnQg
YXJnMzA3MyxpbnQgYXJnMzA3NCxpbnQgYXJnMzA3NSxpbnQgYXJnMzA3NixpbnQgYXJnMzA3Nyxp
bnQgYXJnMzA3OCxpbnQgYXJnMzA3OSxpbnQgYXJnMzA4MCxpbnQgYXJnMzA4MSxpbnQgYXJnMzA4
MixpbnQgYXJnMzA4MyxpbnQgYXJnMzA4NCxpbnQgYXJnMzA4NSxpbnQgYXJnMzA4NixpbnQgYXJn
MzA4NyxpbnQgYXJnMzA4OCxpbnQgYXJnMzA4OSxpbnQgYXJnMzA5MCxpbnQgYXJnMzA5MSxpbnQg
YXJnMzA5MixpbnQgYXJnMzA5MyxpbnQgYXJnMzA5NCxpbnQgYXJnMzA5NSxpbnQgYXJnMzA5Nixp
bnQgYXJnMzA5NyxpbnQgYXJnMzA5OCxpbnQgYXJnMzA5OSxpbnQgYXJnMzEwMCxpbnQgYXJnMzEw
MSxpbnQgYXJnMzEwMixpbnQgYXJnMzEwMyxpbnQgYXJnMzEwNCxpbnQgYXJnMzEwNSxpbnQgYXJn
MzEwNixpbnQgYXJnMzEwNyxpbnQgYXJnMzEwOCxpbnQgYXJnMzEwOSxpbnQgYXJnMzExMCxpbnQg
YXJnMzExMSxpbnQgYXJnMzExMixpbnQgYXJnMzExMyxpbnQgYXJnMzExNCxpbnQgYXJnMzExNSxp
bnQgYXJnMzExNixpbnQgYXJnMzExNyxpbnQgYXJnMzExOCxpbnQgYXJnMzExOSxpbnQgYXJnMzEy
MCxpbnQgYXJnMzEyMSxpbnQgYXJnMzEyMixpbnQgYXJnMzEyMyxpbnQgYXJnMzEyNCxpbnQgYXJn
MzEyNSxpbnQgYXJnMzEyNixpbnQgYXJnMzEyNyxpbnQgYXJnMzEyOCxpbnQgYXJnMzEyOSxpbnQg
YXJnMzEzMCxpbnQgYXJnMzEzMSxpbnQgYXJnMzEzMixpbnQgYXJnMzEzMyxpbnQgYXJnMzEzNCxp
bnQgYXJnMzEzNSxpbnQgYXJnMzEzNixpbnQgYXJnMzEzNyxpbnQgYXJnMzEzOCxpbnQgYXJnMzEz
OSxpbnQgYXJnMzE0MCxpbnQgYXJnMzE0MSxpbnQgYXJnMzE0MixpbnQgYXJnMzE0MyxpbnQgYXJn
MzE0NCxpbnQgYXJnMzE0NSxpbnQgYXJnMzE0NixpbnQgYXJnMzE0NyxpbnQgYXJnMzE0OCxpbnQg
YXJnMzE0OSxpbnQgYXJnMzE1MCxpbnQgYXJnMzE1MSxpbnQgYXJnMzE1MixpbnQgYXJnMzE1Myxp
bnQgYXJnMzE1NCxpbnQgYXJnMzE1NSxpbnQgYXJnMzE1NixpbnQgYXJnMzE1NyxpbnQgYXJnMzE1
OCxpbnQgYXJnMzE1OSxpbnQgYXJnMzE2MCxpbnQgYXJnMzE2MSxpbnQgYXJnMzE2MixpbnQgYXJn
MzE2MyxpbnQgYXJnMzE2NCxpbnQgYXJnMzE2NSxpbnQgYXJnMzE2NixpbnQgYXJnMzE2NyxpbnQg
YXJnMzE2OCxpbnQgYXJnMzE2OSxpbnQgYXJnMzE3MCxpbnQgYXJnMzE3MSxpbnQgYXJnMzE3Mixp
bnQgYXJnMzE3MyxpbnQgYXJnMzE3NCxpbnQgYXJnMzE3NSxpbnQgYXJnMzE3NixpbnQgYXJnMzE3
NyxpbnQgYXJnMzE3OCxpbnQgYXJnMzE3OSxpbnQgYXJnMzE4MCxpbnQgYXJnMzE4MSxpbnQgYXJn
MzE4MixpbnQgYXJnMzE4MyxpbnQgYXJnMzE4NCxpbnQgYXJnMzE4NSxpbnQgYXJnMzE4NixpbnQg
YXJnMzE4NyxpbnQgYXJnMzE4OCxpbnQgYXJnMzE4OSxpbnQgYXJnMzE5MCxpbnQgYXJnMzE5MSxp
bnQgYXJnMzE5MixpbnQgYXJnMzE5MyxpbnQgYXJnMzE5NCxpbnQgYXJnMzE5NSxpbnQgYXJnMzE5
NixpbnQgYXJnMzE5NyxpbnQgYXJnMzE5OCxpbnQgYXJnMzE5OSxpbnQgYXJnMzIwMCxpbnQgYXJn
MzIwMSxpbnQgYXJnMzIwMixpbnQgYXJnMzIwMyxpbnQgYXJnMzIwNCxpbnQgYXJnMzIwNSxpbnQg
YXJnMzIwNixpbnQgYXJnMzIwNyxpbnQgYXJnMzIwOCxpbnQgYXJnMzIwOSxpbnQgYXJnMzIxMCxp
bnQgYXJnMzIxMSxpbnQgYXJnMzIxMixpbnQgYXJnMzIxMyxpbnQgYXJnMzIxNCxpbnQgYXJnMzIx
NSxpbnQgYXJnMzIxNixpbnQgYXJnMzIxNyxpbnQgYXJnMzIxOCxpbnQgYXJnMzIxOSxpbnQgYXJn
MzIyMCxpbnQgYXJnMzIyMSxpbnQgYXJnMzIyMixpbnQgYXJnMzIyMyxpbnQgYXJnMzIyNCxpbnQg
YXJnMzIyNSxpbnQgYXJnMzIyNixpbnQgYXJnMzIyNyxpbnQgYXJnMzIyOCxpbnQgYXJnMzIyOSxp
bnQgYXJnMzIzMCxpbnQgYXJnMzIzMSxpbnQgYXJnMzIzMixpbnQgYXJnMzIzMyxpbnQgYXJnMzIz
NCxpbnQgYXJnMzIzNSxpbnQgYXJnMzIzNixpbnQgYXJnMzIzNyxpbnQgYXJnMzIzOCxpbnQgYXJn
MzIzOSxpbnQgYXJnMzI0MCxpbnQgYXJnMzI0MSxpbnQgYXJnMzI0MixpbnQgYXJnMzI0MyxpbnQg
YXJnMzI0NCxpbnQgYXJnMzI0NSxpbnQgYXJnMzI0NixpbnQgYXJnMzI0NyxpbnQgYXJnMzI0OCxp
bnQgYXJnMzI0OSxpbnQgYXJnMzI1MCxpbnQgYXJnMzI1MSxpbnQgYXJnMzI1MixpbnQgYXJnMzI1
MyxpbnQgYXJnMzI1NCxpbnQgYXJnMzI1NSxpbnQgYXJnMzI1NixpbnQgYXJnMzI1NyxpbnQgYXJn
MzI1OCxpbnQgYXJnMzI1OSxpbnQgYXJnMzI2MCxpbnQgYXJnMzI2MSxpbnQgYXJnMzI2MixpbnQg
YXJnMzI2MyxpbnQgYXJnMzI2NCxpbnQgYXJnMzI2NSxpbnQgYXJnMzI2NixpbnQgYXJnMzI2Nyxp
bnQgYXJnMzI2OCxpbnQgYXJnMzI2OSxpbnQgYXJnMzI3MCxpbnQgYXJnMzI3MSxpbnQgYXJnMzI3
MixpbnQgYXJnMzI3MyxpbnQgYXJnMzI3NCxpbnQgYXJnMzI3NSxpbnQgYXJnMzI3NixpbnQgYXJn
MzI3NyxpbnQgYXJnMzI3OCxpbnQgYXJnMzI3OSxpbnQgYXJnMzI4MCxpbnQgYXJnMzI4MSxpbnQg
YXJnMzI4MixpbnQgYXJnMzI4MyxpbnQgYXJnMzI4NCxpbnQgYXJnMzI4NSxpbnQgYXJnMzI4Nixp
bnQgYXJnMzI4NyxpbnQgYXJnMzI4OCxpbnQgYXJnMzI4OSxpbnQgYXJnMzI5MCxpbnQgYXJnMzI5
MSxpbnQgYXJnMzI5MixpbnQgYXJnMzI5MyxpbnQgYXJnMzI5NCxpbnQgYXJnMzI5NSxpbnQgYXJn
MzI5NixpbnQgYXJnMzI5NyxpbnQgYXJnMzI5OCxpbnQgYXJnMzI5OSxpbnQgYXJnMzMwMCxpbnQg
YXJnMzMwMSxpbnQgYXJnMzMwMixpbnQgYXJnMzMwMyxpbnQgYXJnMzMwNCxpbnQgYXJnMzMwNSxp
bnQgYXJnMzMwNixpbnQgYXJnMzMwNyxpbnQgYXJnMzMwOCxpbnQgYXJnMzMwOSxpbnQgYXJnMzMx
MCxpbnQgYXJnMzMxMSxpbnQgYXJnMzMxMixpbnQgYXJnMzMxMyxpbnQgYXJnMzMxNCxpbnQgYXJn
MzMxNSxpbnQgYXJnMzMxNixpbnQgYXJnMzMxNyxpbnQgYXJnMzMxOCxpbnQgYXJnMzMxOSxpbnQg
YXJnMzMyMCxpbnQgYXJnMzMyMSxpbnQgYXJnMzMyMixpbnQgYXJnMzMyMyxpbnQgYXJnMzMyNCxp
bnQgYXJnMzMyNSxpbnQgYXJnMzMyNixpbnQgYXJnMzMyNyxpbnQgYXJnMzMyOCxpbnQgYXJnMzMy
OSxpbnQgYXJnMzMzMCxpbnQgYXJnMzMzMSxpbnQgYXJnMzMzMixpbnQgYXJnMzMzMyxpbnQgYXJn
MzMzNCxpbnQgYXJnMzMzNSxpbnQgYXJnMzMzNixpbnQgYXJnMzMzNyxpbnQgYXJnMzMzOCxpbnQg
YXJnMzMzOSxpbnQgYXJnMzM0MCxpbnQgYXJnMzM0MSxpbnQgYXJnMzM0MixpbnQgYXJnMzM0Myxp
bnQgYXJnMzM0NCxpbnQgYXJnMzM0NSxpbnQgYXJnMzM0NixpbnQgYXJnMzM0NyxpbnQgYXJnMzM0
OCxpbnQgYXJnMzM0OSxpbnQgYXJnMzM1MCxpbnQgYXJnMzM1MSxpbnQgYXJnMzM1MixpbnQgYXJn
MzM1MyxpbnQgYXJnMzM1NCxpbnQgYXJnMzM1NSxpbnQgYXJnMzM1NixpbnQgYXJnMzM1NyxpbnQg
YXJnMzM1OCxpbnQgYXJnMzM1OSxpbnQgYXJnMzM2MCxpbnQgYXJnMzM2MSxpbnQgYXJnMzM2Mixp
bnQgYXJnMzM2MyxpbnQgYXJnMzM2NCxpbnQgYXJnMzM2NSxpbnQgYXJnMzM2NixpbnQgYXJnMzM2
NyxpbnQgYXJnMzM2OCxpbnQgYXJnMzM2OSxpbnQgYXJnMzM3MCxpbnQgYXJnMzM3MSxpbnQgYXJn
MzM3MixpbnQgYXJnMzM3MyxpbnQgYXJnMzM3NCxpbnQgYXJnMzM3NSxpbnQgYXJnMzM3NixpbnQg
YXJnMzM3NyxpbnQgYXJnMzM3OCxpbnQgYXJnMzM3OSxpbnQgYXJnMzM4MCxpbnQgYXJnMzM4MSxp
bnQgYXJnMzM4MixpbnQgYXJnMzM4MyxpbnQgYXJnMzM4NCxpbnQgYXJnMzM4NSxpbnQgYXJnMzM4
NixpbnQgYXJnMzM4NyxpbnQgYXJnMzM4OCxpbnQgYXJnMzM4OSxpbnQgYXJnMzM5MCxpbnQgYXJn
MzM5MSxpbnQgYXJnMzM5MixpbnQgYXJnMzM5MyxpbnQgYXJnMzM5NCxpbnQgYXJnMzM5NSxpbnQg
YXJnMzM5NixpbnQgYXJnMzM5NyxpbnQgYXJnMzM5OCxpbnQgYXJnMzM5OSxpbnQgYXJnMzQwMCxp
bnQgYXJnMzQwMSxpbnQgYXJnMzQwMixpbnQgYXJnMzQwMyxpbnQgYXJnMzQwNCxpbnQgYXJnMzQw
NSxpbnQgYXJnMzQwNixpbnQgYXJnMzQwNyxpbnQgYXJnMzQwOCxpbnQgYXJnMzQwOSxpbnQgYXJn
MzQxMCxpbnQgYXJnMzQxMSxpbnQgYXJnMzQxMixpbnQgYXJnMzQxMyxpbnQgYXJnMzQxNCxpbnQg
YXJnMzQxNSxpbnQgYXJnMzQxNixpbnQgYXJnMzQxNyxpbnQgYXJnMzQxOCxpbnQgYXJnMzQxOSxp
bnQgYXJnMzQyMCxpbnQgYXJnMzQyMSxpbnQgYXJnMzQyMixpbnQgYXJnMzQyMyxpbnQgYXJnMzQy
NCxpbnQgYXJnMzQyNSxpbnQgYXJnMzQyNixpbnQgYXJnMzQyNyxpbnQgYXJnMzQyOCxpbnQgYXJn
MzQyOSxpbnQgYXJnMzQzMCxpbnQgYXJnMzQzMSxpbnQgYXJnMzQzMixpbnQgYXJnMzQzMyxpbnQg
YXJnMzQzNCxpbnQgYXJnMzQzNSxpbnQgYXJnMzQzNixpbnQgYXJnMzQzNyxpbnQgYXJnMzQzOCxp
bnQgYXJnMzQzOSxpbnQgYXJnMzQ0MCxpbnQgYXJnMzQ0MSxpbnQgYXJnMzQ0MixpbnQgYXJnMzQ0
MyxpbnQgYXJnMzQ0NCxpbnQgYXJnMzQ0NSxpbnQgYXJnMzQ0NixpbnQgYXJnMzQ0NyxpbnQgYXJn
MzQ0OCxpbnQgYXJnMzQ0OSxpbnQgYXJnMzQ1MCxpbnQgYXJnMzQ1MSxpbnQgYXJnMzQ1MixpbnQg
YXJnMzQ1MyxpbnQgYXJnMzQ1NCxpbnQgYXJnMzQ1NSxpbnQgYXJnMzQ1NixpbnQgYXJnMzQ1Nyxp
bnQgYXJnMzQ1OCxpbnQgYXJnMzQ1OSxpbnQgYXJnMzQ2MCxpbnQgYXJnMzQ2MSxpbnQgYXJnMzQ2
MixpbnQgYXJnMzQ2MyxpbnQgYXJnMzQ2NCxpbnQgYXJnMzQ2NSxpbnQgYXJnMzQ2NixpbnQgYXJn
MzQ2NyxpbnQgYXJnMzQ2OCxpbnQgYXJnMzQ2OSxpbnQgYXJnMzQ3MCxpbnQgYXJnMzQ3MSxpbnQg
YXJnMzQ3MixpbnQgYXJnMzQ3MyxpbnQgYXJnMzQ3NCxpbnQgYXJnMzQ3NSxpbnQgYXJnMzQ3Nixp
bnQgYXJnMzQ3NyxpbnQgYXJnMzQ3OCxpbnQgYXJnMzQ3OSxpbnQgYXJnMzQ4MCxpbnQgYXJnMzQ4
MSxpbnQgYXJnMzQ4MixpbnQgYXJnMzQ4MyxpbnQgYXJnMzQ4NCxpbnQgYXJnMzQ4NSxpbnQgYXJn
MzQ4NixpbnQgYXJnMzQ4NyxpbnQgYXJnMzQ4OCxpbnQgYXJnMzQ4OSxpbnQgYXJnMzQ5MCxpbnQg
YXJnMzQ5MSxpbnQgYXJnMzQ5MixpbnQgYXJnMzQ5MyxpbnQgYXJnMzQ5NCxpbnQgYXJnMzQ5NSxp
bnQgYXJnMzQ5NixpbnQgYXJnMzQ5NyxpbnQgYXJnMzQ5OCxpbnQgYXJnMzQ5OSxpbnQgYXJnMzUw
MCxpbnQgYXJnMzUwMSxpbnQgYXJnMzUwMixpbnQgYXJnMzUwMyxpbnQgYXJnMzUwNCxpbnQgYXJn
MzUwNSxpbnQgYXJnMzUwNixpbnQgYXJnMzUwNyxpbnQgYXJnMzUwOCxpbnQgYXJnMzUwOSxpbnQg
YXJnMzUxMCxpbnQgYXJnMzUxMSxpbnQgYXJnMzUxMixpbnQgYXJnMzUxMyxpbnQgYXJnMzUxNCxp
bnQgYXJnMzUxNSxpbnQgYXJnMzUxNixpbnQgYXJnMzUxNyxpbnQgYXJnMzUxOCxpbnQgYXJnMzUx
OSxpbnQgYXJnMzUyMCxpbnQgYXJnMzUyMSxpbnQgYXJnMzUyMixpbnQgYXJnMzUyMyxpbnQgYXJn
MzUyNCxpbnQgYXJnMzUyNSxpbnQgYXJnMzUyNixpbnQgYXJnMzUyNyxpbnQgYXJnMzUyOCxpbnQg
YXJnMzUyOSxpbnQgYXJnMzUzMCxpbnQgYXJnMzUzMSxpbnQgYXJnMzUzMixpbnQgYXJnMzUzMyxp
bnQgYXJnMzUzNCxpbnQgYXJnMzUzNSxpbnQgYXJnMzUzNixpbnQgYXJnMzUzNyxpbnQgYXJnMzUz
OCxpbnQgYXJnMzUzOSxpbnQgYXJnMzU0MCxpbnQgYXJnMzU0MSxpbnQgYXJnMzU0MixpbnQgYXJn
MzU0MyxpbnQgYXJnMzU0NCxpbnQgYXJnMzU0NSxpbnQgYXJnMzU0NixpbnQgYXJnMzU0NyxpbnQg
YXJnMzU0OCxpbnQgYXJnMzU0OSxpbnQgYXJnMzU1MCxpbnQgYXJnMzU1MSxpbnQgYXJnMzU1Mixp
bnQgYXJnMzU1MyxpbnQgYXJnMzU1NCxpbnQgYXJnMzU1NSxpbnQgYXJnMzU1NixpbnQgYXJnMzU1
NyxpbnQgYXJnMzU1OCxpbnQgYXJnMzU1OSxpbnQgYXJnMzU2MCxpbnQgYXJnMzU2MSxpbnQgYXJn
MzU2MixpbnQgYXJnMzU2MyxpbnQgYXJnMzU2NCxpbnQgYXJnMzU2NSxpbnQgYXJnMzU2NixpbnQg
YXJnMzU2NyxpbnQgYXJnMzU2OCxpbnQgYXJnMzU2OSxpbnQgYXJnMzU3MCxpbnQgYXJnMzU3MSxp
bnQgYXJnMzU3MixpbnQgYXJnMzU3MyxpbnQgYXJnMzU3NCxpbnQgYXJnMzU3NSxpbnQgYXJnMzU3
NixpbnQgYXJnMzU3NyxpbnQgYXJnMzU3OCxpbnQgYXJnMzU3OSxpbnQgYXJnMzU4MCxpbnQgYXJn
MzU4MSxpbnQgYXJnMzU4MixpbnQgYXJnMzU4MyxpbnQgYXJnMzU4NCxpbnQgYXJnMzU4NSxpbnQg
YXJnMzU4NixpbnQgYXJnMzU4NyxpbnQgYXJnMzU4OCxpbnQgYXJnMzU4OSxpbnQgYXJnMzU5MCxp
bnQgYXJnMzU5MSxpbnQgYXJnMzU5MixpbnQgYXJnMzU5MyxpbnQgYXJnMzU5NCxpbnQgYXJnMzU5
NSxpbnQgYXJnMzU5NixpbnQgYXJnMzU5NyxpbnQgYXJnMzU5OCxpbnQgYXJnMzU5OSxpbnQgYXJn
MzYwMCxpbnQgYXJnMzYwMSxpbnQgYXJnMzYwMixpbnQgYXJnMzYwMyxpbnQgYXJnMzYwNCxpbnQg
YXJnMzYwNSxpbnQgYXJnMzYwNixpbnQgYXJnMzYwNyxpbnQgYXJnMzYwOCxpbnQgYXJnMzYwOSxp
bnQgYXJnMzYxMCxpbnQgYXJnMzYxMSxpbnQgYXJnMzYxMixpbnQgYXJnMzYxMyxpbnQgYXJnMzYx
NCxpbnQgYXJnMzYxNSxpbnQgYXJnMzYxNixpbnQgYXJnMzYxNyxpbnQgYXJnMzYxOCxpbnQgYXJn
MzYxOSxpbnQgYXJnMzYyMCxpbnQgYXJnMzYyMSxpbnQgYXJnMzYyMixpbnQgYXJnMzYyMyxpbnQg
YXJnMzYyNCxpbnQgYXJnMzYyNSxpbnQgYXJnMzYyNixpbnQgYXJnMzYyNyxpbnQgYXJnMzYyOCxp
bnQgYXJnMzYyOSxpbnQgYXJnMzYzMCxpbnQgYXJnMzYzMSxpbnQgYXJnMzYzMixpbnQgYXJnMzYz
MyxpbnQgYXJnMzYzNCxpbnQgYXJnMzYzNSxpbnQgYXJnMzYzNixpbnQgYXJnMzYzNyxpbnQgYXJn
MzYzOCxpbnQgYXJnMzYzOSxpbnQgYXJnMzY0MCxpbnQgYXJnMzY0MSxpbnQgYXJnMzY0MixpbnQg
YXJnMzY0MyxpbnQgYXJnMzY0NCxpbnQgYXJnMzY0NSxpbnQgYXJnMzY0NixpbnQgYXJnMzY0Nyxp
bnQgYXJnMzY0OCxpbnQgYXJnMzY0OSxpbnQgYXJnMzY1MCxpbnQgYXJnMzY1MSxpbnQgYXJnMzY1
MixpbnQgYXJnMzY1MyxpbnQgYXJnMzY1NCxpbnQgYXJnMzY1NSxpbnQgYXJnMzY1NixpbnQgYXJn
MzY1NyxpbnQgYXJnMzY1OCxpbnQgYXJnMzY1OSxpbnQgYXJnMzY2MCxpbnQgYXJnMzY2MSxpbnQg
YXJnMzY2MixpbnQgYXJnMzY2MyxpbnQgYXJnMzY2NCxpbnQgYXJnMzY2NSxpbnQgYXJnMzY2Nixp
bnQgYXJnMzY2NyxpbnQgYXJnMzY2OCxpbnQgYXJnMzY2OSxpbnQgYXJnMzY3MCxpbnQgYXJnMzY3
MSxpbnQgYXJnMzY3MixpbnQgYXJnMzY3MyxpbnQgYXJnMzY3NCxpbnQgYXJnMzY3NSxpbnQgYXJn
MzY3NixpbnQgYXJnMzY3NyxpbnQgYXJnMzY3OCxpbnQgYXJnMzY3OSxpbnQgYXJnMzY4MCxpbnQg
YXJnMzY4MSxpbnQgYXJnMzY4MixpbnQgYXJnMzY4MyxpbnQgYXJnMzY4NCxpbnQgYXJnMzY4NSxp
bnQgYXJnMzY4NixpbnQgYXJnMzY4NyxpbnQgYXJnMzY4OCxpbnQgYXJnMzY4OSxpbnQgYXJnMzY5
MCxpbnQgYXJnMzY5MSxpbnQgYXJnMzY5MixpbnQgYXJnMzY5MyxpbnQgYXJnMzY5NCxpbnQgYXJn
MzY5NSxpbnQgYXJnMzY5NixpbnQgYXJnMzY5NyxpbnQgYXJnMzY5OCxpbnQgYXJnMzY5OSxpbnQg
YXJnMzcwMCxpbnQgYXJnMzcwMSxpbnQgYXJnMzcwMixpbnQgYXJnMzcwMyxpbnQgYXJnMzcwNCxp
bnQgYXJnMzcwNSxpbnQgYXJnMzcwNixpbnQgYXJnMzcwNyxpbnQgYXJnMzcwOCxpbnQgYXJnMzcw
OSxpbnQgYXJnMzcxMCxpbnQgYXJnMzcxMSxpbnQgYXJnMzcxMixpbnQgYXJnMzcxMyxpbnQgYXJn
MzcxNCxpbnQgYXJnMzcxNSxpbnQgYXJnMzcxNixpbnQgYXJnMzcxNyxpbnQgYXJnMzcxOCxpbnQg
YXJnMzcxOSxpbnQgYXJnMzcyMCxpbnQgYXJnMzcyMSxpbnQgYXJnMzcyMixpbnQgYXJnMzcyMyxp
bnQgYXJnMzcyNCxpbnQgYXJnMzcyNSxpbnQgYXJnMzcyNixpbnQgYXJnMzcyNyxpbnQgYXJnMzcy
OCxpbnQgYXJnMzcyOSxpbnQgYXJnMzczMCxpbnQgYXJnMzczMSxpbnQgYXJnMzczMixpbnQgYXJn
MzczMyxpbnQgYXJnMzczNCxpbnQgYXJnMzczNSxpbnQgYXJnMzczNixpbnQgYXJnMzczNyxpbnQg
YXJnMzczOCxpbnQgYXJnMzczOSxpbnQgYXJnMzc0MCxpbnQgYXJnMzc0MSxpbnQgYXJnMzc0Mixp
bnQgYXJnMzc0MyxpbnQgYXJnMzc0NCxpbnQgYXJnMzc0NSxpbnQgYXJnMzc0NixpbnQgYXJnMzc0
NyxpbnQgYXJnMzc0OCxpbnQgYXJnMzc0OSxpbnQgYXJnMzc1MCxpbnQgYXJnMzc1MSxpbnQgYXJn
Mzc1MixpbnQgYXJnMzc1MyxpbnQgYXJnMzc1NCxpbnQgYXJnMzc1NSxpbnQgYXJnMzc1NixpbnQg
YXJnMzc1NyxpbnQgYXJnMzc1OCxpbnQgYXJnMzc1OSxpbnQgYXJnMzc2MCxpbnQgYXJnMzc2MSxp
bnQgYXJnMzc2MixpbnQgYXJnMzc2MyxpbnQgYXJnMzc2NCxpbnQgYXJnMzc2NSxpbnQgYXJnMzc2
NixpbnQgYXJnMzc2NyxpbnQgYXJnMzc2OCxpbnQgYXJnMzc2OSxpbnQgYXJnMzc3MCxpbnQgYXJn
Mzc3MSxpbnQgYXJnMzc3MixpbnQgYXJnMzc3MyxpbnQgYXJnMzc3NCxpbnQgYXJnMzc3NSxpbnQg
YXJnMzc3NixpbnQgYXJnMzc3NyxpbnQgYXJnMzc3OCxpbnQgYXJnMzc3OSxpbnQgYXJnMzc4MCxp
bnQgYXJnMzc4MSxpbnQgYXJnMzc4MixpbnQgYXJnMzc4MyxpbnQgYXJnMzc4NCxpbnQgYXJnMzc4
NSxpbnQgYXJnMzc4NixpbnQgYXJnMzc4NyxpbnQgYXJnMzc4OCxpbnQgYXJnMzc4OSxpbnQgYXJn
Mzc5MCxpbnQgYXJnMzc5MSxpbnQgYXJnMzc5MixpbnQgYXJnMzc5MyxpbnQgYXJnMzc5NCxpbnQg
YXJnMzc5NSxpbnQgYXJnMzc5NixpbnQgYXJnMzc5NyxpbnQgYXJnMzc5OCxpbnQgYXJnMzc5OSxp
bnQgYXJnMzgwMCxpbnQgYXJnMzgwMSxpbnQgYXJnMzgwMixpbnQgYXJnMzgwMyxpbnQgYXJnMzgw
NCxpbnQgYXJnMzgwNSxpbnQgYXJnMzgwNixpbnQgYXJnMzgwNyxpbnQgYXJnMzgwOCxpbnQgYXJn
MzgwOSxpbnQgYXJnMzgxMCxpbnQgYXJnMzgxMSxpbnQgYXJnMzgxMixpbnQgYXJnMzgxMyxpbnQg
YXJnMzgxNCxpbnQgYXJnMzgxNSxpbnQgYXJnMzgxNixpbnQgYXJnMzgxNyxpbnQgYXJnMzgxOCxp
bnQgYXJnMzgxOSxpbnQgYXJnMzgyMCxpbnQgYXJnMzgyMSxpbnQgYXJnMzgyMixpbnQgYXJnMzgy
MyxpbnQgYXJnMzgyNCxpbnQgYXJnMzgyNSxpbnQgYXJnMzgyNixpbnQgYXJnMzgyNyxpbnQgYXJn
MzgyOCxpbnQgYXJnMzgyOSxpbnQgYXJnMzgzMCxpbnQgYXJnMzgzMSxpbnQgYXJnMzgzMixpbnQg
YXJnMzgzMyxpbnQgYXJnMzgzNCxpbnQgYXJnMzgzNSxpbnQgYXJnMzgzNixpbnQgYXJnMzgzNyxp
bnQgYXJnMzgzOCxpbnQgYXJnMzgzOSxpbnQgYXJnMzg0MCxpbnQgYXJnMzg0MSxpbnQgYXJnMzg0
MixpbnQgYXJnMzg0MyxpbnQgYXJnMzg0NCxpbnQgYXJnMzg0NSxpbnQgYXJnMzg0NixpbnQgYXJn
Mzg0NyxpbnQgYXJnMzg0OCxpbnQgYXJnMzg0OSxpbnQgYXJnMzg1MCxpbnQgYXJnMzg1MSxpbnQg
YXJnMzg1MixpbnQgYXJnMzg1MyxpbnQgYXJnMzg1NCxpbnQgYXJnMzg1NSxpbnQgYXJnMzg1Nixp
bnQgYXJnMzg1NyxpbnQgYXJnMzg1OCxpbnQgYXJnMzg1OSxpbnQgYXJnMzg2MCxpbnQgYXJnMzg2
MSxpbnQgYXJnMzg2MixpbnQgYXJnMzg2MyxpbnQgYXJnMzg2NCxpbnQgYXJnMzg2NSxpbnQgYXJn
Mzg2NixpbnQgYXJnMzg2NyxpbnQgYXJnMzg2OCxpbnQgYXJnMzg2OSxpbnQgYXJnMzg3MCxpbnQg
YXJnMzg3MSxpbnQgYXJnMzg3MixpbnQgYXJnMzg3MyxpbnQgYXJnMzg3NCxpbnQgYXJnMzg3NSxp
bnQgYXJnMzg3NixpbnQgYXJnMzg3NyxpbnQgYXJnMzg3OCxpbnQgYXJnMzg3OSxpbnQgYXJnMzg4
MCxpbnQgYXJnMzg4MSxpbnQgYXJnMzg4MixpbnQgYXJnMzg4MyxpbnQgYXJnMzg4NCxpbnQgYXJn
Mzg4NSxpbnQgYXJnMzg4NixpbnQgYXJnMzg4NyxpbnQgYXJnMzg4OCxpbnQgYXJnMzg4OSxpbnQg
YXJnMzg5MCxpbnQgYXJnMzg5MSxpbnQgYXJnMzg5MixpbnQgYXJnMzg5MyxpbnQgYXJnMzg5NCxp
bnQgYXJnMzg5NSxpbnQgYXJnMzg5NixpbnQgYXJnMzg5NyxpbnQgYXJnMzg5OCxpbnQgYXJnMzg5
OSxpbnQgYXJnMzkwMCxpbnQgYXJnMzkwMSxpbnQgYXJnMzkwMixpbnQgYXJnMzkwMyxpbnQgYXJn
MzkwNCxpbnQgYXJnMzkwNSxpbnQgYXJnMzkwNixpbnQgYXJnMzkwNyxpbnQgYXJnMzkwOCxpbnQg
YXJnMzkwOSxpbnQgYXJnMzkxMCxpbnQgYXJnMzkxMSxpbnQgYXJnMzkxMixpbnQgYXJnMzkxMyxp
bnQgYXJnMzkxNCxpbnQgYXJnMzkxNSxpbnQgYXJnMzkxNixpbnQgYXJnMzkxNyxpbnQgYXJnMzkx
OCxpbnQgYXJnMzkxOSxpbnQgYXJnMzkyMCxpbnQgYXJnMzkyMSxpbnQgYXJnMzkyMixpbnQgYXJn
MzkyMyxpbnQgYXJnMzkyNCxpbnQgYXJnMzkyNSxpbnQgYXJnMzkyNixpbnQgYXJnMzkyNyxpbnQg
YXJnMzkyOCxpbnQgYXJnMzkyOSxpbnQgYXJnMzkzMCxpbnQgYXJnMzkzMSxpbnQgYXJnMzkzMixp
bnQgYXJnMzkzMyxpbnQgYXJnMzkzNCxpbnQgYXJnMzkzNSxpbnQgYXJnMzkzNixpbnQgYXJnMzkz
NyxpbnQgYXJnMzkzOCxpbnQgYXJnMzkzOSxpbnQgYXJnMzk0MCxpbnQgYXJnMzk0MSxpbnQgYXJn
Mzk0MixpbnQgYXJnMzk0MyxpbnQgYXJnMzk0NCxpbnQgYXJnMzk0NSxpbnQgYXJnMzk0NixpbnQg
YXJnMzk0NyxpbnQgYXJnMzk0OCxpbnQgYXJnMzk0OSxpbnQgYXJnMzk1MCxpbnQgYXJnMzk1MSxp
bnQgYXJnMzk1MixpbnQgYXJnMzk1MyxpbnQgYXJnMzk1NCxpbnQgYXJnMzk1NSxpbnQgYXJnMzk1
NixpbnQgYXJnMzk1NyxpbnQgYXJnMzk1OCxpbnQgYXJnMzk1OSxpbnQgYXJnMzk2MCxpbnQgYXJn
Mzk2MSxpbnQgYXJnMzk2MixpbnQgYXJnMzk2MyxpbnQgYXJnMzk2NCxpbnQgYXJnMzk2NSxpbnQg
YXJnMzk2NixpbnQgYXJnMzk2NyxpbnQgYXJnMzk2OCxpbnQgYXJnMzk2OSxpbnQgYXJnMzk3MCxp
bnQgYXJnMzk3MSxpbnQgYXJnMzk3MixpbnQgYXJnMzk3MyxpbnQgYXJnMzk3NCxpbnQgYXJnMzk3
NSxpbnQgYXJnMzk3NixpbnQgYXJnMzk3NyxpbnQgYXJnMzk3OCxpbnQgYXJnMzk3OSxpbnQgYXJn
Mzk4MCxpbnQgYXJnMzk4MSxpbnQgYXJnMzk4MixpbnQgYXJnMzk4MyxpbnQgYXJnMzk4NCxpbnQg
YXJnMzk4NSxpbnQgYXJnMzk4NixpbnQgYXJnMzk4NyxpbnQgYXJnMzk4OCxpbnQgYXJnMzk4OSxp
bnQgYXJnMzk5MCxpbnQgYXJnMzk5MSxpbnQgYXJnMzk5MixpbnQgYXJnMzk5MyxpbnQgYXJnMzk5
NCxpbnQgYXJnMzk5NSxpbnQgYXJnMzk5NixpbnQgYXJnMzk5NyxpbnQgYXJnMzk5OCxpbnQgYXJn
Mzk5OSxpbnQgYXJnNDAwMCxpbnQgYXJnNDAwMSxpbnQgYXJnNDAwMixpbnQgYXJnNDAwMyxpbnQg
YXJnNDAwNCxpbnQgYXJnNDAwNSxpbnQgYXJnNDAwNixpbnQgYXJnNDAwNyxpbnQgYXJnNDAwOCxp
bnQgYXJnNDAwOSxpbnQgYXJnNDAxMCxpbnQgYXJnNDAxMSxpbnQgYXJnNDAxMixpbnQgYXJnNDAx
MyxpbnQgYXJnNDAxNCxpbnQgYXJnNDAxNSxpbnQgYXJnNDAxNixpbnQgYXJnNDAxNyxpbnQgYXJn
NDAxOCxpbnQgYXJnNDAxOSxpbnQgYXJnNDAyMCxpbnQgYXJnNDAyMSxpbnQgYXJnNDAyMixpbnQg
YXJnNDAyMyxpbnQgYXJnNDAyNCxpbnQgYXJnNDAyNSxpbnQgYXJnNDAyNixpbnQgYXJnNDAyNyxp
bnQgYXJnNDAyOCxpbnQgYXJnNDAyOSxpbnQgYXJnNDAzMCxpbnQgYXJnNDAzMSxpbnQgYXJnNDAz
MixpbnQgYXJnNDAzMyxpbnQgYXJnNDAzNCxpbnQgYXJnNDAzNSxpbnQgYXJnNDAzNixpbnQgYXJn
NDAzNyxpbnQgYXJnNDAzOCxpbnQgYXJnNDAzOSxpbnQgYXJnNDA0MCxpbnQgYXJnNDA0MSxpbnQg
YXJnNDA0MixpbnQgYXJnNDA0MyxpbnQgYXJnNDA0NCxpbnQgYXJnNDA0NSxpbnQgYXJnNDA0Nixp
bnQgYXJnNDA0NyxpbnQgYXJnNDA0OCxpbnQgYXJnNDA0OSxpbnQgYXJnNDA1MCxpbnQgYXJnNDA1
MSxpbnQgYXJnNDA1MixpbnQgYXJnNDA1MyxpbnQgYXJnNDA1NCxpbnQgYXJnNDA1NSxpbnQgYXJn
NDA1NixpbnQgYXJnNDA1NyxpbnQgYXJnNDA1OCxpbnQgYXJnNDA1OSxpbnQgYXJnNDA2MCxpbnQg
YXJnNDA2MSxpbnQgYXJnNDA2MixpbnQgYXJnNDA2MyxpbnQgYXJnNDA2NCxpbnQgYXJnNDA2NSxp
bnQgYXJnNDA2NixpbnQgYXJnNDA2NyxpbnQgYXJnNDA2OCxpbnQgYXJnNDA2OSxpbnQgYXJnNDA3
MCxpbnQgYXJnNDA3MSxpbnQgYXJnNDA3MixpbnQgYXJnNDA3MyxpbnQgYXJnNDA3NCxpbnQgYXJn
NDA3NSxpbnQgYXJnNDA3NixpbnQgYXJnNDA3NyxpbnQgYXJnNDA3OCxpbnQgYXJnNDA3OSxpbnQg
YXJnNDA4MCxpbnQgYXJnNDA4MSxpbnQgYXJnNDA4MixpbnQgYXJnNDA4MyxpbnQgYXJnNDA4NCxp
bnQgYXJnNDA4NSxpbnQgYXJnNDA4NixpbnQgYXJnNDA4NyxpbnQgYXJnNDA4OCxpbnQgYXJnNDA4
OSxpbnQgYXJnNDA5MCxpbnQgYXJnNDA5MSxpbnQgYXJnNDA5MixpbnQgYXJnNDA5MyxpbnQgYXJn
NDA5NCxpbnQgYXJnNDA5NSxpbnQgYXJnNDA5NixpbnQgYXJnNDA5NyxpbnQgYXJnNDA5OCxpbnQg
YXJnNDA5OSxpbnQgYXJnNDEwMCxpbnQgYXJnNDEwMSxpbnQgYXJnNDEwMixpbnQgYXJnNDEwMyxp
bnQgYXJnNDEwNCxpbnQgYXJnNDEwNSxpbnQgYXJnNDEwNixpbnQgYXJnNDEwNyxpbnQgYXJnNDEw
OCxpbnQgYXJnNDEwOSxpbnQgYXJnNDExMCxpbnQgYXJnNDExMSxpbnQgYXJnNDExMixpbnQgYXJn
NDExMyxpbnQgYXJnNDExNCxpbnQgYXJnNDExNSxpbnQgYXJnNDExNixpbnQgYXJnNDExNyxpbnQg
YXJnNDExOCxpbnQgYXJnNDExOSxpbnQgYXJnNDEyMCxpbnQgYXJnNDEyMSxpbnQgYXJnNDEyMixp
bnQgYXJnNDEyMyxpbnQgYXJnNDEyNCxpbnQgYXJnNDEyNSxpbnQgYXJnNDEyNixpbnQgYXJnNDEy
NyxpbnQgYXJnNDEyOCxpbnQgYXJnNDEyOSxpbnQgYXJnNDEzMCxpbnQgYXJnNDEzMSxpbnQgYXJn
NDEzMixpbnQgYXJnNDEzMyxpbnQgYXJnNDEzNCxpbnQgYXJnNDEzNSxpbnQgYXJnNDEzNixpbnQg
YXJnNDEzNyxpbnQgYXJnNDEzOCxpbnQgYXJnNDEzOSxpbnQgYXJnNDE0MCxpbnQgYXJnNDE0MSxp
bnQgYXJnNDE0MixpbnQgYXJnNDE0MyxpbnQgYXJnNDE0NCxpbnQgYXJnNDE0NSxpbnQgYXJnNDE0
NixpbnQgYXJnNDE0NyxpbnQgYXJnNDE0OCxpbnQgYXJnNDE0OSxpbnQgYXJnNDE1MCxpbnQgYXJn
NDE1MSxpbnQgYXJnNDE1MixpbnQgYXJnNDE1MyxpbnQgYXJnNDE1NCxpbnQgYXJnNDE1NSxpbnQg
YXJnNDE1NixpbnQgYXJnNDE1NyxpbnQgYXJnNDE1OCxpbnQgYXJnNDE1OSxpbnQgYXJnNDE2MCxp
bnQgYXJnNDE2MSxpbnQgYXJnNDE2MixpbnQgYXJnNDE2MyxpbnQgYXJnNDE2NCxpbnQgYXJnNDE2
NSxpbnQgYXJnNDE2NixpbnQgYXJnNDE2NyxpbnQgYXJnNDE2OCxpbnQgYXJnNDE2OSxpbnQgYXJn
NDE3MCxpbnQgYXJnNDE3MSxpbnQgYXJnNDE3MixpbnQgYXJnNDE3MyxpbnQgYXJnNDE3NCxpbnQg
YXJnNDE3NSxpbnQgYXJnNDE3NixpbnQgYXJnNDE3NyxpbnQgYXJnNDE3OCxpbnQgYXJnNDE3OSxp
bnQgYXJnNDE4MCxpbnQgYXJnNDE4MSxpbnQgYXJnNDE4MixpbnQgYXJnNDE4MyxpbnQgYXJnNDE4
NCxpbnQgYXJnNDE4NSxpbnQgYXJnNDE4NixpbnQgYXJnNDE4NyxpbnQgYXJnNDE4OCxpbnQgYXJn
NDE4OSxpbnQgYXJnNDE5MCxpbnQgYXJnNDE5MSxpbnQgYXJnNDE5MixpbnQgYXJnNDE5MyxpbnQg
YXJnNDE5NCxpbnQgYXJnNDE5NSxpbnQgYXJnNDE5NixpbnQgYXJnNDE5NyxpbnQgYXJnNDE5OCxp
bnQgYXJnNDE5OSxpbnQgYXJnNDIwMCxpbnQgYXJnNDIwMSxpbnQgYXJnNDIwMixpbnQgYXJnNDIw
MyxpbnQgYXJnNDIwNCxpbnQgYXJnNDIwNSxpbnQgYXJnNDIwNixpbnQgYXJnNDIwNyxpbnQgYXJn
NDIwOCxpbnQgYXJnNDIwOSxpbnQgYXJnNDIxMCxpbnQgYXJnNDIxMSxpbnQgYXJnNDIxMixpbnQg
YXJnNDIxMyxpbnQgYXJnNDIxNCxpbnQgYXJnNDIxNSxpbnQgYXJnNDIxNixpbnQgYXJnNDIxNyxp
bnQgYXJnNDIxOCxpbnQgYXJnNDIxOSxpbnQgYXJnNDIyMCxpbnQgYXJnNDIyMSxpbnQgYXJnNDIy
MixpbnQgYXJnNDIyMyxpbnQgYXJnNDIyNCxpbnQgYXJnNDIyNSxpbnQgYXJnNDIyNixpbnQgYXJn
NDIyNyxpbnQgYXJnNDIyOCxpbnQgYXJnNDIyOSxpbnQgYXJnNDIzMCxpbnQgYXJnNDIzMSxpbnQg
YXJnNDIzMixpbnQgYXJnNDIzMyxpbnQgYXJnNDIzNCxpbnQgYXJnNDIzNSxpbnQgYXJnNDIzNixp
bnQgYXJnNDIzNyxpbnQgYXJnNDIzOCxpbnQgYXJnNDIzOSxpbnQgYXJnNDI0MCxpbnQgYXJnNDI0
MSxpbnQgYXJnNDI0MixpbnQgYXJnNDI0MyxpbnQgYXJnNDI0NCxpbnQgYXJnNDI0NSxpbnQgYXJn
NDI0NixpbnQgYXJnNDI0NyxpbnQgYXJnNDI0OCxpbnQgYXJnNDI0OSxpbnQgYXJnNDI1MCxpbnQg
YXJnNDI1MSxpbnQgYXJnNDI1MixpbnQgYXJnNDI1MyxpbnQgYXJnNDI1NCxpbnQgYXJnNDI1NSxp
bnQgYXJnNDI1NixpbnQgYXJnNDI1NyxpbnQgYXJnNDI1OCxpbnQgYXJnNDI1OSxpbnQgYXJnNDI2
MCxpbnQgYXJnNDI2MSxpbnQgYXJnNDI2MixpbnQgYXJnNDI2MyxpbnQgYXJnNDI2NCxpbnQgYXJn
NDI2NSxpbnQgYXJnNDI2NixpbnQgYXJnNDI2NyxpbnQgYXJnNDI2OCxpbnQgYXJnNDI2OSxpbnQg
YXJnNDI3MCxpbnQgYXJnNDI3MSxpbnQgYXJnNDI3MixpbnQgYXJnNDI3MyxpbnQgYXJnNDI3NCxp
bnQgYXJnNDI3NSxpbnQgYXJnNDI3NixpbnQgYXJnNDI3NyxpbnQgYXJnNDI3OCxpbnQgYXJnNDI3
OSxpbnQgYXJnNDI4MCxpbnQgYXJnNDI4MSxpbnQgYXJnNDI4MixpbnQgYXJnNDI4MyxpbnQgYXJn
NDI4NCxpbnQgYXJnNDI4NSxpbnQgYXJnNDI4NixpbnQgYXJnNDI4NyxpbnQgYXJnNDI4OCxpbnQg
YXJnNDI4OSxpbnQgYXJnNDI5MCxpbnQgYXJnNDI5MSxpbnQgYXJnNDI5MixpbnQgYXJnNDI5Myxp
bnQgYXJnNDI5NCxpbnQgYXJnNDI5NSxpbnQgYXJnNDI5NixpbnQgYXJnNDI5NyxpbnQgYXJnNDI5
OCxpbnQgYXJnNDI5OSxpbnQgYXJnNDMwMCxpbnQgYXJnNDMwMSxpbnQgYXJnNDMwMixpbnQgYXJn
NDMwMyxpbnQgYXJnNDMwNCxpbnQgYXJnNDMwNSxpbnQgYXJnNDMwNixpbnQgYXJnNDMwNyxpbnQg
YXJnNDMwOCxpbnQgYXJnNDMwOSxpbnQgYXJnNDMxMCxpbnQgYXJnNDMxMSxpbnQgYXJnNDMxMixp
bnQgYXJnNDMxMyxpbnQgYXJnNDMxNCxpbnQgYXJnNDMxNSxpbnQgYXJnNDMxNixpbnQgYXJnNDMx
NyxpbnQgYXJnNDMxOCxpbnQgYXJnNDMxOSxpbnQgYXJnNDMyMCxpbnQgYXJnNDMyMSxpbnQgYXJn
NDMyMixpbnQgYXJnNDMyMyxpbnQgYXJnNDMyNCxpbnQgYXJnNDMyNSxpbnQgYXJnNDMyNixpbnQg
YXJnNDMyNyxpbnQgYXJnNDMyOCxpbnQgYXJnNDMyOSxpbnQgYXJnNDMzMCxpbnQgYXJnNDMzMSxp
bnQgYXJnNDMzMixpbnQgYXJnNDMzMyxpbnQgYXJnNDMzNCxpbnQgYXJnNDMzNSxpbnQgYXJnNDMz
NixpbnQgYXJnNDMzNyxpbnQgYXJnNDMzOCxpbnQgYXJnNDMzOSxpbnQgYXJnNDM0MCxpbnQgYXJn
NDM0MSxpbnQgYXJnNDM0MixpbnQgYXJnNDM0MyxpbnQgYXJnNDM0NCxpbnQgYXJnNDM0NSxpbnQg
YXJnNDM0NixpbnQgYXJnNDM0NyxpbnQgYXJnNDM0OCxpbnQgYXJnNDM0OSxpbnQgYXJnNDM1MCxp
bnQgYXJnNDM1MSxpbnQgYXJnNDM1MixpbnQgYXJnNDM1MyxpbnQgYXJnNDM1NCxpbnQgYXJnNDM1
NSxpbnQgYXJnNDM1NixpbnQgYXJnNDM1NyxpbnQgYXJnNDM1OCxpbnQgYXJnNDM1OSxpbnQgYXJn
NDM2MCxpbnQgYXJnNDM2MSxpbnQgYXJnNDM2MixpbnQgYXJnNDM2MyxpbnQgYXJnNDM2NCxpbnQg
YXJnNDM2NSxpbnQgYXJnNDM2NixpbnQgYXJnNDM2NyxpbnQgYXJnNDM2OCxpbnQgYXJnNDM2OSxp
bnQgYXJnNDM3MCxpbnQgYXJnNDM3MSxpbnQgYXJnNDM3MixpbnQgYXJnNDM3MyxpbnQgYXJnNDM3
NCxpbnQgYXJnNDM3NSxpbnQgYXJnNDM3NixpbnQgYXJnNDM3NyxpbnQgYXJnNDM3OCxpbnQgYXJn
NDM3OSxpbnQgYXJnNDM4MCxpbnQgYXJnNDM4MSxpbnQgYXJnNDM4MixpbnQgYXJnNDM4MyxpbnQg
YXJnNDM4NCxpbnQgYXJnNDM4NSxpbnQgYXJnNDM4NixpbnQgYXJnNDM4NyxpbnQgYXJnNDM4OCxp
bnQgYXJnNDM4OSxpbnQgYXJnNDM5MCxpbnQgYXJnNDM5MSxpbnQgYXJnNDM5MixpbnQgYXJnNDM5
MyxpbnQgYXJnNDM5NCxpbnQgYXJnNDM5NSxpbnQgYXJnNDM5NixpbnQgYXJnNDM5NyxpbnQgYXJn
NDM5OCxpbnQgYXJnNDM5OSxpbnQgYXJnNDQwMCxpbnQgYXJnNDQwMSxpbnQgYXJnNDQwMixpbnQg
YXJnNDQwMyxpbnQgYXJnNDQwNCxpbnQgYXJnNDQwNSxpbnQgYXJnNDQwNixpbnQgYXJnNDQwNyxp
bnQgYXJnNDQwOCxpbnQgYXJnNDQwOSxpbnQgYXJnNDQxMCxpbnQgYXJnNDQxMSxpbnQgYXJnNDQx
MixpbnQgYXJnNDQxMyxpbnQgYXJnNDQxNCxpbnQgYXJnNDQxNSxpbnQgYXJnNDQxNixpbnQgYXJn
NDQxNyxpbnQgYXJnNDQxOCxpbnQgYXJnNDQxOSxpbnQgYXJnNDQyMCxpbnQgYXJnNDQyMSxpbnQg
YXJnNDQyMixpbnQgYXJnNDQyMyxpbnQgYXJnNDQyNCxpbnQgYXJnNDQyNSxpbnQgYXJnNDQyNixp
bnQgYXJnNDQyNyxpbnQgYXJnNDQyOCxpbnQgYXJnNDQyOSxpbnQgYXJnNDQzMCxpbnQgYXJnNDQz
MSxpbnQgYXJnNDQzMixpbnQgYXJnNDQzMyxpbnQgYXJnNDQzNCxpbnQgYXJnNDQzNSxpbnQgYXJn
NDQzNixpbnQgYXJnNDQzNyxpbnQgYXJnNDQzOCxpbnQgYXJnNDQzOSxpbnQgYXJnNDQ0MCxpbnQg
YXJnNDQ0MSxpbnQgYXJnNDQ0MixpbnQgYXJnNDQ0MyxpbnQgYXJnNDQ0NCxpbnQgYXJnNDQ0NSxp
bnQgYXJnNDQ0NixpbnQgYXJnNDQ0NyxpbnQgYXJnNDQ0OCxpbnQgYXJnNDQ0OSxpbnQgYXJnNDQ1
MCxpbnQgYXJnNDQ1MSxpbnQgYXJnNDQ1MixpbnQgYXJnNDQ1MyxpbnQgYXJnNDQ1NCxpbnQgYXJn
NDQ1NSxpbnQgYXJnNDQ1NixpbnQgYXJnNDQ1NyxpbnQgYXJnNDQ1OCxpbnQgYXJnNDQ1OSxpbnQg
YXJnNDQ2MCxpbnQgYXJnNDQ2MSxpbnQgYXJnNDQ2MixpbnQgYXJnNDQ2MyxpbnQgYXJnNDQ2NCxp
bnQgYXJnNDQ2NSxpbnQgYXJnNDQ2NixpbnQgYXJnNDQ2NyxpbnQgYXJnNDQ2OCxpbnQgYXJnNDQ2
OSxpbnQgYXJnNDQ3MCxpbnQgYXJnNDQ3MSxpbnQgYXJnNDQ3MixpbnQgYXJnNDQ3MyxpbnQgYXJn
NDQ3NCxpbnQgYXJnNDQ3NSxpbnQgYXJnNDQ3NixpbnQgYXJnNDQ3NyxpbnQgYXJnNDQ3OCxpbnQg
YXJnNDQ3OSxpbnQgYXJnNDQ4MCxpbnQgYXJnNDQ4MSxpbnQgYXJnNDQ4MixpbnQgYXJnNDQ4Myxp
bnQgYXJnNDQ4NCxpbnQgYXJnNDQ4NSxpbnQgYXJnNDQ4NixpbnQgYXJnNDQ4NyxpbnQgYXJnNDQ4
OCxpbnQgYXJnNDQ4OSxpbnQgYXJnNDQ5MCxpbnQgYXJnNDQ5MSxpbnQgYXJnNDQ5MixpbnQgYXJn
NDQ5MyxpbnQgYXJnNDQ5NCxpbnQgYXJnNDQ5NSxpbnQgYXJnNDQ5NixpbnQgYXJnNDQ5NyxpbnQg
YXJnNDQ5OCxpbnQgYXJnNDQ5OSxpbnQgYXJnNDUwMCxpbnQgYXJnNDUwMSxpbnQgYXJnNDUwMixp
bnQgYXJnNDUwMyxpbnQgYXJnNDUwNCxpbnQgYXJnNDUwNSxpbnQgYXJnNDUwNixpbnQgYXJnNDUw
NyxpbnQgYXJnNDUwOCxpbnQgYXJnNDUwOSxpbnQgYXJnNDUxMCxpbnQgYXJnNDUxMSxpbnQgYXJn
NDUxMixpbnQgYXJnNDUxMyxpbnQgYXJnNDUxNCxpbnQgYXJnNDUxNSxpbnQgYXJnNDUxNixpbnQg
YXJnNDUxNyxpbnQgYXJnNDUxOCxpbnQgYXJnNDUxOSxpbnQgYXJnNDUyMCxpbnQgYXJnNDUyMSxp
bnQgYXJnNDUyMixpbnQgYXJnNDUyMyxpbnQgYXJnNDUyNCxpbnQgYXJnNDUyNSxpbnQgYXJnNDUy
NixpbnQgYXJnNDUyNyxpbnQgYXJnNDUyOCxpbnQgYXJnNDUyOSxpbnQgYXJnNDUzMCxpbnQgYXJn
NDUzMSxpbnQgYXJnNDUzMixpbnQgYXJnNDUzMyxpbnQgYXJnNDUzNCxpbnQgYXJnNDUzNSxpbnQg
YXJnNDUzNixpbnQgYXJnNDUzNyxpbnQgYXJnNDUzOCxpbnQgYXJnNDUzOSxpbnQgYXJnNDU0MCxp
bnQgYXJnNDU0MSxpbnQgYXJnNDU0MixpbnQgYXJnNDU0MyxpbnQgYXJnNDU0NCxpbnQgYXJnNDU0
NSxpbnQgYXJnNDU0NixpbnQgYXJnNDU0NyxpbnQgYXJnNDU0OCxpbnQgYXJnNDU0OSxpbnQgYXJn
NDU1MCxpbnQgYXJnNDU1MSxpbnQgYXJnNDU1MixpbnQgYXJnNDU1MyxpbnQgYXJnNDU1NCxpbnQg
YXJnNDU1NSxpbnQgYXJnNDU1NixpbnQgYXJnNDU1NyxpbnQgYXJnNDU1OCxpbnQgYXJnNDU1OSxp
bnQgYXJnNDU2MCxpbnQgYXJnNDU2MSxpbnQgYXJnNDU2MixpbnQgYXJnNDU2MyxpbnQgYXJnNDU2
NCxpbnQgYXJnNDU2NSxpbnQgYXJnNDU2NixpbnQgYXJnNDU2NyxpbnQgYXJnNDU2OCxpbnQgYXJn
NDU2OSxpbnQgYXJnNDU3MCxpbnQgYXJnNDU3MSxpbnQgYXJnNDU3MixpbnQgYXJnNDU3MyxpbnQg
YXJnNDU3NCxpbnQgYXJnNDU3NSxpbnQgYXJnNDU3NixpbnQgYXJnNDU3NyxpbnQgYXJnNDU3OCxp
bnQgYXJnNDU3OSxpbnQgYXJnNDU4MCxpbnQgYXJnNDU4MSxpbnQgYXJnNDU4MixpbnQgYXJnNDU4
MyxpbnQgYXJnNDU4NCxpbnQgYXJnNDU4NSxpbnQgYXJnNDU4NixpbnQgYXJnNDU4NyxpbnQgYXJn
NDU4OCxpbnQgYXJnNDU4OSxpbnQgYXJnNDU5MCxpbnQgYXJnNDU5MSxpbnQgYXJnNDU5MixpbnQg
YXJnNDU5MyxpbnQgYXJnNDU5NCxpbnQgYXJnNDU5NSxpbnQgYXJnNDU5NixpbnQgYXJnNDU5Nyxp
bnQgYXJnNDU5OCxpbnQgYXJnNDU5OSxpbnQgYXJnNDYwMCxpbnQgYXJnNDYwMSxpbnQgYXJnNDYw
MixpbnQgYXJnNDYwMyxpbnQgYXJnNDYwNCxpbnQgYXJnNDYwNSxpbnQgYXJnNDYwNixpbnQgYXJn
NDYwNyxpbnQgYXJnNDYwOCxpbnQgYXJnNDYwOSxpbnQgYXJnNDYxMCxpbnQgYXJnNDYxMSxpbnQg
YXJnNDYxMixpbnQgYXJnNDYxMyxpbnQgYXJnNDYxNCxpbnQgYXJnNDYxNSxpbnQgYXJnNDYxNixp
bnQgYXJnNDYxNyxpbnQgYXJnNDYxOCxpbnQgYXJnNDYxOSxpbnQgYXJnNDYyMCxpbnQgYXJnNDYy
MSxpbnQgYXJnNDYyMixpbnQgYXJnNDYyMyxpbnQgYXJnNDYyNCxpbnQgYXJnNDYyNSxpbnQgYXJn
NDYyNixpbnQgYXJnNDYyNyxpbnQgYXJnNDYyOCxpbnQgYXJnNDYyOSxpbnQgYXJnNDYzMCxpbnQg
YXJnNDYzMSxpbnQgYXJnNDYzMixpbnQgYXJnNDYzMyxpbnQgYXJnNDYzNCxpbnQgYXJnNDYzNSxp
bnQgYXJnNDYzNixpbnQgYXJnNDYzNyxpbnQgYXJnNDYzOCxpbnQgYXJnNDYzOSxpbnQgYXJnNDY0
MCxpbnQgYXJnNDY0MSxpbnQgYXJnNDY0MixpbnQgYXJnNDY0MyxpbnQgYXJnNDY0NCxpbnQgYXJn
NDY0NSxpbnQgYXJnNDY0NixpbnQgYXJnNDY0NyxpbnQgYXJnNDY0OCxpbnQgYXJnNDY0OSxpbnQg
YXJnNDY1MCxpbnQgYXJnNDY1MSxpbnQgYXJnNDY1MixpbnQgYXJnNDY1MyxpbnQgYXJnNDY1NCxp
bnQgYXJnNDY1NSxpbnQgYXJnNDY1NixpbnQgYXJnNDY1NyxpbnQgYXJnNDY1OCxpbnQgYXJnNDY1
OSxpbnQgYXJnNDY2MCxpbnQgYXJnNDY2MSxpbnQgYXJnNDY2MixpbnQgYXJnNDY2MyxpbnQgYXJn
NDY2NCxpbnQgYXJnNDY2NSxpbnQgYXJnNDY2NixpbnQgYXJnNDY2NyxpbnQgYXJnNDY2OCxpbnQg
YXJnNDY2OSxpbnQgYXJnNDY3MCxpbnQgYXJnNDY3MSxpbnQgYXJnNDY3MixpbnQgYXJnNDY3Myxp
bnQgYXJnNDY3NCxpbnQgYXJnNDY3NSxpbnQgYXJnNDY3NixpbnQgYXJnNDY3NyxpbnQgYXJnNDY3
OCxpbnQgYXJnNDY3OSxpbnQgYXJnNDY4MCxpbnQgYXJnNDY4MSxpbnQgYXJnNDY4MixpbnQgYXJn
NDY4MyxpbnQgYXJnNDY4NCxpbnQgYXJnNDY4NSxpbnQgYXJnNDY4NixpbnQgYXJnNDY4NyxpbnQg
YXJnNDY4OCxpbnQgYXJnNDY4OSxpbnQgYXJnNDY5MCxpbnQgYXJnNDY5MSxpbnQgYXJnNDY5Mixp
bnQgYXJnNDY5MyxpbnQgYXJnNDY5NCxpbnQgYXJnNDY5NSxpbnQgYXJnNDY5NixpbnQgYXJnNDY5
NyxpbnQgYXJnNDY5OCxpbnQgYXJnNDY5OSxpbnQgYXJnNDcwMCxpbnQgYXJnNDcwMSxpbnQgYXJn
NDcwMixpbnQgYXJnNDcwMyxpbnQgYXJnNDcwNCxpbnQgYXJnNDcwNSxpbnQgYXJnNDcwNixpbnQg
YXJnNDcwNyxpbnQgYXJnNDcwOCxpbnQgYXJnNDcwOSxpbnQgYXJnNDcxMCxpbnQgYXJnNDcxMSxp
bnQgYXJnNDcxMixpbnQgYXJnNDcxMyxpbnQgYXJnNDcxNCxpbnQgYXJnNDcxNSxpbnQgYXJnNDcx
NixpbnQgYXJnNDcxNyxpbnQgYXJnNDcxOCxpbnQgYXJnNDcxOSxpbnQgYXJnNDcyMCxpbnQgYXJn
NDcyMSxpbnQgYXJnNDcyMixpbnQgYXJnNDcyMyxpbnQgYXJnNDcyNCxpbnQgYXJnNDcyNSxpbnQg
YXJnNDcyNixpbnQgYXJnNDcyNyxpbnQgYXJnNDcyOCxpbnQgYXJnNDcyOSxpbnQgYXJnNDczMCxp
bnQgYXJnNDczMSxpbnQgYXJnNDczMixpbnQgYXJnNDczMyxpbnQgYXJnNDczNCxpbnQgYXJnNDcz
NSxpbnQgYXJnNDczNixpbnQgYXJnNDczNyxpbnQgYXJnNDczOCxpbnQgYXJnNDczOSxpbnQgYXJn
NDc0MCxpbnQgYXJnNDc0MSxpbnQgYXJnNDc0MixpbnQgYXJnNDc0MyxpbnQgYXJnNDc0NCxpbnQg
YXJnNDc0NSxpbnQgYXJnNDc0NixpbnQgYXJnNDc0NyxpbnQgYXJnNDc0OCxpbnQgYXJnNDc0OSxp
bnQgYXJnNDc1MCxpbnQgYXJnNDc1MSxpbnQgYXJnNDc1MixpbnQgYXJnNDc1MyxpbnQgYXJnNDc1
NCxpbnQgYXJnNDc1NSxpbnQgYXJnNDc1NixpbnQgYXJnNDc1NyxpbnQgYXJnNDc1OCxpbnQgYXJn
NDc1OSxpbnQgYXJnNDc2MCxpbnQgYXJnNDc2MSxpbnQgYXJnNDc2MixpbnQgYXJnNDc2MyxpbnQg
YXJnNDc2NCxpbnQgYXJnNDc2NSxpbnQgYXJnNDc2NixpbnQgYXJnNDc2NyxpbnQgYXJnNDc2OCxp
bnQgYXJnNDc2OSxpbnQgYXJnNDc3MCxpbnQgYXJnNDc3MSxpbnQgYXJnNDc3MixpbnQgYXJnNDc3
MyxpbnQgYXJnNDc3NCxpbnQgYXJnNDc3NSxpbnQgYXJnNDc3NixpbnQgYXJnNDc3NyxpbnQgYXJn
NDc3OCxpbnQgYXJnNDc3OSxpbnQgYXJnNDc4MCxpbnQgYXJnNDc4MSxpbnQgYXJnNDc4MixpbnQg
YXJnNDc4MyxpbnQgYXJnNDc4NCxpbnQgYXJnNDc4NSxpbnQgYXJnNDc4NixpbnQgYXJnNDc4Nyxp
bnQgYXJnNDc4OCxpbnQgYXJnNDc4OSxpbnQgYXJnNDc5MCxpbnQgYXJnNDc5MSxpbnQgYXJnNDc5
MixpbnQgYXJnNDc5MyxpbnQgYXJnNDc5NCxpbnQgYXJnNDc5NSxpbnQgYXJnNDc5NixpbnQgYXJn
NDc5NyxpbnQgYXJnNDc5OCxpbnQgYXJnNDc5OSxpbnQgYXJnNDgwMCxpbnQgYXJnNDgwMSxpbnQg
YXJnNDgwMixpbnQgYXJnNDgwMyxpbnQgYXJnNDgwNCxpbnQgYXJnNDgwNSxpbnQgYXJnNDgwNixp
bnQgYXJnNDgwNyxpbnQgYXJnNDgwOCxpbnQgYXJnNDgwOSxpbnQgYXJnNDgxMCxpbnQgYXJnNDgx
MSxpbnQgYXJnNDgxMixpbnQgYXJnNDgxMyxpbnQgYXJnNDgxNCxpbnQgYXJnNDgxNSxpbnQgYXJn
NDgxNixpbnQgYXJnNDgxNyxpbnQgYXJnNDgxOCxpbnQgYXJnNDgxOSxpbnQgYXJnNDgyMCxpbnQg
YXJnNDgyMSxpbnQgYXJnNDgyMixpbnQgYXJnNDgyMyxpbnQgYXJnNDgyNCxpbnQgYXJnNDgyNSxp
bnQgYXJnNDgyNixpbnQgYXJnNDgyNyxpbnQgYXJnNDgyOCxpbnQgYXJnNDgyOSxpbnQgYXJnNDgz
MCxpbnQgYXJnNDgzMSxpbnQgYXJnNDgzMixpbnQgYXJnNDgzMyxpbnQgYXJnNDgzNCxpbnQgYXJn
NDgzNSxpbnQgYXJnNDgzNixpbnQgYXJnNDgzNyxpbnQgYXJnNDgzOCxpbnQgYXJnNDgzOSxpbnQg
YXJnNDg0MCxpbnQgYXJnNDg0MSxpbnQgYXJnNDg0MixpbnQgYXJnNDg0MyxpbnQgYXJnNDg0NCxp
bnQgYXJnNDg0NSxpbnQgYXJnNDg0NixpbnQgYXJnNDg0NyxpbnQgYXJnNDg0OCxpbnQgYXJnNDg0
OSxpbnQgYXJnNDg1MCxpbnQgYXJnNDg1MSxpbnQgYXJnNDg1MixpbnQgYXJnNDg1MyxpbnQgYXJn
NDg1NCxpbnQgYXJnNDg1NSxpbnQgYXJnNDg1NixpbnQgYXJnNDg1NyxpbnQgYXJnNDg1OCxpbnQg
YXJnNDg1OSxpbnQgYXJnNDg2MCxpbnQgYXJnNDg2MSxpbnQgYXJnNDg2MixpbnQgYXJnNDg2Myxp
bnQgYXJnNDg2NCxpbnQgYXJnNDg2NSxpbnQgYXJnNDg2NixpbnQgYXJnNDg2NyxpbnQgYXJnNDg2
OCxpbnQgYXJnNDg2OSxpbnQgYXJnNDg3MCxpbnQgYXJnNDg3MSxpbnQgYXJnNDg3MixpbnQgYXJn
NDg3MyxpbnQgYXJnNDg3NCxpbnQgYXJnNDg3NSxpbnQgYXJnNDg3NixpbnQgYXJnNDg3NyxpbnQg
YXJnNDg3OCxpbnQgYXJnNDg3OSxpbnQgYXJnNDg4MCxpbnQgYXJnNDg4MSxpbnQgYXJnNDg4Mixp
bnQgYXJnNDg4MyxpbnQgYXJnNDg4NCxpbnQgYXJnNDg4NSxpbnQgYXJnNDg4NixpbnQgYXJnNDg4
NyxpbnQgYXJnNDg4OCxpbnQgYXJnNDg4OSxpbnQgYXJnNDg5MCxpbnQgYXJnNDg5MSxpbnQgYXJn
NDg5MixpbnQgYXJnNDg5MyxpbnQgYXJnNDg5NCxpbnQgYXJnNDg5NSxpbnQgYXJnNDg5NixpbnQg
YXJnNDg5NyxpbnQgYXJnNDg5OCxpbnQgYXJnNDg5OSxpbnQgYXJnNDkwMCxpbnQgYXJnNDkwMSxp
bnQgYXJnNDkwMixpbnQgYXJnNDkwMyxpbnQgYXJnNDkwNCxpbnQgYXJnNDkwNSxpbnQgYXJnNDkw
NixpbnQgYXJnNDkwNyxpbnQgYXJnNDkwOCxpbnQgYXJnNDkwOSxpbnQgYXJnNDkxMCxpbnQgYXJn
NDkxMSxpbnQgYXJnNDkxMixpbnQgYXJnNDkxMyxpbnQgYXJnNDkxNCxpbnQgYXJnNDkxNSxpbnQg
YXJnNDkxNixpbnQgYXJnNDkxNyxpbnQgYXJnNDkxOCxpbnQgYXJnNDkxOSxpbnQgYXJnNDkyMCxp
bnQgYXJnNDkyMSxpbnQgYXJnNDkyMixpbnQgYXJnNDkyMyxpbnQgYXJnNDkyNCxpbnQgYXJnNDky
NSxpbnQgYXJnNDkyNixpbnQgYXJnNDkyNyxpbnQgYXJnNDkyOCxpbnQgYXJnNDkyOSxpbnQgYXJn
NDkzMCxpbnQgYXJnNDkzMSxpbnQgYXJnNDkzMixpbnQgYXJnNDkzMyxpbnQgYXJnNDkzNCxpbnQg
YXJnNDkzNSxpbnQgYXJnNDkzNixpbnQgYXJnNDkzNyxpbnQgYXJnNDkzOCxpbnQgYXJnNDkzOSxp
bnQgYXJnNDk0MCxpbnQgYXJnNDk0MSxpbnQgYXJnNDk0MixpbnQgYXJnNDk0MyxpbnQgYXJnNDk0
NCxpbnQgYXJnNDk0NSxpbnQgYXJnNDk0NixpbnQgYXJnNDk0NyxpbnQgYXJnNDk0OCxpbnQgYXJn
NDk0OSxpbnQgYXJnNDk1MCxpbnQgYXJnNDk1MSxpbnQgYXJnNDk1MixpbnQgYXJnNDk1MyxpbnQg
YXJnNDk1NCxpbnQgYXJnNDk1NSxpbnQgYXJnNDk1NixpbnQgYXJnNDk1NyxpbnQgYXJnNDk1OCxp
bnQgYXJnNDk1OSxpbnQgYXJnNDk2MCxpbnQgYXJnNDk2MSxpbnQgYXJnNDk2MixpbnQgYXJnNDk2
MyxpbnQgYXJnNDk2NCxpbnQgYXJnNDk2NSxpbnQgYXJnNDk2NixpbnQgYXJnNDk2NyxpbnQgYXJn
NDk2OCxpbnQgYXJnNDk2OSxpbnQgYXJnNDk3MCxpbnQgYXJnNDk3MSxpbnQgYXJnNDk3MixpbnQg
YXJnNDk3MyxpbnQgYXJnNDk3NCxpbnQgYXJnNDk3NSxpbnQgYXJnNDk3NixpbnQgYXJnNDk3Nyxp
bnQgYXJnNDk3OCxpbnQgYXJnNDk3OSxpbnQgYXJnNDk4MCxpbnQgYXJnNDk4MSxpbnQgYXJnNDk4
MixpbnQgYXJnNDk4MyxpbnQgYXJnNDk4NCxpbnQgYXJnNDk4NSxpbnQgYXJnNDk4NixpbnQgYXJn
NDk4NyxpbnQgYXJnNDk4OCxpbnQgYXJnNDk4OSxpbnQgYXJnNDk5MCxpbnQgYXJnNDk5MSxpbnQg
YXJnNDk5MixpbnQgYXJnNDk5MyxpbnQgYXJnNDk5NCxpbnQgYXJnNDk5NSxpbnQgYXJnNDk5Nixp
bnQgYXJnNDk5NyxpbnQgYXJnNDk5OCxpbnQgYXJnNDk5OSkpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04oZnVuY3Rpb25XaXRoSGVsbGFBcmd1bWVudHMzLCBpbnQsIChpbnQgYXJnMCxpbnQgYXJn
MSxpbnQgYXJnMixpbnQgYXJnMyxpbnQgYXJnNCxpbnQgYXJnNSxpbnQgYXJnNixpbnQgYXJnNyxp
bnQgYXJnOCxpbnQgYXJnOSxpbnQgYXJnMTAsaW50IGFyZzExLGludCBhcmcxMixpbnQgYXJnMTMs
aW50IGFyZzE0LGludCBhcmcxNSxpbnQgYXJnMTYsaW50IGFyZzE3LGludCBhcmcxOCxpbnQgYXJn
MTksaW50IGFyZzIwLGludCBhcmcyMSxpbnQgYXJnMjIsaW50IGFyZzIzLGludCBhcmcyNCxpbnQg
YXJnMjUsaW50IGFyZzI2LGludCBhcmcyNyxpbnQgYXJnMjgsaW50IGFyZzI5LGludCBhcmczMCxp
bnQgYXJnMzEsaW50IGFyZzMyLGludCBhcmczMyxpbnQgYXJnMzQsaW50IGFyZzM1LGludCBhcmcz
NixpbnQgYXJnMzcsaW50IGFyZzM4LGludCBhcmczOSxpbnQgYXJnNDAsaW50IGFyZzQxLGludCBh
cmc0MixpbnQgYXJnNDMsaW50IGFyZzQ0LGludCBhcmc0NSxpbnQgYXJnNDYsaW50IGFyZzQ3LGlu
dCBhcmc0OCxpbnQgYXJnNDksaW50IGFyZzUwLGludCBhcmc1MSxpbnQgYXJnNTIsaW50IGFyZzUz
LGludCBhcmc1NCxpbnQgYXJnNTUsaW50IGFyZzU2LGludCBhcmc1NyxpbnQgYXJnNTgsaW50IGFy
ZzU5LGludCBhcmc2MCxpbnQgYXJnNjEsaW50IGFyZzYyLGludCBhcmc2MyxpbnQgYXJnNjQsaW50
IGFyZzY1LGludCBhcmc2NixpbnQgYXJnNjcsaW50IGFyZzY4LGludCBhcmc2OSxpbnQgYXJnNzAs
aW50IGFyZzcxLGludCBhcmc3MixpbnQgYXJnNzMsaW50IGFyZzc0LGludCBhcmc3NSxpbnQgYXJn
NzYsaW50IGFyZzc3LGludCBhcmc3OCxpbnQgYXJnNzksaW50IGFyZzgwLGludCBhcmc4MSxpbnQg
YXJnODIsaW50IGFyZzgzLGludCBhcmc4NCxpbnQgYXJnODUsaW50IGFyZzg2LGludCBhcmc4Nyxp
bnQgYXJnODgsaW50IGFyZzg5LGludCBhcmc5MCxpbnQgYXJnOTEsaW50IGFyZzkyLGludCBhcmc5
MyxpbnQgYXJnOTQsaW50IGFyZzk1LGludCBhcmc5NixpbnQgYXJnOTcsaW50IGFyZzk4LGludCBh
cmc5OSxpbnQgYXJnMTAwLGludCBhcmcxMDEsaW50IGFyZzEwMixpbnQgYXJnMTAzLGludCBhcmcx
MDQsaW50IGFyZzEwNSxpbnQgYXJnMTA2LGludCBhcmcxMDcsaW50IGFyZzEwOCxpbnQgYXJnMTA5
LGludCBhcmcxMTAsaW50IGFyZzExMSxpbnQgYXJnMTEyLGludCBhcmcxMTMsaW50IGFyZzExNCxp
bnQgYXJnMTE1LGludCBhcmcxMTYsaW50IGFyZzExNyxpbnQgYXJnMTE4LGludCBhcmcxMTksaW50
IGFyZzEyMCxpbnQgYXJnMTIxLGludCBhcmcxMjIsaW50IGFyZzEyMyxpbnQgYXJnMTI0LGludCBh
cmcxMjUsaW50IGFyZzEyNixpbnQgYXJnMTI3LGludCBhcmcxMjgsaW50IGFyZzEyOSxpbnQgYXJn
MTMwLGludCBhcmcxMzEsaW50IGFyZzEzMixpbnQgYXJnMTMzLGludCBhcmcxMzQsaW50IGFyZzEz
NSxpbnQgYXJnMTM2LGludCBhcmcxMzcsaW50IGFyZzEzOCxpbnQgYXJnMTM5LGludCBhcmcxNDAs
aW50IGFyZzE0MSxpbnQgYXJnMTQyLGludCBhcmcxNDMsaW50IGFyZzE0NCxpbnQgYXJnMTQ1LGlu
dCBhcmcxNDYsaW50IGFyZzE0NyxpbnQgYXJnMTQ4LGludCBhcmcxNDksaW50IGFyZzE1MCxpbnQg
YXJnMTUxLGludCBhcmcxNTIsaW50IGFyZzE1MyxpbnQgYXJnMTU0LGludCBhcmcxNTUsaW50IGFy
ZzE1NixpbnQgYXJnMTU3LGludCBhcmcxNTgsaW50IGFyZzE1OSxpbnQgYXJnMTYwLGludCBhcmcx
NjEsaW50IGFyZzE2MixpbnQgYXJnMTYzLGludCBhcmcxNjQsaW50IGFyZzE2NSxpbnQgYXJnMTY2
LGludCBhcmcxNjcsaW50IGFyZzE2OCxpbnQgYXJnMTY5LGludCBhcmcxNzAsaW50IGFyZzE3MSxp
bnQgYXJnMTcyLGludCBhcmcxNzMsaW50IGFyZzE3NCxpbnQgYXJnMTc1LGludCBhcmcxNzYsaW50
IGFyZzE3NyxpbnQgYXJnMTc4LGludCBhcmcxNzksaW50IGFyZzE4MCxpbnQgYXJnMTgxLGludCBh
cmcxODIsaW50IGFyZzE4MyxpbnQgYXJnMTg0LGludCBhcmcxODUsaW50IGFyZzE4NixpbnQgYXJn
MTg3LGludCBhcmcxODgsaW50IGFyZzE4OSxpbnQgYXJnMTkwLGludCBhcmcxOTEsaW50IGFyZzE5
MixpbnQgYXJnMTkzLGludCBhcmcxOTQsaW50IGFyZzE5NSxpbnQgYXJnMTk2LGludCBhcmcxOTcs
aW50IGFyZzE5OCxpbnQgYXJnMTk5LGludCBhcmcyMDAsaW50IGFyZzIwMSxpbnQgYXJnMjAyLGlu
dCBhcmcyMDMsaW50IGFyZzIwNCxpbnQgYXJnMjA1LGludCBhcmcyMDYsaW50IGFyZzIwNyxpbnQg
YXJnMjA4LGludCBhcmcyMDksaW50IGFyZzIxMCxpbnQgYXJnMjExLGludCBhcmcyMTIsaW50IGFy
ZzIxMyxpbnQgYXJnMjE0LGludCBhcmcyMTUsaW50IGFyZzIxNixpbnQgYXJnMjE3LGludCBhcmcy
MTgsaW50IGFyZzIxOSxpbnQgYXJnMjIwLGludCBhcmcyMjEsaW50IGFyZzIyMixpbnQgYXJnMjIz
LGludCBhcmcyMjQsaW50IGFyZzIyNSxpbnQgYXJnMjI2LGludCBhcmcyMjcsaW50IGFyZzIyOCxp
bnQgYXJnMjI5LGludCBhcmcyMzAsaW50IGFyZzIzMSxpbnQgYXJnMjMyLGludCBhcmcyMzMsaW50
IGFyZzIzNCxpbnQgYXJnMjM1LGludCBhcmcyMzYsaW50IGFyZzIzNyxpbnQgYXJnMjM4LGludCBh
cmcyMzksaW50IGFyZzI0MCxpbnQgYXJnMjQxLGludCBhcmcyNDIsaW50IGFyZzI0MyxpbnQgYXJn
MjQ0LGludCBhcmcyNDUsaW50IGFyZzI0NixpbnQgYXJnMjQ3LGludCBhcmcyNDgsaW50IGFyZzI0
OSxpbnQgYXJnMjUwLGludCBhcmcyNTEsaW50IGFyZzI1MixpbnQgYXJnMjUzLGludCBhcmcyNTQs
aW50IGFyZzI1NSxpbnQgYXJnMjU2LGludCBhcmcyNTcsaW50IGFyZzI1OCxpbnQgYXJnMjU5LGlu
dCBhcmcyNjAsaW50IGFyZzI2MSxpbnQgYXJnMjYyLGludCBhcmcyNjMsaW50IGFyZzI2NCxpbnQg
YXJnMjY1LGludCBhcmcyNjYsaW50IGFyZzI2NyxpbnQgYXJnMjY4LGludCBhcmcyNjksaW50IGFy
ZzI3MCxpbnQgYXJnMjcxLGludCBhcmcyNzIsaW50IGFyZzI3MyxpbnQgYXJnMjc0LGludCBhcmcy
NzUsaW50IGFyZzI3NixpbnQgYXJnMjc3LGludCBhcmcyNzgsaW50IGFyZzI3OSxpbnQgYXJnMjgw
LGludCBhcmcyODEsaW50IGFyZzI4MixpbnQgYXJnMjgzLGludCBhcmcyODQsaW50IGFyZzI4NSxp
bnQgYXJnMjg2LGludCBhcmcyODcsaW50IGFyZzI4OCxpbnQgYXJnMjg5LGludCBhcmcyOTAsaW50
IGFyZzI5MSxpbnQgYXJnMjkyLGludCBhcmcyOTMsaW50IGFyZzI5NCxpbnQgYXJnMjk1LGludCBh
cmcyOTYsaW50IGFyZzI5NyxpbnQgYXJnMjk4LGludCBhcmcyOTksaW50IGFyZzMwMCxpbnQgYXJn
MzAxLGludCBhcmczMDIsaW50IGFyZzMwMyxpbnQgYXJnMzA0LGludCBhcmczMDUsaW50IGFyZzMw
NixpbnQgYXJnMzA3LGludCBhcmczMDgsaW50IGFyZzMwOSxpbnQgYXJnMzEwLGludCBhcmczMTEs
aW50IGFyZzMxMixpbnQgYXJnMzEzLGludCBhcmczMTQsaW50IGFyZzMxNSxpbnQgYXJnMzE2LGlu
dCBhcmczMTcsaW50IGFyZzMxOCxpbnQgYXJnMzE5LGludCBhcmczMjAsaW50IGFyZzMyMSxpbnQg
YXJnMzIyLGludCBhcmczMjMsaW50IGFyZzMyNCxpbnQgYXJnMzI1LGludCBhcmczMjYsaW50IGFy
ZzMyNyxpbnQgYXJnMzI4LGludCBhcmczMjksaW50IGFyZzMzMCxpbnQgYXJnMzMxLGludCBhcmcz
MzIsaW50IGFyZzMzMyxpbnQgYXJnMzM0LGludCBhcmczMzUsaW50IGFyZzMzNixpbnQgYXJnMzM3
LGludCBhcmczMzgsaW50IGFyZzMzOSxpbnQgYXJnMzQwLGludCBhcmczNDEsaW50IGFyZzM0Mixp
bnQgYXJnMzQzLGludCBhcmczNDQsaW50IGFyZzM0NSxpbnQgYXJnMzQ2LGludCBhcmczNDcsaW50
IGFyZzM0OCxpbnQgYXJnMzQ5LGludCBhcmczNTAsaW50IGFyZzM1MSxpbnQgYXJnMzUyLGludCBh
cmczNTMsaW50IGFyZzM1NCxpbnQgYXJnMzU1LGludCBhcmczNTYsaW50IGFyZzM1NyxpbnQgYXJn
MzU4LGludCBhcmczNTksaW50IGFyZzM2MCxpbnQgYXJnMzYxLGludCBhcmczNjIsaW50IGFyZzM2
MyxpbnQgYXJnMzY0LGludCBhcmczNjUsaW50IGFyZzM2NixpbnQgYXJnMzY3LGludCBhcmczNjgs
aW50IGFyZzM2OSxpbnQgYXJnMzcwLGludCBhcmczNzEsaW50IGFyZzM3MixpbnQgYXJnMzczLGlu
dCBhcmczNzQsaW50IGFyZzM3NSxpbnQgYXJnMzc2LGludCBhcmczNzcsaW50IGFyZzM3OCxpbnQg
YXJnMzc5LGludCBhcmczODAsaW50IGFyZzM4MSxpbnQgYXJnMzgyLGludCBhcmczODMsaW50IGFy
ZzM4NCxpbnQgYXJnMzg1LGludCBhcmczODYsaW50IGFyZzM4NyxpbnQgYXJnMzg4LGludCBhcmcz
ODksaW50IGFyZzM5MCxpbnQgYXJnMzkxLGludCBhcmczOTIsaW50IGFyZzM5MyxpbnQgYXJnMzk0
LGludCBhcmczOTUsaW50IGFyZzM5NixpbnQgYXJnMzk3LGludCBhcmczOTgsaW50IGFyZzM5OSxp
bnQgYXJnNDAwLGludCBhcmc0MDEsaW50IGFyZzQwMixpbnQgYXJnNDAzLGludCBhcmc0MDQsaW50
IGFyZzQwNSxpbnQgYXJnNDA2LGludCBhcmc0MDcsaW50IGFyZzQwOCxpbnQgYXJnNDA5LGludCBh
cmc0MTAsaW50IGFyZzQxMSxpbnQgYXJnNDEyLGludCBhcmc0MTMsaW50IGFyZzQxNCxpbnQgYXJn
NDE1LGludCBhcmc0MTYsaW50IGFyZzQxNyxpbnQgYXJnNDE4LGludCBhcmc0MTksaW50IGFyZzQy
MCxpbnQgYXJnNDIxLGludCBhcmc0MjIsaW50IGFyZzQyMyxpbnQgYXJnNDI0LGludCBhcmc0MjUs
aW50IGFyZzQyNixpbnQgYXJnNDI3LGludCBhcmc0MjgsaW50IGFyZzQyOSxpbnQgYXJnNDMwLGlu
dCBhcmc0MzEsaW50IGFyZzQzMixpbnQgYXJnNDMzLGludCBhcmc0MzQsaW50IGFyZzQzNSxpbnQg
YXJnNDM2LGludCBhcmc0MzcsaW50IGFyZzQzOCxpbnQgYXJnNDM5LGludCBhcmc0NDAsaW50IGFy
ZzQ0MSxpbnQgYXJnNDQyLGludCBhcmc0NDMsaW50IGFyZzQ0NCxpbnQgYXJnNDQ1LGludCBhcmc0
NDYsaW50IGFyZzQ0NyxpbnQgYXJnNDQ4LGludCBhcmc0NDksaW50IGFyZzQ1MCxpbnQgYXJnNDUx
LGludCBhcmc0NTIsaW50IGFyZzQ1MyxpbnQgYXJnNDU0LGludCBhcmc0NTUsaW50IGFyZzQ1Nixp
bnQgYXJnNDU3LGludCBhcmc0NTgsaW50IGFyZzQ1OSxpbnQgYXJnNDYwLGludCBhcmc0NjEsaW50
IGFyZzQ2MixpbnQgYXJnNDYzLGludCBhcmc0NjQsaW50IGFyZzQ2NSxpbnQgYXJnNDY2LGludCBh
cmc0NjcsaW50IGFyZzQ2OCxpbnQgYXJnNDY5LGludCBhcmc0NzAsaW50IGFyZzQ3MSxpbnQgYXJn
NDcyLGludCBhcmc0NzMsaW50IGFyZzQ3NCxpbnQgYXJnNDc1LGludCBhcmc0NzYsaW50IGFyZzQ3
NyxpbnQgYXJnNDc4LGludCBhcmc0NzksaW50IGFyZzQ4MCxpbnQgYXJnNDgxLGludCBhcmc0ODIs
aW50IGFyZzQ4MyxpbnQgYXJnNDg0LGludCBhcmc0ODUsaW50IGFyZzQ4NixpbnQgYXJnNDg3LGlu
dCBhcmc0ODgsaW50IGFyZzQ4OSxpbnQgYXJnNDkwLGludCBhcmc0OTEsaW50IGFyZzQ5MixpbnQg
YXJnNDkzLGludCBhcmc0OTQsaW50IGFyZzQ5NSxpbnQgYXJnNDk2LGludCBhcmc0OTcsaW50IGFy
ZzQ5OCxpbnQgYXJnNDk5LGludCBhcmc1MDAsaW50IGFyZzUwMSxpbnQgYXJnNTAyLGludCBhcmc1
MDMsaW50IGFyZzUwNCxpbnQgYXJnNTA1LGludCBhcmc1MDYsaW50IGFyZzUwNyxpbnQgYXJnNTA4
LGludCBhcmc1MDksaW50IGFyZzUxMCxpbnQgYXJnNTExLGludCBhcmc1MTIsaW50IGFyZzUxMyxp
bnQgYXJnNTE0LGludCBhcmc1MTUsaW50IGFyZzUxNixpbnQgYXJnNTE3LGludCBhcmc1MTgsaW50
IGFyZzUxOSxpbnQgYXJnNTIwLGludCBhcmc1MjEsaW50IGFyZzUyMixpbnQgYXJnNTIzLGludCBh
cmc1MjQsaW50IGFyZzUyNSxpbnQgYXJnNTI2LGludCBhcmc1MjcsaW50IGFyZzUyOCxpbnQgYXJn
NTI5LGludCBhcmc1MzAsaW50IGFyZzUzMSxpbnQgYXJnNTMyLGludCBhcmc1MzMsaW50IGFyZzUz
NCxpbnQgYXJnNTM1LGludCBhcmc1MzYsaW50IGFyZzUzNyxpbnQgYXJnNTM4LGludCBhcmc1Mzks
aW50IGFyZzU0MCxpbnQgYXJnNTQxLGludCBhcmc1NDIsaW50IGFyZzU0MyxpbnQgYXJnNTQ0LGlu
dCBhcmc1NDUsaW50IGFyZzU0NixpbnQgYXJnNTQ3LGludCBhcmc1NDgsaW50IGFyZzU0OSxpbnQg
YXJnNTUwLGludCBhcmc1NTEsaW50IGFyZzU1MixpbnQgYXJnNTUzLGludCBhcmc1NTQsaW50IGFy
ZzU1NSxpbnQgYXJnNTU2LGludCBhcmc1NTcsaW50IGFyZzU1OCxpbnQgYXJnNTU5LGludCBhcmc1
NjAsaW50IGFyZzU2MSxpbnQgYXJnNTYyLGludCBhcmc1NjMsaW50IGFyZzU2NCxpbnQgYXJnNTY1
LGludCBhcmc1NjYsaW50IGFyZzU2NyxpbnQgYXJnNTY4LGludCBhcmc1NjksaW50IGFyZzU3MCxp
bnQgYXJnNTcxLGludCBhcmc1NzIsaW50IGFyZzU3MyxpbnQgYXJnNTc0LGludCBhcmc1NzUsaW50
IGFyZzU3NixpbnQgYXJnNTc3LGludCBhcmc1NzgsaW50IGFyZzU3OSxpbnQgYXJnNTgwLGludCBh
cmc1ODEsaW50IGFyZzU4MixpbnQgYXJnNTgzLGludCBhcmc1ODQsaW50IGFyZzU4NSxpbnQgYXJn
NTg2LGludCBhcmc1ODcsaW50IGFyZzU4OCxpbnQgYXJnNTg5LGludCBhcmc1OTAsaW50IGFyZzU5
MSxpbnQgYXJnNTkyLGludCBhcmc1OTMsaW50IGFyZzU5NCxpbnQgYXJnNTk1LGludCBhcmc1OTYs
aW50IGFyZzU5NyxpbnQgYXJnNTk4LGludCBhcmc1OTksaW50IGFyZzYwMCxpbnQgYXJnNjAxLGlu
dCBhcmc2MDIsaW50IGFyZzYwMyxpbnQgYXJnNjA0LGludCBhcmc2MDUsaW50IGFyZzYwNixpbnQg
YXJnNjA3LGludCBhcmc2MDgsaW50IGFyZzYwOSxpbnQgYXJnNjEwLGludCBhcmc2MTEsaW50IGFy
ZzYxMixpbnQgYXJnNjEzLGludCBhcmc2MTQsaW50IGFyZzYxNSxpbnQgYXJnNjE2LGludCBhcmc2
MTcsaW50IGFyZzYxOCxpbnQgYXJnNjE5LGludCBhcmc2MjAsaW50IGFyZzYyMSxpbnQgYXJnNjIy
LGludCBhcmc2MjMsaW50IGFyZzYyNCxpbnQgYXJnNjI1LGludCBhcmc2MjYsaW50IGFyZzYyNyxp
bnQgYXJnNjI4LGludCBhcmc2MjksaW50IGFyZzYzMCxpbnQgYXJnNjMxLGludCBhcmc2MzIsaW50
IGFyZzYzMyxpbnQgYXJnNjM0LGludCBhcmc2MzUsaW50IGFyZzYzNixpbnQgYXJnNjM3LGludCBh
cmc2MzgsaW50IGFyZzYzOSxpbnQgYXJnNjQwLGludCBhcmc2NDEsaW50IGFyZzY0MixpbnQgYXJn
NjQzLGludCBhcmc2NDQsaW50IGFyZzY0NSxpbnQgYXJnNjQ2LGludCBhcmc2NDcsaW50IGFyZzY0
OCxpbnQgYXJnNjQ5LGludCBhcmc2NTAsaW50IGFyZzY1MSxpbnQgYXJnNjUyLGludCBhcmc2NTMs
aW50IGFyZzY1NCxpbnQgYXJnNjU1LGludCBhcmc2NTYsaW50IGFyZzY1NyxpbnQgYXJnNjU4LGlu
dCBhcmc2NTksaW50IGFyZzY2MCxpbnQgYXJnNjYxLGludCBhcmc2NjIsaW50IGFyZzY2MyxpbnQg
YXJnNjY0LGludCBhcmc2NjUsaW50IGFyZzY2NixpbnQgYXJnNjY3LGludCBhcmc2NjgsaW50IGFy
ZzY2OSxpbnQgYXJnNjcwLGludCBhcmc2NzEsaW50IGFyZzY3MixpbnQgYXJnNjczLGludCBhcmc2
NzQsaW50IGFyZzY3NSxpbnQgYXJnNjc2LGludCBhcmc2NzcsaW50IGFyZzY3OCxpbnQgYXJnNjc5
LGludCBhcmc2ODAsaW50IGFyZzY4MSxpbnQgYXJnNjgyLGludCBhcmc2ODMsaW50IGFyZzY4NCxp
bnQgYXJnNjg1LGludCBhcmc2ODYsaW50IGFyZzY4NyxpbnQgYXJnNjg4LGludCBhcmc2ODksaW50
IGFyZzY5MCxpbnQgYXJnNjkxLGludCBhcmc2OTIsaW50IGFyZzY5MyxpbnQgYXJnNjk0LGludCBh
cmc2OTUsaW50IGFyZzY5NixpbnQgYXJnNjk3LGludCBhcmc2OTgsaW50IGFyZzY5OSxpbnQgYXJn
NzAwLGludCBhcmc3MDEsaW50IGFyZzcwMixpbnQgYXJnNzAzLGludCBhcmc3MDQsaW50IGFyZzcw
NSxpbnQgYXJnNzA2LGludCBhcmc3MDcsaW50IGFyZzcwOCxpbnQgYXJnNzA5LGludCBhcmc3MTAs
aW50IGFyZzcxMSxpbnQgYXJnNzEyLGludCBhcmc3MTMsaW50IGFyZzcxNCxpbnQgYXJnNzE1LGlu
dCBhcmc3MTYsaW50IGFyZzcxNyxpbnQgYXJnNzE4LGludCBhcmc3MTksaW50IGFyZzcyMCxpbnQg
YXJnNzIxLGludCBhcmc3MjIsaW50IGFyZzcyMyxpbnQgYXJnNzI0LGludCBhcmc3MjUsaW50IGFy
ZzcyNixpbnQgYXJnNzI3LGludCBhcmc3MjgsaW50IGFyZzcyOSxpbnQgYXJnNzMwLGludCBhcmc3
MzEsaW50IGFyZzczMixpbnQgYXJnNzMzLGludCBhcmc3MzQsaW50IGFyZzczNSxpbnQgYXJnNzM2
LGludCBhcmc3MzcsaW50IGFyZzczOCxpbnQgYXJnNzM5LGludCBhcmc3NDAsaW50IGFyZzc0MSxp
bnQgYXJnNzQyLGludCBhcmc3NDMsaW50IGFyZzc0NCxpbnQgYXJnNzQ1LGludCBhcmc3NDYsaW50
IGFyZzc0NyxpbnQgYXJnNzQ4LGludCBhcmc3NDksaW50IGFyZzc1MCxpbnQgYXJnNzUxLGludCBh
cmc3NTIsaW50IGFyZzc1MyxpbnQgYXJnNzU0LGludCBhcmc3NTUsaW50IGFyZzc1NixpbnQgYXJn
NzU3LGludCBhcmc3NTgsaW50IGFyZzc1OSxpbnQgYXJnNzYwLGludCBhcmc3NjEsaW50IGFyZzc2
MixpbnQgYXJnNzYzLGludCBhcmc3NjQsaW50IGFyZzc2NSxpbnQgYXJnNzY2LGludCBhcmc3Njcs
aW50IGFyZzc2OCxpbnQgYXJnNzY5LGludCBhcmc3NzAsaW50IGFyZzc3MSxpbnQgYXJnNzcyLGlu
dCBhcmc3NzMsaW50IGFyZzc3NCxpbnQgYXJnNzc1LGludCBhcmc3NzYsaW50IGFyZzc3NyxpbnQg
YXJnNzc4LGludCBhcmc3NzksaW50IGFyZzc4MCxpbnQgYXJnNzgxLGludCBhcmc3ODIsaW50IGFy
Zzc4MyxpbnQgYXJnNzg0LGludCBhcmc3ODUsaW50IGFyZzc4NixpbnQgYXJnNzg3LGludCBhcmc3
ODgsaW50IGFyZzc4OSxpbnQgYXJnNzkwLGludCBhcmc3OTEsaW50IGFyZzc5MixpbnQgYXJnNzkz
LGludCBhcmc3OTQsaW50IGFyZzc5NSxpbnQgYXJnNzk2LGludCBhcmc3OTcsaW50IGFyZzc5OCxp
bnQgYXJnNzk5LGludCBhcmc4MDAsaW50IGFyZzgwMSxpbnQgYXJnODAyLGludCBhcmc4MDMsaW50
IGFyZzgwNCxpbnQgYXJnODA1LGludCBhcmc4MDYsaW50IGFyZzgwNyxpbnQgYXJnODA4LGludCBh
cmc4MDksaW50IGFyZzgxMCxpbnQgYXJnODExLGludCBhcmc4MTIsaW50IGFyZzgxMyxpbnQgYXJn
ODE0LGludCBhcmc4MTUsaW50IGFyZzgxNixpbnQgYXJnODE3LGludCBhcmc4MTgsaW50IGFyZzgx
OSxpbnQgYXJnODIwLGludCBhcmc4MjEsaW50IGFyZzgyMixpbnQgYXJnODIzLGludCBhcmc4MjQs
aW50IGFyZzgyNSxpbnQgYXJnODI2LGludCBhcmc4MjcsaW50IGFyZzgyOCxpbnQgYXJnODI5LGlu
dCBhcmc4MzAsaW50IGFyZzgzMSxpbnQgYXJnODMyLGludCBhcmc4MzMsaW50IGFyZzgzNCxpbnQg
YXJnODM1LGludCBhcmc4MzYsaW50IGFyZzgzNyxpbnQgYXJnODM4LGludCBhcmc4MzksaW50IGFy
Zzg0MCxpbnQgYXJnODQxLGludCBhcmc4NDIsaW50IGFyZzg0MyxpbnQgYXJnODQ0LGludCBhcmc4
NDUsaW50IGFyZzg0NixpbnQgYXJnODQ3LGludCBhcmc4NDgsaW50IGFyZzg0OSxpbnQgYXJnODUw
LGludCBhcmc4NTEsaW50IGFyZzg1MixpbnQgYXJnODUzLGludCBhcmc4NTQsaW50IGFyZzg1NSxp
bnQgYXJnODU2LGludCBhcmc4NTcsaW50IGFyZzg1OCxpbnQgYXJnODU5LGludCBhcmc4NjAsaW50
IGFyZzg2MSxpbnQgYXJnODYyLGludCBhcmc4NjMsaW50IGFyZzg2NCxpbnQgYXJnODY1LGludCBh
cmc4NjYsaW50IGFyZzg2NyxpbnQgYXJnODY4LGludCBhcmc4NjksaW50IGFyZzg3MCxpbnQgYXJn
ODcxLGludCBhcmc4NzIsaW50IGFyZzg3MyxpbnQgYXJnODc0LGludCBhcmc4NzUsaW50IGFyZzg3
NixpbnQgYXJnODc3LGludCBhcmc4NzgsaW50IGFyZzg3OSxpbnQgYXJnODgwLGludCBhcmc4ODEs
aW50IGFyZzg4MixpbnQgYXJnODgzLGludCBhcmc4ODQsaW50IGFyZzg4NSxpbnQgYXJnODg2LGlu
dCBhcmc4ODcsaW50IGFyZzg4OCxpbnQgYXJnODg5LGludCBhcmc4OTAsaW50IGFyZzg5MSxpbnQg
YXJnODkyLGludCBhcmc4OTMsaW50IGFyZzg5NCxpbnQgYXJnODk1LGludCBhcmc4OTYsaW50IGFy
Zzg5NyxpbnQgYXJnODk4LGludCBhcmc4OTksaW50IGFyZzkwMCxpbnQgYXJnOTAxLGludCBhcmc5
MDIsaW50IGFyZzkwMyxpbnQgYXJnOTA0LGludCBhcmc5MDUsaW50IGFyZzkwNixpbnQgYXJnOTA3
LGludCBhcmc5MDgsaW50IGFyZzkwOSxpbnQgYXJnOTEwLGludCBhcmc5MTEsaW50IGFyZzkxMixp
bnQgYXJnOTEzLGludCBhcmc5MTQsaW50IGFyZzkxNSxpbnQgYXJnOTE2LGludCBhcmc5MTcsaW50
IGFyZzkxOCxpbnQgYXJnOTE5LGludCBhcmc5MjAsaW50IGFyZzkyMSxpbnQgYXJnOTIyLGludCBh
cmc5MjMsaW50IGFyZzkyNCxpbnQgYXJnOTI1LGludCBhcmc5MjYsaW50IGFyZzkyNyxpbnQgYXJn
OTI4LGludCBhcmc5MjksaW50IGFyZzkzMCxpbnQgYXJnOTMxLGludCBhcmc5MzIsaW50IGFyZzkz
MyxpbnQgYXJnOTM0LGludCBhcmc5MzUsaW50IGFyZzkzNixpbnQgYXJnOTM3LGludCBhcmc5Mzgs
aW50IGFyZzkzOSxpbnQgYXJnOTQwLGludCBhcmc5NDEsaW50IGFyZzk0MixpbnQgYXJnOTQzLGlu
dCBhcmc5NDQsaW50IGFyZzk0NSxpbnQgYXJnOTQ2LGludCBhcmc5NDcsaW50IGFyZzk0OCxpbnQg
YXJnOTQ5LGludCBhcmc5NTAsaW50IGFyZzk1MSxpbnQgYXJnOTUyLGludCBhcmc5NTMsaW50IGFy
Zzk1NCxpbnQgYXJnOTU1LGludCBhcmc5NTYsaW50IGFyZzk1NyxpbnQgYXJnOTU4LGludCBhcmc5
NTksaW50IGFyZzk2MCxpbnQgYXJnOTYxLGludCBhcmc5NjIsaW50IGFyZzk2MyxpbnQgYXJnOTY0
LGludCBhcmc5NjUsaW50IGFyZzk2NixpbnQgYXJnOTY3LGludCBhcmc5NjgsaW50IGFyZzk2OSxp
bnQgYXJnOTcwLGludCBhcmc5NzEsaW50IGFyZzk3MixpbnQgYXJnOTczLGludCBhcmc5NzQsaW50
IGFyZzk3NSxpbnQgYXJnOTc2LGludCBhcmc5NzcsaW50IGFyZzk3OCxpbnQgYXJnOTc5LGludCBh
cmc5ODAsaW50IGFyZzk4MSxpbnQgYXJnOTgyLGludCBhcmc5ODMsaW50IGFyZzk4NCxpbnQgYXJn
OTg1LGludCBhcmc5ODYsaW50IGFyZzk4NyxpbnQgYXJnOTg4LGludCBhcmc5ODksaW50IGFyZzk5
MCxpbnQgYXJnOTkxLGludCBhcmc5OTIsaW50IGFyZzk5MyxpbnQgYXJnOTk0LGludCBhcmc5OTUs
aW50IGFyZzk5NixpbnQgYXJnOTk3LGludCBhcmc5OTgsaW50IGFyZzk5OSxpbnQgYXJnMTAwMCxp
bnQgYXJnMTAwMSxpbnQgYXJnMTAwMixpbnQgYXJnMTAwMyxpbnQgYXJnMTAwNCxpbnQgYXJnMTAw
NSxpbnQgYXJnMTAwNixpbnQgYXJnMTAwNyxpbnQgYXJnMTAwOCxpbnQgYXJnMTAwOSxpbnQgYXJn
MTAxMCxpbnQgYXJnMTAxMSxpbnQgYXJnMTAxMixpbnQgYXJnMTAxMyxpbnQgYXJnMTAxNCxpbnQg
YXJnMTAxNSxpbnQgYXJnMTAxNixpbnQgYXJnMTAxNyxpbnQgYXJnMTAxOCxpbnQgYXJnMTAxOSxp
bnQgYXJnMTAyMCxpbnQgYXJnMTAyMSxpbnQgYXJnMTAyMixpbnQgYXJnMTAyMyxpbnQgYXJnMTAy
NCxpbnQgYXJnMTAyNSxpbnQgYXJnMTAyNixpbnQgYXJnMTAyNyxpbnQgYXJnMTAyOCxpbnQgYXJn
MTAyOSxpbnQgYXJnMTAzMCxpbnQgYXJnMTAzMSxpbnQgYXJnMTAzMixpbnQgYXJnMTAzMyxpbnQg
YXJnMTAzNCxpbnQgYXJnMTAzNSxpbnQgYXJnMTAzNixpbnQgYXJnMTAzNyxpbnQgYXJnMTAzOCxp
bnQgYXJnMTAzOSxpbnQgYXJnMTA0MCxpbnQgYXJnMTA0MSxpbnQgYXJnMTA0MixpbnQgYXJnMTA0
MyxpbnQgYXJnMTA0NCxpbnQgYXJnMTA0NSxpbnQgYXJnMTA0NixpbnQgYXJnMTA0NyxpbnQgYXJn
MTA0OCxpbnQgYXJnMTA0OSxpbnQgYXJnMTA1MCxpbnQgYXJnMTA1MSxpbnQgYXJnMTA1MixpbnQg
YXJnMTA1MyxpbnQgYXJnMTA1NCxpbnQgYXJnMTA1NSxpbnQgYXJnMTA1NixpbnQgYXJnMTA1Nyxp
bnQgYXJnMTA1OCxpbnQgYXJnMTA1OSxpbnQgYXJnMTA2MCxpbnQgYXJnMTA2MSxpbnQgYXJnMTA2
MixpbnQgYXJnMTA2MyxpbnQgYXJnMTA2NCxpbnQgYXJnMTA2NSxpbnQgYXJnMTA2NixpbnQgYXJn
MTA2NyxpbnQgYXJnMTA2OCxpbnQgYXJnMTA2OSxpbnQgYXJnMTA3MCxpbnQgYXJnMTA3MSxpbnQg
YXJnMTA3MixpbnQgYXJnMTA3MyxpbnQgYXJnMTA3NCxpbnQgYXJnMTA3NSxpbnQgYXJnMTA3Nixp
bnQgYXJnMTA3NyxpbnQgYXJnMTA3OCxpbnQgYXJnMTA3OSxpbnQgYXJnMTA4MCxpbnQgYXJnMTA4
MSxpbnQgYXJnMTA4MixpbnQgYXJnMTA4MyxpbnQgYXJnMTA4NCxpbnQgYXJnMTA4NSxpbnQgYXJn
MTA4NixpbnQgYXJnMTA4NyxpbnQgYXJnMTA4OCxpbnQgYXJnMTA4OSxpbnQgYXJnMTA5MCxpbnQg
YXJnMTA5MSxpbnQgYXJnMTA5MixpbnQgYXJnMTA5MyxpbnQgYXJnMTA5NCxpbnQgYXJnMTA5NSxp
bnQgYXJnMTA5NixpbnQgYXJnMTA5NyxpbnQgYXJnMTA5OCxpbnQgYXJnMTA5OSxpbnQgYXJnMTEw
MCxpbnQgYXJnMTEwMSxpbnQgYXJnMTEwMixpbnQgYXJnMTEwMyxpbnQgYXJnMTEwNCxpbnQgYXJn
MTEwNSxpbnQgYXJnMTEwNixpbnQgYXJnMTEwNyxpbnQgYXJnMTEwOCxpbnQgYXJnMTEwOSxpbnQg
YXJnMTExMCxpbnQgYXJnMTExMSxpbnQgYXJnMTExMixpbnQgYXJnMTExMyxpbnQgYXJnMTExNCxp
bnQgYXJnMTExNSxpbnQgYXJnMTExNixpbnQgYXJnMTExNyxpbnQgYXJnMTExOCxpbnQgYXJnMTEx
OSxpbnQgYXJnMTEyMCxpbnQgYXJnMTEyMSxpbnQgYXJnMTEyMixpbnQgYXJnMTEyMyxpbnQgYXJn
MTEyNCxpbnQgYXJnMTEyNSxpbnQgYXJnMTEyNixpbnQgYXJnMTEyNyxpbnQgYXJnMTEyOCxpbnQg
YXJnMTEyOSxpbnQgYXJnMTEzMCxpbnQgYXJnMTEzMSxpbnQgYXJnMTEzMixpbnQgYXJnMTEzMyxp
bnQgYXJnMTEzNCxpbnQgYXJnMTEzNSxpbnQgYXJnMTEzNixpbnQgYXJnMTEzNyxpbnQgYXJnMTEz
OCxpbnQgYXJnMTEzOSxpbnQgYXJnMTE0MCxpbnQgYXJnMTE0MSxpbnQgYXJnMTE0MixpbnQgYXJn
MTE0MyxpbnQgYXJnMTE0NCxpbnQgYXJnMTE0NSxpbnQgYXJnMTE0NixpbnQgYXJnMTE0NyxpbnQg
YXJnMTE0OCxpbnQgYXJnMTE0OSxpbnQgYXJnMTE1MCxpbnQgYXJnMTE1MSxpbnQgYXJnMTE1Mixp
bnQgYXJnMTE1MyxpbnQgYXJnMTE1NCxpbnQgYXJnMTE1NSxpbnQgYXJnMTE1NixpbnQgYXJnMTE1
NyxpbnQgYXJnMTE1OCxpbnQgYXJnMTE1OSxpbnQgYXJnMTE2MCxpbnQgYXJnMTE2MSxpbnQgYXJn
MTE2MixpbnQgYXJnMTE2MyxpbnQgYXJnMTE2NCxpbnQgYXJnMTE2NSxpbnQgYXJnMTE2NixpbnQg
YXJnMTE2NyxpbnQgYXJnMTE2OCxpbnQgYXJnMTE2OSxpbnQgYXJnMTE3MCxpbnQgYXJnMTE3MSxp
bnQgYXJnMTE3MixpbnQgYXJnMTE3MyxpbnQgYXJnMTE3NCxpbnQgYXJnMTE3NSxpbnQgYXJnMTE3
NixpbnQgYXJnMTE3NyxpbnQgYXJnMTE3OCxpbnQgYXJnMTE3OSxpbnQgYXJnMTE4MCxpbnQgYXJn
MTE4MSxpbnQgYXJnMTE4MixpbnQgYXJnMTE4MyxpbnQgYXJnMTE4NCxpbnQgYXJnMTE4NSxpbnQg
YXJnMTE4NixpbnQgYXJnMTE4NyxpbnQgYXJnMTE4OCxpbnQgYXJnMTE4OSxpbnQgYXJnMTE5MCxp
bnQgYXJnMTE5MSxpbnQgYXJnMTE5MixpbnQgYXJnMTE5MyxpbnQgYXJnMTE5NCxpbnQgYXJnMTE5
NSxpbnQgYXJnMTE5NixpbnQgYXJnMTE5NyxpbnQgYXJnMTE5OCxpbnQgYXJnMTE5OSxpbnQgYXJn
MTIwMCxpbnQgYXJnMTIwMSxpbnQgYXJnMTIwMixpbnQgYXJnMTIwMyxpbnQgYXJnMTIwNCxpbnQg
YXJnMTIwNSxpbnQgYXJnMTIwNixpbnQgYXJnMTIwNyxpbnQgYXJnMTIwOCxpbnQgYXJnMTIwOSxp
bnQgYXJnMTIxMCxpbnQgYXJnMTIxMSxpbnQgYXJnMTIxMixpbnQgYXJnMTIxMyxpbnQgYXJnMTIx
NCxpbnQgYXJnMTIxNSxpbnQgYXJnMTIxNixpbnQgYXJnMTIxNyxpbnQgYXJnMTIxOCxpbnQgYXJn
MTIxOSxpbnQgYXJnMTIyMCxpbnQgYXJnMTIyMSxpbnQgYXJnMTIyMixpbnQgYXJnMTIyMyxpbnQg
YXJnMTIyNCxpbnQgYXJnMTIyNSxpbnQgYXJnMTIyNixpbnQgYXJnMTIyNyxpbnQgYXJnMTIyOCxp
bnQgYXJnMTIyOSxpbnQgYXJnMTIzMCxpbnQgYXJnMTIzMSxpbnQgYXJnMTIzMixpbnQgYXJnMTIz
MyxpbnQgYXJnMTIzNCxpbnQgYXJnMTIzNSxpbnQgYXJnMTIzNixpbnQgYXJnMTIzNyxpbnQgYXJn
MTIzOCxpbnQgYXJnMTIzOSxpbnQgYXJnMTI0MCxpbnQgYXJnMTI0MSxpbnQgYXJnMTI0MixpbnQg
YXJnMTI0MyxpbnQgYXJnMTI0NCxpbnQgYXJnMTI0NSxpbnQgYXJnMTI0NixpbnQgYXJnMTI0Nyxp
bnQgYXJnMTI0OCxpbnQgYXJnMTI0OSxpbnQgYXJnMTI1MCxpbnQgYXJnMTI1MSxpbnQgYXJnMTI1
MixpbnQgYXJnMTI1MyxpbnQgYXJnMTI1NCxpbnQgYXJnMTI1NSxpbnQgYXJnMTI1NixpbnQgYXJn
MTI1NyxpbnQgYXJnMTI1OCxpbnQgYXJnMTI1OSxpbnQgYXJnMTI2MCxpbnQgYXJnMTI2MSxpbnQg
YXJnMTI2MixpbnQgYXJnMTI2MyxpbnQgYXJnMTI2NCxpbnQgYXJnMTI2NSxpbnQgYXJnMTI2Nixp
bnQgYXJnMTI2NyxpbnQgYXJnMTI2OCxpbnQgYXJnMTI2OSxpbnQgYXJnMTI3MCxpbnQgYXJnMTI3
MSxpbnQgYXJnMTI3MixpbnQgYXJnMTI3MyxpbnQgYXJnMTI3NCxpbnQgYXJnMTI3NSxpbnQgYXJn
MTI3NixpbnQgYXJnMTI3NyxpbnQgYXJnMTI3OCxpbnQgYXJnMTI3OSxpbnQgYXJnMTI4MCxpbnQg
YXJnMTI4MSxpbnQgYXJnMTI4MixpbnQgYXJnMTI4MyxpbnQgYXJnMTI4NCxpbnQgYXJnMTI4NSxp
bnQgYXJnMTI4NixpbnQgYXJnMTI4NyxpbnQgYXJnMTI4OCxpbnQgYXJnMTI4OSxpbnQgYXJnMTI5
MCxpbnQgYXJnMTI5MSxpbnQgYXJnMTI5MixpbnQgYXJnMTI5MyxpbnQgYXJnMTI5NCxpbnQgYXJn
MTI5NSxpbnQgYXJnMTI5NixpbnQgYXJnMTI5NyxpbnQgYXJnMTI5OCxpbnQgYXJnMTI5OSxpbnQg
YXJnMTMwMCxpbnQgYXJnMTMwMSxpbnQgYXJnMTMwMixpbnQgYXJnMTMwMyxpbnQgYXJnMTMwNCxp
bnQgYXJnMTMwNSxpbnQgYXJnMTMwNixpbnQgYXJnMTMwNyxpbnQgYXJnMTMwOCxpbnQgYXJnMTMw
OSxpbnQgYXJnMTMxMCxpbnQgYXJnMTMxMSxpbnQgYXJnMTMxMixpbnQgYXJnMTMxMyxpbnQgYXJn
MTMxNCxpbnQgYXJnMTMxNSxpbnQgYXJnMTMxNixpbnQgYXJnMTMxNyxpbnQgYXJnMTMxOCxpbnQg
YXJnMTMxOSxpbnQgYXJnMTMyMCxpbnQgYXJnMTMyMSxpbnQgYXJnMTMyMixpbnQgYXJnMTMyMyxp
bnQgYXJnMTMyNCxpbnQgYXJnMTMyNSxpbnQgYXJnMTMyNixpbnQgYXJnMTMyNyxpbnQgYXJnMTMy
OCxpbnQgYXJnMTMyOSxpbnQgYXJnMTMzMCxpbnQgYXJnMTMzMSxpbnQgYXJnMTMzMixpbnQgYXJn
MTMzMyxpbnQgYXJnMTMzNCxpbnQgYXJnMTMzNSxpbnQgYXJnMTMzNixpbnQgYXJnMTMzNyxpbnQg
YXJnMTMzOCxpbnQgYXJnMTMzOSxpbnQgYXJnMTM0MCxpbnQgYXJnMTM0MSxpbnQgYXJnMTM0Mixp
bnQgYXJnMTM0MyxpbnQgYXJnMTM0NCxpbnQgYXJnMTM0NSxpbnQgYXJnMTM0NixpbnQgYXJnMTM0
NyxpbnQgYXJnMTM0OCxpbnQgYXJnMTM0OSxpbnQgYXJnMTM1MCxpbnQgYXJnMTM1MSxpbnQgYXJn
MTM1MixpbnQgYXJnMTM1MyxpbnQgYXJnMTM1NCxpbnQgYXJnMTM1NSxpbnQgYXJnMTM1NixpbnQg
YXJnMTM1NyxpbnQgYXJnMTM1OCxpbnQgYXJnMTM1OSxpbnQgYXJnMTM2MCxpbnQgYXJnMTM2MSxp
bnQgYXJnMTM2MixpbnQgYXJnMTM2MyxpbnQgYXJnMTM2NCxpbnQgYXJnMTM2NSxpbnQgYXJnMTM2
NixpbnQgYXJnMTM2NyxpbnQgYXJnMTM2OCxpbnQgYXJnMTM2OSxpbnQgYXJnMTM3MCxpbnQgYXJn
MTM3MSxpbnQgYXJnMTM3MixpbnQgYXJnMTM3MyxpbnQgYXJnMTM3NCxpbnQgYXJnMTM3NSxpbnQg
YXJnMTM3NixpbnQgYXJnMTM3NyxpbnQgYXJnMTM3OCxpbnQgYXJnMTM3OSxpbnQgYXJnMTM4MCxp
bnQgYXJnMTM4MSxpbnQgYXJnMTM4MixpbnQgYXJnMTM4MyxpbnQgYXJnMTM4NCxpbnQgYXJnMTM4
NSxpbnQgYXJnMTM4NixpbnQgYXJnMTM4NyxpbnQgYXJnMTM4OCxpbnQgYXJnMTM4OSxpbnQgYXJn
MTM5MCxpbnQgYXJnMTM5MSxpbnQgYXJnMTM5MixpbnQgYXJnMTM5MyxpbnQgYXJnMTM5NCxpbnQg
YXJnMTM5NSxpbnQgYXJnMTM5NixpbnQgYXJnMTM5NyxpbnQgYXJnMTM5OCxpbnQgYXJnMTM5OSxp
bnQgYXJnMTQwMCxpbnQgYXJnMTQwMSxpbnQgYXJnMTQwMixpbnQgYXJnMTQwMyxpbnQgYXJnMTQw
NCxpbnQgYXJnMTQwNSxpbnQgYXJnMTQwNixpbnQgYXJnMTQwNyxpbnQgYXJnMTQwOCxpbnQgYXJn
MTQwOSxpbnQgYXJnMTQxMCxpbnQgYXJnMTQxMSxpbnQgYXJnMTQxMixpbnQgYXJnMTQxMyxpbnQg
YXJnMTQxNCxpbnQgYXJnMTQxNSxpbnQgYXJnMTQxNixpbnQgYXJnMTQxNyxpbnQgYXJnMTQxOCxp
bnQgYXJnMTQxOSxpbnQgYXJnMTQyMCxpbnQgYXJnMTQyMSxpbnQgYXJnMTQyMixpbnQgYXJnMTQy
MyxpbnQgYXJnMTQyNCxpbnQgYXJnMTQyNSxpbnQgYXJnMTQyNixpbnQgYXJnMTQyNyxpbnQgYXJn
MTQyOCxpbnQgYXJnMTQyOSxpbnQgYXJnMTQzMCxpbnQgYXJnMTQzMSxpbnQgYXJnMTQzMixpbnQg
YXJnMTQzMyxpbnQgYXJnMTQzNCxpbnQgYXJnMTQzNSxpbnQgYXJnMTQzNixpbnQgYXJnMTQzNyxp
bnQgYXJnMTQzOCxpbnQgYXJnMTQzOSxpbnQgYXJnMTQ0MCxpbnQgYXJnMTQ0MSxpbnQgYXJnMTQ0
MixpbnQgYXJnMTQ0MyxpbnQgYXJnMTQ0NCxpbnQgYXJnMTQ0NSxpbnQgYXJnMTQ0NixpbnQgYXJn
MTQ0NyxpbnQgYXJnMTQ0OCxpbnQgYXJnMTQ0OSxpbnQgYXJnMTQ1MCxpbnQgYXJnMTQ1MSxpbnQg
YXJnMTQ1MixpbnQgYXJnMTQ1MyxpbnQgYXJnMTQ1NCxpbnQgYXJnMTQ1NSxpbnQgYXJnMTQ1Nixp
bnQgYXJnMTQ1NyxpbnQgYXJnMTQ1OCxpbnQgYXJnMTQ1OSxpbnQgYXJnMTQ2MCxpbnQgYXJnMTQ2
MSxpbnQgYXJnMTQ2MixpbnQgYXJnMTQ2MyxpbnQgYXJnMTQ2NCxpbnQgYXJnMTQ2NSxpbnQgYXJn
MTQ2NixpbnQgYXJnMTQ2NyxpbnQgYXJnMTQ2OCxpbnQgYXJnMTQ2OSxpbnQgYXJnMTQ3MCxpbnQg
YXJnMTQ3MSxpbnQgYXJnMTQ3MixpbnQgYXJnMTQ3MyxpbnQgYXJnMTQ3NCxpbnQgYXJnMTQ3NSxp
bnQgYXJnMTQ3NixpbnQgYXJnMTQ3NyxpbnQgYXJnMTQ3OCxpbnQgYXJnMTQ3OSxpbnQgYXJnMTQ4
MCxpbnQgYXJnMTQ4MSxpbnQgYXJnMTQ4MixpbnQgYXJnMTQ4MyxpbnQgYXJnMTQ4NCxpbnQgYXJn
MTQ4NSxpbnQgYXJnMTQ4NixpbnQgYXJnMTQ4NyxpbnQgYXJnMTQ4OCxpbnQgYXJnMTQ4OSxpbnQg
YXJnMTQ5MCxpbnQgYXJnMTQ5MSxpbnQgYXJnMTQ5MixpbnQgYXJnMTQ5MyxpbnQgYXJnMTQ5NCxp
bnQgYXJnMTQ5NSxpbnQgYXJnMTQ5NixpbnQgYXJnMTQ5NyxpbnQgYXJnMTQ5OCxpbnQgYXJnMTQ5
OSxpbnQgYXJnMTUwMCxpbnQgYXJnMTUwMSxpbnQgYXJnMTUwMixpbnQgYXJnMTUwMyxpbnQgYXJn
MTUwNCxpbnQgYXJnMTUwNSxpbnQgYXJnMTUwNixpbnQgYXJnMTUwNyxpbnQgYXJnMTUwOCxpbnQg
YXJnMTUwOSxpbnQgYXJnMTUxMCxpbnQgYXJnMTUxMSxpbnQgYXJnMTUxMixpbnQgYXJnMTUxMyxp
bnQgYXJnMTUxNCxpbnQgYXJnMTUxNSxpbnQgYXJnMTUxNixpbnQgYXJnMTUxNyxpbnQgYXJnMTUx
OCxpbnQgYXJnMTUxOSxpbnQgYXJnMTUyMCxpbnQgYXJnMTUyMSxpbnQgYXJnMTUyMixpbnQgYXJn
MTUyMyxpbnQgYXJnMTUyNCxpbnQgYXJnMTUyNSxpbnQgYXJnMTUyNixpbnQgYXJnMTUyNyxpbnQg
YXJnMTUyOCxpbnQgYXJnMTUyOSxpbnQgYXJnMTUzMCxpbnQgYXJnMTUzMSxpbnQgYXJnMTUzMixp
bnQgYXJnMTUzMyxpbnQgYXJnMTUzNCxpbnQgYXJnMTUzNSxpbnQgYXJnMTUzNixpbnQgYXJnMTUz
NyxpbnQgYXJnMTUzOCxpbnQgYXJnMTUzOSxpbnQgYXJnMTU0MCxpbnQgYXJnMTU0MSxpbnQgYXJn
MTU0MixpbnQgYXJnMTU0MyxpbnQgYXJnMTU0NCxpbnQgYXJnMTU0NSxpbnQgYXJnMTU0NixpbnQg
YXJnMTU0NyxpbnQgYXJnMTU0OCxpbnQgYXJnMTU0OSxpbnQgYXJnMTU1MCxpbnQgYXJnMTU1MSxp
bnQgYXJnMTU1MixpbnQgYXJnMTU1MyxpbnQgYXJnMTU1NCxpbnQgYXJnMTU1NSxpbnQgYXJnMTU1
NixpbnQgYXJnMTU1NyxpbnQgYXJnMTU1OCxpbnQgYXJnMTU1OSxpbnQgYXJnMTU2MCxpbnQgYXJn
MTU2MSxpbnQgYXJnMTU2MixpbnQgYXJnMTU2MyxpbnQgYXJnMTU2NCxpbnQgYXJnMTU2NSxpbnQg
YXJnMTU2NixpbnQgYXJnMTU2NyxpbnQgYXJnMTU2OCxpbnQgYXJnMTU2OSxpbnQgYXJnMTU3MCxp
bnQgYXJnMTU3MSxpbnQgYXJnMTU3MixpbnQgYXJnMTU3MyxpbnQgYXJnMTU3NCxpbnQgYXJnMTU3
NSxpbnQgYXJnMTU3NixpbnQgYXJnMTU3NyxpbnQgYXJnMTU3OCxpbnQgYXJnMTU3OSxpbnQgYXJn
MTU4MCxpbnQgYXJnMTU4MSxpbnQgYXJnMTU4MixpbnQgYXJnMTU4MyxpbnQgYXJnMTU4NCxpbnQg
YXJnMTU4NSxpbnQgYXJnMTU4NixpbnQgYXJnMTU4NyxpbnQgYXJnMTU4OCxpbnQgYXJnMTU4OSxp
bnQgYXJnMTU5MCxpbnQgYXJnMTU5MSxpbnQgYXJnMTU5MixpbnQgYXJnMTU5MyxpbnQgYXJnMTU5
NCxpbnQgYXJnMTU5NSxpbnQgYXJnMTU5NixpbnQgYXJnMTU5NyxpbnQgYXJnMTU5OCxpbnQgYXJn
MTU5OSxpbnQgYXJnMTYwMCxpbnQgYXJnMTYwMSxpbnQgYXJnMTYwMixpbnQgYXJnMTYwMyxpbnQg
YXJnMTYwNCxpbnQgYXJnMTYwNSxpbnQgYXJnMTYwNixpbnQgYXJnMTYwNyxpbnQgYXJnMTYwOCxp
bnQgYXJnMTYwOSxpbnQgYXJnMTYxMCxpbnQgYXJnMTYxMSxpbnQgYXJnMTYxMixpbnQgYXJnMTYx
MyxpbnQgYXJnMTYxNCxpbnQgYXJnMTYxNSxpbnQgYXJnMTYxNixpbnQgYXJnMTYxNyxpbnQgYXJn
MTYxOCxpbnQgYXJnMTYxOSxpbnQgYXJnMTYyMCxpbnQgYXJnMTYyMSxpbnQgYXJnMTYyMixpbnQg
YXJnMTYyMyxpbnQgYXJnMTYyNCxpbnQgYXJnMTYyNSxpbnQgYXJnMTYyNixpbnQgYXJnMTYyNyxp
bnQgYXJnMTYyOCxpbnQgYXJnMTYyOSxpbnQgYXJnMTYzMCxpbnQgYXJnMTYzMSxpbnQgYXJnMTYz
MixpbnQgYXJnMTYzMyxpbnQgYXJnMTYzNCxpbnQgYXJnMTYzNSxpbnQgYXJnMTYzNixpbnQgYXJn
MTYzNyxpbnQgYXJnMTYzOCxpbnQgYXJnMTYzOSxpbnQgYXJnMTY0MCxpbnQgYXJnMTY0MSxpbnQg
YXJnMTY0MixpbnQgYXJnMTY0MyxpbnQgYXJnMTY0NCxpbnQgYXJnMTY0NSxpbnQgYXJnMTY0Nixp
bnQgYXJnMTY0NyxpbnQgYXJnMTY0OCxpbnQgYXJnMTY0OSxpbnQgYXJnMTY1MCxpbnQgYXJnMTY1
MSxpbnQgYXJnMTY1MixpbnQgYXJnMTY1MyxpbnQgYXJnMTY1NCxpbnQgYXJnMTY1NSxpbnQgYXJn
MTY1NixpbnQgYXJnMTY1NyxpbnQgYXJnMTY1OCxpbnQgYXJnMTY1OSxpbnQgYXJnMTY2MCxpbnQg
YXJnMTY2MSxpbnQgYXJnMTY2MixpbnQgYXJnMTY2MyxpbnQgYXJnMTY2NCxpbnQgYXJnMTY2NSxp
bnQgYXJnMTY2NixpbnQgYXJnMTY2NyxpbnQgYXJnMTY2OCxpbnQgYXJnMTY2OSxpbnQgYXJnMTY3
MCxpbnQgYXJnMTY3MSxpbnQgYXJnMTY3MixpbnQgYXJnMTY3MyxpbnQgYXJnMTY3NCxpbnQgYXJn
MTY3NSxpbnQgYXJnMTY3NixpbnQgYXJnMTY3NyxpbnQgYXJnMTY3OCxpbnQgYXJnMTY3OSxpbnQg
YXJnMTY4MCxpbnQgYXJnMTY4MSxpbnQgYXJnMTY4MixpbnQgYXJnMTY4MyxpbnQgYXJnMTY4NCxp
bnQgYXJnMTY4NSxpbnQgYXJnMTY4NixpbnQgYXJnMTY4NyxpbnQgYXJnMTY4OCxpbnQgYXJnMTY4
OSxpbnQgYXJnMTY5MCxpbnQgYXJnMTY5MSxpbnQgYXJnMTY5MixpbnQgYXJnMTY5MyxpbnQgYXJn
MTY5NCxpbnQgYXJnMTY5NSxpbnQgYXJnMTY5NixpbnQgYXJnMTY5NyxpbnQgYXJnMTY5OCxpbnQg
YXJnMTY5OSxpbnQgYXJnMTcwMCxpbnQgYXJnMTcwMSxpbnQgYXJnMTcwMixpbnQgYXJnMTcwMyxp
bnQgYXJnMTcwNCxpbnQgYXJnMTcwNSxpbnQgYXJnMTcwNixpbnQgYXJnMTcwNyxpbnQgYXJnMTcw
OCxpbnQgYXJnMTcwOSxpbnQgYXJnMTcxMCxpbnQgYXJnMTcxMSxpbnQgYXJnMTcxMixpbnQgYXJn
MTcxMyxpbnQgYXJnMTcxNCxpbnQgYXJnMTcxNSxpbnQgYXJnMTcxNixpbnQgYXJnMTcxNyxpbnQg
YXJnMTcxOCxpbnQgYXJnMTcxOSxpbnQgYXJnMTcyMCxpbnQgYXJnMTcyMSxpbnQgYXJnMTcyMixp
bnQgYXJnMTcyMyxpbnQgYXJnMTcyNCxpbnQgYXJnMTcyNSxpbnQgYXJnMTcyNixpbnQgYXJnMTcy
NyxpbnQgYXJnMTcyOCxpbnQgYXJnMTcyOSxpbnQgYXJnMTczMCxpbnQgYXJnMTczMSxpbnQgYXJn
MTczMixpbnQgYXJnMTczMyxpbnQgYXJnMTczNCxpbnQgYXJnMTczNSxpbnQgYXJnMTczNixpbnQg
YXJnMTczNyxpbnQgYXJnMTczOCxpbnQgYXJnMTczOSxpbnQgYXJnMTc0MCxpbnQgYXJnMTc0MSxp
bnQgYXJnMTc0MixpbnQgYXJnMTc0MyxpbnQgYXJnMTc0NCxpbnQgYXJnMTc0NSxpbnQgYXJnMTc0
NixpbnQgYXJnMTc0NyxpbnQgYXJnMTc0OCxpbnQgYXJnMTc0OSxpbnQgYXJnMTc1MCxpbnQgYXJn
MTc1MSxpbnQgYXJnMTc1MixpbnQgYXJnMTc1MyxpbnQgYXJnMTc1NCxpbnQgYXJnMTc1NSxpbnQg
YXJnMTc1NixpbnQgYXJnMTc1NyxpbnQgYXJnMTc1OCxpbnQgYXJnMTc1OSxpbnQgYXJnMTc2MCxp
bnQgYXJnMTc2MSxpbnQgYXJnMTc2MixpbnQgYXJnMTc2MyxpbnQgYXJnMTc2NCxpbnQgYXJnMTc2
NSxpbnQgYXJnMTc2NixpbnQgYXJnMTc2NyxpbnQgYXJnMTc2OCxpbnQgYXJnMTc2OSxpbnQgYXJn
MTc3MCxpbnQgYXJnMTc3MSxpbnQgYXJnMTc3MixpbnQgYXJnMTc3MyxpbnQgYXJnMTc3NCxpbnQg
YXJnMTc3NSxpbnQgYXJnMTc3NixpbnQgYXJnMTc3NyxpbnQgYXJnMTc3OCxpbnQgYXJnMTc3OSxp
bnQgYXJnMTc4MCxpbnQgYXJnMTc4MSxpbnQgYXJnMTc4MixpbnQgYXJnMTc4MyxpbnQgYXJnMTc4
NCxpbnQgYXJnMTc4NSxpbnQgYXJnMTc4NixpbnQgYXJnMTc4NyxpbnQgYXJnMTc4OCxpbnQgYXJn
MTc4OSxpbnQgYXJnMTc5MCxpbnQgYXJnMTc5MSxpbnQgYXJnMTc5MixpbnQgYXJnMTc5MyxpbnQg
YXJnMTc5NCxpbnQgYXJnMTc5NSxpbnQgYXJnMTc5NixpbnQgYXJnMTc5NyxpbnQgYXJnMTc5OCxp
bnQgYXJnMTc5OSxpbnQgYXJnMTgwMCxpbnQgYXJnMTgwMSxpbnQgYXJnMTgwMixpbnQgYXJnMTgw
MyxpbnQgYXJnMTgwNCxpbnQgYXJnMTgwNSxpbnQgYXJnMTgwNixpbnQgYXJnMTgwNyxpbnQgYXJn
MTgwOCxpbnQgYXJnMTgwOSxpbnQgYXJnMTgxMCxpbnQgYXJnMTgxMSxpbnQgYXJnMTgxMixpbnQg
YXJnMTgxMyxpbnQgYXJnMTgxNCxpbnQgYXJnMTgxNSxpbnQgYXJnMTgxNixpbnQgYXJnMTgxNyxp
bnQgYXJnMTgxOCxpbnQgYXJnMTgxOSxpbnQgYXJnMTgyMCxpbnQgYXJnMTgyMSxpbnQgYXJnMTgy
MixpbnQgYXJnMTgyMyxpbnQgYXJnMTgyNCxpbnQgYXJnMTgyNSxpbnQgYXJnMTgyNixpbnQgYXJn
MTgyNyxpbnQgYXJnMTgyOCxpbnQgYXJnMTgyOSxpbnQgYXJnMTgzMCxpbnQgYXJnMTgzMSxpbnQg
YXJnMTgzMixpbnQgYXJnMTgzMyxpbnQgYXJnMTgzNCxpbnQgYXJnMTgzNSxpbnQgYXJnMTgzNixp
bnQgYXJnMTgzNyxpbnQgYXJnMTgzOCxpbnQgYXJnMTgzOSxpbnQgYXJnMTg0MCxpbnQgYXJnMTg0
MSxpbnQgYXJnMTg0MixpbnQgYXJnMTg0MyxpbnQgYXJnMTg0NCxpbnQgYXJnMTg0NSxpbnQgYXJn
MTg0NixpbnQgYXJnMTg0NyxpbnQgYXJnMTg0OCxpbnQgYXJnMTg0OSxpbnQgYXJnMTg1MCxpbnQg
YXJnMTg1MSxpbnQgYXJnMTg1MixpbnQgYXJnMTg1MyxpbnQgYXJnMTg1NCxpbnQgYXJnMTg1NSxp
bnQgYXJnMTg1NixpbnQgYXJnMTg1NyxpbnQgYXJnMTg1OCxpbnQgYXJnMTg1OSxpbnQgYXJnMTg2
MCxpbnQgYXJnMTg2MSxpbnQgYXJnMTg2MixpbnQgYXJnMTg2MyxpbnQgYXJnMTg2NCxpbnQgYXJn
MTg2NSxpbnQgYXJnMTg2NixpbnQgYXJnMTg2NyxpbnQgYXJnMTg2OCxpbnQgYXJnMTg2OSxpbnQg
YXJnMTg3MCxpbnQgYXJnMTg3MSxpbnQgYXJnMTg3MixpbnQgYXJnMTg3MyxpbnQgYXJnMTg3NCxp
bnQgYXJnMTg3NSxpbnQgYXJnMTg3NixpbnQgYXJnMTg3NyxpbnQgYXJnMTg3OCxpbnQgYXJnMTg3
OSxpbnQgYXJnMTg4MCxpbnQgYXJnMTg4MSxpbnQgYXJnMTg4MixpbnQgYXJnMTg4MyxpbnQgYXJn
MTg4NCxpbnQgYXJnMTg4NSxpbnQgYXJnMTg4NixpbnQgYXJnMTg4NyxpbnQgYXJnMTg4OCxpbnQg
YXJnMTg4OSxpbnQgYXJnMTg5MCxpbnQgYXJnMTg5MSxpbnQgYXJnMTg5MixpbnQgYXJnMTg5Myxp
bnQgYXJnMTg5NCxpbnQgYXJnMTg5NSxpbnQgYXJnMTg5NixpbnQgYXJnMTg5NyxpbnQgYXJnMTg5
OCxpbnQgYXJnMTg5OSxpbnQgYXJnMTkwMCxpbnQgYXJnMTkwMSxpbnQgYXJnMTkwMixpbnQgYXJn
MTkwMyxpbnQgYXJnMTkwNCxpbnQgYXJnMTkwNSxpbnQgYXJnMTkwNixpbnQgYXJnMTkwNyxpbnQg
YXJnMTkwOCxpbnQgYXJnMTkwOSxpbnQgYXJnMTkxMCxpbnQgYXJnMTkxMSxpbnQgYXJnMTkxMixp
bnQgYXJnMTkxMyxpbnQgYXJnMTkxNCxpbnQgYXJnMTkxNSxpbnQgYXJnMTkxNixpbnQgYXJnMTkx
NyxpbnQgYXJnMTkxOCxpbnQgYXJnMTkxOSxpbnQgYXJnMTkyMCxpbnQgYXJnMTkyMSxpbnQgYXJn
MTkyMixpbnQgYXJnMTkyMyxpbnQgYXJnMTkyNCxpbnQgYXJnMTkyNSxpbnQgYXJnMTkyNixpbnQg
YXJnMTkyNyxpbnQgYXJnMTkyOCxpbnQgYXJnMTkyOSxpbnQgYXJnMTkzMCxpbnQgYXJnMTkzMSxp
bnQgYXJnMTkzMixpbnQgYXJnMTkzMyxpbnQgYXJnMTkzNCxpbnQgYXJnMTkzNSxpbnQgYXJnMTkz
NixpbnQgYXJnMTkzNyxpbnQgYXJnMTkzOCxpbnQgYXJnMTkzOSxpbnQgYXJnMTk0MCxpbnQgYXJn
MTk0MSxpbnQgYXJnMTk0MixpbnQgYXJnMTk0MyxpbnQgYXJnMTk0NCxpbnQgYXJnMTk0NSxpbnQg
YXJnMTk0NixpbnQgYXJnMTk0NyxpbnQgYXJnMTk0OCxpbnQgYXJnMTk0OSxpbnQgYXJnMTk1MCxp
bnQgYXJnMTk1MSxpbnQgYXJnMTk1MixpbnQgYXJnMTk1MyxpbnQgYXJnMTk1NCxpbnQgYXJnMTk1
NSxpbnQgYXJnMTk1NixpbnQgYXJnMTk1NyxpbnQgYXJnMTk1OCxpbnQgYXJnMTk1OSxpbnQgYXJn
MTk2MCxpbnQgYXJnMTk2MSxpbnQgYXJnMTk2MixpbnQgYXJnMTk2MyxpbnQgYXJnMTk2NCxpbnQg
YXJnMTk2NSxpbnQgYXJnMTk2NixpbnQgYXJnMTk2NyxpbnQgYXJnMTk2OCxpbnQgYXJnMTk2OSxp
bnQgYXJnMTk3MCxpbnQgYXJnMTk3MSxpbnQgYXJnMTk3MixpbnQgYXJnMTk3MyxpbnQgYXJnMTk3
NCxpbnQgYXJnMTk3NSxpbnQgYXJnMTk3NixpbnQgYXJnMTk3NyxpbnQgYXJnMTk3OCxpbnQgYXJn
MTk3OSxpbnQgYXJnMTk4MCxpbnQgYXJnMTk4MSxpbnQgYXJnMTk4MixpbnQgYXJnMTk4MyxpbnQg
YXJnMTk4NCxpbnQgYXJnMTk4NSxpbnQgYXJnMTk4NixpbnQgYXJnMTk4NyxpbnQgYXJnMTk4OCxp
bnQgYXJnMTk4OSxpbnQgYXJnMTk5MCxpbnQgYXJnMTk5MSxpbnQgYXJnMTk5MixpbnQgYXJnMTk5
MyxpbnQgYXJnMTk5NCxpbnQgYXJnMTk5NSxpbnQgYXJnMTk5NixpbnQgYXJnMTk5NyxpbnQgYXJn
MTk5OCxpbnQgYXJnMTk5OSxpbnQgYXJnMjAwMCxpbnQgYXJnMjAwMSxpbnQgYXJnMjAwMixpbnQg
YXJnMjAwMyxpbnQgYXJnMjAwNCxpbnQgYXJnMjAwNSxpbnQgYXJnMjAwNixpbnQgYXJnMjAwNyxp
bnQgYXJnMjAwOCxpbnQgYXJnMjAwOSxpbnQgYXJnMjAxMCxpbnQgYXJnMjAxMSxpbnQgYXJnMjAx
MixpbnQgYXJnMjAxMyxpbnQgYXJnMjAxNCxpbnQgYXJnMjAxNSxpbnQgYXJnMjAxNixpbnQgYXJn
MjAxNyxpbnQgYXJnMjAxOCxpbnQgYXJnMjAxOSxpbnQgYXJnMjAyMCxpbnQgYXJnMjAyMSxpbnQg
YXJnMjAyMixpbnQgYXJnMjAyMyxpbnQgYXJnMjAyNCxpbnQgYXJnMjAyNSxpbnQgYXJnMjAyNixp
bnQgYXJnMjAyNyxpbnQgYXJnMjAyOCxpbnQgYXJnMjAyOSxpbnQgYXJnMjAzMCxpbnQgYXJnMjAz
MSxpbnQgYXJnMjAzMixpbnQgYXJnMjAzMyxpbnQgYXJnMjAzNCxpbnQgYXJnMjAzNSxpbnQgYXJn
MjAzNixpbnQgYXJnMjAzNyxpbnQgYXJnMjAzOCxpbnQgYXJnMjAzOSxpbnQgYXJnMjA0MCxpbnQg
YXJnMjA0MSxpbnQgYXJnMjA0MixpbnQgYXJnMjA0MyxpbnQgYXJnMjA0NCxpbnQgYXJnMjA0NSxp
bnQgYXJnMjA0NixpbnQgYXJnMjA0NyxpbnQgYXJnMjA0OCxpbnQgYXJnMjA0OSxpbnQgYXJnMjA1
MCxpbnQgYXJnMjA1MSxpbnQgYXJnMjA1MixpbnQgYXJnMjA1MyxpbnQgYXJnMjA1NCxpbnQgYXJn
MjA1NSxpbnQgYXJnMjA1NixpbnQgYXJnMjA1NyxpbnQgYXJnMjA1OCxpbnQgYXJnMjA1OSxpbnQg
YXJnMjA2MCxpbnQgYXJnMjA2MSxpbnQgYXJnMjA2MixpbnQgYXJnMjA2MyxpbnQgYXJnMjA2NCxp
bnQgYXJnMjA2NSxpbnQgYXJnMjA2NixpbnQgYXJnMjA2NyxpbnQgYXJnMjA2OCxpbnQgYXJnMjA2
OSxpbnQgYXJnMjA3MCxpbnQgYXJnMjA3MSxpbnQgYXJnMjA3MixpbnQgYXJnMjA3MyxpbnQgYXJn
MjA3NCxpbnQgYXJnMjA3NSxpbnQgYXJnMjA3NixpbnQgYXJnMjA3NyxpbnQgYXJnMjA3OCxpbnQg
YXJnMjA3OSxpbnQgYXJnMjA4MCxpbnQgYXJnMjA4MSxpbnQgYXJnMjA4MixpbnQgYXJnMjA4Myxp
bnQgYXJnMjA4NCxpbnQgYXJnMjA4NSxpbnQgYXJnMjA4NixpbnQgYXJnMjA4NyxpbnQgYXJnMjA4
OCxpbnQgYXJnMjA4OSxpbnQgYXJnMjA5MCxpbnQgYXJnMjA5MSxpbnQgYXJnMjA5MixpbnQgYXJn
MjA5MyxpbnQgYXJnMjA5NCxpbnQgYXJnMjA5NSxpbnQgYXJnMjA5NixpbnQgYXJnMjA5NyxpbnQg
YXJnMjA5OCxpbnQgYXJnMjA5OSxpbnQgYXJnMjEwMCxpbnQgYXJnMjEwMSxpbnQgYXJnMjEwMixp
bnQgYXJnMjEwMyxpbnQgYXJnMjEwNCxpbnQgYXJnMjEwNSxpbnQgYXJnMjEwNixpbnQgYXJnMjEw
NyxpbnQgYXJnMjEwOCxpbnQgYXJnMjEwOSxpbnQgYXJnMjExMCxpbnQgYXJnMjExMSxpbnQgYXJn
MjExMixpbnQgYXJnMjExMyxpbnQgYXJnMjExNCxpbnQgYXJnMjExNSxpbnQgYXJnMjExNixpbnQg
YXJnMjExNyxpbnQgYXJnMjExOCxpbnQgYXJnMjExOSxpbnQgYXJnMjEyMCxpbnQgYXJnMjEyMSxp
bnQgYXJnMjEyMixpbnQgYXJnMjEyMyxpbnQgYXJnMjEyNCxpbnQgYXJnMjEyNSxpbnQgYXJnMjEy
NixpbnQgYXJnMjEyNyxpbnQgYXJnMjEyOCxpbnQgYXJnMjEyOSxpbnQgYXJnMjEzMCxpbnQgYXJn
MjEzMSxpbnQgYXJnMjEzMixpbnQgYXJnMjEzMyxpbnQgYXJnMjEzNCxpbnQgYXJnMjEzNSxpbnQg
YXJnMjEzNixpbnQgYXJnMjEzNyxpbnQgYXJnMjEzOCxpbnQgYXJnMjEzOSxpbnQgYXJnMjE0MCxp
bnQgYXJnMjE0MSxpbnQgYXJnMjE0MixpbnQgYXJnMjE0MyxpbnQgYXJnMjE0NCxpbnQgYXJnMjE0
NSxpbnQgYXJnMjE0NixpbnQgYXJnMjE0NyxpbnQgYXJnMjE0OCxpbnQgYXJnMjE0OSxpbnQgYXJn
MjE1MCxpbnQgYXJnMjE1MSxpbnQgYXJnMjE1MixpbnQgYXJnMjE1MyxpbnQgYXJnMjE1NCxpbnQg
YXJnMjE1NSxpbnQgYXJnMjE1NixpbnQgYXJnMjE1NyxpbnQgYXJnMjE1OCxpbnQgYXJnMjE1OSxp
bnQgYXJnMjE2MCxpbnQgYXJnMjE2MSxpbnQgYXJnMjE2MixpbnQgYXJnMjE2MyxpbnQgYXJnMjE2
NCxpbnQgYXJnMjE2NSxpbnQgYXJnMjE2NixpbnQgYXJnMjE2NyxpbnQgYXJnMjE2OCxpbnQgYXJn
MjE2OSxpbnQgYXJnMjE3MCxpbnQgYXJnMjE3MSxpbnQgYXJnMjE3MixpbnQgYXJnMjE3MyxpbnQg
YXJnMjE3NCxpbnQgYXJnMjE3NSxpbnQgYXJnMjE3NixpbnQgYXJnMjE3NyxpbnQgYXJnMjE3OCxp
bnQgYXJnMjE3OSxpbnQgYXJnMjE4MCxpbnQgYXJnMjE4MSxpbnQgYXJnMjE4MixpbnQgYXJnMjE4
MyxpbnQgYXJnMjE4NCxpbnQgYXJnMjE4NSxpbnQgYXJnMjE4NixpbnQgYXJnMjE4NyxpbnQgYXJn
MjE4OCxpbnQgYXJnMjE4OSxpbnQgYXJnMjE5MCxpbnQgYXJnMjE5MSxpbnQgYXJnMjE5MixpbnQg
YXJnMjE5MyxpbnQgYXJnMjE5NCxpbnQgYXJnMjE5NSxpbnQgYXJnMjE5NixpbnQgYXJnMjE5Nyxp
bnQgYXJnMjE5OCxpbnQgYXJnMjE5OSxpbnQgYXJnMjIwMCxpbnQgYXJnMjIwMSxpbnQgYXJnMjIw
MixpbnQgYXJnMjIwMyxpbnQgYXJnMjIwNCxpbnQgYXJnMjIwNSxpbnQgYXJnMjIwNixpbnQgYXJn
MjIwNyxpbnQgYXJnMjIwOCxpbnQgYXJnMjIwOSxpbnQgYXJnMjIxMCxpbnQgYXJnMjIxMSxpbnQg
YXJnMjIxMixpbnQgYXJnMjIxMyxpbnQgYXJnMjIxNCxpbnQgYXJnMjIxNSxpbnQgYXJnMjIxNixp
bnQgYXJnMjIxNyxpbnQgYXJnMjIxOCxpbnQgYXJnMjIxOSxpbnQgYXJnMjIyMCxpbnQgYXJnMjIy
MSxpbnQgYXJnMjIyMixpbnQgYXJnMjIyMyxpbnQgYXJnMjIyNCxpbnQgYXJnMjIyNSxpbnQgYXJn
MjIyNixpbnQgYXJnMjIyNyxpbnQgYXJnMjIyOCxpbnQgYXJnMjIyOSxpbnQgYXJnMjIzMCxpbnQg
YXJnMjIzMSxpbnQgYXJnMjIzMixpbnQgYXJnMjIzMyxpbnQgYXJnMjIzNCxpbnQgYXJnMjIzNSxp
bnQgYXJnMjIzNixpbnQgYXJnMjIzNyxpbnQgYXJnMjIzOCxpbnQgYXJnMjIzOSxpbnQgYXJnMjI0
MCxpbnQgYXJnMjI0MSxpbnQgYXJnMjI0MixpbnQgYXJnMjI0MyxpbnQgYXJnMjI0NCxpbnQgYXJn
MjI0NSxpbnQgYXJnMjI0NixpbnQgYXJnMjI0NyxpbnQgYXJnMjI0OCxpbnQgYXJnMjI0OSxpbnQg
YXJnMjI1MCxpbnQgYXJnMjI1MSxpbnQgYXJnMjI1MixpbnQgYXJnMjI1MyxpbnQgYXJnMjI1NCxp
bnQgYXJnMjI1NSxpbnQgYXJnMjI1NixpbnQgYXJnMjI1NyxpbnQgYXJnMjI1OCxpbnQgYXJnMjI1
OSxpbnQgYXJnMjI2MCxpbnQgYXJnMjI2MSxpbnQgYXJnMjI2MixpbnQgYXJnMjI2MyxpbnQgYXJn
MjI2NCxpbnQgYXJnMjI2NSxpbnQgYXJnMjI2NixpbnQgYXJnMjI2NyxpbnQgYXJnMjI2OCxpbnQg
YXJnMjI2OSxpbnQgYXJnMjI3MCxpbnQgYXJnMjI3MSxpbnQgYXJnMjI3MixpbnQgYXJnMjI3Myxp
bnQgYXJnMjI3NCxpbnQgYXJnMjI3NSxpbnQgYXJnMjI3NixpbnQgYXJnMjI3NyxpbnQgYXJnMjI3
OCxpbnQgYXJnMjI3OSxpbnQgYXJnMjI4MCxpbnQgYXJnMjI4MSxpbnQgYXJnMjI4MixpbnQgYXJn
MjI4MyxpbnQgYXJnMjI4NCxpbnQgYXJnMjI4NSxpbnQgYXJnMjI4NixpbnQgYXJnMjI4NyxpbnQg
YXJnMjI4OCxpbnQgYXJnMjI4OSxpbnQgYXJnMjI5MCxpbnQgYXJnMjI5MSxpbnQgYXJnMjI5Mixp
bnQgYXJnMjI5MyxpbnQgYXJnMjI5NCxpbnQgYXJnMjI5NSxpbnQgYXJnMjI5NixpbnQgYXJnMjI5
NyxpbnQgYXJnMjI5OCxpbnQgYXJnMjI5OSxpbnQgYXJnMjMwMCxpbnQgYXJnMjMwMSxpbnQgYXJn
MjMwMixpbnQgYXJnMjMwMyxpbnQgYXJnMjMwNCxpbnQgYXJnMjMwNSxpbnQgYXJnMjMwNixpbnQg
YXJnMjMwNyxpbnQgYXJnMjMwOCxpbnQgYXJnMjMwOSxpbnQgYXJnMjMxMCxpbnQgYXJnMjMxMSxp
bnQgYXJnMjMxMixpbnQgYXJnMjMxMyxpbnQgYXJnMjMxNCxpbnQgYXJnMjMxNSxpbnQgYXJnMjMx
NixpbnQgYXJnMjMxNyxpbnQgYXJnMjMxOCxpbnQgYXJnMjMxOSxpbnQgYXJnMjMyMCxpbnQgYXJn
MjMyMSxpbnQgYXJnMjMyMixpbnQgYXJnMjMyMyxpbnQgYXJnMjMyNCxpbnQgYXJnMjMyNSxpbnQg
YXJnMjMyNixpbnQgYXJnMjMyNyxpbnQgYXJnMjMyOCxpbnQgYXJnMjMyOSxpbnQgYXJnMjMzMCxp
bnQgYXJnMjMzMSxpbnQgYXJnMjMzMixpbnQgYXJnMjMzMyxpbnQgYXJnMjMzNCxpbnQgYXJnMjMz
NSxpbnQgYXJnMjMzNixpbnQgYXJnMjMzNyxpbnQgYXJnMjMzOCxpbnQgYXJnMjMzOSxpbnQgYXJn
MjM0MCxpbnQgYXJnMjM0MSxpbnQgYXJnMjM0MixpbnQgYXJnMjM0MyxpbnQgYXJnMjM0NCxpbnQg
YXJnMjM0NSxpbnQgYXJnMjM0NixpbnQgYXJnMjM0NyxpbnQgYXJnMjM0OCxpbnQgYXJnMjM0OSxp
bnQgYXJnMjM1MCxpbnQgYXJnMjM1MSxpbnQgYXJnMjM1MixpbnQgYXJnMjM1MyxpbnQgYXJnMjM1
NCxpbnQgYXJnMjM1NSxpbnQgYXJnMjM1NixpbnQgYXJnMjM1NyxpbnQgYXJnMjM1OCxpbnQgYXJn
MjM1OSxpbnQgYXJnMjM2MCxpbnQgYXJnMjM2MSxpbnQgYXJnMjM2MixpbnQgYXJnMjM2MyxpbnQg
YXJnMjM2NCxpbnQgYXJnMjM2NSxpbnQgYXJnMjM2NixpbnQgYXJnMjM2NyxpbnQgYXJnMjM2OCxp
bnQgYXJnMjM2OSxpbnQgYXJnMjM3MCxpbnQgYXJnMjM3MSxpbnQgYXJnMjM3MixpbnQgYXJnMjM3
MyxpbnQgYXJnMjM3NCxpbnQgYXJnMjM3NSxpbnQgYXJnMjM3NixpbnQgYXJnMjM3NyxpbnQgYXJn
MjM3OCxpbnQgYXJnMjM3OSxpbnQgYXJnMjM4MCxpbnQgYXJnMjM4MSxpbnQgYXJnMjM4MixpbnQg
YXJnMjM4MyxpbnQgYXJnMjM4NCxpbnQgYXJnMjM4NSxpbnQgYXJnMjM4NixpbnQgYXJnMjM4Nyxp
bnQgYXJnMjM4OCxpbnQgYXJnMjM4OSxpbnQgYXJnMjM5MCxpbnQgYXJnMjM5MSxpbnQgYXJnMjM5
MixpbnQgYXJnMjM5MyxpbnQgYXJnMjM5NCxpbnQgYXJnMjM5NSxpbnQgYXJnMjM5NixpbnQgYXJn
MjM5NyxpbnQgYXJnMjM5OCxpbnQgYXJnMjM5OSxpbnQgYXJnMjQwMCxpbnQgYXJnMjQwMSxpbnQg
YXJnMjQwMixpbnQgYXJnMjQwMyxpbnQgYXJnMjQwNCxpbnQgYXJnMjQwNSxpbnQgYXJnMjQwNixp
bnQgYXJnMjQwNyxpbnQgYXJnMjQwOCxpbnQgYXJnMjQwOSxpbnQgYXJnMjQxMCxpbnQgYXJnMjQx
MSxpbnQgYXJnMjQxMixpbnQgYXJnMjQxMyxpbnQgYXJnMjQxNCxpbnQgYXJnMjQxNSxpbnQgYXJn
MjQxNixpbnQgYXJnMjQxNyxpbnQgYXJnMjQxOCxpbnQgYXJnMjQxOSxpbnQgYXJnMjQyMCxpbnQg
YXJnMjQyMSxpbnQgYXJnMjQyMixpbnQgYXJnMjQyMyxpbnQgYXJnMjQyNCxpbnQgYXJnMjQyNSxp
bnQgYXJnMjQyNixpbnQgYXJnMjQyNyxpbnQgYXJnMjQyOCxpbnQgYXJnMjQyOSxpbnQgYXJnMjQz
MCxpbnQgYXJnMjQzMSxpbnQgYXJnMjQzMixpbnQgYXJnMjQzMyxpbnQgYXJnMjQzNCxpbnQgYXJn
MjQzNSxpbnQgYXJnMjQzNixpbnQgYXJnMjQzNyxpbnQgYXJnMjQzOCxpbnQgYXJnMjQzOSxpbnQg
YXJnMjQ0MCxpbnQgYXJnMjQ0MSxpbnQgYXJnMjQ0MixpbnQgYXJnMjQ0MyxpbnQgYXJnMjQ0NCxp
bnQgYXJnMjQ0NSxpbnQgYXJnMjQ0NixpbnQgYXJnMjQ0NyxpbnQgYXJnMjQ0OCxpbnQgYXJnMjQ0
OSxpbnQgYXJnMjQ1MCxpbnQgYXJnMjQ1MSxpbnQgYXJnMjQ1MixpbnQgYXJnMjQ1MyxpbnQgYXJn
MjQ1NCxpbnQgYXJnMjQ1NSxpbnQgYXJnMjQ1NixpbnQgYXJnMjQ1NyxpbnQgYXJnMjQ1OCxpbnQg
YXJnMjQ1OSxpbnQgYXJnMjQ2MCxpbnQgYXJnMjQ2MSxpbnQgYXJnMjQ2MixpbnQgYXJnMjQ2Myxp
bnQgYXJnMjQ2NCxpbnQgYXJnMjQ2NSxpbnQgYXJnMjQ2NixpbnQgYXJnMjQ2NyxpbnQgYXJnMjQ2
OCxpbnQgYXJnMjQ2OSxpbnQgYXJnMjQ3MCxpbnQgYXJnMjQ3MSxpbnQgYXJnMjQ3MixpbnQgYXJn
MjQ3MyxpbnQgYXJnMjQ3NCxpbnQgYXJnMjQ3NSxpbnQgYXJnMjQ3NixpbnQgYXJnMjQ3NyxpbnQg
YXJnMjQ3OCxpbnQgYXJnMjQ3OSxpbnQgYXJnMjQ4MCxpbnQgYXJnMjQ4MSxpbnQgYXJnMjQ4Mixp
bnQgYXJnMjQ4MyxpbnQgYXJnMjQ4NCxpbnQgYXJnMjQ4NSxpbnQgYXJnMjQ4NixpbnQgYXJnMjQ4
NyxpbnQgYXJnMjQ4OCxpbnQgYXJnMjQ4OSxpbnQgYXJnMjQ5MCxpbnQgYXJnMjQ5MSxpbnQgYXJn
MjQ5MixpbnQgYXJnMjQ5MyxpbnQgYXJnMjQ5NCxpbnQgYXJnMjQ5NSxpbnQgYXJnMjQ5NixpbnQg
YXJnMjQ5NyxpbnQgYXJnMjQ5OCxpbnQgYXJnMjQ5OSxpbnQgYXJnMjUwMCxpbnQgYXJnMjUwMSxp
bnQgYXJnMjUwMixpbnQgYXJnMjUwMyxpbnQgYXJnMjUwNCxpbnQgYXJnMjUwNSxpbnQgYXJnMjUw
NixpbnQgYXJnMjUwNyxpbnQgYXJnMjUwOCxpbnQgYXJnMjUwOSxpbnQgYXJnMjUxMCxpbnQgYXJn
MjUxMSxpbnQgYXJnMjUxMixpbnQgYXJnMjUxMyxpbnQgYXJnMjUxNCxpbnQgYXJnMjUxNSxpbnQg
YXJnMjUxNixpbnQgYXJnMjUxNyxpbnQgYXJnMjUxOCxpbnQgYXJnMjUxOSxpbnQgYXJnMjUyMCxp
bnQgYXJnMjUyMSxpbnQgYXJnMjUyMixpbnQgYXJnMjUyMyxpbnQgYXJnMjUyNCxpbnQgYXJnMjUy
NSxpbnQgYXJnMjUyNixpbnQgYXJnMjUyNyxpbnQgYXJnMjUyOCxpbnQgYXJnMjUyOSxpbnQgYXJn
MjUzMCxpbnQgYXJnMjUzMSxpbnQgYXJnMjUzMixpbnQgYXJnMjUzMyxpbnQgYXJnMjUzNCxpbnQg
YXJnMjUzNSxpbnQgYXJnMjUzNixpbnQgYXJnMjUzNyxpbnQgYXJnMjUzOCxpbnQgYXJnMjUzOSxp
bnQgYXJnMjU0MCxpbnQgYXJnMjU0MSxpbnQgYXJnMjU0MixpbnQgYXJnMjU0MyxpbnQgYXJnMjU0
NCxpbnQgYXJnMjU0NSxpbnQgYXJnMjU0NixpbnQgYXJnMjU0NyxpbnQgYXJnMjU0OCxpbnQgYXJn
MjU0OSxpbnQgYXJnMjU1MCxpbnQgYXJnMjU1MSxpbnQgYXJnMjU1MixpbnQgYXJnMjU1MyxpbnQg
YXJnMjU1NCxpbnQgYXJnMjU1NSxpbnQgYXJnMjU1NixpbnQgYXJnMjU1NyxpbnQgYXJnMjU1OCxp
bnQgYXJnMjU1OSxpbnQgYXJnMjU2MCxpbnQgYXJnMjU2MSxpbnQgYXJnMjU2MixpbnQgYXJnMjU2
MyxpbnQgYXJnMjU2NCxpbnQgYXJnMjU2NSxpbnQgYXJnMjU2NixpbnQgYXJnMjU2NyxpbnQgYXJn
MjU2OCxpbnQgYXJnMjU2OSxpbnQgYXJnMjU3MCxpbnQgYXJnMjU3MSxpbnQgYXJnMjU3MixpbnQg
YXJnMjU3MyxpbnQgYXJnMjU3NCxpbnQgYXJnMjU3NSxpbnQgYXJnMjU3NixpbnQgYXJnMjU3Nyxp
bnQgYXJnMjU3OCxpbnQgYXJnMjU3OSxpbnQgYXJnMjU4MCxpbnQgYXJnMjU4MSxpbnQgYXJnMjU4
MixpbnQgYXJnMjU4MyxpbnQgYXJnMjU4NCxpbnQgYXJnMjU4NSxpbnQgYXJnMjU4NixpbnQgYXJn
MjU4NyxpbnQgYXJnMjU4OCxpbnQgYXJnMjU4OSxpbnQgYXJnMjU5MCxpbnQgYXJnMjU5MSxpbnQg
YXJnMjU5MixpbnQgYXJnMjU5MyxpbnQgYXJnMjU5NCxpbnQgYXJnMjU5NSxpbnQgYXJnMjU5Nixp
bnQgYXJnMjU5NyxpbnQgYXJnMjU5OCxpbnQgYXJnMjU5OSxpbnQgYXJnMjYwMCxpbnQgYXJnMjYw
MSxpbnQgYXJnMjYwMixpbnQgYXJnMjYwMyxpbnQgYXJnMjYwNCxpbnQgYXJnMjYwNSxpbnQgYXJn
MjYwNixpbnQgYXJnMjYwNyxpbnQgYXJnMjYwOCxpbnQgYXJnMjYwOSxpbnQgYXJnMjYxMCxpbnQg
YXJnMjYxMSxpbnQgYXJnMjYxMixpbnQgYXJnMjYxMyxpbnQgYXJnMjYxNCxpbnQgYXJnMjYxNSxp
bnQgYXJnMjYxNixpbnQgYXJnMjYxNyxpbnQgYXJnMjYxOCxpbnQgYXJnMjYxOSxpbnQgYXJnMjYy
MCxpbnQgYXJnMjYyMSxpbnQgYXJnMjYyMixpbnQgYXJnMjYyMyxpbnQgYXJnMjYyNCxpbnQgYXJn
MjYyNSxpbnQgYXJnMjYyNixpbnQgYXJnMjYyNyxpbnQgYXJnMjYyOCxpbnQgYXJnMjYyOSxpbnQg
YXJnMjYzMCxpbnQgYXJnMjYzMSxpbnQgYXJnMjYzMixpbnQgYXJnMjYzMyxpbnQgYXJnMjYzNCxp
bnQgYXJnMjYzNSxpbnQgYXJnMjYzNixpbnQgYXJnMjYzNyxpbnQgYXJnMjYzOCxpbnQgYXJnMjYz
OSxpbnQgYXJnMjY0MCxpbnQgYXJnMjY0MSxpbnQgYXJnMjY0MixpbnQgYXJnMjY0MyxpbnQgYXJn
MjY0NCxpbnQgYXJnMjY0NSxpbnQgYXJnMjY0NixpbnQgYXJnMjY0NyxpbnQgYXJnMjY0OCxpbnQg
YXJnMjY0OSxpbnQgYXJnMjY1MCxpbnQgYXJnMjY1MSxpbnQgYXJnMjY1MixpbnQgYXJnMjY1Myxp
bnQgYXJnMjY1NCxpbnQgYXJnMjY1NSxpbnQgYXJnMjY1NixpbnQgYXJnMjY1NyxpbnQgYXJnMjY1
OCxpbnQgYXJnMjY1OSxpbnQgYXJnMjY2MCxpbnQgYXJnMjY2MSxpbnQgYXJnMjY2MixpbnQgYXJn
MjY2MyxpbnQgYXJnMjY2NCxpbnQgYXJnMjY2NSxpbnQgYXJnMjY2NixpbnQgYXJnMjY2NyxpbnQg
YXJnMjY2OCxpbnQgYXJnMjY2OSxpbnQgYXJnMjY3MCxpbnQgYXJnMjY3MSxpbnQgYXJnMjY3Mixp
bnQgYXJnMjY3MyxpbnQgYXJnMjY3NCxpbnQgYXJnMjY3NSxpbnQgYXJnMjY3NixpbnQgYXJnMjY3
NyxpbnQgYXJnMjY3OCxpbnQgYXJnMjY3OSxpbnQgYXJnMjY4MCxpbnQgYXJnMjY4MSxpbnQgYXJn
MjY4MixpbnQgYXJnMjY4MyxpbnQgYXJnMjY4NCxpbnQgYXJnMjY4NSxpbnQgYXJnMjY4NixpbnQg
YXJnMjY4NyxpbnQgYXJnMjY4OCxpbnQgYXJnMjY4OSxpbnQgYXJnMjY5MCxpbnQgYXJnMjY5MSxp
bnQgYXJnMjY5MixpbnQgYXJnMjY5MyxpbnQgYXJnMjY5NCxpbnQgYXJnMjY5NSxpbnQgYXJnMjY5
NixpbnQgYXJnMjY5NyxpbnQgYXJnMjY5OCxpbnQgYXJnMjY5OSxpbnQgYXJnMjcwMCxpbnQgYXJn
MjcwMSxpbnQgYXJnMjcwMixpbnQgYXJnMjcwMyxpbnQgYXJnMjcwNCxpbnQgYXJnMjcwNSxpbnQg
YXJnMjcwNixpbnQgYXJnMjcwNyxpbnQgYXJnMjcwOCxpbnQgYXJnMjcwOSxpbnQgYXJnMjcxMCxp
bnQgYXJnMjcxMSxpbnQgYXJnMjcxMixpbnQgYXJnMjcxMyxpbnQgYXJnMjcxNCxpbnQgYXJnMjcx
NSxpbnQgYXJnMjcxNixpbnQgYXJnMjcxNyxpbnQgYXJnMjcxOCxpbnQgYXJnMjcxOSxpbnQgYXJn
MjcyMCxpbnQgYXJnMjcyMSxpbnQgYXJnMjcyMixpbnQgYXJnMjcyMyxpbnQgYXJnMjcyNCxpbnQg
YXJnMjcyNSxpbnQgYXJnMjcyNixpbnQgYXJnMjcyNyxpbnQgYXJnMjcyOCxpbnQgYXJnMjcyOSxp
bnQgYXJnMjczMCxpbnQgYXJnMjczMSxpbnQgYXJnMjczMixpbnQgYXJnMjczMyxpbnQgYXJnMjcz
NCxpbnQgYXJnMjczNSxpbnQgYXJnMjczNixpbnQgYXJnMjczNyxpbnQgYXJnMjczOCxpbnQgYXJn
MjczOSxpbnQgYXJnMjc0MCxpbnQgYXJnMjc0MSxpbnQgYXJnMjc0MixpbnQgYXJnMjc0MyxpbnQg
YXJnMjc0NCxpbnQgYXJnMjc0NSxpbnQgYXJnMjc0NixpbnQgYXJnMjc0NyxpbnQgYXJnMjc0OCxp
bnQgYXJnMjc0OSxpbnQgYXJnMjc1MCxpbnQgYXJnMjc1MSxpbnQgYXJnMjc1MixpbnQgYXJnMjc1
MyxpbnQgYXJnMjc1NCxpbnQgYXJnMjc1NSxpbnQgYXJnMjc1NixpbnQgYXJnMjc1NyxpbnQgYXJn
Mjc1OCxpbnQgYXJnMjc1OSxpbnQgYXJnMjc2MCxpbnQgYXJnMjc2MSxpbnQgYXJnMjc2MixpbnQg
YXJnMjc2MyxpbnQgYXJnMjc2NCxpbnQgYXJnMjc2NSxpbnQgYXJnMjc2NixpbnQgYXJnMjc2Nyxp
bnQgYXJnMjc2OCxpbnQgYXJnMjc2OSxpbnQgYXJnMjc3MCxpbnQgYXJnMjc3MSxpbnQgYXJnMjc3
MixpbnQgYXJnMjc3MyxpbnQgYXJnMjc3NCxpbnQgYXJnMjc3NSxpbnQgYXJnMjc3NixpbnQgYXJn
Mjc3NyxpbnQgYXJnMjc3OCxpbnQgYXJnMjc3OSxpbnQgYXJnMjc4MCxpbnQgYXJnMjc4MSxpbnQg
YXJnMjc4MixpbnQgYXJnMjc4MyxpbnQgYXJnMjc4NCxpbnQgYXJnMjc4NSxpbnQgYXJnMjc4Nixp
bnQgYXJnMjc4NyxpbnQgYXJnMjc4OCxpbnQgYXJnMjc4OSxpbnQgYXJnMjc5MCxpbnQgYXJnMjc5
MSxpbnQgYXJnMjc5MixpbnQgYXJnMjc5MyxpbnQgYXJnMjc5NCxpbnQgYXJnMjc5NSxpbnQgYXJn
Mjc5NixpbnQgYXJnMjc5NyxpbnQgYXJnMjc5OCxpbnQgYXJnMjc5OSxpbnQgYXJnMjgwMCxpbnQg
YXJnMjgwMSxpbnQgYXJnMjgwMixpbnQgYXJnMjgwMyxpbnQgYXJnMjgwNCxpbnQgYXJnMjgwNSxp
bnQgYXJnMjgwNixpbnQgYXJnMjgwNyxpbnQgYXJnMjgwOCxpbnQgYXJnMjgwOSxpbnQgYXJnMjgx
MCxpbnQgYXJnMjgxMSxpbnQgYXJnMjgxMixpbnQgYXJnMjgxMyxpbnQgYXJnMjgxNCxpbnQgYXJn
MjgxNSxpbnQgYXJnMjgxNixpbnQgYXJnMjgxNyxpbnQgYXJnMjgxOCxpbnQgYXJnMjgxOSxpbnQg
YXJnMjgyMCxpbnQgYXJnMjgyMSxpbnQgYXJnMjgyMixpbnQgYXJnMjgyMyxpbnQgYXJnMjgyNCxp
bnQgYXJnMjgyNSxpbnQgYXJnMjgyNixpbnQgYXJnMjgyNyxpbnQgYXJnMjgyOCxpbnQgYXJnMjgy
OSxpbnQgYXJnMjgzMCxpbnQgYXJnMjgzMSxpbnQgYXJnMjgzMixpbnQgYXJnMjgzMyxpbnQgYXJn
MjgzNCxpbnQgYXJnMjgzNSxpbnQgYXJnMjgzNixpbnQgYXJnMjgzNyxpbnQgYXJnMjgzOCxpbnQg
YXJnMjgzOSxpbnQgYXJnMjg0MCxpbnQgYXJnMjg0MSxpbnQgYXJnMjg0MixpbnQgYXJnMjg0Myxp
bnQgYXJnMjg0NCxpbnQgYXJnMjg0NSxpbnQgYXJnMjg0NixpbnQgYXJnMjg0NyxpbnQgYXJnMjg0
OCxpbnQgYXJnMjg0OSxpbnQgYXJnMjg1MCxpbnQgYXJnMjg1MSxpbnQgYXJnMjg1MixpbnQgYXJn
Mjg1MyxpbnQgYXJnMjg1NCxpbnQgYXJnMjg1NSxpbnQgYXJnMjg1NixpbnQgYXJnMjg1NyxpbnQg
YXJnMjg1OCxpbnQgYXJnMjg1OSxpbnQgYXJnMjg2MCxpbnQgYXJnMjg2MSxpbnQgYXJnMjg2Mixp
bnQgYXJnMjg2MyxpbnQgYXJnMjg2NCxpbnQgYXJnMjg2NSxpbnQgYXJnMjg2NixpbnQgYXJnMjg2
NyxpbnQgYXJnMjg2OCxpbnQgYXJnMjg2OSxpbnQgYXJnMjg3MCxpbnQgYXJnMjg3MSxpbnQgYXJn
Mjg3MixpbnQgYXJnMjg3MyxpbnQgYXJnMjg3NCxpbnQgYXJnMjg3NSxpbnQgYXJnMjg3NixpbnQg
YXJnMjg3NyxpbnQgYXJnMjg3OCxpbnQgYXJnMjg3OSxpbnQgYXJnMjg4MCxpbnQgYXJnMjg4MSxp
bnQgYXJnMjg4MixpbnQgYXJnMjg4MyxpbnQgYXJnMjg4NCxpbnQgYXJnMjg4NSxpbnQgYXJnMjg4
NixpbnQgYXJnMjg4NyxpbnQgYXJnMjg4OCxpbnQgYXJnMjg4OSxpbnQgYXJnMjg5MCxpbnQgYXJn
Mjg5MSxpbnQgYXJnMjg5MixpbnQgYXJnMjg5MyxpbnQgYXJnMjg5NCxpbnQgYXJnMjg5NSxpbnQg
YXJnMjg5NixpbnQgYXJnMjg5NyxpbnQgYXJnMjg5OCxpbnQgYXJnMjg5OSxpbnQgYXJnMjkwMCxp
bnQgYXJnMjkwMSxpbnQgYXJnMjkwMixpbnQgYXJnMjkwMyxpbnQgYXJnMjkwNCxpbnQgYXJnMjkw
NSxpbnQgYXJnMjkwNixpbnQgYXJnMjkwNyxpbnQgYXJnMjkwOCxpbnQgYXJnMjkwOSxpbnQgYXJn
MjkxMCxpbnQgYXJnMjkxMSxpbnQgYXJnMjkxMixpbnQgYXJnMjkxMyxpbnQgYXJnMjkxNCxpbnQg
YXJnMjkxNSxpbnQgYXJnMjkxNixpbnQgYXJnMjkxNyxpbnQgYXJnMjkxOCxpbnQgYXJnMjkxOSxp
bnQgYXJnMjkyMCxpbnQgYXJnMjkyMSxpbnQgYXJnMjkyMixpbnQgYXJnMjkyMyxpbnQgYXJnMjky
NCxpbnQgYXJnMjkyNSxpbnQgYXJnMjkyNixpbnQgYXJnMjkyNyxpbnQgYXJnMjkyOCxpbnQgYXJn
MjkyOSxpbnQgYXJnMjkzMCxpbnQgYXJnMjkzMSxpbnQgYXJnMjkzMixpbnQgYXJnMjkzMyxpbnQg
YXJnMjkzNCxpbnQgYXJnMjkzNSxpbnQgYXJnMjkzNixpbnQgYXJnMjkzNyxpbnQgYXJnMjkzOCxp
bnQgYXJnMjkzOSxpbnQgYXJnMjk0MCxpbnQgYXJnMjk0MSxpbnQgYXJnMjk0MixpbnQgYXJnMjk0
MyxpbnQgYXJnMjk0NCxpbnQgYXJnMjk0NSxpbnQgYXJnMjk0NixpbnQgYXJnMjk0NyxpbnQgYXJn
Mjk0OCxpbnQgYXJnMjk0OSxpbnQgYXJnMjk1MCxpbnQgYXJnMjk1MSxpbnQgYXJnMjk1MixpbnQg
YXJnMjk1MyxpbnQgYXJnMjk1NCxpbnQgYXJnMjk1NSxpbnQgYXJnMjk1NixpbnQgYXJnMjk1Nyxp
bnQgYXJnMjk1OCxpbnQgYXJnMjk1OSxpbnQgYXJnMjk2MCxpbnQgYXJnMjk2MSxpbnQgYXJnMjk2
MixpbnQgYXJnMjk2MyxpbnQgYXJnMjk2NCxpbnQgYXJnMjk2NSxpbnQgYXJnMjk2NixpbnQgYXJn
Mjk2NyxpbnQgYXJnMjk2OCxpbnQgYXJnMjk2OSxpbnQgYXJnMjk3MCxpbnQgYXJnMjk3MSxpbnQg
YXJnMjk3MixpbnQgYXJnMjk3MyxpbnQgYXJnMjk3NCxpbnQgYXJnMjk3NSxpbnQgYXJnMjk3Nixp
bnQgYXJnMjk3NyxpbnQgYXJnMjk3OCxpbnQgYXJnMjk3OSxpbnQgYXJnMjk4MCxpbnQgYXJnMjk4
MSxpbnQgYXJnMjk4MixpbnQgYXJnMjk4MyxpbnQgYXJnMjk4NCxpbnQgYXJnMjk4NSxpbnQgYXJn
Mjk4NixpbnQgYXJnMjk4NyxpbnQgYXJnMjk4OCxpbnQgYXJnMjk4OSxpbnQgYXJnMjk5MCxpbnQg
YXJnMjk5MSxpbnQgYXJnMjk5MixpbnQgYXJnMjk5MyxpbnQgYXJnMjk5NCxpbnQgYXJnMjk5NSxp
bnQgYXJnMjk5NixpbnQgYXJnMjk5NyxpbnQgYXJnMjk5OCxpbnQgYXJnMjk5OSxpbnQgYXJnMzAw
MCxpbnQgYXJnMzAwMSxpbnQgYXJnMzAwMixpbnQgYXJnMzAwMyxpbnQgYXJnMzAwNCxpbnQgYXJn
MzAwNSxpbnQgYXJnMzAwNixpbnQgYXJnMzAwNyxpbnQgYXJnMzAwOCxpbnQgYXJnMzAwOSxpbnQg
YXJnMzAxMCxpbnQgYXJnMzAxMSxpbnQgYXJnMzAxMixpbnQgYXJnMzAxMyxpbnQgYXJnMzAxNCxp
bnQgYXJnMzAxNSxpbnQgYXJnMzAxNixpbnQgYXJnMzAxNyxpbnQgYXJnMzAxOCxpbnQgYXJnMzAx
OSxpbnQgYXJnMzAyMCxpbnQgYXJnMzAyMSxpbnQgYXJnMzAyMixpbnQgYXJnMzAyMyxpbnQgYXJn
MzAyNCxpbnQgYXJnMzAyNSxpbnQgYXJnMzAyNixpbnQgYXJnMzAyNyxpbnQgYXJnMzAyOCxpbnQg
YXJnMzAyOSxpbnQgYXJnMzAzMCxpbnQgYXJnMzAzMSxpbnQgYXJnMzAzMixpbnQgYXJnMzAzMyxp
bnQgYXJnMzAzNCxpbnQgYXJnMzAzNSxpbnQgYXJnMzAzNixpbnQgYXJnMzAzNyxpbnQgYXJnMzAz
OCxpbnQgYXJnMzAzOSxpbnQgYXJnMzA0MCxpbnQgYXJnMzA0MSxpbnQgYXJnMzA0MixpbnQgYXJn
MzA0MyxpbnQgYXJnMzA0NCxpbnQgYXJnMzA0NSxpbnQgYXJnMzA0NixpbnQgYXJnMzA0NyxpbnQg
YXJnMzA0OCxpbnQgYXJnMzA0OSxpbnQgYXJnMzA1MCxpbnQgYXJnMzA1MSxpbnQgYXJnMzA1Mixp
bnQgYXJnMzA1MyxpbnQgYXJnMzA1NCxpbnQgYXJnMzA1NSxpbnQgYXJnMzA1NixpbnQgYXJnMzA1
NyxpbnQgYXJnMzA1OCxpbnQgYXJnMzA1OSxpbnQgYXJnMzA2MCxpbnQgYXJnMzA2MSxpbnQgYXJn
MzA2MixpbnQgYXJnMzA2MyxpbnQgYXJnMzA2NCxpbnQgYXJnMzA2NSxpbnQgYXJnMzA2NixpbnQg
YXJnMzA2NyxpbnQgYXJnMzA2OCxpbnQgYXJnMzA2OSxpbnQgYXJnMzA3MCxpbnQgYXJnMzA3MSxp
bnQgYXJnMzA3MixpbnQgYXJnMzA3MyxpbnQgYXJnMzA3NCxpbnQgYXJnMzA3NSxpbnQgYXJnMzA3
NixpbnQgYXJnMzA3NyxpbnQgYXJnMzA3OCxpbnQgYXJnMzA3OSxpbnQgYXJnMzA4MCxpbnQgYXJn
MzA4MSxpbnQgYXJnMzA4MixpbnQgYXJnMzA4MyxpbnQgYXJnMzA4NCxpbnQgYXJnMzA4NSxpbnQg
YXJnMzA4NixpbnQgYXJnMzA4NyxpbnQgYXJnMzA4OCxpbnQgYXJnMzA4OSxpbnQgYXJnMzA5MCxp
bnQgYXJnMzA5MSxpbnQgYXJnMzA5MixpbnQgYXJnMzA5MyxpbnQgYXJnMzA5NCxpbnQgYXJnMzA5
NSxpbnQgYXJnMzA5NixpbnQgYXJnMzA5NyxpbnQgYXJnMzA5OCxpbnQgYXJnMzA5OSxpbnQgYXJn
MzEwMCxpbnQgYXJnMzEwMSxpbnQgYXJnMzEwMixpbnQgYXJnMzEwMyxpbnQgYXJnMzEwNCxpbnQg
YXJnMzEwNSxpbnQgYXJnMzEwNixpbnQgYXJnMzEwNyxpbnQgYXJnMzEwOCxpbnQgYXJnMzEwOSxp
bnQgYXJnMzExMCxpbnQgYXJnMzExMSxpbnQgYXJnMzExMixpbnQgYXJnMzExMyxpbnQgYXJnMzEx
NCxpbnQgYXJnMzExNSxpbnQgYXJnMzExNixpbnQgYXJnMzExNyxpbnQgYXJnMzExOCxpbnQgYXJn
MzExOSxpbnQgYXJnMzEyMCxpbnQgYXJnMzEyMSxpbnQgYXJnMzEyMixpbnQgYXJnMzEyMyxpbnQg
YXJnMzEyNCxpbnQgYXJnMzEyNSxpbnQgYXJnMzEyNixpbnQgYXJnMzEyNyxpbnQgYXJnMzEyOCxp
bnQgYXJnMzEyOSxpbnQgYXJnMzEzMCxpbnQgYXJnMzEzMSxpbnQgYXJnMzEzMixpbnQgYXJnMzEz
MyxpbnQgYXJnMzEzNCxpbnQgYXJnMzEzNSxpbnQgYXJnMzEzNixpbnQgYXJnMzEzNyxpbnQgYXJn
MzEzOCxpbnQgYXJnMzEzOSxpbnQgYXJnMzE0MCxpbnQgYXJnMzE0MSxpbnQgYXJnMzE0MixpbnQg
YXJnMzE0MyxpbnQgYXJnMzE0NCxpbnQgYXJnMzE0NSxpbnQgYXJnMzE0NixpbnQgYXJnMzE0Nyxp
bnQgYXJnMzE0OCxpbnQgYXJnMzE0OSxpbnQgYXJnMzE1MCxpbnQgYXJnMzE1MSxpbnQgYXJnMzE1
MixpbnQgYXJnMzE1MyxpbnQgYXJnMzE1NCxpbnQgYXJnMzE1NSxpbnQgYXJnMzE1NixpbnQgYXJn
MzE1NyxpbnQgYXJnMzE1OCxpbnQgYXJnMzE1OSxpbnQgYXJnMzE2MCxpbnQgYXJnMzE2MSxpbnQg
YXJnMzE2MixpbnQgYXJnMzE2MyxpbnQgYXJnMzE2NCxpbnQgYXJnMzE2NSxpbnQgYXJnMzE2Nixp
bnQgYXJnMzE2NyxpbnQgYXJnMzE2OCxpbnQgYXJnMzE2OSxpbnQgYXJnMzE3MCxpbnQgYXJnMzE3
MSxpbnQgYXJnMzE3MixpbnQgYXJnMzE3MyxpbnQgYXJnMzE3NCxpbnQgYXJnMzE3NSxpbnQgYXJn
MzE3NixpbnQgYXJnMzE3NyxpbnQgYXJnMzE3OCxpbnQgYXJnMzE3OSxpbnQgYXJnMzE4MCxpbnQg
YXJnMzE4MSxpbnQgYXJnMzE4MixpbnQgYXJnMzE4MyxpbnQgYXJnMzE4NCxpbnQgYXJnMzE4NSxp
bnQgYXJnMzE4NixpbnQgYXJnMzE4NyxpbnQgYXJnMzE4OCxpbnQgYXJnMzE4OSxpbnQgYXJnMzE5
MCxpbnQgYXJnMzE5MSxpbnQgYXJnMzE5MixpbnQgYXJnMzE5MyxpbnQgYXJnMzE5NCxpbnQgYXJn
MzE5NSxpbnQgYXJnMzE5NixpbnQgYXJnMzE5NyxpbnQgYXJnMzE5OCxpbnQgYXJnMzE5OSxpbnQg
YXJnMzIwMCxpbnQgYXJnMzIwMSxpbnQgYXJnMzIwMixpbnQgYXJnMzIwMyxpbnQgYXJnMzIwNCxp
bnQgYXJnMzIwNSxpbnQgYXJnMzIwNixpbnQgYXJnMzIwNyxpbnQgYXJnMzIwOCxpbnQgYXJnMzIw
OSxpbnQgYXJnMzIxMCxpbnQgYXJnMzIxMSxpbnQgYXJnMzIxMixpbnQgYXJnMzIxMyxpbnQgYXJn
MzIxNCxpbnQgYXJnMzIxNSxpbnQgYXJnMzIxNixpbnQgYXJnMzIxNyxpbnQgYXJnMzIxOCxpbnQg
YXJnMzIxOSxpbnQgYXJnMzIyMCxpbnQgYXJnMzIyMSxpbnQgYXJnMzIyMixpbnQgYXJnMzIyMyxp
bnQgYXJnMzIyNCxpbnQgYXJnMzIyNSxpbnQgYXJnMzIyNixpbnQgYXJnMzIyNyxpbnQgYXJnMzIy
OCxpbnQgYXJnMzIyOSxpbnQgYXJnMzIzMCxpbnQgYXJnMzIzMSxpbnQgYXJnMzIzMixpbnQgYXJn
MzIzMyxpbnQgYXJnMzIzNCxpbnQgYXJnMzIzNSxpbnQgYXJnMzIzNixpbnQgYXJnMzIzNyxpbnQg
YXJnMzIzOCxpbnQgYXJnMzIzOSxpbnQgYXJnMzI0MCxpbnQgYXJnMzI0MSxpbnQgYXJnMzI0Mixp
bnQgYXJnMzI0MyxpbnQgYXJnMzI0NCxpbnQgYXJnMzI0NSxpbnQgYXJnMzI0NixpbnQgYXJnMzI0
NyxpbnQgYXJnMzI0OCxpbnQgYXJnMzI0OSxpbnQgYXJnMzI1MCxpbnQgYXJnMzI1MSxpbnQgYXJn
MzI1MixpbnQgYXJnMzI1MyxpbnQgYXJnMzI1NCxpbnQgYXJnMzI1NSxpbnQgYXJnMzI1NixpbnQg
YXJnMzI1NyxpbnQgYXJnMzI1OCxpbnQgYXJnMzI1OSxpbnQgYXJnMzI2MCxpbnQgYXJnMzI2MSxp
bnQgYXJnMzI2MixpbnQgYXJnMzI2MyxpbnQgYXJnMzI2NCxpbnQgYXJnMzI2NSxpbnQgYXJnMzI2
NixpbnQgYXJnMzI2NyxpbnQgYXJnMzI2OCxpbnQgYXJnMzI2OSxpbnQgYXJnMzI3MCxpbnQgYXJn
MzI3MSxpbnQgYXJnMzI3MixpbnQgYXJnMzI3MyxpbnQgYXJnMzI3NCxpbnQgYXJnMzI3NSxpbnQg
YXJnMzI3NixpbnQgYXJnMzI3NyxpbnQgYXJnMzI3OCxpbnQgYXJnMzI3OSxpbnQgYXJnMzI4MCxp
bnQgYXJnMzI4MSxpbnQgYXJnMzI4MixpbnQgYXJnMzI4MyxpbnQgYXJnMzI4NCxpbnQgYXJnMzI4
NSxpbnQgYXJnMzI4NixpbnQgYXJnMzI4NyxpbnQgYXJnMzI4OCxpbnQgYXJnMzI4OSxpbnQgYXJn
MzI5MCxpbnQgYXJnMzI5MSxpbnQgYXJnMzI5MixpbnQgYXJnMzI5MyxpbnQgYXJnMzI5NCxpbnQg
YXJnMzI5NSxpbnQgYXJnMzI5NixpbnQgYXJnMzI5NyxpbnQgYXJnMzI5OCxpbnQgYXJnMzI5OSxp
bnQgYXJnMzMwMCxpbnQgYXJnMzMwMSxpbnQgYXJnMzMwMixpbnQgYXJnMzMwMyxpbnQgYXJnMzMw
NCxpbnQgYXJnMzMwNSxpbnQgYXJnMzMwNixpbnQgYXJnMzMwNyxpbnQgYXJnMzMwOCxpbnQgYXJn
MzMwOSxpbnQgYXJnMzMxMCxpbnQgYXJnMzMxMSxpbnQgYXJnMzMxMixpbnQgYXJnMzMxMyxpbnQg
YXJnMzMxNCxpbnQgYXJnMzMxNSxpbnQgYXJnMzMxNixpbnQgYXJnMzMxNyxpbnQgYXJnMzMxOCxp
bnQgYXJnMzMxOSxpbnQgYXJnMzMyMCxpbnQgYXJnMzMyMSxpbnQgYXJnMzMyMixpbnQgYXJnMzMy
MyxpbnQgYXJnMzMyNCxpbnQgYXJnMzMyNSxpbnQgYXJnMzMyNixpbnQgYXJnMzMyNyxpbnQgYXJn
MzMyOCxpbnQgYXJnMzMyOSxpbnQgYXJnMzMzMCxpbnQgYXJnMzMzMSxpbnQgYXJnMzMzMixpbnQg
YXJnMzMzMyxpbnQgYXJnMzMzNCxpbnQgYXJnMzMzNSxpbnQgYXJnMzMzNixpbnQgYXJnMzMzNyxp
bnQgYXJnMzMzOCxpbnQgYXJnMzMzOSxpbnQgYXJnMzM0MCxpbnQgYXJnMzM0MSxpbnQgYXJnMzM0
MixpbnQgYXJnMzM0MyxpbnQgYXJnMzM0NCxpbnQgYXJnMzM0NSxpbnQgYXJnMzM0NixpbnQgYXJn
MzM0NyxpbnQgYXJnMzM0OCxpbnQgYXJnMzM0OSxpbnQgYXJnMzM1MCxpbnQgYXJnMzM1MSxpbnQg
YXJnMzM1MixpbnQgYXJnMzM1MyxpbnQgYXJnMzM1NCxpbnQgYXJnMzM1NSxpbnQgYXJnMzM1Nixp
bnQgYXJnMzM1NyxpbnQgYXJnMzM1OCxpbnQgYXJnMzM1OSxpbnQgYXJnMzM2MCxpbnQgYXJnMzM2
MSxpbnQgYXJnMzM2MixpbnQgYXJnMzM2MyxpbnQgYXJnMzM2NCxpbnQgYXJnMzM2NSxpbnQgYXJn
MzM2NixpbnQgYXJnMzM2NyxpbnQgYXJnMzM2OCxpbnQgYXJnMzM2OSxpbnQgYXJnMzM3MCxpbnQg
YXJnMzM3MSxpbnQgYXJnMzM3MixpbnQgYXJnMzM3MyxpbnQgYXJnMzM3NCxpbnQgYXJnMzM3NSxp
bnQgYXJnMzM3NixpbnQgYXJnMzM3NyxpbnQgYXJnMzM3OCxpbnQgYXJnMzM3OSxpbnQgYXJnMzM4
MCxpbnQgYXJnMzM4MSxpbnQgYXJnMzM4MixpbnQgYXJnMzM4MyxpbnQgYXJnMzM4NCxpbnQgYXJn
MzM4NSxpbnQgYXJnMzM4NixpbnQgYXJnMzM4NyxpbnQgYXJnMzM4OCxpbnQgYXJnMzM4OSxpbnQg
YXJnMzM5MCxpbnQgYXJnMzM5MSxpbnQgYXJnMzM5MixpbnQgYXJnMzM5MyxpbnQgYXJnMzM5NCxp
bnQgYXJnMzM5NSxpbnQgYXJnMzM5NixpbnQgYXJnMzM5NyxpbnQgYXJnMzM5OCxpbnQgYXJnMzM5
OSxpbnQgYXJnMzQwMCxpbnQgYXJnMzQwMSxpbnQgYXJnMzQwMixpbnQgYXJnMzQwMyxpbnQgYXJn
MzQwNCxpbnQgYXJnMzQwNSxpbnQgYXJnMzQwNixpbnQgYXJnMzQwNyxpbnQgYXJnMzQwOCxpbnQg
YXJnMzQwOSxpbnQgYXJnMzQxMCxpbnQgYXJnMzQxMSxpbnQgYXJnMzQxMixpbnQgYXJnMzQxMyxp
bnQgYXJnMzQxNCxpbnQgYXJnMzQxNSxpbnQgYXJnMzQxNixpbnQgYXJnMzQxNyxpbnQgYXJnMzQx
OCxpbnQgYXJnMzQxOSxpbnQgYXJnMzQyMCxpbnQgYXJnMzQyMSxpbnQgYXJnMzQyMixpbnQgYXJn
MzQyMyxpbnQgYXJnMzQyNCxpbnQgYXJnMzQyNSxpbnQgYXJnMzQyNixpbnQgYXJnMzQyNyxpbnQg
YXJnMzQyOCxpbnQgYXJnMzQyOSxpbnQgYXJnMzQzMCxpbnQgYXJnMzQzMSxpbnQgYXJnMzQzMixp
bnQgYXJnMzQzMyxpbnQgYXJnMzQzNCxpbnQgYXJnMzQzNSxpbnQgYXJnMzQzNixpbnQgYXJnMzQz
NyxpbnQgYXJnMzQzOCxpbnQgYXJnMzQzOSxpbnQgYXJnMzQ0MCxpbnQgYXJnMzQ0MSxpbnQgYXJn
MzQ0MixpbnQgYXJnMzQ0MyxpbnQgYXJnMzQ0NCxpbnQgYXJnMzQ0NSxpbnQgYXJnMzQ0NixpbnQg
YXJnMzQ0NyxpbnQgYXJnMzQ0OCxpbnQgYXJnMzQ0OSxpbnQgYXJnMzQ1MCxpbnQgYXJnMzQ1MSxp
bnQgYXJnMzQ1MixpbnQgYXJnMzQ1MyxpbnQgYXJnMzQ1NCxpbnQgYXJnMzQ1NSxpbnQgYXJnMzQ1
NixpbnQgYXJnMzQ1NyxpbnQgYXJnMzQ1OCxpbnQgYXJnMzQ1OSxpbnQgYXJnMzQ2MCxpbnQgYXJn
MzQ2MSxpbnQgYXJnMzQ2MixpbnQgYXJnMzQ2MyxpbnQgYXJnMzQ2NCxpbnQgYXJnMzQ2NSxpbnQg
YXJnMzQ2NixpbnQgYXJnMzQ2NyxpbnQgYXJnMzQ2OCxpbnQgYXJnMzQ2OSxpbnQgYXJnMzQ3MCxp
bnQgYXJnMzQ3MSxpbnQgYXJnMzQ3MixpbnQgYXJnMzQ3MyxpbnQgYXJnMzQ3NCxpbnQgYXJnMzQ3
NSxpbnQgYXJnMzQ3NixpbnQgYXJnMzQ3NyxpbnQgYXJnMzQ3OCxpbnQgYXJnMzQ3OSxpbnQgYXJn
MzQ4MCxpbnQgYXJnMzQ4MSxpbnQgYXJnMzQ4MixpbnQgYXJnMzQ4MyxpbnQgYXJnMzQ4NCxpbnQg
YXJnMzQ4NSxpbnQgYXJnMzQ4NixpbnQgYXJnMzQ4NyxpbnQgYXJnMzQ4OCxpbnQgYXJnMzQ4OSxp
bnQgYXJnMzQ5MCxpbnQgYXJnMzQ5MSxpbnQgYXJnMzQ5MixpbnQgYXJnMzQ5MyxpbnQgYXJnMzQ5
NCxpbnQgYXJnMzQ5NSxpbnQgYXJnMzQ5NixpbnQgYXJnMzQ5NyxpbnQgYXJnMzQ5OCxpbnQgYXJn
MzQ5OSxpbnQgYXJnMzUwMCxpbnQgYXJnMzUwMSxpbnQgYXJnMzUwMixpbnQgYXJnMzUwMyxpbnQg
YXJnMzUwNCxpbnQgYXJnMzUwNSxpbnQgYXJnMzUwNixpbnQgYXJnMzUwNyxpbnQgYXJnMzUwOCxp
bnQgYXJnMzUwOSxpbnQgYXJnMzUxMCxpbnQgYXJnMzUxMSxpbnQgYXJnMzUxMixpbnQgYXJnMzUx
MyxpbnQgYXJnMzUxNCxpbnQgYXJnMzUxNSxpbnQgYXJnMzUxNixpbnQgYXJnMzUxNyxpbnQgYXJn
MzUxOCxpbnQgYXJnMzUxOSxpbnQgYXJnMzUyMCxpbnQgYXJnMzUyMSxpbnQgYXJnMzUyMixpbnQg
YXJnMzUyMyxpbnQgYXJnMzUyNCxpbnQgYXJnMzUyNSxpbnQgYXJnMzUyNixpbnQgYXJnMzUyNyxp
bnQgYXJnMzUyOCxpbnQgYXJnMzUyOSxpbnQgYXJnMzUzMCxpbnQgYXJnMzUzMSxpbnQgYXJnMzUz
MixpbnQgYXJnMzUzMyxpbnQgYXJnMzUzNCxpbnQgYXJnMzUzNSxpbnQgYXJnMzUzNixpbnQgYXJn
MzUzNyxpbnQgYXJnMzUzOCxpbnQgYXJnMzUzOSxpbnQgYXJnMzU0MCxpbnQgYXJnMzU0MSxpbnQg
YXJnMzU0MixpbnQgYXJnMzU0MyxpbnQgYXJnMzU0NCxpbnQgYXJnMzU0NSxpbnQgYXJnMzU0Nixp
bnQgYXJnMzU0NyxpbnQgYXJnMzU0OCxpbnQgYXJnMzU0OSxpbnQgYXJnMzU1MCxpbnQgYXJnMzU1
MSxpbnQgYXJnMzU1MixpbnQgYXJnMzU1MyxpbnQgYXJnMzU1NCxpbnQgYXJnMzU1NSxpbnQgYXJn
MzU1NixpbnQgYXJnMzU1NyxpbnQgYXJnMzU1OCxpbnQgYXJnMzU1OSxpbnQgYXJnMzU2MCxpbnQg
YXJnMzU2MSxpbnQgYXJnMzU2MixpbnQgYXJnMzU2MyxpbnQgYXJnMzU2NCxpbnQgYXJnMzU2NSxp
bnQgYXJnMzU2NixpbnQgYXJnMzU2NyxpbnQgYXJnMzU2OCxpbnQgYXJnMzU2OSxpbnQgYXJnMzU3
MCxpbnQgYXJnMzU3MSxpbnQgYXJnMzU3MixpbnQgYXJnMzU3MyxpbnQgYXJnMzU3NCxpbnQgYXJn
MzU3NSxpbnQgYXJnMzU3NixpbnQgYXJnMzU3NyxpbnQgYXJnMzU3OCxpbnQgYXJnMzU3OSxpbnQg
YXJnMzU4MCxpbnQgYXJnMzU4MSxpbnQgYXJnMzU4MixpbnQgYXJnMzU4MyxpbnQgYXJnMzU4NCxp
bnQgYXJnMzU4NSxpbnQgYXJnMzU4NixpbnQgYXJnMzU4NyxpbnQgYXJnMzU4OCxpbnQgYXJnMzU4
OSxpbnQgYXJnMzU5MCxpbnQgYXJnMzU5MSxpbnQgYXJnMzU5MixpbnQgYXJnMzU5MyxpbnQgYXJn
MzU5NCxpbnQgYXJnMzU5NSxpbnQgYXJnMzU5NixpbnQgYXJnMzU5NyxpbnQgYXJnMzU5OCxpbnQg
YXJnMzU5OSxpbnQgYXJnMzYwMCxpbnQgYXJnMzYwMSxpbnQgYXJnMzYwMixpbnQgYXJnMzYwMyxp
bnQgYXJnMzYwNCxpbnQgYXJnMzYwNSxpbnQgYXJnMzYwNixpbnQgYXJnMzYwNyxpbnQgYXJnMzYw
OCxpbnQgYXJnMzYwOSxpbnQgYXJnMzYxMCxpbnQgYXJnMzYxMSxpbnQgYXJnMzYxMixpbnQgYXJn
MzYxMyxpbnQgYXJnMzYxNCxpbnQgYXJnMzYxNSxpbnQgYXJnMzYxNixpbnQgYXJnMzYxNyxpbnQg
YXJnMzYxOCxpbnQgYXJnMzYxOSxpbnQgYXJnMzYyMCxpbnQgYXJnMzYyMSxpbnQgYXJnMzYyMixp
bnQgYXJnMzYyMyxpbnQgYXJnMzYyNCxpbnQgYXJnMzYyNSxpbnQgYXJnMzYyNixpbnQgYXJnMzYy
NyxpbnQgYXJnMzYyOCxpbnQgYXJnMzYyOSxpbnQgYXJnMzYzMCxpbnQgYXJnMzYzMSxpbnQgYXJn
MzYzMixpbnQgYXJnMzYzMyxpbnQgYXJnMzYzNCxpbnQgYXJnMzYzNSxpbnQgYXJnMzYzNixpbnQg
YXJnMzYzNyxpbnQgYXJnMzYzOCxpbnQgYXJnMzYzOSxpbnQgYXJnMzY0MCxpbnQgYXJnMzY0MSxp
bnQgYXJnMzY0MixpbnQgYXJnMzY0MyxpbnQgYXJnMzY0NCxpbnQgYXJnMzY0NSxpbnQgYXJnMzY0
NixpbnQgYXJnMzY0NyxpbnQgYXJnMzY0OCxpbnQgYXJnMzY0OSxpbnQgYXJnMzY1MCxpbnQgYXJn
MzY1MSxpbnQgYXJnMzY1MixpbnQgYXJnMzY1MyxpbnQgYXJnMzY1NCxpbnQgYXJnMzY1NSxpbnQg
YXJnMzY1NixpbnQgYXJnMzY1NyxpbnQgYXJnMzY1OCxpbnQgYXJnMzY1OSxpbnQgYXJnMzY2MCxp
bnQgYXJnMzY2MSxpbnQgYXJnMzY2MixpbnQgYXJnMzY2MyxpbnQgYXJnMzY2NCxpbnQgYXJnMzY2
NSxpbnQgYXJnMzY2NixpbnQgYXJnMzY2NyxpbnQgYXJnMzY2OCxpbnQgYXJnMzY2OSxpbnQgYXJn
MzY3MCxpbnQgYXJnMzY3MSxpbnQgYXJnMzY3MixpbnQgYXJnMzY3MyxpbnQgYXJnMzY3NCxpbnQg
YXJnMzY3NSxpbnQgYXJnMzY3NixpbnQgYXJnMzY3NyxpbnQgYXJnMzY3OCxpbnQgYXJnMzY3OSxp
bnQgYXJnMzY4MCxpbnQgYXJnMzY4MSxpbnQgYXJnMzY4MixpbnQgYXJnMzY4MyxpbnQgYXJnMzY4
NCxpbnQgYXJnMzY4NSxpbnQgYXJnMzY4NixpbnQgYXJnMzY4NyxpbnQgYXJnMzY4OCxpbnQgYXJn
MzY4OSxpbnQgYXJnMzY5MCxpbnQgYXJnMzY5MSxpbnQgYXJnMzY5MixpbnQgYXJnMzY5MyxpbnQg
YXJnMzY5NCxpbnQgYXJnMzY5NSxpbnQgYXJnMzY5NixpbnQgYXJnMzY5NyxpbnQgYXJnMzY5OCxp
bnQgYXJnMzY5OSxpbnQgYXJnMzcwMCxpbnQgYXJnMzcwMSxpbnQgYXJnMzcwMixpbnQgYXJnMzcw
MyxpbnQgYXJnMzcwNCxpbnQgYXJnMzcwNSxpbnQgYXJnMzcwNixpbnQgYXJnMzcwNyxpbnQgYXJn
MzcwOCxpbnQgYXJnMzcwOSxpbnQgYXJnMzcxMCxpbnQgYXJnMzcxMSxpbnQgYXJnMzcxMixpbnQg
YXJnMzcxMyxpbnQgYXJnMzcxNCxpbnQgYXJnMzcxNSxpbnQgYXJnMzcxNixpbnQgYXJnMzcxNyxp
bnQgYXJnMzcxOCxpbnQgYXJnMzcxOSxpbnQgYXJnMzcyMCxpbnQgYXJnMzcyMSxpbnQgYXJnMzcy
MixpbnQgYXJnMzcyMyxpbnQgYXJnMzcyNCxpbnQgYXJnMzcyNSxpbnQgYXJnMzcyNixpbnQgYXJn
MzcyNyxpbnQgYXJnMzcyOCxpbnQgYXJnMzcyOSxpbnQgYXJnMzczMCxpbnQgYXJnMzczMSxpbnQg
YXJnMzczMixpbnQgYXJnMzczMyxpbnQgYXJnMzczNCxpbnQgYXJnMzczNSxpbnQgYXJnMzczNixp
bnQgYXJnMzczNyxpbnQgYXJnMzczOCxpbnQgYXJnMzczOSxpbnQgYXJnMzc0MCxpbnQgYXJnMzc0
MSxpbnQgYXJnMzc0MixpbnQgYXJnMzc0MyxpbnQgYXJnMzc0NCxpbnQgYXJnMzc0NSxpbnQgYXJn
Mzc0NixpbnQgYXJnMzc0NyxpbnQgYXJnMzc0OCxpbnQgYXJnMzc0OSxpbnQgYXJnMzc1MCxpbnQg
YXJnMzc1MSxpbnQgYXJnMzc1MixpbnQgYXJnMzc1MyxpbnQgYXJnMzc1NCxpbnQgYXJnMzc1NSxp
bnQgYXJnMzc1NixpbnQgYXJnMzc1NyxpbnQgYXJnMzc1OCxpbnQgYXJnMzc1OSxpbnQgYXJnMzc2
MCxpbnQgYXJnMzc2MSxpbnQgYXJnMzc2MixpbnQgYXJnMzc2MyxpbnQgYXJnMzc2NCxpbnQgYXJn
Mzc2NSxpbnQgYXJnMzc2NixpbnQgYXJnMzc2NyxpbnQgYXJnMzc2OCxpbnQgYXJnMzc2OSxpbnQg
YXJnMzc3MCxpbnQgYXJnMzc3MSxpbnQgYXJnMzc3MixpbnQgYXJnMzc3MyxpbnQgYXJnMzc3NCxp
bnQgYXJnMzc3NSxpbnQgYXJnMzc3NixpbnQgYXJnMzc3NyxpbnQgYXJnMzc3OCxpbnQgYXJnMzc3
OSxpbnQgYXJnMzc4MCxpbnQgYXJnMzc4MSxpbnQgYXJnMzc4MixpbnQgYXJnMzc4MyxpbnQgYXJn
Mzc4NCxpbnQgYXJnMzc4NSxpbnQgYXJnMzc4NixpbnQgYXJnMzc4NyxpbnQgYXJnMzc4OCxpbnQg
YXJnMzc4OSxpbnQgYXJnMzc5MCxpbnQgYXJnMzc5MSxpbnQgYXJnMzc5MixpbnQgYXJnMzc5Myxp
bnQgYXJnMzc5NCxpbnQgYXJnMzc5NSxpbnQgYXJnMzc5NixpbnQgYXJnMzc5NyxpbnQgYXJnMzc5
OCxpbnQgYXJnMzc5OSxpbnQgYXJnMzgwMCxpbnQgYXJnMzgwMSxpbnQgYXJnMzgwMixpbnQgYXJn
MzgwMyxpbnQgYXJnMzgwNCxpbnQgYXJnMzgwNSxpbnQgYXJnMzgwNixpbnQgYXJnMzgwNyxpbnQg
YXJnMzgwOCxpbnQgYXJnMzgwOSxpbnQgYXJnMzgxMCxpbnQgYXJnMzgxMSxpbnQgYXJnMzgxMixp
bnQgYXJnMzgxMyxpbnQgYXJnMzgxNCxpbnQgYXJnMzgxNSxpbnQgYXJnMzgxNixpbnQgYXJnMzgx
NyxpbnQgYXJnMzgxOCxpbnQgYXJnMzgxOSxpbnQgYXJnMzgyMCxpbnQgYXJnMzgyMSxpbnQgYXJn
MzgyMixpbnQgYXJnMzgyMyxpbnQgYXJnMzgyNCxpbnQgYXJnMzgyNSxpbnQgYXJnMzgyNixpbnQg
YXJnMzgyNyxpbnQgYXJnMzgyOCxpbnQgYXJnMzgyOSxpbnQgYXJnMzgzMCxpbnQgYXJnMzgzMSxp
bnQgYXJnMzgzMixpbnQgYXJnMzgzMyxpbnQgYXJnMzgzNCxpbnQgYXJnMzgzNSxpbnQgYXJnMzgz
NixpbnQgYXJnMzgzNyxpbnQgYXJnMzgzOCxpbnQgYXJnMzgzOSxpbnQgYXJnMzg0MCxpbnQgYXJn
Mzg0MSxpbnQgYXJnMzg0MixpbnQgYXJnMzg0MyxpbnQgYXJnMzg0NCxpbnQgYXJnMzg0NSxpbnQg
YXJnMzg0NixpbnQgYXJnMzg0NyxpbnQgYXJnMzg0OCxpbnQgYXJnMzg0OSxpbnQgYXJnMzg1MCxp
bnQgYXJnMzg1MSxpbnQgYXJnMzg1MixpbnQgYXJnMzg1MyxpbnQgYXJnMzg1NCxpbnQgYXJnMzg1
NSxpbnQgYXJnMzg1NixpbnQgYXJnMzg1NyxpbnQgYXJnMzg1OCxpbnQgYXJnMzg1OSxpbnQgYXJn
Mzg2MCxpbnQgYXJnMzg2MSxpbnQgYXJnMzg2MixpbnQgYXJnMzg2MyxpbnQgYXJnMzg2NCxpbnQg
YXJnMzg2NSxpbnQgYXJnMzg2NixpbnQgYXJnMzg2NyxpbnQgYXJnMzg2OCxpbnQgYXJnMzg2OSxp
bnQgYXJnMzg3MCxpbnQgYXJnMzg3MSxpbnQgYXJnMzg3MixpbnQgYXJnMzg3MyxpbnQgYXJnMzg3
NCxpbnQgYXJnMzg3NSxpbnQgYXJnMzg3NixpbnQgYXJnMzg3NyxpbnQgYXJnMzg3OCxpbnQgYXJn
Mzg3OSxpbnQgYXJnMzg4MCxpbnQgYXJnMzg4MSxpbnQgYXJnMzg4MixpbnQgYXJnMzg4MyxpbnQg
YXJnMzg4NCxpbnQgYXJnMzg4NSxpbnQgYXJnMzg4NixpbnQgYXJnMzg4NyxpbnQgYXJnMzg4OCxp
bnQgYXJnMzg4OSxpbnQgYXJnMzg5MCxpbnQgYXJnMzg5MSxpbnQgYXJnMzg5MixpbnQgYXJnMzg5
MyxpbnQgYXJnMzg5NCxpbnQgYXJnMzg5NSxpbnQgYXJnMzg5NixpbnQgYXJnMzg5NyxpbnQgYXJn
Mzg5OCxpbnQgYXJnMzg5OSxpbnQgYXJnMzkwMCxpbnQgYXJnMzkwMSxpbnQgYXJnMzkwMixpbnQg
YXJnMzkwMyxpbnQgYXJnMzkwNCxpbnQgYXJnMzkwNSxpbnQgYXJnMzkwNixpbnQgYXJnMzkwNyxp
bnQgYXJnMzkwOCxpbnQgYXJnMzkwOSxpbnQgYXJnMzkxMCxpbnQgYXJnMzkxMSxpbnQgYXJnMzkx
MixpbnQgYXJnMzkxMyxpbnQgYXJnMzkxNCxpbnQgYXJnMzkxNSxpbnQgYXJnMzkxNixpbnQgYXJn
MzkxNyxpbnQgYXJnMzkxOCxpbnQgYXJnMzkxOSxpbnQgYXJnMzkyMCxpbnQgYXJnMzkyMSxpbnQg
YXJnMzkyMixpbnQgYXJnMzkyMyxpbnQgYXJnMzkyNCxpbnQgYXJnMzkyNSxpbnQgYXJnMzkyNixp
bnQgYXJnMzkyNyxpbnQgYXJnMzkyOCxpbnQgYXJnMzkyOSxpbnQgYXJnMzkzMCxpbnQgYXJnMzkz
MSxpbnQgYXJnMzkzMixpbnQgYXJnMzkzMyxpbnQgYXJnMzkzNCxpbnQgYXJnMzkzNSxpbnQgYXJn
MzkzNixpbnQgYXJnMzkzNyxpbnQgYXJnMzkzOCxpbnQgYXJnMzkzOSxpbnQgYXJnMzk0MCxpbnQg
YXJnMzk0MSxpbnQgYXJnMzk0MixpbnQgYXJnMzk0MyxpbnQgYXJnMzk0NCxpbnQgYXJnMzk0NSxp
bnQgYXJnMzk0NixpbnQgYXJnMzk0NyxpbnQgYXJnMzk0OCxpbnQgYXJnMzk0OSxpbnQgYXJnMzk1
MCxpbnQgYXJnMzk1MSxpbnQgYXJnMzk1MixpbnQgYXJnMzk1MyxpbnQgYXJnMzk1NCxpbnQgYXJn
Mzk1NSxpbnQgYXJnMzk1NixpbnQgYXJnMzk1NyxpbnQgYXJnMzk1OCxpbnQgYXJnMzk1OSxpbnQg
YXJnMzk2MCxpbnQgYXJnMzk2MSxpbnQgYXJnMzk2MixpbnQgYXJnMzk2MyxpbnQgYXJnMzk2NCxp
bnQgYXJnMzk2NSxpbnQgYXJnMzk2NixpbnQgYXJnMzk2NyxpbnQgYXJnMzk2OCxpbnQgYXJnMzk2
OSxpbnQgYXJnMzk3MCxpbnQgYXJnMzk3MSxpbnQgYXJnMzk3MixpbnQgYXJnMzk3MyxpbnQgYXJn
Mzk3NCxpbnQgYXJnMzk3NSxpbnQgYXJnMzk3NixpbnQgYXJnMzk3NyxpbnQgYXJnMzk3OCxpbnQg
YXJnMzk3OSxpbnQgYXJnMzk4MCxpbnQgYXJnMzk4MSxpbnQgYXJnMzk4MixpbnQgYXJnMzk4Myxp
bnQgYXJnMzk4NCxpbnQgYXJnMzk4NSxpbnQgYXJnMzk4NixpbnQgYXJnMzk4NyxpbnQgYXJnMzk4
OCxpbnQgYXJnMzk4OSxpbnQgYXJnMzk5MCxpbnQgYXJnMzk5MSxpbnQgYXJnMzk5MixpbnQgYXJn
Mzk5MyxpbnQgYXJnMzk5NCxpbnQgYXJnMzk5NSxpbnQgYXJnMzk5NixpbnQgYXJnMzk5NyxpbnQg
YXJnMzk5OCxpbnQgYXJnMzk5OSxpbnQgYXJnNDAwMCxpbnQgYXJnNDAwMSxpbnQgYXJnNDAwMixp
bnQgYXJnNDAwMyxpbnQgYXJnNDAwNCxpbnQgYXJnNDAwNSxpbnQgYXJnNDAwNixpbnQgYXJnNDAw
NyxpbnQgYXJnNDAwOCxpbnQgYXJnNDAwOSxpbnQgYXJnNDAxMCxpbnQgYXJnNDAxMSxpbnQgYXJn
NDAxMixpbnQgYXJnNDAxMyxpbnQgYXJnNDAxNCxpbnQgYXJnNDAxNSxpbnQgYXJnNDAxNixpbnQg
YXJnNDAxNyxpbnQgYXJnNDAxOCxpbnQgYXJnNDAxOSxpbnQgYXJnNDAyMCxpbnQgYXJnNDAyMSxp
bnQgYXJnNDAyMixpbnQgYXJnNDAyMyxpbnQgYXJnNDAyNCxpbnQgYXJnNDAyNSxpbnQgYXJnNDAy
NixpbnQgYXJnNDAyNyxpbnQgYXJnNDAyOCxpbnQgYXJnNDAyOSxpbnQgYXJnNDAzMCxpbnQgYXJn
NDAzMSxpbnQgYXJnNDAzMixpbnQgYXJnNDAzMyxpbnQgYXJnNDAzNCxpbnQgYXJnNDAzNSxpbnQg
YXJnNDAzNixpbnQgYXJnNDAzNyxpbnQgYXJnNDAzOCxpbnQgYXJnNDAzOSxpbnQgYXJnNDA0MCxp
bnQgYXJnNDA0MSxpbnQgYXJnNDA0MixpbnQgYXJnNDA0MyxpbnQgYXJnNDA0NCxpbnQgYXJnNDA0
NSxpbnQgYXJnNDA0NixpbnQgYXJnNDA0NyxpbnQgYXJnNDA0OCxpbnQgYXJnNDA0OSxpbnQgYXJn
NDA1MCxpbnQgYXJnNDA1MSxpbnQgYXJnNDA1MixpbnQgYXJnNDA1MyxpbnQgYXJnNDA1NCxpbnQg
YXJnNDA1NSxpbnQgYXJnNDA1NixpbnQgYXJnNDA1NyxpbnQgYXJnNDA1OCxpbnQgYXJnNDA1OSxp
bnQgYXJnNDA2MCxpbnQgYXJnNDA2MSxpbnQgYXJnNDA2MixpbnQgYXJnNDA2MyxpbnQgYXJnNDA2
NCxpbnQgYXJnNDA2NSxpbnQgYXJnNDA2NixpbnQgYXJnNDA2NyxpbnQgYXJnNDA2OCxpbnQgYXJn
NDA2OSxpbnQgYXJnNDA3MCxpbnQgYXJnNDA3MSxpbnQgYXJnNDA3MixpbnQgYXJnNDA3MyxpbnQg
YXJnNDA3NCxpbnQgYXJnNDA3NSxpbnQgYXJnNDA3NixpbnQgYXJnNDA3NyxpbnQgYXJnNDA3OCxp
bnQgYXJnNDA3OSxpbnQgYXJnNDA4MCxpbnQgYXJnNDA4MSxpbnQgYXJnNDA4MixpbnQgYXJnNDA4
MyxpbnQgYXJnNDA4NCxpbnQgYXJnNDA4NSxpbnQgYXJnNDA4NixpbnQgYXJnNDA4NyxpbnQgYXJn
NDA4OCxpbnQgYXJnNDA4OSxpbnQgYXJnNDA5MCxpbnQgYXJnNDA5MSxpbnQgYXJnNDA5MixpbnQg
YXJnNDA5MyxpbnQgYXJnNDA5NCxpbnQgYXJnNDA5NSxpbnQgYXJnNDA5NixpbnQgYXJnNDA5Nyxp
bnQgYXJnNDA5OCxpbnQgYXJnNDA5OSxpbnQgYXJnNDEwMCxpbnQgYXJnNDEwMSxpbnQgYXJnNDEw
MixpbnQgYXJnNDEwMyxpbnQgYXJnNDEwNCxpbnQgYXJnNDEwNSxpbnQgYXJnNDEwNixpbnQgYXJn
NDEwNyxpbnQgYXJnNDEwOCxpbnQgYXJnNDEwOSxpbnQgYXJnNDExMCxpbnQgYXJnNDExMSxpbnQg
YXJnNDExMixpbnQgYXJnNDExMyxpbnQgYXJnNDExNCxpbnQgYXJnNDExNSxpbnQgYXJnNDExNixp
bnQgYXJnNDExNyxpbnQgYXJnNDExOCxpbnQgYXJnNDExOSxpbnQgYXJnNDEyMCxpbnQgYXJnNDEy
MSxpbnQgYXJnNDEyMixpbnQgYXJnNDEyMyxpbnQgYXJnNDEyNCxpbnQgYXJnNDEyNSxpbnQgYXJn
NDEyNixpbnQgYXJnNDEyNyxpbnQgYXJnNDEyOCxpbnQgYXJnNDEyOSxpbnQgYXJnNDEzMCxpbnQg
YXJnNDEzMSxpbnQgYXJnNDEzMixpbnQgYXJnNDEzMyxpbnQgYXJnNDEzNCxpbnQgYXJnNDEzNSxp
bnQgYXJnNDEzNixpbnQgYXJnNDEzNyxpbnQgYXJnNDEzOCxpbnQgYXJnNDEzOSxpbnQgYXJnNDE0
MCxpbnQgYXJnNDE0MSxpbnQgYXJnNDE0MixpbnQgYXJnNDE0MyxpbnQgYXJnNDE0NCxpbnQgYXJn
NDE0NSxpbnQgYXJnNDE0NixpbnQgYXJnNDE0NyxpbnQgYXJnNDE0OCxpbnQgYXJnNDE0OSxpbnQg
YXJnNDE1MCxpbnQgYXJnNDE1MSxpbnQgYXJnNDE1MixpbnQgYXJnNDE1MyxpbnQgYXJnNDE1NCxp
bnQgYXJnNDE1NSxpbnQgYXJnNDE1NixpbnQgYXJnNDE1NyxpbnQgYXJnNDE1OCxpbnQgYXJnNDE1
OSxpbnQgYXJnNDE2MCxpbnQgYXJnNDE2MSxpbnQgYXJnNDE2MixpbnQgYXJnNDE2MyxpbnQgYXJn
NDE2NCxpbnQgYXJnNDE2NSxpbnQgYXJnNDE2NixpbnQgYXJnNDE2NyxpbnQgYXJnNDE2OCxpbnQg
YXJnNDE2OSxpbnQgYXJnNDE3MCxpbnQgYXJnNDE3MSxpbnQgYXJnNDE3MixpbnQgYXJnNDE3Myxp
bnQgYXJnNDE3NCxpbnQgYXJnNDE3NSxpbnQgYXJnNDE3NixpbnQgYXJnNDE3NyxpbnQgYXJnNDE3
OCxpbnQgYXJnNDE3OSxpbnQgYXJnNDE4MCxpbnQgYXJnNDE4MSxpbnQgYXJnNDE4MixpbnQgYXJn
NDE4MyxpbnQgYXJnNDE4NCxpbnQgYXJnNDE4NSxpbnQgYXJnNDE4NixpbnQgYXJnNDE4NyxpbnQg
YXJnNDE4OCxpbnQgYXJnNDE4OSxpbnQgYXJnNDE5MCxpbnQgYXJnNDE5MSxpbnQgYXJnNDE5Mixp
bnQgYXJnNDE5MyxpbnQgYXJnNDE5NCxpbnQgYXJnNDE5NSxpbnQgYXJnNDE5NixpbnQgYXJnNDE5
NyxpbnQgYXJnNDE5OCxpbnQgYXJnNDE5OSxpbnQgYXJnNDIwMCxpbnQgYXJnNDIwMSxpbnQgYXJn
NDIwMixpbnQgYXJnNDIwMyxpbnQgYXJnNDIwNCxpbnQgYXJnNDIwNSxpbnQgYXJnNDIwNixpbnQg
YXJnNDIwNyxpbnQgYXJnNDIwOCxpbnQgYXJnNDIwOSxpbnQgYXJnNDIxMCxpbnQgYXJnNDIxMSxp
bnQgYXJnNDIxMixpbnQgYXJnNDIxMyxpbnQgYXJnNDIxNCxpbnQgYXJnNDIxNSxpbnQgYXJnNDIx
NixpbnQgYXJnNDIxNyxpbnQgYXJnNDIxOCxpbnQgYXJnNDIxOSxpbnQgYXJnNDIyMCxpbnQgYXJn
NDIyMSxpbnQgYXJnNDIyMixpbnQgYXJnNDIyMyxpbnQgYXJnNDIyNCxpbnQgYXJnNDIyNSxpbnQg
YXJnNDIyNixpbnQgYXJnNDIyNyxpbnQgYXJnNDIyOCxpbnQgYXJnNDIyOSxpbnQgYXJnNDIzMCxp
bnQgYXJnNDIzMSxpbnQgYXJnNDIzMixpbnQgYXJnNDIzMyxpbnQgYXJnNDIzNCxpbnQgYXJnNDIz
NSxpbnQgYXJnNDIzNixpbnQgYXJnNDIzNyxpbnQgYXJnNDIzOCxpbnQgYXJnNDIzOSxpbnQgYXJn
NDI0MCxpbnQgYXJnNDI0MSxpbnQgYXJnNDI0MixpbnQgYXJnNDI0MyxpbnQgYXJnNDI0NCxpbnQg
YXJnNDI0NSxpbnQgYXJnNDI0NixpbnQgYXJnNDI0NyxpbnQgYXJnNDI0OCxpbnQgYXJnNDI0OSxp
bnQgYXJnNDI1MCxpbnQgYXJnNDI1MSxpbnQgYXJnNDI1MixpbnQgYXJnNDI1MyxpbnQgYXJnNDI1
NCxpbnQgYXJnNDI1NSxpbnQgYXJnNDI1NixpbnQgYXJnNDI1NyxpbnQgYXJnNDI1OCxpbnQgYXJn
NDI1OSxpbnQgYXJnNDI2MCxpbnQgYXJnNDI2MSxpbnQgYXJnNDI2MixpbnQgYXJnNDI2MyxpbnQg
YXJnNDI2NCxpbnQgYXJnNDI2NSxpbnQgYXJnNDI2NixpbnQgYXJnNDI2NyxpbnQgYXJnNDI2OCxp
bnQgYXJnNDI2OSxpbnQgYXJnNDI3MCxpbnQgYXJnNDI3MSxpbnQgYXJnNDI3MixpbnQgYXJnNDI3
MyxpbnQgYXJnNDI3NCxpbnQgYXJnNDI3NSxpbnQgYXJnNDI3NixpbnQgYXJnNDI3NyxpbnQgYXJn
NDI3OCxpbnQgYXJnNDI3OSxpbnQgYXJnNDI4MCxpbnQgYXJnNDI4MSxpbnQgYXJnNDI4MixpbnQg
YXJnNDI4MyxpbnQgYXJnNDI4NCxpbnQgYXJnNDI4NSxpbnQgYXJnNDI4NixpbnQgYXJnNDI4Nyxp
bnQgYXJnNDI4OCxpbnQgYXJnNDI4OSxpbnQgYXJnNDI5MCxpbnQgYXJnNDI5MSxpbnQgYXJnNDI5
MixpbnQgYXJnNDI5MyxpbnQgYXJnNDI5NCxpbnQgYXJnNDI5NSxpbnQgYXJnNDI5NixpbnQgYXJn
NDI5NyxpbnQgYXJnNDI5OCxpbnQgYXJnNDI5OSxpbnQgYXJnNDMwMCxpbnQgYXJnNDMwMSxpbnQg
YXJnNDMwMixpbnQgYXJnNDMwMyxpbnQgYXJnNDMwNCxpbnQgYXJnNDMwNSxpbnQgYXJnNDMwNixp
bnQgYXJnNDMwNyxpbnQgYXJnNDMwOCxpbnQgYXJnNDMwOSxpbnQgYXJnNDMxMCxpbnQgYXJnNDMx
MSxpbnQgYXJnNDMxMixpbnQgYXJnNDMxMyxpbnQgYXJnNDMxNCxpbnQgYXJnNDMxNSxpbnQgYXJn
NDMxNixpbnQgYXJnNDMxNyxpbnQgYXJnNDMxOCxpbnQgYXJnNDMxOSxpbnQgYXJnNDMyMCxpbnQg
YXJnNDMyMSxpbnQgYXJnNDMyMixpbnQgYXJnNDMyMyxpbnQgYXJnNDMyNCxpbnQgYXJnNDMyNSxp
bnQgYXJnNDMyNixpbnQgYXJnNDMyNyxpbnQgYXJnNDMyOCxpbnQgYXJnNDMyOSxpbnQgYXJnNDMz
MCxpbnQgYXJnNDMzMSxpbnQgYXJnNDMzMixpbnQgYXJnNDMzMyxpbnQgYXJnNDMzNCxpbnQgYXJn
NDMzNSxpbnQgYXJnNDMzNixpbnQgYXJnNDMzNyxpbnQgYXJnNDMzOCxpbnQgYXJnNDMzOSxpbnQg
YXJnNDM0MCxpbnQgYXJnNDM0MSxpbnQgYXJnNDM0MixpbnQgYXJnNDM0MyxpbnQgYXJnNDM0NCxp
bnQgYXJnNDM0NSxpbnQgYXJnNDM0NixpbnQgYXJnNDM0NyxpbnQgYXJnNDM0OCxpbnQgYXJnNDM0
OSxpbnQgYXJnNDM1MCxpbnQgYXJnNDM1MSxpbnQgYXJnNDM1MixpbnQgYXJnNDM1MyxpbnQgYXJn
NDM1NCxpbnQgYXJnNDM1NSxpbnQgYXJnNDM1NixpbnQgYXJnNDM1NyxpbnQgYXJnNDM1OCxpbnQg
YXJnNDM1OSxpbnQgYXJnNDM2MCxpbnQgYXJnNDM2MSxpbnQgYXJnNDM2MixpbnQgYXJnNDM2Myxp
bnQgYXJnNDM2NCxpbnQgYXJnNDM2NSxpbnQgYXJnNDM2NixpbnQgYXJnNDM2NyxpbnQgYXJnNDM2
OCxpbnQgYXJnNDM2OSxpbnQgYXJnNDM3MCxpbnQgYXJnNDM3MSxpbnQgYXJnNDM3MixpbnQgYXJn
NDM3MyxpbnQgYXJnNDM3NCxpbnQgYXJnNDM3NSxpbnQgYXJnNDM3NixpbnQgYXJnNDM3NyxpbnQg
YXJnNDM3OCxpbnQgYXJnNDM3OSxpbnQgYXJnNDM4MCxpbnQgYXJnNDM4MSxpbnQgYXJnNDM4Mixp
bnQgYXJnNDM4MyxpbnQgYXJnNDM4NCxpbnQgYXJnNDM4NSxpbnQgYXJnNDM4NixpbnQgYXJnNDM4
NyxpbnQgYXJnNDM4OCxpbnQgYXJnNDM4OSxpbnQgYXJnNDM5MCxpbnQgYXJnNDM5MSxpbnQgYXJn
NDM5MixpbnQgYXJnNDM5MyxpbnQgYXJnNDM5NCxpbnQgYXJnNDM5NSxpbnQgYXJnNDM5NixpbnQg
YXJnNDM5NyxpbnQgYXJnNDM5OCxpbnQgYXJnNDM5OSxpbnQgYXJnNDQwMCxpbnQgYXJnNDQwMSxp
bnQgYXJnNDQwMixpbnQgYXJnNDQwMyxpbnQgYXJnNDQwNCxpbnQgYXJnNDQwNSxpbnQgYXJnNDQw
NixpbnQgYXJnNDQwNyxpbnQgYXJnNDQwOCxpbnQgYXJnNDQwOSxpbnQgYXJnNDQxMCxpbnQgYXJn
NDQxMSxpbnQgYXJnNDQxMixpbnQgYXJnNDQxMyxpbnQgYXJnNDQxNCxpbnQgYXJnNDQxNSxpbnQg
YXJnNDQxNixpbnQgYXJnNDQxNyxpbnQgYXJnNDQxOCxpbnQgYXJnNDQxOSxpbnQgYXJnNDQyMCxp
bnQgYXJnNDQyMSxpbnQgYXJnNDQyMixpbnQgYXJnNDQyMyxpbnQgYXJnNDQyNCxpbnQgYXJnNDQy
NSxpbnQgYXJnNDQyNixpbnQgYXJnNDQyNyxpbnQgYXJnNDQyOCxpbnQgYXJnNDQyOSxpbnQgYXJn
NDQzMCxpbnQgYXJnNDQzMSxpbnQgYXJnNDQzMixpbnQgYXJnNDQzMyxpbnQgYXJnNDQzNCxpbnQg
YXJnNDQzNSxpbnQgYXJnNDQzNixpbnQgYXJnNDQzNyxpbnQgYXJnNDQzOCxpbnQgYXJnNDQzOSxp
bnQgYXJnNDQ0MCxpbnQgYXJnNDQ0MSxpbnQgYXJnNDQ0MixpbnQgYXJnNDQ0MyxpbnQgYXJnNDQ0
NCxpbnQgYXJnNDQ0NSxpbnQgYXJnNDQ0NixpbnQgYXJnNDQ0NyxpbnQgYXJnNDQ0OCxpbnQgYXJn
NDQ0OSxpbnQgYXJnNDQ1MCxpbnQgYXJnNDQ1MSxpbnQgYXJnNDQ1MixpbnQgYXJnNDQ1MyxpbnQg
YXJnNDQ1NCxpbnQgYXJnNDQ1NSxpbnQgYXJnNDQ1NixpbnQgYXJnNDQ1NyxpbnQgYXJnNDQ1OCxp
bnQgYXJnNDQ1OSxpbnQgYXJnNDQ2MCxpbnQgYXJnNDQ2MSxpbnQgYXJnNDQ2MixpbnQgYXJnNDQ2
MyxpbnQgYXJnNDQ2NCxpbnQgYXJnNDQ2NSxpbnQgYXJnNDQ2NixpbnQgYXJnNDQ2NyxpbnQgYXJn
NDQ2OCxpbnQgYXJnNDQ2OSxpbnQgYXJnNDQ3MCxpbnQgYXJnNDQ3MSxpbnQgYXJnNDQ3MixpbnQg
YXJnNDQ3MyxpbnQgYXJnNDQ3NCxpbnQgYXJnNDQ3NSxpbnQgYXJnNDQ3NixpbnQgYXJnNDQ3Nyxp
bnQgYXJnNDQ3OCxpbnQgYXJnNDQ3OSxpbnQgYXJnNDQ4MCxpbnQgYXJnNDQ4MSxpbnQgYXJnNDQ4
MixpbnQgYXJnNDQ4MyxpbnQgYXJnNDQ4NCxpbnQgYXJnNDQ4NSxpbnQgYXJnNDQ4NixpbnQgYXJn
NDQ4NyxpbnQgYXJnNDQ4OCxpbnQgYXJnNDQ4OSxpbnQgYXJnNDQ5MCxpbnQgYXJnNDQ5MSxpbnQg
YXJnNDQ5MixpbnQgYXJnNDQ5MyxpbnQgYXJnNDQ5NCxpbnQgYXJnNDQ5NSxpbnQgYXJnNDQ5Nixp
bnQgYXJnNDQ5NyxpbnQgYXJnNDQ5OCxpbnQgYXJnNDQ5OSxpbnQgYXJnNDUwMCxpbnQgYXJnNDUw
MSxpbnQgYXJnNDUwMixpbnQgYXJnNDUwMyxpbnQgYXJnNDUwNCxpbnQgYXJnNDUwNSxpbnQgYXJn
NDUwNixpbnQgYXJnNDUwNyxpbnQgYXJnNDUwOCxpbnQgYXJnNDUwOSxpbnQgYXJnNDUxMCxpbnQg
YXJnNDUxMSxpbnQgYXJnNDUxMixpbnQgYXJnNDUxMyxpbnQgYXJnNDUxNCxpbnQgYXJnNDUxNSxp
bnQgYXJnNDUxNixpbnQgYXJnNDUxNyxpbnQgYXJnNDUxOCxpbnQgYXJnNDUxOSxpbnQgYXJnNDUy
MCxpbnQgYXJnNDUyMSxpbnQgYXJnNDUyMixpbnQgYXJnNDUyMyxpbnQgYXJnNDUyNCxpbnQgYXJn
NDUyNSxpbnQgYXJnNDUyNixpbnQgYXJnNDUyNyxpbnQgYXJnNDUyOCxpbnQgYXJnNDUyOSxpbnQg
YXJnNDUzMCxpbnQgYXJnNDUzMSxpbnQgYXJnNDUzMixpbnQgYXJnNDUzMyxpbnQgYXJnNDUzNCxp
bnQgYXJnNDUzNSxpbnQgYXJnNDUzNixpbnQgYXJnNDUzNyxpbnQgYXJnNDUzOCxpbnQgYXJnNDUz
OSxpbnQgYXJnNDU0MCxpbnQgYXJnNDU0MSxpbnQgYXJnNDU0MixpbnQgYXJnNDU0MyxpbnQgYXJn
NDU0NCxpbnQgYXJnNDU0NSxpbnQgYXJnNDU0NixpbnQgYXJnNDU0NyxpbnQgYXJnNDU0OCxpbnQg
YXJnNDU0OSxpbnQgYXJnNDU1MCxpbnQgYXJnNDU1MSxpbnQgYXJnNDU1MixpbnQgYXJnNDU1Myxp
bnQgYXJnNDU1NCxpbnQgYXJnNDU1NSxpbnQgYXJnNDU1NixpbnQgYXJnNDU1NyxpbnQgYXJnNDU1
OCxpbnQgYXJnNDU1OSxpbnQgYXJnNDU2MCxpbnQgYXJnNDU2MSxpbnQgYXJnNDU2MixpbnQgYXJn
NDU2MyxpbnQgYXJnNDU2NCxpbnQgYXJnNDU2NSxpbnQgYXJnNDU2NixpbnQgYXJnNDU2NyxpbnQg
YXJnNDU2OCxpbnQgYXJnNDU2OSxpbnQgYXJnNDU3MCxpbnQgYXJnNDU3MSxpbnQgYXJnNDU3Mixp
bnQgYXJnNDU3MyxpbnQgYXJnNDU3NCxpbnQgYXJnNDU3NSxpbnQgYXJnNDU3NixpbnQgYXJnNDU3
NyxpbnQgYXJnNDU3OCxpbnQgYXJnNDU3OSxpbnQgYXJnNDU4MCxpbnQgYXJnNDU4MSxpbnQgYXJn
NDU4MixpbnQgYXJnNDU4MyxpbnQgYXJnNDU4NCxpbnQgYXJnNDU4NSxpbnQgYXJnNDU4NixpbnQg
YXJnNDU4NyxpbnQgYXJnNDU4OCxpbnQgYXJnNDU4OSxpbnQgYXJnNDU5MCxpbnQgYXJnNDU5MSxp
bnQgYXJnNDU5MixpbnQgYXJnNDU5MyxpbnQgYXJnNDU5NCxpbnQgYXJnNDU5NSxpbnQgYXJnNDU5
NixpbnQgYXJnNDU5NyxpbnQgYXJnNDU5OCxpbnQgYXJnNDU5OSxpbnQgYXJnNDYwMCxpbnQgYXJn
NDYwMSxpbnQgYXJnNDYwMixpbnQgYXJnNDYwMyxpbnQgYXJnNDYwNCxpbnQgYXJnNDYwNSxpbnQg
YXJnNDYwNixpbnQgYXJnNDYwNyxpbnQgYXJnNDYwOCxpbnQgYXJnNDYwOSxpbnQgYXJnNDYxMCxp
bnQgYXJnNDYxMSxpbnQgYXJnNDYxMixpbnQgYXJnNDYxMyxpbnQgYXJnNDYxNCxpbnQgYXJnNDYx
NSxpbnQgYXJnNDYxNixpbnQgYXJnNDYxNyxpbnQgYXJnNDYxOCxpbnQgYXJnNDYxOSxpbnQgYXJn
NDYyMCxpbnQgYXJnNDYyMSxpbnQgYXJnNDYyMixpbnQgYXJnNDYyMyxpbnQgYXJnNDYyNCxpbnQg
YXJnNDYyNSxpbnQgYXJnNDYyNixpbnQgYXJnNDYyNyxpbnQgYXJnNDYyOCxpbnQgYXJnNDYyOSxp
bnQgYXJnNDYzMCxpbnQgYXJnNDYzMSxpbnQgYXJnNDYzMixpbnQgYXJnNDYzMyxpbnQgYXJnNDYz
NCxpbnQgYXJnNDYzNSxpbnQgYXJnNDYzNixpbnQgYXJnNDYzNyxpbnQgYXJnNDYzOCxpbnQgYXJn
NDYzOSxpbnQgYXJnNDY0MCxpbnQgYXJnNDY0MSxpbnQgYXJnNDY0MixpbnQgYXJnNDY0MyxpbnQg
YXJnNDY0NCxpbnQgYXJnNDY0NSxpbnQgYXJnNDY0NixpbnQgYXJnNDY0NyxpbnQgYXJnNDY0OCxp
bnQgYXJnNDY0OSxpbnQgYXJnNDY1MCxpbnQgYXJnNDY1MSxpbnQgYXJnNDY1MixpbnQgYXJnNDY1
MyxpbnQgYXJnNDY1NCxpbnQgYXJnNDY1NSxpbnQgYXJnNDY1NixpbnQgYXJnNDY1NyxpbnQgYXJn
NDY1OCxpbnQgYXJnNDY1OSxpbnQgYXJnNDY2MCxpbnQgYXJnNDY2MSxpbnQgYXJnNDY2MixpbnQg
YXJnNDY2MyxpbnQgYXJnNDY2NCxpbnQgYXJnNDY2NSxpbnQgYXJnNDY2NixpbnQgYXJnNDY2Nyxp
bnQgYXJnNDY2OCxpbnQgYXJnNDY2OSxpbnQgYXJnNDY3MCxpbnQgYXJnNDY3MSxpbnQgYXJnNDY3
MixpbnQgYXJnNDY3MyxpbnQgYXJnNDY3NCxpbnQgYXJnNDY3NSxpbnQgYXJnNDY3NixpbnQgYXJn
NDY3NyxpbnQgYXJnNDY3OCxpbnQgYXJnNDY3OSxpbnQgYXJnNDY4MCxpbnQgYXJnNDY4MSxpbnQg
YXJnNDY4MixpbnQgYXJnNDY4MyxpbnQgYXJnNDY4NCxpbnQgYXJnNDY4NSxpbnQgYXJnNDY4Nixp
bnQgYXJnNDY4NyxpbnQgYXJnNDY4OCxpbnQgYXJnNDY4OSxpbnQgYXJnNDY5MCxpbnQgYXJnNDY5
MSxpbnQgYXJnNDY5MixpbnQgYXJnNDY5MyxpbnQgYXJnNDY5NCxpbnQgYXJnNDY5NSxpbnQgYXJn
NDY5NixpbnQgYXJnNDY5NyxpbnQgYXJnNDY5OCxpbnQgYXJnNDY5OSxpbnQgYXJnNDcwMCxpbnQg
YXJnNDcwMSxpbnQgYXJnNDcwMixpbnQgYXJnNDcwMyxpbnQgYXJnNDcwNCxpbnQgYXJnNDcwNSxp
bnQgYXJnNDcwNixpbnQgYXJnNDcwNyxpbnQgYXJnNDcwOCxpbnQgYXJnNDcwOSxpbnQgYXJnNDcx
MCxpbnQgYXJnNDcxMSxpbnQgYXJnNDcxMixpbnQgYXJnNDcxMyxpbnQgYXJnNDcxNCxpbnQgYXJn
NDcxNSxpbnQgYXJnNDcxNixpbnQgYXJnNDcxNyxpbnQgYXJnNDcxOCxpbnQgYXJnNDcxOSxpbnQg
YXJnNDcyMCxpbnQgYXJnNDcyMSxpbnQgYXJnNDcyMixpbnQgYXJnNDcyMyxpbnQgYXJnNDcyNCxp
bnQgYXJnNDcyNSxpbnQgYXJnNDcyNixpbnQgYXJnNDcyNyxpbnQgYXJnNDcyOCxpbnQgYXJnNDcy
OSxpbnQgYXJnNDczMCxpbnQgYXJnNDczMSxpbnQgYXJnNDczMixpbnQgYXJnNDczMyxpbnQgYXJn
NDczNCxpbnQgYXJnNDczNSxpbnQgYXJnNDczNixpbnQgYXJnNDczNyxpbnQgYXJnNDczOCxpbnQg
YXJnNDczOSxpbnQgYXJnNDc0MCxpbnQgYXJnNDc0MSxpbnQgYXJnNDc0MixpbnQgYXJnNDc0Myxp
bnQgYXJnNDc0NCxpbnQgYXJnNDc0NSxpbnQgYXJnNDc0NixpbnQgYXJnNDc0NyxpbnQgYXJnNDc0
OCxpbnQgYXJnNDc0OSxpbnQgYXJnNDc1MCxpbnQgYXJnNDc1MSxpbnQgYXJnNDc1MixpbnQgYXJn
NDc1MyxpbnQgYXJnNDc1NCxpbnQgYXJnNDc1NSxpbnQgYXJnNDc1NixpbnQgYXJnNDc1NyxpbnQg
YXJnNDc1OCxpbnQgYXJnNDc1OSxpbnQgYXJnNDc2MCxpbnQgYXJnNDc2MSxpbnQgYXJnNDc2Mixp
bnQgYXJnNDc2MyxpbnQgYXJnNDc2NCxpbnQgYXJnNDc2NSxpbnQgYXJnNDc2NixpbnQgYXJnNDc2
NyxpbnQgYXJnNDc2OCxpbnQgYXJnNDc2OSxpbnQgYXJnNDc3MCxpbnQgYXJnNDc3MSxpbnQgYXJn
NDc3MixpbnQgYXJnNDc3MyxpbnQgYXJnNDc3NCxpbnQgYXJnNDc3NSxpbnQgYXJnNDc3NixpbnQg
YXJnNDc3NyxpbnQgYXJnNDc3OCxpbnQgYXJnNDc3OSxpbnQgYXJnNDc4MCxpbnQgYXJnNDc4MSxp
bnQgYXJnNDc4MixpbnQgYXJnNDc4MyxpbnQgYXJnNDc4NCxpbnQgYXJnNDc4NSxpbnQgYXJnNDc4
NixpbnQgYXJnNDc4NyxpbnQgYXJnNDc4OCxpbnQgYXJnNDc4OSxpbnQgYXJnNDc5MCxpbnQgYXJn
NDc5MSxpbnQgYXJnNDc5MixpbnQgYXJnNDc5MyxpbnQgYXJnNDc5NCxpbnQgYXJnNDc5NSxpbnQg
YXJnNDc5NixpbnQgYXJnNDc5NyxpbnQgYXJnNDc5OCxpbnQgYXJnNDc5OSxpbnQgYXJnNDgwMCxp
bnQgYXJnNDgwMSxpbnQgYXJnNDgwMixpbnQgYXJnNDgwMyxpbnQgYXJnNDgwNCxpbnQgYXJnNDgw
NSxpbnQgYXJnNDgwNixpbnQgYXJnNDgwNyxpbnQgYXJnNDgwOCxpbnQgYXJnNDgwOSxpbnQgYXJn
NDgxMCxpbnQgYXJnNDgxMSxpbnQgYXJnNDgxMixpbnQgYXJnNDgxMyxpbnQgYXJnNDgxNCxpbnQg
YXJnNDgxNSxpbnQgYXJnNDgxNixpbnQgYXJnNDgxNyxpbnQgYXJnNDgxOCxpbnQgYXJnNDgxOSxp
bnQgYXJnNDgyMCxpbnQgYXJnNDgyMSxpbnQgYXJnNDgyMixpbnQgYXJnNDgyMyxpbnQgYXJnNDgy
NCxpbnQgYXJnNDgyNSxpbnQgYXJnNDgyNixpbnQgYXJnNDgyNyxpbnQgYXJnNDgyOCxpbnQgYXJn
NDgyOSxpbnQgYXJnNDgzMCxpbnQgYXJnNDgzMSxpbnQgYXJnNDgzMixpbnQgYXJnNDgzMyxpbnQg
YXJnNDgzNCxpbnQgYXJnNDgzNSxpbnQgYXJnNDgzNixpbnQgYXJnNDgzNyxpbnQgYXJnNDgzOCxp
bnQgYXJnNDgzOSxpbnQgYXJnNDg0MCxpbnQgYXJnNDg0MSxpbnQgYXJnNDg0MixpbnQgYXJnNDg0
MyxpbnQgYXJnNDg0NCxpbnQgYXJnNDg0NSxpbnQgYXJnNDg0NixpbnQgYXJnNDg0NyxpbnQgYXJn
NDg0OCxpbnQgYXJnNDg0OSxpbnQgYXJnNDg1MCxpbnQgYXJnNDg1MSxpbnQgYXJnNDg1MixpbnQg
YXJnNDg1MyxpbnQgYXJnNDg1NCxpbnQgYXJnNDg1NSxpbnQgYXJnNDg1NixpbnQgYXJnNDg1Nyxp
bnQgYXJnNDg1OCxpbnQgYXJnNDg1OSxpbnQgYXJnNDg2MCxpbnQgYXJnNDg2MSxpbnQgYXJnNDg2
MixpbnQgYXJnNDg2MyxpbnQgYXJnNDg2NCxpbnQgYXJnNDg2NSxpbnQgYXJnNDg2NixpbnQgYXJn
NDg2NyxpbnQgYXJnNDg2OCxpbnQgYXJnNDg2OSxpbnQgYXJnNDg3MCxpbnQgYXJnNDg3MSxpbnQg
YXJnNDg3MixpbnQgYXJnNDg3MyxpbnQgYXJnNDg3NCxpbnQgYXJnNDg3NSxpbnQgYXJnNDg3Nixp
bnQgYXJnNDg3NyxpbnQgYXJnNDg3OCxpbnQgYXJnNDg3OSxpbnQgYXJnNDg4MCxpbnQgYXJnNDg4
MSxpbnQgYXJnNDg4MixpbnQgYXJnNDg4MyxpbnQgYXJnNDg4NCxpbnQgYXJnNDg4NSxpbnQgYXJn
NDg4NixpbnQgYXJnNDg4NyxpbnQgYXJnNDg4OCxpbnQgYXJnNDg4OSxpbnQgYXJnNDg5MCxpbnQg
YXJnNDg5MSxpbnQgYXJnNDg5MixpbnQgYXJnNDg5MyxpbnQgYXJnNDg5NCxpbnQgYXJnNDg5NSxp
bnQgYXJnNDg5NixpbnQgYXJnNDg5NyxpbnQgYXJnNDg5OCxpbnQgYXJnNDg5OSxpbnQgYXJnNDkw
MCxpbnQgYXJnNDkwMSxpbnQgYXJnNDkwMixpbnQgYXJnNDkwMyxpbnQgYXJnNDkwNCxpbnQgYXJn
NDkwNSxpbnQgYXJnNDkwNixpbnQgYXJnNDkwNyxpbnQgYXJnNDkwOCxpbnQgYXJnNDkwOSxpbnQg
YXJnNDkxMCxpbnQgYXJnNDkxMSxpbnQgYXJnNDkxMixpbnQgYXJnNDkxMyxpbnQgYXJnNDkxNCxp
bnQgYXJnNDkxNSxpbnQgYXJnNDkxNixpbnQgYXJnNDkxNyxpbnQgYXJnNDkxOCxpbnQgYXJnNDkx
OSxpbnQgYXJnNDkyMCxpbnQgYXJnNDkyMSxpbnQgYXJnNDkyMixpbnQgYXJnNDkyMyxpbnQgYXJn
NDkyNCxpbnQgYXJnNDkyNSxpbnQgYXJnNDkyNixpbnQgYXJnNDkyNyxpbnQgYXJnNDkyOCxpbnQg
YXJnNDkyOSxpbnQgYXJnNDkzMCxpbnQgYXJnNDkzMSxpbnQgYXJnNDkzMixpbnQgYXJnNDkzMyxp
bnQgYXJnNDkzNCxpbnQgYXJnNDkzNSxpbnQgYXJnNDkzNixpbnQgYXJnNDkzNyxpbnQgYXJnNDkz
OCxpbnQgYXJnNDkzOSxpbnQgYXJnNDk0MCxpbnQgYXJnNDk0MSxpbnQgYXJnNDk0MixpbnQgYXJn
NDk0MyxpbnQgYXJnNDk0NCxpbnQgYXJnNDk0NSxpbnQgYXJnNDk0NixpbnQgYXJnNDk0NyxpbnQg
YXJnNDk0OCxpbnQgYXJnNDk0OSxpbnQgYXJnNDk1MCxpbnQgYXJnNDk1MSxpbnQgYXJnNDk1Mixp
bnQgYXJnNDk1MyxpbnQgYXJnNDk1NCxpbnQgYXJnNDk1NSxpbnQgYXJnNDk1NixpbnQgYXJnNDk1
NyxpbnQgYXJnNDk1OCxpbnQgYXJnNDk1OSxpbnQgYXJnNDk2MCxpbnQgYXJnNDk2MSxpbnQgYXJn
NDk2MixpbnQgYXJnNDk2MyxpbnQgYXJnNDk2NCxpbnQgYXJnNDk2NSxpbnQgYXJnNDk2NixpbnQg
YXJnNDk2NyxpbnQgYXJnNDk2OCxpbnQgYXJnNDk2OSxpbnQgYXJnNDk3MCxpbnQgYXJnNDk3MSxp
bnQgYXJnNDk3MixpbnQgYXJnNDk3MyxpbnQgYXJnNDk3NCxpbnQgYXJnNDk3NSxpbnQgYXJnNDk3
NixpbnQgYXJnNDk3NyxpbnQgYXJnNDk3OCxpbnQgYXJnNDk3OSxpbnQgYXJnNDk4MCxpbnQgYXJn
NDk4MSxpbnQgYXJnNDk4MixpbnQgYXJnNDk4MyxpbnQgYXJnNDk4NCxpbnQgYXJnNDk4NSxpbnQg
YXJnNDk4NixpbnQgYXJnNDk4NyxpbnQgYXJnNDk4OCxpbnQgYXJnNDk4OSxpbnQgYXJnNDk5MCxp
bnQgYXJnNDk5MSxpbnQgYXJnNDk5MixpbnQgYXJnNDk5MyxpbnQgYXJnNDk5NCxpbnQgYXJnNDk5
NSxpbnQgYXJnNDk5NixpbnQgYXJnNDk5NyxpbnQgYXJnNDk5OCxpbnQgYXJnNDk5OSkpCiB7IHJl
dHVybiBhcmcwK2FyZzErYXJnMithcmczK2FyZzQrYXJnNSthcmc2K2FyZzcrYXJnOCthcmc5K2Fy
ZzEwK2FyZzExK2FyZzEyK2FyZzEzK2FyZzE0K2FyZzE1K2FyZzE2K2FyZzE3K2FyZzE4K2FyZzE5
K2FyZzIwK2FyZzIxK2FyZzIyK2FyZzIzK2FyZzI0K2FyZzI1K2FyZzI2K2FyZzI3K2FyZzI4K2Fy
ZzI5K2FyZzMwK2FyZzMxK2FyZzMyK2FyZzMzK2FyZzM0K2FyZzM1K2FyZzM2K2FyZzM3K2FyZzM4
K2FyZzM5K2FyZzQwK2FyZzQxK2FyZzQyK2FyZzQzK2FyZzQ0K2FyZzQ1K2FyZzQ2K2FyZzQ3K2Fy
ZzQ4K2FyZzQ5K2FyZzUwK2FyZzUxK2FyZzUyK2FyZzUzK2FyZzU0K2FyZzU1K2FyZzU2K2FyZzU3
K2FyZzU4K2FyZzU5K2FyZzYwK2FyZzYxK2FyZzYyK2FyZzYzK2FyZzY0K2FyZzY1K2FyZzY2K2Fy
ZzY3K2FyZzY4K2FyZzY5K2FyZzcwK2FyZzcxK2FyZzcyK2FyZzczK2FyZzc0K2FyZzc1K2FyZzc2
K2FyZzc3K2FyZzc4K2FyZzc5K2FyZzgwK2FyZzgxK2FyZzgyK2FyZzgzK2FyZzg0K2FyZzg1K2Fy
Zzg2K2FyZzg3K2FyZzg4K2FyZzg5K2FyZzkwK2FyZzkxK2FyZzkyK2FyZzkzK2FyZzk0K2FyZzk1
K2FyZzk2K2FyZzk3K2FyZzk4K2FyZzk5K2FyZzEwMCthcmcxMDErYXJnMTAyK2FyZzEwMythcmcx
MDQrYXJnMTA1K2FyZzEwNithcmcxMDcrYXJnMTA4K2FyZzEwOSthcmcxMTArYXJnMTExK2FyZzEx
MithcmcxMTMrYXJnMTE0K2FyZzExNSthcmcxMTYrYXJnMTE3K2FyZzExOCthcmcxMTkrYXJnMTIw
K2FyZzEyMSthcmcxMjIrYXJnMTIzK2FyZzEyNCthcmcxMjUrYXJnMTI2K2FyZzEyNythcmcxMjgr
YXJnMTI5K2FyZzEzMCthcmcxMzErYXJnMTMyK2FyZzEzMythcmcxMzQrYXJnMTM1K2FyZzEzNith
cmcxMzcrYXJnMTM4K2FyZzEzOSthcmcxNDArYXJnMTQxK2FyZzE0MithcmcxNDMrYXJnMTQ0K2Fy
ZzE0NSthcmcxNDYrYXJnMTQ3K2FyZzE0OCthcmcxNDkrYXJnMTUwK2FyZzE1MSthcmcxNTIrYXJn
MTUzK2FyZzE1NCthcmcxNTUrYXJnMTU2K2FyZzE1NythcmcxNTgrYXJnMTU5K2FyZzE2MCthcmcx
NjErYXJnMTYyK2FyZzE2MythcmcxNjQrYXJnMTY1K2FyZzE2NithcmcxNjcrYXJnMTY4K2FyZzE2
OSthcmcxNzArYXJnMTcxK2FyZzE3MithcmcxNzMrYXJnMTc0K2FyZzE3NSthcmcxNzYrYXJnMTc3
K2FyZzE3OCthcmcxNzkrYXJnMTgwK2FyZzE4MSthcmcxODIrYXJnMTgzK2FyZzE4NCthcmcxODUr
YXJnMTg2K2FyZzE4NythcmcxODgrYXJnMTg5K2FyZzE5MCthcmcxOTErYXJnMTkyK2FyZzE5Myth
cmcxOTQrYXJnMTk1K2FyZzE5NithcmcxOTcrYXJnMTk4K2FyZzE5OSthcmcyMDArYXJnMjAxK2Fy
ZzIwMithcmcyMDMrYXJnMjA0K2FyZzIwNSthcmcyMDYrYXJnMjA3K2FyZzIwOCthcmcyMDkrYXJn
MjEwK2FyZzIxMSthcmcyMTIrYXJnMjEzK2FyZzIxNCthcmcyMTUrYXJnMjE2K2FyZzIxNythcmcy
MTgrYXJnMjE5K2FyZzIyMCthcmcyMjErYXJnMjIyK2FyZzIyMythcmcyMjQrYXJnMjI1K2FyZzIy
NithcmcyMjcrYXJnMjI4K2FyZzIyOSthcmcyMzArYXJnMjMxK2FyZzIzMithcmcyMzMrYXJnMjM0
K2FyZzIzNSthcmcyMzYrYXJnMjM3K2FyZzIzOCthcmcyMzkrYXJnMjQwK2FyZzI0MSthcmcyNDIr
YXJnMjQzK2FyZzI0NCthcmcyNDUrYXJnMjQ2K2FyZzI0NythcmcyNDgrYXJnMjQ5K2FyZzI1MCth
cmcyNTErYXJnMjUyK2FyZzI1MythcmcyNTQrYXJnMjU1K2FyZzI1NithcmcyNTcrYXJnMjU4K2Fy
ZzI1OSthcmcyNjArYXJnMjYxK2FyZzI2MithcmcyNjMrYXJnMjY0K2FyZzI2NSthcmcyNjYrYXJn
MjY3K2FyZzI2OCthcmcyNjkrYXJnMjcwK2FyZzI3MSthcmcyNzIrYXJnMjczK2FyZzI3NCthcmcy
NzUrYXJnMjc2K2FyZzI3NythcmcyNzgrYXJnMjc5K2FyZzI4MCthcmcyODErYXJnMjgyK2FyZzI4
MythcmcyODQrYXJnMjg1K2FyZzI4NithcmcyODcrYXJnMjg4K2FyZzI4OSthcmcyOTArYXJnMjkx
K2FyZzI5MithcmcyOTMrYXJnMjk0K2FyZzI5NSthcmcyOTYrYXJnMjk3K2FyZzI5OCthcmcyOTkr
YXJnMzAwK2FyZzMwMSthcmczMDIrYXJnMzAzK2FyZzMwNCthcmczMDUrYXJnMzA2K2FyZzMwNyth
cmczMDgrYXJnMzA5K2FyZzMxMCthcmczMTErYXJnMzEyK2FyZzMxMythcmczMTQrYXJnMzE1K2Fy
ZzMxNithcmczMTcrYXJnMzE4K2FyZzMxOSthcmczMjArYXJnMzIxK2FyZzMyMithcmczMjMrYXJn
MzI0K2FyZzMyNSthcmczMjYrYXJnMzI3K2FyZzMyOCthcmczMjkrYXJnMzMwK2FyZzMzMSthcmcz
MzIrYXJnMzMzK2FyZzMzNCthcmczMzUrYXJnMzM2K2FyZzMzNythcmczMzgrYXJnMzM5K2FyZzM0
MCthcmczNDErYXJnMzQyK2FyZzM0MythcmczNDQrYXJnMzQ1K2FyZzM0NithcmczNDcrYXJnMzQ4
K2FyZzM0OSthcmczNTArYXJnMzUxK2FyZzM1MithcmczNTMrYXJnMzU0K2FyZzM1NSthcmczNTYr
YXJnMzU3K2FyZzM1OCthcmczNTkrYXJnMzYwK2FyZzM2MSthcmczNjIrYXJnMzYzK2FyZzM2NCth
cmczNjUrYXJnMzY2K2FyZzM2NythcmczNjgrYXJnMzY5K2FyZzM3MCthcmczNzErYXJnMzcyK2Fy
ZzM3MythcmczNzQrYXJnMzc1K2FyZzM3NithcmczNzcrYXJnMzc4K2FyZzM3OSthcmczODArYXJn
MzgxK2FyZzM4MithcmczODMrYXJnMzg0K2FyZzM4NSthcmczODYrYXJnMzg3K2FyZzM4OCthcmcz
ODkrYXJnMzkwK2FyZzM5MSthcmczOTIrYXJnMzkzK2FyZzM5NCthcmczOTUrYXJnMzk2K2FyZzM5
NythcmczOTgrYXJnMzk5K2FyZzQwMCthcmc0MDErYXJnNDAyK2FyZzQwMythcmc0MDQrYXJnNDA1
K2FyZzQwNithcmc0MDcrYXJnNDA4K2FyZzQwOSthcmc0MTArYXJnNDExK2FyZzQxMithcmc0MTMr
YXJnNDE0K2FyZzQxNSthcmc0MTYrYXJnNDE3K2FyZzQxOCthcmc0MTkrYXJnNDIwK2FyZzQyMSth
cmc0MjIrYXJnNDIzK2FyZzQyNCthcmc0MjUrYXJnNDI2K2FyZzQyNythcmc0MjgrYXJnNDI5K2Fy
ZzQzMCthcmc0MzErYXJnNDMyK2FyZzQzMythcmc0MzQrYXJnNDM1K2FyZzQzNithcmc0MzcrYXJn
NDM4K2FyZzQzOSthcmc0NDArYXJnNDQxK2FyZzQ0Mithcmc0NDMrYXJnNDQ0K2FyZzQ0NSthcmc0
NDYrYXJnNDQ3K2FyZzQ0OCthcmc0NDkrYXJnNDUwK2FyZzQ1MSthcmc0NTIrYXJnNDUzK2FyZzQ1
NCthcmc0NTUrYXJnNDU2K2FyZzQ1Nythcmc0NTgrYXJnNDU5K2FyZzQ2MCthcmc0NjErYXJnNDYy
K2FyZzQ2Mythcmc0NjQrYXJnNDY1K2FyZzQ2Nithcmc0NjcrYXJnNDY4K2FyZzQ2OSthcmc0NzAr
YXJnNDcxK2FyZzQ3Mithcmc0NzMrYXJnNDc0K2FyZzQ3NSthcmc0NzYrYXJnNDc3K2FyZzQ3OCth
cmc0NzkrYXJnNDgwK2FyZzQ4MSthcmc0ODIrYXJnNDgzK2FyZzQ4NCthcmc0ODUrYXJnNDg2K2Fy
ZzQ4Nythcmc0ODgrYXJnNDg5K2FyZzQ5MCthcmc0OTErYXJnNDkyK2FyZzQ5Mythcmc0OTQrYXJn
NDk1K2FyZzQ5Nithcmc0OTcrYXJnNDk4K2FyZzQ5OSthcmc1MDArYXJnNTAxK2FyZzUwMithcmc1
MDMrYXJnNTA0K2FyZzUwNSthcmc1MDYrYXJnNTA3K2FyZzUwOCthcmc1MDkrYXJnNTEwK2FyZzUx
MSthcmc1MTIrYXJnNTEzK2FyZzUxNCthcmc1MTUrYXJnNTE2K2FyZzUxNythcmc1MTgrYXJnNTE5
K2FyZzUyMCthcmc1MjErYXJnNTIyK2FyZzUyMythcmc1MjQrYXJnNTI1K2FyZzUyNithcmc1Mjcr
YXJnNTI4K2FyZzUyOSthcmc1MzArYXJnNTMxK2FyZzUzMithcmc1MzMrYXJnNTM0K2FyZzUzNSth
cmc1MzYrYXJnNTM3K2FyZzUzOCthcmc1MzkrYXJnNTQwK2FyZzU0MSthcmc1NDIrYXJnNTQzK2Fy
ZzU0NCthcmc1NDUrYXJnNTQ2K2FyZzU0Nythcmc1NDgrYXJnNTQ5K2FyZzU1MCthcmc1NTErYXJn
NTUyK2FyZzU1Mythcmc1NTQrYXJnNTU1K2FyZzU1Nithcmc1NTcrYXJnNTU4K2FyZzU1OSthcmc1
NjArYXJnNTYxK2FyZzU2Mithcmc1NjMrYXJnNTY0K2FyZzU2NSthcmc1NjYrYXJnNTY3K2FyZzU2
OCthcmc1NjkrYXJnNTcwK2FyZzU3MSthcmc1NzIrYXJnNTczK2FyZzU3NCthcmc1NzUrYXJnNTc2
K2FyZzU3Nythcmc1NzgrYXJnNTc5K2FyZzU4MCthcmc1ODErYXJnNTgyK2FyZzU4Mythcmc1ODQr
YXJnNTg1K2FyZzU4Nithcmc1ODcrYXJnNTg4K2FyZzU4OSthcmc1OTArYXJnNTkxK2FyZzU5Mith
cmc1OTMrYXJnNTk0K2FyZzU5NSthcmc1OTYrYXJnNTk3K2FyZzU5OCthcmc1OTkrYXJnNjAwK2Fy
ZzYwMSthcmc2MDIrYXJnNjAzK2FyZzYwNCthcmc2MDUrYXJnNjA2K2FyZzYwNythcmc2MDgrYXJn
NjA5K2FyZzYxMCthcmc2MTErYXJnNjEyK2FyZzYxMythcmc2MTQrYXJnNjE1K2FyZzYxNithcmc2
MTcrYXJnNjE4K2FyZzYxOSthcmc2MjArYXJnNjIxK2FyZzYyMithcmc2MjMrYXJnNjI0K2FyZzYy
NSthcmc2MjYrYXJnNjI3K2FyZzYyOCthcmc2MjkrYXJnNjMwK2FyZzYzMSthcmc2MzIrYXJnNjMz
K2FyZzYzNCthcmc2MzUrYXJnNjM2K2FyZzYzNythcmc2MzgrYXJnNjM5K2FyZzY0MCthcmc2NDEr
YXJnNjQyK2FyZzY0Mythcmc2NDQrYXJnNjQ1K2FyZzY0Nithcmc2NDcrYXJnNjQ4K2FyZzY0OSth
cmc2NTArYXJnNjUxK2FyZzY1Mithcmc2NTMrYXJnNjU0K2FyZzY1NSthcmc2NTYrYXJnNjU3K2Fy
ZzY1OCthcmc2NTkrYXJnNjYwK2FyZzY2MSthcmc2NjIrYXJnNjYzK2FyZzY2NCthcmc2NjUrYXJn
NjY2K2FyZzY2Nythcmc2NjgrYXJnNjY5K2FyZzY3MCthcmc2NzErYXJnNjcyK2FyZzY3Mythcmc2
NzQrYXJnNjc1K2FyZzY3Nithcmc2NzcrYXJnNjc4K2FyZzY3OSthcmc2ODArYXJnNjgxK2FyZzY4
Mithcmc2ODMrYXJnNjg0K2FyZzY4NSthcmc2ODYrYXJnNjg3K2FyZzY4OCthcmc2ODkrYXJnNjkw
K2FyZzY5MSthcmc2OTIrYXJnNjkzK2FyZzY5NCthcmc2OTUrYXJnNjk2K2FyZzY5Nythcmc2OTgr
YXJnNjk5K2FyZzcwMCthcmc3MDErYXJnNzAyK2FyZzcwMythcmc3MDQrYXJnNzA1K2FyZzcwNith
cmc3MDcrYXJnNzA4K2FyZzcwOSthcmc3MTArYXJnNzExK2FyZzcxMithcmc3MTMrYXJnNzE0K2Fy
ZzcxNSthcmc3MTYrYXJnNzE3K2FyZzcxOCthcmc3MTkrYXJnNzIwK2FyZzcyMSthcmc3MjIrYXJn
NzIzK2FyZzcyNCthcmc3MjUrYXJnNzI2K2FyZzcyNythcmc3MjgrYXJnNzI5K2FyZzczMCthcmc3
MzErYXJnNzMyK2FyZzczMythcmc3MzQrYXJnNzM1K2FyZzczNithcmc3MzcrYXJnNzM4K2FyZzcz
OSthcmc3NDArYXJnNzQxK2FyZzc0Mithcmc3NDMrYXJnNzQ0K2FyZzc0NSthcmc3NDYrYXJnNzQ3
K2FyZzc0OCthcmc3NDkrYXJnNzUwK2FyZzc1MSthcmc3NTIrYXJnNzUzK2FyZzc1NCthcmc3NTUr
YXJnNzU2K2FyZzc1Nythcmc3NTgrYXJnNzU5K2FyZzc2MCthcmc3NjErYXJnNzYyK2FyZzc2Myth
cmc3NjQrYXJnNzY1K2FyZzc2Nithcmc3NjcrYXJnNzY4K2FyZzc2OSthcmc3NzArYXJnNzcxK2Fy
Zzc3Mithcmc3NzMrYXJnNzc0K2FyZzc3NSthcmc3NzYrYXJnNzc3K2FyZzc3OCthcmc3NzkrYXJn
NzgwK2FyZzc4MSthcmc3ODIrYXJnNzgzK2FyZzc4NCthcmc3ODUrYXJnNzg2K2FyZzc4Nythcmc3
ODgrYXJnNzg5K2FyZzc5MCthcmc3OTErYXJnNzkyK2FyZzc5Mythcmc3OTQrYXJnNzk1K2FyZzc5
Nithcmc3OTcrYXJnNzk4K2FyZzc5OSthcmc4MDArYXJnODAxK2FyZzgwMithcmc4MDMrYXJnODA0
K2FyZzgwNSthcmc4MDYrYXJnODA3K2FyZzgwOCthcmc4MDkrYXJnODEwK2FyZzgxMSthcmc4MTIr
YXJnODEzK2FyZzgxNCthcmc4MTUrYXJnODE2K2FyZzgxNythcmc4MTgrYXJnODE5K2FyZzgyMCth
cmc4MjErYXJnODIyK2FyZzgyMythcmc4MjQrYXJnODI1K2FyZzgyNithcmc4MjcrYXJnODI4K2Fy
ZzgyOSthcmc4MzArYXJnODMxK2FyZzgzMithcmc4MzMrYXJnODM0K2FyZzgzNSthcmc4MzYrYXJn
ODM3K2FyZzgzOCthcmc4MzkrYXJnODQwK2FyZzg0MSthcmc4NDIrYXJnODQzK2FyZzg0NCthcmc4
NDUrYXJnODQ2K2FyZzg0Nythcmc4NDgrYXJnODQ5K2FyZzg1MCthcmc4NTErYXJnODUyK2FyZzg1
Mythcmc4NTQrYXJnODU1K2FyZzg1Nithcmc4NTcrYXJnODU4K2FyZzg1OSthcmc4NjArYXJnODYx
K2FyZzg2Mithcmc4NjMrYXJnODY0K2FyZzg2NSthcmc4NjYrYXJnODY3K2FyZzg2OCthcmc4Njkr
YXJnODcwK2FyZzg3MSthcmc4NzIrYXJnODczK2FyZzg3NCthcmc4NzUrYXJnODc2K2FyZzg3Nyth
cmc4NzgrYXJnODc5K2FyZzg4MCthcmc4ODErYXJnODgyK2FyZzg4Mythcmc4ODQrYXJnODg1K2Fy
Zzg4Nithcmc4ODcrYXJnODg4K2FyZzg4OSthcmc4OTArYXJnODkxK2FyZzg5Mithcmc4OTMrYXJn
ODk0K2FyZzg5NSthcmc4OTYrYXJnODk3K2FyZzg5OCthcmc4OTkrYXJnOTAwK2FyZzkwMSthcmc5
MDIrYXJnOTAzK2FyZzkwNCthcmc5MDUrYXJnOTA2K2FyZzkwNythcmc5MDgrYXJnOTA5K2FyZzkx
MCthcmc5MTErYXJnOTEyK2FyZzkxMythcmc5MTQrYXJnOTE1K2FyZzkxNithcmc5MTcrYXJnOTE4
K2FyZzkxOSthcmc5MjArYXJnOTIxK2FyZzkyMithcmc5MjMrYXJnOTI0K2FyZzkyNSthcmc5MjYr
YXJnOTI3K2FyZzkyOCthcmc5MjkrYXJnOTMwK2FyZzkzMSthcmc5MzIrYXJnOTMzK2FyZzkzNCth
cmc5MzUrYXJnOTM2K2FyZzkzNythcmc5MzgrYXJnOTM5K2FyZzk0MCthcmc5NDErYXJnOTQyK2Fy
Zzk0Mythcmc5NDQrYXJnOTQ1K2FyZzk0Nithcmc5NDcrYXJnOTQ4K2FyZzk0OSthcmc5NTArYXJn
OTUxK2FyZzk1Mithcmc5NTMrYXJnOTU0K2FyZzk1NSthcmc5NTYrYXJnOTU3K2FyZzk1OCthcmc5
NTkrYXJnOTYwK2FyZzk2MSthcmc5NjIrYXJnOTYzK2FyZzk2NCthcmc5NjUrYXJnOTY2K2FyZzk2
Nythcmc5NjgrYXJnOTY5K2FyZzk3MCthcmc5NzErYXJnOTcyK2FyZzk3Mythcmc5NzQrYXJnOTc1
K2FyZzk3Nithcmc5NzcrYXJnOTc4K2FyZzk3OSthcmc5ODArYXJnOTgxK2FyZzk4Mithcmc5ODMr
YXJnOTg0K2FyZzk4NSthcmc5ODYrYXJnOTg3K2FyZzk4OCthcmc5ODkrYXJnOTkwK2FyZzk5MSth
cmc5OTIrYXJnOTkzK2FyZzk5NCthcmc5OTUrYXJnOTk2K2FyZzk5Nythcmc5OTgrYXJnOTk5K2Fy
ZzEwMDArYXJnMTAwMSthcmcxMDAyK2FyZzEwMDMrYXJnMTAwNCthcmcxMDA1K2FyZzEwMDYrYXJn
MTAwNythcmcxMDA4K2FyZzEwMDkrYXJnMTAxMCthcmcxMDExK2FyZzEwMTIrYXJnMTAxMythcmcx
MDE0K2FyZzEwMTUrYXJnMTAxNithcmcxMDE3K2FyZzEwMTgrYXJnMTAxOSthcmcxMDIwK2FyZzEw
MjErYXJnMTAyMithcmcxMDIzK2FyZzEwMjQrYXJnMTAyNSthcmcxMDI2K2FyZzEwMjcrYXJnMTAy
OCthcmcxMDI5K2FyZzEwMzArYXJnMTAzMSthcmcxMDMyK2FyZzEwMzMrYXJnMTAzNCthcmcxMDM1
K2FyZzEwMzYrYXJnMTAzNythcmcxMDM4K2FyZzEwMzkrYXJnMTA0MCthcmcxMDQxK2FyZzEwNDIr
YXJnMTA0MythcmcxMDQ0K2FyZzEwNDUrYXJnMTA0NithcmcxMDQ3K2FyZzEwNDgrYXJnMTA0OSth
cmcxMDUwK2FyZzEwNTErYXJnMTA1MithcmcxMDUzK2FyZzEwNTQrYXJnMTA1NSthcmcxMDU2K2Fy
ZzEwNTcrYXJnMTA1OCthcmcxMDU5K2FyZzEwNjArYXJnMTA2MSthcmcxMDYyK2FyZzEwNjMrYXJn
MTA2NCthcmcxMDY1K2FyZzEwNjYrYXJnMTA2NythcmcxMDY4K2FyZzEwNjkrYXJnMTA3MCthcmcx
MDcxK2FyZzEwNzIrYXJnMTA3MythcmcxMDc0K2FyZzEwNzUrYXJnMTA3NithcmcxMDc3K2FyZzEw
NzgrYXJnMTA3OSthcmcxMDgwK2FyZzEwODErYXJnMTA4MithcmcxMDgzK2FyZzEwODQrYXJnMTA4
NSthcmcxMDg2K2FyZzEwODcrYXJnMTA4OCthcmcxMDg5K2FyZzEwOTArYXJnMTA5MSthcmcxMDky
K2FyZzEwOTMrYXJnMTA5NCthcmcxMDk1K2FyZzEwOTYrYXJnMTA5NythcmcxMDk4K2FyZzEwOTkr
YXJnMTEwMCthcmcxMTAxK2FyZzExMDIrYXJnMTEwMythcmcxMTA0K2FyZzExMDUrYXJnMTEwNith
cmcxMTA3K2FyZzExMDgrYXJnMTEwOSthcmcxMTEwK2FyZzExMTErYXJnMTExMithcmcxMTEzK2Fy
ZzExMTQrYXJnMTExNSthcmcxMTE2K2FyZzExMTcrYXJnMTExOCthcmcxMTE5K2FyZzExMjArYXJn
MTEyMSthcmcxMTIyK2FyZzExMjMrYXJnMTEyNCthcmcxMTI1K2FyZzExMjYrYXJnMTEyNythcmcx
MTI4K2FyZzExMjkrYXJnMTEzMCthcmcxMTMxK2FyZzExMzIrYXJnMTEzMythcmcxMTM0K2FyZzEx
MzUrYXJnMTEzNithcmcxMTM3K2FyZzExMzgrYXJnMTEzOSthcmcxMTQwK2FyZzExNDErYXJnMTE0
MithcmcxMTQzK2FyZzExNDQrYXJnMTE0NSthcmcxMTQ2K2FyZzExNDcrYXJnMTE0OCthcmcxMTQ5
K2FyZzExNTArYXJnMTE1MSthcmcxMTUyK2FyZzExNTMrYXJnMTE1NCthcmcxMTU1K2FyZzExNTYr
YXJnMTE1NythcmcxMTU4K2FyZzExNTkrYXJnMTE2MCthcmcxMTYxK2FyZzExNjIrYXJnMTE2Myth
cmcxMTY0K2FyZzExNjUrYXJnMTE2NithcmcxMTY3K2FyZzExNjgrYXJnMTE2OSthcmcxMTcwK2Fy
ZzExNzErYXJnMTE3MithcmcxMTczK2FyZzExNzQrYXJnMTE3NSthcmcxMTc2K2FyZzExNzcrYXJn
MTE3OCthcmcxMTc5K2FyZzExODArYXJnMTE4MSthcmcxMTgyK2FyZzExODMrYXJnMTE4NCthcmcx
MTg1K2FyZzExODYrYXJnMTE4NythcmcxMTg4K2FyZzExODkrYXJnMTE5MCthcmcxMTkxK2FyZzEx
OTIrYXJnMTE5MythcmcxMTk0K2FyZzExOTUrYXJnMTE5NithcmcxMTk3K2FyZzExOTgrYXJnMTE5
OSthcmcxMjAwK2FyZzEyMDErYXJnMTIwMithcmcxMjAzK2FyZzEyMDQrYXJnMTIwNSthcmcxMjA2
K2FyZzEyMDcrYXJnMTIwOCthcmcxMjA5K2FyZzEyMTArYXJnMTIxMSthcmcxMjEyK2FyZzEyMTMr
YXJnMTIxNCthcmcxMjE1K2FyZzEyMTYrYXJnMTIxNythcmcxMjE4K2FyZzEyMTkrYXJnMTIyMCth
cmcxMjIxK2FyZzEyMjIrYXJnMTIyMythcmcxMjI0K2FyZzEyMjUrYXJnMTIyNithcmcxMjI3K2Fy
ZzEyMjgrYXJnMTIyOSthcmcxMjMwK2FyZzEyMzErYXJnMTIzMithcmcxMjMzK2FyZzEyMzQrYXJn
MTIzNSthcmcxMjM2K2FyZzEyMzcrYXJnMTIzOCthcmcxMjM5K2FyZzEyNDArYXJnMTI0MSthcmcx
MjQyK2FyZzEyNDMrYXJnMTI0NCthcmcxMjQ1K2FyZzEyNDYrYXJnMTI0NythcmcxMjQ4K2FyZzEy
NDkrYXJnMTI1MCthcmcxMjUxK2FyZzEyNTIrYXJnMTI1MythcmcxMjU0K2FyZzEyNTUrYXJnMTI1
NithcmcxMjU3K2FyZzEyNTgrYXJnMTI1OSthcmcxMjYwK2FyZzEyNjErYXJnMTI2MithcmcxMjYz
K2FyZzEyNjQrYXJnMTI2NSthcmcxMjY2K2FyZzEyNjcrYXJnMTI2OCthcmcxMjY5K2FyZzEyNzAr
YXJnMTI3MSthcmcxMjcyK2FyZzEyNzMrYXJnMTI3NCthcmcxMjc1K2FyZzEyNzYrYXJnMTI3Nyth
cmcxMjc4K2FyZzEyNzkrYXJnMTI4MCthcmcxMjgxK2FyZzEyODIrYXJnMTI4MythcmcxMjg0K2Fy
ZzEyODUrYXJnMTI4NithcmcxMjg3K2FyZzEyODgrYXJnMTI4OSthcmcxMjkwK2FyZzEyOTErYXJn
MTI5MithcmcxMjkzK2FyZzEyOTQrYXJnMTI5NSthcmcxMjk2K2FyZzEyOTcrYXJnMTI5OCthcmcx
Mjk5K2FyZzEzMDArYXJnMTMwMSthcmcxMzAyK2FyZzEzMDMrYXJnMTMwNCthcmcxMzA1K2FyZzEz
MDYrYXJnMTMwNythcmcxMzA4K2FyZzEzMDkrYXJnMTMxMCthcmcxMzExK2FyZzEzMTIrYXJnMTMx
MythcmcxMzE0K2FyZzEzMTUrYXJnMTMxNithcmcxMzE3K2FyZzEzMTgrYXJnMTMxOSthcmcxMzIw
K2FyZzEzMjErYXJnMTMyMithcmcxMzIzK2FyZzEzMjQrYXJnMTMyNSthcmcxMzI2K2FyZzEzMjcr
YXJnMTMyOCthcmcxMzI5K2FyZzEzMzArYXJnMTMzMSthcmcxMzMyK2FyZzEzMzMrYXJnMTMzNCth
cmcxMzM1K2FyZzEzMzYrYXJnMTMzNythcmcxMzM4K2FyZzEzMzkrYXJnMTM0MCthcmcxMzQxK2Fy
ZzEzNDIrYXJnMTM0MythcmcxMzQ0K2FyZzEzNDUrYXJnMTM0NithcmcxMzQ3K2FyZzEzNDgrYXJn
MTM0OSthcmcxMzUwK2FyZzEzNTErYXJnMTM1MithcmcxMzUzK2FyZzEzNTQrYXJnMTM1NSthcmcx
MzU2K2FyZzEzNTcrYXJnMTM1OCthcmcxMzU5K2FyZzEzNjArYXJnMTM2MSthcmcxMzYyK2FyZzEz
NjMrYXJnMTM2NCthcmcxMzY1K2FyZzEzNjYrYXJnMTM2NythcmcxMzY4K2FyZzEzNjkrYXJnMTM3
MCthcmcxMzcxK2FyZzEzNzIrYXJnMTM3MythcmcxMzc0K2FyZzEzNzUrYXJnMTM3NithcmcxMzc3
K2FyZzEzNzgrYXJnMTM3OSthcmcxMzgwK2FyZzEzODErYXJnMTM4MithcmcxMzgzK2FyZzEzODQr
YXJnMTM4NSthcmcxMzg2K2FyZzEzODcrYXJnMTM4OCthcmcxMzg5K2FyZzEzOTArYXJnMTM5MSth
cmcxMzkyK2FyZzEzOTMrYXJnMTM5NCthcmcxMzk1K2FyZzEzOTYrYXJnMTM5NythcmcxMzk4K2Fy
ZzEzOTkrYXJnMTQwMCthcmcxNDAxK2FyZzE0MDIrYXJnMTQwMythcmcxNDA0K2FyZzE0MDUrYXJn
MTQwNithcmcxNDA3K2FyZzE0MDgrYXJnMTQwOSthcmcxNDEwK2FyZzE0MTErYXJnMTQxMithcmcx
NDEzK2FyZzE0MTQrYXJnMTQxNSthcmcxNDE2K2FyZzE0MTcrYXJnMTQxOCthcmcxNDE5K2FyZzE0
MjArYXJnMTQyMSthcmcxNDIyK2FyZzE0MjMrYXJnMTQyNCthcmcxNDI1K2FyZzE0MjYrYXJnMTQy
NythcmcxNDI4K2FyZzE0MjkrYXJnMTQzMCthcmcxNDMxK2FyZzE0MzIrYXJnMTQzMythcmcxNDM0
K2FyZzE0MzUrYXJnMTQzNithcmcxNDM3K2FyZzE0MzgrYXJnMTQzOSthcmcxNDQwK2FyZzE0NDEr
YXJnMTQ0MithcmcxNDQzK2FyZzE0NDQrYXJnMTQ0NSthcmcxNDQ2K2FyZzE0NDcrYXJnMTQ0OCth
cmcxNDQ5K2FyZzE0NTArYXJnMTQ1MSthcmcxNDUyK2FyZzE0NTMrYXJnMTQ1NCthcmcxNDU1K2Fy
ZzE0NTYrYXJnMTQ1NythcmcxNDU4K2FyZzE0NTkrYXJnMTQ2MCthcmcxNDYxK2FyZzE0NjIrYXJn
MTQ2MythcmcxNDY0K2FyZzE0NjUrYXJnMTQ2NithcmcxNDY3K2FyZzE0NjgrYXJnMTQ2OSthcmcx
NDcwK2FyZzE0NzErYXJnMTQ3MithcmcxNDczK2FyZzE0NzQrYXJnMTQ3NSthcmcxNDc2K2FyZzE0
NzcrYXJnMTQ3OCthcmcxNDc5K2FyZzE0ODArYXJnMTQ4MSthcmcxNDgyK2FyZzE0ODMrYXJnMTQ4
NCthcmcxNDg1K2FyZzE0ODYrYXJnMTQ4NythcmcxNDg4K2FyZzE0ODkrYXJnMTQ5MCthcmcxNDkx
K2FyZzE0OTIrYXJnMTQ5MythcmcxNDk0K2FyZzE0OTUrYXJnMTQ5NithcmcxNDk3K2FyZzE0OTgr
YXJnMTQ5OSthcmcxNTAwK2FyZzE1MDErYXJnMTUwMithcmcxNTAzK2FyZzE1MDQrYXJnMTUwNSth
cmcxNTA2K2FyZzE1MDcrYXJnMTUwOCthcmcxNTA5K2FyZzE1MTArYXJnMTUxMSthcmcxNTEyK2Fy
ZzE1MTMrYXJnMTUxNCthcmcxNTE1K2FyZzE1MTYrYXJnMTUxNythcmcxNTE4K2FyZzE1MTkrYXJn
MTUyMCthcmcxNTIxK2FyZzE1MjIrYXJnMTUyMythcmcxNTI0K2FyZzE1MjUrYXJnMTUyNithcmcx
NTI3K2FyZzE1MjgrYXJnMTUyOSthcmcxNTMwK2FyZzE1MzErYXJnMTUzMithcmcxNTMzK2FyZzE1
MzQrYXJnMTUzNSthcmcxNTM2K2FyZzE1MzcrYXJnMTUzOCthcmcxNTM5K2FyZzE1NDArYXJnMTU0
MSthcmcxNTQyK2FyZzE1NDMrYXJnMTU0NCthcmcxNTQ1K2FyZzE1NDYrYXJnMTU0NythcmcxNTQ4
K2FyZzE1NDkrYXJnMTU1MCthcmcxNTUxK2FyZzE1NTIrYXJnMTU1MythcmcxNTU0K2FyZzE1NTUr
YXJnMTU1NithcmcxNTU3K2FyZzE1NTgrYXJnMTU1OSthcmcxNTYwK2FyZzE1NjErYXJnMTU2Mith
cmcxNTYzK2FyZzE1NjQrYXJnMTU2NSthcmcxNTY2K2FyZzE1NjcrYXJnMTU2OCthcmcxNTY5K2Fy
ZzE1NzArYXJnMTU3MSthcmcxNTcyK2FyZzE1NzMrYXJnMTU3NCthcmcxNTc1K2FyZzE1NzYrYXJn
MTU3NythcmcxNTc4K2FyZzE1NzkrYXJnMTU4MCthcmcxNTgxK2FyZzE1ODIrYXJnMTU4Mythcmcx
NTg0K2FyZzE1ODUrYXJnMTU4NithcmcxNTg3K2FyZzE1ODgrYXJnMTU4OSthcmcxNTkwK2FyZzE1
OTErYXJnMTU5MithcmcxNTkzK2FyZzE1OTQrYXJnMTU5NSthcmcxNTk2K2FyZzE1OTcrYXJnMTU5
OCthcmcxNTk5K2FyZzE2MDArYXJnMTYwMSthcmcxNjAyK2FyZzE2MDMrYXJnMTYwNCthcmcxNjA1
K2FyZzE2MDYrYXJnMTYwNythcmcxNjA4K2FyZzE2MDkrYXJnMTYxMCthcmcxNjExK2FyZzE2MTIr
YXJnMTYxMythcmcxNjE0K2FyZzE2MTUrYXJnMTYxNithcmcxNjE3K2FyZzE2MTgrYXJnMTYxOSth
cmcxNjIwK2FyZzE2MjErYXJnMTYyMithcmcxNjIzK2FyZzE2MjQrYXJnMTYyNSthcmcxNjI2K2Fy
ZzE2MjcrYXJnMTYyOCthcmcxNjI5K2FyZzE2MzArYXJnMTYzMSthcmcxNjMyK2FyZzE2MzMrYXJn
MTYzNCthcmcxNjM1K2FyZzE2MzYrYXJnMTYzNythcmcxNjM4K2FyZzE2MzkrYXJnMTY0MCthcmcx
NjQxK2FyZzE2NDIrYXJnMTY0MythcmcxNjQ0K2FyZzE2NDUrYXJnMTY0NithcmcxNjQ3K2FyZzE2
NDgrYXJnMTY0OSthcmcxNjUwK2FyZzE2NTErYXJnMTY1MithcmcxNjUzK2FyZzE2NTQrYXJnMTY1
NSthcmcxNjU2K2FyZzE2NTcrYXJnMTY1OCthcmcxNjU5K2FyZzE2NjArYXJnMTY2MSthcmcxNjYy
K2FyZzE2NjMrYXJnMTY2NCthcmcxNjY1K2FyZzE2NjYrYXJnMTY2NythcmcxNjY4K2FyZzE2Njkr
YXJnMTY3MCthcmcxNjcxK2FyZzE2NzIrYXJnMTY3MythcmcxNjc0K2FyZzE2NzUrYXJnMTY3Nith
cmcxNjc3K2FyZzE2NzgrYXJnMTY3OSthcmcxNjgwK2FyZzE2ODErYXJnMTY4MithcmcxNjgzK2Fy
ZzE2ODQrYXJnMTY4NSthcmcxNjg2K2FyZzE2ODcrYXJnMTY4OCthcmcxNjg5K2FyZzE2OTArYXJn
MTY5MSthcmcxNjkyK2FyZzE2OTMrYXJnMTY5NCthcmcxNjk1K2FyZzE2OTYrYXJnMTY5Nythcmcx
Njk4K2FyZzE2OTkrYXJnMTcwMCthcmcxNzAxK2FyZzE3MDIrYXJnMTcwMythcmcxNzA0K2FyZzE3
MDUrYXJnMTcwNithcmcxNzA3K2FyZzE3MDgrYXJnMTcwOSthcmcxNzEwK2FyZzE3MTErYXJnMTcx
MithcmcxNzEzK2FyZzE3MTQrYXJnMTcxNSthcmcxNzE2K2FyZzE3MTcrYXJnMTcxOCthcmcxNzE5
K2FyZzE3MjArYXJnMTcyMSthcmcxNzIyK2FyZzE3MjMrYXJnMTcyNCthcmcxNzI1K2FyZzE3MjYr
YXJnMTcyNythcmcxNzI4K2FyZzE3MjkrYXJnMTczMCthcmcxNzMxK2FyZzE3MzIrYXJnMTczMyth
cmcxNzM0K2FyZzE3MzUrYXJnMTczNithcmcxNzM3K2FyZzE3MzgrYXJnMTczOSthcmcxNzQwK2Fy
ZzE3NDErYXJnMTc0MithcmcxNzQzK2FyZzE3NDQrYXJnMTc0NSthcmcxNzQ2K2FyZzE3NDcrYXJn
MTc0OCthcmcxNzQ5K2FyZzE3NTArYXJnMTc1MSthcmcxNzUyK2FyZzE3NTMrYXJnMTc1NCthcmcx
NzU1K2FyZzE3NTYrYXJnMTc1NythcmcxNzU4K2FyZzE3NTkrYXJnMTc2MCthcmcxNzYxK2FyZzE3
NjIrYXJnMTc2MythcmcxNzY0K2FyZzE3NjUrYXJnMTc2NithcmcxNzY3K2FyZzE3NjgrYXJnMTc2
OSthcmcxNzcwK2FyZzE3NzErYXJnMTc3MithcmcxNzczK2FyZzE3NzQrYXJnMTc3NSthcmcxNzc2
K2FyZzE3NzcrYXJnMTc3OCthcmcxNzc5K2FyZzE3ODArYXJnMTc4MSthcmcxNzgyK2FyZzE3ODMr
YXJnMTc4NCthcmcxNzg1K2FyZzE3ODYrYXJnMTc4NythcmcxNzg4K2FyZzE3ODkrYXJnMTc5MCth
cmcxNzkxK2FyZzE3OTIrYXJnMTc5MythcmcxNzk0K2FyZzE3OTUrYXJnMTc5NithcmcxNzk3K2Fy
ZzE3OTgrYXJnMTc5OSthcmcxODAwK2FyZzE4MDErYXJnMTgwMithcmcxODAzK2FyZzE4MDQrYXJn
MTgwNSthcmcxODA2K2FyZzE4MDcrYXJnMTgwOCthcmcxODA5K2FyZzE4MTArYXJnMTgxMSthcmcx
ODEyK2FyZzE4MTMrYXJnMTgxNCthcmcxODE1K2FyZzE4MTYrYXJnMTgxNythcmcxODE4K2FyZzE4
MTkrYXJnMTgyMCthcmcxODIxK2FyZzE4MjIrYXJnMTgyMythcmcxODI0K2FyZzE4MjUrYXJnMTgy
NithcmcxODI3K2FyZzE4MjgrYXJnMTgyOSthcmcxODMwK2FyZzE4MzErYXJnMTgzMithcmcxODMz
K2FyZzE4MzQrYXJnMTgzNSthcmcxODM2K2FyZzE4MzcrYXJnMTgzOCthcmcxODM5K2FyZzE4NDAr
YXJnMTg0MSthcmcxODQyK2FyZzE4NDMrYXJnMTg0NCthcmcxODQ1K2FyZzE4NDYrYXJnMTg0Nyth
cmcxODQ4K2FyZzE4NDkrYXJnMTg1MCthcmcxODUxK2FyZzE4NTIrYXJnMTg1MythcmcxODU0K2Fy
ZzE4NTUrYXJnMTg1NithcmcxODU3K2FyZzE4NTgrYXJnMTg1OSthcmcxODYwK2FyZzE4NjErYXJn
MTg2MithcmcxODYzK2FyZzE4NjQrYXJnMTg2NSthcmcxODY2K2FyZzE4NjcrYXJnMTg2OCthcmcx
ODY5K2FyZzE4NzArYXJnMTg3MSthcmcxODcyK2FyZzE4NzMrYXJnMTg3NCthcmcxODc1K2FyZzE4
NzYrYXJnMTg3NythcmcxODc4K2FyZzE4NzkrYXJnMTg4MCthcmcxODgxK2FyZzE4ODIrYXJnMTg4
MythcmcxODg0K2FyZzE4ODUrYXJnMTg4NithcmcxODg3K2FyZzE4ODgrYXJnMTg4OSthcmcxODkw
K2FyZzE4OTErYXJnMTg5MithcmcxODkzK2FyZzE4OTQrYXJnMTg5NSthcmcxODk2K2FyZzE4OTcr
YXJnMTg5OCthcmcxODk5K2FyZzE5MDArYXJnMTkwMSthcmcxOTAyK2FyZzE5MDMrYXJnMTkwNCth
cmcxOTA1K2FyZzE5MDYrYXJnMTkwNythcmcxOTA4K2FyZzE5MDkrYXJnMTkxMCthcmcxOTExK2Fy
ZzE5MTIrYXJnMTkxMythcmcxOTE0K2FyZzE5MTUrYXJnMTkxNithcmcxOTE3K2FyZzE5MTgrYXJn
MTkxOSthcmcxOTIwK2FyZzE5MjErYXJnMTkyMithcmcxOTIzK2FyZzE5MjQrYXJnMTkyNSthcmcx
OTI2K2FyZzE5MjcrYXJnMTkyOCthcmcxOTI5K2FyZzE5MzArYXJnMTkzMSthcmcxOTMyK2FyZzE5
MzMrYXJnMTkzNCthcmcxOTM1K2FyZzE5MzYrYXJnMTkzNythcmcxOTM4K2FyZzE5MzkrYXJnMTk0
MCthcmcxOTQxK2FyZzE5NDIrYXJnMTk0MythcmcxOTQ0K2FyZzE5NDUrYXJnMTk0NithcmcxOTQ3
K2FyZzE5NDgrYXJnMTk0OSthcmcxOTUwK2FyZzE5NTErYXJnMTk1MithcmcxOTUzK2FyZzE5NTQr
YXJnMTk1NSthcmcxOTU2K2FyZzE5NTcrYXJnMTk1OCthcmcxOTU5K2FyZzE5NjArYXJnMTk2MSth
cmcxOTYyK2FyZzE5NjMrYXJnMTk2NCthcmcxOTY1K2FyZzE5NjYrYXJnMTk2NythcmcxOTY4K2Fy
ZzE5NjkrYXJnMTk3MCthcmcxOTcxK2FyZzE5NzIrYXJnMTk3MythcmcxOTc0K2FyZzE5NzUrYXJn
MTk3NithcmcxOTc3K2FyZzE5NzgrYXJnMTk3OSthcmcxOTgwK2FyZzE5ODErYXJnMTk4Mithcmcx
OTgzK2FyZzE5ODQrYXJnMTk4NSthcmcxOTg2K2FyZzE5ODcrYXJnMTk4OCthcmcxOTg5K2FyZzE5
OTArYXJnMTk5MSthcmcxOTkyK2FyZzE5OTMrYXJnMTk5NCthcmcxOTk1K2FyZzE5OTYrYXJnMTk5
NythcmcxOTk4K2FyZzE5OTkrYXJnMjAwMCthcmcyMDAxK2FyZzIwMDIrYXJnMjAwMythcmcyMDA0
K2FyZzIwMDUrYXJnMjAwNithcmcyMDA3K2FyZzIwMDgrYXJnMjAwOSthcmcyMDEwK2FyZzIwMTEr
YXJnMjAxMithcmcyMDEzK2FyZzIwMTQrYXJnMjAxNSthcmcyMDE2K2FyZzIwMTcrYXJnMjAxOCth
cmcyMDE5K2FyZzIwMjArYXJnMjAyMSthcmcyMDIyK2FyZzIwMjMrYXJnMjAyNCthcmcyMDI1K2Fy
ZzIwMjYrYXJnMjAyNythcmcyMDI4K2FyZzIwMjkrYXJnMjAzMCthcmcyMDMxK2FyZzIwMzIrYXJn
MjAzMythcmcyMDM0K2FyZzIwMzUrYXJnMjAzNithcmcyMDM3K2FyZzIwMzgrYXJnMjAzOSthcmcy
MDQwK2FyZzIwNDErYXJnMjA0MithcmcyMDQzK2FyZzIwNDQrYXJnMjA0NSthcmcyMDQ2K2FyZzIw
NDcrYXJnMjA0OCthcmcyMDQ5K2FyZzIwNTArYXJnMjA1MSthcmcyMDUyK2FyZzIwNTMrYXJnMjA1
NCthcmcyMDU1K2FyZzIwNTYrYXJnMjA1NythcmcyMDU4K2FyZzIwNTkrYXJnMjA2MCthcmcyMDYx
K2FyZzIwNjIrYXJnMjA2MythcmcyMDY0K2FyZzIwNjUrYXJnMjA2NithcmcyMDY3K2FyZzIwNjgr
YXJnMjA2OSthcmcyMDcwK2FyZzIwNzErYXJnMjA3MithcmcyMDczK2FyZzIwNzQrYXJnMjA3NSth
cmcyMDc2K2FyZzIwNzcrYXJnMjA3OCthcmcyMDc5K2FyZzIwODArYXJnMjA4MSthcmcyMDgyK2Fy
ZzIwODMrYXJnMjA4NCthcmcyMDg1K2FyZzIwODYrYXJnMjA4NythcmcyMDg4K2FyZzIwODkrYXJn
MjA5MCthcmcyMDkxK2FyZzIwOTIrYXJnMjA5MythcmcyMDk0K2FyZzIwOTUrYXJnMjA5Nithcmcy
MDk3K2FyZzIwOTgrYXJnMjA5OSthcmcyMTAwK2FyZzIxMDErYXJnMjEwMithcmcyMTAzK2FyZzIx
MDQrYXJnMjEwNSthcmcyMTA2K2FyZzIxMDcrYXJnMjEwOCthcmcyMTA5K2FyZzIxMTArYXJnMjEx
MSthcmcyMTEyK2FyZzIxMTMrYXJnMjExNCthcmcyMTE1K2FyZzIxMTYrYXJnMjExNythcmcyMTE4
K2FyZzIxMTkrYXJnMjEyMCthcmcyMTIxK2FyZzIxMjIrYXJnMjEyMythcmcyMTI0K2FyZzIxMjUr
YXJnMjEyNithcmcyMTI3K2FyZzIxMjgrYXJnMjEyOSthcmcyMTMwK2FyZzIxMzErYXJnMjEzMith
cmcyMTMzK2FyZzIxMzQrYXJnMjEzNSthcmcyMTM2K2FyZzIxMzcrYXJnMjEzOCthcmcyMTM5K2Fy
ZzIxNDArYXJnMjE0MSthcmcyMTQyK2FyZzIxNDMrYXJnMjE0NCthcmcyMTQ1K2FyZzIxNDYrYXJn
MjE0NythcmcyMTQ4K2FyZzIxNDkrYXJnMjE1MCthcmcyMTUxK2FyZzIxNTIrYXJnMjE1Mythcmcy
MTU0K2FyZzIxNTUrYXJnMjE1NithcmcyMTU3K2FyZzIxNTgrYXJnMjE1OSthcmcyMTYwK2FyZzIx
NjErYXJnMjE2MithcmcyMTYzK2FyZzIxNjQrYXJnMjE2NSthcmcyMTY2K2FyZzIxNjcrYXJnMjE2
OCthcmcyMTY5K2FyZzIxNzArYXJnMjE3MSthcmcyMTcyK2FyZzIxNzMrYXJnMjE3NCthcmcyMTc1
K2FyZzIxNzYrYXJnMjE3NythcmcyMTc4K2FyZzIxNzkrYXJnMjE4MCthcmcyMTgxK2FyZzIxODIr
YXJnMjE4MythcmcyMTg0K2FyZzIxODUrYXJnMjE4NithcmcyMTg3K2FyZzIxODgrYXJnMjE4OSth
cmcyMTkwK2FyZzIxOTErYXJnMjE5MithcmcyMTkzK2FyZzIxOTQrYXJnMjE5NSthcmcyMTk2K2Fy
ZzIxOTcrYXJnMjE5OCthcmcyMTk5K2FyZzIyMDArYXJnMjIwMSthcmcyMjAyK2FyZzIyMDMrYXJn
MjIwNCthcmcyMjA1K2FyZzIyMDYrYXJnMjIwNythcmcyMjA4K2FyZzIyMDkrYXJnMjIxMCthcmcy
MjExK2FyZzIyMTIrYXJnMjIxMythcmcyMjE0K2FyZzIyMTUrYXJnMjIxNithcmcyMjE3K2FyZzIy
MTgrYXJnMjIxOSthcmcyMjIwK2FyZzIyMjErYXJnMjIyMithcmcyMjIzK2FyZzIyMjQrYXJnMjIy
NSthcmcyMjI2K2FyZzIyMjcrYXJnMjIyOCthcmcyMjI5K2FyZzIyMzArYXJnMjIzMSthcmcyMjMy
K2FyZzIyMzMrYXJnMjIzNCthcmcyMjM1K2FyZzIyMzYrYXJnMjIzNythcmcyMjM4K2FyZzIyMzkr
YXJnMjI0MCthcmcyMjQxK2FyZzIyNDIrYXJnMjI0MythcmcyMjQ0K2FyZzIyNDUrYXJnMjI0Nith
cmcyMjQ3K2FyZzIyNDgrYXJnMjI0OSthcmcyMjUwK2FyZzIyNTErYXJnMjI1MithcmcyMjUzK2Fy
ZzIyNTQrYXJnMjI1NSthcmcyMjU2K2FyZzIyNTcrYXJnMjI1OCthcmcyMjU5K2FyZzIyNjArYXJn
MjI2MSthcmcyMjYyK2FyZzIyNjMrYXJnMjI2NCthcmcyMjY1K2FyZzIyNjYrYXJnMjI2Nythcmcy
MjY4K2FyZzIyNjkrYXJnMjI3MCthcmcyMjcxK2FyZzIyNzIrYXJnMjI3MythcmcyMjc0K2FyZzIy
NzUrYXJnMjI3NithcmcyMjc3K2FyZzIyNzgrYXJnMjI3OSthcmcyMjgwK2FyZzIyODErYXJnMjI4
MithcmcyMjgzK2FyZzIyODQrYXJnMjI4NSthcmcyMjg2K2FyZzIyODcrYXJnMjI4OCthcmcyMjg5
K2FyZzIyOTArYXJnMjI5MSthcmcyMjkyK2FyZzIyOTMrYXJnMjI5NCthcmcyMjk1K2FyZzIyOTYr
YXJnMjI5NythcmcyMjk4K2FyZzIyOTkrYXJnMjMwMCthcmcyMzAxK2FyZzIzMDIrYXJnMjMwMyth
cmcyMzA0K2FyZzIzMDUrYXJnMjMwNithcmcyMzA3K2FyZzIzMDgrYXJnMjMwOSthcmcyMzEwK2Fy
ZzIzMTErYXJnMjMxMithcmcyMzEzK2FyZzIzMTQrYXJnMjMxNSthcmcyMzE2K2FyZzIzMTcrYXJn
MjMxOCthcmcyMzE5K2FyZzIzMjArYXJnMjMyMSthcmcyMzIyK2FyZzIzMjMrYXJnMjMyNCthcmcy
MzI1K2FyZzIzMjYrYXJnMjMyNythcmcyMzI4K2FyZzIzMjkrYXJnMjMzMCthcmcyMzMxK2FyZzIz
MzIrYXJnMjMzMythcmcyMzM0K2FyZzIzMzUrYXJnMjMzNithcmcyMzM3K2FyZzIzMzgrYXJnMjMz
OSthcmcyMzQwK2FyZzIzNDErYXJnMjM0MithcmcyMzQzK2FyZzIzNDQrYXJnMjM0NSthcmcyMzQ2
K2FyZzIzNDcrYXJnMjM0OCthcmcyMzQ5K2FyZzIzNTArYXJnMjM1MSthcmcyMzUyK2FyZzIzNTMr
YXJnMjM1NCthcmcyMzU1K2FyZzIzNTYrYXJnMjM1NythcmcyMzU4K2FyZzIzNTkrYXJnMjM2MCth
cmcyMzYxK2FyZzIzNjIrYXJnMjM2MythcmcyMzY0K2FyZzIzNjUrYXJnMjM2NithcmcyMzY3K2Fy
ZzIzNjgrYXJnMjM2OSthcmcyMzcwK2FyZzIzNzErYXJnMjM3MithcmcyMzczK2FyZzIzNzQrYXJn
MjM3NSthcmcyMzc2K2FyZzIzNzcrYXJnMjM3OCthcmcyMzc5K2FyZzIzODArYXJnMjM4MSthcmcy
MzgyK2FyZzIzODMrYXJnMjM4NCthcmcyMzg1K2FyZzIzODYrYXJnMjM4NythcmcyMzg4K2FyZzIz
ODkrYXJnMjM5MCthcmcyMzkxK2FyZzIzOTIrYXJnMjM5MythcmcyMzk0K2FyZzIzOTUrYXJnMjM5
NithcmcyMzk3K2FyZzIzOTgrYXJnMjM5OSthcmcyNDAwK2FyZzI0MDErYXJnMjQwMithcmcyNDAz
K2FyZzI0MDQrYXJnMjQwNSthcmcyNDA2K2FyZzI0MDcrYXJnMjQwOCthcmcyNDA5K2FyZzI0MTAr
YXJnMjQxMSthcmcyNDEyK2FyZzI0MTMrYXJnMjQxNCthcmcyNDE1K2FyZzI0MTYrYXJnMjQxNyth
cmcyNDE4K2FyZzI0MTkrYXJnMjQyMCthcmcyNDIxK2FyZzI0MjIrYXJnMjQyMythcmcyNDI0K2Fy
ZzI0MjUrYXJnMjQyNithcmcyNDI3K2FyZzI0MjgrYXJnMjQyOSthcmcyNDMwK2FyZzI0MzErYXJn
MjQzMithcmcyNDMzK2FyZzI0MzQrYXJnMjQzNSthcmcyNDM2K2FyZzI0MzcrYXJnMjQzOCthcmcy
NDM5K2FyZzI0NDArYXJnMjQ0MSthcmcyNDQyK2FyZzI0NDMrYXJnMjQ0NCthcmcyNDQ1K2FyZzI0
NDYrYXJnMjQ0NythcmcyNDQ4K2FyZzI0NDkrYXJnMjQ1MCthcmcyNDUxK2FyZzI0NTIrYXJnMjQ1
MythcmcyNDU0K2FyZzI0NTUrYXJnMjQ1NithcmcyNDU3K2FyZzI0NTgrYXJnMjQ1OSthcmcyNDYw
K2FyZzI0NjErYXJnMjQ2MithcmcyNDYzK2FyZzI0NjQrYXJnMjQ2NSthcmcyNDY2K2FyZzI0Njcr
YXJnMjQ2OCthcmcyNDY5K2FyZzI0NzArYXJnMjQ3MSthcmcyNDcyK2FyZzI0NzMrYXJnMjQ3NCth
cmcyNDc1K2FyZzI0NzYrYXJnMjQ3NythcmcyNDc4K2FyZzI0NzkrYXJnMjQ4MCthcmcyNDgxK2Fy
ZzI0ODIrYXJnMjQ4MythcmcyNDg0K2FyZzI0ODUrYXJnMjQ4NithcmcyNDg3K2FyZzI0ODgrYXJn
MjQ4OSthcmcyNDkwK2FyZzI0OTErYXJnMjQ5MithcmcyNDkzK2FyZzI0OTQrYXJnMjQ5NSthcmcy
NDk2K2FyZzI0OTcrYXJnMjQ5OCthcmcyNDk5K2FyZzI1MDArYXJnMjUwMSthcmcyNTAyK2FyZzI1
MDMrYXJnMjUwNCthcmcyNTA1K2FyZzI1MDYrYXJnMjUwNythcmcyNTA4K2FyZzI1MDkrYXJnMjUx
MCthcmcyNTExK2FyZzI1MTIrYXJnMjUxMythcmcyNTE0K2FyZzI1MTUrYXJnMjUxNithcmcyNTE3
K2FyZzI1MTgrYXJnMjUxOSthcmcyNTIwK2FyZzI1MjErYXJnMjUyMithcmcyNTIzK2FyZzI1MjQr
YXJnMjUyNSthcmcyNTI2K2FyZzI1MjcrYXJnMjUyOCthcmcyNTI5K2FyZzI1MzArYXJnMjUzMSth
cmcyNTMyK2FyZzI1MzMrYXJnMjUzNCthcmcyNTM1K2FyZzI1MzYrYXJnMjUzNythcmcyNTM4K2Fy
ZzI1MzkrYXJnMjU0MCthcmcyNTQxK2FyZzI1NDIrYXJnMjU0MythcmcyNTQ0K2FyZzI1NDUrYXJn
MjU0NithcmcyNTQ3K2FyZzI1NDgrYXJnMjU0OSthcmcyNTUwK2FyZzI1NTErYXJnMjU1Mithcmcy
NTUzK2FyZzI1NTQrYXJnMjU1NSthcmcyNTU2K2FyZzI1NTcrYXJnMjU1OCthcmcyNTU5K2FyZzI1
NjArYXJnMjU2MSthcmcyNTYyK2FyZzI1NjMrYXJnMjU2NCthcmcyNTY1K2FyZzI1NjYrYXJnMjU2
NythcmcyNTY4K2FyZzI1NjkrYXJnMjU3MCthcmcyNTcxK2FyZzI1NzIrYXJnMjU3MythcmcyNTc0
K2FyZzI1NzUrYXJnMjU3NithcmcyNTc3K2FyZzI1NzgrYXJnMjU3OSthcmcyNTgwK2FyZzI1ODEr
YXJnMjU4MithcmcyNTgzK2FyZzI1ODQrYXJnMjU4NSthcmcyNTg2K2FyZzI1ODcrYXJnMjU4OCth
cmcyNTg5K2FyZzI1OTArYXJnMjU5MSthcmcyNTkyK2FyZzI1OTMrYXJnMjU5NCthcmcyNTk1K2Fy
ZzI1OTYrYXJnMjU5NythcmcyNTk4K2FyZzI1OTkrYXJnMjYwMCthcmcyNjAxK2FyZzI2MDIrYXJn
MjYwMythcmcyNjA0K2FyZzI2MDUrYXJnMjYwNithcmcyNjA3K2FyZzI2MDgrYXJnMjYwOSthcmcy
NjEwK2FyZzI2MTErYXJnMjYxMithcmcyNjEzK2FyZzI2MTQrYXJnMjYxNSthcmcyNjE2K2FyZzI2
MTcrYXJnMjYxOCthcmcyNjE5K2FyZzI2MjArYXJnMjYyMSthcmcyNjIyK2FyZzI2MjMrYXJnMjYy
NCthcmcyNjI1K2FyZzI2MjYrYXJnMjYyNythcmcyNjI4K2FyZzI2MjkrYXJnMjYzMCthcmcyNjMx
K2FyZzI2MzIrYXJnMjYzMythcmcyNjM0K2FyZzI2MzUrYXJnMjYzNithcmcyNjM3K2FyZzI2Mzgr
YXJnMjYzOSthcmcyNjQwK2FyZzI2NDErYXJnMjY0MithcmcyNjQzK2FyZzI2NDQrYXJnMjY0NSth
cmcyNjQ2K2FyZzI2NDcrYXJnMjY0OCthcmcyNjQ5K2FyZzI2NTArYXJnMjY1MSthcmcyNjUyK2Fy
ZzI2NTMrYXJnMjY1NCthcmcyNjU1K2FyZzI2NTYrYXJnMjY1NythcmcyNjU4K2FyZzI2NTkrYXJn
MjY2MCthcmcyNjYxK2FyZzI2NjIrYXJnMjY2MythcmcyNjY0K2FyZzI2NjUrYXJnMjY2Nithcmcy
NjY3K2FyZzI2NjgrYXJnMjY2OSthcmcyNjcwK2FyZzI2NzErYXJnMjY3MithcmcyNjczK2FyZzI2
NzQrYXJnMjY3NSthcmcyNjc2K2FyZzI2NzcrYXJnMjY3OCthcmcyNjc5K2FyZzI2ODArYXJnMjY4
MSthcmcyNjgyK2FyZzI2ODMrYXJnMjY4NCthcmcyNjg1K2FyZzI2ODYrYXJnMjY4NythcmcyNjg4
K2FyZzI2ODkrYXJnMjY5MCthcmcyNjkxK2FyZzI2OTIrYXJnMjY5MythcmcyNjk0K2FyZzI2OTUr
YXJnMjY5NithcmcyNjk3K2FyZzI2OTgrYXJnMjY5OSthcmcyNzAwK2FyZzI3MDErYXJnMjcwMith
cmcyNzAzK2FyZzI3MDQrYXJnMjcwNSthcmcyNzA2K2FyZzI3MDcrYXJnMjcwOCthcmcyNzA5K2Fy
ZzI3MTArYXJnMjcxMSthcmcyNzEyK2FyZzI3MTMrYXJnMjcxNCthcmcyNzE1K2FyZzI3MTYrYXJn
MjcxNythcmcyNzE4K2FyZzI3MTkrYXJnMjcyMCthcmcyNzIxK2FyZzI3MjIrYXJnMjcyMythcmcy
NzI0K2FyZzI3MjUrYXJnMjcyNithcmcyNzI3K2FyZzI3MjgrYXJnMjcyOSthcmcyNzMwK2FyZzI3
MzErYXJnMjczMithcmcyNzMzK2FyZzI3MzQrYXJnMjczNSthcmcyNzM2K2FyZzI3MzcrYXJnMjcz
OCthcmcyNzM5K2FyZzI3NDArYXJnMjc0MSthcmcyNzQyK2FyZzI3NDMrYXJnMjc0NCthcmcyNzQ1
K2FyZzI3NDYrYXJnMjc0NythcmcyNzQ4K2FyZzI3NDkrYXJnMjc1MCthcmcyNzUxK2FyZzI3NTIr
YXJnMjc1MythcmcyNzU0K2FyZzI3NTUrYXJnMjc1NithcmcyNzU3K2FyZzI3NTgrYXJnMjc1OSth
cmcyNzYwK2FyZzI3NjErYXJnMjc2MithcmcyNzYzK2FyZzI3NjQrYXJnMjc2NSthcmcyNzY2K2Fy
ZzI3NjcrYXJnMjc2OCthcmcyNzY5K2FyZzI3NzArYXJnMjc3MSthcmcyNzcyK2FyZzI3NzMrYXJn
Mjc3NCthcmcyNzc1K2FyZzI3NzYrYXJnMjc3NythcmcyNzc4K2FyZzI3NzkrYXJnMjc4MCthcmcy
NzgxK2FyZzI3ODIrYXJnMjc4MythcmcyNzg0K2FyZzI3ODUrYXJnMjc4NithcmcyNzg3K2FyZzI3
ODgrYXJnMjc4OSthcmcyNzkwK2FyZzI3OTErYXJnMjc5MithcmcyNzkzK2FyZzI3OTQrYXJnMjc5
NSthcmcyNzk2K2FyZzI3OTcrYXJnMjc5OCthcmcyNzk5K2FyZzI4MDArYXJnMjgwMSthcmcyODAy
K2FyZzI4MDMrYXJnMjgwNCthcmcyODA1K2FyZzI4MDYrYXJnMjgwNythcmcyODA4K2FyZzI4MDkr
YXJnMjgxMCthcmcyODExK2FyZzI4MTIrYXJnMjgxMythcmcyODE0K2FyZzI4MTUrYXJnMjgxNith
cmcyODE3K2FyZzI4MTgrYXJnMjgxOSthcmcyODIwK2FyZzI4MjErYXJnMjgyMithcmcyODIzK2Fy
ZzI4MjQrYXJnMjgyNSthcmcyODI2K2FyZzI4MjcrYXJnMjgyOCthcmcyODI5K2FyZzI4MzArYXJn
MjgzMSthcmcyODMyK2FyZzI4MzMrYXJnMjgzNCthcmcyODM1K2FyZzI4MzYrYXJnMjgzNythcmcy
ODM4K2FyZzI4MzkrYXJnMjg0MCthcmcyODQxK2FyZzI4NDIrYXJnMjg0MythcmcyODQ0K2FyZzI4
NDUrYXJnMjg0NithcmcyODQ3K2FyZzI4NDgrYXJnMjg0OSthcmcyODUwK2FyZzI4NTErYXJnMjg1
MithcmcyODUzK2FyZzI4NTQrYXJnMjg1NSthcmcyODU2K2FyZzI4NTcrYXJnMjg1OCthcmcyODU5
K2FyZzI4NjArYXJnMjg2MSthcmcyODYyK2FyZzI4NjMrYXJnMjg2NCthcmcyODY1K2FyZzI4NjYr
YXJnMjg2NythcmcyODY4K2FyZzI4NjkrYXJnMjg3MCthcmcyODcxK2FyZzI4NzIrYXJnMjg3Myth
cmcyODc0K2FyZzI4NzUrYXJnMjg3NithcmcyODc3K2FyZzI4NzgrYXJnMjg3OSthcmcyODgwK2Fy
ZzI4ODErYXJnMjg4MithcmcyODgzK2FyZzI4ODQrYXJnMjg4NSthcmcyODg2K2FyZzI4ODcrYXJn
Mjg4OCthcmcyODg5K2FyZzI4OTArYXJnMjg5MSthcmcyODkyK2FyZzI4OTMrYXJnMjg5NCthcmcy
ODk1K2FyZzI4OTYrYXJnMjg5NythcmcyODk4K2FyZzI4OTkrYXJnMjkwMCthcmcyOTAxK2FyZzI5
MDIrYXJnMjkwMythcmcyOTA0K2FyZzI5MDUrYXJnMjkwNithcmcyOTA3K2FyZzI5MDgrYXJnMjkw
OSthcmcyOTEwK2FyZzI5MTErYXJnMjkxMithcmcyOTEzK2FyZzI5MTQrYXJnMjkxNSthcmcyOTE2
K2FyZzI5MTcrYXJnMjkxOCthcmcyOTE5K2FyZzI5MjArYXJnMjkyMSthcmcyOTIyK2FyZzI5MjMr
YXJnMjkyNCthcmcyOTI1K2FyZzI5MjYrYXJnMjkyNythcmcyOTI4K2FyZzI5MjkrYXJnMjkzMCth
cmcyOTMxK2FyZzI5MzIrYXJnMjkzMythcmcyOTM0K2FyZzI5MzUrYXJnMjkzNithcmcyOTM3K2Fy
ZzI5MzgrYXJnMjkzOSthcmcyOTQwK2FyZzI5NDErYXJnMjk0MithcmcyOTQzK2FyZzI5NDQrYXJn
Mjk0NSthcmcyOTQ2K2FyZzI5NDcrYXJnMjk0OCthcmcyOTQ5K2FyZzI5NTArYXJnMjk1MSthcmcy
OTUyK2FyZzI5NTMrYXJnMjk1NCthcmcyOTU1K2FyZzI5NTYrYXJnMjk1NythcmcyOTU4K2FyZzI5
NTkrYXJnMjk2MCthcmcyOTYxK2FyZzI5NjIrYXJnMjk2MythcmcyOTY0K2FyZzI5NjUrYXJnMjk2
NithcmcyOTY3K2FyZzI5NjgrYXJnMjk2OSthcmcyOTcwK2FyZzI5NzErYXJnMjk3MithcmcyOTcz
K2FyZzI5NzQrYXJnMjk3NSthcmcyOTc2K2FyZzI5NzcrYXJnMjk3OCthcmcyOTc5K2FyZzI5ODAr
YXJnMjk4MSthcmcyOTgyK2FyZzI5ODMrYXJnMjk4NCthcmcyOTg1K2FyZzI5ODYrYXJnMjk4Nyth
cmcyOTg4K2FyZzI5ODkrYXJnMjk5MCthcmcyOTkxK2FyZzI5OTIrYXJnMjk5MythcmcyOTk0K2Fy
ZzI5OTUrYXJnMjk5NithcmcyOTk3K2FyZzI5OTgrYXJnMjk5OSthcmczMDAwK2FyZzMwMDErYXJn
MzAwMithcmczMDAzK2FyZzMwMDQrYXJnMzAwNSthcmczMDA2K2FyZzMwMDcrYXJnMzAwOCthcmcz
MDA5K2FyZzMwMTArYXJnMzAxMSthcmczMDEyK2FyZzMwMTMrYXJnMzAxNCthcmczMDE1K2FyZzMw
MTYrYXJnMzAxNythcmczMDE4K2FyZzMwMTkrYXJnMzAyMCthcmczMDIxK2FyZzMwMjIrYXJnMzAy
MythcmczMDI0K2FyZzMwMjUrYXJnMzAyNithcmczMDI3K2FyZzMwMjgrYXJnMzAyOSthcmczMDMw
K2FyZzMwMzErYXJnMzAzMithcmczMDMzK2FyZzMwMzQrYXJnMzAzNSthcmczMDM2K2FyZzMwMzcr
YXJnMzAzOCthcmczMDM5K2FyZzMwNDArYXJnMzA0MSthcmczMDQyK2FyZzMwNDMrYXJnMzA0NCth
cmczMDQ1K2FyZzMwNDYrYXJnMzA0NythcmczMDQ4K2FyZzMwNDkrYXJnMzA1MCthcmczMDUxK2Fy
ZzMwNTIrYXJnMzA1MythcmczMDU0K2FyZzMwNTUrYXJnMzA1NithcmczMDU3K2FyZzMwNTgrYXJn
MzA1OSthcmczMDYwK2FyZzMwNjErYXJnMzA2MithcmczMDYzK2FyZzMwNjQrYXJnMzA2NSthcmcz
MDY2K2FyZzMwNjcrYXJnMzA2OCthcmczMDY5K2FyZzMwNzArYXJnMzA3MSthcmczMDcyK2FyZzMw
NzMrYXJnMzA3NCthcmczMDc1K2FyZzMwNzYrYXJnMzA3NythcmczMDc4K2FyZzMwNzkrYXJnMzA4
MCthcmczMDgxK2FyZzMwODIrYXJnMzA4MythcmczMDg0K2FyZzMwODUrYXJnMzA4NithcmczMDg3
K2FyZzMwODgrYXJnMzA4OSthcmczMDkwK2FyZzMwOTErYXJnMzA5MithcmczMDkzK2FyZzMwOTQr
YXJnMzA5NSthcmczMDk2K2FyZzMwOTcrYXJnMzA5OCthcmczMDk5K2FyZzMxMDArYXJnMzEwMSth
cmczMTAyK2FyZzMxMDMrYXJnMzEwNCthcmczMTA1K2FyZzMxMDYrYXJnMzEwNythcmczMTA4K2Fy
ZzMxMDkrYXJnMzExMCthcmczMTExK2FyZzMxMTIrYXJnMzExMythcmczMTE0K2FyZzMxMTUrYXJn
MzExNithcmczMTE3K2FyZzMxMTgrYXJnMzExOSthcmczMTIwK2FyZzMxMjErYXJnMzEyMithcmcz
MTIzK2FyZzMxMjQrYXJnMzEyNSthcmczMTI2K2FyZzMxMjcrYXJnMzEyOCthcmczMTI5K2FyZzMx
MzArYXJnMzEzMSthcmczMTMyK2FyZzMxMzMrYXJnMzEzNCthcmczMTM1K2FyZzMxMzYrYXJnMzEz
NythcmczMTM4K2FyZzMxMzkrYXJnMzE0MCthcmczMTQxK2FyZzMxNDIrYXJnMzE0MythcmczMTQ0
K2FyZzMxNDUrYXJnMzE0NithcmczMTQ3K2FyZzMxNDgrYXJnMzE0OSthcmczMTUwK2FyZzMxNTEr
YXJnMzE1MithcmczMTUzK2FyZzMxNTQrYXJnMzE1NSthcmczMTU2K2FyZzMxNTcrYXJnMzE1OCth
cmczMTU5K2FyZzMxNjArYXJnMzE2MSthcmczMTYyK2FyZzMxNjMrYXJnMzE2NCthcmczMTY1K2Fy
ZzMxNjYrYXJnMzE2NythcmczMTY4K2FyZzMxNjkrYXJnMzE3MCthcmczMTcxK2FyZzMxNzIrYXJn
MzE3MythcmczMTc0K2FyZzMxNzUrYXJnMzE3NithcmczMTc3K2FyZzMxNzgrYXJnMzE3OSthcmcz
MTgwK2FyZzMxODErYXJnMzE4MithcmczMTgzK2FyZzMxODQrYXJnMzE4NSthcmczMTg2K2FyZzMx
ODcrYXJnMzE4OCthcmczMTg5K2FyZzMxOTArYXJnMzE5MSthcmczMTkyK2FyZzMxOTMrYXJnMzE5
NCthcmczMTk1K2FyZzMxOTYrYXJnMzE5NythcmczMTk4K2FyZzMxOTkrYXJnMzIwMCthcmczMjAx
K2FyZzMyMDIrYXJnMzIwMythcmczMjA0K2FyZzMyMDUrYXJnMzIwNithcmczMjA3K2FyZzMyMDgr
YXJnMzIwOSthcmczMjEwK2FyZzMyMTErYXJnMzIxMithcmczMjEzK2FyZzMyMTQrYXJnMzIxNSth
cmczMjE2K2FyZzMyMTcrYXJnMzIxOCthcmczMjE5K2FyZzMyMjArYXJnMzIyMSthcmczMjIyK2Fy
ZzMyMjMrYXJnMzIyNCthcmczMjI1K2FyZzMyMjYrYXJnMzIyNythcmczMjI4K2FyZzMyMjkrYXJn
MzIzMCthcmczMjMxK2FyZzMyMzIrYXJnMzIzMythcmczMjM0K2FyZzMyMzUrYXJnMzIzNithcmcz
MjM3K2FyZzMyMzgrYXJnMzIzOSthcmczMjQwK2FyZzMyNDErYXJnMzI0MithcmczMjQzK2FyZzMy
NDQrYXJnMzI0NSthcmczMjQ2K2FyZzMyNDcrYXJnMzI0OCthcmczMjQ5K2FyZzMyNTArYXJnMzI1
MSthcmczMjUyK2FyZzMyNTMrYXJnMzI1NCthcmczMjU1K2FyZzMyNTYrYXJnMzI1NythcmczMjU4
K2FyZzMyNTkrYXJnMzI2MCthcmczMjYxK2FyZzMyNjIrYXJnMzI2MythcmczMjY0K2FyZzMyNjUr
YXJnMzI2NithcmczMjY3K2FyZzMyNjgrYXJnMzI2OSthcmczMjcwK2FyZzMyNzErYXJnMzI3Mith
cmczMjczK2FyZzMyNzQrYXJnMzI3NSthcmczMjc2K2FyZzMyNzcrYXJnMzI3OCthcmczMjc5K2Fy
ZzMyODArYXJnMzI4MSthcmczMjgyK2FyZzMyODMrYXJnMzI4NCthcmczMjg1K2FyZzMyODYrYXJn
MzI4NythcmczMjg4K2FyZzMyODkrYXJnMzI5MCthcmczMjkxK2FyZzMyOTIrYXJnMzI5Mythcmcz
Mjk0K2FyZzMyOTUrYXJnMzI5NithcmczMjk3K2FyZzMyOTgrYXJnMzI5OSthcmczMzAwK2FyZzMz
MDErYXJnMzMwMithcmczMzAzK2FyZzMzMDQrYXJnMzMwNSthcmczMzA2K2FyZzMzMDcrYXJnMzMw
OCthcmczMzA5K2FyZzMzMTArYXJnMzMxMSthcmczMzEyK2FyZzMzMTMrYXJnMzMxNCthcmczMzE1
K2FyZzMzMTYrYXJnMzMxNythcmczMzE4K2FyZzMzMTkrYXJnMzMyMCthcmczMzIxK2FyZzMzMjIr
YXJnMzMyMythcmczMzI0K2FyZzMzMjUrYXJnMzMyNithcmczMzI3K2FyZzMzMjgrYXJnMzMyOSth
cmczMzMwK2FyZzMzMzErYXJnMzMzMithcmczMzMzK2FyZzMzMzQrYXJnMzMzNSthcmczMzM2K2Fy
ZzMzMzcrYXJnMzMzOCthcmczMzM5K2FyZzMzNDArYXJnMzM0MSthcmczMzQyK2FyZzMzNDMrYXJn
MzM0NCthcmczMzQ1K2FyZzMzNDYrYXJnMzM0NythcmczMzQ4K2FyZzMzNDkrYXJnMzM1MCthcmcz
MzUxK2FyZzMzNTIrYXJnMzM1MythcmczMzU0K2FyZzMzNTUrYXJnMzM1NithcmczMzU3K2FyZzMz
NTgrYXJnMzM1OSthcmczMzYwK2FyZzMzNjErYXJnMzM2MithcmczMzYzK2FyZzMzNjQrYXJnMzM2
NSthcmczMzY2K2FyZzMzNjcrYXJnMzM2OCthcmczMzY5K2FyZzMzNzArYXJnMzM3MSthcmczMzcy
K2FyZzMzNzMrYXJnMzM3NCthcmczMzc1K2FyZzMzNzYrYXJnMzM3NythcmczMzc4K2FyZzMzNzkr
YXJnMzM4MCthcmczMzgxK2FyZzMzODIrYXJnMzM4MythcmczMzg0K2FyZzMzODUrYXJnMzM4Nith
cmczMzg3K2FyZzMzODgrYXJnMzM4OSthcmczMzkwK2FyZzMzOTErYXJnMzM5MithcmczMzkzK2Fy
ZzMzOTQrYXJnMzM5NSthcmczMzk2K2FyZzMzOTcrYXJnMzM5OCthcmczMzk5K2FyZzM0MDArYXJn
MzQwMSthcmczNDAyK2FyZzM0MDMrYXJnMzQwNCthcmczNDA1K2FyZzM0MDYrYXJnMzQwNythcmcz
NDA4K2FyZzM0MDkrYXJnMzQxMCthcmczNDExK2FyZzM0MTIrYXJnMzQxMythcmczNDE0K2FyZzM0
MTUrYXJnMzQxNithcmczNDE3K2FyZzM0MTgrYXJnMzQxOSthcmczNDIwK2FyZzM0MjErYXJnMzQy
MithcmczNDIzK2FyZzM0MjQrYXJnMzQyNSthcmczNDI2K2FyZzM0MjcrYXJnMzQyOCthcmczNDI5
K2FyZzM0MzArYXJnMzQzMSthcmczNDMyK2FyZzM0MzMrYXJnMzQzNCthcmczNDM1K2FyZzM0MzYr
YXJnMzQzNythcmczNDM4K2FyZzM0MzkrYXJnMzQ0MCthcmczNDQxK2FyZzM0NDIrYXJnMzQ0Myth
cmczNDQ0K2FyZzM0NDUrYXJnMzQ0NithcmczNDQ3K2FyZzM0NDgrYXJnMzQ0OSthcmczNDUwK2Fy
ZzM0NTErYXJnMzQ1MithcmczNDUzK2FyZzM0NTQrYXJnMzQ1NSthcmczNDU2K2FyZzM0NTcrYXJn
MzQ1OCthcmczNDU5K2FyZzM0NjArYXJnMzQ2MSthcmczNDYyK2FyZzM0NjMrYXJnMzQ2NCthcmcz
NDY1K2FyZzM0NjYrYXJnMzQ2NythcmczNDY4K2FyZzM0NjkrYXJnMzQ3MCthcmczNDcxK2FyZzM0
NzIrYXJnMzQ3MythcmczNDc0K2FyZzM0NzUrYXJnMzQ3NithcmczNDc3K2FyZzM0NzgrYXJnMzQ3
OSthcmczNDgwK2FyZzM0ODErYXJnMzQ4MithcmczNDgzK2FyZzM0ODQrYXJnMzQ4NSthcmczNDg2
K2FyZzM0ODcrYXJnMzQ4OCthcmczNDg5K2FyZzM0OTArYXJnMzQ5MSthcmczNDkyK2FyZzM0OTMr
YXJnMzQ5NCthcmczNDk1K2FyZzM0OTYrYXJnMzQ5NythcmczNDk4K2FyZzM0OTkrYXJnMzUwMCth
cmczNTAxK2FyZzM1MDIrYXJnMzUwMythcmczNTA0K2FyZzM1MDUrYXJnMzUwNithcmczNTA3K2Fy
ZzM1MDgrYXJnMzUwOSthcmczNTEwK2FyZzM1MTErYXJnMzUxMithcmczNTEzK2FyZzM1MTQrYXJn
MzUxNSthcmczNTE2K2FyZzM1MTcrYXJnMzUxOCthcmczNTE5K2FyZzM1MjArYXJnMzUyMSthcmcz
NTIyK2FyZzM1MjMrYXJnMzUyNCthcmczNTI1K2FyZzM1MjYrYXJnMzUyNythcmczNTI4K2FyZzM1
MjkrYXJnMzUzMCthcmczNTMxK2FyZzM1MzIrYXJnMzUzMythcmczNTM0K2FyZzM1MzUrYXJnMzUz
NithcmczNTM3K2FyZzM1MzgrYXJnMzUzOSthcmczNTQwK2FyZzM1NDErYXJnMzU0MithcmczNTQz
K2FyZzM1NDQrYXJnMzU0NSthcmczNTQ2K2FyZzM1NDcrYXJnMzU0OCthcmczNTQ5K2FyZzM1NTAr
YXJnMzU1MSthcmczNTUyK2FyZzM1NTMrYXJnMzU1NCthcmczNTU1K2FyZzM1NTYrYXJnMzU1Nyth
cmczNTU4K2FyZzM1NTkrYXJnMzU2MCthcmczNTYxK2FyZzM1NjIrYXJnMzU2MythcmczNTY0K2Fy
ZzM1NjUrYXJnMzU2NithcmczNTY3K2FyZzM1NjgrYXJnMzU2OSthcmczNTcwK2FyZzM1NzErYXJn
MzU3MithcmczNTczK2FyZzM1NzQrYXJnMzU3NSthcmczNTc2K2FyZzM1NzcrYXJnMzU3OCthcmcz
NTc5K2FyZzM1ODArYXJnMzU4MSthcmczNTgyK2FyZzM1ODMrYXJnMzU4NCthcmczNTg1K2FyZzM1
ODYrYXJnMzU4NythcmczNTg4K2FyZzM1ODkrYXJnMzU5MCthcmczNTkxK2FyZzM1OTIrYXJnMzU5
MythcmczNTk0K2FyZzM1OTUrYXJnMzU5NithcmczNTk3K2FyZzM1OTgrYXJnMzU5OSthcmczNjAw
K2FyZzM2MDErYXJnMzYwMithcmczNjAzK2FyZzM2MDQrYXJnMzYwNSthcmczNjA2K2FyZzM2MDcr
YXJnMzYwOCthcmczNjA5K2FyZzM2MTArYXJnMzYxMSthcmczNjEyK2FyZzM2MTMrYXJnMzYxNCth
cmczNjE1K2FyZzM2MTYrYXJnMzYxNythcmczNjE4K2FyZzM2MTkrYXJnMzYyMCthcmczNjIxK2Fy
ZzM2MjIrYXJnMzYyMythcmczNjI0K2FyZzM2MjUrYXJnMzYyNithcmczNjI3K2FyZzM2MjgrYXJn
MzYyOSthcmczNjMwK2FyZzM2MzErYXJnMzYzMithcmczNjMzK2FyZzM2MzQrYXJnMzYzNSthcmcz
NjM2K2FyZzM2MzcrYXJnMzYzOCthcmczNjM5K2FyZzM2NDArYXJnMzY0MSthcmczNjQyK2FyZzM2
NDMrYXJnMzY0NCthcmczNjQ1K2FyZzM2NDYrYXJnMzY0NythcmczNjQ4K2FyZzM2NDkrYXJnMzY1
MCthcmczNjUxK2FyZzM2NTIrYXJnMzY1MythcmczNjU0K2FyZzM2NTUrYXJnMzY1NithcmczNjU3
K2FyZzM2NTgrYXJnMzY1OSthcmczNjYwK2FyZzM2NjErYXJnMzY2MithcmczNjYzK2FyZzM2NjQr
YXJnMzY2NSthcmczNjY2K2FyZzM2NjcrYXJnMzY2OCthcmczNjY5K2FyZzM2NzArYXJnMzY3MSth
cmczNjcyK2FyZzM2NzMrYXJnMzY3NCthcmczNjc1K2FyZzM2NzYrYXJnMzY3NythcmczNjc4K2Fy
ZzM2NzkrYXJnMzY4MCthcmczNjgxK2FyZzM2ODIrYXJnMzY4MythcmczNjg0K2FyZzM2ODUrYXJn
MzY4NithcmczNjg3K2FyZzM2ODgrYXJnMzY4OSthcmczNjkwK2FyZzM2OTErYXJnMzY5Mithcmcz
NjkzK2FyZzM2OTQrYXJnMzY5NSthcmczNjk2K2FyZzM2OTcrYXJnMzY5OCthcmczNjk5K2FyZzM3
MDArYXJnMzcwMSthcmczNzAyK2FyZzM3MDMrYXJnMzcwNCthcmczNzA1K2FyZzM3MDYrYXJnMzcw
NythcmczNzA4K2FyZzM3MDkrYXJnMzcxMCthcmczNzExK2FyZzM3MTIrYXJnMzcxMythcmczNzE0
K2FyZzM3MTUrYXJnMzcxNithcmczNzE3K2FyZzM3MTgrYXJnMzcxOSthcmczNzIwK2FyZzM3MjEr
YXJnMzcyMithcmczNzIzK2FyZzM3MjQrYXJnMzcyNSthcmczNzI2K2FyZzM3MjcrYXJnMzcyOCth
cmczNzI5K2FyZzM3MzArYXJnMzczMSthcmczNzMyK2FyZzM3MzMrYXJnMzczNCthcmczNzM1K2Fy
ZzM3MzYrYXJnMzczNythcmczNzM4K2FyZzM3MzkrYXJnMzc0MCthcmczNzQxK2FyZzM3NDIrYXJn
Mzc0MythcmczNzQ0K2FyZzM3NDUrYXJnMzc0NithcmczNzQ3K2FyZzM3NDgrYXJnMzc0OSthcmcz
NzUwK2FyZzM3NTErYXJnMzc1MithcmczNzUzK2FyZzM3NTQrYXJnMzc1NSthcmczNzU2K2FyZzM3
NTcrYXJnMzc1OCthcmczNzU5K2FyZzM3NjArYXJnMzc2MSthcmczNzYyK2FyZzM3NjMrYXJnMzc2
NCthcmczNzY1K2FyZzM3NjYrYXJnMzc2NythcmczNzY4K2FyZzM3NjkrYXJnMzc3MCthcmczNzcx
K2FyZzM3NzIrYXJnMzc3MythcmczNzc0K2FyZzM3NzUrYXJnMzc3NithcmczNzc3K2FyZzM3Nzgr
YXJnMzc3OSthcmczNzgwK2FyZzM3ODErYXJnMzc4MithcmczNzgzK2FyZzM3ODQrYXJnMzc4NSth
cmczNzg2K2FyZzM3ODcrYXJnMzc4OCthcmczNzg5K2FyZzM3OTArYXJnMzc5MSthcmczNzkyK2Fy
ZzM3OTMrYXJnMzc5NCthcmczNzk1K2FyZzM3OTYrYXJnMzc5NythcmczNzk4K2FyZzM3OTkrYXJn
MzgwMCthcmczODAxK2FyZzM4MDIrYXJnMzgwMythcmczODA0K2FyZzM4MDUrYXJnMzgwNithcmcz
ODA3K2FyZzM4MDgrYXJnMzgwOSthcmczODEwK2FyZzM4MTErYXJnMzgxMithcmczODEzK2FyZzM4
MTQrYXJnMzgxNSthcmczODE2K2FyZzM4MTcrYXJnMzgxOCthcmczODE5K2FyZzM4MjArYXJnMzgy
MSthcmczODIyK2FyZzM4MjMrYXJnMzgyNCthcmczODI1K2FyZzM4MjYrYXJnMzgyNythcmczODI4
K2FyZzM4MjkrYXJnMzgzMCthcmczODMxK2FyZzM4MzIrYXJnMzgzMythcmczODM0K2FyZzM4MzUr
YXJnMzgzNithcmczODM3K2FyZzM4MzgrYXJnMzgzOSthcmczODQwK2FyZzM4NDErYXJnMzg0Mith
cmczODQzK2FyZzM4NDQrYXJnMzg0NSthcmczODQ2K2FyZzM4NDcrYXJnMzg0OCthcmczODQ5K2Fy
ZzM4NTArYXJnMzg1MSthcmczODUyK2FyZzM4NTMrYXJnMzg1NCthcmczODU1K2FyZzM4NTYrYXJn
Mzg1NythcmczODU4K2FyZzM4NTkrYXJnMzg2MCthcmczODYxK2FyZzM4NjIrYXJnMzg2Mythcmcz
ODY0K2FyZzM4NjUrYXJnMzg2NithcmczODY3K2FyZzM4NjgrYXJnMzg2OSthcmczODcwK2FyZzM4
NzErYXJnMzg3MithcmczODczK2FyZzM4NzQrYXJnMzg3NSthcmczODc2K2FyZzM4NzcrYXJnMzg3
OCthcmczODc5K2FyZzM4ODArYXJnMzg4MSthcmczODgyK2FyZzM4ODMrYXJnMzg4NCthcmczODg1
K2FyZzM4ODYrYXJnMzg4NythcmczODg4K2FyZzM4ODkrYXJnMzg5MCthcmczODkxK2FyZzM4OTIr
YXJnMzg5MythcmczODk0K2FyZzM4OTUrYXJnMzg5NithcmczODk3K2FyZzM4OTgrYXJnMzg5OSth
cmczOTAwK2FyZzM5MDErYXJnMzkwMithcmczOTAzK2FyZzM5MDQrYXJnMzkwNSthcmczOTA2K2Fy
ZzM5MDcrYXJnMzkwOCthcmczOTA5K2FyZzM5MTArYXJnMzkxMSthcmczOTEyK2FyZzM5MTMrYXJn
MzkxNCthcmczOTE1K2FyZzM5MTYrYXJnMzkxNythcmczOTE4K2FyZzM5MTkrYXJnMzkyMCthcmcz
OTIxK2FyZzM5MjIrYXJnMzkyMythcmczOTI0K2FyZzM5MjUrYXJnMzkyNithcmczOTI3K2FyZzM5
MjgrYXJnMzkyOSthcmczOTMwK2FyZzM5MzErYXJnMzkzMithcmczOTMzK2FyZzM5MzQrYXJnMzkz
NSthcmczOTM2K2FyZzM5MzcrYXJnMzkzOCthcmczOTM5K2FyZzM5NDArYXJnMzk0MSthcmczOTQy
K2FyZzM5NDMrYXJnMzk0NCthcmczOTQ1K2FyZzM5NDYrYXJnMzk0NythcmczOTQ4K2FyZzM5NDkr
YXJnMzk1MCthcmczOTUxK2FyZzM5NTIrYXJnMzk1MythcmczOTU0K2FyZzM5NTUrYXJnMzk1Nith
cmczOTU3K2FyZzM5NTgrYXJnMzk1OSthcmczOTYwK2FyZzM5NjErYXJnMzk2MithcmczOTYzK2Fy
ZzM5NjQrYXJnMzk2NSthcmczOTY2K2FyZzM5NjcrYXJnMzk2OCthcmczOTY5K2FyZzM5NzArYXJn
Mzk3MSthcmczOTcyK2FyZzM5NzMrYXJnMzk3NCthcmczOTc1K2FyZzM5NzYrYXJnMzk3Nythcmcz
OTc4K2FyZzM5NzkrYXJnMzk4MCthcmczOTgxK2FyZzM5ODIrYXJnMzk4MythcmczOTg0K2FyZzM5
ODUrYXJnMzk4NithcmczOTg3K2FyZzM5ODgrYXJnMzk4OSthcmczOTkwK2FyZzM5OTErYXJnMzk5
MithcmczOTkzK2FyZzM5OTQrYXJnMzk5NSthcmczOTk2K2FyZzM5OTcrYXJnMzk5OCthcmczOTk5
K2FyZzQwMDArYXJnNDAwMSthcmc0MDAyK2FyZzQwMDMrYXJnNDAwNCthcmc0MDA1K2FyZzQwMDYr
YXJnNDAwNythcmc0MDA4K2FyZzQwMDkrYXJnNDAxMCthcmc0MDExK2FyZzQwMTIrYXJnNDAxMyth
cmc0MDE0K2FyZzQwMTUrYXJnNDAxNithcmc0MDE3K2FyZzQwMTgrYXJnNDAxOSthcmc0MDIwK2Fy
ZzQwMjErYXJnNDAyMithcmc0MDIzK2FyZzQwMjQrYXJnNDAyNSthcmc0MDI2K2FyZzQwMjcrYXJn
NDAyOCthcmc0MDI5K2FyZzQwMzArYXJnNDAzMSthcmc0MDMyK2FyZzQwMzMrYXJnNDAzNCthcmc0
MDM1K2FyZzQwMzYrYXJnNDAzNythcmc0MDM4K2FyZzQwMzkrYXJnNDA0MCthcmc0MDQxK2FyZzQw
NDIrYXJnNDA0Mythcmc0MDQ0K2FyZzQwNDUrYXJnNDA0Nithcmc0MDQ3K2FyZzQwNDgrYXJnNDA0
OSthcmc0MDUwK2FyZzQwNTErYXJnNDA1Mithcmc0MDUzK2FyZzQwNTQrYXJnNDA1NSthcmc0MDU2
K2FyZzQwNTcrYXJnNDA1OCthcmc0MDU5K2FyZzQwNjArYXJnNDA2MSthcmc0MDYyK2FyZzQwNjMr
YXJnNDA2NCthcmc0MDY1K2FyZzQwNjYrYXJnNDA2Nythcmc0MDY4K2FyZzQwNjkrYXJnNDA3MCth
cmc0MDcxK2FyZzQwNzIrYXJnNDA3Mythcmc0MDc0K2FyZzQwNzUrYXJnNDA3Nithcmc0MDc3K2Fy
ZzQwNzgrYXJnNDA3OSthcmc0MDgwK2FyZzQwODErYXJnNDA4Mithcmc0MDgzK2FyZzQwODQrYXJn
NDA4NSthcmc0MDg2K2FyZzQwODcrYXJnNDA4OCthcmc0MDg5K2FyZzQwOTArYXJnNDA5MSthcmc0
MDkyK2FyZzQwOTMrYXJnNDA5NCthcmc0MDk1K2FyZzQwOTYrYXJnNDA5Nythcmc0MDk4K2FyZzQw
OTkrYXJnNDEwMCthcmc0MTAxK2FyZzQxMDIrYXJnNDEwMythcmc0MTA0K2FyZzQxMDUrYXJnNDEw
Nithcmc0MTA3K2FyZzQxMDgrYXJnNDEwOSthcmc0MTEwK2FyZzQxMTErYXJnNDExMithcmc0MTEz
K2FyZzQxMTQrYXJnNDExNSthcmc0MTE2K2FyZzQxMTcrYXJnNDExOCthcmc0MTE5K2FyZzQxMjAr
YXJnNDEyMSthcmc0MTIyK2FyZzQxMjMrYXJnNDEyNCthcmc0MTI1K2FyZzQxMjYrYXJnNDEyNyth
cmc0MTI4K2FyZzQxMjkrYXJnNDEzMCthcmc0MTMxK2FyZzQxMzIrYXJnNDEzMythcmc0MTM0K2Fy
ZzQxMzUrYXJnNDEzNithcmc0MTM3K2FyZzQxMzgrYXJnNDEzOSthcmc0MTQwK2FyZzQxNDErYXJn
NDE0Mithcmc0MTQzK2FyZzQxNDQrYXJnNDE0NSthcmc0MTQ2K2FyZzQxNDcrYXJnNDE0OCthcmc0
MTQ5K2FyZzQxNTArYXJnNDE1MSthcmc0MTUyK2FyZzQxNTMrYXJnNDE1NCthcmc0MTU1K2FyZzQx
NTYrYXJnNDE1Nythcmc0MTU4K2FyZzQxNTkrYXJnNDE2MCthcmc0MTYxK2FyZzQxNjIrYXJnNDE2
Mythcmc0MTY0K2FyZzQxNjUrYXJnNDE2Nithcmc0MTY3K2FyZzQxNjgrYXJnNDE2OSthcmc0MTcw
K2FyZzQxNzErYXJnNDE3Mithcmc0MTczK2FyZzQxNzQrYXJnNDE3NSthcmc0MTc2K2FyZzQxNzcr
YXJnNDE3OCthcmc0MTc5K2FyZzQxODArYXJnNDE4MSthcmc0MTgyK2FyZzQxODMrYXJnNDE4NCth
cmc0MTg1K2FyZzQxODYrYXJnNDE4Nythcmc0MTg4K2FyZzQxODkrYXJnNDE5MCthcmc0MTkxK2Fy
ZzQxOTIrYXJnNDE5Mythcmc0MTk0K2FyZzQxOTUrYXJnNDE5Nithcmc0MTk3K2FyZzQxOTgrYXJn
NDE5OSthcmc0MjAwK2FyZzQyMDErYXJnNDIwMithcmc0MjAzK2FyZzQyMDQrYXJnNDIwNSthcmc0
MjA2K2FyZzQyMDcrYXJnNDIwOCthcmc0MjA5K2FyZzQyMTArYXJnNDIxMSthcmc0MjEyK2FyZzQy
MTMrYXJnNDIxNCthcmc0MjE1K2FyZzQyMTYrYXJnNDIxNythcmc0MjE4K2FyZzQyMTkrYXJnNDIy
MCthcmc0MjIxK2FyZzQyMjIrYXJnNDIyMythcmc0MjI0K2FyZzQyMjUrYXJnNDIyNithcmc0MjI3
K2FyZzQyMjgrYXJnNDIyOSthcmc0MjMwK2FyZzQyMzErYXJnNDIzMithcmc0MjMzK2FyZzQyMzQr
YXJnNDIzNSthcmc0MjM2K2FyZzQyMzcrYXJnNDIzOCthcmc0MjM5K2FyZzQyNDArYXJnNDI0MSth
cmc0MjQyK2FyZzQyNDMrYXJnNDI0NCthcmc0MjQ1K2FyZzQyNDYrYXJnNDI0Nythcmc0MjQ4K2Fy
ZzQyNDkrYXJnNDI1MCthcmc0MjUxK2FyZzQyNTIrYXJnNDI1Mythcmc0MjU0K2FyZzQyNTUrYXJn
NDI1Nithcmc0MjU3K2FyZzQyNTgrYXJnNDI1OSthcmc0MjYwK2FyZzQyNjErYXJnNDI2Mithcmc0
MjYzK2FyZzQyNjQrYXJnNDI2NSthcmc0MjY2K2FyZzQyNjcrYXJnNDI2OCthcmc0MjY5K2FyZzQy
NzArYXJnNDI3MSthcmc0MjcyK2FyZzQyNzMrYXJnNDI3NCthcmc0Mjc1K2FyZzQyNzYrYXJnNDI3
Nythcmc0Mjc4K2FyZzQyNzkrYXJnNDI4MCthcmc0MjgxK2FyZzQyODIrYXJnNDI4Mythcmc0Mjg0
K2FyZzQyODUrYXJnNDI4Nithcmc0Mjg3K2FyZzQyODgrYXJnNDI4OSthcmc0MjkwK2FyZzQyOTEr
YXJnNDI5Mithcmc0MjkzK2FyZzQyOTQrYXJnNDI5NSthcmc0Mjk2K2FyZzQyOTcrYXJnNDI5OCth
cmc0Mjk5K2FyZzQzMDArYXJnNDMwMSthcmc0MzAyK2FyZzQzMDMrYXJnNDMwNCthcmc0MzA1K2Fy
ZzQzMDYrYXJnNDMwNythcmc0MzA4K2FyZzQzMDkrYXJnNDMxMCthcmc0MzExK2FyZzQzMTIrYXJn
NDMxMythcmc0MzE0K2FyZzQzMTUrYXJnNDMxNithcmc0MzE3K2FyZzQzMTgrYXJnNDMxOSthcmc0
MzIwK2FyZzQzMjErYXJnNDMyMithcmc0MzIzK2FyZzQzMjQrYXJnNDMyNSthcmc0MzI2K2FyZzQz
MjcrYXJnNDMyOCthcmc0MzI5K2FyZzQzMzArYXJnNDMzMSthcmc0MzMyK2FyZzQzMzMrYXJnNDMz
NCthcmc0MzM1K2FyZzQzMzYrYXJnNDMzNythcmc0MzM4K2FyZzQzMzkrYXJnNDM0MCthcmc0MzQx
K2FyZzQzNDIrYXJnNDM0Mythcmc0MzQ0K2FyZzQzNDUrYXJnNDM0Nithcmc0MzQ3K2FyZzQzNDgr
YXJnNDM0OSthcmc0MzUwK2FyZzQzNTErYXJnNDM1Mithcmc0MzUzK2FyZzQzNTQrYXJnNDM1NSth
cmc0MzU2K2FyZzQzNTcrYXJnNDM1OCthcmc0MzU5K2FyZzQzNjArYXJnNDM2MSthcmc0MzYyK2Fy
ZzQzNjMrYXJnNDM2NCthcmc0MzY1K2FyZzQzNjYrYXJnNDM2Nythcmc0MzY4K2FyZzQzNjkrYXJn
NDM3MCthcmc0MzcxK2FyZzQzNzIrYXJnNDM3Mythcmc0Mzc0K2FyZzQzNzUrYXJnNDM3Nithcmc0
Mzc3K2FyZzQzNzgrYXJnNDM3OSthcmc0MzgwK2FyZzQzODErYXJnNDM4Mithcmc0MzgzK2FyZzQz
ODQrYXJnNDM4NSthcmc0Mzg2K2FyZzQzODcrYXJnNDM4OCthcmc0Mzg5K2FyZzQzOTArYXJnNDM5
MSthcmc0MzkyK2FyZzQzOTMrYXJnNDM5NCthcmc0Mzk1K2FyZzQzOTYrYXJnNDM5Nythcmc0Mzk4
K2FyZzQzOTkrYXJnNDQwMCthcmc0NDAxK2FyZzQ0MDIrYXJnNDQwMythcmc0NDA0K2FyZzQ0MDUr
YXJnNDQwNithcmc0NDA3K2FyZzQ0MDgrYXJnNDQwOSthcmc0NDEwK2FyZzQ0MTErYXJnNDQxMith
cmc0NDEzK2FyZzQ0MTQrYXJnNDQxNSthcmc0NDE2K2FyZzQ0MTcrYXJnNDQxOCthcmc0NDE5K2Fy
ZzQ0MjArYXJnNDQyMSthcmc0NDIyK2FyZzQ0MjMrYXJnNDQyNCthcmc0NDI1K2FyZzQ0MjYrYXJn
NDQyNythcmc0NDI4K2FyZzQ0MjkrYXJnNDQzMCthcmc0NDMxK2FyZzQ0MzIrYXJnNDQzMythcmc0
NDM0K2FyZzQ0MzUrYXJnNDQzNithcmc0NDM3K2FyZzQ0MzgrYXJnNDQzOSthcmc0NDQwK2FyZzQ0
NDErYXJnNDQ0Mithcmc0NDQzK2FyZzQ0NDQrYXJnNDQ0NSthcmc0NDQ2K2FyZzQ0NDcrYXJnNDQ0
OCthcmc0NDQ5K2FyZzQ0NTArYXJnNDQ1MSthcmc0NDUyK2FyZzQ0NTMrYXJnNDQ1NCthcmc0NDU1
K2FyZzQ0NTYrYXJnNDQ1Nythcmc0NDU4K2FyZzQ0NTkrYXJnNDQ2MCthcmc0NDYxK2FyZzQ0NjIr
YXJnNDQ2Mythcmc0NDY0K2FyZzQ0NjUrYXJnNDQ2Nithcmc0NDY3K2FyZzQ0NjgrYXJnNDQ2OSth
cmc0NDcwK2FyZzQ0NzErYXJnNDQ3Mithcmc0NDczK2FyZzQ0NzQrYXJnNDQ3NSthcmc0NDc2K2Fy
ZzQ0NzcrYXJnNDQ3OCthcmc0NDc5K2FyZzQ0ODArYXJnNDQ4MSthcmc0NDgyK2FyZzQ0ODMrYXJn
NDQ4NCthcmc0NDg1K2FyZzQ0ODYrYXJnNDQ4Nythcmc0NDg4K2FyZzQ0ODkrYXJnNDQ5MCthcmc0
NDkxK2FyZzQ0OTIrYXJnNDQ5Mythcmc0NDk0K2FyZzQ0OTUrYXJnNDQ5Nithcmc0NDk3K2FyZzQ0
OTgrYXJnNDQ5OSthcmc0NTAwK2FyZzQ1MDErYXJnNDUwMithcmc0NTAzK2FyZzQ1MDQrYXJnNDUw
NSthcmc0NTA2K2FyZzQ1MDcrYXJnNDUwOCthcmc0NTA5K2FyZzQ1MTArYXJnNDUxMSthcmc0NTEy
K2FyZzQ1MTMrYXJnNDUxNCthcmc0NTE1K2FyZzQ1MTYrYXJnNDUxNythcmc0NTE4K2FyZzQ1MTkr
YXJnNDUyMCthcmc0NTIxK2FyZzQ1MjIrYXJnNDUyMythcmc0NTI0K2FyZzQ1MjUrYXJnNDUyNith
cmc0NTI3K2FyZzQ1MjgrYXJnNDUyOSthcmc0NTMwK2FyZzQ1MzErYXJnNDUzMithcmc0NTMzK2Fy
ZzQ1MzQrYXJnNDUzNSthcmc0NTM2K2FyZzQ1MzcrYXJnNDUzOCthcmc0NTM5K2FyZzQ1NDArYXJn
NDU0MSthcmc0NTQyK2FyZzQ1NDMrYXJnNDU0NCthcmc0NTQ1K2FyZzQ1NDYrYXJnNDU0Nythcmc0
NTQ4K2FyZzQ1NDkrYXJnNDU1MCthcmc0NTUxK2FyZzQ1NTIrYXJnNDU1Mythcmc0NTU0K2FyZzQ1
NTUrYXJnNDU1Nithcmc0NTU3K2FyZzQ1NTgrYXJnNDU1OSthcmc0NTYwK2FyZzQ1NjErYXJnNDU2
Mithcmc0NTYzK2FyZzQ1NjQrYXJnNDU2NSthcmc0NTY2K2FyZzQ1NjcrYXJnNDU2OCthcmc0NTY5
K2FyZzQ1NzArYXJnNDU3MSthcmc0NTcyK2FyZzQ1NzMrYXJnNDU3NCthcmc0NTc1K2FyZzQ1NzYr
YXJnNDU3Nythcmc0NTc4K2FyZzQ1NzkrYXJnNDU4MCthcmc0NTgxK2FyZzQ1ODIrYXJnNDU4Myth
cmc0NTg0K2FyZzQ1ODUrYXJnNDU4Nithcmc0NTg3K2FyZzQ1ODgrYXJnNDU4OSthcmc0NTkwK2Fy
ZzQ1OTErYXJnNDU5Mithcmc0NTkzK2FyZzQ1OTQrYXJnNDU5NSthcmc0NTk2K2FyZzQ1OTcrYXJn
NDU5OCthcmc0NTk5K2FyZzQ2MDArYXJnNDYwMSthcmc0NjAyK2FyZzQ2MDMrYXJnNDYwNCthcmc0
NjA1K2FyZzQ2MDYrYXJnNDYwNythcmc0NjA4K2FyZzQ2MDkrYXJnNDYxMCthcmc0NjExK2FyZzQ2
MTIrYXJnNDYxMythcmc0NjE0K2FyZzQ2MTUrYXJnNDYxNithcmc0NjE3K2FyZzQ2MTgrYXJnNDYx
OSthcmc0NjIwK2FyZzQ2MjErYXJnNDYyMithcmc0NjIzK2FyZzQ2MjQrYXJnNDYyNSthcmc0NjI2
K2FyZzQ2MjcrYXJnNDYyOCthcmc0NjI5K2FyZzQ2MzArYXJnNDYzMSthcmc0NjMyK2FyZzQ2MzMr
YXJnNDYzNCthcmc0NjM1K2FyZzQ2MzYrYXJnNDYzNythcmc0NjM4K2FyZzQ2MzkrYXJnNDY0MCth
cmc0NjQxK2FyZzQ2NDIrYXJnNDY0Mythcmc0NjQ0K2FyZzQ2NDUrYXJnNDY0Nithcmc0NjQ3K2Fy
ZzQ2NDgrYXJnNDY0OSthcmc0NjUwK2FyZzQ2NTErYXJnNDY1Mithcmc0NjUzK2FyZzQ2NTQrYXJn
NDY1NSthcmc0NjU2K2FyZzQ2NTcrYXJnNDY1OCthcmc0NjU5K2FyZzQ2NjArYXJnNDY2MSthcmc0
NjYyK2FyZzQ2NjMrYXJnNDY2NCthcmc0NjY1K2FyZzQ2NjYrYXJnNDY2Nythcmc0NjY4K2FyZzQ2
NjkrYXJnNDY3MCthcmc0NjcxK2FyZzQ2NzIrYXJnNDY3Mythcmc0Njc0K2FyZzQ2NzUrYXJnNDY3
Nithcmc0Njc3K2FyZzQ2NzgrYXJnNDY3OSthcmc0NjgwK2FyZzQ2ODErYXJnNDY4Mithcmc0Njgz
K2FyZzQ2ODQrYXJnNDY4NSthcmc0Njg2K2FyZzQ2ODcrYXJnNDY4OCthcmc0Njg5K2FyZzQ2OTAr
YXJnNDY5MSthcmc0NjkyK2FyZzQ2OTMrYXJnNDY5NCthcmc0Njk1K2FyZzQ2OTYrYXJnNDY5Nyth
cmc0Njk4K2FyZzQ2OTkrYXJnNDcwMCthcmc0NzAxK2FyZzQ3MDIrYXJnNDcwMythcmc0NzA0K2Fy
ZzQ3MDUrYXJnNDcwNithcmc0NzA3K2FyZzQ3MDgrYXJnNDcwOSthcmc0NzEwK2FyZzQ3MTErYXJn
NDcxMithcmc0NzEzK2FyZzQ3MTQrYXJnNDcxNSthcmc0NzE2K2FyZzQ3MTcrYXJnNDcxOCthcmc0
NzE5K2FyZzQ3MjArYXJnNDcyMSthcmc0NzIyK2FyZzQ3MjMrYXJnNDcyNCthcmc0NzI1K2FyZzQ3
MjYrYXJnNDcyNythcmc0NzI4K2FyZzQ3MjkrYXJnNDczMCthcmc0NzMxK2FyZzQ3MzIrYXJnNDcz
Mythcmc0NzM0K2FyZzQ3MzUrYXJnNDczNithcmc0NzM3K2FyZzQ3MzgrYXJnNDczOSthcmc0NzQw
K2FyZzQ3NDErYXJnNDc0Mithcmc0NzQzK2FyZzQ3NDQrYXJnNDc0NSthcmc0NzQ2K2FyZzQ3NDcr
YXJnNDc0OCthcmc0NzQ5K2FyZzQ3NTArYXJnNDc1MSthcmc0NzUyK2FyZzQ3NTMrYXJnNDc1NCth
cmc0NzU1K2FyZzQ3NTYrYXJnNDc1Nythcmc0NzU4K2FyZzQ3NTkrYXJnNDc2MCthcmc0NzYxK2Fy
ZzQ3NjIrYXJnNDc2Mythcmc0NzY0K2FyZzQ3NjUrYXJnNDc2Nithcmc0NzY3K2FyZzQ3NjgrYXJn
NDc2OSthcmc0NzcwK2FyZzQ3NzErYXJnNDc3Mithcmc0NzczK2FyZzQ3NzQrYXJnNDc3NSthcmc0
Nzc2K2FyZzQ3NzcrYXJnNDc3OCthcmc0Nzc5K2FyZzQ3ODArYXJnNDc4MSthcmc0NzgyK2FyZzQ3
ODMrYXJnNDc4NCthcmc0Nzg1K2FyZzQ3ODYrYXJnNDc4Nythcmc0Nzg4K2FyZzQ3ODkrYXJnNDc5
MCthcmc0NzkxK2FyZzQ3OTIrYXJnNDc5Mythcmc0Nzk0K2FyZzQ3OTUrYXJnNDc5Nithcmc0Nzk3
K2FyZzQ3OTgrYXJnNDc5OSthcmc0ODAwK2FyZzQ4MDErYXJnNDgwMithcmc0ODAzK2FyZzQ4MDQr
YXJnNDgwNSthcmc0ODA2K2FyZzQ4MDcrYXJnNDgwOCthcmc0ODA5K2FyZzQ4MTArYXJnNDgxMSth
cmc0ODEyK2FyZzQ4MTMrYXJnNDgxNCthcmc0ODE1K2FyZzQ4MTYrYXJnNDgxNythcmc0ODE4K2Fy
ZzQ4MTkrYXJnNDgyMCthcmc0ODIxK2FyZzQ4MjIrYXJnNDgyMythcmc0ODI0K2FyZzQ4MjUrYXJn
NDgyNithcmc0ODI3K2FyZzQ4MjgrYXJnNDgyOSthcmc0ODMwK2FyZzQ4MzErYXJnNDgzMithcmc0
ODMzK2FyZzQ4MzQrYXJnNDgzNSthcmc0ODM2K2FyZzQ4MzcrYXJnNDgzOCthcmc0ODM5K2FyZzQ4
NDArYXJnNDg0MSthcmc0ODQyK2FyZzQ4NDMrYXJnNDg0NCthcmc0ODQ1K2FyZzQ4NDYrYXJnNDg0
Nythcmc0ODQ4K2FyZzQ4NDkrYXJnNDg1MCthcmc0ODUxK2FyZzQ4NTIrYXJnNDg1Mythcmc0ODU0
K2FyZzQ4NTUrYXJnNDg1Nithcmc0ODU3K2FyZzQ4NTgrYXJnNDg1OSthcmc0ODYwK2FyZzQ4NjEr
YXJnNDg2Mithcmc0ODYzK2FyZzQ4NjQrYXJnNDg2NSthcmc0ODY2K2FyZzQ4NjcrYXJnNDg2OCth
cmc0ODY5K2FyZzQ4NzArYXJnNDg3MSthcmc0ODcyK2FyZzQ4NzMrYXJnNDg3NCthcmc0ODc1K2Fy
ZzQ4NzYrYXJnNDg3Nythcmc0ODc4K2FyZzQ4NzkrYXJnNDg4MCthcmc0ODgxK2FyZzQ4ODIrYXJn
NDg4Mythcmc0ODg0K2FyZzQ4ODUrYXJnNDg4Nithcmc0ODg3K2FyZzQ4ODgrYXJnNDg4OSthcmc0
ODkwK2FyZzQ4OTErYXJnNDg5Mithcmc0ODkzK2FyZzQ4OTQrYXJnNDg5NSthcmc0ODk2K2FyZzQ4
OTcrYXJnNDg5OCthcmc0ODk5K2FyZzQ5MDArYXJnNDkwMSthcmc0OTAyK2FyZzQ5MDMrYXJnNDkw
NCthcmc0OTA1K2FyZzQ5MDYrYXJnNDkwNythcmc0OTA4K2FyZzQ5MDkrYXJnNDkxMCthcmc0OTEx
K2FyZzQ5MTIrYXJnNDkxMythcmc0OTE0K2FyZzQ5MTUrYXJnNDkxNithcmc0OTE3K2FyZzQ5MTgr
YXJnNDkxOSthcmc0OTIwK2FyZzQ5MjErYXJnNDkyMithcmc0OTIzK2FyZzQ5MjQrYXJnNDkyNSth
cmc0OTI2K2FyZzQ5MjcrYXJnNDkyOCthcmc0OTI5K2FyZzQ5MzArYXJnNDkzMSthcmc0OTMyK2Fy
ZzQ5MzMrYXJnNDkzNCthcmc0OTM1K2FyZzQ5MzYrYXJnNDkzNythcmc0OTM4K2FyZzQ5MzkrYXJn
NDk0MCthcmc0OTQxK2FyZzQ5NDIrYXJnNDk0Mythcmc0OTQ0K2FyZzQ5NDUrYXJnNDk0Nithcmc0
OTQ3K2FyZzQ5NDgrYXJnNDk0OSthcmc0OTUwK2FyZzQ5NTErYXJnNDk1Mithcmc0OTUzK2FyZzQ5
NTQrYXJnNDk1NSthcmc0OTU2K2FyZzQ5NTcrYXJnNDk1OCthcmc0OTU5K2FyZzQ5NjArYXJnNDk2
MSthcmc0OTYyK2FyZzQ5NjMrYXJnNDk2NCthcmc0OTY1K2FyZzQ5NjYrYXJnNDk2Nythcmc0OTY4
K2FyZzQ5NjkrYXJnNDk3MCthcmc0OTcxK2FyZzQ5NzIrYXJnNDk3Mythcmc0OTc0K2FyZzQ5NzUr
YXJnNDk3Nithcmc0OTc3K2FyZzQ5NzgrYXJnNDk3OSthcmc0OTgwK2FyZzQ5ODErYXJnNDk4Mith
cmc0OTgzK2FyZzQ5ODQrYXJnNDk4NSthcmc0OTg2K2FyZzQ5ODcrYXJnNDk4OCthcmc0OTg5K2Fy
ZzQ5OTArYXJnNDk5MSthcmc0OTkyK2FyZzQ5OTMrYXJnNDk5NCthcmc0OTk1K2FyZzQ5OTYrYXJn
NDk5Nythcmc0OTk4K2FyZzQ5OTk7fQogdm9pZCB0ZXN0Q2FsbEZ1bmN0aW9uV2l0aEhlbGxhQXJn
dW1lbnRzMygpCiB7CkBAIC0yMTU1LDkgKzIxNTUsOSBAQCBzdHJ1Y3QgSW50UHRyUGFpciB7CiAg
ICAgaW50cHRyX3QgYjsKIH07CiBleHRlcm4gIkMiIHsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKHNpbXBsZVBhaXJGdW5jdGlv
biwgSW50UHRyUGFpciwgKGludCwgaW50KSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChzaW1wbGVQYWlyRnVuY3Rpb24sIEludFB0clBhaXIs
IChpbnQsIGludCkpOwogfQotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKHNpbXBs
ZVBhaXJGdW5jdGlvbiwgSW50UHRyUGFpciwgKGludCBhLCBpbnQgYikpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04oc2ltcGxlUGFpckZ1bmN0aW9uLCBJbnRQdHJQYWlyLCAoaW50IGEsIGludCBi
KSkKIHsKICAgICByZXR1cm4geyBhIC0gYiwgYSAqIGIgfTsKIH0KQEAgLTIyNDIsOSArMjI0Miw5
IEBAIHZvaWQgdGVzdFJldHVybkZsb2F0KGZsb2F0IHZhbHVlKQogfQogCiBleHRlcm4gIkMiIHsK
LXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lO
VEVSTkFMKHNpbXBsZUZ1bmN0aW9uRG91YmxlLCBkb3VibGUsIChkb3VibGUgYSwgZG91YmxlIGIp
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFM
KHNpbXBsZUZ1bmN0aW9uRG91YmxlLCBkb3VibGUsIChkb3VibGUgYSwgZG91YmxlIGIpKTsKIH0K
LUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihzaW1wbGVGdW5jdGlvbkRvdWJsZSwg
ZG91YmxlLCAoZG91YmxlIGEsIGRvdWJsZSBiKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihz
aW1wbGVGdW5jdGlvbkRvdWJsZSwgZG91YmxlLCAoZG91YmxlIGEsIGRvdWJsZSBiKSkKIHsKICAg
ICByZXR1cm4gYSArIGI7CiB9CkBAIC0yMjY1LDkgKzIyNjUsOSBAQCB2b2lkIHRlc3RDYWxsU2lt
cGxlRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgYikKIH0KIAogZXh0ZXJuICJDIiB7Ci1zdGF0aWMg
SlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChz
aW1wbGVGdW5jdGlvbkZsb2F0LCBmbG9hdCwgKGZsb2F0IGEsIGZsb2F0IGIpKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKHNpbXBsZUZ1bmN0
aW9uRmxvYXQsIGZsb2F0LCAoZmxvYXQgYSwgZmxvYXQgYikpOwogfQotSlNDX0RFRklORV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OKHNpbXBsZUZ1bmN0aW9uRmxvYXQsIGZsb2F0LCAoZmxvYXQgYSwg
ZmxvYXQgYikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oc2ltcGxlRnVuY3Rpb25GbG9hdCwg
ZmxvYXQsIChmbG9hdCBhLCBmbG9hdCBiKSkKIHsKICAgICByZXR1cm4gYSArIGI7CiB9CkBAIC0y
Mjk0LDkgKzIyOTQsOSBAQCB2b2lkIHRlc3RDYWxsU2ltcGxlRmxvYXQoZmxvYXQgYSwgZmxvYXQg
YikKIH0KIAogZXh0ZXJuICJDIiB7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09Q
RVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChmdW5jdGlvbldpdGhIZWxsYURvdWJsZUFyZ3Vt
ZW50cywgZG91YmxlLCAoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQsIGRv
dWJsZSBlLCBkb3VibGUgZiwgZG91YmxlIGcsIGRvdWJsZSBoLCBkb3VibGUgaSwgZG91YmxlIGos
IGRvdWJsZSBrLCBkb3VibGUgbCwgZG91YmxlIG0sIGRvdWJsZSBuLCBkb3VibGUgbywgZG91Ymxl
IHAsIGRvdWJsZSBxLCBkb3VibGUgciwgZG91YmxlIHMsIGRvdWJsZSB0LCBkb3VibGUgdSwgZG91
YmxlIHYsIGRvdWJsZSB3LCBkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6KSk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChmdW5jdGlvbldp
dGhIZWxsYURvdWJsZUFyZ3VtZW50cywgZG91YmxlLCAoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3Vi
bGUgYywgZG91YmxlIGQsIGRvdWJsZSBlLCBkb3VibGUgZiwgZG91YmxlIGcsIGRvdWJsZSBoLCBk
b3VibGUgaSwgZG91YmxlIGosIGRvdWJsZSBrLCBkb3VibGUgbCwgZG91YmxlIG0sIGRvdWJsZSBu
LCBkb3VibGUgbywgZG91YmxlIHAsIGRvdWJsZSBxLCBkb3VibGUgciwgZG91YmxlIHMsIGRvdWJs
ZSB0LCBkb3VibGUgdSwgZG91YmxlIHYsIGRvdWJsZSB3LCBkb3VibGUgeCwgZG91YmxlIHksIGRv
dWJsZSB6KSk7CiB9Ci1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oZnVuY3Rpb25X
aXRoSGVsbGFEb3VibGVBcmd1bWVudHMsIGRvdWJsZSwgKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91
YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgZSwgZG91YmxlIGYsIGRvdWJsZSBnLCBkb3VibGUgaCwg
ZG91YmxlIGksIGRvdWJsZSBqLCBkb3VibGUgaywgZG91YmxlIGwsIGRvdWJsZSBtLCBkb3VibGUg
biwgZG91YmxlIG8sIGRvdWJsZSBwLCBkb3VibGUgcSwgZG91YmxlIHIsIGRvdWJsZSBzLCBkb3Vi
bGUgdCwgZG91YmxlIHUsIGRvdWJsZSB2LCBkb3VibGUgdywgZG91YmxlIHgsIGRvdWJsZSB5LCBk
b3VibGUgeikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oZnVuY3Rpb25XaXRoSGVsbGFEb3Vi
bGVBcmd1bWVudHMsIGRvdWJsZSwgKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJs
ZSBkLCBkb3VibGUgZSwgZG91YmxlIGYsIGRvdWJsZSBnLCBkb3VibGUgaCwgZG91YmxlIGksIGRv
dWJsZSBqLCBkb3VibGUgaywgZG91YmxlIGwsIGRvdWJsZSBtLCBkb3VibGUgbiwgZG91YmxlIG8s
IGRvdWJsZSBwLCBkb3VibGUgcSwgZG91YmxlIHIsIGRvdWJsZSBzLCBkb3VibGUgdCwgZG91Ymxl
IHUsIGRvdWJsZSB2LCBkb3VibGUgdywgZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeikpCiB7
CiAgICAgcmV0dXJuIGEgKiBwb3coMiwgMCkgKyBiICogcG93KDIsIDEpICsgYyAqIHBvdygyLCAy
KSArIGQgKiBwb3coMiwgMykgKyBlICogcG93KDIsIDQpICsgZiAqIHBvdygyLCA1KSArIGcgKiBw
b3coMiwgNikgKyBoICogcG93KDIsIDcpICsgaSAqIHBvdygyLCA4KSArIGogKiBwb3coMiwgOSkg
KyBrICogcG93KDIsIDEwKSArIGwgKiBwb3coMiwgMTEpICsgbSAqIHBvdygyLCAxMikgKyBuICog
cG93KDIsIDEzKSArIG8gKiBwb3coMiwgMTQpICsgcCAqIHBvdygyLCAxNSkgKyBxICogcG93KDIs
IDE2KSArIHIgKiBwb3coMiwgMTcpICsgcyAqIHBvdygyLCAxOCkgKyB0ICogcG93KDIsIDE5KSAr
IHUgKiBwb3coMiwgMjApICsgdiAqIHBvdygyLCAyMSkgKyB3ICogcG93KDIsIDIyKSArIHggKiBw
b3coMiwgMjMpICsgeSAqIHBvdygyLCAyNCkgKyB6ICogcG93KDIsIDI1KTsKIH0KQEAgLTIzMjEs
OSArMjMyMSw5IEBAIHZvaWQgdGVzdENhbGxGdW5jdGlvbldpdGhIZWxsYURvdWJsZUFyZ3VtZW50
cygpCiB9CiAKIGV4dGVybiAiQyIgewotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9P
UEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwoZnVuY3Rpb25XaXRoSGVsbGFGbG9hdEFyZ3Vt
ZW50cywgZmxvYXQsIChmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBjLCBmbG9hdCBkLCBmbG9hdCBl
LCBmbG9hdCBmLCBmbG9hdCBnLCBmbG9hdCBoLCBmbG9hdCBpLCBmbG9hdCBqLCBmbG9hdCBrLCBm
bG9hdCBsLCBmbG9hdCBtLCBmbG9hdCBuLCBmbG9hdCBvLCBmbG9hdCBwLCBmbG9hdCBxLCBmbG9h
dCByLCBmbG9hdCBzLCBmbG9hdCB0LCBmbG9hdCB1LCBmbG9hdCB2LCBmbG9hdCB3LCBmbG9hdCB4
LCBmbG9hdCB5LCBmbG9hdCB6KSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTl9X
SVRIT1VUX1dURl9JTlRFUk5BTChmdW5jdGlvbldpdGhIZWxsYUZsb2F0QXJndW1lbnRzLCBmbG9h
dCwgKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IGMsIGZsb2F0IGQsIGZsb2F0IGUsIGZsb2F0IGYs
IGZsb2F0IGcsIGZsb2F0IGgsIGZsb2F0IGksIGZsb2F0IGosIGZsb2F0IGssIGZsb2F0IGwsIGZs
b2F0IG0sIGZsb2F0IG4sIGZsb2F0IG8sIGZsb2F0IHAsIGZsb2F0IHEsIGZsb2F0IHIsIGZsb2F0
IHMsIGZsb2F0IHQsIGZsb2F0IHUsIGZsb2F0IHYsIGZsb2F0IHcsIGZsb2F0IHgsIGZsb2F0IHks
IGZsb2F0IHopKTsKIH0KLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihmdW5jdGlv
bldpdGhIZWxsYUZsb2F0QXJndW1lbnRzLCBmbG9hdCwgKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0
IGMsIGZsb2F0IGQsIGZsb2F0IGUsIGZsb2F0IGYsIGZsb2F0IGcsIGZsb2F0IGgsIGZsb2F0IGks
IGZsb2F0IGosIGZsb2F0IGssIGZsb2F0IGwsIGZsb2F0IG0sIGZsb2F0IG4sIGZsb2F0IG8sIGZs
b2F0IHAsIGZsb2F0IHEsIGZsb2F0IHIsIGZsb2F0IHMsIGZsb2F0IHQsIGZsb2F0IHUsIGZsb2F0
IHYsIGZsb2F0IHcsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKGZ1bmN0aW9uV2l0aEhlbGxhRmxvYXRBcmd1bWVudHMsIGZsb2F0LCAoZmxvYXQg
YSwgZmxvYXQgYiwgZmxvYXQgYywgZmxvYXQgZCwgZmxvYXQgZSwgZmxvYXQgZiwgZmxvYXQgZywg
ZmxvYXQgaCwgZmxvYXQgaSwgZmxvYXQgaiwgZmxvYXQgaywgZmxvYXQgbCwgZmxvYXQgbSwgZmxv
YXQgbiwgZmxvYXQgbywgZmxvYXQgcCwgZmxvYXQgcSwgZmxvYXQgciwgZmxvYXQgcywgZmxvYXQg
dCwgZmxvYXQgdSwgZmxvYXQgdiwgZmxvYXQgdywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikp
CiB7CiAgICAgcmV0dXJuIGEgKiBwb3coMiwgMCkgKyBiICogcG93KDIsIDEpICsgYyAqIHBvdygy
LCAyKSArIGQgKiBwb3coMiwgMykgKyBlICogcG93KDIsIDQpICsgZiAqIHBvdygyLCA1KSArIGcg
KiBwb3coMiwgNikgKyBoICogcG93KDIsIDcpICsgaSAqIHBvdygyLCA4KSArIGogKiBwb3coMiwg
OSkgKyBrICogcG93KDIsIDEwKSArIGwgKiBwb3coMiwgMTEpICsgbSAqIHBvdygyLCAxMikgKyBu
ICogcG93KDIsIDEzKSArIG8gKiBwb3coMiwgMTQpICsgcCAqIHBvdygyLCAxNSkgKyBxICogcG93
KDIsIDE2KSArIHIgKiBwb3coMiwgMTcpICsgcyAqIHBvdygyLCAxOCkgKyB0ICogcG93KDIsIDE5
KSArIHUgKiBwb3coMiwgMjApICsgdiAqIHBvdygyLCAyMSkgKyB3ICogcG93KDIsIDIyKSArIHgg
KiBwb3coMiwgMjMpICsgeSAqIHBvdygyLCAyNCkgKyB6ICogcG93KDIsIDI1KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfNi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvdGVzdGIzXzYuY3BwCmluZGV4IGNiYjhjMmNmY2JlNC4uZDRjYThlMWYz
ZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzYuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfNi5jcHAKQEAgLTE2MTMsOCArMTYx
Myw4IEBAIHZvaWQgdGVzdExhdGVSZWdpc3RlcigpCiAgICAgQ0hFQ0soaW52b2tlPHVpbnQ2NF90
PigqY29kZSkgPT0gcmVzdWx0KTsKIH0KIAotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJB
VElPTihpbnRlcnByZXRlclByaW50LCB2b2lkLCAoVmVjdG9yPGludHB0cl90Piogc3RyZWFtLCBp
bnRwdHJfdCB2YWx1ZSkpOwotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKGludGVy
cHJldGVyUHJpbnQsIHZvaWQsIChWZWN0b3I8aW50cHRyX3Q+KiBzdHJlYW0sIGludHB0cl90IHZh
bHVlKSkKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04oaW50ZXJwcmV0ZXJQcmludCwgdm9pZCwg
KFZlY3RvcjxpbnRwdHJfdD4qIHN0cmVhbSwgaW50cHRyX3QgdmFsdWUpKTsKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihpbnRlcnByZXRlclByaW50LCB2b2lkLCAoVmVjdG9yPGludHB0cl90Piog
c3RyZWFtLCBpbnRwdHJfdCB2YWx1ZSkpCiB7CiAgICAgc3RyZWFtLT5hcHBlbmQodmFsdWUpOwog
fQpAQCAtMjg0MCw5ICsyODQwLDkgQEAgdm9pZCB0ZXN0TW92ZUNvbnN0YW50cygpCiB9CiAKIGV4
dGVybiAiQyIgewotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT05fV0lU
SE9VVF9XVEZfSU5URVJOQUwodGVzdE1vdmVDb25zdGFudHNXaXRoTGFyZ2VPZmZzZXRzRnVuYywg
ZG91YmxlLCAoZG91YmxlKSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTl9XSVRI
T1VUX1dURl9JTlRFUk5BTCh0ZXN0TW92ZUNvbnN0YW50c1dpdGhMYXJnZU9mZnNldHNGdW5jLCBk
b3VibGUsIChkb3VibGUpKTsKIH0KLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTih0
ZXN0TW92ZUNvbnN0YW50c1dpdGhMYXJnZU9mZnNldHNGdW5jLCBkb3VibGUsIChkb3VibGUgYSkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04odGVzdE1vdmVDb25zdGFudHNXaXRoTGFyZ2VPZmZz
ZXRzRnVuYywgZG91YmxlLCAoZG91YmxlIGEpKQogewogICAgIHJldHVybiBhOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM183LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy90ZXN0YjNfNy5jcHAKaW5kZXggYzliZjRjODllZTZlLi45MmM1ZTBlZDA5
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfNy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM183LmNwcApAQCAtNTg3LDE4ICs1ODcs
MTggQEAgdm9pZCBnZW5lcmF0ZUxvb3BOb3RCYWNrd2FyZHNEb21pbmFudChQcm9jZWR1cmUmIHBy
b2MsIHN0ZDo6YXJyYXk8aW50LCAxMDA+JiBhcnIKIH0KIAogZXh0ZXJuICJDIiB7Ci1zdGF0aWMg
SlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChv
bmVGdW5jdGlvbiwgaW50LCAoaW50KiBjYWxsQ291bnQpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9uZUZ1bmN0aW9uLCBpbnQsIChpbnQq
IGNhbGxDb3VudCkpOwogfQotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9uZUZ1
bmN0aW9uLCBpbnQsIChpbnQqIGNhbGxDb3VudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b25lRnVuY3Rpb24sIGludCwgKGludCogY2FsbENvdW50KSkKIHsKICAgICAoKmNhbGxDb3VudCkr
KzsKICAgICByZXR1cm4gMTsKIH0KIAogZXh0ZXJuICJDIiB7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVf
Tk9FWENFUFRfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChub09wRnVuY3Rpb24s
IHZvaWQsICgpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RG
X0lOVEVSTkFMKG5vT3BGdW5jdGlvbiwgdm9pZCwgKCkpOwogfQotSlNDX0RFRklORV9OT0VYQ0VQ
VF9KSVRfT1BFUkFUSU9OKG5vT3BGdW5jdGlvbiwgdm9pZCwgKCkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04obm9PcEZ1bmN0aW9uLCB2b2lkLCAoKSkKIHsKIH0KIApAQCAtMTQxNSw5ICsxNDE1
LDkgQEAgdm9pZCB0ZXN0RmxvYXRFcXVhbE9yVW5vcmRlcmVkRG9udEZvbGQoKQogfQogCiBleHRl
cm4gIkMiIHsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhP
VVRfV1RGX0lOVEVSTkFMKGZ1bmN0aW9uTmluZUFyZ3MsIHZvaWQsIChpbnQzMl90LCB2b2lkKiwg
dm9pZCosIHZvaWQqLCB2b2lkKiwgdm9pZCosIHZvaWQqLCB2b2lkKiwgdm9pZCopKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKGZ1bmN0aW9u
TmluZUFyZ3MsIHZvaWQsIChpbnQzMl90LCB2b2lkKiwgdm9pZCosIHZvaWQqLCB2b2lkKiwgdm9p
ZCosIHZvaWQqLCB2b2lkKiwgdm9pZCopKTsKIH0KLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09Q
RVJBVElPTihmdW5jdGlvbk5pbmVBcmdzLCB2b2lkLCAoaW50MzJfdCwgdm9pZCosIHZvaWQqLCB2
b2lkKiwgdm9pZCosIHZvaWQqLCB2b2lkKiwgdm9pZCosIHZvaWQqKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihmdW5jdGlvbk5pbmVBcmdzLCB2b2lkLCAoaW50MzJfdCwgdm9pZCosIHZvaWQq
LCB2b2lkKiwgdm9pZCosIHZvaWQqLCB2b2lkKiwgdm9pZCosIHZvaWQqKSkKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaApp
bmRleCA5ZTJmNzE0ZGVhMmYuLjA0ODUzYzdiMzhmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVyLmgKQEAgLTI3MSw3ICsyNzEsNyBA
QCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgdmVyaWZ5RWRnZShOb2RlKiwgRWRnZSk7CiAgICAg
dm9pZCB2ZXJpZnlFZGdlcyhOb2RlKik7Ci0gICAgdm9pZCBleGVjdXRlRG91YmxlVW5hcnlPcEVm
ZmVjdHMoTm9kZSosIGNvbnN0IGF1dG8mIGZ1bmN0b3IpOworICAgIHZvaWQgZXhlY3V0ZURvdWJs
ZVVuYXJ5T3BFZmZlY3RzKE5vZGUqLCBkb3VibGUoKmVxdWl2YWxlbnRGdW5jdGlvbikoZG91Ymxl
KSk7CiAgICAgCiAgICAgYm9vbCBoYW5kbGVDb25zdGFudERpdk9wKE5vZGUqKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5s
aW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCmluZGV4IDJiNTQ5MmQzM2E0Yi4uOGIwOWRlYjRhMDU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5s
aW5lcy5oCkBAIC0xNDUwLDcgKzE0NTAsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJz
dHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAg
IH0KICAgICAgICAgICAgIAogICAgIGNhc2UgQXJpdGhTcXJ0OgotICAgICAgICBleGVjdXRlRG91
YmxlVW5hcnlPcEVmZmVjdHMobm9kZSwgW10oZG91YmxlIHZhbHVlKSAtPiBkb3VibGUgeyByZXR1
cm4gc3FydCh2YWx1ZSk7IH0pOworICAgICAgICBleGVjdXRlRG91YmxlVW5hcnlPcEVmZmVjdHMo
bm9kZSwgc3FydCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBBcml0aEZSb3VuZDoKQEAg
LTU1MDQsNyArNTUwNCw3IEBAIEZpbHRyYXRpb25SZXN1bHQgQWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHlwZT46OmZpbHRlckNsYXNzSW5mbygKIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgQWJzdHJhY3RTdGF0ZVR5cGU+Ci12b2lkIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RT
dGF0ZVR5cGU+OjpleGVjdXRlRG91YmxlVW5hcnlPcEVmZmVjdHMoTm9kZSogbm9kZSwgY29uc3Qg
YXV0byYgZXF1aXZhbGVudEZ1bmN0aW9uKQordm9pZCBBYnN0cmFjdEludGVycHJldGVyPEFic3Ry
YWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZURvdWJsZVVuYXJ5T3BFZmZlY3RzKE5vZGUqIG5vZGUsIGRv
dWJsZSgqZXF1aXZhbGVudEZ1bmN0aW9uKShkb3VibGUpKQogewogICAgIEpTVmFsdWUgY2hpbGQg
PSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwogICAgIGlmIChzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4gbnVtYmVyID0gY2hpbGQudG9OdW1iZXJGcm9tUHJpbWl0aXZlKCkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJpdGhNb2RlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyaXRoTW9kZS5oCmluZGV4IGYzNTBjNmJkYjFmMS4uZjUw
ZDc1M2QzMmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyaXRo
TW9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJpdGhNb2RlLmgKQEAg
LTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiTWF0aENvbW1vbi5oIgot
I2luY2x1ZGUgIk9wZXJhdGlvblJlc3VsdC5oIgogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKQEAg
LTYzLDcgKzYyLDcgQEAgZW51bSBjbGFzcyBVbmFyeVR5cGUgOiB1aW50MzJfdCB7CiB9OwogCiB1
c2luZyBVbmFyeUZ1bmN0aW9uID0gZG91YmxlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyopKGRv
dWJsZSk7Ci11c2luZyBVbmFyeU9wZXJhdGlvbiA9IE9wZXJhdGlvblJldHVyblR5cGU8ZG91Ymxl
PihKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlKTsKK3VzaW5nIFVuYXJ5T3BlcmF0aW9uID0gZG91YmxlKEpJVF9PUEVSQVRJT05fQVRUUklC
VVRFUyopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpOwogCiB9IC8vIG5hbWVzcGFj
ZSBBcml0aAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5
aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJy
YXlpZnlTbG93UGF0aEdlbmVyYXRvci5oCmluZGV4IGVlMDI4MzAyM2U1NC4uYjA0ZjQyMDkyOGQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5aWZ5U2xvd1Bh
dGhHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5aWZ5
U2xvd1BhdGhHZW5lcmF0b3IuaApAQCAtMTE0LDYgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IH0KICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9wbGFucy5zaXplKCk7IGktLTspCiAgICAg
ICAgICAgICBqaXQtPnNpbGVudEZpbGwobV9wbGFuc1tpXSk7CisgICAgICAgIGppdC0+ZXhjZXB0
aW9uQ2hlY2soKTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX29wID09IEFycmF5aWZ5VG9TdHJ1
Y3R1cmUpIHsKICAgICAgICAgICAgIEFTU0VSVChtX3N0cnVjdHVyZS5nZXQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDc3YTk4
M2E1MDI3My4uNDc0ZmM3ZWFhODA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtNDQyMCw3ICs0NDIwLDYgQEAgYm9vbCBCeXRlQ29k
ZVBhcnNlcjo6aGFuZGxlRE9NSklUR2V0dGVyKE9wZXJhbmQgcmVzdWx0LCBjb25zdCBHZXRCeVZh
cmlhbnQmIHZhcmkKICAgICBDYWxsRE9NR2V0dGVyRGF0YSogY2FsbERPTUdldHRlckRhdGEgPSBt
X2dyYXBoLm1fY2FsbERPTUdldHRlckRhdGEuYWRkKCk7CiAgICAgY2FsbERPTUdldHRlckRhdGEt
PmN1c3RvbUFjY2Vzc29yR2V0dGVyID0gdmFyaWFudC5jdXN0b21BY2Nlc3NvckdldHRlcigpOwog
ICAgIEFTU0VSVChjYWxsRE9NR2V0dGVyRGF0YS0+Y3VzdG9tQWNjZXNzb3JHZXR0ZXIpOwotICAg
IC8vIEpJVE9wZXJhdGlvbkxpc3Q6OmFzc2VydElzSklUT3BlcmF0aW9uKGNhbGxET01HZXR0ZXJE
YXRhLT5jdXN0b21BY2Nlc3NvckdldHRlcik7CiAgICAgY2FsbERPTUdldHRlckRhdGEtPnJlcXVp
cmVkQ2xhc3NJbmZvID0gZG9tQXR0cmlidXRlLT5jbGFzc0luZm87CiAKICAgICBpZiAoY29uc3Qg
YXV0byogZG9tSklUID0gZG9tQXR0cmlidXRlLT5kb21KSVQpIHsKQEAgLTUyMjIsNyArNTIyMSw3
IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5SWQoCiAjZW5kaWYKICAgICB9CiAK
LSAgICAvLyBTcGVjaWFsIHBhdGggZm9yIGN1c3RvbSBhY2Nlc3NvcnMgc2luY2UgY3VzdG9tJ3Mg
b2Zmc2V0IGRvZXMgbm90IGhhdmUgYW55IG1lYW5pbmcuCisgICAgLy8gU3BlY2lhbCBwYXRoIGZv
ciBjdXN0b20gYWNjZXNzb3JzIHNpbmNlIGN1c3RvbSdzIG9mZnNldCBkb2VzIG5vdCBoYXZlIGFu
eSBtZWFuaW5ncy4KICAgICAvLyBTbywgdGhpcyBpcyBjb21wbGV0ZWx5IGRpZmZlcmVudCBmcm9t
IFNpbXBsZSBvbmUuIEJ1dCB3ZSBoYXZlIGEgY2hhbmNlIHRvIG9wdGltaXplIGl0IHdoZW4gd2Ug
dXNlIERPTUpJVC4KICAgICBpZiAoaXM2NEJpdCgpKSB7CiAgICAgICAgIGlmIChnZXRCeVN0YXR1
cy5udW1WYXJpYW50cygpID09IDEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3Iu
aAppbmRleCBmY2NhYmY3NmI5M2EuLmQ4MzgxZGQ0NTNiNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xv
d1BhdGhHZW5lcmF0b3IuaApAQCAtNjAsNiArNjAsNyBAQCBwcml2YXRlOgogICAgICAgICBqaXQt
PmNhbGxPcGVyYXRpb24obV9mdW5jdGlvbiwgbV9yZXN1bHRHUFIsIFNwZWN1bGF0aXZlSklUOjpU
cnVzdGVkSW1tUHRyKCZqaXQtPnZtKCkpLCBtX3N0cnVjdHVyZSwgbV9zaXplLCBtX3N0b3JhZ2VH
UFIpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX3BsYW5zLnNpemUoKTsgaS0tOykKICAg
ICAgICAgICAgIGppdC0+c2lsZW50RmlsbChtX3BsYW5zW2ldKTsKKyAgICAgICAgaml0LT5leGNl
cHRpb25DaGVjaygpOwogICAgICAgICBqaXQtPmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MobV9yZXN1bHRHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlPZmZzZXQoKSksIG1fc3RvcmFnZUdQ
Uik7CiAgICAgICAgIGp1bXBUbyhqaXQpOwogICAgIH0KQEAgLTEwOSw2ICsxMTAsNyBAQCBwcml2
YXRlOgogICAgICAgICBqaXQtPmNhbGxPcGVyYXRpb24obV9mdW5jdGlvbiwgbV9yZXN1bHRHUFIs
IG1fZ2xvYmFsT2JqZWN0LCBzY3JhdGNoR1BSLCBtX3NpemVHUFIsIG1fc3RvcmFnZUdQUik7CiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1fcGxhbnMuc2l6ZSgpOyBpLS07KQogICAgICAgICAg
ICAgaml0LT5zaWxlbnRGaWxsKG1fcGxhbnNbaV0pOworICAgICAgICBqaXQtPmV4Y2VwdGlvbkNo
ZWNrKCk7CiAgICAgICAgIGp1bXBUbyhqaXQpOwogICAgIH0KIApAQCAtMTQ4LDYgKzE1MCw3IEBA
IHByaXZhdGU6CiAgICAgICAgIGppdC0+Y2FsbE9wZXJhdGlvbihtX2Z1bmN0aW9uLCBtX3Jlc3Vs
dEdQUiwgbV9nbG9iYWxPYmplY3QsIG1fc3RydWN0dXJlR1BSLCBtX3NpemVHUFIsIG1fc3RvcmFn
ZUdQUik7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1fcGxhbnMuc2l6ZSgpOyBpLS07KQog
ICAgICAgICAgICAgaml0LT5zaWxlbnRGaWxsKG1fcGxhbnNbaV0pOworICAgICAgICBqaXQtPmV4
Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGp1bXBUbyhqaXQpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYWxsQ3JlYXRlRGlyZWN0QXJndW1lbnRz
U2xvd1BhdGhHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FsbENy
ZWF0ZURpcmVjdEFyZ3VtZW50c1Nsb3dQYXRoR2VuZXJhdG9yLmgKaW5kZXggNjYyNmZkZTYyOTNk
Li4xYWNjMDZmNjc2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Nsb3dQYXRoR2VuZXJhdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYWxsQ3JlYXRlRGlyZWN0QXJndW1lbnRzU2xvd1BhdGhH
ZW5lcmF0b3IuaApAQCAtNjEsNiArNjEsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgb3BlcmF0
aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzLCBtX3Jlc3VsdEdQUiwgU3BlY3VsYXRpdmVKSVQ6OlRy
dXN0ZWRJbW1QdHIoJmppdC0+dm0oKSksIG1fc3RydWN0dXJlLCBtX2xlbmd0aEdQUiwgbV9taW5D
YXBhY2l0eSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1fcGxhbnMuc2l6ZSgpOyBpLS07
KQogICAgICAgICAgICAgaml0LT5zaWxlbnRGaWxsKG1fcGxhbnNbaV0pOworICAgICAgICBqaXQt
PmV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGppdC0+bG9hZFB0cigKICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKG1fcmVzdWx0R1BSLCBEaXJlY3RBcmd1bWVudHM6Om9mZnNl
dE9mTGVuZ3RoKCkpLCBtX2xlbmd0aEdQUik7CiAgICAgICAgIGp1bXBUbyhqaXQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCmluZGV4IGU5M2Q4OWYyODg5Ni4u
YWZkYzUwMGViZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VENvbXBpbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxl
ci5oCkBAIC0xNDEsMjcgKzE0MSwxOCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgLy8gQWRkIGEg
Y2FsbCBvdXQgZnJvbSBKSVQgY29kZSwgd2l0aG91dCBhbiBleGNlcHRpb24gY2hlY2suCi0gICAg
dGVtcGxhdGU8UHRyVGFnIHRhZz4KLSAgICByZXF1aXJlcyAodGFnICE9IE5vUHRyVGFnKQotICAg
IENhbGwgYXBwZW5kQ2FsbChjb25zdCBDb2RlUHRyPHRhZz4gZnVuY3Rpb24pCisgICAgQ2FsbCBh
cHBlbmRDYWxsKGNvbnN0IENvZGVQdHI8Q0Z1bmN0aW9uUHRyVGFnPiBmdW5jdGlvbikKICAgICB7
CiAgICAgICAgIENhbGwgZnVuY3Rpb25DYWxsID0gY2FsbChPcGVyYXRpb25QdHJUYWcpOwotICAg
ICAgICAvLyBGSVhNRTogSWYgd2UgaGFkIEN1c3RvbUdldHRlcnMgaW4gSklUT3BlcmF0aW9uTGlz
dCB3ZSBjb3VsZCBqdXN0IGNhbGwgcmV0YWdnZWQgb24gYWxsCi0gICAgICAgIC8vIGNvZGUgcGF0
aHMgYnV0IHNpbmNlIHdlIGRvbid0IHJlZ2lzdGVyIHRoZW0gcmV0YWdnaW5nIHRyaWdnZXJzIGFu
IEFTU0VSVC4KLSAgICAgICAgaWYgY29uc3RleHByICh0YWcgPT0gT3BlcmF0aW9uUHRyVGFnKQot
ICAgICAgICAgICAgbV9jYWxscy5hcHBlbmQoQ2FsbExpbmtSZWNvcmQoZnVuY3Rpb25DYWxsLCBm
dW5jdGlvbikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2NhbGxzLmFwcGVuZChDYWxs
TGlua1JlY29yZChmdW5jdGlvbkNhbGwsIGZ1bmN0aW9uLnRlbXBsYXRlIHJldGFnZ2VkPE9wZXJh
dGlvblB0clRhZz4oKSkpOworICAgICAgICBtX2NhbGxzLmFwcGVuZChDYWxsTGlua1JlY29yZChm
dW5jdGlvbkNhbGwsIGZ1bmN0aW9uLnJldGFnZ2VkPE9wZXJhdGlvblB0clRhZz4oKSkpOwogICAg
ICAgICByZXR1cm4gZnVuY3Rpb25DYWxsOwogICAgIH0KIAogI2lmIE9TKFdJTkRPV1MpICYmIENQ
VShYODZfNjQpCi0gICAgdGVtcGxhdGU8UHRyVGFnIHRhZz4KLSAgICByZXF1aXJlcyAodGFnICE9
IE5vUHRyVGFnKQotICAgIEpJVENvbXBpbGVyOjpDYWxsIGFwcGVuZENhbGxXaXRoVUdQUlBhaXIo
Y29uc3QgQ29kZVB0cjx0YWc+IGZ1bmN0aW9uKQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGFwcGVu
ZENhbGxXaXRoVUdQUlBhaXIoY29uc3QgQ29kZVB0cjxDRnVuY3Rpb25QdHJUYWc+IGZ1bmN0aW9u
KQogICAgIHsKICAgICAgICAgQ2FsbCBmdW5jdGlvbkNhbGwgPSBjYWxsV2l0aFVHUFJQYWlyKE9w
ZXJhdGlvblB0clRhZyk7Ci0gICAgICAgIG1fY2FsbHMuYXBwZW5kKENhbGxMaW5rUmVjb3JkKGZ1
bmN0aW9uQ2FsbCwgZnVuY3Rpb24udGVtcGxhdGUgcmV0YWdnZWQ8T3BlcmF0aW9uUHRyVGFnPigp
KSk7CisgICAgICAgIG1fY2FsbHMuYXBwZW5kKENhbGxMaW5rUmVjb3JkKGZ1bmN0aW9uQ2FsbCwg
ZnVuY3Rpb24ucmV0YWdnZWQ8T3BlcmF0aW9uUHRyVGFnPigpKSk7CiAgICAgICAgIHJldHVybiBm
dW5jdGlvbkNhbGw7CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0LmNwcAppbmRleCBiMGM1NjQ1NzVhYjAuLmE4NjQzNWVjZmQ3MyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBP
U1JFeGl0OjplbWl0UmVzdG9yZUFyZ3VtZW50cyhDQ2FsbEhlbHBlcnMmIGppdCwgVk0mIHZtLCBj
b25zdCBPcGVyYW5kczxWYWwKICAgICB9CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db21waWxlT1NSRXhpdCwgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZy
YW1lLCB2b2lkKiBidWZmZXJUb1ByZXNlcnZlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21waWxlT1NSRXhpdCwgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCB2b2lk
KiBidWZmZXJUb1ByZXNlcnZlKSkKIHsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0
ZWRWTSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIy
MCw3ICsyMjAsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29tcGlsZU9TUkV4aXQsIHZvaWQsIChDYWxsRnJhbWUqIGNhbAogCiBJR05PUkVfV0FSTklOR1Nf
QkVHSU4oImZyYW1lLWFkZHJlc3MiKQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTWF0ZXJpYWxpemVPU1JFeGl0U2lkZVN0YXRlLCB2b2lkLCAoVk0qIHZtUG9p
bnRlciwgY29uc3QgT1NSRXhpdEJhc2UqIGV4aXRQb2ludGVyLCBFbmNvZGVkSlNWYWx1ZSogdG1w
U2NyYXRjaCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0ZXJpYWxpemVP
U1JFeGl0U2lkZVN0YXRlLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgY29uc3QgT1NSRXhpdEJhc2Uq
IGV4aXRQb2ludGVyLCBFbmNvZGVkSlNWYWx1ZSogdG1wU2NyYXRjaCkpCiB7CiAgICAgY29uc3Qg
T1NSRXhpdEJhc2UmIGV4aXQgPSAqZXhpdFBvaW50ZXI7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRl
cjsKQEAgLTg3MSw3ICs4NzEsNyBAQCB2b2lkIE9TUkV4aXQ6OmNvbXBpbGVFeGl0KENDYWxsSGVs
cGVycyYgaml0LCBWTSYgdm0sIGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0CiAgICAgYWRqdXN0
QW5kSnVtcFRvVGFyZ2V0KHZtLCBqaXQsIGV4aXQpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBU
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVidWdQcmludFNwZWN1bGF0aW9uRmFpbHVyZSwgdm9p
ZCwgKFByb2JlOjpDb250ZXh0JiBjb250ZXh0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25EZWJ1Z1ByaW50U3BlY3VsYXRpb25GYWlsdXJlLCB2b2lkLCAoUHJvYmU6OkNvbnRl
eHQmIGNvbnRleHQpKQogewogICAgIGF1dG8qIGRlYnVnSW5mbyA9IGNvbnRleHQuYXJnPFNwZWN1
bGF0aW9uRmFpbHVyZURlYnVnSW5mbyo+KCk7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBk
ZWJ1Z0luZm8tPmNvZGVCbG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgK
aW5kZXggNjY4M2M4MjU0NTA2Li5iZjcwNDMwMDUwNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdC5oCkBAIC0xMDMsOSArMTAzLDkgQEAgcHJpdmF0ZToKICAgICBTcGVjdWxh
dGlvblJlY292ZXJ5VHlwZSBtX3R5cGU7CiB9OwogCi1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVPU1JFeGl0LCB2b2lkLCAoQ2FsbEZyYW1lKiwgdm9p
ZCopKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVidWdQ
cmludFNwZWN1bGF0aW9uRmFpbHVyZSwgdm9pZCwgKFByb2JlOjpDb250ZXh0JikpOwotSlNDX0RF
Q0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRlcmlhbGl6ZU9TUkV4aXRT
aWRlU3RhdGUsIHZvaWQsIChWTSosIGNvbnN0IE9TUkV4aXRCYXNlKiwgRW5jb2RlZEpTVmFsdWUq
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVPU1JFeGl0LCB2
b2lkLCAoQ2FsbEZyYW1lKiwgdm9pZCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRGVidWdQcmludFNwZWN1bGF0aW9uRmFpbHVyZSwgdm9pZCwgKFByb2JlOjpDb250ZXh0
JikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRlcmlhbGl6ZU9TUkV4
aXRTaWRlU3RhdGUsIHZvaWQsIChWTSosIGNvbnN0IE9TUkV4aXRCYXNlKiwgRW5jb2RlZEpTVmFs
dWUqKSk7CiAKIC8vID09PSBPU1JFeGl0ID09PQogLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IGExZGJjMWQ1ZTJlZS4uYWIyNzNhYjBiMTY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLTIwMjQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMjMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODEs
OSArMTgxLDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvVGhpcywgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRPcCkudG9UaGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnNsb3BweSgp
KSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRP
cCkudG9UaGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnNsb3BweSgpKSk7CiB9CiAKIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub1RoaXNTdHJpY3QsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
KSkKQEAgLTE5MSw5ICsxOTAsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
VG9UaGlzU3RyaWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KgogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9k
ZTo6c3RyaWN0KCkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9wKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkpKTsK
IH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdEtleXMsIEpTQXJy
YXkqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9iamVjdCkpCkBAIC0yMDQsOSArMjAyLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk9iamVjdEtleXMsIEpTQXJyYXkqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU09iamVjdCog
b2JqZWN0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3QpLnRvT2JqZWN0KGdsb2JhbE9i
amVjdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIp
OworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgIHNjb3BlLnJl
bGVhc2UoKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBvd25Qcm9wZXJ0eUtleXMoZ2xv
YmFsT2JqZWN0LCBvYmplY3QsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIERvbnRFbnVtUHJv
cGVydGllc01vZGU6OkV4Y2x1ZGUpKTsKKyAgICByZXR1cm4gb3duUHJvcGVydHlLZXlzKGdsb2Jh
bE9iamVjdCwgb2JqZWN0LCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBEb250RW51bVByb3Bl
cnRpZXNNb2RlOjpFeGNsdWRlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk9iamVjdEtleXNPYmplY3QsIEpTQXJyYXkqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNPYmplY3QqIG9iamVjdCkpCkBAIC0yMTQsOCArMjEyLDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdEtleXNPYmplY3QsIEpTQXJyYXkqLCAoSlNHbG9i
YWxPYmplY3QqIGcKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihz
Y29wZSwgb3duUHJvcGVydHlLZXlzKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBQcm9wZXJ0eU5hbWVN
b2RlOjpTdHJpbmdzLCBEb250RW51bVByb3BlcnRpZXNNb2RlOjpFeGNsdWRlKSk7CisgICAgcmV0
dXJuIG93blByb3BlcnR5S2V5cyhnbG9iYWxPYmplY3QsIG9iamVjdCwgUHJvcGVydHlOYW1lTW9k
ZTo6U3RyaW5ncywgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6RXhjbHVkZSk7CiB9CiAKIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVzLCBK
U0FycmF5KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPYmplY3QpKQpAQCAtMjI2LDkgKzIyMyw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25PYmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVzLCBKU0FycmF5KiwgKEpTR2xvYmFs
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNPYmpl
Y3QqIG9iamVjdCA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT2JqZWN0KS50b09iamVjdChnbG9i
YWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxs
cHRyKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICBzY29w
ZS5yZWxlYXNlKCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgb3duUHJvcGVydHlLZXlz
KGdsb2JhbE9iamVjdCwgb2JqZWN0LCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBEb250RW51
bVByb3BlcnRpZXNNb2RlOjpJbmNsdWRlKSk7CisgICAgcmV0dXJuIG93blByb3BlcnR5S2V5cyhn
bG9iYWxPYmplY3QsIG9iamVjdCwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgRG9udEVudW1Q
cm9wZXJ0aWVzTW9kZTo6SW5jbHVkZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25PYmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVzT2JqZWN0LCBKU0FycmF5KiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QpKQpAQCAtMjM2LDggKzIz
Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RHZXRPd25Qcm9w
ZXJ0eU5hbWVzT2JqZWN0LCBKU0FycmF5KiwgKEpTCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIG93blByb3BlcnR5S2V5cyhnbG9iYWxPYmplY3QsIG9i
amVjdCwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6
SW5jbHVkZSkpOworICAgIHJldHVybiBvd25Qcm9wZXJ0eUtleXMoZ2xvYmFsT2JqZWN0LCBvYmpl
Y3QsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIERvbnRFbnVtUHJvcGVydGllc01vZGU6Oklu
Y2x1ZGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0R2V0
T3duUHJvcGVydHlTeW1ib2xzLCBKU0FycmF5KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPYmplY3QpKQpAQCAtMjQ4LDkgKzI0NCw5IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RHZXRPd25Qcm9wZXJ0eVN5bWJv
bHMsIEpTQXJyYXkqLCAoSlNHbG9iCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCiAgICAgSlNPYmplY3QqIG9iamVjdCA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
T2JqZWN0KS50b09iamVjdChnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBudWxscHRyKTsKICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihz
Y29wZSwgb3duUHJvcGVydHlLZXlzKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBQcm9wZXJ0eU5hbWVN
b2RlOjpTeW1ib2xzLCBEb250RW51bVByb3BlcnRpZXNNb2RlOjpJbmNsdWRlKSk7CisgICAgcmV0
dXJuIG93blByb3BlcnR5S2V5cyhnbG9iYWxPYmplY3QsIG9iamVjdCwgUHJvcGVydHlOYW1lTW9k
ZTo6U3ltYm9scywgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6SW5jbHVkZSk7CiB9CiAKIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RHZXRPd25Qcm9wZXJ0eVN5bWJvbHNP
YmplY3QsIEpTQXJyYXkqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IG9iamVjdCkpCkBAIC0yNTgsOCArMjU0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk9iamVjdEdldE93blByb3BlcnR5U3ltYm9sc09iamVjdCwgSlNBcnJheSosICgKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgb3duUHJvcGVy
dHlLZXlzKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBQcm9wZXJ0eU5hbWVNb2RlOjpTeW1ib2xzLCBE
b250RW51bVByb3BlcnRpZXNNb2RlOjpJbmNsdWRlKSk7CisgICAgcmV0dXJuIG93blByb3BlcnR5
S2V5cyhnbG9iYWxPYmplY3QsIG9iamVjdCwgUHJvcGVydHlOYW1lTW9kZTo6U3ltYm9scywgRG9u
dEVudW1Qcm9wZXJ0aWVzTW9kZTo6SW5jbHVkZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25PYmplY3RDcmVhdGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvdG90eXBlKSkKQEAgLTI3MywxMiAr
MjY4LDEyIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RDcmVhdGUs
IEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAKICAgICBpZiAoIXByb3RvdHlwZS5p
c09iamVjdCgpICYmICFwcm90b3R5cGUuaXNOdWxsKCkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiT2JqZWN0IHByb3RvdHlwZSBtYXkgb25seSBiZSBh
biBPYmplY3Qgb3IgbnVsbC4iX3MpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBu
dWxscHRyKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYgKHByb3Rv
dHlwZS5pc09iamVjdCgpKQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBjb25zdHJ1
Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGFzT2JqZWN0KHByb3RvdHlwZSkpKTsKLSAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCBjb25zdHJ1Y3RFbXB0eU9iamVjdCh2bSwgZ2xvYmFsT2Jq
ZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkpKTsKKyAgICAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGFzT2Jq
ZWN0KHByb3RvdHlwZSkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGNvbnN0cnVj
dEVtcHR5T2JqZWN0KHZtLCBnbG9iYWxPYmplY3QtPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1
cmUoKSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0Q3Jl
YXRlT2JqZWN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmpl
Y3QqIHByb3RvdHlwZSkpCkBAIC0yODYsOCArMjgxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk9iamVjdENyZWF0ZU9iamVjdCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KgogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBjb25z
dHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIHByb3RvdHlwZSkpOworICAgIHJldHVybiBj
b25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIHByb3RvdHlwZSk7CiB9CiAKIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RBc3NpZ25PYmplY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogdGFyZ2V0LCBKU09iamVjdCog
c291cmNlKSkKQEAgLTMwMiw3ICsyOTYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uT2JqZWN0QXNzaWduT2JqZWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAg
ICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciB2YWx1ZXM7CiAgICAgICAgIGlmICghc291cmNlLT5z
dGF0aWNQcm9wZXJ0aWVzUmVpZmllZCgpKSB7CiAgICAgICAgICAgICBzb3VyY2UtPnJlaWZ5QWxs
U3RhdGljUHJvcGVydGllcyhnbG9iYWxPYmplY3QpOwotICAgICAgICAgICAgT1BFUkFUSU9OX1JF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgdm9pZCgpKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIHxzb3VyY2V8IFN0cnVj
dHVyZSBkb2VzIG5vdCBoYXZlIGFueSBnZXR0ZXJzLiBBbmQgdGFyZ2V0IGNhbiBwZXJmb3JtIGZh
c3QgcHV0LgpAQCAtMzE3LDE0ICszMTEsMTMgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk9iamVjdEFzc2lnbk9iamVjdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KIAog
ICAgICAgICAvLyBEbyBub3QgY2xlYXIgc2luY2UgVmVjdG9yOjpjbGVhciBzaHJpbmtzIHRoZSBi
YWNraW5nIHN0b3JlLgogICAgICAgICBib29sIG9iamVjdEFzc2lnbkZhc3RTdWNjZWVkZWQgPSBv
YmplY3RBc3NpZ25GYXN0KGdsb2JhbE9iamVjdCwgdGFyZ2V0T2JqZWN0LCBzb3VyY2UsIHByb3Bl
cnRpZXMsIHZhbHVlcyk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICAg
ICAgaWYgKG9iamVjdEFzc2lnbkZhc3RTdWNjZWVkZWQpCi0gICAgICAgICAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlKTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBzY29wZS5y
ZWxlYXNlKCk7CiAgICAgb2JqZWN0QXNzaWduR2VuZXJpYyhnbG9iYWxPYmplY3QsIHZtLCB0YXJn
ZXQsIHNvdXJjZSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RBc3NpZ25VbnR5cGVkLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRhcmdldCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFNvdXJjZSkpCkBAIC0zMzYsMjcgKzMyOSwyNiBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0QXNzaWduVW50eXBlZCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbAogCiAgICAgSlNWYWx1ZSBzb3VyY2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkU291cmNlKTsKICAgICBpZiAoc291cmNlVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKLSAg
ICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CisgICAgICAgIHJldHVybjsKICAgICBKU09i
amVjdCogc291cmNlID0gc291cmNlVmFsdWUudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKLSAgICBP
UEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgdm9pZCgpKTsKIAogICAgIGlmIChhdXRvKiB0YXJnZXRPYmplY3QgPSBqc0R5
bmFtaWNDYXN0PEpTRmluYWxPYmplY3QqPih0YXJnZXQpOyB0YXJnZXRPYmplY3QgJiYgdGFyZ2V0
T2JqZWN0LT5jYW5QZXJmb3JtRmFzdFB1dElubGluZUV4Y2x1ZGluZ1Byb3RvKCkgJiYgdGFyZ2V0
T2JqZWN0LT5pc1N0cnVjdHVyZUV4dGVuc2libGUoKSkgewogICAgICAgICBpZiAoIXNvdXJjZS0+
c3RhdGljUHJvcGVydGllc1JlaWZpZWQoKSkgewogICAgICAgICAgICAgc291cmNlLT5yZWlmeUFs
bFN0YXRpY1Byb3BlcnRpZXMoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgICAgIE9QRVJBVElPTl9S
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHZvaWQoKSk7CiAgICAgICAgIH0KIAogICAgICAgICBWZWN0b3I8UmVmUHRyPFVu
aXF1ZWRTdHJpbmdJbXBsPiwgOD4gcHJvcGVydGllczsKICAgICAgICAgTWFya2VkQXJndW1lbnRC
dWZmZXIgdmFsdWVzOwogICAgICAgICBib29sIG9iamVjdEFzc2lnbkZhc3RTdWNjZWVkZWQgPSBv
YmplY3RBc3NpZ25GYXN0KGdsb2JhbE9iamVjdCwgdGFyZ2V0T2JqZWN0LCBzb3VyY2UsIHByb3Bl
cnRpZXMsIHZhbHVlcyk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICAg
ICAgaWYgKG9iamVjdEFzc2lnbkZhc3RTdWNjZWVkZWQpCi0gICAgICAgICAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlKTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBzY29wZS5y
ZWxlYXNlKCk7CiAgICAgb2JqZWN0QXNzaWduR2VuZXJpYyhnbG9iYWxPYmplY3QsIHZtLCB0YXJn
ZXQsIHNvdXJjZSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RUb1N0cmluZ1VudHlwZWQsIEpTU3RyaW5n
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCkBAIC0zNjQsMTAgKzM1Niw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25PYmplY3RUb1N0cmluZ1VudHlwZWQsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqCiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkp
OwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIG9iamVjdFByb3RvdHlwZVRvU3RyaW5nKGds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlKSk7CisgICAgcmV0dXJuIG9iamVjdFByb3RvdHlwZVRvU3Ry
aW5nKGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk9iamVjdFRvU3RyaW5nT2JqZWN0U2xvdywgSlNTdHJpbmcqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCkpCkBAIC0zNzUsMTAgKzM2
Niw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RUb1N0cmluZ09i
amVjdFNsb3csIEpTU3RyaW5nKiwgKEpTR2xvYmFsCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBKU1ZhbHVlKG9iamVjdCkudG9UaGlzKGdsb2JhbE9iamVj
dCwgRUNNQU1vZGU6OnN0cmljdCgpKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBvYmpl
Y3RQcm90b3R5cGVUb1N0cmluZyhnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSkpOworICAgIHJldHVy
biBvYmplY3RQcm90b3R5cGVUb1N0cmluZyhnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSk7CiB9CiAK
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWZsZWN0T3duS2V5cywgSlNBcnJh
eSosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T2JqZWN0KSkKQEAgLTM5MSwxMSArMzgxLDExIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25SZWZsZWN0T3duS2V5cywgSlNBcnJheSosIChKU0dsb2JhbE9iamVjdCogZ2xvCiAg
ICAgSlNPYmplY3QqIG9iamVjdCA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT2JqZWN0KS5nZXRP
YmplY3QoKTsKICAgICBpZiAoVU5MSUtFTFkoIW9iamVjdCkpIHsKICAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgUmVmbGVjdE93bktleXNOb25PYmplY3RBcmd1bWVu
dEVycm9yKTsKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgbnVsbHB0cik7CisgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCBvd25Qcm9wZXJ0eUtleXMoZ2xvYmFsT2JqZWN0LCBvYmpl
Y3QsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1ib2xzLCBEb250RW51bVByb3BlcnRp
ZXNNb2RlOjpJbmNsdWRlKSk7CisgICAgcmV0dXJuIG93blByb3BlcnR5S2V5cyhnbG9iYWxPYmpl
Y3QsIG9iamVjdCwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5nc0FuZFN5bWJvbHMsIERvbnRFbnVt
UHJvcGVydGllc01vZGU6OkluY2x1ZGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUmVmbGVjdE93bktleXNPYmplY3QsIEpTQXJyYXkqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCkpCkBAIC00MDMsOCArMzkzLDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZmxlY3RPd25LZXlzT2JqZWN0LCBKU0Fy
cmF5KiwgKEpTR2xvYmFsT2JqZWMKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
LSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgT1BFUkFUSU9O
X1JFVFVSTihzY29wZSwgb3duUHJvcGVydHlLZXlzKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBQcm9w
ZXJ0eU5hbWVNb2RlOjpTdHJpbmdzQW5kU3ltYm9scywgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6
SW5jbHVkZSkpOworICAgIHJldHVybiBvd25Qcm9wZXJ0eUtleXMoZ2xvYmFsT2JqZWN0LCBvYmpl
Y3QsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1ib2xzLCBEb250RW51bVByb3BlcnRp
ZXNNb2RlOjpJbmNsdWRlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNyZWF0ZVRoaXMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09i
amVjdCogY29uc3RydWN0b3IsIHVpbnQzMl90IGlubGluZUNhcGFjaXR5KSkKQEAgLTQxNCwzMiAr
NDAzLDI5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVUaGlzLCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBpZiAoY29uc3RydWN0b3ItPnR5cGUoKSA9
PSBKU0Z1bmN0aW9uVHlwZSAmJiBqc0Nhc3Q8SlNGdW5jdGlvbio+KGNvbnN0cnVjdG9yKS0+Y2Fu
VXNlQWxsb2NhdGlvblByb2ZpbGUoKSkgewotICAgICAgICBKU09iamVjdCogcmVzdWx0OwotICAg
ICAgICB7Ci0gICAgICAgICAgICBEZWZlclRlcm1pbmF0aW9uIGRlZmVyU2NvcGUodm0pOwotICAg
ICAgICAgICAgYXV0byByYXJlRGF0YSA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oY29uc3RydWN0b3Ip
LT5lbnN1cmVSYXJlRGF0YUFuZEFsbG9jYXRpb25Qcm9maWxlKGdsb2JhbE9iamVjdCwgaW5saW5l
Q2FwYWNpdHkpOwotICAgICAgICAgICAgc2NvcGUucmVsZWFzZUFzc2VydE5vRXhjZXB0aW9uKCk7
Ci0gICAgICAgICAgICBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZVdpdGhQcm90b3R5cGUqIGFsbG9j
YXRpb25Qcm9maWxlID0gcmFyZURhdGEtPm9iamVjdEFsbG9jYXRpb25Qcm9maWxlKCk7Ci0gICAg
ICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGFsbG9jYXRpb25Qcm9maWxlLT5zdHJ1Y3R1
cmUoKTsKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdCh2bSwg
c3RydWN0dXJlKTsKLSAgICAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPmhhc1BvbHlQcm90bygpKSB7
Ci0gICAgICAgICAgICAgICAgSlNPYmplY3QqIHByb3RvdHlwZSA9IGFsbG9jYXRpb25Qcm9maWxl
LT5wcm90b3R5cGUoKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQocHJvdG90eXBlID09IGpzQ2Fz
dDxKU0Z1bmN0aW9uKj4oY29uc3RydWN0b3IpLT5wcm90b3R5cGVGb3JDb25zdHJ1Y3Rpb24odm0s
IGdsb2JhbE9iamVjdCkpOwotICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0T2Zmc2V0
KHZtLCBrbm93blBvbHlQcm90b09mZnNldCwgcHJvdG90eXBlKTsKLSAgICAgICAgICAgICAgICBw
cm90b3R5cGUtPmRpZEJlY29tZVByb3RvdHlwZSh2bSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJU
X1dJVEhfTUVTU0FHRSghaGFzSW5kZXhlZFByb3BlcnRpZXMocmVzdWx0LT5pbmRleGluZ1R5cGUo
KSksICJXZSByZWx5IG9uIEpTRmluYWxPYmplY3Qgbm90IHN0YXJ0aW5nIG91dCB3aXRoIGFuIGlu
ZGV4aW5nIHR5cGUgb3RoZXJ3aXNlIHdlIHdvdWxkIHBvdGVudGlhbGx5IG5lZWQgdG8gY29udmVy
dCB0byBzbG93IHB1dCBzdG9yYWdlIik7Ci0gICAgICAgICAgICB9CisgICAgICAgIERlZmVyVGVy
bWluYXRpb24gZGVmZXJTY29wZSh2bSk7CisgICAgICAgIGF1dG8gcmFyZURhdGEgPSBqc0Nhc3Q8
SlNGdW5jdGlvbio+KGNvbnN0cnVjdG9yKS0+ZW5zdXJlUmFyZURhdGFBbmRBbGxvY2F0aW9uUHJv
ZmlsZShnbG9iYWxPYmplY3QsIGlubGluZUNhcGFjaXR5KTsKKyAgICAgICAgc2NvcGUucmVsZWFz
ZUFzc2VydE5vRXhjZXB0aW9uKCk7CisgICAgICAgIE9iamVjdEFsbG9jYXRpb25Qcm9maWxlV2l0
aFByb3RvdHlwZSogYWxsb2NhdGlvblByb2ZpbGUgPSByYXJlRGF0YS0+b2JqZWN0QWxsb2NhdGlv
blByb2ZpbGUoKTsKKyAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBhbGxvY2F0aW9uUHJv
ZmlsZS0+c3RydWN0dXJlKCk7CisgICAgICAgIEpTT2JqZWN0KiByZXN1bHQgPSBjb25zdHJ1Y3RF
bXB0eU9iamVjdCh2bSwgc3RydWN0dXJlKTsKKyAgICAgICAgaWYgKHN0cnVjdHVyZS0+aGFzUG9s
eVByb3RvKCkpIHsKKyAgICAgICAgICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSBhbGxvY2F0aW9u
UHJvZmlsZS0+cHJvdG90eXBlKCk7CisgICAgICAgICAgICBBU1NFUlQocHJvdG90eXBlID09IGpz
Q2FzdDxKU0Z1bmN0aW9uKj4oY29uc3RydWN0b3IpLT5wcm90b3R5cGVGb3JDb25zdHJ1Y3Rpb24o
dm0sIGdsb2JhbE9iamVjdCkpOworICAgICAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RPZmZzZXQo
dm0sIGtub3duUG9seVByb3RvT2Zmc2V0LCBwcm90b3R5cGUpOworICAgICAgICAgICAgcHJvdG90
eXBlLT5kaWRCZWNvbWVQcm90b3R5cGUodm0pOworICAgICAgICAgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRSghaGFzSW5kZXhlZFByb3BlcnRpZXMocmVzdWx0LT5pbmRleGluZ1R5cGUoKSksICJXZSBy
ZWx5IG9uIEpTRmluYWxPYmplY3Qgbm90IHN0YXJ0aW5nIG91dCB3aXRoIGFuIGluZGV4aW5nIHR5
cGUgb3RoZXJ3aXNlIHdlIHdvdWxkIHBvdGVudGlhbGx5IG5lZWQgdG8gY29udmVydCB0byBzbG93
IHB1dCBzdG9yYWdlIik7CiAgICAgICAgIH0KLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29w
ZSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKICAgICBKU1ZhbHVl
IHByb3RvID0gY29uc3RydWN0b3ItPmdldChnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMt
PnByb3RvdHlwZSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51
bGxwdHIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgIGlm
IChwcm90by5pc09iamVjdCgpKQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBjb25z
dHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGFzT2JqZWN0KHByb3RvKSkpOworICAgICAg
ICByZXR1cm4gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LCBhc09iamVjdChwcm90
bykpOwogICAgIEpTR2xvYmFsT2JqZWN0KiBmdW5jdGlvbkdsb2JhbE9iamVjdCA9IGdldEZ1bmN0
aW9uUmVhbG0oZ2xvYmFsT2JqZWN0LCBjb25zdHJ1Y3Rvcik7Ci0gICAgT1BFUkFUSU9OX1JFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2Nv
cGUsIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGZ1bmN0aW9uR2xvYmFsT2JqZWN0KSk7CisgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisgICAgcmV0dXJuIGNvbnN0cnVjdEVt
cHR5T2JqZWN0KGZ1bmN0aW9uR2xvYmFsT2JqZWN0KTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVByb21pc2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU09iamVjdCogY29uc3RydWN0b3IpKQpAQCAtNDQ5LDggKzQzNSw4IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVQcm9taXNlLCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19HRVRfREVS
SVZFRF9TVFJVQ1RVUkUodm0sIHByb21pc2VTdHJ1Y3R1cmUsIGNvbnN0cnVjdG9yLCBnbG9iYWxP
YmplY3QtPnByb21pc2VDb25zdHJ1Y3RvcigpKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNQ
cm9taXNlOjpjcmVhdGUodm0sIHN0cnVjdHVyZSkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIG51bGxwdHIpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNQcm9taXNl
OjpjcmVhdGUodm0sIHN0cnVjdHVyZSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ3JlYXRlSW50ZXJuYWxQcm9taXNlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGNvbnN0cnVjdG9yKSkKQEAgLTQ2MCw4ICs0NDYsOCBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlSW50ZXJuYWxQcm9taXNl
LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplYwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VUX0RF
UklWRURfU1RSVUNUVVJFKHZtLCBpbnRlcm5hbFByb21pc2VTdHJ1Y3R1cmUsIGNvbnN0cnVjdG9y
LCBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yKCkpOwotICAgIE9QRVJB
VElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlLCBKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUpKTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIHN0cnVjdHVyZSkp
OwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlR2VuZXJhdG9y
LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGNvbnN0
cnVjdG9yKSkKQEAgLTQ3MSw4ICs0NTcsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ3JlYXRlR2VuZXJhdG9yLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAg
IEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVy
ZShnbG9iYWxPYmplY3QsIGNvbnN0cnVjdG9yLCBnbG9iYWxPYmplY3QtPmdlbmVyYXRvclN0cnVj
dHVyZSgpKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0
cik7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNHZW5lcmF0b3I6OmNyZWF0ZSh2bSwg
c3RydWN0dXJlKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Cisg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU0dlbmVyYXRvcjo6Y3JlYXRlKHZtLCBzdHJ1
Y3R1cmUpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUFz
eW5jR2VuZXJhdG9yLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNP
YmplY3QqIGNvbnN0cnVjdG9yKSkKQEAgLTQ4Miw4ICs0NjgsOCBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQXN5bmNHZW5lcmF0b3IsIEpTQ2VsbCosIChKU0dsb2Jh
bE9iamVjdAogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJj
bGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIGNvbnN0cnVjdG9yLCBnbG9iYWxPYmplY3QtPmFz
eW5jR2VuZXJhdG9yU3RydWN0dXJlKCkpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU0FzeW5j
R2VuZXJhdG9yOjpjcmVhdGUodm0sIHN0cnVjdHVyZSkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIG51bGxwdHIpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNBc3lu
Y0dlbmVyYXRvcjo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUpKTsKIH0KIAogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxPYmplY3RDb25zdHJ1Y3RvciwgSlNDZWxsKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUYXJnZXQpKQpA
QCAtNDkxLDE0ICs0NzcsMTMgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNh
bGxPYmplY3RDb25zdHJ1Y3RvciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWMKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRU
YXJnZXQpOwogICAgIEFTU0VSVCghdmFsdWUuaXNPYmplY3QoKSk7CiAKICAgICBpZiAodmFsdWUu
aXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgY29u
c3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3Rv
dHlwZSgpKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgdmFsdWUudG9PYmplY3QoZ2xv
YmFsT2JqZWN0KSk7CisgICAgICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxP
YmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpOworICAgIHJldHVybiB2YWx1
ZS50b09iamVjdChnbG9iYWxPYmplY3QpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVG9PYmplY3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGFyZ2V0LCBVbmlxdWVkU3RyaW5nSW1wbCogZXJyb3JN
ZXNzYWdlKSkKQEAgLTUxNCwxMSArNDk5LDExIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Ub09iamVjdCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAg
ICAgaWYgKFVOTElLRUxZKHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpKSB7CiAgICAgICAgIGlm
IChlcnJvck1lc3NhZ2UgJiYgZXJyb3JNZXNzYWdlLT5sZW5ndGgoKSkgewogICAgICAgICAgICAg
dGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBlcnJvck1lc3NhZ2UpOwotICAg
ICAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgbnVsbHB0cik7CisgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KIAotICAgIE9QRVJBVElPTl9SRVRVUk4o
c2NvcGUsIHZhbHVlLnRvT2JqZWN0KGdsb2JhbE9iamVjdCkpOworICAgIFJFTEVBU0VfQU5EX1JF
VFVSTihzY29wZSwgdmFsdWUudG9PYmplY3QoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZU1vZCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKQEAgLTUyNiw5ICs1MTEsOCBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVNb2QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqIGdsbwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1JlbWFpbmRlcihnbG9iYWxPYmplY3QsIEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkT3AxKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpKSkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNSZW1haW5kZXIoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSkpOwogfQog
CiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5jLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcCkp
CkBAIC01MzYsOSArNTIwLDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklu
YywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUo
anNJbmMoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wKSkpKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzSW5jKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcCkpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRl
YywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3ApKQpAQCAtNTQ2LDkgKzUyOSw4IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25EZWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzRGVjKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRPcCkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RlYyhnbG9iYWxPYmpl
Y3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3ApKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25WYWx1ZUJpdE5vdCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3ApKQpAQCAtNTU2LDkg
KzUzOCw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUJpdE5vdCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCoKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
LSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNCaXR3aXNlTm90
KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcCkpKSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc0JpdHdpc2VOb3QoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9wKSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
VmFsdWVCaXRBbmQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikp
CkBAIC01NjYsOSArNTQ3LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZh
bHVlQml0QW5kLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KgogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShq
c0JpdHdpc2VBbmQoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzQml0d2lzZUFuZChnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKSwg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25WYWx1ZUJpdE9yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIpKQpAQCAtNTc2LDkgKzU1Niw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25WYWx1ZUJpdE9yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKGpzQml0d2lzZU9yKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc0JpdHdpc2VPcihnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3AxKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpKSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUJpdFhvciwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKQEAgLTU4Niw5ICs1NjUsOCBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVCaXRYb3IsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzQml0d2lzZVhvcihnbG9iYWxPYmplY3QsIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkT3AxKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpKSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCaXR3aXNlWG9yKGdsb2JhbE9iamVjdCwgSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpKTsK
IH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQml0TFNoaWZ0LCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQpAQCAtNTk2LDkgKzU3
NCw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUJpdExTaGlmdCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0g
ICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTFNoaWZ0KGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZE9wMikpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0xTaGlmdChnbG9iYWxP
YmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDIpKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUJp
dFJTaGlmdCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKQEAg
LTYwNiw5ICs1ODMsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVC
aXRSU2hpZnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplYwogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1JT
aGlmdChnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKSwgSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRPcDIpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNSU2hp
ZnQoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AyKSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVmFsdWVCaXRVUlNoaWZ0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpKQpAQCAtNjE2LDkgKzU5Miw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25WYWx1ZUJpdFVSU2hpZnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplCiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKGpzVVJTaGlmdChnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3Ax
KSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVUlNoaWZ0KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEp
LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblZhbHVlQWRkTm90TnVtYmVyLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQpAQCAtNjI2LDEyICs2MDEsMTEgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQWRkTm90TnVtYmVyLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2IKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgCiAgICAgSlNWYWx1ZSBvcDEg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZE9wMik7CiAgICAgCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKGpzQWRkTm9uTnVtYmVyKGdsb2JhbE9iamVjdCwgb3AxLCBvcDIpKSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0FkZE5vbk51bWJlcihnbG9iYWxPYmplY3Qs
IG9wMSwgb3AyKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1
ZURpdiwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKQEAgLTYz
OSw5ICs2MTMsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVEaXYs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc0Rpdihn
bG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKSwgSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDIpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEaXYoZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AyKSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVQ
b3csIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCkBAIC02NDks
OSArNjIyLDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlUG93LCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNQb3coZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3AyKSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzUG93KGdsb2JhbE9i
amVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZE9wMikpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoQWJz
LCBkb3VibGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxKSkKQEAgLTY2Myw4ICs2MzUsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQXJpdGhBYnMsIGRvdWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwog
CiAgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgZG91
YmxlIGEgPSBvcDEudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgUE5hTik7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
c3RkOjphYnMoYSkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFBOYU4pOworICAg
IHJldHVybiBzdGQ6OmFicyhhKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkFyaXRoQ2x6MzIsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEpKQpAQCAtNjc2LDggKzY0OCw4IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aENsejMyLCBVQ1BVU3RyaWN0SW50
MzIsIChKU0dsb2JhbE9iamVjdCoKIAogICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDEpOwogICAgIHVpbnQzMl90IHZhbHVlID0gb3AxLnRvVUludDMyKGdsb2JhbE9i
amVjdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIDApOwotICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHRvVUNQVVN0cmljdEludDMyKGNseih2YWx1ZSkpKTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b1VDUFVT
dHJpY3RJbnQzMihjbHoodmFsdWUpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkFyaXRoRlJvdW5kLCBkb3VibGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKSkKQEAgLTY4OSw4ICs2NjEsOCBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhGUm91bmQsIGRvdWJsZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYgogCiAgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZE9wMSk7CiAgICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KTsKLSAg
ICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgUE5hTik7Ci0gICAgT1BFUkFU
SU9OX1JFVFVSTihzY29wZSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGEpKTsKKyAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBQTmFOKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGEp
OwogfQogCiAjZGVmaW5lIERGR19BUklUSF9VTkFSWShjYXBpdGFsaXplZE5hbWUsIGxvd2VyTmFt
ZSkgXApAQCAtNzAyLDggKzY3NCw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Bcml0aCMjY2FwaXRhbGl6ZWROYW1lLCBkb3VibGUsIChKU0dsb2JhbE9iamVjCiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOyBcCiAgICAgSlNWYWx1ZSBvcDEgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7IFwKICAgICBkb3VibGUgcmVzdWx0ID0gb3AxLnRv
TnVtYmVyKGdsb2JhbE9iamVjdCk7IFwKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgUE5hTik7IFwKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU0M6Ok1hdGg6
Omxvd2VyTmFtZShyZXN1bHQpKTsgXAorICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFBO
YU4pOyBcCisgICAgcmV0dXJuIEpTQzo6TWF0aDo6bG93ZXJOYW1lKHJlc3VsdCk7IFwKIH0KICAg
ICBGT1JfRUFDSF9BUklUSF9VTkFSWV9PUChERkdfQVJJVEhfVU5BUlkpCiAjdW5kZWYgREZHX0FS
SVRIX1VOQVJZCkBAIC03MTcsOCArNjg5LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkFyaXRoU3FydCwgZG91YmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKIAog
ICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwogICAgIGRvdWJs
ZSBhID0gb3AxLnRvTnVtYmVyKGdsb2JhbE9iamVjdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIFBOYU4pOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHNx
cnQoYSkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFBOYU4pOworICAgIHJldHVy
biBzcXJ0KGEpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhS
b3VuZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQpKQpAQCAtNzMwLDggKzcwMiw4IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aFJvdW5kLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnCiAKICAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRBcmd1bWVudCk7CiAgICAgZG91YmxlIHZhbHVlT2ZBcmd1bWVudCA9IGFyZ3VtZW50
LnRvTnVtYmVyKGdsb2JhbE9iamVjdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUs
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihNYXRoOjpyb3VuZERvdWJsZSh2YWx1ZU9mQXJndW1l
bnQpKSkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkp
OworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoTWF0aDo6cm91bmREb3VibGUo
dmFsdWVPZkFyZ3VtZW50KSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQXJpdGhGbG9vciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQpKQpAQCAtNzQzLDggKzcxNSw4IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aEZsb29yLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnCiAKICAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRBcmd1bWVudCk7CiAgICAgZG91YmxlIHZhbHVlT2ZBcmd1bWVudCA9
IGFyZ3VtZW50LnRvTnVtYmVyKGdsb2JhbE9iamVjdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIE9QRVJBVElPTl9SRVRV
Uk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihmbG9vcih2YWx1ZU9mQXJndW1lbnQp
KSkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZmxvb3IodmFsdWVPZkFyZ3VtZW50
KSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhDZWlsLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRBcmd1bWVudCkpCkBAIC03NTYsOCArNzI4LDggQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoQ2VpbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2wKIAogICAgIEpTVmFsdWUgYXJndW1lbnQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZEFyZ3VtZW50KTsKICAgICBkb3VibGUgdmFsdWVPZkFyZ3VtZW50ID0gYXJndW1lbnQudG9OdW1i
ZXIoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKGNlaWwodmFsdWVPZkFyZ3VtZW50KSkpKTsKKyAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKGNlaWwodmFsdWVPZkFyZ3VtZW50KSkpOwogfQogCiBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhUcnVuYywgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1l
bnQpKQpAQCAtNzY5LDExICs3NDEsMTEgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkFyaXRoVHJ1bmMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGcKIAogICAg
IEpTVmFsdWUgYXJndW1lbnQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEFyZ3VtZW50KTsKICAg
ICBkb3VibGUgdHJ1bmNhdGVkVmFsdWVPZkFyZ3VtZW50ID0gYXJndW1lbnQudG9JbnRlZ2VyUHJl
c2VydmVOYU4oZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRydW5jYXRlZFZhbHVlT2ZBcmd1bWVudCkpKTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRydW5jYXRlZFZhbHVlT2ZBcmd1bWVudCkpOwog
fQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhNaW5N
dWx0aXBsZURvdWJsZSwgZG91YmxlLCAoY29uc3QgZG91YmxlKiBidWZmZXIsIHVuc2lnbmVkIGVs
ZW1lbnRDb3VudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhNaW5N
dWx0aXBsZURvdWJsZSwgZG91YmxlLCAoY29uc3QgZG91YmxlKiBidWZmZXIsIHVuc2lnbmVkIGVs
ZW1lbnRDb3VudCkpCiB7CiAgICAgZG91YmxlIHJlc3VsdCA9ICtzdGQ6Om51bWVyaWNfbGltaXRz
PGRvdWJsZT46OmluZmluaXR5KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4
IDwgZWxlbWVudENvdW50OyArK2luZGV4KSB7CkBAIC03ODYsNyArNzU4LDcgQEAgSlNDX0RFRklO
RV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoTWluTXVsdGlwbGVEb3VibGUs
IGRvdWJsZSwgKGNvbnMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5FX05PRVhD
RVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhNYXhNdWx0aXBsZURvdWJsZSwgZG91Ymxl
LCAoY29uc3QgZG91YmxlKiBidWZmZXIsIHVuc2lnbmVkIGVsZW1lbnRDb3VudCkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhNYXhNdWx0aXBsZURvdWJsZSwgZG91Ymxl
LCAoY29uc3QgZG91YmxlKiBidWZmZXIsIHVuc2lnbmVkIGVsZW1lbnRDb3VudCkpCiB7CiAgICAg
ZG91YmxlIHJlc3VsdCA9IC1zdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7
CiAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgZWxlbWVudENvdW50OyArK2lu
ZGV4KSB7CkBAIC04MjIsOSArNzk0LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldEJ5VmFsT2JqZWN0SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2IKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBnZXRCeVZhbENl
bGxJbnQoZ2xvYmFsT2JqZWN0LCB2bSwgYmFzZSwgaW5kZXgpKTsKKyAgICByZXR1cm4gZ2V0QnlW
YWxDZWxsSW50KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIGluZGV4KTsKIH0KIAogSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nSW50LCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBiYXNlLCBpbnQzMl90
IGluZGV4KSkKQEAgLTgzMiw5ICs4MDMsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0QnlWYWxTdHJpbmdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYgogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGdldEJ5VmFs
Q2VsbEludChnbG9iYWxPYmplY3QsIHZtLCBiYXNlLCBpbmRleCkpOworICAgIHJldHVybiBnZXRC
eVZhbENlbGxJbnQoZ2xvYmFsT2JqZWN0LCB2bSwgYmFzZSwgaW5kZXgpOwogfQogCiBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxPYmplY3RTdHJpbmcsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBKU0Nl
bGwqIHN0cmluZykpCkBAIC04NDYsOSArODE2LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmEK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBhdXRvIHBy
b3BlcnR5TmFtZSA9IGFzU3RyaW5nKHN0cmluZyktPnRvSWRlbnRpZmllcihnbG9iYWxPYmplY3Qp
OwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
IAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShnZXRCeVZhbE9i
amVjdChnbG9iYWxPYmplY3QsIHZtLCBhc09iamVjdChiYXNlKSwgcHJvcGVydHlOYW1lKSkpOwor
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdldEJ5VmFsT2Jq
ZWN0KGdsb2JhbE9iamVjdCwgdm0sIGFzT2JqZWN0KGJhc2UpLCBwcm9wZXJ0eU5hbWUpKSk7CiB9
CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbE9iamVjdFN5bWJv
bCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IGJhc2UsIEpTQ2VsbCogc3ltYm9sKSkKQEAgLTg1NiwxMCArODI2LDkgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0U3ltYm9sLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmEKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBhdXRvIHByb3BlcnR5TmFt
ZSA9IGFzU3ltYm9sKHN5bWJvbCktPnByaXZhdGVOYW1lKCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdldEJ5VmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgdm0s
IGFzT2JqZWN0KGJhc2UpLCBwcm9wZXJ0eU5hbWUpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShnZXRCeVZhbE9iamVjdChnbG9iYWxPYmplY3QsIHZtLCBhc09iamVjdChiYXNlKSwgcHJv
cGVydHlOYW1lKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eVZhbENlbGxTdHJpbmdTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0NlbGwqIGNlbGwsIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQpAQCAtODY3LDEwICs4MzYsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlWYWxDZWxsU3RyaW5nU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplYwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAogICAgIHB1dEJ5VmFsQ2VsbFN0cmluZ0ludGVybmFsPHRydWUsIGZh
bHNlPihnbG9iYWxPYmplY3QsIHZtLCBjZWxsLCBhc1N0cmluZyhzdHJpbmcpLCBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFZhbHVlKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAK
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpbmdTbG9w
cHksIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEpT
Q2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQpAQCAtODc4LDEwICs4
NDUsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3Ry
aW5nU2xvcHB5LCB2b2lkLCAoSlNHbG9iYWxPYmplYwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAog
ICAgIHB1dEJ5VmFsQ2VsbFN0cmluZ0ludGVybmFsPGZhbHNlLCBmYWxzZT4oZ2xvYmFsT2JqZWN0
LCB2bSwgY2VsbCwgYXNTdHJpbmcoc3RyaW5nKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1
ZSkpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3ltYm9sU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBKU0NlbGwqIHN5bWJvbCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKQEAgLTg4OSwxMSArODU0LDkgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN5bWJvbFN0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWMKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJh
dGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBhdXRvIHByb3BlcnR5
TmFtZSA9IGFzU3ltYm9sKHN5bWJvbCktPnByaXZhdGVOYW1lKCk7CiAgICAgcHV0QnlWYWxDZWxs
SW50ZXJuYWw8dHJ1ZSwgZmFsc2U+KGdsb2JhbE9iamVjdCwgdm0sIGNlbGwsIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwotICAgIE9QRVJBVElPTl9SRVRVUk4o
c2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxD
ZWxsU3ltYm9sU2xvcHB5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
ZWxsKiBjZWxsLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
QEAgLTkwMSwxMSArODY0LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5VmFsQ2VsbFN5bWJvbFNsb3BweSwgdm9pZCwgKEpTR2xvYmFsT2JqZWMKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAKICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IGFzU3ltYm9sKHN5bWJvbCktPnBy
aXZhdGVOYW1lKCk7CiAgICAgcHV0QnlWYWxDZWxsSW50ZXJuYWw8ZmFsc2UsIGZhbHNlPihnbG9i
YWxPYmplY3QsIHZtLCBjZWxsLCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKIH0KIAogSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQz
Ml90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQpAQCAtOTEzLDE3ICs4NzQs
MTUgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJy
YXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2IKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2Fs
bEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAg
CiAgICAgaWYgKGluZGV4ID49IDApIHsKICAgICAgICAgb2JqZWN0LT5wdXRCeUluZGV4SW5saW5l
KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGluZGV4KSwgSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSksIHRydWUpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
KTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xv
dChvYmplY3QsIHRydWUpOwogICAgIG9iamVjdC0+bWV0aG9kVGFibGUoKS0+cHV0KAogICAgICAg
ICBvYmplY3QsIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihz
Y29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJl
eW9uZEFycmF5Qm91bmRzU2xvcHB5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKQEAgLTkzMSwxNyArODkwLDE1IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU2xvcHB5LCB2b2lkLCAoSlNHbG9iCiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogICAgIAogICAgIGlmIChpbmRleCA+PSAwKSB7CiAgICAgICAg
IG9iamVjdC0+cHV0QnlJbmRleElubGluZShnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PHVpbnQz
Ml90PihpbmRleCksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBmYWxzZSk7Ci0gICAg
ICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOworICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IAogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KG9iamVjdCwgZmFsc2UpOwogICAgIG9iamVjdC0+
bWV0aG9kVGFibGUoKS0+cHV0KAogICAgICAgICBvYmplY3QsIGdsb2JhbE9iamVjdCwgSWRlbnRp
Zmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xv
dCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgaW50
MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSkKQEAgLTk0OSwxOSArOTA2LDE3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRz
U3RyaWN0LCB2b2lkLCAoCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIAogICAgIEpTVmFsdWUg
anNWYWx1ZSA9IEpTVmFsdWUoSlNWYWx1ZTo6RW5jb2RlQXNEb3VibGUsIHZhbHVlKTsKICAgICAK
ICAgICBpZiAoaW5kZXggPj0gMCkgewogICAgICAgICBvYmplY3QtPnB1dEJ5SW5kZXhJbmxpbmUo
Z2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oaW5kZXgpLCBqc1ZhbHVlLCB0cnVl
KTsKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CisgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgCiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Qob2JqZWN0LCB0cnVlKTsKICAgICBv
YmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dCgKICAgICAgICAgb2JqZWN0LCBnbG9iYWxPYmplY3Qs
IElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwganNWYWx1ZSwgc2xvdCk7Ci0gICAgT1BFUkFU
SU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU2xvcHB5LCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgZG91
YmxlIHZhbHVlKSkKQEAgLTk2OSwxOSArOTI0LDE3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU2xvcHB5LCB2b2lkLCAo
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIAogICAgIEpTVmFsdWUganNWYWx1ZSA9IEpTVmFs
dWUoSlNWYWx1ZTo6RW5jb2RlQXNEb3VibGUsIHZhbHVlKTsKICAgICAKICAgICBpZiAoaW5kZXgg
Pj0gMCkgewogICAgICAgICBvYmplY3QtPnB1dEJ5SW5kZXhJbmxpbmUoZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDx1aW50MzJfdD4oaW5kZXgpLCBqc1ZhbHVlLCBmYWxzZSk7Ci0gICAgICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUpOworICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAogICAg
IFB1dFByb3BlcnR5U2xvdCBzbG90KG9iamVjdCwgZmFsc2UpOwogICAgIG9iamVjdC0+bWV0aG9k
VGFibGUoKS0+cHV0KAogICAgICAgICBvYmplY3QsIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6
ZnJvbSh2bSwgaW5kZXgpLCBqc1ZhbHVlLCBzbG90KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNj
b3BlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5
VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBkb3VibGUgdmFs
dWUpKQpAQCAtOTg5LDE4ICs5NDIsMTYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHYKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIGpzVmFsdWUgPSBKU1ZhbHVlKEpTVmFsdWU6
OkVuY29kZUFzRG91YmxlLCB2YWx1ZSk7CiAKICAgICBpZiAoaW5kZXggPj0gMCkgewogICAgICAg
ICBvYmplY3QtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KGluZGV4KSwganNWYWx1ZSwgMCwgUHV0RGlyZWN0SW5kZXhTaG91bGRUaHJvdyk7Ci0gICAg
ICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOworICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgUHV0UHJvcGVydHlTbG90IHNsb3Qob2JqZWN0LCB0cnVlKTsKICAgICBDb21tb25TbG93UGF0
aHM6OnB1dERpcmVjdFdpdGhSZWlmeSh2bSwgZ2xvYmFsT2JqZWN0LCBvYmplY3QsIElkZW50aWZp
ZXI6OmZyb20odm0sIGluZGV4KSwganNWYWx1ZSwgc2xvdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3Vi
bGVCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU2xvcHB5LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgZG91Ymxl
IHZhbHVlKSkKQEAgLTEwMDgsMTggKzk1OSwxNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1Nsb3BweSwgdgog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUganNWYWx1ZSA9IEpTVmFsdWUoSlNW
YWx1ZTo6RW5jb2RlQXNEb3VibGUsIHZhbHVlKTsKIAogICAgIGlmIChpbmRleCA+PSAwKSB7CiAg
ICAgICAgIG9iamVjdC0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDx1
aW50MzJfdD4oaW5kZXgpLCBqc1ZhbHVlKTsKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29w
ZSk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChv
YmplY3QsIGZhbHNlKTsKICAgICBDb21tb25TbG93UGF0aHM6OnB1dERpcmVjdFdpdGhSZWlmeSh2
bSwgZ2xvYmFsT2JqZWN0LCBvYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwganNW
YWx1ZSwgc2xvdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTdHJpbmdTdHJpY3Qs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEpTQ2Vs
bCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQpAQCAtMTAyNywxMCArOTc2
LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2Vs
bFN0cmluZ1N0cmljdCwgdm9pZCwgKEpTR2xvYmEKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2Fs
bEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAg
ICBwdXRCeVZhbENlbGxTdHJpbmdJbnRlcm5hbDx0cnVlLCB0cnVlPihnbG9iYWxPYmplY3QsIHZt
LCBjZWxsLCBhc1N0cmluZyhzdHJpbmcpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7
Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTdHJpbmdTbG9wcHksIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEpTQ2VsbCogc3RyaW5nLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQpAQCAtMTAzOCwxMCArOTg1LDggQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ1Nsb3Bw
eSwgdm9pZCwgKEpTR2xvYmEKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBwdXRCeVZhbENl
bGxTdHJpbmdJbnRlcm5hbDxmYWxzZSwgdHJ1ZT4oZ2xvYmFsT2JqZWN0LCB2bSwgY2VsbCwgYXNT
dHJpbmcoc3RyaW5nKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwotICAgIE9QRVJB
VElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3ltYm9sU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKQEAgLTEwNDksMTEgKzk5NCw5IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTeW1ib2xTdHJpY3QsIHZvaWQsIChK
U0dsb2JhCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBh
c1N5bWJvbChzeW1ib2wpLT5wcml2YXRlTmFtZSgpOwogICAgIHB1dEJ5VmFsQ2VsbEludGVybmFs
PHRydWUsIHRydWU+KGdsb2JhbE9iamVjdCwgdm0sIGNlbGwsIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwog
fQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxs
U3ltYm9sU2xvcHB5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBjZWxsLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKQEAg
LTEwNjEsMTEgKzEwMDQsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3RDZWxsU3ltYm9sU2xvcHB5LCB2b2lkLCAoSlNHbG9iYQogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKIAogICAgIGF1dG8gcHJvcGVydHlOYW1lID0gYXNTeW1ib2woc3ltYm9sKS0+cHJp
dmF0ZU5hbWUoKTsKICAgICBwdXRCeVZhbENlbGxJbnRlcm5hbDxmYWxzZSwgdHJ1ZT4oZ2xvYmFs
T2JqZWN0LCB2bSwgY2VsbCwgcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZh
bHVlKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwg
aW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKQEAgLTEwNzMsMTUg
KzEwMTQsMTMgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGly
ZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsICgKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAgICAgaWYgKGluZGV4ID49IDApIHsKICAgICAgICAgb2JqZWN0LT5wdXREaXJlY3RJbmRleChn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PHVpbnQzMl90PihpbmRleCksIEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkVmFsdWUpLCAwLCBQdXREaXJlY3RJbmRleFNob3VsZFRocm93KTsKLSAgICAgICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAg
ICAgUHV0UHJvcGVydHlTbG90IHNsb3Qob2JqZWN0LCB0cnVlKTsKICAgICBDb21tb25TbG93UGF0
aHM6OnB1dERpcmVjdFdpdGhSZWlmeSh2bSwgZ2xvYmFsT2JqZWN0LCBvYmplY3QsIElkZW50aWZp
ZXI6OmZyb20odm0sIGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3Qp
OwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1Nsb3BweSwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMy
X3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCkBAIC0xMDg5LDE2ICsxMDI4
LDE0IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJl
eW9uZEFycmF5Qm91bmRzU2xvcHB5LCB2b2lkLCAoCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAg
ICAgaWYgKGluZGV4ID49IDApIHsKICAgICAgICAgb2JqZWN0LT5wdXREaXJlY3RJbmRleChnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PHVpbnQzMl90PihpbmRleCksIEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpKTsKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CisgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgCiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Qob2JqZWN0LCBm
YWxzZSk7CiAgICAgQ29tbW9uU2xvd1BhdGhzOjpwdXREaXJlY3RXaXRoUmVpZnkodm0sIGdsb2Jh
bE9iamVjdCwgb2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpLCBzbG90KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsK
IH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaCwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIEpTQXJyYXkqIGFycmF5KSkKQEAgLTExMDYsMTAgKzEwNDMsOSBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklU
T3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwot
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAKICAgICBhcnJh
eS0+cHVzaElubGluZShnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
YXJyYXktPmxlbmd0aCgpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
YXJyYXktPmxlbmd0aCgpKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25BcnJheVB1c2hEb3VibGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgZG91YmxlIHZhbHVlLCBKU0FycmF5KiBhcnJheSkpCkBAIC0xMTE3LDEwICsxMDUz
LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamUKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2Fs
bEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAg
CiAgICAgYXJyYXktPnB1c2hJbmxpbmUoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlKEpTVmFsdWU6OkVu
Y29kZUFzRG91YmxlLCB2YWx1ZSkpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihhcnJheS0+bGVuZ3RoKCkpKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihhcnJheS0+bGVuZ3RoKCkpKTsKIH0KIAogSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFycmF5LCB2b2lkKiBidWZm
ZXIsIGludDMyX3QgZWxlbWVudENvdW50KSkKQEAgLTExMjgsOCArMTA2Myw4IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1c2hNdWx0aXBsZSwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEFjdGl2ZVNjcmF0Y2hC
dWZmZXJTY29wZSBhY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUoU2NyYXRjaEJ1ZmZlcjo6ZnJvbURh
dGEoYnVmZmVyKSwgZWxlbWVudENvdW50KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAKIAogICAgIC8vIFdlIGFzc3VtZSB0aGF0IG11bHRpcGxlIEpTQXJyYXk6
OnB1c2ggY2FsbHMgd2l0aCBBcnJheVdpdGhJbnQzMi9BcnJheVdpdGhDb250aWd1b3VzIGRvIG5v
dCBjYXVzZSBKUyB0cmFwcy4KQEAgLTExNDUsOSArMTA4MCw5IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25BcnJheVB1c2hNdWx0aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iCiAgICAgRW5jb2RlZEpTVmFsdWUqIHZhbHVlcyA9IHN0YXRpY19jYXN0PEVuY29kZWRK
U1ZhbHVlKj4oYnVmZmVyKTsKICAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkgPCBlbGVtZW50Q291
bnQ7ICsraSkgewogICAgICAgICBhcnJheS0+cHVzaElubGluZShnbG9iYWxPYmplY3QsIEpTVmFs
dWU6OmRlY29kZSh2YWx1ZXNbaV0pKTsKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICB9Ci0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGFycmF5LT5sZW5ndGgoKSkpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGFycmF5LT5sZW5ndGgoKSkpOwogfQog
CiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoRG91YmxlTXVsdGlw
bGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNBcnJh
eSogYXJyYXksIHZvaWQqIGJ1ZmZlciwgaW50MzJfdCBlbGVtZW50Q291bnQpKQpAQCAtMTE2Nyw5
ICsxMTAyLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaERv
dWJsZU11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2wKICAgICBkb3VibGUqIHZhbHVlcyA9
IHN0YXRpY19jYXN0PGRvdWJsZSo+KGJ1ZmZlcik7CiAgICAgZm9yIChpbnQzMl90IGkgPSAwOyBp
IDwgZWxlbWVudENvdW50OyArK2kpIHsKICAgICAgICAgYXJyYXktPnB1c2hJbmxpbmUoZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlKEpTVmFsdWU6OkVuY29kZUFzRG91YmxlLCB2YWx1ZXNbaV0pKTsKLSAg
ICAgICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVl
KCkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgp
KTsKICAgICB9Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKGFycmF5LT5sZW5ndGgoKSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKGFycmF5LT5sZW5ndGgoKSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQXJyYXlQdXNoTXVsdGlwbGVTbG93LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFycmF5LCB2b2lkKiBidWZmZXIsIGludDMy
X3QgZWxlbWVudENvdW50KSkKQEAgLTExOTAsMTUgKzExMjUsMTUgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaE11bHRpcGxlU2xvdywgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2IKIAogICAgIGlmIChVTkxJS0VMWShhcmd1bWVudHMuaGFzT3ZlcmZsb3dlZCgpKSkg
ewogICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0g
ICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIGZvciAoaW50MzJfdCBpID0gMDsgaSA8IGVsZW1l
bnRDb3VudDsgKytpKSB7CiAgICAgICAgIGFycmF5LT5wdXNoSW5saW5lKGdsb2JhbE9iamVjdCwg
YXJndW1lbnRzLmF0KGkpKTsKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwogICAgIH0KIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcihhcnJheS0+bGVuZ3RoKCkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcihhcnJheS0+bGVuZ3RoKCkpKTsKIH0KIAogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UG9wLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFycmF5KSkKQEAgLTEyMDYsOSArMTE0MSw4IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVBvcCwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIAotICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhcnJheS0+cG9wKGdsb2Jh
bE9iamVjdCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFycmF5LT5wb3AoZ2xvYmFs
T2JqZWN0KSk7CiB9CiAgICAgICAgIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkFycmF5UG9wQW5kUmVjb3Zlckxlbmd0aCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0FycmF5KiBhcnJheSkpCkBAIC0xMjE2LDExICsxMTUwLDEwIEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVBvcEFuZFJlY292ZXJMZW5n
dGgsIEVuY29kZWRKU1ZhbHVlLCAoSlNHCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIAogICAg
IGFycmF5LT5idXR0ZXJmbHkoKS0+c2V0UHVibGljTGVuZ3RoKGFycmF5LT5idXR0ZXJmbHkoKS0+
cHVibGljTGVuZ3RoKCkgKyAxKTsKICAgICAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBK
U1ZhbHVlOjplbmNvZGUoYXJyYXktPnBvcChnbG9iYWxPYmplY3QpKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShhcnJheS0+cG9wKGdsb2JhbE9iamVjdCkpOwogfQogCiBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlTcGxpY2VFeHRyYWN0LCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGJhc2UsIGludDMyX3Qg
c3RhcnQsIGludDMyX3QgZGVsZXRlQ291bnQsIHVuc2lnbmVkIHJlZkNvdW50KSkKQEAgLTEyNTAs
NyArMTE4Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVNwbGlj
ZUV4dHJhY3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPCiAgICAgc3RkOjpwYWlyPFNwZWNp
ZXNDb25zdHJ1Y3RSZXN1bHQsIEpTT2JqZWN0Kj4gc3BlY2llc1Jlc3VsdCA9IHNwZWNpZXNDb25z
dHJ1Y3RBcnJheShnbG9iYWxPYmplY3QsIGJhc2UsIGFjdHVhbERlbGV0ZUNvdW50KTsKICAgICBF
WENFUFRJT05fQVNTRVJUKCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0gKHNwZWNpZXNSZXN1bHQuZmly
c3QgPT0gU3BlY2llc0NvbnN0cnVjdFJlc3VsdDo6RXhjZXB0aW9uKSk7CiAgICAgaWYgKHNwZWNp
ZXNSZXN1bHQuZmlyc3QgPT0gU3BlY2llc0NvbnN0cnVjdFJlc3VsdDo6RXhjZXB0aW9uKQotICAg
ICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAg
cmV0dXJuIHsgfTsKIAogICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIGlmIChMSUtFTFkoc3BlY2ll
c1Jlc3VsdC5maXJzdCA9PSBTcGVjaWVzQ29uc3RydWN0UmVzdWx0OjpGYXN0UGF0aCkpIHsKQEAg
LTEyOTIsNyArMTIyNSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJh
eVNwbGljZUV4dHJhY3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPCiAgICAgICAgICAgICBy
ZXN1bHQgPSBqc1VuZGVmaW5lZCgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIHJlc3Vs
dCA9IEpTQXJyYXk6OmZhc3RTbGljZShnbG9iYWxPYmplY3QsIGJhc2UsIGFjdHVhbFN0YXJ0LCBh
Y3R1YWxEZWxldGVDb3VudCk7Ci0gICAgICAgICAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMzAzLDM1ICsxMjM2
LDM1IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVNwbGljZUV4dHJh
Y3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPCiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgaWYgKFVOTElLRUxZKGFjdHVhbERlbGV0ZUNvdW50ID4gc3RkOjpudW1lcmljX2xpbWl0czx1
aW50MzJfdD46Om1heCgpKSkgewogICAgICAgICAgICAgICAgIHRocm93UmFuZ2VFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCBMZW5ndGhFeGNlZWRlZFRoZU1heGltdW1BcnJheUxlbmd0aEVycm9y
KTsKLSAgICAgICAgICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgcmVzdWx0T2JqZWN0ID0gSlNBcnJheTo6dHJ5Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qt
PmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhV
bmRlY2lkZWQpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYWN0dWFsRGVsZXRlQ291bnQpKTsKICAg
ICAgICAgICAgIGlmIChVTkxJS0VMWSghcmVzdWx0T2JqZWN0KSkgewogICAgICAgICAgICAgICAg
IHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKLSAgICAgICAgICAg
ICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4geyB9OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGZv
ciAodWludDY0X3QgayA9IDA7IGsgPCBhY3R1YWxEZWxldGVDb3VudDsgKytrKSB7CiAgICAgICAg
ICAgICBKU1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShnbG9iYWxPYmplY3QsIGJhc2UsIGsgKyBhY3R1
YWxTdGFydCk7Ci0gICAgICAgICAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwogICAgICAgICAgICAgaWYgKFVOTElLRUxZKCF2KSkKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgIHJlc3VsdE9iamVjdC0+cHV0RGlyZWN0SW5kZXgoZ2xv
YmFsT2JqZWN0LCBrLCB2LCAwLCBQdXREaXJlY3RJbmRleFNob3VsZFRocm93KTsKLSAgICAgICAg
ICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgp
KTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgICAg
IH0KICAgICAgICAgc2V0TGVuZ3RoKGdsb2JhbE9iamVjdCwgdm0sIHJlc3VsdE9iamVjdCwgYWN0
dWFsRGVsZXRlQ291bnQpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CiAgICAgICAgIHJlc3VsdCA9IHJlc3VsdE9iamVjdDsKICAgICB9CiAKICAgICBp
ZiAoYWN0dWFsRGVsZXRlQ291bnQpIHsKICAgICAgICAgc2hpZnQ8SlNBcnJheTo6U2hpZnRDb3Vu
dEZvclNwbGljZT4oZ2xvYmFsT2JqZWN0LCBiYXNlLCBhY3R1YWxTdGFydCwgYWN0dWFsRGVsZXRl
Q291bnQsIDAsIGxlbmd0aCk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKICAgICB9CiAKICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgc2V0TGVuZ3Ro
KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIGxlbmd0aCAtIGFjdHVhbERlbGV0ZUNvdW50KTsKLSAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUmVnRXhwRXhlY1N0cmluZywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdFeHBPYmplY3QqIHJlZ0V4cE9iamVjdCwgSlNTdHJp
bmcqIGFyZ3VtZW50KSkKQEAgLTEzNDEsOSArMTI3NCw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25SZWdFeHBFeGVjU3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShyZWdFeHBPYmplY3QtPmV4ZWNJbmxpbmUoZ2xvYmFsT2JqZWN0
LCBhcmd1bWVudCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlZ0V4cE9iamVjdC0+
ZXhlY0lubGluZShnbG9iYWxPYmplY3QsIGFyZ3VtZW50KSk7CiB9CiAgICAgICAgIAogSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cEV4ZWMsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkpCkBAIC0xMzYwLDggKzEyOTIsOCBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwRXhlYywgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZwogICAgIEpTU3RyaW5nKiBpbnB1dCA9IGFyZ3VtZW50LnRv
U3RyaW5nT3JOdWxsKGdsb2JhbE9iamVjdCk7CiAgICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3Bl
LmV4Y2VwdGlvbigpID09ICFpbnB1dCk7CiAgICAgaWYgKCFpbnB1dCkKLSAgICAgICAgT1BFUkFU
SU9OX1JFVFVSTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHJlZ0V4cE9iamVjdC0+ZXhlY0lubGluZShnbG9iYWxP
YmplY3QsIGlucHV0KSkpOworICAgICAgICByZXR1cm4gZW5jb2RlZEpTVmFsdWUoKTsKKyAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShyZWdFeHBPYmplY3QtPmV4
ZWNJbmxpbmUoZ2xvYmFsT2JqZWN0LCBpbnB1dCkpKTsKIH0KICAgICAgICAgCiBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwRXhlY0dlbmVyaWMsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkpCkBAIC0xMzc4LDEzICsxMzEwLDEz
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBFeGVjR2VuZXJpYywg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iCiAgICAgCiAgICAgYXV0byogcmVnZXhwID0ganNE
eW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPihiYXNlKTsKICAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4
cCkpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHRocm93Vk1UeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSkpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlKTsKIAogICAgIEpTU3RyaW5nKiBpbnB1dCA9IGFyZ3VtZW50LnRvU3Ry
aW5nT3JOdWxsKGdsb2JhbE9iamVjdCk7CiAgICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3BlLmV4
Y2VwdGlvbigpID09ICFpbnB1dCk7CiAgICAgaWYgKCFpbnB1dCkKLSAgICAgICAgT1BFUkFUSU9O
X1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKTsKLSAgICBPUEVS
QVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUocmVnZXhwLT5leGVjKGdsb2JhbE9i
amVjdCwgaW5wdXQpKSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUocmVn
ZXhwLT5leGVjKGdsb2JhbE9iamVjdCwgaW5wdXQpKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25SZWdFeHBFeGVjTm9uR2xvYmFsT3JTdGlja3ksIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnRXhwKiByZWdFeHAsIEpTU3Ry
aW5nKiBzdHJpbmcpKQpAQCAtMTM5OCwxNyArMTMzMCwxNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUmVnRXhwRXhlY05vbkdsb2JhbE9yU3RpY2t5LCBFbmNvZGVkSlNWYWx1
ZSwgKAogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIFN0
cmluZyBpbnB1dCA9IHN0cmluZy0+dmFsdWUoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05f
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIHVuc2lnbmVkIGxhc3RJbmRleCA9IDA7
CiAgICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwogICAgIEpTQXJyYXkqIGFycmF5ID0gY3JlYXRlUmVn
RXhwTWF0Y2hlc0FycmF5KHZtLCBnbG9iYWxPYmplY3QsIHN0cmluZywgaW5wdXQsIHJlZ0V4cCwg
bGFzdEluZGV4LCByZXN1bHQpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwogICAgIGlmICghYXJyYXkpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpT
VmFsdWU6OmVuY29kZShqc051bGwoKSkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVsbCgpKTsKIAogICAgIGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLnJlY29y
ZE1hdGNoKHZtLCBnbG9iYWxPYmplY3QsIHJlZ0V4cCwgc3RyaW5nLCByZXN1bHQpOwotICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhcnJheSkpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoYXJyYXkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUmVnRXhwTWF0Y2hGYXN0U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0LCBKU1N0cmlu
ZyogYXJndW1lbnQpKQpAQCAtMTQxOCwxMSArMTM1MCwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUmVnRXhwTWF0Y2hGYXN0U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYgogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlmICghcmVnRXhwT2JqZWN0LT5yZWdF
eHAoKS0+Z2xvYmFsKCkpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShyZWdFeHBPYmplY3QtPmV4ZWNJbmxpbmUoZ2xvYmFsT2JqZWN0LCBhcmd1bWVudCkp
KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUocmVnRXhwT2Jq
ZWN0LT5tYXRjaEdsb2JhbChnbG9iYWxPYmplY3QsIGFyZ3VtZW50KSkpOworICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlZ0V4cE9iamVjdC0+ZXhlY0lubGluZShnbG9iYWxPYmplY3Qs
IGFyZ3VtZW50KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZWdFeHBPYmplY3QtPm1h
dGNoR2xvYmFsKGdsb2JhbE9iamVjdCwgYXJndW1lbnQpKTsKIH0KIAogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cE1hdGNoRmFzdEdsb2JhbFN0cmluZywgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdFeHAqIHJlZ0V4cCwgSlNT
dHJpbmcqIHN0cmluZykpCkBAIC0xNDM4LDE4ICsxMzY5LDE4IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25SZWdFeHBNYXRjaEZhc3RHbG9iYWxTdHJpbmcsIEVuY29kZWRKU1Zh
bHVlLCAoCiAgICAgQVNTRVJUKHJlZ0V4cC0+Z2xvYmFsKCkpOwogCiAgICAgU3RyaW5nIHMgPSBz
dHJpbmctPnZhbHVlKGdsb2JhbE9iamVjdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CiAKICAgICBpZiAocmVnRXhwLT5laXRoZXJVbmljb2RlKCkpIHsKICAgICAg
ICAgdW5zaWduZWQgc3RyaW5nTGVuZ3RoID0gcy5sZW5ndGgoKTsKLSAgICAgICAgT1BFUkFUSU9O
X1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGNvbGxlY3RNYXRjaGVzKAorICAgICAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShjb2xsZWN0TWF0Y2hlcygK
ICAgICAgICAgICAgIHZtLCBnbG9iYWxPYmplY3QsIHN0cmluZywgcywgcmVnRXhwLAogICAgICAg
ICAgICAgWyZdKHNpemVfdCBlbmQpIEFMV0FZU19JTkxJTkVfTEFNQkRBIHsKICAgICAgICAgICAg
ICAgICByZXR1cm4gYWR2YW5jZVN0cmluZ1VuaWNvZGUocywgc3RyaW5nTGVuZ3RoLCBlbmQpOwog
ICAgICAgICAgICAgfSkpKTsKICAgICB9CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBK
U1ZhbHVlOjplbmNvZGUoY29sbGVjdE1hdGNoZXMoCisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUoY29sbGVjdE1hdGNoZXMoCiAgICAgICAgIHZtLCBnbG9iYWxP
YmplY3QsIHN0cmluZywgcywgcmVnRXhwLAogICAgICAgICBbXShzaXplX3QgZW5kKSBBTFdBWVNf
SU5MSU5FX0xBTUJEQSB7CiAgICAgICAgICAgICByZXR1cm4gZW5kICsgMTsKQEAgLTE0NjEsMTgg
KzEzOTIsMTcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50R2Vu
ZXJpY05vUmFkaXgsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG8KICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CiAg
ICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpIHsKICAgICAgICAgaWYgKGF1dG8gcmVzdWx0ID0gcGFy
c2VJbnREb3VibGUodmFsdWUuYXNOdW1iZXIoKSkpCi0gICAgICAgICAgICBPUEVSQVRJT05fUkVU
VVJOKHNjb3BlLCBwYXJzZUludFJlc3VsdChyZXN1bHQudmFsdWUoKSkpOworICAgICAgICAgICAg
cmV0dXJuIHBhcnNlSW50UmVzdWx0KHJlc3VsdC52YWx1ZSgpKTsKICAgICB9CiAKLSAgICBPUEVS
QVRJT05fUkVUVVJOKHNjb3BlLCB0b1N0cmluZ1ZpZXcoZ2xvYmFsT2JqZWN0LCB2YWx1ZSwgWyZd
IChTdHJpbmdWaWV3IHZpZXcpIHsKKyAgICByZXR1cm4gdG9TdHJpbmdWaWV3KGdsb2JhbE9iamVj
dCwgdmFsdWUsIFsmXSAoU3RyaW5nVmlldyB2aWV3KSB7CiAgICAgICAgIC8vIFRoaXMgdmVyc2lv
biBpcyBhcyBpZiByYWRpeCB3YXMgdW5kZWZpbmVkLiBIZW5jZSwgdW5kZWZpbmVkLnRvTnVtYmVy
KCkgPT09IDAuCiAgICAgICAgIHJldHVybiBwYXJzZUludFJlc3VsdChwYXJzZUludCh2aWV3LCAw
KSk7Ci0gICAgfSkpOworICAgIH0pOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUGFyc2VJbnRTdHJpbmdOb1JhZGl4LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmcpKQpAQCAtMTQ4MywxMCArMTQxMywx
MCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRTdHJpbmdOb1Jh
ZGl4LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYgogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAogICAgIGF1dG8gdmlld1dpdGhTdHJpbmcgPSBzdHJpbmctPnZpZXdX
aXRoVW5kZXJseWluZ1N0cmluZyhnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgLy8gVGhpcyB2ZXJzaW9uIGlzIGFzIGlmIHJhZGl4
IHdhcyB1bmRlZmluZWQuIEhlbmNlLCB1bmRlZmluZWQudG9OdW1iZXIoKSA9PT0gMC4KLSAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCBwYXJzZUludFJlc3VsdChwYXJzZUludCh2aWV3V2l0aFN0
cmluZy52aWV3LCAwKSkpOworICAgIHJldHVybiBwYXJzZUludFJlc3VsdChwYXJzZUludCh2aWV3
V2l0aFN0cmluZy52aWV3LCAwKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QYXJzZUludERvdWJsZU5vUmFkaXgsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgZG91YmxlIHZhbHVlKSkKQEAgLTE0OTQsMTIgKzE0MjQsMTEgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50RG91YmxlTm9SYWRpeCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2IKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAg
IEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
KTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBpZiAo
YXV0byByZXN1bHQgPSBwYXJzZUludERvdWJsZSh2YWx1ZSkpCi0gICAgICAgIE9QRVJBVElPTl9S
RVRVUk4oc2NvcGUsIHBhcnNlSW50UmVzdWx0KHJlc3VsdC52YWx1ZSgpKSk7CisgICAgICAgIHJl
dHVybiBwYXJzZUludFJlc3VsdChyZXN1bHQudmFsdWUoKSk7CiAKLSAgICBPUEVSQVRJT05fUkVU
VVJOKHNjb3BlLCBwYXJzZUludFJlc3VsdChwYXJzZUludChTdHJpbmc6Om51bWJlcih2YWx1ZSks
IDApKSk7CisgICAgcmV0dXJuIHBhcnNlSW50UmVzdWx0KHBhcnNlSW50KFN0cmluZzo6bnVtYmVy
KHZhbHVlKSwgMCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFy
c2VJbnRTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNTdHJpbmcqIHN0cmluZywgaW50MzJfdCByYWRpeCkpCkBAIC0xNTEwLDkgKzE0MzksOSBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRTdHJpbmcsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplYwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAogICAgIGF1dG8gdmlld1dpdGhTdHJpbmcgPSBzdHJpbmctPnZpZXdXaXRo
VW5kZXJseWluZ1N0cmluZyhnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgcGFyc2VJbnRS
ZXN1bHQocGFyc2VJbnQodmlld1dpdGhTdHJpbmcudmlldywgcmFkaXgpKSk7CisgICAgcmV0dXJu
IHBhcnNlSW50UmVzdWx0KHBhcnNlSW50KHZpZXdXaXRoU3RyaW5nLnZpZXcsIHJhZGl4KSk7CiB9
CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludEdlbmVyaWMsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IHJhZGl4KSkKQEAgLTE1MjAsMTcgKzE0NDksMTYgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50R2VuZXJpYywgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamUKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAg
IEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
KTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1Zh
bHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CiAgICAgaWYgKHJhZGl4
ID09IDEwICYmIHZhbHVlLmlzTnVtYmVyKCkpIHsKICAgICAgICAgaWYgKGF1dG8gcmVzdWx0ID0g
cGFyc2VJbnREb3VibGUodmFsdWUuYXNOdW1iZXIoKSkpCi0gICAgICAgICAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlLCBwYXJzZUludFJlc3VsdChyZXN1bHQudmFsdWUoKSkpOworICAgICAgICAg
ICAgcmV0dXJuIHBhcnNlSW50UmVzdWx0KHJlc3VsdC52YWx1ZSgpKTsKICAgICB9CiAKLSAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCB0b1N0cmluZ1ZpZXcoZ2xvYmFsT2JqZWN0LCB2YWx1ZSwg
WyZdIChTdHJpbmdWaWV3IHZpZXcpIHsKKyAgICByZXR1cm4gdG9TdHJpbmdWaWV3KGdsb2JhbE9i
amVjdCwgdmFsdWUsIFsmXSAoU3RyaW5nVmlldyB2aWV3KSB7CiAgICAgICAgIHJldHVybiBwYXJz
ZUludFJlc3VsdChwYXJzZUludCh2aWV3LCByYWRpeCkpOwotICAgIH0pKTsKKyAgICB9KTsKIH0K
IAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50RG91YmxlLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSwg
aW50MzJfdCByYWRpeCkpCkBAIC0xNTM4LDE0ICsxNDY2LDEzIEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QYXJzZUludERvdWJsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKHJhZGl4ID09IDEwKSB7CiAg
ICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IHBhcnNlSW50RG91YmxlKHZhbHVlKSkKLSAgICAgICAg
ICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHBhcnNlSW50UmVzdWx0KHJlc3VsdC52YWx1ZSgp
KSk7CisgICAgICAgICAgICByZXR1cm4gcGFyc2VJbnRSZXN1bHQocmVzdWx0LnZhbHVlKCkpOwog
ICAgIH0KIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHBhcnNlSW50UmVzdWx0KHBhcnNl
SW50KFN0cmluZzo6bnVtYmVyKHZhbHVlKSwgcmFkaXgpKSk7CisgICAgcmV0dXJuIHBhcnNlSW50
UmVzdWx0KHBhcnNlSW50KFN0cmluZzo6bnVtYmVyKHZhbHVlKSwgcmFkaXgpKTsKIH0KIAogSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50SW50MzIsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdCB2YWx1ZSwgaW50MzJf
dCByYWRpeCkpCkBAIC0xNTUzLDEyICsxNDgwLDExIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QYXJzZUludEludDMyLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKHJhZGl4ID09IDEwKQotICAgICAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodmFsdWUpKSk7
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodmFsdWUpKTsKIAotICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHBhcnNlSW50UmVzdWx0KHBhcnNlSW50KFN0cmluZzo6
bnVtYmVyKHZhbHVlKSwgcmFkaXgpKSk7CisgICAgcmV0dXJuIHBhcnNlSW50UmVzdWx0KHBhcnNl
SW50KFN0cmluZzo6bnVtYmVyKHZhbHVlKSwgcmFkaXgpKTsKIH0KIAogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcsIHNpemVfdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0LCBKU1N0cmluZyog
aW5wdXQpKQpAQCAtMTU2OCw5ICsxNDk0LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCByZWdFeHBP
YmplY3QtPnRlc3RJbmxpbmUoZ2xvYmFsT2JqZWN0LCBpbnB1dCkpOworICAgIHJldHVybiByZWdF
eHBPYmplY3QtPnRlc3RJbmxpbmUoZ2xvYmFsT2JqZWN0LCBpbnB1dCk7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0LCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBSZWdFeHBPYmplY3QqIHJlZ0V4cE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEFyZ3VtZW50KSkKQEAgLTE1ODAsMTQgKzE1MDUsMTMgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3QsIHNpemVfdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmoKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJh
dGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIGFyZ3Vt
ZW50ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRBcmd1bWVudCk7CiAKICAgICBKU1N0cmluZyog
aW5wdXQgPSBhcmd1bWVudC50b1N0cmluZ09yTnVsbChnbG9iYWxPYmplY3QpOwogICAgIGlmICgh
aW5wdXQpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGZhbHNlKTsKLSAgICBPUEVS
QVRJT05fUkVUVVJOKHNjb3BlLCByZWdFeHBPYmplY3QtPnRlc3RJbmxpbmUoZ2xvYmFsT2JqZWN0
LCBpbnB1dCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHJlZ0V4cE9iamVj
dC0+dGVzdElubGluZShnbG9iYWxPYmplY3QsIGlucHV0KTsKIH0KIAogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEFyZ3VtZW50KSkKQEAgLTE2MDUsMTQgKzE1MjksMTQgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljLCBzaXplX3QsIChKU0ds
b2JhbE9iamVjdCogZ2wKICAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9i
amVjdCo+KGJhc2UpOwogICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkgewogICAgICAgICB0aHJv
d1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSwgZmFsc2UpOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgSlNT
dHJpbmcqIGlucHV0ID0gYXJndW1lbnQudG9TdHJpbmdPck51bGwoZ2xvYmFsT2JqZWN0KTsKICAg
ICBFWENFUFRJT05fQVNTRVJUKCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0gIWlucHV0KTsKICAgICBp
ZiAoIWlucHV0KQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBmYWxzZSk7Ci0gICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSwgcmVnZXhwLT50ZXN0KGdsb2JhbE9iamVjdCwgaW5wdXQp
KTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
cmVnZXhwLT50ZXN0KGdsb2JhbE9iamVjdCwgaW5wdXQpKTsKIH0KIAogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblN1YkhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSkKQEAgLTE2
MjAsMTIgKzE1NDQsMTEgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN1Ykhl
YXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAgICAgCiAgICAgSlNCaWdJbnQqIGxlZnRPcGVyYW5kID0ganNDYXN0PEpTQmlnSW50
Kj4ob3AxKTsKICAgICBKU0JpZ0ludCogcmlnaHRPcGVyYW5kID0ganNDYXN0PEpTQmlnSW50Kj4o
b3AyKTsKICAgICAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUo
SlNCaWdJbnQ6OnN1YihnbG9iYWxPYmplY3QsIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpKSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6c3ViKGdsb2JhbE9iamVjdCwg
bGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQml0Tm90SGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9wMSkpCkBAIC0xNjMzLDExICsxNTU2LDEwIEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25CaXROb3RIZWFwQmlnSW50LCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNC
aWdJbnQqIG9wZXJhbmQgPSBqc0Nhc3Q8SlNCaWdJbnQqPihvcDEpOwogCi0gICAgT1BFUkFUSU9O
X1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50OjpiaXR3aXNlTm90KGdsb2Jh
bE9iamVjdCwgb3BlcmFuZCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50
OjpiaXR3aXNlTm90KGdsb2JhbE9iamVjdCwgb3BlcmFuZCkpOwogfQogCiBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTXVsSGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKQpAQCAt
MTY0NSwxMiArMTU2NywxMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTXVs
SGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdAogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKIAogICAgIEpTQmlnSW50KiBsZWZ0T3BlcmFuZCA9IGpzQ2FzdDxKU0JpZ0ludCo+
KG9wMSk7CiAgICAgSlNCaWdJbnQqIHJpZ2h0T3BlcmFuZCA9IGpzQ2FzdDxKU0JpZ0ludCo+KG9w
Mik7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJ
bnQ6Om11bHRpcGx5KGdsb2JhbE9iamVjdCwgbGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50OjptdWx0aXBseShnbG9iYWxPYmpl
Y3QsIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpKTsKIH0KICAgICAKIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Nb2RIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpCkBAIC0x
NjU4LDEyICsxNTc5LDExIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Nb2RI
ZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogICAgIAogICAgIEpTQmlnSW50KiBsZWZ0T3BlcmFuZCA9IGpzQ2FzdDxKU0JpZ0lu
dCo+KG9wMSk7CiAgICAgSlNCaWdJbnQqIHJpZ2h0T3BlcmFuZCA9IGpzQ2FzdDxKU0JpZ0ludCo+
KG9wMik7CiAgICAgCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KEpTQmlnSW50OjpyZW1haW5kZXIoZ2xvYmFsT2JqZWN0LCBsZWZ0T3BlcmFuZCwgcmlnaHRPcGVy
YW5kKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJbnQ6OnJlbWFpbmRlcihn
bG9iYWxPYmplY3QsIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpKTsKIH0KIAogSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRpdkhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSkK
QEAgLTE2NzEsMTIgKzE1OTEsMTEgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkRpdkhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAgICAgCiAgICAgSlNCaWdJbnQqIGxlZnRPcGVyYW5kID0ganNDYXN0PEpT
QmlnSW50Kj4ob3AxKTsKICAgICBKU0JpZ0ludCogcmlnaHRPcGVyYW5kID0ganNDYXN0PEpTQmln
SW50Kj4ob3AyKTsKICAgICAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjpl
bmNvZGUoSlNCaWdJbnQ6OmRpdmlkZShnbG9iYWxPYmplY3QsIGxlZnRPcGVyYW5kLCByaWdodE9w
ZXJhbmQpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6ZGl2aWRlKGds
b2JhbE9iamVjdCwgbGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkpOwogfQogCiBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG93SGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKQpA
QCAtMTY4NCwxMiArMTYwMywxMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UG93SGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdAogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICAKICAgICBKU0JpZ0ludCogbGVmdE9wZXJhbmQgPSBqc0Nhc3Q8SlNC
aWdJbnQqPihvcDEpOwogICAgIEpTQmlnSW50KiByaWdodE9wZXJhbmQgPSBqc0Nhc3Q8SlNCaWdJ
bnQqPihvcDIpOwogICAgIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVu
Y29kZShKU0JpZ0ludDo6ZXhwb25lbnRpYXRlKGdsb2JhbE9iamVjdCwgbGVmdE9wZXJhbmQsIHJp
Z2h0T3BlcmFuZCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50OjpleHBv
bmVudGlhdGUoZ2xvYmFsT2JqZWN0LCBsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kKSk7CiB9CiAK
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25CaXRBbmRIZWFwQmlnSW50LCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb3AxLCBK
U0NlbGwqIG9wMikpCkBAIC0xNjk3LDEyICsxNjE1LDExIEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25CaXRBbmRIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNCaWdJbnQqIGxlZnRPcGVyYW5kID0g
anNDYXN0PEpTQmlnSW50Kj4ob3AxKTsKICAgICBKU0JpZ0ludCogcmlnaHRPcGVyYW5kID0ganND
YXN0PEpTQmlnSW50Kj4ob3AyKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFs
dWU6OmVuY29kZShKU0JpZ0ludDo6Yml0d2lzZUFuZChnbG9iYWxPYmplY3QsIGxlZnRPcGVyYW5k
LCByaWdodE9wZXJhbmQpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6
Yml0d2lzZUFuZChnbG9iYWxPYmplY3QsIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpKTsKIH0K
IAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkJpdExTaGlmdEhlYXBCaWdJbnQs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBv
cDEsIEpTQ2VsbCogb3AyKSkKQEAgLTE3MTAsMTIgKzE2MjcsMTEgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkJpdExTaGlmdEhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWwKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblBy
b2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU0JpZ0ludCogbGVmdE9wZXJh
bmQgPSBqc0Nhc3Q8SlNCaWdJbnQqPihvcDEpOwogICAgIEpTQmlnSW50KiByaWdodE9wZXJhbmQg
PSBqc0Nhc3Q8SlNCaWdJbnQqPihvcDIpOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50OjpsZWZ0U2hpZnQoZ2xvYmFsT2JqZWN0LCBsZWZ0T3Bl
cmFuZCwgcmlnaHRPcGVyYW5kKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJ
bnQ6OmxlZnRTaGlmdChnbG9iYWxPYmplY3QsIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpKTsK
IH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFkZEhlYXBCaWdJbnQsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEs
IEpTQ2VsbCogb3AyKSkKQEAgLTE3MjMsMTIgKzE2MzksMTEgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFkZEhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xv
Z3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgCiAgICAgSlNCaWdJbnQqIGxlZnRPcGVy
YW5kID0ganNDYXN0PEpTQmlnSW50Kj4ob3AxKTsKICAgICBKU0JpZ0ludCogcmlnaHRPcGVyYW5k
ID0ganNDYXN0PEpTQmlnSW50Kj4ob3AyKTsKICAgICAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJbnQ6OmFkZChnbG9iYWxPYmplY3QsIGxlZnRPcGVy
YW5kLCByaWdodE9wZXJhbmQpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0lu
dDo6YWRkKGdsb2JhbE9iamVjdCwgbGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkpOwogfQogCiBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQml0UlNoaWZ0SGVhcEJpZ0ludCwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9wMSwg
SlNDZWxsKiBvcDIpKQpAQCAtMTczNiwxMiArMTY1MSwxMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQml0UlNoaWZ0SGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAKICAgICBKU0JpZ0ludCogbGVmdE9wZXJh
bmQgPSBqc0Nhc3Q8SlNCaWdJbnQqPihvcDEpOwogICAgIEpTQmlnSW50KiByaWdodE9wZXJhbmQg
PSBqc0Nhc3Q8SlNCaWdJbnQqPihvcDIpOwogICAgIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6c2lnbmVkUmlnaHRTaGlmdChnbG9iYWxPYmpl
Y3QsIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU0JpZ0ludDo6c2lnbmVkUmlnaHRTaGlmdChnbG9iYWxPYmplY3QsIGxlZnRPcGVyYW5k
LCByaWdodE9wZXJhbmQpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkJpdE9ySGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKQpAQCAtMTc0OSwxMiArMTY2MywxMSBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQml0T3JIZWFwQmlnSW50LCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAg
ICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAKICAg
ICBKU0JpZ0ludCogbGVmdE9wZXJhbmQgPSBqc0Nhc3Q8SlNCaWdJbnQqPihvcDEpOwogICAgIEpT
QmlnSW50KiByaWdodE9wZXJhbmQgPSBqc0Nhc3Q8SlNCaWdJbnQqPihvcDIpOwogICAgIAotICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6Yml0d2lz
ZU9yKGdsb2JhbE9iamVjdCwgbGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50OjpiaXR3aXNlT3IoZ2xvYmFsT2JqZWN0LCBsZWZ0
T3BlcmFuZCwgcmlnaHRPcGVyYW5kKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25CaXRYb3JIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpCkBAIC0xNzYyLDIyICsx
Njc1LDIwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25CaXRYb3JIZWFwQmln
SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqCiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0s
IGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
CiAgICAgSlNCaWdJbnQqIGxlZnRPcGVyYW5kID0ganNDYXN0PEpTQmlnSW50Kj4ob3AxKTsKICAg
ICBKU0JpZ0ludCogcmlnaHRPcGVyYW5kID0ganNDYXN0PEpTQmlnSW50Kj4ob3AyKTsKIAotICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6Yml0d2lz
ZVhvcihnbG9iYWxPYmplY3QsIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6Yml0d2lzZVhvcihnbG9iYWxPYmplY3QsIGxl
ZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcUNlbGwsIHNpemVfdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2VsbCwgc2l6ZV90LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3Vl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29w
ZSwgSlNWYWx1ZTo6c3RyaWN0RXF1YWxGb3JDZWxscyhnbG9iYWxPYmplY3QsIG9wMSwgb3AyKSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OnN0cmljdEVxdWFsRm9yQ2VsbHMoZ2xvYmFsT2JqZWN0LCBv
cDEsIG9wMik7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TYW1lVmFs
dWUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGFyZzEsIEVuY29kZWRKU1ZhbHVlIGFyZzIpKQpAQCAtMTc4NSw5ICsxNjk2LDggQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNhbWVWYWx1ZSwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamUKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlLCBzYW1lVmFsdWUoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoYXJn
MSksIEpTVmFsdWU6OmRlY29kZShhcmcyKSkpOworICAgIHJldHVybiBzYW1lVmFsdWUoZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoYXJnMSksIEpTVmFsdWU6OmRlY29kZShhcmcyKSk7CiB9
CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub1ByaW1pdGl2ZSwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2
YWx1ZSkpCkBAIC0xNzk1LDkgKzE3MDUsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uVG9QcmltaXRpdmUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqCiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogICAgIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFs
dWU6OmVuY29kZShKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvUHJpbWl0aXZlKGdsb2JhbE9iamVj
dCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWU6OmRlY29kZSh2YWx1ZSku
dG9QcmltaXRpdmUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Ub1Byb3BlcnR5S2V5LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKSkKQEAgLTE4MDUsOSArMTcxNCw4
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub1Byb3BlcnR5S2V5LCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
ICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWU6OmRlY29kZSh2
YWx1ZSkudG9Qcm9wZXJ0eUtleVZhbHVlKGdsb2JhbE9iamVjdCkpKTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9Qcm9wZXJ0eUtleVZhbHVlKGds
b2JhbE9iamVjdCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9Q
cm9wZXJ0eUtleU9yTnVtYmVyLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKSkKQEAgLTE4MTUsMTAgKzE3MjMsOSBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9Qcm9wZXJ0eUtleU9yTnVtYmVyLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYgogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAg
SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUp
OwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFs
dWUganNWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUuaXNOdW1iZXIoKSA/IGpzVmFsdWUgOiBq
c1ZhbHVlLnRvUHJvcGVydHlLZXlWYWx1ZShnbG9iYWxPYmplY3QpKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1ZhbHVlLmlzTnVtYmVyKCkgPyBqc1ZhbHVlIDoganNWYWx1ZS50b1By
b3BlcnR5S2V5VmFsdWUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Ub051bWJlciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCkBAIC0xODI2LDkgKzE3MzMsOCBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9OdW1iZXIsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAg
ICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihKU1ZhbHVlOjpk
ZWNvZGUodmFsdWUpLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvTnVtYmVyKGdsb2Jh
bE9iamVjdCkpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvTnVt
YmVyU3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTU3RyaW5nKiBzdHJpbmcpKQpAQCAtMTgzOSwyOCArMTc0NSwyOCBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVG9OdW1iZXJTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplYwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAog
ICAgIFN0cmluZyB2aWV3ID0gc3RyaW5nLT52YWx1ZShnbG9iYWxPYmplY3QpOwotICAgIE9QRVJB
VElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgdW5zaWduZWQgc2l6ZSA9IHZp
ZXcubGVuZ3RoKCk7CiAgICAgaWYgKHNpemUgPT0gMSkgewogICAgICAgICBVQ2hhciBjID0gdmll
d1swXTsKICAgICAgICAgaWYgKGlzQVNDSUlEaWdpdChjKSkKLSAgICAgICAgICAgIE9QRVJBVElP
Tl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihzdGF0aWNfY2FzdDxpbnQz
Ml90PihjIC0gJzAnKSkpKTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oYyAtICcwJykpKTsKICAgICAgICAgaWYgKGlzU3Ry
V2hpdGVTcGFjZShjKSkKLSAgICAgICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcigwKSkpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSkpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcigwKSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
YU4oKSk7CiAgICAgfQogCiAgICAgaWYgKHNpemUgPT0gMiAmJiB2aWV3WzBdID09ICctJykgewog
ICAgICAgICBVQ2hhciBjID0gdmlld1sxXTsKICAgICAgICAgaWYgKGMgPT0gJzAnKQotICAgICAg
ICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC0w
LjApKSk7CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC0wLjAp
KTsKICAgICAgICAgaWYgKGlzQVNDSUlEaWdpdChjKSkKLSAgICAgICAgICAgIE9QRVJBVElPTl9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigtc3RhdGljX2Nhc3Q8aW50MzJf
dD4oYyAtICcwJykpKSk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShqc05hTigpKSk7CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKC1zdGF0aWNfY2FzdDxpbnQzMl90PihjIC0gJzAnKSkpOworICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIH0KIAotICAgIE9QRVJBVElPTl9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihqc1RvTnVtYmVyKHZpZXcpKSkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoanNUb051bWJlcih2aWV3KSkpOwogfQog
CiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9OdW1lcmljLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVl
KSkKQEAgLTE4NjgsOSArMTc3NCw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Ub051bWVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsCiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9OdW1lcmljKGdsb2JhbE9iamVjdCkpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9OdW1lcmlj
KGdsb2JhbE9iamVjdCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q2FsbE51bWJlckNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCkBAIC0xODgyLDExICsx
Nzg3LDExIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsTnVtYmVyQ29u
c3RydWN0b3IsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iCiAKICAgICBKU1ZhbHVlIHZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CiAgICAgSlNWYWx1ZSBudW1lcmljID0gdmFs
dWUudG9OdW1lcmljKGdsb2JhbE9iamVjdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CiAgICAgaWYgKG51bWVyaWMuaXNOdW1iZXIoKSkKLSAgICAgICAgT1BFUkFU
SU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKG51bWVyaWMpKTsKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShudW1lcmljKTsKICAgICBBU1NFUlQobnVtZXJpYy5pc0JpZ0lu
dCgpKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJ
bnQ6OnRvTnVtYmVyKG51bWVyaWMpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0Jp
Z0ludDo6dG9OdW1iZXIobnVtZXJpYykpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlJZFdpdGhUaGlzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRUaGlzLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIHVpbnRwdHJfdCByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKSkKQEAgLTE4OTQsMTMgKzE3OTksMTEgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KgogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIENhY2hlYWJsZUlkZW50aWZpZXIg
aWRlbnRpZmllciA9IENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21SYXdCaXRzKHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpOwogICAgIElkZW50aWZpZXIgaWRlbnQgPSBJZGVudGlmaWVyOjpm
cm9tVWlkKHZtLCBpZGVudGlmaWVyLnVpZCgpKTsKIAogICAgIHB1dFdpdGhUaGlzPHRydWU+KGds
b2JhbE9iamVjdCwgZW5jb2RlZEJhc2UsIGVuY29kZWRUaGlzLCBlbmNvZGVkVmFsdWUsIGlkZW50
KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpcywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVGhpcywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCB1aW50cHRyX3QgcmF3Q2Fj
aGVhYmxlSWRlbnRpZmllcikpCkBAIC0xOTA4LDEzICsxODExLDExIEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXMsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Q
cm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgQ2FjaGVhYmxlSWRlbnRpZmll
ciBpZGVudGlmaWVyID0gQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbVJhd0JpdHMocmF3
Q2FjaGVhYmxlSWRlbnRpZmllcik7CiAgICAgSWRlbnRpZmllciBpZGVudCA9IElkZW50aWZpZXI6
OmZyb21VaWQodm0sIGlkZW50aWZpZXIudWlkKCkpOwogCiAgICAgcHV0V2l0aFRoaXM8ZmFsc2U+
KGdsb2JhbE9iamVjdCwgZW5jb2RlZEJhc2UsIGVuY29kZWRUaGlzLCBlbmNvZGVkVmFsdWUsIGlk
ZW50KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKIH0KIAogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsV2l0aFRoaXNTdHJpY3QsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFRoaXMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCkBAIC0xOTI1LDEwICsxODI2LDkgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsV2l0aFRoaXNTdHJpY3QsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCoKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAKICAgICBJZGVudGlmaWVyIHByb3BlcnR5ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRT
dWJzY3JpcHQpLnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
dm9pZCgpKTsKICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgcHV0V2l0aFRoaXM8dHJ1ZT4oZ2xv
YmFsT2JqZWN0LCBlbmNvZGVkQmFzZSwgZW5jb2RlZFRoaXMsIGVuY29kZWRWYWx1ZSwgcHJvcGVy
dHkpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxXaXRoVGhpcywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVGhpcywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKQEAgLTE5MzksMTAgKzE4MzksOSBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxXaXRoVGhpcywgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAog
ICAgIElkZW50aWZpZXIgcHJvcGVydHkgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlw
dCkudG9Qcm9wZXJ0eUtleShnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkp
OwogICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICBwdXRXaXRoVGhpczxmYWxzZT4oZ2xvYmFsT2Jq
ZWN0LCBlbmNvZGVkQmFzZSwgZW5jb2RlZFRoaXMsIGVuY29kZWRWYWx1ZSwgcHJvcGVydHkpOwot
ICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2
b2lkIGRlZmluZURhdGFQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09i
amVjdCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBpbnQzMl90IGF0dHJpYnV0ZXMpCkBAIC0xOTYzLDEwICsxODYyLDkgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG8KICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
ICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkUHJv
cGVydHkpLnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9p
ZCgpKTsKICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgZGVmaW5lRGF0YVByb3BlcnR5KGdsb2Jh
bE9iamVjdCwgYmFzZSwgcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KSwgYXR0cmlidXRlcyk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTdHJpbmcsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgSlNTdHJp
bmcqIHByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGludDMyX3QgYXR0cmli
dXRlcykpCkBAIC0xOTc3LDEwICsxODc1LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsT2JqZWMKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBJZGVudGlmaWVy
IHByb3BlcnR5TmFtZSA9IHByb3BlcnR5LT50b0lkZW50aWZpZXIoZ2xvYmFsT2JqZWN0KTsKLSAg
ICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSk7CisgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgZGVmaW5l
RGF0YVByb3BlcnR5KGdsb2JhbE9iamVjdCwgYmFzZSwgcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFZhbHVlKSwgYXR0cmlidXRlcyk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihz
Y29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRh
UHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0KiBiYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHksIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGVzKSkKQEAgLTE5ODgsOSArMTg4NSw3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlT
dHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
ICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIGRl
ZmluZURhdGFQcm9wZXJ0eShnbG9iYWxPYmplY3QsIGJhc2UsIElkZW50aWZpZXI6OmZyb21VaWQo
dm0sIHByb3BlcnR5KSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIGF0dHJpYnV0ZXMp
OwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFN5bWJvbCogcHJvcGVydHksIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGVzKSkKQEAgLTE5OTgs
OSArMTg5Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRh
UHJvcGVydHlTeW1ib2wsIHZvaWQsIChKU0dsb2JhbE9iamVjCiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogICAgIGRlZmluZURhdGFQcm9wZXJ0eShnbG9iYWxPYmplY3QsIGJhc2UsIElkZW50aWZpZXI6
OmZyb21VaWQocHJvcGVydHktPnByaXZhdGVOYW1lKCkpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZFZhbHVlKSwgYXR0cmlidXRlcyk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAK
IEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVjdCogc2V0dGVyLCBpbnQzMl90
IGF0dHJpYnV0ZXMpCkBAIC0yMDIxLDkgKzE5MTQsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KgogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIElkZW50
aWZpZXIgcHJvcGVydHlOYW1lID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRQcm9wZXJ0eSkudG9Q
cm9wZXJ0eUtleShnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogICAg
IGRlZmluZUFjY2Vzc29yUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCBiYXNlLCBwcm9wZXJ0eU5hbWUs
IGdldHRlciwgc2V0dGVyLCBhdHRyaWJ1dGVzKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
KTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29y
UHJvcGVydHlTdHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09i
amVjdCogYmFzZSwgSlNTdHJpbmcqIHByb3BlcnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVj
dCogc2V0dGVyLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQpAQCAtMjAzNCw5ICsxOTI2LDggQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJp
bmcsIHZvaWQsIChKU0dsb2JhbE8KICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IHByb3BlcnR5LT50b0lkZW50
aWZpZXIoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICBkZWZp
bmVBY2Nlc3NvclByb3BlcnR5KGdsb2JhbE9iamVjdCwgYmFzZSwgcHJvcGVydHlOYW1lLCBnZXR0
ZXIsIHNldHRlciwgYXR0cmlidXRlcyk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9
CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3Bl
cnR5U3RyaW5nSWRlbnQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09i
amVjdCogYmFzZSwgVW5pcXVlZFN0cmluZ0ltcGwqIHByb3BlcnR5LCBKU09iamVjdCogZ2V0dGVy
LCBKU09iamVjdCogc2V0dGVyLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQpAQCAtMjA0NCw5ICsxOTM1
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJv
cGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2wKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2Fs
bEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAg
ZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShnbG9iYWxPYmplY3QsIGJhc2UsIElkZW50aWZpZXI6OmZy
b21VaWQodm0sIHByb3BlcnR5KSwgZ2V0dGVyLCBzZXR0ZXIsIGF0dHJpYnV0ZXMpOwotICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN5bWJvbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBTeW1ib2wqIHByb3BlcnR5LCBKU09iamVj
dCogZ2V0dGVyLCBKU09iamVjdCogc2V0dGVyLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQpAQCAtMjA1
NCw5ICsxOTQzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFj
Y2Vzc29yUHJvcGVydHlTeW1ib2wsIHZvaWQsIChKU0dsb2JhbE8KICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShnbG9iYWxPYmplY3QsIGJhc2UsIElkZW50
aWZpZXI6OmZyb21VaWQocHJvcGVydHktPnByaXZhdGVOYW1lKCkpLCBnZXR0ZXIsIHNldHRlciwg
YXR0cmlidXRlcyk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheSwgY2hhciosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCB2b2lkKiBidWZmZXIs
IHNpemVfdCBzaXplKSkKQEAgLTIwNjQsMTAgKzE5NTEsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3QXJyYXksIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBBY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUg
YWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlKFNjcmF0Y2hCdWZmZXI6OmZyb21EYXRhKGJ1ZmZlciks
IHNpemUpOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgYml0d2lzZV9jYXN0PGNoYXIq
Pihjb25zdHJ1Y3RBcnJheShnbG9iYWxPYmplY3QsIGFycmF5U3RydWN0dXJlLCBzdGF0aWNfY2Fz
dDxKU1ZhbHVlKj4oYnVmZmVyKSwgc2l6ZSkpKTsKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PGNo
YXIqPihjb25zdHJ1Y3RBcnJheShnbG9iYWxPYmplY3QsIGFycmF5U3RydWN0dXJlLCBzdGF0aWNf
Y2FzdDxKU1ZhbHVlKj4oYnVmZmVyKSwgc2l6ZSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3RW1wdHlBcnJheSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBTdHJ1
Y3R1cmUqIGFycmF5U3RydWN0dXJlKSkKQEAgLTIwNzUsOSArMTk2MSw4IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdFbXB0eUFycmF5LCBjaGFyKiwgKFZNKiB2bVBvaW50
ZXIsIFN0cnVjdHVyCiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNj
b3BlLCBiaXR3aXNlX2Nhc3Q8Y2hhcio+KEpTQXJyYXk6OmNyZWF0ZSh2bSwgYXJyYXlTdHJ1Y3R1
cmUpKSk7CisgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxjaGFyKj4oSlNBcnJheTo6Y3JlYXRlKHZt
LCBhcnJheVN0cnVjdHVyZSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCBpbnQzMl90IHNpemUsIEJ1dHRlcmZseSogYnV0
dGVyZmx5KSkKQEAgLTIwODksNyArMTk3NCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAK
ICAgICBpZiAoVU5MSUtFTFkoc2l6ZSA8IDApKSB7CiAgICAgICAgIHRocm93RXhjZXB0aW9uKGds
b2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBBcnJheUlu
dmFsaWRMZW5ndGhFcnJvcikpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBudWxs
cHRyKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgSlNBcnJheSogcmVz
dWx0OwpAQCAtMjA5OSwxMCArMTk4NCwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAg
ICAgICByZXN1bHQgPSBKU0FycmF5Ojp0cnlDcmVhdGUodm0sIGFycmF5U3RydWN0dXJlLCBzaXpl
KTsKICAgICAgICAgaWYgKFVOTElLRUxZKCFyZXN1bHQpKSB7CiAgICAgICAgICAgICB0aHJvd091
dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAgICAgICBPUEVSQVRJ
T05fUkVUVVJOKHNjb3BlLCBudWxscHRyKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgICAgICB9CiAgICAgfQotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGJpdHdpc2VfY2Fz
dDxjaGFyKj4ocmVzdWx0KSk7CisgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxjaGFyKj4ocmVzdWx0
KTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNp
emVBbmRIaW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogYXJyYXlTdHJ1Y3R1cmUsIGludDMyX3Qgc2l6ZSwgaW50MzJfdCB2ZWN0b3JMZW5ndGhIaW50
LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCkBAIC0yMTE0LDcgKzE5OTksNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZUFuZEhpbnQsIGNoYXIqLCAo
SlNHbG9iYWxPYmplYwogCiAgICAgaWYgKFVOTElLRUxZKHNpemUgPCAwKSkgewogICAgICAgICB0
aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGdsb2Jh
bE9iamVjdCwgQXJyYXlJbnZhbGlkTGVuZ3RoRXJyb3IpKTsKLSAgICAgICAgT1BFUkFUSU9OX1JF
VFVSTihzY29wZSwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAog
ICAgIEpTQXJyYXkqIHJlc3VsdDsKQEAgLTIxMjQsMTAgKzIwMDksMTAgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemVBbmRIaW50LCBjaGFyKiwgKEpT
R2xvYmFsT2JqZWMKICAgICAgICAgcmVzdWx0ID0gSlNBcnJheTo6dHJ5Q3JlYXRlKHZtLCBhcnJh
eVN0cnVjdHVyZSwgc2l6ZSwgdmVjdG9yTGVuZ3RoSGludCk7CiAgICAgICAgIGlmIChVTkxJS0VM
WSghcmVzdWx0KSkgewogICAgICAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUpOwotICAgICAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgbnVsbHB0
cik7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KLSAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCBiaXR3aXNlX2Nhc3Q8Y2hhcio+KHJlc3VsdCkpOworICAg
IHJldHVybiBiaXR3aXNlX2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheUJ1ZmZlciwgSlNDZWxsKiwgKFZNKiB2bVBvaW50
ZXIsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUsIEpTQ2VsbCogaW1tdXRhYmxlQnV0dGVyZmx5
Q2VsbCkpCkBAIC0yMTM1LDE0ICsyMDIwLDEzIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdBcnJheUJ1ZmZlciwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjCiAg
ICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICBBU1NFUlQoIWFycmF5U3RydWN0dXJlLT5vdXRPZkxpbmVDYXBhY2l0
eSgpKTsKICAgICBhdXRvKiBpbW11dGFibGVCdXR0ZXJmbHkgPSBqc0Nhc3Q8SlNJbW11dGFibGVC
dXR0ZXJmbHkqPihpbW11dGFibGVCdXR0ZXJmbHlDZWxsKTsKICAgICBBU1NFUlQoYXJyYXlTdHJ1
Y3R1cmUtPmluZGV4aW5nTW9kZSgpID09IGltbXV0YWJsZUJ1dHRlcmZseS0+aW5kZXhpbmdNb2Rl
KCkgfHwgaGFzQW55QXJyYXlTdG9yYWdlKGFycmF5U3RydWN0dXJlLT5pbmRleGluZ01vZGUoKSkp
OwogICAgIGF1dG8qIHJlc3VsdCA9IENvbW1vblNsb3dQYXRoczo6YWxsb2NhdGVOZXdBcnJheUJ1
ZmZlcih2bSwgYXJyYXlTdHJ1Y3R1cmUsIGltbXV0YWJsZUJ1dHRlcmZseSk7CiAgICAgQVNTRVJU
KHJlc3VsdC0+aW5kZXhpbmdNb2RlKCkgPT0gcmVzdWx0LT5zdHJ1Y3R1cmUoKS0+aW5kZXhpbmdN
b2RlKCkpOwogICAgIEFTU0VSVChyZXN1bHQtPnN0cnVjdHVyZSgpID09IGFycmF5U3RydWN0dXJl
KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCByZXN1bHQpOworICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKICNkZWZpbmUgSlNDX1RZUEVEX0FSUkFZX09QRVJBVElPTlModHlwZSkgXApAQCAt
MjE1MSw4ICsyMDM1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Fy
cmF5QnVmZmVyLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWMKICAgICAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOyBcCiAgICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsgXAogICAgICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7IFwKLSAgICAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOyBcCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4o
c2NvcGUsIG5ld1R5cGVkQXJyYXlXaXRoU2l6ZTxKUyMjdHlwZSMjQXJyYXk+KGdsb2JhbE9iamVj
dCwgdm0sIHN0cnVjdHVyZSwgbGVuZ3RoLCB2ZWN0b3IpKTsgXAorICAgICAgICByZXR1cm4gbmV3
VHlwZWRBcnJheVdpdGhTaXplPEpTIyN0eXBlIyNBcnJheT4oZ2xvYmFsT2JqZWN0LCB2bSwgc3Ry
dWN0dXJlLCBsZW5ndGgsIHZlY3Rvcik7IFwKICAgICB9IFwKICAgICBcCiAgICAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ldyMjdHlwZSMjQXJyYXlXaXRoT25lQXJndW1lbnQs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkgXApAQCAtMjE2MCwxMyArMjA0MywxMiBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3QXJyYXlCdWZmZXIsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBT
dHJ1YwogICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7IFwKICAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOyBcCiAgICAgICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsg
XAotICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7IFwKICAgICAg
ICAgSlNWYWx1ZSBmaXJzdFZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7IFwK
ICAgICAgICAgYm9vbCBpc1Jlc2l6YWJsZU9yR3Jvd2FibGVTaGFyZWQgPSBmYWxzZTsgXAogICAg
ICAgICBpZiAoYXV0byogYXJyYXlCdWZmZXIgPSBqc0R5bmFtaWNDYXN0PEpTQXJyYXlCdWZmZXIq
PihmaXJzdFZhbHVlKSkgXAogICAgICAgICAgICAgaXNSZXNpemFibGVPckdyb3dhYmxlU2hhcmVk
ID0gYXJyYXlCdWZmZXItPmlzUmVzaXphYmxlT3JHcm93YWJsZVNoYXJlZCgpOyBcCiAgICAgICAg
IFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT50eXBlZEFycmF5U3RydWN0dXJl
KFR5cGUjI3R5cGUsIGlzUmVzaXphYmxlT3JHcm93YWJsZVNoYXJlZCk7IFwKLSAgICAgICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSwgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKUyMjdHlwZSMjQXJyYXk+KGdsb2JhbE9i
amVjdCwgc3RydWN0dXJlLCBmaXJzdFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQpKSk7IFwKKyAgICAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFy
cmF5Vmlld1dpdGhBcmd1bWVudHM8SlMjI3R5cGUjI0FycmF5PihnbG9iYWxPYmplY3QsIHN0cnVj
dHVyZSwgZmlyc3RWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7IFwKICAgICB9IFwKIAogICAgIEZP
Ul9FQUNIX1RZUEVEX0FSUkFZX1RZUEVfRVhDTFVESU5HX0RBVEFfVklFVyhKU0NfVFlQRURfQVJS
QVlfT1BFUkFUSU9OUykKQEAgLTIxNzcsOSArMjA1OSw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdBcnJheUl0ZXJhdG9yLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwg
U3RyCiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTQXJyYXlJ
dGVyYXRvcjo6Y3JlYXRlV2l0aEluaXRpYWxWYWx1ZXModm0sIHN0cnVjdHVyZSkpOworICAgIHJl
dHVybiBKU0FycmF5SXRlcmF0b3I6OmNyZWF0ZVdpdGhJbml0aWFsVmFsdWVzKHZtLCBzdHJ1Y3R1
cmUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3TWFwSXRlcmF0
b3IsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkpCkBAIC0y
MTg3LDkgKzIwNjgsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3TWFw
SXRlcmF0b3IsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBTdHJ1YwogICAgIFZNJiB2bSA9ICp2
bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
LSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU01hcEl0ZXJhdG9yOjpjcmVhdGVXaXRoSW5p
dGlhbFZhbHVlcyh2bSwgc3RydWN0dXJlKSk7CisgICAgcmV0dXJuIEpTTWFwSXRlcmF0b3I6OmNy
ZWF0ZVdpdGhJbml0aWFsVmFsdWVzKHZtLCBzdHJ1Y3R1cmUpOwogfQogCiBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3U2V0SXRlcmF0b3IsIEpTQ2VsbCosIChWTSogdm1Qb2lu
dGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkpCkBAIC0yMTk3LDIwICsyMDc3LDE4IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdTZXRJdGVyYXRvciwgSlNDZWxsKiwgKFZN
KiB2bVBvaW50ZXIsIFN0cnVjCiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4o
c2NvcGUsIEpTU2V0SXRlcmF0b3I6OmNyZWF0ZVdpdGhJbml0aWFsVmFsdWVzKHZtLCBzdHJ1Y3R1
cmUpKTsKKyAgICByZXR1cm4gSlNTZXRJdGVyYXRvcjo6Y3JlYXRlV2l0aEluaXRpYWxWYWx1ZXMo
dm0sIHN0cnVjdHVyZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
cmVhdGVBY3RpdmF0aW9uRGlyZWN0LCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTU2NvcGUqIGpzU2NvcGUsIFN5bWJvbFRhYmxlKiB0YWJsZSwgRW5jb2Rl
ZEpTVmFsdWUgaW5pdGlhbFZhbHVlRW5jb2RlZCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ3JlYXRlQWN0aXZhdGlvbkRpcmVjdCwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1Njb3BlKiBzY29wZSwgU3ltYm9sVGFibGUqIHRhYmxl
LCBFbmNvZGVkSlNWYWx1ZSBpbml0aWFsVmFsdWVFbmNvZGVkKSkKIHsKICAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0s
IGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
ICAgIEpTVmFsdWUgaW5pdGlhbFZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGluaXRpYWxWYWx1ZUVu
Y29kZWQpOwogICAgIEFTU0VSVChpbml0aWFsVmFsdWUgPT0ganNVbmRlZmluZWQoKSB8fCBpbml0
aWFsVmFsdWUgPT0ganNURFpWYWx1ZSgpKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBK
U0xleGljYWxFbnZpcm9ubWVudDo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIGpzU2NvcGUsIHRhYmxl
LCBpbml0aWFsVmFsdWUpKTsKKyAgICByZXR1cm4gSlNMZXhpY2FsRW52aXJvbm1lbnQ6OmNyZWF0
ZSh2bSwgc3RydWN0dXJlLCBzY29wZSwgdGFibGUsIGluaXRpYWxWYWx1ZSk7CiB9CiAKIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHMsIEpTQ2Vs
bCosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdWludDMyX3QgbGVuZ3Ro
LCB1aW50MzJfdCBtaW5DYXBhY2l0eSkpCkBAIC0yMjE4LDI4ICsyMDk2LDI2IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHMsIEpTQ2VsbCos
IChWTSogdm1Qb2ludGVyCiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBEaXJlY3RBcmd1bWVudHMqIHJlc3Vs
dCA9IERpcmVjdEFyZ3VtZW50czo6Y3JlYXRlKAogICAgICAgICB2bSwgc3RydWN0dXJlLCBsZW5n
dGgsIHN0ZDo6bWF4KGxlbmd0aCwgbWluQ2FwYWNpdHkpKTsKICAgICAvLyBUaGUgY2FsbGVyIHdp
bGwgc3RvcmUgdG8gdGhpcyBvYmplY3Qgd2l0aG91dCBiYXJyaWVycy4gTW9zdCBsaWtlbHksIGF0
IHRoaXMgcG9pbnQsIHRoaXMgaXMKICAgICAvLyBzdGlsbCBhIHlvdW5nIG9iamVjdCBhbmQgc28g
bm8gYmFycmllcnMgYXJlIG5lZWRlZC4gQnV0IGl0J3MgZ29vZCB0byBiZSBjYXJlZnVsIGFueXdh
eSwKICAgICAvLyBzaW5jZSB0aGUgR0Mgc2hvdWxkIGJlIGFsbG93ZWQgdG8gZG8gY3JhenkgKGxp
a2UgcHJldGVudXJpbmcsIGZvciBleGFtcGxlKS4KICAgICB2bS53cml0ZUJhcnJpZXIocmVzdWx0
KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCByZXN1bHQpOworICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVTY29wZWRB
cmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGxlbmd0aCwg
SlNGdW5jdGlvbiogY2FsbGVlLCBKU0xleGljYWxFbnZpcm9ubWVudCogZW52aXJvbm1lbnQpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVNjb3BlZEFyZ3VtZW50cywg
SlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgbGVuZ3RoLCBKU0Z1bmN0aW9u
KiBjYWxsZWUsIEpTTGV4aWNhbEVudmlyb25tZW50KiBzY29wZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogICAgIAogICAgIC8vIFdlIGNvdWxkIHBhc3MgdGhlIFNjb3BlZEFyZ3VtZW50c1Rh
YmxlKiBhcyBhbiBhcmd1bWVudC4gV2UgY3VycmVudGx5IGRvbid0IGJlY2F1c2UgSQogICAgIC8v
IGRpZG4ndCBmZWVsIGxpa2UgY2hhbmdpbmcgdGhlIG1heCBudW1iZXIgb2YgYXJndW1lbnRzIGZv
ciBhIHNsb3cgcGF0aCBjYWxsIGZyb20gNiB0byA3LgotICAgIFNjb3BlZEFyZ3VtZW50c1RhYmxl
KiB0YWJsZSA9IGVudmlyb25tZW50LT5zeW1ib2xUYWJsZSgpLT5hcmd1bWVudHMoKTsKKyAgICBT
Y29wZWRBcmd1bWVudHNUYWJsZSogdGFibGUgPSBzY29wZS0+c3ltYm9sVGFibGUoKS0+YXJndW1l
bnRzKCk7CiAgICAgCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgU2NvcGVkQXJndW1lbnRz
OjpjcmVhdGVCeUNvcHlpbmdGcm9tKHZtLCBzdHJ1Y3R1cmUsIGFyZ3VtZW50U3RhcnQsIGxlbmd0
aCwgY2FsbGVlLCB0YWJsZSwgZW52aXJvbm1lbnQpKTsKKyAgICByZXR1cm4gU2NvcGVkQXJndW1l
bnRzOjpjcmVhdGVCeUNvcHlpbmdGcm9tKHZtLCBzdHJ1Y3R1cmUsIGFyZ3VtZW50U3RhcnQsIGxl
bmd0aCwgY2FsbGVlLCB0YWJsZSwgc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ2lzdGVyKiBhcmd1bWVu
dFN0YXJ0LCB1aW50MzJfdCBsZW5ndGgsIEpTRnVuY3Rpb24qIGNhbGxlZSwgQnV0dGVyZmx5KiBi
dXR0ZXJmbHkpKQpAQCAtMjI1MSw3ICsyMTI3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWMK
IAogICAgIEpTQ2VsbCogcmVzdWx0ID0gQ2xvbmVkQXJndW1lbnRzOjpjcmVhdGVCeUNvcHlpbmdG
cm9tKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBhcmd1bWVudFN0YXJ0LCBsZW5ndGgsIGNhbGxl
ZSwgYnV0dGVyZmx5KTsKICAgICBFWENFUFRJT05fQVNTRVJUX1VOVVNFRChzY29wZSwgc2NvcGUu
ZXhjZXB0aW9uKCkgfHwgcmVzdWx0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCByZXN1
bHQpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qIHZt
UG9pbnRlciwgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUsIEpTRnVuY3Rpb24qIGNh
bGxlZSwgdWludDMyX3QgYXJndW1lbnRDb3VudCkpCkBAIC0yMjU5LDcgKzIxMzUsNiBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzRHVyaW5n
RXhpdCwgSlNDZWxsKiwgKFZNKgogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgCiAgICAgRGVmZXJHQ0ZvckFX
aGlsZSBkZWZlckdDKHZtKTsKICAgICAKQEAgLTIyODIsNyArMjE1Nyw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHNEdXJpbmdFeGl0LCBK
U0NlbGwqLCAoVk0qCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbGVuZ3RoOyBpLS07KQogICAgICAg
ICByZXN1bHQtPnNldEluZGV4UXVpY2tseSh2bSwgaSwgYXJndW1lbnRzW2ldLmpzVmFsdWUoKSk7
CiAgICAgCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgcmVzdWx0KTsKKyAgICByZXR1cm4g
cmVzdWx0OwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xv
bmVkQXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIElubGluZUNh
bGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIHVpbnQzMl90IGFy
Z3VtZW50Q291bnQpKQpAQCAtMjI5MCw3ICsyMTY1LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChW
TSoKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogICAgIAogICAgIERlZmVyR0NGb3JBV2hpbGUgZGVmZXJHQyh2bSk7
CiAgICAgCkBAIC0yMzExLDcgKzIxODUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKgogICAg
ICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaSwgYXJndW1lbnRzW2ld
LmpzVmFsdWUoKSk7CiAKICAgICAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCByZXN1bHQp
OworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25DcmVhdGVSZXN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVuc2lnbmVkIG51bWJlck9mUGFyYW1zVG9Ta2lwLCB1
bnNpZ25lZCBhcnJheVNpemUpKQpAQCAtMjMxOSwxMiArMjE5MywxMSBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlUmVzdCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYgogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIFN0cnVjdHVyZSogc3RydWN0
dXJlID0gZ2xvYmFsT2JqZWN0LT5yZXN0UGFyYW1ldGVyU3RydWN0dXJlKCk7CiAgICAgc3RhdGlj
X2Fzc2VydChzaXplb2YoUmVnaXN0ZXIpID09IHNpemVvZihKU1ZhbHVlKSwgIlRoaXMgaXMgYSBz
dHJvbmcgYXNzdW1wdGlvbiBoZXJlLiIpOwogICAgIEpTVmFsdWUqIGFyZ3VtZW50c1RvQ29weVJl
Z2lvbiA9IGJpdHdpc2VfY2FzdDxKU1ZhbHVlKj4oYXJndW1lbnRTdGFydCkgKyBudW1iZXJPZlBh
cmFtc1RvU2tpcDsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBjb25zdHJ1Y3RBcnJheShn
bG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgYXJndW1lbnRzVG9Db3B5UmVnaW9uLCBhcnJheVNpemUp
KTsKKyAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGFy
Z3VtZW50c1RvQ29weVJlZ2lvbiwgYXJyYXlTaXplKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblR5cGVPZklzT2JqZWN0LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCkpCkBAIC0yMzMyLDExICsyMjA1LDEwIEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc09iamVjdCwgc2l6ZV90LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgQVNTRVJU
KGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPihvYmplY3QpKTsKICAgICAKLSAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlLCBqc1R5cGVvZklzT2JqZWN0KGdsb2JhbE9iamVjdCwgb2JqZWN0KSk7Cisg
ICAgcmV0dXJuIGpzVHlwZW9mSXNPYmplY3QoZ2xvYmFsT2JqZWN0LCBvYmplY3QpOwogfQogCiBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mSXNGdW5jdGlvbiwgc2l6ZV90
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QpKQpAQCAtMjM0
NCwxMSArMjIxNiwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9m
SXNGdW5jdGlvbiwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKIAogICAgIEFTU0VSVChqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4ob2JqZWN0KSk7CiAK
LSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBqc1R5cGVvZklzRnVuY3Rpb24oZ2xvYmFsT2Jq
ZWN0LCBvYmplY3QpKTsKKyAgICByZXR1cm4ganNUeXBlb2ZJc0Z1bmN0aW9uKGdsb2JhbE9iamVj
dCwgb2JqZWN0KTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVj
dElzQ2FsbGFibGUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2Vs
bCogb2JqZWN0KSkKQEAgLTIzNTYsMjEgKzIyMjcsMTkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk9iamVjdElzQ2FsbGFibGUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG8KICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3Vl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBBU1NFUlQoanNEeW5hbWljQ2FzdDxKU09i
amVjdCo+KG9iamVjdCkpOwogICAgIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIG9iamVj
dC0+aXNDYWxsYWJsZSgpKTsKKyAgICByZXR1cm4gb2JqZWN0LT5pc0NhbGxhYmxlKCk7CiB9CiAK
LUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Jc0NvbnN0cnVjdG9y
LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2
YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXNDb25zdHJ1Y3Rvciwg
c2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFs
dWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkuaXNDb25zdHJ1Y3RvcigpKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS5pc0NvbnN0cnVjdG9yKCk7CiB9CiAKIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZPYmplY3QsIEpTQ2VsbCosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCkpCkBAIC0yMzc4LDExNyArMjI0Nywx
MTIgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZk9iamVjdCwgSlND
ZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2Fs
bEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAg
ICBBU1NFUlQoanNEeW5hbWljQ2FzdDxKU09iamVjdCo+KG9iamVjdCkpOwogICAgIAogICAgIGlm
IChvYmplY3QtPnN0cnVjdHVyZSgpLT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkKGdsb2JhbE9iamVj
dCkpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHZtLnNtYWxsU3RyaW5ncy51bmRl
ZmluZWRTdHJpbmcoKSk7CisgICAgICAgIHJldHVybiB2bS5zbWFsbFN0cmluZ3MudW5kZWZpbmVk
U3RyaW5nKCk7CiAgICAgaWYgKG9iamVjdC0+aXNDYWxsYWJsZSgpKQotICAgICAgICBPUEVSQVRJ
T05fUkVUVVJOKHNjb3BlLCB2bS5zbWFsbFN0cmluZ3MuZnVuY3Rpb25TdHJpbmcoKSk7Ci0gICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSwgdm0uc21hbGxTdHJpbmdzLm9iamVjdFN0cmluZygpKTsK
KyAgICAgICAgcmV0dXJuIHZtLnNtYWxsU3RyaW5ncy5mdW5jdGlvblN0cmluZygpOworICAgIHJl
dHVybiB2bS5zbWFsbFN0cmluZ3Mub2JqZWN0U3RyaW5nKCk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0
aWFsQ2FwYWNpdHksIEJ1dHRlcmZseSosIChWTSogdm1Qb2ludGVyKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0
aWFsQ2FwYWNpdHksIGNoYXIqLCAoVk0qIHZtUG9pbnRlcikpCiB7CiAgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAot
ICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEJ1dHRlcmZseTo6Y3JlYXRlVW5pbml0aWFsaXpl
ZCh2bSwgbnVsbHB0ciwgMCwgaW5pdGlhbE91dE9mTGluZUNhcGFjaXR5LCBmYWxzZSwgMCkpOwor
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPigKKyAgICAgICAgQnV0dGVyZmx5Ojpj
cmVhdGVVbmluaXRpYWxpemVkKHZtLCBudWxscHRyLCAwLCBpbml0aWFsT3V0T2ZMaW5lQ2FwYWNp
dHksIGZhbHNlLCAwKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25B
bGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZSwgQnV0dGVyZmx5KiwgKFZNKiB2bVBvaW50ZXIs
IHNpemVfdCBuZXdTaXplKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxv
Y2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBzaXplX3Qg
bmV3U2l6ZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUs
IEJ1dHRlcmZseTo6Y3JlYXRlVW5pbml0aWFsaXplZCh2bSwgbnVsbHB0ciwgMCwgbmV3U2l6ZSwg
ZmFsc2UsIDApKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oCisgICAgICAg
IEJ1dHRlcmZseTo6Y3JlYXRlVW5pbml0aWFsaXplZCh2bSwgbnVsbHB0ciwgMCwgbmV3U2l6ZSwg
ZmFsc2UsIDApKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9j
YXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHksIEJ1dHRlcmZseSos
IChWTSogdm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENh
cGFjaXR5LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTT2JqZWN0KiBvYmplY3QpKQogewogICAg
IFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAKICAgICBBU1NFUlQoIW9iamVjdC0+c3RydWN0dXJlKCktPm91dE9mTGluZUNh
cGFjaXR5KCkpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIG9iamVjdC0+YWxsb2NhdGVN
b3JlT3V0T2ZMaW5lU3RvcmFnZSh2bSwgMCwgaW5pdGlhbE91dE9mTGluZUNhcGFjaXR5KSk7Cisg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KAorICAgICAgICBvYmplY3QtPmFsbG9j
YXRlTW9yZU91dE9mTGluZVN0b3JhZ2Uodm0sIDAsIGluaXRpYWxPdXRPZkxpbmVDYXBhY2l0eSkp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4
UHJvcGVydHlTdG9yYWdlLCBCdXR0ZXJmbHkqLCAoVk0qIHZtUG9pbnRlciwgSlNPYmplY3QqIG9i
amVjdCwgc2l6ZV90IG5ld1NpemUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBK
U09iamVjdCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9p
bnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIG9iamVjdC0+YWxsb2NhdGVNb3JlT3V0T2ZMaW5lU3Rv
cmFnZSh2bSwgb2JqZWN0LT5zdHJ1Y3R1cmUoKS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSwgbmV3U2l6
ZSkpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPigKKyAgICAgICAgb2JqZWN0
LT5hbGxvY2F0ZU1vcmVPdXRPZkxpbmVTdG9yYWdlKHZtLCBvYmplY3QtPnN0cnVjdHVyZSgpLT5v
dXRPZkxpbmVDYXBhY2l0eSgpLCBuZXdTaXplKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25FbnN1cmVJbnQzMiwgQnV0dGVyZmx5KiwgKFZNKiB2bVBvaW50ZXIsIEpT
Q2VsbCogY2VsbCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW5zdXJlSW50
MzIsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBjZWxsKSkKIHsKICAgICBWTSYgdm0g
PSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogICAgIAogICAgIGlmICghY2VsbC0+aXNPYmplY3QoKSkKLSAgICAgICAgT1BFUkFUSU9OX1JF
VFVSTihzY29wZSwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0
byogcmVzdWx0ID0gcmVpbnRlcnByZXRfY2FzdDxCdXR0ZXJmbHkqPihhc09iamVjdChjZWxsKS0+
dHJ5TWFrZVdyaXRhYmxlSW50MzIodm0pLmRhdGEoKSk7CisgICAgYXV0byogcmVzdWx0ID0gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4oYXNPYmplY3QoY2VsbCktPnRyeU1ha2VXcml0YWJsZUludDMy
KHZtKS5kYXRhKCkpOwogICAgIEFTU0VSVCgoIWlzQ29weU9uV3JpdGUoYXNPYmplY3QoY2VsbCkt
PmluZGV4aW5nTW9kZSgpKSAmJiBoYXNJbnQzMihjZWxsLT5pbmRleGluZ01vZGUoKSkpIHx8ICFy
ZXN1bHQpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHJlc3VsdCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVuc3VyZURv
dWJsZSwgQnV0dGVyZmx5KiwgKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogY2VsbCkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW5zdXJlRG91YmxlLCBjaGFyKiwgKFZNKiB2bVBv
aW50ZXIsIEpTQ2VsbCogY2VsbCkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3Bl
cmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAKICAgICBpZiAoIWNl
bGwtPmlzT2JqZWN0KCkpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIG51bGxwdHIp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEFTU0VSVChPcHRpb25zOjphbGxvd0Rv
dWJsZVNoYXBlKCkpOwotICAgIGF1dG8qIHJlc3VsdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8QnV0dGVy
Zmx5Kj4oYXNPYmplY3QoY2VsbCktPnRyeU1ha2VXcml0YWJsZURvdWJsZSh2bSkuZGF0YSgpKTsK
KyAgICBhdXRvKiByZXN1bHQgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihhc09iamVjdChjZWxs
KS0+dHJ5TWFrZVdyaXRhYmxlRG91YmxlKHZtKS5kYXRhKCkpOwogICAgIEFTU0VSVCgoIWlzQ29w
eU9uV3JpdGUoYXNPYmplY3QoY2VsbCktPmluZGV4aW5nTW9kZSgpKSAmJiBoYXNEb3VibGUoY2Vs
bC0+aW5kZXhpbmdNb2RlKCkpKSB8fCAhcmVzdWx0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNj
b3BlLCByZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25FbnN1cmVDb250aWd1b3VzLCBCdXR0ZXJmbHkqLCAoVk0qIHZtUG9p
bnRlciwgSlNDZWxsKiBjZWxsKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25F
bnN1cmVDb250aWd1b3VzLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogY2VsbCkpCiB7
CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKICAgICAKICAgICBpZiAoIWNlbGwtPmlzT2JqZWN0KCkpCi0gICAgICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICAKLSAgICBhdXRvKiByZXN1bHQgPSByZWludGVycHJldF9jYXN0PEJ1dHRlcmZseSo+
KGFzT2JqZWN0KGNlbGwpLT50cnlNYWtlV3JpdGFibGVDb250aWd1b3VzKHZtKS5kYXRhKCkpOwor
ICAgIGF1dG8qIHJlc3VsdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGFzT2JqZWN0KGNlbGwp
LT50cnlNYWtlV3JpdGFibGVDb250aWd1b3VzKHZtKS5kYXRhKCkpOwogICAgIEFTU0VSVCgoIWlz
Q29weU9uV3JpdGUoYXNPYmplY3QoY2VsbCktPmluZGV4aW5nTW9kZSgpKSAmJiBoYXNDb250aWd1
b3VzKGNlbGwtPmluZGV4aW5nTW9kZSgpKSkgfHwgIXJlc3VsdCk7Ci0gICAgT1BFUkFUSU9OX1JF
VFVSTihzY29wZSwgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW5zdXJlQXJyYXlTdG9yYWdlLCBCdXR0ZXJmbHkqLCAo
Vk0qIHZtUG9pbnRlciwgSlNDZWxsKiBjZWxsKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25FbnN1cmVBcnJheVN0b3JhZ2UsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxs
KiBjZWxsKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIAogICAgIGlmICghY2VsbC0+aXNPYmplY3Qo
KSkKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgbnVsbHB0cik7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCi0gICAgYXV0byogcmVzdWx0ID0gcmVpbnRlcnByZXRfY2FzdDxCdXR0
ZXJmbHkqPihhc09iamVjdChjZWxsKS0+ZW5zdXJlQXJyYXlTdG9yYWdlKHZtKSk7CisgICAgYXV0
byogcmVzdWx0ID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oYXNPYmplY3QoY2VsbCktPmVuc3Vy
ZUFycmF5U3RvcmFnZSh2bSkpOwogICAgIEFTU0VSVCgoIWlzQ29weU9uV3JpdGUoYXNPYmplY3Qo
Y2VsbCktPmluZGV4aW5nTW9kZSgpKSAmJiBoYXNBbnlBcnJheVN0b3JhZ2UoY2VsbC0+aW5kZXhp
bmdNb2RlKCkpKSB8fCAhcmVzdWx0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCByZXN1
bHQpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQ2VsbCogYmFzZUNlbGwsIGludDMyX3Qgc3Vic2NyaXB0KSkKQEAgLTI0OTYs
MjEgKzIzNjAsMTkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0luZGV4
ZWRQcm9wZXJ0eSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGcKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGJhc2VDZWxsLT50b09iamVjdChnbG9iYWxPYmpl
Y3QpOwogICAgIGlmIChVTkxJS0VMWShzdWJzY3JpcHQgPCAwKSkgewogICAgICAgICAvLyBXaGVu
IHN1YnNjcmlwdCBpcyBuZWdhdGl2ZSwgLTEgaXMgdGhlIG1vc3QgY29tbW9uIGNhc2UuIExldCdz
IGhhbmRsZSBpdCBzZXBhcmF0ZWx5LgogICAgICAgICBpZiAoTElLRUxZKHN1YnNjcmlwdCA9PSAt
MSkpIHsKLSAgICAgICAgICAgIC8vIHdoYXQ/CiAgICAgICAgICAgICBpZiAoYXV0byogYXJyYXkg
PSBqc0R5bmFtaWNDYXN0PEpTQXJyYXkqPihvYmplY3QpOyBMSUtFTFkoYXJyYXkgJiYgYXJyYXkt
PmRlZmluaXRlbHlOZWdhdGl2ZU9uZU1pc3MoKSkpCi0gICAgICAgICAgICAgICAgT1BFUkFUSU9O
X1JFVFVSTihzY29wZSwgZmFsc2UpOwotICAgICAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29w
ZSwgb2JqZWN0LT5oYXNQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPm5l
Z2F0aXZlT25lSWRlbnRpZmllcikpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgIHJldHVybiBvYmplY3QtPmhhc1Byb3BlcnR5KGdsb2JhbE9iamVjdCwgdm0ucHJv
cGVydHlOYW1lcy0+bmVnYXRpdmVPbmVJZGVudGlmaWVyKTsKICAgICAgICAgfQogCiAgICAgICAg
IC8vIEdvIHRoZSBzbG93ZXN0IHdheSBwb3NzaWJsZSBiZWNhdXNlIG5lZ2F0aXZlIGluZGljZXMg
ZG9uJ3QgdXNlIGluZGV4ZWQgc3RvcmFnZS4KLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29w
ZSwgb2JqZWN0LT5oYXNQcm9wZXJ0eShnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0s
IHN1YnNjcmlwdCkpKTsKKyAgICAgICAgcmV0dXJuIG9iamVjdC0+aGFzUHJvcGVydHkoZ2xvYmFs
T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBzdWJzY3JpcHQpKTsKICAgICB9Ci0gICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSwgb2JqZWN0LT5oYXNQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihzdWJzY3JpcHQpKSk7CisgICAgcmV0dXJuIG9iamVjdC0+aGFz
UHJvcGVydHkoZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3Vic2NyaXB0KSk7
CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNFbnVtZXJhYmxlSW5k
ZXhlZFByb3BlcnR5LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Nl
bGwqIGJhc2VDZWxsLCBpbnQzMl90IHN1YnNjcmlwdCkpCkBAIC0yNTE4LDIwICsyMzgwLDE5IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNFbnVtZXJhYmxlSW5kZXhlZFBy
b3BlcnR5LCBzaXplX3QsIChKU0dsb2JhCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTT2Jq
ZWN0KiBvYmplY3QgPSBiYXNlQ2VsbC0+dG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKICAgICBpZiAo
VU5MSUtFTFkoc3Vic2NyaXB0IDwgMCkpIHsKICAgICAgICAgLy8gV2hlbiBzdWJzY3JpcHQgaXMg
bmVnYXRpdmUsIC0xIGlzIHRoZSBtb3N0IGNvbW1vbiBjYXNlLiBMZXQncyBoYW5kbGUgaXQgc2Vw
YXJhdGVseS4KICAgICAgICAgaWYgKExJS0VMWShzdWJzY3JpcHQgPT0gLTEpKSB7CiAgICAgICAg
ICAgICBpZiAoYXV0byogYXJyYXkgPSBqc0R5bmFtaWNDYXN0PEpTQXJyYXkqPihiYXNlQ2VsbCk7
IExJS0VMWShhcnJheSAmJiBhcnJheS0+ZGVmaW5pdGVseU5lZ2F0aXZlT25lTWlzcygpKSkKLSAg
ICAgICAgICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBmYWxzZSk7Ci0gICAgICAgICAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBvYmplY3QtPmhhc1Byb3BlcnR5KGdsb2JhbE9iamVj
dCwgdm0ucHJvcGVydHlOYW1lcy0+bmVnYXRpdmVPbmVJZGVudGlmaWVyKSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIG9iamVjdC0+aGFzUHJvcGVy
dHkoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5uZWdhdGl2ZU9uZUlkZW50aWZpZXIp
OwogICAgICAgICB9CiAKICAgICAgICAgLy8gR28gdGhlIHNsb3dlc3Qgd2F5IHBvc3NpYmxlIGJl
Y2F1c2UgbmVnYXRpdmUgaW5kaWNlcyBkb24ndCB1c2UgaW5kZXhlZCBzdG9yYWdlLgotICAgICAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBvYmplY3QtPmhhc0VudW1lcmFibGVQcm9wZXJ0eShn
bG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIHN1YnNjcmlwdCkpKTsKKyAgICAgICAg
cmV0dXJuIG9iamVjdC0+aGFzRW51bWVyYWJsZVByb3BlcnR5KGdsb2JhbE9iamVjdCwgSWRlbnRp
Zmllcjo6ZnJvbSh2bSwgc3Vic2NyaXB0KSk7CiAgICAgfQotICAgIE9QRVJBVElPTl9SRVRVUk4o
c2NvcGUsIG9iamVjdC0+aGFzRW51bWVyYWJsZVByb3BlcnR5KGdsb2JhbE9iamVjdCwgc3Vic2Ny
aXB0KSk7CisgICAgcmV0dXJuIG9iamVjdC0+aGFzRW51bWVyYWJsZVByb3BlcnR5KGdsb2JhbE9i
amVjdCwgc3Vic2NyaXB0KTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkdldFByb3BlcnR5RW51bWVyYXRvciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlKSkKQEAgLTI1NDMsMTIgKzI0MDQsMTIg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByb3BlcnR5RW51bWVyYXRv
ciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWMKIAogICAgIEpTVmFsdWUgYmFzZSA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkQmFzZSk7CiAgICAgaWYgKGJhc2UuaXNVbmRlZmluZWRPck51bGwoKSkK
LSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgdm0uZW1wdHlQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKCkpOworICAgICAgICByZXR1cm4gdm0uZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
KCk7CiAKICAgICBKU09iamVjdCogYmFzZU9iamVjdCA9IGJhc2UudG9PYmplY3QoZ2xvYmFsT2Jq
ZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAotICAgIE9QRVJBVElPTl9S
RVRVUk4oc2NvcGUsIHByb3BlcnR5TmFtZUVudW1lcmF0b3IoZ2xvYmFsT2JqZWN0LCBiYXNlT2Jq
ZWN0KSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBwcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yKGdsb2JhbE9iamVjdCwgYmFzZU9iamVjdCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uR2V0UHJvcGVydHlFbnVtZXJhdG9yQ2VsbCwgSlNDZWxsKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCkpCkBAIC0yNTU5LDkgKzI0MjAs
OSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvcGVydHlFbnVtZXJh
dG9yQ2VsbCwgSlNDZWxsKiwgKEpTR2xvYmFsTwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAogICAgIEpTT2JqZWN0KiBiYXNlID0gY2VsbC0+dG9PYmplY3QoZ2xv
YmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVs
bHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAotICAgIE9QRVJB
VElPTl9SRVRVUk4oc2NvcGUsIHByb3BlcnR5TmFtZUVudW1lcmF0b3IoZ2xvYmFsT2JqZWN0LCBi
YXNlKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBwcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yKGdsb2JhbE9iamVjdCwgYmFzZSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1vZGUsIFVHUFJQYWlyLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCB1aW50
MzJfdCBpbmRleCwgaW50MzJfdCBtb2RlTnVtYmVyLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Iq
IGVudW1lcmF0b3IpKQpAQCAtMjU3OSwxNCArMjQ0MCwxNCBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1vZGUsIFVHUFJQYWly
LCAoSgogICAgICAgICBtb2RlID0gSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpHZW5lcmljTW9k
ZTsKICAgICB9IGVsc2UgewogICAgICAgICBKU09iamVjdCogYmFzZSA9IEpTVmFsdWU6OmRlY29k
ZShiYXNlVmFsdWUpLnRvT2JqZWN0KGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIE9QRVJBVElPTl9S
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBVR1BSUGFpciB7IH0pOworICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgICAgIGNvbnN0ZXhwciBib29sIHNob3Vs
ZEFsbG9jYXRlSW5kZXhlZE5hbWVTdHJpbmcgPSBmYWxzZTsKICAgICAgICAgZW51bWVyYXRvci0+
Y29tcHV0ZU5leHQoZ2xvYmFsT2JqZWN0LCBiYXNlLCBpbmRleCwgbW9kZSwgc2hvdWxkQWxsb2Nh
dGVJbmRleGVkTmFtZVN0cmluZyk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBVR1BSUGFpciB7IH0pOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwogICAgIH0KIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIG1ha2VVR1BS
UGFpcihpbmRleCwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1vZGUpKSk7CisgICAgcmV0dXJuIG1h
a2VVR1BSUGFpcihpbmRleCwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1vZGUpKTsKIH0KIAogSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlUHJvcGVy
dHlOYW1lLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1aW50MzJf
dCBpbmRleCwgaW50MzJfdCBtb2RlTnVtYmVyLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVu
dW1lcmF0b3IpKQpAQCAtMjU5NCwxOSArMjQ1NSwxOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVQcm9wZXJ0eU5hbWUsIEpTU3RyaW5nKiwg
KAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlmIChtb2RlTnVtYmVyID09IEpTUHJvcGVy
dHlOYW1lRW51bWVyYXRvcjo6SW5kZXhlZE1vZGUpIHsKICAgICAgICAgaWYgKGluZGV4IDwgZW51
bWVyYXRvci0+aW5kZXhlZExlbmd0aCgpKQotICAgICAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihz
Y29wZSwganNTdHJpbmcodm0sIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KS5zdHJpbmcoKSkp
OwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCB2bS5zbWFsbFN0cmluZ3Muc2VudGlu
ZWxTdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm4ganNTdHJpbmcodm0sIElkZW50aWZpZXI6
OmZyb20odm0sIGluZGV4KS5zdHJpbmcoKSk7CisgICAgICAgIHJldHVybiB2bS5zbWFsbFN0cmlu
Z3Muc2VudGluZWxTdHJpbmcoKTsKICAgICB9CiAKICAgICBKU1N0cmluZyogcmVzdWx0ID0gZW51
bWVyYXRvci0+cHJvcGVydHlOYW1lQXRJbmRleChpbmRleCk7CiAgICAgaWYgKCFyZXN1bHQpCi0g
ICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHZtLnNtYWxsU3RyaW5ncy5zZW50aW5lbFN0
cmluZygpKTsKKyAgICAgICAgcmV0dXJuIHZtLnNtYWxsU3RyaW5ncy5zZW50aW5lbFN0cmluZygp
OwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVz
dWx0OwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvclJl
Y292ZXJOYW1lQW5kR2V0QnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCB1aW50MzJfdCBpbmRleCwgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKQEAgLTI2MTksMTIgKzI0NzksMTIg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JSZWNvdmVyTmFt
ZUFuZEdldEJ5VmFsLCBFbmNvZGVkSlNWYWwKICAgICBKU1N0cmluZyogc3RyaW5nID0gZW51bWVy
YXRvci0+cHJvcGVydHlOYW1lQXRJbmRleChpbmRleCk7CiAgICAgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSA9IHN0cmluZy0+dG9JZGVudGlmaWVyKGdsb2JhbE9iamVjdCk7CiAgICAgLy8gVGhp
cyBzaG91bGQgb25seSByZWFsbHkgcmV0dXJuIGZvciBUZXJtaW5hdGlvbkV4Y2VwdGlvbiBzaW5j
ZSB3ZSBrbm93IHN0cmluZyBpcyBiYWNrZWQgYnkgYSBVVUlELgotICAgIE9QRVJBVElPTl9SRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgIEpTVmFsdWUgYmFzZSA9IEpTVmFsdWU6OmRlY29k
ZShiYXNlVmFsdWUpOwogICAgIEpTT2JqZWN0KiBvYmplY3QgPSBiYXNlLnRvT2JqZWN0KGdsb2Jh
bE9iamVjdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29k
ZWRKU1ZhbHVlKCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUob2JqZWN0LT5nZXQoZ2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUob2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUp
KSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9ySW5C
eVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHByb3BlcnR5TmFtZVZhbHVlLCB1
aW50MzJfdCBpbmRleCwgaW50MzJfdCBtb2RlTnVtYmVyKSkKQEAgLTI2MzYsMTAgKzI0OTYsMTAg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JJbkJ5VmFsLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2IKIAogICAgIEpTVmFsdWUgYmFzZSA9IEpTVmFsdWU6
OmRlY29kZShiYXNlVmFsdWUpOwogICAgIGlmIChtb2RlTnVtYmVyID09IEpTUHJvcGVydHlOYW1l
RW51bWVyYXRvcjo6SW5kZXhlZE1vZGUgJiYgYmFzZS5pc09iamVjdCgpKQotICAgICAgICBPUEVS
QVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGpzQ2FzdDxKU09i
amVjdCo+KGJhc2UpLT5oYXNQcm9wZXJ0eShnbG9iYWxPYmplY3QsIGluZGV4KSkpKTsKKyAgICAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGpz
Q2FzdDxKU09iamVjdCo+KGJhc2UpLT5oYXNQcm9wZXJ0eShnbG9iYWxPYmplY3QsIGluZGV4KSkp
KTsKIAogICAgIEpTU3RyaW5nKiBwcm9wZXJ0eU5hbWUgPSBqc1NlY3VyZUNhc3Q8SlNTdHJpbmcq
PihKU1ZhbHVlOjpkZWNvZGUocHJvcGVydHlOYW1lVmFsdWUpKTsKLSAgICBPUEVSQVRJT05fUkVU
VVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKENvbW1vblNsb3dQYXRoczo6b3BJ
bkJ5VmFsKGdsb2JhbE9iamVjdCwgYmFzZSwgcHJvcGVydHlOYW1lKSkpKTsKKyAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oQ29tbW9uU2xvd1Bh
dGhzOjpvcEluQnlWYWwoZ2xvYmFsT2JqZWN0LCBiYXNlLCBwcm9wZXJ0eU5hbWUpKSkpOwogfQog
CiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvckhhc093blByb3Bl
cnR5LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvcGVydHlOYW1lVmFsdWUsIHVp
bnQzMl90IGluZGV4LCBpbnQzMl90IG1vZGVOdW1iZXIpKQpAQCAtMjY1MSwxNCArMjUxMSwxNCBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvckhhc093blByb3Bl
cnR5LCBFbmNvZGVkSlNWYWx1ZSwgKEpTRwogCiAgICAgSlNWYWx1ZSBiYXNlID0gSlNWYWx1ZTo6
ZGVjb2RlKGJhc2VWYWx1ZSk7CiAgICAgaWYgKG1vZGVOdW1iZXIgPT0gSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yOjpJbmRleGVkTW9kZSAmJiBiYXNlLmlzT2JqZWN0KCkpCi0gICAgICAgIE9QRVJB
VElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oanNDYXN0PEpTT2Jq
ZWN0Kj4oYmFzZSktPmhhc093blByb3BlcnR5KGdsb2JhbE9iamVjdCwgaW5kZXgpKSkpOworICAg
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4o
anNDYXN0PEpTT2JqZWN0Kj4oYmFzZSktPmhhc093blByb3BlcnR5KGdsb2JhbE9iamVjdCwgaW5k
ZXgpKSkpOwogCiAgICAgSlNTdHJpbmcqIHByb3BlcnR5TmFtZSA9IGpzU2VjdXJlQ2FzdDxKU1N0
cmluZyo+KEpTVmFsdWU6OmRlY29kZShwcm9wZXJ0eU5hbWVWYWx1ZSkpOwogICAgIGF1dG8gaWRl
bnRpZmllciA9IHByb3BlcnR5TmFtZS0+dG9JZGVudGlmaWVyKGdsb2JhbE9iamVjdCk7Ci0gICAg
T1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgSlNPYmplY3QqIGJhc2VP
YmplY3QgPSBiYXNlLnRvT2JqZWN0KGdsb2JhbE9iamVjdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIE9QRVJBVElPTl9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ob2JqZWN0UHJvdG90eXBlSGFz
T3duUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCBiYXNlT2JqZWN0LCBpZGVudGlmaWVyKSkpKTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihvYmplY3RQcm90b3R5cGVIYXNPd25Q
cm9wZXJ0eShnbG9iYWxPYmplY3QsIGJhc2VPYmplY3QsIGlkZW50aWZpZXIpKSkpOwogfQogCiBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvclJlY292ZXJOYW1lQW5k
UHV0QnlWYWwsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlVmFsdWUsIGJvb2wgaXNTdHJpY3Qs
IHVpbnQzMl90IGluZGV4LCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0b3IpKQpA
QCAtMjY3MSwxNCArMjUzMSwxMyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RW51bWVyYXRvclJlY292ZXJOYW1lQW5kUHV0QnlWYWwsIHZvaWQsIChKU0dsbwogICAgIEpTU3Ry
aW5nKiBzdHJpbmcgPSBlbnVtZXJhdG9yLT5wcm9wZXJ0eU5hbWVBdEluZGV4KGluZGV4KTsKICAg
ICBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lID0gc3RyaW5nLT50b0lkZW50aWZpZXIoZ2xvYmFs
T2JqZWN0KTsKICAgICAvLyBUaGlzIHNob3VsZCBvbmx5IHJlYWxseSByZXR1cm4gZm9yIFRlcm1p
bmF0aW9uRXhjZXB0aW9uIHNpbmNlIHdlIGtub3cgc3RyaW5nIGlzIGJhY2tlZCBieSBhIFVVSUQu
Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUpOworICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAgICAgSlNWYWx1ZSBiYXNlID0gSlNWYWx1ZTo6
ZGVjb2RlKGJhc2VWYWx1ZSk7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZSh2
YWx1ZVZhbHVlKTsKIAogICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qg
c2xvdChiYXNlLCBpc1N0cmljdCk7CiAgICAgYmFzZS5wdXQoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBzbG90KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKIH0KIAog
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1JlZ2V4cFdpdGhMYXN0SW5kZXgs
IEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIHJlZ2V4cFB0
ciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZExhc3RJbmRleCkpCkBAIC0yNjg2LDEwICsyNTQ1LDkg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1JlZ2V4cFdpdGhMYXN0SW5k
ZXgsIEpTQ2VsbCosIChKU0dsb2JhbE9iamUKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBS
ZWdFeHAqIHJlZ2V4cCA9IHN0YXRpY19jYXN0PFJlZ0V4cCo+KHJlZ2V4cFB0cik7Ci0gICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSwgUmVnRXhwT2JqZWN0OjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dC0+cmVnRXhwU3RydWN0dXJlKCksIHJlZ2V4cCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRMYXN0
SW5kZXgpKSk7CisgICAgcmV0dXJuIFJlZ0V4cE9iamVjdDo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QtPnJlZ0V4cFN0cnVjdHVyZSgpLCByZWdleHAsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkTGFz
dEluZGV4KSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNvbHZl
Um9wZSwgU3RyaW5nSW1wbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmlu
Zyogc3RyaW5nKSkKQEAgLTI2OTcsOSArMjU1NSw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25SZXNvbHZlUm9wZSwgU3RyaW5nSW1wbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgc3Ry
aW5nLT52YWx1ZShnbG9iYWxPYmplY3QpLmltcGwoKSk7CisgICAgcmV0dXJuIHN0cmluZy0+dmFs
dWUoZ2xvYmFsT2JqZWN0KS5pbXBsKCk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25SZXNvbHZlUm9wZVN0cmluZywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNSb3BlU3RyaW5nKiBzdHJpbmcpKQpAQCAtMjcwNywxMCArMjU2NCw5IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNvbHZlUm9wZVN0cmluZywgSlNT
dHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgc3Ry
aW5nLT5yZXNvbHZlUm9wZShnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2Nv
cGUsIHN0cmluZyk7CisgICAgcmV0dXJuIHN0cmluZzsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblN0cmluZ1ZhbHVlT2YsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkpCkBAIC0yNzIz
LDEzICsyNTc5LDEzIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdW
YWx1ZU9mLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgSlNWYWx1ZSBhcmd1
bWVudCA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQXJndW1lbnQpOwogCiAgICAgaWYgKGFyZ3Vt
ZW50LmlzU3RyaW5nKCkpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsICBhc1N0cmlu
Zyhhcmd1bWVudCkpOworICAgICAgICByZXR1cm4gYXNTdHJpbmcoYXJndW1lbnQpOwogCiAgICAg
aWYgKGF1dG8qIHN0cmluZ09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8U3RyaW5nT2JqZWN0Kj4oYXJn
dW1lbnQpKQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCAgc3RyaW5nT2JqZWN0LT5p
bnRlcm5hbFZhbHVlKCkpOworICAgICAgICByZXR1cm4gc3RyaW5nT2JqZWN0LT5pbnRlcm5hbFZh
bHVlKCk7CiAKICAgICB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwotICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIG51bGxwdHIpOworICAgIHJldHVybiBudWxscHRyOwog
fQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nUmVwbGFjZVN0cmlu
Z1N0cmluZywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJp
bmcqIHN0cmluZ0NlbGwsIEpTU3RyaW5nKiBzZWFyY2hDZWxsLCBKU1N0cmluZyogcmVwbGFjZW1l
bnRDZWxsKSkKQEAgLTI3NDAsMTUgKzI1OTYsMTUgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblN0cmluZ1JlcGxhY2VTdHJpbmdTdHJpbmcsIEpTU3RyaW5nKiwgKEpTR2xvYmEK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBTdHJpbmcg
c3RyaW5nID0gc3RyaW5nQ2VsbC0+dmFsdWUoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05f
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgbnVsbHB0cik7CiAKICAgICBTdHJpbmcgc2VhcmNoID0gc2VhcmNoQ2VsbC0+
dmFsdWUoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgbnVsbHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7
CiAKICAgICBTdHJpbmcgcmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudENlbGwtPnZhbHVlKGdsb2Jh
bE9iamVjdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxw
dHIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCi0gICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSwgKHN0cmluZ1JlcGxhY2VTdHJpbmdTdHJpbmc8U3RyaW5nUmVw
bGFjZVN1YnN0aXR1dGlvbnM6OlllcywgU3RyaW5nUmVwbGFjZVVzZVRhYmxlOjpObywgQm95ZXJN
b29yZUhvcnNwb29sVGFibGU8dWludDhfdD4+KGdsb2JhbE9iamVjdCwgc3RyaW5nQ2VsbCwgV1RG
TW92ZShzdHJpbmcpLCBXVEZNb3ZlKHNlYXJjaCksIFdURk1vdmUocmVwbGFjZW1lbnQpLCBudWxs
cHRyKSkpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgKHN0cmluZ1JlcGxhY2VTdHJp
bmdTdHJpbmc8U3RyaW5nUmVwbGFjZVN1YnN0aXR1dGlvbnM6OlllcywgU3RyaW5nUmVwbGFjZVVz
ZVRhYmxlOjpObywgQm95ZXJNb29yZUhvcnNwb29sVGFibGU8dWludDhfdD4+KGdsb2JhbE9iamVj
dCwgc3RyaW5nQ2VsbCwgV1RGTW92ZShzdHJpbmcpLCBXVEZNb3ZlKHNlYXJjaCksIFdURk1vdmUo
cmVwbGFjZW1lbnQpLCBudWxscHRyKSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU3RyaW5nUmVwbGFjZVN0cmluZ1N0cmluZ1dpdGhvdXRTdWJzdGl0dXRpb24sIEpT
U3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmdD
ZWxsLCBKU1N0cmluZyogc2VhcmNoQ2VsbCwgSlNTdHJpbmcqIHJlcGxhY2VtZW50Q2VsbCkpCkBA
IC0yNzU5LDE1ICsyNjE1LDE1IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
dHJpbmdSZXBsYWNlU3RyaW5nU3RyaW5nV2l0aG91dFN1YnN0aXR1dGlvbiwKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBTdHJpbmcgc3RyaW5nID0gc3Ry
aW5nQ2VsbC0+dmFsdWUoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
bnVsbHB0cik7CiAKICAgICBTdHJpbmcgc2VhcmNoID0gc2VhcmNoQ2VsbC0+dmFsdWUoZ2xvYmFs
T2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0
cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKICAgICBTdHJp
bmcgcmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudENlbGwtPnZhbHVlKGdsb2JhbE9iamVjdCk7Ci0g
ICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCi0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSwgKHN0cmluZ1JlcGxhY2VTdHJpbmdTdHJpbmc8U3RyaW5nUmVwbGFjZVN1YnN0aXR1
dGlvbnM6Ok5vLCBTdHJpbmdSZXBsYWNlVXNlVGFibGU6Ok5vLCBCb3llck1vb3JlSG9yc3Bvb2xU
YWJsZTx1aW50OF90Pj4oZ2xvYmFsT2JqZWN0LCBzdHJpbmdDZWxsLCBXVEZNb3ZlKHN0cmluZyks
IFdURk1vdmUoc2VhcmNoKSwgV1RGTW92ZShyZXBsYWNlbWVudCksIG51bGxwdHIpKSk7CisgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoc3RyaW5nUmVwbGFjZVN0cmluZ1N0cmluZzxTdHJp
bmdSZXBsYWNlU3Vic3RpdHV0aW9uczo6Tm8sIFN0cmluZ1JlcGxhY2VVc2VUYWJsZTo6Tm8sIEJv
eWVyTW9vcmVIb3JzcG9vbFRhYmxlPHVpbnQ4X3Q+PihnbG9iYWxPYmplY3QsIHN0cmluZ0NlbGws
IFdURk1vdmUoc3RyaW5nKSwgV1RGTW92ZShzZWFyY2gpLCBXVEZNb3ZlKHJlcGxhY2VtZW50KSwg
bnVsbHB0cikpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmlu
Z1JlcGxhY2VTdHJpbmdFbXB0eVN0cmluZywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmluZ0NlbGwsIEpTU3RyaW5nKiBzZWFyY2hDZWxsKSkK
QEAgLTI3NzgsMTQgKzI2MzQsMTQgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blN0cmluZ1JlcGxhY2VTdHJpbmdFbXB0eVN0cmluZywgSlNTdHJpbmcqLCAoSlMKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBTdHJpbmcgc3RyaW5nID0g
c3RyaW5nQ2VsbC0+dmFsdWUoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgbnVsbHB0cik7CiAKICAgICBTdHJpbmcgc2VhcmNoID0gc2VhcmNoQ2VsbC0+dmFsdWUoZ2xv
YmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVs
bHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKICAgICBz
aXplX3QgbWF0Y2hTdGFydCA9IFN0cmluZ1ZpZXcoc3RyaW5nKS5maW5kKHZtLmFkYXB0aXZlU3Ry
aW5nU2VhcmNoZXJUYWJsZXMoKSwgU3RyaW5nVmlldyhzZWFyY2gpKTsKICAgICBpZiAobWF0Y2hT
dGFydCA9PSBub3RGb3VuZCkKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgIHN0cmlu
Z0NlbGwpOworICAgICAgICByZXR1cm4gc3RyaW5nQ2VsbDsKIAogICAgIC8vIEJlY2F1c2UgcmVw
bGFjZW1lbnQgc3RyaW5nIGlzIGVtcHR5LCBpdCBjYW5ub3QgaW5jbHVkZSBiYWNrcmVmZXJlbmNl
cy4KICAgICBzaXplX3Qgc2VhcmNoTGVuZ3RoID0gc2VhcmNoLmxlbmd0aCgpOwpAQCAtMjc5Mywx
MCArMjY0OSwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nUmVw
bGFjZVN0cmluZ0VtcHR5U3RyaW5nLCBKU1N0cmluZyosIChKUwogICAgIGF1dG8gcmVzdWx0ID0g
dHJ5TWFrZVN0cmluZyhTdHJpbmdWaWV3KHN0cmluZykuc3Vic3RyaW5nKDAsIG1hdGNoU3RhcnQp
LCBTdHJpbmdWaWV3KHN0cmluZykuc3Vic3RyaW5nKG1hdGNoRW5kLCBzdHJpbmcubGVuZ3RoKCkg
LSBtYXRjaEVuZCkpOwogICAgIGlmIChVTkxJS0VMWSghcmVzdWx0KSkgewogICAgICAgICB0aHJv
d091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAgIE9QRVJBVElP
Tl9SRVRVUk4oc2NvcGUsICBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgIGpzU3RyaW5nKHZtLCBXVEZNb3ZlKHJl
c3VsdCkpKTsKKyAgICByZXR1cm4ganNTdHJpbmcodm0sIFdURk1vdmUocmVzdWx0KSk7CiB9CiAK
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdSZXBsYWNlU3RyaW5nU3Ry
aW5nV2l0aFRhYmxlOCwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNTdHJpbmcqIHN0cmluZ0NlbGwsIEpTU3RyaW5nKiBzZWFyY2hDZWxsLCBKU1N0cmluZyogcmVw
bGFjZW1lbnRDZWxsLCBjb25zdCBCb3llck1vb3JlSG9yc3Bvb2xUYWJsZTx1aW50OF90PiogdGFi
bGUpKQpAQCAtMjgwNywxNSArMjY2MywxNSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU3RyaW5nUmVwbGFjZVN0cmluZ1N0cmluZ1dpdGhUYWJsZTgsIEpTU3RyaW5nKgogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIFN0cmluZyBzdHJp
bmcgPSBzdHJpbmdDZWxsLT52YWx1ZShnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBudWxscHRyKTsKIAogICAgIFN0cmluZyBzZWFyY2ggPSBzZWFyY2hDZWxsLT52YWx1
ZShnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBudWxscHRyKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAog
ICAgIFN0cmluZyByZXBsYWNlbWVudCA9IHJlcGxhY2VtZW50Q2VsbC0+dmFsdWUoZ2xvYmFsT2Jq
ZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKLSAgICBPUEVSQVRJ
T05fUkVUVVJOKHNjb3BlLCAoc3RyaW5nUmVwbGFjZVN0cmluZ1N0cmluZzxTdHJpbmdSZXBsYWNl
U3Vic3RpdHV0aW9uczo6WWVzLCBTdHJpbmdSZXBsYWNlVXNlVGFibGU6Olllcz4oZ2xvYmFsT2Jq
ZWN0LCBzdHJpbmdDZWxsLCBXVEZNb3ZlKHN0cmluZyksIFdURk1vdmUoc2VhcmNoKSwgV1RGTW92
ZShyZXBsYWNlbWVudCksIHRhYmxlKSkpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
KHN0cmluZ1JlcGxhY2VTdHJpbmdTdHJpbmc8U3RyaW5nUmVwbGFjZVN1YnN0aXR1dGlvbnM6Olll
cywgU3RyaW5nUmVwbGFjZVVzZVRhYmxlOjpZZXM+KGdsb2JhbE9iamVjdCwgc3RyaW5nQ2VsbCwg
V1RGTW92ZShzdHJpbmcpLCBXVEZNb3ZlKHNlYXJjaCksIFdURk1vdmUocmVwbGFjZW1lbnQpLCB0
YWJsZSkpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1Jl
cGxhY2VTdHJpbmdTdHJpbmdXaXRob3V0U3Vic3RpdHV0aW9uV2l0aFRhYmxlOCwgSlNTdHJpbmcq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmluZ0NlbGwsIEpT
U3RyaW5nKiBzZWFyY2hDZWxsLCBKU1N0cmluZyogcmVwbGFjZW1lbnRDZWxsLCBjb25zdCBCb3ll
ck1vb3JlSG9yc3Bvb2xUYWJsZTx1aW50OF90PiogdGFibGUpKQpAQCAtMjgyNiwxNSArMjY4Miwx
NSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nUmVwbGFjZVN0cmlu
Z1N0cmluZ1dpdGhvdXRTdWJzdGl0dXRpb25XaQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAogICAgIFN0cmluZyBzdHJpbmcgPSBzdHJpbmdDZWxsLT52YWx1ZShn
bG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAogICAg
IFN0cmluZyBzZWFyY2ggPSBzZWFyY2hDZWxsLT52YWx1ZShnbG9iYWxPYmplY3QpOwotICAgIE9Q
RVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAogICAgIFN0cmluZyByZXBsYWNlbWVudCA9
IHJlcGxhY2VtZW50Q2VsbC0+dmFsdWUoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgbnVsbHB0cik7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCAoc3RyaW5n
UmVwbGFjZVN0cmluZ1N0cmluZzxTdHJpbmdSZXBsYWNlU3Vic3RpdHV0aW9uczo6Tm8sIFN0cmlu
Z1JlcGxhY2VVc2VUYWJsZTo6WWVzPihnbG9iYWxPYmplY3QsIHN0cmluZ0NlbGwsIFdURk1vdmUo
c3RyaW5nKSwgV1RGTW92ZShzZWFyY2gpLCBXVEZNb3ZlKHJlcGxhY2VtZW50KSwgdGFibGUpKSk7
CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoc3RyaW5nUmVwbGFjZVN0cmluZ1N0cmlu
ZzxTdHJpbmdSZXBsYWNlU3Vic3RpdHV0aW9uczo6Tm8sIFN0cmluZ1JlcGxhY2VVc2VUYWJsZTo6
WWVzPihnbG9iYWxPYmplY3QsIHN0cmluZ0NlbGwsIFdURk1vdmUoc3RyaW5nKSwgV1RGTW92ZShz
ZWFyY2gpLCBXVEZNb3ZlKHJlcGxhY2VtZW50KSwgdGFibGUpKSk7CiB9CiAKIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdSZXBsYWNlU3RyaW5nRW1wdHlTdHJpbmdXaXRo
VGFibGU4LCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmlu
Zyogc3RyaW5nQ2VsbCwgSlNTdHJpbmcqIHNlYXJjaENlbGwsIGNvbnN0IEJveWVyTW9vcmVIb3Jz
cG9vbFRhYmxlPHVpbnQ4X3Q+KiB0YWJsZSkpCkBAIC0yODQ1LDE0ICsyNzAxLDE0IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdSZXBsYWNlU3RyaW5nRW1wdHlTdHJp
bmdXaXRoVGFibGU4LCBKU1N0CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogCiAgICAgU3RyaW5nIHN0cmluZyA9IHN0cmluZ0NlbGwtPnZhbHVlKGdsb2JhbE9iamVj
dCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCiAgICAgU3RyaW5nIHNl
YXJjaCA9IHNlYXJjaENlbGwtPnZhbHVlKGdsb2JhbE9iamVjdCk7Ci0gICAgT1BFUkFUSU9OX1JF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIG51bGxwdHIpOwogCiAgICAgc2l6ZV90IG1hdGNoU3RhcnQgPSB0YWJsZS0+Zmlu
ZChzdHJpbmcsIHNlYXJjaCk7CiAgICAgaWYgKG1hdGNoU3RhcnQgPT0gbm90Rm91bmQpCi0gICAg
ICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHN0cmluZ0NlbGwpOworICAgICAgICByZXR1cm4g
c3RyaW5nQ2VsbDsKIAogICAgIC8vIEJlY2F1c2UgcmVwbGFjZW1lbnQgc3RyaW5nIGlzIGVtcHR5
LCBpdCBjYW5ub3QgaW5jbHVkZSBiYWNrcmVmZXJlbmNlcy4KICAgICBzaXplX3Qgc2VhcmNoTGVu
Z3RoID0gc2VhcmNoLmxlbmd0aCgpOwpAQCAtMjg2MCwxMCArMjcxNiwxMCBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nUmVwbGFjZVN0cmluZ0VtcHR5U3RyaW5nV2l0
aFRhYmxlOCwgSlNTdAogICAgIGF1dG8gcmVzdWx0ID0gdHJ5TWFrZVN0cmluZyhTdHJpbmdWaWV3
KHN0cmluZykuc3Vic3RyaW5nKDAsIG1hdGNoU3RhcnQpLCBTdHJpbmdWaWV3KHN0cmluZykuc3Vi
c3RyaW5nKG1hdGNoRW5kLCBzdHJpbmcubGVuZ3RoKCkgLSBtYXRjaEVuZCkpOwogICAgIGlmIChV
TkxJS0VMWSghcmVzdWx0KSkgewogICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIG51bGxwdHIp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBPUEVSQVRJT05fUkVUVVJO
KHNjb3BlLCBqc1N0cmluZyh2bSwgV1RGTW92ZShyZXN1bHQpKSk7CisgICAgcmV0dXJuIGpzU3Ry
aW5nKHZtLCBXVEZNb3ZlKHJlc3VsdCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU3RyaW5nUmVwbGFjZVN0cmluZ0dlbmVyaWMsIEpTU3RyaW5nKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmdDZWxsLCBKU1N0cmluZyogc2Vh
cmNoQ2VsbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFJlcGxhY2VWYWx1ZSkpCkBAIC0yODc0LDE0
ICsyNzMwLDE0IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdSZXBs
YWNlU3RyaW5nR2VuZXJpYywgSlNTdHJpbmcqLCAoSlNHbG9iCiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgU3RyaW5nIHN0cmluZyA9IHN0cmluZ0NlbGwt
PnZhbHVlKGdsb2JhbE9iamVjdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIG51bGxwdHIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIp
OwogCiAgICAgU3RyaW5nIHNlYXJjaCA9IHNlYXJjaENlbGwtPnZhbHVlKGdsb2JhbE9iamVjdCk7
Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCiAgICAgSlNWYWx1ZSByZXBs
YWNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFJlcGxhY2VWYWx1ZSk7CiAKLSAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCByZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2godm0sIGdsb2Jh
bE9iamVjdCwgc3RyaW5nQ2VsbCwgV1RGTW92ZShzdHJpbmcpLCBXVEZNb3ZlKHNlYXJjaCksIHJl
cGxhY2VWYWx1ZSwgU3RyaW5nUmVwbGFjZU1vZGU6OlNpbmdsZSkpOworICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgcmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoKHZtLCBnbG9iYWxPYmplY3Qs
IHN0cmluZ0NlbGwsIFdURk1vdmUoc3RyaW5nKSwgV1RGTW92ZShzZWFyY2gpLCByZXBsYWNlVmFs
dWUsIFN0cmluZ1JlcGxhY2VNb2RlOjpTaW5nbGUpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblN0cmluZ1N1YnN0ciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgaW50MzJfdCBmcm9tLCBpbnQzMl90IHNwYW4pKQpA
QCAtMjg4OSw5ICsyNzQ1LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0
cmluZ1N1YnN0ciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBqc1N1YnN0cmluZyh2bSwg
Z2xvYmFsT2JqZWN0LCBqc0Nhc3Q8SlNTdHJpbmcqPihjZWxsKSwgZnJvbSwgc3BhbikpOworICAg
IHJldHVybiBqc1N1YnN0cmluZyh2bSwgZ2xvYmFsT2JqZWN0LCBqc0Nhc3Q8SlNTdHJpbmcqPihj
ZWxsKSwgZnJvbSwgc3Bhbik7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25TdHJpbmdTbGljZSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNTdHJpbmcqIHN0cmluZywgaW50MzJfdCBzdGFydCkpCkBAIC0yODk5LDEwICsyNzU0LDkgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1NsaWNlLCBKU1N0cmluZyos
IChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAg
IEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
KTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ2NF90PihKU1N0cmluZzo6TWF4TGVuZ3RoKSA8PSBz
dGF0aWNfY2FzdDx1aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkp
KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBzdHJpbmdTbGljZTxpbnQzMl90PihnbG9i
YWxPYmplY3QsIHZtLCBzdHJpbmcsIHN0cmluZy0+bGVuZ3RoKCksIHN0YXJ0LCBzdGQ6Om51bGxv
cHQpKTsKKyAgICByZXR1cm4gc3RyaW5nU2xpY2U8aW50MzJfdD4oZ2xvYmFsT2JqZWN0LCB2bSwg
c3RyaW5nLCBzdHJpbmctPmxlbmd0aCgpLCBzdGFydCwgc3RkOjpudWxsb3B0KTsKIH0KIAogSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1NsaWNlV2l0aEVuZCwgSlNTdHJp
bmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmluZywgaW50
MzJfdCBzdGFydCwgaW50MzJfdCBlbmQpKQpAQCAtMjkxMCwxMCArMjc2NCw5IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTbGljZVdpdGhFbmQsIEpTU3RyaW5nKiwg
KEpTR2xvYmFsT2JqZWN0CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgc3RhdGljX2Fzc2Vy
dChzdGF0aWNfY2FzdDx1aW50NjRfdD4oSlNTdHJpbmc6Ok1heExlbmd0aCkgPD0gc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKSk7Ci0gICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSwgc3RyaW5nU2xpY2U8aW50MzJfdD4oZ2xvYmFsT2JqZWN0
LCB2bSwgc3RyaW5nLCBzdHJpbmctPmxlbmd0aCgpLCBzdGFydCwgZW5kKSk7CisgICAgcmV0dXJu
IHN0cmluZ1NsaWNlPGludDMyX3Q+KGdsb2JhbE9iamVjdCwgdm0sIHN0cmluZywgc3RyaW5nLT5s
ZW5ndGgoKSwgc3RhcnQsIGVuZCk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25TdHJpbmdTdWJzdHJpbmcsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTU3RyaW5nKiBzdHJpbmcsIGludDMyX3Qgc3RhcnQpKQpAQCAtMjkyMSw5ICsyNzc0
LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1N1YnN0cmluZywg
SlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGcKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2Fs
bEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBzdHJpbmdTdWJzdHJpbmcoZ2xvYmFsT2JqZWN0LCBz
dHJpbmcsIHN0YXJ0LCBzdGQ6Om51bGxvcHQpKTsKKyAgICByZXR1cm4gc3RyaW5nU3Vic3RyaW5n
KGdsb2JhbE9iamVjdCwgc3RyaW5nLCBzdGFydCwgc3RkOjpudWxsb3B0KTsKIH0KIAogSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1N1YnN0cmluZ1dpdGhFbmQsIEpTU3Ry
aW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmcsIGlu
dDMyX3Qgc3RhcnQsIGludDMyX3QgZW5kKSkKQEAgLTI5MzEsOSArMjc4Myw4IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTdWJzdHJpbmdXaXRoRW5kLCBKU1N0cmlu
ZyosIChKU0dsb2JhbE9iCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgT1BFUkFUSU9OX1JF
VFVSTihzY29wZSwgc3RyaW5nU3Vic3RyaW5nKGdsb2JhbE9iamVjdCwgc3RyaW5nLCBzdGFydCwg
ZW5kKSk7CisgICAgcmV0dXJuIHN0cmluZ1N1YnN0cmluZyhnbG9iYWxPYmplY3QsIHN0cmluZywg
c3RhcnQsIGVuZCk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0xv
d2VyQ2FzZSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJp
bmcqIHN0cmluZywgdWludDMyX3QgZmFpbGluZ0luZGV4KSkKQEAgLTI5NDUsMTQgKzI3OTYsMTQg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvTG93ZXJDYXNlLCBKU1N0cmlu
ZyosIChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAKICAgICBTdHJpbmcgaW5wdXRTdHJpbmcgPSBzdHJpbmctPnZhbHVlKGds
b2JhbE9iamVjdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51
bGxwdHIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgIGlm
ICghaW5wdXRTdHJpbmcubGVuZ3RoKCkpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUs
IHZtLnNtYWxsU3RyaW5ncy5lbXB0eVN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIHZtLnNtYWxs
U3RyaW5ncy5lbXB0eVN0cmluZygpOwogCiAgICAgU3RyaW5nIGxvd2VyY2FzZWRTdHJpbmcgPSBp
bnB1dFN0cmluZy5pczhCaXQoKSA/IGlucHV0U3RyaW5nLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhv
dXRMb2NhbGVTdGFydGluZ0F0RmFpbGluZ0luZGV4OEJpdChmYWlsaW5nSW5kZXgpIDogaW5wdXRT
dHJpbmcuY29udmVydFRvTG93ZXJjYXNlV2l0aG91dExvY2FsZSgpOwogICAgIGlmIChsb3dlcmNh
c2VkU3RyaW5nLmltcGwoKSA9PSBpbnB1dFN0cmluZy5pbXBsKCkpCi0gICAgICAgIE9QRVJBVElP
Tl9SRVRVUk4oc2NvcGUsIHN0cmluZyk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwganNT
dHJpbmcodm0sIFdURk1vdmUobG93ZXJjYXNlZFN0cmluZykpKTsKKyAgICAgICAgcmV0dXJuIHN0
cmluZzsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGpzU3RyaW5nKHZtLCBXVEZNb3Zl
KGxvd2VyY2FzZWRTdHJpbmcpKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25TdHJpbmdMb2NhbGVDb21wYXJlLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogYmFzZSwgSlNTdHJpbmcqIGFyZ3VtZW50KSkKQEAg
LTI5NjQsMTQgKzI4MTUsMTQgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0
cmluZ0xvY2FsZUNvbXBhcmUsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmEKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBTdHJpbmcgc3RyaW5nID0gYmFz
ZS0+dmFsdWUoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgMCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAg
IFN0cmluZyB0aGF0ID0gYXJndW1lbnQtPnZhbHVlKGdsb2JhbE9iamVjdCk7Ci0gICAgT1BFUkFU
SU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIDApOworICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CiAKICAgICBhdXRvKiBjb2xsYXRvciA9IGdsb2JhbE9iamVjdC0+ZGVm
YXVsdENvbGxhdG9yKCk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCB0b1VDUFVTdHJp
Y3RJbnQzMihjb2xsYXRvci0+Y29tcGFyZVN0cmluZ3MoZ2xvYmFsT2JqZWN0LCBzdHJpbmcsIHRo
YXQpKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCB0b1VDUFVTdHJpY3RJbnQzMihj
b2xsYXRvci0+Y29tcGFyZVN0cmluZ3MoZ2xvYmFsT2JqZWN0LCBzdHJpbmcsIHRoYXQpKSk7CiB9
CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdJbmRleE9mLCBVQ1BV
U3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogYmFz
ZSwgSlNTdHJpbmcqIGFyZ3VtZW50KSkKQEAgLTI5ODMsMTUgKzI4MzQsMTUgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ0luZGV4T2YsIFVDUFVTdHJpY3RJbnQzMiwg
KEpTR2xvYmFsT2JqZWMKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKICAgICBhdXRvIHRoaXNWaWV3V2l0aFN0cmluZyA9IGJhc2UtPnZpZXdXaXRoVW5kZXJseWlu
Z1N0cmluZyhnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCAwKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAg
YXV0byBvdGhlclZpZXdXaXRoU3RyaW5nID0gYXJndW1lbnQtPnZpZXdXaXRoVW5kZXJseWluZ1N0
cmluZyhnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCAwKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgc2l6
ZV90IHJlc3VsdCA9IHRoaXNWaWV3V2l0aFN0cmluZy52aWV3LmZpbmQodm0uYWRhcHRpdmVTdHJp
bmdTZWFyY2hlclRhYmxlcygpLCBvdGhlclZpZXdXaXRoU3RyaW5nLnZpZXcpOwogICAgIGlmIChy
ZXN1bHQgPT0gbm90Rm91bmQpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHRvVUNQ
VVN0cmljdEludDMyKC0xKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgdG9VQ1BVU3Ry
aWN0SW50MzIocmVzdWx0KSk7CisgICAgICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMigtMSk7
CisgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKHJlc3VsdCk7CiB9CiAKIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdJbmRleE9mV2l0aE9uZUNoYXIsIFVDUFVTdHJp
Y3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBiYXNlLCBp
bnQzMl90IGNoYXJhY3RlcikpCkBAIC0zMDAzLDEyICsyODU0LDEyIEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdJbmRleE9mV2l0aE9uZUNoYXIsIFVDUFVTdHJpY3RJ
bnQzMiwgKEpTCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAg
ICAgYXV0byB0aGlzVmlld1dpdGhTdHJpbmcgPSBiYXNlLT52aWV3V2l0aFVuZGVybHlpbmdTdHJp
bmcoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgMCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIHNpemVf
dCByZXN1bHQgPSB0aGlzVmlld1dpdGhTdHJpbmcudmlldy5maW5kKHN0YXRpY19jYXN0PFVDaGFy
PihjaGFyYWN0ZXIpKTsKICAgICBpZiAocmVzdWx0ID09IG5vdEZvdW5kKQotICAgICAgICBPUEVS
QVRJT05fUkVUVVJOKHNjb3BlLCB0b1VDUFVTdHJpY3RJbnQzMigtMSkpOwotICAgIE9QRVJBVElP
Tl9SRVRVUk4oc2NvcGUsIHRvVUNQVVN0cmljdEludDMyKHJlc3VsdCkpOworICAgICAgICByZXR1
cm4gdG9VQ1BVU3RyaWN0SW50MzIoLTEpOworICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMihy
ZXN1bHQpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nSW5k
ZXhPZldpdGhJbmRleCwgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNTdHJpbmcqIGJhc2UsIEpTU3RyaW5nKiBhcmd1bWVudCwgaW50MzJfdCBwb3NpdGlv
bikpCkBAIC0zMDIwLDEwICsyODcxLDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25TdHJpbmdJbmRleE9mV2l0aEluZGV4LCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsCiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgYXV0byB0aGlzVmll
d1dpdGhTdHJpbmcgPSBiYXNlLT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoZ2xvYmFsT2JqZWN0
KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgMCk7CisgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIGF1dG8gb3RoZXJWaWV3V2l0aFN0
cmluZyA9IGFyZ3VtZW50LT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoZ2xvYmFsT2JqZWN0KTsK
LSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgMCk7CisgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIGludDMyX3QgbGVuZ3RoID0gdGhpc1Zp
ZXdXaXRoU3RyaW5nLnZpZXcubGVuZ3RoKCk7CiAgICAgdW5zaWduZWQgcG9zID0gMDsKQEAgLTMw
MzEsMTIgKzI4ODIsMTIgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmlu
Z0luZGV4T2ZXaXRoSW5kZXgsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2wKICAgICAgICAgcG9zID0g
c3RkOjptaW48dWludDMyX3Q+KHBvc2l0aW9uLCBsZW5ndGgpOwogCiAgICAgaWYgKHN0YXRpY19j
YXN0PHVuc2lnbmVkPihsZW5ndGgpIDwgb3RoZXJWaWV3V2l0aFN0cmluZy52aWV3Lmxlbmd0aCgp
ICsgcG9zKQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCB0b1VDUFVTdHJpY3RJbnQz
MigtMSkpOworICAgICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoLTEpOwogCiAgICAgc2l6
ZV90IHJlc3VsdCA9IHRoaXNWaWV3V2l0aFN0cmluZy52aWV3LmZpbmQodm0uYWRhcHRpdmVTdHJp
bmdTZWFyY2hlclRhYmxlcygpLCBvdGhlclZpZXdXaXRoU3RyaW5nLnZpZXcsIHBvcyk7CiAgICAg
aWYgKHJlc3VsdCA9PSBub3RGb3VuZCkKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
dG9VQ1BVU3RyaWN0SW50MzIoLTEpKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCB0b1VD
UFVTdHJpY3RJbnQzMihyZXN1bHQpKTsKKyAgICAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMy
KC0xKTsKKyAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIocmVzdWx0KTsKIH0KIAogSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ0luZGV4T2ZXaXRoSW5kZXhXaXRoT25l
Q2hhciwgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNT
dHJpbmcqIGJhc2UsIGludDMyX3QgcG9zaXRpb24sIGludDMyX3QgY2hhcmFjdGVyKSkKQEAgLTMw
NDgsNyArMjg5OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdJ
bmRleE9mV2l0aEluZGV4V2l0aE9uZUNoYXIsIFVDUFVTdHJpY3RJCiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgYXV0byB0aGlzVmlld1dpdGhTdHJpbmcg
PSBiYXNlLT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVS
QVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgMCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKIAogICAgIGludDMyX3QgbGVuZ3RoID0gdGhpc1ZpZXdXaXRoU3Ry
aW5nLnZpZXcubGVuZ3RoKCk7CiAgICAgdW5zaWduZWQgcG9zID0gMDsKQEAgLTMwNTYsMTIgKzI5
MDcsMTIgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ0luZGV4T2ZX
aXRoSW5kZXhXaXRoT25lQ2hhciwgVUNQVVN0cmljdEkKICAgICAgICAgcG9zID0gc3RkOjptaW48
dWludDMyX3Q+KHBvc2l0aW9uLCBsZW5ndGgpOwogCiAgICAgaWYgKHN0YXRpY19jYXN0PHVuc2ln
bmVkPihsZW5ndGgpIDwgMSArIHBvcykKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
dG9VQ1BVU3RyaWN0SW50MzIoLTEpKTsKKyAgICAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMy
KC0xKTsKIAogICAgIHNpemVfdCByZXN1bHQgPSB0aGlzVmlld1dpdGhTdHJpbmcudmlldy5maW5k
KHN0YXRpY19jYXN0PFVDaGFyPihjaGFyYWN0ZXIpLCBwb3MpOwogICAgIGlmIChyZXN1bHQgPT0g
bm90Rm91bmQpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHRvVUNQVVN0cmljdElu
dDMyKC0xKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgdG9VQ1BVU3RyaWN0SW50MzIo
cmVzdWx0KSk7CisgICAgICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMigtMSk7CisgICAgcmV0
dXJuIHRvVUNQVVN0cmljdEludDMyKHJlc3VsdCk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25JbnQzMlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIGludDMyX3QgdmFsdWUsIGludDMyX3QgcmFkaXgpKQpAQCAtMzA3NCwxMCArMjky
NSwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50MzJUb1N0cmluZywg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogCiAgICAgaWYgKHJhZGl4IDwgMiB8fCBy
YWRpeCA+IDM2KSB7CiAgICAgICAgIHRocm93Vk1FcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBj
cmVhdGVSYW5nZUVycm9yKGdsb2JhbE9iamVjdCwgInRvU3RyaW5nKCkgcmFkaXggYXJndW1lbnQg
bXVzdCBiZSBiZXR3ZWVuIDIgYW5kIDM2Il9zKSk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4o
c2NvcGUsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCByZWludGVycHJldF9jYXN0PGNoYXIqPihpbnQzMlRvU3Ry
aW5nKHZtLCB2YWx1ZSwgcmFkaXgpKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KGludDMyVG9TdHJpbmcodm0sIHZhbHVlLCByYWRpeCkpOwogfQogCiBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSW50NTJUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKQEAgLTMwOTAs
MTAgKzI5NDEsMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9T
dHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIAogICAgIGlmIChyYWRpeCA8
IDIgfHwgcmFkaXggPiAzNikgewogICAgICAgICB0aHJvd1ZNRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgY3JlYXRlUmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsICJ0b1N0cmluZygpIHJhZGl4IGFy
Z3VtZW50IG11c3QgYmUgYmV0d2VlbiAyIGFuZCAzNiJfcykpOwotICAgICAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaW50
NTJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4KSkpOworICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PGNoYXIqPihpbnQ1MlRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFkaXgpKTsKIH0KIAogSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJsZVRvU3RyaW5nLCBjaGFyKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSwgaW50MzJfdCByYWRpeCkpCkBA
IC0zMTA2LDEwICsyOTU3LDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25E
b3VibGVUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAKICAgICBpZiAo
cmFkaXggPCAyIHx8IHJhZGl4ID4gMzYpIHsKICAgICAgICAgdGhyb3dWTUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCAidG9TdHJpbmcoKSBy
YWRpeCBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMiBhbmQgMzYiX3MpKTsKLSAgICAgICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KG51bWJlclRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFkaXgpKSk7CisgICAgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8Y2hhcio+KG51bWJlclRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFkaXgpKTsKIH0K
IAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmdXaXRoVmFs
aWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90IHZh
bHVlLCBpbnQzMl90IHJhZGl4KSkKQEAgLTMxMTcsOSArMjk2OCw4IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAo
SlNHbG9iYWxPCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Q
cm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihz
Y29wZSwgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaW50MzJUb1N0cmluZyh2bSwgdmFsdWUsIHJh
ZGl4KSkpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihpbnQzMlRvU3RyaW5n
KHZtLCB2YWx1ZSwgcmFkaXgpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkludDUyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKQEAgLTMxMjcsOSAr
Mjk3Nyw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQ1MlRvU3RyaW5n
V2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPCiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0s
IGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaW50
NTJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4KSkpOworICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PGNoYXIqPihpbnQ1MlRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFkaXgpKTsKIH0KIAogSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJsZVRvU3RyaW5nV2l0aFZhbGlkUmFkaXgs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgZG91YmxlIHZhbHVlLCBpbnQz
Ml90IHJhZGl4KSkKQEAgLTMxMzcsOSArMjk4Niw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Eb3VibGVUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFs
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4obnVtYmVyVG9TdHJpbmcodm0sIHZhbHVlLCByYWRpeCkpKTsK
KyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obnVtYmVyVG9TdHJpbmcodm0sIHZh
bHVlLCByYWRpeCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRnVu
Y3Rpb25Ub1N0cmluZywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNGdW5jdGlvbiogZnVuY3Rpb24pKQpAQCAtMzE0Nyw5ICsyOTk1LDggQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkZ1bmN0aW9uVG9TdHJpbmcsIEpTU3RyaW5nKiwgKEpTR2xv
YmFsT2JqZWN0KgogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4o
c2NvcGUsIGZ1bmN0aW9uLT50b1N0cmluZyhnbG9iYWxPYmplY3QpKTsKKyAgICByZXR1cm4gZnVu
Y3Rpb24tPnRvU3RyaW5nKGdsb2JhbE9iamVjdCk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25GdW5jdGlvbkJpbmQsIEpTQm91bmRGdW5jdGlvbiosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogdGFyZ2V0LCBFbmNvZGVkSlNWYWx1ZSBib3Vu
ZFRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgYXJnMFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBhcmcx
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGFyZzJWYWx1ZSkpCkBAIC0zMTYxLDcgKzMwMDgsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRnVuY3Rpb25CaW5kLCBKU0JvdW5kRnVu
Y3Rpb24qLCAoSlNHbG9iYWxPYmplYwogCiAgICAgaWYgKFVOTElLRUxZKCF0YXJnZXQtPmlzQ2Fs
bGFibGUoKSkpIHsKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
Inx0aGlzfCBpcyBub3QgYSBmdW5jdGlvbiBpbnNpZGUgRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQi
X3MpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBudWxscHRyKTsKKyAgICAgICAg
cmV0dXJuIHsgfTsKICAgICB9CiAKICAgICB1bnNpZ25lZCBib3VuZEFyZ3NMZW5ndGggPSAwOwpA
QCAtMzE4OSwyNiArMzAzNiwyNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RnVuY3Rpb25CaW5kLCBKU0JvdW5kRnVuY3Rpb24qLCAoSlNHbG9iYWxPYmplYwogICAgICAgICBs
ZW5ndGggPSBQTmFOOyAvLyBEZWZlciBjb21wdXRhdGlvbi4KICAgICB9IGVsc2UgewogICAgICAg
ICBib29sIGZvdW5kID0gdGFyZ2V0LT5oYXNPd25Qcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLnBy
b3BlcnR5TmFtZXMtPmxlbmd0aCk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKICAgICAgICAgaWYgKGZvdW5kKSB7CiAgICAgICAgICAgICBKU1ZhbHVlIGxlbmd0aFZh
bHVlID0gdGFyZ2V0LT5nZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgp
OwotICAgICAgICAgICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxw
dHIpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICAg
ICAgICAgIGxlbmd0aCA9IGxlbmd0aFZhbHVlLnRvSW50ZWdlck9ySW5maW5pdHkoZ2xvYmFsT2Jq
ZWN0KTsKLSAgICAgICAgICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAg
ICAgICAgICAgICBpZiAobGVuZ3RoID4gYm91bmRBcmdzTGVuZ3RoKQogICAgICAgICAgICAgICAg
IGxlbmd0aCAtPSBib3VuZEFyZ3NMZW5ndGg7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgbGVuZ3RoID0gMDsKICAgICAgICAgfQogICAgICAgICBKU1ZhbHVlIG5hbWVWYWx1ZSA9
IHRhcmdldC0+Z2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSk7Ci0gICAg
ICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICAgICAgaWYgKG5hbWVWYWx1
ZS5pc1N0cmluZygpKQogICAgICAgICAgICAgbmFtZSA9IGFzU3RyaW5nKG5hbWVWYWx1ZSk7CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIG5hbWUgPSBqc0VtcHR5U3RyaW5nKHZtKTsKICAgICB9
CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU0JvdW5kRnVuY3Rpb246OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCB0YXJnZXQsIGJvdW5kVGhpcywgYm91bmRBcmdzLCBsZW5ndGgsIG5h
bWUpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTQm91bmRGdW5jdGlvbjo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHRhcmdldCwgYm91bmRUaGlzLCBib3VuZEFyZ3MsIGxlbmd0
aCwgbmFtZSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3Qm91
bmRGdW5jdGlvbiwgSlNCb3VuZEZ1bmN0aW9uKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTRnVuY3Rpb24qIGZ1bmN0aW9uLCBFbmNvZGVkSlNWYWx1ZSBib3VuZFRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgYXJnMFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBhcmcxVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGFyZzJWYWx1ZSkpCkBAIC0zMjE2LDcgKzMwNjMsNiBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3Qm91bmRGdW5jdGlvbiwgSlNCb3VuZEZ1bmN0aW9uKiwg
KEpTR2xvYmFsTwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIGJvdW5kVGhpcyA9
IEpTVmFsdWU6OmRlY29kZShib3VuZFRoaXNWYWx1ZSk7CiAgICAgSlNWYWx1ZSBhcmcwID0gSlNW
YWx1ZTo6ZGVjb2RlKGFyZzBWYWx1ZSk7CiAgICAgSlNWYWx1ZSBhcmcxID0gSlNWYWx1ZTo6ZGVj
b2RlKGFyZzFWYWx1ZSk7CkBAIC0zMjI1LDcgKzMwNzEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3Qm91bmRGdW5jdGlvbiwgSlNCb3VuZEZ1bmN0aW9uKiwgKEpTR2xv
YmFsTwogICAgIGJvdW5kQXJnc0xlbmd0aCArPSAhIShhcmcwKTsKICAgICBib3VuZEFyZ3NMZW5n
dGggKz0gISEoYXJnMSk7CiAgICAgYm91bmRBcmdzTGVuZ3RoICs9ICEhKGFyZzIpOwotICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTQm91bmRGdW5jdGlvbjo6Y3JlYXRlUmF3KHZtLCBnbG9i
YWxPYmplY3QsIGZ1bmN0aW9uLCBib3VuZEFyZ3NMZW5ndGgsIGJvdW5kVGhpcywgYXJnMCwgYXJn
MSwgYXJnMikpOworICAgIHJldHVybiBKU0JvdW5kRnVuY3Rpb246OmNyZWF0ZVJhdyh2bSwgZ2xv
YmFsT2JqZWN0LCBmdW5jdGlvbiwgYm91bmRBcmdzTGVuZ3RoLCBib3VuZFRoaXMsIGFyZzAsIGFy
ZzEsIGFyZzIpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2luZ2xl
Q2hhcmFjdGVyU3RyaW5nLCBKU1N0cmluZyosIChWTSogdm1Qb2ludGVyLCBpbnQzMl90IGNoYXJh
Y3RlcikpCkBAIC0zMjMzLDkgKzMwNzksOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBKU1N0cmluZyosIChWTSogdm1Qb2ludAogICAg
IFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAgICAgCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwganNTaW5nbGVDaGFy
YWN0ZXJTdHJpbmcodm0sIHN0YXRpY19jYXN0PFVDaGFyPihjaGFyYWN0ZXIpKSk7CisgICAgcmV0
dXJuIGpzU2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHZtLCBzdGF0aWNfY2FzdDxVQ2hhcj4oY2hhcmFj
dGVyKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdTeW1ib2ws
IFN5bWJvbCosIChWTSogdm1Qb2ludGVyKSkKQEAgLTMyNDMsOSArMzA4OCw4IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdTeW1ib2wsIFN5bWJvbCosIChWTSogdm1Qb2lu
dGVyKSkKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgU3ltYm9s
OjpjcmVhdGUodm0pKTsKKyAgICByZXR1cm4gU3ltYm9sOjpjcmVhdGUodm0pOwogfQogCiBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3U3ltYm9sV2l0aFN0cmluZ0Rlc2NyaXB0
aW9uLCBTeW1ib2wqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGRl
c2NyaXB0aW9uKSkKQEAgLTMyNTYsOSArMzEwMCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdTeW1ib2xXaXRoU3RyaW5nRGVzY3JpcHRpb24sIFN5bWJvbCosIChKU0ds
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgU3RyaW5n
IHN0cmluZyA9IGRlc2NyaXB0aW9uLT52YWx1ZShnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElP
Tl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIFN5
bWJvbDo6Y3JlYXRlV2l0aERlc2NyaXB0aW9uKHZtLCBXVEZNb3ZlKHN0cmluZykpKTsKKyAgICBy
ZXR1cm4gU3ltYm9sOjpjcmVhdGVXaXRoRGVzY3JpcHRpb24odm0sIFdURk1vdmUoc3RyaW5nKSk7
CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdTeW1ib2xXaXRoRGVz
Y3JpcHRpb24sIFN5bWJvbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkRGVzY3JpcHRpb24pKQpAQCAtMzI3MCwxMiArMzExNCwxMiBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3U3ltYm9sV2l0aERlc2NyaXB0aW9uLCBT
eW1ib2wqLCAoSlNHbG9iYWxPYgogCiAgICAgSlNWYWx1ZSBkZXNjcmlwdGlvbiA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkRGVzY3JpcHRpb24pOwogICAgIGlmIChkZXNjcmlwdGlvbi5pc1VuZGVm
aW5lZCgpKQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBTeW1ib2w6OmNyZWF0ZSh2
bSkpOworICAgICAgICByZXR1cm4gU3ltYm9sOjpjcmVhdGUodm0pOwogCiAgICAgU3RyaW5nIHN0
cmluZyA9IGRlc2NyaXB0aW9uLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7Ci0gICAgT1BFUkFU
SU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
U3ltYm9sOjpjcmVhdGVXaXRoRGVzY3JpcHRpb24odm0sIHN0cmluZykpOworICAgIHJldHVybiBT
eW1ib2w6OmNyZWF0ZVdpdGhEZXNjcmlwdGlvbih2bSwgc3RyaW5nKTsKIH0KIAogSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1N0cmluZ09iamVjdCwgSlNDZWxsKiwgKFZNKiB2
bVBvaW50ZXIsIEpTU3RyaW5nKiBzdHJpbmcsIFN0cnVjdHVyZSogc3RydWN0dXJlKSkKQEAgLTMy
ODMsOSArMzEyNyw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdTdHJp
bmdPYmplY3QsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBKU1N0CiAgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAg
ICAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBTdHJpbmdPYmplY3Q6OmNyZWF0ZSh2bSwg
c3RydWN0dXJlLCBzdHJpbmcpKTsKKyAgICByZXR1cm4gU3RyaW5nT2JqZWN0OjpjcmVhdGUodm0s
IHN0cnVjdHVyZSwgc3RyaW5nKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblRvU3RyaW5nT25DZWxsLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0NlbGwqIGNlbGwpKQpAQCAtMzI5Myw5ICszMTM2LDggQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblRvU3RyaW5nT25DZWxsLCBKU1N0cmluZyosIChKU0dsb2JhbE9i
amVjdCogZ2wKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblBy
b2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgCi0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSwgSlNWYWx1ZShjZWxsKS50b1N0cmluZyhnbG9iYWxPYmplY3QpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZShjZWxsKS50b1N0cmluZyhnbG9iYWxPYmplY3QpOwogfQogCiBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9TdHJpbmcsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKSkKQEAgLTMzMDMsOSArMzE0
NSw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub1N0cmluZywgSlNTdHJp
bmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0g
ICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50b1N0cmlu
ZyhnbG9iYWxPYmplY3QpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50b1N0
cmluZyhnbG9iYWxPYmplY3QpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ2FsbFN0cmluZ0NvbnN0cnVjdG9yT25DZWxsLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwpKQpAQCAtMzMxMyw5ICszMTU0LDggQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3Rvck9uQ2Vs
bCwgSlNTdHJpbmcqLCAoSlNHbG8KICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
LSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBPUEVSQVRJ
T05fUkVUVVJOKHNjb3BlLCBzdHJpbmdDb25zdHJ1Y3RvcihnbG9iYWxPYmplY3QsIGNlbGwpKTsK
KyAgICByZXR1cm4gc3RyaW5nQ29uc3RydWN0b3IoZ2xvYmFsT2JqZWN0LCBjZWxsKTsKIH0KIAog
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3Rvciwg
SlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dmFsdWUpKQpAQCAtMzMyMyw5ICszMTYzLDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3RvciwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmoKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBzdHJpbmdD
b25zdHJ1Y3RvcihnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkpKTsKKyAgICBy
ZXR1cm4gc3RyaW5nQ29uc3RydWN0b3IoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUodmFs
dWUpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1ha2VSb3BlMiwg
SlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGxlZnQs
IEpTU3RyaW5nKiByaWdodCkpCkBAIC0zMzMzLDkgKzMxNzIsOCBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTWFrZVJvcGUyLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsTwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2Nv
cGUsIGpzU3RyaW5nKGdsb2JhbE9iamVjdCwgbGVmdCwgcmlnaHQpKTsKKyAgICByZXR1cm4ganNT
dHJpbmcoZ2xvYmFsT2JqZWN0LCBsZWZ0LCByaWdodCk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25NYWtlUm9wZTMsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYiwgSlNTdHJpbmcqIGMpKQpAQCAt
MzM0MywxNCArMzE4MSwxNCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFr
ZVJvcGUzLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGpzU3RyaW5nKGdsb2JhbE9i
amVjdCwgYSwgYiwgYykpOworICAgIHJldHVybiBqc1N0cmluZyhnbG9iYWxPYmplY3QsIGEsIGIs
IGMpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyQ2F0MiwgSlNT
dHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYSwg
RW5jb2RlZEpTVmFsdWUgYikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwor
ICAgIERlZmVyVGVybWluYXRpb24gZGVmZXJTY29wZSh2bSk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3Vl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMzU4LDE2ICszMTk2LDE3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJDYXQyLCBKU1N0cmluZyosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqCiAgICAgQVNTRVJUKCFKU1ZhbHVlOjpkZWNvZGUoYSkuaXNTeW1ib2wo
KSk7CiAgICAgQVNTRVJUKCFKU1ZhbHVlOjpkZWNvZGUoYikuaXNTeW1ib2woKSk7CiAgICAgSlNT
dHJpbmcqIHN0cjEgPSBKU1ZhbHVlOjpkZWNvZGUoYSkudG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsK
LSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7IC8vIE9P
TSBleGNlcHRpb24gY2FuIGhhcHBlbiBmcm9tIFRvU3RyaW5nKEJpZ0ludCkuCisgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7IC8vIE9PTSBleGNlcHRpb24gY2FuIGhhcHBl
biBmcm9tIFRvU3RyaW5nKEJpZ0ludCkuCiAgICAgSlNTdHJpbmcqIHN0cjIgPSBKU1ZhbHVlOjpk
ZWNvZGUoYikudG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgbnVsbHB0cik7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBqc1N0cmluZyhnbG9i
YWxPYmplY3QsIHN0cjEsIHN0cjIpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGpz
U3RyaW5nKGdsb2JhbE9iamVjdCwgc3RyMSwgc3RyMikpOwogfQogICAgIAogSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0ckNhdDMsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGEsIEVuY29kZWRKU1ZhbHVlIGIsIEVuY29k
ZWRKU1ZhbHVlIGMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBE
ZWZlclRlcm1pbmF0aW9uIGRlZmVyU2NvcGUodm0pOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzM3NiwxMyArMzIxNSwxMyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyQ2F0MywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iagogICAgIEFTU0VSVCghSlNWYWx1ZTo6ZGVjb2RlKGIpLmlzU3ltYm9sKCkpOwog
ICAgIEFTU0VSVCghSlNWYWx1ZTo6ZGVjb2RlKGMpLmlzU3ltYm9sKCkpOwogICAgIEpTU3RyaW5n
KiBzdHIxID0gSlNWYWx1ZTo6ZGVjb2RlKGEpLnRvU3RyaW5nKGdsb2JhbE9iamVjdCk7Ci0gICAg
T1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOyAvLyBPT00gZXhj
ZXB0aW9uIGNhbiBoYXBwZW4gZnJvbSBUb1N0cmluZyhCaWdJbnQpLgorICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIG51bGxwdHIpOyAvLyBPT00gZXhjZXB0aW9uIGNhbiBoYXBwZW4gZnJv
bSBUb1N0cmluZyhCaWdJbnQpLgogICAgIEpTU3RyaW5nKiBzdHIyID0gSlNWYWx1ZTo6ZGVjb2Rl
KGIpLnRvU3RyaW5nKGdsb2JhbE9iamVjdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51
bGxwdHIpOwogICAgIEpTU3RyaW5nKiBzdHIzID0gSlNWYWx1ZTo6ZGVjb2RlKGMpLnRvU3RyaW5n
KGdsb2JhbE9iamVjdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IG51bGxwdHIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCi0g
ICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwganNTdHJpbmcoZ2xvYmFsT2JqZWN0LCBzdHIxLCBz
dHIyLCBzdHIzKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBqc1N0cmluZyhnbG9i
YWxPYmplY3QsIHN0cjEsIHN0cjIsIHN0cjMpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk1ha2VBdG9tU3RyaW5nMSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGEpKQpAQCAtMzM5MCw5ICszMjI5LDggQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1ha2VBdG9tU3RyaW5nMSwgSlNTdHJpbmcqLCAo
SlNHbG9iYWxPYmplY3QqIGcKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlLCBqc0F0b21TdHJpbmcoZ2xvYmFsT2JqZWN0LCB2bSwgYSkpOworICAgIHJl
dHVybiBqc0F0b21TdHJpbmcoZ2xvYmFsT2JqZWN0LCB2bSwgYSk7CiB9CiAKIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25NYWtlQXRvbVN0cmluZzIsIEpTU3RyaW5nKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikpCkBAIC0z
NDAwLDkgKzMyMzgsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFrZUF0
b21TdHJpbmcyLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCogZwogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGpzQXRvbVN0cmluZyhnbG9iYWxP
YmplY3QsIHZtLCBhLCBiKSk7CisgICAgcmV0dXJuIGpzQXRvbVN0cmluZyhnbG9iYWxPYmplY3Qs
IHZtLCBhLCBiKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1ha2VB
dG9tU3RyaW5nMywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNT
dHJpbmcqIGEsIEpTU3RyaW5nKiBiLCBKU1N0cmluZyogYykpCkBAIC0zNDEwLDE3ICszMjQ3LDE1
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYWtlQXRvbVN0cmluZzMsIEpT
U3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
ICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSwganNBdG9tU3RyaW5nKGdsb2JhbE9iamVjdCwgdm0sIGEs
IGIsIGMpKTsKKyAgICByZXR1cm4ganNBdG9tU3RyaW5nKGdsb2JhbE9iamVjdCwgdm0sIGEsIGIs
IGMpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRmlu
ZFN3aXRjaEltbVRhcmdldEZvckRvdWJsZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUsIHNpemVfdCB0YWJsZUluZGV4LCBpbnQzMl90IG1pbikpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRmluZFN3aXRjaEltbVRhcmdldEZvckRv
dWJsZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IHNpemVfdCB0YWJsZUluZGV4LCBpbnQzMl90IG1pbikpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9p
bnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBD
b2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgY29uc3Qg
U2ltcGxlSnVtcFRhYmxlJiBsaW5rZWRUYWJsZSA9IGNvZGVCbG9jay0+ZGZnU3dpdGNoSnVtcFRh
YmxlKHRhYmxlSW5kZXgpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFZhbHVlKTsKQEAgLTM0MjgsOCArMzI2Myw4IEBAIEpTQ19ERUZJTkVfTk9FWENFUFRfSklU
X09QRVJBVElPTihvcGVyYXRpb25GaW5kU3dpdGNoSW1tVGFyZ2V0Rm9yRG91YmxlLCBjaGFyKiwK
ICAgICBkb3VibGUgYXNEb3VibGUgPSB2YWx1ZS5hc0RvdWJsZSgpOwogICAgIGludDMyX3QgYXNJ
bnQzMiA9IHN0YXRpY19jYXN0PGludDMyX3Q+KGFzRG91YmxlKTsKICAgICBpZiAoYXNEb3VibGUg
PT0gYXNJbnQzMikKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgbGlua2VkVGFibGUu
Y3RpRm9yVmFsdWUobWluLCBhc0ludDMyKS50YWdnZWRQdHI8Y2hhcio+KCkpOwotICAgIE9QRVJB
VElPTl9SRVRVUk4oc2NvcGUsIGxpbmtlZFRhYmxlLm1fY3RpRGVmYXVsdC50YWdnZWRQdHI8Y2hh
cio+KCkpOworICAgICAgICByZXR1cm4gbGlua2VkVGFibGUuY3RpRm9yVmFsdWUobWluLCBhc0lu
dDMyKS50YWdnZWRQdHI8Y2hhcio+KCk7CisgICAgcmV0dXJuIGxpbmtlZFRhYmxlLm1fY3RpRGVm
YXVsdC50YWdnZWRQdHI8Y2hhcio+KCk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Td2l0Y2hTdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgc2l6ZV90IHRhYmxlSW5kZXgsIGNvbnN0IFVubGlua2VkU3RyaW5nSnVtcFRhYmxlKiB1bmxp
bmtlZFRhYmxlLCBKU1N0cmluZyogc3RyaW5nKSkKQEAgLTM0MzcsMzIgKzMyNzIsMzIgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZywgY2hhciosIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
LSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBTdHJpbmdJbXBsKiBzdHJJ
bXBsID0gc3RyaW5nLT52YWx1ZShnbG9iYWxPYmplY3QpLmltcGwoKTsKIAotICAgIE9QRVJBVElP
Tl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0g
Y2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKICAgICBjb25zdCBTdHJpbmdKdW1wVGFibGUmIGxpbmtl
ZFRhYmxlID0gY29kZUJsb2NrLT5kZmdTdHJpbmdTd2l0Y2hKdW1wVGFibGUodGFibGVJbmRleCk7
Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgbGlua2VkVGFibGUuY3RpRm9yVmFsdWUoKnVu
bGlua2VkVGFibGUsIHN0ckltcGwpLnRhZ2dlZFB0cjxjaGFyKj4oKSk7CisgICAgcmV0dXJuIGxp
bmtlZFRhYmxlLmN0aUZvclZhbHVlKCp1bmxpbmtlZFRhYmxlLCBzdHJJbXBsKS50YWdnZWRQdHI8
Y2hhcio+KCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db21wYXJlU3RyaW5nSW1wbExlc3MsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqIGEsIFN0cmlu
Z0ltcGwqIGIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJp
bmdJbXBsTGVzcywgdWludHB0cl90LCAoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikpCiB7
CiAgICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmUoYSwgYikgPCAwOwogfQogCi1KU0NfREVGSU5F
X05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNzRXEs
IHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwqIGIpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsTGVzc0VxLCB1aW50cHRyX3Qs
IChTdHJpbmdJbXBsKiBhLCBTdHJpbmdJbXBsKiBiKSkKIHsKICAgICByZXR1cm4gY29kZVBvaW50
Q29tcGFyZShhLCBiKSA8PSAwOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyLCB1aW50cHRyX3QsIChTdHJpbmdJ
bXBsKiBhLCBTdHJpbmdJbXBsKiBiKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db21wYXJlU3RyaW5nSW1wbEdyZWF0ZXIsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqIGEsIFN0
cmluZ0ltcGwqIGIpKQogewogICAgIHJldHVybiBjb2RlUG9pbnRDb21wYXJlKGEsIGIpID4gMDsK
IH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVT
dHJpbmdJbXBsR3JlYXRlckVxLCB1aW50cHRyX3QsIChTdHJpbmdJbXBsKiBhLCBTdHJpbmdJbXBs
KiBiKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1w
bEdyZWF0ZXJFcSwgdWludHB0cl90LCAoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikpCiB7
CiAgICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmUoYSwgYikgPj0gMDsKIH0KQEAgLTM0NzIsOSAr
MzMwNyw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5n
TGVzcywgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqCiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0s
IGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgY29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKGFz
U3RyaW5nKGEpLT52YWx1ZShnbG9iYWxPYmplY3QpLCBhc1N0cmluZyhiKS0+dmFsdWUoZ2xvYmFs
T2JqZWN0KSkpOworICAgIHJldHVybiBjb2RlUG9pbnRDb21wYXJlTGVzc1RoYW4oYXNTdHJpbmco
YSktPnZhbHVlKGdsb2JhbE9iamVjdCksIGFzU3RyaW5nKGIpLT52YWx1ZShnbG9iYWxPYmplY3Qp
KTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdM
ZXNzRXEsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5n
KiBhLCBKU1N0cmluZyogYikpCkBAIC0zNDgyLDkgKzMzMTYsOCBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0xlc3NFcSwgdWludHB0cl90LCAoSlNHbG9i
YWxPYmplYwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2Nv
cGUsICFjb2RlUG9pbnRDb21wYXJlTGVzc1RoYW4oYXNTdHJpbmcoYiktPnZhbHVlKGdsb2JhbE9i
amVjdCksIGFzU3RyaW5nKGEpLT52YWx1ZShnbG9iYWxPYmplY3QpKSk7CisgICAgcmV0dXJuICFj
b2RlUG9pbnRDb21wYXJlTGVzc1RoYW4oYXNTdHJpbmcoYiktPnZhbHVlKGdsb2JhbE9iamVjdCks
IGFzU3RyaW5nKGEpLT52YWx1ZShnbG9iYWxPYmplY3QpKTsKIH0KIAogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdHcmVhdGVyLCB1aW50cHRyX3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogYSwgSlNTdHJpbmcqIGIpKQpAQCAt
MzQ5Miw5ICszMzI1LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBh
cmVTdHJpbmdHcmVhdGVyLCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamUKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBjb2RlUG9pbnRDb21wYXJlTGVz
c1RoYW4oYXNTdHJpbmcoYiktPnZhbHVlKGdsb2JhbE9iamVjdCksIGFzU3RyaW5nKGEpLT52YWx1
ZShnbG9iYWxPYmplY3QpKSk7CisgICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmVMZXNzVGhhbihh
c1N0cmluZyhiKS0+dmFsdWUoZ2xvYmFsT2JqZWN0KSwgYXNTdHJpbmcoYSktPnZhbHVlKGdsb2Jh
bE9iamVjdCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFy
ZVN0cmluZ0dyZWF0ZXJFcSwgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkKQEAgLTM1MDIsOSArMzMzNCw4IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nR3JlYXRlckVxLCB1aW50
cHRyX3QsIChKU0dsb2JhbE9iCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRP
cGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0g
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgT1BFUkFUSU9O
X1JFVFVSTihzY29wZSwgIWNvZGVQb2ludENvbXBhcmVMZXNzVGhhbihhc1N0cmluZyhhKS0+dmFs
dWUoZ2xvYmFsT2JqZWN0KSwgYXNTdHJpbmcoYiktPnZhbHVlKGdsb2JhbE9iamVjdCkpKTsKKyAg
ICByZXR1cm4gIWNvZGVQb2ludENvbXBhcmVMZXNzVGhhbihhc1N0cmluZyhhKS0+dmFsdWUoZ2xv
YmFsT2JqZWN0KSwgYXNTdHJpbmcoYiktPnZhbHVlKGdsb2JhbE9iamVjdCkpOwogfQogCiBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTm90aWZ5V3JpdGUsIHZvaWQsIChWTSogdm1Q
b2ludGVyLCBXYXRjaHBvaW50U2V0KiBzZXQpKQpAQCAtMzUxMiwxMCArMzM0Myw4IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ob3RpZnlXcml0ZSwgdm9pZCwgKFZNKiB2bVBv
aW50ZXIsIFdhdGNocG9pbnRTCiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIHNldC0+dG91Y2godm0sICJF
eGVjdXRlZCBOb3RpZnlXcml0ZSIpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQog
CiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93Rm9y
VmFyYXJncywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpKQpAQCAtMzUyNSw3
ICszMzU0LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tP
dmVyZmxvd0ZvclZhcmFyZ3MsIHZvaWQsIChKU0dsb2JhbE8KICAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQog
CiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZU9mVmFyYXJncywgVUNQVVN0
cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEFyZ3VtZW50cywgdWludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQpKQpAQCAtMzUzMywx
MCArMzM2MSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplT2ZWYXJh
cmdzLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjCiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogICAgIEpTVmFsdWUgYXJndW1lbnRzID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRBcmd1bWVu
dHMpOwogICAgIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHRvVUNQVVN0cmljdEludDMy
KHNpemVPZlZhcmFyZ3MoZ2xvYmFsT2JqZWN0LCBhcmd1bWVudHMsIGZpcnN0VmFyQXJnT2Zmc2V0
KSkpOworICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMihzaXplT2ZWYXJhcmdzKGdsb2JhbE9i
amVjdCwgYXJndW1lbnRzLCBmaXJzdFZhckFyZ09mZnNldCkpOwogfQogCiBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzT3duUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkS2V5KSkKQEAgLTM1NDgsMTYgKzMzNzUsMTYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkhhc093blByb3BlcnR5LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmEKIAogICAgIEpTVmFsdWUga2V5ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRLZXkpOwogICAg
IElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0ga2V5LnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0
KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKIAogICAgIFByb3BlcnR5U2xvdCBz
bG90KHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXRPd25Q
cm9wZXJ0eSk7CiAgICAgYm9vbCByZXN1bHQgPSB0aGlzT2JqZWN0LT5oYXNPd25Qcm9wZXJ0eShn
bG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZS5pbXBsKCksIHNsb3QpOwotICAgIE9QRVJBVElPTl9S
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgZmFsc2UpOwogCiAgICAgSGFzT3duUHJvcGVydHlDYWNoZSogaGFzT3duUHJvcGVy
dHlDYWNoZSA9IHZtLmhhc093blByb3BlcnR5Q2FjaGUoKTsKICAgICBBU1NFUlQoaGFzT3duUHJv
cGVydHlDYWNoZSk7CiAgICAgaGFzT3duUHJvcGVydHlDYWNoZS0+dHJ5QWRkKHNsb3QsIHRoaXNP
YmplY3QsIHByb3BlcnR5TmFtZS5pbXBsKCksIHJlc3VsdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSwgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTnVtYmVySXNJbnRlZ2VyLCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCkBAIC0zNTY1LDExICsz
MzkyLDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJc0ludGVn
ZXIsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0s
IGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
ICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIE51bWJlckNvbnN0cnVjdG9yOjppc0ludGVnZXJJ
bXBsKEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkpKTsKKyAgICByZXR1cm4gTnVtYmVyQ29uc3RydWN0
b3I6OmlzSW50ZWdlckltcGwoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJc05hTiwgVUNQVVN0cmlj
dEludDMyLCAoRW5jb2RlZEpTVmFsdWUgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk51bWJlcklzTmFOLCBVQ1BVU3RyaWN0SW50MzIsIChFbmNvZGVkSlNWYWx1ZSB2
YWx1ZSkpCiB7CiAgICAgSlNWYWx1ZSBhcmd1bWVudCA9IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSk7
CiAgICAgaWYgKCFhcmd1bWVudC5pc051bWJlcigpKQpAQCAtMzU4MiwxMiArMzQwOCwxMSBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXNOYU4sIFVDUFVTdHJpY3RJbnQzMiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAg
SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUp
OwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVl
IGFyZ3VtZW50ID0gSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKTsKLSAgICBPUEVSQVRJT05fUkVUVVJO
KHNjb3BlLCB0b1VDUFVTdHJpY3RJbnQzMihzdGQ6OmlzbmFuKGFyZ3VtZW50LnRvTnVtYmVyKGds
b2JhbE9iamVjdCkpKSk7CisgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKHN0ZDo6aXNuYW4o
YXJndW1lbnQudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1KU0NfREVGSU5FX05PRVhD
RVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9JbnRlZ2VyT3JJbmZpbml0eURvdWJsZSwgRW5j
b2RlZEpTVmFsdWUsIChkb3VibGUgZCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVG9JbnRlZ2VyT3JJbmZpbml0eURvdWJsZSwgRW5jb2RlZEpTVmFsdWUsIChkb3VibGUgZCkp
CiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0cnVuYyhzdGQ6OmlzbmFu
KGQpID8gMC4wIDogZCArIDAuMCkpKTsKIH0KQEAgLTM1OTcsMTIgKzM0MjIsMTEgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvSW50ZWdlck9ySW5maW5pdHlVbnR5cGVkLCBF
bmNvZGVkSlNWYWx1ZSwgKEoKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIE9QRVJBVElPTl9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih2YWx1ZS50b0ludGVnZXJPckluZmluaXR5
KGdsb2JhbE9iamVjdCkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih2
YWx1ZS50b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9iamVjdCkpKTsKIH0KIAotSlNDX0RFRklO
RV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvTGVuZ3RoRG91YmxlLCBFbmNvZGVk
SlNWYWx1ZSwgKGRvdWJsZSBhcmd1bWVudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uVG9MZW5ndGhEb3VibGUsIEVuY29kZWRKU1ZhbHVlLCAoZG91YmxlIGFyZ3VtZW50KSkK
IHsKICAgICBkb3VibGUgZCA9IHRydW5jKHN0ZDo6aXNuYW4oYXJndW1lbnQpID8gMC4wIDogYXJn
dW1lbnQgKyAwLjApOwogICAgIGlmIChkIDw9IDApCkBAIC0zNjE1LDkgKzM0MzksOCBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9MZW5ndGhVbnR5cGVkLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklU
T3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwot
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHZhbHVlLnRvTGVuZ3RoKGdsb2JhbE9i
amVjdCkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih2YWx1ZS50b0xl
bmd0aChnbG9iYWxPYmplY3QpKSk7CiB9CiAKIHN0YXRpYyBBTFdBWVNfSU5MSU5FIFVDUFVTdHJp
Y3RJbnQzMiBhcnJheUluZGV4T2ZTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
QnV0dGVyZmx5KiBidXR0ZXJmbHksIEpTU3RyaW5nKiBzZWFyY2hFbGVtZW50LCBpbnQzMl90IGlu
ZGV4KQpAQCAtMzY0OCw5ICszNDcxLDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkFycmF5SW5kZXhPZlN0cmluZywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWwKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBhcnJheUluZGV4
T2ZTdHJpbmcoZ2xvYmFsT2JqZWN0LCBidXR0ZXJmbHksIHNlYXJjaEVsZW1lbnQsIGluZGV4KSk7
CisgICAgcmV0dXJuIGFycmF5SW5kZXhPZlN0cmluZyhnbG9iYWxPYmplY3QsIGJ1dHRlcmZseSwg
c2VhcmNoRWxlbWVudCwgaW5kZXgpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQXJyYXlJbmRleE9mVmFsdWVJbnQzMk9yQ29udGlndW91cywgVUNQVVN0cmljdEludDMy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQnV0dGVyZmx5KiBidXR0ZXJmbHksIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBpbmRleCkpCkBAIC0zNjYzLDE5ICsz
NDg1LDE5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZW
YWx1ZUludDMyT3JDb250aWd1b3VzLCBVQ1BVU3RyaWN0CiAgICAgSlNWYWx1ZSBzZWFyY2hFbGVt
ZW50ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CiAKICAgICBpZiAoc2VhcmNoRWxl
bWVudC5pc1N0cmluZygpKQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBhcnJheUlu
ZGV4T2ZTdHJpbmcoZ2xvYmFsT2JqZWN0LCBidXR0ZXJmbHksIGFzU3RyaW5nKHNlYXJjaEVsZW1l
bnQpLCBpbmRleCkpOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGFycmF5SW5k
ZXhPZlN0cmluZyhnbG9iYWxPYmplY3QsIGJ1dHRlcmZseSwgYXNTdHJpbmcoc2VhcmNoRWxlbWVu
dCksIGluZGV4KSk7CiAKICAgICBpbnQzMl90IGxlbmd0aCA9IGJ1dHRlcmZseS0+cHVibGljTGVu
Z3RoKCk7CiAgICAgYXV0byBkYXRhID0gYnV0dGVyZmx5LT5jb250aWd1b3VzKCkuZGF0YSgpOwog
CiAgICAgaWYgKGluZGV4ID49IGxlbmd0aCkKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29w
ZSwgdG9VQ1BVU3RyaWN0SW50MzIoLTEpKTsKKyAgICAgICAgcmV0dXJuIHRvVUNQVVN0cmljdElu
dDMyKC0xKTsKIAogICAgIGlmIChzZWFyY2hFbGVtZW50LmlzT2JqZWN0KCkpIHsKICAgICAgICAg
YXV0byogcmVzdWx0ID0gYml0d2lzZV9jYXN0PGNvbnN0IFdyaXRlQmFycmllcjxVbmtub3duPio+
KFdURjo6ZmluZDY0KGJpdHdpc2VfY2FzdDxjb25zdCB1aW50NjRfdCo+KGRhdGEgKyBpbmRleCks
IGVuY29kZWRWYWx1ZSwgbGVuZ3RoIC0gaW5kZXgpKTsKICAgICAgICAgaWYgKHJlc3VsdCkKLSAg
ICAgICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHRvVUNQVVN0cmljdEludDMyKHJlc3Vs
dCAtIGRhdGEpKTsKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgdG9VQ1BVU3RyaWN0
SW50MzIoLTEpKTsKKyAgICAgICAgICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMihyZXN1bHQg
LSBkYXRhKTsKKyAgICAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKC0xKTsKICAgICB9CiAK
ICAgICBmb3IgKDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpIHsKQEAgLTM2ODMsMTQgKzM1MDUs
MTQgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVl
SW50MzJPckNvbnRpZ3VvdXMsIFVDUFVTdHJpY3QKICAgICAgICAgaWYgKCF2YWx1ZSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICBib29sIGlzRXF1YWwgPSBKU1ZhbHVlOjpzdHJpY3RF
cXVhbChnbG9iYWxPYmplY3QsIHNlYXJjaEVsZW1lbnQsIHZhbHVlKTsKLSAgICAgICAgT1BFUkFU
SU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIDApOworICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOwogICAgICAgICBpZiAoaXNFcXVhbCkKLSAgICAgICAgICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUsIHRvVUNQVVN0cmljdEludDMyKGluZGV4KSk7CisgICAgICAg
ICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoaW5kZXgpOwogICAgIH0KLSAgICBPUEVSQVRJ
T05fUkVUVVJOKHNjb3BlLCB0b1VDUFVTdHJpY3RJbnQzMigtMSkpOworICAgIHJldHVybiB0b1VD
UFVTdHJpY3RJbnQzMigtMSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElP
TihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZURvdWJsZSwgVUNQVVN0cmljdEludDMyLCAoQnV0
dGVyZmx5KiBidXR0ZXJmbHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBp
bmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mVmFs
dWVEb3VibGUsIFVDUFVTdHJpY3RJbnQzMiwgKEJ1dHRlcmZseSogYnV0dGVyZmx5LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGludDMyX3QgaW5kZXgpKQogewogICAgIC8vIFdlIGRvIG5v
dCBjYXVzZSBhbnkgZXhjZXB0aW9ucywgdGh1cyB3ZSBkbyBub3QgbmVlZCBGcmFtZVRyYWNlcnMu
CiAgICAgSlNWYWx1ZSBzZWFyY2hFbGVtZW50ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1
ZSk7CkBAIC0zNzA5LDcgKzM1MzEsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQXJyYXlJbmRleE9mVmFsdWVEb3VibGUsIFVDUFVTdHJpY3RJbgogICAgIHJl
dHVybiB0b1VDUFVTdHJpY3RJbnQzMigtMSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklU
X09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZOb25TdHJpbmdJZGVudGl0eVZhbHVlQ29u
dGlndW91cywgVUNQVVN0cmljdEludDMyLCAoQnV0dGVyZmx5KiBidXR0ZXJmbHksIEVuY29kZWRK
U1ZhbHVlIHNlYXJjaEVsZW1lbnQsIGludDMyX3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZk5vblN0cmluZ0lkZW50aXR5VmFsdWVDb250aWd1
b3VzLCBVQ1BVU3RyaWN0SW50MzIsIChCdXR0ZXJmbHkqIGJ1dHRlcmZseSwgRW5jb2RlZEpTVmFs
dWUgc2VhcmNoRWxlbWVudCwgaW50MzJfdCBpbmRleCkpCiB7CiAgICAgLy8gV2UgZG8gbm90IGNh
dXNlIGFueSBleGNlcHRpb25zLCB0aHVzIHdlIGRvIG5vdCBuZWVkIEZyYW1lVHJhY2Vycy4KICAg
ICBpbnQzMl90IGxlbmd0aCA9IGJ1dHRlcmZseS0+cHVibGljTGVuZ3RoKCk7CkBAIC0zNzMwLDIz
ICszNTUyLDIxIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Mb2FkVmFyYXJn
cywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogICAgIEpTVmFsdWUgYXJndW1lbnRzID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRBcmd1bWVu
dHMpOwogICAgIAogICAgIGxvYWRWYXJhcmdzKGdsb2JhbE9iamVjdCwgYml0d2lzZV9jYXN0PEpT
VmFsdWUqPigmY2FsbEZyYW1lLT5yKGZpcnN0RWxlbWVudCkpLCBhcmd1bWVudHMsIG9mZnNldCwg
bGVuZ3RoSW5jbHVkaW5nVGhpcyAtIDEpOwogICAgIAogICAgIGZvciAodWludDMyX3QgaSA9IGxl
bmd0aEluY2x1ZGluZ1RoaXMgLSAxOyBpIDwgbWFuZGF0b3J5TWluaW11bTsgKytpKQogICAgICAg
ICBjYWxsRnJhbWUtPnIoZmlyc3RFbGVtZW50ICsgaSkgPSBqc1VuZGVmaW5lZCgpOwotICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRk1vZE9uSW50cywgZG91YmxlLCAoaW50MzJfdCBhLCBpbnQzMl90IGIp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkZNb2RPbkludHMsIGRvdWJsZSwg
KGludDMyX3QgYSwgaW50MzJfdCBiKSkKIHsKICAgICByZXR1cm4gZm1vZChhLCBiKTsKIH0KIAog
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUmFuZG9tLCBkb3VibGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SYW5kb20sIGRvdWJsZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpKQogewogICAgIHJldHVybiBnbG9iYWxPYmplY3QtPndl
YWtSYW5kb21OdW1iZXIoKTsKIH0KQEAgLTM3NTcsOCArMzU3Nyw3IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdGcm9tQ2hhckNvZGUsIEpTQ2VsbCosIChKU0dsb2Jh
bE9iamVjdCoKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblBy
b2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29w
ZSwgSlNDOjpzdHJpbmdGcm9tQ2hhckNvZGUoZ2xvYmFsT2JqZWN0LCBvcDEpKTsKKyAgICByZXR1
cm4gSlNDOjpzdHJpbmdGcm9tQ2hhckNvZGUoZ2xvYmFsT2JqZWN0LCBvcDEpOwogfQogCiBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nRnJvbUNoYXJDb2RlVW50eXBlZCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQpAQCAtMzc2NiwxMCArMzU4NSw5IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdGcm9tQ2hhckNvZGVVbnR5cGVkLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Q
cm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgY2hhclZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CiAgICAgaW50MzJfdCBjaEludCA9IGNoYXJW
YWx1ZS50b1VJbnQzMihnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUs
IEpTVmFsdWU6OmVuY29kZShKU0M6OnN0cmluZ0Zyb21DaGFyQ29kZShnbG9iYWxPYmplY3QsIGNo
SW50KSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNDOjpzdHJpbmdGcm9tQ2hhckNv
ZGUoZ2xvYmFsT2JqZWN0LCBjaEludCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3UmF3T2JqZWN0LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBpbnQzMl90IGxlbmd0aCwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQpAQCAtMzc3
Nyw3ICszNTk1LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1Jhd09i
amVjdCwgY2hhciosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUKICAgICBWTSYgdm0gPSAqdm1Q
b2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAg
ICAgaWYgKCFidXR0ZXJmbHkKICAgICAgICAgJiYgKHN0cnVjdHVyZS0+b3V0T2ZMaW5lQ2FwYWNp
dHkoKSB8fCBoYXNJbmRleGVkUHJvcGVydGllcyhzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKSkp
IHsKQEAgLTM3OTIsOCArMzYwOSw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdSYXdPYmplY3QsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlCiAgICAgfQog
CiAgICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCkgPT0gSlNUeXBlOjpBcnJheVR5
cGUpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGJpdHdpc2VfY2FzdDxjaGFyKj4o
SlNBcnJheTo6Y3JlYXRlV2l0aEJ1dHRlcmZseSh2bSwgbnVsbHB0ciwgc3RydWN0dXJlLCBidXR0
ZXJmbHkpKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgYml0d2lzZV9jYXN0PGNoYXIq
PihKU0ZpbmFsT2JqZWN0OjpjcmVhdGVXaXRoQnV0dGVyZmx5KHZtLCBzdHJ1Y3R1cmUsIGJ1dHRl
cmZseSkpKTsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxjaGFyKj4oSlNBcnJheTo6Y3Jl
YXRlV2l0aEJ1dHRlcmZseSh2bSwgbnVsbHB0ciwgc3RydWN0dXJlLCBidXR0ZXJmbHkpKTsKKyAg
ICByZXR1cm4gYml0d2lzZV9jYXN0PGNoYXIqPihKU0ZpbmFsT2JqZWN0OjpjcmVhdGVXaXRoQnV0
dGVyZmx5KHZtLCBzdHJ1Y3R1cmUsIGJ1dHRlcmZseSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRlcmZseSwgSlNDZWxsKiwgKFZNKiB2
bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCkBA
IC0zODAxLDcgKzM2MTgsNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
T2JqZWN0V2l0aEJ1dHRlcmZseSwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZQogICAgIFZNJiB2bSA9
ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAgICAgCiAgICAgaWYgKCFidXR0ZXJmbHkpIHsKICAgICAgICAgYnV0dGVyZmx5ID0gQnV0dGVy
Zmx5OjpjcmVhdGUoCkBAIC0zODA5LDggKzM2MjUsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRlcmZseSwgSlNDZWxsKiwgKFZNKiB2bVBvaW50
ZQogICAgIH0KICAgICAKICAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBK
U1R5cGU6OkFycmF5VHlwZSkKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNBcnJh
eTo6Y3JlYXRlV2l0aEJ1dHRlcmZseSh2bSwgbnVsbHB0ciwgc3RydWN0dXJlLCBidXR0ZXJmbHkp
KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVXaXRo
QnV0dGVyZmx5KHZtLCBzdHJ1Y3R1cmUsIGJ1dHRlcmZseSkpOworICAgICAgICByZXR1cm4gSlNB
cnJheTo6Y3JlYXRlV2l0aEJ1dHRlcmZseSh2bSwgbnVsbHB0ciwgc3RydWN0dXJlLCBidXR0ZXJm
bHkpOworICAgIHJldHVybiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVXaXRoQnV0dGVyZmx5KHZtLCBz
dHJ1Y3R1cmUsIGJ1dHRlcmZseSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5V2l0aEluZGV4aW5nSGVhZGVyQW5kVmVjdG9yTGVu
Z3RoLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2ln
bmVkIGxlbmd0aCwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQpAQCAtMzgxOCw3ICszNjM0LDYgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlX
aXRoSW5kZXhpbmdIZWFkZXJBbmRWZWMKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSW5kZXhpbmdIZWFk
ZXIgaGVhZGVyOwogICAgIGhlYWRlci5zZXRWZWN0b3JMZW5ndGgobGVuZ3RoKTsKQEAgLTM4MzIs
OCArMzY0Nyw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdPYmplY3RX
aXRoQnV0dGVyZmx5V2l0aEluZGV4aW5nSGVhZGVyQW5kVmVjCiAgICAgfQogICAgIAogICAgIGlm
IChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IEpTVHlwZTo6QXJyYXlUeXBlKQotICAg
ICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU0FycmF5OjpjcmVhdGVXaXRoQnV0dGVyZmx5
KHZtLCBudWxscHRyLCBzdHJ1Y3R1cmUsIGJ1dHRlcmZseSkpOwotICAgIE9QRVJBVElPTl9SRVRV
Uk4oc2NvcGUsIEpTRmluYWxPYmplY3Q6OmNyZWF0ZVdpdGhCdXR0ZXJmbHkodm0sIHN0cnVjdHVy
ZSwgYnV0dGVyZmx5KSk7CisgICAgICAgIHJldHVybiBKU0FycmF5OjpjcmVhdGVXaXRoQnV0dGVy
Zmx5KHZtLCBudWxscHRyLCBzdHJ1Y3R1cmUsIGJ1dHRlcmZseSk7CisgICAgcmV0dXJuIEpTRmlu
YWxPYmplY3Q6OmNyZWF0ZVdpdGhCdXR0ZXJmbHkodm0sIHN0cnVjdHVyZSwgYnV0dGVyZmx5KTsK
IH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNwcmVh
ZFNsb3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKiBidWZm
ZXIsIHVpbnQzMl90IG51bUl0ZW1zKSkKQEAgLTM4NTYsMTMgKzM2NzEsMTMgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNwcmVhZFNsb3csIEpTQ2VsbCos
IChKU0dsb2JhbE9iamUKIAogICAgIGlmIChVTkxJS0VMWShjaGVja2VkTGVuZ3RoLmhhc092ZXJm
bG93ZWQoKSkpIHsKICAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBudWxscHRyKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgdW5zaWduZWQgbGVuZ3RoID0gY2hlY2tl
ZExlbmd0aDsKICAgICBpZiAoVU5MSUtFTFkobGVuZ3RoID49IE1JTl9BUlJBWV9TVE9SQUdFX0NP
TlNUUlVDVElPTl9MRU5HVEgpKSB7CiAgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlKTsKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgbnVsbHB0
cik7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIFN0cnVjdHVyZSogc3Ry
dWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmlu
Z0FsbG9jYXRpb24oQXJyYXlXaXRoQ29udGlndW91cyk7CkBAIC0zODcwLDkgKzM2ODUsOSBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU3ByZWFkU2xvdywg
SlNDZWxsKiwgKEpTR2xvYmFsT2JqZQogICAgIEpTQXJyYXkqIHJlc3VsdCA9IEpTQXJyYXk6OnRy
eUNyZWF0ZSh2bSwgc3RydWN0dXJlLCBsZW5ndGgpOwogICAgIGlmIChVTkxJS0VMWSghcmVzdWx0
KSkgewogICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7
Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIG51bGxwdHIpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIG51bGxwdHIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwog
CiAgICAgdW5zaWduZWQgaW5kZXggPSAwOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBu
dW1JdGVtczsgaSsrKSB7CkBAIC0zODgxLDE4ICszNjk2LDE4IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTcHJlYWRTbG93LCBKU0NlbGwqLCAoSlNHbG9i
YWxPYmplCiAgICAgICAgICAgICAvLyBXZSBhcmUgc3ByZWFkaW5nLgogICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGFycmF5LT5wdWJsaWNMZW5ndGgoKTsgaSsrKSB7CiAgICAg
ICAgICAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGluZGV4LCBh
cnJheS0+Z2V0KGkpKTsKLSAgICAgICAgICAgICAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgbnVsbHB0cik7CiAgICAgICAgICAgICAgICAgKytpbmRleDsKICAgICAgICAgICAg
IH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIFdlIGFyZSBub3Qgc3ByZWFkaW5n
LgogICAgICAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGluZGV4
LCB2YWx1ZSk7Ci0gICAgICAgICAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgbnVsbHB0cik7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxs
cHRyKTsKICAgICAgICAgICAgICsraW5kZXg7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBPUEVS
QVRJT05fUkVUVVJOKHNjb3BlLCByZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVJbW11dGFibGVCdXR0ZXJmbHks
IEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBsZW5ndGgp
KQpAQCAtMzkwMywxMCArMzcxOCwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ3JlYXRlSW1tdXRhYmxlQnV0dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYgogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlmIChKU0ltbXV0YWJs
ZUJ1dHRlcmZseSogcmVzdWx0ID0gSlNJbW11dGFibGVCdXR0ZXJmbHk6OnRyeUNyZWF0ZSh2bSwg
dm0uaW1tdXRhYmxlQnV0dGVyZmx5U3RydWN0dXJlc1thcnJheUluZGV4RnJvbUluZGV4aW5nVHlw
ZShDb3B5T25Xcml0ZUFycmF5V2l0aENvbnRpZ3VvdXMpIC0gTnVtYmVyT2ZJbmRleGluZ1NoYXBl
c10uZ2V0KCksIGxlbmd0aCkpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHJlc3Vs
dCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgbnVsbHB0
cik7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25TcHJlYWRHZW5lcmljLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDZWxsKiBpdGVyYWJsZSkpCkBAIC0zOTE1LDEyICszNzMwLDEyIEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TcHJlYWRHZW5lcmljLCBKU0NlbGwqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKIAotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAog
ICAgIGF1dG8qIHJlc3VsdCA9IENvbW1vblNsb3dQYXRoczo6dHJ5U3ByZWFkRmFzdChnbG9iYWxP
YmplY3QsIGl0ZXJhYmxlKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgbnVsbHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBudWxscHRy
KTsKICAgICBpZiAocmVzdWx0KQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCByZXN1
bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0OwogCiAgICAgLy8gRklYTUU6IHdlIGNhbiBwcm9i
YWJseSBtYWtlIHRoaXMgcGF0aCBmYXN0ZXIgYnkgaGF2aW5nIG91ciBjYWxsZXIgSlMgY29kZSBj
YWxsIGRpcmVjdGx5IGludG8KICAgICAvLyB0aGUgaXRlcmF0aW9uIHByb3RvY29sIGJ1aWx0aW46
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ1MjAKQEAgLTM5MzUs
MTEgKzM3NTAsMTEgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNwcmVhZEdl
bmVyaWMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICAgICAgYXJndW1lbnRz
LmFwcGVuZChpdGVyYWJsZSk7CiAgICAgICAgIEFTU0VSVCghYXJndW1lbnRzLmhhc092ZXJmbG93
ZWQoKSk7CiAgICAgICAgIEpTVmFsdWUgYXJyYXlSZXN1bHQgPSBjYWxsKGdsb2JhbE9iamVjdCwg
aXRlcmF0aW9uRnVuY3Rpb24sIGNhbGxEYXRhLCBqc051bGwoKSwgYXJndW1lbnRzKTsKLSAgICAg
ICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwogICAgICAgICBhcnJh
eSA9IGpzQ2FzdDxKU0FycmF5Kj4oYXJyYXlSZXN1bHQpOwogICAgIH0KIAotICAgIE9QRVJBVElP
Tl9SRVRVUk4oc2NvcGUsIEpTSW1tdXRhYmxlQnV0dGVyZmx5OjpjcmVhdGVGcm9tQXJyYXkoZ2xv
YmFsT2JqZWN0LCB2bSwgYXJyYXkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNJbW11dGFibGVCdXR0ZXJmbHk6OmNyZWF0ZUZyb21BcnJheShnbG9iYWxPYmplY3QsIHZt
LCBhcnJheSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3ByZWFk
RmFzdEFycmF5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBjZWxsKSkKQEAgLTM5NDcsMTMgKzM3NjIsMTIgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblNwcmVhZEZhc3RBcnJheSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG8K
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBBU1NFUlQoaXNKU0FycmF5KGNlbGwpKTsKICAg
ICBKU0FycmF5KiBhcnJheSA9IGpzQ2FzdDxKU0FycmF5Kj4oY2VsbCk7CiAgICAgQVNTRVJUKGFy
cmF5LT5pc0l0ZXJhdG9yUHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpKTsKIAotICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTSW1tdXRhYmxlQnV0dGVyZmx5OjpjcmVhdGVGcm9tQXJy
YXkoZ2xvYmFsT2JqZWN0LCB2bSwgYXJyYXkpKTsKKyAgICByZXR1cm4gSlNJbW11dGFibGVCdXR0
ZXJmbHk6OmNyZWF0ZUZyb21BcnJheShnbG9iYWxPYmplY3QsIHZtLCBhcnJheSk7CiB9CiAKIHN0
YXRpYyBBTFdBWVNfSU5MSU5FIEpTT2JqZWN0KiBuZXdBcnJheVdpdGhTcGVjaWVzSW1wbChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1aW50NjRfdCBsZW5ndGgsIEpTT2JqZWN0KiBhcnJh
eSwgSW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSkKQEAgLTM5OTUsOSArMzgwOSw4IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTcGVjaWVzSW50MzIsIEpT
T2JqZWN0KiwgKEpTR2xvYmFsCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRP
cGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0g
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgT1BFUkFUSU9O
X1JFVFVSTihzY29wZSwgbmV3QXJyYXlXaXRoU3BlY2llc0ltcGwoZ2xvYmFsT2JqZWN0LCBsZW5n
dGgsIGFycmF5LCBpbmRleGluZ1R5cGUpKTsKKyAgICByZXR1cm4gbmV3QXJyYXlXaXRoU3BlY2ll
c0ltcGwoZ2xvYmFsT2JqZWN0LCBsZW5ndGgsIGFycmF5LCBpbmRleGluZ1R5cGUpOwogfQogCiBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU3BlY2llcywgSlNP
YmplY3QqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZExlbmd0aCwgSlNPYmplY3QqIGFycmF5LCBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlKSkK
QEAgLTQwMDUsMTAgKzM4MTgsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TmV3QXJyYXlXaXRoU3BlY2llcywgSlNPYmplY3QqLCAoSlNHbG9iYWxPYmplYwogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAogICAgIHVpbnQ2NF90IGxlbmd0aCA9IHN0YXRpY19jYXN0PHVpbnQ2NF90
PihKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZExlbmd0aCkuYXNOdW1iZXIoKSk7Ci0gICAgT1BFUkFU
SU9OX1JFVFVSTihzY29wZSwgbmV3QXJyYXlXaXRoU3BlY2llc0ltcGwoZ2xvYmFsT2JqZWN0LCBs
ZW5ndGgsIGFycmF5LCBpbmRleGluZ1R5cGUpKTsKKyAgICByZXR1cm4gbmV3QXJyYXlXaXRoU3Bl
Y2llc0ltcGwoZ2xvYmFsT2JqZWN0LCBsZW5ndGgsIGFycmF5LCBpbmRleGluZ1R5cGUpOwogfQog
CiAKQEAgLTQwMTcsNTUgKzM4MjksNTEgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblByb2Nlc3NUeXBlUHJvZmlsZXJMb2dERkcsIHZvaWQsIChWTSogdm1Qb2ludGUKICAgICBW
TSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCiAgICAgdm0udHlwZVByb2ZpbGVyTG9nKCktPnByb2Nlc3NMb2dFbnRyaWVzKHZt
LCAiTG9nIEZ1bGwsIGNhbGxlZCBmcm9tIGluc2lkZSBERkcuIl9zKTsKLSAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJl
c29sdmVTY29wZUZvckhvaXN0aW5nRnVuY0RlY2xJbkV2YWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTY29wZSoganNTY29wZSwgVW5pcXVlZFN0cmlu
Z0ltcGwqIGltcGwpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlc29sdmVT
Y29wZUZvckhvaXN0aW5nRnVuY0RlY2xJbkV2YWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNTY29wZSogc2NvcGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBp
bXBsKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblBy
b2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgICAgIAotICAgIEpTVmFsdWUgcmVz
b2x2ZWRTY29wZSA9IEpTU2NvcGU6OnJlc29sdmVTY29wZUZvckhvaXN0aW5nRnVuY0RlY2xJbkV2
YWwoZ2xvYmFsT2JqZWN0LCBqc1Njb3BlLCBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBpbXBsKSk7
Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHJlc29sdmVkU2Nv
cGUpKTsKKyAgICBKU1ZhbHVlIHJlc29sdmVkU2NvcGUgPSBKU1Njb3BlOjpyZXNvbHZlU2NvcGVG
b3JIb2lzdGluZ0Z1bmNEZWNsSW5FdmFsKGdsb2JhbE9iamVjdCwgc2NvcGUsIElkZW50aWZpZXI6
OmZyb21VaWQodm0sIGltcGwpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc29sdmVk
U2NvcGUpOwogfQogICAgIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlc29s
dmVTY29wZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU2NvcGUq
IGpzU2NvcGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25SZXNvbHZlU2NvcGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1Njb3BlKiBzY29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIEpTT2JqZWN0KiByZXNvbHZlZFNjb3BlID0gSlNT
Y29wZTo6cmVzb2x2ZShnbG9iYWxPYmplY3QsIGpzU2NvcGUsIElkZW50aWZpZXI6OmZyb21VaWQo
dm0sIGltcGwpKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCByZXNvbHZlZFNjb3BlKTsK
KyAgICBKU09iamVjdCogcmVzb2x2ZWRTY29wZSA9IEpTU2NvcGU6OnJlc29sdmUoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwgaW1wbCkpOworICAgIHJldHVybiBy
ZXNvbHZlZFNjb3BlOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
RHluYW1pY1ZhciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU09iamVjdCoganNTY29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIGdl
dFB1dEluZm9CaXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXREeW5h
bWljVmFyLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
T2JqZWN0KiBzY29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIGdldFB1dElu
Zm9CaXRzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBJZGVudGlmaWVyIGlkZW50ID0gSWRlbnRp
Zmllcjo6ZnJvbVVpZCh2bSwgaW1wbCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKGpzU2NvcGUtPmdldFByb3BlcnR5U2xvdChnbG9iYWxPYmplY3QsIGlkZW50
LCBbJl0gKGJvb2wgZm91bmQsIFByb3BlcnR5U2xvdCYgc2xvdCkgLT4gSlNWYWx1ZSB7CisgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShzY29wZS0+Z2V0
UHJvcGVydHlTbG90KGdsb2JhbE9iamVjdCwgaWRlbnQsIFsmXSAoYm9vbCBmb3VuZCwgUHJvcGVy
dHlTbG90JiBzbG90KSAtPiBKU1ZhbHVlIHsKICAgICAgICAgaWYgKCFmb3VuZCkgewogICAgICAg
ICAgICAgR2V0UHV0SW5mbyBnZXRQdXRJbmZvKGdldFB1dEluZm9CaXRzKTsKICAgICAgICAgICAg
IGlmIChnZXRQdXRJbmZvLnJlc29sdmVNb2RlKCkgPT0gVGhyb3dJZk5vdEZvdW5kKQotICAgICAg
ICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVVuZGVm
aW5lZFZhcmlhYmxlRXJyb3IoZ2xvYmFsT2JqZWN0LCBpZGVudCkpOworICAgICAgICAgICAgICAg
IHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlVW5kZWZpbmVk
VmFyaWFibGVFcnJvcihnbG9iYWxPYmplY3QsIGlkZW50KSk7CiAgICAgICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChqc1Njb3BlLT5pc0dsb2Jh
bExleGljYWxFbnZpcm9ubWVudCgpKSB7CisgICAgICAgIGlmIChzY29wZS0+aXNHbG9iYWxMZXhp
Y2FsRW52aXJvbm1lbnQoKSkgewogICAgICAgICAgICAgLy8gV2hlbiB3ZSBjYW4ndCBzdGF0aWNh
bGx5IHByb3ZlIHdlIG5lZWQgYSBURFogY2hlY2ssIHdlIG11c3QgcGVyZm9ybSB0aGUgY2hlY2sg
b24gdGhlIHNsb3cgcGF0aC4KICAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gc2xvdC5nZXRW
YWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KTsKICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0ganNU
RFpWYWx1ZSgpKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0
LCBzY29wZSwgY3JlYXRlVERaRXJyb3IoZ2xvYmFsT2JqZWN0KSk7CisgICAgICAgICAgICAgICAg
dGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVURFpFcnJvcihn
bG9iYWxPYmplY3QpKTsKICAgICAgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC00MTA1LDI2ICszOTEz
LDIyIEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgcHV0RHluYW1pY1ZhcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIEpTCiAgICAgc2NvcGUtPm1ldGhvZFRhYmxlKCkt
PnB1dChzY29wZSwgZ2xvYmFsT2JqZWN0LCBpZGVudCwgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKSwg
c2xvdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREeW5hbWlj
VmFyU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IGpzU2NvcGUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwg
dW5zaWduZWQgZ2V0UHV0SW5mb0JpdHMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dER5bmFtaWNWYXJTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBVbmlxdWVkU3RyaW5n
SW1wbCogaW1wbCwgdW5zaWduZWQgZ2V0UHV0SW5mb0JpdHMpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKICAgICBjb25zdGV4cHIgYm9vbCBpc1N0cmljdE1vZGUgPSB0cnVlOwotICAgIHB1dER5
bmFtaWNWYXIoZ2xvYmFsT2JqZWN0LCB2bSwganNTY29wZSwgdmFsdWUsIGltcGwsIGdldFB1dElu
Zm9CaXRzLCBpc1N0cmljdE1vZGUpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOworICAg
IHJldHVybiBwdXREeW5hbWljVmFyKGdsb2JhbE9iamVjdCwgdm0sIHNjb3BlLCB2YWx1ZSwgaW1w
bCwgZ2V0UHV0SW5mb0JpdHMsIGlzU3RyaWN0TW9kZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXREeW5hbWljVmFyU2xvcHB5LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGpzU2NvcGUsIEVuY29kZWRKU1ZhbHVlIHZhbHVl
LCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgdW5zaWduZWQgZ2V0UHV0SW5mb0JpdHMpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJTbG9wcHksIHZvaWQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRK
U1ZhbHVlIHZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgdW5zaWduZWQgZ2V0UHV0SW5m
b0JpdHMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBjb25zdGV4cHIgYm9vbCBpc1N0
cmljdE1vZGUgPSBmYWxzZTsKLSAgICBwdXREeW5hbWljVmFyKGdsb2JhbE9iamVjdCwgdm0sIGpz
U2NvcGUsIHZhbHVlLCBpbXBsLCBnZXRQdXRJbmZvQml0cywgaXNTdHJpY3RNb2RlKTsKLSAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKKyAgICByZXR1cm4gcHV0RHluYW1pY1ZhcihnbG9iYWxP
YmplY3QsIHZtLCBzY29wZSwgdmFsdWUsIGltcGwsIGdldFB1dEluZm9CaXRzLCBpc1N0cmljdE1v
ZGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTm9ybWFsaXplTWFw
S2V5SGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBKU0JpZ0ludCog
aW5wdXQpKQpAQCAtNDEzMiw4ICszOTM2LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk5vcm1hbGl6ZU1hcEtleUhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoVk0KICAg
ICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShu
b3JtYWxpemVNYXBLZXkoaW5wdXQpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShub3Jt
YWxpemVNYXBLZXkoaW5wdXQpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk1hcEhhc2gsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGlucHV0KSkKQEAgLTQxNDEsMTkgKzM5NDQsMTcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcEhhc2gsIFVDUFVTdHJpY3RJbnQzMiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG8KICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlLCB0b1VDUFVTdHJpY3RJbnQzMihqc01hcEhhc2goZ2xvYmFsT2JqZWN0LCB2
bSwgSlNWYWx1ZTo6ZGVjb2RlKGlucHV0KSkpKTsKKyAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50
MzIoanNNYXBIYXNoKGdsb2JhbE9iamVjdCwgdm0sIEpTVmFsdWU6OmRlY29kZShpbnB1dCkpKTsK
IH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcEhhc2hI
ZWFwQmlnSW50LCBVQ1BVU3RyaWN0SW50MzIsIChWTSogdm1Qb2ludGVyLCBKU0JpZ0ludCogaW5w
dXQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcEhhc2hIZWFwQmlnSW50
LCBVQ1BVU3RyaWN0SW50MzIsIChWTSogdm1Qb2ludGVyLCBKU0JpZ0ludCogaW5wdXQpKQogewog
ICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCB0b1VDUFVTdHJpY3RJ
bnQzMihqc01hcEhhc2goaW5wdXQpKSk7CisgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKGpz
TWFwSGFzaChpbnB1dCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SlNNYXBGaW5kQnVja2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDZWxsKiBtYXAsIEVuY29kZWRKU1ZhbHVlIGtleSwgaW50MzJfdCBoYXNoKSkKQEAgLTQxNjEs
MTEgKzM5NjIsMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpTTWFwRmlu
ZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgSlNNYXA6OkJ1Y2tldFR5cGUqKiBidWNrZXQgPSBqc0Nhc3Q8SlNNYXAqPihtYXAp
LT5maW5kQnVja2V0KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGtleSksIGhhc2gpOwog
ICAgIGlmICghYnVja2V0KQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCB2bS5zZW50
aW5lbE1hcEJ1Y2tldCgpKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCAqYnVja2V0KTsK
KyAgICAgICAgcmV0dXJuIHZtLnNlbnRpbmVsTWFwQnVja2V0KCk7CisgICAgcmV0dXJuICpidWNr
ZXQ7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU1NldEZpbmRCdWNr
ZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG1hcCwg
RW5jb2RlZEpTVmFsdWUga2V5LCBpbnQzMl90IGhhc2gpKQpAQCAtNDE3MywxMSArMzk3MywxMCBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSlNTZXRGaW5kQnVja2V0LCBKU0Nl
bGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAg
ICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1Nl
dDo6QnVja2V0VHlwZSoqIGJ1Y2tldCA9IGpzQ2FzdDxKU1NldCo+KG1hcCktPmZpbmRCdWNrZXQo
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoa2V5KSwgaGFzaCk7CiAgICAgaWYgKCFidWNr
ZXQpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHZtLnNlbnRpbmVsU2V0QnVja2V0
KCkpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsICpidWNrZXQpOworICAgICAgICByZXR1
cm4gdm0uc2VudGluZWxTZXRCdWNrZXQoKTsKKyAgICByZXR1cm4gKmJ1Y2tldDsKIH0KIAogSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldEFkZCwgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogc2V0LCBFbmNvZGVkSlNWYWx1ZSBrZXksIGlu
dDMyX3QgaGFzaCkpCkBAIC00MTg1LDExICszOTg0LDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25TZXRBZGQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIGF1dG8qIGJ1Y2tldCA9IGpzQ2FzdDxKU1Nl
dCo+KHNldCktPmFkZE5vcm1hbGl6ZWQoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoa2V5
KSwgSlNWYWx1ZSgpLCBoYXNoKTsKICAgICBpZiAoIWJ1Y2tldCkKLSAgICAgICAgT1BFUkFUSU9O
X1JFVFVSTihzY29wZSwgdm0uc2VudGluZWxTZXRCdWNrZXQoKSk7Ci0gICAgT1BFUkFUSU9OX1JF
VFVSTihzY29wZSwgYnVja2V0KTsKKyAgICAgICAgcmV0dXJuIHZtLnNlbnRpbmVsU2V0QnVja2V0
KCk7CisgICAgcmV0dXJuIGJ1Y2tldDsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk1hcFNldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Q2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBpbnQz
Ml90IGhhc2gpKQpAQCAtNDE5NywxMSArMzk5NSwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTWFwU2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBhdXRvKiBidWNrZXQgPSBqc0Nhc3Q8SlNNYXAq
PihtYXApLT5hZGROb3JtYWxpemVkKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGtleSks
IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSksIGhhc2gpOwogICAgIGlmICghYnVja2V0KQotICAgICAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCB2bS5zZW50aW5lbE1hcEJ1Y2tldCgpKTsKLSAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCBidWNrZXQpOworICAgICAgICByZXR1cm4gdm0uc2VudGlu
ZWxNYXBCdWNrZXQoKTsKKyAgICByZXR1cm4gYnVja2V0OwogfQogCiBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU2V0RGVsZXRlLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0NlbGwqIHNldCwgRW5jb2RlZEpTVmFsdWUga2V5LCBpbnQzMl90IGhhc2gp
KQpAQCAtNDIwOSw4ICs0MDA2LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blNldERlbGV0ZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwganNDYXN0PEpTU2V0Kj4o
c2V0KS0+cmVtb3ZlTm9ybWFsaXplZChnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShrZXkp
LCBoYXNoKSk7CisgICAgcmV0dXJuIGpzQ2FzdDxKU1NldCo+KHNldCktPnJlbW92ZU5vcm1hbGl6
ZWQoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoa2V5KSwgaGFzaCk7CiB9CiAKIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXBEZWxldGUsIHNpemVfdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIGlu
dDMyX3QgaGFzaCkpCkBAIC00MjE4LDggKzQwMTQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTWFwRGVsZXRlLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBqc0Nh
c3Q8SlNNYXAqPihtYXApLT5yZW1vdmVOb3JtYWxpemVkKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6
ZGVjb2RlKGtleSksIGhhc2gpKTsKKyAgICByZXR1cm4ganNDYXN0PEpTTWFwKj4obWFwKS0+cmVt
b3ZlTm9ybWFsaXplZChnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShrZXkpLCBoYXNoKTsK
IH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld01hcCwgSlNNYXAqLCAo
Vk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpKQpAQCAtNDIyNyw4ICs0MDIyLDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld01hcCwgSlNNYXAqLCAoVk0q
IHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHIKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRP
cGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0g
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIE9QRVJBVElPTl9S
RVRVUk4oc2NvcGUsIEpTTWFwOjpjcmVhdGUodm0sIHN0cnVjdHVyZSkpOworICAgIHJldHVybiBK
U01hcDo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3U2V0LCBKU1NldCosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkpCkBAIC00MjM2LDggKzQwMzAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3U2V0LCBKU1NldCosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cgog
ICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNTZXQ6OmNyZWF0ZSh2
bSwgc3RydWN0dXJlKSk7CisgICAgcmV0dXJuIEpTU2V0OjpjcmVhdGUodm0sIHN0cnVjdHVyZSk7
CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XZWFrU2V0QWRkLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBzZXQsIEpTQ2VsbCoga2V5
LCBpbnQzMl90IGhhc2gpKQpAQCAtNDI0NSwxNSArNDAzOCwxNCBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uV2Vha1NldEFkZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplYwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlmIChVTkxJS0VMWSghY2FuQmVI
ZWxkV2Vha2x5KGtleSkpKSB7CisgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsgLy8gSW50ZW50aW9uYWxseSBwdXR0aW5nIGl0IGhlcmUgc2luY2Ugd2Ugd291bGQg
bGlrZSB0byBtYWtlIG9iamVjdCBrZXkgY2FzZSBHQy1mcmVlLgogICAgICAgICB0aHJvd1R5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBXZWFrU2V0SW52YWxpZFZhbHVlRXJyb3IpOwotICAg
ICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIGpzQ2FzdDxKU1dlYWtTZXQqPihzZXQpLT5hZGQodm0sIGtleSwgSlNWYWx1ZSgpLCBoYXNo
KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldlYWtNYXBTZXQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0NlbGwqIG1hcCwgSlNDZWxsKiBrZXksIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBp
bnQzMl90IGhhc2gpKQpAQCAtNDI2MSwxNSArNDA1MywxNCBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2Vha01hcFNldCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplYwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlmIChVTkxJS0VMWSghY2FuQmVIZWxk
V2Vha2x5KGtleSkpKSB7CisgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsgLy8gSW50ZW50aW9uYWxseSBwdXR0aW5nIGl0IGhlcmUgc2luY2Ugd2Ugd291bGQgbGlr
ZSB0byBtYWtlIG9iamVjdCBrZXkgY2FzZSBHQy1mcmVlLgogICAgICAgICB0aHJvd1R5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCBXZWFrTWFwSW52YWxpZEtleUVycm9yKTsKLSAgICAgICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBq
c0Nhc3Q8SlNXZWFrTWFwKj4obWFwKS0+YWRkKHZtLCBrZXksIEpTVmFsdWU6OmRlY29kZSh2YWx1
ZSksIGhhc2gpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvdG90eXBlT2ZPYmplY3QsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRoaXNPYmplY3Qp
KQpAQCAtNDI3Nyw4ICs0MDY4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkdldFByb3RvdHlwZU9mT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmEKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRoaXNPYmplY3QtPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KSkpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUodGhpc09iamVjdC0+Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmpl
Y3QpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByb3RvdHlw
ZU9mLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCkBAIC00Mjg2LDkgKzQwNzYsOCBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvdG90eXBlT2YsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplYwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0
aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlLmdldFByb3RvdHlwZShnbG9iYWxPYmplY3QpKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2YWx1ZS5nZXRQcm90b3R5cGUoZ2xvYmFsT2JqZWN0
KSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0RnVsbFll
YXIsIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKSkK
QEAgLTQyOTYsMTIgKzQwODUsMTEgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkRhdGVHZXRGdWxsWWVhciwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGUKICAgICBWTSYg
dm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogCiAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0g
ZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0uZGF0ZUNhY2hlKTsKICAgICBpZiAoIWdyZWdvcmlh
bkRhdGVUaW1lKQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNv
ZGUoanNOYU4oKSkpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpKSkpOworICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnllYXIoKSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldFVUQ0Z1bGxZZWFyLCBFbmNvZGVkSlNWYWx1ZSwgKFZN
KiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkpCkBAIC00MzA5LDEyICs0MDk3LDExIEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0VVRDRnVsbFllYXIsIEVu
Y29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pCiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3Bl
cmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGNvbnN0IEdyZWdv
cmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1l
VVRDKHZtLmRhdGVDYWNoZSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKLSAgICAgICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpKTsKLSAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFu
RGF0ZVRpbWUtPnllYXIoKSkpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05h
TigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVU
aW1lLT55ZWFyKCkpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRh
dGVHZXRNb250aCwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2Uq
IGRhdGUpKQpAQCAtNDMyMiwxMiArNDEwOSwxMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRGF0ZUdldE1vbnRoLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsCiAg
ICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRl
VGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lKHZtLmRhdGVDYWNoZSk7CiAgICAgaWYgKCFn
cmVnb3JpYW5EYXRlVGltZSkKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKGpzTmFOKCkpKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKSk7CisgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9udGgoKSkpOwogfQogCiBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldFVUQ01vbnRoLCBFbmNvZGVkSlNWYWx1
ZSwgKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkpCkBAIC00MzM1LDEyICs0MTIx
LDExIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0VVRDTW9udGgs
IEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlCiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAg
SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUp
OwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGNvbnN0
IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRh
dGVUaW1lVVRDKHZtLmRhdGVDYWNoZSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKLSAg
ICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpKTsK
LSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3Jl
Z29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3Jp
YW5EYXRlVGltZS0+bW9udGgoKSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRGF0ZUdldERhdGUsIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgRGF0ZUlu
c3RhbmNlKiBkYXRlKSkKQEAgLTQzNDgsMTIgKzQxMzMsMTEgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRhdGVHZXREYXRlLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50
ZXIsIEQKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdv
cmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0uZGF0ZUNhY2hlKTsKICAg
ICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSkpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUs
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9udGhEYXkoKSkp
KTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5tb250aERheSgpKSk7
CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0VVRDRGF0ZSwg
RW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpKQpAQCAt
NDM2MSwxMiArNDE0NSwxMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0
ZUdldFVUQ0RhdGUsIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlcgogICAgIFZNJiB2bSA9
ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRl
LT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bS5kYXRlQ2FjaGUpOwogICAgIGlmICghZ3JlZ29yaWFu
RGF0ZVRpbWUpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShqc05hTigpKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5tb250aERheSgpKSkpOworICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoRGF5KCkpKTsKIH0KIAogSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXREYXksIEVuY29kZWRKU1ZhbHVlLCAoVk0q
IHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKSkKQEAgLTQzNzQsMTIgKzQxNTcsMTEgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXREYXksIEVuY29kZWRKU1Zh
bHVlLCAoVk0qIHZtUG9pbnRlciwgRGEKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgY29uc3QgR3JlZ29y
aWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUo
dm0uZGF0ZUNhY2hlKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQotICAgICAgICBPUEVS
QVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSkpOwotICAgIE9QRVJB
VElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRl
VGltZS0+d2Vla0RheSgpKSkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFO
KCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRp
bWUtPndlZWtEYXkoKSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RGF0ZUdldFVUQ0RheSwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFu
Y2UqIGRhdGUpKQpAQCAtNDM4NywxMiArNDE2OSwxMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRGF0ZUdldFVUQ0RheSwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVy
LAogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAKICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bS5kYXRlQ2FjaGUpOwogICAg
IGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUs
IEpTVmFsdWU6OmVuY29kZShqc05hTigpKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT53ZWVrRGF5KCkpKSk7
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7CiB9
CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0SG91cnMsIEVuY29k
ZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKSkKQEAgLTQ0MDAs
MTIgKzQxODEsMTEgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRI
b3VycywgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLAogICAgIFZNJiB2bSA9ICp2bVBv
aW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2Fs
bEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAg
ICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVn
b3JpYW5EYXRlVGltZSh2bS5kYXRlQ2FjaGUpOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUp
Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc05hTigp
KSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KGdyZWdvcmlhbkRhdGVUaW1lLT5ob3VyKCkpKSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVn
b3JpYW5EYXRlVGltZS0+aG91cigpKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25EYXRlR2V0VVRDSG91cnMsIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwg
RGF0ZUluc3RhbmNlKiBkYXRlKSkKQEAgLTQ0MTMsMTIgKzQxOTMsMTEgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRVVENIb3VycywgRW5jb2RlZEpTVmFsdWUsIChW
TSogdm1Qb2ludGUKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUq
IGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0uZGF0ZUNh
Y2hlKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQotICAgICAgICBPUEVSQVRJT05fUkVU
VVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSkpOwotICAgIE9QRVJBVElPTl9SRVRV
Uk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+aG91
cigpKSkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPmhvdXIoKSkp
OwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldE1pbnV0ZXMs
IEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKSkKQEAg
LTQ0MjYsMTIgKzQyMDUsMTEgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRh
dGVHZXRNaW51dGVzLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIKICAgICBWTSYgdm0g
PSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCiAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0
ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0uZGF0ZUNhY2hlKTsKICAgICBpZiAoIWdyZWdvcmlhbkRh
dGVUaW1lKQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUo
anNOYU4oKSkpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bWludXRlKCkpKSk7CisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bWludXRlKCkpKTsKIH0KIAogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRVVENNaW51dGVzLCBFbmNvZGVkSlNWYWx1ZSwgKFZN
KiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkpCkBAIC00NDM5LDEyICs0MjE3LDExIEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0VVRDTWludXRlcywgRW5j
b2RlZEpTVmFsdWUsIChWTSogdm1Qb2luCiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3Bl
cmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGNvbnN0IEdyZWdv
cmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1l
VVRDKHZtLmRhdGVDYWNoZSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKLSAgICAgICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpKTsKLSAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFu
RGF0ZVRpbWUtPm1pbnV0ZSgpKSkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0
ZVRpbWUtPm1pbnV0ZSgpKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25EYXRlR2V0U2Vjb25kcywgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBEYXRlSW5z
dGFuY2UqIGRhdGUpKQpAQCAtNDQ1MiwxMiArNDIyOSwxMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRGF0ZUdldFNlY29uZHMsIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9p
bnRlcgogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZSh2bS5kYXRlQ2FjaGUpOwogICAg
IGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUs
IEpTVmFsdWU6OmVuY29kZShqc05hTigpKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5zZWNvbmQoKSkpKTsK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5zZWNvbmQoKSkpOwogfQog
CiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldFVUQ1NlY29uZHMsIEVu
Y29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKSkKQEAgLTQ0
NjUsMTIgKzQyNDEsMTEgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVH
ZXRVVENTZWNvbmRzLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW4KICAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0s
IGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
CiAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+
Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0uZGF0ZUNhY2hlKTsKICAgICBpZiAoIWdyZWdvcmlhbkRh
dGVUaW1lKQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUo
anNOYU4oKSkpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+c2Vjb25kKCkpKSk7CisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihncmVnb3JpYW5EYXRlVGltZS0+c2Vjb25kKCkpKTsKIH0KIAogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRUaW1lem9uZU9mZnNldCwgRW5jb2RlZEpTVmFsdWUs
IChWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpKQpAQCAtNDQ3OCwxMiArNDI1Mywx
MSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldFRpbWV6b25lT2Zm
c2V0LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bQogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
LSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBjb25zdCBH
cmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRl
VGltZSh2bS5kYXRlQ2FjaGUpOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCi0gICAgICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc05hTigpKSk7Ci0gICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC1ncmVnb3Jp
YW5EYXRlVGltZS0+dXRjT2Zmc2V0SW5NaW51dGUoKSkpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KC1ncmVnb3JpYW5EYXRlVGltZS0+dXRjT2Zmc2V0SW5NaW51dGUoKSkpOwogfQogCiBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldFllYXIsIEVuY29kZWRKU1ZhbHVlLCAo
Vk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKSkKQEAgLTQ0OTEsMTIgKzQyNjUsMTEg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRZZWFyLCBFbmNvZGVk
SlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIEQKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRP
cGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0g
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgY29uc3QgR3Jl
Z29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRp
bWUodm0uZGF0ZUNhY2hlKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQotICAgICAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSkpOwotICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5E
YXRlVGltZS0+eWVhcigpIC0gMTkwMCkpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlh
bkRhdGVUaW1lLT55ZWFyKCkgLSAxOTAwKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25JbnQ2NFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIGludDY0X3QgdmFsdWUpKQpAQCAtNDUwNCw4ICs0Mjc3LDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDY0VG9CaWdJbnQsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
LSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgT1BFUkFUSU9O
X1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50OjptYWtlSGVhcEJpZ0ludE9y
QmlnSW50MzIoZ2xvYmFsT2JqZWN0LCB2YWx1ZSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTQmlnSW50OjptYWtlSGVhcEJpZ0ludE9yQmlnSW50MzIoZ2xvYmFsT2JqZWN0LCB2YWx1
ZSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dERkcsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZVRv
VGhyb3cpKQpAQCAtNDUxNSw3ICs0Mjg3LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblRocm93REZHLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAg
ICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIHNjb3Bl
LnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlVG9UaHJv
dykpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJvciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBtZXNzYWdlLCB1aW50MzJfdCBlcnJvclR5cGUpKQpA
QCAtNDUyNiw3ICs0Mjk3LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRo
cm93U3RhdGljRXJyb3IsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgU3RyaW5nIGVycm9yTWVzc2FnZSA9
IG1lc3NhZ2UtPnZhbHVlKGdsb2JhbE9iamVjdCk7CiAgICAgc2NvcGUudGhyb3dFeGNlcHRpb24o
Z2xvYmFsT2JqZWN0LCBjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVycm9y
VHlwZVdpdGhFeHRlbnNpb24+KGVycm9yVHlwZSksIGVycm9yTWVzc2FnZSkpOwotICAgIE9QRVJB
VElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTGlua0RpcmVjdENhbGwsIHZvaWQsIChEaXJlY3RDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5m
bywgSlNGdW5jdGlvbiogY2FsbGVlKSkKQEAgLTQ1MzUsMTEgKzQzMDUsMTEgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxpbmtEaXJlY3RDYWxsLCB2b2lkLCAoRGlyZWN0Q2Fs
bExpbmtJbmZvKiBjYWwKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJh
dGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGtpbmQgPSBjYWxsTGlua0luZm8tPnNwZWNpYWxpemF0aW9uS2luZCgpOwogCi0gICAgSlNTY29w
ZSoganNTY29wZSA9IGNhbGxlZS0+c2NvcGVVbmNoZWNrZWQoKTsKKyAgICBKU1Njb3BlKiBzY29w
ZSA9IGNhbGxlZS0+c2NvcGVVbmNoZWNrZWQoKTsKICAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0
YWJsZSA9IGNhbGxlZS0+ZXhlY3V0YWJsZSgpOwogCiAgICAgLy8gRklYTUU6IFN1cHBvcnQgd2Fz
bSBJQy4KQEAgLTQ1NTQsOCArNDMyNCw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25MaW5rRGlyZWN0Q2FsbCwgdm9pZCwgKERpcmVjdENhbGxMaW5rSW5mbyogY2FsCiAgICAg
ICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb25FeGVjdXRhYmxlID0gc3RhdGljX2Nhc3Q8
RnVuY3Rpb25FeGVjdXRhYmxlKj4oZXhlY3V0YWJsZSk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KGlzQ2FsbChraW5kKSB8fCBmdW5jdGlvbkV4ZWN1dGFibGUtPmNvbnN0cnVjdEFiaWxpdHkoKSAh
PSBDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3QpOwogCi0gICAgICAgIGZ1bmN0aW9u
RXhlY3V0YWJsZS0+cHJlcGFyZUZvckV4ZWN1dGlvbjxGdW5jdGlvbkV4ZWN1dGFibGU+KHZtLCBj
YWxsZWUsIGpzU2NvcGUsIGtpbmQsIGNvZGVCbG9jayk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlKTsKKyAgICAgICAgZnVuY3Rpb25FeGVjdXRhYmxlLT5wcmVw
YXJlRm9yRXhlY3V0aW9uPEZ1bmN0aW9uRXhlY3V0YWJsZT4odm0sIGNhbGxlZSwgc2NvcGUsIGtp
bmQsIGNvZGVCbG9jayk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwg
dm9pZCgpKTsKIAogICAgICAgICB1bnNpZ25lZCBhcmd1bWVudFN0YWNrU2xvdHMgPSBjYWxsTGlu
a0luZm8tPm1heEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCk7CiAgICAgICAgIGlmIChhcmd1
bWVudFN0YWNrU2xvdHMgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVtUGFyYW1l
dGVycygpKSkKQEAgLTQ1NjUsMTAgKzQzMzUsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTGlua0RpcmVjdENhbGwsIHZvaWQsIChEaXJlY3RDYWxsTGlua0luZm8qIGNhbAog
ICAgIH0KIAogICAgIGxpbmtEaXJlY3RDYWxsKCpjYWxsTGlua0luZm8sIGNvZGVCbG9jaywgY29k
ZVB0cik7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9F
WENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyUmVvcHRpbWl6YXRpb25Ob3csIHZv
aWQsIChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZUJsb2NrKiBvcHRpbWl6ZWRDb2RlQmxvY2ss
IE9TUkV4aXRCYXNlKiBleGl0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
cmlnZ2VyUmVvcHRpbWl6YXRpb25Ob3csIHZvaWQsIChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29k
ZUJsb2NrKiBvcHRpbWl6ZWRDb2RlQmxvY2ssIE9TUkV4aXRCYXNlKiBleGl0KSkKIHsKICAgICAv
LyBJdCdzIHNvcnQgb2YgcHJlZmVyYWJsZSB0aGF0IHdlIGRvbid0IEdDIHdoaWxlIGluIGhlcmUu
IEFueXdheXMsIGRvaW5nIHNvIHdvdWxkbid0CiAgICAgLy8gcmVhbGx5IGJlIHByb2ZpdGFibGUu
CkBAIC00Njg3LDcgKzQ0NTYsNyBAQCBzdGF0aWMgdm9pZCB0cmlnZ2VyRlRMUmVwbGFjZW1lbnRD
b21waWxlKFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVENvZGUqCiAgICAgICAgIGNv
ZGVCbG9jaywgQ29tcGlsYXRpb25EZWZlcnJlZCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRf
SklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyVGllclVwTm93LCB2b2lkLCAoVk0qIHZtUG9p
bnRlcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5v
dywgdm9pZCwgKFZNKiB2bVBvaW50ZXIpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNDk1
Myw3ICs0NzIyLDcgQEAgc3RhdGljIGNoYXIqIHRpZXJVcENvbW1vbihWTSYgdm0sIENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBCeXRlY29kZUluZGV4IG9yaWdpbkJ5dGUKICAgICByZXR1cm4gdGFnQ29k
ZVB0cldpdGhTdGFja1BvaW50ZXJGb3JKSVRDYWxsKHVudGFnQ29kZVB0cjxjaGFyKiwgSlNFbnRy
eVB0clRhZz4oYWRkcmVzcyksIGNhbGxGcmFtZSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRf
SklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyVGllclVwTm93SW5Mb29wLCB2b2lkLCAoVk0q
IHZtUG9pbnRlciwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleEJpdHMpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJUaWVyVXBOb3dJbkxvb3AsIHZvaWQsIChWTSogdm1Q
b2ludGVyLCB1bnNpZ25lZCBieXRlY29kZUluZGV4Qml0cykpCiB7CiAgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC00OTg1LDcgKzQ3NTQsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9vcCwgdm9pZCwgKFZNKiB2bQogICAgIH0K
IH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJP
U1JFbnRyeU5vdywgY2hhciosIChWTSogdm1Qb2ludGVyLCB1bnNpZ25lZCBieXRlY29kZUluZGV4
Qml0cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlck9TUkVudHJ5
Tm93LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXhCaXRzKSkK
IHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmgKaW5kZXggYzk3MDQxYzVmNmNmLi43YTc0NmU2MmYwYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMS0yMDI0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTA5LDggKzEwOSw4IEBAIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhSb3VuZCwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFy
aXRoRmxvb3IsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aENlaWwsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aFRydW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhNaW5NdWx0aXBsZURvdWJsZSwgZG91YmxlLCAoY29u
c3QgZG91YmxlKiBidWZmZXIsIHVuc2lnbmVkIGVsZW1lbnRDb3VudCkpOwotSlNDX0RFQ0xBUkVf
Tk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aE1heE11bHRpcGxlRG91YmxlLCBk
b3VibGUsIChjb25zdCBkb3VibGUqIGJ1ZmZlciwgdW5zaWduZWQgZWxlbWVudENvdW50KSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoTWluTXVsdGlwbGVEb3VibGUs
IGRvdWJsZSwgKGNvbnN0IGRvdWJsZSogYnVmZmVyLCB1bnNpZ25lZCBlbGVtZW50Q291bnQpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhNYXhNdWx0aXBsZURvdWJs
ZSwgZG91YmxlLCAoY29uc3QgZG91YmxlKiBidWZmZXIsIHVuc2lnbmVkIGVsZW1lbnRDb3VudCkp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbE9iamVjdEludCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCkpOwog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbFN0cmluZ0ludCwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgaW50MzJfdCkpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbE9iamVjdFN0cmluZywgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3RyaW5nKSk7
CkBAIC0xMjgsNyArMTI4LDcgQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25I
YXNJbmRleGVkUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzRW51bWVyYWJsZUluZGV4ZWRQcm9wZXJ0eSwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBpbnQzMl90KSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByb3BlcnR5RW51bWVyYXRvciwgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0UHJvcGVydHlFbnVtZXJhdG9yQ2VsbCwgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNDZWxsKikpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihv
cGVyYXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0ZUluZGV4QW5kTW9kZSwgVUdQUlBhaXIsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCB1aW50MzJfdCwgaW50MzJfdCwgSlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25F
bnVtZXJhdG9yTmV4dFVwZGF0ZUluZGV4QW5kTW9kZSwgVUdQUlBhaXIsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCB1aW50MzJfdCwgaW50MzJfdCwgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9y
TmV4dFVwZGF0ZVByb3BlcnR5TmFtZSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCB1aW50
MzJfdCwgaW50MzJfdCwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKikpOwogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9ySW5CeVZhbCwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgdWludDMy
X3QsIGludDMyX3QpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVy
YXRvckhhc093blByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCB1aW50MzJfdCwgaW50MzJfdCkpOwpAQCAtMjEy
LDcgKzIxMiw3IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwTWF0
Y2hGYXN0U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvCiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0
KiwgUmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblJlZ0V4cFRlc3QsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUmVnRXhwVGVzdEdlbmVyaWMsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcUNlbGwsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcUNlbGwsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblN1YkhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBK
U0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTXVsSGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCogb3AxLCBKU0NlbGwqIG9wMikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Nb2RIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlND
ZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSk7CkBAIC0yNDAsMjAgKzI0MCwyMCBAQCBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcERlbGV0ZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU0NlbGwqLAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXREZWxl
dGUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGlu
dDMyX3QpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Vha1NldEFkZCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiwgaW50MzJfdCkpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XZWFrTWFwU2V0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwot
SlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25GTW9kT25JbnRzLCBk
b3VibGUsIChpbnQzMl90LCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkZNb2RPbkludHMsIGRvdWJsZSwgKGludDMyX3QsIGludDMyX3QpKTsKIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mSXNPYmplY3QsIHNpemVfdCwgKEpTR2xv
YmFsT2JqZWN0KiwgSlNDZWxsKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25UeXBlT2ZJc0Z1bmN0aW9uLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0SXNDYWxsYWJsZSwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbklzQ29uc3RydWN0b3IsIHNpemVfdCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uSXNDb25zdHJ1Y3Rvciwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZPYmplY3QsIEpT
Q2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENh
cGFjaXR5LCBCdXR0ZXJmbHkqLCAoVk0qKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdlLCBCdXR0ZXJmbHkqLCAoVk0qLCBz
aXplX3QgbmV3U2l6ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxv
Y2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFjaXR5LCBCdXR0ZXJmbHkq
LCAoVk0qLCBKU09iamVjdCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
QWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlLCBCdXR0ZXJmbHkqLCAoVk0qLCBKU09iamVj
dCosIHNpemVfdCBuZXdTaXplKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkVuc3VyZUludDMyLCBCdXR0ZXJmbHkqLCAoVk0qLCBKU0NlbGwqKSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVuc3VyZURvdWJsZSwgQnV0dGVyZmx5KiwgKFZNKiwgSlND
ZWxsKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnN1cmVDb250aWd1
b3VzLCBCdXR0ZXJmbHkqLCAoVk0qLCBKU0NlbGwqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkVuc3VyZUFycmF5U3RvcmFnZSwgQnV0dGVyZmx5KiwgKFZNKiwgSlNDZWxs
KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVBy
b3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHksIGNoYXIqLCAoVk0qKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdl
LCBjaGFyKiwgKFZNKiwgc2l6ZV90IG5ld1NpemUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBh
Y2l0eSwgY2hhciosIChWTSosIEpTT2JqZWN0KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0qLCBK
U09iamVjdCosIHNpemVfdCBuZXdTaXplKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkVuc3VyZUludDMyLCBjaGFyKiwgKFZNKiwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25FbnN1cmVEb3VibGUsIGNoYXIqLCAoVk0qLCBKU0NlbGwq
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVuc3VyZUNvbnRpZ3VvdXMs
IGNoYXIqLCAoVk0qLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkVuc3VyZUFycmF5U3RvcmFnZSwgY2hhciosIChWTSosIEpTQ2VsbCopKTsKIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVzb2x2ZVJvcGUsIFN0cmluZ0ltcGwqLCAoSlNH
bG9iYWxPYmplY3QqLCBKU1N0cmluZyopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUmVzb2x2ZVJvcGVTdHJpbmcsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNS
b3BlU3RyaW5nKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaW5nbGVD
aGFyYWN0ZXJTdHJpbmcsIEpTU3RyaW5nKiwgKFZNKiwgaW50MzJfdCkpOwpAQCAtMjkwLDcgKzI5
MCw3IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3Qm91bmRGdW5jdGlv
biwgSlNCb3VuZEZ1bmN0aW9uKiwgKEpTR2xvYmFsCiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTm9ybWFsaXplTWFwS2V5SGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChW
TSosIEpTQmlnSW50KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXBI
YXNoLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGlu
cHV0KSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcEhh
c2hIZWFwQmlnSW50LCBVQ1BVU3RyaWN0SW50MzIsIChWTSosIEpTQmlnSW50KikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXBIYXNoSGVhcEJpZ0ludCwgVUNQVVN0cmlj
dEludDMyLCAoVk0qLCBKU0JpZ0ludCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSlNNYXBGaW5kQnVja2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwq
LCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25KU1NldEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2Vs
bCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld01hcCwgSlNNYXAqLCAoVk0qLCBTdHJ1Y3R1cmUqKSk7CkBAIC0zMjAsMTIg
KzMyMCwxMiBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0ckNhdDMsIEpT
U3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZAogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25NYWtlQXRvbVN0cmluZzEsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNTdHJpbmcqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1ha2VB
dG9tU3RyaW5nMiwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3Ry
aW5nKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYWtlQXRvbVN0cmlu
ZzMsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyosIEpT
U3RyaW5nKikpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25G
aW5kU3dpdGNoSW1tVGFyZ2V0Rm9yRG91YmxlLCBjaGFyKiwgKFZNKiwgRW5jb2RlZEpTVmFsdWUs
IHNpemVfdCB0YWJsZUluZGV4LCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkZpbmRTd2l0Y2hJbW1UYXJnZXRGb3JEb3VibGUsIGNoYXIqLCAoVk0qLCBFbmNv
ZGVkSlNWYWx1ZSwgc2l6ZV90IHRhYmxlSW5kZXgsIGludDMyX3QpKTsKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0
Kiwgc2l6ZV90IHRhYmxlSW5kZXgsIGNvbnN0IFVubGlua2VkU3RyaW5nSnVtcFRhYmxlKiwgSlNT
dHJpbmcqKSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNv
bXBhcmVTdHJpbmdJbXBsTGVzcywgdWludHB0cl90LCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwq
KSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVT
dHJpbmdJbXBsTGVzc0VxLCB1aW50cHRyX3QsIChTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsK
LUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmlu
Z0ltcGxHcmVhdGVyLCB1aW50cHRyX3QsIChTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKLUpT
Q19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0lt
cGxHcmVhdGVyRXEsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbExlc3MsIHVp
bnRwdHJfdCwgKFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKikpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbExlc3NFcSwgdWludHB0cl90LCAoU3Ry
aW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlciwgdWludHB0cl90LCAoU3RyaW5nSW1wbCosIFN0
cmluZ0ltcGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVT
dHJpbmdJbXBsR3JlYXRlckVxLCB1aW50cHRyX3QsIChTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCop
KTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0xlc3Ms
IHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopKTsKIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0xlc3NFcSwgdWlu
dHB0cl90LCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5nKikpOwogSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nR3JlYXRlciwgdWludHB0
cl90LCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5nKikpOwpAQCAtMzQwLDkg
KzM0MCw5IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGF0aWNF
cnJvciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkhhc093blByb3BlcnR5LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25BcnJheUluZGV4T2ZTdHJpbmcsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgQnV0dGVyZmx5KiwgSlNTdHJpbmcqLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVlRG91YmxlLCBVQ1BV
U3RyaWN0SW50MzIsIChCdXR0ZXJmbHkqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZURvdWJsZSwg
VUNQVVN0cmljdEludDMyLCAoQnV0dGVyZmx5KiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mVmFsdWVJbnQz
Mk9yQ29udGlndW91cywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBCdXR0ZXJm
bHkqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklU
X09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZOb25TdHJpbmdJZGVudGl0eVZhbHVlQ29u
dGlndW91cywgVUNQVVN0cmljdEludDMyLCAoQnV0dGVyZmx5KiwgRW5jb2RlZEpTVmFsdWUsIGlu
dDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9m
Tm9uU3RyaW5nSWRlbnRpdHlWYWx1ZUNvbnRpZ3VvdXMsIFVDUFVTdHJpY3RJbnQzMiwgKEJ1dHRl
cmZseSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uU3ByZWFkRmFzdEFycmF5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNwcmVhZEdl
bmVyaWMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKQEAgLTM1OCwxMSAr
MzU4LDExIEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1Zh
clN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0RHluYW1pY1ZhclNsb3BweSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqLCB1bnNp
Z25lZCkpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk51bWJlcklzSW50
ZWdlciwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RF
Q0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJc05hTiwgVUNQVVN0
cmljdEludDMyLCAoRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTnVtYmVySXNOYU4sIFVDUFVTdHJpY3RJbnQzMiwgKEVuY29kZWRKU1ZhbHVlKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklzTmFOLCBVQ1BVU3RyaWN0SW50
MzIsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvSW50ZWdlck9ySW5maW5pdHlEb3VibGUsIEVu
Y29kZWRKU1ZhbHVlLCAoZG91YmxlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblRvSW50ZWdlck9ySW5maW5pdHlEb3VibGUsIEVuY29kZWRKU1ZhbHVlLCAoZG91YmxlKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvSW50ZWdlck9ySW5maW5pdHlV
bnR5cGVkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUp
KTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9MZW5ndGhE
b3VibGUsIEVuY29kZWRKU1ZhbHVlLCAoZG91YmxlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblRvTGVuZ3RoRG91YmxlLCBFbmNvZGVkSlNWYWx1ZSwgKGRvdWJsZSkpOwog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0xlbmd0aFVudHlwZWQsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOwogCiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1Jhd09iamVjdCwgY2hhciosIChWTSosIFN0
cnVjdHVyZSosIGludDMyX3QsIEJ1dHRlcmZseSopKTsKQEAgLTM5MiwxNiArMzkyLDE2IEBAIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50NjRUb0JpZ0ludCwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjCiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHJvY2Vzc1R5cGVQcm9maWxlckxvZ0RGRywgdm9pZCwgKFZNKikpOwogCi1KU0NfREVDTEFS
RV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJSZW9wdGltaXphdGlvbk5v
dywgdm9pZCwgKENvZGVCbG9jayogYmFzZWxpbmVDb2RlQmxvY2ssIENvZGVCbG9jayogb3B0aW1p
emVkQ29kZUJsb2NrLCBPU1JFeGl0QmFzZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVHJpZ2dlclJlb3B0aW1pemF0aW9uTm93LCB2b2lkLCAoQ29kZUJsb2NrKiBiYXNl
bGluZUNvZGVCbG9jaywgQ29kZUJsb2NrKiBvcHRpbWl6ZWRDb2RlQmxvY2ssIE9TUkV4aXRCYXNl
KikpOwogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUmFuZG9tLCBkb3VibGUsIChKU0dsb2JhbE9iamVjdCopKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmFuZG9tLCBkb3VibGUsIChKU0dsb2Jh
bE9iamVjdCopKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKEZUTF9KSVQpCi1KU0NfREVDTEFSRV9O
T0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChW
TSopKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dl
clRpZXJVcE5vd0luTG9vcCwgdm9pZCwgKFZNKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleEJpdHMp
KTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlck9T
UkVudHJ5Tm93LCBjaGFyKiwgKFZNKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleEJpdHMpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vdywgdm9pZCwg
KFZNKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyVGllclVw
Tm93SW5Mb29wLCB2b2lkLCAoVk0qLCB1bnNpZ25lZCBieXRlY29kZUluZGV4Qml0cykpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyT1NSRW50cnlOb3csIGNoYXIq
LCAoVk0qLCB1bnNpZ25lZCBieXRlY29kZUluZGV4Qml0cykpOwogI2VuZGlmIC8vIEVOQUJMRShG
VExfSklUKQogCiBpbmxpbmUgYXV0byBvcGVyYXRpb25OZXdUeXBlZEFycmF5V2l0aFNpemVGb3JU
eXBlKFR5cGVkQXJyYXlUeXBlIHR5cGUpIC0+IGRlY2x0eXBlKCZvcGVyYXRpb25OZXdJbnQ4QXJy
YXlXaXRoU2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Fu
ZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaAppbmRleCA1OTQ2
NGMxYTJhZjguLjA4Yzc2ODM3NjIyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0
b3IuaApAQCAtNzUsNiArNzUsNyBAQCBwcml2YXRlOgogICAgICAgICBqaXQtPmNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uR2V0QnlWYWxTdHJpbmdJbnQsIGV4dHJhY3RSZXN1bHQobV9yZXN1bHRSZWdz
KSwgbV9nbG9iYWxPYmplY3QsIG1fYmFzZVJlZywgbV9wcm9wZXJ0eVJlZyk7CiAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IG1fcGxhbnMuc2l6ZSgpOyBpLS07KQogICAgICAgICAgICAgaml0LT5z
aWxlbnRGaWxsKG1fcGxhbnNbaV0pOworICAgICAgICBqaXQtPmV4Y2VwdGlvbkNoZWNrKCk7CiAg
ICAgICAgIAogICAgICAgICBqdW1wVG8oaml0KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgKaW5kZXggNjQwNmVkZDUwNTliLi5k
NDFiNjhjZDY3ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2xv
d1BhdGhHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQ
YXRoR2VuZXJhdG9yLmgKQEAgLTEwMyw2MyArMTAzLDcgQEAgZW51bSBjbGFzcyBFeGNlcHRpb25D
aGVja1JlcXVpcmVtZW50IDogdWludDhfdCB7CiAgICAgQ2hlY2tOb3ROZWVkZWQKIH07CiAKLXRl
bXBsYXRlPHR5cGVuYW1lIEp1bXBUeXBlLCB0eXBlbmFtZSBEZXN0aW5hdGlvblR5cGUsIHR5cGVu
YW1lIFNvdXJjZVR5cGUsIHVuc2lnbmVkIG51bWJlck9mQXNzaWdubWVudHM+Ci1jbGFzcyBBc3Np
Z25pbmdTbG93UGF0aEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5l
cmF0b3I8SnVtcFR5cGU+IHsKLXB1YmxpYzoKLSAgICBBc3NpZ25pbmdTbG93UGF0aEdlbmVyYXRv
cigKLSAgICAgICAgSnVtcFR5cGUgZnJvbSwgU3BlY3VsYXRpdmVKSVQqIGppdCwKLSAgICAgICAg
RGVzdGluYXRpb25UeXBlIGRlc3RpbmF0aW9uW251bWJlck9mQXNzaWdubWVudHNdLAotICAgICAg
ICBTb3VyY2VUeXBlIHNvdXJjZVtudW1iZXJPZkFzc2lnbm1lbnRzXSkKLSAgICAgICAgOiBKdW1w
aW5nU2xvd1BhdGhHZW5lcmF0b3I8SnVtcFR5cGU+KGZyb20sIGppdCkKLSAgICB7Ci0gICAgICAg
IGZvciAodW5zaWduZWQgaSA9IG51bWJlck9mQXNzaWdubWVudHM7IGktLTspIHsKLSAgICAgICAg
ICAgIG1fZGVzdGluYXRpb25baV0gPSBkZXN0aW5hdGlvbltpXTsKLSAgICAgICAgICAgIG1fc291
cmNlW2ldID0gc291cmNlW2ldOwotICAgICAgICB9Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHZv
aWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBmaW5hbAotICAgIHsKLSAg
ICAgICAgdGhpcy0+bGlua0Zyb20oaml0KTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVt
YmVyT2ZBc3NpZ25tZW50czsgaS0tOykKLSAgICAgICAgICAgIGppdC0+bW92ZShtX3NvdXJjZVtp
XSwgbV9kZXN0aW5hdGlvbltpXSk7Ci0gICAgICAgIHRoaXMtPmp1bXBUbyhqaXQpOwotICAgIH0K
LQotICAgIERlc3RpbmF0aW9uVHlwZSBtX2Rlc3RpbmF0aW9uW251bWJlck9mQXNzaWdubWVudHNd
OwotICAgIFNvdXJjZVR5cGUgbV9zb3VyY2VbbnVtYmVyT2ZBc3NpZ25tZW50c107Ci19OwotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBKdW1wVHlwZSwgdHlwZW5hbWUgRGVzdGluYXRpb25UeXBlLCB0eXBl
bmFtZSBTb3VyY2VUeXBlLCB1bnNpZ25lZCBudW1iZXJPZkFzc2lnbm1lbnRzPgotaW5saW5lIHN0
ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4gc2xvd1BhdGhNb3ZlKAotICAgIEp1bXBU
eXBlIGZyb20sIFNwZWN1bGF0aXZlSklUKiBqaXQsIFNvdXJjZVR5cGUgc291cmNlW251bWJlck9m
QXNzaWdubWVudHNdLCBEZXN0aW5hdGlvblR5cGUgZGVzdGluYXRpb25bbnVtYmVyT2ZBc3NpZ25t
ZW50c10pCi17Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8QXNzaWduaW5nU2xvd1BhdGhHZW5lcmF0
b3I8SnVtcFR5cGUsIERlc3RpbmF0aW9uVHlwZSwgU291cmNlVHlwZSwgbnVtYmVyT2ZBc3NpZ25t
ZW50cz4+KAotICAgICAgICBmcm9tLCBqaXQsIGRlc3RpbmF0aW9uLCBzb3VyY2UpOwotfQotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBKdW1wVHlwZSwgdHlwZW5hbWUgRGVzdGluYXRpb25UeXBlLCB0eXBl
bmFtZSBTb3VyY2VUeXBlPgotaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRv
cj4gc2xvd1BhdGhNb3ZlKAotICAgIEp1bXBUeXBlIGZyb20sIFNwZWN1bGF0aXZlSklUKiBqaXQs
IFNvdXJjZVR5cGUgc291cmNlLCBEZXN0aW5hdGlvblR5cGUgZGVzdGluYXRpb24pCi17Ci0gICAg
U291cmNlVHlwZSBzb3VyY2VBcnJheVsxXSA9IHsgc291cmNlIH07Ci0gICAgRGVzdGluYXRpb25U
eXBlIGRlc3RpbmF0aW9uQXJyYXlbMV0gPSB7IGRlc3RpbmF0aW9uIH07Ci0gICAgcmV0dXJuIG1h
a2VVbmlxdWU8QXNzaWduaW5nU2xvd1BhdGhHZW5lcmF0b3I8SnVtcFR5cGUsIERlc3RpbmF0aW9u
VHlwZSwgU291cmNlVHlwZSwgMT4+KAotICAgICAgICBmcm9tLCBqaXQsIGRlc3RpbmF0aW9uQXJy
YXksIHNvdXJjZUFycmF5KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgSnVtcFR5cGUsIHR5cGVu
YW1lIERlc3RpbmF0aW9uVHlwZSwgdHlwZW5hbWUgU291cmNlVHlwZT4KLWlubGluZSBzdGQ6OnVu
aXF1ZV9wdHI8U2xvd1BhdGhHZW5lcmF0b3I+IHNsb3dQYXRoTW92ZSgKLSAgICBKdW1wVHlwZSBm
cm9tLCBTcGVjdWxhdGl2ZUpJVCogaml0LCBTb3VyY2VUeXBlIHNvdXJjZTEsIERlc3RpbmF0aW9u
VHlwZSBkZXN0aW5hdGlvbjEsIFNvdXJjZVR5cGUgc291cmNlMiwgRGVzdGluYXRpb25UeXBlIGRl
c3RpbmF0aW9uMikKLXsKLSAgICBTb3VyY2VUeXBlIHNvdXJjZUFycmF5WzJdID0geyBzb3VyY2Ux
LCBzb3VyY2UyIH07Ci0gICAgRGVzdGluYXRpb25UeXBlIGRlc3RpbmF0aW9uQXJyYXlbMl0gPSB7
IGRlc3RpbmF0aW9uMSwgZGVzdGluYXRpb24yIH07Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8QXNz
aWduaW5nU2xvd1BhdGhHZW5lcmF0b3I8SnVtcFR5cGUsIERlc3RpbmF0aW9uVHlwZSwgU291cmNl
VHlwZSwgMj4+KAotICAgICAgICBmcm9tLCBqaXQsIGRlc3RpbmF0aW9uQXJyYXksIHNvdXJjZUFy
cmF5KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgSnVtcFR5cGUsIHR5cGVuYW1lIEZ1bmN0aW9u
VHlwZSwgdHlwZW5hbWUgUmVzdWx0VHlwZT4KK3RlbXBsYXRlPHR5cGVuYW1lIEp1bXBUeXBlLCB0
eXBlbmFtZSBSZXN1bHRUeXBlPgogY2xhc3MgQ2FsbFNsb3dQYXRoR2VuZXJhdG9yIDogcHVibGlj
IEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxKdW1wVHlwZT4gewogcHVibGljOgogICAgIENhbGxT
bG93UGF0aEdlbmVyYXRvcigKQEAgLTE5NiwxNiArMTQwLDEyIEBAIHByb3RlY3RlZDoKICAgICAK
ICAgICB2b2lkIHRlYXJEb3duKFNwZWN1bGF0aXZlSklUKiBqaXQpCiAgICAgewotICAgICAgICBp
ZiAobV9leGNlcHRpb25DaGVja1JlcXVpcmVtZW50ID09IEV4Y2VwdGlvbkNoZWNrUmVxdWlyZW1l
bnQ6OkNoZWNrTmVlZGVkKQotICAgICAgICAgICAgaml0LT5leGNlcHRpb25DaGVjayhvcGVyYXRp
b25FeGNlcHRpb25SZWdpc3Rlcjx0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxGdW5jdGlvblR5cGU+
OjpSZXN1bHRUeXBlPigpKTsKLQotICAgICAgICBpZiBjb25zdGV4cHIgKCFzdGQ6OmlzX3NhbWVf
djxSZXN1bHRUeXBlLCBOb1Jlc3VsdFRhZz4pCi0gICAgICAgICAgICBqaXQtPnNldHVwUmVzdWx0
cyhleHRyYWN0UmVzdWx0KHRoaXMtPm1fcmVzdWx0KSk7Ci0KICAgICAgICAgaWYgKG1fc3BpbGxN
b2RlID09IE5lZWRUb1NwaWxsKSB7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX3Bs
YW5zLnNpemUoKTsgaS0tOykKICAgICAgICAgICAgICAgICBqaXQtPnNpbGVudEZpbGwobV9wbGFu
c1tpXSk7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKG1fZXhjZXB0aW9uQ2hlY2tSZXF1aXJlbWVu
dCA9PSBFeGNlcHRpb25DaGVja1JlcXVpcmVtZW50OjpDaGVja05lZWRlZCkKKyAgICAgICAgICAg
IGppdC0+ZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgdGhpcy0+anVtcFRvKGppdCk7CiAgICAg
fQogCkBAIC0yMTcsMTIgKzE1NywxMiBAQCBwcm90ZWN0ZWQ6CiB9OwogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBKdW1wVHlwZSwgdHlwZW5hbWUgRnVuY3Rpb25UeXBlLCB0eXBlbmFtZSBSZXN1bHRUeXBl
LCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci1jbGFzcyBDYWxsUmVzdWx0QW5kQXJndW1lbnRzU2xv
d1BhdGhHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgQ2FsbFNsb3dQYXRoR2VuZXJhdG9yPEp1bXBU
eXBlLCBGdW5jdGlvblR5cGUsIFJlc3VsdFR5cGU+IHsKK2NsYXNzIENhbGxSZXN1bHRBbmRBcmd1
bWVudHNTbG93UGF0aEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBDYWxsU2xvd1BhdGhHZW5lcmF0
b3I8SnVtcFR5cGUsIFJlc3VsdFR5cGU+IHsKIHB1YmxpYzoKICAgICBDYWxsUmVzdWx0QW5kQXJn
dW1lbnRzU2xvd1BhdGhHZW5lcmF0b3IoCiAgICAgICAgIEp1bXBUeXBlIGZyb20sIFNwZWN1bGF0
aXZlSklUKiBqaXQsIEZ1bmN0aW9uVHlwZSBmdW5jdGlvbiwKICAgICAgICAgU3BpbGxSZWdpc3Rl
cnNNb2RlIHNwaWxsTW9kZSwgRXhjZXB0aW9uQ2hlY2tSZXF1aXJlbWVudCByZXF1aXJlbWVudCwg
UmVzdWx0VHlwZSByZXN1bHQsIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMpCi0gICAgICAgIDogQ2Fs
bFNsb3dQYXRoR2VuZXJhdG9yPEp1bXBUeXBlLCBGdW5jdGlvblR5cGUsIFJlc3VsdFR5cGU+KGZy
b20sIGppdCwgc3BpbGxNb2RlLCByZXF1aXJlbWVudCwgcmVzdWx0KQorICAgICAgICA6IENhbGxT
bG93UGF0aEdlbmVyYXRvcjxKdW1wVHlwZSwgUmVzdWx0VHlwZT4oZnJvbSwgaml0LCBzcGlsbE1v
ZGUsIHJlcXVpcmVtZW50LCByZXN1bHQpCiAgICAgICAgICwgbV9mdW5jdGlvbihmdW5jdGlvbikK
ICAgICAgICAgLCBtX2FyZ3VtZW50cyhzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMp
Li4uKQogICAgIHsKQEAgLTIzMyw4ICsxNzMsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVucGFj
a0FuZEdlbmVyYXRlKFNwZWN1bGF0aXZlSklUKiBqaXQsIHN0ZDo6aW5kZXhfc2VxdWVuY2U8QXJn
dW1lbnRzSW5kZXguLi4+KQogICAgIHsKICAgICAgICAgdGhpcy0+c2V0VXAoaml0KTsKLSAgICAg
ICAgaml0LT5zZXR1cEFyZ3VtZW50czxGdW5jdGlvblR5cGU+KHN0ZDo6Z2V0PEFyZ3VtZW50c0lu
ZGV4PihtX2FyZ3VtZW50cykuLi4pOwotICAgICAgICB0aGlzLT5yZWNvcmRDYWxsKGppdC0+YXBw
ZW5kQ2FsbChtX2Z1bmN0aW9uKSk7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19zYW1l
PFJlc3VsdFR5cGUsIE5vUmVzdWx0VGFnPjo6dmFsdWUpCisgICAgICAgICAgICB0aGlzLT5yZWNv
cmRDYWxsKGppdC0+Y2FsbE9wZXJhdGlvbih0aGlzLT5tX2Z1bmN0aW9uLCBzdGQ6OmdldDxBcmd1
bWVudHNJbmRleD4obV9hcmd1bWVudHMpLi4uKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRoaXMtPnJlY29yZENhbGwoaml0LT5jYWxsT3BlcmF0aW9uKHRoaXMtPm1fZnVuY3Rpb24sIGV4
dHJhY3RSZXN1bHQodGhpcy0+bV9yZXN1bHQpLCBzdGQ6OmdldDxBcmd1bWVudHNJbmRleD4obV9h
cmd1bWVudHMpLi4uKSk7CiAgICAgICAgIHRoaXMtPnRlYXJEb3duKGppdCk7CiAgICAgfQogCkBA
IC0yNjYsMTMgKzIwOCw2OSBAQCBpbmxpbmUgc3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJh
dG9yPiBzbG93UGF0aENhbGwoCiAgICAgICAgIGZyb20sIGppdCwgZnVuY3Rpb24sIE5lZWRUb1Nw
aWxsLCBFeGNlcHRpb25DaGVja1JlcXVpcmVtZW50OjpDaGVja05lZWRlZCwgcmVzdWx0LCBhcmd1
bWVudHMuLi4pOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBKdW1wVHlwZSwgdHlwZW5hbWUgRGVz
dGluYXRpb25UeXBlLCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB1bnNpZ25lZCBudW1iZXJPZkFzc2ln
bm1lbnRzPgorY2xhc3MgQXNzaWduaW5nU2xvd1BhdGhHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMg
SnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPEp1bXBUeXBlPiB7CitwdWJsaWM6CisgICAgQXNzaWdu
aW5nU2xvd1BhdGhHZW5lcmF0b3IoCisgICAgICAgIEp1bXBUeXBlIGZyb20sIFNwZWN1bGF0aXZl
SklUKiBqaXQsCisgICAgICAgIERlc3RpbmF0aW9uVHlwZSBkZXN0aW5hdGlvbltudW1iZXJPZkFz
c2lnbm1lbnRzXSwKKyAgICAgICAgU291cmNlVHlwZSBzb3VyY2VbbnVtYmVyT2ZBc3NpZ25tZW50
c10pCisgICAgICAgIDogSnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPEp1bXBUeXBlPihmcm9tLCBq
aXQpCisgICAgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1iZXJPZkFzc2lnbm1lbnRz
OyBpLS07KSB7CisgICAgICAgICAgICBtX2Rlc3RpbmF0aW9uW2ldID0gZGVzdGluYXRpb25baV07
CisgICAgICAgICAgICBtX3NvdXJjZVtpXSA9IHNvdXJjZVtpXTsKKyAgICAgICAgfQorICAgIH0K
KworcHJpdmF0ZToKKyAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGpp
dCkgZmluYWwKKyAgICB7CisgICAgICAgIHRoaXMtPmxpbmtGcm9tKGppdCk7CisgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IG51bWJlck9mQXNzaWdubWVudHM7IGktLTspCisgICAgICAgICAgICBq
aXQtPm1vdmUobV9zb3VyY2VbaV0sIG1fZGVzdGluYXRpb25baV0pOworICAgICAgICB0aGlzLT5q
dW1wVG8oaml0KTsKKyAgICB9CisKKyAgICBEZXN0aW5hdGlvblR5cGUgbV9kZXN0aW5hdGlvbltu
dW1iZXJPZkFzc2lnbm1lbnRzXTsKKyAgICBTb3VyY2VUeXBlIG1fc291cmNlW251bWJlck9mQXNz
aWdubWVudHNdOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgSnVtcFR5cGUsIHR5cGVuYW1lIERl
c3RpbmF0aW9uVHlwZSwgdHlwZW5hbWUgU291cmNlVHlwZSwgdW5zaWduZWQgbnVtYmVyT2ZBc3Np
Z25tZW50cz4KK2lubGluZSBzdGQ6OnVuaXF1ZV9wdHI8U2xvd1BhdGhHZW5lcmF0b3I+IHNsb3dQ
YXRoTW92ZSgKKyAgICBKdW1wVHlwZSBmcm9tLCBTcGVjdWxhdGl2ZUpJVCogaml0LCBTb3VyY2VU
eXBlIHNvdXJjZVtudW1iZXJPZkFzc2lnbm1lbnRzXSwgRGVzdGluYXRpb25UeXBlIGRlc3RpbmF0
aW9uW251bWJlck9mQXNzaWdubWVudHNdKQoreworICAgIHJldHVybiBtYWtlVW5pcXVlPEFzc2ln
bmluZ1Nsb3dQYXRoR2VuZXJhdG9yPEp1bXBUeXBlLCBEZXN0aW5hdGlvblR5cGUsIFNvdXJjZVR5
cGUsIG51bWJlck9mQXNzaWdubWVudHM+PigKKyAgICAgICAgZnJvbSwgaml0LCBkZXN0aW5hdGlv
biwgc291cmNlKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgSnVtcFR5cGUsIHR5cGVuYW1lIERl
c3RpbmF0aW9uVHlwZSwgdHlwZW5hbWUgU291cmNlVHlwZT4KK2lubGluZSBzdGQ6OnVuaXF1ZV9w
dHI8U2xvd1BhdGhHZW5lcmF0b3I+IHNsb3dQYXRoTW92ZSgKKyAgICBKdW1wVHlwZSBmcm9tLCBT
cGVjdWxhdGl2ZUpJVCogaml0LCBTb3VyY2VUeXBlIHNvdXJjZSwgRGVzdGluYXRpb25UeXBlIGRl
c3RpbmF0aW9uKQoreworICAgIFNvdXJjZVR5cGUgc291cmNlQXJyYXlbMV0gPSB7IHNvdXJjZSB9
OworICAgIERlc3RpbmF0aW9uVHlwZSBkZXN0aW5hdGlvbkFycmF5WzFdID0geyBkZXN0aW5hdGlv
biB9OworICAgIHJldHVybiBtYWtlVW5pcXVlPEFzc2lnbmluZ1Nsb3dQYXRoR2VuZXJhdG9yPEp1
bXBUeXBlLCBEZXN0aW5hdGlvblR5cGUsIFNvdXJjZVR5cGUsIDE+PigKKyAgICAgICAgZnJvbSwg
aml0LCBkZXN0aW5hdGlvbkFycmF5LCBzb3VyY2VBcnJheSk7Cit9CisKK3RlbXBsYXRlPHR5cGVu
YW1lIEp1bXBUeXBlLCB0eXBlbmFtZSBEZXN0aW5hdGlvblR5cGUsIHR5cGVuYW1lIFNvdXJjZVR5
cGU+CitpbmxpbmUgc3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiBzbG93UGF0aE1v
dmUoCisgICAgSnVtcFR5cGUgZnJvbSwgU3BlY3VsYXRpdmVKSVQqIGppdCwgU291cmNlVHlwZSBz
b3VyY2UxLCBEZXN0aW5hdGlvblR5cGUgZGVzdGluYXRpb24xLCBTb3VyY2VUeXBlIHNvdXJjZTIs
IERlc3RpbmF0aW9uVHlwZSBkZXN0aW5hdGlvbjIpCit7CisgICAgU291cmNlVHlwZSBzb3VyY2VB
cnJheVsyXSA9IHsgc291cmNlMSwgc291cmNlMiB9OworICAgIERlc3RpbmF0aW9uVHlwZSBkZXN0
aW5hdGlvbkFycmF5WzJdID0geyBkZXN0aW5hdGlvbjEsIGRlc3RpbmF0aW9uMiB9OworICAgIHJl
dHVybiBtYWtlVW5pcXVlPEFzc2lnbmluZ1Nsb3dQYXRoR2VuZXJhdG9yPEp1bXBUeXBlLCBEZXN0
aW5hdGlvblR5cGUsIFNvdXJjZVR5cGUsIDI+PigKKyAgICAgICAgZnJvbSwgaml0LCBkZXN0aW5h
dGlvbkFycmF5LCBzb3VyY2VBcnJheSk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIEp1bXBUeXBl
LCB0eXBlbmFtZSBGdW5jdGlvblR5cGUsIHR5cGVuYW1lIFJlc3VsdFR5cGUsIHR5cGVuYW1lLi4u
IEFyZ3VtZW50cz4KLWNsYXNzIENhbGxSZXN1bHRBbmRBcmd1bWVudHNTbG93UGF0aElDR2VuZXJh
dG9yIGZpbmFsIDogcHVibGljIENhbGxTbG93UGF0aEdlbmVyYXRvcjxKdW1wVHlwZSwgRnVuY3Rp
b25UeXBlLCBSZXN1bHRUeXBlPiB7CitjbGFzcyBDYWxsUmVzdWx0QW5kQXJndW1lbnRzU2xvd1Bh
dGhJQ0dlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBDYWxsU2xvd1BhdGhHZW5lcmF0b3I8SnVtcFR5
cGUsIFJlc3VsdFR5cGU+IHsKIHB1YmxpYzoKICAgICBDYWxsUmVzdWx0QW5kQXJndW1lbnRzU2xv
d1BhdGhJQ0dlbmVyYXRvcigKICAgICAgICAgSnVtcFR5cGUgZnJvbSwgU3BlY3VsYXRpdmVKSVQq
IGppdCwgU3RydWN0dXJlU3R1YkluZm9JbmRleCBzdHViSW5mb0NvbnN0YW50LCBHUFJSZWcgc3R1
YkluZm9HUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyBzbG93UGF0aE9wZXJhdGlvbkFkZHJlc3Ms
IEZ1bmN0aW9uVHlwZSBmdW5jdGlvbiwKICAgICAgICAgU3BpbGxSZWdpc3RlcnNNb2RlIHNwaWxs
TW9kZSwgRXhjZXB0aW9uQ2hlY2tSZXF1aXJlbWVudCByZXF1aXJlbWVudCwgUmVzdWx0VHlwZSBy
ZXN1bHQsIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMpCi0gICAgICAgIDogQ2FsbFNsb3dQYXRoR2Vu
ZXJhdG9yPEp1bXBUeXBlLCBGdW5jdGlvblR5cGUsIFJlc3VsdFR5cGU+KGZyb20sIGppdCwgc3Bp
bGxNb2RlLCByZXF1aXJlbWVudCwgcmVzdWx0KQorICAgICAgICA6IENhbGxTbG93UGF0aEdlbmVy
YXRvcjxKdW1wVHlwZSwgUmVzdWx0VHlwZT4oZnJvbSwgaml0LCBzcGlsbE1vZGUsIHJlcXVpcmVt
ZW50LCByZXN1bHQpCiAgICAgICAgICwgbV9zdHViSW5mb0dQUihzdHViSW5mb0dQUikKICAgICAg
ICAgLCBtX3Nsb3dQYXRoT3BlcmF0aW9uQWRkcmVzcyhzbG93UGF0aE9wZXJhdGlvbkFkZHJlc3Mp
CiAgICAgICAgICwgbV9mdW5jdGlvbihmdW5jdGlvbikKQEAgLTI4Nyw4ICsyODUsMTAgQEAgcHJp
dmF0ZToKICAgICB7CiAgICAgICAgIHRoaXMtPnNldFVwKGppdCk7CiAgICAgICAgIGppdC0+bG9h
ZFN0cnVjdHVyZVN0dWJJbmZvKG1fc3R1YkluZm9Db25zdGFudCwgbV9zdHViSW5mb0dQUik7Ci0g
ICAgICAgIGppdC0+c2V0dXBBcmd1bWVudHM8RnVuY3Rpb25UeXBlPihzdGQ6OmdldDxBcmd1bWVu
dHNJbmRleD4obV9hcmd1bWVudHMpLi4uKTsKLSAgICAgICAgaml0LT5hcHBlbmRDYWxsKG1fc2xv
d1BhdGhPcGVyYXRpb25BZGRyZXNzKTsKKyAgICAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX3Nh
bWU8UmVzdWx0VHlwZSwgTm9SZXN1bHRUYWc+Ojp2YWx1ZSkKKyAgICAgICAgICAgIGppdC0+Y2Fs
bE9wZXJhdGlvbjxGdW5jdGlvblR5cGU+KG1fc2xvd1BhdGhPcGVyYXRpb25BZGRyZXNzLCBzdGQ6
OmdldDxBcmd1bWVudHNJbmRleD4obV9hcmd1bWVudHMpLi4uKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgaml0LT5jYWxsT3BlcmF0aW9uPEZ1bmN0aW9uVHlwZT4obV9zbG93UGF0aE9wZXJh
dGlvbkFkZHJlc3MsIGV4dHJhY3RSZXN1bHQodGhpcy0+bV9yZXN1bHQpLCBzdGQ6OmdldDxBcmd1
bWVudHNJbmRleD4obV9hcmd1bWVudHMpLi4uKTsKICAgICAgICAgdGhpcy0+dGVhckRvd24oaml0
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKaW5kZXggM2E4MTBhYTA3OGRmLi40MDA4NTc1ZDUwYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0yOTIsNyArMjky
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUZ1bmN0aW9uKCkKICAgICBtX2dyYXBo
Lm1fcGxhbi5zZXRGaW5hbGl6ZXIoV1RGTW92ZShmaW5hbGl6ZXIpKTsKIH0KIAotdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6ZXhjZXB0aW9uQ2hlY2soR1BSUmVnIGV4Y2VwdGlvblJlZykKK3ZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmV4Y2VwdGlvbkNoZWNrKCkKIHsKICAgICAvLyBJdCdzIGltcG9ydGFudCB0
aGF0IHdlIHVzZSBvcmlnaW4uZm9yRXhpdCBoZXJlLiBDb25zaWRlciBpZiB3ZSBob2lzdCBzdHJp
bmcKICAgICAvLyBhZGRpdGlvbiBvdXRzaWRlIGEgbG9vcCwgYW5kIHRoYXQgd2UgZXhpdCBhdCB0
aGUgcG9pbnQgb2YgdGhhdCBjb25jYXRlbmF0aW9uCkBAIC0zMTksMTEgKzMxOSwxMSBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpleGNlcHRpb25DaGVjayhHUFJSZWcgZXhjZXB0aW9uUmVnKQogICAg
IGJvb2wgd2lsbENhdGNoRXhjZXB0aW9uID0gbV9ncmFwaC53aWxsQ2F0Y2hFeGNlcHRpb25Jbk1h
Y2hpbmVGcmFtZShtX2N1cnJlbnROb2RlLT5vcmlnaW4uZm9yRXhpdCwgb3BDYXRjaE9yaWdpbiwg
ZXhjZXB0aW9uSGFuZGxlcik7CiAgICAgaWYgKHdpbGxDYXRjaEV4Y2VwdGlvbikgewogICAgICAg
ICB1bnNpZ25lZCBzdHJlYW1JbmRleCA9IG1fb3V0T2ZMaW5lU3RyZWFtSW5kZXggPyAqbV9vdXRP
ZkxpbmVTdHJlYW1JbmRleCA6IG1fc3RyZWFtLnNpemUoKTsKLSAgICAgICAgSnVtcCBoYWRFeGNl
cHRpb24gPSBlbWl0Tm9uUGF0Y2hhYmxlRXhjZXB0aW9uQ2hlY2sodm0oKSwgZXhjZXB0aW9uUmVn
KTsKLSAgICAgICAgLy8gV2UgYXNzdW1lIGhlcmUgdGhhdCB0aGlzIGlzIGNhbGxlZCBhZnRlciBj
YWxsT3BlcmF0aW9uKCkvYXBwZW5kQ2FsbCgpIGlzIGNhbGxlZC4KKyAgICAgICAgSnVtcCBoYWRF
eGNlcHRpb24gPSBlbWl0Tm9uUGF0Y2hhYmxlRXhjZXB0aW9uQ2hlY2sodm0oKSk7CisgICAgICAg
IC8vIFdlIGFzc3VtZSBoZXJlIHRoYXQgdGhpcyBpcyBjYWxsZWQgYWZ0ZXIgY2FsbE9wZWFydGlv
bigpL2FwcGVuZENhbGwoKSBpcyBjYWxsZWQuCiAgICAgICAgIGFwcGVuZEV4Y2VwdGlvbkhhbmRs
aW5nT1NSRXhpdCh0aGlzLCBFeGNlcHRpb25DaGVjaywgc3RyZWFtSW5kZXgsIG9wQ2F0Y2hPcmln
aW4sIGV4Y2VwdGlvbkhhbmRsZXIsIG1faml0Q29kZS0+Y29tbW9uLmNvZGVPcmlnaW5zLT5sYXN0
Q2FsbFNpdGUoKSwgaGFkRXhjZXB0aW9uKTsKICAgICB9IGVsc2UKLSAgICAgICAgZW1pdE5vblBh
dGNoYWJsZUV4Y2VwdGlvbkNoZWNrKHZtKCksIGV4Y2VwdGlvblJlZykubGlua1RodW5rKENvZGVM
b2NhdGlvbkxhYmVsKHZtKCkuZ2V0Q1RJU3R1YihDb21tb25KSVRUaHVua0lEOjpIYW5kbGVFeGNl
cHRpb24pLnJldGFnZ2VkQ29kZTxOb1B0clRhZz4oKSksIHRoaXMpOworICAgICAgICBlbWl0RXhj
ZXB0aW9uQ2hlY2sodm0oKSkubGlua1RodW5rKENvZGVMb2NhdGlvbkxhYmVsKHZtKCkuZ2V0Q1RJ
U3R1YihDb21tb25KSVRUaHVua0lEOjpIYW5kbGVFeGNlcHRpb24pLnJldGFnZ2VkQ29kZTxOb1B0
clRhZz4oKSksIHRoaXMpOwogfQogCiBDYWxsU2l0ZUluZGV4IFNwZWN1bGF0aXZlSklUOjpyZWNv
cmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29u
c3QgQ29kZU9yaWdpbiYgY2FsbFNpdGVDb2RlT3JpZ2luLCB1bnNpZ25lZCBldmVudFN0cmVhbUlu
ZGV4KQpAQCAtMTQ3OSw2ICsxNDc5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURl
bGV0ZUJ5SWQoTm9kZSogbm9kZSkKICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhp
cyk7CiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICBjYWxsT3BlcmF0
aW9uKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvbkRlbGV0ZUJ5SWRTdHJp
Y3RHZW5lcmljIDogb3BlcmF0aW9uRGVsZXRlQnlJZFNsb3BweUdlbmVyaWMsIHJlc3VsdEdQUiwg
TGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgYmFzZVJlZ3MsIG5v
ZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKS5yYXdCaXRzKCkpOworICAgIGV4Y2VwdGlvbkNoZWNr
KCk7CiAKICAgICB1bmJsZXNzZWRCb29sZWFuUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiB9CkBA
IC0xNTYxLDYgKzE1NjIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRGVsZXRlQnlW
YWwoTm9kZSogbm9kZSkKICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CiAg
ICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICBjYWxsT3BlcmF0aW9uKG5v
ZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvbkRlbGV0ZUJ5VmFsU3RyaWN0R2Vu
ZXJpYyA6IG9wZXJhdGlvbkRlbGV0ZUJ5VmFsU2xvcHB5R2VuZXJpYywgcmVzdWx0R1BSLCBMaW5r
YWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBiYXNlUmVncywga2V5UmVn
cyk7CisgICAgZXhjZXB0aW9uQ2hlY2soKTsKIAogICAgIHVuYmxlc3NlZEJvb2xlYW5SZXN1bHQo
cmVzdWx0R1BSLCBub2RlKTsKIH0KQEAgLTE3NTMsNyArMTc1NSw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVQdXNoV2l0aFNjb3BlKE5vZGUqIG5vZGUpCiAgICAgICAgIHNwZWN1bGF0
ZU9iamVjdChvYmplY3RFZGdlLCBvYmplY3RHUFIpOwogCiAgICAgICAgIGZsdXNoUmVnaXN0ZXJz
KCk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb25XaXRob3V0RXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9u
UHVzaFdpdGhTY29wZU9iamVjdCwgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxP
YmplY3QoKnRoaXMsIG5vZGUpLCBjdXJyZW50U2NvcGVHUFIsIG9iamVjdEdQUik7CisgICAgICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHVzaFdpdGhTY29wZU9iamVjdCwgcmVzdWx0R1BSLCBM
aW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBjdXJyZW50U2NvcGVH
UFIsIG9iamVjdEdQUik7CiAgICAgICAgIC8vIE5vIGV4Y2VwdGlvbiBjaGVjayBoZXJlIGFzIHdl
IGRpZCBub3QgaGF2ZSB0byBjYWxsIHRvT2JqZWN0KCkuCiAgICAgfSBlbHNlIHsKICAgICAgICAg
QVNTRVJUKG9iamVjdEVkZ2UudXNlS2luZCgpID09IFVudHlwZWRVc2UpOwpAQCAtMTc2Miw2ICsx
NzY0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1c2hXaXRoU2NvcGUoTm9kZSog
bm9kZSkKIAogICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvblB1c2hXaXRoU2NvcGUsIHJlc3VsdEdQUiwgTGlua2FibGVDb25zdGFudDo6Z2xv
YmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgY3VycmVudFNjb3BlR1BSLCBvYmplY3RSZWdzKTsKKyAg
ICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICB9CiAgICAgCiAgICAgY2VsbFJlc3VsdChyZXN1
bHRHUFIsIG5vZGUpOwpAQCAtMjIwOCw2ICsyMjExLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVN0cmluZ1N1YnN0cmluZyhOb2RlKiBub2RlKQogICAgICAgICBHUFJGbHVzaGVkQ2Fs
bFJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQu
Z3ByKCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU3RyaW5nU3Vic3RyaW5nV2l0
aEVuZCwgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5v
ZGUpLCBzdHJpbmdHUFIsIHN0YXJ0R1BSLCBlbmRHUFIpOworICAgICAgICBleGNlcHRpb25DaGVj
aygpOwogICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC0yMjIxLDYgKzIyMjUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlU3RyaW5nU3Vic3RyaW5nKE5vZGUqIG5vZGUpCiAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQg
cmVzdWx0KHRoaXMpOwogICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25TdHJpbmdTdWJzdHJpbmcsIHJlc3VsdEdQUiwgTGlua2Fi
bGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgc3RyaW5nR1BSLCBzdGFydEdQ
Uik7CisgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9k
ZSk7CiB9CiAKQEAgLTIyNjcsNiArMjI3Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVUb0xvd2VyQ2FzZShOb2RlKiBub2RlKQogICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKGxl
bmd0aEdQUik7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Ub0xvd2VyQ2FzZSwgbGVuZ3Ro
R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBzdHJpbmdH
UFIsIGluZGV4R1BSKTsKICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKCk7CisgICAgZXhjZXB0
aW9uQ2hlY2soKTsKICAgICBhdXRvIGRvbmUgPSBqdW1wKCk7CiAKICAgICBsb29wRG9uZS5saW5r
KHRoaXMpOwpAQCAtMjk3NSw2ICsyOTgxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVB1dEJ5VmFsKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihub2Rl
LT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbFN0cmljdEdl
bmVyaWMgOiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbFNsb3BweUdlbmVyaWMsIExpbmthYmxlQ29u
c3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGJhc2VSZWdzLCBwcm9wZXJ0eVJlZ3Ms
IHZhbHVlUmVncyk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgY2FsbE9wZXJh
dGlvbihub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0cmlj
dEdlbmVyaWMgOiBvcGVyYXRpb25QdXRCeVZhbFNsb3BweUdlbmVyaWMsIExpbmthYmxlQ29uc3Rh
bnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGJhc2VSZWdzLCBwcm9wZXJ0eVJlZ3MsIHZh
bHVlUmVncyk7CisgICAgICAgICAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgICAgICAgICBu
b1Jlc3VsdChub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzI4OSw2ICszMjk2LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUZyb21DaGFyQ29kZShOb2RlKiBub2RlKQogICAg
ICAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAg
SlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CiAgICAgICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uU3RyaW5nRnJvbUNoYXJDb2RlVW50eXBlZCwgcmVzdWx0UmVncywgTGlu
a2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgb3ByUmVncyk7CisgICAg
ICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIAogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJl
c3VsdFJlZ3MsIG5vZGUpOwogICAgICAgICByZXR1cm47CkBAIC0zNDMwLDcgKzM0MzgsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVUb0ludDMyKE5vZGUqIG5vZGUpCiAjZW5k
aWYKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVy
cyhyZXN1bHRHcHIpOwotICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb25XaXRob3V0RXhjZXB0
aW9uQ2hlY2sob3BlcmF0aW9uVG9JbnQzMiwgcmVzdWx0R3ByLCBmcHIpOworICAgICAgICAgICAg
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVG9JbnQzMiwgcmVzdWx0R3ByLCBmcHIpOwogICAg
ICAgICAgICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMoKTsKICAgICAgICAgICAgIH0KIApA
QCAtMzQ4OSw3ICszNDk3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlVG9J
bnQzMihOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgIHVuYm94RG91YmxlKHRhZ0dQUiwgcGF5
bG9hZEdQUiwgZnByKTsKIAogICAgICAgICAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJz
KHJlc3VsdEdwcik7Ci0gICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbldpdGhvdXRFeGNlcHRp
b25DaGVjayhvcGVyYXRpb25Ub0ludDMyLCByZXN1bHRHcHIsIGZwcik7CisgICAgICAgICAgICAg
ICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Ub0ludDMyLCByZXN1bHRHcHIsIGZwcik7CiAgICAg
ICAgICAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycygpOwogCiAgICAgICAgICAgICAgICAg
Y29udmVydGVkLmFwcGVuZChqdW1wKCkpOwpAQCAtNDQzNiw2ICs0NDQ0LDcgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN0cmluZyhOb2RlKiBub2Rl
LCBjb25zdCBTY29wZWQKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0
U3RyaW5nLCByZXN1bHRSZWdzLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMs
IG5vZGUpLCBhcmcxR1BSLCBhcmcyR1BSKTsKICAgICBpZiAoY2FuVXNlRmx1c2ggPT0gQ2FuVXNl
Rmx1c2g6Ok5vKQogICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKCk7CisgICAgZXhjZXB0
aW9uQ2hlY2soKTsKIAogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiB9CkBA
IC00NDYyLDYgKzQ0NzEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxG
b3JPYmplY3RXaXRoU3ltYm9sKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZAogICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uR2V0QnlWYWxPYmplY3RTeW1ib2wsIHJlc3VsdFJlZ3MsIExpbmthYmxl
Q29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGFyZzFHUFIsIGFyZzJHUFIpOwog
ICAgIGlmIChjYW5Vc2VGbHVzaCA9PSBDYW5Vc2VGbHVzaDo6Tm8pCiAgICAgICAgIHNpbGVudEZp
bGxBbGxSZWdpc3RlcnMoKTsKKyAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAganNWYWx1ZVJl
c3VsdChyZXN1bHRSZWdzLCBub2RlKTsKIH0KQEAgLTQ2MjIsNiArNDYzMiw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3RyaW5nKE5vZGUqIG5vZGUp
CiAgICAgICAgICAgICAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9wZXJhdGlvblB1
dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmlu
Z1N0cmljdCkgOgogICAgICAgICAgICAgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBv
cGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTdHJpbmdTbG9wcHkgOiBvcGVyYXRpb25QdXRCeVZh
bENlbGxTdHJpbmdTbG9wcHkpLAogICAgICAgICBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmpl
Y3QoKnRoaXMsIG5vZGUpLCBhcmcxR1BSLCBhcmcyR1BSLCBhcmczUmVncyk7CisgICAgZXhjZXB0
aW9uQ2hlY2soKTsKIAogICAgIG5vUmVzdWx0KG5vZGUpOwogfQpAQCAtNDY0NCw2ICs0NjU1LDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wo
Tm9kZSogbm9kZSkKICAgICAgICAgICAgID8gKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3Qg
PyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTeW1ib2xTdHJpY3QgOiBvcGVyYXRpb25QdXRC
eVZhbENlbGxTeW1ib2xTdHJpY3QpCiAgICAgICAgICAgICA6IChub2RlLT5vcCgpID09IFB1dEJ5
VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3ltYm9sU2xvcHB5IDogb3Bl
cmF0aW9uUHV0QnlWYWxDZWxsU3ltYm9sU2xvcHB5KSwKICAgICAgICAgTGlua2FibGVDb25zdGFu
dDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgYXJnMUdQUiwgYXJnMkdQUiwgYXJnM1JlZ3Mp
OworICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICBub1Jlc3VsdChub2RlKTsKIH0KQEAgLTQ2
NjksNiArNDY4MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRQcml2YXRlTmFt
ZShOb2RlKiBub2RlKQogICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICBhdXRvIG9w
ZXJhdGlvbiA9IG5vZGUtPnByaXZhdGVGaWVsZFB1dEtpbmQoKS5pc0RlZmluZSgpID8gb3BlcmF0
aW9uUHV0QnlWYWxEZWZpbmVQcml2YXRlRmllbGRHZW5lcmljIDogb3BlcmF0aW9uUHV0QnlWYWxT
ZXRQcml2YXRlRmllbGRHZW5lcmljOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwg
TGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgYmFzZVJlZ3MsIENl
bGxWYWx1ZShwcm9wZXJ0eUdQUiksIHZhbHVlUmVncyk7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNr
KCk7CiAKICAgICAgICAgbm9SZXN1bHQobm9kZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTQ4ODks
NiArNDkwMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQYXJzZUludChOb2RlKiBu
b2RlKQogICAgICAgICAgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhp
cyk7CiAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsK
ICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUGFyc2VJbnRHZW5lcmljLCByZXN1
bHRSZWdzLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCB2YWx1
ZVJlZ3MsIHJhZGl4R1BSKTsKKyAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAg
ICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CkBAIC00OTAyLDYgKzQ5MTYsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlUGFyc2VJbnQoTm9kZSogbm9kZSkKICAgICAgICAgICAgIEpTVmFsdWVSZWdzRmx1c2hl
ZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwogICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0
UmVncyA9IHJlc3VsdC5yZWdzKCk7CiAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
blBhcnNlSW50U3RyaW5nLCByZXN1bHRSZWdzLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmpl
Y3QoKnRoaXMsIG5vZGUpLCB2YWx1ZUdQUiwgcmFkaXhHUFIpOworICAgICAgICAgICAgZXhjZXB0
aW9uQ2hlY2soKTsKICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTQ5MTQsNiArNDkyOSw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQYXJzZUludChOb2RlKiBub2RlKQogICAgICAgICAg
ICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAgICAgICAg
ICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKICAgICAgICAgICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uUGFyc2VJbnRJbnQzMiwgcmVzdWx0UmVncywgTGlua2FibGVD
b25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgdmFsdWVHUFIsIHJhZGl4R1BSKTsK
KyAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0
KHJlc3VsdFJlZ3MsIG5vZGUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC00
OTI2LDYgKzQ5NDIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUGFyc2VJbnQoTm9k
ZSogbm9kZSkKICAgICAgICAgICAgIEpTVmFsdWVSZWdzRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0
KHRoaXMpOwogICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdz
KCk7CiAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblBhcnNlSW50RG91YmxlLCBy
ZXN1bHRSZWdzLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCB2
YWx1ZUZQUiwgcmFkaXhHUFIpOworICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICAg
ICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KQEAgLTQ5NDUsNiArNDk2Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVQYXJzZUludChOb2RlKiBub2RlKQogICAgICAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRD
YWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9
IHJlc3VsdC5yZWdzKCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUGFyc2VJbnRH
ZW5lcmljTm9SYWRpeCwgcmVzdWx0UmVncywgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0
KCp0aGlzLCBub2RlKSwgdmFsdWVSZWdzKTsKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAg
ICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTQ5NTgsNiArNDk3Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQ
YXJzZUludChOb2RlKiBub2RlKQogICAgICAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRDYWxsUmVzdWx0
IHJlc3VsdCh0aGlzKTsKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5y
ZWdzKCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUGFyc2VJbnRTdHJpbmdOb1Jh
ZGl4LCByZXN1bHRSZWdzLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5v
ZGUpLCB2YWx1ZUdQUik7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGpzVmFs
dWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC00
OTcwLDYgKzQ5ODksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUGFyc2VJbnQoTm9k
ZSogbm9kZSkKICAgICAgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhp
cyk7CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOwogICAg
ICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblBhcnNlSW50RG91YmxlTm9SYWRpeCwgcmVzdWx0
UmVncywgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgdmFsdWVG
UFIpOworICAgICAgICBleGNlcHRpb25DaGVjaygpOwogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJl
c3VsdFJlZ3MsIG5vZGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNTE1MCw2ICs1MTcw
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQml0Tm90KE5vZGUqIG5vZGUp
CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOwogCiAgICAg
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQml0Tm90SGVhcEJpZ0ludCwgcmVzdWx0UmVncywg
TGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgb3BlcmFuZEdQUik7
CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0
UmVncywgbm9kZSk7CiAKICAgICAgICAgcmV0dXJuOwpAQCAtNTE2NCw2ICs1MTg1LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQml0Tm90KE5vZGUqIG5vZGUpCiAgICAgSlNW
YWx1ZVJlZ3NGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAgSlNWYWx1ZVJlZ3Mg
cmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25W
YWx1ZUJpdE5vdCwgcmVzdWx0UmVncywgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0
aGlzLCBub2RlKSwgb3BlcmFuZFJlZ3MpOworICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICBq
c1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogfQpAQCAtNTIwMyw2ICs1MjI1LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdFVudHlwZWRPckFueUJpZ0ludEJpdE9wKE5vZGUqIG5v
ZGUpCiAgICAgICAgIEpTVmFsdWVSZWdzRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwog
ICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKICAgICAgICAg
Y2FsbE9wZXJhdGlvbihzbmlwcGV0U2xvd1BhdGhGdW5jdGlvbiwgcmVzdWx0UmVncywgTGlua2Fi
bGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgbGVmdFJlZ3MsIHJpZ2h0UmVn
cyk7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICAgICAganNWYWx1ZVJlc3VsdChy
ZXN1bHRSZWdzLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNTI2OSw2ICs1MjkyLDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdFVudHlwZWRPckFueUJpZ0ludEJpdE9wKE5vZGUqIG5v
ZGUpCiAgICAgY2FsbE9wZXJhdGlvbihzbmlwcGV0U2xvd1BhdGhGdW5jdGlvbiwgcmVzdWx0UmVn
cywgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgbGVmdFJlZ3Ms
IHJpZ2h0UmVncyk7CiAKICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKCk7CisgICAgZXhjZXB0
aW9uQ2hlY2soKTsKIAogICAgIGdlbi5lbmRKdW1wTGlzdCgpLmxpbmsodGhpcyk7CiAgICAganNW
YWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKQEAgLTUzNDAsNiArNTM2NCw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUJpdHdpc2VPcChOb2RlKiBub2RlKQogICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogCisgICAgICAg
IGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9k
ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01NDE4LDYgKzU0NDMsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjplbWl0VW50eXBlZE9yQmlnSW50UmlnaHRTaGlmdEJpdE9wKE5vZGUqIG5v
ZGUpCiAgICAgICAgIEpTVmFsdWVSZWdzRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwog
ICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKICAgICAgICAg
Y2FsbE9wZXJhdGlvbihzbmlwcGV0U2xvd1BhdGhGdW5jdGlvbiwgcmVzdWx0UmVncywgTGlua2Fi
bGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgbGVmdFJlZ3MsIHJpZ2h0UmVn
cyk7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICAgICAganNWYWx1ZVJlc3VsdChy
ZXN1bHRSZWdzLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNTQ4NSw2ICs1NTExLDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdFVudHlwZWRPckJpZ0ludFJpZ2h0U2hpZnRCaXRPcChO
b2RlKiBub2RlKQogICAgIGNhbGxPcGVyYXRpb24oc25pcHBldFNsb3dQYXRoRnVuY3Rpb24sIHJl
c3VsdFJlZ3MsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGxl
ZnRSZWdzLCByaWdodFJlZ3MpOwogCiAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycygpOworICAg
IGV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICBnZW4uZW5kSnVtcExpc3QoKS5saW5rKHRoaXMpOwog
ICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CkBAIC01NTExLDYgKzU1MzgsNyBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVMU2hpZnRPcChOb2RlKiBub2RlKQog
ICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKIAogICAgICAg
ICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkJpdExTaGlmdEhlYXBCaWdJbnQsIHJlc3VsdFJlZ3Ms
IExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGxlZnRHUFIsIHJp
Z2h0R1BSKTsKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAganNWYWx1ZVJlc3Vs
dChyZXN1bHRSZWdzLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTU1MzcsNiAr
NTU2NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUJpdFJTaGlmdChOb2Rl
KiBub2RlKQogICAgICAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlz
KTsKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CiAgICAg
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQml0UlNoaWZ0SGVhcEJpZ0ludCwgcmVzdWx0UmVn
cywgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgbGVmdEdQUiwg
cmlnaHRHUFIpOworICAgICAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgICAgIGpzVmFsdWVS
ZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTU2MjQsNiArNTY1
Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUFkZChOb2RlKiBub2RlKQog
ICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKICAgICAgICAg
Ly8gRklYTUU6IGNhbGwgYSBtb3JlIHNwZWNpYWxpemVkIGZ1bmN0aW9uCiAgICAgICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXIsIHJlc3VsdFJlZ3MsIExpbmthYmxl
Q29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGxlZnRSZWdzLCByaWdodFJlZ3Mp
OworICAgICAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVz
dWx0UmVncywgbm9kZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTU2NDQsNiArNTY3NCw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUFkZChOb2RlKiBub2RlKQogICAgICAgICBK
U1ZhbHVlUmVnc0ZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uQWRkSGVhcEJpZ0ludCwgcmVzdWx0UmVncywgTGlua2FibGVDb25zdGFudDo6Z2xv
YmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgbGVmdEdQUiwgcmlnaHRHUFIpOworICAgICAgICBleGNl
cHRpb25DaGVjaygpOwogCiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7
CiAgICAgICAgIHJldHVybjsKQEAgLTU2NTksNiArNTY5MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVWYWx1ZUFkZChOb2RlKiBub2RlKQogICAgICAgICBKU1ZhbHVlUmVnc0ZsdXNo
ZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVn
cyA9IHJlc3VsdC5yZWdzKCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVB
ZGROb3ROdW1iZXIsIHJlc3VsdFJlZ3MsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgq
dGhpcywgbm9kZSksIGxlZnRSZWdzLCByaWdodFJlZ3MpOworICAgICAgICBleGNlcHRpb25DaGVj
aygpOwogICAgIAogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogICAg
ICAgICByZXR1cm47CkBAIC01NzIxLDYgKzU3NTMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlVmFsdWVTdWIoTm9kZSogbm9kZSkKICAgICAgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2Fs
bFJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBy
ZXN1bHQucmVncygpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlU3ViLCBy
ZXN1bHRSZWdzLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBs
ZWZ0UmVncywgcmlnaHRSZWdzKTsKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKIAogICAgICAg
ICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogICAgICAgICByZXR1cm47CkBAIC01
NzQyLDYgKzU3NzUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVTdWIoTm9k
ZSogbm9kZSkKIAogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblN1YkhlYXBCaWdJbnQs
IHJlc3VsdFJlZ3MsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSks
IGxlZnRHUFIsIHJpZ2h0R1BSKTsKIAorICAgICAgICBleGNlcHRpb25DaGVjaygpOwogICAgICAg
ICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtNTg1MSw2ICs1ODg1LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1hdGhJ
QyhOb2RlKiBub2RlLCBKSVRCaW5hcnlNYXRoSUM8R2VuZXJhdG9yPiogbWF0aEkKICAgICAgICAg
ICAgICAgICBhZGRJQ0dlbmVyYXRpb25TdGF0ZS0+c2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlv
bihub25SZXBhdGNoaW5nRnVuY3Rpb24sIHJlc3VsdFJlZ3MsIExpbmthYmxlQ29uc3RhbnQ6Omds
b2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGlubmVyTGVmdFJlZ3MsIGlubmVyUmlnaHRSZWdzKTsK
IAogICAgICAgICAgICAgc2lsZW50RmlsbChzYXZlUGxhbnMpOworICAgICAgICAgICAgZXhjZXB0
aW9uQ2hlY2soKTsKICAgICAgICAgICAgIGp1bXAoKS5saW5rVG8oZG9uZSwgdGhpcyk7CiAKICAg
ICAgICAgICAgIGFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewpAQCAt
NTg3Nyw2ICs1OTEyLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1hdGhJQyhOb2Rl
KiBub2RlLCBKSVRCaW5hcnlNYXRoSUM8R2VuZXJhdG9yPiogbWF0aEkKIAogICAgICAgICBmbHVz
aFJlZ2lzdGVycygpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG5vblJlcGF0Y2hpbmdGdW5jdGlv
biwgcmVzdWx0UmVncywgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2Rl
KSwgbGVmdFJlZ3MsIHJpZ2h0UmVncyk7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAg
fQogCiAjaWYgRU5BQkxFKE1BVEhfSUNfU1RBVFMpCkBAIC02MTY4LDYgKzYyMDQsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhBYnMoTm9kZSogbm9kZSkKICAgICAgICAgZmx1
c2hSZWdpc3RlcnMoKTsKICAgICAgICAgRlBSUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25Bcml0aEFicywgcmVzdWx0LmZwcigpLCBMaW5rYWJsZUNv
bnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBvcDFSZWdzKTsKKyAgICAgICAgZXhj
ZXB0aW9uQ2hlY2soKTsKICAgICAgICAgZG91YmxlUmVzdWx0KHJlc3VsdC5mcHIoKSwgbm9kZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTYxOTEsMTAgKzYyMjgsMTEgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoQ2x6MzIoTm9kZSogbm9kZSkKICAgICBHUFJSZWcgcmVz
dWx0UmVnID0gcmVzdWx0LmdwcigpOwogICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25Bcml0aENsejMyLCByZXN1bHRSZWcsIExpbmthYmxlQ29uc3RhbnQ6
Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIG9wMVJlZ3MpOworICAgIGV4Y2VwdGlvbkNoZWNr
KCk7CiAgICAgc3RyaWN0SW50MzJSZXN1bHQocmVzdWx0UmVnLCBub2RlKTsKIH0KIAotdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoRG91YmxlVW5hcnlPcChOb2RlKiBub2RlLCBBcml0
aDo6VW5hcnlGdW5jdGlvbiBkb3VibGVGdW5jdGlvbiwgQXJpdGg6OlVuYXJ5T3BlcmF0aW9uIG9w
ZXJhdGlvbikKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aERvdWJsZVVuYXJ5T3Ao
Tm9kZSogbm9kZSwgZG91YmxlICgqZG91YmxlRnVuY3Rpb24pKGRvdWJsZSksIGRvdWJsZSAoKm9w
ZXJhdGlvbikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpCiB7CiAgICAgaWYgKG5v
ZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBEb3VibGVSZXBVc2UpIHsKICAgICAgICAgU3BlY3Vs
YXRlRG91YmxlT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwpAQCAtNjIwMyw3ICs2
MjQxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoRG91YmxlVW5hcnlPcChO
b2RlKiBub2RlLCBBcml0aDo6VW5hcnlGdW5jdGlvbgogICAgICAgICBmbHVzaFJlZ2lzdGVycygp
OwogCiAgICAgICAgIEZQUlJlc3VsdCByZXN1bHQodGhpcyk7Ci0gICAgICAgIGNhbGxPcGVyYXRp
b25XaXRob3V0RXhjZXB0aW9uQ2hlY2soZG91YmxlRnVuY3Rpb24sIHJlc3VsdC5mcHIoKSwgb3Ax
RlBSKTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihkb3VibGVGdW5jdGlvbiwgcmVzdWx0LmZwcigp
LCBvcDFGUFIpOwogCiAgICAgICAgIGRvdWJsZVJlc3VsdChyZXN1bHQuZnByKCksIG5vZGUpOwog
ICAgICAgICByZXR1cm47CkBAIC02MjE0LDYgKzYyNTIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQXJpdGhEb3VibGVVbmFyeU9wKE5vZGUqIG5vZGUsIEFyaXRoOjpVbmFyeUZ1bmN0
aW9uCiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICBGUFJSZXN1bHQgcmVzdWx0KHRoaXMpOwog
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCByZXN1bHQuZnByKCksIExpbmthYmxlQ29uc3Rh
bnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIG9wMVJlZ3MpOworICAgIGV4Y2VwdGlvbkNo
ZWNrKCk7CiAgICAgZG91YmxlUmVzdWx0KHJlc3VsdC5mcHIoKSwgbm9kZSk7CiB9CiAKQEAgLTYz
MzAsNiArNjM2OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbmNPckRlYyhOb2Rl
KiBub2RlKQogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOwogICAg
IGF1dG8gb3BlcmF0aW9uID0gbm9kZS0+b3AoKSA9PSBJbmMgPyBvcGVyYXRpb25JbmMgOiBvcGVy
YXRpb25EZWM7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIHJlc3VsdFJlZ3MsIExpbmth
YmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIG9wMVJlZ3MpOworICAgIGV4
Y2VwdGlvbkNoZWNrKCk7CiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKIH0K
IApAQCAtNjQ3Miw2ICs2NTEyLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1hdGhJ
QyhOb2RlKiBub2RlLCBKSVRVbmFyeU1hdGhJQzxHZW5lcmF0b3I+KiBtYXRoSUMKICAgICAgICAg
ICAgICAgICBpY0dlbmVyYXRpb25TdGF0ZS0+c2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbihu
b25SZXBhdGNoaW5nRnVuY3Rpb24sIHJlc3VsdFJlZ3MsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2Jh
bE9iamVjdCgqdGhpcywgbm9kZSksIGNoaWxkUmVncyk7CiAKICAgICAgICAgICAgIHNpbGVudEZp
bGwoc2F2ZVBsYW5zKTsKKyAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgICAg
ICBqdW1wKCkubGlua1RvKGRvbmUsIHRoaXMpOwogCiAgICAgICAgICAgICBhZGRMaW5rVGFzayhb
PV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKQEAgLTY0OTAsNiArNjUzMSw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNYXRoSUMoTm9kZSogbm9kZSwgSklUVW5hcnlNYXRoSUM8
R2VuZXJhdG9yPiogbWF0aElDCiAgICAgfSBlbHNlIHsKICAgICAgICAgZmx1c2hSZWdpc3RlcnMo
KTsKICAgICAgICAgY2FsbE9wZXJhdGlvbihub25SZXBhdGNoaW5nRnVuY3Rpb24sIHJlc3VsdFJl
Z3MsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGNoaWxkUmVn
cyk7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgfQogCiAjaWYgRU5BQkxFKE1BVEhf
SUNfU1RBVFMpCkBAIC02NTU1LDYgKzY1OTcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlVmFsdWVNdWwoTm9kZSogbm9kZSkKIAogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
bk11bEhlYXBCaWdJbnQsIHJlc3VsdFJlZ3MsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVj
dCgqdGhpcywgbm9kZSksIGxlZnRHUFIsIHJpZ2h0R1BSKTsKIAorICAgICAgICBleGNlcHRpb25D
aGVjaygpOwogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtNjU3MSw2ICs2NjE0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVZhbHVlTXVsKE5vZGUqIG5vZGUpCiAgICAgICAgIEpTVmFsdWVSZWdzRmx1c2hl
ZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdz
ID0gcmVzdWx0LnJlZ3MoKTsKICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11
bCwgcmVzdWx0UmVncywgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2Rl
KSwgbGVmdFJlZ3MsIHJpZ2h0UmVncyk7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAKICAg
ICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtNjc1Miw2ICs2Nzk2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlRGl2
KE5vZGUqIG5vZGUpCiAKICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25EaXZIZWFwQmln
SW50LCByZXN1bHRSZWdzLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5v
ZGUpLCBsZWZ0R1BSLCByaWdodEdQUik7CiAKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAg
ICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTY3NjgsNiArNjgxMyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVW
YWx1ZURpdihOb2RlKiBub2RlKQogICAgICAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRDYWxsUmVzdWx0
IHJlc3VsdCh0aGlzKTsKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5y
ZWdzKCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVEaXYsIHJlc3VsdFJl
Z3MsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGxlZnRSZWdz
LCByaWdodFJlZ3MpOworICAgICAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgICAgIGpzVmFs
dWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTY4NTMsNiAr
Njg5OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZURpdihOb2RlKiBub2Rl
KQogICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVEaXYsIHJlc3VsdFJlZ3MsIExpbmth
YmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGxlZnRSZWdzLCByaWdodFJl
Z3MpOwogCiAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycygpOworICAgIGV4Y2VwdGlvbkNoZWNr
KCk7CiAKICAgICBnZW4uZW5kSnVtcExpc3QoKS5saW5rKHRoaXMpOwogICAgIGpzVmFsdWVSZXN1
bHQocmVzdWx0UmVncywgbm9kZSk7CkBAIC03MDE1LDYgKzcwNjIsNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlQXJpdGhGUm91bmQoTm9kZSogbm9kZSkKICAgICBmbHVzaFJlZ2lzdGVy
cygpOwogICAgIEZQUlJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25Bcml0aEZSb3VuZCwgcmVzdWx0LmZwcigpLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxP
YmplY3QoKnRoaXMsIG5vZGUpLCBvcDFSZWdzKTsKKyAgICBleGNlcHRpb25DaGVjaygpOwogICAg
IGRvdWJsZVJlc3VsdChyZXN1bHQuZnByKCksIG5vZGUpOwogfQogCkBAIC03MDQwLDYgKzcwODgs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVNb2QoTm9kZSogbm9kZSkKIAog
ICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk1vZEhlYXBCaWdJbnQsIHJlc3VsdFJlZ3Ms
IExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGxlZnRHUFIsIHJp
Z2h0R1BSKTsKIAorICAgICAgICBleGNlcHRpb25DaGVjaygpOwogICAgICAgICBqc1ZhbHVlUmVz
dWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNzA1NSw2
ICs3MTA0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlTW9kKE5vZGUqIG5v
ZGUpCiAgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAg
SlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CiAgICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25WYWx1ZU1vZCwgcmVzdWx0UmVncywgTGlua2FibGVDb25zdGFudDo6Z2xvYmFs
T2JqZWN0KCp0aGlzLCBub2RlKSwgb3AxUmVncywgb3AyUmVncyk7CisgICAgZXhjZXB0aW9uQ2hl
Y2soKTsKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogfQogCkBAIC03MzIz
LDcgKzczNzMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNb2QoTm9kZSog
bm9kZSkKICAgICAgICAgCiAgICAgICAgIEZQUlJlc3VsdCByZXN1bHQodGhpcyk7CiAKLSAgICAg
ICAgY2FsbE9wZXJhdGlvbldpdGhvdXRFeGNlcHRpb25DaGVjayhNYXRoOjpmbW9kRG91YmxlLCBy
ZXN1bHQuZnByKCksIG9wMUZQUiwgb3AyRlBSKTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihNYXRo
OjpmbW9kRG91YmxlLCByZXN1bHQuZnByKCksIG9wMUZQUiwgb3AyRlBSKTsKICAgICAgICAgCiAg
ICAgICAgIGRvdWJsZVJlc3VsdChyZXN1bHQuZnByKCksIG5vZGUpOwogICAgICAgICByZXR1cm47
CkBAIC03NDE3LDE0ICs3NDY3LDE0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0
aFJvdW5kaW5nKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBGUFJSZXN1bHQgcm91bmRlZFJlc3Vs
dEFzRG91YmxlKHRoaXMpOwogICAgICAgICAgICAgRlBSUmVnIHJlc3VsdEZQUiA9IHJvdW5kZWRS
ZXN1bHRBc0RvdWJsZS5mcHIoKTsKICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEFyaXRo
Um91bmQpCi0gICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbldpdGhvdXRFeGNlcHRpb25DaGVj
ayhNYXRoOjpyb3VuZERvdWJsZSwgcmVzdWx0RlBSLCB2YWx1ZUZQUik7CisgICAgICAgICAgICAg
ICAgY2FsbE9wZXJhdGlvbihNYXRoOjpyb3VuZERvdWJsZSwgcmVzdWx0RlBSLCB2YWx1ZUZQUik7
CiAgICAgICAgICAgICBlbHNlIGlmIChub2RlLT5vcCgpID09IEFyaXRoRmxvb3IpCi0gICAgICAg
ICAgICAgICAgY2FsbE9wZXJhdGlvbldpdGhvdXRFeGNlcHRpb25DaGVjayhNYXRoOjpmbG9vckRv
dWJsZSwgcmVzdWx0RlBSLCB2YWx1ZUZQUik7CisgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlv
bihNYXRoOjpmbG9vckRvdWJsZSwgcmVzdWx0RlBSLCB2YWx1ZUZQUik7CiAgICAgICAgICAgICBl
bHNlIGlmIChub2RlLT5vcCgpID09IEFyaXRoQ2VpbCkKLSAgICAgICAgICAgICAgICBjYWxsT3Bl
cmF0aW9uV2l0aG91dEV4Y2VwdGlvbkNoZWNrKE1hdGg6OmNlaWxEb3VibGUsIHJlc3VsdEZQUiwg
dmFsdWVGUFIpOworICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24oTWF0aDo6Y2VpbERvdWJs
ZSwgcmVzdWx0RlBSLCB2YWx1ZUZQUik7CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
ICAgICBBU1NFUlQobm9kZS0+b3AoKSA9PSBBcml0aFRydW5jKTsKLSAgICAgICAgICAgICAgICBj
YWxsT3BlcmF0aW9uV2l0aG91dEV4Y2VwdGlvbkNoZWNrKE1hdGg6OnRydW5jRG91YmxlLCByZXN1
bHRGUFIsIHZhbHVlRlBSKTsKKyAgICAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKE1hdGg6OnRy
dW5jRG91YmxlLCByZXN1bHRGUFIsIHZhbHVlRlBSKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHNldFJlc3VsdChyZXN1bHRGUFIpOwogICAgICAgICB9CkBAIC03NDUxLDYgKzc1MDEsNyBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhSb3VuZGluZyhOb2RlKiBub2RlKQog
ICAgICAgICBvcGVyYXRpb24gPSBvcGVyYXRpb25Bcml0aFRydW5jOwogICAgIH0KICAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvbiwgcmVzdWx0UmVncywgTGlua2FibGVDb25zdGFudDo6Z2xvYmFs
T2JqZWN0KCp0aGlzLCBub2RlKSwgYXJndW1lbnRSZWdzKTsKKyAgICBleGNlcHRpb25DaGVjaygp
OwogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiB9CiAKQEAgLTc0NjgsNyAr
NzUxOSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFNxcnQoTm9kZSogbm9k
ZSkKICAgICAgICAgaWYgKCFzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgfHwgIU9wdGlvbnM6
OnVzZUFyY2hpdGVjdHVyZVNwZWNpZmljT3B0aW1pemF0aW9ucygpKSB7CiAgICAgICAgICAgICBm
bHVzaFJlZ2lzdGVycygpOwogICAgICAgICAgICAgRlBSUmVzdWx0IHJlc3VsdCh0aGlzKTsKLSAg
ICAgICAgICAgIGNhbGxPcGVyYXRpb25XaXRob3V0RXhjZXB0aW9uQ2hlY2soTWF0aDo6c3FydERv
dWJsZSwgcmVzdWx0LmZwcigpLCBvcDFGUFIpOworICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihN
YXRoOjpzcXJ0RG91YmxlLCByZXN1bHQuZnByKCksIG9wMUZQUik7CiAgICAgICAgICAgICBkb3Vi
bGVSZXN1bHQocmVzdWx0LmZwcigpLCBub2RlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgIEZQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgb3AxKTsKQEAgLTc0ODMsNiArNzUzNCw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFNxcnQoTm9kZSogbm9kZSkKICAgICBm
bHVzaFJlZ2lzdGVycygpOwogICAgIEZQUlJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25Bcml0aFNxcnQsIHJlc3VsdC5mcHIoKSwgTGlua2FibGVDb25zdGFu
dDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgb3AxUmVncyk7CisgICAgZXhjZXB0aW9uQ2hl
Y2soKTsKICAgICBkb3VibGVSZXN1bHQocmVzdWx0LmZwcigpLCBub2RlKTsKIH0KIApAQCAtNzYw
NCw3ICs3NjU2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTWluTWF4KE5v
ZGUqIG5vZGUpCiAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgICAgIEZQUlJlc3VsdCBy
ZXN1bHQodGhpcyk7CiAgICAgICAgIEZQUlJlZyByZXN1bHRGUFIgPSByZXN1bHQuZnByKCk7Ci0g
ICAgICAgIGNhbGxPcGVyYXRpb25XaXRob3V0RXhjZXB0aW9uQ2hlY2sobm9kZS0+b3AoKSA9PSBB
cml0aE1pbiA/IG9wZXJhdGlvbkFyaXRoTWluTXVsdGlwbGVEb3VibGUgOiBvcGVyYXRpb25Bcml0
aE1heE11bHRpcGxlRG91YmxlLCByZXN1bHRGUFIsIGJ1ZmZlckdQUiwgVHJ1c3RlZEltbTMyKG5v
ZGUtPm51bUNoaWxkcmVuKCkpKTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihub2RlLT5vcCgpID09
IEFyaXRoTWluID8gb3BlcmF0aW9uQXJpdGhNaW5NdWx0aXBsZURvdWJsZSA6IG9wZXJhdGlvbkFy
aXRoTWF4TXVsdGlwbGVEb3VibGUsIHJlc3VsdEZQUiwgYnVmZmVyR1BSLCBUcnVzdGVkSW1tMzIo
bm9kZS0+bnVtQ2hpbGRyZW4oKSkpOwogICAgICAgICBkb3VibGVSZXN1bHQocmVzdWx0RlBSLCBu
b2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNzY2MCw2ICs3NzEyLDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlUG93KE5vZGUqIG5vZGUpCiAKICAgICAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25Qb3dIZWFwQmlnSW50LCByZXN1bHRSZWdzLCBMaW5rYWJsZUNv
bnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBsZWZ0R1BSLCByaWdodEdQUik7CiAK
KyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRS
ZWdzLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTc2NzcsNiArNzczMCw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZVBvdyhOb2RlKiBub2RlKQogICAgIEpT
VmFsdWVSZWdzRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwogICAgIEpTVmFsdWVSZWdz
IHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOwogICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
VmFsdWVQb3csIHJlc3VsdFJlZ3MsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhp
cywgbm9kZSksIGxlZnRSZWdzLCByaWdodFJlZ3MpOworICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAK
ICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogfQpAQCAtNzcwNSw3ICs3NzU5
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoUG93KE5vZGUqIG5vZGUpCiAK
ICAgICAgICAgSnVtcCBza2lwRmFsbGJhY2sgPSBjb21waWxlQXJpdGhQb3dJbnRlZ2VyRmFzdFBh
dGgoKnRoaXMsIHhPcGVyYW5kQ29weUZwciwgY291bnRlckdwciwgcmVzdWx0RnByKTsKICAgICAg
ICAgY29udmVydEludDMyVG9Eb3VibGUoeU9wZXJhbmRHcHIsIHlPcGVyYW5kZnByLmZwcigpKTsK
LSAgICAgICAgY2FsbE9wZXJhdGlvbldpdGhvdXRFeGNlcHRpb25DaGVjayhvcGVyYXRpb25NYXRo
UG93LCByZXN1bHRGcHIsIHhPcGVyYW5kZnByLCB5T3BlcmFuZGZwci5mcHIoKSk7CisgICAgICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTWF0aFBvdywgcmVzdWx0RnByLCB4T3BlcmFuZGZwciwg
eU9wZXJhbmRmcHIuZnByKCkpOwogCiAgICAgICAgIHNraXBGYWxsYmFjay5saW5rKHRoaXMpOwog
ICAgICAgICBkb3VibGVSZXN1bHQocmVzdWx0RnByLCBub2RlKTsKQEAgLTc4MDAsNyArNzg1NCw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFBvdyhOb2RlKiBub2RlKQogICAg
IEp1bXAgc2tpcEZhbGxiYWNrID0gY29tcGlsZUFyaXRoUG93SW50ZWdlckZhc3RQYXRoKCp0aGlz
LCB4T3BlcmFuZENvcHlGcHIsIHlPcGVyYW5kSW50ZWdlci5ncHIoKSwgcmVzdWx0RnByKTsKICAg
ICBmYWlsZWRFeHBvbmVudENvbnZlcnNpb25Ub0ludGVnZXIubGluayh0aGlzKTsKIAotICAgIGNh
bGxPcGVyYXRpb25XaXRob3V0RXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uTWF0aFBvdywgcmVzdWx0
RnByLCB4T3BlcmFuZGZwciwgeU9wZXJhbmRmcHIpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uTWF0aFBvdywgcmVzdWx0RnByLCB4T3BlcmFuZGZwciwgeU9wZXJhbmRmcHIpOwogICAgIHNr
aXBGYWxsYmFjay5saW5rKHRoaXMpOwogICAgIGRvdWJsZVJlc3VsdChyZXN1bHRGcHIsIG5vZGUp
OwogfQpAQCAtODU2Niw2ICs4NjIwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0
cmluZ0NvbXBhcmUoTm9kZSogbm9kZSwgUmVsYXRpb25hbENvbmRpdGlvbiBjb25kaXQKIAogICAg
IGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgY2FsbE9wZXJhdGlvbihjb21wYXJlRnVuY3Rpb24sIHJl
c3VsdEdQUiwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgbGVm
dEdQUiwgcmlnaHRHUFIpOworICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICB1bmJsZXNzZWRC
b29sZWFuUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiB9CkBAIC04NjAzLDcgKzg2NTgsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nSWRlbnRDb21wYXJlKE5vZGUqIG5vZGUs
IFJlbGF0aW9uYWxDb25kaXRpb24gYwogICAgIHNwZWN1bGF0ZVN0cmluZ0lkZW50QW5kTG9hZFN0
b3JhZ2Uobm9kZS0+Y2hpbGQyKCksIHJpZ2h0R1BSLCByaWdodFRlbXBHUFIpOwogCiAgICAgZmx1
c2hSZWdpc3RlcnMoKTsKLSAgICBjYWxsT3BlcmF0aW9uV2l0aG91dEV4Y2VwdGlvbkNoZWNrKGNv
bXBhcmVGdW5jdGlvbiwgcmVzdWx0R1BSLCBsZWZ0VGVtcEdQUiwgcmlnaHRUZW1wR1BSKTsKKyAg
ICBjYWxsT3BlcmF0aW9uKGNvbXBhcmVGdW5jdGlvbiwgcmVzdWx0R1BSLCBsZWZ0VGVtcEdQUiwg
cmlnaHRUZW1wR1BSKTsKIAogICAgIHVuYmxlc3NlZEJvb2xlYW5SZXN1bHQocmVzdWx0R1BSLCBu
b2RlKTsKIH0KQEAgLTg2NjYsNiArODcyMSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVTYW1lVmFsdWUoTm9kZSogbm9kZSkKICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQo
dGhpcyk7CiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvblNhbWVWYWx1ZSwgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50Ojpn
bG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBhcmcxUmVncywgYXJnMlJlZ3MpOworICAgIGV4Y2Vw
dGlvbkNoZWNrKCk7CiAKICAgICB1bmJsZXNzZWRCb29sZWFuUmVzdWx0KHJlc3VsdEdQUiwgbm9k
ZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKIH0KQEAgLTkyMTgsNiArOTI3NCw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdGdW5jdGlvbihOb2RlKiBub2RlKQogICAg
ICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25OZXdBc3luY0dlbmVyYXRvckZ1bmN0aW9u
LCByZXN1bHRHUFIsIFRydXN0ZWRJbW1QdHIoJnZtKCkpLCBzY29wZUdQUiwgTGlua2FibGVDb25z
dGFudCgqdGhpcywgZXhlY3V0YWJsZSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvbk5ld0Z1bmN0aW9uLCByZXN1bHRHUFIsIFRydXN0ZWRJbW1QdHIo
JnZtKCkpLCBzY29wZUdQUiwgTGlua2FibGVDb25zdGFudCgqdGhpcywgZXhlY3V0YWJsZSkpOwor
ICAgICAgICBleGNlcHRpb25DaGVjaygpOwogICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwg
bm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC05Mjg1LDYgKzkzNDIsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0RnVuY3Rpb25OYW1lKE5vZGUqIG5vZGUpCiAKICAg
ICBmbHVzaFJlZ2lzdGVycygpOwogICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2V0RnVuY3Rp
b25OYW1lLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBmdW5j
R1BSLCBuYW1lVmFsdWVSZWdzKTsKKyAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgbm9SZXN1
bHQobm9kZSk7CiB9CkBAIC05MzAxLDYgKzkzNTksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlVmFyYXJnc0xlbmd0aChOb2RlKiBub2RlKQogICAgIHVubG9jayhHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUik7CiAKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblNpemVPZlZhcmFyZ3Ms
IEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3Qo
KnRoaXMsIG5vZGUpLCBhcmd1bWVudHNSZWdzLCBkYXRhLT5vZmZzZXQpOworICAgIGV4Y2VwdGlv
bkNoZWNrKCk7CiAKICAgICBsb2NrKEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKICAgICBHUFJU
ZW1wb3JhcnkgYXJnQ291bnRJbmNsdWRpbmdUaGlzKHRoaXMpOwpAQCAtOTMzNyw2ICs5Mzk2LDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKE5vZGUqIG5vZGUpCiAg
ICAgc3RvcmUzMihhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcGF5bG9hZEZvcihkYXRhLT5t
YWNoaW5lQ291bnQpKTsKIAogICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTG9hZFZhcmFyZ3Ms
IExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGRhdGEtPm1hY2hp
bmVTdGFydC5vZmZzZXQoKSwgYXJndW1lbnRzUmVncywgZGF0YS0+b2Zmc2V0LCBhcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcywgZGF0YS0+bWFuZGF0b3J5TWluaW11bSk7CisgICAgZXhjZXB0aW9u
Q2hlY2soKTsKIAogICAgIG5vUmVzdWx0KG5vZGUpOwogfQpAQCAtOTQzOSw2ICs5NDk5LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUFjdGl2YXRpb24oTm9kZSogbm9kZSkK
ICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25DcmVhdGVBY3RpdmF0aW9uRGlyZWN0LAog
ICAgICAgICAgICAgcmVzdWx0R1BSLCBUcnVzdGVkSW1tUHRyKCZ2bSgpKSwgc3RydWN0dXJlLCBz
Y29wZUdQUiwgTGlua2FibGVDb25zdGFudCgqdGhpcywgdGFibGUpLCBpbml0aWFsaXphdGlvblJl
Z3MpOwogI2VuZGlmCisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGNlbGxSZXN1
bHQocmVzdWx0R1BSLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTk3MTYsOSAr
OTc3Nyw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVTY29wZWRBcmd1bWVu
dHMoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGxvYWRMaW5rYWJsZUNvbnN0YW50KExpbmthYmxl
Q29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGRlc3RHUFIpOwogICAgICAgICB9
KTsKICAgICAKLSAgICBhcHBlbmRDYWxsKG9wZXJhdGlvbkNyZWF0ZVNjb3BlZEFyZ3VtZW50cyk7
Ci0gICAgb3BlcmF0aW9uRXhjZXB0aW9uQ2hlY2s8ZGVjbHR5cGUob3BlcmF0aW9uQ3JlYXRlU2Nv
cGVkQXJndW1lbnRzKT4oKTsKLSAgICBzZXR1cFJlc3VsdHMocmVzdWx0R1BSKTsKKyAgICBhcHBl
bmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbkNyZWF0ZVNjb3BlZEFyZ3VtZW50cywgcmVzdWx0R1BS
KTsKKyAgICBleGNlcHRpb25DaGVjaygpOwogICAgIAogICAgIGNlbGxSZXN1bHQocmVzdWx0R1BS
LCBub2RlKTsKIH0KQEAgLTk3ODUsNiArOTg0NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVDcmVhdGVSZXN0KE5vZGUqIG5vZGUpCiAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVz
dWx0KHRoaXMpOwogICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25DcmVhdGVSZXN0LCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3Rh
bnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGFyZ3VtZW50c1N0YXJ0R1BSLCBJbW0zMihu
b2RlLT5udW1iZXJPZkFyZ3VtZW50c1RvU2tpcCgpKSwgYXJyYXlMZW5ndGhHUFIpOworICAgIGV4
Y2VwdGlvbkNoZWNrKCk7CiAKICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiB9CkBA
IC05ODg3LDYgKzk5NDgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU3ByZWFkKE5v
ZGUqIG5vZGUpCiAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAg
ICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICAgICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25TcHJlYWRGYXN0QXJyYXksIHJlc3VsdEdQUiwgTGlua2FibGVDb25zdGFu
dDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgYXJndW1lbnQpOworICAgICAgICBleGNlcHRp
b25DaGVjaygpOwogICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiAjZW5kaWYg
Ly8gVVNFKEpTVkFMVUU2NCkKICAgICB9IGVsc2UgewpAQCAtOTg5NSw2ICs5OTU3LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNwcmVhZChOb2RlKiBub2RlKQogICAgICAgICBHUFJG
bHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIg
PSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU3ByZWFkR2Vu
ZXJpYywgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5v
ZGUpLCBhcmd1bWVudCk7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGNlbGxS
ZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKICAgICB9CiB9CkBAIC05OTY3LDYgKzEwMDMwLDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0FycmF5KE5vZGUqIG5vZGUpCiAgICAgICAg
IGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0
aGlzKTsKICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25OZXdFbXB0eUFycmF5LCByZXN1
bHQuZ3ByKCksIFRydXN0ZWRJbW1QdHIoJnZtKCkpLCBzdHJ1Y3R1cmUpOworICAgICAgICBleGNl
cHRpb25DaGVjaygpOwogICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMDAzOSw2ICsxMDEwMyw3IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVOZXdBcnJheShOb2RlKiBub2RlKQogICAgIGNhbGxPcGVyYXRpb24o
CiAgICAgICAgIG9wZXJhdGlvbk5ld0FycmF5LCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6
Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIG1fZ3JhcGgucmVnaXN0ZXJTdHJ1Y3R1cmUoZ2xv
YmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24o
bm9kZS0+aW5kZXhpbmdUeXBlKCkpKSwKICAgICAgICAgVHJ1c3RlZEltbVB0cihidWZmZXIpLCBz
aXplX3Qobm9kZS0+bnVtQ2hpbGRyZW4oKSkpOworICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAKICAg
ICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5
KTsKIH0KQEAgLTEwMTkxLDYgKzEwMjU2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZU5ld0FycmF5V2l0aFNwcmVhZChOb2RlKiBub2RlKQogICAgIEdQUlJlZyByZXN1bHRHUFIgPSBy
ZXN1bHQuZ3ByKCk7CiAKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNw
cmVhZFNsb3csIHJlc3VsdEdQUiwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlz
LCBub2RlKSwgVHJ1c3RlZEltbVB0cihidWZmZXIpLCBub2RlLT5udW1DaGlsZHJlbigpKTsKKyAg
ICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwog
fQpAQCAtMTA0NDQsNiArMTA1MTAsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJy
YXlTcGxpY2VFeHRyYWN0KE5vZGUqIG5vZGUpCiAgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJl
c3VsdCByZXN1bHQodGhpcyk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5y
ZWdzKCk7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25BcnJheVNwbGljZUV4dHJhY3QsIHJl
c3VsdFJlZ3MsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGJh
c2VHUFIsIHN0YXJ0R1BSLCBkZWxldGVDb3VudEdQUiwgVHJ1c3RlZEltbTMyKHJlZkNvdW50KSk7
CisgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5v
ZGUpOwogfQogCkBAIC0xMDU1OCw2ICsxMDYyNSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVBcnJheUluZGV4T2YoTm9kZSogbm9kZSkKICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsK
IAogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkFycmF5SW5kZXhPZlN0cmluZywgbGVu
Z3RoR1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBzdG9y
YWdlR1BSLCBzZWFyY2hFbGVtZW50R1BSLCBpbmRleEdQUik7CisgICAgICAgIGV4Y2VwdGlvbkNo
ZWNrKCk7CiAKICAgICAgICAgc3RyaWN0SW50MzJSZXN1bHQobGVuZ3RoR1BSLCBub2RlKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTA1NzQsNyArMTA2NDIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQXJyYXlJbmRleE9mKE5vZGUqIG5vZGUpCiAgICAgICAgIEFTU0VSVChub2RlLT5h
cnJheU1vZGUoKS50eXBlKCkgPT0gQXJyYXk6OkNvbnRpZ3VvdXMpOwogCiAgICAgICAgIGZsdXNo
UmVnaXN0ZXJzKCk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb25XaXRob3V0RXhjZXB0aW9uQ2hlY2so
b3BlcmF0aW9uQXJyYXlJbmRleE9mTm9uU3RyaW5nSWRlbnRpdHlWYWx1ZUNvbnRpZ3VvdXMsIGxl
bmd0aEdQUiwgc3RvcmFnZUdQUiwgdmFsdWVSZWdzLCBpbmRleEdQUik7CisgICAgICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uQXJyYXlJbmRleE9mTm9uU3RyaW5nSWRlbnRpdHlWYWx1ZUNvbnRp
Z3VvdXMsIGxlbmd0aEdQUiwgc3RvcmFnZUdQUiwgdmFsdWVSZWdzLCBpbmRleEdQUik7CiAgICAg
ICAgIHN0cmljdEludDMyUmVzdWx0KGxlbmd0aEdQUiwgbm9kZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC0xMDU5Nyw2ICsxMDY2NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVBcnJheUluZGV4T2YoTm9kZSogbm9kZSkKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBleGNl
cHRpb25DaGVjaygpOwogCiAgICAgICAgIHN0cmljdEludDMyUmVzdWx0KGxlbmd0aEdQUiwgbm9k
ZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTEwODgwLDYgKzEwOTQ5LDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUFycmF5UHVzaChOb2RlKiBub2RlKQogCiAgICAgICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQXJyYXlQdXNoTXVsdGlw
bGVTbG93LCByZXN1bHRSZWdzLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMs
IG5vZGUpLCBiYXNlR1BSLCBidWZmZXJHUFIsIFRydXN0ZWRJbW0zMihlbGVtZW50Q291bnQpKTsK
KyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKIAogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3Vs
dFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUywgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtMTEwMTYsNyArMTEwODYsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlSXNDb25zdHJ1Y3RvcihOb2RlKiBub2RlKQogICAgIEdQUkZsdXNoZWRDYWxs
UmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0Lmdwcigp
OwogCi0gICAgY2FsbE9wZXJhdGlvbldpdGhvdXRFeGNlcHRpb25DaGVjayhvcGVyYXRpb25Jc0Nv
bnN0cnVjdG9yLCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhp
cywgbm9kZSksIGlucHV0UmVncyk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Jc0NvbnN0
cnVjdG9yLCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywg
bm9kZSksIGlucHV0UmVncyk7CiAgICAgdW5ibGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHRHUFIs
IG5vZGUpOwogfQogCkBAIC0xMTE3Myw2ICsxMTI0Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZShOb2RlKiBub2RlKQogCiAgICAgICAgIEdQ
UkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAgY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFjaXR5
LCByZXN1bHQuZ3ByKCksIFRydXN0ZWRJbW1QdHIoJnZtKCkpLCBiYXNlR1BSKTsKKyAgICAgICAg
ZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgCiAgICAgICAgIHN0b3JhZ2VSZXN1bHQocmVzdWx0
LmdwcigpLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTEyMTYsNiArMTEyODcsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZShOb2Rl
KiBub2RlKQogCiAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAg
ICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3Jh
Z2UsIHJlc3VsdC5ncHIoKSwgVHJ1c3RlZEltbVB0cigmdm0oKSksIGJhc2VHUFIsIG5ld1NpemUg
LyBzaXplb2YoSlNWYWx1ZSkpOworICAgICAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgICAg
IHN0b3JhZ2VSZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwpAQCAt
MTEzNzUsNiArMTE0NDcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2FsbERPTShO
b2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBleGNlcHRpb25DaGVjaygp
OwogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiB9CiAKQEAgLTExMzkwLDE2
ICsxMTQ2MywyMiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2FsbERPTUdldHRlcihO
b2RlKiBub2RlKQogICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CiAKICAgICAg
ICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUpJVENhZ2UoKSkK
KyAgICAgICAgICAgIHNldHVwQXJndW1lbnRzPEpfSklUT3BlcmF0aW9uX0dKSVA+KExpbmthYmxl
Q29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIENlbGxWYWx1ZShiYXNlR1BSKSwg
VHJ1c3RlZEltbVB0cihpZGVudGlmaWVyVUlEKG5vZGUtPmNhbGxET01HZXR0ZXJEYXRhKCktPmlk
ZW50aWZpZXJOdW1iZXIpKSwgVHJ1c3RlZEltbVB0cihnZXR0ZXIudGFnZ2VkUHRyKCkpKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgc2V0dXBBcmd1bWVudHM8Sl9KSVRPcGVyYXRpb25fR0pJ
PihMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBDZWxsVmFsdWUo
YmFzZUdQUiksIFRydXN0ZWRJbW1QdHIoaWRlbnRpZmllclVJRChub2RlLT5jYWxsRE9NR2V0dGVy
RGF0YSgpLT5pZGVudGlmaWVyTnVtYmVyKSkpOwogCiAgICAgICAgIHN0b3JlUHRyKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCAmdm0oKS50b3BDYWxsRnJhbWUpOwogICAgICAgICBlbWl0U3Rv
cmVDb2RlT3JpZ2luKG1fY3VycmVudE5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CiAgICAgICAgIGlm
IChPcHRpb25zOjp1c2VKSVRDYWdlKCkpCi0gICAgICAgICAgICBjYWxsT3BlcmF0aW9uKHZtRW50
cnlDdXN0b21HZXR0ZXIsIHJlc3VsdFJlZ3MsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVj
dCgqdGhpcywgbm9kZSksIENlbGxWYWx1ZShiYXNlR1BSKSwgVHJ1c3RlZEltbVB0cihpZGVudGlm
aWVyVUlEKG5vZGUtPmNhbGxET01HZXR0ZXJEYXRhKCktPmlkZW50aWZpZXJOdW1iZXIpKSwgVHJ1
c3RlZEltbVB0cihnZXR0ZXIudGFnZ2VkUHRyKCkpKTsKKyAgICAgICAgICAgIGFwcGVuZENhbGwo
dm1FbnRyeUN1c3RvbUdldHRlcik7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgQ29kZVB0
cjxPcGVyYXRpb25QdHJUYWc+IGJ5cGFzc2VkRnVuY3Rpb24oV1RGOjp0YWdOYXRpdmVDb2RlUHRy
SW1wbDxPcGVyYXRpb25QdHJUYWc+KFdURjo6dW50YWdOYXRpdmVDb2RlUHRySW1wbDxDdXN0b21B
Y2Nlc3NvclB0clRhZz4oZ2V0dGVyLnRhZ2dlZFB0cigpKSkpOwotICAgICAgICAgICAgY2FsbE9w
ZXJhdGlvbjxKX0pJVE9wZXJhdGlvbl9HSkk+KGJ5cGFzc2VkRnVuY3Rpb24sIHJlc3VsdFJlZ3Ms
IExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIENlbGxWYWx1ZShi
YXNlR1BSKSwgVHJ1c3RlZEltbVB0cihpZGVudGlmaWVyVUlEKG5vZGUtPmNhbGxET01HZXR0ZXJE
YXRhKCktPmlkZW50aWZpZXJOdW1iZXIpKSk7CisgICAgICAgICAgICBhcHBlbmRPcGVyYXRpb25D
YWxsKGJ5cGFzc2VkRnVuY3Rpb24pOwogICAgICAgICB9CisgICAgICAgIHNldHVwUmVzdWx0cyhy
ZXN1bHRSZWdzKTsKIAorICAgICAgICBleGNlcHRpb25DaGVjaygpOwogICAgICAgICBqc1ZhbHVl
UmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTE1
MjAsMTIgKzExNTk5LDE5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDYWxsQ3VzdG9t
QWNjZXNzb3JHZXR0ZXIoTm9kZSogbm9kZSkKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0g
cmVzdWx0LnJlZ3MoKTsKIAogICAgIGlmIChPcHRpb25zOjp1c2VKSVRDYWdlKCkpCi0gICAgICAg
IGNhbGxPcGVyYXRpb24odm1FbnRyeUN1c3RvbUdldHRlciwgcmVzdWx0UmVncywgTGlua2FibGVD
b25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgYmFzZVJlZ3MsIFRydXN0ZWRJbW1Q
dHIodWlkKSwgVHJ1c3RlZEltbVB0cihnZXR0ZXIudGFnZ2VkUHRyKCkpKTsKKyAgICAgICAgc2V0
dXBBcmd1bWVudHM8R2V0VmFsdWVGdW5jV2l0aFB0cj4oTGlua2FibGVDb25zdGFudDo6Z2xvYmFs
T2JqZWN0KCp0aGlzLCBub2RlKSwgYmFzZVJlZ3MsIFRydXN0ZWRJbW1QdHIodWlkKSwgVHJ1c3Rl
ZEltbVB0cihnZXR0ZXIudGFnZ2VkUHRyKCkpKTsKKyAgICBlbHNlCisgICAgICAgIHNldHVwQXJn
dW1lbnRzPEdldFZhbHVlRnVuYz4oTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlz
LCBub2RlKSwgYmFzZVJlZ3MsIFRydXN0ZWRJbW1QdHIodWlkKSk7CisKKyAgICBpZiAoT3B0aW9u
czo6dXNlSklUQ2FnZSgpKQorICAgICAgICBhcHBlbmRDYWxsKHZtRW50cnlDdXN0b21HZXR0ZXIp
OwogICAgIGVsc2UgewogICAgICAgICBDb2RlUHRyPE9wZXJhdGlvblB0clRhZz4gYnlwYXNzZWRG
dW5jdGlvbihXVEY6OnRhZ05hdGl2ZUNvZGVQdHJJbXBsPE9wZXJhdGlvblB0clRhZz4oV1RGOjp1
bnRhZ05hdGl2ZUNvZGVQdHJJbXBsPEN1c3RvbUFjY2Vzc29yUHRyVGFnPihnZXR0ZXIudGFnZ2Vk
UHRyKCkpKSk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb248R2V0VmFsdWVGdW5jPihieXBhc3NlZEZ1
bmN0aW9uLCByZXN1bHRSZWdzLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMs
IG5vZGUpLCBiYXNlUmVncywgVHJ1c3RlZEltbVB0cih1aWQpKTsKKyAgICAgICAgYXBwZW5kT3Bl
cmF0aW9uQ2FsbChieXBhc3NlZEZ1bmN0aW9uKTsKICAgICB9CisgICAgc2V0dXBSZXN1bHRzKHJl
c3VsdFJlZ3MpOwogCisgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICBqc1ZhbHVlUmVzdWx0KHJl
c3VsdFJlZ3MsIG5vZGUpOwogfQogCkBAIC0xMTU0NiwxMiArMTE2MzIsMTcgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUNhbGxDdXN0b21BY2Nlc3NvclNldHRlcihOb2RlKiBub2RlKQog
ICAgIGVtaXRTdG9yZUNvZGVPcmlnaW4obV9jdXJyZW50Tm9kZS0+b3JpZ2luLnNlbWFudGljKTsK
IAogICAgIGlmIChPcHRpb25zOjp1c2VKSVRDYWdlKCkpCi0gICAgICAgIGNhbGxPcGVyYXRpb24o
dm1FbnRyeUN1c3RvbVNldHRlciwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlz
LCBub2RlKSwgYmFzZVJlZ3MsIHZhbHVlUmVncywgVHJ1c3RlZEltbVB0cih1aWQpLCBUcnVzdGVk
SW1tUHRyKHNldHRlci50YWdnZWRQdHIoKSkpOwotICAgIGVsc2UgeworICAgICAgICBzZXR1cEFy
Z3VtZW50czxQdXRWYWx1ZUZ1bmNXaXRoUHRyPihMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmpl
Y3QoKnRoaXMsIG5vZGUpLCBiYXNlUmVncywgdmFsdWVSZWdzLCBUcnVzdGVkSW1tUHRyKHVpZCks
IFRydXN0ZWRJbW1QdHIoc2V0dGVyLnRhZ2dlZFB0cigpKSk7CisgICAgZWxzZQogICAgICAgICBz
ZXR1cEFyZ3VtZW50czxQdXRWYWx1ZUZ1bmM+KExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVj
dCgqdGhpcywgbm9kZSksIGJhc2VSZWdzLCB2YWx1ZVJlZ3MsIFRydXN0ZWRJbW1QdHIodWlkKSk7
CisKKyAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKQorICAgICAgICBhcHBlbmRDYWxsKHZt
RW50cnlDdXN0b21TZXR0ZXIpOworICAgIGVsc2UgewogICAgICAgICBDb2RlUHRyPE9wZXJhdGlv
blB0clRhZz4gYnlwYXNzZWRGdW5jdGlvbihXVEY6OnRhZ05hdGl2ZUNvZGVQdHJJbXBsPE9wZXJh
dGlvblB0clRhZz4oV1RGOjp1bnRhZ05hdGl2ZUNvZGVQdHJJbXBsPEN1c3RvbUFjY2Vzc29yUHRy
VGFnPihzZXR0ZXIudGFnZ2VkUHRyKCkpKSk7CiAgICAgICAgIGFwcGVuZE9wZXJhdGlvbkNhbGwo
YnlwYXNzZWRGdW5jdGlvbik7CiAgICAgfQorICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgbm9S
ZXN1bHQobm9kZSk7CiB9CiAKQEAgLTExNTg2LDYgKzExNjc3LDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3RydWN0b3JPclN0cmluZ1ZhbHVl
T2YoTm9kZSoKICAgICAgICAgICAgIEFTU0VSVChub2RlLT5vcCgpID09IENhbGxTdHJpbmdDb25z
dHJ1Y3Rvcik7CiAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNhbGxTdHJpbmdD
b25zdHJ1Y3RvciwgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRo
aXMsIG5vZGUpLCBvcDFSZWdzKTsKICAgICAgICAgfQorICAgICAgICBleGNlcHRpb25DaGVjaygp
OwogICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC0xMTY1Myw2ICsxMTc0NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVUb1N0cmluZ09yQ2FsbFN0cmluZ0NvbnN0cnVjdG9yT3JTdHJpbmdWYWx1ZU9mKE5vZGUqCiAg
ICAgICAgICAgICBBU1NFUlQobm9kZS0+b3AoKSA9PSBDYWxsU3RyaW5nQ29uc3RydWN0b3IpOwog
ICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25DYWxsU3RyaW5nQ29uc3RydWN0b3Is
IHJlc3VsdEdQUiwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwg
b3AxUmVncyk7CiAgICAgICAgIH0KKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAg
aWYgKGRvbmUuaXNTZXQoKSkKICAgICAgICAgICAgIGRvbmUubGluayh0aGlzKTsKICAgICAgICAg
Y2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwpAQCAtMTE3MjYsNiArMTE4MTksNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9TdHJpbmdPckNhbGxTdHJpbmdDb25zdHJ1Y3Rvck9y
U3RyaW5nVmFsdWVPZihOb2RlKgogICAgICAgICAgICAgQVNTRVJUKG5vZGUtPm9wKCkgPT0gQ2Fs
bFN0cmluZ0NvbnN0cnVjdG9yKTsKICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
Q2FsbFN0cmluZ0NvbnN0cnVjdG9yT25DZWxsLCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6
Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIG9wMUdQUik7CiAgICAgICAgIH0KKyAgICAgICAg
ZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgaWYgKGRvbmUuaXNTZXQoKSkKICAgICAgICAgICAg
IGRvbmUubGluayh0aGlzKTsKICAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwpA
QCAtMTE3OTEsNiArMTE4ODUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTnVtYmVy
VG9TdHJpbmdXaXRoVmFsaWRSYWRpeENvbnN0YW50KE5vZGUqIG5vZGUsIGludAogICAgIGF1dG8g
Y2FsbFRvU3RyaW5nID0gWyZdIChhdXRvIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdEdQUiwgYXV0
byB2YWx1ZVJlZykgewogICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvbiwgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmpl
Y3QoKnRoaXMsIG5vZGUpLCB2YWx1ZVJlZywgVHJ1c3RlZEltbTMyKHJhZGl4KSk7CisgICAgICAg
IGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsK
ICAgICB9OwogCkBAIC0xMTgyMCw2ICsxMTkxNSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVOdW1iZXJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4Q29uc3RhbnQoTm9kZSogbm9kZSwgaW50
CiAKICAgICAgICAgICAgIHNsb3dDYXNlcy5saW5rKHRoaXMpOwogICAgICAgICAgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIHJlc3VsdEdQUiwg
TGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgdmFsdWVHUFIsIFRy
dXN0ZWRJbW0zMigxMCkpOworICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKIAogICAgICAg
ICAgICAgZG9uZUNhc2VzLmxpbmsodGhpcyk7CiAgICAgICAgICAgICBjZWxsUmVzdWx0KHJlc3Vs
dEdQUiwgbm9kZSk7CkBAIC0xMTg2NSw2ICsxMTk2MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVOdW1iZXJUb1N0cmluZ1dpdGhSYWRpeChOb2RlKiBub2RlKQogICAgIGF1dG8gY2Fs
bFRvU3RyaW5nID0gWyZdIChhdXRvIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdEdQUiwgYXV0byB2
YWx1ZVJlZywgR1BSUmVnIHJhZGl4R1BSKSB7CiAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAg
ICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3Rh
bnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIHZhbHVlUmVnLCByYWRpeEdQUik7CisgICAg
ICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBub2Rl
KTsKICAgICB9OwogCkBAIC0xMTkzNyw2ICsxMjAzNCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVOZXdTeW1ib2woTm9kZSogbm9kZSkKICAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1
bHQgcmVzdWx0KHRoaXMpOwogICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0Lmdwcigp
OwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk5ld1N5bWJvbCwgcmVzdWx0R1BSLCBU
cnVzdGVkSW1tUHRyKCZ2bSgpKSk7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAg
IGNlbGxSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTExOTUxLDYgKzEyMDQ5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld1N5bWJv
bChOb2RlKiBub2RlKQogICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7
CiAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uTmV3U3ltYm9sV2l0aFN0cmluZ0Rlc2NyaXB0aW9uLCByZXN1bHRH
UFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIHN0cmluZ0dQ
Uik7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGNlbGxSZXN1bHQocmVzdWx0
R1BSLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTExOTYxLDYgKzEyMDYwLDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld1N5bWJvbChOb2RlKiBub2RlKQogICAg
IEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICBHUFJSZWcgcmVzdWx0R1BS
ID0gcmVzdWx0LmdwcigpOwogICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTmV3U3ltYm9sV2l0
aERlc2NyaXB0aW9uLCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgq
dGhpcywgbm9kZSksIGlucHV0UmVncyk7CisgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICBjZWxs
UmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiB9CiAKQEAgLTEzMTE3LDcgKzEzMjE3LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN3aXRjaEltbShOb2RlKiBub2RlLCBTd2l0Y2hEYXRhKiBk
YXRhKQogCiAgICAgICAgIGNvbnN0IFVubGlua2VkU2ltcGxlSnVtcFRhYmxlJiB1bmxpbmtlZFRh
YmxlID0gbV9ncmFwaC51bmxpbmtlZFN3aXRjaEp1bXBUYWJsZShkYXRhLT5zd2l0Y2hUYWJsZUlu
ZGV4KTsKICAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMoc2NyYXRjaCk7Ci0gICAgICAg
IGNhbGxPcGVyYXRpb25XaXRob3V0RXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uRmluZFN3aXRjaElt
bVRhcmdldEZvckRvdWJsZSwgc2NyYXRjaCwgVHJ1c3RlZEltbVB0cigmdm0oKSksIHZhbHVlUmVn
cywgZGF0YS0+c3dpdGNoVGFibGVJbmRleCwgdW5saW5rZWRUYWJsZS5tX21pbik7CisgICAgICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uRmluZFN3aXRjaEltbVRhcmdldEZvckRvdWJsZSwgc2Ny
YXRjaCwgVHJ1c3RlZEltbVB0cigmdm0oKSksIHZhbHVlUmVncywgZGF0YS0+c3dpdGNoVGFibGVJ
bmRleCwgdW5saW5rZWRUYWJsZS5tX21pbik7CiAgICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3Rl
cnMoKTsKIAogICAgICAgICBmYXJKdW1wKHNjcmF0Y2gsIEpTU3dpdGNoUHRyVGFnKTsKQEAgLTEz
Mzc5LDYgKzEzNDc5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN3aXRjaFN0cmluZ09u
U3RyaW5nKE5vZGUqIG5vZGUsIFN3aXRjaERhdGEqIGRhdGEsIEdQUlIKICAgICBpZiAoIWNhbkRv
QmluYXJ5U3dpdGNoIHx8IHRvdGFsTGVuZ3RoID4gT3B0aW9uczo6bWF4aW11bUJpbmFyeVN0cmlu
Z1N3aXRjaFRvdGFsTGVuZ3RoKCkpIHsKICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAg
ICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Td2l0Y2hTdHJpbmcsIHN0cmluZywgTGlua2FibGVD
b25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgc3RhdGljX2Nhc3Q8c2l6ZV90Pihk
YXRhLT5zd2l0Y2hUYWJsZUluZGV4KSwgVHJ1c3RlZEltbVB0cigmdW5saW5rZWRUYWJsZSksIHN0
cmluZyk7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGZhckp1bXAoc3RyaW5n
LCBKU1N3aXRjaFB0clRhZyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMzQxNiw2ICsx
MzUxNyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRTd2l0Y2hTdHJpbmdPblN0cmluZyhO
b2RlKiBub2RlLCBTd2l0Y2hEYXRhKiBkYXRhLCBHUFJSCiAgICAgc2lsZW50U3BpbGxBbGxSZWdp
c3RlcnMoc3RyaW5nKTsKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblN3aXRjaFN0cmluZywg
c3RyaW5nLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBzdGF0
aWNfY2FzdDxzaXplX3Q+KGRhdGEtPnN3aXRjaFRhYmxlSW5kZXgpLCBUcnVzdGVkSW1tUHRyKCZ1
bmxpbmtlZFRhYmxlKSwgc3RyaW5nKTsKICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKCk7Cisg
ICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICBmYXJKdW1wKHN0cmluZywgSlNTd2l0Y2hQdHJUYWcp
OwogfQogCkBAIC0xMzU0NCw3ICsxMzY0Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVTdG9yZUJhcnJpZXIoTm9kZSogbm9kZSkKICAgICAgICAgb2suYXBwZW5kKGJhcnJpZXJCcmFu
Y2hXaXRob3V0RmVuY2UoYmFzZUdQUikpOwogCiAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMo
SW52YWxpZEdQUlJlZyk7Ci0gICAgY2FsbE9wZXJhdGlvbldpdGhvdXRFeGNlcHRpb25DaGVjayhv
cGVyYXRpb25Xcml0ZUJhcnJpZXJTbG93UGF0aCwgVHJ1c3RlZEltbVB0cigmdm0oKSksIGJhc2VH
UFIpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uV3JpdGVCYXJyaWVyU2xvd1BhdGgsIFRy
dXN0ZWRJbW1QdHIoJnZtKCkpLCBiYXNlR1BSKTsKICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJz
KCk7CiAKICAgICBvay5saW5rKHRoaXMpOwpAQCAtMTM1NjIsNiArMTM2NjQsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeUlkKE5vZGUqIG5vZGUpCiAKICAgICBm
bHVzaFJlZ2lzdGVycygpOwogICAgIGNhbGxPcGVyYXRpb24obm9kZS0+b3AoKSA9PSBQdXRHZXR0
ZXJCeUlkID8gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZCA6IG9wZXJhdGlvblB1dFNldHRlckJ5SWQs
IExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGJhc2VHUFIsIFRy
dXN0ZWRJbW1QdHIoaWRlbnRpZmllclVJRChub2RlLT5pZGVudGlmaWVyTnVtYmVyKCkpKSwgbm9k
ZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCksIGFjY2Vzc29yR1BSKTsKKyAgICBleGNlcHRpb25DaGVj
aygpOwogCiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CkBAIC0xMzU5Miw2ICsxMzY5NSw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRHZXR0ZXJTZXR0ZXJCeUlkKE5vZGUqIG5vZGUp
CiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdl
dHRlclNldHRlciwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwg
YmFzZUdQUiwgVHJ1c3RlZEltbVB0cihpZGVudGlmaWVyVUlEKG5vZGUtPmlkZW50aWZpZXJOdW1i
ZXIoKSkpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgZ2V0dGVyUmVncy5wYXlsb2FkR1BS
KCksIHNldHRlclJlZ3MucGF5bG9hZEdQUigpKTsKICNlbmRpZgorICAgIGV4Y2VwdGlvbkNoZWNr
KCk7CiAKICAgICBub1Jlc3VsdChub2RlKTsKIH0KQEAgLTEzNjA0LDYgKzEzNzA4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlc29sdmVTY29wZShOb2RlKiBub2RlKQogICAgIEdQ
UlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAg
ICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblJlc29sdmVTY29wZSwgcmVzdWx0R1BSLCBMaW5rYWJs
ZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBzY29wZUdQUiwgVHJ1c3RlZElt
bVB0cihpZGVudGlmaWVyVUlEKG5vZGUtPmlkZW50aWZpZXJOdW1iZXIoKSkpKTsKKyAgICBleGNl
cHRpb25DaGVjaygpOwogICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKIH0KIApAQCAt
MTM2MTUsNiArMTM3MjAsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVzb2x2ZVNj
b3BlRm9ySG9pc3RpbmdGdW5jRGVjbEluRXZhbChOb2RlKiBub2RlKQogICAgIEpTVmFsdWVSZWdz
Rmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJl
Z3MgPSByZXN1bHQucmVncygpOwogICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUmVzb2x2ZVNj
b3BlRm9ySG9pc3RpbmdGdW5jRGVjbEluRXZhbCwgcmVzdWx0UmVncywgTGlua2FibGVDb25zdGFu
dDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgc2NvcGVHUFIsIFRydXN0ZWRJbW1QdHIoaWRl
bnRpZmllclVJRChub2RlLT5pZGVudGlmaWVyTnVtYmVyKCkpKSk7CisgICAgZXhjZXB0aW9uQ2hl
Y2soKTsKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogfQogCkBAIC0xMzY0
Miw2ICsxMzc0OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXREeW5hbWljVmFy
KE5vZGUqIG5vZGUpCiAgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhp
cyk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CiAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25HZXREeW5hbWljVmFyLCByZXN1bHRSZWdzLCBMaW5rYWJsZUNv
bnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBzY29wZUdQUiwgVHJ1c3RlZEltbVB0
cihpZGVudGlmaWVyVUlEKG5vZGUtPmlkZW50aWZpZXJOdW1iZXIoKSkpLCBub2RlLT5nZXRQdXRJ
bmZvKCkpOworICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRS
ZWdzLCBub2RlKTsKIH0KIApAQCAtMTM2NTUsNiArMTM3NjIsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlUHV0RHluYW1pY1ZhcihOb2RlKiBub2RlKQogCiAgICAgZmx1c2hSZWdpc3Rl
cnMoKTsKICAgICBjYWxsT3BlcmF0aW9uKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9w
ZXJhdGlvblB1dER5bmFtaWNWYXJTdHJpY3QgOiBvcGVyYXRpb25QdXREeW5hbWljVmFyU2xvcHB5
LCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBzY29wZUdQUiwg
dmFsdWVSZWdzLCBUcnVzdGVkSW1tUHRyKGlkZW50aWZpZXJVSUQobm9kZS0+aWRlbnRpZmllck51
bWJlcigpKSksIG5vZGUtPmdldFB1dEluZm8oKSk7CisgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAg
ICBub1Jlc3VsdChub2RlKTsKIH0KIApAQCAtMTM3MjAsNiArMTM4MjgsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeVZhbChOb2RlKiBub2RlKQogCiAgICAgZmx1
c2hSZWdpc3RlcnMoKTsKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgTGlua2FibGVDb25z
dGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgYmFzZUdQUiwgc3Vic2NyaXB0UmVncywg
bm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCksIGFjY2Vzc29yR1BSKTsKKyAgICBleGNlcHRpb25D
aGVjaygpOwogCiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CkBAIC0xMzc3OCw2ICsxMzg4Nyw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBFeGVjKE5vZGUqIG5vZGUpCiAgICAg
ICAgICAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAg
ICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOwogICAgICAgICAg
ICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25SZWdFeHBFeGVjU3RyaW5nLCByZXN1bHRSZWdzLCBn
bG9iYWxPYmplY3RHUFIsIGJhc2VHUFIsIGFyZ3VtZW50R1BSKTsKKyAgICAgICAgICAgIGV4Y2Vw
dGlvbkNoZWNrKCk7CiAKICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9k
ZSk7CiAKQEAgLTEzNzk2LDYgKzEzOTA2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVJlZ0V4cEV4ZWMoTm9kZSogbm9kZSkKICAgICAgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJl
c3VsdCByZXN1bHQodGhpcyk7CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1
bHQucmVncygpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblJlZ0V4cEV4ZWMsIHJl
c3VsdFJlZ3MsIGdsb2JhbE9iamVjdEdQUiwgYmFzZUdQUiwgYXJndW1lbnRSZWdzKTsKKyAgICAg
ICAgZXhjZXB0aW9uQ2hlY2soKTsKIAogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3Ms
IG5vZGUpOwogCkBAIC0xMzgxMyw2ICsxMzkyNCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVSZWdFeHBFeGVjKE5vZGUqIG5vZGUpCiAgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJl
c3VsdCByZXN1bHQodGhpcyk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5y
ZWdzKCk7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25SZWdFeHBFeGVjR2VuZXJpYywgcmVz
dWx0UmVncywgZ2xvYmFsT2JqZWN0R1BSLCBiYXNlUmVncywgYXJndW1lbnRSZWdzKTsKKyAgICBl
eGNlcHRpb25DaGVjaygpOwogCiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsK
IApAQCAtMTM4MzcsNiArMTM5NDksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVn
RXhwVGVzdChOb2RlKiBub2RlKQogICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAg
ICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAgICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uUmVnRXhwVGVzdFN0cmluZywgcmVzdWx0LmdwcigpLCBnbG9i
YWxPYmplY3RHUFIsIGJhc2VHUFIsIGFyZ3VtZW50R1BSKTsKKyAgICAgICAgICAgIGV4Y2VwdGlv
bkNoZWNrKCk7CiAKICAgICAgICAgICAgIHVuYmxlc3NlZEJvb2xlYW5SZXN1bHQocmVzdWx0Lmdw
cigpLCBub2RlKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEzODUxLDYgKzEzOTY0LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3QoTm9kZSogbm9kZSkKICAgICAg
ICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0
KHRoaXMpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblJlZ0V4cFRlc3QsIHJlc3Vs
dC5ncHIoKSwgZ2xvYmFsT2JqZWN0R1BSLCBiYXNlR1BSLCBhcmd1bWVudFJlZ3MpOworICAgICAg
ICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgICAgIHVuYmxlc3NlZEJvb2xlYW5SZXN1bHQocmVz
dWx0LmdwcigpLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTM4NjQsNiArMTM5NzgsNyBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVnRXhwVGVzdChOb2RlKiBub2RlKQogICAg
IGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMp
OwogICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUmVnRXhwVGVzdEdlbmVyaWMsIHJlc3VsdC5n
cHIoKSwgZ2xvYmFsT2JqZWN0R1BSLCBiYXNlUmVncywgYXJndW1lbnRSZWdzKTsKKyAgICBleGNl
cHRpb25DaGVjaygpOwogCiAgICAgdW5ibGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHQuZ3ByKCks
IG5vZGUpOwogfQpAQCAtMTM4OTMsNiArMTQwMDgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlU3RyaW5nUmVwbGFjZShOb2RlKiBub2RlKQogICAgICAgICAgICAgZmx1c2hSZWdpc3Rl
cnMoKTsKICAgICAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAg
ICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJl
Z0V4cEVtcHR5U3RyLCByZXN1bHQuZ3ByKCksIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVj
dCgqdGhpcywgbm9kZSksIHN0cmluZ0dQUiwgcmVnRXhwR1BSKTsKKyAgICAgICAgICAgIGV4Y2Vw
dGlvbkNoZWNrKCk7CiAgICAgICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEzOTEwLDYgKzE0MDI2LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ1JlcGxhY2UoTm9kZSogbm9kZSkKICAg
ICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVz
dWx0KHRoaXMpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblN0cmluZ1Byb3RvRnVu
Y1JlcGxhY2VSZWdFeHBTdHJpbmcsIHJlc3VsdC5ncHIoKSwgTGlua2FibGVDb25zdGFudDo6Z2xv
YmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgc3RyaW5nR1BSLCByZWdFeHBHUFIsIHJlcGxhY2VHUFIp
OworICAgICAgICBleGNlcHRpb25DaGVjaygpOwogICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdC5n
cHIoKSwgbm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMzkyOSw2ICsxNDA0Niw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpbmdSZXBsYWNlKE5vZGUqIG5vZGUp
CiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQo
dGhpcyk7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TdHJpbmdQcm90b0Z1bmNSZXBsYWNl
R2VuZXJpYywgcmVzdWx0LmdwcigpLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRo
aXMsIG5vZGUpLCBzdHJpbmdSZWdzLCBzZWFyY2hSZWdzLCByZXBsYWNlUmVncyk7CisgICAgZXhj
ZXB0aW9uQ2hlY2soKTsKICAgICBjZWxsUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7CiB9CiAK
QEAgLTEzOTU2LDYgKzE0MDc0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmlu
Z1JlcGxhY2VTdHJpbmcoTm9kZSogbm9kZSkKICAgICAgICAgICAgICAgICAgICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25TdHJpbmdSZXBsYWNlU3RyaW5nRW1wdHlTdHJpbmdXaXRoVGFibGU4LCBy
ZXN1bHQuZ3ByKCksIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSks
IHN0cmluZ0dQUiwgc2VhcmNoR1BSLCBUcnVzdGVkSW1tUHRyKHRhYmxlUG9pbnRlcikpOwogICAg
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25TdHJpbmdSZXBsYWNlU3RyaW5nRW1wdHlTdHJpbmcsIHJlc3VsdC5ncHIoKSwgTGlua2Fi
bGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgc3RyaW5nR1BSLCBzZWFyY2hH
UFIpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgICAgICAgICAg
Y2VsbFJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOwogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIH0KQEAgLTEzOTc3LDYgKzE0MDk2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVN0cmluZ1JlcGxhY2VTdHJpbmcoTm9kZSogbm9kZSkKICAgICAgICAgICAgICAg
ICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TdHJpbmdSZXBsYWNlU3RyaW5nU3RyaW5nV2l0
aG91dFN1YnN0aXR1dGlvbldpdGhUYWJsZTgsIHJlc3VsdC5ncHIoKSwgTGlua2FibGVDb25zdGFu
dDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgc3RyaW5nR1BSLCBzZWFyY2hHUFIsIHJlcGxh
Y2VHUFIsIFRydXN0ZWRJbW1QdHIodGFibGVQb2ludGVyKSk7CiAgICAgICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblN0cmluZ1JlcGxh
Y2VTdHJpbmdTdHJpbmdXaXRob3V0U3Vic3RpdHV0aW9uLCByZXN1bHQuZ3ByKCksIExpbmthYmxl
Q29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIHN0cmluZ0dQUiwgc2VhcmNoR1BS
LCByZXBsYWNlR1BSKTsKKyAgICAgICAgICAgICAgICBleGNlcHRpb25DaGVjaygpOwogICAgICAg
ICAgICAgICAgIGNlbGxSZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC0xMzk5OCw2ICsxNDExOCw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpbmdSZXBsYWNlU3RyaW5nKE5vZGUqIG5vZGUpCiAgICAg
ICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblN0cmluZ1JlcGxhY2VTdHJpbmdTdHJpbmdX
aXRoVGFibGU4LCByZXN1bHQuZ3ByKCksIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgq
dGhpcywgbm9kZSksIHN0cmluZ0dQUiwgc2VhcmNoR1BSLCByZXBsYWNlR1BSLCBUcnVzdGVkSW1t
UHRyKHRhYmxlUG9pbnRlcikpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvblN0cmluZ1JlcGxhY2VTdHJpbmdTdHJpbmcsIHJlc3VsdC5ncHIoKSwgTGlu
a2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgc3RyaW5nR1BSLCBzZWFy
Y2hHUFIsIHJlcGxhY2VHUFIpOworICAgICAgICBleGNlcHRpb25DaGVjaygpOwogICAgICAgICBj
ZWxsUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0xNDAxNiw2ICsxNDEzNyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpbmdS
ZXBsYWNlU3RyaW5nKE5vZGUqIG5vZGUpCiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICBHUFJG
bHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25TdHJpbmdSZXBsYWNlU3RyaW5nR2VuZXJpYywgcmVzdWx0LmdwcigpLCBMaW5rYWJsZUNvbnN0
YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBzdHJpbmdHUFIsIHNlYXJjaEdQUiwgcmVw
bGFjZVJlZ3MpOworICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgY2VsbFJlc3VsdChyZXN1bHQu
Z3ByKCksIG5vZGUpOwogfQogCkBAIC0xNDAzNCw2ICsxNDE1Niw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVSZWdFeHBFeGVjTm9uR2xvYmFsT3JTdGlja3koTm9kZSogbm9kZSkKICAg
ICBjYWxsT3BlcmF0aW9uKAogICAgICAgICBvcGVyYXRpb25SZWdFeHBFeGVjTm9uR2xvYmFsT3JT
dGlja3ksIHJlc3VsdFJlZ3MsCiAgICAgICAgIGdsb2JhbE9iamVjdEdQUiwgTGlua2FibGVDb25z
dGFudCgqdGhpcywgbm9kZS0+Y2VsbE9wZXJhbmQoKS0+Y2VsbCgpKSwgYXJndW1lbnRHUFIpOwor
ICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5v
ZGUpOwogfQpAQCAtMTQwNTMsNiArMTQxNzYsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlUmVnRXhwTWF0Y2hGYXN0R2xvYmFsKE5vZGUqIG5vZGUpCiAgICAgY2FsbE9wZXJhdGlvbigK
ICAgICAgICAgb3BlcmF0aW9uUmVnRXhwTWF0Y2hGYXN0R2xvYmFsU3RyaW5nLCByZXN1bHRSZWdz
LAogICAgICAgICBnbG9iYWxPYmplY3RHUFIsIExpbmthYmxlQ29uc3RhbnQoKnRoaXMsIG5vZGUt
PmNlbGxPcGVyYW5kKCktPmNlbGwoKSksIGFyZ3VtZW50R1BSKTsKKyAgICBleGNlcHRpb25DaGVj
aygpOwogCiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKIH0KQEAgLTE0MDc0
LDYgKzE0MTk4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cE1hdGNoRmFz
dChOb2RlKiBub2RlKQogICAgIGNhbGxPcGVyYXRpb24oCiAgICAgICAgIG9wZXJhdGlvblJlZ0V4
cE1hdGNoRmFzdFN0cmluZywgcmVzdWx0UmVncywKICAgICAgICAgZ2xvYmFsT2JqZWN0R1BSLCBi
YXNlR1BSLCBhcmd1bWVudEdQUik7CisgICAgZXhjZXB0aW9uQ2hlY2soKTsKIAogICAgIGpzVmFs
dWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiB9CkBAIC0xNDIzNSw2ICsxNDM2MCw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEZWZpbmVEYXRhUHJvcGVydHkoTm9kZSogbm9kZSkK
IAogICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZywgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2Jq
ZWN0KCp0aGlzLCBub2RlKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIsIHZhbHVlUmVncywgYXR0cmli
dXRlc0dQUik7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOiB7CkBAIC0xNDI1MSw2ICsxNDM3Nyw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEZWZpbmVEYXRhUHJvcGVydHkoTm9kZSogbm9kZSkK
IAogICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZ0lkZW50LCBMaW5rYWJsZUNvbnN0YW50OjpnbG9i
YWxPYmplY3QoKnRoaXMsIG5vZGUpLCBiYXNlR1BSLCBpZGVudEdQUiwgdmFsdWVSZWdzLCBhdHRy
aWJ1dGVzR1BSKTsKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIGNhc2UgU3ltYm9sVXNlOiB7CkBAIC0xNDI2Miw2ICsxNDM4OSw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEZWZpbmVEYXRhUHJvcGVydHkoTm9kZSogbm9kZSkKIAog
ICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
bkRlZmluZURhdGFQcm9wZXJ0eVN5bWJvbCwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0
KCp0aGlzLCBub2RlKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIsIHZhbHVlUmVncywgYXR0cmlidXRl
c0dQUik7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICBjYXNlIFVudHlwZWRVc2U6IHsKQEAgLTE0MjcyLDYgKzE0NDAwLDcgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZURlZmluZURhdGFQcm9wZXJ0eShOb2RlKiBub2RlKQogCiAgICAg
ICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uRGVm
aW5lRGF0YVByb3BlcnR5LCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5v
ZGUpLCBiYXNlR1BSLCBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncywgYXR0cmlidXRlc0dQUik7Cisg
ICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBkZWZh
dWx0OgpAQCAtMTQzMTIsNiArMTQ0NDEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
RGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShOb2RlKiBub2RlKQogCiAgICAgICAgIGZsdXNoUmVnaXN0
ZXJzKCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9w
ZXJ0eVN0cmluZywgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwg
YmFzZUdQUiwgcHJvcGVydHlHUFIsIGdldHRlckdQUiwgc2V0dGVyR1BSLCBhdHRyaWJ1dGVzR1BS
KTsKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IGNhc2UgU3RyaW5nSWRlbnRVc2U6IHsKQEAgLTE0MzI4LDYgKzE0NDU4LDcgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZURlZmluZUFjY2Vzc29yUHJvcGVydHkoTm9kZSogbm9kZSkKIAog
ICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
bkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmdJZGVudCwgTGlua2FibGVDb25zdGFudDo6Z2xv
YmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgYmFzZUdQUiwgaWRlbnRHUFIsIGdldHRlckdQUiwgc2V0
dGVyR1BSLCBhdHRyaWJ1dGVzR1BSKTsKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgU3ltYm9sVXNlOiB7CkBAIC0xNDMzOSw2ICsxNDQ3
MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEZWZpbmVBY2Nlc3NvclByb3BlcnR5
KE5vZGUqIG5vZGUpCiAKICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3ltYm9sLCBMaW5rYWJsZUNv
bnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBiYXNlR1BSLCBwcm9wZXJ0eUdQUiwg
Z2V0dGVyR1BSLCBzZXR0ZXJHUFIsIGF0dHJpYnV0ZXNHUFIpOworICAgICAgICBleGNlcHRpb25D
aGVjaygpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBVbnR5cGVkVXNlOiB7CkBA
IC0xNDM0OSw2ICsxNDQ4MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEZWZpbmVB
Y2Nlc3NvclByb3BlcnR5KE5vZGUqIG5vZGUpCiAKICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsK
ICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5LCBM
aW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBiYXNlR1BSLCBwcm9w
ZXJ0eVJlZ3MsIGdldHRlckdQUiwgc2V0dGVyR1BSLCBhdHRyaWJ1dGVzR1BSKTsKKyAgICAgICAg
ZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGRlZmF1bHQ6CkBA
IC0xNDU0MCw2ICsxNDY3Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUaHJvdyhO
b2RlKiBub2RlKQogICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVlLmpzVmFsdWVSZWdz
KCk7CiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblRo
cm93REZHLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCB2YWx1
ZVJlZ3MpOworICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgYnJlYWtwb2ludCgpOwogICAgIG5v
UmVzdWx0KG5vZGUpOwogfQpAQCAtMTQ1NTEsNiArMTQ2ODUsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlVGhyb3dTdGF0aWNFcnJvcihOb2RlKiBub2RlKQogICAgIHNwZWN1bGF0ZVN0
cmluZyhub2RlLT5jaGlsZDEoKSwgbWVzc2FnZUdQUik7CiAgICAgZmx1c2hSZWdpc3RlcnMoKTsK
ICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblRocm93U3RhdGljRXJyb3IsIExpbmthYmxlQ29u
c3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIG1lc3NhZ2VHUFIsIG5vZGUtPmVycm9y
VHlwZSgpKTsKKyAgICBleGNlcHRpb25DaGVjaygpOwogICAgIGJyZWFrcG9pbnQoKTsKICAgICBu
b1Jlc3VsdChub2RlKTsKIH0KQEAgLTE0Njg4LDYgKzE0ODIzLDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUVudW1lcmF0b3JOZXh0VXBkYXRlUHJvcGVydHlOYW1lKE5vZGUqIG5vZGUp
CiAgICAgfQogCiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0
ZVByb3BlcnR5TmFtZSwgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3Qo
KnRoaXMsIG5vZGUpLCBpbmRleCwgbW9kZSwgZW51bWVyYXRvcik7CisgICAgZXhjZXB0aW9uQ2hl
Y2soKTsKIAogICAgIGRvbmVDYXNlcy5saW5rKHRoaXMpOwogICAgIGNlbGxSZXN1bHQocmVzdWx0
R1BSLCBub2RlKTsKQEAgLTE0NzMzLDYgKzE0ODY5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUVudW1lcmF0b3JIYXNQcm9wZXJ0eShOb2RlKiBub2RlLCBTbG93UGF0aEZ1bmN0aW9u
VHkKICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24oc2xvd1BhdGhGdW5jdGlvbiwgcmVzdWx0UmVn
cywgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgQ2VsbFZhbHVl
KGJhc2VSZWdzLnBheWxvYWRHUFIoKSksIHByb3BlcnR5TmFtZVJlZ3MsIGluZGV4R1BSLCBtb2Rl
R1BSKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihzbG93UGF0aEZ1
bmN0aW9uLCByZXN1bHRSZWdzLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMs
IG5vZGUpLCBiYXNlUmVncywgcHJvcGVydHlOYW1lUmVncywgaW5kZXhHUFIsIG1vZGVHUFIpOwor
ICAgICAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgICAgIGRvbmUubGluayh0aGlzKTsKIApA
QCAtMTQ4NDYsNiArMTQ5ODMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlJ
ZFdpdGhUaGlzKE5vZGUqIG5vZGUpCiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICBjYWxsT3Bl
cmF0aW9uKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5SWRXaXRo
VGhpc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpcywKICAgICAgICAgTGlua2FibGVD
b25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgYmFzZVJlZ3MsIHRoaXNSZWdzLCB2
YWx1ZVJlZ3MsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKS5yYXdCaXRzKCkpOworICAgIGV4
Y2VwdGlvbkNoZWNrKCk7CiAKICAgICBub1Jlc3VsdChub2RlKTsKIH0KQEAgLTE0OTg1LDYgKzE1
MTIzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFByb3BlcnR5RW51bWVyYXRv
cihOb2RlKiBub2RlKQogICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhzY3JhdGNoMUdQ
Uik7CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0UHJvcGVydHlFbnVtZXJhdG9y
Q2VsbCwgc2NyYXRjaDFHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywg
bm9kZSksIGJhc2VSZWdzLnBheWxvYWRHUFIoKSk7CiAgICAgICAgIHNpbGVudEZpbGxBbGxSZWdp
c3RlcnMoKTsKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKIAogICAgICAgICBkb25lQ2FzZXMu
bGluayh0aGlzKTsKICAgICAgICAgY2VsbFJlc3VsdChzY3JhdGNoMUdQUiwgbm9kZSk7CkBAIC0x
NDk5OCw2ICsxNTEzNyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRQcm9wZXJ0
eUVudW1lcmF0b3IoTm9kZSogbm9kZSkKICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQo
dGhpcyk7CiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvbkdldFByb3BlcnR5RW51bWVyYXRvciwgcmVzdWx0R1BSLCBMaW5rYWJs
ZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBiYXNlUmVncyk7CisgICAgZXhj
ZXB0aW9uQ2hlY2soKTsKICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiB9CiAKQEAg
LTE1MDg4LDYgKzE1MjI4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0ckNhdChO
b2RlKiBub2RlKQogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblN0ckNhdDMsIHJlc3Vs
dC5ncHIoKSwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgb3Ax
UmVncywgb3AyUmVncywgb3AzUmVncyk7CiAgICAgZWxzZQogICAgICAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvblN0ckNhdDIsIHJlc3VsdC5ncHIoKSwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFs
T2JqZWN0KCp0aGlzLCBub2RlKSwgb3AxUmVncywgb3AyUmVncyk7CisgICAgZXhjZXB0aW9uQ2hl
Y2soKTsKIAogICAgIGNlbGxSZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKIH0KQEAgLTE1MTI0
LDYgKzE1MjY1LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0FycmF5QnVmZmVy
KE5vZGUqIG5vZGUpCiAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwogCiAg
ICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25OZXdBcnJheUJ1ZmZlciwgcmVzdWx0LmdwcigpLCBU
cnVzdGVkSW1tUHRyKCZ2bSgpKSwgc3RydWN0dXJlLCBUcnVzdGVkSW1tUHRyKG5vZGUtPmNlbGxP
cGVyYW5kKCkpKTsKKyAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgY2VsbFJlc3VsdChyZXN1
bHQuZ3ByKCksIG5vZGUpOwogfQpAQCAtMTUxNTYsNiArMTUyOTgsNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlTmV3QXJyYXlXaXRoU2l6ZShOb2RlKiBub2RlKQogICAgIG1vdmUoVHJ1
c3RlZEltbVB0cihtX2dyYXBoLnJlZ2lzdGVyU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+YXJyYXlT
dHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aEFycmF5U3Rv
cmFnZSkpKSwgc3RydWN0dXJlR1BSKTsKICAgICBkb25lLmxpbmsodGhpcyk7CiAgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplLCByZXN1bHRHUFIsIExpbmthYmxlQ29u
c3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIHN0cnVjdHVyZUdQUiwgc2l6ZUdQUiwg
bnVsbHB0cik7CisgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQ
Uiwgbm9kZSk7CiB9CiAKQEAgLTE1MTkxLDYgKzE1MzM0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZU5ld0FycmF5V2l0aFNwZWNpZXMoTm9kZSogbm9kZSkKICAgICAgICAgR1BSUmVn
IHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25OZXdBcnJheVdpdGhTcGVjaWVzSW50MzIsIHJlc3VsdEdQUiwgTGlua2FibGVDb25zdGFudDo6
Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgc2l6ZUdQUiwgYXJyYXlHUFIsIG5vZGUtPmluZGV4
aW5nVHlwZSgpKTsKIAorICAgICAgICBleGNlcHRpb25DaGVjaygpOwogICAgICAgICBjZWxsUmVz
dWx0KHJlc3VsdEdQUiwgbm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNTIwNiw2
ICsxNTM1MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdBcnJheVdpdGhTcGVj
aWVzKE5vZGUqIG5vZGUpCiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAg
ICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNwZWNpZXMsIHJlc3VsdEdQUiwg
TGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgc2l6ZVJlZ3MsIGFy
cmF5R1BSLCBub2RlLT5pbmRleGluZ1R5cGUoKSk7CiAKKyAgICBleGNlcHRpb25DaGVjaygpOwog
ICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKIH0KIApAQCAtMTUyMzAsNiArMTUzNzUs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3VHlwZWRBcnJheShOb2RlKiBub2Rl
KQogICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogCiAgICAgICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uTmV3VHlwZWRBcnJheVdpdGhPbmVBcmd1bWVudEZvclR5cGUo
bm9kZS0+dHlwZWRBcnJheVR5cGUoKSksIHJlc3VsdEdQUiwgTGlua2FibGVDb25zdGFudDo6Z2xv
YmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgYXJndW1lbnRSZWdzKTsKKyAgICAgICAgZXhjZXB0aW9u
Q2hlY2soKTsKIAogICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiAgICAgICAg
IGJyZWFrOwpAQCAtMTUzMzUsNiArMTU0ODEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlT3duUHJvcGVydHlLZXlzVmFyaWFudChOb2RlKiBub2RlKQogICAgICAgICBHUFJGbHVzaGVk
Q2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1
bHQuZ3ByKCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uT3duUHJvcGVydHlLZXlz
VmFyaWFudE9iamVjdChub2RlLT5vcCgpKSwgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50Ojpn
bG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBvYmplY3RHUFIpOworICAgICAgICBleGNlcHRpb25D
aGVjaygpOwogCiAgICAgICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKICAgICAgICAg
YnJlYWs7CkBAIC0xNTM0OSw2ICsxNTQ5Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVPd25Qcm9wZXJ0eUtleXNWYXJpYW50KE5vZGUqIG5vZGUpCiAgICAgICAgIEdQUkZsdXNoZWRD
YWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3Vs
dC5ncHIoKTsKICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Pd25Qcm9wZXJ0eUtleXNW
YXJpYW50KG5vZGUtPm9wKCkpLCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9i
amVjdCgqdGhpcywgbm9kZSksIG9iamVjdFJlZ3MpOworICAgICAgICBleGNlcHRpb25DaGVjaygp
OwogCiAgICAgICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKICAgICAgICAgYnJlYWs7
CkBAIC0xNTM5MCw2ICsxNTUzOCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmpl
Y3RBc3NpZ24oTm9kZSogbm9kZSkKIAogICAgICAgICBnZW5lcmljQ2FzZXMubGluayh0aGlzKTsK
ICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25PYmplY3RBc3NpZ25PYmplY3QsIExpbmth
YmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIHRhcmdldEdQUiwgc291cmNl
R1BSKTsKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKIAogICAgICAgICBkb25lQ2FzZXMubGlu
ayh0aGlzKTsKICAgICAgICAgbm9SZXN1bHQobm9kZSk7CkBAIC0xNTQwMyw2ICsxNTU1Miw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RBc3NpZ24oTm9kZSogbm9kZSkKIAog
ICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
bk9iamVjdEFzc2lnblVudHlwZWQsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhp
cywgbm9kZSksIHRhcmdldEdQUiwgc291cmNlUmVncyk7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNr
KCk7CiAKICAgICAgICAgbm9SZXN1bHQobm9kZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTE1NDI3
LDYgKzE1NTc3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdENyZWF0ZShO
b2RlKiBub2RlKQogICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CiAg
ICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uT2JqZWN0Q3JlYXRlT2JqZWN0LCByZXN1bHRHUFIsIExpbmthYmxlQ29u
c3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIHByb3RvdHlwZUdQUik7CisgICAgICAg
IGV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUp
OwogICAgICAgICBicmVhazsKQEAgLTE1NDQxLDYgKzE1NTkyLDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZU9iamVjdENyZWF0ZShOb2RlKiBub2RlKQogICAgICAgICBHUFJGbHVzaGVk
Q2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1
bHQuZ3ByKCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uT2JqZWN0Q3JlYXRlLCBy
ZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIHBy
b3RvdHlwZVJlZ3MpOworICAgICAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgICAgIGNlbGxS
ZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKICAgICAgICAgYnJlYWs7CkBAIC0xNTQ2Myw2ICsxNTYx
NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RUb1N0cmluZyhOb2RlKiBu
b2RlKQogICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAgICAg
IEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uT2JqZWN0VG9TdHJpbmdVbnR5cGVkLCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3Rh
bnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGFyZ3VtZW50UmVncyk7CisgICAgICAgIGV4
Y2VwdGlvbkNoZWNrKCk7CiAKICAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwog
ICAgICAgICBicmVhazsKQEAgLTE1OTQ1LDYgKzE2MDk4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVNldEFkZChOb2RlKiBub2RlKQogICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJl
c3VsdCh0aGlzKTsKICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uU2V0QWRkLCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6
Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIHNldEdQUiwga2V5UmVncywgaGFzaEdQUik7Cisg
ICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiB9
CiAKQEAgLTE1OTY2LDYgKzE2MTIwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1h
cFNldChOb2RlKiBub2RlKQogICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsK
ICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uTWFwU2V0LCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVj
dCgqdGhpcywgbm9kZSksIG1hcEdQUiwga2V5UmVncywgdmFsdWVSZWdzLCBoYXNoR1BSKTsKKyAg
ICBleGNlcHRpb25DaGVjaygpOwogICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKIH0K
IApAQCAtMTU5OTAsNiArMTYxNDUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTWFw
T3JTZXREZWxldGUoTm9kZSogbm9kZSkKICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQo
dGhpcyk7CiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICBjYWxsT3Bl
cmF0aW9uKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBNYXBPYmplY3RVc2UgPyBvcGVyYXRp
b25NYXBEZWxldGUgOiBvcGVyYXRpb25TZXREZWxldGUsIHJlc3VsdEdQUiwgTGlua2FibGVDb25z
dGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgbWFwT3JTZXRHUFIsIGtleVJlZ3MsIGhh
c2hHUFIpOworICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgdW5ibGVzc2VkQm9vbGVhblJlc3Vs
dChyZXN1bHRHUFIsIG5vZGUpOwogfQogCkBAIC0xNjExMyw2ICsxNjI2OSw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVXZWFrU2V0QWRkKE5vZGUqIG5vZGUpCiAKICAgICBmbHVzaFJl
Z2lzdGVycygpOwogICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uV2Vha1NldEFkZCwgTGlua2Fi
bGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgc2V0R1BSLCBrZXlHUFIsIGhh
c2hHUFIpOworICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CiAK
QEAgLTE2MTM0LDYgKzE2MjkxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVdlYWtN
YXBTZXQoTm9kZSogbm9kZSkKIAogICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25XZWFrTWFwU2V0LCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3Qo
KnRoaXMsIG5vZGUpLCBtYXBHUFIsIGtleUdQUiwgdmFsdWVSZWdzLCBoYXNoR1BSKTsKKyAgICBl
eGNlcHRpb25DaGVjaygpOwogICAgIG5vUmVzdWx0KG5vZGUpOwogfQogCkBAIC0xNjcwNCw2ICsx
Njg2Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmdlbmVyaWNKU1ZhbHVlTm9uUGVlcGhvbGVD
b21wYXJlKE5vZGUqIG5vZGUsIFJlbGF0aW9uYWxDb25kCiAKICAgICAgICAgZmx1c2hSZWdpc3Rl
cnMoKTsKICAgICAgICAgY2FsbE9wZXJhdGlvbihoZWxwZXJGdW5jdGlvbiwgcmVzdWx0R1BSLCBM
aW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBhcmcxUmVncywgYXJn
MlJlZ3MpOworICAgICAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgICAgIHVuYmxlc3NlZEJv
b2xlYW5SZXN1bHQocmVzdWx0R1BSLCBub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkp
OwogICAgICAgICByZXR1cm47CkBAIC0xNjc2NCw2ICsxNjkyMyw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmdlbmVyaWNKU1ZhbHVlUGVlcGhvbGVCcmFuY2goTm9kZSogbm9kZSwgTm9kZSogYnJh
bmNoTm9kZSwKIAogICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICBjYWxsT3BlcmF0
aW9uKGhlbHBlckZ1bmN0aW9uLCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9i
amVjdCgqdGhpcywgbm9kZSksIGFyZzFSZWdzLCBhcmcyUmVncyk7CisgICAgICAgIGV4Y2VwdGlv
bkNoZWNrKCk7CiAKICAgICAgICAgYnJhbmNoVGVzdDMyKGNhbGxSZXN1bHRDb25kaXRpb24sIHJl
c3VsdEdQUiwgdGFrZW4pOwogICAgIH0gZWxzZSB7CkBAIC0xNjc4OCw2ICsxNjk0OCw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmdlbmVyaWNKU1ZhbHVlUGVlcGhvbGVCcmFuY2goTm9kZSogbm9k
ZSwgTm9kZSogYnJhbmNoTm9kZSwKICAgICAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJz
KHJlc3VsdEdQUik7CiAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKGhlbHBlckZ1bmN0aW9uLCBy
ZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGFy
ZzFSZWdzLCBhcmcyUmVncyk7CiAgICAgICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKCk7
CisgICAgICAgICAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgICAgICAgICBicmFuY2hUZXN0
MzIoY2FsbFJlc3VsdENvbmRpdGlvbiwgcmVzdWx0R1BSLCB0YWtlbik7CiAgICAgICAgIH0KQEAg
LTE2ODI1LDcgKzE2OTg2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhlYXBCaWdJ
bnRFcXVhbGl0eShOb2RlKiBub2RlKQogICAgIG5vdEVxdWFsQ2FzZS5saW5rKHRoaXMpOwogCiAg
ICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKLSAgICBjYWxsT3BlcmF0aW9u
V2l0aG91dEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcUNlbGwsIHJlc3Vs
dEdQUiwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgbGVmdEdQ
UiwgcmlnaHRHUFIpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVx
Q2VsbCwgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5v
ZGUpLCBsZWZ0R1BSLCByaWdodEdQUik7CiAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycygpOwog
CiAgICAgZG9uZS5saW5rKHRoaXMpOwpAQCAtMTcwMTEsOSArMTcxNzIsMTEgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZU1ha2VSb3BlKE5vZGUqIG5vZGUpCiAgICAgc3dpdGNoIChudW1P
cEdQUnMpIHsKICAgICBjYXNlIDI6CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTWFr
ZVJvcGUyLCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywg
bm9kZSksIG9wR1BSc1swXSwgb3BHUFJzWzFdKTsKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAzOgogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbk1ha2VSb3BlMywgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3Qo
KnRoaXMsIG5vZGUpLCBvcEdQUnNbMF0sIG9wR1BSc1sxXSwgb3BHUFJzWzJdKTsKKyAgICAgICAg
ZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE3MDQ4LDEyICsxNzIxMSwxNSBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTWFrZUF0b21TdHJpbmcoTm9kZSogbm9kZSkKICAg
ICBzd2l0Y2ggKG51bU9wR1BScykgewogICAgIGNhc2UgMToKICAgICAgICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25NYWtlQXRvbVN0cmluZzEsIHJlc3VsdEdQUiwgTGlua2FibGVDb25zdGFudDo6
Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgb3BHUFJzWzBdKTsKKyAgICAgICAgZXhjZXB0aW9u
Q2hlY2soKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAyOgogICAgICAgICBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvbk1ha2VBdG9tU3RyaW5nMiwgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50
OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBvcEdQUnNbMF0sIG9wR1BSc1sxXSk7CisgICAg
ICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMzoKICAgICAg
ICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25NYWtlQXRvbVN0cmluZzMsIHJlc3VsdEdQUiwgTGlu
a2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgb3BHUFJzWzBdLCBvcEdQ
UnNbMV0sIG9wR1BSc1syXSk7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CkBAIC0xNzE4OCw2ICsxNzM1NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJp
bmdMb2NhbGVDb21wYXJlKE5vZGUqIG5vZGUpCiAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVz
dWx0KHRoaXMpOwogICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25TdHJpbmdMb2NhbGVDb21wYXJlLCByZXN1bHRHUFIsIExpbmth
YmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGJhc2VHUFIsIGFyZ3VtZW50
R1BSKTsKKyAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgc3RyaWN0SW50MzJSZXN1bHQocmVz
dWx0R1BSLCBub2RlKTsKIH0KQEAgLTE3MjIwLDYgKzE3Mzg3LDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVN0cmluZ0luZGV4T2YoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uU3RyaW5nSW5kZXhPZldpdGhJbmRleFdpdGhPbmVDaGFyLCByZXN1
bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGJhc2VH
UFIsIGluZGV4R1BSLCBUcnVzdGVkSW1tMzIoY2hhcmFjdGVyLnZhbHVlKCkpKTsKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TdHJpbmdJbmRleE9mV2l0
aEluZGV4LCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywg
bm9kZSksIGJhc2VHUFIsIGFyZ3VtZW50R1BSLCBpbmRleEdQUik7CisgICAgICAgIGV4Y2VwdGlv
bkNoZWNrKCk7CiAKICAgICAgICAgc3RyaWN0SW50MzJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtMTcyNDEsNiArMTc0MDksNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlU3RyaW5nSW5kZXhPZihOb2RlKiBub2RlKQogICAgICAgICBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvblN0cmluZ0luZGV4T2ZXaXRoT25lQ2hhciwgcmVzdWx0R1BSLCBMaW5rYWJs
ZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBiYXNlR1BSLCBUcnVzdGVkSW1t
MzIoY2hhcmFjdGVyLnZhbHVlKCkpKTsKICAgICBlbHNlCiAgICAgICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uU3RyaW5nSW5kZXhPZiwgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9i
YWxPYmplY3QoKnRoaXMsIG5vZGUpLCBiYXNlR1BSLCBhcmd1bWVudEdQUik7CisgICAgZXhjZXB0
aW9uQ2hlY2soKTsKIAogICAgIHN0cmljdEludDMyUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiB9
CkBAIC0xNzI3NSw2ICsxNzQ0NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHbG9i
YWxJc05hTihOb2RlKiBub2RlKQogICAgICAgICAgICAgaXNJbnQzMiA9IGJyYW5jaElmSW50MzIo
YXJndW1lbnRSZWdzKTsKICAgICAgICAgfQogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
bklzTmFOLCBzY3JhdGNoMUdQUiwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlz
LCBub2RlKSwgYXJndW1lbnRSZWdzKTsKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICAg
ICAgaWYgKG1heUJlSW50MzIpCiAgICAgICAgICAgICBpc0ludDMyLmxpbmsodGhpcyk7CiAgICAg
ICAgIHVuYmxlc3NlZEJvb2xlYW5SZXN1bHQoc2NyYXRjaDFHUFIsIG5vZGUpOwpAQCAtMTczMzgs
NyArMTc1MDgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9JbnRlZ2VyT3JJbmZp
bml0eShOb2RlKiBub2RlKQogICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICBKU1Zh
bHVlUmVnc0ZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAgSlNWYWx1ZVJl
Z3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb25XaXRo
b3V0RXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uVG9JbnRlZ2VyT3JJbmZpbml0eURvdWJsZSwgcmVz
dWx0UmVncywgYXJndW1lbnRGUFIpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblRv
SW50ZWdlck9ySW5maW5pdHlEb3VibGUsIHJlc3VsdFJlZ3MsIGFyZ3VtZW50RlBSKTsKICAgICAg
ICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQpAQCAtMTczNTgsNiArMTc1MjgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9J
bnRlZ2VyT3JJbmZpbml0eShOb2RlKiBub2RlKQogICAgICAgICAgICAgaXNJbnQzMiA9IGJyYW5j
aElmSW50MzIoYXJndW1lbnRSZWdzKTsKICAgICAgICAgfQogICAgICAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvblRvSW50ZWdlck9ySW5maW5pdHlVbnR5cGVkLCByZXN1bHRSZWdzLCBMaW5rYWJs
ZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBhcmd1bWVudFJlZ3MpOworICAg
ICAgICBleGNlcHRpb25DaGVjaygpOwogICAgICAgICBpZiAobWF5QmVJbnQzMikKICAgICAgICAg
ICAgIGlzSW50MzIubGluayh0aGlzKTsKICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdz
LCBub2RlKTsKQEAgLTE3MzkzLDcgKzE3NTY0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVRvTGVuZ3RoKE5vZGUqIG5vZGUpCiAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAg
ICAgIEpTVmFsdWVSZWdzRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwogICAgICAgICBK
U1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKLSAgICAgICAgY2FsbE9wZXJh
dGlvbldpdGhvdXRFeGNlcHRpb25DaGVjayhvcGVyYXRpb25Ub0xlbmd0aERvdWJsZSwgcmVzdWx0
UmVncywgYXJndW1lbnRGUFIpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblRvTGVu
Z3RoRG91YmxlLCByZXN1bHRSZWdzLCBhcmd1bWVudEZQUik7CiAgICAgICAgIGpzVmFsdWVSZXN1
bHQocmVzdWx0UmVncywgbm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE3NDIxLDYg
KzE3NTkyLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvTGVuZ3RoKE5vZGUqIG5v
ZGUpCiAgICAgICAgIGlmIChtYXlCZUludDMyKQogICAgICAgICAgICAgaXNOb3RJbnQzMi5saW5r
KHRoaXMpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblRvTGVuZ3RoVW50eXBlZCwg
cmVzdWx0UmVncywgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwg
YXJndW1lbnRSZWdzKTsKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKIAogICAgICAgICBpZiAo
bWF5QmVJbnQzMikKICAgICAgICAgICAgIGRvbmUubGluayh0aGlzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCAxM2U1ZDBiZGJhMGEuLjE4
NGQ3M2Y0NDQwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaApAQCAtMzUzLDcgKzM1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGJhaWwoQWJvcnRS
ZWFzb24pOwogICAgIHZvaWQgY29tcGlsZUN1cnJlbnRCbG9jaygpOwogCi0gICAgdm9pZCBleGNl
cHRpb25DaGVjayhHUFJSZWcgZXhjZXB0aW9uUmVnID0gSW52YWxpZEdQUlJlZyk7CisgICAgdm9p
ZCBleGNlcHRpb25DaGVjaygpOwogICAgIENhbGxTaXRlSW5kZXggcmVjb3JkQ2FsbFNpdGVBbmRH
ZW5lcmF0ZUV4Y2VwdGlvbkhhbmRsaW5nT1NSRXhpdElmTmVlZGVkKGNvbnN0IENvZGVPcmlnaW4m
IGNhbGxTaXRlQ29kZU9yaWdpbiwgdW5zaWduZWQgZXZlbnRTdHJlYW1JbmRleCk7CiAKICAgICB2
b2lkIGNoZWNrQXJndW1lbnRUeXBlcygpOwpAQCAtOTM3LDExMiArOTM3LDQ0IEBAIHB1YmxpYzoK
ICAgICAgICAgfQogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGU+
Ci0gICAgdm9pZCBvcGVyYXRpb25FeGNlcHRpb25DaGVjaygpCi0gICAgewotICAgICAgICB1c2lu
ZyBSZXN1bHRUeXBlID0gdHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlwZT46OlJl
c3VsdFR5cGU7Ci0gICAgICAgIGV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbkV4Y2VwdGlvblJlZ2lz
dGVyPFJlc3VsdFR5cGU+KCkpOwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJh
dGlvblR5cGUsIHR5cGVuYW1lIFJlc3VsdFJlZ1R5cGUsIHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAg
cmVxdWlyZXMgKE9wZXJhdGlvbkhhc1Jlc3VsdDxPcGVyYXRpb25UeXBlPikKLSAgICBKSVRDb21w
aWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKE9wZXJhdGlvblR5cGUgb3BlcmF0aW9uLCBSZXN1bHRS
ZWdUeXBlIHJlc3VsdCwgQXJncy4uLiBhcmdzKQorICAgIHN0ZDo6ZW5hYmxlX2lmX3Q8CisgICAg
ICAgIEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+OjpoYXNSZXN1bHQsCisgICAgSklUQ29t
cGlsZXI6OkNhbGw+CisgICAgY2FsbE9wZXJhdGlvbihPcGVyYXRpb25UeXBlIG9wZXJhdGlvbiwg
UmVzdWx0UmVnVHlwZSByZXN1bHQsIEFyZ3MuLi4gYXJncykKICAgICB7CiAgICAgICAgIHNldHVw
QXJndW1lbnRzPE9wZXJhdGlvblR5cGU+KGFyZ3MuLi4pOwotICAgICAgICBhdXRvIGNhbGwgPSBh
cHBlbmRDYWxsKG9wZXJhdGlvbik7Ci0gICAgICAgIG9wZXJhdGlvbkV4Y2VwdGlvbkNoZWNrPE9w
ZXJhdGlvblR5cGU+KCk7Ci0gICAgICAgIHNldHVwUmVzdWx0cyhyZXN1bHQpOwotICAgICAgICBy
ZXR1cm4gY2FsbDsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9u
LCByZXN1bHQpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGUs
IHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgcmVxdWlyZXMgKCFPcGVyYXRpb25IYXNSZXN1bHQ8T3Bl
cmF0aW9uVHlwZT4pCi0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihPcGVyYXRp
b25UeXBlIG9wZXJhdGlvbiwgQXJncy4uLiBhcmdzKQotICAgIHsKLSAgICAgICAgc2V0dXBBcmd1
bWVudHM8T3BlcmF0aW9uVHlwZT4oYXJncy4uLik7Ci0gICAgICAgIGF1dG8gY2FsbCA9IGFwcGVu
ZENhbGwob3BlcmF0aW9uKTsKLSAgICAgICAgb3BlcmF0aW9uRXhjZXB0aW9uQ2hlY2s8T3BlcmF0
aW9uVHlwZT4oKTsKLSAgICAgICAgcmV0dXJuIGNhbGw7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdHlwZW5hbWUgUmVzdWx0UmVnVHlwZSwgdHlwZW5hbWUu
Li4gQXJncz4KLSAgICByZXF1aXJlcyAoT3BlcmF0aW9uSGFzUmVzdWx0PE9wZXJhdGlvblR5cGU+
KQotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oY29uc3QgQ29kZVB0cjxPcGVy
YXRpb25QdHJUYWc+IG9wZXJhdGlvbiwgUmVzdWx0UmVnVHlwZSByZXN1bHQsIEFyZ3MuLi4gYXJn
cykKLSAgICB7Ci0gICAgICAgIHNldHVwQXJndW1lbnRzPE9wZXJhdGlvblR5cGU+KGFyZ3MuLi4p
OwotICAgICAgICBhdXRvIGNhbGwgPSBhcHBlbmRDYWxsKG9wZXJhdGlvbik7Ci0gICAgICAgIG9w
ZXJhdGlvbkV4Y2VwdGlvbkNoZWNrPE9wZXJhdGlvblR5cGU+KCk7Ci0gICAgICAgIHNldHVwUmVz
dWx0cyhyZXN1bHQpOwotICAgICAgICByZXR1cm4gY2FsbDsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB0eXBlbmFtZS4uLiBBcmdzPgotICAgIHJlcXVpcmVz
ICghT3BlcmF0aW9uSGFzUmVzdWx0PE9wZXJhdGlvblR5cGU+KQotICAgIEpJVENvbXBpbGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oY29uc3QgQ29kZVB0cjxPcGVyYXRpb25QdHJUYWc+IG9wZXJhdGlv
biwgQXJncy4uLiBhcmdzKQotICAgIHsKLSAgICAgICAgc2V0dXBBcmd1bWVudHM8T3BlcmF0aW9u
VHlwZT4oYXJncy4uLik7Ci0gICAgICAgIGF1dG8gY2FsbCA9IGFwcGVuZENhbGwob3BlcmF0aW9u
KTsKLSAgICAgICAgb3BlcmF0aW9uRXhjZXB0aW9uQ2hlY2s8T3BlcmF0aW9uVHlwZT4oKTsKLSAg
ICAgICAgcmV0dXJuIGNhbGw7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0
aW9uVHlwZSwgdHlwZW5hbWUgUmVzdWx0UmVnVHlwZSwgdHlwZW5hbWUuLi4gQXJncz4KLSAgICBy
ZXF1aXJlcyAoT3BlcmF0aW9uSGFzUmVzdWx0PE9wZXJhdGlvblR5cGU+KQotICAgIHZvaWQgY2Fs
bE9wZXJhdGlvbihBZGRyZXNzIGFkZHJlc3MsIFJlc3VsdFJlZ1R5cGUgcmVzdWx0LCBBcmdzLi4u
IGFyZ3MpCi0gICAgewotICAgICAgICBzZXR1cEFyZ3VtZW50c0ZvckluZGlyZWN0Q2FsbDxPcGVy
YXRpb25UeXBlPihhZGRyZXNzLCBhcmdzLi4uKTsKLSAgICAgICAgYXBwZW5kQ2FsbChBZGRyZXNz
KEdQUkluZm86Om5vbkFyZ0dQUjAsIGFkZHJlc3Mub2Zmc2V0KSk7Ci0gICAgICAgIG9wZXJhdGlv
bkV4Y2VwdGlvbkNoZWNrPE9wZXJhdGlvblR5cGU+KCk7Ci0gICAgICAgIHNldHVwUmVzdWx0cyhy
ZXN1bHQpOwotICAgIH0KLQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwg
dHlwZW5hbWUuLi4gQXJncz4KLSAgICByZXF1aXJlcyAoIU9wZXJhdGlvbkhhc1Jlc3VsdDxPcGVy
YXRpb25UeXBlPgotICAgICAgICAmJiAhaXNFeGNlcHRpb25PcGVyYXRpb25SZXN1bHQ8dHlwZW5h
bWUgRnVuY3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlwZT46OlJlc3VsdFR5cGU+KSAvLyBTYW5pdHkg
Y2hlY2sKLSAgICB2b2lkIGNhbGxPcGVyYXRpb25XaXRob3V0RXhjZXB0aW9uQ2hlY2soQWRkcmVz
cyBhZGRyZXNzLCBBcmdzLi4uIGFyZ3MpCi0gICAgewotICAgICAgICBzZXR1cEFyZ3VtZW50c0Zv
ckluZGlyZWN0Q2FsbDxPcGVyYXRpb25UeXBlPihhZGRyZXNzLCBhcmdzLi4uKTsKLSAgICAgICAg
YXBwZW5kQ2FsbChBZGRyZXNzKEdQUkluZm86Om5vbkFyZ0dQUjAsIGFkZHJlc3Mub2Zmc2V0KSk7
Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdHlwZW5hbWUg
UmVzdWx0UmVnVHlwZSwgdHlwZW5hbWUuLi4gQXJncz4KLSAgICByZXF1aXJlcyAoT3BlcmF0aW9u
SGFzUmVzdWx0PE9wZXJhdGlvblR5cGU+Ci0gICAgICAgICYmICFpc0V4Y2VwdGlvbk9wZXJhdGlv
blJlc3VsdDx0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6UmVzdWx0VHlw
ZT4pIC8vIFNhbml0eSBjaGVjawotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb25X
aXRob3V0RXhjZXB0aW9uQ2hlY2soT3BlcmF0aW9uVHlwZSBvcGVyYXRpb24sIFJlc3VsdFJlZ1R5
cGUgcmVzdWx0LCBBcmdzLi4uIGFyZ3MpCi0gICAgewotICAgICAgICBzZXR1cEFyZ3VtZW50czxP
cGVyYXRpb25UeXBlPihhcmdzLi4uKTsKLSAgICAgICAgYXV0byBjYWxsID0gYXBwZW5kQ2FsbChv
cGVyYXRpb24pOwotICAgICAgICBzZXR1cFJlc3VsdHMocmVzdWx0KTsKLSAgICAgICAgcmV0dXJu
IGNhbGw7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdHlw
ZW5hbWUuLi4gQXJncz4KLSAgICByZXF1aXJlcyAoIU9wZXJhdGlvbkhhc1Jlc3VsdDxPcGVyYXRp
b25UeXBlPgotICAgICAgICAmJiAhaXNFeGNlcHRpb25PcGVyYXRpb25SZXN1bHQ8dHlwZW5hbWUg
RnVuY3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlwZT46OlJlc3VsdFR5cGU+KSAvLyBTYW5pdHkgY2hl
Y2sKLSAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uV2l0aG91dEV4Y2VwdGlvbkNo
ZWNrKE9wZXJhdGlvblR5cGUgb3BlcmF0aW9uLCBBcmdzLi4uIGFyZ3MpCisgICAgc3RkOjplbmFi
bGVfaWZfdDwKKyAgICAgICAgIUZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+OjpoYXNSZXN1
bHQsCisgICAgSklUQ29tcGlsZXI6OkNhbGw+CisgICAgY2FsbE9wZXJhdGlvbihPcGVyYXRpb25U
eXBlIG9wZXJhdGlvbiwgQXJncy4uLiBhcmdzKQogICAgIHsKICAgICAgICAgc2V0dXBBcmd1bWVu
dHM8T3BlcmF0aW9uVHlwZT4oYXJncy4uLik7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9w
ZXJhdGlvbik7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwg
dHlwZW5hbWUgUmVzdWx0UmVnVHlwZSwgdHlwZW5hbWUuLi4gQXJncz4KLSAgICByZXF1aXJlcyAo
T3BlcmF0aW9uSGFzUmVzdWx0PE9wZXJhdGlvblR5cGU+Ci0gICAgICAgICYmICFpc0V4Y2VwdGlv
bk9wZXJhdGlvblJlc3VsdDx0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6
UmVzdWx0VHlwZT4pIC8vIFNhbml0eSBjaGVjawotICAgIHZvaWQgY2FsbE9wZXJhdGlvbldpdGhv
dXRFeGNlcHRpb25DaGVjayhBZGRyZXNzIGFkZHJlc3MsIFJlc3VsdFJlZ1R5cGUgcmVzdWx0LCBB
cmdzLi4uIGFyZ3MpCisgICAgc3RkOjplbmFibGVfaWZfdDwKKyAgICAgICAgRnVuY3Rpb25UcmFp
dHM8T3BlcmF0aW9uVHlwZT46Omhhc1Jlc3VsdCwKKyAgICB2b2lkPgorICAgIGNhbGxPcGVyYXRp
b24oQWRkcmVzcyBhZGRyZXNzLCBSZXN1bHRSZWdUeXBlIHJlc3VsdCwgQXJncy4uLiBhcmdzKQog
ICAgIHsKICAgICAgICAgc2V0dXBBcmd1bWVudHNGb3JJbmRpcmVjdENhbGw8T3BlcmF0aW9uVHlw
ZT4oYWRkcmVzcywgYXJncy4uLik7Ci0gICAgICAgIGFwcGVuZENhbGwoQWRkcmVzcyhHUFJJbmZv
Ojpub25BcmdHUFIwLCBhZGRyZXNzLm9mZnNldCksIHJlc3VsdCk7Ci0gICAgICAgIHNldHVwUmVz
dWx0cyhyZXN1bHQpOworICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KEFkZHJlc3MoR1BSSW5m
bzo6bm9uQXJnR1BSMCwgYWRkcmVzcy5vZmZzZXQpLCByZXN1bHQpOwogICAgIH0KIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGUsIHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgcmVx
dWlyZXMgKCFPcGVyYXRpb25IYXNSZXN1bHQ8T3BlcmF0aW9uVHlwZT4pCi0gICAgdm9pZCBjYWxs
T3BlcmF0aW9uKEFkZHJlc3MgYWRkcmVzcywgQXJncy4uLiBhcmdzKQorICAgIHN0ZDo6ZW5hYmxl
X2lmX3Q8CisgICAgICAgICFGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6aGFzUmVzdWx0
LAorICAgIHZvaWQ+CisgICAgY2FsbE9wZXJhdGlvbihBZGRyZXNzIGFkZHJlc3MsIEFyZ3MuLi4g
YXJncykKICAgICB7CiAgICAgICAgIHNldHVwQXJndW1lbnRzRm9ySW5kaXJlY3RDYWxsPE9wZXJh
dGlvblR5cGU+KGFkZHJlc3MsIGFyZ3MuLi4pOwogICAgICAgICBhcHBlbmRDYWxsKEFkZHJlc3Mo
R1BSSW5mbzo6bm9uQXJnR1BSMCwgYWRkcmVzcy5vZmZzZXQpKTsKLSAgICAgICAgb3BlcmF0aW9u
RXhjZXB0aW9uQ2hlY2s8T3BlcmF0aW9uVHlwZT4oKTsKICAgICB9CiAKICAgICBKSVRDb21waWxl
cjo6Q2FsbCBjYWxsVGhyb3dPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2soVl9KSVRPcGVy
YXRpb25fQ2Igb3BlcmF0aW9uLCBHUFJSZWcgY29kZUJsb2NrR1BSKQpAQCAtMTA3Miw3ICsxMDA0
LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgYWRkIGNhbGwgaW5z
dHJ1Y3Rpb25zLCBvcHRpb25hbGx5IHNldHRpbmcgcmVzdWx0cywgYW5kIG9wdGlvbmFsbHkgcm9s
bGluZyBiYWNrIHRoZSBjYWxsIGZyYW1lIG9uIGFuIGV4Y2VwdGlvbi4KLSAgICBKSVRDb21waWxl
cjo6Q2FsbCBhcHBlbmRDYWxsKGNvbnN0IENvZGVQdHI8T3BlcmF0aW9uUHRyVGFnPiBmdW5jdGlv
bikKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBhcHBlbmRDYWxsKGNvbnN0IENvZGVQdHI8Q0Z1bmN0
aW9uUHRyVGFnPiBmdW5jdGlvbikKICAgICB7CiAgICAgICAgIHByZXBhcmVGb3JFeHRlcm5hbENh
bGwoKTsKICAgICAgICAgZW1pdFN0b3JlQ29kZU9yaWdpbihtX2N1cnJlbnROb2RlLT5vcmlnaW4u
c2VtYW50aWMpOwpAQCAtMTA4MCw3ICsxMDEyLDcgQEAgcHVibGljOgogICAgIH0KIAogI2lmIE9T
KFdJTkRPV1MpICYmIENQVShYODZfNjQpCi0gICAgSklUQ29tcGlsZXI6OkNhbGwgYXBwZW5kQ2Fs
bFdpdGhVR1BSUGFpcihjb25zdCBDb2RlUHRyPE9wZXJhdGlvblB0clRhZz4gZnVuY3Rpb24pCisg
ICAgSklUQ29tcGlsZXI6OkNhbGwgYXBwZW5kQ2FsbFdpdGhVR1BSUGFpcihjb25zdCBDb2RlUHRy
PENGdW5jdGlvblB0clRhZz4gZnVuY3Rpb24pCiAgICAgewogICAgICAgICBwcmVwYXJlRm9yRXh0
ZXJuYWxDYWxsKCk7CiAgICAgICAgIGVtaXRTdG9yZUNvZGVPcmlnaW4obV9jdXJyZW50Tm9kZS0+
b3JpZ2luLnNlbWFudGljKTsKQEAgLTExMTEsOCArMTA0Myw0MSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBCYXNlOjphcHBlbmRPcGVyYXRpb25DYWxsKGZ1bmN0aW9uKTsKICAgICB9CiAKLSAg
ICAvLyBGSVhNRTogV2UgY2FuIHJlbW92ZSB0aGlzIHdoZW4gd2UgZG9uJ3Qgc3VwcG9ydCBNU1ZD
IHNpbmNlIG9uIGNsYW5nLWNsIHdlIGNvdWxkIHVzZSBzeXN0ZW1WIEFCSSBmb3IgSklUIG9wZXJh
dGlvbnMuCi0gICAgSklUQ29tcGlsZXI6OkNhbGwgYXBwZW5kQ2FsbFNldFJlc3VsdChjb25zdCBD
b2RlUHRyPE9wZXJhdGlvblB0clRhZz4gZnVuY3Rpb24sIEdQUlJlZyByZXN1bHQxLCBHUFJSZWcg
cmVzdWx0MikKKyAgICB2b2lkIGFwcGVuZENhbGxTZXRSZXN1bHQoQWRkcmVzcyBhZGRyZXNzLCBH
UFJSZWcgcmVzdWx0KQorICAgIHsKKyAgICAgICAgYXBwZW5kQ2FsbChhZGRyZXNzKTsKKyAgICAg
ICAgaWYgKHJlc3VsdCAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgbW92ZShHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiwgcmVzdWx0KTsKKyAgICB9CisKKyAgICB2b2lkIGFwcGVuZENhbGxT
ZXRSZXN1bHQoQWRkcmVzcyBhZGRyZXNzLCBHUFJSZWcgcmVzdWx0MSwgR1BSUmVnIHJlc3VsdDIp
CisgICAgeworI2lmIE9TKFdJTkRPV1MpICYmIENQVShYODZfNjQpCisgICAgICAgIGFwcGVuZENh
bGxXaXRoVUdQUlBhaXIoYWRkcmVzcyk7CisjZWxzZQorICAgICAgICBhcHBlbmRDYWxsKGFkZHJl
c3MpOworI2VuZGlmCisgICAgICAgIHNldHVwUmVzdWx0cyhyZXN1bHQxLCByZXN1bHQyKTsKKyAg
ICB9CisKKyAgICB2b2lkIGFwcGVuZENhbGxTZXRSZXN1bHQoQWRkcmVzcyBhZGRyZXNzLCBKU1Zh
bHVlUmVncyByZXN1bHRSZWdzKQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBh
cHBlbmRDYWxsU2V0UmVzdWx0KGFkZHJlc3MsIHJlc3VsdFJlZ3MuZ3ByKCkpOworI2Vsc2UKKyAg
ICAgICAgYXBwZW5kQ2FsbFNldFJlc3VsdChhZGRyZXNzLCByZXN1bHRSZWdzLnBheWxvYWRHUFIo
KSwgcmVzdWx0UmVncy50YWdHUFIoKSk7CisjZW5kaWYKKyAgICB9CisKKyAgICBKSVRDb21waWxl
cjo6Q2FsbCBhcHBlbmRDYWxsU2V0UmVzdWx0KGNvbnN0IENvZGVQdHI8Q0Z1bmN0aW9uUHRyVGFn
PiBmdW5jdGlvbiwgR1BSUmVnIHJlc3VsdCkKKyAgICB7CisgICAgICAgIEpJVENvbXBpbGVyOjpD
YWxsIGNhbGwgPSBhcHBlbmRDYWxsKGZ1bmN0aW9uKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBJ
bnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgbW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwg
cmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIGNhbGw7CisgICAgfQorCisgICAgSklUQ29tcGlsZXI6
OkNhbGwgYXBwZW5kQ2FsbFNldFJlc3VsdChjb25zdCBDb2RlUHRyPENGdW5jdGlvblB0clRhZz4g
ZnVuY3Rpb24sIEdQUlJlZyByZXN1bHQxLCBHUFJSZWcgcmVzdWx0MikKICAgICB7CiAjaWYgT1Mo
V0lORE9XUykgJiYgQ1BVKFg4Nl82NCkKICAgICAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9
IGFwcGVuZENhbGxXaXRoVUdQUlBhaXIoZnVuY3Rpb24pOwpAQCAtMTEyMyw2ICsxMDg4LDIzIEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGNhbGw7CiAgICAgfQogCisgICAgSklUQ29tcGlsZXI6
OkNhbGwgYXBwZW5kQ2FsbFNldFJlc3VsdChjb25zdCBDb2RlUHRyPENGdW5jdGlvblB0clRhZz4g
ZnVuY3Rpb24sIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MpCisgICAgeworI2lmIFVTRShKU1ZBTFVF
NjQpCisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KGZ1bmN0aW9uLCByZXN1bHRS
ZWdzLmdwcigpKTsKKyNlbHNlCisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KGZ1
bmN0aW9uLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSwgcmVzdWx0UmVncy50YWdHUFIoKSk7Cisj
ZW5kaWYKKyAgICB9CisKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBhcHBlbmRDYWxsU2V0UmVzdWx0
KGNvbnN0IENvZGVQdHI8Q0Z1bmN0aW9uUHRyVGFnPiBmdW5jdGlvbiwgRlBSUmVnIHJlc3VsdCkK
KyAgICB7CisgICAgICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGwgPSBhcHBlbmRDYWxsKGZ1bmN0
aW9uKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBJbnZhbGlkRlBSUmVnKQorICAgICAgICAgICAg
bW92ZURvdWJsZShGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUiwgcmVzdWx0KTsKKyAgICAgICAgcmV0
dXJuIGNhbGw7CisgICAgfQorCiAgICAgdXNpbmcgQmFzZTo6YnJhbmNoRG91YmxlOwogICAgIHZv
aWQgYnJhbmNoRG91YmxlKEpJVENvbXBpbGVyOjpEb3VibGVDb25kaXRpb24gY29uZCwgRlBSUmVn
IGxlZnQsIEZQUlJlZyByaWdodCwgQmFzaWNCbG9jayogZGVzdGluYXRpb24pCiAgICAgewpAQCAt
MTQ1Nyw3ICsxNDM5LDcgQEAgcHVibGljOgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBHZW5lcmF0
b3IsIHR5cGVuYW1lIFJlcGF0Y2hpbmdGdW5jdGlvbiwgdHlwZW5hbWUgTm9uUmVwYXRjaGluZ0Z1
bmN0aW9uPgogICAgIHZvaWQgY29tcGlsZU1hdGhJQyhOb2RlKiwgSklUVW5hcnlNYXRoSUM8R2Vu
ZXJhdG9yPiosIFJlcGF0Y2hpbmdGdW5jdGlvbiwgTm9uUmVwYXRjaGluZ0Z1bmN0aW9uKTsKIAot
ICAgIHZvaWQgY29tcGlsZUFyaXRoRG91YmxlVW5hcnlPcChOb2RlKiwgQXJpdGg6OlVuYXJ5RnVu
Y3Rpb24sIEFyaXRoOjpVbmFyeU9wZXJhdGlvbik7CisgICAgdm9pZCBjb21waWxlQXJpdGhEb3Vi
bGVVbmFyeU9wKE5vZGUqLCBkb3VibGUgKCpkb3VibGVGdW5jdGlvbikoZG91YmxlKSwgZG91Ymxl
ICgqb3BlcmF0aW9uKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CiAgICAgdm9p
ZCBjb21waWxlVmFsdWVBZGQoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZVZhbHVlU3ViKE5vZGUq
KTsKICAgICB2b2lkIGNvbXBpbGVBcml0aEFkZChOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCBiODRkNzIz
NDYwNDAuLjAwNTUyNTM2ZTU3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC00MjgsNiArNDI4LDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6bm9uU3BlY3VsYXRpdmVQZWVwaG9sZVN0cmljdEVxKE5vZGUqIG5vZGUs
IE5vZGUqIGJyYW5jaE5vZGUKICAgICAgICAgCiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0
ZXJzKHJlc3VsdFBheWxvYWRHUFIpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNv
bXBhcmVTdHJpY3RFcUNlbGwsIHJlc3VsdFBheWxvYWRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omds
b2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGFyZzFQYXlsb2FkR1BSLCBhcmcyUGF5bG9hZEdQUik7
CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3Rl
cnMoKTsKIAogICAgICAgICBicmFuY2hUZXN0MzIoaW52ZXJ0ID8gWmVybyA6IE5vblplcm8sIHJl
c3VsdFBheWxvYWRHUFIsIHRha2VuKTsKQEAgLTQzNiw2ICs0MzcsNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpub25TcGVjdWxhdGl2ZVBlZXBob2xlU3RyaWN0RXEoTm9kZSogbm9kZSwgTm9kZSog
YnJhbmNoTm9kZQogCiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFBheWxv
YWRHUFIpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcSwg
cmVzdWx0UGF5bG9hZEdQUiwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBu
b2RlKSwgYXJnMVJlZ3MsIGFyZzJSZWdzKTsKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAg
ICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycygpOwogCiAgICAgICAgIGJyYW5jaFRlc3QzMihp
bnZlcnQgPyBaZXJvIDogTm9uWmVybywgcmVzdWx0UGF5bG9hZEdQUiwgdGFrZW4pOwpAQCAtNDc0
LDYgKzQ3Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmdlbmVyaWNKU1ZhbHVlTm9uUGVlcGhv
bGVTdHJpY3RFcShOb2RlKiBub2RlLCBib29sIGludmVydCkKICAgICAgICAgCiAgICAgICAgIHNp
bGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFBheWxvYWRHUFIpOwogICAgICAgICBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcUNlbGwsIHJlc3VsdFBheWxvYWRHUFIsIExp
bmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGFyZzFQYXlsb2FkR1BS
LCBhcmcyUGF5bG9hZEdQUik7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIHNp
bGVudEZpbGxBbGxSZWdpc3RlcnMoKTsKIAogICAgICAgICBhbmRQdHIoVHJ1c3RlZEltbTMyKDEp
LCByZXN1bHRQYXlsb2FkR1BSKTsKQEAgLTQ4NSw2ICs0ODgsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpnZW5lcmljSlNWYWx1ZU5vblBlZXBob2xlU3RyaWN0RXEoTm9kZSogbm9kZSwgYm9vbCBp
bnZlcnQpCiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFBheWxvYWRHUFIp
OwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcSwgcmVzdWx0
UGF5bG9hZEdQUiwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwg
YXJnMVJlZ3MsIGFyZzJSZWdzKTsKICAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycygpOwor
ICAgICAgICBleGNlcHRpb25DaGVjaygpOwogICAgICAgICAKICAgICAgICAgYW5kUHRyKFRydXN0
ZWRJbW0zMigxKSwgcmVzdWx0UGF5bG9hZEdQUik7CiAgICAgfQpAQCAtNjQzLDYgKzY0Nyw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBK
dW1wIGRvbmUgPSBqdW1wKCk7CiAgICAgICAgICAgICBzbG93Q2FzZS5saW5rKHRoaXMpOwogICAg
ICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dGb3JWYXJh
cmdzLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpKTsKKyAgICAg
ICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgICAgICBhYm9ydFdpdGhSZWFzb24oREZH
VmFyYXJnc1Rocm93aW5nUGF0aERpZE5vdFRocm93KTsKICAgICAgICAgICAgIGRvbmUubGluayh0
aGlzKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTY3NCw2ICs2NzksNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjplbWl0Q2FsbChOb2RlKiBub2RlKQogICAgICAgICAgICAgLy8gUmlnaHQgbm93LCBh
cmd1bWVudHMgaXMgaW4gYXJndW1lbnRzVGFnR1BSL2FyZ3VtZW50c1BheWxvYWRHUFIgYW5kIHRo
ZSByZWdpc3RlciBmaWxlIGlzCiAgICAgICAgICAgICAvLyBmbHVzaGVkLgogICAgICAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzLCBHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUiwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwg
SlNWYWx1ZVJlZ3MoYXJndW1lbnRzVGFnR1BSLCBhcmd1bWVudHNQYXlsb2FkR1BSKSwgbnVtVXNl
ZFN0YWNrU2xvdHMsIGRhdGEtPmZpcnN0VmFyQXJnT2Zmc2V0KTsKKyAgICAgICAgICAgIGV4Y2Vw
dGlvbkNoZWNrKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIE5vdyB3ZSBoYXZlIHRo
ZSBhcmd1bWVudCBjb3VudCBvZiB0aGUgY2FsbGVlIGZyYW1lLCBidXQgd2UndmUgbG9zdCB0aGUg
YXJndW1lbnRzIG9wZXJhbmQuCiAgICAgICAgICAgICAvLyBSZWNvbnN0cnVjdCB0aGUgYXJndW1l
bnRzIG9wZXJhbmQgd2hpbGUgcHJlc2VydmluZyB0aGUgY2FsbGVlIGZyYW1lLgpAQCAtNjgzLDYg
KzY4OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUpCiAgICAg
ICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC0oc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpICsg
V1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSwgNiAqIHNpemVv
Zih2b2lkKikpKSksIHNjcmF0Y2hHUFIxLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2V0dXBWYXJhcmdzRnJh
bWUsIEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmpl
Y3QoKnRoaXMsIG5vZGUpLCBzY3JhdGNoR1BSMSwgSlNWYWx1ZVJlZ3MoYXJndW1lbnRzVGFnR1BS
LCBhcmd1bWVudHNQYXlsb2FkR1BSKSwgZGF0YS0+Zmlyc3RWYXJBcmdPZmZzZXQsIEdQUkluZm86
OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAg
ICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIEdQUklu
Zm86OnJldHVyblZhbHVlR1BSLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgIH0KICAg
ICAgICAgCkBAIC05NDAsNiArOTQ3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwo
Tm9kZSogbm9kZSkKICAgICAgICAgICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhJbnZh
bGlkR1BSUmVnKTsKICAgICAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkxpbmtE
aXJlY3RDYWxsLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoY2FsbExpbmtJbmZvKSwgY2Fs
bGVlUGF5bG9hZEdQUik7CiAgICAgICAgICAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycygp
OworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgICAgICAgICAganVt
cCgpLmxpbmtUbyhtYWluUGF0aCwgdGhpcyk7CiAgICAgICAgICAgICB9CiAKQEAgLTk2MSw2ICs5
NjksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlKiBub2RlKQogICAgICAg
ICAgICAgc2xvd0Nhc2VzLmxpbmsodGhpcyk7CiAKICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uTGlua0RpcmVjdENhbGwsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihjYWxs
TGlua0luZm8pLCBjYWxsZWVQYXlsb2FkR1BSKTsKKyAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNr
KCk7CiAgICAgICAgICAgICBqdW1wKCkubGlua1RvKG1haW5QYXRoLCB0aGlzKTsKIAogICAgICAg
ICAgICAgZG9uZS5saW5rKHRoaXMpOwpAQCAtMzA3NCw2ICszMDgzLDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgSlNWYWx1ZVJlZ3NGbHVz
aGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1
bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uVG9OdW1iZXJTdHJpbmcsIHJlc3VsdFJlZ3MsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9i
amVjdCgqdGhpcywgbm9kZSksIGFyZ3VtZW50R1BSKTsKKyAgICAgICAgICAgIGV4Y2VwdGlvbkNo
ZWNrKCk7CiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTMwOTUsNiArMzEwNSw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGlmICghKG1fc3Rh
dGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkubV90eXBlICYgU3BlY0J5dGVjb2RlTnVtYmVyKSkg
ewogICAgICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25Ub051bWJlciwgcmVzdWx0UmVncywgTGlua2FibGVDb25zdGFu
dDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgYXJndW1lbnRSZWdzKTsKKyAgICAgICAgICAg
ICAgICBleGNlcHRpb25DaGVjaygpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICBKdW1wIG5vdE51bWJlcjsKICAgICAgICAgICAgICAgICB7CkBAIC0zMTA5LDYgKzMxMjAs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAg
ICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0UmVncyk7CiAgICAgICAgICAgICAg
ICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Ub051bWJlciwgcmVzdWx0UmVncywgTGlua2FibGVD
b25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgYXJndW1lbnRSZWdzKTsKICAgICAg
ICAgICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKCk7CisgICAgICAgICAgICAgICAgZXhj
ZXB0aW9uQ2hlY2soKTsKIAogICAgICAgICAgICAgICAgIGRvbmUubGluayh0aGlzKTsKICAgICAg
ICAgICAgIH0KQEAgLTM4MjUsNiArMzgzNyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUoTm9kZSogbm9kZSkKICAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMp
OwogICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAgICAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvbk1hcEhhc2gsIHJlc3VsdEdQUiwgTGlua2FibGVDb25zdGFudDo6
Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgaW5wdXRSZWdzKTsKKyAgICAgICAgZXhjZXB0aW9u
Q2hlY2soKTsKICAgICAgICAgc3RyaWN0SW50MzJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMzg1Nyw2ICszODcwLDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25KU01hcEZpbmRCdWNrZXQsIHJlc3VsdEdQUiwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFs
T2JqZWN0KCp0aGlzLCBub2RlKSwgbWFwR1BSLCBrZXlSZWdzLCBoYXNoR1BSKTsKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25KU1NldEZpbmRCdWNrZXQs
IHJlc3VsdEdQUiwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwg
bWFwR1BSLCBrZXlSZWdzLCBoYXNoR1BSKTsKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAg
ICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9
CkBAIC00MTE1LDYgKzQxMjksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUq
IG5vZGUpCiAgICAgICAgIH0KICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25IYXNPd25Q
cm9wZXJ0eSwgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMs
IG5vZGUpLCBvYmplY3RHUFIsIGtleVJlZ3MpOwogICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0
ZXJzKCk7CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICAgICAgZG9uZS5saW5rKHRo
aXMpOwogICAgICAgICBib29sZWFuUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CkBAIC00NDI0LDYg
KzQ0MzksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxXaXRoVGhpcyhO
b2RlKiBub2RlKQogICAgIEpTVmFsdWVSZWdzRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMp
OwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOwogICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWxXaXRoVGhpc0dlbmVyaWMsIHJlc3VsdFJlZ3MsIExp
bmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGJhc2VSZWdzLCBzdWJz
Y3JpcHRSZWdzLCB0aGlzVmFsdWVSZWdzKTsKKyAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAg
anNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKIH0KQEAgLTQ0NTMsOCArNDQ2OSw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVDbG9uZWRBcmd1bWVudHMoTm9kZSog
bm9kZSkKICAgICAgICAgICAgIGxvYWRMaW5rYWJsZUNvbnN0YW50KExpbmthYmxlQ29uc3RhbnQ6
Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGRlc3RHUFIpOwogICAgICAgICB9KTsKIAotICAg
IGFwcGVuZENhbGwob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzKTsKLSAgICBzZXR1cFJl
c3VsdHMocmVzdWx0R1BSKTsKKyAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbkNyZWF0
ZUNsb25lZEFyZ3VtZW50cywgcmVzdWx0R1BSKTsKICAgICBleGNlcHRpb25DaGVjaygpOwogCiAg
ICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggNzdlYjc3YjlmNjFiLi4xY2E3
NmVlNmUzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcApAQCAtNDc0LDYgKzQ3NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6Om5v
blNwZWN1bGF0aXZlUGVlcGhvbGVTdHJpY3RFcShOb2RlKiBub2RlLCBOb2RlKiBicmFuY2hOb2Rl
CiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CiAgICAgICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2VsbCwgcmVzdWx0R1BSLCBMaW5r
YWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBhcmcxR1BSLCBhcmcyR1BS
KTsKICAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycygpOworICAgICAgICBleGNlcHRpb25D
aGVjaygpOwogICAgICAgICAKICAgICAgICAgYnJhbmNoVGVzdDMyKGludmVydCA/IFplcm8gOiBO
b25aZXJvLCByZXN1bHRHUFIsIHRha2VuKTsKICAgICB9IGVsc2UgewpAQCAtNTYyLDYgKzU2Myw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmdlbmVyaWNKU1ZhbHVlTm9uUGVlcGhvbGVTdHJpY3RF
cShOb2RlKiBub2RlLCBib29sIGludmVydCkKICAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3Rl
cnMocmVzdWx0R1BSKTsKICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Db21wYXJlU3Ry
aWN0RXFDZWxsLCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhp
cywgbm9kZSksIGFyZzFSZWdzLCBhcmcyUmVncyk7CiAgICAgICAgIHNpbGVudEZpbGxBbGxSZWdp
c3RlcnMoKTsKKyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgCiAgICAgICAgIGRv
bmUubGluayh0aGlzKTsKICAgICAgICAgdW5ibGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHRHUFIs
IG1fY3VycmVudE5vZGUsIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7CkBAIC03NjcsNiAr
NzY5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKICAgICAg
ICAgICAgIEp1bXAgZG9uZSA9IGp1bXAoKTsKICAgICAgICAgICAgIHNsb3dDYXNlLmxpbmsodGhp
cyk7CiAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxv
d0ZvclZhcmFyZ3MsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSkp
OworICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgICAgIGFib3J0V2l0aFJl
YXNvbihERkdWYXJhcmdzVGhyb3dpbmdQYXRoRGlkTm90VGhyb3cpOwogICAgICAgICAgICAgZG9u
ZS5saW5rKHRoaXMpOwogICAgICAgICB9IGVsc2UgewpAQCAtNzk1LDYgKzc5OCw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIC8vIFJpZ2h0IG5vdywgYXJndW1lbnRzIGlzIGluIGFyZ3VtZW50c0dQUiBhbmQgdGhl
IHJlZ2lzdGVyIGZpbGUgaXMgZmx1c2hlZC4KICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIExpbmth
YmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGFyZ3VtZW50c0dQUiwgbnVt
VXNlZFN0YWNrU2xvdHMsIGRhdGEtPmZpcnN0VmFyQXJnT2Zmc2V0KTsKKyAgICAgICAgICAgIGV4
Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIE5vdyB3ZSBoYXZl
IHRoZSBhcmd1bWVudCBjb3VudCBvZiB0aGUgY2FsbGVlIGZyYW1lLCBidXQgd2UndmUgbG9zdCB0
aGUgYXJndW1lbnRzIG9wZXJhbmQuCiAgICAgICAgICAgICAvLyBSZWNvbnN0cnVjdCB0aGUgYXJn
dW1lbnRzIG9wZXJhbmQgd2hpbGUgcHJlc2VydmluZyB0aGUgY2FsbGVlIGZyYW1lLgpAQCAtODA0
LDYgKzgwOCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUpCiAg
ICAgICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1zdGF0aWNfY2FzdDxpbnQzMl90PihzaXpl
b2YoQ2FsbGVyRnJhbWVBbmRQQykgKyBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGln
bm1lbnRCeXRlcygpLCA1ICogc2l6ZW9mKHZvaWQqKSkpKSwgc2NyYXRjaEdQUjEsIHN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25TZXR1cFZhcmFyZ3NGcmFtZSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIExpbmth
YmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIHNjcmF0Y2hHUFIxLCBhcmd1
bWVudHNHUFIsIGRhdGEtPmZpcnN0VmFyQXJnT2Zmc2V0LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
Uik7CisgICAgICAgICAgICBleGNlcHRpb25DaGVjaygpOwogICAgICAgICAgICAgYWRkUHRyKFRy
dXN0ZWRJbW0zMihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCBHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUiwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgICAgICB9CiAgICAgICAgIApAQCAtMTEx
MSw2ICsxMTE2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZSkK
ICAgICAgICAgICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhJbnZhbGlkR1BSUmVnKTsK
ICAgICAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkxpbmtEaXJlY3RDYWxsLCBD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoY2FsbExpbmtJbmZvKSwgY2FsbGVlR1BSKTsKICAg
ICAgICAgICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKCk7CisgICAgICAgICAgICAgICAg
ZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgICAgICAgICBqdW1wKCkubGlua1RvKG1haW5QYXRo
LCB0aGlzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHVzZUNoaWxkcmVuKG5vZGUpOwpA
QCAtMTEzMiw2ICsxMTM4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSog
bm9kZSkKICAgICAgICAgICAgICAgICBwb3Aoc2VsZWN0U2NyYXRjaEdQUihjYWxsZWVHUFIpKTsK
IAogICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25MaW5rRGlyZWN0Q2FsbCwgQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGNhbGxMaW5rSW5mbyksIGNhbGxlZUdQUik7CisgICAg
ICAgICAgICBleGNlcHRpb25DaGVjaygpOwogICAgICAgICAgICAganVtcCgpLmxpbmtUbyhtYWlu
UGF0aCwgdGhpcyk7CiAKICAgICAgICAgICAgIGRvbmUubGluayh0aGlzKTsKQEAgLTI1MzksNiAr
MjU0Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBub2Rl
LCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAgICAgICAgICAgICBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYywgcmVzdWx0UmVncywgTGlua2FibGVDb25zdGFu
dDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2RlKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIpOwogICAg
ICAgICAgICAgaWYgKGNhblVzZUZsdXNoID09IENhblVzZUZsdXNoOjpObykKICAgICAgICAgICAg
ICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKCk7CisgICAgICAgICAgICBleGNlcHRpb25DaGVj
aygpOwogCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogICAg
ICAgICAgICAgcmV0dXJuOwpAQCAtMjk2Myw2ICsyOTcxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIAogICAgICAgICBzbG93Q2Fz
ZXMubGluayh0aGlzKTsKICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25SZWdFeHBUZXN0
U3RyaW5nLCB0ZW1wMEdQUiwgZ2xvYmFsT2JqZWN0R1BSLCBiYXNlR1BSLCBhcmd1bWVudEdQUik7
CisgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICAgICAgZG9uZUNhc2VzLmxpbmsodGhp
cyk7CiAgICAgICAgIHVuYmxlc3NlZEJvb2xlYW5SZXN1bHQodGVtcDBHUFIsIG5vZGUpOwpAQCAt
Mjk4MSw2ICsyOTkwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJ
bmxpbmUoTm9kZSogbm9kZSkKIAogICAgIHNsb3dDYXNlcy5saW5rKHRoaXMpOwogICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uUmVnRXhwVGVzdCwgdGVtcDBHUFIsIGdsb2JhbE9iamVjdEdQUiwg
YmFzZUdQUiwgYXJndW1lbnRHUFIpOworICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICBkb25l
Q2FzZXMubGluayh0aGlzKTsKICAgICB1bmJsZXNzZWRCb29sZWFuUmVzdWx0KHRlbXAwR1BSLCBu
b2RlKTsKQEAgLTM3NDEsNiArMzc1MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSogbm9kZSkKICAgICAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlz
KTsKICAgICAgICAgICAgIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICAgICAgICAgIGNh
bGxTbG93UGF0aCgpOworICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwogICAgICAgICAg
ICAgYnJlYWs7CkBAIC0zOTEwLDYgKzM5MjEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQo
dGhpcyk7CiAgICAgICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAg
ICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25BdG9taWNzSXNMb2NrRnJlZSwgcmVzdWx0
R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBvcGVyYW5k
R1BSKTsKKyAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgICAgICBqc1ZhbHVl
UmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpA
QCAtNDIyMSw2ICs0MjMzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBu
b2RlKQogICAgICAgICAgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhp
cyk7CiAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsK
ICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVG9OdW1iZXJTdHJpbmcsIHJlc3Vs
dFJlZ3MsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGFyZ3Vt
ZW50R1BSKTsKKyAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICAgICAgICAgIGpz
VmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTQy
NDAsNiArNDI1Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkK
ICAgICAgICAgICAgIGlmICghKG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkubV90eXBl
ICYgU3BlY0J5dGVjb2RlTnVtYmVyKSkgewogICAgICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJz
KCk7CiAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Ub051bWJlciwgcmVz
dWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBhcmd1
bWVudEdQUik7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgSnVtcCBub3ROdW1iZXIgPSBicmFuY2hJZk5vdE51
bWJlcihhcmd1bWVudEdQUik7CiAgICAgICAgICAgICAgICAgbW92ZShhcmd1bWVudEdQUiwgcmVz
dWx0R1BSKTsKQEAgLTQyNDksNiArNDI2Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhy
ZXN1bHRHUFIpOwogICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVG9OdW1i
ZXIsIHJlc3VsdEdQUiwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlzLCBub2Rl
KSwgYXJndW1lbnRHUFIpOwogICAgICAgICAgICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMo
KTsKKyAgICAgICAgICAgICAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgICAgICAgICAgICAg
ZG9uZS5saW5rKHRoaXMpOwogICAgICAgICAgICAgfQpAQCAtNDgwOSw2ICs0ODI0LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogCiAgICAgICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24obm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmlj
dCgpID8gb3BlcmF0aW9uUHV0QnlWYWxXaXRoVGhpc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFs
V2l0aFRoaXMsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGJh
c2VHUFIsIHRoaXNWYWx1ZUdQUiwgcHJvcGVydHlHUFIsIHZhbHVlR1BSKTsKKyAgICAgICAgZXhj
ZXB0aW9uQ2hlY2soKTsKIAogICAgICAgICBub1Jlc3VsdChub2RlKTsKICAgICAgICAgYnJlYWs7
CkBAIC01MTMyLDcgKzUxNDgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUq
IG5vZGUpCiAgICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICAgICAgR1BSRmx1
c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwogICAgICAgICAgICAgR1BSUmVnIHJlc3VsdEdQ
UiA9IHJlc3VsdC5ncHIoKTsKLSAgICAgICAgICAgIGNhbGxPcGVyYXRpb25XaXRob3V0RXhjZXB0
aW9uQ2hlY2sob3BlcmF0aW9uTWFwSGFzaEhlYXBCaWdJbnQsIHJlc3VsdEdQUiwgVHJ1c3RlZElt
bVB0cigmdm0oKSksIGlucHV0R1BSKTsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uTWFwSGFzaEhlYXBCaWdJbnQsIHJlc3VsdEdQUiwgVHJ1c3RlZEltbVB0cigmdm0oKSksIGlu
cHV0R1BSKTsKICAgICAgICAgICAgIHN0cmljdEludDMyUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNTE3Nyw2ICs1MTkzLDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgc2lsZW50
U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uTWFwSGFzaCwgcmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmpl
Y3QoKnRoaXMsIG5vZGUpLCBKU1ZhbHVlUmVncyhpbnB1dEdQUikpOwogICAgICAgICAgICAgc2ls
ZW50RmlsbEFsbFJlZ2lzdGVycygpOworICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKIAog
ICAgICAgICAgICAgZG9uZS5saW5rKHRoaXMpOwogICAgICAgICAgICAgc3RyaWN0SW50MzJSZXN1
bHQocmVzdWx0R1BSLCBub2RlKTsKQEAgLTUyMjEsNiArNTIzOCw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3Rl
cnMocmVzdWx0R1BSKTsKICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25NYXBIYXNoLCBy
ZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIEpT
VmFsdWVSZWdzKGlucHV0R1BSKSk7CiAgICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMoKTsK
KyAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKIAogICAgICAgICBkb25lLmxpbmsodGhpcyk7CiAg
ICAgICAgIHN0cmljdEludDMyUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CkBAIC01Mzc0LDYgKzUz
OTIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25KU1NldEZp
bmRCdWNrZXQsIHJlc3VsdEdQUiwgTGlua2FibGVDb25zdGFudDo6Z2xvYmFsT2JqZWN0KCp0aGlz
LCBub2RlKSwgbWFwR1BSLCBrZXlHUFIsIGhhc2hHUFIpOwogICAgICAgICAgICAgc2lsZW50Rmls
bEFsbFJlZ2lzdGVycygpOworICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAg
ICAgIGRvbmUuYXBwZW5kKGp1bXAoKSk7CiAgICAgICAgIH0KIApAQCAtNTcwMiw2ICs1NzIxLDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBzaWxl
bnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvbkhhc093blByb3BlcnR5LCByZXN1bHRHUFIsIExpbmthYmxlQ29uc3RhbnQ6Omdsb2Jh
bE9iamVjdCgqdGhpcywgbm9kZSksIG9iamVjdEdQUiwga2V5R1BSKTsKICAgICAgICAgc2lsZW50
RmlsbEFsbFJlZ2lzdGVycygpOworICAgICAgICBleGNlcHRpb25DaGVjaygpOwogCiAgICAgICAg
IGRvbmUubGluayh0aGlzKTsKICAgICAgICAgb3IzMihUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6VmFs
dWVGYWxzZSksIHJlc3VsdEdQUik7CkBAIC02MzI4LDcgKzYzNDgsNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBjYWxsVGllclVwLmxpbmso
dGhpcyk7CiAKICAgICAgICAgICAgIHNpbGVudFNwaWxsKHNhdmVQbGFucyk7Ci0gICAgICAgICAg
ICBjYWxsT3BlcmF0aW9uV2l0aG91dEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvblRyaWdnZXJUaWVy
VXBOb3dJbkxvb3AsIFRydXN0ZWRJbW1QdHIoJnZtKCkpLCBUcnVzdGVkSW1tMzIoYnl0ZWNvZGVJ
bmRleC5hc0JpdHMoKSkpOworICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Ucmln
Z2VyVGllclVwTm93SW5Mb29wLCBUcnVzdGVkSW1tUHRyKCZ2bSgpKSwgVHJ1c3RlZEltbTMyKGJ5
dGVjb2RlSW5kZXguYXNCaXRzKCkpKTsKICAgICAgICAgICAgIHNpbGVudEZpbGwoc2F2ZVBsYW5z
KTsKIAogICAgICAgICAgICAganVtcCgpLmxpbmtUbyh0b05leHRPcGVyYXRpb24sIHRoaXMpOwpA
QCAtNjM0Myw3ICs2MzYzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBu
b2RlKQogICAgICAgICAgICAgQWJzb2x1dGVBZGRyZXNzKCZqaXRDb2RlKCktPnRpZXJVcENvdW50
ZXIubV9jb3VudGVyKSk7CiAgICAgICAgIAogICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVy
cyhJbnZhbGlkR1BSUmVnKTsKLSAgICAgICAgY2FsbE9wZXJhdGlvbldpdGhvdXRFeGNlcHRpb25D
aGVjayhvcGVyYXRpb25UcmlnZ2VyVGllclVwTm93LCBUcnVzdGVkSW1tUHRyKCZ2bSgpKSk7Cisg
ICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vdywgVHJ1c3RlZElt
bVB0cigmdm0oKSkpOwogICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKCk7CiAgICAgICAg
IAogICAgICAgICBkb25lLmxpbmsodGhpcyk7CkBAIC02MzgxLDcgKzY0MDEsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBvdmVyZmxvd2Vk
Q291bnRlci5saW5rKHRoaXMpOwogCiAgICAgICAgICAgICBzaWxlbnRTcGlsbChzYXZlUGxhbnMp
OwotICAgICAgICAgICAgY2FsbE9wZXJhdGlvbldpdGhvdXRFeGNlcHRpb25DaGVjayhvcGVyYXRp
b25UcmlnZ2VyT1NSRW50cnlOb3csIHRlbXBHUFIsIFRydXN0ZWRJbW1QdHIoJnZtKCkpLCBUcnVz
dGVkSW1tMzIoYnl0ZWNvZGVJbmRleC5hc0JpdHMoKSkpOworICAgICAgICAgICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25UcmlnZ2VyT1NSRW50cnlOb3csIHRlbXBHUFIsIFRydXN0ZWRJbW1QdHIo
JnZtKCkpLCBUcnVzdGVkSW1tMzIoYnl0ZWNvZGVJbmRleC5hc0JpdHMoKSkpOwogCiAgICAgICAg
ICAgICBpZiAoc2F2ZVBsYW5zLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBicmFuY2hUZXN0
UHRyKFplcm8sIHRlbXBHUFIpLmxpbmtUbyh0b05leHRPcGVyYXRpb24sIHRoaXMpOwpAQCAtNzAx
MSw2ICs3MDMxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUZ1bmN0aW9uQmluZChO
b2RlKiBub2RlKQogICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgZmx1
c2hSZWdpc3RlcnMoKTsKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkZ1bmN0aW9uQmluZCwg
cmVzdWx0R1BSLCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCB0
YXJnZXRHUFIsIGJvdW5kVGhpc1JlZ3MsIGFyZzBSZWdzLCBhcmcxUmVncywgYXJnMlJlZ3MpOwor
ICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwog
fQogCkBAIC03MzI0LDEwICs3MzQ1LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNy
ZWF0ZUNsb25lZEFyZ3VtZW50cyhOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgICAgICBsb2Fk
TGlua2FibGVDb25zdGFudChMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5v
ZGUpLCBkZXN0R1BSKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgYXBwZW5k
Q2FsbChvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHMpOwotICAgICAgICAgICAgb3BlcmF0
aW9uRXhjZXB0aW9uQ2hlY2s8ZGVjbHR5cGUob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRz
KT4oKTsKLSAgICAgICAgICAgIHNldHVwUmVzdWx0cyhyZXN1bHRHUFIpOworICAgICAgICAgICAg
YXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHMsIHJlc3Vs
dEdQUik7CiAgICAgICAgICAgICBzaWxlbnRGaWxsKHNhdmVQbGFucyk7CisgICAgICAgICAgICBl
eGNlcHRpb25DaGVjaygpOwogCiAgICAgICAgICAgICBqdW1wKCkubGlua1RvKGRvbmVGcm9tU2xv
d1BhdGgsIHRoaXMpOwogICAgICAgICB9KTsKQEAgLTczNTksOSArNzM3OSw4IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVDbG9uZWRBcmd1bWVudHMoTm9kZSogbm9kZSkKICAg
ICAgICAgICAgIGxvYWRMaW5rYWJsZUNvbnN0YW50KExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9i
amVjdCgqdGhpcywgbm9kZSksIGRlc3RHUFIpOwogICAgICAgICB9KTsKIAotICAgIGFwcGVuZENh
bGwob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzKTsKLSAgICBvcGVyYXRpb25FeGNlcHRp
b25DaGVjazxkZWNsdHlwZShvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHMpPigpOwotICAg
IHNldHVwUmVzdWx0cyhyZXN1bHRHUFIpOworICAgIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0
aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzLCByZXN1bHRHUFIpOworICAgIGV4Y2VwdGlvbkNoZWNr
KCk7CiAKICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggODlmMGM3OTRhNTNkLi41
NzA1YTc4YmIxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMjQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MjMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yMCw3ICsyMCw3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKQEAgLTEyMyw4ICsxMjMsOCBAQCBuYW1lc3BhY2Ugewogc3RkOjphdG9t
aWM8aW50PiBjb21waWxlQ291bnRlcjsKIAogI2lmIEFTU0VSVF9FTkFCTEVECi1KU0NfREVDTEFS
RV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyhmdGxVbnJlYWNoYWJsZSwg
Tk9fUkVUVVJOX0RVRV9UT19DUkFTSCwgdm9pZCwgKENvZGVCbG9jayogY29kZUJsb2NrLCBCbG9j
a0luZGV4IGJsb2NrSW5kZXgsIHVuc2lnbmVkIG5vZGVJbmRleCkpOwotSlNDX0RFRklORV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyhmdGxVbnJlYWNoYWJsZSwgTk9fUkVU
VVJOX0RVRV9UT19DUkFTSCwgdm9pZCwgKENvZGVCbG9jayogY29kZUJsb2NrLCBCbG9ja0luZGV4
IGJsb2NrSW5kZXgsIHVuc2lnbmVkIG5vZGVJbmRleCkpCitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OX1dJVEhfQVRUUklCVVRFUyhmdGxVbnJlYWNoYWJsZSwgTk9fUkVUVVJOX0RVRV9UT19DUkFT
SCwgdm9pZCwgKENvZGVCbG9jayogY29kZUJsb2NrLCBCbG9ja0luZGV4IGJsb2NrSW5kZXgsIHVu
c2lnbmVkIG5vZGVJbmRleCkpOworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklC
VVRFUyhmdGxVbnJlYWNoYWJsZSwgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCwgdm9pZCwgKENvZGVC
bG9jayogY29kZUJsb2NrLCBCbG9ja0luZGV4IGJsb2NrSW5kZXgsIHVuc2lnbmVkIG5vZGVJbmRl
eCkpCiB7CiAgICAgZGF0YUxvZygiQ3Jhc2hpbmcgaW4gdGhvdWdodC10by1iZS11bnJlYWNoYWJs
ZSBGVEwtZ2VuZXJhdGVkIGNvZGUgZm9yICIsIHBvaW50ZXJEdW1wKGNvZGVCbG9jayksICIgYXQg
YmFzaWMgYmxvY2sgIyIsIGJsb2NrSW5kZXgpOwogICAgIGlmIChub2RlSW5kZXggIT0gVUlOVF9N
QVgpCkBAIC0xNDgsOSArMTQ4LDYgQEAgSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9O
X1dJVEhfQVRUUklCVVRFUyhmdGxVbnJlYWNoYWJsZSwgTk9fUkVUVVJOX0RVRV8KICNkZWZpbmUg
RlRMX1RZUEVfQ0hFQ0sobG93VmFsdWUsIGhpZ2hWYWx1ZSwgdHlwZXNQYXNzZWRUaHJvdWdoLCBm
YWlsQ29uZGl0aW9uKSBcCiAgICAgRlRMX1RZUEVfQ0hFQ0tfV0lUSF9FWElUX0tJTkQoQmFkVHlw
ZSwgbG93VmFsdWUsIGhpZ2hWYWx1ZSwgdHlwZXNQYXNzZWRUaHJvdWdoLCBmYWlsQ29uZGl0aW9u
KQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25SZXN1bHRUeXBlPgotY29uY2VwdCBpc0Iz
U3VwcG9ydGVkRXhjZXB0aW9uT3BlcmF0aW9uUmVzdWx0ID0gaXNFeGNlcHRpb25PcGVyYXRpb25S
ZXN1bHQ8T3BlcmF0aW9uUmVzdWx0VHlwZT4gJiYgIXN0ZDo6aXNfZmxvYXRpbmdfcG9pbnRfdjx0
eXBlbmFtZSBPcGVyYXRpb25SZXN1bHRUeXBlOjpSZXN1bHRUeXBlPjsKLQogY2xhc3MgTG93ZXJE
RkdUb0IzIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMb3dlckRGR1RvQjMpOwogcHVibGlj
OgpAQCAtMTg5LDExICsxODYsMTEgQEAgcHVibGljOgogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBsb3dlcigpCiAgICAgewogICAgICAgICBTdGF0ZSog
c3RhdGUgPSAmbV9mdGxTdGF0ZTsKLQorICAgICAgICAKICAgICAgICAgQ1N0cmluZyBuYW1lOwog
ICAgICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBu
YW1lID0gdG9DU3RyaW5nKApAQCAtMjI0LDcgKzIyMSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
ICAgICBtX2Z0bFN0YXRlLmppdENvZGUtPmNvbW1vbi5jYXRjaE9TUkVudHJ5QnVmZmVyID0gbV9n
cmFwaC5tX3ZtLnNjcmF0Y2hCdWZmZXJGb3JTaXplKHNpemVvZihKU1ZhbHVlKSAqIG51bWJlck9m
TGl2ZUxvY2Fscyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAg
ICAgbV9ncmFwaC5lbnN1cmVTU0FEb21pbmF0b3JzKCk7CiAKICAgICAgICAgaWYgKHZlcmJvc2VD
b21waWxhdGlvbkVuYWJsZWQoKSkKQEAgLTIzNCw5ICsyMzEsOSBAQCBwdWJsaWM6CiAKICAgICAg
ICAgLy8gV2UgdXNlIHByb2xvZ3VlIGZyZXF1ZW5jeSBmb3IgYWxsIG9mIHRoZSBpbml0aWFsaXph
dGlvbiBjb2RlLgogICAgICAgICBtX291dC5zZXRGcmVxdWVuY3koMSk7Ci0KKyAgICAgICAgCiAg
ICAgICAgIGJvb2wgaGFzTXVsdGlwbGVFbnRyeXBvaW50cyA9IG1fZ3JhcGgubV9udW1iZXJPZkVu
dHJ5cG9pbnRzID4gMTsKLQorICAgIAogICAgICAgICBMQmFzaWNCbG9jayBwcm9sb2d1ZSA9IG1f
b3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNhbGxFbnRyeXBvaW50QXJndW1l
bnRTcGVjdWxhdGlvbnMgPSBoYXNNdWx0aXBsZUVudHJ5cG9pbnRzID8gbV9vdXQubmV3QmxvY2so
KSA6IG51bGxwdHI7CiAgICAgICAgIG1faGFuZGxlRXhjZXB0aW9ucyA9IG1fb3V0Lm5ld0Jsb2Nr
KCk7CkBAIC0yNTEsNyArMjQ4LDcgQEAgcHVibGljOgogCiAgICAgICAgIC8vIEJhY2sgdG8gcHJv
bG9ndWUgZnJlcXVlbmN5IGZvciBhbnkgYm9ja3MgdGhhdCBnZXQgc25lYWtpbHkgY3JlYXRlZCBp
biB0aGUgaW5pdGlhbGl6YXRpb24gY29kZS4KICAgICAgICAgbV9vdXQuc2V0RnJlcXVlbmN5KDEp
OwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhwcm9sb2d1ZSwgaGFzTXVsdGlw
bGVFbnRyeXBvaW50cyA/IGNhbGxFbnRyeXBvaW50QXJndW1lbnRTcGVjdWxhdGlvbnMgOiBtX2hh
bmRsZUV4Y2VwdGlvbnMpOwogICAgICAgICBtX291dC5pbml0aWFsaXplQ29uc3RhbnRzKG1fcHJv
YywgcHJvbG9ndWUpOwogICAgICAgICBjcmVhdGVQaGlWYXJpYWJsZXMoKTsKQEAgLTI3OSw3ICsy
NzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIGNvbnN0YW50cyB0byBiZSBtYXRlcmlhbGl6ZWQg
aW4gcmVnaXN0ZXJzLgogICAgICAgICBtX3Byb2MuYWRkRmFzdENvbnN0YW50KG1fbnVtYmVyVGFn
LT5rZXkoKSk7CiAgICAgICAgIG1fcHJvYy5hZGRGYXN0Q29uc3RhbnQobV9ub3RDZWxsTWFzay0+
a2V5KCkpOwotCisgICAgICAgIAogICAgICAgICAvLyBXaGVuIHJ1bm5pbmcgRlRMIGNvZGUsIHdl
IGFscmVhZHkgc3RvcmUgQ29kZUJsb2NrIHRvIENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jay4KIAog
ICAgICAgICAvLyBTdGFjayBPdmVyZmxvdyBDaGVjay4KQEAgLTMxMiw3ICszMDksNyBAQCBwdWJs
aWM6CiAgICAgICAgICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBh
bGxvd1NjcmF0Y2goaml0KTsKIAogICAgICAgICAgICAgICAgICAgICBzdGFja092ZXJmbG93Lmxp
bmsoJmppdCk7Ci0KKyAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBXZSB3b3VsZCBub3QgaGF2ZSB0byBkbyB0aGlzIGlmIHRoZSBzdGFjayBjaGVjayB3
YXMgcGFydCBvZiB0aGUgQWlyCiAgICAgICAgICAgICAgICAgICAgIC8vIHByb2xvZ3VlLiBUaGVu
LCB3ZSB3b3VsZCBrbm93IHRoYXQgdGhlcmUgaXMgbm8gd2F5IGZvciB0aGUgY2FsbGVlLXNhdmVz
IHRvCiAgICAgICAgICAgICAgICAgICAgIC8vIGdldCBjbG9iYmVyZWQuCkBAIC0zNTQsNyArMzUx
LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAvLyBmb3IgdGhlc2UgZW50cnlwb2lu
dHMuCiAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NvcnNbaV0gPSBmaXJzdERGR0Jhc2ljQmxv
Y2s7CiAgICAgICAgICAgICAgICAgfQotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgbV9vdXQuZW50cnlTd2l0Y2goc3VjY2Vzc29ycyk7CiAgICAgICAgICAgICAgICAgbV9vdXQu
YXBwZW5kVG8oY2FsbEVudHJ5cG9pbnRBcmd1bWVudFNwZWN1bGF0aW9ucywgbV9oYW5kbGVFeGNl
cHRpb25zKTsKICAgICAgICAgICAgIH0KQEAgLTM4Miw3ICszNzksNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kID0gdmlydHVhbFJlZ2lzdGVy
Rm9yQXJndW1lbnRJbmNsdWRpbmdUaGlzKGkpOwogICAgICAgICAgICAgICAgICAgICBNZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlIHByb2ZpbGUgPSBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlOjphcmd1bWVudFZhbHVlUHJvZmlsZShtX29yaWdpbi5zZW1hbnRpYywgb3BlcmFuZCk7CiAg
ICAgICAgICAgICAgICAgICAgIExWYWx1ZSBqc1ZhbHVlID0gbV9vdXQubG9hZDY0KGFkZHJlc3NG
b3Iob3BlcmFuZCkpOwotCisgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICBzd2l0Y2ggKG1fZ3JhcGgubV9hcmd1bWVudEZvcm1hdHNbMF1baV0pIHsKICAgICAgICAgICAg
ICAgICAgICAgY2FzZSBGbHVzaGVkSW50MzI6CiAgICAgICAgICAgICAgICAgICAgICAgICBzcGVj
dWxhdGUoQmFkVHlwZSwganNWYWx1ZVZhbHVlKGpzVmFsdWUpLCBwcm9maWxlLCBpc05vdEludDMy
KGpzVmFsdWUpKTsKQEAgLTQ0Myw3ICs0NDAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRl
OgotCisgICAgCiAgICAgdm9pZCBjcmVhdGVQaGlWYXJpYWJsZXMoKQogICAgIHsKICAgICAgICAg
Zm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSBtX2dyYXBoLm51bUJsb2NrcygpOyBibG9ja0lu
ZGV4LS07KSB7CkBAIC00NzksMjQgKzQ3NiwyNCBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxlQmxvY2soREZHOjpCYXNp
Y0Jsb2NrKiBibG9jaykKICAgICB7CiAgICAgICAgIGlmICghYmxvY2spCiAgICAgICAgICAgICBy
ZXR1cm47Ci0KKyAgICAgICAgCiAgICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVk
KCkpCiAgICAgICAgICAgICBkYXRhTG9nKCJDb21waWxpbmcgYmxvY2sgIiwgKmJsb2NrLCAiXG4i
KTsKLQorICAgICAgICAKICAgICAgICAgbV9oaWdoQmxvY2sgPSBibG9jazsKLQorICAgICAgICAK
ICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgYW55IGJsb2NrcyBjcmVhdGVkIHdoaWxlIGxvd2Vy
aW5nIGNvZGUgaW4gdGhlIGhpZ2ggYmxvY2sgaGF2ZSB0aGUgZnJlcXVlbmN5IG9mCiAgICAgICAg
IC8vIHRoZSBoaWdoIGJsb2NrLiBUaGlzIGlzIGFwcHJvcHJpYXRlIGJlY2F1c2UgQjMgZG9lc24n
dCBuZWVkIHByZWNpc2UgZnJlcXVlbmNpZXMuIEl0IGp1c3QgbmVlZHMKICAgICAgICAgLy8gc29t
ZXRoaW5nIHJvdWdobHkgYXBwcm94aW1hdGUgZm9yIHRoaW5ncyBsaWtlIHJlZ2lzdGVyIGFsbG9j
YXRpb24uCiAgICAgICAgIG1fb3V0LnNldEZyZXF1ZW5jeShtX2hpZ2hCbG9jay0+ZXhlY3V0aW9u
Q291bnQpOwotCisgICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayBsb3dCbG9jayA9IG1fYmxv
Y2tzLmdldChtX2hpZ2hCbG9jayk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fbmV4dEhpZ2hCbG9j
ayA9IG51bGxwdHI7CiAgICAgICAgIGZvciAoQmxvY2tJbmRleCBuZXh0QmxvY2tJbmRleCA9IG1f
aGlnaEJsb2NrLT5pbmRleCArIDE7IG5leHRCbG9ja0luZGV4IDwgbV9ncmFwaC5udW1CbG9ja3Mo
KTsgKytuZXh0QmxvY2tJbmRleCkgewogICAgICAgICAgICAgbV9uZXh0SGlnaEJsb2NrID0gbV9n
cmFwaC5ibG9jayhuZXh0QmxvY2tJbmRleCk7CkBAIC01MDQsMTYgKzUwMSwxNiBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIG1fbmV4dExvd0Js
b2NrID0gbV9uZXh0SGlnaEJsb2NrID8gbV9ibG9ja3MuZ2V0KG1fbmV4dEhpZ2hCbG9jaykgOiBu
dWxscHRyOwotCisgICAgICAgIAogICAgICAgICAvLyBBbGwgb2YgdGhpcyBlZmZvcnQgdG8gZmlu
ZCB0aGUgbmV4dCBibG9jayBnaXZlcyB1cyB0aGUgYWJpbGl0eSB0byBrZWVwIHRoZQogICAgICAg
ICAvLyBnZW5lcmF0ZWQgSVIgaW4gcm91Z2hseSBwcm9ncmFtIG9yZGVyLiBUaGlzIG91Z2h0IG5v
dCBhZmZlY3QgdGhlIHBlcmZvcm1hbmNlCiAgICAgICAgIC8vIG9mIHRoZSBnZW5lcmF0ZWQgY29k
ZSAoc2luY2Ugd2UgZXhwZWN0IEIzIHRvIHJlb3JkZXIgdGhpbmdzKSBidXQgaXQgd2lsbAogICAg
ICAgICAvLyBtYWtlIElSIGR1bXBzIGVhc2llciB0byByZWFkLgogICAgICAgICBtX291dC5hcHBl
bmRUbyhsb3dCbG9jaywgbV9uZXh0TG93QmxvY2spOwotCisgICAgICAgIAogICAgICAgICBpZiAo
T3B0aW9uczo6ZnRsQ3Jhc2hlcygpKQogICAgICAgICAgICAgbV9vdXQudHJhcCgpOwotCisgICAg
ICAgIAogICAgICAgICBpZiAoIW1faGlnaEJsb2NrLT5jZmFIYXNWaXNpdGVkKSB7CiAgICAgICAg
ICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIGRh
dGFMb2coIkJhaWxpbmcgYmVjYXVzZSBDRkEgZGlkbid0IHJlYWNoLlxuIik7CkBAIC01MjIsMTIg
KzUxOSwxMiBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAgbV9haUNoZWNrZWROb2Rl
cy5jbGVhcigpOwotCisgICAgICAgIAogICAgICAgICBtX2F2YWlsYWJpbGl0eUNhbGN1bGF0b3Iu
YmVnaW5CbG9jayhtX2hpZ2hCbG9jayk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fc3RhdGUucmVz
ZXQoKTsKICAgICAgICAgbV9zdGF0ZS5iZWdpbkJhc2ljQmxvY2sobV9oaWdoQmxvY2spOwotCisg
ICAgICAgIAogICAgICAgICBpZiAoT3B0aW9uczo6dmFsaWRhdGVERkdDbG9iYmVyaXplKCkpIHsK
ICAgICAgICAgICAgIGJvb2wgY2xvYmJlcmVkV29ybGQgPSBtX2hpZ2hCbG9jay0+cHJlZGVjZXNz
b3JzLmlzRW1wdHkoKSB8fCBtX2hpZ2hCbG9jay0+aXNPU1JUYXJnZXQgfHwgbV9oaWdoQmxvY2st
PmlzQ2F0Y2hFbnRyeXBvaW50OwogICAgICAgICAgICAgYXV0byB2YWxpZGF0ZUNsb2JiZXJpemUg
PSBbJl0gKCkgewpAQCAtNjk3LDcgKzY5NCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIXZhbHVlLmNvdWxkQmVUeXBlKHR5cGUpKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGR1bXBBbmRDcmFzaCgpOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBKU1ZhbHVlOjpkZWNvZGUoY29udGV4dC5n
cHIocmVnKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCA9IEpTVmFsdWU6OmRlY29k
ZShjb250ZXh0LmdwcihyZWcpKTsgCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmx1c2hG
b3JtYXQgPT0gRmx1c2hlZEludDUyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlQoaW5wdXQuaXNBbnlJbnQoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW5wdXQgPSBqc0RvdWJsZU51bWJlcihpbnB1dC5hc0FueUludCgpKTsKQEAgLTcxNywxNSAr
NzE0LDE1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBzYWZlbHlJbnZhbGlkYXRlQWZ0ZXJUZXJt
aW5hdGlvbigpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0KKyAgICAg
ICAgCiAgICAgICAgIG1fbm9kZSA9IG1faGlnaEJsb2NrLT5hdChub2RlSW5kZXgpOwogICAgICAg
ICBtX25vZGVJbmRleEluR3JhcGggPSBtX25vZGUtPmluZGV4KCk7CiAgICAgICAgIG1fb3JpZ2lu
ID0gbV9ub2RlLT5vcmlnaW47CiAgICAgICAgIG1fb3V0LnNldE9yaWdpbihtX25vZGUpOwotCisg
ICAgICAgIAogICAgICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQogICAgICAg
ICAgICAgZGF0YUxvZygiTG93ZXJpbmcgIiwgbV9ub2RlLCAiXG4iKTsKLQorICAgICAgICAKICAg
ICAgICAgbV9pbnRlcnByZXRlci5zdGFydEV4ZWN1dGluZygpOwogICAgICAgICBtX2ludGVycHJl
dGVyLmV4ZWN1dGVLbm93bkVkZ2VUeXBlcyhtX25vZGUpOwogCkBAIC0xODUyLDcgKzE4NDksNyBA
QCBwcml2YXRlOgogCiAgICAgICAgIGlmIChtX25vZGUtPmlzVGVybWluYWwoKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLQorICAgICAgICAKICAgICAgICAgaWYgKCFtX3N0YXRlLmlzVmFs
aWQoKSkgewogICAgICAgICAgICAgc2FmZWx5SW52YWxpZGF0ZUFmdGVyVGVybWluYXRpb24oKTsK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE4NjAsNyArMTg1Nyw3IEBAIHByaXZhdGU6
CiAKICAgICAgICAgbV9hdmFpbGFiaWxpdHlDYWxjdWxhdG9yLmV4ZWN1dGVOb2RlKG1fbm9kZSk7
CiAgICAgICAgIG1faW50ZXJwcmV0ZXIuZXhlY3V0ZUVmZmVjdHMobm9kZUluZGV4KTsKLQorICAg
ICAgICAKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xODk3LDcgKzE4OTQsNyBA
QCBwcml2YXRlOgogICAgICAgICBMVmFsdWUgcGhpTm9kZSA9IG1fcGhpcy5nZXQobV9ub2RlLT5w
aGkoKSk7CiAgICAgICAgIG1fb3V0LmFkZEluY29taW5nVG9QaGkocGhpTm9kZSwgdXBzaWxvbik7
CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxlUGhpKCkKICAgICB7CiAgICAgICAgIExW
YWx1ZSBwaGkgPSBtX3BoaXMuZ2V0KG1fbm9kZSk7CkBAIC0xOTI0LDE2ICsxOTIxLDE2IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KLQorICAgIAogICAg
IHZvaWQgY29tcGlsZURvdWJsZUNvbnN0YW50KCkKICAgICB7CiAgICAgICAgIHNldERvdWJsZSht
X291dC5jb25zdERvdWJsZShtX25vZGUtPmFzTnVtYmVyKCkpKTsKICAgICB9Ci0KKyAgICAKICAg
ICB2b2lkIGNvbXBpbGVJbnQ1MkNvbnN0YW50KCkKICAgICB7CiAgICAgICAgIGludDY0X3QgdmFs
dWUgPSBtX25vZGUtPmFzQW55SW50KCk7Ci0KKyAgICAgICAgCiAgICAgICAgIHNldEludDUyKG1f
b3V0LmNvbnN0SW50NjQodmFsdWUgPDwgSlNWYWx1ZTo6aW50NTJTaGlmdEFtb3VudCkpOwogICAg
ICAgICBzZXRTdHJpY3RJbnQ1MihtX291dC5jb25zdEludDY0KHZhbHVlKSk7CiAgICAgfQpAQCAt
MTk1NiwxNyArMTk1MywxNyBAQCBwcml2YXRlOgogICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+Y2hp
bGQxKCkudXNlS2luZCgpKSB7CiAgICAgICAgIGNhc2UgUmVhbE51bWJlclVzZTogewogICAgICAg
ICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpLCBNYW51YWxP
cGVyYW5kU3BlY3VsYXRpb24pOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIExWYWx1ZSBk
b3VibGVWYWx1ZSA9IHVuYm94RG91YmxlKHZhbHVlKTsKLQorICAgICAgICAgICAgCiAgICAgICAg
ICAgICBMQmFzaWNCbG9jayBpbnRDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAg
IExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAgICAg
ICAgIAogICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hv
cihkb3VibGVWYWx1ZSk7CiAgICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAg
ICAgbV9vdXQuZG91YmxlRXF1YWwoZG91YmxlVmFsdWUsIGRvdWJsZVZhbHVlKSwKICAgICAgICAg
ICAgICAgICB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVseShpbnRDYXNlKSk7Ci0KKyAgICAg
ICAgICAgIAogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRU
byhpbnRDYXNlLCBjb250aW51YXRpb24pOwogCiAgICAgICAgICAgICBGVExfVFlQRV9DSEVDSygK
QEAgLTE5NzQsMTcgKzE5NzEsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBpc05vdElu
dDMyKHZhbHVlLCBwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQxKCkpICYgflNwZWNEb3VibGVSZWFs
KSk7CiAgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93UmVzdWx0ID0gbV9vdXQuYW5jaG9y
KG1fb3V0LmludFRvRG91YmxlKHVuYm94SW50MzIodmFsdWUpKSk7CiAgICAgICAgICAgICBtX291
dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQu
YXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7Ci0KKyAgICAgICAgICAgIAogICAgICAg
ICAgICAgc2V0RG91YmxlKG1fb3V0LnBoaShEb3VibGUsIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQp
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotCisgICAgICAgICAgICAKICAgICAg
ICAgY2FzZSBOb3RDZWxsTm9yQmlnSW50VXNlOgogICAgICAgICBjYXNlIE51bWJlclVzZTogewog
ICAgICAgICAgICAgYm9vbCBzaG91bGRDb252ZXJ0Tm9uTnVtYmVyID0gbV9ub2RlLT5jaGlsZDEo
KS51c2VLaW5kKCkgPT0gTm90Q2VsbE5vckJpZ0ludFVzZTsKLQorICAgICAgICAgICAgCiAgICAg
ICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCksIE1hbnVh
bE9wZXJhbmRTcGVjdWxhdGlvbik7CiAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGludENhc2Ug
PSBtX291dC5uZXdCbG9jaygpOwpAQCAtMTk5MiwxNyArMTk4OSwxNyBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgZG91YmxlQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAg
ICAgICAgICBMQmFzaWNCbG9jayBub25Eb3VibGVDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAg
ICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0K
KyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAg
IGlzTm90SW50MzIodmFsdWUsIHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpLAogICAgICAg
ICAgICAgICAgIHVuc3VyZShkb3VibGVUZXN0aW5nKSwgdW5zdXJlKGludENhc2UpKTsKLQorICAg
ICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVu
ZFRvKGludENhc2UsIGRvdWJsZVRlc3RpbmcpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAg
IFZhbHVlRnJvbUJsb2NrIGludFRvRG91YmxlID0gbV9vdXQuYW5jaG9yKAogICAgICAgICAgICAg
ICAgIG1fb3V0LmludFRvRG91YmxlKHVuYm94SW50MzIodmFsdWUpKSk7CiAgICAgICAgICAgICBt
X291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9v
dXQuYXBwZW5kVG8oZG91YmxlVGVzdGluZywgZG91YmxlQ2FzZSk7CiAgICAgICAgICAgICBMVmFs
dWUgdmFsdWVJc051bWJlciA9IGlzTnVtYmVyKHZhbHVlLCBwcm92ZW5UeXBlKG1fbm9kZS0+Y2hp
bGQxKCkpKTsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCh2YWx1ZUlzTnVtYmVyLCB1c3VhbGx5
KGRvdWJsZUNhc2UpLCByYXJlbHkobm9uRG91YmxlQ2FzZSkpOwpAQCAtMjA2MywxMiArMjA2MCwx
MiBAQCBwcml2YXRlOgogICAgICAgICAgICAgc2V0RG91YmxlKG1fb3V0LnBoaShEb3VibGUsIGlu
dFRvRG91YmxlLCB1bmJveGVkRG91YmxlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KLQorICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgSW50NTJSZXBVc2U6IHsKICAgICAgICAg
ICAgIHNldERvdWJsZShzdHJpY3RJbnQ1MlRvRG91YmxlKGxvd1N0cmljdEludDUyKG1fbm9kZS0+
Y2hpbGQxKCkpKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQorICAgICAgICAg
ICAgCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9u
b2RlLCAiQmFkIHVzZSBraW5kIik7CiAgICAgICAgIH0KQEAgLTIwOTAsNjAgKzIwODcsNjAgQEAg
cHJpdmF0ZToKICAgICAgICAgc3dpdGNoIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSkgewog
ICAgICAgICBjYXNlIERvdWJsZVJlcFVzZTogewogICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0g
bG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAg
IGlmIChhYnN0cmFjdFZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpLmNvdWxkQmVUeXBlKFNwZWNEb3Vi
bGVJbXB1cmVOYU4pKQogICAgICAgICAgICAgICAgIHZhbHVlID0gcHVyaWZ5TmFOKHZhbHVlKTsK
LQorICAgICAgICAgICAgCiAgICAgICAgICAgICBzZXRKU1ZhbHVlKGJveERvdWJsZSh2YWx1ZSkp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAg
ICBjYXNlIEludDUyUmVwVXNlOiB7CiAgICAgICAgICAgICBzZXRKU1ZhbHVlKHN0cmljdEludDUy
VG9KU1ZhbHVlKGxvd1N0cmljdEludDUyKG1fbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CiAg
ICAgICAgIH0KICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVJbnQ1MlJlcCgpCiAgICAg
ewogICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAgICAgICAg
IGNhc2UgSW50MzJVc2U6CiAgICAgICAgICAgICBzZXRTdHJpY3RJbnQ1MihtX291dC5zaWduRXh0
MzJUbzY0KGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgICAgICAgICByZXR1cm47
Ci0KKyAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFueUludFVzZToKICAgICAgICAgICAgIHNl
dFN0cmljdEludDUyKAogICAgICAgICAgICAgICAgIGpzVmFsdWVUb1N0cmljdEludDUyKAogICAg
ICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMSgpLCBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hp
bGQxKCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbikpKTsKICAgICAgICAgICAgIHJldHVybjsK
LQorICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgRG91YmxlUmVwQW55SW50VXNlOiB7CiAgICAg
ICAgICAgICBMVmFsdWUgcmVzdWx0ID0gZG91YmxlVG9TdHJpY3RJbnQ1MihJbnQ1Mk92ZXJmbG93
LCBtX25vZGUtPmNoaWxkMSgpLCBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSkpOwogICAgICAg
ICAgICAgbV9pbnRlcnByZXRlci5maWx0ZXIobV9ub2RlLT5jaGlsZDEoKSwgU3BlY0FueUludEFz
RG91YmxlKTsKICAgICAgICAgICAgIHNldFN0cmljdEludDUyKHJlc3VsdCk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAgICAg
fQotCisgICAgCiAgICAgdm9pZCBjb21waWxlVmFsdWVUb0ludDMyKCkKICAgICB7CiAgICAgICAg
IHN3aXRjaCAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBJbnQ1
MlJlcFVzZToKICAgICAgICAgICAgIHNldEludDMyKG1fb3V0LmNhc3RUb0ludDMyKGxvd1N0cmlj
dEludDUyKG1fbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgICAgICAgICBicmVhazsKLQorICAgICAg
ICAgICAgCiAgICAgICAgIGNhc2UgRG91YmxlUmVwVXNlOgogICAgICAgICAgICAgc2V0SW50MzIo
ZG91YmxlVG9JbnQzMihsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSkpKTsKICAgICAgICAgICAg
IGJyZWFrOwotCisgICAgICAgICAgICAKICAgICAgICAgY2FzZSBOdW1iZXJVc2U6CiAgICAgICAg
IGNhc2UgTm90Q2VsbE5vckJpZ0ludFVzZTogewogICAgICAgICAgICAgTG93ZXJlZE5vZGVWYWx1
ZSB2YWx1ZSA9IG1faW50MzJWYWx1ZXMuZ2V0KG1fbm9kZS0+Y2hpbGQxKCkubm9kZSgpKTsKQEAg
LTIxNTEsMTMgKzIxNDgsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBzZXRJbnQzMih2
YWx1ZS52YWx1ZSgpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLQor
ICAgICAgICAgICAgCiAgICAgICAgICAgICB2YWx1ZSA9IG1fanNWYWx1ZVZhbHVlcy5nZXQobV9u
b2RlLT5jaGlsZDEoKS5ub2RlKCkpOwogICAgICAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKSB7
CiAgICAgICAgICAgICAgICAgc2V0SW50MzIobnVtYmVyT3JOb3RDZWxsTm9yQmlnSW50VG9JbnQz
MihtX25vZGUtPmNoaWxkMSgpLCB2YWx1ZS52YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gV2UnbGwg
YmFzaWNhbGx5IGp1c3QgZ2V0IGhlcmUgZm9yIGNvbnN0YW50cy4gQnV0IGl0J3MgZ29vZCB0byBo
YXZlIHRoaXMKICAgICAgICAgICAgIC8vIGNhdGNoLWFsbCBzaW5jZSB3ZSBvZnRlbiBhZGQgbmV3
IHJlcHJlc2VudGF0aW9ucyBpbnRvIHRoZSBtaXguCiAgICAgICAgICAgICBzZXRJbnQzMigKQEAg
LTIxNjYsMTMgKzIxNjMsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgbG93SlNW
YWx1ZShtX25vZGUtPmNoaWxkMSgpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pKSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQotCisgICAgICAgICAgICAKICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgdXNlIGtpbmQi
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQotCisgICAgCiAgICAgdm9p
ZCBjb21waWxlQm9vbGVhblRvTnVtYmVyKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAobV9ub2Rl
LT5jaGlsZDEoKS51c2VLaW5kKCkpIHsKQEAgLTIxODAsMzMgKzIxNzcsMzMgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIHNldEludDMyKG1fb3V0Lnplcm9FeHQobG93Qm9vbGVhbihtX25vZGUtPmNo
aWxkMSgpKSwgSW50MzIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotCisgICAg
ICAgICAgICAKICAgICAgICAgY2FzZSBVbnR5cGVkVXNlOiB7CiAgICAgICAgICAgICBMVmFsdWUg
dmFsdWUgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpOwotCisgICAgICAgICAgICAKICAg
ICAgICAgICAgIGlmICghbV9pbnRlcnByZXRlci5uZWVkc1R5cGVDaGVjayhtX25vZGUtPmNoaWxk
MSgpLCBTcGVjQm9vbEludDMyIHwgU3BlY0Jvb2xlYW4pKSB7CiAgICAgICAgICAgICAgICAgc2V0
SW50MzIobV9vdXQuYml0QW5kKG1fb3V0LmNhc3RUb0ludDMyKHZhbHVlKSwgbV9vdXQuaW50MzJP
bmUpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0KKyAgICAgICAg
ICAgIAogICAgICAgICAgICAgTEJhc2ljQmxvY2sgYm9vbGVhbkNhc2UgPSBtX291dC5uZXdCbG9j
aygpOwogICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3Qmxv
Y2soKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBub3RCb29s
ZWFuUmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZhbHVlKTsKICAgICAgICAgICAgIG1fb3V0LmJyYW5j
aCgKICAgICAgICAgICAgICAgICBpc0Jvb2xlYW4odmFsdWUsIHByb3ZlblR5cGUobV9ub2RlLT5j
aGlsZDEoKSkpLAogICAgICAgICAgICAgICAgIHVuc3VyZShib29sZWFuQ2FzZSksIHVuc3VyZShj
b250aW51YXRpb24pKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBs
YXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGJvb2xlYW5DYXNlLCBjb250aW51YXRpb24pOwogICAg
ICAgICAgICAgVmFsdWVGcm9tQmxvY2sgYm9vbGVhblJlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291
dC5iaXRPcigKICAgICAgICAgICAgICAgICBtX291dC56ZXJvRXh0KHVuYm94Qm9vbGVhbih2YWx1
ZSksIEludDY0KSwgbV9udW1iZXJUYWcpKTsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGlu
dWF0aW9uKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250
aW51YXRpb24sIGxhc3ROZXh0KTsKICAgICAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKElu
dDY0LCBib29sZWFuUmVzdWx0LCBub3RCb29sZWFuUmVzdWx0KSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMjIzMiwxNCArMjIyOSwxNCBAQCBwcml2YXRlOgogICAgICAgICBBU1NFUlQoc2NyYXRjaEJ1
ZmZlcik7CiAgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0LmNvbnN0SW50UHRyKDApLCBtX291
dC5hYnNvbHV0ZShzY3JhdGNoQnVmZmVyLT5hZGRyZXNzT2ZBY3RpdmVMZW5ndGgoKSkpOwogICAg
IH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZUdldFN0YWNrKCkKICAgICB7CiAgICAgICAgIFN0
YWNrQWNjZXNzRGF0YSogZGF0YSA9IG1fbm9kZS0+c3RhY2tBY2Nlc3NEYXRhKCk7CiAgICAgICAg
IEFic3RyYWN0VmFsdWUmIHZhbHVlID0gbV9zdGF0ZS5vcGVyYW5kKGRhdGEtPm9wZXJhbmQpOwot
CisgICAgICAgIAogICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwgaXNDb25jcmV0
ZShkYXRhLT5mb3JtYXQpLCBkYXRhLT5mb3JtYXQpOwotCisgICAgICAgIAogICAgICAgICBzd2l0
Y2ggKGRhdGEtPmZvcm1hdCkgewogICAgICAgICBjYXNlIEZsdXNoZWREb3VibGU6CiAgICAgICAg
ICAgICBzZXREb3VibGUobV9vdXQubG9hZERvdWJsZShhZGRyZXNzRm9yKGRhdGEtPm1hY2hpbmVM
b2NhbCkpKTsKQEAgLTIyNTUsNyArMjI1Miw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZVB1dFN0YWNrKCkK
ICAgICB7CiAgICAgICAgIFN0YWNrQWNjZXNzRGF0YSogZGF0YSA9IG1fbm9kZS0+c3RhY2tBY2Nl
c3NEYXRhKCk7CkBAIC0yMjY1LDMxICsyMjYyLDMxIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBt
X291dC5zdG9yZTY0KHZhbHVlLCBhZGRyZXNzRm9yKGRhdGEtPm1hY2hpbmVMb2NhbCkpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgIGNhc2Ug
Rmx1c2hlZERvdWJsZTogewogICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93RG91YmxlKG1f
bm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgbV9vdXQuc3RvcmVEb3VibGUodmFsdWUsIGFk
ZHJlc3NGb3IoZGF0YS0+bWFjaGluZUxvY2FsKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQotCisgICAgICAgICAgICAKICAgICAgICAgY2FzZSBGbHVzaGVkSW50MzI6IHsKICAgICAg
ICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAg
ICAgICAgbV9vdXQuc3RvcmUzMih2YWx1ZSwgcGF5bG9hZEZvcihkYXRhLT5tYWNoaW5lTG9jYWwp
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAg
ICBjYXNlIEZsdXNoZWRJbnQ1MjogewogICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SW50
NTIobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBtX291dC5zdG9yZTY0KHZhbHVlLCBh
ZGRyZXNzRm9yKGRhdGEtPm1hY2hpbmVMb2NhbCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgRmx1c2hlZENlbGw6IHsKICAgICAg
ICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAg
ICAgICBtX291dC5zdG9yZTY0KHZhbHVlLCBhZGRyZXNzRm9yKGRhdGEtPm1hY2hpbmVMb2NhbCkp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAg
IGNhc2UgRmx1c2hlZEJvb2xlYW46IHsKICAgICAgICAgICAgIHNwZWN1bGF0ZUJvb2xlYW4obV9u
b2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBtX291dC5zdG9yZTY0KApAQCAtMjI5NywxMyAr
MjI5NCwxMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGFkZHJlc3NGb3IoZGF0YS0+bWFj
aGluZUxvY2FsKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCisgICAgICAgICAg
ICAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25v
ZGUsICJCYWQgZmx1c2ggZm9ybWF0Iik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZU5vT3AoKQogICAgIHsKICAgICAgICAgREZH
X05PREVfRE9fVE9fQ0hJTERSRU4obV9ncmFwaCwgbV9ub2RlLCBzcGVjdWxhdGUpOwpAQCAtMjMz
OSw3ICsyMzM2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0
aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKEludDY0LCBmYXN0
UmVzdWx0LCBzbG93UmVzdWx0KSk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxlVG9U
aGlzKCkKICAgICB7CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dy
YXBoLmdsb2JhbE9iamVjdEZvcihtX29yaWdpbi5zZW1hbnRpYyk7CkBAIC0yNDUwLDcgKzI0NDcs
NyBAQCBwcml2YXRlOgogICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoSGVhcEJp
Z0ludFVzZSkpIHsKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SGVhcEJpZ0ludChtX25v
ZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0hlYXBCaWdJbnQo
bV9ub2RlLT5jaGlsZDIoKSk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIHJl
c3VsdCA9IHZtQ2FsbChwb2ludGVyVHlwZSgpLCBvcGVyYXRpb25TdWJIZWFwQmlnSW50LCB3ZWFr
UG9pbnRlcihnbG9iYWxPYmplY3QpLCBsZWZ0LCByaWdodCk7CiAgICAgICAgICAgICBzZXRKU1Zh
bHVlKHJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0yNTA0LDcgKzI1MDEsNyBAQCBw
cml2YXRlOgogICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoSGVhcEJpZ0ludFVz
ZSkpIHsKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SGVhcEJpZ0ludChtX25vZGUtPmNo
aWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0hlYXBCaWdJbnQobV9ub2Rl
LT5jaGlsZDIoKSk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9
IHZtQ2FsbChJbnQ2NCwgb3BlcmF0aW9uTXVsSGVhcEJpZ0ludCwgd2Vha1BvaW50ZXIoZ2xvYmFs
T2JqZWN0KSwgbGVmdCwgcmlnaHQpOwogICAgICAgICAgICAgc2V0SlNWYWx1ZShyZXN1bHQpOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjYzMCw3ICsyNjI3LDcgQEAgcHJpdmF0ZToKIAogICAg
ICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZChtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hp
bGQxKCkpLnJlc3VsdFR5cGUoKSk7CiAgICAgICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFu
ZChtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLnJlc3VsdFR5cGUoKSk7Ci0KKyAgICAg
ICAgICAgIAogICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQgPSBtX291dC5wYXRj
aHBvaW50KEludDY0KTsKICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKGxl
ZnQpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIocmlnaHQpOwpAQCAt
MjcxNSw3ICsyNzEyLDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBzZXRKU1ZhbHVlKHBhdGNocG9p
bnQpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZVN0ckNhdCgpCiAgICAgewogICAg
ICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RG
b3IobV9vcmlnaW4uc2VtYW50aWMpOwpAQCAtMjczNSw3ICsyNzMyLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgfQogICAgICAgICBzZXRKU1ZhbHVlKHJlc3VsdCk7CiAgICAgfQotCisgICAgCiAgICAg
dm9pZCBjb21waWxlQXJpdGhBZGRPclN1YigpCiAgICAgewogICAgICAgICBib29sIGlzU3ViID0g
IG1fbm9kZS0+b3AoKSA9PSBBcml0aFN1YjsKQEAgLTI3NTUsNyArMjc1Miw3IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICBzZXRJbnQzMihyZXN1bHQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgSW50NTJSZXBVc2U6IHsKICAgICAg
ICAgICAgIGlmICghYWJzdHJhY3RWYWx1ZShtX25vZGUtPmNoaWxkMSgpKS5jb3VsZEJlVHlwZShT
cGVjTm9uSW50MzJBc0ludDUyKQogICAgICAgICAgICAgICAgICYmICFhYnN0cmFjdFZhbHVlKG1f
bm9kZS0+Y2hpbGQyKCkpLmNvdWxkQmVUeXBlKFNwZWNOb25JbnQzMkFzSW50NTIpKSB7CkBAIC0y
Nzc0LDcgKzI3NzEsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgc2V0SW50NTIocmVzdWx0KTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICBj
YXNlIERvdWJsZVJlcFVzZTogewogICAgICAgICAgICAgTFZhbHVlIEMxID0gbG93RG91YmxlKG1f
bm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIEMyID0gbG93RG91YmxlKG1fbm9k
ZS0+Y2hpbGQyKCkpOwpAQCAtMjgxNywxNCArMjgxNCwxNCBAQCBwcml2YXRlOgogICAgICAgICBM
VmFsdWUgcmVzdWx0ID0gbV9vdXQuY2FzdFRvSW50MzIodm1DYWxsKEludDY0LCBvcGVyYXRpb25B
cml0aENsejMyLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3QpLCBhcmd1bWVudCkpOwogICAgICAg
ICBzZXRJbnQzMihyZXN1bHQpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZUFyaXRo
TXVsKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsK
ICAgICAgICAgY2FzZSBJbnQzMlVzZTogewogICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dJ
bnQzMihtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0lu
dDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIExWYWx1
ZSByZXN1bHQ7CiAKICAgICAgICAgICAgIGlmICghc2hvdWxkQ2hlY2tPdmVyZmxvdyhtX25vZGUt
PmFyaXRoTW9kZSgpKSkKQEAgLTI4MzQsMjUgKzI4MzEsMjUgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICBibGVzc1NwZWN1bGF0aW9uKHNwZWN1bGF0aW9uLCBPdmVyZmxvdywgbm9WYWx1ZSgp
LCBudWxscHRyLCBtX29yaWdpbik7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gc3BlY3VsYXRp
b247CiAgICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNob3Vs
ZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CiAgICAgICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgc2xvd0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAg
ICAgICAgIG1fb3V0Lm5vdFplcm8zMihyZXN1bHQpLCB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJh
cmVseShzbG93Q2FzZSkpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgTEJh
c2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9u
KTsKICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoTmVnYXRpdmVaZXJvLCBub1ZhbHVlKCksIG51
bGxwdHIsIG1fb3V0Lmxlc3NUaGFuKGxlZnQsIG1fb3V0LmludDMyWmVybykpOwogICAgICAgICAg
ICAgICAgIHNwZWN1bGF0ZShOZWdhdGl2ZVplcm8sIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQu
bGVzc1RoYW4ocmlnaHQsIG1fb3V0LmludDMyWmVybykpOwogICAgICAgICAgICAgICAgIG1fb3V0
Lmp1bXAoY29udGludWF0aW9uKTsKICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250
aW51YXRpb24sIGxhc3ROZXh0KTsKICAgICAgICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAg
ICAgICAgICBzZXRJbnQzMihyZXN1bHQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
LQorICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgSW50NTJSZXBVc2U6IHsKICAgICAgICAgICAg
IEludDUyS2luZCBraW5kOwogICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dXaGljaGV2ZXJJ
bnQ1MihtX25vZGUtPmNoaWxkMSgpLCBraW5kKTsKQEAgLTI4NjQsMjEgKzI4NjEsMjEgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIGlmIChzaG91bGRDaGVja05lZ2F0aXZlWmVybyhtX25vZGUtPmFy
aXRoTW9kZSgpKSkgewogICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNlID0gbV9v
dXQubmV3QmxvY2soKTsKICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24g
PSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
bV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgICAgICBtX291dC5ub3RaZXJvNjQocmVzdWx0
KSwgdXN1YWxseShjb250aW51YXRpb24pLCByYXJlbHkoc2xvd0Nhc2UpKTsKLQorICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBw
ZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7CiAgICAgICAgICAgICAgICAgc3BlY3VsYXRl
KE5lZ2F0aXZlWmVybywgbm9WYWx1ZSgpLCBudWxscHRyLCBtX291dC5sZXNzVGhhbihsZWZ0LCBt
X291dC5pbnQ2NFplcm8pKTsKICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoTmVnYXRpdmVaZXJv
LCBub1ZhbHVlKCksIG51bGxwdHIsIG1fb3V0Lmxlc3NUaGFuKHJpZ2h0LCBtX291dC5pbnQ2NFpl
cm8pKTsKICAgICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAgICAgICAg
ICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAg
ICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgc2V0SW50NTIocmVzdWx0KTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICBjYXNl
IERvdWJsZVJlcFVzZTogewogICAgICAgICAgICAgc2V0RG91YmxlKAogICAgICAgICAgICAgICAg
IG1fb3V0LmRvdWJsZU11bChsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0RvdWJsZSht
X25vZGUtPmNoaWxkMigpKSkpOwpAQCAtMjg5OSw3ICsyODk2LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgaWYgKG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKEhlYXBCaWdJbnRVc2UpKSB7CiAgICAgICAg
ICAgICBMVmFsdWUgbGVmdCA9IGxvd0hlYXBCaWdJbnQobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAg
ICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dIZWFwQmlnSW50KG1fbm9kZS0+Y2hpbGQyKCkpOwot
CisgICAgICAgICAgICAKICAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSB2bUNhbGwocG9pbnRl
clR5cGUoKSwgb3BlcmF0aW9uRGl2SGVhcEJpZ0ludCwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0
KSwgbGVmdCwgcmlnaHQpOwogICAgICAgICAgICAgc2V0SlNWYWx1ZShyZXN1bHQpOwogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtMjkzMiw3ICsyOTI5LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICAg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKG51bWVyYXRvckNvbnRpbnVhdGlvbiwgaW5uZXJMYXN0TmV4
dCk7CiAgICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNob3Vs
ZENoZWNrT3ZlcmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBM
QmFzaWNCbG9jayB1bnNhZmVEZW5vbWluYXRvciA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKQEAg
LTI5NTksNyArMjk1Niw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICBjYXNlIERvdWJsZVJlcFVzZTogewogICAgICAg
ICAgICAgc2V0RG91YmxlKG1fb3V0LmRvdWJsZURpdigKICAgICAgICAgICAgICAgICBsb3dEb3Vi
bGUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKSkpOwpAQCAt
Mjk3MSw3ICsyOTY4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxlVmFsdWVNb2QoKQogICAgIHsKICAgICAg
ICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9y
KG1fb3JpZ2luLnNlbWFudGljKTsKQEAgLTMwNDMsMTMgKzMwNDAsMTMgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIHNldEludDMyKHJlbWFpbmRlcik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQotCisgICAgICAgICAgICAKICAgICAgICAgY2FzZSBEb3VibGVSZXBVc2U6IHsKICAgICAg
ICAgICAgIHNldERvdWJsZSgKICAgICAgICAgICAgICAgICBtX291dC5kb3VibGVNb2QobG93RG91
YmxlKG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDIoKSkpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2lu
ZCIpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMDY4LDcgKzMwNjUsNyBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgc2V0SW50MzIobGVmdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQotCisgICAgICAgICAgICAKICAgICAgICAgY2FzZSBEb3VibGVSZXBVc2U6IHsKICAgICAgICAg
ICAgIGlmIChtX25vZGUtPm51bUNoaWxkcmVuKCkgPT0gMikgewogICAgICAgICAgICAgICAgIExW
YWx1ZSBsZWZ0ID0gbG93RG91YmxlKG1fZ3JhcGguY2hpbGQobV9ub2RlLCAwKSk7CkBAIC0zMTI4
LDEzICszMTI1LDEzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBzZXREb3VibGUodm1DYWxsKERv
dWJsZSwgbV9ub2RlLT5vcCgpID09IEFyaXRoTWluID8gb3BlcmF0aW9uQXJpdGhNaW5NdWx0aXBs
ZURvdWJsZSA6IG9wZXJhdGlvbkFyaXRoTWF4TXVsdGlwbGVEb3VibGUsIGJ1ZmZlciwgbV9vdXQu
Y29uc3RJbnQzMihtX25vZGUtPm51bUNoaWxkcmVuKCkpKSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQotCisgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxlQXJpdGhB
YnMoKQogICAgIHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3Jh
cGguZ2xvYmFsT2JqZWN0Rm9yKG1fb3JpZ2luLnNlbWFudGljKTsKQEAgLTMxNTEsMTIgKzMxNDgs
MTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHNldEludDMyKHJlc3VsdCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQotCisgICAgICAgICAgICAKICAgICAgICAgY2FzZSBEb3VibGVS
ZXBVc2U6IHsKICAgICAgICAgICAgIHNldERvdWJsZShtX291dC5kb3VibGVBYnMobG93RG91Ymxl
KG1fbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCisg
ICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDogewogICAgICAgICAgICAgREZHX0FTU0VSVCht
X2dyYXBoLCBtX25vZGUsIG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFVudHlwZWRVc2Us
IG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpKTsKICAgICAgICAgICAgIExWYWx1ZSBhcmd1bWVu
dCA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC0zMTg2LDcgKzMxODMsNyBAQCBw
cml2YXRlOgogICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoSGVhcEJpZ0ludFVz
ZSkpIHsKICAgICAgICAgICAgIExWYWx1ZSBiYXNlID0gbG93SGVhcEJpZ0ludChtX25vZGUtPmNo
aWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSBleHBvbmVudCA9IGxvd0hlYXBCaWdJbnQobV9u
b2RlLT5jaGlsZDIoKSk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIHJlc3Vs
dCA9IHZtQ2FsbChwb2ludGVyVHlwZSgpLCBvcGVyYXRpb25Qb3dIZWFwQmlnSW50LCB3ZWFrUG9p
bnRlcihnbG9iYWxPYmplY3QpLCBiYXNlLCBleHBvbmVudCk7CiAgICAgICAgICAgICBzZXRKU1Zh
bHVlKHJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0zNTI2LDcgKzM1MjMsNyBAQCBw
cml2YXRlOgogICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAg
ICAgICAgIGNhc2UgSW50MzJVc2U6IHsKICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0lu
dDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIExWYWx1
ZSByZXN1bHQ7CiAgICAgICAgICAgICBpZiAoIXNob3VsZENoZWNrT3ZlcmZsb3cobV9ub2RlLT5h
cml0aE1vZGUoKSkpCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQubmVnKHZhbHVlKTsK
QEAgLTM1NDIsNyArMzUzOSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBzZXRJbnQzMihyZXN1
bHQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAg
ICAgIGNhc2UgSW50NTJSZXBVc2U6IHsKICAgICAgICAgICAgIGlmICghYWJzdHJhY3RWYWx1ZSht
X25vZGUtPmNoaWxkMSgpKS5jb3VsZEJlVHlwZShTcGVjTm9uSW50MzJBc0ludDUyKSkgewogICAg
ICAgICAgICAgICAgIEludDUyS2luZCBraW5kOwpAQCAtMzU1Myw3ICszNTUwLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICBzZXRJbnQ1MihyZXN1bHQsIGtpbmQpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQotCisgICAgICAgICAgICAKICAgICAgICAgICAgIExW
YWx1ZSB2YWx1ZSA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgQ2hl
Y2tWYWx1ZSogcmVzdWx0ID0gbV9vdXQuc3BlY3VsYXRlU3ViKG1fb3V0LmludDY0WmVybywgdmFs
dWUpOwogICAgICAgICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEludDUyT3ZlcmZsb3cs
IG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwpAQCAtMzU2MiwxOCArMzU1OSwxOCBAQCBw
cml2YXRlOgogICAgICAgICAgICAgc2V0SW50NTIocmVzdWx0KTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICBjYXNlIERvdWJsZVJlcFVzZTog
ewogICAgICAgICAgICAgc2V0RG91YmxlKG1fb3V0LmRvdWJsZU5lZyhsb3dEb3VibGUobV9ub2Rl
LT5jaGlsZDEoKSkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0KKyAgICAgICAg
ICAgIAogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1f
bm9kZSwgIkJhZCB1c2Uga2luZCIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZUJpdE5vdCgpCiAgICAgewogICAgICAg
ICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Io
bV9vcmlnaW4uc2VtYW50aWMpOwpAQCAtMzYyOCwyMCArMzYyNSwyMCBAQCBwcml2YXRlOgogICAg
ICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoSGVhcEJpZ0ludFVzZSkpIHsKICAgICAg
ICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SGVhcEJpZ0ludChtX25vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0hlYXBCaWdJbnQobV9ub2RlLT5jaGlsZDIoKSk7
Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IHZtQ2FsbChwb2lu
dGVyVHlwZSgpLCBvcGVyYXRpb25CaXRBbmRIZWFwQmlnSW50LCB3ZWFrUG9pbnRlcihnbG9iYWxP
YmplY3QpLCBsZWZ0LCByaWdodCk7CiAgICAgICAgICAgICBzZXRKU1ZhbHVlKHJlc3VsdCk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgZW1pdEJp
bmFyeUJpdE9wU25pcHBldDxKSVRCaXRBbmRHZW5lcmF0b3I+KG9wZXJhdGlvblZhbHVlQml0QW5k
KTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVBcml0aEJpdEFuZCgpCiAgICAgewog
ICAgICAgICBzZXRJbnQzMihtX291dC5iaXRBbmQobG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSks
IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBj
b21waWxlVmFsdWVCaXRPcigpCiAgICAgewogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9vcmlnaW4uc2VtYW50aWMpOwpAQCAt
MzY3Myw3ICszNjcwLDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIHNldEludDMyKG1fb3V0
LmJpdE9yKGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dJbnQzMihtX25vZGUtPmNoaWxk
MigpKSkpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZVZhbHVlQml0WG9yKCkKICAg
ICB7CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2Jh
bE9iamVjdEZvcihtX29yaWdpbi5zZW1hbnRpYyk7CkBAIC0zNzA1LDcgKzM3MDIsNyBAQCBwcml2
YXRlOgogICAgIHsKICAgICAgICAgc2V0SW50MzIobV9vdXQuYml0WG9yKGxvd0ludDMyKG1fbm9k
ZS0+Y2hpbGQxKCkpLCBsb3dJbnQzMihtX25vZGUtPmNoaWxkMigpKSkpOwogICAgIH0KLQorICAg
IAogICAgIHZvaWQgY29tcGlsZVZhbHVlQml0UlNoaWZ0KCkKICAgICB7CiAgICAgICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX29yaWdp
bi5zZW1hbnRpYyk7CkBAIC0zNzQ2LDE0ICszNzQzLDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKSwKICAgICAgICAgICAgIG1fb3V0LmJpdEFuZChs
b3dJbnQzMihtX25vZGUtPmNoaWxkMigpKSwgbV9vdXQuY29uc3RJbnQzMigzMSkpKSk7IC8vIEZJ
WE1FOiBJIGRvbid0IHRoaW5rIHRoYXQgdGhlIEJpdEFuZCBpcyB1c2VmdWwsIGl0IGlzIGluY2x1
ZGVkIGluIHRoZSBzZW1hbnRpY3Mgb2Ygc2hpZnQgaW4gQjMKICAgICB9Ci0KKyAgICAKICAgICB2
b2lkIGNvbXBpbGVBcml0aEJpdExTaGlmdCgpCiAgICAgewogICAgICAgICBzZXRJbnQzMihtX291
dC5zaGwoCiAgICAgICAgICAgICBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKSwKICAgICAgICAg
ICAgIG1fb3V0LmJpdEFuZChsb3dJbnQzMihtX25vZGUtPmNoaWxkMigpKSwgbV9vdXQuY29uc3RJ
bnQzMigzMSkpKSk7IC8vIEZJWE1FOiBJIGRvbid0IHRoaW5rIHRoYXQgdGhlIEJpdEFuZCBpcyB1
c2VmdWwsIGl0IGlzIGluY2x1ZGVkIGluIHRoZSBzZW1hbnRpY3Mgb2Ygc2hpZnQgaW4gQjMKICAg
ICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZUJpdExTaGlmdCgpCiAgICAgewogICAg
ICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RG
b3IobV9vcmlnaW4uc2VtYW50aWMpOwpAQCAtMzc2MSw3ICszNzU4LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgaWYgKG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKEhlYXBCaWdJbnRVc2UpKSB7CiAgICAg
ICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0hlYXBCaWdJbnQobV9ub2RlLT5jaGlsZDEoKSk7CiAg
ICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dIZWFwQmlnSW50KG1fbm9kZS0+Y2hpbGQyKCkp
OwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSB2bUNhbGwocG9p
bnRlclR5cGUoKSwgb3BlcmF0aW9uQml0TFNoaWZ0SGVhcEJpZ0ludCwgd2Vha1BvaW50ZXIoZ2xv
YmFsT2JqZWN0KSwgbGVmdCwgcmlnaHQpOwogICAgICAgICAgICAgc2V0SlNWYWx1ZShyZXN1bHQp
OwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzc4MSw3ICszNzc4LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpLAogICAgICAgICAgICAgbV9vdXQu
Yml0QW5kKGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpLCBtX291dC5jb25zdEludDMyKDMxKSkp
KTsgLy8gRklYTUU6IEkgZG9uJ3QgdGhpbmsgdGhhdCB0aGUgQml0QW5kIGlzIHVzZWZ1bCwgaXQg
aXMgaW5jbHVkZWQgaW4gdGhlIHNlbWFudGljcyBvZiBzaGlmdCBpbiBCMwogICAgIH0KLQorICAg
IAogICAgIHZvaWQgY29tcGlsZVVJbnQzMlRvTnVtYmVyKCkKICAgICB7CiAgICAgICAgIExWYWx1
ZSB2YWx1ZSA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwpAQCAtMzc5NCw3ICszNzkxLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIG51bGxw
dHIsIG1fb3V0Lmxlc3NUaGFuKHZhbHVlLCBtX291dC5pbnQzMlplcm8pKTsKICAgICAgICAgc2V0
SW50MzIodmFsdWUpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZUNoZWNrU3RydWN0
dXJlKCkKICAgICB7CiAgICAgICAgIEV4aXRLaW5kIGV4aXRLaW5kOwpAQCAtMzgwNyw3ICszODA0
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBDZWxsVXNlOgogICAgICAgICBjYXNlIEtub3du
Q2VsbFVzZTogewogICAgICAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hp
bGQxKCkpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIGNoZWNrU3RydWN0dXJlKAogICAg
ICAgICAgICAgICAgIG1fb3V0LmxvYWQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJ
RCksIGpzVmFsdWVWYWx1ZShjZWxsKSwKICAgICAgICAgICAgICAgICBleGl0S2luZCwgbV9ub2Rl
LT5zdHJ1Y3R1cmVTZXQoKSwKQEAgLTM4ODEsMTIgKzM4NzgsMTIgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAgICAgICB9
CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxlQ2hlY2tJc0NvbnN0YW50KCkKICAgICB7
CiAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxsVXNlKSB7CiAg
ICAgICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7Ci0KKyAg
ICAgICAgCiAgICAgICAgICAgICBzcGVjdWxhdGUoCiAgICAgICAgICAgICAgICAgQmFkQ29uc3Rh
bnRWYWx1ZSwganNWYWx1ZVZhbHVlKGNlbGwpLCBtX25vZGUtPmNoaWxkMSgpLm5vZGUoKSwKICAg
ICAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChjZWxsLCB3ZWFrUG9pbnRlcihtX25vZGUtPmNl
bGxPcGVyYW5kKCktPmNlbGwoKSkpKTsKQEAgLTM4OTksNyArMzg5Niw3IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAgICAgbV9vdXQubm90RXF1YWwodmFsdWUsIG1fb3V0LmNvbnN0SW50NjQoSlNW
YWx1ZTo6ZW5jb2RlKG1fbm9kZS0+Y29uc3RhbnQoKS0+dmFsdWUoKSkpKSk7CiAgICAgICAgIH0K
ICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVDaGVja0JhZFZhbHVlKCkKICAgICB7CiAg
ICAgICAgIHRlcm1pbmF0ZShCYWRDb25zdGFudFZhbHVlKTsKQEAgLTM5NjcsMTUgKzM5NjQsMTUg
QEAgcHJpdmF0ZToKICAgICAgICAgTFZhbHVlIGV4ZWN1dGFibGUgPSBnZXRFeGVjdXRhYmxlKGNl
bGwpOwogICAgICAgICBzZXRKU1ZhbHVlKGV4ZWN1dGFibGUpOwogICAgIH0KLQorICAgIAogICAg
IHZvaWQgY29tcGlsZUFycmF5aWZ5KCkKICAgICB7CiAgICAgICAgIExWYWx1ZSBjZWxsID0gbG93
Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgTFZhbHVlIHByb3BlcnR5ID0gISFtX25v
ZGUtPmNoaWxkMigpID8gbG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSkgOiBudWxscHRyOwotCisg
ICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayB1bmV4cGVjdGVkU3RydWN0dXJlID0gbV9vdXQu
bmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3
QmxvY2soKTsKLQorICAgICAgICAKICAgICAgICAgYXV0byBpc1VuZXhwZWN0ZWRBcnJheSA9IFsm
XSAoTFZhbHVlIGNlbGwpIHsKICAgICAgICAgICAgIGlmIChtX25vZGUtPm9wKCkgPT0gQXJyYXlp
ZnkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG1fb3V0LmxvZ2ljYWxOb3QoaXNBcnJheVR5cGVG
b3JBcnJheWlmeShjZWxsLCBtX25vZGUtPmFycmF5TW9kZSgpKSk7CkBAIC0zOTg3LDcgKzM5ODQs
NyBAQCBwcml2YXRlOgogICAgICAgICBtX291dC5icmFuY2goaXNVbmV4cGVjdGVkQXJyYXkoY2Vs
bCksIHJhcmVseSh1bmV4cGVjdGVkU3RydWN0dXJlKSwgdXN1YWxseShjb250aW51YXRpb24pKTsK
IAogICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKHVuZXhwZWN0
ZWRTdHJ1Y3R1cmUsIGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgCiAgICAgICAgIGlmIChwcm9w
ZXJ0eSkgewogICAgICAgICAgICAgc3dpdGNoIChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkg
ewogICAgICAgICAgICAgY2FzZSBBcnJheTo6SW50MzI6CkBAIC00MDAxLDMyICszOTk4LDMyIEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KLQorICAgICAgICAKICAgICAgICAgc3dpdGNoIChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUo
KSkgewogICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKLSAgICAgICAgICAgIHZtQ2FsbChwb2lu
dGVyVHlwZSgpLCBvcGVyYXRpb25FbnN1cmVJbnQzMiwgbV92bVZhbHVlLCBjZWxsKTsKKyAgICAg
ICAgICAgIHZtQ2FsbChWb2lkLCBvcGVyYXRpb25FbnN1cmVJbnQzMiwgbV92bVZhbHVlLCBjZWxs
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6Ci0gICAg
ICAgICAgICB2bUNhbGwocG9pbnRlclR5cGUoKSwgb3BlcmF0aW9uRW5zdXJlRG91YmxlLCBtX3Zt
VmFsdWUsIGNlbGwpOworICAgICAgICAgICAgdm1DYWxsKFZvaWQsIG9wZXJhdGlvbkVuc3VyZURv
dWJsZSwgbV92bVZhbHVlLCBjZWxsKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEFycmF5OjpDb250aWd1b3VzOgotICAgICAgICAgICAgdm1DYWxsKHBvaW50ZXJUeXBlKCksIG9w
ZXJhdGlvbkVuc3VyZUNvbnRpZ3VvdXMsIG1fdm1WYWx1ZSwgY2VsbCk7CisgICAgICAgICAgICB2
bUNhbGwoVm9pZCwgb3BlcmF0aW9uRW5zdXJlQ29udGlndW91cywgbV92bVZhbHVlLCBjZWxsKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6CiAg
ICAgICAgIGNhc2UgQXJyYXk6OlNsb3dQdXRBcnJheVN0b3JhZ2U6Ci0gICAgICAgICAgICB2bUNh
bGwocG9pbnRlclR5cGUoKSwgb3BlcmF0aW9uRW5zdXJlQXJyYXlTdG9yYWdlLCBtX3ZtVmFsdWUs
IGNlbGwpOworICAgICAgICAgICAgdm1DYWxsKFZvaWQsIG9wZXJhdGlvbkVuc3VyZUFycmF5U3Rv
cmFnZSwgbV92bVZhbHVlLCBjZWxsKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCBhcnJheSB0
eXBlIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAg
ICBzcGVjdWxhdGUoQmFkSW5kZXhpbmdUeXBlLCBqc1ZhbHVlVmFsdWUoY2VsbCksIG51bGxwdHIs
IGlzVW5leHBlY3RlZEFycmF5KGNlbGwpKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRp
b24pOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxh
c3ROZXh0KTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVQdXRTdHJ1Y3R1cmUoKQog
ICAgIHsKICAgICAgICAgUmVnaXN0ZXJlZFN0cnVjdHVyZSBvbGRTdHJ1Y3R1cmUgPSBtX25vZGUt
PnRyYW5zaXRpb24oKS0+cHJldmlvdXM7CkBAIC00MDM3LDcgKzQwMzQsNyBAQCBwcml2YXRlOgog
ICAgICAgICBBU1NFUlQob2xkU3RydWN0dXJlLT50eXBlSW5mbygpLmlubGluZVR5cGVGbGFncygp
ID09IG5ld1N0cnVjdHVyZS0+dHlwZUluZm8oKS5pbmxpbmVUeXBlRmxhZ3MoKSk7CiAgICAgICAg
IEFTU0VSVChvbGRTdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IG5ld1N0cnVjdHVyZS0+
dHlwZUluZm8oKS50eXBlKCkpOwogCi0gICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hp
bGQxKCkpOyAKIAogICAgICAgICBhdXRvJiBoZWFwID0gbV9ub2RlLT50cmFuc2l0aW9uKCktPm5l
eHQtPnRyYW5zaXRpb25LaW5kKCkgPT0gVHJhbnNpdGlvbktpbmQ6OlByb3BlcnR5RGVsZXRpb24g
PyBtX2hlYXBzLkpTQ2VsbEhlYWRlckFuZE5hbWVkUHJvcGVydGllcyA6IG1faGVhcHMuSlNDZWxs
X3N0cnVjdHVyZUlEOwogICAgICAgICBUeXBlZFBvaW50ZXIgcG9pbnRlciB7IGhlYXAsIG1fb3V0
LmFkZFB0cihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRC5vZmZzZXQoKSkgfTsKQEAg
LTQwNDUsNyArNDA0Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIG1fb3V0LnN0b3JlMzIoCiAgICAg
ICAgICAgICB3ZWFrU3RydWN0dXJlSUQobmV3U3RydWN0dXJlKSwgcG9pbnRlcik7CiAgICAgfQot
CisgICAgCiAgICAgdm9pZCBjb21waWxlR2V0QnlJZChBY2Nlc3NUeXBlIHR5cGUpCiAgICAgewog
ICAgICAgICBBU1NFUlQodHlwZSA9PSBBY2Nlc3NUeXBlOjpHZXRCeUlkIHx8IHR5cGUgPT0gQWNj
ZXNzVHlwZTo6VHJ5R2V0QnlJZCB8fCB0eXBlID09IEFjY2Vzc1R5cGU6OkdldEJ5SWREaXJlY3Qp
OwpAQCAtNDA1NSwyMCArNDA1MiwyMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgc2V0SlNWYWx1
ZShnZXRCeUlkKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIHR5cGUpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQotCisgICAgICAgICAgICAKICAgICAgICAgY2FzZSBVbnR5cGVk
VXNlOiB7CiAgICAgICAgICAgICAvLyBUaGlzIGlzIHByZXR0eSB3ZWlyZCwgc2luY2Ugd2UgZHVw
bGljYXRlIHRoZSBzbG93IHBhdGggYm90aCBoZXJlIGFuZCBpbiB0aGUKICAgICAgICAgICAgIC8v
IGNvZGUgZ2VuZXJhdGVkIGJ5IHRoZSBJQy4gV2Ugc2hvdWxkIGludmVzdGlnYXRlIG1ha2luZyB0
aGlzIGxlc3MgYmFkLgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyNzgzMAogICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1
ZShtX25vZGUtPmNoaWxkMSgpKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNC
bG9jayBjZWxsQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9j
ayBub3RDZWxsQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9j
ayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgICAgICAKICAgICAg
ICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBpc0NlbGwodmFsdWUsIHByb3Zl
blR5cGUobV9ub2RlLT5jaGlsZDEoKSkpLCB1bnN1cmUoY2VsbENhc2UpLCB1bnN1cmUobm90Q2Vs
bENhc2UpKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4
dCA9IG1fb3V0LmFwcGVuZFRvKGNlbGxDYXNlLCBub3RDZWxsQ2FzZSk7CiAgICAgICAgICAgICBW
YWx1ZUZyb21CbG9jayBjZWxsUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGdldEJ5SWQodmFsdWUsIHR5
cGUpKTsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKQEAgLTQwODEsMTIg
KzQwNzgsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICB3ZWFrUG9pbnRlcihnbG9iYWxP
YmplY3QpLCB2YWx1ZSwKICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludFB0cihtX25vZGUt
PmNhY2hlYWJsZUlkZW50aWZpZXIoKS5yYXdCaXRzKCkpKSk7CiAgICAgICAgICAgICBtX291dC5q
dW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgICAgICBzZXRKU1ZhbHVlKG1f
b3V0LnBoaShJbnQ2NCwgY2VsbFJlc3VsdCwgbm90Q2VsbFJlc3VsdCkpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOwogICAg
ICAgICAgICAgcmV0dXJuOwpAQCAtNDIyMSwyMCArNDIxOCwyMCBAQCBwcml2YXRlOgogICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgIExWYWx1ZSBiYXNlID0gbG93SlNWYWx1ZShtX25vZGUtPmNo
aWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSB0aGlzVmFsdWUgPSBsb3dKU1ZhbHVlKG1fbm9k
ZS0+Y2hpbGQyKCkpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGJh
c2VDZWxsQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBu
b3RDZWxsQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayB0
aGlzVmFsdWVDZWxsQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNC
bG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgICAgICAKICAg
ICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBpc0NlbGwoYmFzZSwgcHJv
dmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSksIHVuc3VyZShiYXNlQ2VsbENhc2UpLCB1bnN1cmUo
bm90Q2VsbENhc2UpKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBs
YXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGJhc2VDZWxsQ2FzZSwgdGhpc1ZhbHVlQ2VsbENhc2Up
OwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAg
ICAgICBpc0NlbGwodGhpc1ZhbHVlLCBwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQyKCkpKSwgdW5z
dXJlKHRoaXNWYWx1ZUNlbGxDYXNlKSwgdW5zdXJlKG5vdENlbGxDYXNlKSk7Ci0KKyAgICAgICAg
ICAgIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8odGhpc1ZhbHVlQ2VsbENhc2UsIG5vdENl
bGxDYXNlKTsKICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGNlbGxSZXN1bHQgPSBtX291dC5h
bmNob3IoZ2V0QnlJZFdpdGhUaGlzKGJhc2UsIHRoaXNWYWx1ZSkpOwogICAgICAgICAgICAgbV9v
dXQuanVtcChjb250aW51YXRpb24pOwpAQCAtNDI0NSwxMSArNDI0MiwxMSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGJhc2UsIHRoaXNWYWx1
ZSwKICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludFB0cihtX25vZGUtPmNhY2hlYWJsZUlk
ZW50aWZpZXIoKS5yYXdCaXRzKCkpKSk7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVh
dGlvbik7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGlu
dWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShJbnQ2
NCwgY2VsbFJlc3VsdCwgbm90Q2VsbFJlc3VsdCkpOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAg
ICAgfQogCiAgICAgdm9pZCBjb21waWxlR2V0QnlJZFdpdGhUaGlzTWVnYW1vcnBoaWMoKQpAQCAt
NDU2Miw3ICs0NTU5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKLQorICAgICAgICAKICAgICAgICAgcmV0
dXJuIHBhdGNocG9pbnQ7CiAgICAgfQogCkBAIC00ODI0LDcgKzQ4MjEsNyBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29t
cGlsZVB1dFByaXZhdGVOYW1lQnlJZCgpCiAgICAgewogICAgICAgICBERkdfQVNTRVJUKG1fZ3Jh
cGgsIG1fbm9kZSwgbV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSwgbV9ub2Rl
LT5jaGlsZDEoKS51c2VLaW5kKCkpOwpAQCAtNDk0Nyw3ICs0OTQ0LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtRXh0cmFBcmdzOyBpLS07KQogICAgICAgICAgICAg
YXJnRWRnZXNbaV0gPSBtX2dyYXBoLmNoaWxkKG1fbm9kZSwgMiArIGkpOwogICAgICAgICBFZGdl
IHN0b3JhZ2VFZGdlID0gbV9ncmFwaC5jaGlsZChtX25vZGUsIDIgKyBudW1FeHRyYUFyZ3MpOwot
CisgICAgICAgIAogICAgICAgICBpZiAoIXN0b3JhZ2VFZGdlKSB7CiAgICAgICAgICAgICBhdXRv
IGNhbGxXaXRoMCA9IFsmXSAoYXV0byogb3BlcmF0aW9uKSB7CiAgICAgICAgICAgICAgICAgQVNT
RVJUKG51bUV4dHJhQXJncyA9PSAwKTsKQEAgLTUwMDgsMTAgKzUwMDUsMTAgQEAgcHJpdmF0ZToK
IAogICAgICAgICBUeXBlZFBvaW50ZXIgcG9pbnRlciA9IHBvaW50ZXJJbnRvVHlwZWRBcnJheShz
dG9yYWdlLCBpbmRleCwgdHlwZSk7CiAgICAgICAgIFdpZHRoIHdpZHRoID0gd2lkdGhGb3JCeXRl
cyhlbGVtZW50U2l6ZSh0eXBlKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIExWYWx1ZSBhdG9taWNW
YWx1ZTsKICAgICAgICAgTFZhbHVlIHJlc3VsdDsKLQorICAgICAgICAKICAgICAgICAgYXV0byBz
YW5pdGl6ZVJlc3VsdCA9IFsmXSAoTFZhbHVlIHZhbHVlKSAtPiBMVmFsdWUgewogICAgICAgICAg
ICAgaWYgKGlzU2lnbmVkKHR5cGUpKSB7CiAgICAgICAgICAgICAgICAgc3dpdGNoIChlbGVtZW50
U2l6ZSh0eXBlKSkgewpAQCAtNTAzMCw3ICs1MDI3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgfTsKLQorICAgICAgICAKICAg
ICAgICAgc3dpdGNoIChtX25vZGUtPm9wKCkpIHsKICAgICAgICAgY2FzZSBBdG9taWNzQWRkOgog
ICAgICAgICAgICAgYXRvbWljVmFsdWUgPSBtX291dC5hdG9taWNYY2hnQWRkKGFyZ3NbMF0sIHBv
aW50ZXIsIHdpZHRoKTsKQEAgLTUxMDEsNyArNTA5OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNv
bnN0ZXhwciBib29sIGNhblNwZWN1bGF0ZSA9IGZhbHNlOwogICAgICAgICBzZXRJbnRUeXBlZEFy
cmF5TG9hZFJlc3VsdChyZXN1bHQsIHR5cGUsIGNhblNwZWN1bGF0ZSk7CiAgICAgfQotCisgICAg
CiAgICAgdm9pZCBjb21waWxlQXRvbWljc0lzTG9ja0ZyZWUoKQogICAgIHsKICAgICAgICAgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fb3Jp
Z2luLnNlbWFudGljKTsKQEAgLTUxMTAsMjkgKzUxMDcsMjkgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIHNldEpTVmFsdWUodm1DYWxsKEludDY0LCBvcGVyYXRpb25BdG9taWNzSXNMb2NrRnJlZSwg
d2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgbG93SlNWYWx1ZShjaGlsZDEpKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgTFZhbHVlIGJ5dGVz
ID0gbG93SW50MzIoY2hpbGQxKTsKLQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgdHJ1
ZUNhc2UgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBmYWxzZUNhc2Ug
PSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBt
X291dC5uZXdCbG9jaygpOwotCisgICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4
dCA9IG1fb3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9yZSh0cnVlQ2FzZSk7Ci0KKyAgICAgICAgCiAg
ICAgICAgIFZlY3RvcjxTd2l0Y2hDYXNlLCA0PiBjYXNlczsKICAgICAgICAgY2FzZXMuYXBwZW5k
KFN3aXRjaENhc2UobV9vdXQuY29uc3RJbnQzMigxKSwgdHJ1ZUNhc2UsIFdlaWdodCgpKSk7CiAg
ICAgICAgIGNhc2VzLmFwcGVuZChTd2l0Y2hDYXNlKG1fb3V0LmNvbnN0SW50MzIoMiksIHRydWVD
YXNlLCBXZWlnaHQoKSkpOwogICAgICAgICBjYXNlcy5hcHBlbmQoU3dpdGNoQ2FzZShtX291dC5j
b25zdEludDMyKDQpLCB0cnVlQ2FzZSwgV2VpZ2h0KCkpKTsKICAgICAgICAgY2FzZXMuYXBwZW5k
KFN3aXRjaENhc2UobV9vdXQuY29uc3RJbnQzMig4KSwgdHJ1ZUNhc2UsIFdlaWdodCgpKSk7CiAg
ICAgICAgIG1fb3V0LnN3aXRjaEluc3RydWN0aW9uKGJ5dGVzLCBjYXNlcywgZmFsc2VDYXNlLCBX
ZWlnaHQoKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHRydWVDYXNlLCBm
YWxzZUNhc2UpOwogICAgICAgICBWYWx1ZUZyb21CbG9jayB0cnVlVmFsdWUgPSBtX291dC5hbmNo
b3IobV9vdXQuYm9vbGVhblRydWUpOwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7
CiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGZhbHNlQ2FzZSwgY29udGludWF0aW9uKTsKICAgICAg
ICAgVmFsdWVGcm9tQmxvY2sgZmFsc2VWYWx1ZSA9IG1fb3V0LmFuY2hvcihtX291dC5ib29sZWFu
RmFsc2UpOwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgCiAg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAgICAgICBz
ZXRCb29sZWFuKG1fb3V0LnBoaShJbnQzMiwgdHJ1ZVZhbHVlLCBmYWxzZVZhbHVlKSk7CiAgICAg
fQpAQCAtNTIwMyw3ICs1MjAwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNh
Y2hlZFB1dEJ5SWQoTm9kZSogbm9kZSwgTFZhbHVlIGJhc2UsIExWYWx1ZSB2YWx1ZSwgQWNjZXNz
VHlwZSBhY2Nlc3NUeXBlKQogICAgIHsKICAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVu
dGlmaWVyID0gbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpOwpAQCAtNTM4MSwxMSArNTM3OCwx
MSBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgc2V0U3RvcmFnZShtX291dC5jb25zdEludFB0
cihtX25vZGUtPnN0b3JhZ2VQb2ludGVyKCkpKTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNv
bXBpbGVHZXRJbmRleGVkUHJvcGVydHlTdG9yYWdlKCkKICAgICB7CiAgICAgICAgIExWYWx1ZSBj
ZWxsID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKLQorICAgICAgICAKICAgICAgICAgQVNT
RVJUKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpICE9IEFycmF5OjpTdHJpbmcpOwogICAgICAg
ICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwgaXNUeXBlZFZpZXcobV9ub2RlLT5hcnJheU1v
ZGUoKS50eXBlZEFycmF5VHlwZSgpKSwgbV9ub2RlLT5hcnJheU1vZGUoKS50eXBlZEFycmF5VHlw
ZSgpKTsKICAgICAgICAgTFZhbHVlIHZlY3RvciA9IG1fb3V0LmxvYWRQdHIoY2VsbCwgbV9oZWFw
cy5KU0FycmF5QnVmZmVyVmlld192ZWN0b3IpOwpAQCAtNTQxNCw3ICs1NDExLDcgQEAgcHJpdmF0
ZToKIAogICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShwb2ludGVyVHlwZSgpLCBmYXN0UmVz
dWx0LCBzbG93UmVzdWx0KSk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxlQ2hlY2tB
cnJheSgpCiAgICAgewogICAgICAgICBFZGdlIGVkZ2UgPSBtX25vZGUtPmNoaWxkMSgpOwpAQCAt
NTQyMiw3ICs1NDE5LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBpZiAobV9ub2RlLT5hcnJheU1v
ZGUoKS5hbHJlYWR5Q2hlY2tlZChtX2dyYXBoLCBtX25vZGUsIGFic3RyYWN0VmFsdWUoZWRnZSkp
KQogICAgICAgICAgICAgcmV0dXJuOwotCisgICAgICAgIAogICAgICAgICBzcGVjdWxhdGUoCiAg
ICAgICAgICAgICBCYWRJbmRleGluZ1R5cGUsIGpzVmFsdWVWYWx1ZShjZWxsKSwgbnVsbHB0ciwK
ICAgICAgICAgICAgIG1fb3V0LmxvZ2ljYWxOb3QoaXNBcnJheVR5cGVGb3JDaGVja0FycmF5KGNl
bGwsIG1fbm9kZS0+YXJyYXlNb2RlKCkpKSk7CkBAIC01NzAzLDcgKzU3MDAsNyBAQCBJR05PUkVf
Q0xBTkdfV0FSTklOR1NfRU5ECiAjZW5kaWYKICAgICB9CiAKLQorICAgIAogICAgIHZvaWQgY29t
cGlsZUdldEFycmF5TGVuZ3RoKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5hcnJh
eU1vZGUoKS50eXBlKCkpIHsKQEAgLTU3MjIsNyArNTcxOSw3IEBAIElHTk9SRV9DTEFOR19XQVJO
SU5HU19FTkQKICAgICAgICAgICAgIHNldEludDMyKGxlbmd0aCk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJyYXk6OlN0cmlu
ZzogewogICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEo
KSk7CiAKQEAgLTU3NDQsNyArNTc0MSw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAg
ICAgICAgICAgIHNldEludDMyKG1fb3V0LnBoaShJbnQzMiwgcm9wZUxlbmd0aCwgbm9uUm9wZUxl
bmd0aCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0KKyAgICAgICAgICAgIAog
ICAgICAgICBjYXNlIEFycmF5OjpEaXJlY3RBcmd1bWVudHM6IHsKICAgICAgICAgICAgIExWYWx1
ZSBhcmd1bWVudHMgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgc3Bl
Y3VsYXRlKApAQCAtNTc1Myw3ICs1NzUwLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAog
ICAgICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoYXJndW1lbnRzLCBt
X2hlYXBzLkRpcmVjdEFyZ3VtZW50c19sZW5ndGgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQotCisgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJheTo6U2NvcGVkQXJndW1l
bnRzOiB7CiAgICAgICAgICAgICBMVmFsdWUgYXJndW1lbnRzID0gbG93Q2VsbChtX25vZGUtPmNo
aWxkMSgpKTsKICAgICAgICAgICAgIHNwZWN1bGF0ZSgKQEAgLTU3NjIsNyArNTc1OSw3IEBAIElH
Tk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIHNldEludDMyKG1fb3V0LmxvYWQz
Mk5vbk5lZ2F0aXZlKGFyZ3VtZW50cywgbV9oZWFwcy5TY29wZWRBcmd1bWVudHNfdG90YWxMZW5n
dGgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotCisgICAgICAgICAgICAKICAg
ICAgICAgZGVmYXVsdDogewogICAgICAgICAgICAgREZHOjpBcnJheU1vZGUgYXJyYXlNb2RlID0g
bV9ub2RlLT5hcnJheU1vZGUoKTsKICAgICAgICAgICAgIGlmIChhcnJheU1vZGUuaXNTb21lVHlw
ZWRBcnJheVZpZXcoKSkgewpAQCAtNTg2Miw3ICs1ODU5LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5J
TkdTX0VORAogICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOiB7CiAgICAgICAgICAgICBM
VmFsdWUgaW5kZXggPSBsb3dJbnQzMihtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSkpOwog
ICAgICAgICAgICAgTFZhbHVlIHN0b3JhZ2UgPSBsb3dTdG9yYWdlKG1fZ3JhcGgudmFyQXJnQ2hp
bGQobV9ub2RlLCAyKSk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgSW5kZXhlZEFic3Ry
YWN0SGVhcCYgaGVhcCA9IGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkludDMyID8KICAgICAg
ICAgICAgICAgICBtX2hlYXBzLmluZGV4ZWRJbnQzMlByb3BlcnRpZXMgOiBtX2hlYXBzLmluZGV4
ZWRDb250aWd1b3VzUHJvcGVydGllczsKIApAQCAtNTg4NywxOSArNTg4NCwxOSBAQCBJR05PUkVf
Q0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICBMQmFzaWNCbG9jayBmYXN0Q2FzZSA9IG1f
b3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBzbG93Q2FzZSA9IG1fb3V0
Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291
dC5uZXdCbG9jaygpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgK
ICAgICAgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoCiAgICAgICAgICAgICAgICAgICAg
IGluZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZs
eV9wdWJsaWNMZW5ndGgpKSwKICAgICAgICAgICAgICAgICByYXJlbHkoc2xvd0Nhc2UpLCB1c3Vh
bGx5KGZhc3RDYXNlKSk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgTEJhc2ljQmxvY2sg
bGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhmYXN0Q2FzZSwgc2xvd0Nhc2UpOwogCiAgICAgICAg
ICAgICBMVmFsdWUgZmFzdFJlc3VsdFZhbHVlID0gbV9vdXQubG9hZDY0KGJhc2VJbmRleFdpdGhQ
cm92ZW5WYWx1ZShoZWFwLCBzdG9yYWdlLCBpbmRleCwgbV9ncmFwaC52YXJBcmdDaGlsZChtX25v
ZGUsIDEpKSk7CiAgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0gbV9vdXQu
YW5jaG9yKGZhc3RSZXN1bHRWYWx1ZSk7CiAgICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAg
ICAgICAgICAgICAgbV9vdXQuaXNaZXJvNjQoZmFzdFJlc3VsdFZhbHVlKSwgcmFyZWx5KHNsb3dD
YXNlKSwgdXN1YWxseShjb250aW51YXRpb24pKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAg
ICBtX291dC5hcHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9uKTsKICAgICAgICAgICAgIFZh
bHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQ7CiAgICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzT3V0
T2ZCb3VuZHNTYW5lQ2hhaW4oKSkgewpAQCAtNTkwOCwyNSArNTkwNSwyNSBAQCBJR05PUkVfQ0xB
TkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBzbG93
UmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZtQ2FsbChJbnQ2NCwgb3BlcmF0aW9uR2V0QnlWYWxPYmpl
Y3RJbnQsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGJhc2UsIGluZGV4KSk7CiAgICAgICAg
ICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAg
ICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgICAgICAv
LyBXZSBoYXZlIHRvIGtlZXAgYmFzZSBhbGl2ZSB0byBrZWVwIGNvbnRlbnQgaW4gc3RvcmFnZSBh
bGl2ZS4KICAgICAgICAgICAgIGlmIChhcnJheU1vZGUudHlwZSgpID09IEFycmF5OjpDb250aWd1
b3VzKQogICAgICAgICAgICAgICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGJhc2UpOwogICAgICAg
ICAgICAgcmV0dXJuIG1fb3V0LnBoaShJbnQ2NCwgZmFzdFJlc3VsdCwgc2xvd1Jlc3VsdCk7CiAg
ICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZTogewog
ICAgICAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dDZWxsKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9u
b2RlLCAwKSk7CiAgICAgICAgICAgICBMVmFsdWUgaW5kZXggPSBsb3dJbnQzMihtX2dyYXBoLnZh
ckFyZ0NoaWxkKG1fbm9kZSwgMSkpOwogICAgICAgICAgICAgTFZhbHVlIHN0b3JhZ2UgPSBsb3dT
dG9yYWdlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAyKSk7Ci0KKyAgICAgICAgICAgIAog
ICAgICAgICAgICAgSW5kZXhlZEFic3RyYWN0SGVhcCYgaGVhcCA9IG1faGVhcHMuaW5kZXhlZERv
dWJsZVByb3BlcnRpZXM7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGFycmF5TW9k
ZS5pc0luQm91bmRzKCkpIHsKICAgICAgICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQu
bG9hZERvdWJsZSgKICAgICAgICAgICAgICAgICAgICAgYmFzZUluZGV4V2l0aFByb3ZlblZhbHVl
KGhlYXAsIHN0b3JhZ2UsIGluZGV4LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSkpKTsK
LQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmICghYXJyYXlNb2RlLmlzSW5C
b3VuZHNTYW5lQ2hhaW4oKSkgewogICAgICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoCiAgICAg
ICAgICAgICAgICAgICAgICAgICBMb2FkRnJvbUhvbGUsIG5vVmFsdWUoKSwgbnVsbHB0ciwKQEAg
LTU5NDIsMjMgKzU5MzksMjMgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgYm94UGF0aCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBM
QmFzaWNCbG9jayBzbG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFz
aWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgICAgICAK
ICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBtX291dC5hYm92ZU9y
RXF1YWwoCiAgICAgICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2
ZShzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKSwKICAgICAgICAgICAg
ICAgICByYXJlbHkoc2xvd0Nhc2UpLCB1c3VhbGx5KGluQm91bmRzKSk7Ci0KKyAgICAgICAgICAg
IAogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhpbkJv
dW5kcywgYm94UGF0aCk7CiAgICAgICAgICAgICBMVmFsdWUgZG91YmxlVmFsdWUgPSBtX291dC5s
b2FkRG91YmxlKAogICAgICAgICAgICAgICAgIGJhc2VJbmRleFdpdGhQcm92ZW5WYWx1ZShoZWFw
LCBzdG9yYWdlLCBpbmRleCwgbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEpKSk7CiAgICAg
ICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAgICAgbV9vdXQuZG91YmxlTm90RXF1
YWxPclVub3JkZXJlZChkb3VibGVWYWx1ZSwgZG91YmxlVmFsdWUpLAogICAgICAgICAgICAgICAg
IHJhcmVseShzbG93Q2FzZSksIHVzdWFsbHkoYm94UGF0aCkpOwotCisgICAgICAgICAgICAKICAg
ICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGJveFBhdGgsIHNsb3dDYXNlKTsKICAgICAgICAgICAg
IFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBtX291dC5hbmNob3IocmVzdWx0SXNVbmJveGVk
ID8gZG91YmxlVmFsdWUgOiBib3hEb3VibGUoZG91YmxlVmFsdWUpKTsKICAgICAgICAgICAgIG1f
b3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBtX291
dC5hcHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9uKTsKICAgICAgICAgICAgIFZhbHVlRnJv
bUJsb2NrIHNsb3dSZXN1bHQ7CiAgICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzT3V0T2ZCb3Vu
ZHNTYW5lQ2hhaW4oKSkgewpAQCAtNTk3MCw3ICs1OTY3LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5J
TkdTX0VORAogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgc2xvd1Jlc3VsdCA9
IG1fb3V0LmFuY2hvcih2bUNhbGwoSW50NjQsIG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0SW50LCB3
ZWFrUG9pbnRlcihnbG9iYWxPYmplY3QpLCBiYXNlLCBpbmRleCkpOwogICAgICAgICAgICAgbV9v
dXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAgICAgICAgICAgaWYgKHJlc3Vs
dElzVW5ib3hlZCkKICAgICAgICAgICAgICAgICByZXR1cm4gbV9vdXQucGhpKERvdWJsZSwgZmFz
dFJlc3VsdCwgc2xvd1Jlc3VsdCk7CkBAIC01OTg0LDExICs1OTgxLDExIEBAIElHTk9SRV9DTEFO
R19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIHNwZWN1bGF0ZShPdXRPZkJvdW5kcywgbm9WYWx1
ZSgpLCBtX25vZGUsIG1fb3V0Lmxlc3NUaGFuKGluZGV4LCBtX291dC5pbnQzMlplcm8pKTsKICAg
ICAgICAgICAgIHJldHVybiBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OlZhbHVlVW5kZWZpbmVk
KTsKICAgICAgICAgfQotCisgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJheTo6RGlyZWN0
QXJndW1lbnRzOiB7CiAgICAgICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ncmFwaC52
YXJBcmdDaGlsZChtX25vZGUsIDApKTsKICAgICAgICAgICAgIExWYWx1ZSBpbmRleCA9IGxvd0lu
dDMyKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKSk7Ci0KKyAgICAgICAgICAgIAogICAg
ICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgICAgIEV4b3RpY09iamVjdE1vZGUsIG5v
VmFsdWUoKSwgbnVsbHB0ciwKICAgICAgICAgICAgICAgICBtX291dC5ub3ROdWxsKG1fb3V0Lmxv
YWRQdHIoYmFzZSwgbV9oZWFwcy5EaXJlY3RBcmd1bWVudHNfbWFwcGVkQXJndW1lbnRzKSkpOwpA
QCAtNjAyMyw0NyArNjAyMCw0NyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAg
ICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKICAgICAgICAgICAg
IHJldHVybiBtX291dC5waGkoSW50NjQsIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpOwogICAgICAg
ICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFycmF5OjpTY29wZWRBcmd1bWVudHM6
IHsKICAgICAgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX2dyYXBoLnZhckFyZ0NoaWxk
KG1fbm9kZSwgMCkpOwogICAgICAgICAgICAgTFZhbHVlIGluZGV4ID0gbG93SW50MzIobV9ncmFw
aC52YXJBcmdDaGlsZChtX25vZGUsIDEpKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBz
cGVjdWxhdGUoCiAgICAgICAgICAgICAgICAgRXhvdGljT2JqZWN0TW9kZSwgbm9WYWx1ZSgpLCBu
dWxscHRyLAogICAgICAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKICAgICAgICAgICAg
ICAgICAgICAgaW5kZXgsCiAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQzMk5vbk5lZ2F0
aXZlKGJhc2UsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX3RvdGFsTGVuZ3RoKSkpOwotCisgICAg
ICAgICAgICAKICAgICAgICAgICAgIExWYWx1ZSB0YWJsZSA9IG1fb3V0LmxvYWRQdHIoYmFzZSwg
bV9oZWFwcy5TY29wZWRBcmd1bWVudHNfdGFibGUpOwogICAgICAgICAgICAgTFZhbHVlIG5hbWVk
TGVuZ3RoID0gbV9vdXQubG9hZDMyKHRhYmxlLCBtX2hlYXBzLlNjb3BlZEFyZ3VtZW50c1RhYmxl
X2xlbmd0aCk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbmFtZWRD
YXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG92ZXJmbG93
Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51
YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIG1f
b3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoaW5kZXgsIG5h
bWVkTGVuZ3RoKSwgdW5zdXJlKG92ZXJmbG93Q2FzZSksIHVuc3VyZShuYW1lZENhc2UpKTsKLQor
ICAgICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFw
cGVuZFRvKG5hbWVkQ2FzZSwgb3ZlcmZsb3dDYXNlKTsKLQorICAgICAgICAgICAgCiAgICAgICAg
ICAgICBMVmFsdWUgc2NvcGUgPSBtX291dC5sb2FkUHRyKGJhc2UsIG1faGVhcHMuU2NvcGVkQXJn
dW1lbnRzX3Njb3BlKTsKICAgICAgICAgICAgIExWYWx1ZSBhcmd1bWVudHMgPSBtX291dC5sb2Fk
UHRyKHRhYmxlLCBtX2hlYXBzLlNjb3BlZEFyZ3VtZW50c1RhYmxlX2FyZ3VtZW50cyk7Ci0KKyAg
ICAgICAgICAgIAogICAgICAgICAgICAgVHlwZWRQb2ludGVyIGFkZHJlc3MgPSBtX291dC5iYXNl
SW5kZXgoCiAgICAgICAgICAgICAgICAgbV9oZWFwcy5zY29wZWRBcmd1bWVudHNUYWJsZUFyZ3Vt
ZW50cywgYXJndW1lbnRzLCBtX291dC56ZXJvRXh0UHRyKGluZGV4KSk7CiAgICAgICAgICAgICBM
VmFsdWUgc2NvcGVPZmZzZXQgPSBtX291dC5sb2FkMzIoYWRkcmVzcyk7Ci0KKyAgICAgICAgICAg
IAogICAgICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgICAgIEV4b3RpY09iamVjdE1v
ZGUsIG5vVmFsdWUoKSwgbnVsbHB0ciwKICAgICAgICAgICAgICAgICBtX291dC5lcXVhbChzY29w
ZU9mZnNldCwgbV9vdXQuY29uc3RJbnQzMihTY29wZU9mZnNldDo6aW52YWxpZE9mZnNldCkpKTsK
LQorICAgICAgICAgICAgCiAgICAgICAgICAgICBhZGRyZXNzID0gbV9vdXQuYmFzZUluZGV4KAog
ICAgICAgICAgICAgICAgIG1faGVhcHMuSlNMZXhpY2FsRW52aXJvbm1lbnRfdmFyaWFibGVzLCBz
Y29wZSwgbV9vdXQuemVyb0V4dFB0cihzY29wZU9mZnNldCkpOwogICAgICAgICAgICAgVmFsdWVG
cm9tQmxvY2sgbmFtZWRSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQubG9hZDY0KGFkZHJlc3Mp
KTsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAgICAgICAgICAg
CiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhvdmVyZmxvd0Nhc2UsIGNvbnRpbnVhdGlvbik7
Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIHN0b3JhZ2UgPSBtX291dC5sb2Fk
UHRyKGJhc2UsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX3N0b3JhZ2UpOwogICAgICAgICAgICAg
YWRkcmVzcyA9IG1fb3V0LmJhc2VJbmRleCgKICAgICAgICAgICAgICAgICBtX2hlYXBzLlNjb3Bl
ZEFyZ3VtZW50c19TdG9yYWdlX3N0b3JhZ2UsIHN0b3JhZ2UsCkBAIC02MDcyLDExICs2MDY5LDEx
IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIHNwZWN1bGF0ZShFeG90
aWNPYmplY3RNb2RlLCBub1ZhbHVlKCksIG51bGxwdHIsIG1fb3V0LmlzWmVybzY0KG92ZXJmbG93
VmFsdWUpKTsKICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIG92ZXJmbG93UmVzdWx0ID0gbV9v
dXQuYW5jaG9yKG92ZXJmbG93VmFsdWUpOwogICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51
YXRpb24pOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRp
bnVhdGlvbiwgbGFzdE5leHQpOwogICAgICAgICAgICAgcmV0dXJuIG1fb3V0LnBoaShJbnQ2NCwg
bmFtZWRSZXN1bHQsIG92ZXJmbG93UmVzdWx0KTsKICAgICAgICAgfQotCisgICAgICAgICAgICAK
ICAgICAgICAgY2FzZSBBcnJheTo6QmlnSW50NjRBcnJheToKICAgICAgICAgY2FzZSBBcnJheTo6
QmlnVWludDY0QXJyYXk6CiAgICAgICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsKQEAgLTYyNDMs
MTEgKzYyNDAsMTEgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgZW5z
dXJlU3RpbGxBbGl2ZUhlcmUoYmFzZSk7CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQucGhpKElu
dDY0LCBmYXN0UmVzdWx0LCBzbG93UmVzdWx0KTsKICAgICAgICAgfQotCisgICAgICAgICAgICAK
ICAgICAgICAgY2FzZSBBcnJheTo6U3RyaW5nOiB7CiAgICAgICAgICAgICByZXR1cm4gY29tcGls
ZVN0cmluZ0NoYXJBdEltcGwoKTsKICAgICAgICAgfQotCisgICAgICAgICAgICAKICAgICAgICAg
Y2FzZSBBcnJheTo6SW50OEFycmF5OgogICAgICAgICBjYXNlIEFycmF5OjpJbnQxNkFycmF5Ogog
ICAgICAgICBjYXNlIEFycmF5OjpJbnQzMkFycmF5OgpAQCAtNjI2MCw3ICs2MjU3LDcgQEAgSUdO
T1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dDZWxs
KG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAwKSk7CiAgICAgICAgICAgICBMVmFsdWUgaW5k
ZXggPSBsb3dJbnQzMihtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSkpOwogICAgICAgICAg
ICAgTFZhbHVlIHN0b3JhZ2UgPSBsb3dTdG9yYWdlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2Rl
LCAyKSk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgVHlwZWRBcnJheVR5cGUgdHlwZSA9
IGFycmF5TW9kZS50eXBlZEFycmF5VHlwZSgpOwogICAgICAgICAgICAgQVNTRVJUKGlzVHlwZWRW
aWV3KHR5cGUpKTsKICAgICAgICAgICAgIHsKQEAgLTYzNDksMTMgKzYzNDYsMTMgQEAgSUdOT1JF
X0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzZXRKU1ZhbHVl
KHJlc3VsdCk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxlR2V0TXlBcmd1bWVudEJ5
VmFsKCkKICAgICB7CiAgICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lID0g
bV9ub2RlLT5jaGlsZDEoKS0+b3JpZ2luLnNlbWFudGljLmlubGluZUNhbGxGcmFtZSgpOwotCisg
ICAgICAgIAogICAgICAgICBMVmFsdWUgb3JpZ2luYWxJbmRleCA9IGxvd0ludDMyKG1fbm9kZS0+
Y2hpbGQyKCkpOwotCisgICAgICAgIAogICAgICAgICBMVmFsdWUgbnVtYmVyT2ZBcmdzSW5jbHVk
aW5nVGhpczsKICAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZSAmJiAhaW5saW5lQ2FsbEZyYW1l
LT5pc1ZhcmFyZ3MoKSkKICAgICAgICAgICAgIG51bWJlck9mQXJnc0luY2x1ZGluZ1RoaXMgPSBt
X291dC5jb25zdEludDMyKGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMpOwpAQCAtNjM2NSw3ICs2MzYyLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAg
ICAgICB9CiAKICAgICAgICAgc3BlY3VsYXRlKE5lZ2F0aXZlSW5kZXgsIG5vVmFsdWUoKSwgbnVs
bHB0ciwgbV9vdXQubGVzc1RoYW4ob3JpZ2luYWxJbmRleCwgbV9vdXQuaW50MzJaZXJvKSk7Ci0K
KyAgICAgICAgCiAgICAgICAgIExWYWx1ZSBudW1iZXJPZkFyZ3MgPSBtX291dC5zdWIobnVtYmVy
T2ZBcmdzSW5jbHVkaW5nVGhpcywgbV9vdXQuaW50MzJPbmUpOwogICAgICAgICBMVmFsdWUgaW5k
ZXhUb0NoZWNrID0gb3JpZ2luYWxJbmRleDsKICAgICAgICAgaWYgKG1fbm9kZS0+bnVtYmVyT2ZB
cmd1bWVudHNUb1NraXAoKSkgewpAQCAtNjM4MSwxNCArNjM3OCwxNCBAQCBJR05PUkVfQ0xBTkdf
V0FSTklOR1NfRU5ECiAgICAgICAgIGlmIChtX25vZGUtPm9wKCkgPT0gR2V0TXlBcmd1bWVudEJ5
VmFsT3V0T2ZCb3VuZHMpIHsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vcm1hbENhc2UgPSBt
X291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgY29udGludWF0aW9uID0gbV9vdXQubmV3Qmxv
Y2soKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBzbG93UmVzdWx0ID0gbV9vdXQuYW5j
aG9yKG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKSk7CiAg
ICAgICAgICAgICBtX291dC5icmFuY2goaXNPdXRPZkJvdW5kcywgdW5zdXJlKGNvbnRpbnVhdGlv
biksIHVuc3VyZShub3JtYWxDYXNlKSk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgbGFz
dE5leHQgPSBtX291dC5hcHBlbmRUbyhub3JtYWxDYXNlLCBjb250aW51YXRpb24pOwogICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgIHNwZWN1bGF0ZShPdXRPZkJvdW5kcywgbm9WYWx1ZSgpLCBu
dWxscHRyLCBpc091dE9mQm91bmRzKTsKLQorICAgICAgICAKICAgICAgICAgTFZhbHVlIGluZGV4
ID0gbV9vdXQuYWRkKGluZGV4VG9DaGVjaywgbV9vdXQuaW50MzJPbmUpOwogCiAgICAgICAgIFR5
cGVkUG9pbnRlciBiYXNlOwpAQCAtNjM5Nyw3ICs2Mzk0LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5J
TkdTX0VORAogICAgICAgICAgICAgICAgIGJhc2UgPSBhZGRyZXNzRm9yKGlubGluZUNhbGxGcmFt
ZS0+bV9hcmd1bWVudHNXaXRoRml4dXBbMF0udmlydHVhbFJlZ2lzdGVyKCkpOwogICAgICAgICB9
IGVsc2UKICAgICAgICAgICAgIGJhc2UgPSBhZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3RlckZvckFy
Z3VtZW50SW5jbHVkaW5nVGhpcygwKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIExWYWx1ZSByZXN1
bHQ7CiAgICAgICAgIGlmIChiYXNlKSB7CiAgICAgICAgICAgICBMVmFsdWUgcG9pbnRlciA9IG1f
b3V0LmJhc2VJbmRleCgKQEAgLTY0MDUsMTggKzY0MDIsMTggQEAgSUdOT1JFX0NMQU5HX1dBUk5J
TkdTX0VORAogICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQubG9hZDY0KFR5cGVkUG9pbnRlciht
X2hlYXBzLnZhcmlhYmxlcy5hdEFueUluZGV4KCksIHBvaW50ZXIpKTsKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIGlmIChtX25vZGUtPm9wKCkgPT0g
R2V0TXlBcmd1bWVudEJ5VmFsT3V0T2ZCb3VuZHMpIHsKICAgICAgICAgICAgIFZhbHVlRnJvbUJs
b2NrIG5vcm1hbFJlc3VsdCA9IG1fb3V0LmFuY2hvcihyZXN1bHQpOwogICAgICAgICAgICAgbV9v
dXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAgICAgICAgICAgcmVzdWx0ID0g
bV9vdXQucGhpKEludDY0LCBzbG93UmVzdWx0LCBub3JtYWxSZXN1bHQpOwogICAgICAgICB9Ci0K
KyAgICAgICAgCiAgICAgICAgIHNldEpTVmFsdWUocmVzdWx0KTsKICAgICB9Ci0KKyAgICAKICAg
ICB2b2lkIGNvbXBpbGVQdXRCeVZhbCgpCiAgICAgewogICAgICAgICBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9vcmlnaW4uc2VtYW50aWMp
OwpAQCAtNjQyNSw3ICs2NDIyLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAg
ICBFZGdlIGNoaWxkMyA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAyKTsKICAgICAgICAg
RWRnZSBjaGlsZDQgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMyk7CiAgICAgICAgIEVk
Z2UgY2hpbGQ1ID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDQpOwotCisgICAgICAgIAog
ICAgICAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbV9ub2RlLT5hcnJheU1vZGUoKS5tb2RlRm9y
UHV0KCk7CiAgICAgICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgewogICAgICAgICBjYXNl
IEFycmF5OjpCaWdJbnQ2NEFycmF5OgpAQCAtNjU4Miw3ICs2NTc5LDcgQEAgSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0VORAogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQpAQCAtNjU5MCw2NCArNjU4Nyw2NCBAQCBJR05PUkVfQ0xBTkdfV0FSTklO
R1NfRU5ECiAgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChjaGlsZDEpOwogICAgICAgICBM
VmFsdWUgaW5kZXggPSBsb3dJbnQzMihjaGlsZDIpOwogICAgICAgICBMVmFsdWUgc3RvcmFnZSA9
IGxvd1N0b3JhZ2UoY2hpbGQ0KTsKLQorICAgICAgICAKICAgICAgICAgc3dpdGNoIChhcnJheU1v
ZGUudHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAgICAgICBjYXNlIEFy
cmF5OjpEb3VibGU6CiAgICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKICAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAg
ICAgICBMQmFzaWNCbG9jayBvdXRlckxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obV9vdXQubV9i
bG9jaywgY29udGludWF0aW9uKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBzd2l0Y2gg
KGFycmF5TW9kZS50eXBlKCkpIHsKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAg
ICAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewogICAgICAgICAgICAgICAgIExWYWx1
ZSB2YWx1ZSA9IGxvd0pTVmFsdWUoY2hpbGQzLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwot
CisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKGFycmF5TW9kZS50eXBlKCkg
PT0gQXJyYXk6OkludDMyKQogICAgICAgICAgICAgICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1Zh
bHVlVmFsdWUodmFsdWUpLCBjaGlsZDMsIFNwZWNJbnQzMk9ubHksIGlzTm90SW50MzIodmFsdWUp
KTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIEluZGV4ZWRBYnN0cmFjdEhl
YXAmIGhlYXAgPSBhcnJheU1vZGUudHlwZSgpID09IEFycmF5OjpJbnQzMiA/IG1faGVhcHMuaW5k
ZXhlZEludDMyUHJvcGVydGllcyA6IG1faGVhcHMuaW5kZXhlZENvbnRpZ3VvdXNQcm9wZXJ0aWVz
OwogICAgICAgICAgICAgICAgIFR5cGVkUG9pbnRlciBlbGVtZW50UG9pbnRlciA9IGJhc2VJbmRl
eFdpdGhQcm92ZW5WYWx1ZShoZWFwLCBzdG9yYWdlLCBpbmRleCwgY2hpbGQyKTsKLQorICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChtX25vZGUtPm9wKCkgPT0gUHV0QnlWYWxB
bGlhcykgewogICAgICAgICAgICAgICAgICAgICBtX291dC5zdG9yZTY0KHZhbHVlLCBlbGVtZW50
UG9pbnRlcik7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0K
LQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGNvbnRpZ3VvdXNQdXRCeVZhbE91
dE9mQm91bmRzKAogICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmVjbWFNb2RlKCkuaXNTdHJp
Y3QoKQogICAgICAgICAgICAgICAgICAgICAgICAgPyAobV9ub2RlLT5vcCgpID09IFB1dEJ5VmFs
RGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6
IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QpCiAgICAgICAgICAgICAg
ICAgICAgICAgICA6IChtX25vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25Q
dXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU2xvcHB5IDogb3BlcmF0aW9uUHV0QnlWYWxC
ZXlvbmRBcnJheUJvdW5kc1Nsb3BweSksCiAgICAgICAgICAgICAgICAgICAgIGJhc2UsIHN0b3Jh
Z2UsIGluZGV4LCB2YWx1ZSwgY29udGludWF0aW9uKTsKLQorICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIG1fb3V0LnN0b3JlNjQodmFsdWUsIGVsZW1lbnRQb2ludGVyKTsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLQorICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOiB7CiAgICAgICAgICAgICAgICAgTFZhbHVlIHZh
bHVlID0gbG93RG91YmxlKGNoaWxkMyk7Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICBGVExfVFlQRV9DSEVDSygKICAgICAgICAgICAgICAgICAgICAgZG91YmxlVmFsdWUodmFs
dWUpLCBjaGlsZDMsIFNwZWNEb3VibGVSZWFsLAogICAgICAgICAgICAgICAgICAgICBtX291dC5k
b3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkKHZhbHVlLCB2YWx1ZSkpOwotCisgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgVHlwZWRQb2ludGVyIGVsZW1lbnRQb2ludGVyID0gYmFzZUlu
ZGV4V2l0aFByb3ZlblZhbHVlKG1faGVhcHMuaW5kZXhlZERvdWJsZVByb3BlcnRpZXMsIHN0b3Jh
Z2UsIGluZGV4LCBjaGlsZDIpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
aWYgKG1fbm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7CiAgICAgICAgICAgICAgICAgICAg
IG1fb3V0LnN0b3JlRG91YmxlKHZhbHVlLCBlbGVtZW50UG9pbnRlcik7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLQorICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIGNvbnRpZ3VvdXNQdXRCeVZhbE91dE9mQm91bmRzKAogICAgICAgICAgICAg
ICAgICAgICBtX25vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKQogICAgICAgICAgICAgICAgICAg
ICAgICAgPyAobV9ub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0RG91
YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dERvdWJs
ZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QpCiAgICAgICAgICAgICAgICAgICAgICAgICA6
IChtX25vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXREb3VibGVCeVZh
bERpcmVjdEJleW9uZEFycmF5Qm91bmRzU2xvcHB5IDogb3BlcmF0aW9uUHV0RG91YmxlQnlWYWxC
ZXlvbmRBcnJheUJvdW5kc1Nsb3BweSksCiAgICAgICAgICAgICAgICAgICAgIGJhc2UsIHN0b3Jh
Z2UsIGluZGV4LCB2YWx1ZSwgY29udGludWF0aW9uKTsKLQorICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIG1fb3V0LnN0b3JlRG91YmxlKHZhbHVlLCBlbGVtZW50UG9pbnRlcik7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgs
IG1fbm9kZSwgIkJhZCBhcnJheSB0eXBlIik7CiAgICAgICAgICAgICB9CkBAIC02NzMxLDcgKzY3
MjgsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICBtX291dC5hcHBl
bmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQotCisgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJheTo6SW50OEFycmF5OgogICAg
ICAgICBjYXNlIEFycmF5OjpJbnQxNkFycmF5OgogICAgICAgICBjYXNlIEFycmF5OjpJbnQzMkFy
cmF5OgpAQCAtNjc0Miw3ICs2NzM5LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAg
ICAgICBjYXNlIEFycmF5OjpGbG9hdDMyQXJyYXk6CiAgICAgICAgIGNhc2UgQXJyYXk6OkZsb2F0
NjRBcnJheTogewogICAgICAgICAgICAgVHlwZWRBcnJheVR5cGUgdHlwZSA9IGFycmF5TW9kZS50
eXBlZEFycmF5VHlwZSgpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIEFTU0VSVChpc1R5
cGVkVmlldyh0eXBlKSk7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgVHlwZWRQb2lu
dGVyIHBvaW50ZXIgPSBUeXBlZFBvaW50ZXIoCkBAIC02NzUyLDkgKzY3NDksOSBAQCBJR05PUkVf
Q0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5zaGwoCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuemVyb0V4dChpbmRleCwgcG9pbnRlclR5
cGUoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIobG9n
RWxlbWVudFNpemUodHlwZSkpKSkpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgTFZhbHVlIHZhbHVlVG9TdG9yZTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgIGlmIChpc0ludCh0eXBlKSkgewogICAgICAgICAgICAgICAgICAgICBib29sIGlzQ2xhbXBl
ZCA9IEpTQzo6aXNDbGFtcGVkKHR5cGUpOwogICAgICAgICAgICAgICAgICAgICBpZiAoaXNDbGFt
cGVkKSB7CkBAIC02ODEzLDEwICs2ODEwLDEwIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQK
ICAgICAgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaXNPdXRPZkJvdW5kcywgY29udGlu
dWF0aW9uKTsKICAgICAgICAgICAgICAgICAgICAgc3BlY3VsYXRlVHlwZWRBcnJheUlzTm90RGV0
YWNoZWQoYmFzZSk7CiAgICAgICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9u
KTsKLQorICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgICAgICAgICAgfQotCisgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBrZWVwIGJhc2UgYWxp
dmUgc2luY2UgdGhhdCBrZWVwcyBzdG9yYWdlIGFsaXZlLgogICAgICAgICAgICAgICAgIGVuc3Vy
ZVN0aWxsQWxpdmVIZXJlKGJhc2UpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTcwOTcs
NyArNzA5NCw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZUFycmF5UHVzaCgp
CiAgICAgewogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5n
bG9iYWxPYmplY3RGb3IobV9vcmlnaW4uc2VtYW50aWMpOwpAQCAtNzExNiw3ICs3MTEzLDcgQEAg
SUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgaWYgKGVsZW1lbnRDb3VudCA9
PSAxKSB7CiAgICAgICAgICAgICAgICAgTFZhbHVlIHZhbHVlOwogICAgICAgICAgICAgICAgIE91
dHB1dDo6U3RvcmVUeXBlIHN0b3JlVHlwZTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgIEVkZ2UmIGVsZW1lbnQgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgZWxlbWVu
dE9mZnNldCk7CiAgICAgICAgICAgICAgICAgc3BlY3VsYXRlKGVsZW1lbnQpOwogICAgICAgICAg
ICAgICAgIGlmIChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSAhPSBBcnJheTo6RG91YmxlKSB7
CkBAIC03MTI4LDI1ICs3MTI1LDI1IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBMVmFsdWUgcHJldkxlbmd0aCA9IG1fb3V0
LmxvYWQzMihzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpOwotCisgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgZmFzdFBhdGggPSBtX291
dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dQYXRoID0gbV9v
dXQubmV3QmxvY2soKTsKICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24g
PSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
bV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoCiAg
ICAgICAgICAgICAgICAgICAgICAgICBwcmV2TGVuZ3RoLCBtX291dC5sb2FkMzIoc3RvcmFnZSwg
bV9oZWFwcy5CdXR0ZXJmbHlfdmVjdG9yTGVuZ3RoKSksCiAgICAgICAgICAgICAgICAgICAgIHVu
c3VyZShzbG93UGF0aCksIHVuc3VyZShmYXN0UGF0aCkpOwotCisgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhmYXN0
UGF0aCwgc2xvd1BhdGgpOwogICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlKAogICAgICAgICAg
ICAgICAgICAgICB2YWx1ZSwgbV9vdXQuYmFzZUluZGV4KGhlYXAsIHN0b3JhZ2UsIG1fb3V0Lnpl
cm9FeHRQdHIocHJldkxlbmd0aCkpLCBzdG9yZVR5cGUpOwogICAgICAgICAgICAgICAgIExWYWx1
ZSBuZXdMZW5ndGggPSBtX291dC5hZGQocHJldkxlbmd0aCwgbV9vdXQuaW50MzJPbmUpOwogICAg
ICAgICAgICAgICAgIG1fb3V0LnN0b3JlMzIobmV3TGVuZ3RoLCBzdG9yYWdlLCBtX2hlYXBzLkJ1
dHRlcmZseV9wdWJsaWNMZW5ndGgpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihib3hJbnQzMihuZXdM
ZW5ndGgpKTsKICAgICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93UGF0aCwg
Y29udGludWF0aW9uKTsKICAgICAgICAgICAgICAgICBMVmFsdWUgcmVzdWx0OwogICAgICAgICAg
ICAgICAgIGlmIChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSAhPSBBcnJheTo6RG91YmxlKQpA
QCAtNzE1NSw3ICs3MTUyLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAg
ICAgICAgICAgICByZXN1bHQgPSB2bUNhbGwoSW50NjQsIG9wZXJhdGlvbkFycmF5UHVzaERvdWJs
ZSwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgdmFsdWUsIGJhc2UpOwogICAgICAgICAgICAg
ICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3IocmVzdWx0KTsKICAg
ICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0
KTsKICAgICAgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShJbnQ2NCwgZmFzdFJlc3Vs
dCwgc2xvd1Jlc3VsdCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTc1ODgsMzAgKzc1
ODUsMzAgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICB9CiAgICAgfQogCi0K
KyAgICAKICAgICB2b2lkIGNvbXBpbGVBcnJheVBvcCgpCiAgICAgewogICAgICAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9vcmlnaW4u
c2VtYW50aWMpOwogICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEo
KSk7CiAgICAgICAgIExWYWx1ZSBzdG9yYWdlID0gbG93U3RvcmFnZShtX25vZGUtPmNoaWxkMigp
KTsKLQorICAgICAgICAKICAgICAgICAgc3dpdGNoIChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUo
KSkgewogICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKICAgICAgICAgY2FzZSBBcnJheTo6RG91
YmxlOgogICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOiB7CiAgICAgICAgICAgICBJbmRl
eGVkQWJzdHJhY3RIZWFwJiBoZWFwID0gbV9oZWFwcy5mb3JBcnJheVR5cGUobV9ub2RlLT5hcnJh
eU1vZGUoKS50eXBlKCkpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IGZhc3RDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNs
b3dDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRp
bnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAg
TFZhbHVlIHByZXZMZW5ndGggPSBtX291dC5sb2FkMzIoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJm
bHlfcHVibGljTGVuZ3RoKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBWZWN0b3I8VmFs
dWVGcm9tQmxvY2ssIDM+IHJlc3VsdHM7CiAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291
dC5hbmNob3IobV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkp
KSk7CiAgICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAgICAgbV9vdXQuaXNa
ZXJvMzIocHJldkxlbmd0aCksIHJhcmVseShjb250aW51YXRpb24pLCB1c3VhbGx5KGZhc3RDYXNl
KSk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBt
X291dC5hcHBlbmRUbyhmYXN0Q2FzZSwgc2xvd0Nhc2UpOwogICAgICAgICAgICAgTFZhbHVlIG5l
d0xlbmd0aCA9IG1fb3V0LnN1YihwcmV2TGVuZ3RoLCBtX291dC5pbnQzMk9uZSk7CiAgICAgICAg
ICAgICBtX291dC5zdG9yZTMyKG5ld0xlbmd0aCwgc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlf
cHVibGljTGVuZ3RoKTsKQEAgLTc2MzMsMTIgKzc2MzAsMTIgQEAgSUdOT1JFX0NMQU5HX1dBUk5J
TkdTX0VORAogICAgICAgICAgICAgICAgICAgICBtX291dC5kb3VibGVFcXVhbChyZXN1bHQsIHJl
c3VsdCksCiAgICAgICAgICAgICAgICAgICAgIHVzdWFsbHkoY29udGludWF0aW9uKSwgcmFyZWx5
KHNsb3dDYXNlKSk7CiAgICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7CiAgICAgICAgICAgICByZXN1
bHRzLmFwcGVuZChtX291dC5hbmNob3Iodm1DYWxsKAogICAgICAgICAgICAgICAgIEludDY0LCBv
cGVyYXRpb25BcnJheVBvcEFuZFJlY292ZXJMZW5ndGgsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVj
dCksIGJhc2UpKSk7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAg
ICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0
TmV4dCk7CiAgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShJbnQ2NCwgcmVzdWx0cykp
OwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNzcyNiwzMSArNzcyMywzMSBAQCBJR05PUkVfQ0xB
TkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICBzZXRKU1ZhbHVlKGNhbGxSZXN1bHQpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIExCYXNpY0Js
b2NrIHNsb3dQYXRoID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29u
dGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKLQorICAgICAgICAKICAgICAgICAgTEJhc2lj
QmxvY2sgbGFzdE5leHQgPSBtX291dC5pbnNlcnROZXdCbG9ja3NCZWZvcmUoc2xvd1BhdGgpOwot
CisgICAgICAgIAogICAgICAgICBMVmFsdWUgZmFzdE9iamVjdCA9IGFsbG9jYXRlT2JqZWN0PEpT
TGV4aWNhbEVudmlyb25tZW50PigKICAgICAgICAgICAgIEpTTGV4aWNhbEVudmlyb25tZW50Ojph
bGxvY2F0aW9uU2l6ZSh0YWJsZSksIHN0cnVjdHVyZSwgbV9vdXQuaW50UHRyWmVybywgc2xvd1Bh
dGgpOwotCisgICAgICAgIAogICAgICAgICAvLyBXZSBkb24ndCBuZWVkIG1lbW9yeSBiYXJyaWVy
cyBzaW5jZSB3ZSBqdXN0IGZhc3QtY3JlYXRlZCB0aGUgYWN0aXZhdGlvbiwgc28gdGhlCiAgICAg
ICAgIC8vIGFjdGl2YXRpb24gbXVzdCBiZSB5b3VuZy4KICAgICAgICAgbV9vdXQuc3RvcmVQdHIo
c2NvcGUsIGZhc3RPYmplY3QsIG1faGVhcHMuSlNTY29wZV9uZXh0KTsKICAgICAgICAgbV9vdXQu
c3RvcmVQdHIod2Vha1BvaW50ZXIodGFibGUpLCBmYXN0T2JqZWN0LCBtX2hlYXBzLkpTU3ltYm9s
VGFibGVPYmplY3Rfc3ltYm9sVGFibGUpOwotCisgICAgICAgIAogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgdGFibGUtPnNjb3BlU2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIG1f
b3V0LnN0b3JlNjQoCiAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpl
bmNvZGUoaW5pdGlhbGl6YXRpb25WYWx1ZSkpLAogICAgICAgICAgICAgICAgIGZhc3RPYmplY3Qs
IG1faGVhcHMuSlNMZXhpY2FsRW52aXJvbm1lbnRfdmFyaWFibGVzW2ldKTsKICAgICAgICAgfQot
CisgICAgICAgIAogICAgICAgICBtdXRhdG9yRmVuY2UoKTsKLQorICAgICAgICAKICAgICAgICAg
VmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihmYXN0T2JqZWN0KTsKICAg
ICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAgIAogICAgICAgICBtX291
dC5hcHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0aW9uKTsKICAgICAgICAgVk0mIHZtID0gdGhp
cy0+dm0oKTsKICAgICAgICAgTFZhbHVlIGNhbGxSZXN1bHQgPSBsYXp5U2xvd1BhdGgoCkBAIC03
NzY0LDIwICs3NzYxLDIwIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAg
IG1fdm1WYWx1ZSwgc2NvcGUpOwogICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93UmVzdWx0ID0g
bV9vdXQuYW5jaG9yKGNhbGxSZXN1bHQpOwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlv
bik7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFz
dE5leHQpOwogICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShwb2ludGVyVHlwZSgpLCBmYXN0
UmVzdWx0LCBzbG93UmVzdWx0KSk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxlTmV3
RnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fbm9kZS0+b3AoKSA9PSBOZXdGdW5j
dGlvbiB8fCBtX25vZGUtPm9wKCkgPT0gTmV3R2VuZXJhdG9yRnVuY3Rpb24gfHwgbV9ub2RlLT5v
cCgpID09IE5ld0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24gfHwgbV9ub2RlLT5vcCgpID09IE5ld0Fz
eW5jRnVuY3Rpb24pOwogICAgICAgICBib29sIGlzR2VuZXJhdG9yRnVuY3Rpb24gPSBtX25vZGUt
Pm9wKCkgPT0gTmV3R2VuZXJhdG9yRnVuY3Rpb247CiAgICAgICAgIGJvb2wgaXNBc3luY0Z1bmN0
aW9uID0gbV9ub2RlLT5vcCgpID09IE5ld0FzeW5jRnVuY3Rpb247CiAgICAgICAgIGJvb2wgaXNB
c3luY0dlbmVyYXRvckZ1bmN0aW9uID0gIG1fbm9kZS0+b3AoKSA9PSBOZXdBc3luY0dlbmVyYXRv
ckZ1bmN0aW9uOwotCisgICAgICAgIAogICAgICAgICBMVmFsdWUgc2NvcGUgPSBsb3dDZWxsKG1f
bm9kZS0+Y2hpbGQxKCkpOwotCisgICAgICAgIAogICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUq
IGV4ZWN1dGFibGUgPSBtX25vZGUtPmNhc3RPcGVyYW5kPEZ1bmN0aW9uRXhlY3V0YWJsZSo+KCk7
CiAgICAgICAgIGlmIChleGVjdXRhYmxlLT5zaW5nbGV0b24oKS5pc1N0aWxsVmFsaWQoKSkgewog
ICAgICAgICAgICAgTFZhbHVlIGNhbGxSZXN1bHQgPQpAQCAtNzgwNSwxOSArNzgwMiwxOSBAQCBJ
R05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSgpKTsK
LQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd1BhdGggPSBtX291dC5uZXdCbG9j
aygpOwogICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygp
OwotCisgICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0Lmluc2Vy
dE5ld0Jsb2Nrc0JlZm9yZShzbG93UGF0aCk7Ci0KKyAgICAgICAgCiAgICAgICAgIExWYWx1ZSBm
YXN0T2JqZWN0ID0KICAgICAgICAgICAgIGlzR2VuZXJhdG9yRnVuY3Rpb24gPyBhbGxvY2F0ZU9i
amVjdDxKU0dlbmVyYXRvckZ1bmN0aW9uPihzdHJ1Y3R1cmUsIG1fb3V0LmludFB0clplcm8sIHNs
b3dQYXRoKSA6CiAgICAgICAgICAgICBpc0FzeW5jRnVuY3Rpb24gPyBhbGxvY2F0ZU9iamVjdDxK
U0FzeW5jRnVuY3Rpb24+KHN0cnVjdHVyZSwgbV9vdXQuaW50UHRyWmVybywgc2xvd1BhdGgpIDoK
ICAgICAgICAgICAgIGlzQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiA/IGFsbG9jYXRlT2JqZWN0PEpT
QXN5bmNHZW5lcmF0b3JGdW5jdGlvbj4oc3RydWN0dXJlLCBtX291dC5pbnRQdHJaZXJvLCBzbG93
UGF0aCkgOgogICAgICAgICAgICAgYWxsb2NhdGVPYmplY3Q8SlNGdW5jdGlvbj4oc3RydWN0dXJl
LCBtX291dC5pbnRQdHJaZXJvLCBzbG93UGF0aCk7Ci0KLQorICAgICAgICAKKyAgICAgICAgCiAg
ICAgICAgIC8vIFdlIGRvbid0IG5lZWQgbWVtb3J5IGJhcnJpZXJzIHNpbmNlIHdlIGp1c3QgZmFz
dC1jcmVhdGVkIHRoZSBmdW5jdGlvbiwgc28gaXQKICAgICAgICAgLy8gbXVzdCBiZSB5b3VuZy4K
ICAgICAgICAgbV9vdXQuc3RvcmVQdHIoc2NvcGUsIGZhc3RPYmplY3QsIG1faGVhcHMuSlNGdW5j
dGlvbl9zY29wZSk7CkBAIC03ODI2LDcgKzc4MjMsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAKICAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihm
YXN0T2JqZWN0KTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAg
IAogICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0aW9uKTsKIAogICAg
ICAgICBWTSYgdm0gPSB0aGlzLT52bSgpOwpAQCAtNzg0Nyw3ICs3ODQ0LDcgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgbV92bVZhbHVlLCBzY29wZSk7CiAgICAgICAg
IFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3IoY2FsbFJlc3VsdCk7CiAg
ICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAgICAgICAKICAgICAgICAgbV9v
dXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgIHNldEpTVmFsdWUo
bV9vdXQucGhpKHBvaW50ZXJUeXBlKCksIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpKTsKICAgICB9
CkBAIC03OTEzLDE5ICs3OTEwLDE5IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAg
ICAgLy8gRklYTUU6IEEgbW9yZSBlZmZlY3RpdmUgd2F5IG9mIGRlYWxpbmcgd2l0aCB0aGUgYXJn
dW1lbnQgY291bnQgYW5kIGNhbGxlZSBpcyB0byBoYXZlCiAgICAgICAgIC8vIHRoZW0gYmUgZXhw
bGljaXQgYXJndW1lbnRzIHRvIHRoaXMgbm9kZS4KICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjIwNwotCisgICAgICAgIAogICAgICAgICBSZWdp
c3RlcmVkU3RydWN0dXJlIHN0cnVjdHVyZSA9CiAgICAgICAgICAgICBtX2dyYXBoLnJlZ2lzdGVy
U3RydWN0dXJlKG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fb3JpZ2luLnNlbWFudGljKS0+ZGly
ZWN0QXJndW1lbnRzU3RydWN0dXJlKCkpOwotCisgICAgICAgIAogICAgICAgICB1bnNpZ25lZCBt
aW5DYXBhY2l0eSA9IG1fZ3JhcGguYmFzZWxpbmVDb2RlQmxvY2tGb3IobV9vcmlnaW4uc2VtYW50
aWMpLT5udW1QYXJhbWV0ZXJzKCkgLSAxOwotCisgICAgICAgIAogICAgICAgICBMQmFzaWNCbG9j
ayBzbG93UGF0aCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRp
bnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIExCYXNpY0Js
b2NrIGxhc3ROZXh0ID0gbV9vdXQuaW5zZXJ0TmV3QmxvY2tzQmVmb3JlKHNsb3dQYXRoKTsKLQor
ICAgICAgICAKICAgICAgICAgQXJndW1lbnRzTGVuZ3RoIGxlbmd0aCA9IGdldEFyZ3VtZW50c0xl
bmd0aCgpOwotCisgICAgICAgIAogICAgICAgICBMVmFsdWUgZmFzdE9iamVjdDsKICAgICAgICAg
aWYgKGxlbmd0aC5pc0tub3duKSB7CiAgICAgICAgICAgICBmYXN0T2JqZWN0ID0gYWxsb2NhdGVP
YmplY3Q8RGlyZWN0QXJndW1lbnRzPigKQEAgLTc5MzUsMjMgKzc5MzIsMjMgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgTFZhbHVlIHNpemUgPSBtX291dC5hZGQoCiAg
ICAgICAgICAgICAgICAgbV9vdXQuc2hsKGxlbmd0aC52YWx1ZSwgbV9vdXQuY29uc3RJbnQzMigz
KSksCiAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihEaXJlY3RBcmd1bWVudHM6OnN0
b3JhZ2VPZmZzZXQoKSkpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIHNpemUgPSBtX291
dC5zZWxlY3QoCiAgICAgICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKGxlbmd0aC52YWx1
ZSwgbV9vdXQuY29uc3RJbnQzMihtaW5DYXBhY2l0eSkpLAogICAgICAgICAgICAgICAgIHNpemUs
IG1fb3V0LmNvbnN0SW50MzIoRGlyZWN0QXJndW1lbnRzOjphbGxvY2F0aW9uU2l6ZShtaW5DYXBh
Y2l0eSkpKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBmYXN0T2JqZWN0ID0gYWxsb2Nh
dGVWYXJpYWJsZVNpemVkT2JqZWN0PERpcmVjdEFyZ3VtZW50cz4oCiAgICAgICAgICAgICAgICAg
bV9vdXQuemVyb0V4dFB0cihzaXplKSwgc3RydWN0dXJlLCBtX291dC5pbnRQdHJaZXJvLCBzbG93
UGF0aCk7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgbV9vdXQuc3RvcmUzMihsZW5n
dGgudmFsdWUsIGZhc3RPYmplY3QsIG1faGVhcHMuRGlyZWN0QXJndW1lbnRzX2xlbmd0aCk7CiAg
ICAgICAgIG1fb3V0LnN0b3JlMzIobV9vdXQuY29uc3RJbnQzMihtaW5DYXBhY2l0eSksIGZhc3RP
YmplY3QsIG1faGVhcHMuRGlyZWN0QXJndW1lbnRzX21pbkNhcGFjaXR5KTsKICAgICAgICAgbV9v
dXQuc3RvcmVQdHIobV9vdXQuaW50UHRyWmVybywgZmFzdE9iamVjdCwgbV9oZWFwcy5EaXJlY3RB
cmd1bWVudHNfbWFwcGVkQXJndW1lbnRzKTsKICAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQu
aW50UHRyWmVybywgZmFzdE9iamVjdCwgbV9oZWFwcy5EaXJlY3RBcmd1bWVudHNfbW9kaWZpZWRB
cmd1bWVudHNEZXNjcmlwdG9yKTsKLQorICAgICAgICAKICAgICAgICAgVmFsdWVGcm9tQmxvY2sg
ZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihmYXN0T2JqZWN0KTsKICAgICAgICAgbV9vdXQuanVt
cChjb250aW51YXRpb24pOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93
UGF0aCwgY29udGludWF0aW9uKTsKICAgICAgICAgVk0mIHZtID0gdGhpcy0+dm0oKTsKICAgICAg
ICAgTFZhbHVlIGNhbGxSZXN1bHQgPSBsYXp5U2xvd1BhdGgoCkBAIC03OTYzLDEyICs3OTYwLDEy
IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIH0sIG1fdm1WYWx1ZSwg
bGVuZ3RoLnZhbHVlKTsKICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0
LmFuY2hvcihjYWxsUmVzdWx0KTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwot
CisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0
KTsKICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LnBoaShwb2ludGVyVHlwZSgpLCBmYXN0
UmVzdWx0LCBzbG93UmVzdWx0KTsKIAogICAgICAgICBtX291dC5zdG9yZVB0cihnZXRDdXJyZW50
Q2FsbGVlKCksIHJlc3VsdCwgbV9oZWFwcy5EaXJlY3RBcmd1bWVudHNfY2FsbGVlKTsKLQorICAg
ICAgICAKICAgICAgICAgaWYgKGxlbmd0aC5pc0tub3duKSB7CiAgICAgICAgICAgICBWaXJ0dWFs
UmVnaXN0ZXIgc3RhcnQgPSBBc3NlbWJseUhlbHBlcnM6OmFyZ3VtZW50c1N0YXJ0KG1fb3JpZ2lu
LnNlbWFudGljKTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdGQ6Om1h
eChsZW5ndGgua25vd24sIG1pbkNhcGFjaXR5KTsgKytpKSB7CkBAIC03OTc4LDcgKzc5NzUsNyBA
QCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBMVmFsdWUgc3RhY2tCYXNlID0gZ2V0QXJndW1lbnRzU3RhcnQoKTsK
LQorICAgICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsb29wID0gbV9vdXQubmV3
QmxvY2soKTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGVuZCA9IG1fb3V0Lm5ld0Jsb2NrKCk7
CiAKQEAgLTc5OTYsNyArNzk5Myw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAg
ICAgICAgICAgICBvcmlnaW5hbExlbmd0aCA9IG1fb3V0LmFuY2hvcihvcmlnaW5hbExlbmd0aFZh
bHVlKTsKICAgICAgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQuaXNOdWxsKG9yaWdpbmFs
TGVuZ3RoVmFsdWUpLCB1bnN1cmUoZW5kKSwgdW5zdXJlKGxvb3ApKTsKICAgICAgICAgICAgIH0K
LQorICAgICAgICAgICAgCiAgICAgICAgICAgICBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGxv
b3AsIGVuZCk7CiAgICAgICAgICAgICBMVmFsdWUgcHJldmlvdXNJbmRleCA9IG1fb3V0LnBoaShw
b2ludGVyVHlwZSgpLCBvcmlnaW5hbExlbmd0aCk7CiAgICAgICAgICAgICBMVmFsdWUgaW5kZXgg
PSBtX291dC5zdWIocHJldmlvdXNJbmRleCwgbV9vdXQuaW50UHRyT25lKTsKQEAgLTgwMDYsMjkg
KzgwMDMsMjkgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgVmFsdWVG
cm9tQmxvY2sgbmV4dEluZGV4ID0gbV9vdXQuYW5jaG9yKGluZGV4KTsKICAgICAgICAgICAgIG1f
b3V0LmFkZEluY29taW5nVG9QaGkocHJldmlvdXNJbmRleCwgbmV4dEluZGV4KTsKICAgICAgICAg
ICAgIG1fb3V0LmJyYW5jaChtX291dC5pc051bGwoaW5kZXgpLCB1bnN1cmUoZW5kKSwgdW5zdXJl
KGxvb3ApKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhlbmQs
IGxhc3ROZXh0KTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBtdXRhdG9yRmVuY2Uo
KTsKLQorICAgICAgICAKICAgICAgICAgc2V0SlNWYWx1ZShyZXN1bHQpOwogICAgIH0KLQorICAg
IAogICAgIHZvaWQgY29tcGlsZUNyZWF0ZVNjb3BlZEFyZ3VtZW50cygpCiAgICAgewogICAgICAg
ICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Io
bV9vcmlnaW4uc2VtYW50aWMpOwogICAgICAgICBMVmFsdWUgc2NvcGUgPSBsb3dDZWxsKG1fbm9k
ZS0+Y2hpbGQxKCkpOwotCisgICAgICAgIAogICAgICAgICBMVmFsdWUgcmVzdWx0ID0gdm1DYWxs
KAogICAgICAgICAgICAgSW50NjQsIG9wZXJhdGlvbkNyZWF0ZVNjb3BlZEFyZ3VtZW50cywgd2Vh
a1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwKICAgICAgICAgICAgIHdlYWtQb2ludGVyKAogICAgICAg
ICAgICAgICAgIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fb3JpZ2luLnNlbWFudGljKS0+c2Nv
cGVkQXJndW1lbnRzU3RydWN0dXJlKCkpLAogICAgICAgICAgICAgZ2V0QXJndW1lbnRzU3RhcnQo
KSwgZ2V0QXJndW1lbnRzTGVuZ3RoKCkudmFsdWUsIGdldEN1cnJlbnRDYWxsZWUoKSwgc2NvcGUp
OwotCisgICAgICAgIAogICAgICAgICBzZXRKU1ZhbHVlKHJlc3VsdCk7CiAgICAgfQotCisgICAg
CiAgICAgdm9pZCBjb21waWxlQ3JlYXRlQ2xvbmVkQXJndW1lbnRzKCkKICAgICB7CiAgICAgICAg
IGlmIChtX2dyYXBoLmlzV2F0Y2hpbmdIYXZpbmdBQmFkVGltZVdhdGNocG9pbnQobV9ub2RlKSkg
ewpAQCAtODE0NywxOCArODE0NCwxOCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAg
ewogICAgICAgICBMQmFzaWNCbG9jayBub25aZXJvTGVuZ3RoID0gbV9vdXQubmV3QmxvY2soKTsK
ICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKLQor
ICAgICAgICAKICAgICAgICAgVmFsdWVGcm9tQmxvY2sgemVyb0xlbmd0aFJlc3VsdCA9IG1fb3V0
LmFuY2hvcihtX291dC5jb25zdEludDMyKDApKTsKIAogICAgICAgICBMVmFsdWUgbnVtYmVyT2ZB
cmd1bWVudHNUb1NraXAgPSBtX291dC5jb25zdEludDMyKG1fbm9kZS0+bnVtYmVyT2ZBcmd1bWVu
dHNUb1NraXAoKSk7CiAgICAgICAgIExWYWx1ZSBhcmd1bWVudHNMZW5ndGggPSBnZXRBcmd1bWVu
dHNMZW5ndGgoKS52YWx1ZTsKICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmFib3ZlKGFyZ3Vt
ZW50c0xlbmd0aCwgbnVtYmVyT2ZBcmd1bWVudHNUb1NraXApLAogICAgICAgICAgICAgdW5zdXJl
KG5vblplcm9MZW5ndGgpLCB1bnN1cmUoY29udGludWF0aW9uKSk7Ci0KKyAgICAgICAgCiAgICAg
ICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obm9uWmVyb0xlbmd0aCwg
Y29udGludWF0aW9uKTsKICAgICAgICAgVmFsdWVGcm9tQmxvY2sgbm9uWmVyb0xlbmd0aFJlc3Vs
dCA9IG1fb3V0LmFuY2hvcihtX291dC5zdWIoYXJndW1lbnRzTGVuZ3RoLCBudW1iZXJPZkFyZ3Vt
ZW50c1RvU2tpcCkpOwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAgICAg
ICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAg
ICAgICBzZXRJbnQzMihtX291dC5waGkoSW50MzIsIHplcm9MZW5ndGhSZXN1bHQsIG5vblplcm9M
ZW5ndGhSZXN1bHQpKTsKICAgICB9CkBAIC04MzU5LDcgKzgzNTYsNyBAQCBJR05PUkVfQ0xBTkdf
V0FSTklOR1NfRU5ECiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KLQorICAg
IAogICAgIHZvaWQgY29tcGlsZU5ld09iamVjdCgpCiAgICAgewogICAgICAgICBzZXRKU1ZhbHVl
KGFsbG9jYXRlT2JqZWN0KG1fbm9kZS0+c3RydWN0dXJlKCkpKTsKQEAgLTg0ODUsNyArODQ4Miw3
IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgLy8gdW5pbml0aWFsaXplZCBj
b250aWd1b3VzIEpTQXJyYXksIHdoaWNoIGVuc3VyZXMgdGhhdCB3ZSB3aWxsIG5ldmVyIHByb2R1
Y2UgYSBoYWxmLWJha2VkIEpTQXJyYXkuCiAgICAgICAgIGZvciAodW5zaWduZWQgb3BlcmFuZElu
ZGV4ID0gMDsgb3BlcmFuZEluZGV4IDwgbV9ub2RlLT5udW1DaGlsZHJlbigpOyArK29wZXJhbmRJ
bmRleCkKICAgICAgICAgICAgIHNwZWN1bGF0ZShtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwg
b3BlcmFuZEluZGV4KSk7Ci0KKyAgICAgICAgCiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX29yaWdpbi5zZW1hbnRpYyk7CiAg
ICAgICAgIFJlZ2lzdGVyZWRTdHJ1Y3R1cmUgc3RydWN0dXJlID0gbV9ncmFwaC5yZWdpc3RlclN0
cnVjdHVyZShnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5n
QWxsb2NhdGlvbigKICAgICAgICAgICAgIG1fbm9kZS0+aW5kZXhpbmdUeXBlKCkpKTsKQEAgLTg0
OTQsMjUgKzg0OTEsMjUgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAg
dW5zaWduZWQgbnVtRWxlbWVudHMgPSBtX25vZGUtPm51bUNoaWxkcmVuKCk7CiAgICAgICAgICAg
ICB1bnNpZ25lZCB2ZWN0b3JMZW5ndGhIaW50ID0gbV9ub2RlLT52ZWN0b3JMZW5ndGhIaW50KCk7
CiAgICAgICAgICAgICBBU1NFUlQodmVjdG9yTGVuZ3RoSGludCA+PSBudW1FbGVtZW50cyk7Ci0K
KyAgICAgICAgICAgIAogICAgICAgICAgICAgQXJyYXlWYWx1ZXMgYXJyYXlWYWx1ZXMgPQogICAg
ICAgICAgICAgICAgIGFsbG9jYXRlVW5pbml0aWFsaXplZENvbnRpZ3VvdXNKU0FycmF5KG51bUVs
ZW1lbnRzLCB2ZWN0b3JMZW5ndGhIaW50LCBzdHJ1Y3R1cmUpOwotCisgICAgICAgICAgICAKICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgb3BlcmFuZEluZGV4ID0gMDsgb3BlcmFuZEluZGV4IDwg
bV9ub2RlLT5udW1DaGlsZHJlbigpOyArK29wZXJhbmRJbmRleCkgewogICAgICAgICAgICAgICAg
IEVkZ2UgZWRnZSA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCBvcGVyYW5kSW5kZXgpOwot
CisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgc3dpdGNoIChtX25vZGUtPmluZGV4
aW5nVHlwZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBBTExfQkxBTktfSU5ERVhJTkdfVFlQ
RVM6CiAgICAgICAgICAgICAgICAgY2FzZSBBTExfVU5ERUNJREVEX0lOREVYSU5HX1RZUEVTOgog
ICAgICAgICAgICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIGluZGV4
aW5nIHR5cGUiKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KKyAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgY2FzZSBBTExfRE9VQkxFX0lOREVYSU5HX1RZUEVTOgog
ICAgICAgICAgICAgICAgICAgICBtX291dC5zdG9yZURvdWJsZSgKICAgICAgICAgICAgICAgICAg
ICAgICAgIGxvd0RvdWJsZShlZGdlKSwKICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5VmFs
dWVzLmJ1dHRlcmZseSwgbV9oZWFwcy5pbmRleGVkRG91YmxlUHJvcGVydGllc1tvcGVyYW5kSW5k
ZXhdKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KKyAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgY2FzZSBBTExfSU5UMzJfSU5ERVhJTkdfVFlQRVM6CiAgICAgICAg
ICAgICAgICAgY2FzZSBBTExfQ09OVElHVU9VU19JTkRFWElOR19UWVBFUzoKICAgICAgICAgICAg
ICAgICAgICAgbV9vdXQuc3RvcmU2NCgKQEAgLTg1MjAsMzAgKzg1MTcsMzAgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlWYWx1ZXMuYnV0
dGVyZmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgbV9oZWFwcy5mb3JJbmRleGluZ1R5cGUo
bV9ub2RlLT5pbmRleGluZ1R5cGUoKSktPmF0KG9wZXJhbmRJbmRleCkpOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLQorICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAi
Q29ycnVwdCBpbmRleGluZyB0eXBlIik7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgICAg
ICBzZXRKU1ZhbHVlKGFycmF5VmFsdWVzLmFycmF5KTsKICAgICAgICAgICAgIG11dGF0b3JGZW5j
ZSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAg
IGlmICghbV9ub2RlLT5udW1DaGlsZHJlbigpKSB7CiAgICAgICAgICAgICBzZXRKU1ZhbHVlKHZt
Q2FsbCgKICAgICAgICAgICAgICAgICBJbnQ2NCwgb3BlcmF0aW9uTmV3RW1wdHlBcnJheSwgbV92
bVZhbHVlLAogICAgICAgICAgICAgICAgIHdlYWtTdHJ1Y3R1cmUoc3RydWN0dXJlKSkpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIHNpemVfdCBz
Y3JhdGNoU2l6ZSA9IHNpemVvZihFbmNvZGVkSlNWYWx1ZSkgKiBtX25vZGUtPm51bUNoaWxkcmVu
KCk7CiAgICAgICAgIEFTU0VSVChzY3JhdGNoU2l6ZSk7CiAgICAgICAgIFNjcmF0Y2hCdWZmZXIq
IHNjcmF0Y2hCdWZmZXIgPSB2bSgpLnNjcmF0Y2hCdWZmZXJGb3JTaXplKHNjcmF0Y2hTaXplKTsK
ICAgICAgICAgRW5jb2RlZEpTVmFsdWUqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PEVuY29kZWRKU1Zh
bHVlKj4oc2NyYXRjaEJ1ZmZlci0+ZGF0YUJ1ZmZlcigpKTsKLQorICAgICAgICAKICAgICAgICAg
Zm9yICh1bnNpZ25lZCBvcGVyYW5kSW5kZXggPSAwOyBvcGVyYW5kSW5kZXggPCBtX25vZGUtPm51
bUNoaWxkcmVuKCk7ICsrb3BlcmFuZEluZGV4KSB7CiAgICAgICAgICAgICBFZGdlIGVkZ2UgPSBt
X2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgb3BlcmFuZEluZGV4KTsKICAgICAgICAgICAgIExW
YWx1ZSB2YWx1ZVRvU3RvcmU7CkBAIC04ODAyLDcgKzg3OTksNyBAQCBJR05PUkVfQ0xBTkdfV0FS
TklOR1NfRU5ECiAKICAgICAgICAgc2V0SlNWYWx1ZShyZXN1bHQpOwogICAgIH0KLQorICAgIAog
ICAgIHZvaWQgY29tcGlsZUNyZWF0ZVRoaXMoKQogICAgIHsKICAgICAgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fb3JpZ2luLnNlbWFu
dGljKTsKQEAgLTkxNzAsNyArOTE2Nyw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKIAog
ICAgICAgICBzZXRKU1ZhbHVlKHJlc3VsdCk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21w
aWxlTmV3QXJyYXlCdWZmZXIoKQogICAgIHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fb3JpZ2luLnNlbWFudGljKTsKQEAg
LTkxOTcsNyArOTE5NCw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAg
IHNldEpTVmFsdWUobV9vdXQucGhpKHBvaW50ZXJUeXBlKCksIHNsb3dSZXN1bHQsIGZhc3RSZXN1
bHQpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAg
ICBzZXRKU1ZhbHVlKHZtQ2FsbCgKICAgICAgICAgICAgIEludDY0LCBvcGVyYXRpb25OZXdBcnJh
eUJ1ZmZlciwgbV92bVZhbHVlLAogICAgICAgICAgICAgd2Vha1N0cnVjdHVyZShzdHJ1Y3R1cmUp
LCBmcm96ZW5Qb2ludGVyKG1fbm9kZS0+Y2VsbE9wZXJhbmQoKSkpKTsKQEAgLTkyMDYsMTEgKzky
MDMsMTEgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgIHZvaWQgY29tcGlsZU5ld0Fy
cmF5V2l0aFNpemUoKQogICAgIHsKICAgICAgICAgTFZhbHVlIHB1YmxpY0xlbmd0aCA9IGxvd0lu
dDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwotCisgICAgICAgIAogICAgICAgICBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9vcmlnaW4uc2VtYW50
aWMpOwogICAgICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIHN0cnVjdHVyZSA9IG1fZ3JhcGgucmVn
aXN0ZXJTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlw
ZUR1cmluZ0FsbG9jYXRpb24oCiAgICAgICAgICAgICBtX25vZGUtPmluZGV4aW5nVHlwZSgpKSk7
Ci0KKyAgICAgICAgCiAgICAgICAgIGlmICghZ2xvYmFsT2JqZWN0LT5pc0hhdmluZ0FCYWRUaW1l
KCkgJiYgIWhhc0FueUFycmF5U3RvcmFnZShtX25vZGUtPmluZGV4aW5nVHlwZSgpKSkgewogICAg
ICAgICAgICAgSW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSA9IG1fbm9kZS0+aW5kZXhpbmdUeXBl
KCk7CiAgICAgICAgICAgICBzZXRKU1ZhbHVlKApAQCAtOTIxOSw3ICs5MjE2LDcgQEAgSUdOT1JF
X0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgbXV0YXRvckZlbmNlKCk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgTFZhbHVlIHN0cnVj
dHVyZVZhbHVlID0gbV9vdXQuc2VsZWN0KAogICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFs
KHB1YmxpY0xlbmd0aCwgbV9vdXQuY29uc3RJbnQzMihNSU5fQVJSQVlfU1RPUkFHRV9DT05TVFJV
Q1RJT05fTEVOR1RIKSksCiAgICAgICAgICAgICB3ZWFrU3RydWN0dXJlKG1fZ3JhcGgucmVnaXN0
ZXJTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1
cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoQXJyYXlTdG9yYWdlKSkpLApAQCAtOTI1Niw3ICs5MjUz
LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgIHsKICAgICAgICAgVHlwZWRBcnJh
eVR5cGUgdHlwZWRBcnJheVR5cGUgPSBtX25vZGUtPnR5cGVkQXJyYXlUeXBlKCk7CiAgICAgICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvciht
X29yaWdpbi5zZW1hbnRpYyk7Ci0KKyAgICAgICAgCiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5j
aGlsZDEoKS51c2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewogICAgICAgICAg
ICAgYm9vbCBpc1Jlc2l6YWJsZU9yR3Jvd2FibGVTaGFyZWQgPSBmYWxzZTsKQEAgLTkzODksMTIg
KzkzODYsMTIgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBUcmFuc2l0aW9u
KiB0cmFuc2l0aW9uID0gbV9ub2RlLT50cmFuc2l0aW9uKCk7CiAgICAgICAgIExWYWx1ZSBvYmpl
Y3QgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBMVmFsdWUgb2xkU3RvcmFn
ZSA9IGxvd1N0b3JhZ2UobV9ub2RlLT5jaGlsZDIoKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIHNl
dFN0b3JhZ2UoCiAgICAgICAgICAgICByZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKAogICAgICAg
ICAgICAgICAgIG9iamVjdCwgb2xkU3RvcmFnZSwgdHJhbnNpdGlvbi0+cHJldmlvdXMuZ2V0KCks
IHRyYW5zaXRpb24tPm5leHQuZ2V0KCkpKTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBp
bGVOdWtlU3RydWN0dXJlQW5kU2V0QnV0dGVyZmx5KCkKICAgICB7CiAgICAgICAgIG51a2VTdHJ1
Y3R1cmVBbmRTZXRCdXR0ZXJmbHkobG93U3RvcmFnZShtX25vZGUtPmNoaWxkMigpKSwgbG93Q2Vs
bChtX25vZGUtPmNoaWxkMSgpKSk7CkBAIC05NDQxLDEyICs5NDM4LDEyIEBAIElHTk9SRV9DTEFO
R19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQotCisg
ICAgCiAgICAgdm9pZCBjb21waWxlVG9OdW1lcmljKCkKICAgICB7CiAgICAgICAgIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX29yaWdpbi5z
ZW1hbnRpYyk7CiAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGls
ZDEoKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIGlmIChhYnN0cmFjdFZhbHVlKG1fbm9kZS0+Y2hp
bGQxKCkpLm1fdHlwZSAmIChTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjQmlnSW50KSkgewogICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgbm90TnVtYmVyID0gbV9vdXQubmV3QmxvY2soKTsKICNpZiBV
U0UoQklHSU5UMzIpCkBAIC05NDY5LDcgKzk0NjYsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGlzQ2VsbFBhdGgpOwogICAgICAgICAg
ICAgbV9vdXQuYnJhbmNoKGlzSGVhcEJpZ0ludCh2YWx1ZSwgcHJvdmVuVHlwZShtX25vZGUtPmNo
aWxkMSgpKSksIHVuc3VyZShjb250aW51YXRpb24pLCB1bnN1cmUoc2xvd1BhdGgpKTsKLQorICAg
ICAgICAgICAgCiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93UGF0aCk7CiAgICAgICAg
ICAgICAvLyBXZSBoYXZlIHNldmVyYWwgYXR0ZW1wdHMgdG8gcmVtb3ZlIFRvTnVtZXJpYy4gQnV0
IFRvTnVtZXJpYyBzdGlsbCBleGlzdHMuCiAgICAgICAgICAgICAvLyBJdCBtZWFucyB0aGF0IHRo
ZSBzbG93IHBhdGggaXMgbm90IHJhcmUuCkBAIC05NTEyLDcgKzk1MDksNyBAQCBJR05PUkVfQ0xB
TkdfV0FSTklOR1NfRU5ECiAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKEludDY0LCBmYXN0
UmVzdWx0LCBzbG93UmVzdWx0KSk7CiAgICAgfQogCi0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVU
b1N0cmluZ09yQ2FsbFN0cmluZ0NvbnN0cnVjdG9yT3JTdHJpbmdWYWx1ZU9mKCkKICAgICB7CiAg
ICAgICAgIEFTU0VSVChtX25vZGUtPm9wKCkgIT0gU3RyaW5nVmFsdWVPZiB8fCBtX25vZGUtPmNo
aWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKTsKQEAgLTk1MjYsMTkgKzk1MjMsMTkgQEAg
SUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5s
b2FkUHRyKGNlbGwsIG1faGVhcHMuSlNXcmFwcGVyT2JqZWN0X2ludGVybmFsVmFsdWUpKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotCisgICAgICAgICAgICAKICAgICAgICAgY2Fz
ZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZTogewogICAgICAgICAgICAgTFZhbHVlIGNlbGwgPSBs
b3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHR5cGUgPSBtX291
dC5sb2FkOFplcm9FeHQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpOwotCisg
ICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdFN0cmluZyA9IG1fb3V0Lm5l
d0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5u
ZXdCbG9jaygpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNp
bXBsZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihjZWxsKTsKICAgICAgICAgICAgIG1fb3V0LmJyYW5j
aCgKICAgICAgICAgICAgICAgICBtX291dC5lcXVhbCh0eXBlLCBtX291dC5jb25zdEludDMyKFN0
cmluZ1R5cGUpKSwKICAgICAgICAgICAgICAgICB1bnN1cmUoY29udGludWF0aW9uKSwgdW5zdXJl
KG5vdFN0cmluZykpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxh
c3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obm90U3RyaW5nLCBjb250aW51YXRpb24pOwogICAgICAg
ICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgICAgIEJhZFR5cGUsIGpzVmFsdWVWYWx1ZShj
ZWxsKSwgbV9ub2RlLT5jaGlsZDEoKS5ub2RlKCksCkBAIC05NTQ2LDEwICs5NTQzLDEwIEBAIElH
Tk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHVuYm94
ZWRSZXN1bHQgPSBtX291dC5hbmNob3IoCiAgICAgICAgICAgICAgICAgbV9vdXQubG9hZFB0cihj
ZWxsLCBtX2hlYXBzLkpTV3JhcHBlck9iamVjdF9pbnRlcm5hbFZhbHVlKSk7CiAgICAgICAgICAg
ICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgICAgICBzZXRK
U1ZhbHVlKG1fb3V0LnBoaShJbnQ2NCwgc2ltcGxlUmVzdWx0LCB1bmJveGVkUmVzdWx0KSk7Ci0K
KyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9pbnRlcnByZXRlci5maWx0ZXIobV9ub2RlLT5j
aGlsZDEoKSwgU3BlY1N0cmluZyB8IFNwZWNTdHJpbmdPYmplY3QpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CkBAIC05NjAyLDExICs5NTk5LDExIEBAIElHTk9SRV9DTEFOR19XQVJO
SU5HU19FTkQKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGls
ZDEoKSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgdmFsdWUgPSBsb3dKU1Zh
bHVlKG1fbm9kZS0+Y2hpbGQxKCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7Ci0KKyAgICAg
ICAgICAgIAogICAgICAgICAgICAgTEJhc2ljQmxvY2sgaXNDZWxsID0gbV9vdXQubmV3QmxvY2so
KTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdFN0cmluZyA9IG1fb3V0Lm5ld0Jsb2NrKCk7
CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygp
OwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIExWYWx1ZSBpc0NlbGxQcmVkaWNhdGU7CiAg
ICAgICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkKICAg
ICAgICAgICAgICAgICBpc0NlbGxQcmVkaWNhdGUgPSBtX291dC5ib29sZWFuVHJ1ZTsKQEAgLTk2
MTUsNyArOTYxMiw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICBpc0NlbGxQcmVkaWNhdGUgPSB0aGlzLT5pc0NlbGwodmFsdWUs
IHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpOwogICAgICAgICAgICAgbV9vdXQuYnJhbmNo
KGlzQ2VsbFByZWRpY2F0ZSwgdW5zdXJlKGlzQ2VsbCksIHVuc3VyZShub3RTdHJpbmcpKTsKLQor
ICAgICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFw
cGVuZFRvKGlzQ2VsbCwgbm90U3RyaW5nKTsKICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNp
bXBsZVJlc3VsdCA9IG1fb3V0LmFuY2hvcih2YWx1ZSk7CiAgICAgICAgICAgICBMVmFsdWUgaXNT
dHJpbmdQcmVkaWNhdGU7CkBAIC05NjI0LDcgKzk2MjEsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklO
R1NfRU5ECiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBpc1N0cmluZ1ByZWRp
Y2F0ZSA9IG1fb3V0LmJvb2xlYW5GYWxzZTsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc1N0
cmluZ1ByZWRpY2F0ZSwgdW5zdXJlKGNvbnRpbnVhdGlvbiksIHVuc3VyZShub3RTdHJpbmcpKTsK
LQorICAgICAgICAgICAgCiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhub3RTdHJpbmcsIGNv
bnRpbnVhdGlvbik7CiAgICAgICAgICAgICBMVmFsdWUgcmVzdWx0OwogICAgICAgICAgICAgaWYg
KG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IENlbGxVc2UpIHsKQEAgLTk2MzgsNyArOTYz
NSw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIFZhbHVlRnJvbUJsb2NrIGNvbnZlcnRlZFJlc3VsdCA9IG1fb3V0LmFuY2hvcihyZXN1bHQp
OwogICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAgICAgICAK
ICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAg
ICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkoSW50NjQsIHNpbXBsZVJlc3VsdCwgY29udmVy
dGVkUmVzdWx0KSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC05NzIwLDI4ICs5NzE3LDI4IEBA
IElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICB7CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX29yaWdpbi5zZW1hbnRp
Yyk7CiAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSk7
Ci0KKyAgICAgICAgCiAgICAgICAgIExCYXNpY0Jsb2NrIGlzQ2VsbENhc2UgPSBtX291dC5uZXdC
bG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBpc09iamVjdENhc2UgPSBtX291dC5uZXdCbG9j
aygpOwogICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygp
OwotCisgICAgICAgIAogICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDM+IHJlc3VsdHM7
Ci0KKyAgICAgICAgCiAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcih2YWx1ZSkp
OwogICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICBpc0NlbGwodmFsdWUsIHByb3Zl
blR5cGUobV9ub2RlLT5jaGlsZDEoKSkpLCB1bnN1cmUoaXNDZWxsQ2FzZSksIHVuc3VyZShjb250
aW51YXRpb24pKTsKLQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBt
X291dC5hcHBlbmRUbyhpc0NlbGxDYXNlLCBpc09iamVjdENhc2UpOwogICAgICAgICByZXN1bHRz
LmFwcGVuZChtX291dC5hbmNob3IodmFsdWUpKTsKICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAg
ICAgICAgICAgaXNPYmplY3QodmFsdWUsIHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpLAog
ICAgICAgICAgICAgdW5zdXJlKGlzT2JqZWN0Q2FzZSksIHVuc3VyZShjb250aW51YXRpb24pKTsK
LQorICAgICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaXNPYmplY3RDYXNlLCBjb250aW51
YXRpb24pOwogICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3Iodm1DYWxsKAogICAg
ICAgICAgICAgSW50NjQsIG9wZXJhdGlvblRvUHJpbWl0aXZlLCB3ZWFrUG9pbnRlcihnbG9iYWxP
YmplY3QpLCB2YWx1ZSkpKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCisg
ICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsK
ICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkoSW50NjQsIHJlc3VsdHMpKTsKICAgICB9CkBA
IC05ODA1LDcgKzk4MDIsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIG1f
b3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAgICAgICBzZXRKU1ZhbHVl
KG1fb3V0LnBoaShJbnQ2NCwgZmFzdFJlc3VsdCwgc2xvd1Jlc3VsdCkpOwogICAgIH0KLQorICAg
IAogICAgIHZvaWQgY29tcGlsZU1ha2VSb3BlKCkKICAgICB7CiAgICAgICAgIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX29yaWdpbi5zZW1h
bnRpYyk7CkBAIC05ODMxLDE2ICs5ODI4LDE2IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQK
ICAgICAgICAgICAgIGtpZHNbMl0gPSBudWxscHRyOwogICAgICAgICAgICAgbnVtS2lkcyA9IDI7
CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgZW1wdHlDYXNlID0g
bV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd1BhdGggPSBtX291dC5u
ZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdC
bG9jaygpOwotCisgICAgICAgIAogICAgICAgICBBbGxvY2F0b3IgYWxsb2NhdG9yID0gYWxsb2Nh
dG9yRm9yQ29uY3VycmVudGx5PEpTUm9wZVN0cmluZz4odm0oKSwgc2l6ZW9mKEpTUm9wZVN0cmlu
ZyksIEFsbG9jYXRvckZvck1vZGU6OkFsbG9jYXRvcklmRXhpc3RzKTsKLQorICAgICAgICAKICAg
ICAgICAgTFZhbHVlIHJlc3VsdCA9IGFsbG9jYXRlQ2VsbCgKICAgICAgICAgICAgIG1fb3V0LmNv
bnN0SW50UHRyKGFsbG9jYXRvci5sb2NhbEFsbG9jYXRvcigpKSwgdm0oKS5zdHJpbmdTdHJ1Y3R1
cmUuZ2V0KCksIHNsb3dQYXRoKTsKLQorICAgICAgICAKICAgICAgICAgLy8gVGhpcyBwdXRzIG51
bGxwdHIgZm9yIHRoZSBmaXJzdCBmaWJlci4gSXQgbWFrZXMgdmlzaXRDaGlsZHJlbiBzYWZlIGV2
ZW4gaWYgdGhpcyBKU1JvcGVTdHJpbmcgaXMgZGlzY2FyZGVkIGR1ZSB0byB0aGUgc3BlY3VsYXRp
b24gZmFpbHVyZSBpbiB0aGUgZm9sbG93aW5nIHBhdGguCiAgICAgICAgIG1fb3V0LnN0b3JlUHRy
KG1fb3V0LmNvbnN0SW50UHRyKEpTU3RyaW5nOjppc1JvcGVJblBvaW50ZXIpLCByZXN1bHQsIG1f
aGVhcHMuSlNSb3BlU3RyaW5nX2ZpYmVyMCk7CiAKQEAgLTk5MDMsNyArOTkwMCw3IEBAIElHTk9S
RV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0LmxT
aHIoa2lkc1sxXSwgbV9vdXQuY29uc3RJbnQzMigzMikpLCByZXN1bHQsIG1faGVhcHMuSlNSb3Bl
U3RyaW5nX2ZpYmVyMik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fb3V0LnN0b3JlUHRy
KG1fb3V0LmJpdE9yKG1fb3V0LmxTaHIoa2lkc1sxXSwgbV9vdXQuY29uc3RJbnQzMigzMikpLCBt
X291dC5zaGwoa2lkc1syXSwgbV9vdXQuY29uc3RJbnQzMigxNikpKSwgcmVzdWx0LCBtX2hlYXBz
LkpTUm9wZVN0cmluZ19maWJlcjIpOwotCisgICAgICAgIAogICAgICAgICBtdXRhdG9yRmVuY2Uo
KTsKICAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihyZXN1
bHQpOwogICAgICAgICBtX291dC5icmFuY2gobV9vdXQuaXNaZXJvMzIoZmxhZ3NBbmRMZW5ndGgu
bGVuZ3RoKSwgcmFyZWx5KGVtcHR5Q2FzZSksIHVzdWFsbHkoY29udGludWF0aW9uKSk7CkBAIC05
OTExLDcgKzk5MDgsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIExCYXNp
Y0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZW1wdHlDYXNlLCBzbG93UGF0aCk7CiAg
ICAgICAgIFZhbHVlRnJvbUJsb2NrIGVtcHR5UmVzdWx0ID0gbV9vdXQuYW5jaG9yKHdlYWtQb2lu
dGVyKGpzRW1wdHlTdHJpbmcobV9ncmFwaC5tX3ZtKSkpOwogICAgICAgICBtX291dC5qdW1wKGNv
bnRpbnVhdGlvbik7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dQYXRo
LCBjb250aW51YXRpb24pOwogICAgICAgICBMVmFsdWUgc2xvd1Jlc3VsdFZhbHVlOwogICAgICAg
ICBWTSYgdm0gPSB0aGlzLT52bSgpOwpAQCAtOTkzOCw3ICs5OTM1LDcgQEAgSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0VORAogICAgICAgICB9CiAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1
bHQgPSBtX291dC5hbmNob3Ioc2xvd1Jlc3VsdFZhbHVlKTsKICAgICAgICAgbV9vdXQuanVtcChj
b250aW51YXRpb24pOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51
YXRpb24sIGxhc3ROZXh0KTsKICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkoSW50NjQsIGZh
c3RSZXN1bHQsIGVtcHR5UmVzdWx0LCBzbG93UmVzdWx0KSk7CiAgICAgfQpAQCAtOTk3NCw3ICs5
OTcxLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICB9Ci0KKyAgICAKICAgICBMVmFsdWUgY29tcGlsZVN0cmluZ0NoYXJBdElt
cGwoKQogICAgIHsKICAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dTdHJpbmcobV9ncmFwaC5jaGls
ZChtX25vZGUsIDApKTsKQEAgLTEwMDg1LDcgKzEwMDgyLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5J
TkdTX0VORAogICAgIHsKICAgICAgICAgc2V0SlNWYWx1ZShjb21waWxlU3RyaW5nQ2hhckF0SW1w
bCgpKTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVTdHJpbmdDaGFyQ29kZUF0KCkK
ICAgICB7CiAgICAgICAgIExCYXNpY0Jsb2NrIGlzOEJpdCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CkBA
IC0xMDA5NCwzOCArMTAwOTEsMzggQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiAgICAg
ICAgIExWYWx1ZSBiYXNlID0gbG93U3RyaW5nKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBM
VmFsdWUgaW5kZXggPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMigpKTsKLQorICAgICAgICAKICAg
ICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKGJhc2UsIG1faGVhcHMuSlNT
dHJpbmdfdmFsdWUpOwogCiAgICAgICAgIHNwZWN1bGF0ZSgKICAgICAgICAgICAgIFVuY291bnRh
YmxlLCBub1ZhbHVlKCksIG51bGxwdHIsCiAgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwo
CiAgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0cmluZ0lt
cGwsIG1faGVhcHMuU3RyaW5nSW1wbF9sZW5ndGgpKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1f
b3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0LnRlc3RJc1plcm8zMigKICAgICAgICAgICAg
ICAgICBtX291dC5sb2FkMzIoc3RyaW5nSW1wbCwgbV9oZWFwcy5TdHJpbmdJbXBsX2hhc2hBbmRG
bGFncyksCiAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihTdHJpbmdJbXBsOjpmbGFn
SXM4Qml0KCkpKSwKICAgICAgICAgICAgIHVuc3VyZShpczE2Qml0KSwgdW5zdXJlKGlzOEJpdCkp
OwotCisgICAgICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5h
cHBlbmRUbyhpczhCaXQsIGlzMTZCaXQpOwotCisgICAgICAgICAgICAKICAgICAgICAgLy8gRklY
TUU6IG5lZWQgdG8gY2FnZSBzdHJpbmdzIQogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0OTI0CiAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGNoYXI4
Qml0ID0gbV9vdXQuYW5jaG9yKAogICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoYmFz
ZUluZGV4V2l0aFByb3ZlblZhbHVlKAogICAgICAgICAgICAgICAgIG1faGVhcHMuY2hhcmFjdGVy
czgsIG1fb3V0LmxvYWRQdHIoc3RyaW5nSW1wbCwgbV9oZWFwcy5TdHJpbmdJbXBsX2RhdGEpLCBp
bmRleCwgbV9ub2RlLT5jaGlsZDIoKSkpKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRp
b24pOwotCisgICAgICAgICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaXMxNkJpdCwgY29u
dGludWF0aW9uKTsKLQorICAgICAgICAgICAgCiAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGNoYXIx
NkJpdCA9IG1fb3V0LmFuY2hvcigKICAgICAgICAgICAgIG1fb3V0LmxvYWQxNlplcm9FeHQzMihi
YXNlSW5kZXhXaXRoUHJvdmVuVmFsdWUoCiAgICAgICAgICAgICAgICAgbV9oZWFwcy5jaGFyYWN0
ZXJzMTYsIG1fb3V0LmxvYWRQdHIoc3RyaW5nSW1wbCwgbV9oZWFwcy5TdHJpbmdJbXBsX2RhdGEp
LCBpbmRleCwgbV9ub2RlLT5jaGlsZDIoKSkpKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51
YXRpb24pOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24s
IGxhc3ROZXh0KTsKLQorICAgICAgICAKICAgICAgICAgLy8gV2UgaGF2ZSB0byBrZWVwIGJhc2Ug
YWxpdmUgc2luY2UgdGhhdCBrZWVwcyBzdG9yYWdlIGFsaXZlLgogICAgICAgICBlbnN1cmVTdGls
bEFsaXZlSGVyZShiYXNlKTsKICAgICAgICAgc2V0SW50MzIobV9vdXQucGhpKEludDMyLCBjaGFy
OEJpdCwgY2hhcjE2Qml0KSk7CkBAIC0xMDE5Myw3ICsxMDE5MCw3IEBAIElHTk9SRV9DTEFOR19X
QVJOSU5HU19FTkQKICAgICB7CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX29yaWdpbi5zZW1hbnRpYyk7CiAgICAgICAgIEVk
Z2UgY2hpbGRFZGdlID0gbV9ub2RlLT5jaGlsZDEoKTsKLQorICAgICAgICAKICAgICAgICAgaWYg
KGNoaWxkRWRnZS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkgewogICAgICAgICAgICAgTFZhbHVl
IHJlc3VsdCA9IHZtQ2FsbCgKICAgICAgICAgICAgICAgICBJbnQ2NCwgb3BlcmF0aW9uU3RyaW5n
RnJvbUNoYXJDb2RlVW50eXBlZCwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwKQEAgLTEwMjA1
LDcgKzEwMjAyLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBERkdfQVNT
RVJUKG1fZ3JhcGgsIG1fbm9kZSwgY2hpbGRFZGdlLnVzZUtpbmQoKSA9PSBJbnQzMlVzZSB8fCBj
aGlsZEVkZ2UudXNlS2luZCgpID09IEtub3duSW50MzJVc2UsIGNoaWxkRWRnZS51c2VLaW5kKCkp
OwogCiAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0ludDMyKGNoaWxkRWRnZSk7Ci0KKyAgICAg
ICAgCiAgICAgICAgIExCYXNpY0Jsb2NrIHNtYWxsSW50Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7
CiAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAg
ICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKQEAgLTEwMjY1
LDMyICsxMDI2MiwzMiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHNldEludDMyKG1fb3V0LmNhc3RUb0ludDMyKHZtQ2FsbChJbnQ2NCwgb3Bl
cmF0aW9uU3RyaW5nSW5kZXhPZiwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgYmFzZSwgc2Vh
cmNoKSkpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZUdldEJ5T2Zmc2V0KCkKICAg
ICB7CiAgICAgICAgIFN0b3JhZ2VBY2Nlc3NEYXRhJiBkYXRhID0gbV9ub2RlLT5zdG9yYWdlQWNj
ZXNzRGF0YSgpOwotCisgICAgICAgIAogICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9u
b2RlLT5jaGlsZDIoKSk7CiAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvYWRQcm9wZXJ0eShsb3dT
dG9yYWdlKG1fbm9kZS0+Y2hpbGQxKCkpLCBkYXRhLmlkZW50aWZpZXJOdW1iZXIsIGRhdGEub2Zm
c2V0KTsKICAgICAgICAgLy8gV2UgaGF2ZSB0byBrZWVwIGJhc2UgYWxpdmUgc2luY2UgdGhhdCBr
ZWVwcyBjb250ZW50IG9mIHN0b3JhZ2UgYWxpdmUuCiAgICAgICAgIGVuc3VyZVN0aWxsQWxpdmVI
ZXJlKGJhc2UpOwogICAgICAgICBzZXRKU1ZhbHVlKHZhbHVlKTsKICAgICB9Ci0KKyAgICAKICAg
ICB2b2lkIGNvbXBpbGVHZXRHZXR0ZXIoKQogICAgIHsKICAgICAgICAgc2V0SlNWYWx1ZShtX291
dC5sb2FkUHRyKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuR2V0dGVyU2V0dGVy
X2dldHRlcikpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZUdldFNldHRlcigpCiAg
ICAgewogICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmxvYWRQdHIobG93Q2VsbChtX25vZGUtPmNo
aWxkMSgpKSwgbV9oZWFwcy5HZXR0ZXJTZXR0ZXJfc2V0dGVyKSk7CiAgICAgfQotCisgICAgCiAg
ICAgdm9pZCBjb21waWxlTXVsdGlHZXRCeU9mZnNldCgpCiAgICAgewogICAgICAgICBMVmFsdWUg
YmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIE11
bHRpR2V0QnlPZmZzZXREYXRhJiBkYXRhID0gbV9ub2RlLT5tdWx0aUdldEJ5T2Zmc2V0RGF0YSgp
OwogCiAgICAgICAgIFZlY3RvcjxMQmFzaWNCbG9jaywgMj4gYmxvY2tzKGRhdGEuY2FzZXMuc2l6
ZSgpKTsKQEAgLTEwMjk4LDcgKzEwMjk1LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAog
ICAgICAgICAgICAgYmxvY2tzW2ldID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2lj
QmxvY2sgZXhpdCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRp
bnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIFZlY3RvcjxT
d2l0Y2hDYXNlLCAyPiBjYXNlczsKICAgICAgICAgUmVnaXN0ZXJlZFN0cnVjdHVyZVNldCBiYXNl
U2V0OwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBkYXRhLmNhc2VzLnNpemUoKTsgaS0tOykg
ewpAQCAtMTAzMTEsMjcgKzEwMzA4LDI3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAg
ICAgICAgfQogICAgICAgICBib29sIHN0cnVjdHVyZXNDaGVja2VkID0gbV9pbnRlcnByZXRlci5m
b3JOb2RlKG1fbm9kZS0+Y2hpbGQxKCkpLm1fc3RydWN0dXJlLmlzU3Vic2V0T2YoYmFzZVNldCk7
CiAgICAgICAgIGVtaXRTd2l0Y2hGb3JNdWx0aUJ5T2Zmc2V0KGJhc2UsIHN0cnVjdHVyZXNDaGVj
a2VkLCBjYXNlcywgZXhpdCk7Ci0KKyAgICAgICAgCiAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3RO
ZXh0ID0gbV9vdXQubV9uZXh0QmxvY2s7Ci0KKyAgICAgICAgCiAgICAgICAgIFZlY3RvcjxWYWx1
ZUZyb21CbG9jaywgMj4gcmVzdWx0czsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gZGF0YS5j
YXNlcy5zaXplKCk7IGktLTspIHsKICAgICAgICAgICAgIE11bHRpR2V0QnlPZmZzZXRDYXNlIGdl
dENhc2UgPSBkYXRhLmNhc2VzW2ldOwogICAgICAgICAgICAgR2V0QnlPZmZzZXRNZXRob2QgbWV0
aG9kID0gZ2V0Q2FzZS5tZXRob2QoKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBtX291
dC5hcHBlbmRUbyhibG9ja3NbaV0sIGkgKyAxIDwgZGF0YS5jYXNlcy5zaXplKCkgPyBibG9ja3Nb
aSArIDFdIDogZXhpdCk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIHJlc3Vs
dDsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBzd2l0Y2ggKG1ldGhvZC5raW5kKCkpIHsK
ICAgICAgICAgICAgIGNhc2UgR2V0QnlPZmZzZXRNZXRob2Q6OkludmFsaWQ6CiAgICAgICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgICAgICBicmVh
azsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FzZSBHZXRCeU9mZnNldE1ldGhv
ZDo6Q29uc3RhbnQ6CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQuY29uc3RJbnQ2NChK
U1ZhbHVlOjplbmNvZGUobWV0aG9kLmNvbnN0YW50KCktPnZhbHVlKCkpKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FzZSBHZXRCeU9m
ZnNldE1ldGhvZDo6TG9hZDoKICAgICAgICAgICAgIGNhc2UgR2V0QnlPZmZzZXRNZXRob2Q6Okxv
YWRGcm9tUHJvdG90eXBlOiB7CiAgICAgICAgICAgICAgICAgTFZhbHVlIHByb3BlcnR5QmFzZTsK
QEAgLTEwMzQ1LDQ0ICsxMDM0Miw0NCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAg
ICAgICAgICAgICAgICAgIHByb3BlcnR5QmFzZSwgZGF0YS5pZGVudGlmaWVyTnVtYmVyLCBtZXRo
b2Qub2Zmc2V0KCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfSB9Ci0K
KyAgICAgICAgICAgIAogICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKHJl
c3VsdCkpOwogICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwogICAgICAgICB9
Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGV4aXQsIGNvbnRpbnVhdGlvbik7
CiAgICAgICAgIGlmICghc3RydWN0dXJlc0NoZWNrZWQpCiAgICAgICAgICAgICBzcGVjdWxhdGUo
QmFkQ2FjaGUsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQuYm9vbGVhblRydWUpOwogICAgICAg
ICBtX291dC51bnJlYWNoYWJsZSgpOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRU
byhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKICAgICAgICAgLy8gV2UgaGF2ZSB0byBrZWVwIGJh
c2UgYWxpdmUgc2luY2UgdGhhdCBrZWVwcyBzdG9yYWdlIGFsaXZlLgogICAgICAgICBlbnN1cmVT
dGlsbEFsaXZlSGVyZShiYXNlKTsKICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkoSW50NjQs
IHJlc3VsdHMpKTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVQdXRCeU9mZnNldCgp
CiAgICAgewogICAgICAgICBTdG9yYWdlQWNjZXNzRGF0YSYgZGF0YSA9IG1fbm9kZS0+c3RvcmFn
ZUFjY2Vzc0RhdGEoKTsKLQorICAgICAgICAKICAgICAgICAgc3RvcmVQcm9wZXJ0eSgKICAgICAg
ICAgICAgIGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDMoKSksCiAgICAgICAgICAgICBsb3dTdG9y
YWdlKG1fbm9kZS0+Y2hpbGQxKCkpLCBkYXRhLmlkZW50aWZpZXJOdW1iZXIsIGRhdGEub2Zmc2V0
KTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVNdWx0aVB1dEJ5T2Zmc2V0KCkKICAg
ICB7CiAgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKTsKLQorICAg
ICAgICAKICAgICAgICAgTXVsdGlQdXRCeU9mZnNldERhdGEmIGRhdGEgPSBtX25vZGUtPm11bHRp
UHV0QnlPZmZzZXREYXRhKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIFZlY3RvcjxMQmFzaWNCbG9j
aywgMj4gYmxvY2tzKGRhdGEudmFyaWFudHMuc2l6ZSgpKTsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gZGF0YS52YXJpYW50cy5zaXplKCk7IGktLTspCiAgICAgICAgICAgICBibG9ja3NbaV0g
PSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBleGl0ID0gbV9vdXQubmV3
QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3Qmxv
Y2soKTsKLQorICAgICAgICAKICAgICAgICAgVmVjdG9yPFN3aXRjaENhc2UsIDI+IGNhc2VzOwog
ICAgICAgICBSZWdpc3RlcmVkU3RydWN0dXJlU2V0IGJhc2VTZXQ7CiAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IGRhdGEudmFyaWFudHMuc2l6ZSgpOyBpLS07KSB7CkBAIC0xMDM5NSwxMiArMTAz
OTIsMTIgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICB9CiAgICAgICAgIGJv
b2wgc3RydWN0dXJlc0NoZWNrZWQgPSBtX2ludGVycHJldGVyLmZvck5vZGUobV9ub2RlLT5jaGls
ZDEoKSkubV9zdHJ1Y3R1cmUuaXNTdWJzZXRPZihiYXNlU2V0KTsKICAgICAgICAgZW1pdFN3aXRj
aEZvck11bHRpQnlPZmZzZXQoYmFzZSwgc3RydWN0dXJlc0NoZWNrZWQsIGNhc2VzLCBleGl0KTsK
LQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5tX25leHRC
bG9jazsKLQorICAgICAgICAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gZGF0YS52YXJpYW50
cy5zaXplKCk7IGktLTspIHsKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGJsb2Nrc1tpXSwg
aSArIDEgPCBkYXRhLnZhcmlhbnRzLnNpemUoKSA/IGJsb2Nrc1tpICsgMV0gOiBleGl0KTsKLQor
ICAgICAgICAgICAgCiAgICAgICAgICAgICBQdXRCeVZhcmlhbnQgdmFyaWFudCA9IGRhdGEudmFy
aWFudHNbaV07CiAKICAgICAgICAgICAgIExWYWx1ZSBzdG9yYWdlOwpAQCAtMTA0MTQsMTQgKzEw
NDExLDE0IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICBtX2dy
YXBoLm1fcGxhbi50cmFuc2l0aW9ucygpLmFkZExhemlseSgKICAgICAgICAgICAgICAgICAgICAg
bV9vcmlnaW4uc2VtYW50aWMuY29kZU9yaWdpbk93bmVyKCksCiAgICAgICAgICAgICAgICAgICAg
IHZhcmlhbnQub2xkU3RydWN0dXJlRm9yVHJhbnNpdGlvbigpLCB2YXJpYW50Lm5ld1N0cnVjdHVy
ZSgpKTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIHN0b3JhZ2UgPSBzdG9y
YWdlRm9yVHJhbnNpdGlvbigKICAgICAgICAgICAgICAgICAgICAgYmFzZSwgdmFyaWFudC5vZmZz
ZXQoKSwKICAgICAgICAgICAgICAgICAgICAgdmFyaWFudC5vbGRTdHJ1Y3R1cmVGb3JUcmFuc2l0
aW9uKCksIHZhcmlhbnQubmV3U3RydWN0dXJlKCkpOwogICAgICAgICAgICAgfQotCisgICAgICAg
ICAgICAKICAgICAgICAgICAgIHN0b3JlUHJvcGVydHkodmFsdWUsIHN0b3JhZ2UsIGRhdGEuaWRl
bnRpZmllck51bWJlciwgdmFyaWFudC5vZmZzZXQoKSk7Ci0KKyAgICAgICAgICAgIAogICAgICAg
ICAgICAgaWYgKHZhcmlhbnQua2luZCgpID09IFB1dEJ5VmFyaWFudDo6VHJhbnNpdGlvbikgewog
ICAgICAgICAgICAgICAgIEFTU0VSVCh2YXJpYW50Lm9sZFN0cnVjdHVyZUZvclRyYW5zaXRpb24o
KS0+aW5kZXhpbmdUeXBlKCkgPT0gdmFyaWFudC5uZXdTdHJ1Y3R1cmUoKS0+aW5kZXhpbmdUeXBl
KCkpOwogICAgICAgICAgICAgICAgIEFTU0VSVCh2YXJpYW50Lm9sZFN0cnVjdHVyZUZvclRyYW5z
aXRpb24oKS0+dHlwZUluZm8oKS5pbmxpbmVUeXBlRmxhZ3MoKSA9PSB2YXJpYW50Lm5ld1N0cnVj
dHVyZSgpLT50eXBlSW5mbygpLmlubGluZVR5cGVGbGFncygpKTsKQEAgLTEwNDI5LDE1ICsxMDQy
NiwxNSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgbV9vdXQu
c3RvcmUzMigKICAgICAgICAgICAgICAgICAgICAgd2Vha1N0cnVjdHVyZUlEKG1fZ3JhcGgucmVn
aXN0ZXJTdHJ1Y3R1cmUodmFyaWFudC5uZXdTdHJ1Y3R1cmUoKSkpLCBiYXNlLCBtX2hlYXBzLkpT
Q2VsbF9zdHJ1Y3R1cmVJRCk7CiAgICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAg
ICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKGV4aXQsIGNvbnRpbnVhdGlvbik7CiAgICAgICAgIGlmICgh
c3RydWN0dXJlc0NoZWNrZWQpCiAgICAgICAgICAgICBzcGVjdWxhdGUoQmFkQ2FjaGUsIG5vVmFs
dWUoKSwgbnVsbHB0ciwgbV9vdXQuYm9vbGVhblRydWUpOwogICAgICAgICBtX291dC51bnJlYWNo
YWJsZSgpOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24s
IGxhc3ROZXh0KTsKICAgICB9CiAKQEAgLTEwNTQ0LDIwICsxMDU0MSwyMCBAQCBJR05PUkVfQ0xB
TkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICBtX2hlYXBzLmRlY29yYXRlUGF0Y2hwb2ludFdy
aXRlKCZtX2hlYXBzLkpTQ2VsbEhlYWRlckFuZE5hbWVkUHJvcGVydGllcywgcGF0Y2hwb2ludCk7
CiAgICAgICAgIH0KICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVNYXRjaFN0cnVjdHVy
ZSgpCiAgICAgewogICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEo
KSk7Ci0KKyAgICAgICAgCiAgICAgICAgIE1hdGNoU3RydWN0dXJlRGF0YSYgZGF0YSA9IG1fbm9k
ZS0+bWF0Y2hTdHJ1Y3R1cmVEYXRhKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIExCYXNpY0Jsb2Nr
IHRydWVCbG9jayA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGZhbHNl
QmxvY2sgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBleGl0QmxvY2sg
PSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBt
X291dC5uZXdCbG9jaygpOwotCisgICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4
dCA9IG1fb3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9yZSh0cnVlQmxvY2spOwotCisgICAgICAgIAog
ICAgICAgICBWZWN0b3I8U3dpdGNoQ2FzZSwgMj4gY2FzZXM7CiAgICAgICAgIFJlZ2lzdGVyZWRT
dHJ1Y3R1cmVTZXQgYmFzZVNldDsKICAgICAgICAgZm9yIChNYXRjaFN0cnVjdHVyZVZhcmlhbnQm
IHZhcmlhbnQgOiBkYXRhLnZhcmlhbnRzKSB7CkBAIC0xMDU2OCw0NyArMTA1NjUsNDcgQEAgSUdO
T1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICB9CiAgICAgICAgIGJvb2wgc3RydWN0dXJl
c0NoZWNrZWQgPSBtX2ludGVycHJldGVyLmZvck5vZGUobV9ub2RlLT5jaGlsZDEoKSkubV9zdHJ1
Y3R1cmUuaXNTdWJzZXRPZihiYXNlU2V0KTsKICAgICAgICAgZW1pdFN3aXRjaEZvck11bHRpQnlP
ZmZzZXQoYmFzZSwgc3RydWN0dXJlc0NoZWNrZWQsIGNhc2VzLCBleGl0QmxvY2spOwotCisgICAg
ICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyh0cnVlQmxvY2ssIGZhbHNlQmxvY2spOwogICAg
ICAgICBWYWx1ZUZyb21CbG9jayB0cnVlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0LmJvb2xl
YW5UcnVlKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAgIAog
ICAgICAgICBtX291dC5hcHBlbmRUbyhmYWxzZUJsb2NrLCBleGl0QmxvY2spOwogICAgICAgICBW
YWx1ZUZyb21CbG9jayBmYWxzZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC5ib29sZWFuRmFs
c2UpOwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgCiAgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKGV4aXRCbG9jaywgY29udGludWF0aW9uKTsKICAgICAgICAgaWYg
KCFzdHJ1Y3R1cmVzQ2hlY2tlZCkKICAgICAgICAgICAgIHNwZWN1bGF0ZShCYWRDYWNoZSwgbm9W
YWx1ZSgpLCBudWxscHRyLCBtX291dC5ib29sZWFuVHJ1ZSk7CiAgICAgICAgIG1fb3V0LnVucmVh
Y2hhYmxlKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlv
biwgbGFzdE5leHQpOwogICAgICAgICBzZXRCb29sZWFuKG1fb3V0LnBoaShJbnQzMiwgdHJ1ZVJl
c3VsdCwgZmFsc2VSZXN1bHQpKTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVHZXRH
bG9iYWxWYXJpYWJsZSgpCiAgICAgewogICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmxvYWQ2NCht
X291dC5hYnNvbHV0ZShtX25vZGUtPnZhcmlhYmxlUG9pbnRlcigpKSkpOwogICAgIH0KLQorICAg
IAogICAgIHZvaWQgY29tcGlsZVB1dEdsb2JhbFZhcmlhYmxlKCkKICAgICB7CiAgICAgICAgIG1f
b3V0LnN0b3JlNjQoCiAgICAgICAgICAgICBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpLCBt
X291dC5hYnNvbHV0ZShtX25vZGUtPnZhcmlhYmxlUG9pbnRlcigpKSk7CiAgICAgfQotCisgICAg
CiAgICAgdm9pZCBjb21waWxlTm90aWZ5V3JpdGUoKQogICAgIHsKICAgICAgICAgV2F0Y2hwb2lu
dFNldCogc2V0ID0gbV9ub2RlLT53YXRjaHBvaW50U2V0KCk7Ci0KKyAgICAgICAgCiAgICAgICAg
IExCYXNpY0Jsb2NrIGlzTm90SW52YWxpZGF0ZWQgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAg
ICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAg
IAogICAgICAgICBMVmFsdWUgc3RhdGUgPSBtX291dC5sb2FkOFplcm9FeHQzMihtX291dC5hYnNv
bHV0ZShzZXQtPmFkZHJlc3NPZlN0YXRlKCkpKTsKICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAg
ICAgICAgICAgbV9vdXQuZXF1YWwoc3RhdGUsIG1fb3V0LmNvbnN0SW50MzIoSXNJbnZhbGlkYXRl
ZCkpLAogICAgICAgICAgICAgdXN1YWxseShjb250aW51YXRpb24pLCByYXJlbHkoaXNOb3RJbnZh
bGlkYXRlZCkpOwotCisgICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1f
b3V0LmFwcGVuZFRvKGlzTm90SW52YWxpZGF0ZWQsIGNvbnRpbnVhdGlvbik7CiAKICAgICAgICAg
Vk0mIHZtID0gdGhpcy0+dm0oKTsKQEAgLTEwNjE4LDEwICsxMDYxNSwxMCBAQCBJR05PUkVfQ0xB
TkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbk5vdGlmeVdyaXRl
LCBJbnZhbGlkR1BSUmVnLCBsb2NhdGlvbnNbMV0uZGlyZWN0R1BSKCksIENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbVB0cihzZXQpKTsKICAgICAgICAgICAgIH0sIG1fdm1WYWx1ZSk7CiAgICAgICAg
IG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBj
b21waWxlR2V0Q2FsbGVlKCkKICAgICB7CiAgICAgICAgIHNldEpTVmFsdWUobV9vdXQubG9hZFB0
cihhZGRyZXNzRm9yKFZpcnR1YWxSZWdpc3RlcihDYWxsRnJhbWVTbG90OjpjYWxsZWUpKSkpOwpA
QCAtMTA2MzIsNyArMTA2MjksNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAg
IGF1dG8gY2FsbGVlID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgbV9vdXQu
c3RvcmVQdHIoY2FsbGVlLCBwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlcihDYWxsRnJhbWVTbG90
OjpjYWxsZWUpKSk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxlR2V0QXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMoKQogICAgIHsKICAgICAgICAgVmlydHVhbFJlZ2lzdGVyIGFyZ3Vt
ZW50Q291bnRSZWdpc3RlcjsKQEAgLTEwNjQ3LDEyICsxMDY0NCwxMiBAQCBJR05PUkVfQ0xBTkdf
V0FSTklOR1NfRU5ECiAgICAgewogICAgICAgICBtX291dC5zdG9yZTMyKG1fb3V0LmNvbnN0SW50
MzIobV9ub2RlLT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpKSwgcGF5bG9hZEZvcihWaXJ0
dWFsUmVnaXN0ZXIoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKSk7
CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxlR2V0U2NvcGUoKQogICAgIHsKICAgICAg
ICAgc2V0SlNWYWx1ZShtX291dC5sb2FkUHRyKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1f
aGVhcHMuSlNGdW5jdGlvbl9zY29wZSkpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGls
ZVNraXBTY29wZSgpCiAgICAgewogICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmxvYWRQdHIobG93
Q2VsbChtX25vZGUtPmNoaWxkMSgpKSwgbV9oZWFwcy5KU1Njb3BlX25leHQpKTsKQEAgLTEwNjY5
LDcgKzEwNjY2LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBhdXRvKiBn
bG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX29yaWdpbi5zZW1hbnRpYyk7
CiAgICAgICAgIHNldEpTVmFsdWUobV9vdXQubG9hZFB0cihtX291dC5hYnNvbHV0ZShnbG9iYWxP
YmplY3QtPmFkZHJlc3NPZkdsb2JhbFRoaXMoKSkpKTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lk
IGNvbXBpbGVHZXRDbG9zdXJlVmFyKCkKICAgICB7CiAgICAgICAgIHNldEpTVmFsdWUoCkBAIC0x
MDY3Nyw3ICsxMDY3NCw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAg
ICAgICBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLAogICAgICAgICAgICAgICAgIG1faGVhcHMu
SlNMZXhpY2FsRW52aXJvbm1lbnRfdmFyaWFibGVzW21fbm9kZS0+c2NvcGVPZmZzZXQoKS5vZmZz
ZXQoKV0pKTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVQdXRDbG9zdXJlVmFyKCkK
ICAgICB7CiAgICAgICAgIG1fb3V0LnN0b3JlNjQoCkBAIC0xMDY4NSw3ICsxMDY4Miw3IEBAIElH
Tk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIGxvd0NlbGwobV9ub2RlLT5jaGls
ZDEoKSksCiAgICAgICAgICAgICBtX2hlYXBzLkpTTGV4aWNhbEVudmlyb25tZW50X3ZhcmlhYmxl
c1ttX25vZGUtPnNjb3BlT2Zmc2V0KCkub2Zmc2V0KCldKTsKICAgICB9Ci0KKyAgICAKICAgICB2
b2lkIGNvbXBpbGVHZXRJbnRlcm5hbEZpZWxkKCkKICAgICB7CiAgICAgICAgIHNldEpTVmFsdWUo
CkBAIC0xMDcwOSw3ICsxMDcwNiw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAg
ICAgICAgICAgICBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLAogICAgICAgICAgICAgICAgIG1f
aGVhcHMuRGlyZWN0QXJndW1lbnRzX3N0b3JhZ2VbbV9ub2RlLT5jYXB0dXJlZEFyZ3VtZW50c09m
ZnNldCgpLm9mZnNldCgpXSkpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZVB1dFRv
QXJndW1lbnRzKCkKICAgICB7CiAgICAgICAgIG1fb3V0LnN0b3JlNjQoCkBAIC0xMDc0MCw3ICsx
MDczNyw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhp
KEludDY0LCBpbkJvdW5kc1Jlc3VsdCwgb3V0T2ZCb3VuZHNSZXN1bHQpKTsKICAgICB9Ci0KKyAg
ICAKICAgICB2b2lkIGNvbXBpbGVDb21wYXJlRXEoKQogICAgIHsKICAgICAgICAgaWYgKG1fbm9k
ZS0+aXNCaW5hcnlVc2VLaW5kKEludDMyVXNlKQpAQCAtMTA3NTcsMTIgKzEwNzU0LDEyIEBAIElH
Tk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIGNvbXBpbGVDb21wYXJlU3RyaWN0
RXEoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAg
ICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoT2JqZWN0VXNlLCBPYmplY3RPck90aGVyVXNl
KSkgewogICAgICAgICAgICAgY29tcGFyZUVxT2JqZWN0T3JPdGhlclRvT2JqZWN0KG1fbm9kZS0+
Y2hpbGQyKCksIG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9Ci0KKyAgICAgICAgCiAgICAgICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChPYmpl
Y3RPck90aGVyVXNlLCBPYmplY3RVc2UpKSB7CiAgICAgICAgICAgICBjb21wYXJlRXFPYmplY3RP
ck90aGVyVG9PYmplY3QobV9ub2RlLT5jaGlsZDEoKSwgbV9ub2RlLT5jaGlsZDIoKSk7CiAgICAg
ICAgICAgICByZXR1cm47CkBAIC0xMDc4Nyw3ICsxMDc4NCw3IEBAIElHTk9SRV9DTEFOR19XQVJO
SU5HU19FTkQKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICBvcGVyYXRpb25Db21wYXJlRXEp
OwogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZUNvbXBhcmVTdHJpY3RFcSgpCiAgICAg
ewogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxP
YmplY3RGb3IobV9vcmlnaW4uc2VtYW50aWMpOwpAQCAtMTEyMjQsNyArMTEyMjEsNyBAQCBJR05P
UkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgbG93SlNWYWx1ZShtX25vZGUt
PmNoaWxkMSgpKSwKICAgICAgICAgICAgICAgICB3ZWFrUG9pbnRlcihtX25vZGUtPmNlbGxPcGVy
YW5kKCktPmNlbGwoKSkpKTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVDb21wYXJl
TGVzcygpCiAgICAgewogICAgICAgICBjb21wYXJlKApAQCAtMTEyMzgsNyArMTEyMzUsNyBAQCBJ
R05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICBvcGVyYXRpb25Db21wYXJlU3Ry
aW5nTGVzcywKICAgICAgICAgICAgIG9wZXJhdGlvbkNvbXBhcmVMZXNzKTsKICAgICB9Ci0KKyAg
ICAKICAgICB2b2lkIGNvbXBpbGVDb21wYXJlTGVzc0VxKCkKICAgICB7CiAgICAgICAgIGNvbXBh
cmUoCkBAIC0xMTI1Miw3ICsxMTI0OSw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAg
ICAgICAgICAgIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdMZXNzRXEsCiAgICAgICAgICAgICBvcGVy
YXRpb25Db21wYXJlTGVzc0VxKTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVDb21w
YXJlR3JlYXRlcigpCiAgICAgewogICAgICAgICBjb21wYXJlKApAQCAtMTEyNjYsNyArMTEyNjMs
NyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICBvcGVyYXRpb25Db21w
YXJlU3RyaW5nR3JlYXRlciwKICAgICAgICAgICAgIG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyKTsK
ICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVDb21wYXJlR3JlYXRlckVxKCkKICAgICB7
CiAgICAgICAgIGNvbXBhcmUoCkBAIC0xMTMzMCw3ICsxMTMyNyw3IEBAIElHTk9SRV9DTEFOR19X
QVJOSU5HU19FTkQKICAgICAgICAgQVNTRVJUKG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKFVudHlw
ZWRVc2UpKTsKICAgICAgICAgc2V0Qm9vbGVhbih2bUNhbGwoSW50MzIsIG9wZXJhdGlvblNhbWVW
YWx1ZSwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxk
MSgpKSwgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpOwogICAgIH0KLQorICAgIAogICAg
IHZvaWQgY29tcGlsZVRvQm9vbGVhbigpCiAgICAgewogICAgICAgICBzZXRCb29sZWFuKGJvb2xp
ZnkobV9ub2RlLT5jaGlsZDEoKSkpOwpAQCAtMTEzODUsNyArMTEzODIsNyBAQCBJR05PUkVfQ0xB
TkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAgUmVmUHRyPFBhdGNocG9pbnRFeGNlcHRpb25IYW5k
bGU+IGV4Y2VwdGlvbkhhbmRsZSA9CiAgICAgICAgICAgICBwcmVwYXJlUGF0Y2hwb2ludEZvckV4
Y2VwdGlvbnMocGF0Y2hwb2ludCk7Ci0KKyAgICAgICAgCiAgICAgICAgIHBhdGNocG9pbnQtPmFw
cGVuZChtX25vdENlbGxNYXNrLCBWYWx1ZVJlcDo6cmVnKEdQUkluZm86Om5vdENlbGxNYXNrUmVn
aXN0ZXIpKTsKICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fbnVtYmVyVGFnLCBWYWx1ZVJl
cDo6cmVnKEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyKSk7CiAgICAgICAgIHBhdGNocG9pbnQt
PmNsb2JiZXIoUmVnaXN0ZXJTZXRCdWlsZGVyOjptYWNyb0Nsb2JiZXJlZEdQUnMoKSk7CkBAIC0x
MTQzNCwxOSArMTE0MzEsMTkgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiAgICAgICAg
IHNldEpTVmFsdWUocGF0Y2hwb2ludCk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxl
RGlyZWN0Q2FsbE9yQ29uc3RydWN0KCkKICAgICB7CiAgICAgICAgIE5vZGUqIG5vZGUgPSBtX25v
ZGU7CiAgICAgICAgIGJvb2wgaXNUYWlsID0gbm9kZS0+b3AoKSA9PSBEaXJlY3RUYWlsQ2FsbDsK
ICAgICAgICAgYm9vbCBpc0NvbnN0cnVjdCA9IG5vZGUtPm9wKCkgPT0gRGlyZWN0Q29uc3RydWN0
OwotCisgICAgICAgIAogICAgICAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSA9IG5vZGUt
PmNhc3RPcGVyYW5kPEV4ZWN1dGFibGVCYXNlKj4oKTsKICAgICAgICAgRnVuY3Rpb25FeGVjdXRh
YmxlKiBmdW5jdGlvbkV4ZWN1dGFibGUgPSBqc0R5bmFtaWNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJs
ZSo+KGV4ZWN1dGFibGUpOwotCisgICAgICAgIAogICAgICAgICB1bnNpZ25lZCBudW1QYXNzZWRB
cmdzID0gbm9kZS0+bnVtQ2hpbGRyZW4oKSAtIDE7CiAgICAgICAgIHVuc2lnbmVkIG51bUFsbG9j
YXRlZEFyZ3MgPSBudW1QYXNzZWRBcmdzOwotCisgICAgICAgIAogICAgICAgICBpZiAoZnVuY3Rp
b25FeGVjdXRhYmxlKSB7CiAgICAgICAgICAgICBudW1BbGxvY2F0ZWRBcmdzID0gc3RkOjptYXgo
CiAgICAgICAgICAgICAgICAgbnVtQWxsb2NhdGVkQXJncywKQEAgLTExNDU0LDE4ICsxMTQ1MSwx
OCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgICAgIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihmdW5jdGlvbkV4ZWN1dGFibGUtPnBhcmFtZXRlckNvdW50KCkpICsg
MSwKICAgICAgICAgICAgICAgICAgICAgT3B0aW9uczo6bWF4aW11bURpcmVjdENhbGxTdGFja1Np
emUoKSkpOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIExWYWx1ZSBqc0NhbGxlZSA9
IGxvd0pTVmFsdWUobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSk7Ci0KKyAgICAgICAgCiAg
ICAgICAgIGlmICghaXNUYWlsKSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBmcmFtZVNpemUgPSAo
Q2FsbEZyYW1lOjpoZWFkZXJTaXplSW5SZWdpc3RlcnMgKyBudW1BbGxvY2F0ZWRBcmdzKSAqIHNp
emVvZihFbmNvZGVkSlNWYWx1ZSk7CiAgICAgICAgICAgICB1bnNpZ25lZCBhbGlnbmVkRnJhbWVT
aXplID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSwgZnJh
bWVTaXplKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBtX3Byb2MucmVxdWVzdENhbGxB
cmdBcmVhU2l6ZUluQnl0ZXMoYWxpZ25lZEZyYW1lU2l6ZSk7CiAgICAgICAgIH0KLQorICAgICAg
ICAKICAgICAgICAgVmVjdG9yPENvbnN0cmFpbmVkVmFsdWU+IGFyZ3VtZW50czsKLQorICAgICAg
ICAKICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGpzQ2FsbGVlLCBW
YWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGlmICghaXNUYWlsKSB7CiAgICAgICAg
ICAgICBhdXRvIGFkZEFyZ3VtZW50ID0gWyZdIChMVmFsdWUgdmFsdWUsIFZpcnR1YWxSZWdpc3Rl
ciByZWcsIGludCBvZmZzZXQpIHsKQEAgLTExNDczLDcgKzExNDcwLDcgQEAgSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgICAgICAocmVnLm9mZnNldCgpIC0gQ2FsbGVy
RnJhbWVBbmRQQzo6c2l6ZUluUmVnaXN0ZXJzKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkgKyBv
ZmZzZXQ7CiAgICAgICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChDb25zdHJhaW5lZFZhbHVl
KHZhbHVlLCBWYWx1ZVJlcDo6c3RhY2tBcmd1bWVudChvZmZzZXRGcm9tU1ApKSk7CiAgICAgICAg
ICAgICB9OwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIGFkZEFyZ3VtZW50KGpzQ2FsbGVl
LCBWaXJ0dWFsUmVnaXN0ZXIoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSwgMCk7CiAgICAgICAgICAg
ICBhZGRBcmd1bWVudChtX291dC5jb25zdEludDMyKG51bVBhc3NlZEFyZ3MpLCBWaXJ0dWFsUmVn
aXN0ZXIoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpLCBQYXlsb2Fk
T2Zmc2V0KTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1QYXNzZWRB
cmdzOyArK2kpCkBAIC0xMTQ4NCwyNCArMTE0ODEsMjQgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdT
X0VORAogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bVBhc3NlZEFyZ3M7
ICsraSkKICAgICAgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKENvbnN0cmFpbmVkVmFsdWUo
bG93SlNWYWx1ZShtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEgKyBpKSksIFZhbHVlUmVwOjpX
YXJtQW55KSk7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgUGF0Y2hwb2ludFZhbHVl
KiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChpc1RhaWwgPyBWb2lkIDogSW50NjQpOwog
ICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRWZWN0b3IoYXJndW1lbnRzKTsKLQorICAgICAgICAK
ICAgICAgICAgUmVmUHRyPFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+IGV4Y2VwdGlvbkhhbmRs
ZSA9IHByZXBhcmVQYXRjaHBvaW50Rm9yRXhjZXB0aW9ucyhwYXRjaHBvaW50KTsKLQorICAgICAg
ICAKICAgICAgICAgaWYgKGlzVGFpbCkgewogICAgICAgICAgICAgLy8gVGhlIHNodWZmbGVyIG5l
ZWRzIHRhZ3MuCiAgICAgICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9ub3RDZWxsTWFzaywg
VmFsdWVSZXA6OnJlZyhHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKSk7CiAgICAgICAgICAg
ICBwYXRjaHBvaW50LT5hcHBlbmQobV9udW1iZXJUYWcsIFZhbHVlUmVwOjpyZWcoR1BSSW5mbzo6
bnVtYmVyVGFnUmVnaXN0ZXIpKTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBwYXRj
aHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0QnVpbGRlcjo6bWFjcm9DbG9iYmVyZWRHUFJzKCkp
OwogICAgICAgICBpZiAoIWlzVGFpbCkgewogICAgICAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJl
ckxhdGUoUmVnaXN0ZXJTZXRCdWlsZGVyOjpyZWdpc3RlcnNUb1NhdmVGb3JKU0NhbGwoUmVnaXN0
ZXJTZXRCdWlsZGVyOjphbGxTY2FsYXJSZWdpc3RlcnMoKSkpOwogICAgICAgICAgICAgcGF0Y2hw
b2ludC0+cmVzdWx0Q29uc3RyYWludHMgPSB7IFZhbHVlUmVwOjpyZWcoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIpIH07CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgRWRnZSBjYWxsZWVF
ZGdlID0gbV9ncmFwaC5jaGlsZChub2RlLCAwKTsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGNh
bGxlZVNjb3BlID0gbnVsbHB0cjsKICAgICAgICAgaWYgKEpTVmFsdWUgY2FsbGVlVmFsdWUgPSBt
X3N0YXRlLmZvck5vZGUoY2FsbGVlRWRnZSkudmFsdWUoKSkgewpAQCAtMTE1MjcsMTEgKzExNTI0
LDExIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICBKSVRfQ09N
TUVOVChqaXQsICJEaXJlY3RDYWxsT3JDb25zdHJ1Y3QiKTsKICAgICAgICAgICAgICAgICBBbGxv
d01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CiAgICAgICAgICAg
ICAgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4ID0gc3RhdGUtPmppdENvZGUtPmNvbW1v
bi5jb2RlT3JpZ2lucy0+YWRkVW5pcXVlQ2FsbFNpdGVJbmRleChjb2RlT3JpZ2luKTsKLQorICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIEdQUlJlZyBjYWxsZWVHUFIgPSBwYXJhbXNb
IWlzVGFpbF0uZ3ByKCk7CiAKICAgICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVk
dWxlRXhpdENyZWF0aW9uRm9yVW53aW5kKHBhcmFtcywgY2FsbFNpdGVJbmRleCk7Ci0KKyAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICBCb3g8Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdD4g
ZXhjZXB0aW9ucyA9CiAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkhhbmRsZS0+c2NoZWR1
bGVFeGl0Q3JlYXRpb24ocGFyYW1zKS0+anVtcHMoaml0KTsKIApAQCAtMTE1NTksNyArMTE1NTYs
NyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgaWYgKGlzVGFp
bCkgewogICAgICAgICAgICAgICAgICAgICBDYWxsRnJhbWVTaHVmZmxlRGF0YSBzaHVmZmxlRGF0
YTsKICAgICAgICAgICAgICAgICAgICAgc2h1ZmZsZURhdGEubnVtTG9jYWxzID0gc3RhdGUtPmpp
dENvZGUtPmNvbW1vbi5mcmFtZVJlZ2lzdGVyQ291bnQ7Ci0KKyAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9TYXZlID0gcGFyYW1zLnVuYXZhaWxhYmxlUmVn
aXN0ZXJzKCk7CiAgICAgICAgICAgICAgICAgICAgIHNodWZmbGVEYXRhLmNhbGxlZSA9IFZhbHVl
UmVjb3Zlcnk6OmluR1BSKGNhbGxlZUdQUiwgRGF0YUZvcm1hdENlbGwpOwogICAgICAgICAgICAg
ICAgICAgICB0b1NhdmUuYWRkKGNhbGxlZUdQUiwgSWdub3JlVmVjdG9ycyk7CkBAIC0xMTU4Niw3
ICsxMTU4Myw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICAg
ICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgICAgICAgICAgfQotCisgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICBhdXRvKiBjYWxsTGlua0luZm8gPSBzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLm1fZGlyZWN0
Q2FsbExpbmtJbmZvcy5hZGQoc2VtYW50aWNOb2RlT3JpZ2luLCBDYWxsTGlua0luZm86OlVzZURh
dGFJQzo6Tm8sIHN0YXRlLT5ncmFwaC5tX2NvZGVCbG9jaywgZXhlY3V0YWJsZSk7CiAgICAgICAg
ICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+c2V0Q2FsbFR5cGUoQ2FsbExpbmtJbmZvOjpEaXJl
Y3RUYWlsQ2FsbCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChudW1BbGxvY2F0ZWRBcmdzID4g
bnVtUGFzc2VkQXJncykKQEAgLTExNTk5LDkgKzExNTk2LDkgQEAgSUdOT1JFX0NMQU5HX1dBUk5J
TkdTX0VORAogICAgICAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPmVtaXREaXJlY3RUYWls
Q2FsbEZhc3RQYXRoKGppdCwgc2NvcGVkTGFtYmRhPHZvaWQoKT4oWyZdewogICAgICAgICAgICAg
ICAgICAgICAgICAgQ2FsbEZyYW1lU2h1ZmZsZXIoaml0LCBzaHVmZmxlRGF0YSkucHJlcGFyZUZv
clRhaWxDYWxsKCk7CiAgICAgICAgICAgICAgICAgICAgIH0pKTsKLQorICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgaml0LmFib3J0V2l0aFJlYXNvbihKSVREaWRSZXR1
cm5Gcm9tVGFpbENhbGwpOwotCisgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIHNsb3dQYXRoID0gaml0LmxhYmVsKCk7CiAgICAgICAg
ICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAqc3Rh
dGUsIHRvU2F2ZSwgaml0LApAQCAtMTE2MzEsNyArMTE2MjgsNyBAQCBJR05PUkVfQ0xBTkdfV0FS
TklOR1NfRU5ECiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICAgICAgfQotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgYXV0byogY2FsbExpbmtJbmZvID0gc3RhdGUtPmppdENvZGUtPmNvbW1vbi5tX2RpcmVj
dENhbGxMaW5rSW5mb3MuYWRkKHNlbWFudGljTm9kZU9yaWdpbiwgQ2FsbExpbmtJbmZvOjpVc2VE
YXRhSUM6Ok5vLCBzdGF0ZS0+Z3JhcGgubV9jb2RlQmxvY2ssIGV4ZWN1dGFibGUpOwogICAgICAg
ICAgICAgICAgIGNhbGxMaW5rSW5mby0+c2V0Q2FsbFR5cGUoaXNDb25zdHJ1Y3QgPyBDYWxsTGlu
a0luZm86OkRpcmVjdENvbnN0cnVjdCA6IENhbGxMaW5rSW5mbzo6RGlyZWN0Q2FsbCk7CiAKQEAg
LTExNjQ2LDI5ICsxMTY0MywyOSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAg
ICAgICAgICAgaml0LmFkZFB0cigKICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoLXBhcmFtcy5wcm9jKCkuZnJhbWVTaXplKCkpLAogICAgICAgICAgICAgICAg
ICAgICBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50
ZXJSZWdpc3Rlcik7Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBwYXJhbXMu
YWRkTGF0ZVBhdGgoCiAgICAgICAgICAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2Fn
ZSBhbGxvd1NjcmF0Y2goaml0KTsKLQorICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIHNsb3dQYXRoID0gaml0LmxhYmVs
KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNYODYoKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBqaXQucG9wKENDYWxsSGVscGVyczo6c2VsZWN0U2NyYXRjaEdQUihjYWxs
ZWVHUFIpKTsKLQorICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICBjYWxsT3BlcmF0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICpzdGF0ZSwg
cGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGppdCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZW1hbnRpY05vZGVPcmlnaW4sIGV4Y2VwdGlvbnMuZ2V0KCksIG9wZXJhdGlvbkxp
bmtEaXJlY3RDYWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludmFsaWRHUFJSZWcs
IENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihjYWxsTGlua0luZm8pLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNhbGxlZUdQUikuY2FsbCgpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgaml0Lmp1bXAoKS5saW5rVG8obWFpblBhdGgsICZqaXQpOwotCisgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5zZXRTbG93UGF0aFN0
YXJ0KGxpbmtCdWZmZXIubG9jYXRpb25PZjxKU0ludGVybmFsUHRyVGFnPihzbG93UGF0aCkpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICB9KTsK
ICAgICAgICAgICAgIH0pOwotCisgICAgICAgIAogICAgICAgICBpZiAoaXNUYWlsKQogICAgICAg
ICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy50ZXJtaW5hbCA9IHRydWU7CiAgICAgICAgIGVsc2UK
QEAgLTExNjkxLDcgKzExNjg4LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAg
ICAgICAgV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSwgKENh
bGxGcmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzICsgbnVtQXJncykgKiBzaXplb2YoRW5jb2Rl
ZEpTVmFsdWUpKSk7CiAKICAgICAgICAgTFZhbHVlIGpzQ2FsbGVlID0gbG93SlNWYWx1ZShtX2dy
YXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKLQorICAgICAgICAKICAgICAgICAgLy8gV2Ugd2Fu
dCBCMyB0byBnaXZlIHVzIGFsbCBvZiB0aGUgYXJndW1lbnRzIHVzaW5nIHdoYXRldmVyIG1lY2hh
bmlzbSBpdCB0aGlua3MgaXMKICAgICAgICAgLy8gY29udmVuaWVudC4gVGhlIGdlbmVyYXRvciB0
aGVuIHNodWZmbGVzIHRob3NlIGFyZ3VtZW50cyBpbnRvIG91ciBvd24gY2FsbCBmcmFtZSwKICAg
ICAgICAgLy8gZGVzdHJveWluZyBvdXIgZnJhbWUgaW4gdGhlIHByb2Nlc3MuCkBAIC0xMTcwNyw3
ICsxMTcwNCw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIC8vIE5v
dGU6IHdlIGNvdWxkIGxldCB0aGUgc2h1ZmZsZXIgZG8gYm94aW5nIGZvciB1cywgYnV0IGl0J3Mg
bm90IHN1cGVyIGNsZWFyIHRoYXQgdGhpcwogICAgICAgICAgICAgLy8gd291bGQgYmUgYmV0dGVy
LiBBbHNvLCBpZiB3ZSB3YW50ZWQgdG8gZG8gdGhhdCwgdGhlbiB3ZSdkIGhhdmUgdG8gdGVhY2gg
dGhlIHNodWZmbGVyCiAgICAgICAgICAgICAvLyB0aGF0IDMyLWJpdCB2YWx1ZXMgY291bGQgbGFu
ZCBhdCA0LWJ5dGUgYWxpZ25tZW50IGJ1dCBub3QgOC1ieXRlIGFsaWdubWVudC4KLQorICAgICAg
ICAgICAgCiAgICAgICAgICAgICBDb25zdHJhaW5lZFZhbHVlIGNvbnN0cmFpbmVkVmFsdWUoCiAg
ICAgICAgICAgICAgICAgbG93SlNWYWx1ZShtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEgKyBp
KSksCiAgICAgICAgICAgICAgICAgVmFsdWVSZXA6Oldhcm1BbnkpOwpAQCAtMTE3MjIsNyArMTE3
MTksNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAgLy8gUHJldmVudCBh
bnkgb2YgdGhlIGFyZ3VtZW50cyBmcm9tIHVzaW5nIHRoZSBzY3JhdGNoIHJlZ2lzdGVyLgogICAg
ICAgICBwYXRjaHBvaW50LT5jbG9iYmVyRWFybHkoUmVnaXN0ZXJTZXRCdWlsZGVyOjptYWNyb0Ns
b2JiZXJlZEdQUnMoKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMu
dGVybWluYWwgPSB0cnVlOwogCiAgICAgICAgIC8vIFdlIGRvbid0IGhhdmUgdG8gdGVsbCB0aGUg
cGF0Y2hwb2ludCB0aGF0IHdlIHdpbGwgY2xvYmJlciByZWdpc3RlcnMsIHNpbmNlIHdlIHdvbid0
IHJldHVybgpAQCAtMTE3NTQsNyArMTE3NTEsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5E
CiAKICAgICAgICAgICAgICAgICBzaHVmZmxlRGF0YS5udW1QYXNzZWRBcmdzID0gbnVtQXJnczsK
ICAgICAgICAgICAgICAgICBzaHVmZmxlRGF0YS5udW1QYXJhbWV0ZXJzID0gaml0LmNvZGVCbG9j
aygpLT5udW1QYXJhbWV0ZXJzKCk7Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBzaHVmZmxlRGF0YS5zZXR1cENhbGxlZVNhdmVSZWdpc3RlcnMoc3RhdGUtPmppdENvZGUtPmNh
bGxlZVNhdmVSZWdpc3RlcnMoKSk7CiAKICAgICAgICAgICAgICAgICBhdXRvKiBjYWxsTGlua0lu
Zm8gPSBzdGF0ZS0+YWRkQ2FsbExpbmtJbmZvKGNvZGVPcmlnaW4pOwpAQCAtMTE5MTAsNyArMTE5
MDcsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIExWYWx1ZSBhcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcyA9IG1fb3V0LmNvbnN0SW50UHRyKHN0YXRpY0FyZ3VtZW50Q291
bnQgKyAxKTsKICAgICAgICAgZm9yIChMVmFsdWUgbGVuZ3RoIDogc3ByZWFkTGVuZ3RocykKICAg
ICAgICAgICAgIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID0gbV9vdXQuYWRkKGxlbmd0aCwg
YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpOwotCisgICAgICAgIAogICAgICAgICBQYXRjaHBv
aW50VmFsdWUqIHBhdGNocG9pbnQgPSBtX291dC5wYXRjaHBvaW50KEludDY0KTsKIAogICAgICAg
ICBwYXRjaHBvaW50LT5hcHBlbmQoanNDYWxsZWUsIFZhbHVlUmVwOjpyZWcoR1BSSW5mbzo6cmVn
VDApKTsKQEAgLTExOTkxLDEwICsxMTk4OCwxMCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5E
CiAgICAgICAgICAgICAgICAgICAgIGppdC5tb3ZlKHJlcC5ncHIoKSwgcmVzdWx0KTsKICAgICAg
ICAgICAgICAgICB9OwogCi0gICAgICAgICAgICAgICAgYXV0byBjYWxsV2l0aEV4Y2VwdGlvbkNo
ZWNrID0gWyZdIChPcGVyYXRpb25SZXR1cm5UeXBlPHZvaWQ+KCpjYWxsZWUpKEpTR2xvYmFsT2Jq
ZWN0KikpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGNhbGxXaXRoRXhjZXB0aW9uQ2hlY2sgPSBb
Jl0gKHZvaWQoKmNhbGxlZSkoSlNHbG9iYWxPYmplY3QqKSkgewogICAgICAgICAgICAgICAgICAg
ICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodGFnQ0Z1bmN0aW9uPE9wZXJh
dGlvblB0clRhZz4oY2FsbGVlKSksIEdQUkluZm86Om5vblByZXNlcnZlZE5vbkFyZ3VtZW50R1BS
MCk7CiAgICAgICAgICAgICAgICAgICAgIGppdC5jYWxsKEdQUkluZm86Om5vblByZXNlcnZlZE5v
bkFyZ3VtZW50R1BSMCwgT3BlcmF0aW9uUHRyVGFnKTsKLSAgICAgICAgICAgICAgICAgICAgZXhj
ZXB0aW9ucy0+YXBwZW5kKGppdC5lbWl0RXhjZXB0aW9uQ2hlY2soKnZtLCBBc3NlbWJseUhlbHBl
cnM6Ok5vcm1hbEV4Y2VwdGlvbkNoZWNrLCBBc3NlbWJseUhlbHBlcnM6OkZhckp1bXBXaWR0aCwg
b3BlcmF0aW9uRXhjZXB0aW9uUmVnaXN0ZXI8T3BlcmF0aW9uUmV0dXJuVHlwZTx2b2lkPj4oKSkp
OworICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25zLT5hcHBlbmQoaml0LmVtaXRFeGNlcHRp
b25DaGVjaygqdm0sIEFzc2VtYmx5SGVscGVyczo6Tm9ybWFsRXhjZXB0aW9uQ2hlY2ssIEFzc2Vt
Ymx5SGVscGVyczo6RmFySnVtcFdpZHRoKSk7CiAgICAgICAgICAgICAgICAgfTsKIAogICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd0Nhc2U7CkBAIC0xMjAwNSw3ICsx
MjAwMiw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICAgICAg
QjM6OlZhbHVlUmVwIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzUmVwID0gcGFyYW1zWzNdOwog
ICAgICAgICAgICAgICAgICAgICBnZXRWYWx1ZUZyb21SZXAoYXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXNSZXAsIHNjcmF0Y2hHUFIyKTsKICAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2UuYXBw
ZW5kKGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6OkFib3ZlLCBzY3JhdGNoR1BSMiwgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNDOjptYXhBcmd1bWVudHMgKyAxKSkpOwotCisgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSMiwg
c2NyYXRjaEdQUjEpOwogICAgICAgICAgICAgICAgICAgICBqaXQuYWRkUHRyKENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cihzdGF0aWNfY2FzdDxzaXplX3Q+KG51bVVzZWRTbG90cyArIENhbGxG
cmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzKSksIHNjcmF0Y2hHUFIxKTsKICAgICAgICAgICAg
ICAgICAgICAgLy8gc2NyYXRjaEdQUjEgbm93IGhhcyB0aGUgcmVxdWlyZWQgZnJhbWUgc2l6ZSBp
biBSZWdpc3RlciB1bml0cwpAQCAtMTIwNzEsMTUgKzEyMDY4LDE1IEBAIElHTk9SRV9DTEFOR19X
QVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICAgICAgaml0LnByZXBhcmVDYWxsT3BlcmF0aW9u
KGppdC52bSgpKTsKICAgICAgICAgICAgICAgICAgICAgY2FsbFdpdGhFeGNlcHRpb25DaGVjayhv
cGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dGb3JWYXJhcmdzKTsKICAgICAgICAgICAgICAgICAg
ICAgaml0LmFib3J0V2l0aFJlYXNvbihERkdWYXJhcmdzVGhyb3dpbmdQYXRoRGlkTm90VGhyb3cp
OwotCisgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBkb250VGhyb3cu
bGluaygmaml0KTsKICAgICAgICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICBBU1NFUlQoY2FsbGVlR1BSID09IEdQUkluZm86OnJlZ1QwKTsKICAgICAgICAg
ICAgICAgICBqaXQuc3RvcmU2NChjYWxsZWVHUFIsIENDYWxsSGVscGVyczo6Y2FsbGVlRnJhbWVT
bG90KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpOwogICAgICAgICAgICAgICAgIGdldFZhbHVlRnJv
bVJlcChwYXJhbXNbMl0sIHNjcmF0Y2hHUFIzKTsKICAgICAgICAgICAgICAgICBqaXQuc3RvcmU2
NChzY3JhdGNoR1BSMywgQ0NhbGxIZWxwZXJzOjpjYWxsZWVBcmd1bWVudFNsb3QoMCkpOwotCisg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgQ2FsbExpbmtJbmZvOjpDYWxsVHlwZSBj
YWxsVHlwZTsKICAgICAgICAgICAgICAgICBpZiAobm9kZU9wID09IENvbnN0cnVjdFZhcmFyZ3Mg
fHwgbm9kZU9wID09IENvbnN0cnVjdEZvcndhcmRWYXJhcmdzKQogICAgICAgICAgICAgICAgICAg
ICBjYWxsVHlwZSA9IENhbGxMaW5rSW5mbzo6Q29uc3RydWN0VmFyYXJnczsKQEAgLTEyMDg3LDcg
KzEyMDg0LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgICAg
ICBjYWxsVHlwZSA9IENhbGxMaW5rSW5mbzo6VGFpbENhbGxWYXJhcmdzOwogICAgICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgY2FsbFR5cGUgPSBDYWxsTGlua0luZm86OkNh
bGxWYXJhcmdzOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgY2FsbExpbmtJ
bmZvLT5zZXRVcENhbGwoY2FsbFR5cGUpOwogCiAgICAgICAgICAgICAgICAgYm9vbCBpc1RhaWxD
YWxsID0gQ2FsbExpbmtJbmZvOjpjYWxsTW9kZUZvcihjYWxsVHlwZSkgPT0gQ2FsbE1vZGU6OlRh
aWw7CkBAIC0xMjEwOCwxNCArMTIxMDUsMTQgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAog
ICAgICAgICAgICAgICAgICAgICBzdGQ6OnRpZShzbG93UGF0aCwgZGlzcGF0Y2hMYWJlbCkgPSBD
YWxsTGlua0luZm86OmVtaXRGYXN0UGF0aChqaXQsIGNhbGxMaW5rSW5mbyk7CiAgICAgICAgICAg
ICAgICAgICAgIGRvbmUgPSBqaXQuanVtcCgpOwogICAgICAgICAgICAgICAgIH0KLQorICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIHNsb3dQYXRoLmxpbmsoJmppdCk7CiAgICAgICAg
ICAgICAgICAgLy8gY2FsbGVlR1BSIGlzIGFsd2F5cyByZWdUMC4gU28gd2UgZG8gbm90IG5lZWQg
dG8gY2hhbmdlIGl0IGhlcmUuCiAgICAgICAgICAgICAgICAgaWYgKGlzVGFpbENhbGwpCiAgICAg
ICAgICAgICAgICAgICAgIENhbGxMaW5rSW5mbzo6ZW1pdFRhaWxDYWxsU2xvd1BhdGgoKnZtLCBq
aXQsIGNhbGxMaW5rSW5mbywgZGlzcGF0Y2hMYWJlbCk7CiAgICAgICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgICAgICBDYWxsTGlua0luZm86OmVtaXRTbG93UGF0aCgqdm0sIGppdCwg
Y2FsbExpbmtJbmZvKTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChp
c1RhaWxDYWxsKQogICAgICAgICAgICAgICAgICAgICBqaXQuYWJvcnRXaXRoUmVhc29uKEpJVERp
ZFJldHVybkZyb21UYWlsQ2FsbCk7CiAgICAgICAgICAgICAgICAgZWxzZQpAQCAtMTIxMjYsNyAr
MTIxMjMsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgaml0
LmFkZFB0cigKICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
LW9yaWdpbmFsU3RhY2tIZWlnaHQpLAogICAgICAgICAgICAgICAgICAgICBHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0KKyAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soCiAgICAgICAg
ICAgICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAg
ICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5zZXREb25lTG9jYXRpb24obGlua0J1ZmZlci5sb2Nh
dGlvbk9mPEpTSW50ZXJuYWxQdHJUYWc+KGRvbmVMb2NhdGlvbikpOwpAQCAtMTIxNDksMTAgKzEy
MTQ2LDEwIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgTm9kZSogbm9kZSA9
IG1fbm9kZTsKICAgICAgICAgTFZhbHVlIGpzQ2FsbGVlID0gbG93SlNWYWx1ZShtX25vZGUtPmNo
aWxkMSgpKTsKICAgICAgICAgTFZhbHVlIHRoaXNBcmcgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hp
bGQyKCkpOwotCisgICAgICAgIAogICAgICAgICBMVmFsdWUganNBcmd1bWVudHMgPSBudWxscHRy
OwogICAgICAgICBib29sIGZvcndhcmRpbmcgPSBmYWxzZTsKLQorICAgICAgICAKICAgICAgICAg
c3dpdGNoIChub2RlLT5vcCgpKSB7CiAgICAgICAgIGNhc2UgQ2FsbFZhcmFyZ3M6CiAgICAgICAg
IGNhc2UgVGFpbENhbGxWYXJhcmdzOgpAQCAtMTIxNzksNyArMTIxNzYsNyBAQCBJR05PUkVfQ0xB
TkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotCisgICAgICAgIAog
ICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQgPSBtX291dC5wYXRjaHBvaW50KElu
dDY0KTsKIAogICAgICAgICAvLyBBcHBlbmQgdGhlIGZvcm1zIG9mIHRoZSBhcmd1bWVudHMgdGhh
dCB3ZSB3aWxsIHVzZSBiZWZvcmUgYW55IGNsb2JiZXJpbmcgaGFwcGVucy4KQEAgLTEyMTk5LDcg
KzEyMTk2LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiAgICAgICAgIFJlZlB0cjxQ
YXRjaHBvaW50RXhjZXB0aW9uSGFuZGxlPiBleGNlcHRpb25IYW5kbGUgPQogICAgICAgICAgICAg
cHJlcGFyZVBhdGNocG9pbnRGb3JFeGNlcHRpb25zKHBhdGNocG9pbnQpOwotCisgICAgICAgIAog
ICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9ub3RDZWxsTWFzaywgVmFsdWVSZXA6OnJlZyhH
UFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKSk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVu
ZChtX251bWJlclRhZywgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3Rlcikp
OwogCkBAIC0xMjIxMyw3ICsxMjIxMCw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAg
ICAgICAgICAgIFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudEJ5dGVzKCks
IDUgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKTsKIAogICAgICAgICBtX3Byb2MucmVxdWVzdENh
bGxBcmdBcmVhU2l6ZUluQnl0ZXMobWluaW11bUpTQ2FsbEFyZWFTaXplKTsKLQorICAgICAgICAK
ICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gY29kZU9yaWdpbkRlc2NyaXB0aW9uT2ZD
YWxsU2l0ZSgpOwogICAgICAgICBTdGF0ZSogc3RhdGUgPSAmbV9mdGxTdGF0ZTsKICAgICAgICAg
Vk0qIHZtID0gJnRoaXMtPnZtKCk7CkBAIC0xMjMyMiw3ICsxMjMxOSw3IEBAIElHTk9SRV9DTEFO
R19XQVJOSU5HU19FTkQKIAogICAgICAgICAgICAgICAgIGlmIChmb3J3YXJkaW5nKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG9yaWdp
bmFsU3RhY2tIZWlnaHQgLyBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSwgc2NyYXRjaEdQUjIpOwot
CisgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
Okp1bXBMaXN0IHNsb3dDYXNlOwogCiAgICAgICAgICAgICAgICAgICAgIC8vIGVtaXRTZXR1cFZh
cmFyZ3NGcmFtZUZhc3RDYXNlIG1vZGlmaWVzIHRoZSBzdGFjayBwb2ludGVyIGlmIGl0IHN1Y2Nl
ZWRzLgpAQCAtMTIzMzQsNyArMTIzMzEsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAg
ICAgICAgICAgICAgICAgICAgIGppdC5wcmVwYXJlQ2FsbE9wZXJhdGlvbihqaXQudm0oKSk7CiAg
ICAgICAgICAgICAgICAgICAgIGNhbGxXaXRoRXhjZXB0aW9uQ2hlY2soYml0d2lzZV9jYXN0PHZv
aWQoKikoKT4ob3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93Rm9yVmFyYXJncykpOwogICAgICAg
ICAgICAgICAgICAgICBqaXQuYWJvcnRXaXRoUmVhc29uKERGR1ZhcmFyZ3NUaHJvd2luZ1BhdGhE
aWROb3RUaHJvdyk7Ci0KKyAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
IGRvbmUubGluaygmaml0KTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihvcmlnaW5hbFN0YWNr
SGVpZ2h0IC8gc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSksIHNjcmF0Y2hHUFIxKTsKQEAgLTEyMzUw
LDcgKzEyMzQ3LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAg
ICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uU2V0dXBWYXJhcmdzRnJh
bWUpPihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaml0LmNvZGVCbG9jaygpLT5nbG9iYWxP
YmplY3RGb3Ioc2VtYW50aWNOb2RlT3JpZ2luKSksIHNjcmF0Y2hHUFIyLCBhcmd1bWVudHNHUFIs
IENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGRhdGEtPmZpcnN0VmFyQXJnT2Zmc2V0KSwgc2Ny
YXRjaEdQUjEpOwogICAgICAgICAgICAgICAgICAgICBqaXQucHJlcGFyZUNhbGxPcGVyYXRpb24o
aml0LnZtKCkpOwogICAgICAgICAgICAgICAgICAgICBjYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGJp
dHdpc2VfY2FzdDx2b2lkKCopKCk+KG9wZXJhdGlvblNldHVwVmFyYXJnc0ZyYW1lKSk7Ci0KKyAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSwgR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogCiAg
ICAgICAgICAgICAgICAgICAgIGNhbGxlZUxhdGVSZXAuZW1pdFJlc3RvcmUoaml0LCBHUFJJbmZv
OjpyZWdUMCk7CkBAIC0xMjM1OSwxMCArMTIzNTYsMTAgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdT
X0VORAogICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHRoaXNHUFIgIT0gR1BSSW5mbzo6cmVn
VDAgYmVjYXVzZSByZWdUMCBpbnRlcmZlcmVzIHdpdGggaXQuCiAgICAgICAgICAgICAgICAgICAg
IHRoaXNMYXRlUmVwLmVtaXRSZXN0b3JlKGppdCwgdGhpc0dQUik7CiAgICAgICAgICAgICAgICAg
fQotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5m
bzo6cmVnVDAsIENDYWxsSGVscGVyczo6Y2FsbGVlRnJhbWVTbG90KENhbGxGcmFtZVNsb3Q6OmNh
bGxlZSkpOwogICAgICAgICAgICAgICAgIGppdC5zdG9yZTY0KHRoaXNHUFIsIENDYWxsSGVscGVy
czo6Y2FsbGVlQXJndW1lbnRTbG90KDApKTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgIENhbGxMaW5rSW5mbzo6Q2FsbFR5cGUgY2FsbFR5cGU7CiAgICAgICAgICAgICAgICAg
aWYgKG5vZGVPcCA9PSBDb25zdHJ1Y3RWYXJhcmdzIHx8IG5vZGVPcCA9PSBDb25zdHJ1Y3RGb3J3
YXJkVmFyYXJncykKICAgICAgICAgICAgICAgICAgICAgY2FsbFR5cGUgPSBDYWxsTGlua0luZm86
OkNvbnN0cnVjdFZhcmFyZ3M7CkBAIC0xMjM3MCwxMSArMTIzNjcsMTEgQEAgSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgICAgICBjYWxsVHlwZSA9IENhbGxMaW5rSW5m
bzo6VGFpbENhbGxWYXJhcmdzOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICAgICAgY2FsbFR5cGUgPSBDYWxsTGlua0luZm86OkNhbGxWYXJhcmdzOwotCisgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5zZXRVcENhbGwoY2FsbFR5cGUp
OwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgYm9vbCBpc1RhaWxDYWxsID0g
Q2FsbExpbmtJbmZvOjpjYWxsTW9kZUZvcihjYWxsVHlwZSkgPT0gQ2FsbE1vZGU6OlRhaWw7Ci0K
KyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0
IHNsb3dQYXRoOwogICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgZGlzcGF0Y2hM
YWJlbDsKICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZTsKQEAgLTEyMzg5
LDI0ICsxMjM4NiwyNCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAg
ICAgICAgIHN0ZDo6dGllKHNsb3dQYXRoLCBkaXNwYXRjaExhYmVsKSA9IENhbGxMaW5rSW5mbzo6
ZW1pdEZhc3RQYXRoKGppdCwgY2FsbExpbmtJbmZvKTsKICAgICAgICAgICAgICAgICAgICAgZG9u
ZSA9IGppdC5qdW1wKCk7CiAgICAgICAgICAgICAgICAgfQotCisgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgc2xvd1BhdGgubGluaygmaml0KTsKICAgICAgICAgICAgICAgICBpZiAo
aXNUYWlsQ2FsbCkKICAgICAgICAgICAgICAgICAgICAgQ2FsbExpbmtJbmZvOjplbWl0VGFpbENh
bGxTbG93UGF0aCgqdm0sIGppdCwgY2FsbExpbmtJbmZvLCBkaXNwYXRjaExhYmVsKTsKICAgICAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIENhbGxMaW5rSW5mbzo6ZW1pdFNs
b3dQYXRoKCp2bSwgaml0LCBjYWxsTGlua0luZm8pOwotCisgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgaWYgKGlzVGFpbENhbGwpCiAgICAgICAgICAgICAgICAgICAgIGppdC5hYm9y
dFdpdGhSZWFzb24oSklURGlkUmV0dXJuRnJvbVRhaWxDYWxsKTsKICAgICAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgICAgIGRvbmUubGluaygmaml0KTsKIAogICAgICAgICAgICAg
ICAgIGF1dG8gZG9uZUxvY2F0aW9uID0gaml0LmxhYmVsKCk7Ci0KKyAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICBqaXQuYWRkUHRyKAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMigtb3JpZ2luYWxTdGFja0hlaWdodCksCiAgICAgICAgICAgICAg
ICAgICAgIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGppdC5h
ZGRMaW5rVGFzaygKICAgICAgICAgICAgICAgICAgICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVm
ZmVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPnNldERvbmVMb2Nh
dGlvbihsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SlNJbnRlcm5hbFB0clRhZz4oZG9uZUxvY2F0aW9u
KSk7CkBAIC0xMjQyNCw0OCArMTI0MjEsNDggQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNv
bXBpbGVDYWxsRGlyZWN0RXZhbCgpCiAgICAgewogICAgICAgICBOb2RlKiBub2RlID0gbV9ub2Rl
OwogICAgICAgICB1bnNpZ25lZCBudW1BcmdzID0gbm9kZS0+bnVtQ2hpbGRyZW4oKSAtIDM7IC8v
IGNhbGxlZSwgdGhpc1ZhbHVlLCBzY29wZQotCisgICAgICAgIAogICAgICAgICBMVmFsdWUganND
YWxsZWUgPSBsb3dKU1ZhbHVlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkpOwogICAgICAg
ICBMVmFsdWUgdGhpc1ZhbHVlID0gbG93SlNWYWx1ZShtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IG5vZGUtPm51bUNoaWxkcmVuKCkgLSAyKSk7CiAgICAgICAgIExWYWx1ZSBjYWxsZXJTY29wZSA9
IGxvd0NlbGwobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCBub2RlLT5udW1DaGlsZHJlbigpIC0g
MSkpOwotCisgICAgICAgIAogICAgICAgICB1bnNpZ25lZCBmcmFtZVNpemUgPSAoQ2FsbEZyYW1l
OjpoZWFkZXJTaXplSW5SZWdpc3RlcnMgKyBudW1BcmdzKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1
ZSk7CiAgICAgICAgIHVuc2lnbmVkIGFsaWduZWRGcmFtZVNpemUgPSBXVEY6OnJvdW5kVXBUb011
bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcygpLCBmcmFtZVNpemUpOwotCisgICAgICAgIAog
ICAgICAgICBtX3Byb2MucmVxdWVzdENhbGxBcmdBcmVhU2l6ZUluQnl0ZXMoYWxpZ25lZEZyYW1l
U2l6ZSk7Ci0KKyAgICAgICAgCiAgICAgICAgIFZlY3RvcjxDb25zdHJhaW5lZFZhbHVlPiBhcmd1
bWVudHM7CiAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShqc0NhbGxl
ZSwgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjpyZWdUMCkpKTsKICAgICAgICAgYXJndW1lbnRzLmFw
cGVuZChDb25zdHJhaW5lZFZhbHVlKGNhbGxlclNjb3BlLCBWYWx1ZVJlcDo6cmVnKEdQUkluZm86
OnJlZ1QyKSkpOwogICAgICAgICBhcmd1bWVudHMuYXBwZW5kKENvbnN0cmFpbmVkVmFsdWUodGhp
c1ZhbHVlLCBWYWx1ZVJlcDo6cmVnKEdQUkluZm86OnJlZ1QzKSkpOwotCisgICAgICAgIAogICAg
ICAgICBhdXRvIGFkZEFyZ3VtZW50ID0gWyZdIChMVmFsdWUgdmFsdWUsIFZpcnR1YWxSZWdpc3Rl
ciByZWcsIGludCBvZmZzZXQpIHsKLSAgICAgICAgICAgIGludHB0cl90IG9mZnNldEZyb21TUCA9
CisgICAgICAgICAgICBpbnRwdHJfdCBvZmZzZXRGcm9tU1AgPSAKICAgICAgICAgICAgICAgICAo
cmVnLm9mZnNldCgpIC0gQ2FsbGVyRnJhbWVBbmRQQzo6c2l6ZUluUmVnaXN0ZXJzKSAqIHNpemVv
ZihFbmNvZGVkSlNWYWx1ZSkgKyBvZmZzZXQ7CiAgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5k
KENvbnN0cmFpbmVkVmFsdWUodmFsdWUsIFZhbHVlUmVwOjpzdGFja0FyZ3VtZW50KG9mZnNldEZy
b21TUCkpKTsKICAgICAgICAgfTsKLQorICAgICAgICAKICAgICAgICAgYWRkQXJndW1lbnQoanND
YWxsZWUsIFZpcnR1YWxSZWdpc3RlcihDYWxsRnJhbWVTbG90OjpjYWxsZWUpLCAwKTsKICAgICAg
ICAgYWRkQXJndW1lbnQobV9vdXQuY29uc3RJbnQzMihudW1BcmdzKSwgVmlydHVhbFJlZ2lzdGVy
KENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSwgUGF5bG9hZE9mZnNl
dCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1BcmdzOyArK2kpCiAgICAg
ICAgICAgICBhZGRBcmd1bWVudChsb3dKU1ZhbHVlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwg
MSArIGkpKSwgdmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnRJbmNsdWRpbmdUaGlzKGkpLCAwKTsK
LQorICAgICAgICAKICAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQu
cGF0Y2hwb2ludChJbnQ2NCk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFZlY3Rvcihhcmd1
bWVudHMpOwotCisgICAgICAgIAogICAgICAgICBSZWZQdHI8UGF0Y2hwb2ludEV4Y2VwdGlvbkhh
bmRsZT4gZXhjZXB0aW9uSGFuZGxlID0gcHJlcGFyZVBhdGNocG9pbnRGb3JFeGNlcHRpb25zKHBh
dGNocG9pbnQpOwotCisgICAgICAgIAogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9ub3RD
ZWxsTWFzaywgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKSk7CiAg
ICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX251bWJlclRhZywgVmFsdWVSZXA6OnJlZyhHUFJJ
bmZvOjpudW1iZXJUYWdSZWdpc3RlcikpOwogICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJl
Z2lzdGVyU2V0QnVpbGRlcjo6bWFjcm9DbG9iYmVyZWRHUFJzKCkpOwogICAgICAgICBwYXRjaHBv
aW50LT5jbG9iYmVyTGF0ZShSZWdpc3RlclNldEJ1aWxkZXI6OnJlZ2lzdGVyc1RvU2F2ZUZvckpT
Q2FsbChSZWdpc3RlclNldEJ1aWxkZXI6OmFsbFNjYWxhclJlZ2lzdGVycygpKSk7CiAgICAgICAg
IHBhdGNocG9pbnQtPnJlc3VsdENvbnN0cmFpbnRzID0geyBWYWx1ZVJlcDo6cmVnKEdQUkluZm86
OnJldHVyblZhbHVlR1BSKSB9OwotCisgICAgICAgIAogICAgICAgICBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4gPSBjb2RlT3JpZ2luRGVzY3JpcHRpb25PZkNhbGxTaXRlKCk7CiAgICAgICAgIFN0YXRl
KiBzdGF0ZSA9ICZtX2Z0bFN0YXRlOwogICAgICAgICBWTSYgdm0gPSB0aGlzLT52bSgpOwpAQCAt
MTI0NzUsMjEgKzEyNDcyLDIxIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAg
ICAgIFs9LCAmdm1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zJiBwYXJhbXMpIHsKICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lz
dGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CiAgICAgICAgICAgICAgICAgQ2FsbFNpdGVJbmRl
eCBjYWxsU2l0ZUluZGV4ID0gc3RhdGUtPmppdENvZGUtPmNvbW1vbi5jb2RlT3JpZ2lucy0+YWRk
VW5pcXVlQ2FsbFNpdGVJbmRleChjb2RlT3JpZ2luKTsKLQorICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25zID0gZXhj
ZXB0aW9uSGFuZGxlLT5zY2hlZHVsZUV4aXRDcmVhdGlvbihwYXJhbXMpLT5qdW1wcyhqaXQpOwot
CisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgZXhjZXB0aW9uSGFuZGxlLT5zY2hl
ZHVsZUV4aXRDcmVhdGlvbkZvclVud2luZChwYXJhbXMsIGNhbGxTaXRlSW5kZXgpOwotCisgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoCiAgICAgICAgICAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGNhbGxTaXRlSW5kZXguYml0cygpKSwK
ICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjp0YWdGb3IoQ2FsbEZyYW1lU2xvdDo6
YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKTsKLQorICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgIGF1dG8qIGNhbGxMaW5rSW5mbyA9IHN0YXRlLT5hZGRDYWxsTGlua0luZm8oc2Vt
YW50aWNOb2RlT3JpZ2luKTsKICAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPnNldFVwQ2Fs
bChDYWxsTGlua0luZm86OkNhbGwpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgaml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigtc3RhdGljX2Nhc3Q8cHRy
ZGlmZl90PihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1Bv
aW50ZXJSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDEpOwogICAgICAgICAgICAgICAgIGppdC5zdG9y
ZVB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQ
UkluZm86OnJlZ1QxLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpKTsKLQorICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIC8vIE5vdyB3ZSBuZWVkIHRvIG1ha2Ugcm9vbSBm
b3I6CiAgICAgICAgICAgICAgICAgLy8gLSBUaGUgY2FsbGVyIGZyYW1lIGFuZCBQQyBmb3IgYSBj
YWxsIHRvIG9wZXJhdGlvbkNhbGxEaXJlY3RFdmFsU2xvcHB5L29wZXJhdGlvbkNhbGxEaXJlY3RF
dmFsU3RyaWN0LgogICAgICAgICAgICAgICAgIC8vIC0gUG90ZW50aWFsbHkgdHdvIGFyZ3VtZW50
cyBvbiB0aGUgc3RhY2suCkBAIC0xMjUwMCwyMCArMTI0OTcsMjAgQEAgSUdOT1JFX0NMQU5HX1dB
Uk5JTkdTX0VORAogICAgICAgICAgICAgICAgIGppdC5wcmVwYXJlQ2FsbE9wZXJhdGlvbih2bSk7
CiAgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHRh
Z0NGdW5jdGlvbjxPcGVyYXRpb25QdHJUYWc+KGVjbWFNb2RlLmlzU3RyaWN0KCkgPyBvcGVyYXRp
b25DYWxsRGlyZWN0RXZhbFN0cmljdCA6IG9wZXJhdGlvbkNhbGxEaXJlY3RFdmFsU2xvcHB5KSks
IEdQUkluZm86Om5vblByZXNlcnZlZE5vbkFyZ3VtZW50R1BSMCk7CiAgICAgICAgICAgICAgICAg
aml0LmNhbGwoR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uQXJndW1lbnRHUFIwLCBPcGVyYXRpb25Q
dHJUYWcpOwotICAgICAgICAgICAgICAgIGV4Y2VwdGlvbnMtPmFwcGVuZChqaXQuZW1pdEV4Y2Vw
dGlvbkNoZWNrKHN0YXRlLT52bSgpLCBBc3NlbWJseUhlbHBlcnM6Ok5vcm1hbEV4Y2VwdGlvbkNo
ZWNrLCBBc3NlbWJseUhlbHBlcnM6OkZhckp1bXBXaWR0aCwgb3BlcmF0aW9uRXhjZXB0aW9uUmVn
aXN0ZXI8dHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQ2FsbERpcmVj
dEV2YWxTbG9wcHkpPjo6UmVzdWx0VHlwZT4oKSkpOwotCisgICAgICAgICAgICAgICAgZXhjZXB0
aW9ucy0+YXBwZW5kKGppdC5lbWl0RXhjZXB0aW9uQ2hlY2soc3RhdGUtPnZtKCksIEFzc2VtYmx5
SGVscGVyczo6Tm9ybWFsRXhjZXB0aW9uQ2hlY2ssIEFzc2VtYmx5SGVscGVyczo6RmFySnVtcFdp
ZHRoKSk7CisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpK
dW1wIGRvbmUgPSBqaXQuYnJhbmNoVGVzdDY0KENDYWxsSGVscGVyczo6Tm9uWmVybywgR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
aml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihyZXF1aXJlZEJ5dGVzKSwgQ0Nh
bGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgaml0Lmxv
YWQ2NChDQ2FsbEhlbHBlcnM6OmNhbGxlZUZyYW1lU2xvdChDYWxsRnJhbWVTbG90OjpjYWxsZWUp
LCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgICAgICAgICAgICAgaml0LmVtaXRWaXJ0dWFsQ2FsbCh2
bSwgY2FsbExpbmtJbmZvKTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGRv
bmUubGluaygmaml0KTsKICAgICAgICAgICAgICAgICBqaXQuYWRkUHRyKAogICAgICAgICAgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigtcGFyYW1zLnByb2MoKS5mcmFtZVNp
emUoKSksCiAgICAgICAgICAgICAgICAgICAgIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBD
Q2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAgICAgICAgIH0pOwotCisg
ICAgICAgIAogICAgICAgICBzZXRKU1ZhbHVlKHBhdGNocG9pbnQpOwogICAgIH0KIApAQCAtMTI3
NjIsNyArMTI3NTksNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICBz
ZXRKU1ZhbHVlKHZtQ2FsbChJbnQ2NCwgdm1FbnRyeUN1c3RvbUdldHRlciwgd2Vha1BvaW50ZXIo
Z2xvYmFsT2JqZWN0KSwgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKSwgbV9vdXQuY29uc3RJ
bnRQdHIodWlkKSwgbV9vdXQuY29uc3RJbnRQdHIoZ2V0dGVyLnRhZ2dlZFB0cigpKSkpOwogICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgIENvZGVQdHI8T3BlcmF0aW9uUHRyVGFnPiBieXBhc3Nl
ZEZ1bmN0aW9uKFdURjo6dGFnTmF0aXZlQ29kZVB0ckltcGw8T3BlcmF0aW9uUHRyVGFnPihXVEY6
OnVudGFnTmF0aXZlQ29kZVB0ckltcGw8Q3VzdG9tQWNjZXNzb3JQdHJUYWc+KGdldHRlci50YWdn
ZWRQdHIoKSkpKTsKLSAgICAgICAgICAgIHNldEpTVmFsdWUodm1DYWxsPEdldFZhbHVlRnVuYz4o
SW50NjQsIGJ5cGFzc2VkRnVuY3Rpb24sIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGxvd0pT
VmFsdWUobV9ub2RlLT5jaGlsZDEoKSksIG1fb3V0LmNvbnN0SW50UHRyKHVpZCkpKTsKKyAgICAg
ICAgICAgIHNldEpTVmFsdWUodm1DYWxsKEludDY0LCBieXBhc3NlZEZ1bmN0aW9uLCB3ZWFrUG9p
bnRlcihnbG9iYWxPYmplY3QpLCBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpLCBtX291dC5j
b25zdEludFB0cih1aWQpKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEyNzc4LDcgKzEyNzc1
LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgdm1DYWxsKFZvaWQs
IHZtRW50cnlDdXN0b21TZXR0ZXIsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGxvd0pTVmFs
dWUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSksIG1fb3V0
LmNvbnN0SW50UHRyKHVpZCksIG1fb3V0LmNvbnN0SW50UHRyKHNldHRlci50YWdnZWRQdHIoKSkp
OwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIENvZGVQdHI8T3BlcmF0aW9uUHRyVGFnPiBi
eXBhc3NlZEZ1bmN0aW9uKFdURjo6dGFnTmF0aXZlQ29kZVB0ckltcGw8T3BlcmF0aW9uUHRyVGFn
PihXVEY6OnVudGFnTmF0aXZlQ29kZVB0ckltcGw8Q3VzdG9tQWNjZXNzb3JQdHJUYWc+KHNldHRl
ci50YWdnZWRQdHIoKSkpKTsKLSAgICAgICAgICAgIHZtQ2FsbDxQdXRWYWx1ZUZ1bmM+KFZvaWQs
IGJ5cGFzc2VkRnVuY3Rpb24sIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGxvd0pTVmFsdWUo
bV9ub2RlLT5jaGlsZDEoKSksIGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSksIG1fb3V0LmNv
bnN0SW50UHRyKHVpZCkpOworICAgICAgICAgICAgdm1DYWxsKFZvaWQsIGJ5cGFzc2VkRnVuY3Rp
b24sIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEo
KSksIGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSksIG1fb3V0LmNvbnN0SW50UHRyKHVpZCkp
OwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMjgwMSwyNiArMTI3OTgsMjYgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgICAgICBMb2FkVmFyYXJnc0RhdGEqIGRhdGEgPSBtX25vZGUt
PmxvYWRWYXJhcmdzRGF0YSgpOwogICAgICAgICBMVmFsdWUganNBcmd1bWVudHMgPSBsb3dKU1Zh
bHVlKG1fbm9kZS0+YXJndW1lbnRzQ2hpbGQoKSk7CiAgICAgICAgIExWYWx1ZSBsZW5ndGhJbmNs
dWRpbmdUaGlzID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7Ci0KKyAgICAgICAgCiAgICAg
ICAgIHNwZWN1bGF0ZSgKICAgICAgICAgICAgIFZhcmFyZ3NPdmVyZmxvdywgbm9WYWx1ZSgpLCBu
dWxscHRyLAotICAgICAgICAgICAgbV9vdXQuYml0T3IobV9vdXQuaXNaZXJvMzIobGVuZ3RoSW5j
bHVkaW5nVGhpcyksIG1fb3V0LmFib3ZlKGxlbmd0aEluY2x1ZGluZ1RoaXMsIG1fb3V0LmNvbnN0
SW50MzIoZGF0YS0+bGltaXQpKSkpOworICAgICAgICAgICAgbV9vdXQuYml0T3IobV9vdXQuaXNa
ZXJvMzIobGVuZ3RoSW5jbHVkaW5nVGhpcyksIG1fb3V0LmFib3ZlKGxlbmd0aEluY2x1ZGluZ1Ro
aXMsIG1fb3V0LmNvbnN0SW50MzIoZGF0YS0+bGltaXQpKSkpOyAKIAogICAgICAgICBtX291dC5z
dG9yZTMyKGxlbmd0aEluY2x1ZGluZ1RoaXMsIHBheWxvYWRGb3IoZGF0YS0+bWFjaGluZUNvdW50
KSk7Ci0KKyAgICAgICAgCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvbXB1dGF0aW9uIGlzIHJh
dGhlciBzaWxseS4gSWYgb3BlcmF0aW9uTG9hZFZhcmFyZ3MganVzdCB0b29rIGEgcG9pbnRlciBp
bnN0ZWFkCiAgICAgICAgIC8vIG9mIGEgVmlydHVhbFJlZ2lzdGVyLCB3ZSB3b3VsZG4ndCBoYXZl
IHRvIGRvIHRoaXMuCiAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDE2NjAKICAgICAgICAgTFZhbHVlIG1hY2hpbmVTdGFydCA9IG1fb3V0LmxTaHIo
CiAgICAgICAgICAgICBtX291dC5zdWIoYWRkcmVzc0ZvcihkYXRhLT5tYWNoaW5lU3RhcnQpLnZh
bHVlKCksIG1fY2FsbEZyYW1lKSwKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKDMpKTsK
LQorICAgICAgICAKICAgICAgICAgdm1DYWxsKAogICAgICAgICAgICAgVm9pZCwgb3BlcmF0aW9u
TG9hZFZhcmFyZ3MsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksCiAgICAgICAgICAgICBtX291
dC5jYXN0VG9JbnQzMihtYWNoaW5lU3RhcnQpLCBqc0FyZ3VtZW50cywgbV9vdXQuY29uc3RJbnQz
MihkYXRhLT5vZmZzZXQpLAogICAgICAgICAgICAgbGVuZ3RoSW5jbHVkaW5nVGhpcywgbV9vdXQu
Y29uc3RJbnQzMihkYXRhLT5tYW5kYXRvcnlNaW5pbXVtKSk7CiAgICAgfQotCisgICAgCiAgICAg
dm9pZCBjb21waWxlRm9yd2FyZFZhcmFyZ3MoKQogICAgIHsKICAgICAgICAgaWYgKG1fbm9kZS0+
YXJndW1lbnRzQ2hpbGQoKSkgewpAQCAtMTI4NDUsOSArMTI4NDIsOSBAQCBJR05PUkVfQ0xBTkdf
V0FSTklOR1NfRU5ECiAgICAgICAgIHNwZWN1bGF0ZSgKICAgICAgICAgICAgIFZhcmFyZ3NPdmVy
Zmxvdywgbm9WYWx1ZSgpLCBudWxscHRyLAogICAgICAgICAgICAgbV9vdXQuYWJvdmUobGVuZ3Ro
SW5jbHVkaW5nVGhpcywgbV9vdXQuY29uc3RJbnQzMihkYXRhLT5saW1pdCkpKTsKLQorICAgICAg
ICAKICAgICAgICAgbV9vdXQuc3RvcmUzMihsZW5ndGhJbmNsdWRpbmdUaGlzLCBwYXlsb2FkRm9y
KGRhdGEtPm1hY2hpbmVDb3VudCkpOwotCisgICAgICAgIAogICAgICAgICBMVmFsdWUgc291cmNl
U3RhcnQgPSBnZXRBcmd1bWVudHNTdGFydChpbmxpbmVDYWxsRnJhbWUsIG51bWJlck9mQXJndW1l
bnRzVG9Ta2lwKTsKICAgICAgICAgTFZhbHVlIHRhcmdldFN0YXJ0ID0gYWRkcmVzc0ZvcihkYXRh
LT5tYWNoaW5lU3RhcnQpLnZhbHVlKCk7CiAKQEAgLTEyODU1LDEzICsxMjg1MiwxMyBAQCBJR05P
UkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIExCYXNpY0Jsb2NrIG1haW5Mb29wRW50cnkg
PSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBtYWluTG9vcCA9IG1fb3V0
Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5l
d0Jsb2NrKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIExWYWx1ZSBsZW5ndGhBc1B0ciA9IG1fb3V0
Lnplcm9FeHRQdHIobGVuZ3RoKTsKICAgICAgICAgTFZhbHVlIGxvb3BCb3VuZFZhbHVlID0gbV9v
dXQuY29uc3RJbnRQdHIoZGF0YS0+bWFuZGF0b3J5TWluaW11bSk7CiAgICAgICAgIFZhbHVlRnJv
bUJsb2NrIGxvb3BCb3VuZCA9IG1fb3V0LmFuY2hvcihsb29wQm91bmRWYWx1ZSk7CiAgICAgICAg
IG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0LmFib3ZlKGxvb3BCb3VuZFZhbHVlLCBs
ZW5ndGhBc1B0ciksIHVuc3VyZSh1bmRlZmluZWRMb29wKSwgdW5zdXJlKG1haW5Mb29wRW50cnkp
KTsKLQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBl
bmRUbyh1bmRlZmluZWRMb29wLCBtYWluTG9vcEVudHJ5KTsKICAgICAgICAgTFZhbHVlIHByZXZp
b3VzSW5kZXggPSBtX291dC5waGkocG9pbnRlclR5cGUoKSwgbG9vcEJvdW5kKTsKICAgICAgICAg
TFZhbHVlIGN1cnJlbnRJbmRleCA9IG1fb3V0LnN1YihwcmV2aW91c0luZGV4LCBtX291dC5pbnRQ
dHJPbmUpOwpAQCAtMTI4NzIsMTEgKzEyODY5LDExIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19F
TkQKICAgICAgICAgbV9vdXQuYWRkSW5jb21pbmdUb1BoaShwcmV2aW91c0luZGV4LCBuZXh0SW5k
ZXgpOwogICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICBtX291dC5hYm92ZShjdXJy
ZW50SW5kZXgsIGxlbmd0aEFzUHRyKSwgdW5zdXJlKHVuZGVmaW5lZExvb3ApLCB1bnN1cmUobWFp
bkxvb3BFbnRyeSkpOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhtYWluTG9v
cEVudHJ5LCBtYWluTG9vcCk7CiAgICAgICAgIGxvb3BCb3VuZCA9IG1fb3V0LmFuY2hvcihsZW5n
dGhBc1B0cik7CiAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5ub3ROdWxsKGxlbmd0aEFzUHRy
KSwgdW5zdXJlKG1haW5Mb29wKSwgdW5zdXJlKGNvbnRpbnVhdGlvbikpOwotCisgICAgICAgIAog
ICAgICAgICBtX291dC5hcHBlbmRUbyhtYWluTG9vcCwgY29udGludWF0aW9uKTsKICAgICAgICAg
cHJldmlvdXNJbmRleCA9IG1fb3V0LnBoaShwb2ludGVyVHlwZSgpLCBsb29wQm91bmQpOwogICAg
ICAgICBjdXJyZW50SW5kZXggPSBtX291dC5zdWIocHJldmlvdXNJbmRleCwgbV9vdXQuaW50UHRy
T25lKTsKQEAgLTEyODg2LDcgKzEyODgzLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAog
ICAgICAgICBuZXh0SW5kZXggPSBtX291dC5hbmNob3IoY3VycmVudEluZGV4KTsKICAgICAgICAg
bV9vdXQuYWRkSW5jb21pbmdUb1BoaShwcmV2aW91c0luZGV4LCBuZXh0SW5kZXgpOwogICAgICAg
ICBtX291dC5icmFuY2gobV9vdXQuaXNOdWxsKGN1cnJlbnRJbmRleCksIHVuc3VyZShjb250aW51
YXRpb24pLCB1bnN1cmUobWFpbkxvb3ApKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgfQogCkBAIC0xMjkwNiw3ICsxMjkw
Myw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgLy8gV2UgbmVlZCB0byBw
ZXJmb3JtIHRoZSBzYW1lIGxvZ2ljYWwgb3BlcmF0aW9uIGFzIHRoZSBjb2RlIGFib3ZlLCBidXQg
dGhyb3VnaCBkeW5hbWljIG9wZXJhdGlvbnMuCiAgICAgICAgIGlmICghbnVtYmVyT2ZBcmd1bWVu
dHNUb1NraXApCiAgICAgICAgICAgICByZXR1cm4gYXJndW1lbnRzTGVuZ3RoLnZhbHVlOwotCisg
ICAgICAgIAogICAgICAgICBSRUxFQVNFX0FTU0VSVChudW1iZXJPZkFyZ3VtZW50c1RvU2tpcCA8
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihJTlQzMl9NSU4pKTsKIAogICAgICAgICBMVmFsdWUgZml4
ZWRMZW5ndGggPSBtX291dC5zdWIoYXJndW1lbnRzTGVuZ3RoLnZhbHVlLCBtX291dC5jb25zdElu
dDMyKG51bWJlck9mQXJndW1lbnRzVG9Ta2lwKSk7CkBAIC0xMjkyNSw3ICsxMjkyMiw3IEBAIElH
Tk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAg
VmFyYXJnc092ZXJmbG93LCBub1ZhbHVlKCksIG51bGxwdHIsCiAgICAgICAgICAgICBtX291dC5h
Ym92ZShsZW5ndGhJbmNsdWRpbmdUaGlzLCBtX291dC5jb25zdEludDMyKGRhdGEtPmxpbWl0KSkp
OwotCisgICAgICAgIAogICAgICAgICBtX291dC5zdG9yZTMyKGxlbmd0aEluY2x1ZGluZ1RoaXMs
IHBheWxvYWRGb3IoZGF0YS0+bWFjaGluZUNvdW50KSk7CiAKICAgICAgICAgTFZhbHVlIHRhcmdl
dFN0YXJ0ID0gYWRkcmVzc0ZvcihkYXRhLT5tYWNoaW5lU3RhcnQpLnZhbHVlKCk7CkBAIC0xMzAx
OCw3ICsxMzAxNSw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICB7CiAgICAgICAg
IG1fb3V0Lmp1bXAobG93QmxvY2sobV9ub2RlLT50YXJnZXRCbG9jaygpKSk7CiAgICAgfQotCisg
ICAgCiAgICAgdm9pZCBjb21waWxlQnJhbmNoKCkKICAgICB7CiAgICAgICAgIG1fb3V0LmJyYW5j
aCgKQEAgLTEzMDMwLDcgKzEzMDI3LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAg
ICAgICAgICAgICAgIGxvd0Jsb2NrKG1fbm9kZS0+YnJhbmNoRGF0YSgpLT5ub3RUYWtlbi5ibG9j
ayksCiAgICAgICAgICAgICAgICAgbV9ub2RlLT5icmFuY2hEYXRhKCktPm5vdFRha2VuLmNvdW50
KSk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxlU3dpdGNoKCkKICAgICB7CiAgICAg
ICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZv
cihtX29yaWdpbi5zZW1hbnRpYyk7CkBAIC0xMzAzOSwzNCArMTMwMzYsMzQgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgICAgICBjYXNlIFN3aXRjaEltbTogewogICAgICAgICAgICAg
VmVjdG9yPFZhbHVlRnJvbUJsb2NrLCAyPiBpbnRWYWx1ZXM7CiAgICAgICAgICAgICBMQmFzaWNC
bG9jayBzd2l0Y2hPbkludHMgPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgICAgICAKICAg
ICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obV9vdXQubV9i
bG9jaywgc3dpdGNoT25JbnRzKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBzd2l0Y2gg
KG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAgICAgICAgICAgICBjYXNlIEludDMyVXNl
OiB7CiAgICAgICAgICAgICAgICAgaW50VmFsdWVzLmFwcGVuZChtX291dC5hbmNob3IobG93SW50
MzIobV9ub2RlLT5jaGlsZDEoKSkpKTsKICAgICAgICAgICAgICAgICBtX291dC5qdW1wKHN3aXRj
aE9uSW50cyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0KKyAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgVW50eXBlZFVzZTogewogICAgICAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIGlzSW50ID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAgICAg
ICBMQmFzaWNCbG9jayBpc05vdEludCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgaXNEb3VibGUgPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgTFZhbHVlIGJveGVkVmFsdWUgPSBsb3dKU1ZhbHVlKG1f
bm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc05vdEludDMy
KGJveGVkVmFsdWUpLCB1bnN1cmUoaXNOb3RJbnQpLCB1bnN1cmUoaXNJbnQpKTsKLQorICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGlubmVyTGFzdE5leHQgPSBt
X291dC5hcHBlbmRUbyhpc0ludCwgaXNOb3RJbnQpOwotCisgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgaW50VmFsdWVzLmFwcGVuZChtX291dC5hbmNob3IodW5ib3hJbnQzMihib3hl
ZFZhbHVlKSkpOwogICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoc3dpdGNoT25JbnRzKTsKLQor
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGlzTm90SW50
LCBpc0RvdWJsZSk7CiAgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAg
ICAgICAgICBpc0NlbGxPck1pc2NPckJpZ0ludDMyKGJveGVkVmFsdWUsIHByb3ZlblR5cGUobV9u
b2RlLT5jaGlsZDEoKSkpLAogICAgICAgICAgICAgICAgICAgICB1c3VhbGx5KGxvd0Jsb2NrKGRh
dGEtPmZhbGxUaHJvdWdoLmJsb2NrKSksIHJhcmVseShpc0RvdWJsZSkpOwotCisgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaXNEb3VibGUsIGlubmVyTGFz
dE5leHQpOwogICAgICAgICAgICAgICAgIExWYWx1ZSBkb3VibGVWYWx1ZSA9IHVuYm94RG91Ymxl
KGJveGVkVmFsdWUpOwogICAgICAgICAgICAgICAgIExWYWx1ZSBpbnRJbkRvdWJsZSA9IG1fb3V0
LmRvdWJsZVRvSW50KGRvdWJsZVZhbHVlKTsKQEAgLTEzMDc2LDY1ICsxMzA3Myw2NSBAQCBJR05P
UkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgICAgIHVuc3VyZShzd2l0Y2hP
bkludHMpLCB1bnN1cmUobG93QmxvY2soZGF0YS0+ZmFsbFRocm91Z2guYmxvY2spKSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1f
bm9kZSwgIkJhZCB1c2Uga2luZCIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQotCisgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHN3aXRjaE9u
SW50cywgbGFzdE5leHQpOwogICAgICAgICAgICAgYnVpbGRTd2l0Y2goZGF0YSwgSW50MzIsIG1f
b3V0LnBoaShJbnQzMiwgaW50VmFsdWVzKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KLQorICAgICAgICAKICAgICAgICAgY2FzZSBTd2l0Y2hDaGFyOiB7CiAgICAgICAgICAgICBM
VmFsdWUgc3RyaW5nVmFsdWU7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCB1c2Ugc29tZXRoaW5nIG90aGVyIHRoYW4gdW5zdXJlKCkgZm9yIHRoZSBicmFu
Y2ggd2VpZ2h0CiAgICAgICAgICAgICAvLyBvZiB0aGUgZmFsbFRocm91Z2ggYmxvY2suIFRoZSBt
YWluIGNoYWxsZW5nZSBpcyBqdXN0IHRoYXQgd2UgaGF2ZSBtdWx0aXBsZQogICAgICAgICAgICAg
Ly8gYnJhbmNoZXMgdG8gZmFsbFRocm91Z2ggYnV0IGEgc2luZ2xlIGNvdW50LCBzbyB3ZSB3b3Vs
ZCBuZWVkIHRvIGRpdnZ5IGl0IHVwCiAgICAgICAgICAgICAvLyBhbW9uZyB0aGUgZGlmZmVyZW50
IGxvd2VyZWQgYnJhbmNoZXMuCiAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDgyCi0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgc3dp
dGNoIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSkgewogICAgICAgICAgICAgY2FzZSBTdHJp
bmdVc2U6IHsKICAgICAgICAgICAgICAgICBzdHJpbmdWYWx1ZSA9IGxvd1N0cmluZyhtX25vZGUt
PmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLQorICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FzZSBVbnR5cGVkVXNlOiB7CiAgICAgICAgICAg
ICAgICAgTFZhbHVlIHVuYm94ZWRWYWx1ZSA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSk7
Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBpc0NlbGxD
YXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBpc1N0
cmluZ0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgICAgICBpc05vdENlbGwodW5i
b3hlZFZhbHVlLCBwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQxKCkpKSwKICAgICAgICAgICAgICAg
ICAgICAgdW5zdXJlKGxvd0Jsb2NrKGRhdGEtPmZhbGxUaHJvdWdoLmJsb2NrKSksIHVuc3VyZShp
c0NlbGxDYXNlKSk7Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBMQmFzaWNC
bG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlzQ2VsbENhc2UsIGlzU3RyaW5nQ2FzZSk7
CiAgICAgICAgICAgICAgICAgTFZhbHVlIGNlbGxWYWx1ZSA9IHVuYm94ZWRWYWx1ZTsKICAgICAg
ICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAgICAgICAgIGlzTm90U3RyaW5n
KGNlbGxWYWx1ZSwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSksCiAgICAgICAgICAgICAg
ICAgICAgIHVuc3VyZShsb3dCbG9jayhkYXRhLT5mYWxsVGhyb3VnaC5ibG9jaykpLCB1bnN1cmUo
aXNTdHJpbmdDYXNlKSk7Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBtX291
dC5hcHBlbmRUbyhpc1N0cmluZ0Nhc2UsIGxhc3ROZXh0KTsKICAgICAgICAgICAgICAgICBzdHJp
bmdWYWx1ZSA9IGNlbGxWYWx1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
ICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgbGVuZ3RoSXMxID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAg
IExCYXNpY0Jsb2NrIG5lZWRSZXNvbHV0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIHJlc29sdmVkID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAg
IExCYXNpY0Jsb2NrIGlzOEJpdCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFz
aWNCbG9jayBpczE2Qml0ID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAgIExCYXNpY0Js
b2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAgICAgICAgIAogICAg
ICAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFZhbHVlID0gbV9vdXQuYW5jaG9yKG1fb3V0Lmxv
YWRQdHIoc3RyaW5nVmFsdWUsIG1faGVhcHMuSlNTdHJpbmdfdmFsdWUpKTsKICAgICAgICAgICAg
IG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBpc1JvcGVTdHJpbmcoc3RyaW5nVmFsdWUs
IG1fbm9kZS0+Y2hpbGQxKCkpLApAQCAtMTMxNjAsMjYgKzEzMTU3LDI2IEBAIElHTk9SRV9DTEFO
R19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDMyKHZhbHVlLCBt
X2hlYXBzLlN0cmluZ0ltcGxfaGFzaEFuZEZsYWdzKSwKICAgICAgICAgICAgICAgICAgICAgbV9v
dXQuY29uc3RJbnQzMihTdHJpbmdJbXBsOjpmbGFnSXM4Qml0KCkpKSwKICAgICAgICAgICAgICAg
ICB1bnN1cmUoaXM4Qml0KSwgdW5zdXJlKGlzMTZCaXQpKTsKLQorICAgICAgICAgICAgCiAgICAg
ICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDI+IGNoYXJhY3RlcnM7CiAgICAgICAgICAg
ICBtX291dC5hcHBlbmRUbyhpczhCaXQsIGlzMTZCaXQpOwogICAgICAgICAgICAgY2hhcmFjdGVy
cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNoYXJhY3RlckRhdGEs
IG1faGVhcHMuY2hhcmFjdGVyczhbMF0pKSk7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRp
bnVhdGlvbik7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaXMx
NkJpdCwgY29udGludWF0aW9uKTsKICAgICAgICAgICAgIGNoYXJhY3RlcnMuYXBwZW5kKG1fb3V0
LmFuY2hvcihtX291dC5sb2FkMTZaZXJvRXh0MzIoY2hhcmFjdGVyRGF0YSwgbV9oZWFwcy5jaGFy
YWN0ZXJzMTZbMF0pKSk7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0K
KyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBs
YXN0TmV4dCk7CiAgICAgICAgICAgICBidWlsZFN3aXRjaChkYXRhLCBJbnQzMiwgbV9vdXQucGhp
KEludDMyLCBjaGFyYWN0ZXJzKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQor
ICAgICAgICAKICAgICAgICAgY2FzZSBTd2l0Y2hTdHJpbmc6IHsKICAgICAgICAgICAgIHN3aXRj
aCAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpIHsKICAgICAgICAgICAgIGNhc2UgU3RyaW5n
SWRlbnRVc2U6IHsKICAgICAgICAgICAgICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IGxvd1N0cmlu
Z0lkZW50KG1fbm9kZS0+Y2hpbGQxKCkpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgVmVjdG9yPFN3aXRjaENhc2U+IGNhc2VzOwogICAgICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBkYXRhLT5jYXNlcy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAg
ICAgICAgICBMVmFsdWUgdmFsdWUgPSBtX291dC5jb25zdEludFB0cihkYXRhLT5jYXNlc1tpXS52
YWx1ZS5zdHJpbmdJbXBsKCkpOwpAQCAtMTMxODcsNDcgKzEzMTg0LDQ3IEBAIElHTk9SRV9DTEFO
R19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICAgICAgV2VpZ2h0IHdlaWdodCA9IFdlaWdo
dChkYXRhLT5jYXNlc1tpXS50YXJnZXQuY291bnQpOwogICAgICAgICAgICAgICAgICAgICBjYXNl
cy5hcHBlbmQoU3dpdGNoQ2FzZSh2YWx1ZSwgYmxvY2ssIHdlaWdodCkpOwogICAgICAgICAgICAg
ICAgIH0KLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIG1fb3V0LnN3aXRjaElu
c3RydWN0aW9uKAogICAgICAgICAgICAgICAgICAgICBzdHJpbmdJbXBsLCBjYXNlcywgbG93Qmxv
Y2soZGF0YS0+ZmFsbFRocm91Z2guYmxvY2spLAogICAgICAgICAgICAgICAgICAgICBXZWlnaHQo
ZGF0YS0+ZmFsbFRocm91Z2guY291bnQpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB9Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgU3RyaW5nVXNl
OiB7CiAgICAgICAgICAgICAgICAgc3dpdGNoU3RyaW5nKGRhdGEsIGxvd1N0cmluZyhtX25vZGUt
PmNoaWxkMSgpKSwgbV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBjYXNlIFVudHlw
ZWRVc2U6IHsKICAgICAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKG1fbm9k
ZS0+Y2hpbGQxKCkpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgTEJhc2lj
QmxvY2sgaXNDZWxsQmxvY2sgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgICAgIExC
YXNpY0Jsb2NrIGlzU3RyaW5nQmxvY2sgPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgICAg
ICBpc0NlbGwodmFsdWUsIHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpLAogICAgICAgICAg
ICAgICAgICAgICB1bnN1cmUoaXNDZWxsQmxvY2spLCB1bnN1cmUobG93QmxvY2soZGF0YS0+ZmFs
bFRocm91Z2guYmxvY2spKSk7Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBM
QmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlzQ2VsbEJsb2NrLCBpc1N0cmlu
Z0Jsb2NrKTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5j
aCgKICAgICAgICAgICAgICAgICAgICAgaXNTdHJpbmcodmFsdWUsIHByb3ZlblR5cGUobV9ub2Rl
LT5jaGlsZDEoKSkpLAogICAgICAgICAgICAgICAgICAgICB1bnN1cmUoaXNTdHJpbmdCbG9jayks
IHVuc3VyZShsb3dCbG9jayhkYXRhLT5mYWxsVGhyb3VnaC5ibG9jaykpKTsKLQorICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGlzU3RyaW5nQmxvY2ssIGxh
c3ROZXh0KTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIHN3aXRjaFN0cmlu
ZyhkYXRhLCB2YWx1ZSwgbV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgfQotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgdXNlIGtp
bmQiKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgU3dpdGNo
Q2VsbDogewogICAgICAgICAgICAgTFZhbHVlIGNlbGw7CiAgICAgICAgICAgICBzd2l0Y2ggKG1f
bm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CkBAIC0xMzIzNSw3ICsxMzIzMiw3IEBAIElHTk9S
RV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICBjZWxsID0gbG93Q2VsbChtX25v
ZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLQor
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FzZSBVbnR5cGVkVXNlOiB7CiAgICAgICAg
ICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgICAgICAgICBMQmFzaWNCbG9jayBjZWxsQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CkBA
IC0xMzI0NiwxNiArMTMyNDMsMTYgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAg
ICAgICAgICAgIGNlbGwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAg
ICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotCisgICAgICAgICAgICAKICAgICAg
ICAgICAgIGJ1aWxkU3dpdGNoKG1fbm9kZS0+c3dpdGNoRGF0YSgpLCBwb2ludGVyVHlwZSgpLCBj
ZWxsKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfSB9Ci0KKyAgICAgICAgCiAgICAg
ICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgc3dpdGNoIGtpbmQiKTsKICAgICB9
CiAKQEAgLTEzMjY2LDEyICsxMzI2MywxMiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAg
ICAgICAgICAgICBzdWNjZXNzb3JzLmFwcGVuZChsb3dCbG9jayhzdWNjZXNzb3IpKTsKICAgICAg
ICAgbV9vdXQuZW50cnlTd2l0Y2goc3VjY2Vzc29ycyk7CiAgICAgfQotCisgICAgCiAgICAgdm9p
ZCBjb21waWxlUmV0dXJuKCkKICAgICB7CiAgICAgICAgIG1fb3V0LnJldChsb3dKU1ZhbHVlKG1f
bm9kZS0+Y2hpbGQxKCkpKTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVGb3JjZU9T
UkV4aXQoKQogICAgIHsKICAgICAgICAgdGVybWluYXRlKEluYWRlcXVhdGVDb3ZlcmFnZSk7CkBA
IC0xMzMyNiwxMiArMTMzMjMsMTIgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAg
ICB9CiAjZW5kaWYKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVUaHJvdygpCiAgICAg
ewogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxP
YmplY3RGb3IobV9vcmlnaW4uc2VtYW50aWMpOwogICAgICAgICBMVmFsdWUgZXJyb3IgPSBsb3dK
U1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICB2bUNhbGwoVm9pZCwgb3BlcmF0aW9u
VGhyb3dERkcsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGVycm9yKTsKKyAgICAgICAgdm1D
YWxsKFZvaWQsIG9wZXJhdGlvblRocm93REZHLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3QpLCBl
cnJvcik7IAogICAgICAgICAvLyB2bUNhbGwoKSBkb2VzIGFuIGV4Y2VwdGlvbiBjaGVjayBzbyB3
ZSBzaG91bGQgbmV2ZXIgcmVhY2ggdGhpcy4KICAgICAgICAgbV9vdXQudW5yZWFjaGFibGUoKTsK
ICAgICB9CkBAIC0xMzM0NSwxOSArMTMzNDIsMTkgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VO
RAogICAgICAgICAvLyB2bUNhbGwoKSBkb2VzIGFuIGV4Y2VwdGlvbiBjaGVjayBzbyB3ZSBzaG91
bGQgbmV2ZXIgcmVhY2ggdGhpcy4KICAgICAgICAgbV9vdXQudW5yZWFjaGFibGUoKTsKICAgICB9
Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVJbnZhbGlkYXRpb25Qb2ludCgpCiAgICAgewogICAg
ICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQogICAgICAgICAgICAgZGF0YUxv
ZygiICAgIEludmFsaWRhdGlvbiBwb2ludCB3aXRoIGF2YWlsYWJpbGl0eTogIiwgYXZhaWxhYmls
aXR5TWFwKCksICJcbiIpOwogCiAgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwgbV9ub2RlLCBt
X29yaWdpbi5leGl0T0spOwotCisgICAgICAgIAogICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBh
dGNocG9pbnQgPSBtX291dC5wYXRjaHBvaW50KFZvaWQpOwogICAgICAgICBPU1JFeGl0RGVzY3Jp
cHRvciogZGVzY3JpcHRvciA9IGFwcGVuZE9TUkV4aXREZXNjcmlwdG9yKG5vVmFsdWUoKSwgbnVs
bHB0cik7CiAgICAgICAgIE5vZGVPcmlnaW4gb3JpZ2luID0gbV9vcmlnaW47CiAgICAgICAgIHBh
dGNocG9pbnQtPmFwcGVuZENvbGRBbnlzKGJ1aWxkRXhpdEFyZ3VtZW50cyhkZXNjcmlwdG9yLCBv
cmlnaW4uZm9yRXhpdCwgbm9WYWx1ZSgpKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIFN0YXRlKiBz
dGF0ZSA9ICZtX2Z0bFN0YXRlOwogCiAgICAgICAgIGF1dG8gbm9kZUluZGV4ID0gbV9ub2RlSW5k
ZXhJbkdyYXBoOwpAQCAtMTMzODcsMTAgKzEzMzg0LDEwIEBAIElHTk9SRV9DTEFOR19XQVJOSU5H
U19FTkQKICAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy50ZXJtaW5hbCA9IGZhbHNlOwogICAg
ICAgICBwYXRjaHBvaW50LT5lZmZlY3RzLndyaXRlc0xvY2FsU3RhdGUgPSBmYWxzZTsKICAgICAg
ICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy5yZWFkc0xvY2FsU3RhdGUgPSBmYWxzZTsKLQorICAgICAg
ICAKICAgICAgICAgLy8gVGhpcyBpcyBob3cgd2UgdGVsbCBCMyBhYm91dCB0aGUgcG9zc2liaWxp
dHkgb2YganVtcCByZXBsYWNlbWVudC4KICAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy5leGl0
c1NpZGV3YXlzID0gdHJ1ZTsKLQorICAgICAgICAKICAgICAgICAgLy8gSXQncyBub3QgcG9zc2li
bGUgZm9yIHNvbWUgcHJpb3IgYnJhbmNoIHRvIGRldGVybWluZSB0aGUgc2FmZXR5IG9mIHRoaXMg
b3BlcmF0aW9uLiBJdCdzIGFsd2F5cwogICAgICAgICAvLyBmaW5lIHRvIGV4ZWN1dGUgdGhpcyBv
biBzb21lIHBhdGggdGhhdCB3b3VsZG4ndCBoYXZlIG9yaWdpbmFsbHkgZXhlY3V0ZWQgaXQgYmVm
b3JlCiAgICAgICAgIC8vIG9wdGltaXphdGlvbi4KQEAgLTEzNDA3LDcgKzEzNDA0LDcgQEAgSUdO
T1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgIHsKICAgICAgICAgc2V0Qm9vbGVhbihtX291dC5p
c1plcm82NChsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgfQotCisgICAgCiAg
ICAgdm9pZCBjb21waWxlVHlwZU9mSXNVbmRlZmluZWQoKQogICAgIHsKICAgICAgICAgc2V0Qm9v
bGVhbihlcXVhbE51bGxPclVuZGVmaW5lZChtX25vZGUtPmNoaWxkMSgpLCBBbGxDZWxsc0FyZUZh
bHNlLCBFcXVhbFVuZGVmaW5lZCkpOwpAQCAtMTM0MTcsMTIgKzEzNDE0LDEyIEBAIElHTk9SRV9D
TEFOR19XQVJOSU5HU19FTkQKICAgICB7CiAgICAgICAgIHNldEJvb2xlYW4oaXNPdGhlcihsb3dK
U1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpLCBwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7
CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxlSXNCb29sZWFuKCkKICAgICB7CiAgICAg
ICAgIHNldEJvb2xlYW4oaXNCb29sZWFuKGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSksIHBy
b3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpKTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNv
bXBpbGVJc051bWJlcigpCiAgICAgewogICAgICAgICBzZXRCb29sZWFuKGlzTnVtYmVyKGxvd0pT
VmFsdWUobV9ub2RlLT5jaGlsZDEoKSksIHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpKTsK
QEAgLTE0MjUwLDM3ICsxNDI0NywzNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAg
dm9pZCBjb21waWxlVHlwZU9mSXNPYmplY3QoKQogICAgIHsKICAgICAgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fb3JpZ2luLnNlbWFu
dGljKTsKLQorICAgICAgICAKICAgICAgICAgRWRnZSBjaGlsZCA9IG1fbm9kZS0+Y2hpbGQxKCk7
CiAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUoY2hpbGQpOwotCisgICAgICAgIAog
ICAgICAgICBMQmFzaWNCbG9jayBjZWxsQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAg
IExCYXNpY0Jsb2NrIG5vdEZ1bmN0aW9uQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAg
IExCYXNpY0Jsb2NrIG9iamVjdENhc2UgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFz
aWNCbG9jayBzbG93UGF0aCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2Nr
IG5vdENlbGxDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29u
dGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQu
YnJhbmNoKGlzQ2VsbCh2YWx1ZSwgcHJvdmVuVHlwZShjaGlsZCkpLCB1bnN1cmUoY2VsbENhc2Up
LCB1bnN1cmUobm90Q2VsbENhc2UpKTsKLQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sg
bGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhjZWxsQ2FzZSwgbm90RnVuY3Rpb25DYXNlKTsKICAg
ICAgICAgVmFsdWVGcm9tQmxvY2sgaXNGdW5jdGlvblJlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291
dC5ib29sZWFuRmFsc2UpOwogICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICBpc0Z1
bmN0aW9uKHZhbHVlLCBwcm92ZW5UeXBlKGNoaWxkKSksCiAgICAgICAgICAgICB1bnN1cmUoY29u
dGludWF0aW9uKSwgdW5zdXJlKG5vdEZ1bmN0aW9uQ2FzZSkpOwotCisgICAgICAgIAogICAgICAg
ICBtX291dC5hcHBlbmRUbyhub3RGdW5jdGlvbkNhc2UsIG9iamVjdENhc2UpOwogICAgICAgICBW
YWx1ZUZyb21CbG9jayBub3RPYmplY3RSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQuYm9vbGVh
bkZhbHNlKTsKICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgaXNPYmplY3QodmFs
dWUsIHByb3ZlblR5cGUoY2hpbGQpKSwKICAgICAgICAgICAgIHVuc3VyZShvYmplY3RDYXNlKSwg
dW5zdXJlKGNvbnRpbnVhdGlvbikpOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRU
byhvYmplY3RDYXNlLCBzbG93UGF0aCk7CiAgICAgICAgIFZhbHVlRnJvbUJsb2NrIG9iamVjdFJl
c3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC5ib29sZWFuVHJ1ZSk7CiAgICAgICAgIG1fb3V0LmJy
YW5jaCgKICAgICAgICAgICAgIGlzRXhvdGljRm9yVHlwZW9mKHZhbHVlLCBwcm92ZW5UeXBlKGNo
aWxkKSksCiAgICAgICAgICAgICByYXJlbHkoc2xvd1BhdGgpLCB1c3VhbGx5KGNvbnRpbnVhdGlv
bikpOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93UGF0aCwgbm90Q2Vs
bENhc2UpOwogICAgICAgICBWTSYgdm0gPSB0aGlzLT52bSgpOwogICAgICAgICBMVmFsdWUgc2xv
d1Jlc3VsdFZhbHVlID0gbGF6eVNsb3dQYXRoKApAQCAtMTQyOTEsNDcgKzE0Mjg4LDQ3IEBAIElH
Tk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIH0sIHZhbHVlKTsKICAgICAgICAg
VmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC5ub3RaZXJvNjQo
c2xvd1Jlc3VsdFZhbHVlKSk7CiAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQor
ICAgICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90Q2VsbENhc2UsIGNvbnRpbnVhdGlv
bik7CiAgICAgICAgIExWYWx1ZSBub3RDZWxsUmVzdWx0VmFsdWUgPSBtX291dC5lcXVhbCh2YWx1
ZSwgbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpKSk7CiAgICAgICAg
IFZhbHVlRnJvbUJsb2NrIG5vdENlbGxSZXN1bHQgPSBtX291dC5hbmNob3Iobm90Q2VsbFJlc3Vs
dFZhbHVlKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAgIAog
ICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKICAgICAgICAg
TFZhbHVlIHJlc3VsdCA9IG1fb3V0LnBoaSgKICAgICAgICAgICAgIEludDMyLAogICAgICAgICAg
ICAgaXNGdW5jdGlvblJlc3VsdCwgbm90T2JqZWN0UmVzdWx0LCBvYmplY3RSZXN1bHQsIHNsb3dS
ZXN1bHQsIG5vdENlbGxSZXN1bHQpOwogICAgICAgICBzZXRCb29sZWFuKHJlc3VsdCk7CiAgICAg
fQotCisgICAgCiAgICAgdm9pZCBjb21waWxlSXNDYWxsYWJsZShTX0pJVE9wZXJhdGlvbl9HQyBz
bG93UGF0aE9wZXJhdGlvbikKICAgICB7CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX29yaWdpbi5zZW1hbnRpYyk7Ci0KKyAg
ICAgICAgCiAgICAgICAgIEVkZ2UgY2hpbGQgPSBtX25vZGUtPmNoaWxkMSgpOwogICAgICAgICBM
VmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKGNoaWxkKTsKLQorICAgICAgICAKICAgICAgICAgTEJh
c2ljQmxvY2sgY2VsbENhc2UgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9j
ayBub3RGdW5jdGlvbkNhc2UgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9j
ayBzbG93UGF0aCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRp
bnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIFZhbHVlRnJv
bUJsb2NrIG5vdENlbGxSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQuYm9vbGVhbkZhbHNlKTsK
ICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgaXNDZWxsKHZhbHVlLCBwcm92ZW5U
eXBlKGNoaWxkKSksIHVuc3VyZShjZWxsQ2FzZSksIHVuc3VyZShjb250aW51YXRpb24pKTsKLQor
ICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhj
ZWxsQ2FzZSwgbm90RnVuY3Rpb25DYXNlKTsKICAgICAgICAgVmFsdWVGcm9tQmxvY2sgZnVuY3Rp
b25SZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQuYm9vbGVhblRydWUpOwogICAgICAgICBtX291
dC5icmFuY2goCiAgICAgICAgICAgICBpc0Z1bmN0aW9uKHZhbHVlLCBwcm92ZW5UeXBlKGNoaWxk
KSksCiAgICAgICAgICAgICB1bnN1cmUoY29udGludWF0aW9uKSwgdW5zdXJlKG5vdEZ1bmN0aW9u
Q2FzZSkpOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhub3RGdW5jdGlvbkNh
c2UsIHNsb3dQYXRoKTsKICAgICAgICAgVmFsdWVGcm9tQmxvY2sgb2JqZWN0UmVzdWx0ID0gbV9v
dXQuYW5jaG9yKG1fb3V0LmJvb2xlYW5GYWxzZSk7CiAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAg
ICAgICAgICAgIGlzRXhvdGljRm9yVHlwZW9mKHZhbHVlLCBwcm92ZW5UeXBlKGNoaWxkKSksCiAg
ICAgICAgICAgICByYXJlbHkoc2xvd1BhdGgpLCB1c3VhbGx5KGNvbnRpbnVhdGlvbikpOwotCisg
ICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0aW9uKTsK
ICAgICAgICAgVk0mIHZtID0gdGhpcy0+dm0oKTsKICAgICAgICAgTFZhbHVlIHNsb3dSZXN1bHRW
YWx1ZSA9IGxhenlTbG93UGF0aCgKQEAgLTE0MzQyLDcgKzE0MzM5LDcgQEAgSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0VORAogICAgICAgICAgICAgfSwgdmFsdWUpOwogICAgICAgICBWYWx1ZUZyb21C
bG9jayBzbG93UmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0Lm5vdE51bGwoc2xvd1Jlc3VsdFZh
bHVlKSk7CiAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAgICAgICAKICAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgIExW
YWx1ZSByZXN1bHQgPSBtX291dC5waGkoCiAgICAgICAgICAgICBJbnQzMiwgbm90Q2VsbFJlc3Vs
dCwgZnVuY3Rpb25SZXN1bHQsIG9iamVjdFJlc3VsdCwgc2xvd1Jlc3VsdCk7CkBAIC0xNDM3OCwx
OSArMTQzNzUsMTkgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgIHsKICAgICAgICAg
RWRnZSBjaGlsZCA9IG1fbm9kZS0+Y2hpbGQxKCk7CiAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxv
d0pTVmFsdWUoY2hpbGQpOwotCisgICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayBjb250aW51
YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9
IG1fb3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9yZShjb250aW51YXRpb24pOwotCisgICAgICAgIAog
ICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2s+IHJlc3VsdHM7Ci0KKyAgICAgICAgCiAgICAg
ICAgIGJ1aWxkVHlwZU9mKAogICAgICAgICAgICAgY2hpbGQsIHZhbHVlLAogICAgICAgICAgICAg
WyZdIChUeXBlb2ZUeXBlIHR5cGUpIHsKICAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZCht
X291dC5hbmNob3Iod2Vha1BvaW50ZXIodm0oKS5zbWFsbFN0cmluZ3MudHlwZVN0cmluZyh0eXBl
KSkpKTsKICAgICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAgICAgICAg
ICAgICB9KTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9u
LCBsYXN0TmV4dCk7CiAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKEludDY0LCByZXN1bHRz
KSk7CiAgICAgfQpAQCAtMTQ5NTQsMTIgKzE0OTUxLDEyIEBAIElHTk9SRV9DTEFOR19XQVJOSU5H
U19FTkQKICAgICAgICAgTFZhbHVlIHN0cnVjdHVyZUZsYWdzID0gbV9vdXQubG9hZDMyKHN0cnVj
dHVyZSwgbV9oZWFwcy5TdHJ1Y3R1cmVfYml0RmllbGQpOwogICAgICAgICBzZXRCb29sZWFuKG1f
b3V0LnRlc3ROb25aZXJvMzIoc3RydWN0dXJlRmxhZ3MsIG1fb3V0LmNvbnN0SW50MzIobV9ub2Rl
LT5zdHJ1Y3R1cmVGbGFncygpKSkpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZUlu
c3RhbmNlT2YoKQogICAgIHsKICAgICAgICAgTm9kZSogbm9kZSA9IG1fbm9kZTsKICAgICAgICAg
U3RhdGUqIHN0YXRlID0gJm1fZnRsU3RhdGU7Ci0KKyAgICAgICAgCiAgICAgICAgIExWYWx1ZSB2
YWx1ZTsKICAgICAgICAgTFZhbHVlIHByb3RvdHlwZTsKICAgICAgICAgYm9vbCB2YWx1ZUlzQ2Vs
bDsKQEAgLTE0OTY4LDIyICsxNDk2NSwyMiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAg
ICAgICAgICAgICAmJiBtX25vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSA9PSBDZWxsVXNlKSB7CiAg
ICAgICAgICAgICB2YWx1ZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAg
ICBwcm90b3R5cGUgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQyKCkpOwotCisgICAgICAgICAgICAK
ICAgICAgICAgICAgIHZhbHVlSXNDZWxsID0gdHJ1ZTsKICAgICAgICAgICAgIHByb3RvdHlwZUlz
Q2VsbCA9IHRydWU7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBERkdfQVNTRVJUKG1f
Z3JhcGgsIG1fbm9kZSwgbV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSk7
CiAgICAgICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwgbV9ub2RlLT5jaGlsZDIo
KS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAg
dmFsdWUgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgcHJvdG90
eXBlID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKTsKLQorICAgICAgICAgICAgCiAgICAg
ICAgICAgICB2YWx1ZUlzQ2VsbCA9IGFic3RyYWN0VmFsdWUobV9ub2RlLT5jaGlsZDEoKSkuaXNU
eXBlKFNwZWNDZWxsKTsKICAgICAgICAgICAgIHByb3RvdHlwZUlzQ2VsbCA9IGFic3RyYWN0VmFs
dWUobV9ub2RlLT5jaGlsZDIoKSkuaXNUeXBlKFNwZWNDZWxsKTsKICAgICAgICAgfQotCisgICAg
ICAgIAogICAgICAgICBib29sIHByb3RvdHlwZUlzT2JqZWN0ID0gYWJzdHJhY3RWYWx1ZShtX25v
ZGUtPmNoaWxkMigpKS5pc1R5cGUoU3BlY09iamVjdCB8IH5TcGVjQ2VsbCk7Ci0KKyAgICAgICAg
CiAgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9pbnQo
SW50NjQpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIodmFsdWUpOwog
ICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIocHJvdG90eXBlKTsKQEAgLTE0
OTkyLDcgKzE0OTg5LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBwYXRj
aHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnMgPSBPcHRpb25zOjp1c2VEYXRhSUNJbkZUTCgp
ID8gMSA6IDA7CiAgICAgICAgIHBhdGNocG9pbnQtPnJlc3VsdENvbnN0cmFpbnRzID0geyBWYWx1
ZVJlcDo6U29tZUVhcmx5UmVnaXN0ZXIgfTsKICAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlcihS
ZWdpc3RlclNldEJ1aWxkZXI6Om1hY3JvQ2xvYmJlcmVkR1BScygpKTsKLQorICAgICAgICAKICAg
ICAgICAgUmVmUHRyPFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+IGV4Y2VwdGlvbkhhbmRsZSA9
CiAgICAgICAgICAgICBwcmVwYXJlUGF0Y2hwb2ludEZvckV4Y2VwdGlvbnMocGF0Y2hwb2ludCk7
CiAKQEAgLTE1MDAxLDEyICsxNDk5OCwxMiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAg
ICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRp
b25QYXJhbXMmIHBhcmFtcykgewogICAgICAgICAgICAgICAgIEpJVF9DT01NRU5UKGppdCwgIklu
c3RhbmNlT2YiKTsKICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNh
Z2UgYWxsb3dTY3JhdGNoKGppdCk7Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBHUFJSZWcgcmVzdWx0R1BSID0gcGFyYW1zWzBdLmdwcigpOwogICAgICAgICAgICAgICAgIEdQ
UlJlZyB2YWx1ZUdQUiA9IHBhcmFtc1sxXS5ncHIoKTsKICAgICAgICAgICAgICAgICBHUFJSZWcg
cHJvdG90eXBlR1BSID0gcGFyYW1zWzJdLmdwcigpOwogICAgICAgICAgICAgICAgIEdQUlJlZyBz
dHViSW5mb0dQUiA9IE9wdGlvbnM6OnVzZURhdGFJQ0luRlRMKCkgPyBwYXJhbXMuZ3BTY3JhdGNo
KDApIDogSW52YWxpZEdQUlJlZzsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
IENDYWxsSGVscGVyczo6SnVtcCBkb25lSnVtcDsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVl
SXNDZWxsKSB7CiAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBpc0NlbGwg
PSBqaXQuYnJhbmNoSWZDZWxsKHZhbHVlR1BSKTsKQEAgLTE1MDE0LDE4ICsxNTAxMSwxOCBAQCBJ
R05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgICAgIGRvbmVKdW1wID0g
aml0Lmp1bXAoKTsKICAgICAgICAgICAgICAgICAgICAgaXNDZWxsLmxpbmsoJmppdCk7CiAgICAg
ICAgICAgICAgICAgfQotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpKdW1wTGlzdCBzbG93Q2FzZXM7CiAgICAgICAgICAgICAgICAgaWYgKCFwcm90b3R5
cGVJc0NlbGwpCiAgICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoaml0LmJyYW5j
aElmTm90Q2VsbChwcm90b3R5cGVHUFIpKTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCA9CiAgICAgICAgICAgICAgICAgICAg
IHN0YXRlLT5qaXRDb2RlLT5jb21tb24uY29kZU9yaWdpbnMtPmFkZFVuaXF1ZUNhbGxTaXRlSW5k
ZXgoc2VtYW50aWNOb2RlT3JpZ2luKTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgIC8vIFRoaXMgaXMgdGhlIGRpcmVjdCBleGl0IHRhcmdldCBmb3Igb3BlcmF0aW9uIGNhbGxz
LgogICAgICAgICAgICAgICAgIEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25z
ID0KICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uSGFuZGxlLT5zY2hlZHVsZUV4aXRDcmVh
dGlvbihwYXJhbXMpLT5qdW1wcyhqaXQpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgYXV0byogc3R1YkluZm8gPSBzdGF0ZS0+YWRkU3RydWN0dXJlU3R1YkluZm8oKTsKICAg
ICAgICAgICAgICAgICBhdXRvIGdlbmVyYXRvciA9IEJveDxKSVRJbnN0YW5jZU9mR2VuZXJhdG9y
Pjo6Y3JlYXRlKAogICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCksIHN0dWJJbmZv
LCBKSVRUeXBlOjpGVExKSVQsIHNlbWFudGljTm9kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwKQEAg
LTE1MDM0LDEzICsxNTAzMSwxMyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAg
ICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VEYXRhSUNJbkZUTCgpKQogICAgICAgICAgICAgICAg
ICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkpOwogICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgZG9uZSA9IGppdC5sYWJlbCgpOwotCisgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgcGFyYW1zLmFkZExhdGVQYXRoKAogICAgICAg
ICAgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYgaml0KSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7
Ci0KKyAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0
byBvcHRpbWl6YXRpb25GdW5jdGlvbiA9IG9wZXJhdGlvbkluc3RhbmNlT2ZPcHRpbWl6ZTsKLQor
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICBzbG93Q2Fz
ZXMubGluaygmaml0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6TGFi
ZWwgc2xvd1BhdGhCZWdpbiA9IGppdC5sYWJlbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpDYWxsIHNsb3dQYXRoQ2FsbDsKQEAgLTE1MDU4LDE5ICsxNTA1NSwxOSBA
QCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZhbHVlR1BSLCBwcm90b3R5cGVHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihq
aXQuY29kZUJsb2NrKCktPmdsb2JhbE9iamVjdEZvcihzZW1hbnRpY05vZGVPcmlnaW4pKSwgQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGdlbmVyYXRvci0+c3R1YkluZm8oKSkpLmNhbGwoKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGppdC5q
dW1wKCkubGlua1RvKGRvbmUsICZqaXQpOwotCisgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+cmVwb3J0U2xvd1BhdGhDYWxsKHNsb3dQ
YXRoQmVnaW4sIHNsb3dQYXRoQ2FsbCk7Ci0KKyAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnZW5lcmF0b3ItPmZpbmFsaXplKGxpbmtCdWZmZXIsIGxpbmtCdWZm
ZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAg
ICB9KTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChkb25lSnVtcC5p
c1NldCgpKQogICAgICAgICAgICAgICAgICAgICBkb25lSnVtcC5saW5rKCZqaXQpOwogICAgICAg
ICAgICAgfSk7Ci0KKyAgICAgICAgCiAgICAgICAgIC8vIFRoaXMgcmV0dXJucyBhIGJveGVkIGJv
b2xlYW4uCiAgICAgICAgIHNldEpTVmFsdWUocGF0Y2hwb2ludCk7CiAgICAgfQpAQCAtMTUwODQs
NyArMTUwODEsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAgc2V0Qm9v
bGVhbihtX291dC5ub3RaZXJvNjQodm1DYWxsKEludDY0LCBvcGVyYXRpb25JbnN0YW5jZU9mQ3Vz
dG9tLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3QpLCB2YWx1ZSwgY29uc3RydWN0b3IsIGhhc0lu
c3RhbmNlKSkpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZUNvdW50RXhlY3V0aW9u
KCkKICAgICB7CiAgICAgICAgIFR5cGVkUG9pbnRlciBjb3VudGVyID0gbV9vdXQuYWJzb2x1dGUo
bV9ub2RlLT5leGVjdXRpb25Db3VudGVyKCktPmFkZHJlc3MoKSk7CkBAIC0xNTEwNyw3ICsxNTEw
NCw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICB7CiAgICAgICAgIGVtaXRTdG9y
ZUJhcnJpZXIobG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKSwgbV9ub2RlLT5vcCgpID09IEZlbmNl
ZFN0b3JlQmFycmllcik7CiAgICAgfQotCisgICAgCiAgICAgTFZhbHVlIGNvbXBpbGVIYXNJbmRl
eGVkUHJvcGVydHlJbXBsKExWYWx1ZSBpbmRleCwgU19KSVRPcGVyYXRpb25fR0NaIHNsb3dQYXRo
T3BlcmF0aW9uKQogICAgIHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fb3JpZ2luLnNlbWFudGljKTsKQEAgLTE1MTYwLDEz
ICsxNTE1NywxMyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBBcnJheTo6RG91YmxlOiB7CiAgICAgICAgICAgICBMVmFsdWUgc3RvcmFnZSA9IGxv
d1N0b3JhZ2UobV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIG1fbm9kZS0+c3RvcmFnZUNoaWxk
SW5kZXgoKSkpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIEluZGV4ZWRBYnN0cmFjdEhl
YXAmIGhlYXAgPSBtX2hlYXBzLmluZGV4ZWREb3VibGVQcm9wZXJ0aWVzOwotCisgICAgICAgICAg
ICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNlID0gbV9vdXQubmV3QmxvY2soKTsK
ICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7
CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG51bGxwdHI7Ci0KKyAgICAgICAg
ICAgIAogICAgICAgICAgICAgaWYgKCFtX25vZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSkg
ewogICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNoZWNrSG9sZSA9IG1fb3V0Lm5ld0Jsb2Nr
KCk7CiAgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKApAQCAtMTUxODYsMTIgKzE1MTgzLDEy
IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICBtX291dC5icmFu
Y2gobm90SG9sZSwgdXN1YWxseShjb250aW51YXRpb24pLCByYXJlbHkoc2xvd0Nhc2UpKTsKICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzcGVjdWxhdGVBbmRKdW1wKGNvbnRpbnVh
dGlvbiwgTG9hZEZyb21Ib2xlLCBub1ZhbHVlKCksIG51bGxwdHIsIG1fb3V0LmxvZ2ljYWxOb3Qo
bm90SG9sZSkpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNs
b3dDYXNlLCBjb250aW51YXRpb24pOwogICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jl
c3VsdCA9IG1fb3V0LmFuY2hvcigKICAgICAgICAgICAgICAgICBtX291dC5ub3RaZXJvNjQodm1D
YWxsKEludDY0LCBzbG93UGF0aE9wZXJhdGlvbiwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwg
YmFzZSwgaW5kZXgpKSk7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0K
KyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBs
YXN0TmV4dCk7CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQucGhpKEludDMyLCBjaGVja0hvbGVS
ZXN1bHQsIHNsb3dSZXN1bHQpOwogICAgICAgICB9CkBAIC0xNTQ0OCw3ICsxNTQ0NSw3IEBAIElH
Tk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgfQogCiAgICAgICAgIExWYWx1ZSBiYXNl
ID0gbG93SlNWYWx1ZShiYXNlRWRnZSk7Ci0gICAgICAgIExWYWx1ZSB0dXBsZSA9IHZtQ2FsbCh0
b09wZXJhdGlvblR5cGUocG9pbnRlclR5cGUoKSksIG9wZXJhdGlvbkVudW1lcmF0b3JOZXh0VXBk
YXRlSW5kZXhBbmRNb2RlLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3QpLCBiYXNlLCBpbmRleCwg
bW9kZSwgZW51bWVyYXRvcik7CisgICAgICAgIExWYWx1ZSB0dXBsZSA9IHZtQ2FsbChyZWdpc3Rl
clBhaXIoKSwgb3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1vZGUsIHdlYWtQ
b2ludGVyKGdsb2JhbE9iamVjdCksIGJhc2UsIGluZGV4LCBtb2RlLCBlbnVtZXJhdG9yKTsKIAog
ICAgICAgICBzZXRUdXBsZSgwLCBtX291dC5jYXN0VG9JbnQzMihtX291dC5leHRyYWN0KHR1cGxl
LCAwKSkpOwogICAgICAgICBzZXRUdXBsZSgxLCBtX291dC5jYXN0VG9JbnQzMihtX291dC5leHRy
YWN0KHR1cGxlLCAxKSkpOwpAQCAtMTU1NjksNyArMTU1NjYsNyBAQCBJR05PUkVfQ0xBTkdfV0FS
TklOR1NfRU5ECiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Js
b2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGdlbmVyaWNPclJlY292ZXI7CiAKLSAgICAgICAg
Ly8gRklYTUU6IFRoaXMgaXMgbm90IHRoZSBjbGVhbmVzdCB3YXkgdG8gc2F5IHdlJ3JlIHVzaW5n
IEluZGV4ZWRNb2RlK093blN0cnVjdHVyZU1vZGUgbW9kZS4KKyAgICAgICAgLy8gRklYTUU6IFRo
aXMgaXMgbm90IHRoZSBjbGVhbmVzdCB3YXkgdG8gc2F5IHdlJ3JlIHVzaW5nIEluZGV4ZWRNb2Rl
K093blN0cnVjdHVyZU1vZGUgbW9kZS4gCiAgICAgICAgIGJvb2wgaW5kZXhlZEFuZE93blN0cnVj
dHVyZU1vZGUgPSBpbmRleEVkZ2Uubm9kZSgpID09IHByb3BlcnR5TmFtZUVkZ2Uubm9kZSgpOwog
ICAgICAgICBpZiAoaW5kZXhlZEFuZE93blN0cnVjdHVyZU1vZGUpCiAgICAgICAgICAgICBnZW5l
cmljT3JSZWNvdmVyID0gbV9vdXQubmV3QmxvY2soKTsKQEAgLTE1ODY5LDcgKzE1ODY2LDcgQEAg
SUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRp
bnVhdGlvbik7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21waWxlQ2hlY2tTdHJ1Y3R1cmVJ
bW1lZGlhdGUoKQogICAgIHsKICAgICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IGxvd0NlbGwobV9u
b2RlLT5jaGlsZDEoKSk7CkBAIC0xNTg3OSwxMyArMTU4NzYsMTMgQEAgSUdOT1JFX0NMQU5HX1dB
Uk5JTkdTX0VORAogICAgICAgICAgICAgICAgIHJldHVybiB3ZWFrU3RydWN0dXJlKHN0cnVjdHVy
ZSk7CiAgICAgICAgICAgICB9KTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVNYXRl
cmlhbGl6ZU5ld09iamVjdCgpCiAgICAgewogICAgICAgICBPYmplY3RNYXRlcmlhbGl6YXRpb25E
YXRhJiBkYXRhID0gbV9ub2RlLT5vYmplY3RNYXRlcmlhbGl6YXRpb25EYXRhKCk7Ci0KKyAgICAg
ICAgCiAgICAgICAgIC8vIExvd2VyIHRoZSB2YWx1ZXMgZmlyc3QsIHRvIGF2b2lkIGNyZWF0aW5n
IHZhbHVlcyBpbnNpZGUgYSBjb250cm9sIGZsb3cgZGlhbW9uZC4KLQorICAgICAgICAKICAgICAg
ICAgVmVjdG9yPExWYWx1ZSwgOD4gdmFsdWVzOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgZGF0YS5tX3Byb3BlcnRpZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIEVkZ2Ug
ZWRnZSA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxICsgaSk7CkBAIC0xNTg5OSw3ICsx
NTg5Niw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBSZWdpc3Rl
cmVkU3RydWN0dXJlU2V0IHNldCA9IG1fbm9kZS0+c3RydWN0dXJlU2V0KCk7CiAKICAgICAgICAg
VmVjdG9yPExCYXNpY0Jsb2NrLCAxPiBibG9ja3Moc2V0LnNpemUoKSk7CkBAIC0xNTkwNywyNSAr
MTU5MDQsMjUgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgYmxvY2tz
W2ldID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgZHVtbXlEZWZhdWx0
ID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgb3V0ZXJDb250aW51YXRp
b24gPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgIAogICAgICAgICBWZWN0b3I8U3dpdGNo
Q2FzZSwgMT4gY2FzZXMoc2V0LnNpemUoKSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHNl
dC5zaXplKCk7IGktLTspCiAgICAgICAgICAgICBjYXNlc1tpXSA9IFN3aXRjaENhc2Uod2Vha1N0
cnVjdHVyZShzZXQuYXQoaSkpLCBibG9ja3NbaV0sIFdlaWdodCgxKSk7CiAgICAgICAgIG1fb3V0
LnN3aXRjaEluc3RydWN0aW9uKAogICAgICAgICAgICAgbG93Q2VsbChtX2dyYXBoLnZhckFyZ0No
aWxkKG1fbm9kZSwgMCkpLCBjYXNlcywgZHVtbXlEZWZhdWx0LCBXZWlnaHQoMCkpOwotCisgICAg
ICAgIAogICAgICAgICBMQmFzaWNCbG9jayBvdXRlckxhc3ROZXh0ID0gbV9vdXQubV9uZXh0Qmxv
Y2s7Ci0KKyAgICAgICAgCiAgICAgICAgIFZlY3RvcjxWYWx1ZUZyb21CbG9jaywgMT4gcmVzdWx0
czsKLQorICAgICAgICAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc2V0LnNpemUoKTsgaS0t
OykgewogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oYmxvY2tzW2ldLCBpICsgMSA8IHNldC5z
aXplKCkgPyBibG9ja3NbaSArIDFdIDogZHVtbXlEZWZhdWx0KTsKLQorICAgICAgICAgICAgCiAg
ICAgICAgICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIHN0cnVjdHVyZSA9IHNldC5hdChpKTsKLQor
ICAgICAgICAgICAgCiAgICAgICAgICAgICBMVmFsdWUgb2JqZWN0OwogICAgICAgICAgICAgTFZh
bHVlIGJ1dHRlcmZseTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc3RydWN0dXJl
LT5vdXRPZkxpbmVDYXBhY2l0eSgpIHx8IGhhc0luZGV4ZWRQcm9wZXJ0aWVzKHN0cnVjdHVyZS0+
aW5kZXhpbmdUeXBlKCkpKSB7CiAgICAgICAgICAgICAgICAgQWxsb2NhdG9yIGNlbGxBbGxvY2F0
b3I7CiAgICAgICAgICAgICAgICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCkgPT0g
SlNUeXBlOjpBcnJheVR5cGUpCkBAIC0xNTk1NiwxOSArMTU5NTMsMTkgQEAgSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgICAgICBpbmRleGluZ1BheWxvYWRTaXplSW5C
eXRlcyA9CiAgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5tdWwobV9vdXQuemVyb0V4dFB0
cih2ZWN0b3JMZW5ndGgpLCBtX291dC5pbnRQdHJFaWdodCk7CiAgICAgICAgICAgICAgICAgfQot
CisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgTFZhbHVlIGJ1dHRlcmZseVNpemUg
PSBtX291dC5hZGQoCiAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKAogICAg
ICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlLT5vdXRPZkxpbmVDYXBhY2l0eSgpICogc2l6
ZW9mKEpTVmFsdWUpICsgaW5kZXhpbmdIZWFkZXJTaXplKSwKICAgICAgICAgICAgICAgICAgICAg
aW5kZXhpbmdQYXlsb2FkU2l6ZUluQnl0ZXMpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd1BhdGggPSBtX291dC5uZXdCbG9jaygpOwogICAgICAg
ICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0K
KyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9
IG1fb3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9yZShzbG93UGF0aCk7Ci0KKyAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBub0J1dHRlcmZseSA9IG1fb3V0LmFu
Y2hvcihtX291dC5pbnRQdHJaZXJvKTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgIExWYWx1ZSBzdGFydE9mU3RvcmFnZSA9IGFsbG9jYXRlSGVhcENlbGwoCiAgICAgICAgICAg
ICAgICAgICAgIGFsbG9jYXRvckZvclNpemUodm0oKS5hdXhpbGlhcnlTcGFjZSgpLCBidXR0ZXJm
bHlTaXplLCBzbG93UGF0aCksCiAgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoKTsKQEAgLTE1
OTc3LDkgKzE1OTc0LDkgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAg
ICAgICAgICBzdGFydE9mU3RvcmFnZSwKICAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJ
bnRQdHIoCiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUtPm91dE9mTGluZUNhcGFj
aXR5KCkgKiBzaXplb2YoSlNWYWx1ZSkgKyBzaXplb2YoSW5kZXhpbmdIZWFkZXIpKSk7Ci0KKyAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBoYXZlQnV0dGVy
Zmx5ID0gbV9vdXQuYW5jaG9yKGZhc3RCdXR0ZXJmbHlWYWx1ZSk7Ci0KKyAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICBzcGxhdFdvcmRzKAogICAgICAgICAgICAgICAgICAgICBmYXN0
QnV0dGVyZmx5VmFsdWUsCiAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoLXN0
cnVjdHVyZS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSAtIDEpLApAQCAtMTU5OTUsOSArMTU5OTIsOSBA
QCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgVmFsdWVGcm9tQmxv
Y2sgZmFzdE9iamVjdCA9IG1fb3V0LmFuY2hvcihmYXN0T2JqZWN0VmFsdWUpOwogICAgICAgICAg
ICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RCdXR0ZXJmbHkgPSBtX291dC5hbmNob3IoZmFzdEJ1
dHRlcmZseVZhbHVlKTsKICAgICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7
Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93
UGF0aCwgY29udGludWF0aW9uKTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
IExWYWx1ZSBidXR0ZXJmbHlWYWx1ZSA9IG1fb3V0LnBoaShwb2ludGVyVHlwZSgpLCBub0J1dHRl
cmZseSwgaGF2ZUJ1dHRlcmZseSk7CiAKICAgICAgICAgICAgICAgICBWTSYgdm0gPSB0aGlzLT52
bSgpOwpAQCAtMTYwMjMsMTEgKzE2MDIwLDExIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQK
ICAgICAgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93T2JqZWN0ID0gbV9vdXQuYW5jaG9y
KHNsb3dPYmplY3RWYWx1ZSk7CiAgICAgICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd0J1
dHRlcmZseSA9IG1fb3V0LmFuY2hvcigKICAgICAgICAgICAgICAgICAgICAgbV9vdXQubG9hZFB0
cihzbG93T2JqZWN0VmFsdWUsIG1faGVhcHMuSlNPYmplY3RfYnV0dGVyZmx5KSk7Ci0KKyAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0K
KyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51
YXRpb24sIGxhc3ROZXh0KTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIG9i
amVjdCA9IG1fb3V0LnBoaShwb2ludGVyVHlwZSgpLCBmYXN0T2JqZWN0LCBzbG93T2JqZWN0KTsK
ICAgICAgICAgICAgICAgICBidXR0ZXJmbHkgPSBtX291dC5waGkocG9pbnRlclR5cGUoKSwgZmFz
dEJ1dHRlcmZseSwgc2xvd0J1dHRlcmZseSk7CiAKQEAgLTE2MDQyLDcgKzE2MDM5LDcgQEAgSUdO
T1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRv
ci5raW5kKCkgIT0gSW5kZXhlZFByb3BlcnR5UExvYykKICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGluZGV4ID0gc3RhdGljX2Nh
c3Q8aW50MzJfdD4oZGVzY3JpcHRvci5pbmZvKCkpOwotCisgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IGluZGV4TWFwLmFkZChpbmRleCwgdmFs
dWVzW2ldKTsKICAgICAgICAgICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBtX25vZGUs
IHJlc3VsdCk7IC8vIER1cGxpY2F0ZXMgYXJlIGlsbGVnYWwuCiAKQEAgLTE2MDUxLDIxICsxNjA0
OCwyMSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAgICAgICAgICBpZiAo
IWluZGljZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c29ydChpbmRp
Y2VzLmJlZ2luKCksIGluZGljZXMuZW5kKCkpOwotCisgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICBWZWN0b3I8TEJhc2ljQmxvY2s+IGJsb2Nrc1dpdGhTdG9yZXMoaW5k
aWNlcy5zaXplKCkpOwogICAgICAgICAgICAgICAgICAgICBWZWN0b3I8TEJhc2ljQmxvY2s+IGJs
b2Nrc1dpdGhDaGVja3MoaW5kaWNlcy5zaXplKCkpOwotCisgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBpbmRpY2VzLnNpemUoKTsgaS0t
OykgewogICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tzV2l0aFN0b3Jlc1tpXSA9IG1fb3V0
Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja3NXaXRoQ2hlY2tzW2ld
ID0gbV9vdXQubmV3QmxvY2soKTsgLy8gYmxvY2tzV2l0aENoZWNrc1swXSBpcyB0aGUgY29udGlu
dWF0aW9uLgogICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAgTEJh
c2ljQmxvY2sgaW5kZXhMYXN0TmV4dCA9IG1fb3V0Lm1fbmV4dEJsb2NrOwotCisgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBpbmRpY2Vz
LnNpemUoKTsgaS0tOykgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBpbmRleCA9
IGluZGljZXNbaV07CiAgICAgICAgICAgICAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBpbmRl
eE1hcC5nZXQoaW5kZXgpOwotCisgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X291dC5iZWxvdyhtX291dC5jb25zdEludDMyKGluZGV4KSwgcHVibGljTGVuZ3RoKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnN1cmUoYmxvY2tzV2l0aFN0b3Jlc1tpXSksIHVuc3Vy
ZShibG9ja3NXaXRoQ2hlY2tzW2ldKSk7CkBAIC0xNjEyNyw3ICsxNjEyNCw3IEBAIElHTk9SRV9D
TEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERkdfQ1JBU0go
bV9ncmFwaCwgbV9ub2RlLCAiSW52YWxpZCBpbmRleGluZyB0eXBlIik7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0KKyAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmUo
dmFsdWUsIG1fb3V0LmFkZHJlc3MoYnV0dGVyZmx5LCBoZWFwLT5hdChpbmRleCkpLCBzdG9yZVR5
cGUpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5qdW1wKGJsb2Nrc1dpdGhDaGVj
a3NbaV0pOwpAQCAtMTYxNTAsNyArMTYxNDcsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5E
CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAg
aWYgKG1fZ3JhcGguaWRlbnRpZmllcnMoKVtkZXNjcmlwdG9yLmluZm8oKV0gIT0gZW50cnkua2V5
KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQorICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgTFZhbHVlIGJhc2U7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChpc0lubGluZU9mZnNldChlbnRyeS5vZmZzZXQoKSkpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldElubGluZU9mZnNldHMuc2V0KGVudHJ5Lm9mZnNldCgpKTsKQEAgLTE2MTY1
LDE0ICsxNjE2MiwxNCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAg
ICAgaWYgKCFzZXRJbmxpbmVPZmZzZXRzLmdldChpKSkKICAgICAgICAgICAgICAgICAgICAgbV9v
dXQuc3RvcmU2NChtX291dC5pbnQ2NFplcm8sIG1fb3V0LmFkZHJlc3MobV9oZWFwcy5wcm9wZXJ0
aWVzLmF0QW55TnVtYmVyKCksIG9iamVjdCwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2UoaSkpKTsKICAg
ICAgICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZCht
X291dC5hbmNob3Iob2JqZWN0KSk7CiAgICAgICAgICAgICBtX291dC5qdW1wKG91dGVyQ29udGlu
dWF0aW9uKTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhk
dW1teURlZmF1bHQsIG91dGVyQ29udGludWF0aW9uKTsKICAgICAgICAgbV9vdXQudW5yZWFjaGFi
bGUoKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8ob3V0ZXJDb250aW51YXRp
b24sIG91dGVyTGFzdE5leHQpOwogICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShwb2ludGVy
VHlwZSgpLCByZXN1bHRzKSk7CiAgICAgICAgIG11dGF0b3JGZW5jZSgpOwpAQCAtMTYyMDYsMTAg
KzE2MjAzLDEwIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgbV9vdXQuanVt
cChjb250aW51YXRpb24pOwogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dQYXRoLCBjb250
aW51YXRpb24pOwotICAgICAgICAvLyBXZSBlbnN1cmUgYWxsb2NhdGlvbiBzaW5raW5nIGV4cGxp
Y3RseSBzZXRzIGJvdHRvbSB2YWx1ZXMgZm9yIGFsbCBmaWVsZCBtZW1iZXJzLgorICAgICAgICAv
LyBXZSBlbnN1cmUgYWxsb2NhdGlvbiBzaW5raW5nIGV4cGxpY3RseSBzZXRzIGJvdHRvbSB2YWx1
ZXMgZm9yIGFsbCBmaWVsZCBtZW1iZXJzLiAKICAgICAgICAgLy8gVGhlcmVmb3JlLCBpdCBkb2Vz
bid0IG1hdHRlciB3aGF0IEpTVmFsdWUgd2UgcGFzcyBpbiBhcyB0aGUgaW5pdGlhbGl6YXRpb24g
dmFsdWUKICAgICAgICAgLy8gYmVjYXVzZSBhbGwgZmllbGRzIHdpbGwgYmUgb3ZlcndyaXR0ZW4u
Ci0gICAgICAgIC8vIEZJWE1FOiBJdCBtYXkgYmUgd29ydGggY3JlYXRpbmcgYW4gb3BlcmF0aW9u
IHRoYXQgY2FsbHMgYSBjb25zdHJ1Y3RvciBvbiBKU0xleGljYWxFbnZpcm9ubWVudCB0aGF0Cisg
ICAgICAgIC8vIEZJWE1FOiBJdCBtYXkgYmUgd29ydGggY3JlYXRpbmcgYW4gb3BlcmF0aW9uIHRo
YXQgY2FsbHMgYSBjb25zdHJ1Y3RvciBvbiBKU0xleGljYWxFbnZpcm9ubWVudCB0aGF0IAogICAg
ICAgICAvLyBkb2Vzbid0IGluaXRpYWxpemUgZXZlcnkgc2xvdCBiZWNhdXNlIHdlIGFyZSBndWFy
YW50ZWVkIHRvIGRvIHRoYXQgaGVyZS4KICAgICAgICAgVk0mIHZtID0gdGhpcy0+dm0oKTsKICAg
ICAgICAgTFZhbHVlIGNhbGxSZXN1bHQgPSBsYXp5U2xvd1BhdGgoCkBAIC0xNjMzMSw3ICsxNjMy
OCw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgQVNTRVJUKE9wdGlvbnM6
OnVzZVBvbGxpbmdUcmFwcygpKTsKICAgICAgICAgTEJhc2ljQmxvY2sgbmVlZFRyYXBIYW5kbGlu
ZyA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9
IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIExWYWx1ZSB0cmFwQml0cyA9
IG1fb3V0LmxvYWQzMihtX291dC5hYnNvbHV0ZSh2bSgpLnRyYXBzKCkudHJhcEJpdHNBZGRyZXNz
KCkpKTsKICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LnRlc3RJc1plcm8zMih0cmFwQml0cywg
bV9vdXQuY29uc3RJbnQzMihWTVRyYXBzOjpBc3luY0V2ZW50cykpLAogICAgICAgICAgICAgdXN1
YWxseShjb250aW51YXRpb24pLCByYXJlbHkobmVlZFRyYXBIYW5kbGluZykpOwpAQCAtMTYzNDUs
MzAgKzE2MzQyLDMwIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAg
ICByZXR1cm4gY3JlYXRlTGF6eUNhbGxHZW5lcmF0b3Iodm0sIG9wZXJhdGlvbkhhbmRsZVRyYXBz
LCBJbnZhbGlkR1BSUmVnLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoZ2xvYmFsT2JqZWN0
KSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwot
CisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0
KTsKICAgICB9CiAKICAgICB2b2lkIGNvbXBpbGVSZWdFeHBFeGVjKCkKICAgICB7CiAgICAgICAg
IExWYWx1ZSBnbG9iYWxPYmplY3QgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwotCisgICAg
ICAgIAogICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gUmVnRXhwT2Jq
ZWN0VXNlKSB7CiAgICAgICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd1JlZ0V4cE9iamVjdChtX25v
ZGUtPmNoaWxkMigpKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAobV9ub2RlLT5j
aGlsZDMoKS51c2VLaW5kKCkgPT0gU3RyaW5nVXNlKSB7CiAgICAgICAgICAgICAgICAgTFZhbHVl
IGFyZ3VtZW50ID0gbG93U3RyaW5nKG1fbm9kZS0+Y2hpbGQzKCkpOwogICAgICAgICAgICAgICAg
IExWYWx1ZSByZXN1bHQgPSB2bUNhbGwoSW50NjQsIG9wZXJhdGlvblJlZ0V4cEV4ZWNTdHJpbmcs
IGdsb2JhbE9iamVjdCwgYmFzZSwgYXJndW1lbnQpOwogICAgICAgICAgICAgICAgIHNldEpTVmFs
dWUocmVzdWx0KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0KKyAg
ICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIGFyZ3VtZW50ID0gbG93SlNWYWx1ZShtX25v
ZGUtPmNoaWxkMygpKTsKICAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSB2bUNhbGwoSW50NjQs
IG9wZXJhdGlvblJlZ0V4cEV4ZWMsIGdsb2JhbE9iamVjdCwgYmFzZSwgYXJndW1lbnQpOwogICAg
ICAgICAgICAgc2V0SlNWYWx1ZShyZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9Ci0KKyAgICAgICAgCiAgICAgICAgIExWYWx1ZSBiYXNlID0gbG93SlNWYWx1ZShtX25vZGUt
PmNoaWxkMigpKTsKICAgICAgICAgTFZhbHVlIGFyZ3VtZW50ID0gbG93SlNWYWx1ZShtX25vZGUt
PmNoaWxkMygpKTsKICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IHZtQ2FsbChJbnQ2NCwgb3BlcmF0
aW9uUmVnRXhwRXhlY0dlbmVyaWMsIGdsb2JhbE9iamVjdCwgYmFzZSwgYXJndW1lbnQpOwpAQCAt
MTYzOTQsMTAgKzE2MzkxLDEwIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICB2b2lk
IGNvbXBpbGVSZWdFeHBUZXN0KCkKICAgICB7CiAgICAgICAgIExWYWx1ZSBnbG9iYWxPYmplY3Qg
PSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwotCisgICAgICAgIAogICAgICAgICBpZiAobV9u
b2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gUmVnRXhwT2JqZWN0VXNlKSB7CiAgICAgICAgICAg
ICBMVmFsdWUgYmFzZSA9IGxvd1JlZ0V4cE9iamVjdChtX25vZGUtPmNoaWxkMigpKTsKLQorICAg
ICAgICAgICAgCiAgICAgICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDMoKS51c2VLaW5kKCkgPT0g
U3RyaW5nVXNlKSB7CiAgICAgICAgICAgICAgICAgTFZhbHVlIGFyZ3VtZW50ID0gbG93U3RyaW5n
KG1fbm9kZS0+Y2hpbGQzKCkpOwogICAgICAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSB2bUNh
bGwoSW50MzIsIG9wZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcsIGdsb2JhbE9iamVjdCwgYmFzZSwg
YXJndW1lbnQpOwpAQCAtMTY3MTgsNyArMTY3MTUsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAgICAgICAgIHZtQ2FsbChWb2lkLCBvcGVyYXRpb25TZXRGdW5jdGlvbk5hbWUsIHdlYWtQ
b2ludGVyKGdsb2JhbE9iamVjdCksCiAgICAgICAgICAgICBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQx
KCkpLCBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpKTsKICAgICB9Ci0KKyAgICAKICAgICB2
b2lkIGNvbXBpbGVTdHJpbmdSZXBsYWNlKCkKICAgICB7CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX29yaWdpbi5zZW1hbnRp
Yyk7CkBAIC0xNjczOCw3ICsxNjczNSw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBMVmFsdWUgc3RyaW5nID0gbG93U3RyaW5n
KG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJlZ0V4cCA9IGxvd1JlZ0V4
cE9iamVjdChtX25vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgIExWYWx1ZSByZXBsYWNlID0g
bG93U3RyaW5nKG1fbm9kZS0+Y2hpbGQzKCkpOwpAQCAtMTY4MzEsMTAgKzE2ODI4LDEwIEBAIElH
Tk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIG1fb3V0LnN0b3JlNjQodmFsdWUs
IHJlZ0V4cCwgbV9oZWFwcy5SZWdFeHBPYmplY3RfbGFzdEluZGV4KTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBtX291dC5zdG9yZTY0KGxvd0pT
VmFsdWUobV9ub2RlLT5jaGlsZDIoKSksIGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVh
cHMuUmVnRXhwT2JqZWN0X2xhc3RJbmRleCk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBjb21w
aWxlTG9nU2hhZG93Q2hpY2tlblByb2xvZ3VlKCkKICAgICB7CiAgICAgICAgIExWYWx1ZSBwYWNr
ZXQgPSBlbnN1cmVTaGFkb3dDaGlja2VuUGFja2V0KCk7CkBAIC0xNjg0NSwxNCArMTY4NDIsMTQg
QEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBtX291dC5zdG9yZVB0cihtX291
dC5sb2FkUHRyKHBheWxvYWRGb3IoVmlydHVhbFJlZ2lzdGVyKENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSkpKSwgcGFja2V0LCBtX2hlYXBzLlNoYWRvd0NoaWNrZW5fUGFja2V0X2NhbGxlZSk7CiAgICAg
ICAgIG1fb3V0LnN0b3JlUHRyKHNjb3BlLCBwYWNrZXQsIG1faGVhcHMuU2hhZG93Q2hpY2tlbl9Q
YWNrZXRfc2NvcGUpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZUxvZ1NoYWRvd0No
aWNrZW5UYWlsKCkKICAgICB7CiAgICAgICAgIExWYWx1ZSBwYWNrZXQgPSBlbnN1cmVTaGFkb3dD
aGlja2VuUGFja2V0KCk7CiAgICAgICAgIExWYWx1ZSB0aGlzVmFsdWUgPSBsb3dKU1ZhbHVlKG1f
bm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBMVmFsdWUgc2NvcGUgPSBsb3dDZWxsKG1fbm9kZS0+
Y2hpbGQyKCkpOwogICAgICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXggPSBtX2Z0bFN0
YXRlLmppdENvZGUtPmNvbW1vbi5jb2RlT3JpZ2lucy0+YWRkQ29kZU9yaWdpbihtX29yaWdpbi5z
ZW1hbnRpYyk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fY2FsbEZyYW1l
LCBwYWNrZXQsIG1faGVhcHMuU2hhZG93Q2hpY2tlbl9QYWNrZXRfZnJhbWUpOwogICAgICAgICBt
X291dC5zdG9yZVB0cihtX291dC5jb25zdEludFB0cihiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KFNo
YWRvd0NoaWNrZW46OlBhY2tldDo6dGFpbE1hcmtlcigpKSksIHBhY2tldCwgbV9oZWFwcy5TaGFk
b3dDaGlja2VuX1BhY2tldF9jYWxsZWUpOwogICAgICAgICBtX291dC5zdG9yZTY0KHRoaXNWYWx1
ZSwgcGFja2V0LCBtX2hlYXBzLlNoYWRvd0NoaWNrZW5fUGFja2V0X3RoaXNWYWx1ZSk7CkBAIC0x
Njg3MCw3ICsxNjg2Nyw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgRWRn
ZSBzdHJpbmdFZGdlID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDIpOwogICAgICAgICBF
ZGdlIHN0YXJ0RWRnZSA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAzKTsKICAgICAgICAg
RWRnZSBlbmRFZGdlID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDQpOwotCisgICAgICAg
IAogICAgICAgICBMVmFsdWUgZ2xvYmFsT2JqZWN0ID0gbG93Q2VsbChnbG9iYWxPYmplY3RFZGdl
KTsKICAgICAgICAgTFZhbHVlIHJlZ0V4cCA9IGxvd0NlbGwocmVnRXhwRWRnZSk7CiAgICAgICAg
IExWYWx1ZSBzdHJpbmcgPSBsb3dDZWxsKHN0cmluZ0VkZ2UpOwpAQCAtMTY4ODUsNyArMTY4ODIs
NyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICBtX291dC5jb25zdElu
dDMyKDApLAogICAgICAgICAgICAgbV9vdXQuYWRkcmVzcyhnbG9iYWxPYmplY3QsIG1faGVhcHMu
SlNHbG9iYWxPYmplY3RfcmVnRXhwR2xvYmFsRGF0YV9jYWNoZWRSZXN1bHRfcmVpZmllZCkpOwog
ICAgIH0KLQorICAgIAogICAgIHN0cnVjdCBBcmd1bWVudHNMZW5ndGggewogICAgICAgICBBcmd1
bWVudHNMZW5ndGgoKQogICAgICAgICAgICAgOiBpc0tub3duKGZhbHNlKQpAQCAtMTY4OTMsNyAr
MTY4OTAsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAsIHZhbHVl
KG51bGxwdHIpCiAgICAgICAgIHsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBib29s
IGlzS25vd247CiAgICAgICAgIHVuc2lnbmVkIGtub3duOwogICAgICAgICBMVmFsdWUgdmFsdWU7
CkBAIC0xNjkwOSw3ICsxNjkwNiw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIGxlbmd0aC5rbm93biA9IFVJTlRfTUFYOwogICAgICAg
ICAgICAgbGVuZ3RoLmlzS25vd24gPSBmYWxzZTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAg
ICBWaXJ0dWFsUmVnaXN0ZXIgYXJndW1lbnRDb3VudFJlZ2lzdGVyOwogICAgICAgICAgICAgaWYg
KCFpbmxpbmVDYWxsRnJhbWUpCiAgICAgICAgICAgICAgICAgYXJndW1lbnRDb3VudFJlZ2lzdGVy
ID0gVmlydHVhbFJlZ2lzdGVyKENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNsdWRpbmdU
aGlzKTsKQEAgLTE2OTE3LDE1ICsxNjkxNCwxNSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5E
CiAgICAgICAgICAgICAgICAgYXJndW1lbnRDb3VudFJlZ2lzdGVyID0gaW5saW5lQ2FsbEZyYW1l
LT5hcmd1bWVudENvdW50UmVnaXN0ZXI7CiAgICAgICAgICAgICBsZW5ndGgudmFsdWUgPSBtX291
dC5zdWIobV9vdXQubG9hZDMyKHBheWxvYWRGb3IoYXJndW1lbnRDb3VudFJlZ2lzdGVyKSksIG1f
b3V0LmludDMyT25lKTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICByZXR1cm4gbGVu
Z3RoOwogICAgIH0KLQorICAgIAogICAgIEFyZ3VtZW50c0xlbmd0aCBnZXRBcmd1bWVudHNMZW5n
dGgoKQogICAgIHsKICAgICAgICAgcmV0dXJuIGdldEFyZ3VtZW50c0xlbmd0aChtX29yaWdpbi5z
ZW1hbnRpYy5pbmxpbmVDYWxsRnJhbWUoKSk7CiAgICAgfQotCisgICAgCiAgICAgTFZhbHVlIGdl
dEN1cnJlbnRDYWxsZWUoKQogICAgIHsKICAgICAgICAgaWYgKElubGluZUNhbGxGcmFtZSogZnJh
bWUgPSBtX29yaWdpbi5zZW1hbnRpYy5pbmxpbmVDYWxsRnJhbWUoKSkgewpAQCAtMTY5MzUsMTgg
KzE2OTMyLDE4IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gbV9vdXQubG9hZFB0cihhZGRyZXNzRm9yKFZpcnR1YWxSZWdpc3RlcihDYWxsRnJh
bWVTbG90OjpjYWxsZWUpKSk7CiAgICAgfQotCisgICAgCiAgICAgTFZhbHVlIGdldEFyZ3VtZW50
c1N0YXJ0KElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lLCB1bnNpZ25lZCBvZmZzZXQg
PSAwKQogICAgIHsKICAgICAgICAgVmlydHVhbFJlZ2lzdGVyIHN0YXJ0ID0gQXNzZW1ibHlIZWxw
ZXJzOjphcmd1bWVudHNTdGFydChpbmxpbmVDYWxsRnJhbWUpICsgb2Zmc2V0OwogICAgICAgICBy
ZXR1cm4gYWRkcmVzc0ZvcihzdGFydCkudmFsdWUoKTsKICAgICB9Ci0KKyAgICAKICAgICBMVmFs
dWUgZ2V0QXJndW1lbnRzU3RhcnQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIGdldEFyZ3VtZW50
c1N0YXJ0KG1fb3JpZ2luLnNlbWFudGljLmlubGluZUNhbGxGcmFtZSgpKTsKICAgICB9Ci0KKyAg
ICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgogICAgIHZvaWQgY2hlY2tTdHJ1Y3R1
cmUoCiAgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVEaXNjcmltaW5hbnQsIGNvbnN0IEZvcm1hdHRl
ZFZhbHVlJiBmb3JtYXR0ZWRWYWx1ZSwgRXhpdEtpbmQgZXhpdEtpbmQsCkBAIC0xNjk2Myw5ICsx
Njk2MCw5IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICBtX291
dC5ub3RFcXVhbChzdHJ1Y3R1cmVEaXNjcmltaW5hbnQsIHdlYWtTdHJ1Y3R1cmVEaXNjcmltaW5h
bnQoc2V0WzBdKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0KKyAgICAgICAg
CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0K
KyAgICAgICAgCiAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuaW5zZXJ0TmV3
QmxvY2tzQmVmb3JlKGNvbnRpbnVhdGlvbik7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBzZXQuc2l6ZSgpIC0gMTsgKytpKSB7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBuZXh0
U3RydWN0dXJlID0gbV9vdXQubmV3QmxvY2soKTsKQEAgLTE2OTc0LDE1ICsxNjk3MSwxNSBAQCBJ
R05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgdW5zdXJlKGNvbnRpbnVh
dGlvbiksIHVuc3VyZShuZXh0U3RydWN0dXJlKSk7CiAgICAgICAgICAgICBtX291dC5hcHBlbmRU
byhuZXh0U3RydWN0dXJlKTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBzcGVjdWxh
dGUoCiAgICAgICAgICAgICBleGl0S2luZCwgZm9ybWF0dGVkVmFsdWUsIG51bGxwdHIsCiAgICAg
ICAgICAgICBtX291dC5ub3RFcXVhbChzdHJ1Y3R1cmVEaXNjcmltaW5hbnQsIHdlYWtTdHJ1Y3R1
cmVEaXNjcmltaW5hbnQoc2V0Lmxhc3QoKSkpKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQu
anVtcChjb250aW51YXRpb24pOwogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24s
IGxhc3ROZXh0KTsKICAgICB9Ci0KKyAgICAKICAgICBMVmFsdWUgbnVtYmVyT3JOb3RDZWxsTm9y
QmlnSW50VG9JbnQzMihFZGdlIGVkZ2UsIExWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIExC
YXNpY0Jsb2NrIGludENhc2UgPSBtX291dC5uZXdCbG9jaygpOwpAQCAtMTY5OTQsMTUgKzE2OTkx
LDE1IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIG5vdE51bWJlckNh
c2UgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICB9CiAgICAgICAgIExCYXNpY0Jsb2NrIGNv
bnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIFZlY3Rv
cjxWYWx1ZUZyb21CbG9jaz4gcmVzdWx0czsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYnJh
bmNoKGlzTm90SW50MzIodmFsdWUpLCB1bnN1cmUobm90SW50Q2FzZSksIHVuc3VyZShpbnRDYXNl
KSk7Ci0KKyAgICAgICAgCiAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBw
ZW5kVG8oaW50Q2FzZSwgbm90SW50Q2FzZSk7CiAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0
LmFuY2hvcih1bmJveEludDMyKHZhbHVlKSkpOwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVh
dGlvbik7Ci0KKyAgICAgICAgCiAgICAgICAgIGlmIChlZGdlLnVzZUtpbmQoKSA9PSBOdW1iZXJV
c2UpIHsKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdEludENhc2UsIGNvbnRpbnVhdGlv
bik7CiAgICAgICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdl
LCBTcGVjQnl0ZWNvZGVOdW1iZXIsIGlzQ2VsbE9yTWlzY09yQmlnSW50MzIodmFsdWUpKTsKQEAg
LTE3MDExLDI1ICsxNzAwOCwyNSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhub3RJbnRDYXNlLCBkb3VibGVD
YXNlKTsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0NlbGxPck1pc2NPckJpZ0ludDMyKHZh
bHVlLCBwcm92ZW5UeXBlKGVkZ2UpKSwgdW5zdXJlKG5vdE51bWJlckNhc2UpLCB1bnN1cmUoZG91
YmxlQ2FzZSkpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGRv
dWJsZUNhc2UsIG5vdE51bWJlckNhc2UpOwogICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9v
dXQuYW5jaG9yKGRvdWJsZVRvSW50MzIodW5ib3hEb3VibGUodmFsdWUpKSkpOwogICAgICAgICAg
ICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAgICAgICAKICAgICAgICAgICAg
IG1fb3V0LmFwcGVuZFRvKG5vdE51bWJlckNhc2UsIGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAg
ICAgIAogICAgICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRn
ZSwgflNwZWNDZWxsQ2hlY2ssIGlzQ2VsbCh2YWx1ZSkpOwogI2lmIFVTRShCSUdJTlQzMikKICAg
ICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZSh2YWx1ZSksIGVkZ2UsIH5TcGVj
Q2VsbENoZWNrICYgflNwZWNCaWdJbnQsIGlzQmlnSW50MzIodmFsdWUpKTsKICNlbmRpZgotCisg
ICAgICAgICAgICAKICAgICAgICAgICAgIExWYWx1ZSBzcGVjaWFsUmVzdWx0ID0gbV9vdXQuc2Vs
ZWN0KAogICAgICAgICAgICAgICAgIG1fb3V0LmVxdWFsKHZhbHVlLCBtX291dC5jb25zdEludDY0
KEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odHJ1ZSkpKSksCiAgICAgICAgICAgICAgICAgbV9v
dXQuaW50MzJPbmUsIG1fb3V0LmludDMyWmVybyk7CiAgICAgICAgICAgICByZXN1bHRzLmFwcGVu
ZChtX291dC5hbmNob3Ioc3BlY2lhbFJlc3VsdCkpOwogICAgICAgICAgICAgbV9vdXQuanVtcChj
b250aW51YXRpb24pOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAgICAgICByZXR1cm4gbV9vdXQucGhpKElu
dDMyLCByZXN1bHRzKTsKICAgICB9CkBAIC0xNzAzOCwzMCArMTcwMzUsMzAgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fb3V0LmxvYWQ2NChhZGRy
ZXNzT2ZQcm9wZXJ0eShzdG9yYWdlLCBpZGVudGlmaWVyTnVtYmVyLCBvZmZzZXQpKTsKICAgICB9
Ci0KKyAgICAKICAgICB2b2lkIHN0b3JlUHJvcGVydHkoCiAgICAgICAgIExWYWx1ZSB2YWx1ZSwg
TFZhbHVlIHN0b3JhZ2UsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFByb3BlcnR5T2Zmc2V0
IG9mZnNldCkKICAgICB7CiAgICAgICAgIG1fb3V0LnN0b3JlNjQodmFsdWUsIGFkZHJlc3NPZlBy
b3BlcnR5KHN0b3JhZ2UsIGlkZW50aWZpZXJOdW1iZXIsIG9mZnNldCkpOwogICAgIH0KLQorICAg
IAogICAgIFR5cGVkUG9pbnRlciBhZGRyZXNzT2ZQcm9wZXJ0eSgKICAgICAgICAgTFZhbHVlIHN0
b3JhZ2UsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFByb3BlcnR5T2Zmc2V0IG9mZnNldCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBtX291dC5hZGRyZXNzKAogICAgICAgICAgICAgbV9oZWFw
cy5wcm9wZXJ0aWVzW2lkZW50aWZpZXJOdW1iZXJdLCBzdG9yYWdlLCBvZmZzZXRSZWxhdGl2ZVRv
QmFzZShvZmZzZXQpKTsKICAgICB9Ci0KKyAgICAKICAgICBMVmFsdWUgc3RvcmFnZUZvclRyYW5z
aXRpb24oCiAgICAgICAgIExWYWx1ZSBvYmplY3QsIFByb3BlcnR5T2Zmc2V0IG9mZnNldCwKICAg
ICAgICAgU3RydWN0dXJlKiBwcmV2aW91c1N0cnVjdHVyZSwgU3RydWN0dXJlKiBuZXh0U3RydWN0
dXJlKQogICAgIHsKICAgICAgICAgaWYgKGlzSW5saW5lT2Zmc2V0KG9mZnNldCkpCiAgICAgICAg
ICAgICByZXR1cm4gb2JqZWN0OwotCisgICAgICAgIAogICAgICAgICBpZiAocHJldmlvdXNTdHJ1
Y3R1cmUtPm91dE9mTGluZUNhcGFjaXR5KCkgPT0gbmV4dFN0cnVjdHVyZS0+b3V0T2ZMaW5lQ2Fw
YWNpdHkoKSkKICAgICAgICAgICAgIHJldHVybiBtX291dC5sb2FkUHRyKG9iamVjdCwgbV9oZWFw
cy5KU09iamVjdF9idXR0ZXJmbHkpOwotCisgICAgICAgIAogICAgICAgICBMVmFsdWUgcmVzdWx0
OwogICAgICAgICBpZiAoIXByZXZpb3VzU3RydWN0dXJlLT5vdXRPZkxpbmVDYXBhY2l0eSgpKQog
ICAgICAgICAgICAgcmVzdWx0ID0gYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2Uob2JqZWN0LCBwcmV2
aW91c1N0cnVjdHVyZSk7CkBAIC0xNzA3MCwzMCArMTcwNjcsMzAgQEAgSUdOT1JFX0NMQU5HX1dB
Uk5JTkdTX0VORAogICAgICAgICAgICAgICAgIG9iamVjdCwgbV9vdXQubG9hZFB0cihvYmplY3Qs
IG1faGVhcHMuSlNPYmplY3RfYnV0dGVyZmx5KSwKICAgICAgICAgICAgICAgICBwcmV2aW91c1N0
cnVjdHVyZSwgbmV4dFN0cnVjdHVyZSk7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAg
bnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseShyZXN1bHQsIG9iamVjdCk7CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogCiAgICAgdm9pZCBpbml0aWFsaXplQXJyYXlFbGVtZW50cyhM
VmFsdWUgaW5kZXhpbmdUeXBlLCBMVmFsdWUgYmVnaW4sIExWYWx1ZSBlbmQsIExWYWx1ZSBidXR0
ZXJmbHkpCiAgICAgewotCisgICAgICAgIAogICAgICAgICBpZiAoYmVnaW4gPT0gZW5kKQogICAg
ICAgICAgICAgcmV0dXJuOwotCisgICAgICAgIAogICAgICAgICBpZiAoaW5kZXhpbmdUeXBlLT5o
YXNJbnQzMigpKSB7CiAgICAgICAgICAgICBJbmRleGluZ1R5cGUgcmF3SW5kZXhpbmdUeXBlID0g
c3RhdGljX2Nhc3Q8SW5kZXhpbmdUeXBlPihpbmRleGluZ1R5cGUtPmFzSW50MzIoKSk7CiAgICAg
ICAgICAgICBpZiAoaGFzVW5kZWNpZGVkKHJhd0luZGV4aW5nVHlwZSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgSW5kZXhlZEFic3RyYWN0SGVhcCogaGVhcCA9IG1faGVh
cHMuZm9ySW5kZXhpbmdUeXBlKHJhd0luZGV4aW5nVHlwZSk7CiAgICAgICAgICAgICBERkdfQVNT
RVJUKG1fZ3JhcGgsIG1fbm9kZSwgaGVhcCk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAg
TFZhbHVlIGhvbGU7CiAgICAgICAgICAgICBpZiAoaGFzRG91YmxlKHJhd0luZGV4aW5nVHlwZSkp
CiAgICAgICAgICAgICAgICAgaG9sZSA9IG1fb3V0LmNvbnN0SW50NjQoYml0d2lzZV9jYXN0PGlu
dDY0X3Q+KFBOYU4pKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBob2xlID0g
bV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKSk7Ci0KKyAgICAgICAg
ICAgIAogICAgICAgICAgICAgc3BsYXRXb3JkcyhidXR0ZXJmbHksIGJlZ2luLCBlbmQsIGhvbGUs
IGhlYXAtPmF0QW55SW5kZXgoKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBMVmFs
dWUgaG9sZSA9IG1fb3V0LnNlbGVjdCgKQEAgLTE3MTEyLDcgKzE3MTA5LDcgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgICAgICBpZiAoYmVnaW4tPmhhc0ludCgpICYmIGVuZC0+aGFz
SW50KCkpIHsKICAgICAgICAgICAgIHVpbnQ2NF90IGJlZ2luQ29uc3QgPSBzdGF0aWNfY2FzdDx1
aW50NjRfdD4oYmVnaW4tPmFzSW50KCkpOwogICAgICAgICAgICAgdWludDY0X3QgZW5kQ29uc3Qg
PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oZW5kLT5hc0ludCgpKTsKLQorICAgICAgICAgICAgCiAg
ICAgICAgICAgICBpZiAoZW5kQ29uc3QgLSBiZWdpbkNvbnN0IDw9IHVucm9sbGluZ0xpbWl0KSB7
CiAgICAgICAgICAgICAgICAgZm9yICh1aW50NjRfdCBpID0gYmVnaW5Db25zdDsgaSA8IGVuZENv
bnN0OyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAgTFZhbHVlIHBvaW50ZXIgPSBtX291dC5h
ZGQoYmFzZSwgbV9vdXQuY29uc3RJbnRQdHIoaSAqIHNpemVvZih1aW50NjRfdCkpKTsKQEAgLTE3
MTI0LDI5ICsxNzEyMSwyOSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAg
TEJhc2ljQmxvY2sgaW5pdExvb3AgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNC
bG9jayBpbml0RG9uZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIExC
YXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuaW5zZXJ0TmV3QmxvY2tzQmVmb3JlKGluaXRMb29w
KTsKLQorICAgICAgICAKICAgICAgICAgVmFsdWVGcm9tQmxvY2sgb3JpZ2luYWxJbmRleCA9IG1f
b3V0LmFuY2hvcihlbmQpOwogICAgICAgICBWYWx1ZUZyb21CbG9jayBvcmlnaW5hbFBvaW50ZXIg
PSBtX291dC5hbmNob3IoCiAgICAgICAgICAgICBtX291dC5hZGQoYmFzZSwgbV9vdXQuc2hsKG1f
b3V0LnNpZ25FeHQzMlRvUHRyKGJlZ2luKSwgbV9vdXQuY29uc3RJbnQzMigzKSkpKTsKICAgICAg
ICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdEVxdWFsKGVuZCwgYmVnaW4pLCB1bnN1cmUoaW5pdExv
b3ApLCB1bnN1cmUoaW5pdERvbmUpKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5k
VG8oaW5pdExvb3AsIGluaXREb25lKTsKICAgICAgICAgTFZhbHVlIGluZGV4ID0gbV9vdXQucGhp
KEludDMyLCBvcmlnaW5hbEluZGV4KTsKICAgICAgICAgTFZhbHVlIHBvaW50ZXIgPSBtX291dC5w
aGkocG9pbnRlclR5cGUoKSwgb3JpZ2luYWxQb2ludGVyKTsKLQorICAgICAgICAKICAgICAgICAg
bV9vdXQuc3RvcmU2NCh2YWx1ZSwgVHlwZWRQb2ludGVyKGhlYXAsIHBvaW50ZXIpKTsKLQorICAg
ICAgICAKICAgICAgICAgTFZhbHVlIG5leHRJbmRleCA9IG1fb3V0LnN1YihpbmRleCwgbV9vdXQu
aW50MzJPbmUpOwogICAgICAgICBtX291dC5hZGRJbmNvbWluZ1RvUGhpKGluZGV4LCBtX291dC5h
bmNob3IobmV4dEluZGV4KSk7CiAgICAgICAgIG1fb3V0LmFkZEluY29taW5nVG9QaGkocG9pbnRl
ciwgbV9vdXQuYW5jaG9yKG1fb3V0LmFkZChwb2ludGVyLCBtX291dC5pbnRQdHJFaWdodCkpKTsK
ICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgbV9vdXQubm90RXF1YWwobmV4dElu
ZGV4LCBiZWdpbiksIHVuc3VyZShpbml0TG9vcCksIHVuc3VyZShpbml0RG9uZSkpOwotCisgICAg
ICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhpbml0RG9uZSwgbGFzdE5leHQpOwogICAgIH0K
LQorICAgIAogICAgIExWYWx1ZSBhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZShMVmFsdWUgb2JqZWN0
LCBTdHJ1Y3R1cmUqIHByZXZpb3VzU3RydWN0dXJlKQogICAgIHsKICAgICAgICAgaWYgKHByZXZp
b3VzU3RydWN0dXJlLT5jb3VsZEhhdmVJbmRleGluZ0hlYWRlcigpKSB7CkBAIC0xNzE1NSw1NCAr
MTcxNTIsNTQgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIG9w
ZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHks
CiAgICAgICAgICAgICAgICAgbV92bVZhbHVlLCBvYmplY3QpOwogICAgICAgICB9Ci0KKyAgICAg
ICAgCiAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZVdpdGhT
aXplSW1wbChpbml0aWFsT3V0T2ZMaW5lQ2FwYWNpdHkpOwogCiAgICAgICAgIHNwbGF0V29yZHMo
CiAgICAgICAgICAgICByZXN1bHQsCiAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKC1pbml0
aWFsT3V0T2ZMaW5lQ2FwYWNpdHkgLSAxKSwgbV9vdXQuY29uc3RJbnQzMigtMSksCiAgICAgICAg
ICAgICBtX291dC5pbnQ2NFplcm8sIG1faGVhcHMucHJvcGVydGllcy5hdEFueU51bWJlcigpKTsK
LQorICAgICAgICAKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0KKyAgICAKICAgICBM
VmFsdWUgcmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSgKICAgICAgICAgTFZhbHVlIG9iamVjdCwg
TFZhbHVlIG9sZFN0b3JhZ2UsIFN0cnVjdHVyZSogcHJldmlvdXMsIFN0cnVjdHVyZSogbmV4dCkK
ICAgICB7CiAgICAgICAgIHNpemVfdCBvbGRTaXplID0gcHJldmlvdXMtPm91dE9mTGluZUNhcGFj
aXR5KCk7Ci0gICAgICAgIHNpemVfdCBuZXdTaXplID0gb2xkU2l6ZSAqIG91dE9mTGluZUdyb3d0
aEZhY3RvcjsKKyAgICAgICAgc2l6ZV90IG5ld1NpemUgPSBvbGRTaXplICogb3V0T2ZMaW5lR3Jv
d3RoRmFjdG9yOyAKIAogICAgICAgICBBU1NFUlRfVU5VU0VEKG5leHQsIG5ld1NpemUgPT0gbmV4
dC0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIGlmIChwcmV2aW91
cy0+Y291bGRIYXZlSW5kZXhpbmdIZWFkZXIoKSkgewotICAgICAgICAgICAgTFZhbHVlIG5ld0Fs
bG9jU2l6ZSA9IG1fb3V0LmNvbnN0SW50UHRyKG5ld1NpemUpOworICAgICAgICAgICAgTFZhbHVl
IG5ld0FsbG9jU2l6ZSA9IG1fb3V0LmNvbnN0SW50UHRyKG5ld1NpemUpOyAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICByZXR1cm4gdm1DYWxsKHBvaW50ZXJUeXBlKCksIG9wZXJhdGlv
bkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZSwgbV92bVZhbHVlLCBvYmplY3QsIG5ld0Fs
bG9jU2l6ZSk7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgTFZhbHVlIHJlc3VsdCA9
IGFsbG9jYXRlUHJvcGVydHlTdG9yYWdlV2l0aFNpemVJbXBsKG5ld1NpemUpOwogCiAgICAgICAg
IHB0cmRpZmZfdCBoZWFkZXJTaXplID0gLXNpemVvZihJbmRleGluZ0hlYWRlcikgLSBzaXplb2Yo
dm9pZCopOwogICAgICAgICBwdHJkaWZmX3QgZW5kU3RvcmFnZSA9IGhlYWRlclNpemUgLSBzdGF0
aWNfY2FzdDxwdHJkaWZmX3Q+KG9sZFNpemUgKiBzaXplb2YoSlNWYWx1ZSkpOwogCiAgICAgICAg
IGZvciAocHRyZGlmZl90IG9mZnNldCA9IGhlYWRlclNpemU7IG9mZnNldCA+IGVuZFN0b3JhZ2U7
IG9mZnNldCAtPSBzaXplb2Yodm9pZCopKSB7Ci0gICAgICAgICAgICBMVmFsdWUgbG9hZGVkID0K
KyAgICAgICAgICAgIExWYWx1ZSBsb2FkZWQgPSAKICAgICAgICAgICAgICAgICBtX291dC5sb2Fk
UHRyKG1fb3V0LmFkZHJlc3MobV9oZWFwcy5wcm9wZXJ0aWVzLmF0QW55TnVtYmVyKCksIG9sZFN0
b3JhZ2UsIG9mZnNldCkpOwogICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIobG9hZGVkLCBtX291
dC5hZGRyZXNzKG1faGVhcHMucHJvcGVydGllcy5hdEFueU51bWJlcigpLCByZXN1bHQsIG9mZnNl
dCkpOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIHNwbGF0V29yZHMoCiAgICAgICAg
ICAgICByZXN1bHQsCiAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKC1uZXdTaXplIC0gMSks
IG1fb3V0LmNvbnN0SW50MzIoLW9sZFNpemUgLSAxKSwKICAgICAgICAgICAgIG1fb3V0LmludDY0
WmVybywgbV9oZWFwcy5wcm9wZXJ0aWVzLmF0QW55TnVtYmVyKCkpOwotCisgICAgICAgIAogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KLQorICAgIAogICAgIExWYWx1ZSBhbGxvY2F0ZVBy
b3BlcnR5U3RvcmFnZVdpdGhTaXplSW1wbChzaXplX3Qgc2l6ZUluVmFsdWVzKQogICAgIHsKICAg
ICAgICAgTEJhc2ljQmxvY2sgc2xvd1BhdGggPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBM
QmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgIAog
ICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9y
ZShzbG93UGF0aCk7CiAKICAgICAgICAgc2l6ZV90IHNpemVJbkJ5dGVzID0gc2l6ZUluVmFsdWVz
ICogc2l6ZW9mKEpTVmFsdWUpOwpAQCAtMTcyMTIsOSArMTcyMDksOSBAQCBJR05PUkVfQ0xBTkdf
V0FSTklOR1NfRU5ECiAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RCdXR0ZXJmbHkgPSBtX291
dC5hbmNob3IoCiAgICAgICAgICAgICBtX291dC5hZGQobV9vdXQuY29uc3RJbnRQdHIoc2l6ZUlu
Qnl0ZXMgKyBzaXplb2YoSW5kZXhpbmdIZWFkZXIpKSwgc3RhcnRPZlN0b3JhZ2UpKTsKICAgICAg
ICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAgIAogICAgICAgICBtX291dC5h
cHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0aW9uKTsKLQorICAgICAgICAKICAgICAgICAgTFZh
bHVlIHNsb3dCdXR0ZXJmbHlWYWx1ZTsKICAgICAgICAgVk0mIHZtID0gdGhpcy0+dm0oKTsKICAg
ICAgICAgaWYgKHNpemVJblZhbHVlcyA9PSBpbml0aWFsT3V0T2ZMaW5lQ2FwYWNpdHkpIHsKQEAg
LTE3MjMzLDE0ICsxNzIzMCwxNCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAg
ICAgICAgICAgfSwgbV92bVZhbHVlKTsKICAgICAgICAgfQogICAgICAgICBWYWx1ZUZyb21CbG9j
ayBzbG93QnV0dGVyZmx5ID0gbV9vdXQuYW5jaG9yKHNsb3dCdXR0ZXJmbHlWYWx1ZSk7Ci0KKyAg
ICAgICAgCiAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAgICAgICAKICAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7Ci0KKyAgICAgICAg
CiAgICAgICAgIHJldHVybiBtX291dC5waGkocG9pbnRlclR5cGUoKSwgZmFzdEJ1dHRlcmZseSwg
c2xvd0J1dHRlcmZseSk7CiAgICAgfQotCisgICAgCiAgICAgTFZhbHVlIGdldEJ5SWQoTFZhbHVl
IGJhc2UsIEFjY2Vzc1R5cGUgdHlwZSkKICAgICB7CiAgICAgICAgIE5vZGUqIG5vZGUgPSBtX25v
ZGU7CkBAIC0xNzI1Niw3ICsxNzI1Myw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAg
ICAgICAgLy8gY2xvYmJlcnMgdm9sYXRpbGUgcmVnaXN0ZXJzIGxhdGUuIEl0J3Mgbm90IG5lY2Vz
c2FyeSBmb3IgY29ycmVjdG5lc3MsIHRob3VnaCwgc2luY2UgdGhlCiAgICAgICAgIC8vIElDIGNv
ZGUgaXMgc3VwZXIgc21hcnQgYWJvdXQgc2F2aW5nIHJlZ2lzdGVycy4KICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjg0OAotCisgICAgICAgIAog
ICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0QnVpbGRlcjo6bWFjcm9DbG9i
YmVyZWRHUFJzKCkpOwogCiAgICAgICAgIFJlZlB0cjxQYXRjaHBvaW50RXhjZXB0aW9uSGFuZGxl
PiBleGNlcHRpb25IYW5kbGUgPQpAQCAtMTczMzUsNyArMTczMzIsNyBAQCBJR05PUkVfQ0xBTkdf
V0FSTklOR1NfRU5ECiAKICAgICAgICAgcmV0dXJuIHBhdGNocG9pbnQ7CiAgICAgfQotCisgICAg
CiAgICAgTFZhbHVlIGdldEJ5SWRXaXRoVGhpcyhMVmFsdWUgYmFzZSwgTFZhbHVlIHRoaXNWYWx1
ZSkKICAgICB7CiAgICAgICAgIE5vZGUqIG5vZGUgPSBtX25vZGU7CkBAIC0xNzQyNSwxNCArMTc0
MjIsMTQgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiAgICAgICAgIHJldHVybiBwYXRj
aHBvaW50OwogICAgIH0KLQorICAgIAogICAgIExWYWx1ZSBpc0Zhc3RUeXBlZEFycmF5KExWYWx1
ZSBvYmplY3QpCiAgICAgewogICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwoCiAgICAgICAgICAg
ICBtX291dC5sb2FkOFplcm9FeHQzMihvYmplY3QsIG1faGVhcHMuSlNBcnJheUJ1ZmZlclZpZXdf
bW9kZSksCiAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKEZhc3RUeXBlZEFycmF5KSk7CiAg
ICAgfQotCisgICAgCiAgICAgVHlwZWRQb2ludGVyIGJhc2VJbmRleFdpdGhQcm92ZW5WYWx1ZShJ
bmRleGVkQWJzdHJhY3RIZWFwJiBoZWFwLCBMVmFsdWUgc3RvcmFnZSwgTFZhbHVlIGluZGV4LCBF
ZGdlIGVkZ2UsIHB0cmRpZmZfdCBvZmZzZXQgPSAwKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1f
b3V0LmJhc2VJbmRleChoZWFwLCBzdG9yYWdlLCBtX291dC56ZXJvRXh0UHRyKGluZGV4KSwgcHJv
dmVuVmFsdWUoZWRnZSksIG9mZnNldCk7CkBAIC0xNzQ1Miw3ICsxNzQ0OSw3IEBAIElHTk9SRV9D
TEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIHNldEJvb2xlYW4oaW50RnVuY3RvcihsZWZ0
LCByaWdodCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAg
ICAgICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChJbnQ1MlJlcFVzZSkpIHsKICAgICAg
ICAgICAgIEludDUyS2luZCBraW5kOwogICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dXaGlj
aGV2ZXJJbnQ1MihtX25vZGUtPmNoaWxkMSgpLCBraW5kKTsKQEAgLTE3NDYwLDcgKzE3NDU3LDcg
QEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgc2V0Qm9vbGVhbihpbnRG
dW5jdG9yKGxlZnQsIHJpZ2h0KSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQor
ICAgICAgICAKICAgICAgICAgaWYgKG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKERvdWJsZVJlcFVz
ZSkpIHsKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQx
KCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQy
KCkpOwpAQCAtMTc3NTMsNyArMTc3NTAsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAg
ICAgICAgIHNldEpTVmFsdWUodm1DYWxsKFZvaWQsIG1fbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmlj
dCgpID8gb3BlcmF0aW9uUHV0RHluYW1pY1ZhclN0cmljdCA6IG9wZXJhdGlvblB1dER5bmFtaWNW
YXJTbG9wcHksCiAgICAgICAgICAgICB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3QpLCBsb3dDZWxs
KG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpLCBtX291dC5j
b25zdEludFB0cih1aWQpLCBtX291dC5jb25zdEludDMyKG1fbm9kZS0+Z2V0UHV0SW5mbygpKSkp
OwogICAgIH0KLQorICAgIAogICAgIHZvaWQgY29tcGlsZVVucmVhY2hhYmxlKCkKICAgICB7CiAg
ICAgICAgIC8vIEl0J3Mgc28gdGVtcHRpbmcgdG8gYXNzZXJ0IHRoYXQgQUkgaGFzIHByb3ZlZCB0
aGF0IHRoaXMgaXMgdW5yZWFjaGFibGUuIEJ1dCB0aGF0J3MKQEAgLTE3NzY2LDcgKzE3NzYzLDcg
QEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAvLyBJdCdzIGFsc28gYWxzbyB3
b3J0aCBub3RpbmcgdGhhdCBzb21lIGNsaWVudHMgZW1pdCB0aGlzIG9wY29kZSBiZWNhdXNlIHRo
ZXkncmUgbm90IDEwMCUgc3VyZQogICAgICAgICAvLyBpZiB0aGUgY29kZSBpcyB1bnJlYWNoYWJs
ZSwgYnV0IHRoZXkgd291bGQgcmVhbGx5IHByZWZlciBpZiB3ZSBjcmFzaGVkIHJhdGhlciB0aGFu
IGtlcHQgZ29pbmcKICAgICAgICAgLy8gaWYgaXQgZGlkIHR1cm4gb3V0IHRvIGJlIHJlYWNoYWJs
ZS4gSGVuY2UsIHRoaXMgbmVlZHMgdG8gZGV0ZXJtaW5pc3RpY2FsbHkgY3Jhc2guCi0KKyAgICAg
ICAgCiAgICAgICAgIGNyYXNoKCk7CiAgICAgfQogCkBAIC0xNzk1MSw3ICsxNzk0OCw3IEBAIElH
Tk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgQ29kZVB0cjxDdXN0b21BY2Nlc3NvclB0clRhZz4gZ2V0dGVyID0gbV9ub2RlLT5jYWxs
RE9NR2V0dGVyRGF0YSgpLT5jdXN0b21BY2Nlc3NvckdldHRlcjsKICAgICAgICAgICAgICAgICBD
b2RlUHRyPE9wZXJhdGlvblB0clRhZz4gYnlwYXNzZWRGdW5jdGlvbihXVEY6OnRhZ05hdGl2ZUNv
ZGVQdHJJbXBsPE9wZXJhdGlvblB0clRhZz4oV1RGOjp1bnRhZ05hdGl2ZUNvZGVQdHJJbXBsPEN1
c3RvbUFjY2Vzc29yUHRyVGFnPihnZXR0ZXIudGFnZ2VkUHRyKCkpKSk7Ci0gICAgICAgICAgICAg
ICAgc2V0SlNWYWx1ZSh2bUNhbGw8Sl9KSVRPcGVyYXRpb25fR0pJPihJbnQ2NCwgYnlwYXNzZWRG
dW5jdGlvbiwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgbG93Q2VsbChtX25vZGUtPmNoaWxk
MSgpKSwgbV9vdXQuY29uc3RJbnRQdHIobV9ncmFwaC5pZGVudGlmaWVycygpW21fbm9kZS0+Y2Fs
bERPTUdldHRlckRhdGEoKS0+aWRlbnRpZmllck51bWJlcl0pKSk7CisgICAgICAgICAgICAgICAg
c2V0SlNWYWx1ZSh2bUNhbGwoSW50NjQsIGJ5cGFzc2VkRnVuY3Rpb24sIHdlYWtQb2ludGVyKGds
b2JhbE9iamVjdCksIGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1fb3V0LmNvbnN0SW50UHRy
KG1fZ3JhcGguaWRlbnRpZmllcnMoKVttX25vZGUtPmNhbGxET01HZXR0ZXJEYXRhKCktPmlkZW50
aWZpZXJOdW1iZXJdKSkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CkBAIC0xODAxMCw3ICsxODAwNyw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQK
ICAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cyA9IEVmZmVjdHM6OmZvckNhbGwoKTsKICAgICAg
ICAgc2V0SlNWYWx1ZShwYXRjaHBvaW50KTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGNvbXBp
bGVGaWx0ZXJJQ1N0YXR1cygpCiAgICAgewogICAgICAgICBtX2ludGVycHJldGVyLmZpbHRlcklD
U3RhdHVzKG1fbm9kZSk7CkBAIC0xODU0Niw3ICsxODU0Myw3IEBAIElHTk9SRV9DTEFOR19XQVJO
SU5HU19FTkQKICAgICAgICAgICAgIHJlc3RvcmUoKTsKICAgICAgICAgICAgIGppdC5tb3ZlVmFs
dWUoYmFzZWxpbmVDb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLCBKU1ZhbHVlUmVncyB7IEdQUklu
Zm86OnJldHVyblZhbHVlR1BSIH0pOwogICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBKU0dsb2JhbE9iamVjdDo6b2Zm
c2V0T2ZHbG9iYWxUaGlzKCkpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7Ci0gICAgICAgICAg
ICBwYXJhbXMuY29kZSgpLmVtaXRFcGlsb2d1ZShqaXQpOworICAgICAgICAgICAgcGFyYW1zLmNv
ZGUoKS5lbWl0RXBpbG9ndWUoaml0KTsgCiAKICAgICAgICAgICAgIHNraXBFYXJseVJldHVybi5s
aW5rKCZqaXQpOwogICAgICAgICAgICAgaml0LmFkZDY0KENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTMyKDEpLCBHUFJJbmZvOjpyZWdUMSk7CkBAIC0xODU1NCwxNCArMTg1NTEsMTQgQEAgSUdOT1JF
X0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgcmVzdG9yZSgpOwogICAgICAgICB9KTsK
ICAgICB9Ci0KKyAgICAKICAgICB2b2lkIGVtaXRTd2l0Y2hGb3JNdWx0aUJ5T2Zmc2V0KExWYWx1
ZSBiYXNlLCBib29sIHN0cnVjdHVyZXNDaGVja2VkLCBWZWN0b3I8U3dpdGNoQ2FzZSwgMj4mIGNh
c2VzLCBMQmFzaWNCbG9jayBleGl0KQogICAgIHsKICAgICAgICAgaWYgKGNhc2VzLmlzRW1wdHko
KSkgewogICAgICAgICAgICAgbV9vdXQuanVtcChleGl0KTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBpZiAoc3RydWN0dXJlc0NoZWNrZWQpIHsK
ICAgICAgICAgICAgIHN0ZDo6c29ydCgKICAgICAgICAgICAgICAgICBjYXNlcy5iZWdpbigpLCBj
YXNlcy5lbmQoKSwKQEAgLTE4NTczLDQ4ICsxODU3MCw0OCBAQCBJR05PUkVfQ0xBTkdfV0FSTklO
R1NfRU5ECiAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDMyKGJhc2UsIG1faGVhcHMuSlNDZWxs
X3N0cnVjdHVyZUlEKSwgY2FzZXMsIGxhc3QudGFyZ2V0KCksIFdlaWdodCgwKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgbV9vdXQuc3dpdGNo
SW5zdHJ1Y3Rpb24oCiAgICAgICAgICAgICBtX291dC5sb2FkMzIoYmFzZSwgbV9oZWFwcy5KU0Nl
bGxfc3RydWN0dXJlSUQpLCBjYXNlcywgZXhpdCwgV2VpZ2h0KDApKTsKICAgICB9Ci0KKyAgICAK
ICAgICB2b2lkIGNvbXBhcmVFcU9iamVjdE9yT3RoZXJUb09iamVjdChFZGdlIGxlZnRDaGlsZCwg
RWRnZSByaWdodENoaWxkKQogICAgIHsKICAgICAgICAgTFZhbHVlIHJpZ2h0Q2VsbCA9IGxvd0Nl
bGwocmlnaHRDaGlsZCk7CiAgICAgICAgIExWYWx1ZSBsZWZ0VmFsdWUgPSBsb3dKU1ZhbHVlKGxl
ZnRDaGlsZCwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKLQorICAgICAgICAKICAgICAgICAg
c3BlY3VsYXRlVHJ1dGh5T2JqZWN0KHJpZ2h0Q2hpbGQsIHJpZ2h0Q2VsbCwgU3BlY09iamVjdCk7
Ci0KKyAgICAgICAgCiAgICAgICAgIExCYXNpY0Jsb2NrIGxlZnRDZWxsQ2FzZSA9IG1fb3V0Lm5l
d0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGxlZnROb3RDZWxsQ2FzZSA9IG1fb3V0Lm5l
d0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Js
b2NrKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgIGlz
Q2VsbChsZWZ0VmFsdWUsIHByb3ZlblR5cGUobGVmdENoaWxkKSksCiAgICAgICAgICAgICB1bnN1
cmUobGVmdENlbGxDYXNlKSwgdW5zdXJlKGxlZnROb3RDZWxsQ2FzZSkpOwotCisgICAgICAgIAog
ICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGxlZnRDZWxsQ2Fz
ZSwgbGVmdE5vdENlbGxDYXNlKTsKICAgICAgICAgc3BlY3VsYXRlVHJ1dGh5T2JqZWN0KGxlZnRD
aGlsZCwgbGVmdFZhbHVlLCBTcGVjT2JqZWN0IHwgKH5TcGVjQ2VsbENoZWNrKSk7CiAgICAgICAg
IFZhbHVlRnJvbUJsb2NrIGNlbGxSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQuZXF1YWwocmln
aHRDZWxsLCBsZWZ0VmFsdWUpKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwot
CisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhsZWZ0Tm90Q2VsbENhc2UsIGNvbnRp
bnVhdGlvbik7CiAgICAgICAgIEZUTF9UWVBFX0NIRUNLKAogICAgICAgICAgICAganNWYWx1ZVZh
bHVlKGxlZnRWYWx1ZSksIGxlZnRDaGlsZCwgU3BlY090aGVyIHwgU3BlY0NlbGxDaGVjaywgaXNO
b3RPdGhlcihsZWZ0VmFsdWUpKTsKICAgICAgICAgVmFsdWVGcm9tQmxvY2sgbm90Q2VsbFJlc3Vs
dCA9IG1fb3V0LmFuY2hvcihtX291dC5ib29sZWFuRmFsc2UpOwogICAgICAgICBtX291dC5qdW1w
KGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRp
bnVhdGlvbiwgbGFzdE5leHQpOwogICAgICAgICBzZXRCb29sZWFuKG1fb3V0LnBoaShJbnQzMiwg
Y2VsbFJlc3VsdCwgbm90Q2VsbFJlc3VsdCkpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgc3Bl
Y3VsYXRlVHJ1dGh5T2JqZWN0KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBl
IGZpbHRlcikKICAgICB7CiAgICAgICAgIGlmIChtX2dyYXBoLmlzV2F0Y2hpbmdNYXNxdWVyYWRl
c0FzVW5kZWZpbmVkV2F0Y2hwb2ludFNldChtX25vZGUpKSB7CiAgICAgICAgICAgICBGVExfVFlQ
RV9DSEVDSyhqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIGZpbHRlciwgaXNOb3RPYmplY3QoY2Vs
bCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAg
IEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgZmlsdGVyLCBpc05vdE9i
amVjdChjZWxsKSk7CiAgICAgICAgIHNwZWN1bGF0ZSgKICAgICAgICAgICAgIEJhZFR5cGUsIGpz
VmFsdWVWYWx1ZShjZWxsKSwgZWRnZS5ub2RlKCksCkBAIC0xODYzMSwyNiArMTg2MjgsMjYgQEAg
SUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dKU1Zh
bHVlKG1fbm9kZS0+Y2hpbGQyKCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7CiAgICAgICAg
IHNwZWN1bGF0ZShtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgc3BlY3VsYXRlKG1fbm9kZS0+
Y2hpbGQyKCkpOwotCisgICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayBsZWZ0SXNJbnQgPSBt
X291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBmYXN0UGF0aCA9IG1fb3V0Lm5l
d0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dQYXRoID0gbV9vdXQubmV3QmxvY2so
KTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsK
LQorICAgICAgICAKICAgICAgICAgbV9vdXQuYnJhbmNoKGlzTm90SW50MzIobGVmdCwgcHJvdmVu
VHlwZShtX25vZGUtPmNoaWxkMSgpKSksIHJhcmVseShzbG93UGF0aCksIHVzdWFsbHkobGVmdElz
SW50KSk7Ci0KKyAgICAgICAgCiAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQu
YXBwZW5kVG8obGVmdElzSW50LCBmYXN0UGF0aCk7CiAgICAgICAgIG1fb3V0LmJyYW5jaChpc05v
dEludDMyKHJpZ2h0LCBwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQyKCkpKSwgcmFyZWx5KHNsb3dQ
YXRoKSwgdXN1YWxseShmYXN0UGF0aCkpOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBl
bmRUbyhmYXN0UGF0aCwgc2xvd1BhdGgpOwogICAgICAgICBWYWx1ZUZyb21CbG9jayBmYXN0UmVz
dWx0ID0gbV9vdXQuYW5jaG9yKGludEZ1bmN0b3IodW5ib3hJbnQzMihsZWZ0KSwgdW5ib3hJbnQz
MihyaWdodCkpKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAg
IAogICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0aW9uKTsKICAgICAg
ICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC5ub3ROdWxs
KHZtQ2FsbCgKICAgICAgICAgICAgIHBvaW50ZXJUeXBlKCksIGhlbHBlckZ1bmN0aW9uLCB3ZWFr
UG9pbnRlcihnbG9iYWxPYmplY3QpLCBsZWZ0LCByaWdodCkpKTsKICAgICAgICAgbV9vdXQuanVt
cChjb250aW51YXRpb24pOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250
aW51YXRpb24sIGxhc3ROZXh0KTsKICAgICAgICAgc2V0Qm9vbGVhbihtX291dC5waGkoSW50MzIs
IGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpKTsKICAgICB9CkBAIC0xODcyOSw3ICsxODcyNiw3IEBA
IElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5v
dFplcm8zMihpbmRleEluTG9vcCksIHVuc3VyZShsb29wKSwgdW5zdXJlKHRydWVDYXNlKSk7CiAK
ICAgICAgICAgbV9vdXQuYXBwZW5kVG8odHJ1ZUNhc2UsIGZhbHNlQ2FzZSk7Ci0KKyAgICAgICAg
CiAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHRydWVSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQu
Ym9vbGVhblRydWUpOwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAKQEAgLTE4
NzY2LDcgKzE4NzYzLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiAgICAgICAgIFNu
aXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSku
cmVzdWx0VHlwZSgpKTsKICAgICAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKG1fc3Rh
dGUuZm9yTm9kZShub2RlLT5jaGlsZDIoKSkucmVzdWx0VHlwZSgpKTsKLQorICAgICAgICAgICAg
CiAgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9pbnQo
SW50NjQpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIobGVmdCk7CiAg
ICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihyaWdodCk7CkBAIC0xODgwMCwx
MSArMTg3OTcsMTEgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAg
IGlmIChnZW5lcmF0b3ItPmRpZEVtaXRGYXN0UGF0aCgpKSB7CiAgICAgICAgICAgICAgICAgICAg
IGdlbmVyYXRvci0+ZW5kSnVtcExpc3QoKS5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGRvbmUgPSBqaXQubGFiZWwoKTsKLQorICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmFkZExhdGVQYXRoKAogICAgICAg
ICAgICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0
Y2goaml0KTsKLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wTGlzdCgpLmxpbmsoJmppdCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbigKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKnN0YXRlLCBwYXJhbXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKSwg
aml0LCBzZW1hbnRpY05vZGVPcmlnaW4sCkBAIC0xODgyOCw3ICsxODgyNSw3IEBAIElHTk9SRV9D
TEFOR19XQVJOSU5HU19FTkQKICAgICB2b2lkIGVtaXRCaW5hcnlCaXRPcFNuaXBwZXQoSl9KSVRP
cGVyYXRpb25fR0pKIHNsb3dQYXRoRnVuY3Rpb24pCiAgICAgewogICAgICAgICBOb2RlKiBub2Rl
ID0gbV9ub2RlOwotCisgICAgICAgIAogICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG5vZGUs
IG5vZGUtPmlzQmluYXJ5VXNlS2luZChVbnR5cGVkVXNlKSB8fCBub2RlLT5pc0JpbmFyeVVzZUtp
bmQoQW55QmlnSW50VXNlKSB8fCBub2RlLT5pc0JpbmFyeVVzZUtpbmQoQmlnSW50MzJVc2UpKTsK
ICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dKU1ZhbHVlKG5vZGUtPmNoaWxkMSgpLCBNYW51YWxP
cGVyYW5kU3BlY3VsYXRpb24pOwogICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dKU1ZhbHVlKG5v
ZGUtPmNoaWxkMigpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwpAQCAtMTg4MzcsNyArMTg4
MzQsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAgU25pcHBldE9wZXJh
bmQgbGVmdE9wZXJhbmQobV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5yZXN1bHRUeXBl
KCkpOwogICAgICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQobV9zdGF0ZS5mb3JOb2Rl
KG5vZGUtPmNoaWxkMigpKS5yZXN1bHRUeXBlKCkpOwotCisgICAgICAgICAgICAKICAgICAgICAg
UGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChJbnQ2NCk7CiAg
ICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihsZWZ0KTsKICAgICAgICAgcGF0
Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKHJpZ2h0KTsKQEAgLTE4ODUzLDEwICsxODg1MCwx
MCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIHBhdGNocG9pbnQtPnNldEdl
bmVyYXRvcigKICAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNr
bWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgQWxsb3dNYWNy
b1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwotCisgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgIEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNl
cHRpb25zID0KICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uSGFuZGxlLT5zY2hlZHVsZUV4
aXRDcmVhdGlvbihwYXJhbXMpLT5qdW1wcyhqaXQpOwotCisgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgIGF1dG8gZ2VuZXJhdG9yID0gQm94PEJpbmFyeUJpdE9wR2VuZXJhdG9y
Pjo6Y3JlYXRlKAogICAgICAgICAgICAgICAgICAgICBsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5k
LCBKU1ZhbHVlUmVncyhwYXJhbXNbMF0uZ3ByKCkpLAogICAgICAgICAgICAgICAgICAgICBKU1Zh
bHVlUmVncyhwYXJhbXNbMV0uZ3ByKCkpLCBKU1ZhbHVlUmVncyhwYXJhbXNbMl0uZ3ByKCkpLCBw
YXJhbXMuZ3BTY3JhdGNoKDApKTsKQEAgLTE4ODY4LDcgKzE4ODY1LDcgQEAgSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIHBhcmFtcy5hZGRMYXRlUGF0aCgKICAgICAg
ICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQp
OwotCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICBnZW5lcmF0b3ItPnNsb3dQYXRoSnVtcExpc3QoKS5saW5rKCZqaXQpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgY2FsbE9wZXJhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
c3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBqaXQsIHNlbWFudGljTm9kZU9y
aWdpbiwKQEAgLTE4ODg1LDE2ICsxODg4MiwxNiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5E
CiAgICAgdm9pZCBlbWl0UmlnaHRTaGlmdFNuaXBwZXQoSklUUmlnaHRTaGlmdEdlbmVyYXRvcjo6
U2hpZnRUeXBlIHNoaWZ0VHlwZSkKICAgICB7CiAgICAgICAgIE5vZGUqIG5vZGUgPSBtX25vZGU7
Ci0KKyAgICAgICAgCiAgICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgZG8gZXhjZXB0aW9ucy4K
ICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTY4
NgotCisgICAgICAgICAgICAKICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dKU1ZhbHVlKG5vZGUt
PmNoaWxkMSgpKTsKICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SlNWYWx1ZShub2RlLT5jaGls
ZDIoKSk7CiAKICAgICAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQobV9zdGF0ZS5mb3JO
b2RlKG5vZGUtPmNoaWxkMSgpKS5yZXN1bHRUeXBlKCkpOwogICAgICAgICBTbmlwcGV0T3BlcmFu
ZCByaWdodE9wZXJhbmQobV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpKS5yZXN1bHRUeXBl
KCkpOwotCisgICAgICAgICAgICAKICAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50
ID0gbV9vdXQucGF0Y2hwb2ludChJbnQ2NCk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNv
bWVSZWdpc3RlcihsZWZ0KTsKICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVy
KHJpZ2h0KTsKQEAgLTE4OTExLDEwICsxODkwOCwxMCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAgICAgICAgIFs9XSAo
Q0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1z
KSB7CiAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93
U2NyYXRjaChqaXQpOwotCisgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIEJv
eDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25zID0KICAgICAgICAgICAgICAgICAg
ICAgZXhjZXB0aW9uSGFuZGxlLT5zY2hlZHVsZUV4aXRDcmVhdGlvbihwYXJhbXMpLT5qdW1wcyhq
aXQpOwotCisgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGF1dG8gZ2VuZXJh
dG9yID0gQm94PEpJVFJpZ2h0U2hpZnRHZW5lcmF0b3I+OjpjcmVhdGUoCiAgICAgICAgICAgICAg
ICAgICAgIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIEpTVmFsdWVSZWdzKHBhcmFtc1swXS5n
cHIoKSksCiAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHBhcmFtc1sxXS5ncHIoKSks
IEpTVmFsdWVSZWdzKHBhcmFtc1syXS5ncHIoKSksCkBAIC0xODkyNywxMyArMTg5MjQsMTMgQEAg
SUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIHBhcmFtcy5hZGRMYXRl
UGF0aCgKICAgICAgICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93
U2NyYXRjaChqaXQpOwotCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICBnZW5lcmF0b3ItPnNsb3dQYXRoSnVtcExpc3QoKS5saW5rKCZqaXQpOwog
CiAgICAgICAgICAgICAgICAgICAgICAgICBKX0pJVE9wZXJhdGlvbl9HSkogc2xvd1BhdGhGdW5j
dGlvbiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnRUeXBlID09IEpJVFJpZ2h0
U2hpZnRHZW5lcmF0b3I6OlNpZ25lZFNoaWZ0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PyBvcGVyYXRpb25WYWx1ZUJpdFJTaGlmdCA6IG9wZXJhdGlvblZhbHVlQml0VVJTaGlmdDsKLQor
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsT3Bl
cmF0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICpzdGF0ZSwgcGFyYW1zLnVuYXZh
aWxhYmxlUmVnaXN0ZXJzKCksIGppdCwgc2VtYW50aWNOb2RlT3JpZ2luLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4Y2VwdGlvbnMuZ2V0KCksIHNsb3dQYXRoRnVuY3Rpb24sIHBhcmFt
c1swXS5ncHIoKSwKQEAgLTE4OTUzLDcgKzE4OTUwLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdT
X0VORAogICAgICAgICAgICAgYWN0dWFsQWxsb2NhdG9yID0gSklUQWxsb2NhdG9yOjpjb25zdGFu
dChBbGxvY2F0b3IoYml0d2lzZV9jYXN0PExvY2FsQWxsb2NhdG9yKj4oYWxsb2NhdG9yLT5hc0lu
dFB0cigpKSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBhY3R1YWxBbGxvY2F0b3IgPSBK
SVRBbGxvY2F0b3I6OnZhcmlhYmxlKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIGlmIChhY3R1YWxB
bGxvY2F0b3IuaXNDb25zdGFudCgpKSB7CiAgICAgICAgICAgICBpZiAoIWFjdHVhbEFsbG9jYXRv
ci5hbGxvY2F0b3IoKSkgewogICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGhhdmVBbGxvY2F0
b3IgPSBtX291dC5uZXdCbG9jaygpOwpAQCAtMTg5NzIsMTEgKzE4OTY5LDExIEBAIElHTk9SRV9D
TEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICB1c3VhbGx5KGhhdmVBbGxvY2F0b3Ip
LCByYXJlbHkoc2xvd1BhdGgpKTsKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGhhdmVBbGxv
Y2F0b3IsIGxhc3ROZXh0KTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBMQmFzaWNC
bG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgIAogICAgICAg
ICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9yZShjb250
aW51YXRpb24pOwotCisgICAgICAgIAogICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9p
bnQgPSBtX291dC5wYXRjaHBvaW50KHBvaW50ZXJUeXBlKCkpOwogICAgICAgICBpZiAoaXNBUk02
NCgpKSB7CiAgICAgICAgICAgICAvLyBlbWl0QWxsb2NhdGVXaXRoTm9uTnVsbEFsbG9jYXRvciB1
c2VzIHRoZSBzY3JhdGNoIHJlZ2lzdGVycyBvbiBBUk0uCkBAIC0xODk4OSwyMSArMTg5ODYsMjEg
QEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgcGF0Y2hwb2ludC0+YXBw
ZW5kU29tZVJlZ2lzdGVyV2l0aENsb2JiZXIoYWxsb2NhdG9yKTsKICAgICAgICAgcGF0Y2hwb2lu
dC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzKys7CiAgICAgICAgIHBhdGNocG9pbnQtPnJlc3VsdENv
bnN0cmFpbnRzID0geyBWYWx1ZVJlcDo6U29tZUVhcmx5UmVnaXN0ZXIgfTsKLQorICAgICAgICAK
ICAgICAgICAgbV9vdXQuYXBwZW5kU3VjY2Vzc29yKHVzdWFsbHkoY29udGludWF0aW9uKSk7CiAg
ICAgICAgIG1fb3V0LmFwcGVuZFN1Y2Nlc3NvcihyYXJlbHkoc2xvd1BhdGgpKTsKLQorICAgICAg
ICAKICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAogICAgICAgICAgICAgWz1dIChD
Q2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMp
IHsKICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2VJZiBhbGxv
d1NjcmF0Y2hJZihqaXQsIGlzQVJNNjQoKSk7CiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wTGlzdCBqdW1wVG9TbG93UGF0aDsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgIEdQUlJlZyBhbGxvY2F0b3JHUFI7CiAgICAgICAgICAgICAgICAgaWYgKGFjdHVhbEFs
bG9jYXRvci5pc0NvbnN0YW50KCkpCiAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvckdQUiA9
IHBhcmFtcy5ncFNjcmF0Y2goMSk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgICAgICBhbGxvY2F0b3JHUFIgPSBwYXJhbXNbMV0uZ3ByKCk7Ci0KKyAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAvLyBXZSB1c2UgYSBwYXRjaHBvaW50IHRvIGVtaXQgdGhlIGFs
bG9jYXRpb24gcGF0aCBiZWNhdXNlIHdoZW5ldmVyIHdlIG1lc3Mgd2l0aAogICAgICAgICAgICAg
ICAgIC8vIGFsbG9jYXRpb24gcGF0aHMsIHdlIGFscmVhZHkgcmVhc29uIGFib3V0IHRoZW0gYXQg
dGhlIG1hY2hpbmUgY29kZSBsZXZlbC4gV2Uga25vdwogICAgICAgICAgICAgICAgIC8vIGV4YWN0
bHkgd2hhdCBpbnN0cnVjdGlvbiBzZXF1ZW5jZSB3ZSB3YW50LiBXZSdyZSBjb25maWRlbnQgdGhh
dCBubyBjb21waWxlcgpAQCAtMTkwMTMsMTMgKzE5MDEwLDEzIEBAIElHTk9SRV9DTEFOR19XQVJO
SU5HU19FTkQKICAgICAgICAgICAgICAgICBqaXQuZW1pdEFsbG9jYXRlV2l0aE5vbk51bGxBbGxv
Y2F0b3IoCiAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1swXS5ncHIoKSwgYWN0dWFsQWxsb2Nh
dG9yLCBhbGxvY2F0b3JHUFIsIHBhcmFtcy5ncFNjcmF0Y2goMCksCiAgICAgICAgICAgICAgICAg
ICAgIGp1bXBUb1Nsb3dQYXRoLCBDQ2FsbEhlbHBlcnM6OlNsb3dBbGxvY2F0aW9uUmVzdWx0OjpV
bmRlZmluZWRCZWhhdmlvcik7Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6Okp1bXAganVtcFRvU3VjY2VzczsKICAgICAgICAgICAgICAgICBpZiAoIXBh
cmFtcy5mYWxsc1Rocm91Z2hUb1N1Y2Nlc3NvcigwKSkKICAgICAgICAgICAgICAgICAgICAganVt
cFRvU3VjY2VzcyA9IGppdC5qdW1wKCk7Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBsYWJlbHMgPSBwYXJhbXMuc3Vj
Y2Vzc29yTGFiZWxzKCk7Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBwYXJh
bXMuYWRkTGF0ZVBhdGgoCiAgICAgICAgICAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBq
aXQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGp1bXBUb1Nsb3dQYXRoLmxpbmtUbygqbGFi
ZWxzWzFdLCAmaml0KTsKQEAgLTE5MDI3LDExICsxOTAyNCwxMSBAQCBJR05PUkVfQ0xBTkdfV0FS
TklOR1NfRU5ECiAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRvU3VjY2Vzcy5saW5r
VG8oKmxhYmVsc1swXSwgJmppdCk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICAgfSk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwg
bGFzdE5leHQpOwogICAgICAgICByZXR1cm4gcGF0Y2hwb2ludDsKICAgICB9Ci0KKyAgICAKICAg
ICB2b2lkIHN0b3JlU3RydWN0dXJlKExWYWx1ZSBvYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
KQogICAgIHsKICAgICAgICAgbV9vdXQuc3RvcmUzMihtX291dC5jb25zdEludDMyKHN0cnVjdHVy
ZS0+aWQoKS5iaXRzKCkpLCBvYmplY3QsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZUlEKTsKQEAg
LTE5MDk5LDExICsxOTA5NiwxMSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAg
ICAgICAgICAgbV9vdXQuaW50NjRaZXJvLAogICAgICAgICAgICAgICAgIG1faGVhcHMucHJvcGVy
dGllcy5hdEFueU51bWJlcigpKTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBtX291
dC5zdG9yZVB0cihidXR0ZXJmbHksIHJlc3VsdCwgbV9oZWFwcy5KU09iamVjdF9idXR0ZXJmbHkp
OwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KLQorICAgIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIENsYXNzVHlwZSwgdHlwZW5hbWUgU3RydWN0dXJlVHlwZT4KICAgICBMVmFsdWUgYWxs
b2NhdGVPYmplY3QoCiAgICAgICAgIHNpemVfdCBzaXplLCBTdHJ1Y3R1cmVUeXBlIHN0cnVjdHVy
ZSwgTFZhbHVlIGJ1dHRlcmZseSwgTEJhc2ljQmxvY2sgc2xvd1BhdGgpCkBAIC0xOTExMiwxOCAr
MTkxMDksMTggQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICByZXR1cm4gYWxs
b2NhdGVPYmplY3QoCiAgICAgICAgICAgICBtX291dC5jb25zdEludFB0cihhbGxvY2F0b3IubG9j
YWxBbGxvY2F0b3IoKSksIHN0cnVjdHVyZSwgYnV0dGVyZmx5LCBzbG93UGF0aCk7CiAgICAgfQot
CisgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2xhc3NUeXBlLCB0eXBlbmFtZSBTdHJ1Y3R1
cmVUeXBlPgogICAgIExWYWx1ZSBhbGxvY2F0ZU9iamVjdChTdHJ1Y3R1cmVUeXBlIHN0cnVjdHVy
ZSwgTFZhbHVlIGJ1dHRlcmZseSwgTEJhc2ljQmxvY2sgc2xvd1BhdGgpCiAgICAgewogICAgICAg
ICByZXR1cm4gYWxsb2NhdGVPYmplY3Q8Q2xhc3NUeXBlPigKICAgICAgICAgICAgIENsYXNzVHlw
ZTo6YWxsb2NhdGlvblNpemUoMCksIHN0cnVjdHVyZSwgYnV0dGVyZmx5LCBzbG93UGF0aCk7CiAg
ICAgfQotCisgICAgCiAgICAgTFZhbHVlIGFsbG9jYXRvckZvclNpemUoTFZhbHVlIHN1YnNwYWNl
LCBMVmFsdWUgc2l6ZSwgTEJhc2ljQmxvY2sgc2xvd1BhdGgpCiAgICAgewogICAgICAgICBzdGF0
aWNfYXNzZXJ0KCEoTWFya2VkU3BhY2U6OnNpemVTdGVwICYgKE1hcmtlZFNwYWNlOjpzaXplU3Rl
cCAtIDEpKSwgIk1hcmtlZFNwYWNlOjpzaXplU3RlcCBtdXN0IGJlIGEgcG93ZXIgb2YgdHdvLiIp
OwotCisgICAgICAgIAogICAgICAgICAvLyBUcnkgdG8gZG8gc29tZSBjb25zdGFudC1mb2xkaW5n
IGhlcmUuCiAgICAgICAgIGlmIChzdWJzcGFjZS0+aGFzSW50UHRyKCkgJiYgc2l6ZS0+aGFzSW50
UHRyKCkpIHsKICAgICAgICAgICAgIENvbXBsZXRlU3Vic3BhY2UqIGFjdHVhbFN1YnNwYWNlID0g
Yml0d2lzZV9jYXN0PENvbXBsZXRlU3Vic3BhY2UqPihzdWJzcGFjZS0+YXNJbnRQdHIoKSk7CkBA
IC0xOTE0MCwzNCArMTkxMzcsMzQgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiAgICAg
ICAgICAgICByZXR1cm4gbV9vdXQuY29uc3RJbnRQdHIoYWN0dWFsQWxsb2NhdG9yLmxvY2FsQWxs
b2NhdG9yKCkpOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIHVuc2lnbmVkIHN0ZXBT
aGlmdCA9IGdldExTQlNldChNYXJrZWRTcGFjZTo6c2l6ZVN0ZXApOwotCisgICAgICAgIAogICAg
ICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwotCisgICAg
ICAgIAogICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0Lmluc2VydE5ld0Jsb2Nr
c0JlZm9yZShjb250aW51YXRpb24pOwotCisgICAgICAgIAogICAgICAgICBMVmFsdWUgc2l6ZUNs
YXNzSW5kZXggPSBtX291dC5sU2hyKAogICAgICAgICAgICAgbV9vdXQuYWRkKHNpemUsIG1fb3V0
LmNvbnN0SW50UHRyKE1hcmtlZFNwYWNlOjpzaXplU3RlcCAtIDEpKSwKICAgICAgICAgICAgIG1f
b3V0LmNvbnN0SW50MzIoc3RlcFNoaWZ0KSk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmJy
YW5jaCgKICAgICAgICAgICAgIG1fb3V0LmFib3ZlKHNpemVDbGFzc0luZGV4LCBtX291dC5jb25z
dEludFB0cihNYXJrZWRTcGFjZTo6bGFyZ2VDdXRvZmYgPj4gc3RlcFNoaWZ0KSksCiAgICAgICAg
ICAgICByYXJlbHkoc2xvd1BhdGgpLCB1c3VhbGx5KGNvbnRpbnVhdGlvbikpOwotCisgICAgICAg
IAogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKLQorICAg
ICAgICAKICAgICAgICAgcmV0dXJuIG1fb3V0LmxvYWRQdHIoCiAgICAgICAgICAgICBtX291dC5i
YXNlSW5kZXgoCiAgICAgICAgICAgICAgICAgbV9oZWFwcy5Db21wbGV0ZVN1YnNwYWNlX2FsbG9j
YXRvckZvclNpemVTdGVwLAogICAgICAgICAgICAgICAgIHN1YnNwYWNlLCBzaXplQ2xhc3NJbmRl
eCkpOwogICAgIH0KLQorICAgIAogICAgIExWYWx1ZSBhbGxvY2F0b3JGb3JTaXplKENvbXBsZXRl
U3Vic3BhY2UmIHN1YnNwYWNlLCBMVmFsdWUgc2l6ZSwgTEJhc2ljQmxvY2sgc2xvd1BhdGgpCiAg
ICAgewogICAgICAgICByZXR1cm4gYWxsb2NhdG9yRm9yU2l6ZShtX291dC5jb25zdEludFB0cigm
c3Vic3BhY2UpLCBzaXplLCBzbG93UGF0aCk7CiAgICAgfQotCisgICAgCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgQ2xhc3NUeXBlPgogICAgIExWYWx1ZSBhbGxvY2F0ZVZhcmlhYmxlU2l6ZWRPYmpl
Y3QoCiAgICAgICAgIExWYWx1ZSBzaXplLCBSZWdpc3RlcmVkU3RydWN0dXJlIHN0cnVjdHVyZSwg
TFZhbHVlIGJ1dHRlcmZseSwgTEJhc2ljQmxvY2sgc2xvd1BhdGgpCkBAIC0xOTE4NywyNiArMTkx
ODQsMjYgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBMVmFsdWUgYWxsb2Nh
dG9yID0gYWxsb2NhdG9yRm9yU2l6ZSgqc3Vic3BhY2UsIHNpemUsIHNsb3dQYXRoKTsKICAgICAg
ICAgcmV0dXJuIGFsbG9jYXRlQ2VsbChhbGxvY2F0b3IsIHN0cnVjdHVyZSwgc2xvd1BhdGgpOwog
ICAgIH0KLQorICAgIAogICAgIExWYWx1ZSBhbGxvY2F0ZU9iamVjdChSZWdpc3RlcmVkU3RydWN0
dXJlIHN0cnVjdHVyZSkKICAgICB7CiAgICAgICAgIHNpemVfdCBhbGxvY2F0aW9uU2l6ZSA9IEpT
RmluYWxPYmplY3Q6OmFsbG9jYXRpb25TaXplKHN0cnVjdHVyZS5nZXQoKS0+aW5saW5lQ2FwYWNp
dHkoKSk7CiAgICAgICAgIEFsbG9jYXRvciBhbGxvY2F0b3IgPSBhbGxvY2F0b3JGb3JDb25jdXJy
ZW50bHk8SlNGaW5hbE9iamVjdD4odm0oKSwgYWxsb2NhdGlvblNpemUsIEFsbG9jYXRvckZvck1v
ZGU6OkFsbG9jYXRvcklmRXhpc3RzKTsKLQorICAgICAgICAKICAgICAgICAgLy8gRklYTUU6IElm
IHRoZSBhbGxvY2F0b3IgaXMgbnVsbCwgd2UgY291bGQgc2ltcGx5IGVtaXQgYSBub3JtYWwgQyBj
YWxsIHRvIHRoZSBhbGxvY2F0b3IKICAgICAgICAgLy8gaW5zdGVhZCBvZiBwdXR0aW5nIGl0IG9u
IHRoZSBzbG93IHBhdGguCiAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjEwNjIKLQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd1Bh
dGggPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24g
PSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayBsYXN0
TmV4dCA9IG1fb3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9yZShzbG93UGF0aCk7Ci0KKyAgICAgICAg
CiAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBtX291dC5hbmNob3IoYWxsb2Nh
dGVPYmplY3QoCiAgICAgICAgICAgICBtX291dC5jb25zdEludFB0cihhbGxvY2F0b3IubG9jYWxB
bGxvY2F0b3IoKSksIHN0cnVjdHVyZSwgbV9vdXQuaW50UHRyWmVybywgc2xvd1BhdGgpKTsKLQor
ICAgICAgICAKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAgIAog
ICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0aW9uKTsKIAogICAgICAg
ICBWTSYgdm0gPSB0aGlzLT52bSgpOwpAQCAtMTkyMTgsMjQgKzE5MjE1LDI0IEBAIElHTk9SRV9D
TEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIH0sIG1fdm1WYWx1ZSk7CiAgICAgICAgIFZh
bHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Ioc2xvd1Jlc3VsdFZhbHVlKTsK
ICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAgIAogICAgICAgICBt
X291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKICAgICAgICAgcmV0dXJuIG1f
b3V0LnBoaShwb2ludGVyVHlwZSgpLCBmYXN0UmVzdWx0LCBzbG93UmVzdWx0KTsKICAgICB9Ci0K
KyAgICAKICAgICBzdHJ1Y3QgQXJyYXlWYWx1ZXMgewogICAgICAgICBBcnJheVZhbHVlcygpCiAg
ICAgICAgICAgICA6IGFycmF5KG51bGxwdHIpCiAgICAgICAgICAgICAsIGJ1dHRlcmZseShudWxs
cHRyKQogICAgICAgICB7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgQXJyYXlWYWx1
ZXMoTFZhbHVlIGFycmF5LCBMVmFsdWUgYnV0dGVyZmx5KQogICAgICAgICAgICAgOiBhcnJheShh
cnJheSkKICAgICAgICAgICAgICwgYnV0dGVyZmx5KGJ1dHRlcmZseSkKICAgICAgICAgewogICAg
ICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIExWYWx1ZSBhcnJheTsKICAgICAgICAgTFZhbHVl
IGJ1dHRlcmZseTsKICAgICB9OwpAQCAtMTkyNDgsNyArMTkyNDUsNyBAQCBJR05PUkVfQ0xBTkdf
V0FSTklOR1NfRU5ECiAgICAgICAgIExCYXNpY0Jsb2NrIGZhaWxDYXNlID0gbV9vdXQubmV3Qmxv
Y2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2so
KTsKICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOwotCisg
ICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0Lmluc2VydE5ld0Js
b2Nrc0JlZm9yZShmYXN0Q2FzZSk7CiAKICAgICAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4g
c3RhdGljVmVjdG9yTGVuZ3RoOwpAQCAtMTkyNzYsNyArMTkyNzMsNyBAQCBJR05PUkVfQ0xBTkdf
V0FSTklOR1NfRU5ECiAgICAgICAgICAgICAvLyBXZSBkb24ndCBjb21wdXRlIHRoZSBvcHRpbWFs
IHZlY3RvciBsZW5ndGggZm9yIG5ldyBBcnJheShibGFoKSB3aGVyZSBibGFoIGlzIG5vdAogICAg
ICAgICAgICAgLy8gc3RhdGljYWxseSBrbm93biwgc2luY2UgdGhlIGNvbXB1dGUgZWZmb3J0IG9m
IGRvaW5nIGl0IGhlcmUgaXMgcHJvYmFibHkgbm90IHdvcnRoIGl0LgogICAgICAgICB9Ci0KKyAg
ICAgICAgCiAgICAgICAgIFZhbHVlRnJvbUJsb2NrIG5vQnV0dGVyZmx5ID0gbV9vdXQuYW5jaG9y
KG1fb3V0LmludFB0clplcm8pOwogCiAgICAgICAgIExWYWx1ZSBwcmVkaWNhdGU7CkBAIC0xOTI4
NCw5ICsxOTI4MSw5IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIHBy
ZWRpY2F0ZSA9IG1fb3V0LmFib3ZlT3JFcXVhbChwdWJsaWNMZW5ndGgsIG1fb3V0LmNvbnN0SW50
MzIoTUlOX0FSUkFZX1NUT1JBR0VfQ09OU1RSVUNUSU9OX0xFTkdUSCkpOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBwcmVkaWNhdGUgPSBtX291dC5ib29sZWFuRmFsc2U7Ci0KKyAgICAgICAg
CiAgICAgICAgIG1fb3V0LmJyYW5jaChwcmVkaWNhdGUsIHJhcmVseShsYXJnZUNhc2UpLCB1c3Vh
bGx5KGZhc3RDYXNlKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGZhc3RD
YXNlLCBsYXJnZUNhc2UpOwogCiAgICAgICAgIExWYWx1ZSBwYXlsb2FkU2l6ZSA9CkBAIC0xOTI5
OSwxNSArMTkyOTYsMTUgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBMVmFs
dWUgc3RhcnRPZlN0b3JhZ2UgPSBhbGxvY2F0ZUhlYXBDZWxsKGFsbG9jYXRvciwgZmFpbENhc2Up
OwogCiAgICAgICAgIExWYWx1ZSBidXR0ZXJmbHkgPSBtX291dC5hZGQoc3RhcnRPZlN0b3JhZ2Us
IG1fb3V0LmNvbnN0SW50UHRyKHNpemVvZihJbmRleGluZ0hlYWRlcikpKTsKLQorICAgICAgICAK
ICAgICAgICAgbV9vdXQuc3RvcmUzMihwdWJsaWNMZW5ndGgsIGJ1dHRlcmZseSwgbV9oZWFwcy5C
dXR0ZXJmbHlfcHVibGljTGVuZ3RoKTsKICAgICAgICAgbV9vdXQuc3RvcmUzMih2ZWN0b3JMZW5n
dGgsIGJ1dHRlcmZseSwgbV9oZWFwcy5CdXR0ZXJmbHlfdmVjdG9yTGVuZ3RoKTsKLQorICAgIAog
ICAgICAgICBpbml0aWFsaXplQXJyYXlFbGVtZW50cygKICAgICAgICAgICAgIGluZGV4aW5nVHlw
ZSwKICAgICAgICAgICAgIHNob3VsZEluaXRpYWxpemVFbGVtZW50cyA/IG1fb3V0LmludDMyWmVy
byA6IHB1YmxpY0xlbmd0aCwgdmVjdG9yTGVuZ3RoLAogICAgICAgICAgICAgYnV0dGVyZmx5KTsK
LQorICAgICAgICAKICAgICAgICAgVmFsdWVGcm9tQmxvY2sgaGF2ZUJ1dHRlcmZseSA9IG1fb3V0
LmFuY2hvcihidXR0ZXJmbHkpOwogCiAgICAgICAgIExWYWx1ZSBvYmplY3QgPSBhbGxvY2F0ZU9i
amVjdDxKU0FycmF5PihzdHJ1Y3R1cmUsIGJ1dHRlcmZseSwgZmFpbENhc2UpOwpAQCAtMTkzMTUs
MTYgKzE5MzEyLDE2IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgVmFsdWVG
cm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihvYmplY3QpOwogICAgICAgICBWYWx1
ZUZyb21CbG9jayBmYXN0QnV0dGVyZmx5ID0gbV9vdXQuYW5jaG9yKGJ1dHRlcmZseSk7CiAgICAg
ICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQu
YXBwZW5kVG8obGFyZ2VDYXNlLCBmYWlsQ2FzZSk7CiAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGxh
cmdlU3RydWN0dXJlID0gbV9vdXQuYW5jaG9yKAogICAgICAgICAgICAgd2Vha1N0cnVjdHVyZSht
X2dyYXBoLnJlZ2lzdGVyU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJ
bmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aEFycmF5U3RvcmFnZSkpKSk7CiAg
ICAgICAgIG1fb3V0Lmp1bXAoc2xvd0Nhc2UpOwotCisgICAgICAgIAogICAgICAgICBtX291dC5h
cHBlbmRUbyhmYWlsQ2FzZSwgc2xvd0Nhc2UpOwogICAgICAgICBWYWx1ZUZyb21CbG9jayBmYWls
U3RydWN0dXJlID0gbV9vdXQuYW5jaG9yKHN0cnVjdHVyZSk7CiAgICAgICAgIG1fb3V0Lmp1bXAo
c2xvd0Nhc2UpOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93Q2FzZSwg
Y29udGludWF0aW9uKTsKICAgICAgICAgTFZhbHVlIHN0cnVjdHVyZVZhbHVlID0gbV9vdXQucGhp
KHBvaW50ZXJUeXBlKCksIGxhcmdlU3RydWN0dXJlLCBmYWlsU3RydWN0dXJlKTsKICAgICAgICAg
TFZhbHVlIGJ1dHRlcmZseVZhbHVlID0gbV9vdXQucGhpKHBvaW50ZXJUeXBlKCksIG5vQnV0dGVy
Zmx5LCBoYXZlQnV0dGVyZmx5KTsKQEAgLTE5MzU0LDEzICsxOTM1MSwxMyBAQCBJR05PUkVfQ0xB
TkdfV0FSTklOR1NfRU5ECiAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dCdXR0ZXJmbHkgPSBt
X291dC5hbmNob3IoCiAgICAgICAgICAgICBtX291dC5sb2FkUHRyKHNsb3dSZXN1bHRWYWx1ZSwg
bV9oZWFwcy5KU09iamVjdF9idXR0ZXJmbHkpKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51
YXRpb24pOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24s
IGxhc3ROZXh0KTsKICAgICAgICAgcmV0dXJuIEFycmF5VmFsdWVzKAogICAgICAgICAgICAgbV9v
dXQucGhpKHBvaW50ZXJUeXBlKCksIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpLAogICAgICAgICAg
ICAgbV9vdXQucGhpKHBvaW50ZXJUeXBlKCksIGZhc3RCdXR0ZXJmbHksIHNsb3dCdXR0ZXJmbHkp
KTsKICAgICB9Ci0KKyAgICAKICAgICBBcnJheVZhbHVlcyBhbGxvY2F0ZVVuaW5pdGlhbGl6ZWRD
b250aWd1b3VzSlNBcnJheUludGVybmFsKExWYWx1ZSBwdWJsaWNMZW5ndGgsIExWYWx1ZSB2ZWN0
b3JMZW5ndGgsIFJlZ2lzdGVyZWRTdHJ1Y3R1cmUgc3RydWN0dXJlKQogICAgIHsKICAgICAgICAg
Ym9vbCBzaG91bGRJbml0aWFsaXplRWxlbWVudHMgPSBmYWxzZTsKQEAgLTE5MzgwLDQwICsxOTM3
Nyw0MCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIEFTU0VSVCh2ZWN0b3JM
ZW5ndGggPj0gcHVibGljTGVuZ3RoKTsKICAgICAgICAgcmV0dXJuIGFsbG9jYXRlVW5pbml0aWFs
aXplZENvbnRpZ3VvdXNKU0FycmF5SW50ZXJuYWwobV9vdXQuY29uc3RJbnQzMihwdWJsaWNMZW5n
dGgpLCBtX291dC5jb25zdEludDMyKHZlY3Rvckxlbmd0aCksIHN0cnVjdHVyZSk7CiAgICAgfQot
CisgICAgCiAgICAgTFZhbHVlIGVuc3VyZVNoYWRvd0NoaWNrZW5QYWNrZXQoKQogICAgIHsKICAg
ICAgICAgU2hhZG93Q2hpY2tlbiogc2hhZG93Q2hpY2tlbiA9IHZtKCkuc2hhZG93Q2hpY2tlbigp
OwogICAgICAgICBSRUxFQVNFX0FTU0VSVChzaGFkb3dDaGlja2VuKTsKICAgICAgICAgTEJhc2lj
QmxvY2sgc2xvd0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBj
b250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgIAogICAgICAgICBUeXBl
ZFBvaW50ZXIgYWRkcmVzc09mTG9nQ3Vyc29yID0gbV9vdXQuYWJzb2x1dGUoc2hhZG93Q2hpY2tl
bi0+YWRkcmVzc09mTG9nQ3Vyc29yKCkpOwogICAgICAgICBMVmFsdWUgbG9nQ3Vyc29yID0gbV9v
dXQubG9hZFB0cihhZGRyZXNzT2ZMb2dDdXJzb3IpOwotCisgICAgICAgIAogICAgICAgICBWYWx1
ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0gbV9vdXQuYW5jaG9yKGxvZ0N1cnNvcik7Ci0KKyAgICAg
ICAgCiAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0LmJlbG93KGxvZ0N1
cnNvciwgbV9vdXQuY29uc3RJbnRQdHIoc2hhZG93Q2hpY2tlbi0+bG9nRW5kKCkpKSwKICAgICAg
ICAgICAgIHVzdWFsbHkoY29udGludWF0aW9uKSwgcmFyZWx5KHNsb3dDYXNlKSk7Ci0KKyAgICAg
ICAgCiAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oc2xvd0Nh
c2UsIGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgCiAgICAgICAgIHZtQ2FsbChWb2lkLCBvcGVy
YXRpb25Qcm9jZXNzU2hhZG93Q2hpY2tlbkxvZywgbV92bVZhbHVlKTsKLQorICAgICAgICAKICAg
ICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC5sb2Fk
UHRyKGFkZHJlc3NPZkxvZ0N1cnNvcikpOwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlv
bik7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFz
dE5leHQpOwogICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQucGhpKHBvaW50ZXJUeXBlKCks
IGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpOwotCisgICAgICAgIAogICAgICAgICBtX291dC5zdG9y
ZVB0cigKICAgICAgICAgICAgIG1fb3V0LmFkZChyZXN1bHQsIG1fb3V0LmNvbnN0SW50UHRyKHNp
emVvZihTaGFkb3dDaGlja2VuOjpQYWNrZXQpKSksCiAgICAgICAgICAgICBhZGRyZXNzT2ZMb2dD
dXJzb3IpOwotCisgICAgICAgIAogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KLQorICAg
IAogICAgIExWYWx1ZSBib29saWZ5KEVkZ2UgZWRnZSkKICAgICB7CiAgICAgICAgIHN3aXRjaCAo
ZWRnZS51c2VLaW5kKCkpIHsKQEAgLTE5NDM5LDcgKzE5NDM2LDcgQEAgSUdOT1JFX0NMQU5HX1dB
Uk5JTkdTX0VORAogICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQu
bmV3QmxvY2soKTsKIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzQ2VsbCh2YWx1ZSwgcHJv
dmVuVHlwZShlZGdlKSksIHVuc3VyZShjZWxsQ2FzZSksIHVuc3VyZShub3RDZWxsQ2FzZSkpOwot
CisgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQu
YXBwZW5kVG8oY2VsbENhc2UsIG5vdENlbGxDYXNlKTsKICAgICAgICAgICAgIEZUTF9UWVBFX0NI
RUNLKGpzVmFsdWVWYWx1ZSh2YWx1ZSksIGVkZ2UsICh+U3BlY0NlbGxDaGVjaykgfCBTcGVjU3Ry
aW5nLCBpc05vdFN0cmluZyh2YWx1ZSkpOwogICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc3Ry
aW5nUmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0Lm5vdEVxdWFsKHZhbHVlLCB3ZWFrUG9pbnRl
cihqc0VtcHR5U3RyaW5nKG1fZ3JhcGgubV92bSkpKSk7CkBAIC0xOTQ1NSw3ICsxOTQ1Miw3IEBA
IElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgfQogICAgICAgICBjYXNlIFVudHlw
ZWRVc2U6IHsKICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUoZWRnZSk7Ci0K
KyAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gSW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIGNv
bnRyb2wgZmxvdyBzdHJ1Y3R1cmU6CiAgICAgICAgICAgICAvLyBpZiAodmFsdWUgaXMgY2VsbCkg
ewogICAgICAgICAgICAgLy8gICAgIGlmICh2YWx1ZSBpcyBzdHJpbmcgb3IgdmFsdWUgaXMgSGVh
cEJpZ0ludCkKQEAgLTE5NDczLDcgKzE5NDcwLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VO
RAogICAgICAgICAgICAgLy8gfSBlbHNlIHsKICAgICAgICAgICAgIC8vICAgICByZXN1bHQgPSB2
YWx1ZSA9PSBqc1RydWUKICAgICAgICAgICAgIC8vIH0KLQorICAgICAgICAgICAgCiAgICAgICAg
ICAgICBMQmFzaWNCbG9jayBjZWxsQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAg
ICBMQmFzaWNCbG9jayBub3RTdHJpbmdDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIHN0cmluZ0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOwpAQCAtMTk0ODks
MTYgKzE5NDg2LDE2IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIExC
YXNpY0Jsb2NrIG5vdEJpZ0ludDMyQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAjZW5kaWYKICAg
ICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0K
KyAgICAgICAgICAgIAogICAgICAgICAgICAgVmVjdG9yPFZhbHVlRnJvbUJsb2NrPiByZXN1bHRz
OwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0NlbGwodmFsdWUs
IHByb3ZlblR5cGUoZWRnZSkpLCB1bnN1cmUoY2VsbENhc2UpLCB1bnN1cmUobm90Q2VsbENhc2Up
KTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1f
b3V0LmFwcGVuZFRvKGNlbGxDYXNlLCBub3RTdHJpbmdDYXNlKTsKICAgICAgICAgICAgIG1fb3V0
LmJyYW5jaCgKICAgICAgICAgICAgICAgICBpc1N0cmluZyh2YWx1ZSwgcHJvdmVuVHlwZShlZGdl
KSAmIFNwZWNDZWxsKSwKICAgICAgICAgICAgICAgICB1bnN1cmUoc3RyaW5nQ2FzZSksIHVuc3Vy
ZShub3RTdHJpbmdDYXNlKSk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8obm90U3RyaW5nQ2FzZSwgc3RyaW5nQ2FzZSk7CiAgICAgICAgICAgICBtX291dC5icmFu
Y2goCiAgICAgICAgICAgICAgICAgaXNIZWFwQmlnSW50KHZhbHVlLCBwcm92ZW5UeXBlKGVkZ2Up
ICYgKFNwZWNDZWxsIC0gU3BlY1N0cmluZykpLApAQCAtMTk1MTMsNDUgKzE5NTEwLDQ1IEBAIElH
Tk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzJOb25O
ZWdhdGl2ZSh2YWx1ZSwgbV9oZWFwcy5KU0JpZ0ludF9sZW5ndGgpKTsKICAgICAgICAgICAgIHJl
c3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihub25aZXJvQmlnSW50KSk7CiAgICAgICAgICAgICBt
X291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9v
dXQuYXBwZW5kVG8obm90U3RyaW5nTm9ySGVhcEJpZ0ludENhc2UsIG5vdENlbGxDYXNlKTsKICAg
ICAgICAgICAgIExWYWx1ZSBpc1RydXRoeU9iamVjdDsKICAgICAgICAgICAgIGlmIChtX2dyYXBo
LmlzV2F0Y2hpbmdNYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludFNldChtX25vZGUpKQog
ICAgICAgICAgICAgICAgIGlzVHJ1dGh5T2JqZWN0ID0gbV9vdXQuYm9vbGVhblRydWU7CiAgICAg
ICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBtYXNxdWVyYWRlc0Nh
c2UgPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0LmJvb2xlYW5UcnVlKSk7Ci0KKyAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAg
ICAgICAgICAgIG1fb3V0LnRlc3RJc1plcm8zMigKICAgICAgICAgICAgICAgICAgICAgICAgIG1f
b3V0LmxvYWQ4WmVyb0V4dDMyKHZhbHVlLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdzKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZCkpLAogICAgICAgICAgICAgICAgICAgICB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJh
cmVseShtYXNxdWVyYWRlc0Nhc2UpKTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKG1hc3F1ZXJhZGVzQ2FzZSk7Ci0KKyAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICBpc1RydXRoeU9iamVjdCA9IG1fb3V0Lm5vdEVxdWFsKAogICAgICAg
ICAgICAgICAgICAgICB3ZWFrUG9pbnRlcihtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX29yaWdp
bi5zZW1hbnRpYykpLAogICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkUHRyKGxvYWRTdHJ1
Y3R1cmUodmFsdWUpLCBtX2hlYXBzLlN0cnVjdHVyZV9nbG9iYWxPYmplY3QpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihpc1RydXRoeU9i
amVjdCkpOwogICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAg
ICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdENlbGxDYXNlLCBpbnQzMkNhc2Up
OwogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIGlzSW50MzIodmFs
dWUsIHByb3ZlblR5cGUoZWRnZSkgJiB+U3BlY0NlbGwpLAogICAgICAgICAgICAgICAgIHVuc3Vy
ZShpbnQzMkNhc2UpLCB1bnN1cmUobm90SW50MzJDYXNlKSk7Ci0KKyAgICAgICAgICAgIAogICAg
ICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaW50MzJDYXNlLCBub3RJbnQzMkNhc2UpOwogICAgICAg
ICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0Lm5vdFplcm8zMih1bmJveElu
dDMyKHZhbHVlKSkpKTsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQor
ICAgICAgICAgICAgCiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhub3RJbnQzMkNhc2UsIGRv
dWJsZUNhc2UpOwogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIGlz
TnVtYmVyKHZhbHVlLCBwcm92ZW5UeXBlKGVkZ2UpICYgflNwZWNDZWxsKSwKICAgICAgICAgICAg
ICAgICB1bnN1cmUoZG91YmxlQ2FzZSksIHVuc3VyZShub3REb3VibGVDYXNlKSk7Ci0KKyAgICAg
ICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZG91YmxlQ2FzZSwgbm90RG91Ymxl
Q2FzZSk7CiAgICAgICAgICAgICBMVmFsdWUgZG91YmxlSXNUcnV0aHkgPSBtX291dC5kb3VibGVO
b3RFcXVhbEFuZE9yZGVyZWQoCiAgICAgICAgICAgICAgICAgdW5ib3hEb3VibGUodmFsdWUpLCBt
X291dC5jb25zdERvdWJsZSgwKSk7CkBAIC0xOTU2OCw3ICsxOTU2NSw3IEBAIElHTk9SRV9DTEFO
R19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIExWYWx1ZSBiaWdJbnQzMk5vdFplcm8gPSBtX291
dC5ub3RFcXVhbCh2YWx1ZSwgbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpCaWdJbnQzMlRhZykp
OwogICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKGJpZ0ludDMyTm90WmVy
bykpOwogICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAgICAg
ICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdEJpZ0ludDMyQ2FzZSwgY29udGludWF0
aW9uKTsKICNlbHNlCiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhub3REb3VibGVDYXNlLCBj
b250aW51YXRpb24pOwpAQCAtMTk1NzcsNyArMTk1NzQsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklO
R1NfRU5ECiAgICAgICAgICAgICAgICAgdmFsdWUsIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6
ZW5jb2RlKGpzQm9vbGVhbih0cnVlKSkpKTsKICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1f
b3V0LmFuY2hvcihtaXNjSXNUcnV0aHkpKTsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGlu
dWF0aW9uKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250
aW51YXRpb24sIGxhc3ROZXh0KTsKICAgICAgICAgICAgIHJldHVybiBtX291dC5waGkoSW50MzIs
IHJlc3VsdHMpOwogICAgICAgICB9CkBAIC0xOTU4Niw3ICsxOTU4Myw3IEBAIElHTk9SRV9DTEFO
R19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAg
ICAgfQotCisgICAgCiAgICAgZW51bSBTdHJpbmdPck9iamVjdE1vZGUgewogICAgICAgICBBbGxD
ZWxsc0FyZUZhbHNlLAogICAgICAgICBDZWxsQ2FzZVNwZWN1bGF0ZXNPYmplY3QKQEAgLTE5NjAy
LDE3ICsxOTU5OSwxNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIE9wZXJh
bmRTcGVjdWxhdGlvbk1vZGUgb3BlcmFuZE1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRp
b24pCiAgICAgewogICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKGVkZ2UsIG9wZXJh
bmRNb2RlKTsKLQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgY2VsbENhc2UgPSBtX291
dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBwcmltaXRpdmVDYXNlID0gbV9vdXQu
bmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3
QmxvY2soKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYnJhbmNoKGlzTm90Q2VsbCh2YWx1
ZSwgcHJvdmVuVHlwZShlZGdlKSksIHVuc3VyZShwcmltaXRpdmVDYXNlKSwgdW5zdXJlKGNlbGxD
YXNlKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQu
YXBwZW5kVG8oY2VsbENhc2UsIHByaW1pdGl2ZUNhc2UpOwotCisgICAgICAgIAogICAgICAgICBW
ZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDM+IHJlc3VsdHM7Ci0KKyAgICAgICAgCiAgICAgICAgIHN3
aXRjaCAoY2VsbE1vZGUpIHsKICAgICAgICAgY2FzZSBBbGxDZWxsc0FyZUZhbHNlOgogICAgICAg
ICAgICAgYnJlYWs7CkBAIC0xOTYyMSwzNSArMTk2MTgsMzUgQEAgSUdOT1JFX0NMQU5HX1dBUk5J
TkdTX0VORAogICAgICAgICAgICAgICAgIGpzVmFsdWVWYWx1ZSh2YWx1ZSksIGVkZ2UsICh+U3Bl
Y0NlbGxDaGVjaykgfCBTcGVjT2JqZWN0LCBpc05vdE9iamVjdCh2YWx1ZSkpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgaWYgKG1fZ3JhcGguaXNX
YXRjaGluZ01hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50U2V0KG1fbm9kZSkpIHsKICAg
ICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihtX291dC5ib29sZWFuRmFsc2Up
KTsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG1hc3F1ZXJhZGVzQ2FzZSA9CiAgICAgICAgICAg
ICAgICAgbV9vdXQubmV3QmxvY2soKTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
cmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0LmJvb2xlYW5GYWxzZSkpOwotCisgICAg
ICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBtX291
dC50ZXN0Tm9uWmVybzMyKAogICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkOFplcm9FeHQz
Mih2YWx1ZSwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9GbGFncyksCiAgICAgICAgICAgICAgICAg
ICAgIG1fb3V0LmNvbnN0SW50MzIoTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCkpLAogICAgICAgICAg
ICAgICAgIHJhcmVseShtYXNxdWVyYWRlc0Nhc2UpLCB1c3VhbGx5KGNvbnRpbnVhdGlvbikpOwot
CisgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG1hc3F1ZXJhZGVzQ2Fz
ZSwgcHJpbWl0aXZlQ2FzZSk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIHN0
cnVjdHVyZSA9IGxvYWRTdHJ1Y3R1cmUodmFsdWUpOwotCisgICAgICAgICAgICAKICAgICAgICAg
ICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcigKICAgICAgICAgICAgICAgICBtX291dC5l
cXVhbCgKICAgICAgICAgICAgICAgICAgICAgd2Vha1BvaW50ZXIobV9ncmFwaC5nbG9iYWxPYmpl
Y3RGb3IobV9vcmlnaW4uc2VtYW50aWMpKSwKICAgICAgICAgICAgICAgICAgICAgbV9vdXQubG9h
ZFB0cihzdHJ1Y3R1cmUsIG1faGVhcHMuU3RydWN0dXJlX2dsb2JhbE9iamVjdCkpKSk7CiAgICAg
ICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAgICAgICAgIH0KLQorICAgICAgICAK
ICAgICAgICAgbV9vdXQuYXBwZW5kVG8ocHJpbWl0aXZlQ2FzZSwgY29udGludWF0aW9uKTsKLQor
ICAgICAgICAKICAgICAgICAgTFZhbHVlIHByaW1pdGl2ZVJlc3VsdDsKICAgICAgICAgc3dpdGNo
IChwcmltaXRpdmVNb2RlKSB7CiAgICAgICAgIGNhc2UgRXF1YWxOdWxsOgpAQCAtMTk2NjksMTIg
KzE5NjY2LDEyIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgfQogICAgICAg
ICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IocHJpbWl0aXZlUmVzdWx0KSk7CiAgICAgICAg
IG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7Ci0KKyAgICAgICAgCiAgICAgICAgIHJldHVy
biBtX291dC5waGkoSW50MzIsIHJlc3VsdHMpOwogICAgIH0KLQorICAgIAogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEZ1bmN0aW9uVHlwZT4KICAgICB2b2lkIGNvbnRpZ3VvdXNQdXRCeVZhbE91dE9m
Qm91bmRzKAogICAgICAgICBGdW5jdGlvblR5cGUgc2xvd1BhdGhGdW5jdGlvbiwgTFZhbHVlIGJh
c2UsIExWYWx1ZSBzdG9yYWdlLCBMVmFsdWUgaW5kZXgsIExWYWx1ZSB2YWx1ZSwKQEAgLTE5Njg2
LDE2ICsxOTY4MywxNiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAg
ICAgbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHBlcmZvcm1TdG9y
ZSA9CiAgICAgICAgICAgICAgICAgbV9vdXQubmV3QmxvY2soKTsKLQorICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgTFZhbHVlIGlzTm90SW5Cb3VuZHMgPSBtX291dC5hYm92ZU9yRXF1YWwo
CiAgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2Us
IG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpOwogICAgICAgICAgICAgbV9vdXQuYnJh
bmNoKGlzTm90SW5Cb3VuZHMsIHVuc3VyZShub3RJbkJvdW5kc0Nhc2UpLCB1bnN1cmUocGVyZm9y
bVN0b3JlKSk7Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxh
c3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obm90SW5Cb3VuZHNDYXNlLCBwZXJmb3JtU3RvcmUpOwot
CisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBMVmFsdWUgaXNPdXRPZkJvdW5kcyA9IG1f
b3V0LmFib3ZlT3JFcXVhbCgKICAgICAgICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyTm9u
TmVnYXRpdmUoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfdmVjdG9yTGVuZ3RoKSk7Ci0KKyAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICghbV9ub2RlLT5hcnJheU1vZGUoKS5pc091
dE9mQm91bmRzKCkpCiAgICAgICAgICAgICAgICAgc3BlY3VsYXRlKE91dE9mQm91bmRzLCBub1Zh
bHVlKCksIG51bGxwdHIsIGlzT3V0T2ZCb3VuZHMpOwogICAgICAgICAgICAgZWxzZSB7CkBAIC0x
OTcwMywyNCArMTk3MDAsMjQgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAg
ICAgICAgICAgICBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IGhvbGVDYXNlID0KICAgICAgICAgICAgICAgICAgICAgbV9vdXQubmV3QmxvY2soKTsKLQorICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBtX291dC5icmFuY2goaXNPdXRPZkJv
dW5kcywgcmFyZWx5KG91dE9mQm91bmRzQ2FzZSksIHVzdWFsbHkoaG9sZUNhc2UpKTsKLQorICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBpbm5lckxhc3RO
ZXh0ID0gbV9vdXQuYXBwZW5kVG8ob3V0T2ZCb3VuZHNDYXNlLCBob2xlQ2FzZSk7Ci0KKyAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgdm1DYWxsKAogICAgICAgICAgICAgICAg
ICAgICBWb2lkLCBzbG93UGF0aEZ1bmN0aW9uLAogICAgICAgICAgICAgICAgICAgICB3ZWFrUG9p
bnRlcihnbG9iYWxPYmplY3QpLCBiYXNlLCBpbmRleCwgdmFsdWUpOwotCisgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhob2xlQ2Fz
ZSwgaW5uZXJMYXN0TmV4dCk7CiAgICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAg
ICAgICAgbV9vdXQuc3RvcmUzMigKICAgICAgICAgICAgICAgICBtX291dC5hZGQoaW5kZXgsIG1f
b3V0LmludDMyT25lKSwKICAgICAgICAgICAgICAgICBzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZs
eV9wdWJsaWNMZW5ndGgpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBtX291dC5q
dW1wKHBlcmZvcm1TdG9yZSk7CiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhwZXJmb3JtU3Rv
cmUsIGxhc3ROZXh0KTsKICAgICAgICAgfQpAQCAtMTk3MzEsMTcgKzE5NzI4LDE3IEBAIElHTk9S
RV9DTEFOR19XQVJOSU5HU19FTkQKICNpZiBHSUdBQ0FHRV9FTkFCTEVECiAgICAgICAgIGlmICgh
R2lnYWNhZ2U6OmlzRW5hYmxlZChraW5kKSkKICAgICAgICAgICAgIHJldHVybiBwdHI7Ci0KKyAg
ICAgICAgCiAgICAgICAgIGlmIChraW5kID09IEdpZ2FjYWdlOjpQcmltaXRpdmUgJiYgIUdpZ2Fj
YWdlOjpkaXNhYmxpbmdQcmltaXRpdmVHaWdhY2FnZUlzRm9yYmlkZGVuKCkpIHsKICAgICAgICAg
ICAgIGlmICh2bSgpLnByaW1pdGl2ZUdpZ2FjYWdlRW5hYmxlZCgpLmlzU3RpbGxWYWxpZCgpKQog
ICAgICAgICAgICAgICAgIG1fZ3JhcGgud2F0Y2hwb2ludHMoKS5hZGRMYXppbHkodm0oKS5wcmlt
aXRpdmVHaWdhY2FnZUVuYWJsZWQoKSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHB0cjsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBMVmFsdWUgYmFz
ZVB0ciA9IG1fb3V0LmNvbnN0SW50UHRyKEdpZ2FjYWdlOjpiYXNlUHRyKGtpbmQpKTsKICAgICAg
ICAgTFZhbHVlIG1hc2sgPSBtX291dC5jb25zdEludFB0cihHaWdhY2FnZTo6bWFzayhraW5kKSk7
Ci0KKyAgICAgICAgCiAgICAgICAgIExWYWx1ZSBtYXNrZWQgPSBtX291dC5iaXRBbmQocHRyLCBt
YXNrKTsKICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmFkZChtYXNrZWQsIGJhc2VQdHIp
OwogCkBAIC0xOTc2Myw3ICsxOTc2MCw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAg
ICAgICAgVU5VU0VEX1BBUkFNKGJhc2UpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KLQor
ICAgIAogICAgIHZvaWQgYnVpbGRTd2l0Y2goU3dpdGNoRGF0YSogZGF0YSwgTFR5cGUgdHlwZSwg
TFZhbHVlIHN3aXRjaFZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJUKHR5cGUgPT0gcG9pbnRl
clR5cGUoKSB8fCB0eXBlID09IEludDMyKTsKQEAgLTE5NzgzLDE3ICsxOTc4MCwxNyBAQCBJR05P
UkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAgICAgIGNhc2VzLmFwcGVuZChuZXdDYXNl
KTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBtX291dC5zd2l0Y2hJbnN0cnVjdGlv
bigKICAgICAgICAgICAgIHN3aXRjaFZhbHVlLCBjYXNlcywKICAgICAgICAgICAgIGxvd0Jsb2Nr
KGRhdGEtPmZhbGxUaHJvdWdoLmJsb2NrKSwgV2VpZ2h0KGRhdGEtPmZhbGxUaHJvdWdoLmNvdW50
KSk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBzd2l0Y2hTdHJpbmcoU3dpdGNoRGF0YSogZGF0
YSwgTFZhbHVlIHN0cmluZywgRWRnZSYgZWRnZSkKICAgICB7CiAgICAgICAgIGJvb2wgY2FuRG9C
aW5hcnlTd2l0Y2ggPSB0cnVlOwogICAgICAgICB1bnNpZ25lZCB0b3RhbExlbmd0aCA9IDA7Ci0K
KyAgICAgICAgCiAgICAgICAgIGZvciAoREZHOjpTd2l0Y2hDYXNlIG15Q2FzZSA6IGRhdGEtPmNh
c2VzKSB7CiAgICAgICAgICAgICBTdHJpbmdJbXBsKiBzdHJpbmcgPSBteUNhc2UudmFsdWUuc3Ry
aW5nSW1wbCgpOwogICAgICAgICAgICAgaWYgKCFzdHJpbmctPmlzOEJpdCgpKSB7CkBAIC0xOTgw
NiwzNiArMTk4MDMsMzYgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAg
fQogICAgICAgICAgICAgdG90YWxMZW5ndGggKz0gc3RyaW5nLT5sZW5ndGgoKTsKICAgICAgICAg
fQotCisgICAgICAgIAogICAgICAgICBpZiAoIWNhbkRvQmluYXJ5U3dpdGNoIHx8IHRvdGFsTGVu
Z3RoID4gT3B0aW9uczo6bWF4aW11bUJpbmFyeVN0cmluZ1N3aXRjaFRvdGFsTGVuZ3RoKCkpIHsK
ICAgICAgICAgICAgIHN3aXRjaFN0cmluZ1Nsb3coZGF0YSwgc3RyaW5nKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayBoYXNJ
bXBsQmxvY2sgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBpczhCaXRC
bG9jayA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dCbG9jayA9
IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmJyYW5jaChpc1Jv
cGVTdHJpbmcoc3RyaW5nLCBlZGdlKSwgdW5zdXJlKHNsb3dCbG9jayksIHVuc3VyZShoYXNJbXBs
QmxvY2spKTsKLQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291
dC5hcHBlbmRUbyhoYXNJbXBsQmxvY2ssIGlzOEJpdEJsb2NrKTsKIAogICAgICAgICBMVmFsdWUg
c3RyaW5nSW1wbCA9IG1fb3V0LmxvYWRQdHIoc3RyaW5nLCBtX2hlYXBzLkpTU3RyaW5nX3ZhbHVl
KTsKICAgICAgICAgTFZhbHVlIGxlbmd0aCA9IG1fb3V0LmxvYWQzMihzdHJpbmdJbXBsLCBtX2hl
YXBzLlN0cmluZ0ltcGxfbGVuZ3RoKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYnJhbmNo
KAogICAgICAgICAgICAgbV9vdXQudGVzdElzWmVybzMyKAogICAgICAgICAgICAgICAgIG1fb3V0
LmxvYWQzMihzdHJpbmdJbXBsLCBtX2hlYXBzLlN0cmluZ0ltcGxfaGFzaEFuZEZsYWdzKSwKICAg
ICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKFN0cmluZ0ltcGw6OmZsYWdJczhCaXQoKSkp
LAogICAgICAgICAgICAgdW5zdXJlKHNsb3dCbG9jayksIHVuc3VyZShpczhCaXRCbG9jaykpOwot
CisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhpczhCaXRCbG9jaywgc2xvd0Jsb2Nr
KTsKLQorICAgICAgICAKICAgICAgICAgTFZhbHVlIGJ1ZmZlciA9IG1fb3V0LmxvYWRQdHIoc3Ry
aW5nSW1wbCwgbV9oZWFwcy5TdHJpbmdJbXBsX2RhdGEpOwotCisgICAgICAgIAogICAgICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIHByb3BhZ2F0ZSBicmFuY2ggd2VpZ2h0IGRhdGEgdG8gdGhlIGNh
c2VzIG9mIHRoaXMgc3dpdGNoLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ0MzY4Ci0KKyAgICAgICAgCiAgICAgICAgIFZlY3RvcjxTdHJpbmdT
d2l0Y2hDYXNlPiBjYXNlczsKICAgICAgICAgZm9yIChERkc6OlN3aXRjaENhc2UgbXlDYXNlIDog
ZGF0YS0+Y2FzZXMpCiAgICAgICAgICAgICBjYXNlcy5hcHBlbmQoU3RyaW5nU3dpdGNoQ2FzZSht
eUNhc2UudmFsdWUuc3RyaW5nSW1wbCgpLCBsb3dCbG9jayhteUNhc2UudGFyZ2V0LmJsb2NrKSkp
OwpAQCAtMTk4NDUsMTUgKzE5ODQyLDE1IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd0Jsb2NrLCBsYXN0TmV4dCk7CiAgICAgICAgIHN3aXRj
aFN0cmluZ1Nsb3coZGF0YSwgc3RyaW5nKTsKICAgICB9Ci0KKyAgICAKICAgICAvLyBUaGUgY29k
ZSBmb3Igc3RyaW5nIHN3aXRjaGluZyBpcyBiYXNlZCBjbG9zZWx5IG9uIHRoZSBzYW1lIGNvZGUg
aW4gdGhlIERGRyBiYWNrZW5kLiBXaGlsZSBpdAogICAgIC8vIHdvdWxkIGJlIG5pY2UgdG8gcmVk
dWNlIHRoZSBhbW91bnQgb2Ygc2ltaWxhci1sb29raW5nIGNvZGUsIGl0IHNlZW1zIGxpa2UgdGhp
cyBpcyBvbmUgb2YKICAgICAvLyB0aG9zZSBhbGdvcml0aG1zIHdoZXJlIGZhY3RvcmluZyBvdXQg
dGhlIGNvbW1vbiBiaXRzIHdvdWxkIHJlc3VsdCBpbiBtb3JlIGNvZGUgdGhhbiBqdXN0CiAgICAg
Ly8gZHVwbGljYXRpbmcuCi0KKyAgICAKICAgICBzdHJ1Y3QgU3RyaW5nU3dpdGNoQ2FzZSB7CiAg
ICAgICAgIFN0cmluZ1N3aXRjaENhc2UoKSB7IH0KLQorICAgICAgICAKICAgICAgICAgU3RyaW5n
U3dpdGNoQ2FzZShTdHJpbmdJbXBsKiBzdHJpbmcsIExCYXNpY0Jsb2NrIHRhcmdldCkKICAgICAg
ICAgICAgIDogc3RyaW5nKHN0cmluZykKICAgICAgICAgICAgICwgdGFyZ2V0KHRhcmdldCkKQEAg
LTE5ODY0LDExICsxOTg2MSwxMSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAg
IHsKICAgICAgICAgICAgIHJldHVybiBzdHJpbmdMZXNzVGhhbigqc3RyaW5nLCAqb3RoZXIuc3Ry
aW5nKTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBTdHJpbmdJbXBsKiBzdHJpbmc7
CiAgICAgICAgIExCYXNpY0Jsb2NrIHRhcmdldDsKICAgICB9OwotCisgICAgCiAgICAgc3RydWN0
IENoYXJhY3RlckNhc2UgewogICAgICAgICBDaGFyYWN0ZXJDYXNlKCkKICAgICAgICAgICAgIDog
Y2hhcmFjdGVyKDApCkBAIC0xOTg3NiwzNiArMTk4NzMsMzYgQEAgSUdOT1JFX0NMQU5HX1dBUk5J
TkdTX0VORAogICAgICAgICAgICAgLCBlbmQoMCkKICAgICAgICAgewogICAgICAgICB9Ci0KKyAg
ICAgICAgCiAgICAgICAgIENoYXJhY3RlckNhc2UoTENoYXIgY2hhcmFjdGVyLCB1bnNpZ25lZCBi
ZWdpbiwgdW5zaWduZWQgZW5kKQogICAgICAgICAgICAgOiBjaGFyYWN0ZXIoY2hhcmFjdGVyKQog
ICAgICAgICAgICAgLCBiZWdpbihiZWdpbikKICAgICAgICAgICAgICwgZW5kKGVuZCkKICAgICAg
ICAgewogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0
IENoYXJhY3RlckNhc2UmIG90aGVyKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICByZXR1
cm4gY2hhcmFjdGVyIDwgb3RoZXIuY2hhcmFjdGVyOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAg
ICAgICAgIExDaGFyIGNoYXJhY3RlcjsKICAgICAgICAgdW5zaWduZWQgYmVnaW47CiAgICAgICAg
IHVuc2lnbmVkIGVuZDsKICAgICB9OwotCisgICAgCiAgICAgdm9pZCBzd2l0Y2hTdHJpbmdSZWN1
cnNlKAogICAgICAgICBTd2l0Y2hEYXRhKiBkYXRhLCBMVmFsdWUgYnVmZmVyLCBMVmFsdWUgbGVu
Z3RoLCBjb25zdCBWZWN0b3I8U3RyaW5nU3dpdGNoQ2FzZT4mIGNhc2VzLAogICAgICAgICB1bnNp
Z25lZCBudW1DaGVja2VkLCB1bnNpZ25lZCBiZWdpbiwgdW5zaWduZWQgZW5kLCB1bnNpZ25lZCBh
bHJlYWR5Q2hlY2tlZExlbmd0aCwKICAgICAgICAgdW5zaWduZWQgY2hlY2tlZEV4YWN0TGVuZ3Ro
KQogICAgIHsKICAgICAgICAgTEJhc2ljQmxvY2sgZmFsbFRocm91Z2ggPSBsb3dCbG9jayhkYXRh
LT5mYWxsVGhyb3VnaC5ibG9jayk7Ci0KKyAgICAgICAgCiAgICAgICAgIGlmIChiZWdpbiA9PSBl
bmQpIHsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoZmFsbFRocm91Z2gpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIHVuc2lnbmVkIG1pbkxlbmd0
aCA9IGNhc2VzW2JlZ2luXS5zdHJpbmctPmxlbmd0aCgpOwogICAgICAgICB1bnNpZ25lZCBjb21t
b25DaGFycyA9IG1pbkxlbmd0aDsKICAgICAgICAgYm9vbCBhbGxMZW5ndGhzRXF1YWwgPSB0cnVl
OwpAQCAtMTk5MjIsMTkgKzE5OTE5LDE5IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAg
ICAgICAgICAgICAgICBhbGxMZW5ndGhzRXF1YWwgPSBmYWxzZTsKICAgICAgICAgICAgIG1pbkxl
bmd0aCA9IHN0ZDo6bWluKG1pbkxlbmd0aCwgY2FzZXNbaV0uc3RyaW5nLT5sZW5ndGgoKSk7CiAg
ICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgaWYgKGNoZWNrZWRFeGFjdExlbmd0aCkgewog
ICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBtX25vZGUsIGFscmVhZHlDaGVja2VkTGVu
Z3RoID09IG1pbkxlbmd0aCwgYWxyZWFkeUNoZWNrZWRMZW5ndGgsIG1pbkxlbmd0aCk7CiAgICAg
ICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwgYWxsTGVuZ3Roc0VxdWFsKTsKICAg
ICAgICAgfQotCisgICAgICAgIAogICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwg
bWluTGVuZ3RoID49IGNvbW1vbkNoYXJzLCBtaW5MZW5ndGgsIGNvbW1vbkNoYXJzKTsKLQorICAg
ICAgICAKICAgICAgICAgaWYgKCFhbGxMZW5ndGhzRXF1YWwgJiYgYWxyZWFkeUNoZWNrZWRMZW5n
dGggPCBtaW5MZW5ndGgpCiAgICAgICAgICAgICBtX291dC5jaGVjayhtX291dC5iZWxvdyhsZW5n
dGgsIG1fb3V0LmNvbnN0SW50MzIobWluTGVuZ3RoKSksIHVuc3VyZShmYWxsVGhyb3VnaCkpOwog
ICAgICAgICBpZiAoYWxsTGVuZ3Roc0VxdWFsICYmIChhbHJlYWR5Q2hlY2tlZExlbmd0aCA8IG1p
bkxlbmd0aCB8fCAhY2hlY2tlZEV4YWN0TGVuZ3RoKSkKICAgICAgICAgICAgIG1fb3V0LmNoZWNr
KG1fb3V0Lm5vdEVxdWFsKGxlbmd0aCwgbV9vdXQuY29uc3RJbnQzMihtaW5MZW5ndGgpKSwgdW5z
dXJlKGZhbGxUaHJvdWdoKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IG51bUNoZWNrZWQ7IGkgPCBjb21tb25DaGFyczsgKytpKSB7CiAgICAgICAgICAgICBtX291dC5j
aGVjaygKICAgICAgICAgICAgICAgICBtX291dC5ub3RFcXVhbCgKQEAgLTE5OTQyLDI2ICsxOTkz
OSwyNiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgICAgIG1f
b3V0LmNvbnN0SW50MzIoc3RhdGljX2Nhc3Q8dWludDE2X3Q+KGNhc2VzW2JlZ2luXS5zdHJpbmct
PmF0KGkpKSkpLAogICAgICAgICAgICAgICAgIHVuc3VyZShmYWxsVGhyb3VnaCkpOwogICAgICAg
ICB9Ci0KKyAgICAgICAgCiAgICAgICAgIGlmIChtaW5MZW5ndGggPT0gY29tbW9uQ2hhcnMpIHsK
ICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlcmUgb25lIG9mIHRoZSBjYXNlcyBp
cyBhIHByZWZpeCBvZiBhbGwgb2YgdGhlIG90aGVyIGNhc2VzLgogICAgICAgICAgICAgLy8gV2Un
dmUgYWxyZWFkeSBjaGVja2VkIHRoYXQgdGhlIGlucHV0IHN0cmluZyBpcyBhIHByZWZpeCBvZiBh
bGwgb2YgdGhlIGNhc2VzLAogICAgICAgICAgICAgLy8gc28gd2UganVzdCBjaGVjayBsZW5ndGgg
dG8ganVtcCB0byB0aGF0IGNhc2UuCi0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgREZHX0FT
U0VSVChtX2dyYXBoLCBtX25vZGUsIGNhc2VzW2JlZ2luXS5zdHJpbmctPmxlbmd0aCgpID09IGNv
bW1vbkNoYXJzLCBjYXNlc1tiZWdpbl0uc3RyaW5nLT5sZW5ndGgoKSwgY29tbW9uQ2hhcnMpOwog
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gYmVnaW4gKyAxOyBpIDwgZW5kOyArK2kpCiAg
ICAgICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBtX25vZGUsIGNhc2VzW2ldLnN0cmlu
Zy0+bGVuZ3RoKCkgPiBjb21tb25DaGFycywgY2FzZXNbaV0uc3RyaW5nLT5sZW5ndGgoKSwgY29t
bW9uQ2hhcnMpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChhbGxMZW5ndGhzRXF1
YWwpIHsKICAgICAgICAgICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwgZW5kID09
IGJlZ2luICsgMSwgZW5kLCBiZWdpbik7CiAgICAgICAgICAgICAgICAgbV9vdXQuanVtcChjYXNl
c1tiZWdpbl0udGFyZ2V0KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuY2hlY2soCiAgICAgICAgICAgICAg
ICAgbV9vdXQuZXF1YWwobGVuZ3RoLCBtX291dC5jb25zdEludDMyKGNvbW1vbkNoYXJzKSksCiAg
ICAgICAgICAgICAgICAgdW5zdXJlKGNhc2VzW2JlZ2luXS50YXJnZXQpKTsKLQorICAgICAgICAg
ICAgCiAgICAgICAgICAgICAvLyBXZSd2ZSBjaGVja2VkIGlmIHRoZSBsZW5ndGggaXMgPj0gbWlu
TGVuZ3RoLCBhbmQgdGhlbiB3ZSBjaGVja2VkIGlmIHRoZSBsZW5ndGggaXMKICAgICAgICAgICAg
IC8vID09IGNvbW1vbkNoYXJzLiBXZSBnZXQgdG8gdGhpcyBwb2ludCBpZiBpdCBpcyA+PSBtaW5M
ZW5ndGggYnV0IG5vdCA9PSBjb21tb25DaGFycy4KICAgICAgICAgICAgIC8vIEhlbmNlIHdlIGtu
b3cgdGhhdCBpdCBub3cgbXVzdCBiZSA+IG1pbkxlbmd0aCwgaS5lLiB0aGF0IGl0J3MgPj0gbWlu
TGVuZ3RoICsgMS4KQEAgLTE5OTY5LDE1ICsxOTk2NiwxNSBAQCBJR05PUkVfQ0xBTkdfV0FSTklO
R1NfRU5ECiAgICAgICAgICAgICAgICAgZGF0YSwgYnVmZmVyLCBsZW5ndGgsIGNhc2VzLCBjb21t
b25DaGFycywgYmVnaW4gKyAxLCBlbmQsIG1pbkxlbmd0aCArIDEsIGZhbHNlKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICAvLyBBdCB0aGlzIHBv
aW50IHdlIGtub3cgdGhhdCB0aGUgc3RyaW5nIGlzIGxvbmdlciB0aGFuIGNvbW1vbkNoYXJzLCBh
bmQgd2UndmUgb25seSB2ZXJpZmllZAogICAgICAgICAvLyBjb21tb25DaGFycy4gVXNlIGEgYmlu
YXJ5IHN3aXRjaCBvbiB0aGUgbmV4dCB1bmNoZWNrZWQgY2hhcmFjdGVyLCBpLmUuCiAgICAgICAg
IC8vIHN0cmluZ1tjb21tb25DaGFyc10uCi0KKyAgICAgICAgCiAgICAgICAgIERGR19BU1NFUlQo
bV9ncmFwaCwgbV9ub2RlLCBlbmQgPj0gYmVnaW4gKyAyLCBlbmQsIGJlZ2luKTsKLQorICAgICAg
ICAKICAgICAgICAgTFZhbHVlIHVuY2hlY2tlZENoYXIgPSBtX291dC5sb2FkOFplcm9FeHQzMihi
dWZmZXIsIG1faGVhcHMuY2hhcmFjdGVyczhbY29tbW9uQ2hhcnNdKTsKLQorICAgICAgICAKICAg
ICAgICAgVmVjdG9yPENoYXJhY3RlckNhc2U+IGNoYXJhY3RlckNhc2VzOwogICAgICAgICBDaGFy
YWN0ZXJDYXNlIGN1cnJlbnRDYXNlKGNhc2VzW2JlZ2luXS5zdHJpbmctPmF0KGNvbW1vbkNoYXJz
KSwgYmVnaW4sIGJlZ2luICsgMSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IGJlZ2luICsg
MTsgaSA8IGVuZDsgKytpKSB7CkBAIC0xOTk5MCwxMSArMTk5ODcsMTEgQEAgSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIGN1cnJlbnRDYXNlLmVuZCA9IGkgKyAxOwog
ICAgICAgICB9CiAgICAgICAgIGNoYXJhY3RlckNhc2VzLmFwcGVuZChjdXJyZW50Q2FzZSk7Ci0K
KyAgICAgICAgCiAgICAgICAgIFZlY3RvcjxMQmFzaWNCbG9jaz4gY2hhcmFjdGVyQmxvY2tzOwog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBjaGFyYWN0ZXJDYXNlcy5zaXplKCk7IGktLTspCiAg
ICAgICAgICAgICBjaGFyYWN0ZXJCbG9ja3MuYXBwZW5kKG1fb3V0Lm5ld0Jsb2NrKCkpOwotCisg
ICAgICAgIAogICAgICAgICBWZWN0b3I8U3dpdGNoQ2FzZT4gc3dpdGNoQ2FzZXM7CiAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjaGFyYWN0ZXJDYXNlcy5zaXplKCk7ICsraSkgewog
ICAgICAgICAgICAgaWYgKGkpCkBAIC0yMDAwMyw3ICsyMDAwMCw3IEBAIElHTk9SRV9DTEFOR19X
QVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKGNoYXJhY3RlckNh
c2VzW2ldLmNoYXJhY3RlciksIGNoYXJhY3RlckJsb2Nrc1tpXSwgV2VpZ2h0KCkpKTsKICAgICAg
ICAgfQogICAgICAgICBtX291dC5zd2l0Y2hJbnN0cnVjdGlvbih1bmNoZWNrZWRDaGFyLCBzd2l0
Y2hDYXNlcywgZmFsbFRocm91Z2gsIFdlaWdodCgpKTsKLQorICAgICAgICAKICAgICAgICAgTEJh
c2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5tX25leHRCbG9jazsKICAgICAgICAgY2hhcmFjdGVy
QmxvY2tzLmFwcGVuZChsYXN0TmV4dCk7IC8vIE1ha2VzIGl0IGNvbnZlbmllbnQgdG8gc2V0IG5l
eHRCbG9jay4KICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNoYXJhY3RlckNhc2Vz
LnNpemUoKTsgKytpKSB7CkBAIC0yMDAxMiwxMCArMjAwMDksMTAgQEAgSUdOT1JFX0NMQU5HX1dB
Uk5JTkdTX0VORAogICAgICAgICAgICAgICAgIGRhdGEsIGJ1ZmZlciwgbGVuZ3RoLCBjYXNlcywg
Y29tbW9uQ2hhcnMgKyAxLAogICAgICAgICAgICAgICAgIGNoYXJhY3RlckNhc2VzW2ldLmJlZ2lu
LCBjaGFyYWN0ZXJDYXNlc1tpXS5lbmQsIG1pbkxlbmd0aCwgYWxsTGVuZ3Roc0VxdWFsKTsKICAg
ICAgICAgfQotCisgICAgICAgIAogICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwg
bV9vdXQubV9uZXh0QmxvY2sgPT0gbGFzdE5leHQpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQg
c3dpdGNoU3RyaW5nU2xvdyhTd2l0Y2hEYXRhKiBkYXRhLCBMVmFsdWUgc3RyaW5nKQogICAgIHsK
ICAgICAgICAgLy8gRklYTUU6IFdlIG91Z2h0IHRvIGJlIGFibGUgdG8gdXNlIGNvbXB1dGVkIGdv
dG9zIGhlcmUuIFdlIHdvdWxkIHNhdmUgdGhlIGxhYmVscyBvZiB0aGUKQEAgLTIwMDI1LDExICsy
MDAyMiwxMSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX29yaWdpbi5zZW1h
bnRpYyk7CiAKICAgICAgICAgY29uc3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUmIHVubGlua2Vk
VGFibGUgPSBtX2dyYXBoLnVubGlua2VkU3RyaW5nU3dpdGNoSnVtcFRhYmxlKGRhdGEtPnN3aXRj
aFRhYmxlSW5kZXgpOwotCisgICAgICAgIAogICAgICAgICBMVmFsdWUgYnJhbmNoSW5kZXggPSB2
bUNhbGwoCiAgICAgICAgICAgICBJbnQzMiwgb3BlcmF0aW9uU3dpdGNoU3RyaW5nQW5kR2V0SW5k
ZXgsCiAgICAgICAgICAgICB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3QpLCBtX291dC5jb25zdElu
dFB0cigmdW5saW5rZWRUYWJsZSksIHN0cmluZyk7Ci0KKyAgICAgICAgCiAgICAgICAgIFZlY3Rv
cjxTd2l0Y2hDYXNlPiBjYXNlczsKICAgICAgICAgLy8gVGhlc2UgbWF5IGJlIG5lZ2F0aXZlLCBv
ciB6ZXJvLCBvciBwcm9iYWJseSBvdGhlciBzdHVmZiwgdG9vLiBXZSBkb24ndCB3YW50IHRvIG1l
c3Mgd2l0aCBIYXNoU2V0J3MgY29ybmVyIGNhc2VzIGFuZCB3ZSBkb24ndCByZWFsbHkgY2FyZSBh
Ym91dCB0aHJvdWdocHV0IGhlcmUuCiAgICAgICAgIEhhc2hTZXQ8R2VuZXJpY0hhc2hLZXk8aW50
MzJfdD4+IGFscmVhZHlIYW5kbGVkOwpAQCAtMjAwNjQsMTEgKzIwMDYxLDExIEBAIElHTk9SRV9D
TEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIC8vIEx1Y2tpbHksIHdlIGRvbid0IGN1cnJl
bnRseSBkbyBhbnkgc3VjaCB0cmFuc2Zvcm1hdGlvbi4gQnV0IGl0J3Mga2luZCBvZiBzaWxseSB0
aGF0CiAgICAgICAgICAgICAvLyB0aGlzIGlzIGFuIGlzc3VlLgogICAgICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDYzNQotCisgICAgICAgICAg
ICAKICAgICAgICAgICAgIERGRzo6U3dpdGNoQ2FzZSBteUNhc2UgPSBkYXRhLT5jYXNlc1tpXTsK
ICAgICAgICAgICAgIGF1dG8gaXRlciA9IHVubGlua2VkVGFibGUubV9vZmZzZXRUYWJsZS5maW5k
KG15Q2FzZS52YWx1ZS5zdHJpbmdJbXBsKCkpOwogICAgICAgICAgICAgREZHX0FTU0VSVChtX2dy
YXBoLCBtX25vZGUsIGl0ZXIgIT0gdW5saW5rZWRUYWJsZS5tX29mZnNldFRhYmxlLmVuZCgpKTsK
LQorICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBVc2UgbV9pbmRleEluVGFibGUgaW5zdGVh
ZCBvZiBtX2JyYW5jaE9mZnNldCB0byBtYWtlIFN3aXRjaCB0YWJsZSBkZW5zZS4KICAgICAgICAg
ICAgIGlmICghYWxyZWFkeUhhbmRsZWQuYWRkKGl0ZXItPnZhbHVlLm1faW5kZXhJblRhYmxlKS5p
c05ld0VudHJ5KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMjAwNzcsMTIgKzIwMDc0
LDEyIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICBtX291dC5j
b25zdEludDMyKGl0ZXItPnZhbHVlLm1faW5kZXhJblRhYmxlKSwKICAgICAgICAgICAgICAgICBs
b3dCbG9jayhteUNhc2UudGFyZ2V0LmJsb2NrKSwgV2VpZ2h0KG15Q2FzZS50YXJnZXQuY291bnQp
KSk7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgbV9vdXQuc3dpdGNoSW5zdHJ1Y3Rp
b24oCiAgICAgICAgICAgICBicmFuY2hJbmRleCwgY2FzZXMsIGxvd0Jsb2NrKGRhdGEtPmZhbGxU
aHJvdWdoLmJsb2NrKSwKICAgICAgICAgICAgIFdlaWdodChkYXRhLT5mYWxsVGhyb3VnaC5jb3Vu
dCkpOwogICAgIH0KLQorICAgIAogICAgIC8vIENhbGxzIHRoZSBmdW5jdG9yIGF0IHRoZSBwb2lu
dCBvZiBjb2RlIGdlbmVyYXRpb24gd2hlcmUgd2Uga25vdyB3aGF0IHRoZSByZXN1bHQgdHlwZSBp
cy4KICAgICAvLyBZb3UgY2FuIGVtaXQgd2hhdGV2ZXIgY29kZSB5b3UgbGlrZSBhdCB0aGF0IHBv
aW50LiBFeHBlY3RzIHlvdSB0byB0ZXJtaW5hdGUgdGhlIGJhc2ljIGJsb2NrLgogICAgIC8vIFdo
ZW4gYnVpbGRUeXBlT2YoKSByZXR1cm5zLCBpdCB3aWxsIGhhdmUgdGVybWluYXRlZCBhbGwgYmFz
aWMgYmxvY2tzIHRoYXQgaXQgY3JlYXRlZC4gU28sIGlmCkBAIC0yMDEwMyw3ICsyMDEwMCw3IEBA
IElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICB2b2lkIGJ1aWxkVHlwZU9mKEVkZ2UgY2hp
bGQsIExWYWx1ZSB2YWx1ZSwgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKICAgICB7CiAgICAgICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvciht
X29yaWdpbi5zZW1hbnRpYyk7Ci0KKyAgICAgICAgCiAgICAgICAgIC8vIEltcGxlbWVudHMgdGhl
IGZvbGxvd2luZyBicmFuY2hpbmcgc3RydWN0dXJlOgogICAgICAgICAvLwogICAgICAgICAvLyBp
ZiAoaXMgY2VsbCkgewpAQCAtMjAxMzcsNyArMjAxMzQsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklO
R1NfRU5ECiAgICAgICAgIC8vIEZJWE1FOiB0eXBlb2YgU3ltYm9sIHNob3VsZCBiZSBtb3JlIGZy
ZXF1ZW50bHkgc2VlbiB0aGFuIEJpZ0ludC4KICAgICAgICAgLy8gV2Ugc2hvdWxkIGNoYW5nZSB0
aGUgb3JkZXIgb2YgdHlwZSBkZXRlY3Rpb24gYmFzZWQgb24gdGhpcyBmcmVxdWVuY3kuCiAgICAg
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI2NTAKLQor
ICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgY2VsbENhc2UgPSBtX291dC5uZXdCbG9jaygp
OwogICAgICAgICBMQmFzaWNCbG9jayBvYmplY3RDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAg
ICAgICAgTEJhc2ljQmxvY2sgZnVuY3Rpb25DYXNlID0gbV9vdXQubmV3QmxvY2soKTsKQEAgLTIw
MTU5LDI4ICsyMDE1NiwyOCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIExC
YXNpY0Jsb2NrIG5vdE51bGxDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2lj
QmxvY2sgYm9vbGVhbkNhc2UgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9j
ayB1bmRlZmluZWRDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKLQorICAgICAgICAKICAgICAgICAg
bV9vdXQuYnJhbmNoKGlzQ2VsbCh2YWx1ZSwgcHJvdmVuVHlwZShjaGlsZCkpLCB1bnN1cmUoY2Vs
bENhc2UpLCB1bnN1cmUobm90Q2VsbENhc2UpKTsKLQorICAgICAgICAKICAgICAgICAgTEJhc2lj
QmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhjZWxsQ2FzZSwgb2JqZWN0Q2FzZSk7CiAg
ICAgICAgIG1fb3V0LmJyYW5jaChpc09iamVjdCh2YWx1ZSwgcHJvdmVuVHlwZShjaGlsZCkpLCB1
bnN1cmUob2JqZWN0Q2FzZSksIHVuc3VyZShub3RPYmplY3RDYXNlKSk7Ci0KKyAgICAgICAgCiAg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKG9iamVjdENhc2UsIGZ1bmN0aW9uQ2FzZSk7CiAgICAgICAg
IG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgIGlzRnVuY3Rpb24odmFsdWUsIHByb3ZlblR5cGUo
Y2hpbGQpICYgU3BlY09iamVjdCksCiAgICAgICAgICAgICB1bnN1cmUoZnVuY3Rpb25DYXNlKSwg
dW5zdXJlKG5vdEZ1bmN0aW9uQ2FzZSkpOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBl
bmRUbyhmdW5jdGlvbkNhc2UsIG5vdEZ1bmN0aW9uQ2FzZSk7CiAgICAgICAgIGZ1bmN0b3IoVHlw
ZW9mVHlwZTo6RnVuY3Rpb24pOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhu
b3RGdW5jdGlvbkNhc2UsIHJlYWxseU9iamVjdENhc2UpOwogICAgICAgICBtX291dC5icmFuY2go
CiAgICAgICAgICAgICBpc0V4b3RpY0ZvclR5cGVvZih2YWx1ZSwgcHJvdmVuVHlwZShjaGlsZCkg
JiAoU3BlY09iamVjdCAtIFNwZWNGdW5jdGlvbikpLAogICAgICAgICAgICAgcmFyZWx5KHNsb3dQ
YXRoKSwgdXN1YWxseShyZWFsbHlPYmplY3RDYXNlKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1f
b3V0LmFwcGVuZFRvKHJlYWxseU9iamVjdENhc2UsIHNsb3dQYXRoKTsKICAgICAgICAgZnVuY3Rv
cihUeXBlb2ZUeXBlOjpPYmplY3QpOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRU
byhzbG93UGF0aCwgdW5yZWFjaGFibGUpOwogICAgICAgICBWTSYgdm0gPSB0aGlzLT52bSgpOwog
ICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbGF6eVNsb3dQYXRoKApAQCAtMjAxOTQsMTUgKzIwMTkx
LDE1IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgY2FzZXMuYXBwZW5kKFN3
aXRjaENhc2UobV9vdXQuY29uc3RJbnQzMihzdGF0aWNfY2FzdDxpbnQzMl90PihUeXBlb2ZUeXBl
OjpPYmplY3QpKSwgcmVhbGx5T2JqZWN0Q2FzZSkpOwogICAgICAgICBjYXNlcy5hcHBlbmQoU3dp
dGNoQ2FzZShtX291dC5jb25zdEludDMyKHN0YXRpY19jYXN0PGludDMyX3Q+KFR5cGVvZlR5cGU6
OkZ1bmN0aW9uKSksIGZ1bmN0aW9uQ2FzZSkpOwogICAgICAgICBtX291dC5zd2l0Y2hJbnN0cnVj
dGlvbihtX291dC5jYXN0VG9JbnQzMihyZXN1bHQpLCBjYXNlcywgdW5yZWFjaGFibGUsIFdlaWdo
dCgpKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8odW5yZWFjaGFibGUsIG5v
dE9iamVjdENhc2UpOwogICAgICAgICBtX291dC51bnJlYWNoYWJsZSgpOwotCisgICAgICAgIAog
ICAgICAgICBtX291dC5hcHBlbmRUbyhub3RPYmplY3RDYXNlLCBzdHJpbmdDYXNlKTsKICAgICAg
ICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgaXNTdHJpbmcodmFsdWUsIHByb3ZlblR5cGUo
Y2hpbGQpICYgKFNwZWNDZWxsIC0gU3BlY09iamVjdCkpLAogICAgICAgICAgICAgdW5zdXJlKHN0
cmluZ0Nhc2UpLCB1bnN1cmUobm90U3RyaW5nQ2FzZSkpOwotCisgICAgICAgIAogICAgICAgICBt
X291dC5hcHBlbmRUbyhzdHJpbmdDYXNlLCBub3RTdHJpbmdDYXNlKTsKICAgICAgICAgZnVuY3Rv
cihUeXBlb2ZUeXBlOjpTdHJpbmcpOwogCkBAIC0yMDIxMywxNSArMjAyMTAsMTUgQEAgSUdOT1JF
X0NMQU5HX1dBUk5JTkdTX0VORAogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGJpZ0ludENhc2Us
IHN5bWJvbENhc2UpOwogICAgICAgICBmdW5jdG9yKFR5cGVvZlR5cGU6OkJpZ0ludCk7Ci0KKyAg
ICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHN5bWJvbENhc2UsIG5vdENlbGxDYXNlKTsK
ICAgICAgICAgZnVuY3RvcihUeXBlb2ZUeXBlOjpTeW1ib2wpOwotCisgICAgICAgIAogICAgICAg
ICBtX291dC5hcHBlbmRUbyhub3RDZWxsQ2FzZSwgbnVtYmVyQ2FzZSk7CiAgICAgICAgIG1fb3V0
LmJyYW5jaCgKICAgICAgICAgICAgIGlzTnVtYmVyKHZhbHVlLCBwcm92ZW5UeXBlKGNoaWxkKSAm
IH5TcGVjQ2VsbCksCiAgICAgICAgICAgICB1bnN1cmUobnVtYmVyQ2FzZSksIHVuc3VyZShub3RO
dW1iZXJDYXNlKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG51bWJlckNh
c2UsIG5vdE51bWJlckNhc2UpOwogICAgICAgICBmdW5jdG9yKFR5cGVvZlR5cGU6Ok51bWJlcik7
CiAKQEAgLTIwMjM5LDE5ICsyMDIzNiwxOSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIGlzTnVsbCA9IG1fb3V0LmJvb2xlYW5GYWxzZTsKICAg
ICAgICAgbV9vdXQuYnJhbmNoKGlzTnVsbCwgdW5zdXJlKHJlYWxseU9iamVjdENhc2UpLCB1bnN1
cmUobm90TnVsbENhc2UpKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90
TnVsbENhc2UsIGJvb2xlYW5DYXNlKTsKICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAg
ICAgaXNCb29sZWFuKHZhbHVlLCBwcm92ZW5UeXBlKGNoaWxkKSAmIH4oU3BlY0NlbGwgfCBTcGVj
RnVsbE51bWJlcikpLAogICAgICAgICAgICAgdW5zdXJlKGJvb2xlYW5DYXNlKSwgdW5zdXJlKHVu
ZGVmaW5lZENhc2UpKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oYm9vbGVh
bkNhc2UsIHVuZGVmaW5lZENhc2UpOwogICAgICAgICBmdW5jdG9yKFR5cGVvZlR5cGU6OkJvb2xl
YW4pOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyh1bmRlZmluZWRDYXNlLCBs
YXN0TmV4dCk7CiAgICAgICAgIGZ1bmN0b3IoVHlwZW9mVHlwZTo6VW5kZWZpbmVkKTsKICAgICB9
Ci0KKyAgICAKICAgICBUeXBlZFBvaW50ZXIgcG9pbnRlckludG9UeXBlZEFycmF5KExWYWx1ZSBz
dG9yYWdlLCBMVmFsdWUgaW5kZXgsIFR5cGVkQXJyYXlUeXBlIHR5cGUpCiAgICAgewogICAgICAg
ICBMVmFsdWUgb2Zmc2V0ID0gbV9vdXQuc2hsKG1fb3V0Lnplcm9FeHRQdHIoaW5kZXgpLCBtX291
dC5jb25zdEludFB0cihsb2dFbGVtZW50U2l6ZSh0eXBlKSkpOwpAQCAtMjAyNjMsNyArMjAyNjAs
NyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgb2Zmc2V0CiAg
ICAgICAgICAgICApKTsKICAgICB9Ci0KKyAgICAKICAgICBMVmFsdWUgbG9hZEZyb21JbnRUeXBl
ZEFycmF5KFR5cGVkUG9pbnRlciBwb2ludGVyLCBUeXBlZEFycmF5VHlwZSB0eXBlKQogICAgIHsK
ICAgICAgICAgc3dpdGNoIChlbGVtZW50U2l6ZSh0eXBlKSkgewpAQCAtMjAyNzcsNyArMjAyNzQs
NyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICBERkdfQ1JBU0gobV9n
cmFwaCwgbV9ub2RlLCAiQmFkIGVsZW1lbnQgc2l6ZSIpOwogICAgICAgICB9CiAgICAgfQotCisg
ICAgCiAgICAgT3V0cHV0OjpTdG9yZVR5cGUgc3RvcmVUeXBlKFR5cGVkQXJyYXlUeXBlIHR5cGUp
CiAgICAgewogICAgICAgICBpZiAoaXNJbnQodHlwZSkpIHsKQEAgLTIwMzAyLDcgKzIwMjk5LDcg
QEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3Jh
cGgsIG1fbm9kZSwgIkJhZCB0eXBlZCBhcnJheSB0eXBlIik7CiAgICAgICAgIH0KICAgICB9Ci0K
KyAgICAKICAgICB2b2lkIHNldEludFR5cGVkQXJyYXlMb2FkUmVzdWx0KExWYWx1ZSByZXN1bHQs
IFR5cGVkQXJyYXlUeXBlIHR5cGUsIGJvb2wgY2FuU3BlY3VsYXRlKQogICAgIHsKICAgICAgICAg
aWYgKGVsZW1lbnRTaXplKHR5cGUpIDwgNCB8fCBpc1NpZ25lZCh0eXBlKSkgewpAQCAtMjAzMTYs
MjIgKzIwMzEzLDIyIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIHNl
dEludDMyKHJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQorICAgICAg
ICAKICAgICAgICAgaWYgKG1fbm9kZS0+c2hvdWxkU3BlY3VsYXRlSW50NTIoKSkgewogICAgICAg
ICAgICAgc2V0U3RyaWN0SW50NTIobV9vdXQuemVyb0V4dChyZXN1bHQsIEludDY0KSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgc2V0RG91Ymxl
KG1fb3V0LnVuc2lnbmVkVG9Eb3VibGUocmVzdWx0KSk7CiAgICAgfQotCisgICAgCiAgICAgTFZh
bHVlIGdldEludFR5cGVkQXJyYXlTdG9yZU9wZXJhbmQoRWRnZSBlZGdlLCBib29sIGlzQ2xhbXBl
ZCA9IGZhbHNlKQogICAgIHsKICAgICAgICAgTFZhbHVlIHZhbHVlQXNJbnQzMjsKICAgICAgICAg
TFZhbHVlIHZhbHVlOwogICAgICAgICBMVmFsdWUgemVybzsKICAgICAgICAgTFZhbHVlIGJ5dGVN
YXg7Ci0KKyAgICAgICAgCiAgICAgICAgIHN3aXRjaCAoZWRnZS51c2VLaW5kKCkpIHsKICAgICAg
ICAgY2FzZSBJbnQ1MlJlcFVzZToKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewpAQCAtMjAzNDYs
NyArMjAzNDMsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAg
emVybyA9IG1fb3V0LmludDY0WmVybzsKICAgICAgICAgICAgICAgICBieXRlTWF4ID0gbV9vdXQu
Y29uc3RJbnQ2NCgyNTUpOwogICAgICAgICAgICAgfQotCisgICAgICAgICAgICAKICAgICAgICAg
ICAgIGlmIChpc0NsYW1wZWQpIHsKICNpZiBDUFUoQVJNNjQpCiAgICAgICAgICAgICAgICAgaWYg
KGVkZ2UudXNlS2luZCgpID09IEludDMyVXNlKSB7CkBAIC0yMDM2OSw0NyArMjAzNjYsNDcgQEAg
SUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sg
YXRMZWFzdFplcm8gPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgICAgIExCYXNpY0Js
b2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDI+IGlu
dFZhbHVlczsKICAgICAgICAgICAgICAgICBpbnRWYWx1ZXMuYXBwZW5kKG1fb3V0LmFuY2hvciht
X291dC5pbnQzMlplcm8pKTsKICAgICAgICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAg
ICAgICAgICAgICAgIG1fb3V0Lmxlc3NUaGFuKHZhbHVlLCB6ZXJvKSwKICAgICAgICAgICAgICAg
ICAgICAgdW5zdXJlKGNvbnRpbnVhdGlvbiksIHVuc3VyZShhdExlYXN0WmVybykpOwotCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFz
dE5leHQgPSBtX291dC5hcHBlbmRUbyhhdExlYXN0WmVybywgY29udGludWF0aW9uKTsKLQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGludFZhbHVlcy5hcHBl
bmQobV9vdXQuYW5jaG9yKG1fb3V0LnNlbGVjdCgKICAgICAgICAgICAgICAgICAgICAgbV9vdXQu
Z3JlYXRlclRoYW4odmFsdWUsIGJ5dGVNYXgpLAogICAgICAgICAgICAgICAgICAgICBtX291dC5j
b25zdEludDMyKDI1NSksCiAgICAgICAgICAgICAgICAgICAgIHZhbHVlQXNJbnQzMikpKTsKICAg
ICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRp
b24sIGxhc3ROZXh0KTsKICAgICAgICAgICAgICAgICB2YWx1ZUFzSW50MzIgPSBtX291dC5waGko
SW50MzIsIGludFZhbHVlcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQotCisgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBEb3VibGVS
ZXBVc2U6IHsKICAgICAgICAgICAgIExWYWx1ZSBkb3VibGVWYWx1ZSA9IGxvd0RvdWJsZShlZGdl
KTsKLQorICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoaXNDbGFtcGVk
KSB7CiAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgYXRMZWFzdFplcm8gPSBtX291dC5uZXdC
bG9jaygpOwogICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHdpdGhpblJhbmdlID0gbV9vdXQu
bmV3QmxvY2soKTsKICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBt
X291dC5uZXdCbG9jaygpOwotCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgVmVjdG9yPFZhbHVlRnJvbUJsb2NrLCAzPiBpbnRWYWx1ZXM7CiAgICAgICAgICAg
ICAgICAgaW50VmFsdWVzLmFwcGVuZChtX291dC5hbmNob3IobV9vdXQuaW50MzJaZXJvKSk7CiAg
ICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgICAgICBtX291dC5k
b3VibGVMZXNzVGhhbk9yVW5vcmRlcmVkKGRvdWJsZVZhbHVlLCBtX291dC5kb3VibGVaZXJvKSwK
ICAgICAgICAgICAgICAgICAgICAgdW5zdXJlKGNvbnRpbnVhdGlvbiksIHVuc3VyZShhdExlYXN0
WmVybykpOwotCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
TEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhhdExlYXN0WmVybywgd2l0aGlu
UmFuZ2UpOwogICAgICAgICAgICAgICAgIGludFZhbHVlcy5hcHBlbmQobV9vdXQuYW5jaG9yKG1f
b3V0LmNvbnN0SW50MzIoMjU1KSkpOwogICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAg
ICAgICAgICAgICAgICAgICAgbV9vdXQuZG91YmxlR3JlYXRlclRoYW4oZG91YmxlVmFsdWUsIG1f
b3V0LmNvbnN0RG91YmxlKDI1NSkpLAogICAgICAgICAgICAgICAgICAgICB1bnN1cmUoY29udGlu
dWF0aW9uKSwgdW5zdXJlKHdpdGhpblJhbmdlKSk7Ci0KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyh3aXRoaW5SYW5nZSwgY29udGlu
dWF0aW9uKTsKIAogICAgICAgICAgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9
IG1fb3V0LnBhdGNocG9pbnQoRG91YmxlKTsKQEAgLTIwNDIyLDM5ICsyMDQxOSwzOSBAQCBJR05P
UkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAgICAgICAgICBpbnRWYWx1ZXMuYXBwZW5k
KG1fb3V0LmFuY2hvcihtX291dC5kb3VibGVUb0ludChkb3VibGVWYWx1ZSkpKTsKICAgICAgICAg
ICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxh
c3ROZXh0KTsKICAgICAgICAgICAgICAgICB2YWx1ZUFzSW50MzIgPSBtX291dC5waGkoSW50MzIs
IGludFZhbHVlcyk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICB2YWx1ZUFz
SW50MzIgPSBkb3VibGVUb0ludDMyKGRvdWJsZVZhbHVlKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9Ci0KKyAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOwog
ICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIHJldHVybiB2YWx1ZUFzSW50MzI7CiAgICAg
fQotCisgICAgCiAgICAgTFZhbHVlIGRvdWJsZVRvSW50MzIoTFZhbHVlIGRvdWJsZVZhbHVlLCBk
b3VibGUgbG93LCBkb3VibGUgaGlnaCwgYm9vbCBpc1NpZ25lZCA9IHRydWUpCiAgICAgewogICAg
ICAgICBMQmFzaWNCbG9jayBncmVhdEVub3VnaCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAg
IExCYXNpY0Jsb2NrIHdpdGhpblJhbmdlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJh
c2ljQmxvY2sgc2xvd1BhdGggPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9j
ayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgIAogICAgICAgICBW
ZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDI+IHJlc3VsdHM7Ci0KKyAgICAgICAgCiAgICAgICAgIG1f
b3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0LmRvdWJsZUdyZWF0ZXJUaGFuT3JFcXVhbChk
b3VibGVWYWx1ZSwgbV9vdXQuY29uc3REb3VibGUobG93KSksCiAgICAgICAgICAgICB1bnN1cmUo
Z3JlYXRFbm91Z2gpLCB1bnN1cmUoc2xvd1BhdGgpKTsKLQorICAgICAgICAKICAgICAgICAgTEJh
c2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhncmVhdEVub3VnaCwgd2l0aGluUmFu
Z2UpOwogICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICBtX291dC5kb3VibGVMZXNz
VGhhbk9yRXF1YWwoZG91YmxlVmFsdWUsIG1fb3V0LmNvbnN0RG91YmxlKGhpZ2gpKSwKICAgICAg
ICAgICAgIHVuc3VyZSh3aXRoaW5SYW5nZSksIHVuc3VyZShzbG93UGF0aCkpOwotCisgICAgICAg
IAogICAgICAgICBtX291dC5hcHBlbmRUbyh3aXRoaW5SYW5nZSwgc2xvd1BhdGgpOwogICAgICAg
ICBMVmFsdWUgZmFzdFJlc3VsdDsKICAgICAgICAgaWYgKGlzU2lnbmVkKQpAQCAtMjA0NjMsMTUg
KzIwNDYwLDE1IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIGZhc3RS
ZXN1bHQgPSBtX291dC5kb3VibGVUb1VJbnQoZG91YmxlVmFsdWUpOwogICAgICAgICByZXN1bHRz
LmFwcGVuZChtX291dC5hbmNob3IoZmFzdFJlc3VsdCkpOwogICAgICAgICBtX291dC5qdW1wKGNv
bnRpbnVhdGlvbik7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dQYXRo
LCBjb250aW51YXRpb24pOwogICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IobV9v
dXQuY2FzdFRvSW50MzIobV9vdXQuY2FsbFdpdGhvdXRTaWRlRWZmZWN0cyhJbnQ2NCwgb3BlcmF0
aW9uVG9JbnQzMiwgZG91YmxlVmFsdWUpKSkpOwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVh
dGlvbik7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwg
bGFzdE5leHQpOwogICAgICAgICByZXR1cm4gbV9vdXQucGhpKEludDMyLCByZXN1bHRzKTsKICAg
ICB9Ci0KKyAgICAKICAgICBMVmFsdWUgZG91YmxlVG9JbnQzMihMVmFsdWUgZG91YmxlVmFsdWUp
CiAgICAgewogI2lmIENQVShBUk02NCkKQEAgLTIwNDg4LDExICsyMDQ4NSwxMSBAQCBJR05PUkVf
Q0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAgaWYgKGhhc1NlbnNpYmxlRG91YmxlVG9JbnQo
KSkKICAgICAgICAgICAgIHJldHVybiBzZW5zaWJsZURvdWJsZVRvSW50MzIoZG91YmxlVmFsdWUp
OwotCisgICAgICAgIAogICAgICAgICBkb3VibGUgbGltaXQgPSBwb3coMiwgMzEpIC0gMTsKICAg
ICAgICAgcmV0dXJuIGRvdWJsZVRvSW50MzIoZG91YmxlVmFsdWUsIC1saW1pdCwgbGltaXQpOwog
ICAgIH0KLQorICAgIAogICAgIExWYWx1ZSBzZW5zaWJsZURvdWJsZVRvSW50MzIoTFZhbHVlIGRv
dWJsZVZhbHVlKQogICAgIHsKICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd1BhdGggPSBtX291dC5u
ZXdCbG9jaygpOwpAQCAtMjA1MDMsMTEgKzIwNTAwLDExIEBAIElHTk9SRV9DTEFOR19XQVJOSU5H
U19FTkQKICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgbV9vdXQuZXF1YWwoZmFz
dFJlc3VsdFZhbHVlLCBtX291dC5jb25zdEludDMyKDB4ODAwMDAwMDApKSwKICAgICAgICAgICAg
IHJhcmVseShzbG93UGF0aCksIHVzdWFsbHkoY29udGludWF0aW9uKSk7Ci0KKyAgICAgICAgCiAg
ICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oc2xvd1BhdGgsIGNv
bnRpbnVhdGlvbik7CiAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5h
bmNob3IobV9vdXQuY2FzdFRvSW50MzIobV9vdXQuY2FsbFdpdGhvdXRTaWRlRWZmZWN0cyhJbnQ2
NCwgb3BlcmF0aW9uVG9JbnQzMlNlbnNpYmxlU2xvdywgZG91YmxlVmFsdWUpKSk7CiAgICAgICAg
IG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgIHJldHVybiBtX291dC5waGko
SW50MzIsIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpOwogICAgIH0KQEAgLTIwNjAzLDE0ICsyMDYw
MCwxNCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgUGF0Y2hwb2ludFZhbHVlKiBs
YXp5U2xvd1BhdGgoY29uc3QgRnVuY3RvciYgZnVuY3RvciwgY29uc3QgVmVjdG9yPExWYWx1ZT4m
IHVzZXJBcmd1bWVudHMpCiAgICAgewogICAgICAgICBDb2RlT3JpZ2luIG9yaWdpbiA9IG1fb3Jp
Z2luLnNlbWFudGljOwotCisgICAgICAgIAogICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHJlc3Vs
dCA9IG1fb3V0LnBhdGNocG9pbnQoQjM6OkludDY0KTsKICAgICAgICAgZm9yIChMVmFsdWUgYXJn
IDogdXNlckFyZ3VtZW50cykKICAgICAgICAgICAgIHJlc3VsdC0+YXBwZW5kKENvbnN0cmFpbmVk
VmFsdWUoYXJnLCBCMzo6VmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogCiAgICAgICAgIFJlZlB0
cjxQYXRjaHBvaW50RXhjZXB0aW9uSGFuZGxlPiBleGNlcHRpb25IYW5kbGUgPQogICAgICAgICAg
ICAgcHJlcGFyZVBhdGNocG9pbnRGb3JFeGNlcHRpb25zKHJlc3VsdCk7Ci0KKyAgICAgICAgCiAg
ICAgICAgIHJlc3VsdC0+Y2xvYmJlcihSZWdpc3RlclNldEJ1aWxkZXI6Om1hY3JvQ2xvYmJlcmVk
R1BScygpKTsKICAgICAgICAgU3RhdGUqIHN0YXRlID0gJm1fZnRsU3RhdGU7CiAKQEAgLTIwNjIx
LDcgKzIwNjE4LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAg
ICAgICBsb2NhdGlvbnMuYXBwZW5kKExvY2F0aW9uOjpmb3JWYWx1ZVJlcChyZXApKTsKIAogICAg
ICAgICAgICAgICAgIFJlZlB0cjxMYXp5U2xvd1BhdGg6OkdlbmVyYXRvcj4gZ2VuZXJhdG9yID0g
ZnVuY3Rvcihsb2NhdGlvbnMpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpQYXRjaGFibGVKdW1wIHBhdGNoYWJsZUp1bXAgPSBqaXQucGF0Y2hhYmxl
SnVtcCgpOwogICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgZG9uZSA9IGppdC5s
YWJlbCgpOwogCkBAIC0yMDY2OSw3ICsyMDY2Niw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19F
TkQKICAgICAgICAgICAgIH0pOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KLQorICAg
IAogICAgIHZvaWQgc3BlY3VsYXRlKAogICAgICAgICBFeGl0S2luZCBraW5kLCBGb3JtYXR0ZWRW
YWx1ZSBsb3dWYWx1ZSwgTm9kZSogaGlnaFZhbHVlLCBMVmFsdWUgZmFpbENvbmRpdGlvbikKICAg
ICB7CkBAIC0yMDY4OCwxMyArMjA2ODUsMTMgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAog
ICAgICAgICBzcGVjdWxhdGUoYXJncy4uLik7CiAgICAgICAgIG1fb3V0Lmp1bXAodGFyZ2V0KTsK
ICAgICB9Ci0KKyAgICAKICAgICB2b2lkIHRlcm1pbmF0ZShFeGl0S2luZCBraW5kKQogICAgIHsK
ICAgICAgICAgc3BlY3VsYXRlKGtpbmQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQuYm9vbGVh
blRydWUpOwogICAgICAgICBkaWRBbHJlYWR5VGVybWluYXRlKCk7CiAgICAgfQotCisgICAgCiAg
ICAgdm9pZCBkaWRBbHJlYWR5VGVybWluYXRlKCkKICAgICB7CiAgICAgICAgIG1fc3RhdGUuc2V0
SXNWYWxpZChmYWxzZSk7CkBAIC0yMDcyNiw3ICsyMDcyMyw3IEBAIElHTk9SRV9DTEFOR19XQVJO
SU5HU19FTkQKICAgICBMVmFsdWUgbG93SW50MzIoRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRp
b25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAgICAgewogICAgICAg
ICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uIHx8
IChlZGdlLnVzZUtpbmQoKSA9PSBJbnQzMlVzZSB8fCBlZGdlLnVzZUtpbmQoKSA9PSBLbm93bklu
dDMyVXNlKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIGlmIChlZGdlLT5oYXNDb25zdGFudCgpKSB7
CiAgICAgICAgICAgICBKU1ZhbHVlIHZhbHVlID0gZWRnZS0+YXNKU1ZhbHVlKCk7CiAgICAgICAg
ICAgICBzaW11bGF0ZWRUeXBlQ2hlY2soZWRnZSwgU3BlY0ludDMyT25seSk7CkBAIC0yMDc1Mywx
NSArMjA3NTAsMTUgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgc2lt
dWxhdGVkVHlwZUNoZWNrKGVkZ2UsIFNwZWNJbnQzMk9ubHkpOwogICAgICAgICAgICAgcmV0dXJu
IHZhbHVlLnZhbHVlKCk7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgdmFsdWUgPSBt
X3N0cmljdEludDUyVmFsdWVzLmdldChlZGdlLm5vZGUoKSk7CiAgICAgICAgIGlmIChpc1ZhbGlk
KHZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiBzdHJpY3RJbnQ1MlRvSW50MzIoZWRnZSwgdmFs
dWUudmFsdWUoKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIHZhbHVlID0gbV9pbnQ1MlZhbHVlcy5n
ZXQoZWRnZS5ub2RlKCkpOwogICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCiAgICAgICAgICAg
ICByZXR1cm4gc3RyaWN0SW50NTJUb0ludDMyKGVkZ2UsIGludDUyVG9TdHJpY3RJbnQ1Mih2YWx1
ZS52YWx1ZSgpKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIHZhbHVlID0gbV9qc1ZhbHVlVmFsdWVz
LmdldChlZGdlLm5vZGUoKSk7CiAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkgewogICAgICAg
ICAgICAgTFZhbHVlIGJveGVkUmVzdWx0ID0gdmFsdWUudmFsdWUoKTsKQEAgLTIwNzc2LDMwICsy
MDc3MywzMCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICB0ZXJtaW5h
dGUoVW5jb3VudGFibGUpOwogICAgICAgICByZXR1cm4gbV9vdXQuaW50MzJaZXJvOwogICAgIH0K
LQorICAgIAogICAgIGVudW0gSW50NTJLaW5kIHsgU3RyaWN0SW50NTIsIEludDUyIH07CiAgICAg
TFZhbHVlIGxvd0ludDUyKEVkZ2UgZWRnZSwgSW50NTJLaW5kIGtpbmQpCiAgICAgewogICAgICAg
ICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwgZWRnZS51c2VLaW5kKCkgPT0gSW50NTJSZXBV
c2UsIGVkZ2UudXNlS2luZCgpKTsKLQorICAgICAgICAKICAgICAgICAgTG93ZXJlZE5vZGVWYWx1
ZSB2YWx1ZTsKLQorICAgICAgICAKICAgICAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgICAgIGNh
c2UgSW50NTI6CiAgICAgICAgICAgICB2YWx1ZSA9IG1faW50NTJWYWx1ZXMuZ2V0KGVkZ2Uubm9k
ZSgpKTsKICAgICAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gdmFsdWUudmFsdWUoKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICB2YWx1ZSA9
IG1fc3RyaWN0SW50NTJWYWx1ZXMuZ2V0KGVkZ2Uubm9kZSgpKTsKICAgICAgICAgICAgIGlmIChp
c1ZhbGlkKHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gc3RyaWN0SW50NTJUb0ludDUy
KHZhbHVlLnZhbHVlKCkpOwogICAgICAgICAgICAgYnJlYWs7Ci0KKyAgICAgICAgICAgIAogICAg
ICAgICBjYXNlIFN0cmljdEludDUyOgogICAgICAgICAgICAgdmFsdWUgPSBtX3N0cmljdEludDUy
VmFsdWVzLmdldChlZGdlLm5vZGUoKSk7CiAgICAgICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnZhbHVlKCk7Ci0KKyAgICAgICAgICAgIAog
ICAgICAgICAgICAgdmFsdWUgPSBtX2ludDUyVmFsdWVzLmdldChlZGdlLm5vZGUoKSk7CiAgICAg
ICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGludDUy
VG9TdHJpY3RJbnQ1Mih2YWx1ZS52YWx1ZSgpKTsKQEAgLTIwODEwLDE3ICsyMDgwNywxNyBAQCBJ
R05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICB0ZXJtaW5hdGUoVW5jb3VudGFi
bGUpOwogICAgICAgICByZXR1cm4gbV9vdXQuaW50NjRaZXJvOwogICAgIH0KLQorICAgIAogICAg
IExWYWx1ZSBsb3dJbnQ1MihFZGdlIGVkZ2UpCiAgICAgewogICAgICAgICByZXR1cm4gbG93SW50
NTIoZWRnZSwgSW50NTIpOwogICAgIH0KLQorICAgIAogICAgIExWYWx1ZSBsb3dTdHJpY3RJbnQ1
MihFZGdlIGVkZ2UpCiAgICAgewogICAgICAgICByZXR1cm4gbG93SW50NTIoZWRnZSwgU3RyaWN0
SW50NTIpOwogICAgIH0KLQorICAgIAogICAgIGJvb2wgYmV0dGVyVXNlU3RyaWN0SW50NTIoTm9k
ZSogbm9kZSkKICAgICB7CiAgICAgICAgIHJldHVybiAhaXNWYWxpZChtX2ludDUyVmFsdWVzLmdl
dChub2RlKSk7CkBAIC0yMDg0NSwxNyArMjA4NDIsMTcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdT
X0VORAogICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIHVzZSBraW5kIik7
CiAgICAgICAgIHJldHVybiBJbnQ1MjsKICAgICB9Ci0KKyAgICAKICAgICBMVmFsdWUgbG93V2hp
Y2hldmVySW50NTIoRWRnZSBlZGdlLCBJbnQ1MktpbmQmIGtpbmQpCiAgICAgewogICAgICAgICBr
aW5kID0gYmVzdEludDUyS2luZChlZGdlKTsKICAgICAgICAgcmV0dXJuIGxvd0ludDUyKGVkZ2Us
IGtpbmQpOwogICAgIH0KLQorICAgIAogICAgIExWYWx1ZSBsb3dDZWxsKEVkZ2UgZWRnZSwgT3Bl
cmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQog
ICAgIHsKICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBtX25vZGUsIG1vZGUgPT0gTWFudWFs
T3BlcmFuZFNwZWN1bGF0aW9uIHx8IERGRzo6aXNDZWxsKGVkZ2UudXNlS2luZCgpKSwgZWRnZS51
c2VLaW5kKCkpOwotCisgICAgICAgIAogICAgICAgICBpZiAoZWRnZS0+b3AoKSA9PSBKU0NvbnN0
YW50KSB7CiAgICAgICAgICAgICBGcm96ZW5WYWx1ZSogdmFsdWUgPSBlZGdlLT5jb25zdGFudCgp
OwogICAgICAgICAgICAgc2ltdWxhdGVkVHlwZUNoZWNrKGVkZ2UsIFNwZWNDZWxsQ2hlY2spOwpA
QCAtMjA4NjgsNyArMjA4NjUsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAg
ICAgICByZXN1bHQtPnNldE9yaWdpbihCMzo6T3JpZ2luKGVkZ2Uubm9kZSgpKSk7CiAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIExvd2Vy
ZWROb2RlVmFsdWUgdmFsdWUgPSBtX2pzVmFsdWVWYWx1ZXMuZ2V0KGVkZ2Uubm9kZSgpKTsKICAg
ICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKSB7CiAgICAgICAgICAgICBMVmFsdWUgdW5jaGVja2Vk
VmFsdWUgPSB2YWx1ZS52YWx1ZSgpOwpAQCAtMjA4NzYsMTYgKzIwODczLDE2IEBAIElHTk9SRV9D
TEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICBqc1ZhbHVlVmFsdWUodW5jaGVja2Vk
VmFsdWUpLCBlZGdlLCBTcGVjQ2VsbENoZWNrLCBpc05vdENlbGwodW5jaGVja2VkVmFsdWUpKTsK
ICAgICAgICAgICAgIHJldHVybiB1bmNoZWNrZWRWYWx1ZTsKICAgICAgICAgfQotCisgICAgICAg
IAogICAgICAgICBpZiAobWF5SGF2ZVR5cGVDaGVjayhlZGdlLnVzZUtpbmQoKSkpCiAgICAgICAg
ICAgICB0ZXJtaW5hdGUoVW5jb3VudGFibGUpOwogICAgICAgICByZXR1cm4gbV9vdXQuaW50UHRy
WmVybzsKICAgICB9Ci0KKyAgICAKICAgICBMVmFsdWUgbG93T2JqZWN0KEVkZ2UgZWRnZSwgT3Bl
cmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQog
ICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRT
cGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9PSBPYmplY3RVc2UpOwotCisgICAgICAgIAog
ICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbG93Q2VsbChlZGdlLCBtb2RlKTsKICAgICAgICAgc3Bl
Y3VsYXRlT2JqZWN0KGVkZ2UsIHJlc3VsdCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC0y
MDkzOSwyMCArMjA5MzYsMjAgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBz
cGVjdWxhdGVEYXRlT2JqZWN0KGVkZ2UsIHJlc3VsdCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQotCisgICAgCiAgICAgTFZhbHVlIGxvd1N0cmluZyhFZGdlIGVkZ2UsIE9wZXJhbmRT
cGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKICAgICB7
CiAgICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVyYW5kU3BlY3Vs
YXRpb24gfHwgZWRnZS51c2VLaW5kKCkgPT0gU3RyaW5nVXNlIHx8IGVkZ2UudXNlS2luZCgpID09
IEtub3duU3RyaW5nVXNlIHx8IGVkZ2UudXNlS2luZCgpID09IFN0cmluZ0lkZW50VXNlKTsKLQor
ICAgICAgICAKICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGxvd0NlbGwoZWRnZSwgbW9kZSk7CiAg
ICAgICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlLCByZXN1bHQpOwogICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgIH0KLQorICAgIAogICAgIExWYWx1ZSBsb3dTdHJpbmdJZGVudChFZGdlIGVkZ2Us
IE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlv
bikKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVy
YW5kU3BlY3VsYXRpb24gfHwgZWRnZS51c2VLaW5kKCkgPT0gU3RyaW5nSWRlbnRVc2UpOwotCisg
ICAgICAgIAogICAgICAgICBMVmFsdWUgc3RyaW5nID0gbG93U3RyaW5nKGVkZ2UsIG1vZGUpOwog
ICAgICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IG1fb3V0LmxvYWRQdHIoc3RyaW5nLCBtX2hlYXBz
LkpTU3RyaW5nX3ZhbHVlKTsKICAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQoZWRnZSwgc3Ry
aW5nLCBzdHJpbmdJbXBsKTsKQEAgLTIwOTk4LDE2ICsyMDk5NSwxNiBAQCBJR05PUkVfQ0xBTkdf
V0FSTklOR1NfRU5ECiAgICAgTFZhbHVlIGxvd05vbk51bGxPYmplY3QoRWRnZSBlZGdlLCBPcGVy
YW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAg
ICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gTWFudWFsT3BlcmFuZFNw
ZWN1bGF0aW9uIHx8IGVkZ2UudXNlS2luZCgpID09IE9iamVjdFVzZSk7Ci0KKyAgICAgICAgCiAg
ICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UsIG1vZGUpOwogICAgICAgICBzcGVj
dWxhdGVOb25OdWxsT2JqZWN0KGVkZ2UsIHJlc3VsdCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQotCisgICAgCiAgICAgTFZhbHVlIGxvd0Jvb2xlYW4oRWRnZSBlZGdlLCBPcGVyYW5k
U3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAgICAg
ewogICAgICAgICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gTWFudWFsT3BlcmFuZFNwZWN1
bGF0aW9uIHx8IGVkZ2UudXNlS2luZCgpID09IEJvb2xlYW5Vc2UgfHwgZWRnZS51c2VLaW5kKCkg
PT0gS25vd25Cb29sZWFuVXNlKTsKLQorICAgICAgICAKICAgICAgICAgaWYgKGVkZ2UtPmhhc0Nv
bnN0YW50KCkpIHsKICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBlZGdlLT5hc0pTVmFsdWUo
KTsKICAgICAgICAgICAgIHNpbXVsYXRlZFR5cGVDaGVjayhlZGdlLCBTcGVjQm9vbGVhbik7CkBA
IC0yMTAyMCwxMyArMjEwMTcsMTMgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAg
ICAgICAgcmVzdWx0LT5zZXRPcmlnaW4oQjM6Ok9yaWdpbihlZGdlLm5vZGUoKSkpOwogICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBMb3dl
cmVkTm9kZVZhbHVlIHZhbHVlID0gbV9ib29sZWFuVmFsdWVzLmdldChlZGdlLm5vZGUoKSk7CiAg
ICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkgewogICAgICAgICAgICAgc2ltdWxhdGVkVHlwZUNo
ZWNrKGVkZ2UsIFNwZWNCb29sZWFuKTsKICAgICAgICAgICAgIHJldHVybiB2YWx1ZS52YWx1ZSgp
OwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIHZhbHVlID0gbV9qc1ZhbHVlVmFsdWVz
LmdldChlZGdlLm5vZGUoKSk7CiAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkgewogICAgICAg
ICAgICAgTFZhbHVlIHVuYm94ZWRSZXN1bHQgPSB2YWx1ZS52YWx1ZSgpOwpAQCAtMjEwNDEsMTEg
KzIxMDM4LDExIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIHRlcm1p
bmF0ZShVbmNvdW50YWJsZSk7CiAgICAgICAgIHJldHVybiBtX291dC5ib29sZWFuRmFsc2U7CiAg
ICAgfQotCisgICAgCiAgICAgTFZhbHVlIGxvd0RvdWJsZShFZGdlIGVkZ2UpCiAgICAgewogICAg
ICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwgaXNEb3VibGUoZWRnZS51c2VLaW5kKCkp
LCBlZGdlLnVzZUtpbmQoKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIExvd2VyZWROb2RlVmFsdWUg
dmFsdWUgPSBtX2RvdWJsZVZhbHVlcy5nZXQoZWRnZS5ub2RlKCkpOwogICAgICAgICBpZiAoaXNW
YWxpZCh2YWx1ZSkpCiAgICAgICAgICAgICByZXR1cm4gdmFsdWUudmFsdWUoKTsKQEAgLTIxMDUz
LDEzICsyMTA1MCwxMyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICB0
ZXJtaW5hdGUoVW5jb3VudGFibGUpOwogICAgICAgICByZXR1cm4gbV9vdXQuZG91YmxlWmVybzsK
ICAgICB9Ci0KKyAgICAKICAgICBMVmFsdWUgbG93SlNWYWx1ZShFZGdlIGVkZ2UsIE9wZXJhbmRT
cGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKICAgICB7
CiAgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwgbV9ub2RlLCBtb2RlID09IE1hbnVhbE9wZXJh
bmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlLCBtX25vZGUtPm9w
KCksIGVkZ2UudXNlS2luZCgpKTsKICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBtX25vZGUs
ICFpc0RvdWJsZShlZGdlLnVzZUtpbmQoKSksIG1fbm9kZS0+b3AoKSwgZWRnZS51c2VLaW5kKCkp
OwogICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwgZWRnZS51c2VLaW5kKCkgIT0g
SW50NTJSZXBVc2UsIG1fbm9kZS0+b3AoKSwgZWRnZS51c2VLaW5kKCkpOwotCisgICAgICAgIAog
ICAgICAgICBpZiAoZWRnZS0+aGFzQ29uc3RhbnQoKSkgewogICAgICAgICAgICAgTFZhbHVlIHJl
c3VsdCA9IG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6ZW5jb2RlKGVkZ2UtPmFzSlNWYWx1ZSgp
KSk7CiAgICAgICAgICAgICByZXN1bHQtPnNldE9yaWdpbihCMzo6T3JpZ2luKGVkZ2Uubm9kZSgp
KSk7CkBAIC0yMTA2OSwyMSArMjEwNjYsMjEgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAog
ICAgICAgICBMb3dlcmVkTm9kZVZhbHVlIHZhbHVlID0gbV9qc1ZhbHVlVmFsdWVzLmdldChlZGdl
Lm5vZGUoKSk7CiAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkKICAgICAgICAgICAgIHJldHVy
biB2YWx1ZS52YWx1ZSgpOwotCisgICAgICAgIAogICAgICAgICB2YWx1ZSA9IG1faW50MzJWYWx1
ZXMuZ2V0KGVkZ2Uubm9kZSgpKTsKICAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKSB7CiAgICAg
ICAgICAgICBMVmFsdWUgcmVzdWx0ID0gYm94SW50MzIodmFsdWUudmFsdWUoKSk7CiAgICAgICAg
ICAgICBzZXRKU1ZhbHVlKGVkZ2Uubm9kZSgpLCByZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICB2YWx1ZSA9IG1fYm9vbGVh
blZhbHVlcy5nZXQoZWRnZS5ub2RlKCkpOwogICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpIHsK
ICAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBib3hCb29sZWFuKHZhbHVlLnZhbHVlKCkpOwog
ICAgICAgICAgICAgc2V0SlNWYWx1ZShlZGdlLm5vZGUoKSwgcmVzdWx0KTsKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgREZHX0NSQVNI
KG1fZ3JhcGgsIG1fbm9kZSwgbWFrZVN0cmluZygiVmFsdWUgbm90IGRlZmluZWQ6ICJfcywgZWRn
ZS5ub2RlKCktPmluZGV4KCkpLmFzY2lpKCkuZGF0YSgpKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQpAQCAtMjEwOTQsMTMgKzIxMDkxLDEzIEBAIElHTk9SRV9DTEFOR19XQVJOSU5H
U19FTkQKICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKHJlc3VsdCksIGVkZ2Us
IH5TcGVjQ2VsbENoZWNrLCBpc0NlbGwocmVzdWx0KSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQotCisgICAgCiAgICAgTFZhbHVlIGxvd1N0b3JhZ2UoRWRnZSBlZGdlKQogICAgIHsK
ICAgICAgICAgTG93ZXJlZE5vZGVWYWx1ZSB2YWx1ZSA9IG1fc3RvcmFnZVZhbHVlcy5nZXQoZWRn
ZS5ub2RlKCkpOwogICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCiAgICAgICAgICAgICByZXR1
cm4gdmFsdWUudmFsdWUoKTsKLQorICAgICAgICAKICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGxv
d0NlbGwoZWRnZSk7CiAgICAgICAgIHNldFN0b3JhZ2UoZWRnZS5ub2RlKCksIHJlc3VsdCk7CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC0yMTExNSw0OSArMjExMTIsNDkgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgICAgICBzZXRJbnQzMihlZGdlLm5vZGUoKSwgcmVzdWx0KTsK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0KKyAgICAKICAgICBMVmFsdWUgc3RyaWN0
SW50NTJUb0RvdWJsZShMVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gbV9vdXQu
aW50VG9Eb3VibGUodmFsdWUpOwogICAgIH0KLQorICAgIAogICAgIExWYWx1ZSBzdHJpY3RJbnQ1
MlRvSlNWYWx1ZShMVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICBMQmFzaWNCbG9jayBpc0lu
dDMyID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgaXNEb3VibGUgPSBt
X291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291
dC5uZXdCbG9jaygpOwotCisgICAgICAgIAogICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ss
IDI+IHJlc3VsdHM7Ci0KKyAgICAgICAgICAgIAogICAgICAgICBMVmFsdWUgaW50MzJWYWx1ZSA9
IG1fb3V0LmNhc3RUb0ludDMyKHZhbHVlKTsKICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAg
ICAgICAgbV9vdXQuZXF1YWwobV9vdXQuc2lnbkV4dDMyVG82NChpbnQzMlZhbHVlKSwgdmFsdWUp
LAogICAgICAgICAgICAgdW5zdXJlKGlzSW50MzIpLCB1bnN1cmUoaXNEb3VibGUpKTsKLQorICAg
ICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhpc0lu
dDMyLCBpc0RvdWJsZSk7Ci0KKyAgICAgICAgCiAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0
LmFuY2hvcihib3hJbnQzMihpbnQzMlZhbHVlKSkpOwogICAgICAgICBtX291dC5qdW1wKGNvbnRp
bnVhdGlvbik7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGlzRG91YmxlLCBj
b250aW51YXRpb24pOwotCisgICAgICAgIAogICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5h
bmNob3IoYm94RG91YmxlKG1fb3V0LmludFRvRG91YmxlKHZhbHVlKSkpKTsKICAgICAgICAgbV9v
dXQuanVtcChjb250aW51YXRpb24pOwotCisgICAgICAgIAogICAgICAgICBtX291dC5hcHBlbmRU
byhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKICAgICAgICAgcmV0dXJuIG1fb3V0LnBoaShJbnQ2
NCwgcmVzdWx0cyk7CiAgICAgfQotCisgICAgCiAgICAgTFZhbHVlIHN0cmljdEludDUyVG9JbnQ1
MihMVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gbV9vdXQuc2hsKHZhbHVlLCBt
X291dC5jb25zdEludDY0KEpTVmFsdWU6OmludDUyU2hpZnRBbW91bnQpKTsKICAgICB9Ci0KKyAg
ICAKICAgICBMVmFsdWUgaW50NTJUb1N0cmljdEludDUyKExWYWx1ZSB2YWx1ZSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBtX291dC5hU2hyKHZhbHVlLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6
OmludDUyU2hpZnRBbW91bnQpKTsKICAgICB9Ci0KKyAgICAKICAgICBMVmFsdWUgaXNJbnQzMihM
VmFsdWUganNWYWx1ZSwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQogICAgIHsK
ICAgICAgICAgaWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZhbHVlKHR5cGUsIFNwZWNJbnQz
Mk9ubHkpKQpAQCAtMjEzNjcsMzUgKzIxMzY0LDM1IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19F
TkQKICAgICAgICAgICAgIHJldHVybiBwcm92ZW47CiAgICAgICAgIHJldHVybiBpc0NlbGxPck1p
c2NPckJpZ0ludDMyKGpzVmFsdWUpOwogICAgIH0KLQorICAgIAogICAgIExWYWx1ZSBpc05vdENl
bGwoTFZhbHVlIGpzVmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKICAg
ICB7CiAgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlLCB+U3Bl
Y0NlbGxDaGVjaykpCiAgICAgICAgICAgICByZXR1cm4gcHJvdmVuOwogICAgICAgICByZXR1cm4g
bV9vdXQudGVzdE5vblplcm82NChqc1ZhbHVlLCBtX25vdENlbGxNYXNrKTsKICAgICB9Ci0KKyAg
ICAKICAgICBMVmFsdWUgaXNDZWxsKExWYWx1ZSBqc1ZhbHVlLCBTcGVjdWxhdGVkVHlwZSB0eXBl
ID0gU3BlY0Z1bGxUb3ApCiAgICAgewogICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJv
dmVuVmFsdWUodHlwZSwgU3BlY0NlbGxDaGVjaykpCiAgICAgICAgICAgICByZXR1cm4gcHJvdmVu
OwogICAgICAgICByZXR1cm4gbV9vdXQudGVzdElzWmVybzY0KGpzVmFsdWUsIG1fbm90Q2VsbE1h
c2spOwogICAgIH0KLQorICAgIAogICAgIExWYWx1ZSBpc05vdE1pc2MoTFZhbHVlIHZhbHVlLCBT
cGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCiAgICAgewogICAgICAgICBpZiAoTFZh
bHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSwgflNwZWNNaXNjKSkKICAgICAgICAgICAg
IHJldHVybiBwcm92ZW47CiAgICAgICAgIHJldHVybiBtX291dC5hYm92ZSh2YWx1ZSwgbV9vdXQu
Y29uc3RJbnQ2NChKU1ZhbHVlOjpNaXNjVGFnKSk7CiAgICAgfQotCisgICAgCiAgICAgTFZhbHVl
IGlzTWlzYyhMVmFsdWUgdmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkK
ICAgICB7CiAgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlLCBT
cGVjTWlzYykpCiAgICAgICAgICAgICByZXR1cm4gcHJvdmVuOwogICAgICAgICByZXR1cm4gbV9v
dXQubG9naWNhbE5vdChpc05vdE1pc2ModmFsdWUpKTsKICAgICB9Ci0KKyAgICAKICAgICBMVmFs
dWUgaXNOb3RCb29sZWFuKExWYWx1ZSBqc1ZhbHVlLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3Bl
Y0Z1bGxUb3ApCiAgICAgewogICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFs
dWUodHlwZSwgflNwZWNCb29sZWFuKSkKQEAgLTIxNDIxLDcgKzIxNDE4LDcgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgICAgICByZXR1cm4gbV9vdXQuc2VsZWN0KAogICAgICAgICAg
ICAgdmFsdWUsIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6VmFsdWVUcnVlKSwgbV9vdXQuY29u
c3RJbnQ2NChKU1ZhbHVlOjpWYWx1ZUZhbHNlKSk7CiAgICAgfQotCisgICAgCiAgICAgTFZhbHVl
IGlzTm90T3RoZXIoTFZhbHVlIHZhbHVlLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxU
b3ApCiAgICAgewogICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlw
ZSwgflNwZWNPdGhlcikpCkBAIC0yMTQzOCw3ICsyMTQzNSw3IEBAIElHTk9SRV9DTEFOR19XQVJO
SU5HU19FTkQKICAgICAgICAgICAgIG1fb3V0LmJpdEFuZCh2YWx1ZSwgbV9vdXQuY29uc3RJbnQ2
NCh+SlNWYWx1ZTo6VW5kZWZpbmVkVGFnKSksCiAgICAgICAgICAgICBtX291dC5jb25zdEludDY0
KEpTVmFsdWU6OlZhbHVlTnVsbCkpOwogICAgIH0KLQorICAgIAogICAgIExWYWx1ZSBpc1Byb3Zl
blZhbHVlKFNwZWN1bGF0ZWRUeXBlIHByb3ZlblR5cGUsIFNwZWN1bGF0ZWRUeXBlIHdhbnRlZFR5
cGUpCiAgICAgewogICAgICAgICBpZiAoIShwcm92ZW5UeXBlICYgfndhbnRlZFR5cGUpKQpAQCAt
MjE1OTUsMTcgKzIxNTkyLDE3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAg
ICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJVbnN1cHBvcnRlZCBzcGVjdWxhdGlvbiB1
c2Uga2luZCIpOwogICAgICAgICB9CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBzcGVjdWxhdGUo
Tm9kZSosIEVkZ2UgZWRnZSkKICAgICB7CiAgICAgICAgIHNwZWN1bGF0ZShlZGdlKTsKICAgICB9
Ci0KKyAgICAKICAgICB2b2lkIHNwZWN1bGF0ZUludDMyKEVkZ2UgZWRnZSkKICAgICB7CiAgICAg
ICAgIGxvd0ludDMyKGVkZ2UpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgc3BlY3VsYXRlQ2Vs
bChFZGdlIGVkZ2UpCiAgICAgewogICAgICAgICBsb3dDZWxsKGVkZ2UpOwpAQCAtMjE2MzQsOSAr
MjE2MzEsOSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgewogICAgICAgICBpZiAo
IW1faW50ZXJwcmV0ZXIubmVlZHNUeXBlQ2hlY2soZWRnZSkpCiAgICAgICAgICAgICByZXR1cm47
Ci0KKyAgICAKICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShlZGdlLCBNYW51YWxP
cGVyYW5kU3BlY3VsYXRpb24pOwotCisgICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayBpc05v
dEludDMyID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0
aW9uID0gbV9vdXQubmV3QmxvY2soKTsKIApAQCAtMjE2OTgsMTIgKzIxNjk1LDEyIEBAIElHTk9S
RV9DTEFOR19XQVJOSU5HU19FTkQKIAogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRp
b24sIGxhc3ROZXh0KTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIHNwZWN1bGF0ZUNlbGxPck90
aGVyKEVkZ2UgZWRnZSkKICAgICB7CiAgICAgICAgIGlmIChzaG91bGROb3RIYXZlVHlwZUNoZWNr
KGVkZ2UudXNlS2luZCgpKSkKICAgICAgICAgICAgIHJldHVybjsKLQorICAgICAgICAKICAgICAg
ICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShlZGdlLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRp
b24pOwogCiAgICAgICAgIExCYXNpY0Jsb2NrIGlzTm90Q2VsbCA9IG1fb3V0Lm5ld0Jsb2NrKCk7
CkBAIC0yMTcxNywxMiArMjE3MTQsMTIgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiAg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAgIH0KLQor
ICAgIAogICAgIHZvaWQgc3BlY3VsYXRlQW55SW50KEVkZ2UgZWRnZSkKICAgICB7CiAgICAgICAg
IGlmICghbV9pbnRlcnByZXRlci5uZWVkc1R5cGVDaGVjayhlZGdlKSkKICAgICAgICAgICAgIHJl
dHVybjsKLQorICAgICAgICAKICAgICAgICAganNWYWx1ZVRvU3RyaWN0SW50NTIoZWRnZSwgbG93
SlNWYWx1ZShlZGdlLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pKTsKICAgICB9CiAKQEAgLTIx
NzU0LDcgKzIxNzUxLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgIHsKICAgICAg
ICAgcmV0dXJuIGlzQ2VsbFdpdGhUeXBlKGNlbGwsIEpTVHlwZVJhbmdlIHsgc3RhdGljX2Nhc3Q8
SlNUeXBlPihGaXJzdFR5cGVkQXJyYXlUeXBlKSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihMYXN0VHlw
ZWRBcnJheVR5cGVFeGNsdWRpbmdEYXRhVmlldykgfSwgU3BlY1R5cGVkQXJyYXlWaWV3LCB0eXBl
KTsKICAgICB9Ci0KKyAgICAKICAgICBMVmFsdWUgaXNPYmplY3QoTFZhbHVlIGNlbGwsIFNwZWN1
bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKICAgICB7CiAgICAgICAgIGlmIChMVmFsdWUg
cHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGwsIFNwZWNPYmplY3QpKQpAQCAt
MjE3ODEsNyArMjE3NzgsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAg
ICBtX291dC5sb2FkOFplcm9FeHQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUp
LAogICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihTdHJpbmdUeXBlKSk7CiAgICAgfQotCisg
ICAgCiAgICAgTFZhbHVlIGlzU3RyaW5nKExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBl
ID0gU3BlY0Z1bGxUb3ApCiAgICAgewogICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJv
dmVuVmFsdWUodHlwZSAmIFNwZWNDZWxsLCBTcGVjU3RyaW5nKSkKQEAgLTIxODM3LDcgKzIxODM0
LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgbV9vdXQubG9hZDha
ZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKICAgICAgICAgICAg
IG1fb3V0LmNvbnN0SW50MzIoU3ltYm9sVHlwZSkpOwogICAgIH0KLQorICAgIAogICAgIExWYWx1
ZSBpc1N5bWJvbChMVmFsdWUgY2VsbCwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9w
KQogICAgIHsKICAgICAgICAgaWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZhbHVlKHR5cGUg
JiBTcGVjQ2VsbCwgU3BlY1N5bWJvbCkpCkBAIC0yMTk5MiwxNyArMjE5ODksMTcgQEAgSUdOT1JF
X0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6CiAg
ICAgICAgIGNhc2UgQXJyYXk6OlNsb3dQdXRBcnJheVN0b3JhZ2U6CiAgICAgICAgICAgICByZXR1
cm4gaXNBcnJheVR5cGVGb3JBcnJheWlmeShjZWxsLCBhcnJheU1vZGUpOwotCisgICAgICAgICAg
ICAKICAgICAgICAgY2FzZSBBcnJheTo6RGlyZWN0QXJndW1lbnRzOgogICAgICAgICAgICAgcmV0
dXJuIG1fb3V0LmVxdWFsKAogICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNl
bGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSksCiAgICAgICAgICAgICAgICAgbV9vdXQu
Y29uc3RJbnQzMihEaXJlY3RBcmd1bWVudHNUeXBlKSk7Ci0KKyAgICAgICAgICAgIAogICAgICAg
ICBjYXNlIEFycmF5OjpTY29wZWRBcmd1bWVudHM6CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQu
ZXF1YWwoCiAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFw
cy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMy
KFNjb3BlZEFyZ3VtZW50c1R5cGUpKTsKLQorICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6
IHsKICAgICAgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwgbV9ub2RlLCBhcnJheU1vZGUuaXNT
b21lVHlwZWRBcnJheVZpZXcoKSk7CiAgICAgICAgICAgICBpZiAoYXJyYXlNb2RlLnR5cGUoKSA9
PSBBcnJheTo6QW55VHlwZWRBcnJheSkKQEAgLTIyMDEzLDcgKzIyMDEwLDcgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0KKyAgICAKICAg
ICBMVmFsdWUgaXNGdW5jdGlvbihMVmFsdWUgY2VsbCwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNw
ZWNGdWxsVG9wKQogICAgIHsKICAgICAgICAgaWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZh
bHVlKHR5cGUgJiBTcGVjQ2VsbCwgU3BlY0Z1bmN0aW9uKSkKQEAgLTIyMDI2LDcgKzIyMDIzLDcg
QEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgcmV0dXJuIHByb3ZlbjsK
ICAgICAgICAgcmV0dXJuIGlzTm90VHlwZShjZWxsLCBKU0Z1bmN0aW9uVHlwZSk7CiAgICAgfQot
CisgICAgICAgICAgICAKICAgICBMVmFsdWUgaXNFeG90aWNGb3JUeXBlb2YoTFZhbHVlIGNlbGws
IFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKICAgICB7CiAgICAgICAgIGlmICgh
KHR5cGUgJiAoU3BlY09iamVjdE90aGVyIHwgU3BlY1Byb3h5T2JqZWN0KSkpCkBAIC0yMjA1NCwx
NyArMjIwNTEsMTcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgIHsKICAgICAgICAg
cmV0dXJuIGlzVHlwZShjZWxsLCBKU1R5cGVSYW5nZSB7IHR5cGUsIHR5cGUgfSk7CiAgICAgfQot
CisgICAgCiAgICAgTFZhbHVlIGlzTm90VHlwZShMVmFsdWUgY2VsbCwgSlNUeXBlIHR5cGUpCiAg
ICAgewogICAgICAgICByZXR1cm4gbV9vdXQubG9naWNhbE5vdChpc1R5cGUoY2VsbCwgdHlwZSkp
OwogICAgIH0KLQorICAgIAogICAgIHZvaWQgc3BlY3VsYXRlT2JqZWN0KEVkZ2UgZWRnZSwgTFZh
bHVlIGNlbGwpCiAgICAgewogICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUoY2Vs
bCksIGVkZ2UsIFNwZWNPYmplY3QsIGlzTm90T2JqZWN0KGNlbGwpKTsKICAgICB9Ci0KKyAgICAK
ICAgICB2b2lkIHNwZWN1bGF0ZU9iamVjdChFZGdlIGVkZ2UpCiAgICAgewogICAgICAgICBzcGVj
dWxhdGVPYmplY3QoZWRnZSwgbG93Q2VsbChlZGdlKSk7CkBAIC0yMjA4MCw2NCArMjIwNzcsNjQg
QEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgIHsKICAgICAgICAgc3BlY3VsYXRlQXJy
YXkoZWRnZSwgbG93Q2VsbChlZGdlKSk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBzcGVjdWxh
dGVGdW5jdGlvbihFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKICAgICAgICAgRlRMX1RZ
UEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjRnVuY3Rpb24sIGlzTm90RnVu
Y3Rpb24oY2VsbCkpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgc3BlY3VsYXRlRnVuY3Rpb24o
RWRnZSBlZGdlKQogICAgIHsKICAgICAgICAgc3BlY3VsYXRlRnVuY3Rpb24oZWRnZSwgbG93Q2Vs
bChlZGdlKSk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVPYmplY3RPck90aGVy
KEVkZ2UgZWRnZSkKICAgICB7CiAgICAgICAgIGlmICghbV9pbnRlcnByZXRlci5uZWVkc1R5cGVD
aGVjayhlZGdlKSkKICAgICAgICAgICAgIHJldHVybjsKLQorICAgICAgICAKICAgICAgICAgTFZh
bHVlIHZhbHVlID0gbG93SlNWYWx1ZShlZGdlLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwot
CisgICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayBjZWxsQ2FzZSA9IG1fb3V0Lm5ld0Jsb2Nr
KCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIHByaW1pdGl2ZUNhc2UgPSBtX291dC5uZXdCbG9jaygp
OwogICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwot
CisgICAgICAgIAogICAgICAgICBtX291dC5icmFuY2goaXNOb3RDZWxsKHZhbHVlLCBwcm92ZW5U
eXBlKGVkZ2UpKSwgdW5zdXJlKHByaW1pdGl2ZUNhc2UpLCB1bnN1cmUoY2VsbENhc2UpKTsKLQor
ICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhj
ZWxsQ2FzZSwgcHJpbWl0aXZlQ2FzZSk7Ci0KKyAgICAgICAgCiAgICAgICAgIEZUTF9UWVBFX0NI
RUNLKAogICAgICAgICAgICAganNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRnZSwgKH5TcGVjQ2VsbENo
ZWNrKSB8IFNwZWNPYmplY3QsIGlzTm90T2JqZWN0KHZhbHVlKSk7Ci0KKyAgICAgICAgCiAgICAg
ICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQu
YXBwZW5kVG8ocHJpbWl0aXZlQ2FzZSwgY29udGludWF0aW9uKTsKLQorICAgICAgICAKICAgICAg
ICAgRlRMX1RZUEVfQ0hFQ0soCiAgICAgICAgICAgICBqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdl
LCBTcGVjQ2VsbENoZWNrIHwgU3BlY090aGVyLCBpc05vdE90aGVyKHZhbHVlKSk7Ci0KKyAgICAg
ICAgCiAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAgICAgICAKICAgICAg
ICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgfQotCisgICAg
CiAgICAgdm9pZCBzcGVjdWxhdGVGaW5hbE9iamVjdChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQog
ICAgIHsKICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCiAgICAgICAgICAgICBqc1ZhbHVlVmFsdWUo
Y2VsbCksIGVkZ2UsIFNwZWNGaW5hbE9iamVjdCwgaXNOb3RUeXBlKGNlbGwsIEZpbmFsT2JqZWN0
VHlwZSkpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgc3BlY3VsYXRlRmluYWxPYmplY3QoRWRn
ZSBlZGdlKQogICAgIHsKICAgICAgICAgc3BlY3VsYXRlRmluYWxPYmplY3QoZWRnZSwgbG93Q2Vs
bChlZGdlKSk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVSZWdFeHBPYmplY3Qo
RWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKICAgICB7CiAgICAgICAgIEZUTF9UWVBFX0NIRUNLKAog
ICAgICAgICAgICAganNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjUmVnRXhwT2JqZWN0LCBp
c05vdFR5cGUoY2VsbCwgUmVnRXhwT2JqZWN0VHlwZSkpOwogICAgIH0KLQorICAgIAogICAgIHZv
aWQgc3BlY3VsYXRlUmVnRXhwT2JqZWN0KEVkZ2UgZWRnZSkKICAgICB7CiAgICAgICAgIHNwZWN1
bGF0ZVJlZ0V4cE9iamVjdChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKQEAgLTIyMjQxLDIyICsyMjIz
OCwyMiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgewogICAgICAgICBzcGVjdWxh
dGVEYXRhVmlld09iamVjdChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKICAgICB9Ci0KKyAgICAKICAg
ICB2b2lkIHNwZWN1bGF0ZVN0cmluZyhFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKICAg
ICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjU3RyaW5n
LCBpc05vdFN0cmluZyhjZWxsKSk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVT
dHJpbmcoRWRnZSBlZGdlKQogICAgIHsKICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKGVkZ2UsIGxv
d0NlbGwoZWRnZSkpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT3JP
dGhlcihFZGdlIGVkZ2UsIExWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmICghbV9pbnRl
cnByZXRlci5uZWVkc1R5cGVDaGVjayhlZGdlKSkKICAgICAgICAgICAgIHJldHVybjsKLQorICAg
ICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgY2VsbENhc2UgPSBtX291dC5uZXdCbG9jaygpOwog
ICAgICAgICBMQmFzaWNCbG9jayBub3RDZWxsQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAg
ICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CkBAIC0yMjI3
NSwxNyArMjIyNzIsMTcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBtX291
dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlv
biwgbGFzdE5leHQpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT3JP
dGhlcihFZGdlIGVkZ2UpCiAgICAgewogICAgICAgICBzcGVjdWxhdGVTdHJpbmdPck90aGVyKGVk
Z2UsIGxvd0pTVmFsdWUoZWRnZSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKSk7CiAgICAgfQot
CisgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdJZGVudChFZGdlIGVkZ2UsIExWYWx1ZSBz
dHJpbmcsIExWYWx1ZSBzdHJpbmdJbXBsKQogICAgIHsKICAgICAgICAgaWYgKCFtX2ludGVycHJl
dGVyLm5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTdHJpbmdJZGVudCB8IH5TcGVjU3RyaW5nKSkK
ICAgICAgICAgICAgIHJldHVybjsKLQorICAgICAgICAKICAgICAgICAgc3BlY3VsYXRlKEJhZFR5
cGUsIGpzVmFsdWVWYWx1ZShzdHJpbmcpLCBlZGdlLm5vZGUoKSwgaXNSb3BlU3RyaW5nKHN0cmlu
ZykpOwogICAgICAgICBzcGVjdWxhdGUoCiAgICAgICAgICAgICBCYWRUeXBlLCBqc1ZhbHVlVmFs
dWUoc3RyaW5nKSwgZWRnZS5ub2RlKCksCkBAIC0yMjI5NCwyMCArMjIyOTEsMjAgQEAgSUdOT1JF
X0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoU3Ry
aW5nSW1wbDo6ZmxhZ0lzQXRvbSgpKSkpOwogICAgICAgICBtX2ludGVycHJldGVyLmZpbHRlcihl
ZGdlLCBTcGVjU3RyaW5nSWRlbnQgfCB+U3BlY1N0cmluZyk7CiAgICAgfQotCisgICAgCiAgICAg
dm9pZCBzcGVjdWxhdGVTdHJpbmdJZGVudChFZGdlIGVkZ2UpCiAgICAgewogICAgICAgICBsb3dT
dHJpbmdJZGVudChlZGdlKTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmlu
Z09iamVjdChFZGdlIGVkZ2UpCiAgICAgewogICAgICAgICBpZiAoIW1faW50ZXJwcmV0ZXIubmVl
ZHNUeXBlQ2hlY2soZWRnZSwgU3BlY1N0cmluZ09iamVjdCkpCiAgICAgICAgICAgICByZXR1cm47
Ci0KKyAgICAgICAgCiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZvckNlbGwoZWRnZSwg
bG93Q2VsbChlZGdlKSk7CiAgICAgfQotCisgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdP
clN0cmluZ09iamVjdChFZGdlIGVkZ2UpCiAgICAgewogICAgICAgICBpZiAoIW1faW50ZXJwcmV0
ZXIubmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY1N0cmluZyB8IFNwZWNTdHJpbmdPYmplY3QpKQpA
QCAtMjIzMTYsMjUgKzIyMzEzLDI1IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAg
ICAgTFZhbHVlIGNlbGxCYXNlID0gbG93Q2VsbChlZGdlKTsKICAgICAgICAgaWYgKCFtX2ludGVy
cHJldGVyLm5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTdHJpbmcgfCBTcGVjU3RyaW5nT2JqZWN0
KSkKICAgICAgICAgICAgIHJldHVybjsKLQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sg
bm90U3RyaW5nID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29udGlu
dWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKLQorICAgICAgICAKICAgICAgICAgTFZhbHVlIHR5
cGUgPSBtX291dC5sb2FkOFplcm9FeHQzMihjZWxsQmFzZSwgbV9oZWFwcy5KU0NlbGxfdHlwZUlu
Zm9UeXBlKTsKICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgbV9vdXQuZXF1YWwo
dHlwZSwgbV9vdXQuY29uc3RJbnQzMihTdHJpbmdUeXBlKSksCiAgICAgICAgICAgICB1bnN1cmUo
Y29udGludWF0aW9uKSwgdW5zdXJlKG5vdFN0cmluZykpOwotCisgICAgICAgIAogICAgICAgICBM
QmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdFN0cmluZywgY29udGludWF0
aW9uKTsKICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgQmFkVHlwZSwganNWYWx1ZVZh
bHVlKGNlbGxCYXNlKSwgZWRnZS5ub2RlKCksCiAgICAgICAgICAgICBtX291dC5ub3RFcXVhbCh0
eXBlLCBtX291dC5jb25zdEludDMyKFN0cmluZ09iamVjdFR5cGUpKSk7CiAgICAgICAgIG1fb3V0
Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8o
Y29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgIG1faW50ZXJwcmV0ZXIuZmlsdGVyKGVk
Z2UsIFNwZWNTdHJpbmcgfCBTcGVjU3RyaW5nT2JqZWN0KTsKICAgICB9Ci0KKyAgICAKICAgICB2
b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZvckNlbGwoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkK
ICAgICB7CiAgICAgICAgIGlmICghbV9pbnRlcnByZXRlci5uZWVkc1R5cGVDaGVjayhlZGdlLCBT
cGVjU3RyaW5nT2JqZWN0KSkKQEAgLTIyMzQzLDcgKzIyMzQwLDcgQEAgSUdOT1JFX0NMQU5HX1dB
Uk5JTkdTX0VORAogICAgICAgICBMVmFsdWUgdHlwZSA9IG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNl
bGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSk7CiAgICAgICAgIEZUTF9UWVBFX0NIRUNL
KGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY1N0cmluZ09iamVjdCwgbV9vdXQubm90RXF1
YWwodHlwZSwgbV9vdXQuY29uc3RJbnQzMihTdHJpbmdPYmplY3RUeXBlKSkpOwogICAgIH0KLQor
ICAgIAogICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCiAg
ICAgewogICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNw
ZWNTeW1ib2wsIGlzTm90U3ltYm9sKGNlbGwpKTsKQEAgLTIyMzgyLDM4ICsyMjM3OSwzOCBAQCBJ
R05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVW
YWx1ZShjZWxsKSwgZWRnZSwgU3BlY09iamVjdCwgaXNOb3RPYmplY3QoY2VsbCkpOwogICAgICAg
ICBpZiAobV9ncmFwaC5pc1dhdGNoaW5nT2JqZWN0UHJvdG90eXBlQ2hhaW5Jc1NhbmVXYXRjaHBv
aW50KG1fbm9kZSkpCiAgICAgICAgICAgICByZXR1cm47Ci0KKyAgICAgICAgCiAgICAgICAgIHNw
ZWN1bGF0ZSgKICAgICAgICAgICAgIEJhZFR5cGUsIGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZS5u
b2RlKCksCiAgICAgICAgICAgICBtX291dC50ZXN0Tm9uWmVybzMyKAogICAgICAgICAgICAgICAg
IG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxhZ3Mp
LAogICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoTWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZCkpKTsKICAgICB9Ci0KKyAgICAKICAgICB2b2lkIHNwZWN1bGF0ZU51bWJlcihFZGdlIGVkZ2Up
CiAgICAgewogICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKGVkZ2UsIE1hbnVhbE9w
ZXJhbmRTcGVjdWxhdGlvbik7CiAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZSh2
YWx1ZSksIGVkZ2UsIFNwZWNCeXRlY29kZU51bWJlciwgaXNOb3ROdW1iZXIodmFsdWUpKTsKICAg
ICB9Ci0KKyAgICAKICAgICB2b2lkIHNwZWN1bGF0ZVJlYWxOdW1iZXIoRWRnZSBlZGdlKQogICAg
IHsKICAgICAgICAgLy8gRG8gYW4gZWFybHkgcmV0dXJuIGhlcmUgYmVjYXVzZSBsb3dEb3VibGUo
KSBjYW4gY3JlYXRlIGEgbG90IG9mIGNvbnRyb2wgZmxvdy4KICAgICAgICAgaWYgKCFtX2ludGVy
cHJldGVyLm5lZWRzVHlwZUNoZWNrKGVkZ2UpKQogICAgICAgICAgICAgcmV0dXJuOwotCisgICAg
ICAgIAogICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKGVkZ2UsIE1hbnVhbE9wZXJh
bmRTcGVjdWxhdGlvbik7CiAgICAgICAgIExWYWx1ZSBkb3VibGVWYWx1ZSA9IHVuYm94RG91Ymxl
KHZhbHVlKTsKLQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgaW50T3JOYU5DYXNlID0g
bV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9v
dXQubmV3QmxvY2soKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAg
ICAgICAgbV9vdXQuZG91YmxlRXF1YWwoZG91YmxlVmFsdWUsIGRvdWJsZVZhbHVlKSwKICAgICAg
ICAgICAgIHVzdWFsbHkoY29udGludWF0aW9uKSwgcmFyZWx5KGludE9yTmFOQ2FzZSkpOwotCisg
ICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlu
dE9yTmFOQ2FzZSwgY29udGludWF0aW9uKTsKLQorICAgICAgICAKICAgICAgICAgdHlwZUNoZWNr
KAogICAgICAgICAgICAganNWYWx1ZVZhbHVlKHZhbHVlKSwgbV9ub2RlLT5jaGlsZDEoKSwgU3Bl
Y0J5dGVjb2RlUmVhbE51bWJlciwKICAgICAgICAgICAgIGlzTm90SW50MzIodmFsdWUsIHByb3Zl
blR5cGUobV9ub2RlLT5jaGlsZDEoKSkgJiB+U3BlY0RvdWJsZVJlYWwpKTsKQEAgLTIyNDIxLDU2
ICsyMjQxOCw1NiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAgbV9vdXQu
YXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgfQotCisgICAgCiAgICAgdm9p
ZCBzcGVjdWxhdGVEb3VibGVSZXBSZWFsKEVkZ2UgZWRnZSkKICAgICB7CiAgICAgICAgIC8vIERv
IGFuIGVhcmx5IHJldHVybiBoZXJlIGJlY2F1c2UgbG93RG91YmxlKCkgY2FuIGNyZWF0ZSBhIGxv
dCBvZiBjb250cm9sIGZsb3cuCiAgICAgICAgIGlmICghbV9pbnRlcnByZXRlci5uZWVkc1R5cGVD
aGVjayhlZGdlKSkKICAgICAgICAgICAgIHJldHVybjsKLQorICAgICAgICAKICAgICAgICAgTFZh
bHVlIHZhbHVlID0gbG93RG91YmxlKGVkZ2UpOwogICAgICAgICBGVExfVFlQRV9DSEVDSygKICAg
ICAgICAgICAgIGRvdWJsZVZhbHVlKHZhbHVlKSwgZWRnZSwgU3BlY0RvdWJsZVJlYWwsCiAgICAg
ICAgICAgICBtX291dC5kb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkKHZhbHVlLCB2YWx1ZSkpOwog
ICAgIH0KLQorICAgIAogICAgIHZvaWQgc3BlY3VsYXRlRG91YmxlUmVwQW55SW50KEVkZ2UgZWRn
ZSkKICAgICB7CiAgICAgICAgIGlmICghbV9pbnRlcnByZXRlci5uZWVkc1R5cGVDaGVjayhlZGdl
KSkKICAgICAgICAgICAgIHJldHVybjsKLQorICAgICAgICAKICAgICAgICAgZG91YmxlVG9TdHJp
Y3RJbnQ1MihCYWRUeXBlLCBlZGdlLCBsb3dEb3VibGUoZWRnZSkpOwogICAgICAgICBtX2ludGVy
cHJldGVyLmZpbHRlcihlZGdlLCBTcGVjQW55SW50QXNEb3VibGUpOwogICAgIH0KLQorICAgIAog
ICAgIHZvaWQgc3BlY3VsYXRlQm9vbGVhbihFZGdlIGVkZ2UpCiAgICAgewogICAgICAgICBsb3dC
b29sZWFuKGVkZ2UpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgc3BlY3VsYXRlTm90U3RyaW5n
VmFyKEVkZ2UgZWRnZSkKICAgICB7CiAgICAgICAgIGlmICghbV9pbnRlcnByZXRlci5uZWVkc1R5
cGVDaGVjayhlZGdlLCB+U3BlY1N0cmluZ1ZhcikpCiAgICAgICAgICAgICByZXR1cm47Ci0KKyAg
ICAgICAgCiAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUoZWRnZSwgTWFudWFsT3Bl
cmFuZFNwZWN1bGF0aW9uKTsKLQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgaXNDZWxs
Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGlzU3RyaW5nQ2Fz
ZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9
IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmJyYW5jaChpc0Nl
bGwodmFsdWUsIHByb3ZlblR5cGUoZWRnZSkpLCB1bnN1cmUoaXNDZWxsQ2FzZSksIHVuc3VyZShj
b250aW51YXRpb24pKTsKLQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQg
PSBtX291dC5hcHBlbmRUbyhpc0NlbGxDYXNlLCBpc1N0cmluZ0Nhc2UpOwogICAgICAgICBtX291
dC5icmFuY2goaXNTdHJpbmcodmFsdWUsIHByb3ZlblR5cGUoZWRnZSkpLCB1bnN1cmUoaXNTdHJp
bmdDYXNlKSwgdW5zdXJlKGNvbnRpbnVhdGlvbikpOwotCisgICAgICAgIAogICAgICAgICBtX291
dC5hcHBlbmRUbyhpc1N0cmluZ0Nhc2UsIGNvbnRpbnVhdGlvbik7CiAgICAgICAgIHNwZWN1bGF0
ZVN0cmluZ0lkZW50KGVkZ2UsIHZhbHVlLCBtX291dC5sb2FkUHRyKHZhbHVlLCBtX2hlYXBzLkpT
U3RyaW5nX3ZhbHVlKSk7CiAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAg
ICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAg
ICAgfQotCisgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVOb3RTeW1ib2woRWRnZSBlZGdlKQogICAg
IHsKICAgICAgICAgaWYgKCFtX2ludGVycHJldGVyLm5lZWRzVHlwZUNoZWNrKGVkZ2UsIH5TcGVj
U3ltYm9sKSkKQEAgLTIyNDk3LDE2ICsyMjQ5NCwxNiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAgICAgewogICAgICAgICBpZiAoIW1faW50ZXJwcmV0ZXIubmVlZHNUeXBlQ2hlY2soZWRn
ZSkpCiAgICAgICAgICAgICByZXR1cm47Ci0KKyAgICAgICAgCiAgICAgICAgIExWYWx1ZSB2YWx1
ZSA9IGxvd0pTVmFsdWUoZWRnZSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKICAgICAgICAg
dHlwZUNoZWNrKGpzVmFsdWVWYWx1ZSh2YWx1ZSksIGVkZ2UsIFNwZWNPdGhlciwgaXNOb3RPdGhl
cih2YWx1ZSkpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgc3BlY3VsYXRlTWlzYyhFZGdlIGVk
Z2UpCiAgICAgewogICAgICAgICBpZiAoIW1faW50ZXJwcmV0ZXIubmVlZHNUeXBlQ2hlY2soZWRn
ZSkpCiAgICAgICAgICAgICByZXR1cm47Ci0KKyAgICAgICAgCiAgICAgICAgIExWYWx1ZSB2YWx1
ZSA9IGxvd0pTVmFsdWUoZWRnZSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKICAgICAgICAg
dHlwZUNoZWNrKGpzVmFsdWVWYWx1ZSh2YWx1ZSksIGVkZ2UsIFNwZWNNaXNjLCBpc05vdE1pc2Mo
dmFsdWUpKTsKICAgICB9CkBAIC0yMjU0Myw3ICsyMjU0MCw3IEBAIElHTk9SRV9DTEFOR19XQVJO
SU5HU19FTkQKICAgICAgICAgICAgIHJlY2hlY2tQYXRoID0gbV9vdXQubmV3QmxvY2soKTsKICAg
ICAgICAgTEJhc2ljQmxvY2sgc2xvd1BhdGggPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBM
QmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwotCisgICAgICAgIAog
ICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9y
ZShpc0ZlbmNlZCA/IHJlY2hlY2tQYXRoIDogc2xvd1BhdGgpOwogCiAgICAgICAgIExWYWx1ZSB0
aHJlc2hvbGQ7CkBAIC0yMjU1MSw1NiArMjI1NDgsNTYgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdT
X0VORAogICAgICAgICAgICAgdGhyZXNob2xkID0gbV9vdXQubG9hZDMyKG1fdm1WYWx1ZSwgbV9o
ZWFwcy5WTV9oZWFwX2JhcnJpZXJUaHJlc2hvbGQpOwogICAgICAgICBlbHNlCiAgICAgICAgICAg
ICB0aHJlc2hvbGQgPSBtX291dC5jb25zdEludDMyKGJsYWNrVGhyZXNob2xkKTsKLQorICAgICAg
ICAKICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgbV9vdXQuYWJvdmUobG9hZENl
bGxTdGF0ZShiYXNlKSwgdGhyZXNob2xkKSwKICAgICAgICAgICAgIHVzdWFsbHkoY29udGludWF0
aW9uKSwgcmFyZWx5KGlzRmVuY2VkID8gcmVjaGVja1BhdGggOiBzbG93UGF0aCkpOwotCisgICAg
ICAgIAogICAgICAgICBpZiAoaXNGZW5jZWQpIHsKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRv
KHJlY2hlY2tQYXRoLCBzbG93UGF0aCk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9v
dXQuZmVuY2UoJm1faGVhcHMucm9vdCwgJm1faGVhcHMuSlNDZWxsX2NlbGxTdGF0ZSk7Ci0KKyAg
ICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIG1f
b3V0LmFib3ZlKGxvYWRDZWxsU3RhdGUoYmFzZSksIG1fb3V0LmNvbnN0SW50MzIoYmxhY2tUaHJl
c2hvbGQpKSwKICAgICAgICAgICAgICAgICB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVseShz
bG93UGF0aCkpOwogICAgICAgICB9CiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd1BhdGgs
IGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgCiAgICAgICAgIExWYWx1ZSBjYWxsID0gdm1DYWxs
KFZvaWQsIG9wZXJhdGlvbldyaXRlQmFycmllclNsb3dQYXRoLCBtX3ZtVmFsdWUsIGJhc2UpOwog
ICAgICAgICBtX2hlYXBzLmRlY29yYXRlQ0NhbGxSZWFkKCZtX2hlYXBzLnJvb3QsIGNhbGwpOwog
ICAgICAgICBtX2hlYXBzLmRlY29yYXRlQ0NhbGxXcml0ZSgmbV9oZWFwcy5KU0NlbGxfY2VsbFN0
YXRlLCBjYWxsKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24p
OwogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAg
IH0KLQorICAgIAogICAgIHZvaWQgbXV0YXRvckZlbmNlKCkKICAgICB7CiAgICAgICAgIGlmIChp
c1g4NigpKSB7CiAgICAgICAgICAgICBtX291dC5mZW5jZSgmbV9oZWFwcy5yb290LCBudWxscHRy
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBM
QmFzaWNCbG9jayBzbG93UGF0aCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Js
b2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAgICAgCiAgICAgICAg
IExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuaW5zZXJ0TmV3QmxvY2tzQmVmb3JlKHNsb3dQ
YXRoKTsKLQorICAgICAgICAKICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgbV9v
dXQubG9hZDhaZXJvRXh0MzIobV92bVZhbHVlLCBtX2hlYXBzLlZNX2hlYXBfbXV0YXRvclNob3Vs
ZEJlRmVuY2VkKSwKICAgICAgICAgICAgIHJhcmVseShzbG93UGF0aCksIHVzdWFsbHkoY29udGlu
dWF0aW9uKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dQYXRoLCBj
b250aW51YXRpb24pOwotCisgICAgICAgIAogICAgICAgICBtX291dC5mZW5jZSgmbV9oZWFwcy5y
b290LCBudWxscHRyKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCisgICAg
ICAgIAogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKICAg
ICB9Ci0KKyAgICAKICAgICB2b2lkIG51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHkoTFZhbHVl
IGJ1dHRlcmZseSwgTFZhbHVlIG9iamVjdCkKICAgICB7CiAgICAgICAgIGlmIChpc1g4NigpKSB7
CkBAIC0yMjYxNCwyNCArMjI2MTEsMjQgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAg
ICAgICAgICAgbV9vdXQuZmVuY2UoJm1faGVhcHMucm9vdCwgbnVsbHB0cik7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgZmFz
dFBhdGggPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBzbG93UGF0aCA9
IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1f
b3V0Lm5ld0Jsb2NrKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0
ID0gbV9vdXQuaW5zZXJ0TmV3QmxvY2tzQmVmb3JlKGZhc3RQYXRoKTsKLQorICAgICAgICAKICAg
ICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIobV92
bVZhbHVlLCBtX2hlYXBzLlZNX2hlYXBfbXV0YXRvclNob3VsZEJlRmVuY2VkKSwKICAgICAgICAg
ICAgIHJhcmVseShzbG93UGF0aCksIHVzdWFsbHkoZmFzdFBhdGgpKTsKIAogICAgICAgICBtX291
dC5hcHBlbmRUbyhmYXN0UGF0aCwgc2xvd1BhdGgpOwotCisgICAgICAgIAogICAgICAgICBtX291
dC5zdG9yZVB0cihidXR0ZXJmbHksIG9iamVjdCwgbV9oZWFwcy5KU09iamVjdF9idXR0ZXJmbHkp
OwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KKyAgICAgICAgCiAgICAgICAg
IG1fb3V0LmFwcGVuZFRvKHNsb3dQYXRoLCBjb250aW51YXRpb24pOwotCisgICAgICAgIAogICAg
ICAgICBtX291dC5zdG9yZTMyKAogICAgICAgICAgICAgbV9vdXQuYml0T3IoCiAgICAgICAgICAg
ICAgICAgbV9vdXQubG9hZDMyKG9iamVjdCwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlSUQpLApA
QCAtMjI2NDEsNDAgKzIyNjM4LDQxIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAg
ICAgbV9vdXQuc3RvcmVQdHIoYnV0dGVyZmx5LCBvYmplY3QsIG1faGVhcHMuSlNPYmplY3RfYnV0
dGVyZmx5KTsKICAgICAgICAgbV9vdXQuZmVuY2UoJm1faGVhcHMucm9vdCwgbnVsbHB0cik7CiAg
ICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQorICAgICAgICAKICAgICAgICAgbV9v
dXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgfQotCi0gICAgLy8gRklY
TUU6IFdlIHNob3VsZCBiZSBhYmxlIHRvIGluZmVyIHR5cGUgZnJvbSBPcGVyYXRpb25UeXBlCi0g
ICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uUmVzdWx0VHlwZT4KLSAgICBMVHlwZSByZXN1
bHRUeXBlRm9yT3BlcmF0aW9uKExUeXBlIHR5cGUpCi0gICAgewotICAgICAgICBpZiBjb25zdGV4
cHIgKGlzQjNTdXBwb3J0ZWRFeGNlcHRpb25PcGVyYXRpb25SZXN1bHQ8T3BlcmF0aW9uUmVzdWx0
VHlwZT4pCi0gICAgICAgICAgICByZXR1cm4gdG9PcGVyYXRpb25UeXBlKHR5cGUpOwotICAgICAg
ICByZXR1cm4gdHlwZTsKLSAgICB9Ci0KKyAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVy
YXRpb25UeXBlLCB0eXBlbmFtZS4uLiBBcmdzPgotICAgIHJlcXVpcmVzICghc3RkOjppc19zYW1l
X3Y8T3BlcmF0aW9uVHlwZSwgTFZhbHVlPiAmJiAhc3RkOjppc19zYW1lX3Y8Q29kZVB0cjxPcGVy
YXRpb25QdHJUYWc+LCBPcGVyYXRpb25UeXBlPikKICAgICBMVmFsdWUgdm1DYWxsKExUeXBlIHR5
cGUsIE9wZXJhdGlvblR5cGUgZnVuY3Rpb24sIEFyZ3MmJi4uLiBhcmdzKQogICAgIHsKLSAgICAg
ICAgc3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6Y0NhbGxBcml0
eSgpID09IHNpemVvZi4uLihBcmdzKSwgIlNhbml0eSBjaGVjayIpOworICAgICAgICBzdGF0aWNf
YXNzZXJ0KCFzdGQ6OmlzX3NhbWU8T3BlcmF0aW9uVHlwZSwgTFZhbHVlPjo6dmFsdWUpOworICAg
ICAgICBpZiBjb25zdGV4cHIgKCFzdGQ6OmlzX3NhbWVfdjxDb2RlUHRyPE9wZXJhdGlvblB0clRh
Zz4sIE9wZXJhdGlvblR5cGU+KQorICAgICAgICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlvblRy
YWl0czxPcGVyYXRpb25UeXBlPjo6Y0NhbGxBcml0eSgpID09IHNpemVvZi4uLihBcmdzKSwgIlNh
bml0eSBjaGVjayIpOwogICAgICAgICBjYWxsUHJlZmxpZ2h0KCk7Ci0gICAgICAgIHVzaW5nIFJl
c3VsdFR5cGUgPSB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6UmVzdWx0
VHlwZTsKLSAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmNhbGwocmVzdWx0VHlwZUZvck9w
ZXJhdGlvbjxSZXN1bHRUeXBlPih0eXBlKSwgbV9vdXQub3BlcmF0aW9uKGZ1bmN0aW9uKSwgc3Rk
Ojpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKLSAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkV4Y2Vw
dGlvbkNoZWNrQW5kRXh0cmFjdFJlc3VsdElmTmVlZGVkPFJlc3VsdFR5cGU+KHJlc3VsdCk7Ci0g
ICAgfQorICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuY2FsbCh0eXBlLCBtX291dC5vcGVy
YXRpb24oZnVuY3Rpb24pLCBzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOworICAgICAgICBp
ZiAobWF5RXhpdChtX2dyYXBoLCBtX25vZGUpKQorICAgICAgICAgICAgY2FsbENoZWNrKCk7Cisg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gV2UgY2FuJ3QgZXhpdCBkdWUgdG8gYW4gZXhj
ZXB0aW9uLCBzbyB3ZSBhbHNvIGNhbid0IHRocm93IGFuIGV4Y2VwdGlvbi4KKyNpZm5kZWYgTkRF
QlVHCisgICAgICAgICAgICBMQmFzaWNCbG9jayBjcmFzaCA9IG1fb3V0Lm5ld0Jsb2NrKCk7Cisg
ICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwog
Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdHlwZW5hbWUuLi4gQXJncz4K
LSAgICBMVmFsdWUgdm1DYWxsKExUeXBlIHR5cGUsIENvZGVQdHI8T3BlcmF0aW9uUHRyVGFnPiBm
dW5jdGlvbiwgQXJncyYmLi4uIGFyZ3MpCi0gICAgewotICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1
bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+OjpjQ2FsbEFyaXR5KCkgPT0gc2l6ZW9mLi4uKEFy
Z3MpLCAiU2FuaXR5IGNoZWNrIik7Ci0gICAgICAgIGNhbGxQcmVmbGlnaHQoKTsKLSAgICAgICAg
dXNpbmcgUmVzdWx0VHlwZSA9IHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+
OjpSZXN1bHRUeXBlOwotICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuY2FsbChyZXN1bHRU
eXBlRm9yT3BlcmF0aW9uPFJlc3VsdFR5cGU+KHR5cGUpLCBtX291dC5vcGVyYXRpb24oZnVuY3Rp
b24pLCBzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwotICAgICAgICByZXR1cm4gb3BlcmF0
aW9uRXhjZXB0aW9uQ2hlY2tBbmRFeHRyYWN0UmVzdWx0SWZOZWVkZWQ8UmVzdWx0VHlwZT4ocmVz
dWx0KTsKLSAgICB9CisgICAgICAgICAgICBMVmFsdWUgZXhjZXB0aW9uID0gbV9vdXQubG9hZDY0
KG1fdm1WYWx1ZSwgbV9oZWFwcy5WTV9leGNlcHRpb24pOworICAgICAgICAgICAgTFZhbHVlIGhh
ZEV4Y2VwdGlvbiA9IG1fb3V0Lm5vdFplcm82NChleGNlcHRpb24pOwogCisgICAgICAgICAgICBt
X291dC5icmFuY2goCisgICAgICAgICAgICAgICAgaGFkRXhjZXB0aW9uLCByYXJlbHkoY3Jhc2gp
LCB1c3VhbGx5KGNvbnRpbnVhdGlvbikpOworCisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0
TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGNyYXNoLCBjb250aW51YXRpb24pOworICAgICAgICAgICAg
bV9vdXQudW5yZWFjaGFibGUoKTsKKworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGlu
dWF0aW9uLCBsYXN0TmV4dCk7CisjZW5kaWYKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIH0KKyAgICAKICAgICB2b2lkIGNhbGxQcmVmbGlnaHQoQ29kZU9yaWdpbiBjb2Rl
T3JpZ2luKQogICAgIHsKICAgICAgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4ID0gbV9m
dGxTdGF0ZS5qaXRDb2RlLT5jb21tb24uY29kZU9yaWdpbnMtPmFkZENvZGVPcmlnaW4oY29kZU9y
aWdpbik7CkBAIC0yMjcwMSw1NCArMjI2OTksMjUgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VO
RAogICAgICAgICAgICAgLy8gVGhpcyBjYXNlIGFyaXNlcyB3aGVuIHlvdSBoYXZlIGEgc2l0dWF0
aW9uIGxpa2UgdGhpczoKICAgICAgICAgICAgIC8vIGZvbyBtYWtlcyBhIGNhbGwgdG8gYmFyLCBi
YXIgaXMgaW5saW5lZCBpbiBmb28uIGJhciBtYWtlcyBhIGNhbGwKICAgICAgICAgICAgIC8vIHRv
IGJheiBhbmQgYmF6IGlzIGlubGluZWQgaW4gYmFyLiBBbmQgdGhlbiBiYXogbWFrZXMgYSB0YWls
LWNhbGwgdG8gamF6LAotICAgICAgICAgICAgLy8gYW5kIGpheiBpcyBpbmxpbmVkIGluIGJhei4g
V2Ugd2FudCB0aGUgY2FsbGZyYW1lIGZvciBqYXogdG8gYXBwZWFyIHRvCisgICAgICAgICAgICAv
LyBhbmQgamF6IGlzIGlubGluZWQgaW4gYmF6LiBXZSB3YW50IHRoZSBjYWxsZnJhbWUgZm9yIGph
eiB0byBhcHBlYXIgdG8gCiAgICAgICAgICAgICAvLyBoYXZlIGNhbGxlciBiZSBiYXIuCiAgICAg
ICAgICAgICBjb2RlT3JpZ2luID0gKmNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKCktPmdldENh
bGxlclNraXBwaW5nVGFpbENhbGxzKCk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gY29k
ZU9yaWdpbjsKICAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25SZXN1bHRU
eXBlPgotICAgIExWYWx1ZSBvcGVyYXRpb25FeGNlcHRpb25DaGVja0FuZEV4dHJhY3RSZXN1bHRJ
Zk5lZWRlZChMVmFsdWUgcmVzdWx0KQotICAgIHsKLSAgICAgICAgaWYgKG1heUV4aXQobV9ncmFw
aCwgbV9ub2RlKSkKLSAgICAgICAgICAgIG9wZXJhdGlvbkV4Y2VwdGlvbkNoZWNrPE9wZXJhdGlv
blJlc3VsdFR5cGU+KHJlc3VsdCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgQVNTRVJU
KCFpc0V4Y2VwdGlvbk9wZXJhdGlvblJlc3VsdDxPcGVyYXRpb25SZXN1bHRUeXBlPik7Ci0gICAg
ICAgICAgICAvLyBXZSBjYW4ndCBleGl0IGR1ZSB0byBhbiBleGNlcHRpb24sIHNvIHdlIGFsc28g
Y2FuJ3QgdGhyb3cgYW4gZXhjZXB0aW9uLgotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgICAgICAg
ICBMVmFsdWUgZXhjZXB0aW9uID0gbV9vdXQubG9hZDY0KG1fdm1WYWx1ZSwgbV9oZWFwcy5WTV9l
eGNlcHRpb24pOwotICAgICAgICAgICAgbV9vdXQudmVyaWZ5KG1fb3V0LmlzWmVybzY0KGV4Y2Vw
dGlvbikpOwotI2VuZGlmCi0gICAgICAgIH0KLSAgICAgICAgaWYgKGlzRXhjZXB0aW9uT3BlcmF0
aW9uUmVzdWx0PE9wZXJhdGlvblJlc3VsdFR5cGU+ICYmIHJlc3VsdC0+dHlwZSgpLmlzVHVwbGUo
KSkKLSAgICAgICAgICAgIHJldHVybiBtX291dC5leHRyYWN0KHJlc3VsdCwgMCk7Ci0gICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9u
UmVzdWx0VHlwZT4KLSAgICB2b2lkIG9wZXJhdGlvbkV4Y2VwdGlvbkNoZWNrKExWYWx1ZSByZXN1
bHQpCisgICAgCisgICAgdm9pZCBjYWxsQ2hlY2soKQogICAgIHsKICAgICAgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fb3JpZ2luLnNl
bWFudGljKTsKLSAgICAgICAgTFZhbHVlIGV4Y2VwdGlvbjsKLSAgICAgICAgaWYgY29uc3RleHBy
IChpc0IzU3VwcG9ydGVkRXhjZXB0aW9uT3BlcmF0aW9uUmVzdWx0PE9wZXJhdGlvblJlc3VsdFR5
cGU+KSB7Ci0gICAgICAgICAgICBleGNlcHRpb24gPSByZXN1bHQtPnR5cGUoKS5pc1R1cGxlKCkg
PyBtX291dC5leHRyYWN0KHJlc3VsdCwgMSkgOiByZXN1bHQ7Ci0jaWYgQVNTRVJUX0VOQUJMRUQK
LSAgICAgICAgICAgIExWYWx1ZSB2bUV4Y2VwdGlvbiA9IG1fb3V0LmxvYWQ2NChtX3ZtVmFsdWUs
IG1faGVhcHMuVk1fZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIG1fb3V0LnZlcmlmeShtX291dC5l
cXVhbChleGNlcHRpb24sIHZtRXhjZXB0aW9uKSk7Ci0jZW5kaWYKLSAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICBleGNlcHRpb24gPSBtX291dC5sb2FkNjQobV92bVZhbHVlLCBtX2hlYXBzLlZN
X2V4Y2VwdGlvbik7Ci0KICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUV4Y2VwdGlvbkZ1enooKSkg
ewogI2lmICFVU0UoQlVJTFRJTl9GUkFNRV9BRERSRVNTKSB8fCBBU1NFUlRfRU5BQkxFRAogICAg
ICAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9jYWxsRnJhbWUsIG1fb3V0LmFic29sdXRlKCZ2bSgp
LnRvcENhbGxGcmFtZSkpOwogI2VuZGlmCiAgICAgICAgICAgICBtX291dC5jYWxsKFZvaWQsIG1f
b3V0Lm9wZXJhdGlvbihvcGVyYXRpb25FeGNlcHRpb25GdXp6KSwgd2Vha1BvaW50ZXIoZ2xvYmFs
T2JqZWN0KSk7Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBtX291dC5sb2FkNjQobV92bVZhbHVl
LCBtX2hlYXBzLlZNX2V4Y2VwdGlvbik7CiAgICAgICAgIH0KLQorICAgICAgICAKKyAgICAgICAg
TFZhbHVlIGV4Y2VwdGlvbiA9IG1fb3V0LmxvYWQ2NChtX3ZtVmFsdWUsIG1faGVhcHMuVk1fZXhj
ZXB0aW9uKTsKICAgICAgICAgTFZhbHVlIGhhZEV4Y2VwdGlvbiA9IG1fb3V0Lm5vdFplcm82NChl
eGNlcHRpb24pOwogCiAgICAgICAgIENvZGVPcmlnaW4gb3BDYXRjaE9yaWdpbjsKQEAgLTIyODIy
LDE1ICsyMjc5MSwxNSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgfQogCiAgICAg
dm9pZCBhcHBlbmRPU1JFeGl0KAotICAgICAgICBFeGl0S2luZCBraW5kLCBGb3JtYXR0ZWRWYWx1
ZSBsb3dWYWx1ZSwgTm9kZSogaGlnaFZhbHVlLCBMVmFsdWUgZmFpbENvbmRpdGlvbiwKKyAgICAg
ICAgRXhpdEtpbmQga2luZCwgRm9ybWF0dGVkVmFsdWUgbG93VmFsdWUsIE5vZGUqIGhpZ2hWYWx1
ZSwgTFZhbHVlIGZhaWxDb25kaXRpb24sIAogICAgICAgICBOb2RlT3JpZ2luIG9yaWdpbiwgYm9v
bCBpc0V4Y2VwdGlvbkhhbmRsZXIgPSBmYWxzZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhcHBl
bmRPU1JFeGl0KGtpbmQsIGxvd1ZhbHVlLCBtX2dyYXBoLm1ldGhvZE9mR2V0dGluZ0FWYWx1ZVBy
b2ZpbGVGb3IobV9ub2RlLCBoaWdoVmFsdWUpLAogICAgICAgICAgICAgZmFpbENvbmRpdGlvbiwg
b3JpZ2luLCBpc0V4Y2VwdGlvbkhhbmRsZXIpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgYXBw
ZW5kT1NSRXhpdCgKLSAgICAgICAgRXhpdEtpbmQga2luZCwgRm9ybWF0dGVkVmFsdWUgbG93VmFs
dWUsIGNvbnN0IE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUmIHByb2ZpbGUsIExWYWx1ZSBm
YWlsQ29uZGl0aW9uLAorICAgICAgICBFeGl0S2luZCBraW5kLCBGb3JtYXR0ZWRWYWx1ZSBsb3dW
YWx1ZSwgY29uc3QgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSYgcHJvZmlsZSwgTFZhbHVl
IGZhaWxDb25kaXRpb24sIAogICAgICAgICBOb2RlT3JpZ2luIG9yaWdpbiwgYm9vbCBpc0V4Y2Vw
dGlvbkhhbmRsZXIgPSBmYWxzZSkKICAgICB7CiAgICAgICAgIGRhdGFMb2dMbklmKHZlcmJvc2VD
b21waWxhdGlvbkVuYWJsZWQoKSwgIiAgICBPU1IgZXhpdCAjIiwgbV9mdGxTdGF0ZS5qaXRDb2Rl
LT5vc3JFeGl0RGVzY3JpcHRvcnMuc2l6ZSgpLCAiIHdpdGggYXZhaWxhYmlsaXR5OiAiLCBhdmFp
bGFiaWxpdHlNYXAoKSk7CkBAIC0yMjg0NCw5ICsyMjgxMyw5IEBAIElHTk9SRV9DTEFOR19XQVJO
SU5HU19FTkQKICAgICAgICAgICAgIExWYWx1ZSBudW1iZXJPZkZ1enpDaGVja3MgPSBtX291dC5h
ZGQoCiAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDMyKG1fb3V0LmFic29sdXRlKCZnX251bWJl
ck9mT1NSRXhpdEZ1enpDaGVja3MpKSwKICAgICAgICAgICAgICAgICBtX291dC5pbnQzMk9uZSk7
Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuc3RvcmUzMihudW1iZXJPZkZ1enpD
aGVja3MsIG1fb3V0LmFic29sdXRlKCZnX251bWJlck9mT1NSRXhpdEZ1enpDaGVja3MpKTsKLQor
ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAodW5zaWduZWQgYXRPckFmdGVyID0gT3B0aW9u
czo6ZmlyZU9TUkV4aXRGdXp6QXRPckFmdGVyKCkpIHsKICAgICAgICAgICAgICAgICBmYWlsQ29u
ZGl0aW9uID0gbV9vdXQuYml0T3IoCiAgICAgICAgICAgICAgICAgICAgIGZhaWxDb25kaXRpb24s
CkBAIC0yMjg3NCw3ICsyMjg0Myw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICB2
b2lkIGJsZXNzU3BlY3VsYXRpb24oQ2hlY2tWYWx1ZSogdmFsdWUsIEV4aXRLaW5kIGtpbmQsIEZv
cm1hdHRlZFZhbHVlIGxvd1ZhbHVlLCBjb25zdCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxl
JiBwcm9maWxlLCBOb2RlT3JpZ2luIG9yaWdpbikKICAgICB7CiAgICAgICAgIE9TUkV4aXREZXNj
cmlwdG9yKiBleGl0RGVzY3JpcHRvciA9IGFwcGVuZE9TUkV4aXREZXNjcmlwdG9yKGxvd1ZhbHVl
LCBwcm9maWxlKTsKLQorICAgICAgICAKICAgICAgICAgdmFsdWUtPmFwcGVuZENvbGRBbnlzKGJ1
aWxkRXhpdEFyZ3VtZW50cyhleGl0RGVzY3JpcHRvciwgb3JpZ2luLmZvckV4aXQsIGxvd1ZhbHVl
KSk7CiAKICAgICAgICAgU3RhdGUqIHN0YXRlID0gJm1fZnRsU3RhdGU7CkBAIC0yMjg5NSwyMyAr
MjI4NjQsMjMgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgZXhpdERl
c2NyaXB0b3IsIGV4aXRPcmlnaW4sIHJlc3VsdCwgbG93VmFsdWUsIG9mZnNldE9mRXhpdEFyZ3Vt
ZW50c0luU3RhY2ttYXBMb2NhdGlvbnMpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
LQorICAgIAogICAgIHZvaWQgYnVpbGRFeGl0QXJndW1lbnRzKAogICAgICAgICBPU1JFeGl0RGVz
Y3JpcHRvciogZXhpdERlc2NyaXB0b3IsIENvZGVPcmlnaW4gZXhpdE9yaWdpbiwgU3RhY2ttYXBB
cmd1bWVudExpc3QmIGFyZ3VtZW50cywgRm9ybWF0dGVkVmFsdWUgbG93VmFsdWUsCiAgICAgICAg
IHVuc2lnbmVkIG9mZnNldE9mRXhpdEFyZ3VtZW50c0luU3RhY2ttYXBMb2NhdGlvbnMgPSAwKQog
ICAgIHsKICAgICAgICAgaWYgKCEhbG93VmFsdWUpCiAgICAgICAgICAgICBhcmd1bWVudHMuYXBw
ZW5kKGxvd1ZhbHVlLnZhbHVlKCkpOwotCisgICAgICAgIAogICAgICAgICBBdmFpbGFiaWxpdHlN
YXAgYXZhaWxhYmlsaXR5TWFwID0gdGhpcy0+YXZhaWxhYmlsaXR5TWFwKCk7CiAgICAgICAgIGF2
YWlsYWJpbGl0eU1hcC5wcnVuZUJ5TGl2ZW5lc3MobV9ncmFwaCwgZXhpdE9yaWdpbik7Ci0KKyAg
ICAgICAgCiAgICAgICAgIEhhc2hNYXA8Tm9kZSosIEV4aXRUaW1lT2JqZWN0TWF0ZXJpYWxpemF0
aW9uKj4gbWFwOwogICAgICAgICBhdmFpbGFiaWxpdHlNYXAuZm9yRWFjaEF2YWlsYWJpbGl0eSgK
ICAgICAgICAgICAgIFsmXSAoQXZhaWxhYmlsaXR5IGF2YWlsYWJpbGl0eSkgewogICAgICAgICAg
ICAgICAgIGlmICghYXZhaWxhYmlsaXR5LnNob3VsZFVzZU5vZGUoKSkKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgTm9kZSog
bm9kZSA9IGF2YWlsYWJpbGl0eS5ub2RlKCk7CiAgICAgICAgICAgICAgICAgaWYgKCFub2RlLT5p
c1BoYW50b21BbGxvY2F0aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTIy
OTIyLDEyICsyMjg5MSwxMiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAg
ICAgICAgICAgICAgICBleGl0RGVzY3JpcHRvci0+bV9tYXRlcmlhbGl6YXRpb25zLmFkZChub2Rl
LT5vcCgpLCBub2RlLT5vcmlnaW4uc2VtYW50aWMpOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0pOwotCisgICAgICAgIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
ZXhpdERlc2NyaXB0b3ItPm1fdmFsdWVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICBPcGVy
YW5kIG9wZXJhbmQgPSBleGl0RGVzY3JpcHRvci0+bV92YWx1ZXMub3BlcmFuZEZvckluZGV4KGkp
OwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIEF2YWlsYWJpbGl0eSBhdmFpbGFiaWxpdHkg
PSBhdmFpbGFiaWxpdHlNYXAubV9sb2NhbHNbaV07Ci0KKyAgICAgICAgICAgIAogICAgICAgICAg
ICAgLy8gRklYTUU6IEl0IHNlZW1zIGxpa2Ugd2Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gYXQgbGVh
c3Qgc29tZSB2YWxpZGF0aW9uIHdoZW4gT1NSIGVudGVyaW5nLiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1NTExCiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmFs
aWRhdGVGVExPU1JFeGl0TGl2ZW5lc3MoKQogICAgICAgICAgICAgICAgICYmIG1fZ3JhcGgubV9w
bGFuLm1vZGUoKSAhPSBKSVRDb21waWxhdGlvbk1vZGU6OkZUTEZvck9TUkVudHJ5KSB7CkBAIC0y
Mjk0MCw3ICsyMjkwOSw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAg
ICAgICBleGl0VmFsdWUuYWRqdXN0U3RhY2ttYXBMb2NhdGlvbnNJbmRleEJ5T2Zmc2V0KG9mZnNl
dE9mRXhpdEFyZ3VtZW50c0luU3RhY2ttYXBMb2NhdGlvbnMpOwogICAgICAgICAgICAgZXhpdERl
c2NyaXB0b3ItPm1fdmFsdWVzW2ldID0gZXhpdFZhbHVlOwogICAgICAgICB9Ci0KKyAgICAgICAg
CiAgICAgICAgIGZvciAoYXV0byBoZWFwUGFpciA6IGF2YWlsYWJpbGl0eU1hcC5tX2hlYXApIHsK
ICAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBoZWFwUGFpci5rZXkuYmFzZSgpOwogICAgICAgICAg
ICAgRXhpdFRpbWVPYmplY3RNYXRlcmlhbGl6YXRpb24qIG1hdGVyaWFsaXphdGlvbiA9IG1hcC5n
ZXQobm9kZSk7CkBAIC0yMjk1Myw3ICsyMjkyMiw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19F
TkQKICAgICAgICAgICAgICAgICBoZWFwUGFpci5rZXkuZGVzY3JpcHRvcigpLAogICAgICAgICAg
ICAgICAgIGV4aXRWYWx1ZSk7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgaWYgKHZl
cmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkgewogICAgICAgICAgICAgZGF0YUxvZygiICAgICAg
ICBFeGl0IHZhbHVlczogIiwgZXhpdERlc2NyaXB0b3ItPm1fdmFsdWVzLCAiXG4iKTsKICAgICAg
ICAgICAgIGlmICghZXhpdERlc2NyaXB0b3ItPm1fbWF0ZXJpYWxpemF0aW9ucy5pc0VtcHR5KCkp
IHsKQEAgLTIyOTc0LDcgKzIyOTQzLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAg
ICAgICBjYXNlIENvbmZsaWN0aW5nRmx1c2g6CiAgICAgICAgICAgICBpZiAoYXZhaWxhYmlsaXR5
Lmhhc05vZGUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZXhpdFZhbHVlRm9yTm9kZShhcmd1
bWVudHMsIG1hcCwgYXZhaWxhYmlsaXR5Lm5vZGUoKSk7Ci0KKyAgICAgICAgICAgIAogICAgICAg
ICAgICAgLy8gVGhpcyBtZWFucyB0aGF0IHRoZSB2YWx1ZSBpcyBkZWFkLiBJdCBjb3VsZCBiZSBk
ZWFkIGluIGJ5dGVjb2RlIG9yIGl0IGNvdWxkIGhhdmUKICAgICAgICAgICAgIC8vIGJlZW4ga2ls
bGVkIGJ5IG91ciBEQ0UsIHdoaWNoIGNhbiBzb21ldGltZXMga2lsbCB0aGluZ3MgZXZlbiBpZiB0
aGV5IHdlcmUgbGl2ZSBpbgogICAgICAgICAgICAgLy8gYnl0ZWNvZGUuCkBAIC0yMjk4NCwyMSAr
MjI5NTMsMjEgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBjYXNlIEZsdXNo
ZWRDZWxsOgogICAgICAgICBjYXNlIEZsdXNoZWRCb29sZWFuOgogICAgICAgICAgICAgcmV0dXJu
IEV4aXRWYWx1ZTo6aW5KU1N0YWNrKGZsdXNoLnZpcnR1YWxSZWdpc3RlcigpKTsKLQorICAgICAg
ICAgICAgICAgIAogICAgICAgICBjYXNlIEZsdXNoZWRJbnQzMjoKICAgICAgICAgICAgIHJldHVy
biBFeGl0VmFsdWU6OmluSlNTdGFja0FzSW50MzIoZmx1c2gudmlydHVhbFJlZ2lzdGVyKCkpOwot
CisgICAgICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgRmx1c2hlZEludDUyOgogICAgICAgICAg
ICAgcmV0dXJuIEV4aXRWYWx1ZTo6aW5KU1N0YWNrQXNJbnQ1MihmbHVzaC52aXJ0dWFsUmVnaXN0
ZXIoKSk7Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBGbHVzaGVkRG91YmxlOgog
ICAgICAgICAgICAgcmV0dXJuIEV4aXRWYWx1ZTo6aW5KU1N0YWNrQXNEb3VibGUoZmx1c2gudmly
dHVhbFJlZ2lzdGVyKCkpOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIERGR19DUkFT
SChtX2dyYXBoLCBtX25vZGUsICJJbnZhbGlkIGZsdXNoIGZvcm1hdCIpOwogICAgICAgICByZXR1
cm4gRXhpdFZhbHVlOjpkZWFkKCk7CiAgICAgfQotCisgICAgCiAgICAgRXhpdFZhbHVlIGV4aXRW
YWx1ZUZvck5vZGUoCiAgICAgICAgIFN0YWNrbWFwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIGNv
bnN0IEhhc2hNYXA8Tm9kZSosIEV4aXRUaW1lT2JqZWN0TWF0ZXJpYWxpemF0aW9uKj4mIG1hcCwK
ICAgICAgICAgTm9kZSogbm9kZSkKQEAgLTIzMDA2LDcgKzIyOTc1LDcgQEAgSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0VORAogICAgICAgICAvLyBOT1RFOiBJbiBGVEwtPkIzLCB3ZSBjYW5ub3QgZ2Vu
ZXJhdGUgY29kZSBoZXJlLCBiZWNhdXNlIG1fb3V0cHV0IGlzIHBvc2l0aW9uZWQgYWZ0ZXIgdGhl
CiAgICAgICAgIC8vIHN0YWNrbWFwIHZhbHVlLiBMaWtlIGFsbCB2YWx1ZXMsIHRoZSBzdGFja21h
cCB2YWx1ZSBjYW5ub3QgdXNlIGEgY2hpbGQgdGhhdCBpcyBkZWZpbmVkIGFmdGVyCiAgICAgICAg
IC8vIGl0LgotCisgICAgICAgIAogICAgICAgICBBU1NFUlQobm9kZS0+c2hvdWxkR2VuZXJhdGUo
KSk7CiAgICAgICAgIEFTU0VSVChub2RlLT5oYXNSZXN1bHQoKSk7CiAKQEAgLTIzMDE2LDM5ICsy
Mjk4NSwzOSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgLy8g
VGhpcyBtaWdodCBhcmlzZSBpbiBvYmplY3QgbWF0ZXJpYWxpemF0aW9ucy4gSSBhY3R1YWxseSBk
b3VidCB0aGF0IGl0IHdvdWxkLAogICAgICAgICAgICAgICAgIC8vIGJ1dCBpdCBzZWVtcyB3b3J0
aHdoaWxlIHRvIGJlIGNvbnNlcnZhdGl2ZS4KICAgICAgICAgICAgICAgICByZXR1cm4gRXhpdFZh
bHVlOjpkZWFkKCk7Ci0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgSlNDb25z
dGFudDoKICAgICAgICAgICAgIGNhc2UgSW50NTJDb25zdGFudDoKICAgICAgICAgICAgIGNhc2Ug
RG91YmxlQ29uc3RhbnQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEV4aXRWYWx1ZTo6Y29uc3Rh
bnQobm9kZS0+YXNKU1ZhbHVlKCkpOwotCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgICAgIGlmIChub2RlLT5pc1BoYW50b21BbGxvY2F0aW9uKCkp
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGl0VmFsdWU6Om1hdGVyaWFsaXplTmV3T2Jq
ZWN0KG1hcC5nZXQobm9kZSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIExvd2VyZWROb2RlVmFsdWUgdmFsdWUg
PSBtX2ludDMyVmFsdWVzLmdldChub2RlKTsKICAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKQog
ICAgICAgICAgICAgcmV0dXJuIGV4aXRBcmd1bWVudChhcmd1bWVudHMsIERhdGFGb3JtYXRJbnQz
MiwgdmFsdWUudmFsdWUoKSk7Ci0KKyAgICAgICAgCiAgICAgICAgIHZhbHVlID0gbV9pbnQ1MlZh
bHVlcy5nZXQobm9kZSk7CiAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkKICAgICAgICAgICAg
IHJldHVybiBleGl0QXJndW1lbnQoYXJndW1lbnRzLCBEYXRhRm9ybWF0SW50NTIsIHZhbHVlLnZh
bHVlKCkpOwotCisgICAgICAgIAogICAgICAgICB2YWx1ZSA9IG1fc3RyaWN0SW50NTJWYWx1ZXMu
Z2V0KG5vZGUpOwogICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCiAgICAgICAgICAgICByZXR1
cm4gZXhpdEFyZ3VtZW50KGFyZ3VtZW50cywgRGF0YUZvcm1hdFN0cmljdEludDUyLCB2YWx1ZS52
YWx1ZSgpKTsKLQorICAgICAgICAKICAgICAgICAgdmFsdWUgPSBtX2Jvb2xlYW5WYWx1ZXMuZ2V0
KG5vZGUpOwogICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCiAgICAgICAgICAgICByZXR1cm4g
ZXhpdEFyZ3VtZW50KGFyZ3VtZW50cywgRGF0YUZvcm1hdEJvb2xlYW4sIHZhbHVlLnZhbHVlKCkp
OwotCisgICAgICAgIAogICAgICAgICB2YWx1ZSA9IG1fanNWYWx1ZVZhbHVlcy5nZXQobm9kZSk7
CiAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiBleGl0QXJn
dW1lbnQoYXJndW1lbnRzLCBEYXRhRm9ybWF0SlMsIHZhbHVlLnZhbHVlKCkpOwotCisgICAgICAg
IAogICAgICAgICB2YWx1ZSA9IG1fZG91YmxlVmFsdWVzLmdldChub2RlKTsKICAgICAgICAgaWYg
KGlzVmFsaWQodmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIGV4aXRBcmd1bWVudChhcmd1bWVu
dHMsIERhdGFGb3JtYXREb3VibGUsIHZhbHVlLnZhbHVlKCkpOwpAQCAtMjMxMTMsMTIgKzIzMDgy
LDEyIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgY2FzZSBJbnQ1MjoKICAg
ICAgICAgICAgIHNldEludDUyKG5vZGUsIHZhbHVlKTsKICAgICAgICAgICAgIHJldHVybjsKLQor
ICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgU3RyaWN0SW50NTI6CiAgICAgICAgICAgICBzZXRT
dHJpY3RJbnQ1Mihub2RlLCB2YWx1ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LQorICAgICAgICAKICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkNvcnJ1cHQg
aW50NTIga2luZCIpOwogICAgIH0KICAgICB2b2lkIHNldEpTVmFsdWUoTm9kZSogbm9kZSwgTFZh
bHVlIHZhbHVlKQpAQCAtMjMxNzksNyArMjMxNDgsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAgICAgewogICAgICAgICBzZXRUdXBsZShtX25vZGUsIGluZGV4LCB2YWx1ZSk7CiAgICAg
fQotCisgICAgCiAgICAgYm9vbCBpc1ZhbGlkKGNvbnN0IExvd2VyZWROb2RlVmFsdWUmIHZhbHVl
KQogICAgIHsKICAgICAgICAgaWYgKCF2YWx1ZSkKQEAgLTIzMjYwLDEzICsyMzIyOSwxMyBAQCBJ
R05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgewogICAgICAgICByZXR1cm4gbV9vdXQuY29u
c3RJbnQzMihzdHJ1Y3R1cmUtPmlkKCkuYml0cygpKTsKICAgICB9Ci0KKyAgICAKICAgICBMVmFs
dWUgd2Vha1N0cnVjdHVyZShSZWdpc3RlcmVkU3RydWN0dXJlIHN0cnVjdHVyZSkKICAgICB7CiAg
ICAgICAgIEFTU0VSVCghIXN0cnVjdHVyZS5nZXQoKSk7CiAgICAgICAgIHJldHVybiBtX291dC5h
bHJlYWR5UmVnaXN0ZXJlZFdlYWtQb2ludGVyKG1fZ3JhcGgsIHN0cnVjdHVyZS5nZXQoKSk7CiAg
ICAgfQotCisgICAgCiAgICAgVHlwZWRQb2ludGVyIGFkZHJlc3NGb3IoTFZhbHVlIGJhc2UsIE9w
ZXJhbmQgb3BlcmFuZCwgcHRyZGlmZl90IG9mZnNldCA9IDApCiAgICAgewogICAgICAgICByZXR1
cm4gbV9vdXQuYWRkcmVzcyhiYXNlLCBtX2hlYXBzLnZhcmlhYmxlc1tvcGVyYW5kLnZpcnR1YWxS
ZWdpc3RlcigpLm9mZnNldCgpXSwgb2Zmc2V0KTsKQEAgLTIzMzA1LDcgKzIzMjc0LDcgQEAgSUdO
T1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgIHsKICAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3Io
b3BlcmFuZCwgVGFnT2Zmc2V0KTsKICAgICB9Ci0KKyAgICAKICAgICBBYnN0cmFjdFZhbHVlIGFi
c3RyYWN0VmFsdWUoTm9kZSogbm9kZSkKICAgICB7CiAgICAgICAgIHJldHVybiBtX3N0YXRlLmZv
ck5vZGUobm9kZSk7CkBAIC0yMzMxNCw3ICsyMzI4Myw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5H
U19FTkQKICAgICB7CiAgICAgICAgIHJldHVybiBhYnN0cmFjdFZhbHVlKGVkZ2Uubm9kZSgpKTsK
ICAgICB9Ci0KKyAgICAKICAgICBTcGVjdWxhdGVkVHlwZSBwcm92ZW5UeXBlKE5vZGUqIG5vZGUp
CiAgICAgewogICAgICAgICByZXR1cm4gYWJzdHJhY3RWYWx1ZShub2RlKS5tX3R5cGU7CkBAIC0y
MzMyMyw3ICsyMzI5Miw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICB7CiAgICAg
ICAgIHJldHVybiBwcm92ZW5UeXBlKGVkZ2Uubm9kZSgpKTsKICAgICB9Ci0KKyAgICAKICAgICBK
U1ZhbHVlIHByb3ZlblZhbHVlKE5vZGUqIG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWJz
dHJhY3RWYWx1ZShub2RlKS5tX3ZhbHVlOwpAQCAtMjMzMzIsNyArMjMzMDEsNyBAQCBJR05PUkVf
Q0xBTkdfV0FSTklOR1NfRU5ECiAgICAgewogICAgICAgICByZXR1cm4gcHJvdmVuVmFsdWUoZWRn
ZS5ub2RlKCkpOwogICAgIH0KLQorICAgIAogICAgIFN0cnVjdHVyZUFic3RyYWN0VmFsdWUgYWJz
dHJhY3RTdHJ1Y3R1cmUoTm9kZSogbm9kZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhYnN0cmFj
dFZhbHVlKG5vZGUpLm1fc3RydWN0dXJlOwpAQCAtMjMzNDIsMTggKzIzMzExLDExIEBAIElHTk9S
RV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgcmV0dXJuIGFic3RyYWN0U3RydWN0dXJlKGVk
Z2Uubm9kZSgpKTsKICAgICB9CiAKLSAgICBMVHlwZSB0b09wZXJhdGlvblR5cGUoTFR5cGUgdHlw
ZSkKKyAgICBMVHlwZSByZWdpc3RlclBhaXIoKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCF0eXBl
LmlzVHVwbGUoKSk7Ci0gICAgICAgIEFTU0VSVCh0eXBlLmtpbmQoKSA8IExUeXBlOjpudW1iZXJP
ZlByaW1pdGl2ZVR5cGVzKTsKLQotICAgICAgICBpZiAodHlwZSA9PSBCMzo6Vm9pZCkKLSAgICAg
ICAgICAgIHJldHVybiBwb2ludGVyVHlwZSgpOwotCi0gICAgICAgIExUeXBlJiByZXN1bHQgPSBt
X29wZXJhdGlvblJlc3VsdFR1cGxlc1t0eXBlLmtpbmQoKV07Ci0gICAgICAgIGlmICghcmVzdWx0
LmlzVHVwbGUoKSkKLSAgICAgICAgICAgIHJlc3VsdCA9IG1fcHJvYy5hZGRUdXBsZSh7IHR5cGUs
IHJlZ2lzdGVyVHlwZSgpIH0pOwotICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICBpZiAo
IW1fcmVnaXN0ZXJQYWlyLmlzVHVwbGUoKSkKKyAgICAgICAgICAgIG1fcmVnaXN0ZXJQYWlyID0g
bV9wcm9jLmFkZFR1cGxlKHsgcmVnaXN0ZXJUeXBlKCksIHJlZ2lzdGVyVHlwZSgpIH0pOworICAg
ICAgICByZXR1cm4gbV9yZWdpc3RlclBhaXI7CiAgICAgfQogCiAgICAgdm9pZCBjcmFzaCgpCkBA
IC0yMzM2OSw3ICsyMzMzMSw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAg
bV9vdXQucGF0Y2hwb2ludChWb2lkKS0+c2V0R2VuZXJhdG9yKAogICAgICAgICAgICAgWz1dIChD
Q2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgewogICAg
ICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2go
aml0KTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKGJsb2NrSW5kZXgpLCBHUFJJbmZvOjpyZWdUMCk7CiAgICAg
ICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobm9kZUluZGV4
KSwgR1BSSW5mbzo6cmVnVDEpOwogICAgICAgICAgICAgICAgIGlmIChub2RlKQpAQCAtMjM0MTUs
MjUgKzIzMzc3LDI1IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICB9CiAKICAgICBB
dmFpbGFiaWxpdHlNYXAmIGF2YWlsYWJpbGl0eU1hcCgpIHsgcmV0dXJuIG1fYXZhaWxhYmlsaXR5
Q2FsY3VsYXRvci5tX2F2YWlsYWJpbGl0eTsgfQotCisgICAgCiAgICAgVk0mIHZtKCkgeyByZXR1
cm4gbV9ncmFwaC5tX3ZtOyB9CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2soKSB7IHJldHVybiBt
X2dyYXBoLm1fY29kZUJsb2NrOyB9Ci0KKyAgICAKICAgICBHcmFwaCYgbV9ncmFwaDsKICAgICBT
dGF0ZSYgbV9mdGxTdGF0ZTsKICAgICBBYnN0cmFjdEhlYXBSZXBvc2l0b3J5IG1faGVhcHM7CiAg
ICAgT3V0cHV0IG1fb3V0OwogICAgIFByb2NlZHVyZSYgbV9wcm9jOwotCisgICAgCiAgICAgTEJh
c2ljQmxvY2sgbV9oYW5kbGVFeGNlcHRpb25zOwogICAgIEhhc2hNYXA8REZHOjpCYXNpY0Jsb2Nr
KiwgTEJhc2ljQmxvY2s+IG1fYmxvY2tzOwotCisgICAgCiAgICAgTFZhbHVlIG1fY2FsbEZyYW1l
OwogICAgIExWYWx1ZSBtX3ZtVmFsdWU7CiAgICAgTFZhbHVlIG1fY2FwdHVyZWQ7CiAgICAgTFZh
bHVlIG1fbnVtYmVyVGFnOwogICAgIExWYWx1ZSBtX25vdENlbGxNYXNrOwotCisgICAgCiAgICAg
SGFzaE1hcDxOb2RlKiwgTG93ZXJlZE5vZGVWYWx1ZT4gbV9pbnQzMlZhbHVlczsKICAgICBIYXNo
TWFwPE5vZGUqLCBMb3dlcmVkTm9kZVZhbHVlPiBtX3N0cmljdEludDUyVmFsdWVzOwogICAgIEhh
c2hNYXA8Tm9kZSosIExvd2VyZWROb2RlVmFsdWU+IG1faW50NTJWYWx1ZXM7CkBAIC0yMzQ0MSwx
MyArMjM0MDMsMTMgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgIEhhc2hNYXA8Tm9k
ZSosIExvd2VyZWROb2RlVmFsdWU+IG1fYm9vbGVhblZhbHVlczsKICAgICBIYXNoTWFwPE5vZGUq
LCBMb3dlcmVkTm9kZVZhbHVlPiBtX3N0b3JhZ2VWYWx1ZXM7CiAgICAgSGFzaE1hcDxOb2RlKiwg
TG93ZXJlZE5vZGVWYWx1ZT4gbV9kb3VibGVWYWx1ZXM7Ci0KKyAgICAKICAgICBWZWN0b3I8TG93
ZXJlZE5vZGVWYWx1ZT4gbV90dXBsZVZhbHVlczsKIAogICAgIEhhc2hNYXA8Tm9kZSosIExWYWx1
ZT4gbV9waGlzOwotCisgICAgCiAgICAgTG9jYWxPU1JBdmFpbGFiaWxpdHlDYWxjdWxhdG9yIG1f
YXZhaWxhYmlsaXR5Q2FsY3VsYXRvcjsKLQorICAgIAogICAgIEluUGxhY2VBYnN0cmFjdFN0YXRl
IG1fc3RhdGU7CiAgICAgQWJzdHJhY3RJbnRlcnByZXRlcjxJblBsYWNlQWJzdHJhY3RTdGF0ZT4g
bV9pbnRlcnByZXRlcjsKICAgICBERkc6OkJhc2ljQmxvY2sqIG1faGlnaEJsb2NrOwpAQCAtMjM0
NjMsNyArMjM0MjUsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgSGFzaE1hcDxO
b2RlKiwgQWJzdHJhY3RWYWx1ZT4gbV9haUNoZWNrZWROb2RlczsKICAgICBTdHJpbmcgbV9ncmFw
aER1bXA7CiAKLSAgICBMVHlwZSBtX29wZXJhdGlvblJlc3VsdFR1cGxlc1tMVHlwZTo6bnVtYmVy
T2ZQcmltaXRpdmVUeXBlc107CisgICAgTFR5cGUgbV9yZWdpc3RlclBhaXI7CiB9OwogCiB9IC8v
IGFub255bW91cyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
T1NSRXhpdENvbXBpbGVyLmNwcAppbmRleCA2NTg2MWRkY2Y3YTcuLjI1MWViMWY3NjdiMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcApA
QCAtNjI4LDcgKzYyOCw3IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKFZNJiB2bSwgdW5zaWdu
ZWQgZXhpdElELCBKSVRDb2RlKiBqaXRDb2RlLCBPU1JFeGl0JiBleGl0CiAgICAgICAgICk7CiB9
CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21waWxlRlRM
T1NSRXhpdCwgdm9pZCosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdW5zaWduZWQgZXhpdElEKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21waWxlRlRMT1NSRXhpdCwgdm9p
ZCosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdW5zaWduZWQgZXhpdElEKSkKIHsKICAgICBpZiAo
c2hvdWxkRHVtcERpc2Fzc2VtYmx5KCkgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpIHx8IE9wdGlv
bnM6OnZlcmJvc2VGVExPU1JFeGl0KCkpCiAgICAgICAgIGRhdGFMb2coIkNvbXBpbGluZyBPU1Ig
ZXhpdCB3aXRoIGV4aXRJRCA9ICIsIGV4aXRJRCwgIlxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuaAppbmRleCBmYmNhMjhmODViN2YuLjg0NDVi
MDE3MDJlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0
Q29tcGlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21w
aWxlci5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsK
IAogLy8gVGFrZXMgdGhlIGNhbGwgZnJhbWUgYW5kIHRoZSBpbmRleCBvZiB0aGUgZXhpdCwgYW5k
IHJldHVybnMgdGhlIGFkZHJlc3MgdG8KIC8vIGp1bXAgdG8uCi1KU0NfREVDTEFSRV9OT0VYQ0VQ
VF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExPU1JFeGl0LCB2b2lkKiwgKENhbGxG
cmFtZSosIHVuc2lnbmVkIGV4aXRJRCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21waWxlRlRMT1NSRXhpdCwgdm9pZCosIChDYWxsRnJhbWUqLCB1bnNpZ25lZCBleGl0
SUQpKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcAppbmRleCBlNzQ3MWNiZTFkNmUuLjM4ZmIyNGQyOTBm
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwCkBAIC01
NCw3ICs1NCw3IEBAIElHTk9SRV9XQVJOSU5HU19CRUdJTigiZnJhbWUtYWRkcmVzcyIpCiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblBvcHVsYXRlT2JqZWN0SW5PU1IsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFeGl0VGltZU9iamVjdE1hdGVyaWFsaXphdGlvbiogbWF0ZXJp
YWxpemF0aW9uLCBFbmNvZGVkSlNWYWx1ZSogZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSog
dmFsdWVzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3B1bGF0ZU9iamVj
dEluT1NSLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhpdFRpbWVPYmpl
Y3RNYXRlcmlhbGl6YXRpb24qIG1hdGVyaWFsaXphdGlvbiwgRW5jb2RlZEpTVmFsdWUqIGVuY29k
ZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUqIHZhbHVlcykpCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNl
IERGRzsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xODMsNyArMTgzLDcg
QEAgSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBvcHVsYXRlT2Jq
ZWN0SW5PU1IsIHZvaWQsIChKU0dsb2JhbE8KIH0KIAogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0ZXJpYWxpemVPYmplY3RJbk9TUiwgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV4aXRUaW1lT2JqZWN0TWF0ZXJpYWxpemF0aW9u
KiBtYXRlcmlhbGl6YXRpb24sIEVuY29kZWRKU1ZhbHVlKiB2YWx1ZXMpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGVyaWFsaXplT2JqZWN0SW5PU1IsIEpTQ2VsbCosIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGl0VGltZU9iamVjdE1hdGVyaWFsaXphdGlv
biogbWF0ZXJpYWxpemF0aW9uLCBFbmNvZGVkSlNWYWx1ZSogdmFsdWVzKSkKIHsKICAgICB1c2lu
ZyBuYW1lc3BhY2UgREZHOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTcw
Niw3ICs3MDYsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TWF0ZXJpYWxpemVPYmplY3RJbk9TUiwgSlNDZWxsKiwgKEpTRwogICAgIH0KIH0KIAotSlNDX0RF
RklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZ0FuZEdldElu
ZGV4LCB1bnNpZ25lZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVubGlu
a2VkU3RyaW5nSnVtcFRhYmxlKiB1bmxpbmtlZFRhYmxlLCBKU1N0cmluZyogc3RyaW5nKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdBbmRHZXRJbmRleCwg
dW5zaWduZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBVbmxpbmtlZFN0
cmluZ0p1bXBUYWJsZSogdW5saW5rZWRUYWJsZSwgSlNTdHJpbmcqIHN0cmluZykpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTcyMCw3ICs3MjAsNyBAQCBKU0NfREVGSU5FX05P
RVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nQW5kR2V0SW5kZXgsIHVu
c2lnbmVkLCAoSgogICAgIHJldHVybiB1bmxpbmtlZFRhYmxlLT5pbmRleEZvclZhbHVlKHN0cklt
cGwsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZPYmplY3RBc1R5cGVvZlR5
cGUsIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVj
dCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mT2JqZWN0QXNUeXBl
b2ZUeXBlLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBv
YmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03MzUsNyArNzM1LDcg
QEAgSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZk9iamVj
dEFzVHlwZW9mVHlwZSwgaW50MzJfdCwgKEoKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJf
dD4oVHlwZW9mVHlwZTo6T2JqZWN0KTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExMYXp5U2xvd1BhdGgsIHZvaWQqLCAoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHVuc2lnbmVkIGluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21waWxlRlRMTGF6eVNsb3dQYXRoLCB2b2lkKiwgKENhbGxGcmFtZSogY2FsbEZy
YW1lLCB1bnNpZ25lZCBpbmRleCkpCiB7CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNh
dGVkVk0oKTsKICAgICAvLyBEb24ndCBuZWVkIGFuIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSBo
ZXJlIGJlY2F1c2Ugd2UgRGVmZXJHQ0ZvckFXaGlsZS4KQEAgLTc1Miw3ICs3NTIsNyBAQCBKU0Nf
REVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZUTExhenlTbG93
UGF0aCwgdm9pZCosIChDYWxsRgogICAgIHJldHVybiBsYXp5U2xvd1BhdGguc3R1YigpLmNvZGUo
KS50YWdnZWRQdHIoKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJ
VEhfQVRUUklCVVRFUyhvcGVyYXRpb25SZXBvcnRCb3VuZHNDaGVja0VsaW1pbmF0aW9uRXJyb3JB
bmRDcmFzaCwgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCwgdm9pZCwgKGludHB0cl90IGNvZGVCbG9j
a0FzSW50UHRyLCBpbnQzMl90IG5vZGVJbmRleCwgaW50MzJfdCBjaGlsZDFJbmRleCwgaW50MzJf
dCBjaGlsZDJJbmRleCwgaW50MzJfdCBjaGVja2VkSW5kZXgsIGludDMyX3QgYm91bmRzKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMob3BlcmF0aW9uUmVwb3J0Qm91
bmRzQ2hlY2tFbGltaW5hdGlvbkVycm9yQW5kQ3Jhc2gsIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gs
IHZvaWQsIChpbnRwdHJfdCBjb2RlQmxvY2tBc0ludFB0ciwgaW50MzJfdCBub2RlSW5kZXgsIGlu
dDMyX3QgY2hpbGQxSW5kZXgsIGludDMyX3QgY2hpbGQySW5kZXgsIGludDMyX3QgY2hlY2tlZElu
ZGV4LCBpbnQzMl90IGJvdW5kcykpCiB7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBiaXR3
aXNlX2Nhc3Q8Q29kZUJsb2NrKj4oY29kZUJsb2NrQXNJbnRQdHIpOwogICAgIGRhdGFMb2dMbigi
Qm91bmRzIENoZWNrIEVpbWluYXRpb24gZXJyb3IgZm91bmQgQCBEQCIsIG5vZGVJbmRleCwgIjog
QXNzZXJ0SW5Cb3VuZHMoaW5kZXggREAiLCBjaGlsZDFJbmRleCwgIjogIiwgY2hlY2tlZEluZGV4
LCAiLCBib3VuZHMgREAiLCBjaGlsZDJJbmRleCwgIiAiLCBib3VuZHMsICIpIGluICIsIGNvZGVC
bG9jayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlv
bnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5oCmluZGV4IDMw
OTI4OGRlNDFmOC4uNWJiOGQzMGI3YjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE9wZXJhdGlvbnMuaApAQCAtMzgsMTYgKzM4LDE2IEBAIG5hbWVzcGFjZSBGVEwgewogCiBjbGFz
cyBMYXp5U2xvd1BhdGg7CiAKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTWF0ZXJpYWxpemVPYmplY3RJbk9TUiwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
RXhpdFRpbWVPYmplY3RNYXRlcmlhbGl6YXRpb24qLCBFbmNvZGVkSlNWYWx1ZSopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0ZXJpYWxpemVPYmplY3RJbk9TUiwgSlND
ZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgRXhpdFRpbWVPYmplY3RNYXRlcmlhbGl6YXRpb24qLCBF
bmNvZGVkSlNWYWx1ZSopKTsKIAotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihv
cGVyYXRpb25Qb3B1bGF0ZU9iamVjdEluT1NSLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFeGl0
VGltZU9iamVjdE1hdGVyaWFsaXphdGlvbiosIEVuY29kZWRKU1ZhbHVlKiwgRW5jb2RlZEpTVmFs
dWUqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBvcHVsYXRlT2JqZWN0
SW5PU1IsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEV4aXRUaW1lT2JqZWN0TWF0ZXJpYWxpemF0
aW9uKiwgRW5jb2RlZEpTVmFsdWUqLCBFbmNvZGVkSlNWYWx1ZSopKTsKIAotSlNDX0RFQ0xBUkVf
Tk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21waWxlRlRMTGF6eVNsb3dQYXRoLCB2
b2lkKiwgKENhbGxGcmFtZSosIHVuc2lnbmVkKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbXBpbGVGVExMYXp5U2xvd1BhdGgsIHZvaWQqLCAoQ2FsbEZyYW1lKiwgdW5z
aWduZWQpKTsKIAotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25T
d2l0Y2hTdHJpbmdBbmRHZXRJbmRleCwgdW5zaWduZWQsIChKU0dsb2JhbE9iamVjdCosIGNvbnN0
IFVubGlua2VkU3RyaW5nSnVtcFRhYmxlKiwgSlNTdHJpbmcqKSk7Ci1KU0NfREVDTEFSRV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZk9iamVjdEFzVHlwZW9mVHlwZSwgaW50
MzJfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdBbmRHZXRJbmRleCwgdW5zaWduZWQsIChKU0dsb2Jh
bE9iamVjdCosIGNvbnN0IFVubGlua2VkU3RyaW5nSnVtcFRhYmxlKiwgSlNTdHJpbmcqKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZk9iamVjdEFzVHlwZW9mVHlw
ZSwgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOwogCi1KU0NfREVDTEFSRV9O
T0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlcG9ydEJvdW5kc0NoZWNrRWxpbWluYXRp
b25FcnJvckFuZENyYXNoLCB2b2lkLCAoaW50cHRyX3QgY29kZUJsb2NrQXNJbnRQdHIsIGludDMy
X3QsIGludDMyX3QsIGludDMyX3QsIGludDMyX3QsIGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUmVwb3J0Qm91bmRzQ2hlY2tFbGltaW5hdGlvbkVycm9yQW5k
Q3Jhc2gsIHZvaWQsIChpbnRwdHJfdCBjb2RlQmxvY2tBc0ludFB0ciwgaW50MzJfdCwgaW50MzJf
dCwgaW50MzJfdCwgaW50MzJfdCwgaW50MzJfdCkpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
REZHCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAppbmRleCBhZTRmYWVj
ZjhiZGQuLjNlYjIxMDNlZGUxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPdXRwdXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0
LmNwcApAQCAtNzgwLDE0ICs3ODAsNiBAQCB2b2lkIE91dHB1dDo6cmV0KExWYWx1ZSB2YWx1ZSkK
ICAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6UmV0dXJuLCBv
cmlnaW4oKSwgdmFsdWUpOwogfQogCi12b2lkIE91dHB1dDo6dmVyaWZ5KExWYWx1ZSB2YWx1ZSkK
LXsKLSAgICBDaGVja1ZhbHVlKiBjaGVjayA9IHNwZWN1bGF0ZShsb2dpY2FsTm90KHZhbHVlKSk7
Ci0gICAgY2hlY2stPnNldEdlbmVyYXRvcihbXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIz
OjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7Ci0gICAgICAgIGppdC5icmVha3BvaW50KCk7
Ci0gICAgfSk7Ci19Ci0KIHZvaWQgT3V0cHV0Ojp1bnJlYWNoYWJsZSgpCiB7CiAgICAgbV9ibG9j
ay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6Ok9vcHMsIG9yaWdpbigpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCmluZGV4IDgyYTQ0N2IyYTdhOC4uNGY0YTM1
ZGQ1NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMjQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MzksNyAr
NDM5LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXQoTFZhbHVlKTsKIAotICAgIHZvaWQgdmVy
aWZ5KExWYWx1ZSk7CiAgICAgdm9pZCB1bnJlYWNoYWJsZSgpOwogICAgIAogICAgIHZvaWQgYXBw
ZW5kU3VjY2Vzc29yKFdlaWdodGVkVGFyZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXNzZW1ibHlIZWxwZXJzLmNwcAppbmRleCA0ZjkyNjJjYmEyNDAuLmZiODE1ZTkyZmExMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcApAQCAt
MzU5LDcgKzM1OSw3IEBAIEFzc2VtYmx5SGVscGVyczo6SnVtcCBBc3NlbWJseUhlbHBlcnM6OmVt
aXRKdW1wSWZFeGNlcHRpb24oVk0mIHZtKQogICAgIHJldHVybiBlbWl0RXhjZXB0aW9uQ2hlY2so
dm0sIE5vcm1hbEV4Y2VwdGlvbkNoZWNrKTsKIH0KIAotQXNzZW1ibHlIZWxwZXJzOjpKdW1wIEFz
c2VtYmx5SGVscGVyczo6ZW1pdEV4Y2VwdGlvbkNoZWNrKFZNJiB2bSwgRXhjZXB0aW9uQ2hlY2tL
aW5kIGtpbmQsIEV4Y2VwdGlvbkp1bXBXaWR0aCB3aWR0aCwgR1BSUmVnIGV4Y2VwdGlvblJlZykK
K0Fzc2VtYmx5SGVscGVyczo6SnVtcCBBc3NlbWJseUhlbHBlcnM6OmVtaXRFeGNlcHRpb25DaGVj
ayhWTSYgdm0sIEV4Y2VwdGlvbkNoZWNrS2luZCBraW5kLCBFeGNlcHRpb25KdW1wV2lkdGggd2lk
dGgpCiB7CiAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUV4Y2VwdGlvbkZ1enooKSkpCiAg
ICAgICAgIGNhbGxFeGNlcHRpb25GdXp6KHZtKTsKQEAgLTM2OCwxNSArMzY4LDExIEBAIEFzc2Vt
Ymx5SGVscGVyczo6SnVtcCBBc3NlbWJseUhlbHBlcnM6OmVtaXRFeGNlcHRpb25DaGVjayhWTSYg
dm0sIEV4Y2VwdGlvbkNoZWNrCiAgICAgICAgIGtpbmQgPSAoa2luZCA9PSBOb3JtYWxFeGNlcHRp
b25DaGVjayA/IEludmVydGVkRXhjZXB0aW9uQ2hlY2sgOiBOb3JtYWxFeGNlcHRpb25DaGVjayk7
CiAKICAgICBKdW1wIHJlc3VsdDsKLSAgICBpZiAoZXhjZXB0aW9uUmVnICE9IEludmFsaWRHUFJS
ZWcpIHsKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgICAgICBKdW1wIG9rID0gYnJhbmNoUHRyKEVx
dWFsLCBBYnNvbHV0ZUFkZHJlc3Modm0uYWRkcmVzc09mRXhjZXB0aW9uKCkpLCBleGNlcHRpb25S
ZWcpOwotICAgICAgICBicmVha3BvaW50KCk7Ci0gICAgICAgIG9rLmxpbmsodGhpcyk7CisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICByZXN1bHQgPSBicmFuY2hUZXN0NjQoa2luZCA9PSBOb3JtYWxF
eGNlcHRpb25DaGVjayA/IE5vblplcm8gOiBaZXJvLCBBYnNvbHV0ZUFkZHJlc3Modm0uYWRkcmVz
c09mRXhjZXB0aW9uKCkpKTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgcmVzdWx0ID0g
YnJhbmNoMzIoa2luZCA9PSBOb3JtYWxFeGNlcHRpb25DaGVjayA/IE5vdEVxdWFsIDogRXF1YWws
IEFic29sdXRlQWRkcmVzcyh2bS5hZGRyZXNzT2ZFeGNlcHRpb24oKSksIFRydXN0ZWRJbW0zMigw
KSk7CiAjZW5kaWYKLSAgICAgICAgcmVzdWx0ID0gYnJhbmNoVGVzdFB0cihraW5kID09IE5vcm1h
bEV4Y2VwdGlvbkNoZWNrID8gTm9uWmVybyA6IFplcm8sIGV4Y2VwdGlvblJlZyk7Ci0gICAgfSBl
bHNlCi0gICAgICAgIHJlc3VsdCA9IGJyYW5jaFRlc3RQdHIoa2luZCA9PSBOb3JtYWxFeGNlcHRp
b25DaGVjayA/IE5vblplcm8gOiBaZXJvLCBBYnNvbHV0ZUFkZHJlc3Modm0uYWRkcmVzc09mRXhj
ZXB0aW9uKCkpKTsKIAogICAgIGlmICh3aWR0aCA9PSBOb3JtYWxKdW1wV2lkdGgpCiAgICAgICAg
IHJldHVybiByZXN1bHQ7CkBAIC0zODcsOSArMzgzLDE5IEBAIEFzc2VtYmx5SGVscGVyczo6SnVt
cCBBc3NlbWJseUhlbHBlcnM6OmVtaXRFeGNlcHRpb25DaGVjayhWTSYgdm0sIEV4Y2VwdGlvbkNo
ZWNrCiAgICAgcmV0dXJuIHJlYWxKdW1wLm1fanVtcDsKIH0KIAotQXNzZW1ibHlIZWxwZXJzOjpK
dW1wIEFzc2VtYmx5SGVscGVyczo6ZW1pdE5vblBhdGNoYWJsZUV4Y2VwdGlvbkNoZWNrKFZNJiB2
bSwgR1BSUmVnIGV4Y2VwdGlvblJlZykKK0Fzc2VtYmx5SGVscGVyczo6SnVtcCBBc3NlbWJseUhl
bHBlcnM6OmVtaXROb25QYXRjaGFibGVFeGNlcHRpb25DaGVjayhWTSYgdm0pCiB7Ci0gICAgcmV0
dXJuIGVtaXRFeGNlcHRpb25DaGVjayh2bSwgTm9ybWFsRXhjZXB0aW9uQ2hlY2ssIE5vcm1hbEp1
bXBXaWR0aCwgZXhjZXB0aW9uUmVnKTsKKyAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6dXNlRXhj
ZXB0aW9uRnV6eigpKSkKKyAgICAgICAgY2FsbEV4Y2VwdGlvbkZ1enoodm0pOworCisgICAgSnVt
cCByZXN1bHQ7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICByZXN1bHQgPSBicmFuY2hUZXN0NjQo
Tm9uWmVybywgQWJzb2x1dGVBZGRyZXNzKHZtLmFkZHJlc3NPZkV4Y2VwdGlvbigpKSk7CisjZWxp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHJlc3VsdCA9IGJyYW5jaDMyKE5vdEVxdWFsLCBBYnNv
bHV0ZUFkZHJlc3Modm0uYWRkcmVzc09mRXhjZXB0aW9uKCkpLCBUcnVzdGVkSW1tMzIoMCkpOwor
I2VuZGlmCisKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiB2b2lkIEFzc2VtYmx5SGVscGVyczo6
ZW1pdFN0b3JlU3RydWN0dXJlV2l0aFR5cGVJbmZvKEFzc2VtYmx5SGVscGVycyYgaml0LCBUcnVz
dGVkSW1tUHRyIHN0cnVjdHVyZSwgUmVnaXN0ZXJJRCBkZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggYmE0YzcwOWZlZmI1Li5lNzAyOGEwYWNl
MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAt
MTY1MCw4ICsxNjUwLDkgQEAgcHVibGljOgogICAgIAogICAgIGVudW0gRXhjZXB0aW9uQ2hlY2tL
aW5kIHsgTm9ybWFsRXhjZXB0aW9uQ2hlY2ssIEludmVydGVkRXhjZXB0aW9uQ2hlY2sgfTsKICAg
ICBlbnVtIEV4Y2VwdGlvbkp1bXBXaWR0aCB7IE5vcm1hbEp1bXBXaWR0aCwgRmFySnVtcFdpZHRo
IH07Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgSnVtcCBlbWl0RXhjZXB0aW9uQ2hlY2soVk0mLCBF
eGNlcHRpb25DaGVja0tpbmQgPSBOb3JtYWxFeGNlcHRpb25DaGVjaywgRXhjZXB0aW9uSnVtcFdp
ZHRoID0gTm9ybWFsSnVtcFdpZHRoLCBHUFJSZWcgZXhjZXB0aW9uUmVnID0gSW52YWxpZEdQUlJl
Zyk7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgSnVtcCBlbWl0Tm9uUGF0Y2hhYmxlRXhjZXB0aW9u
Q2hlY2soVk0mLCBHUFJSZWcgZXhjZXB0aW9uUmVnID0gSW52YWxpZEdQUlJlZyk7CisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgSnVtcCBlbWl0RXhjZXB0aW9uQ2hlY2soCisgICAgICAgIFZNJiwgRXhj
ZXB0aW9uQ2hlY2tLaW5kID0gTm9ybWFsRXhjZXB0aW9uQ2hlY2ssIEV4Y2VwdGlvbkp1bXBXaWR0
aCA9IE5vcm1hbEp1bXBXaWR0aCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgSnVtcCBlbWl0Tm9u
UGF0Y2hhYmxlRXhjZXB0aW9uQ2hlY2soVk0mKTsKICAgICBKdW1wIGVtaXRKdW1wSWZFeGNlcHRp
b24oVk0mKTsKIAogI2lmIEVOQUJMRShTQU1QTElOR19DT1VOVEVSUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0NDYWxsSGVscGVycy5oCmluZGV4IGQ4ZmE2N2JmNzZlZi4uODljN2QwMDM1NTJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTc2Nyw3ICs3
NjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHNldHVwQXJndW1lbnRzRW50cnlJbXBsPE9wZXJhdGlv
blR5cGU+KEFyZ0NvbGxlY3Rpb248MCwgMCwgMCwgMCwgMCwgMCwgMCwgMD4oKS5wdXNoTm9uQXJn
KGFkZHJlc3MuYmFzZSwgR1BSSW5mbzo6bm9uQXJnR1BSMCksIGFyZ3MuLi4pOwogICAgIH0KIAot
ICAgIHZvaWQgc2V0dXBSZXN1bHRzKEdQUlJlZyBkZXN0QSwgR1BSUmVnIGRlc3RCID0gSW52YWxp
ZEdQUlJlZykKKyAgICB2b2lkIHNldHVwUmVzdWx0cyhHUFJSZWcgZGVzdEEsIEdQUlJlZyBkZXN0
QikKICAgICB7CiAgICAgICAgIEdQUlJlZyBzcmNBID0gR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFI7
CiAgICAgICAgIEdQUlJlZyBzcmNCID0gR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyOwpAQCAtNzk3
LDEyICs3OTcsNiBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAgICAgCi0gICAgdm9pZCBzZXR1
cFJlc3VsdHMoRlBSUmVnIGRlc3RBKQotICAgIHsKLSAgICAgICAgaWYgKGRlc3RBICE9IEludmFs
aWRGUFJSZWcpCi0gICAgICAgICAgICBtb3ZlRG91YmxlKEZQUkluZm86OnJldHVyblZhbHVlRlBS
LCBkZXN0QSk7Ci0gICAgfQotCiAgICAgdm9pZCBqdW1wVG9FeGNlcHRpb25IYW5kbGVyKFZNJiB2
bSkKICAgICB7CiAgICAgICAgIC8vIGdlbmVyaWNVbndpbmQoKSBsZWF2ZXMgdGhlIGhhbmRsZXIg
Q2FsbEZyYW1lKiBpbiB2bS0+Y2FsbEZyYW1lRm9yQ2F0Y2gsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
aAppbmRleCBjMTY1NTAzY2ViYzEuLjQ0NTgzNTg0MjJmMiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCkBAIC02ODUsNTMgKzY4NSw0NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJl
dHVybiBoYXNBbnlTbG93Q2FzZXMobV9zbG93Q2FzZXMsIGl0ZXIsIG1fYnl0ZWNvZGVJbmRleCk7
CiAgICAgICAgIH0KIAotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlPgog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNr
KGNvbnN0IENvZGVQdHI8Q0Z1bmN0aW9uUHRyVGFnPik7Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVu
YW1lIE9wZXJhdGlvblR5cGU+CiAgICAgICAgIHZvaWQgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25D
aGVjayhBZGRyZXNzKTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZT4K
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
a1NldEpTVmFsdWVSZXN1bHQoY29uc3QgQ29kZVB0cjxDRnVuY3Rpb25QdHJUYWc+LCBWaXJ0dWFs
UmVnaXN0ZXIgcmVzdWx0KTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlw
ZT4KICAgICAgICAgdm9pZCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJl
c3VsdChBZGRyZXNzLCBWaXJ0dWFsUmVnaXN0ZXIgcmVzdWx0KTsKLSAgICAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgT3BlcmF0aW9uVHlwZT4KICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgYXBw
ZW5kQ2FsbFNldEpTVmFsdWVSZXN1bHQoY29uc3QgQ29kZVB0cjxDRnVuY3Rpb25QdHJUYWc+LCBW
aXJ0dWFsUmVnaXN0ZXIgcmVzdWx0KTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0
aW9uVHlwZT4KICAgICAgICAgdm9pZCBhcHBlbmRDYWxsU2V0SlNWYWx1ZVJlc3VsdChBZGRyZXNz
LCBWaXJ0dWFsUmVnaXN0ZXIgcmVzdWx0KTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3Bl
cmF0aW9uVHlwZSwgdHlwZW5hbWUgQnl0ZWNvZGU+CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEJ5dGVjb2RlPgogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdFdpdGhQcm9maWxlKGNvbnN0IEJ5dGVjb2RlJiwg
Y29uc3QgQ29kZVB0cjxDRnVuY3Rpb25QdHJUYWc+LCBWaXJ0dWFsUmVnaXN0ZXIgcmVzdWx0KTsK
LSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdHlwZW5hbWUgQnl0ZWNv
ZGU+CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJ5dGVjb2RlPgogICAgICAgICB2b2lkIGFw
cGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0V2l0aFByb2ZpbGUoY29u
c3QgQnl0ZWNvZGUmLCBBZGRyZXNzLCBWaXJ0dWFsUmVnaXN0ZXIgcmVzdWx0KTsKICAgICAgICAg
CiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGUsIHR5cGVuYW1lLi4uIEFy
Z3M+Ci0gICAgICAgIHJlcXVpcmVzIE9wZXJhdGlvbkhhc1Jlc3VsdDxPcGVyYXRpb25UeXBlPgot
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKE9wZXJhdGlvblR5cGUg
b3BlcmF0aW9uLCBWaXJ0dWFsUmVnaXN0ZXIgcmVzdWx0LCBBcmdzLi4uIGFyZ3MpCisgICAgICAg
IHN0ZDo6ZW5hYmxlX2lmX3Q8RnVuY3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlwZT46Omhhc1Jlc3Vs
dCwgTWFjcm9Bc3NlbWJsZXI6OkNhbGw+CisgICAgICAgIGNhbGxPcGVyYXRpb24oT3BlcmF0aW9u
VHlwZSBvcGVyYXRpb24sIFZpcnR1YWxSZWdpc3RlciByZXN1bHQsIEFyZ3MuLi4gYXJncykKICAg
ICAgICAgewogICAgICAgICAgICAgc2V0dXBBcmd1bWVudHM8T3BlcmF0aW9uVHlwZT4oYXJncy4u
Lik7Ci0gICAgICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpT
VmFsdWVSZXN1bHQ8T3BlcmF0aW9uVHlwZT4ob3BlcmF0aW9uLCByZXN1bHQpOworICAgICAgICAg
ICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9w
ZXJhdGlvbiwgcmVzdWx0KTsKICAgICAgICAgfQogCiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1l
IE9wZXJhdGlvblR5cGUsIHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgICAgIHJlcXVpcmVzIE9wZXJh
dGlvbkhhc1Jlc3VsdDxPcGVyYXRpb25UeXBlPgotICAgICAgICB2b2lkIGNhbGxPcGVyYXRpb24o
QWRkcmVzcyB0YXJnZXQsIFZpcnR1YWxSZWdpc3RlciByZXN1bHQsIEFyZ3MuLi4gYXJncykKKyAg
ICAgICAgc3RkOjplbmFibGVfaWZfdDxGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6aGFz
UmVzdWx0LCB2b2lkPgorICAgICAgICBjYWxsT3BlcmF0aW9uKEFkZHJlc3MgdGFyZ2V0LCBWaXJ0
dWFsUmVnaXN0ZXIgcmVzdWx0LCBBcmdzLi4uIGFyZ3MpCiAgICAgICAgIHsKICAgICAgICAgICAg
IHNldHVwQXJndW1lbnRzRm9ySW5kaXJlY3RDYWxsPE9wZXJhdGlvblR5cGU+KHRhcmdldCwgYXJn
cy4uLik7Ci0gICAgICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1Nl
dEpTVmFsdWVSZXN1bHQ8T3BlcmF0aW9uVHlwZT4oQWRkcmVzcyhHUFJJbmZvOjpub25BcmdHUFIw
LCB0YXJnZXQub2Zmc2V0KSwgcmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChBZGRyZXNzKEdQUkluZm86Om5vbkFy
Z0dQUjAsIHRhcmdldC5vZmZzZXQpLCByZXN1bHQpOwogICAgICAgICB9CiAKICAgICAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdHlwZW5hbWUuLi4gQXJncz4KLSAgICAgICAg
cmVxdWlyZXMgT3BlcmF0aW9uSGFzUmVzdWx0PE9wZXJhdGlvblR5cGU+Ci0gICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKE9wZXJhdGlvblR5
cGUgb3BlcmF0aW9uLCBWaXJ0dWFsUmVnaXN0ZXIgcmVzdWx0LCBBcmdzLi4uIGFyZ3MpCisgICAg
ICAgIHN0ZDo6ZW5hYmxlX2lmX3Q8RnVuY3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlwZT46Omhhc1Jl
c3VsdCwgTWFjcm9Bc3NlbWJsZXI6OkNhbGw+CisgICAgICAgIGNhbGxPcGVyYXRpb25Ob0V4Y2Vw
dGlvbkNoZWNrKE9wZXJhdGlvblR5cGUgb3BlcmF0aW9uLCBWaXJ0dWFsUmVnaXN0ZXIgcmVzdWx0
LCBBcmdzLi4uIGFyZ3MpCiAgICAgICAgIHsKICAgICAgICAgICAgIHNldHVwQXJndW1lbnRzPE9w
ZXJhdGlvblR5cGU+KGFyZ3MuLi4pOwotICAgICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRK
U1ZhbHVlUmVzdWx0PE9wZXJhdGlvblR5cGU+KG9wZXJhdGlvbiwgcmVzdWx0KTsKKyAgICAgICAg
ICAgIHJldHVybiBhcHBlbmRDYWxsU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7
CiAgICAgICAgIH0KIAogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB0
eXBlbmFtZS4uLiBBcmdzPgotICAgICAgICByZXF1aXJlcyBPcGVyYXRpb25IYXNSZXN1bHQ8T3Bl
cmF0aW9uVHlwZT4KLSAgICAgICAgdm9pZCBjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhB
ZGRyZXNzIHRhcmdldCwgVmlydHVhbFJlZ2lzdGVyIHJlc3VsdCwgQXJncy4uLiBhcmdzKQorICAg
ICAgICBzdGQ6OmVuYWJsZV9pZl90PEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+OjpoYXNS
ZXN1bHQsIHZvaWQ+CisgICAgICAgIGNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKEFkZHJl
c3MgdGFyZ2V0LCBWaXJ0dWFsUmVnaXN0ZXIgcmVzdWx0LCBBcmdzLi4uIGFyZ3MpCiAgICAgICAg
IHsKICAgICAgICAgICAgIHNldHVwQXJndW1lbnRzRm9ySW5kaXJlY3RDYWxsPE9wZXJhdGlvblR5
cGU+KHRhcmdldCwgYXJncy4uLik7Ci0gICAgICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldEpT
VmFsdWVSZXN1bHQ8T3BlcmF0aW9uVHlwZT4oQWRkcmVzcyhHUFJJbmZvOjpub25BcmdHUFIwLCB0
YXJnZXQub2Zmc2V0KSwgcmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0
SlNWYWx1ZVJlc3VsdChBZGRyZXNzKEdQUkluZm86Om5vbkFyZ0dQUjAsIHRhcmdldC5vZmZzZXQp
LCByZXN1bHQpOwogICAgICAgICB9CiAKICNpZiBPUyhXSU5ET1dTKSAmJiBDUFUoWDg2XzY0KQpA
QCAtNzUxLDcgKzc0NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgc2V0dXBBcmd1
bWVudHM8T3BlcmF0aW9uVHlwZT4oYXJncy4uLik7CiAgICAgICAgICAgICAvLyB4NjQgV2luZG93
cyBjYW5ub3QgdXNlIHN0YW5kYXJkIGNhbGwgd2hlbiB0aGUgcmV0dXJuIHR5cGUgaXMgbGFyZ2Vy
IHRoYW4gNjQgYml0cy4KICAgICAgICAgICAgIGlmIGNvbnN0ZXhwciAoaXM2NEJpdFR5cGU8dHlw
ZW5hbWUgRnVuY3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlwZT46OlJlc3VsdFR5cGU+Ojp2YWx1ZSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjazxPcGVy
YXRpb25UeXBlPihvcGVyYXRpb24pOworICAgICAgICAgICAgICAgIHJldHVybiBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiAgICAgICAgICAgICB1cGRhdGVUb3BDYWxs
RnJhbWUoKTsKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBhcHBlbmRD
YWxsV2l0aFVHUFJQYWlyKG9wZXJhdGlvbik7CiAgICAgICAgICAgICBleGNlcHRpb25DaGVjaygp
OwpAQCAtNzYyLDcgKzc1Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKE9wZXJhdGlvblR5cGUgb3BlcmF0aW9uLCBBcmdzLi4u
IGFyZ3MpCiAgICAgICAgIHsKICAgICAgICAgICAgIHNldHVwQXJndW1lbnRzPE9wZXJhdGlvblR5
cGU+KGFyZ3MuLi4pOwotICAgICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9u
Q2hlY2s8T3BlcmF0aW9uVHlwZT4ob3BlcmF0aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBl
bmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiAgICAgICAgIH0KICNlbmRpZiAv
LyBPUyhXSU5ET1dTKSAmJiBDUFUoWDg2XzY0KQogCkBAIC03NzQsMzEgKzc2OCwzMCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoaXM2NEJpdFR5cGU8dHlwZW5h
bWUgRnVuY3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlwZT46OlJlc3VsdFR5cGU+Ojp2YWx1ZSk7CiAj
ZW5kaWYKICAgICAgICAgICAgIHNldHVwQXJndW1lbnRzRm9ySW5kaXJlY3RDYWxsPE9wZXJhdGlv
blR5cGU+KHRhcmdldCwgYXJncy4uLik7Ci0gICAgICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2Vw
dGlvbkNoZWNrPE9wZXJhdGlvblR5cGU+KEFkZHJlc3MoR1BSSW5mbzo6bm9uQXJnR1BSMCwgdGFy
Z2V0Lm9mZnNldCkpOworICAgICAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhB
ZGRyZXNzKEdQUkluZm86Om5vbkFyZ0dQUjAsIHRhcmdldC5vZmZzZXQpKTsKICAgICAgICAgfQog
CiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJ5dGVjb2RlLCB0eXBlbmFtZSBPcGVyYXRpb25U
eXBlLCB0eXBlbmFtZS4uLiBBcmdzPgotICAgICAgICByZXF1aXJlcyBPcGVyYXRpb25IYXNSZXN1
bHQ8T3BlcmF0aW9uVHlwZT4KLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbldpdGhQcm9maWxlKGNvbnN0IEJ5dGVjb2RlJiBieXRlY29kZSwgT3BlcmF0aW9uVHlwZSBv
cGVyYXRpb24sIFZpcnR1YWxSZWdpc3RlciByZXN1bHQsIEFyZ3MuLi4gYXJncykKKyAgICAgICAg
c3RkOjplbmFibGVfaWZfdDxGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6aGFzUmVzdWx0
LCBNYWNyb0Fzc2VtYmxlcjo6Q2FsbD4KKyAgICAgICAgY2FsbE9wZXJhdGlvbldpdGhQcm9maWxl
KGNvbnN0IEJ5dGVjb2RlJiBieXRlY29kZSwgT3BlcmF0aW9uVHlwZSBvcGVyYXRpb24sIFZpcnR1
YWxSZWdpc3RlciByZXN1bHQsIEFyZ3MuLi4gYXJncykKICAgICAgICAgewogICAgICAgICAgICAg
c2V0dXBBcmd1bWVudHM8T3BlcmF0aW9uVHlwZT4oYXJncy4uLik7Ci0gICAgICAgICAgICByZXR1
cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHRXaXRoUHJvZmls
ZTxPcGVyYXRpb25UeXBlPihieXRlY29kZSwgb3BlcmF0aW9uLCByZXN1bHQpOworICAgICAgICAg
ICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0V2l0
aFByb2ZpbGUoYnl0ZWNvZGUsIG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICAgICAgfQogCiAgICAg
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGUsIHR5cGVuYW1lIEJ5dGVjb2RlLCB0
eXBlbmFtZS4uLiBBcmdzPgotICAgICAgICByZXF1aXJlcyBPcGVyYXRpb25IYXNSZXN1bHQ8T3Bl
cmF0aW9uVHlwZT4KLSAgICAgICAgdm9pZCBjYWxsT3BlcmF0aW9uV2l0aFByb2ZpbGUoY29uc3Qg
Qnl0ZWNvZGUmIGJ5dGVjb2RlLCBBZGRyZXNzIHRhcmdldCwgVmlydHVhbFJlZ2lzdGVyIHJlc3Vs
dCwgQXJncy4uLiBhcmdzKQorICAgICAgICBzdGQ6OmVuYWJsZV9pZl90PEZ1bmN0aW9uVHJhaXRz
PE9wZXJhdGlvblR5cGU+OjpoYXNSZXN1bHQsIHZvaWQ+CisgICAgICAgIGNhbGxPcGVyYXRpb25X
aXRoUHJvZmlsZShjb25zdCBCeXRlY29kZSYgYnl0ZWNvZGUsIEFkZHJlc3MgdGFyZ2V0LCBWaXJ0
dWFsUmVnaXN0ZXIgcmVzdWx0LCBBcmdzLi4uIGFyZ3MpCiAgICAgICAgIHsKICAgICAgICAgICAg
IHNldHVwQXJndW1lbnRzRm9ySW5kaXJlY3RDYWxsPE9wZXJhdGlvblR5cGU+KHRhcmdldCwgYXJn
cy4uLik7Ci0gICAgICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1Nl
dEpTVmFsdWVSZXN1bHRXaXRoUHJvZmlsZTxPcGVyYXRpb25UeXBlPihieXRlY29kZSwgQWRkcmVz
cyhHUFJJbmZvOjpub25BcmdHUFIwLCB0YXJnZXQub2Zmc2V0KSwgcmVzdWx0KTsKKyAgICAgICAg
ICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdFdp
dGhQcm9maWxlKGJ5dGVjb2RlLCBBZGRyZXNzKEdQUkluZm86Om5vbkFyZ0dQUjAsIHRhcmdldC5v
ZmZzZXQpLCByZXN1bHQpOwogICAgICAgICB9CiAKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
T3BlcmF0aW9uVHlwZSwgdHlwZW5hbWUuLi4gQXJncz4KLSAgICAgICAgcmVxdWlyZXMgT3BlcmF0
aW9uSGFzUmVzdWx0PE9wZXJhdGlvblR5cGU+CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGxPcGVyYXRpb25XaXRoUmVzdWx0KE9wZXJhdGlvblR5cGUgb3BlcmF0aW9uLCBKU1ZhbHVl
UmVncyByZXN1bHRSZWdzLCBBcmdzLi4uIGFyZ3MpCiAgICAgICAgIHsKICAgICAgICAgICAgIHNl
dHVwQXJndW1lbnRzPE9wZXJhdGlvblR5cGU+KGFyZ3MuLi4pOwotICAgICAgICAgICAgYXV0byBy
ZXN1bHQgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrPE9wZXJhdGlvblR5cGU+KG9wZXJh
dGlvbik7CisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9u
Q2hlY2sob3BlcmF0aW9uKTsKICAgICAgICAgICAgIHNldHVwUmVzdWx0cyhyZXN1bHRSZWdzKTsK
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVENhbGwuY3BwCmluZGV4IGNmYTFlYjcwMzU3MS4uN2YyMjVjNzY5NDViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKQEAgLTczLDEwICs3MywxMCBAQCB2b2lkIEpJ
VDo6Y29tcGlsZVNldHVwRnJhbWUoY29uc3QgT3AmIGJ5dGVjb2RlKQogICAgICAgICBpbnQgZmly
c3RWYXJBcmdPZmZzZXQgPSBieXRlY29kZS5tX2ZpcnN0VmFyQXJnOwogCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgZ2xvYmFsT2JqZWN0R1BSID0gcHJlZmVycmVkQXJn
dW1lbnRHUFI8U19KSVRPcGVyYXRpb25fR0paWiwgMD4oKTsKLSAgICAgICAgICAgIGNvbnN0ZXhw
ciBKU1ZhbHVlUmVncyBhcmd1bWVudHNKU1IgPSBwcmVmZXJyZWRBcmd1bWVudEpTUjxTX0pJVE9w
ZXJhdGlvbl9HSlpaLCAxPigpOworICAgICAgICAgICAgY29uc3RleHByIEdQUlJlZyBnbG9iYWxP
YmplY3RHUFIgPSBwcmVmZXJyZWRBcmd1bWVudEdQUjxaX0pJVE9wZXJhdGlvbl9HSlpaLCAwPigp
OworICAgICAgICAgICAgY29uc3RleHByIEpTVmFsdWVSZWdzIGFyZ3VtZW50c0pTUiA9IHByZWZl
cnJlZEFyZ3VtZW50SlNSPFpfSklUT3BlcmF0aW9uX0dKWlosIDE+KCk7CiAKLSAgICAgICAgICAg
IFNfSklUT3BlcmF0aW9uX0dKWlogc2l6ZU9wZXJhdGlvbjsKKyAgICAgICAgICAgIFpfSklUT3Bl
cmF0aW9uX0dKWlogc2l6ZU9wZXJhdGlvbjsKICAgICAgICAgICAgIGlmIGNvbnN0ZXhwciAob3Bj
b2RlSUQgPT0gb3BfdGFpbF9jYWxsX2ZvcndhcmRfYXJndW1lbnRzKQogICAgICAgICAgICAgICAg
IHNpemVPcGVyYXRpb24gPSBvcGVyYXRpb25TaXplRnJhbWVGb3JGb3J3YXJkQXJndW1lbnRzOwog
ICAgICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAppbmRl
eCA4ZmMwNDA0NzBhMzAuLmNkMzFmYmU0OWJhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRJbmxpbmVzLmgKQEAgLTk0LDg0ICs5NCw2MCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjp1
cGRhdGVUb3BDYWxsRnJhbWUoKQogICAgIHByZXBhcmVDYWxsT3BlcmF0aW9uKCptX3ZtKTsKIH0K
IAotdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZT4KIEFMV0FZU19JTkxJTkUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjphcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGNvbnN0IENv
ZGVQdHI8Q0Z1bmN0aW9uUHRyVGFnPiBmdW5jdGlvbikKIHsKICAgICB1cGRhdGVUb3BDYWxsRnJh
bWUoKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gYXBwZW5kQ2FsbChmdW5jdGlv
bik7Ci0gICAgdXNpbmcgUmVzdWx0VHlwZSA9IHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPE9wZXJh
dGlvblR5cGU+OjpSZXN1bHRUeXBlOwotICAgIGlmIGNvbnN0ZXhwciAoaXNFeGNlcHRpb25PcGVy
YXRpb25SZXN1bHQ8UmVzdWx0VHlwZT4pIHsKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgICAgICBK
dW1wIG9rID0gYnJhbmNoUHRyKEVxdWFsLCBBYnNvbHV0ZUFkZHJlc3Modm0oKS5hZGRyZXNzT2ZF
eGNlcHRpb24oKSksIG9wZXJhdGlvbkV4Y2VwdGlvblJlZ2lzdGVyPFJlc3VsdFR5cGU+KCkpOwot
ICAgICAgICBicmVha3BvaW50KCk7Ci0gICAgICAgIG9rLmxpbmsodGhpcyk7Ci0jZW5kaWYKLSAg
ICAgICAgZXhjZXB0aW9uQ2hlY2soYnJhbmNoVGVzdFB0cihOb25aZXJvLCBvcGVyYXRpb25FeGNl
cHRpb25SZWdpc3RlcjxSZXN1bHRUeXBlPigpKSk7Ci0gICAgfSBlbHNlCiAgICAgZXhjZXB0aW9u
Q2hlY2soKTsKICAgICByZXR1cm4gY2FsbDsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0
aW9uVHlwZT4KIEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OmFwcGVuZENhbGxXaXRoRXhjZXB0aW9u
Q2hlY2soQWRkcmVzcyBmdW5jdGlvbikKIHsKICAgICB1cGRhdGVUb3BDYWxsRnJhbWUoKTsKICAg
ICBhcHBlbmRDYWxsKGZ1bmN0aW9uKTsKLSAgICB1c2luZyBSZXN1bHRUeXBlID0gdHlwZW5hbWUg
RnVuY3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlwZT46OlJlc3VsdFR5cGU7Ci0gICAgaWYgY29uc3Rl
eHByIChpc0V4Y2VwdGlvbk9wZXJhdGlvblJlc3VsdDxSZXN1bHRUeXBlPikgewotI2lmIEFTU0VS
VF9FTkFCTEVECi0gICAgICAgIEp1bXAgb2sgPSBicmFuY2hQdHIoRXF1YWwsIEFic29sdXRlQWRk
cmVzcyh2bSgpLmFkZHJlc3NPZkV4Y2VwdGlvbigpKSwgb3BlcmF0aW9uRXhjZXB0aW9uUmVnaXN0
ZXI8UmVzdWx0VHlwZT4oKSk7Ci0gICAgICAgIGJyZWFrcG9pbnQoKTsKLSAgICAgICAgb2subGlu
ayh0aGlzKTsKLSNlbmRpZgotICAgICAgICBleGNlcHRpb25DaGVjayhicmFuY2hUZXN0UHRyKE5v
blplcm8sIG9wZXJhdGlvbkV4Y2VwdGlvblJlZ2lzdGVyPFJlc3VsdFR5cGU+KCkpKTsKLSAgICB9
IGVsc2UKICAgICBleGNlcHRpb25DaGVjaygpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBPcGVy
YXRpb25UeXBlPgogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmFwcGVu
ZENhbGxTZXRKU1ZhbHVlUmVzdWx0KGNvbnN0IENvZGVQdHI8Q0Z1bmN0aW9uUHRyVGFnPiBmdW5j
dGlvbiwgVmlydHVhbFJlZ2lzdGVyIGRzdCkKIHsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjazxPcGVyYXRpb25UeXBlPihmdW5jdGlv
bik7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2soZnVuY3Rpb24pOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0LCByZXR1
cm5WYWx1ZUpTUik7CiAgICAgcmV0dXJuIGNhbGw7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIE9w
ZXJhdGlvblR5cGU+CiBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjphcHBlbmRDYWxsU2V0SlNWYWx1
ZVJlc3VsdChBZGRyZXNzIGZ1bmN0aW9uLCBWaXJ0dWFsUmVnaXN0ZXIgZHN0KQogewotICAgIGFw
cGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2s8T3BlcmF0aW9uVHlwZT4oZnVuY3Rpb24pOworICAg
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soZnVuY3Rpb24pOwogICAgIGVtaXRQdXRWaXJ0
dWFsUmVnaXN0ZXIoZHN0LCByZXR1cm5WYWx1ZUpTUik7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1l
IE9wZXJhdGlvblR5cGU+CiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6
YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQoY29uc3QgQ29kZVB0
cjxDRnVuY3Rpb25QdHJUYWc+IGZ1bmN0aW9uLCBWaXJ0dWFsUmVnaXN0ZXIgZHN0KQogewotICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNr
PE9wZXJhdGlvblR5cGU+KGZ1bmN0aW9uKTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
ID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhmdW5jdGlvbik7CiAgICAgZW1pdFB1dFZp
cnR1YWxSZWdpc3Rlcihkc3QsIHJldHVyblZhbHVlSlNSKTsKICAgICByZXR1cm4gY2FsbDsKIH0K
IAotdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZT4KIEFMV0FZU19JTkxJTkUgdm9pZCBK
SVQ6OmFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KEFkZHJlc3Mg
ZnVuY3Rpb24sIFZpcnR1YWxSZWdpc3RlciBkc3QpCiB7Ci0gICAgYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVjazxPcGVyYXRpb25UeXBlPihmdW5jdGlvbik7CisgICAgYXBwZW5kQ2FsbFdpdGhF
eGNlcHRpb25DaGVjayhmdW5jdGlvbik7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3Qs
IHJldHVyblZhbHVlSlNSKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwg
dHlwZW5hbWUgQnl0ZWNvZGU+Cit0ZW1wbGF0ZTx0eXBlbmFtZSBCeXRlY29kZT4KIEFMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjphcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNo
ZWNrU2V0SlNWYWx1ZVJlc3VsdFdpdGhQcm9maWxlKGNvbnN0IEJ5dGVjb2RlJiBieXRlY29kZSwg
Y29uc3QgQ29kZVB0cjxDRnVuY3Rpb25QdHJUYWc+IGZ1bmN0aW9uLCBWaXJ0dWFsUmVnaXN0ZXIg
ZHN0KQogewotICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrPE9wZXJhdGlvblR5cGU+KGZ1bmN0aW9uKTsKKyAgICBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBjYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhmdW5jdGlvbik7CiAg
ICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZSwgcmV0dXJuVmFsdWVKU1IpOwogICAg
IGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0LCByZXR1cm5WYWx1ZUpTUik7CiAgICAgcmV0dXJu
IGNhbGw7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGUsIHR5cGVuYW1lIEJ5
dGVjb2RlPgordGVtcGxhdGU8dHlwZW5hbWUgQnl0ZWNvZGU+CiBBTFdBWVNfSU5MSU5FIHZvaWQg
SklUOjphcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdFdpdGhQcm9m
aWxlKGNvbnN0IEJ5dGVjb2RlJiBieXRlY29kZSwgQWRkcmVzcyBmdW5jdGlvbiwgVmlydHVhbFJl
Z2lzdGVyIGRzdCkKIHsKLSAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrPE9wZXJhdGlv
blR5cGU+KGZ1bmN0aW9uKTsKKyAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGZ1bmN0
aW9uKTsKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLCByZXR1cm5WYWx1ZUpT
Uik7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QsIHJldHVyblZhbHVlSlNSKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGJiMTA0
ZWRiYzZlOC4uY2E1MTIyYjIzZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEz
LTIwMjQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzLTIwMjMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC04MCw3ICs4MCw2IEBAIElHTk9SRV9XQVJOSU5HU19CRUdJTigi
ZnJhbWUtYWRkcmVzcyIpCiBuYW1lc3BhY2UgSlNDIHsKIAogCi0KIEFMV0FZU19JTkxJTkUgSUNT
bG93UGF0aENhbGxGcmFtZVRyYWNlcjo6SUNTbG93UGF0aENhbGxGcmFtZVRyYWNlcihWTSYgdm0s
IENhbGxGcmFtZSogY2FsbEZyYW1lLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pCiAgI2lm
IEFTU0VSVF9FTkFCTEVECiAgICAgICAgIDogbV92bSh2bSkKQEAgLTEyMSw3ICsxMjAsNyBAQCBl
eHRlcm4gIkMiIHZvaWQgKiBfUmV0dXJuQWRkcmVzcyh2b2lkKTsKICNlbmRpZgogCiAKLUpTQ19E
RUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dF
cnJvciwgdm9pZCwgKENvZGVCbG9jayogY29kZUJsb2NrKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvciwgdm9pZCwgKENvZGVCbG9jayog
Y29kZUJsb2NrKSkKIHsKICAgICAvLyBXZSBwYXNzIGluIG91ciBvd24gY29kZSBibG9jaywgYmVj
YXVzZSB0aGUgY2FsbGZyYW1lIGhhc24ndCBiZWVuIHBvcHVsYXRlZC4KICAgICBWTSYgdm0gPSBj
b2RlQmxvY2stPnZtKCk7CkBAIC0xMzIsNyArMTMxLDcgQEAgSlNDX0RFRklORV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yLCB2b2lkLCAoQ29k
ZUIKICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjb2RlQmxvY2stPmdsb2JhbE9iamVjdCgp
LCBzY29wZSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRp
b25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvckZyb21UaHVuaywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93
U3RhY2tPdmVyZmxvd0Vycm9yRnJvbVRodW5rLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2NSwxMSArMTY0
LDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXcmFwcGVkVmFsdWVG
b3JUYXJnZXQsIEVuY29kZWRKU1ZhbHVlLCAoSlNSCiAKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBBU1NFUlQoaXNSZW1vdGVGdW5jdGlvbihjYWxsZWUp
KTsKIAogICAgIEpTR2xvYmFsT2JqZWN0KiB0YXJnZXRHbG9iYWxPYmplY3QgPSBjYWxsZWUtPnRh
cmdldEZ1bmN0aW9uKCktPmdsb2JhbE9iamVjdCgpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShnZXRXcmFwcGVkVmFsdWUoZ2xvYmFsT2JqZWN0LCB0YXJnZXRH
bG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKSkpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoZ2V0V3JhcHBlZFZhbHVlKGdsb2JhbE9iamVjdCwgdGFyZ2V0R2xv
YmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSkpOwogfQogCiBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V3JhcHBlZFZhbHVlRm9yQ2FsbGVyLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTUmVtb3RlRnVuY3Rpb24qIGNhbGxlZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKQEAgLTE3OSwxMCArMTc3LDExIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25HZXRXcmFwcGVkVmFsdWVGb3JDYWxsZXIsIEVuY29kZWRKU1ZhbHVlLCAoSlNS
CiAKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAg
ICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBBU1NF
UlQoaXNSZW1vdGVGdW5jdGlvbihjYWxsZWUpKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShnZXRXcmFwcGVkVmFsdWUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKSkpOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKGdldFdyYXBwZWRWYWx1ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpKSk7CiB9CiAKIHN0YXRpYyBpbmxp
bmUgVUdQUlBhaXIgbWF0ZXJpYWxpemVUYXJnZXRDb2RlKFZNJiB2bSwgSlNGdW5jdGlvbiogdGFy
Z2V0RnVuY3Rpb24pCkBAIC0yMTEsOSArMjEwLDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk1hdGVyaWFsaXplQm91bmRGdW5jdGlvblRhcmdldENvZGUsIFVHUFJQYWlyLAog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBhdXRvKiB0YXJnZXRGdW5jdGlvbiA9IGpzQ2FzdDxK
U0Z1bmN0aW9uKj4oY2FsbGVlLT50YXJnZXRGdW5jdGlvbigpKTsgLy8gV2UgY2FsbCB0aGlzIGZ1
bmN0aW9uIG9ubHkgd2hlbiBKU0JvdW5kRnVuY3Rpb24ncyB0YXJnZXQgaXMgSlNGdW5jdGlvbi4K
LSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBtYXRlcmlhbGl6ZVRhcmdldENvZGUodm0sIHRh
cmdldEZ1bmN0aW9uKSk7CisgICAgcmV0dXJuIG1hdGVyaWFsaXplVGFyZ2V0Q29kZSh2bSwgdGFy
Z2V0RnVuY3Rpb24pOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0
ZXJpYWxpemVSZW1vdGVGdW5jdGlvblRhcmdldENvZGUsIFVHUFJQYWlyLCAoSlNSZW1vdGVGdW5j
dGlvbiogY2FsbGVlKSkKQEAgLTIyMiwxMCArMjIwLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk1hdGVyaWFsaXplUmVtb3RlRnVuY3Rpb25UYXJnZXRDb2RlLCBVR1BSUGFp
ciwKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3Vl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgQVNTRVJUKGlzUmVtb3RlRnVuY3Rpb24oY2Fs
bGVlKSk7CiAgICAgYXV0byogdGFyZ2V0RnVuY3Rpb24gPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KGNh
bGxlZS0+dGFyZ2V0RnVuY3Rpb24oKSk7IC8vIFdlIGNhbGwgdGhpcyBmdW5jdGlvbiBvbmx5IHdo
ZW4gSlNSZW1vdGVGdW5jdGlvbidzIHRhcmdldCBpcyBKU0Z1bmN0aW9uLgotICAgIE9QRVJBVElP
Tl9SRVRVUk4oc2NvcGUsIG1hdGVyaWFsaXplVGFyZ2V0Q29kZSh2bSwgdGFyZ2V0RnVuY3Rpb24p
KTsKKyAgICByZXR1cm4gbWF0ZXJpYWxpemVUYXJnZXRDb2RlKHZtLCB0YXJnZXRGdW5jdGlvbik7
CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd1JlbW90ZUZ1bmN0
aW9uRXhjZXB0aW9uLCBFbmNvZGVkSlNWYWx1ZSwgKEpTUmVtb3RlRnVuY3Rpb24qIGNhbGxlZSkp
CkBAIC0yMzUsOSArMjMyLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRo
cm93UmVtb3RlRnVuY3Rpb25FeGNlcHRpb24sIEVuY29kZWRKU1ZhbHVlLAogCiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgQVNTRVJUKGlzUmVtb3RlRnVu
Y3Rpb24oY2FsbGVlKSk7CiAKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgRXhjZXB0aW9uKiBleGNlcHRpb24gPSBzY29wZS5leGNlcHRpb24oKTsKIAogICAg
IC8vIFdlIHNob3VsZCBvbmx5IGJlIGhlcmUgd2hlbiAicmV0aHJvd2luZyIgYW4gZXhjZXB0aW9u
CkBAIC0yNDUsNyArMjQyLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRo
cm93UmVtb3RlRnVuY3Rpb25FeGNlcHRpb24sIEVuY29kZWRKU1ZhbHVlLAogCiAgICAgaWYgKFVO
TElLRUxZKHZtLmlzVGVybWluYXRpb25FeGNlcHRpb24oZXhjZXB0aW9uKSkpIHsKICAgICAgICAg
c2NvcGUucmVsZWFzZSgpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBlbmNvZGVk
SlNWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAgICBKU1ZhbHVlIGV4
Y2VwdGlvblZhbHVlID0gZXhjZXB0aW9uLT52YWx1ZSgpOwpAQCAtMjU1LDE0ICsyNTIsMTQgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93UmVtb3RlRnVuY3Rpb25FeGNl
cHRpb24sIEVuY29kZWRKU1ZhbHVlLAogICAgIEV4Y2VwdGlvbiogdG9TdHJpbmdFeGNlcHRpb24g
PSBzY29wZS5leGNlcHRpb24oKTsKICAgICBpZiAoVU5MSUtFTFkodG9TdHJpbmdFeGNlcHRpb24g
JiYgdm0uaXNUZXJtaW5hdGlvbkV4Y2VwdGlvbih0b1N0cmluZ0V4Y2VwdGlvbikpKSB7CiAgICAg
ICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgZW5j
b2RlZEpTVmFsdWUoKSk7CisgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogICAgIHNjb3BlLmNs
ZWFyRXhjZXB0aW9uKCk7CiAKICAgICBpZiAoZXhjZXB0aW9uU3RyaW5nLmxlbmd0aCgpKQotICAg
ICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsIGV4Y2VwdGlvblN0cmluZykpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBleGNlcHRpb25TdHJpbmcpOwogCi0gICAgT1BFUkFU
SU9OX1JFVFVSTihzY29wZSwgdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKSk7
CisgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiB9CiAK
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd0l0ZXJhdG9yUmVzdWx0SXNO
b3RPYmplY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkKQEAgLTI3Myw3
ICsyNzAsNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dJdGVyYXRv
clJlc3VsdElzTm90T2JqZWN0LCB2b2lkLCAoSlNHbG9iYQogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJJdGVyYXRvciByZXN1bHQgaW50ZXJmYWNlIGlzIG5vdCBhbiBvYmplY3QuIl9zKTsK
LSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblRyeUdldEJ5SWRHYXZlVXAsIEVuY29kZWRKU1ZhbHVlLCAoRW5jb2RlZEpT
VmFsdWUgYmFzZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvKSkKQEAgLTI4MSw4ICsyNzcsNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVHJ5R2V0QnlJZEdhdmVVcCwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGVkSlNW
YQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSUNTbG93UGF0aENhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSwgc3R1YkluZm8pOwotICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQogCiAgICAgc3R1YkluZm8tPnRvb2tTbG93UGF0aCA9
IHRydWU7CiAKQEAgLTI5Myw3ICsyODcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uVHJ5R2V0QnlJZEdhdmVVcCwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGVkSlNWYQogICAg
IFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhv
ZFR5cGU6OlZNSW5xdWlyeSwgJnZtKTsKICAgICBiYXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGds
b2JhbE9iamVjdCwgaWRlbnQsIHNsb3QpOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHNsb3QuZ2V0UHVyZVJlc3VsdCgpKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShzbG90LmdldFB1cmVSZXN1bHQoKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3Qg
cmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCkBAIC0zMDEsOCArMjk1LDYgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2IKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KICAgICBDYWNoZWFibGVJZGVudGlm
aWVyIGlkZW50aWZpZXIgPSBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tUmF3Qml0cyhy
YXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBJZGVudGlmaWVyIGlkZW50ID0gSWRlbnRpZmll
cjo6ZnJvbVVpZCh2bSwgaWRlbnRpZmllci51aWQoKSk7CiAKQEAgLTMxMCw3ICszMDIsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZEdlbmVyaWMsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYgogICAgIFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSwg
UHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSwgJnZtKTsKICAgICBi
YXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGdsb2JhbE9iamVjdCwgaWRlbnQsIHNsb3QpOwogCi0g
ICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHNsb3QuZ2V0UHVyZVJl
c3VsdCgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzbG90LmdldFB1cmVSZXN1bHQo
KSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkT3B0
aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoRW5jb2RlZEpTVmFsdWUgYmFzZSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKSkKQEAgLTMyNywx
MyArMzE5LDEzIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlk
T3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoRW5jb2RlZEpTCiAgICAgUHJvcGVydHlTbG90IHNs
b3QoYmFzZVZhbHVlLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5
LCAmdm0pOwogCiAgICAgYmFzZVZhbHVlLmdldFByb3BlcnR5U2xvdChnbG9iYWxPYmplY3QsIGlk
ZW50LCBzbG90KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5j
b2RlZEpTVmFsdWUoKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpT
VmFsdWUoKSk7CiAKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJs
b2NrKCk7CiAgICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlclJlcGF0Y2hpbmdDYWNoZUJ5KHZtLCBj
b2RlQmxvY2ssIGJhc2VWYWx1ZS5zdHJ1Y3R1cmVPck51bGwoKSwgaWRlbnRpZmllcikgJiYgIXNs
b3QuaXNUYWludGVkQnlPcGFxdWVPYmplY3QoKSAmJiAoc2xvdC5pc0NhY2hlYWJsZVZhbHVlKCkg
fHwgc2xvdC5pc0NhY2hlYWJsZUdldHRlcigpIHx8IHNsb3QuaXNVbnNldCgpKSkKICAgICAgICAg
cmVwYXRjaEdldEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIGlkZW50aWZp
ZXIsIHNsb3QsICpzdHViSW5mbywgR2V0QnlLaW5kOjpUcnlCeUlkKTsKIAotICAgIE9QRVJBVElP
Tl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShzbG90LmdldFB1cmVSZXN1bHQoKSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc2xvdC5nZXRQdXJlUmVzdWx0KCkpOwogfQogCiBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdEdhdmVVcCwgRW5j
b2RlZEpTVmFsdWUsIChFbmNvZGVkSlNWYWx1ZSBiYXNlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pKQpAQCAtMzUyLDkgKzM0NCw5IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0R2F2ZVVwLCBF
bmNvZGVkSlNWYWx1ZSwgKEVuY29kZWRKCiAgICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVl
LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0T3duUHJvcGVydHkpOwogCiAg
ICAgYm9vbCBmb3VuZCA9IGJhc2VWYWx1ZS5nZXRPd25Qcm9wZXJ0eVNsb3QoZ2xvYmFsT2JqZWN0
LCBpZGVudCwgc2xvdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29k
ZWRKU1ZhbHVlKCkpOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKGZvdW5kID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6IGpzVW5kZWZp
bmVkKCkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShm
b3VuZCA/IHNsb3QuZ2V0VmFsdWUoZ2xvYmFsT2JqZWN0LCBpZGVudCkgOiBqc1VuZGVmaW5lZCgp
KSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0
R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCkBA
IC0zNzEsOSArMzYzLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5
SWREaXJlY3RHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmEKICAgICBQcm9wZXJ0eVNs
b3Qgc2xvdChiYXNlVmFsdWUsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXRP
d25Qcm9wZXJ0eSk7CiAKICAgICBib29sIGZvdW5kID0gYmFzZVZhbHVlLmdldE93blByb3BlcnR5
U2xvdChnbG9iYWxPYmplY3QsIGlkZW50LCBzbG90KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUoZm91bmQgPyBzbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwg
aWRlbnQpIDoganNVbmRlZmluZWQoKSkpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKGZvdW5kID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50
KSA6IGpzVW5kZWZpbmVkKCkpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldEJ5SWREaXJlY3RPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGVkSlNWYWx1
ZSBiYXNlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8pKQpAQCAtMzkwLDEzICszODIsMTMgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkdldEJ5SWREaXJlY3RPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGUK
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlVmFsdWUsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxN
ZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSk7CiAKICAgICBib29sIGZvdW5kID0gYmFzZVZhbHVl
LmdldE93blByb3BlcnR5U2xvdChnbG9iYWxPYmplY3QsIGlkZW50LCBzbG90KTsKLSAgICBPUEVS
QVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKICAgICBDb2Rl
QmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgaWYgKHN0dWJJ
bmZvLT5jb25zaWRlclJlcGF0Y2hpbmdDYWNoZUJ5KHZtLCBjb2RlQmxvY2ssIGJhc2VWYWx1ZS5z
dHJ1Y3R1cmVPck51bGwoKSwgaWRlbnRpZmllcikpCiAgICAgICAgIHJlcGF0Y2hHZXRCeShnbG9i
YWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZhbHVlLCBpZGVudGlmaWVyLCBzbG90LCAqc3R1Yklu
Zm8sIEdldEJ5S2luZDo6QnlJZERpcmVjdCk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoZm91bmQgPyBzbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgaWRl
bnQpIDoganNVbmRlZmluZWQoKSkpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKGZvdW5kID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6
IGpzVW5kZWZpbmVkKCkpKTsKIH0KIAogc3RhdGljIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBnZXRC
eUlkTWVnYW1vcnBoaWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBKU1ZhbHVlIGJh
c2VWYWx1ZSwgSlNWYWx1ZSB0aGlzVmFsdWUsIENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgR2V0QnlLaW5kIGtpbmQpCkBAIC00NjksMTIgKzQ2MSwxMSBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZE1lZ2Ftb3JwaGljLCBFbmNvZGVkSlNWYWx1ZSwgKEVu
Y29kZWRKUwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSUNTbG93UGF0aENhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSwgc3R1YkluZm8pOwotICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGJhc2UpOwogICAgIENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciA9IHN0dWJJbmZvLT5pZGVudGlmaWVyKCk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoZ2V0QnlJZE1lZ2Ftb3JwaGljKGdsb2JhbE9iamVjdCwgdm0sIGNh
bGxGcmFtZSwgc3R1YkluZm8sIGJhc2VWYWx1ZSwgYmFzZVZhbHVlLCBpZGVudGlmaWVyLCBHZXRC
eUtpbmQ6OkJ5SWQpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnZXRCeUlkTWVnYW1v
cnBoaWMoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLCBzdHViSW5mbywgYmFzZVZhbHVlLCBi
YXNlVmFsdWUsIGlkZW50aWZpZXIsIEdldEJ5S2luZDo6QnlJZCkpOwogfQogCiBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZE1lZ2Ftb3JwaGljR2VuZXJpYywgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBi
YXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCkBAIC00ODIsMTIgKzQ3Mywx
MSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZE1lZ2Ftb3JwaGlj
R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKUwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAg
IEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGJhc2UpOwogICAgIENhY2hlYWJs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciA9IENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21S
YXdCaXRzKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihz
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdldEJ5SWRNZWdhbW9ycGhpYyhnbG9iYWxPYmplY3QsIHZt
LCBjYWxsRnJhbWUsIG51bGxwdHIsIGJhc2VWYWx1ZSwgYmFzZVZhbHVlLCBpZGVudGlmaWVyLCBH
ZXRCeUtpbmQ6OkJ5SWQpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnZXRCeUlkTWVn
YW1vcnBoaWMoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLCBudWxscHRyLCBiYXNlVmFsdWUs
IGJhc2VWYWx1ZSwgaWRlbnRpZmllciwgR2V0QnlLaW5kOjpCeUlkKSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkR2F2ZVVwLCBFbmNvZGVkSlNWYWx1ZSwg
KEVuY29kZWRKU1ZhbHVlIGJhc2UsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbykpCkBAIC00OTcsNyArNDg3LDYgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRHYXZlVXAsIEVuY29kZWRKU1ZhbHVlLCAoRW5j
b2RlZEpTVmFsdWUKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIElDU2xvd1BhdGhD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUsIHN0dWJJbmZvKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgCiAgICAgc3R1YkluZm8tPnRv
b2tTbG93UGF0aCA9IHRydWU7CiAgICAgCkBAIC01MDksNyArNDk4LDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRHYXZlVXAsIEVuY29kZWRKU1ZhbHVlLCAoRW5j
b2RlZEpTVmFsdWUKIAogICAgIExPR19JQygoSUNFdmVudDo6T3BlcmF0aW9uR2V0QnlJZCwgYmFz
ZVZhbHVlLmNsYXNzSW5mb09yTnVsbCgpLCBpZGVudCwgYmFzZVZhbHVlID09IHNsb3Quc2xvdEJh
c2UoKSkpOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAogSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVp
bnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKQEAgLTUxOSw3ICs1MDgsNiBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplYwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklU
T3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwot
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAKICAgICBKU1Zh
bHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShiYXNlKTsKICAgICBQcm9wZXJ0eVNsb3Qg
c2xvdChiYXNlVmFsdWUsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwpA
QCAtNTI5LDcgKzUxNyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRC
eUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjCiAgICAgCiAgICAgTE9H
X0lDKChJQ0V2ZW50OjpPcGVyYXRpb25HZXRCeUlkR2VuZXJpYywgYmFzZVZhbHVlLmNsYXNzSW5m
b09yTnVsbCgpLCBpZGVudCwgYmFzZVZhbHVlID09IHNsb3Quc2xvdEJhc2UoKSkpOwogICAgIAot
ICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvKSkKQEAgLTUzOSwxNCArNTI3LDEzIEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoRW5jb2Rl
ZEpTVmFsCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBJQ1Nsb3dQYXRoQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lLCBzdHViSW5mbyk7Ci0gICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgQ2FjaGVhYmxlSWRlbnRpZmllciBp
ZGVudGlmaWVyID0gc3R1YkluZm8tPmlkZW50aWZpZXIoKTsKICAgICBJZGVudGlmaWVyIGlkZW50
ID0gSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwgaWRlbnRpZmllci51aWQoKSk7CiAKICAgICBKU1Zh
bHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShiYXNlKTsKIAotICAgIE9QRVJBVElPTl9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGds
b2JhbE9iamVjdCwgaWRlbnQsIFsmXSAoYm9vbCBmb3VuZCwgUHJvcGVydHlTbG90JiBzbG90KSAt
PiBKU1ZhbHVlIHsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGJhc2VWYWx1ZS5nZXRQcm9w
ZXJ0eVNsb3QoZ2xvYmFsT2JqZWN0LCBpZGVudCwgWyZdIChib29sIGZvdW5kLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpIC0+IEpTVmFsdWUgewogICAgICAgICAKICAgICAgICAgTE9HX0lDKChJQ0V2ZW50
OjpPcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGJhc2VWYWx1ZS5jbGFzc0luZm9Pck51bGwoKSwg
aWRlbnQsIGJhc2VWYWx1ZSA9PSBzbG90LnNsb3RCYXNlKCkpKTsKICAgICAgICAgCkBAIC01NTQs
NyArNTQxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRPcHRp
bWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGVkSlNWYWwKICAgICAgICAgaWYgKHN0dWJJbmZv
LT5jb25zaWRlclJlcGF0Y2hpbmdDYWNoZUJ5KHZtLCBjb2RlQmxvY2ssIGJhc2VWYWx1ZS5zdHJ1
Y3R1cmVPck51bGwoKSwgaWRlbnRpZmllcikpCiAgICAgICAgICAgICByZXBhdGNoR2V0QnkoZ2xv
YmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VWYWx1ZSwgaWRlbnRpZmllciwgc2xvdCwgKnN0dWJJ
bmZvLCBHZXRCeUtpbmQ6OkJ5SWQpOwogICAgICAgICByZXR1cm4gZm91bmQgPyBzbG90LmdldFZh
bHVlKGdsb2JhbE9iamVjdCwgaWRlbnQpIDoganNVbmRlZmluZWQoKTsKLSAgICB9KSkpOworICAg
IH0pKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRo
VGhpc0dhdmVVcCwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzRW5jb2RlZCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvKSkKQEAgLTU2NCw3ICs1NTEsNiBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzR2F2ZVVwLCBFbmNvZGVkSlNWYWx1
ZSwgKEVuY29kZQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSUNTbG93UGF0aENh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSwgc3R1YkluZm8pOwotICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIHN0dWJJbmZvLT50b29rU2xv
d1BhdGggPSB0cnVlOwogCkBAIC01NzUsNyArNTYxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc0dhdmVVcCwgRW5jb2RlZEpTVmFsdWUsIChFbmNv
ZGUKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZSh0aGlzRW5jb2RlZCk7
CiAgICAgUHJvcGVydHlTbG90IHNsb3QodGhpc1ZhbHVlLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFs
TWV0aG9kVHlwZTo6R2V0KTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShiYXNlVmFsdWUuZ2V0KGdsb2JhbE9iamVjdCwgaWRlbnQsIHNsb3QpKSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0KGdsb2JhbE9iamVjdCwgaWRlbnQs
IHNsb3QpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRX
aXRoVGhpc0dlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIHVp
bnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKQEAgLTU4NSw3ICs1NzEsNiBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzR2VuZXJpYywgRW5j
b2RlZEpTVmFsdWUsIChKU0dsbwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklU
T3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwot
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIENhY2hlYWJs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciA9IENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21S
YXdCaXRzKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAgIElkZW50aWZpZXIgaWRlbnQgPSBJ
ZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBpZGVudGlmaWVyLnVpZCgpKTsKQEAgLTU5NCw3ICs1Nzks
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzR2Vu
ZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsbwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNFbmNvZGVkKTsKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlzVmFs
dWUsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwogCi0gICAgT1BFUkFU
SU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGJhc2VWYWx1ZS5nZXQoZ2xvYmFsT2Jq
ZWN0LCBpZGVudCwgc2xvdCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGJhc2VWYWx1
ZS5nZXQoZ2xvYmFsT2JqZWN0LCBpZGVudCwgc2xvdCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVl
LCAoRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbykpCkBA
IC02MDQsNyArNTg5LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5
SWRXaXRoVGhpc09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEVuY28KICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwogICAgIElDU2xvd1BhdGhDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUsIHN0dWJJbmZvKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKICAgICBDYWNoZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIgPSBzdHViSW5mby0+
aWRlbnRpZmllcigpOwogICAgIElkZW50aWZpZXIgaWRlbnQgPSBJZGVudGlmaWVyOjpmcm9tVWlk
KHZtLCBpZGVudGlmaWVyLnVpZCgpKTsKQEAgLTYxMywxNCArNTk3LDE0IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNPcHRpbWl6ZSwgRW5jb2RlZEpT
VmFsdWUsIChFbmNvCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUodGhp
c0VuY29kZWQpOwogCiAgICAgUHJvcGVydHlTbG90IHNsb3QodGhpc1ZhbHVlLCBQcm9wZXJ0eVNs
b3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoYmFzZVZhbHVlLmdldFByb3BlcnR5U2xvdChnbG9iYWxPYmplY3Qs
IGlkZW50LCBzbG90LCBbJl0gKGJvb2wgZm91bmQsIFByb3BlcnR5U2xvdCYgc2xvdCkgLT4gSlNW
YWx1ZSB7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0UHJvcGVydHlT
bG90KGdsb2JhbE9iamVjdCwgaWRlbnQsIHNsb3QsIFsmXSAoYm9vbCBmb3VuZCwgUHJvcGVydHlT
bG90JiBzbG90KSAtPiBKU1ZhbHVlIHsKICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRp
b25HZXRCeUlkV2l0aFRoaXNPcHRpbWl6ZSwgYmFzZVZhbHVlLmNsYXNzSW5mb09yTnVsbCgpLCBp
ZGVudCwgYmFzZVZhbHVlID09IHNsb3Quc2xvdEJhc2UoKSkpOwogICAgICAgICAKICAgICAgICAg
Q29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgICAgICBp
ZiAoc3R1YkluZm8tPmNvbnNpZGVyUmVwYXRjaGluZ0NhY2hlQnkodm0sIGNvZGVCbG9jaywgYmFz
ZVZhbHVlLnN0cnVjdHVyZU9yTnVsbCgpLCBpZGVudGlmaWVyKSkKICAgICAgICAgICAgIHJlcGF0
Y2hHZXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZhbHVlLCBpZGVudGlmaWVyLCBz
bG90LCAqc3R1YkluZm8sIEdldEJ5S2luZDo6QnlJZFdpdGhUaGlzKTsKICAgICAgICAgcmV0dXJu
IGZvdW5kID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6IGpzVW5kZWZpbmVk
KCk7Ci0gICAgfSkpKTsKKyAgICB9KSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRCeUlkV2l0aFRoaXNNZWdhbW9ycGhpYywgRW5jb2RlZEpTVmFsdWUsIChFbmNv
ZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKSkKQEAgLTYyOCwx
MSArNjEyLDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0
aFRoaXNNZWdhbW9ycGhpYywgRW5jb2RlZEpTVmFsdWUsIChFCiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBJQ1Nsb3dQYXRoQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lLCBzdHViSW5mbyk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCiAgICAgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVudGlmaWVyID0gc3R1YkluZm8tPmlkZW50
aWZpZXIoKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShn
ZXRCeUlkTWVnYW1vcnBoaWMoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLCBzdHViSW5mbywg
SlNWYWx1ZTo6ZGVjb2RlKGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFRoaXMpLCBpZGVu
dGlmaWVyLCBHZXRCeUtpbmQ6OkJ5SWRXaXRoVGhpcykpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGdldEJ5SWRNZWdhbW9ycGhpYyhnbG9iYWxPYmplY3QsIHZtLCBjYWxsRnJhbWUsIHN0
dWJJbmZvLCBKU1ZhbHVlOjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVGhp
cyksIGlkZW50aWZpZXIsIEdldEJ5S2luZDo6QnlJZFdpdGhUaGlzKSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNNZWdhbW9ycGhpY0dlbmVy
aWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMsIHVpbnRwdHJfdCByYXdD
YWNoZWFibGVJZGVudGlmaWVyKSkKQEAgLTY0MCwxMSArNjIzLDEwIEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNNZWdhbW9ycGhpY0dlbmVyaWMsIEVu
Y29kZWRKU1ZhCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Q
cm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgQ2FjaGVhYmxlSWRlbnRpZmll
ciBpZGVudGlmaWVyID0gQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbVJhd0JpdHMocmF3
Q2FjaGVhYmxlSWRlbnRpZmllcik7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1Zh
bHVlOjplbmNvZGUoZ2V0QnlJZE1lZ2Ftb3JwaGljKGdsb2JhbE9iamVjdCwgdm0sIGNhbGxGcmFt
ZSwgbnVsbHB0ciwgSlNWYWx1ZTo6ZGVjb2RlKGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZFRoaXMpLCBpZGVudGlmaWVyLCBHZXRCeUtpbmQ6OkJ5SWRXaXRoVGhpcykpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGdldEJ5SWRNZWdhbW9ycGhpYyhnbG9iYWxPYmplY3QsIHZtLCBj
YWxsRnJhbWUsIG51bGxwdHIsIEpTVmFsdWU6OmRlY29kZShiYXNlKSwgSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRUaGlzKSwgaWRlbnRpZmllciwgR2V0QnlLaW5kOjpCeUlkV2l0aFRoaXMpKTsKIH0K
IAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZEdhdmVVcCwgRW5jb2Rl
ZEpTVmFsdWUsIChFbmNvZGVkSlNWYWx1ZSBiYXNlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pKQpAQCAtNjY0LDcgKzY0Niw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5SWRHYXZlVXAsIEVuY29kZWRKU1Zh
bHVlLCAoRW5jb2RlZEpTVmFsdWUKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShiYXNlKTsKICAgICBpZiAoIWJhc2VWYWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAgIHRo
cm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUludmFsaWRJblBhcmFtZXRl
ckVycm9yKGdsb2JhbE9iamVjdCwgYmFzZVZhbHVlKSk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRV
Uk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKSk7CisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgfQogICAgIEpTT2JqZWN0KiBi
YXNlT2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKIApAQCAtNjcyLDcgKzY1NCw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5SWRHYXZlVXAsIEVuY29kZWRKU1Zh
bHVlLCAoRW5jb2RlZEpTVmFsdWUKIAogICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICBQcm9wZXJ0
eVNsb3Qgc2xvdChiYXNlT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6
SGFzUHJvcGVydHkpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShqc0Jvb2xlYW4oYmFzZU9iamVjdC0+Z2V0UHJvcGVydHlTbG90KGdsb2JhbE9iamVjdCwgaWRl
bnQsIHNsb3QpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGJhc2VP
YmplY3QtPmdldFByb3BlcnR5U2xvdChnbG9iYWxPYmplY3QsIGlkZW50LCBzbG90KSkpOwogfQog
CiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkT3B0aW1pemUsIEVuY29k
ZWRKU1ZhbHVlLCAoRW5jb2RlZEpTVmFsdWUgYmFzZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKSkKQEAgLTY5MCw3ICs2NzIsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkT3B0aW1pemUsIEVuY29kZWRK
U1ZhbHVlLCAoRW5jb2RlZEpTVmFsdQogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6
ZGVjb2RlKGJhc2UpOwogICAgIGlmICghYmFzZVZhbHVlLmlzT2JqZWN0KCkpIHsKICAgICAgICAg
dGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlSW52YWxpZEluUGFyYW1l
dGVyRXJyb3IoZ2xvYmFsT2JqZWN0LCBiYXNlVmFsdWUpKTsKLSAgICAgICAgT1BFUkFUSU9OX1JF
VFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKTsKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICB9CiAgICAgSlNPYmplY3Qq
IGJhc2VPYmplY3QgPSBhc09iamVjdChiYXNlVmFsdWUpOwogCkBAIC02OTgsMTEgKzY4MCwxMSBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkT3B0aW1pemUsIEVuY29k
ZWRKU1ZhbHVlLCAoRW5jb2RlZEpTVmFsdQogCiAgICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZU9i
amVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6Okhhc1Byb3BlcnR5KTsKICAg
ICBib29sIGZvdW5kID0gYmFzZU9iamVjdC0+Z2V0UHJvcGVydHlTbG90KGdsb2JhbE9iamVjdCwg
aWRlbnQsIHNsb3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBl
bmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwog
ICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKICAgICBp
ZiAoc3R1YkluZm8tPmNvbnNpZGVyUmVwYXRjaGluZ0NhY2hlQnkodm0sIGNvZGVCbG9jaywgYmFz
ZU9iamVjdC0+c3RydWN0dXJlKCksIGlkZW50aWZpZXIpKQogICAgICAgICByZXBhdGNoSW5CeShn
bG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZU9iamVjdCwgaWRlbnRpZmllciwgZm91bmQsIHNs
b3QsICpzdHViSW5mbywgSW5CeUtpbmQ6OkJ5SWQpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZm91bmQpKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4oZm91bmQpKTsKIH0KIAogc3RhdGljIEFMV0FZU19JTkxJTkUg
SlNWYWx1ZSBpbkJ5SWRNZWdhbW9ycGhpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBW
TSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IEpTVmFsdWUgYmFzZVZhbHVlLCBDYWNoZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC03
ODgsMTIgKzc3MCwxMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlk
TWVnYW1vcnBoaWMsIEVuY29kZWRKU1ZhbHVlLCAoRW5jb2RlZEpTVgogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CiAgICAgSUNTbG93UGF0aENhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSwgc3R1YkluZm8pOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKIAogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGJhc2UpOwog
ICAgIENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmllciA9IHN0dWJJbmZvLT5pZGVudGlmaWVy
KCk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoaW5CeUlk
TWVnYW1vcnBoaWMoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLCBzdHViSW5mbywgYmFzZVZh
bHVlLCBpZGVudGlmaWVyKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaW5CeUlkTWVn
YW1vcnBoaWMoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLCBzdHViSW5mbywgYmFzZVZhbHVl
LCBpZGVudGlmaWVyKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25J
bkJ5SWRNZWdhbW9ycGhpY0dlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJs
ZUlkZW50aWZpZXIpKQpAQCAtODAxLDEyICs3ODIsMTEgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkluQnlJZE1lZ2Ftb3JwaGljR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChK
U0cKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3Vl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFs
dWU6OmRlY29kZShiYXNlKTsKICAgICBDYWNoZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIgPSBD
YWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tUmF3Qml0cyhyYXdDYWNoZWFibGVJZGVudGlm
aWVyKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShpbkJ5
SWRNZWdhbW9ycGhpYyhnbG9iYWxPYmplY3QsIHZtLCBjYWxsRnJhbWUsIG51bGxwdHIsIGJhc2VW
YWx1ZSwgaWRlbnRpZmllcikpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGluQnlJZE1l
Z2Ftb3JwaGljKGdsb2JhbE9iamVjdCwgdm0sIGNhbGxGcmFtZSwgbnVsbHB0ciwgYmFzZVZhbHVl
LCBpZGVudGlmaWVyKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25J
bkJ5VmFsT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRLZXksIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgQXJyYXlQcm9maWxlKiBwcm9maWxlKSkK
QEAgLTgyMyw3ICs4MDMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5C
eVZhbE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEVuY29kZWRKU1ZhbAogCiAgICAgaWYgKCFi
YXNlVmFsdWUuaXNPYmplY3QoKSkgewogICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCBjcmVhdGVJbnZhbGlkSW5QYXJhbWV0ZXJFcnJvcihnbG9iYWxPYmplY3QsIGJh
c2VWYWx1ZSkpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAgICBKU09iamVjdCogYmFzZU9i
amVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7CkBAIC04NDEsMTQgKzgyMSwxNCBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeVZhbE9wdGltaXplLCBFbmNvZGVkSlNWYWx1
ZSwgKEVuY29kZWRKU1ZhbAogICAgICAgICAgICAgcmVwYXRjaEFycmF5SW5CeVZhbChnbG9iYWxP
YmplY3QsIGNvZGVCbG9jaywgYmFzZVZhbHVlLCBrZXksICpzdHViSW5mbywgSW5CeUtpbmQ6OkJ5
VmFsKTsKICAgICAgICAgfQogCi0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4oYmFzZU9iamVjdC0+aGFzUHJvcGVydHkoZ2xvYmFsT2JqZWN0
LCBpKSkpKTsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNv
ZGUoanNCb29sZWFuKGJhc2VPYmplY3QtPmhhc1Byb3BlcnR5KGdsb2JhbE9iamVjdCwgaSkpKSk7
CiAgICAgfQogCiAgICAgY29uc3QgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBrZXkudG9Qcm9w
ZXJ0eUtleShnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlT2JqZWN0LCBQ
cm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6SGFzUHJvcGVydHkpOwogICAgIGJvb2wg
Zm91bmQgPSBiYXNlT2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3QoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBl
bmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVk
SlNWYWx1ZSgpKTsKIAogICAgIGlmIChDYWNoZWFibGVJZGVudGlmaWVyOjppc0NhY2hlYWJsZUlk
ZW50aWZpZXJDZWxsKGtleSkgJiYgKGtleS5pc1N5bWJvbCgpIHx8ICFwYXJzZUluZGV4KHByb3Bl
cnR5TmFtZSkpKSB7CiAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5j
b2RlQmxvY2soKTsKQEAgLTg1Nyw3ICs4MzcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uSW5CeVZhbE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEVuY29kZWRKU1ZhbAog
ICAgICAgICAgICAgcmVwYXRjaEluQnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VPYmpl
Y3QsIGlkZW50aWZpZXIsIGZvdW5kLCBzbG90LCAqc3R1YkluZm8sIEluQnlLaW5kOjpCeVZhbCk7
CiAgICAgfQogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpz
Qm9vbGVhbihmb3VuZCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihm
b3VuZCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeVZhbEdh
dmVVcCwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1
ZSBrZXksIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbywgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpKQpAQCAtODY3LDExICs4NDcsMTAg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlWYWxHYXZlVXAsIEVuY29k
ZWRKU1ZhbHVlLCAoRW5jb2RlZEpTVmFsdWUKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIElDU2xvd1BhdGhDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUsIHN0dWJJ
bmZvKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBz
dHViSW5mby0+dG9va1Nsb3dQYXRoID0gdHJ1ZTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oQ29tbW9uU2xvd1BhdGhzOjpvcEluQnlWYWwo
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShrZXkp
LCBhcnJheVByb2ZpbGUpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFu
KENvbW1vblNsb3dQYXRoczo6b3BJbkJ5VmFsKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2Rl
KGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoa2V5KSwgYXJyYXlQcm9maWxlKSkpOwogfQogCiBzdGF0
aWMgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGluQnlWYWxNZWdhbW9ycGhpYyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8sIEFycmF5UHJvZmlsZSogcHJvZmlsZSwgSlNWYWx1ZSBiYXNlVmFs
dWUsIEpTVmFsdWUgc3Vic2NyaXB0KQpAQCAtOTY4LDExICs5NDcsMTAgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlWYWxNZWdhbW9ycGhpYywgRW5jb2RlZEpTVmFsdWUs
IChFbmNvZGVkSlMKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIElDU2xvd1BhdGhD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUsIHN0dWJJbmZvKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIGJhc2VWYWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSk7CiAgICAgSlNWYWx1ZSBzdWJzY3JpcHQg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGluQnlWYWxNZWdhbW9ycGhpYyhnbG9iYWxPYmplY3Qs
IHZtLCBjYWxsRnJhbWUsIHN0dWJJbmZvLCBhcnJheVByb2ZpbGUsIGJhc2VWYWx1ZSwgc3Vic2Ny
aXB0KSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaW5CeVZhbE1lZ2Ftb3JwaGljKGds
b2JhbE9iamVjdCwgdm0sIGNhbGxGcmFtZSwgc3R1YkluZm8sIGFycmF5UHJvZmlsZSwgYmFzZVZh
bHVlLCBzdWJzY3JpcHQpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkluQnlWYWxNZWdhbW9ycGhpY0dlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRTdWJzY3JpcHQpKQpAQCAtOTgwLDkgKzk1OCw4IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25JbkJ5VmFsTWVnYW1vcnBoaWNHZW5lcmljLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Q
cm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoaW5CeVZhbE1lZ2Ftb3JwaGljKGdsb2JhbE9iamVjdCwgdm0sIGNh
bGxGcmFtZSwgbnVsbHB0ciwgbnVsbHB0ciwgYmFzZVZhbHVlLCBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFN1YnNjcmlwdCkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpbkJ5VmFsTWVn
YW1vcnBoaWMoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLCBudWxscHRyLCBudWxscHRyLCBi
YXNlVmFsdWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSkpOwogfQogCiBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzUHJpdmF0ZU5hbWVPcHRpbWl6ZSwgRW5j
b2RlZEpTVmFsdWUsIChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFByb3BlcnR5LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8pKQpAQCAtOTk3LDE0ICs5NzQsMTQgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVOYW1lT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVl
LCAoRW5jb2QKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
QmFzZSk7CiAgICAgaWYgKCFiYXNlVmFsdWUuaXNPYmplY3QoKSkgewogICAgICAgICB0aHJvd0V4
Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVJbnZhbGlkSW5QYXJhbWV0ZXJFcnJv
cihnbG9iYWxPYmplY3QsIGJhc2VWYWx1ZSkpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNj
b3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIGVuY29kZWRKU1ZhbHVlKCk7
CiAgICAgfQogICAgIEpTT2JqZWN0KiBiYXNlT2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVlKTsK
IAogICAgIEpTVmFsdWUgcHJvcGVydHlWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkUHJv
cGVydHkpOwogICAgIEFTU0VSVChwcm9wZXJ0eVZhbHVlLmlzU3ltYm9sKCkpOwogICAgIGF1dG8g
cHJvcGVydHkgPSBwcm9wZXJ0eVZhbHVlLnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKLSAg
ICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIFByb3BlcnR5U2xv
dCBzbG90KGJhc2VPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpIYXNQ
cm9wZXJ0eSk7CiAgICAgYm9vbCBmb3VuZCA9IEpTT2JqZWN0OjpnZXRQcml2YXRlRmllbGRTbG90
KGJhc2VPYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHksIHNsb3QpOwpAQCAtMTAxNSw3ICs5
OTIsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzUHJpdmF0ZU5hbWVP
cHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZAogICAgIGlmIChzdHViSW5mby0+Y29uc2lk
ZXJSZXBhdGNoaW5nQ2FjaGVCeSh2bSwgY29kZUJsb2NrLCBiYXNlT2JqZWN0LT5zdHJ1Y3R1cmUo
KSwgaWRlbnRpZmllcikpCiAgICAgICAgIHJlcGF0Y2hJbkJ5KGdsb2JhbE9iamVjdCwgY29kZUJs
b2NrLCBiYXNlT2JqZWN0LCBpZGVudGlmaWVyLCBmb3VuZCwgc2xvdCwgKnN0dWJJbmZvLCBJbkJ5
S2luZDo6UHJpdmF0ZU5hbWUpOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKGpzQm9vbGVhbihmb3VuZCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzQm9vbGVhbihmb3VuZCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uSGFzUHJpdmF0ZU5hbWVHYXZlVXAsIEVuY29kZWRKU1ZhbHVlLCAoRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKSkKQEAgLTEwMzIs
MTUgKzEwMDksMTUgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZh
dGVOYW1lR2F2ZVVwLCBFbmNvZGVkSlNWYWx1ZSwgKEVuY29kZWQKICAgICBKU1ZhbHVlIGJhc2VW
YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSk7CiAgICAgaWYgKCFiYXNlVmFsdWUu
aXNPYmplY3QoKSkgewogICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3Bl
LCBjcmVhdGVJbnZhbGlkSW5QYXJhbWV0ZXJFcnJvcihnbG9iYWxPYmplY3QsIGJhc2VWYWx1ZSkp
OwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAg
ICAgICAgcmV0dXJuIGVuY29kZWRKU1ZhbHVlKCk7CiAgICAgfQogCiAgICAgSlNWYWx1ZSBwcm9w
ZXJ0eVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRQcm9wZXJ0eSk7CiAgICAgQVNTRVJU
KHByb3BlcnR5VmFsdWUuaXNTeW1ib2woKSk7CiAgICAgYXV0byBwcm9wZXJ0eSA9IHByb3BlcnR5
VmFsdWUudG9Qcm9wZXJ0eUtleShnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc09iamVjdChiYXNlVmFsdWUpLT5oYXNQcml2YXRlRmllbGQo
Z2xvYmFsT2JqZWN0LCBwcm9wZXJ0eSkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c0Jvb2xlYW4oYXNPYmplY3QoYmFzZVZhbHVlKS0+aGFzUHJpdmF0ZUZpZWxkKGdsb2JhbE9iamVj
dCwgcHJvcGVydHkpKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25I
YXNQcml2YXRlQnJhbmRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJyYW5kLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pKQpAQCAtMTA1NSw3ICsx
MDMyLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVCcmFu
ZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEVuY28KICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSk7CiAgICAgaWYgKCFiYXNlVmFsdWUuaXNPYmpl
Y3QoKSkgewogICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVh
dGVJbnZhbGlkSW5QYXJhbWV0ZXJFcnJvcihnbG9iYWxPYmplY3QsIGJhc2VWYWx1ZSkpOwotICAg
ICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAg
cmV0dXJuIGVuY29kZWRKU1ZhbHVlKCk7CiAgICAgfQogICAgIEpTT2JqZWN0KiBiYXNlT2JqZWN0
ID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKIApAQCAtMTA2OCw3ICsxMDQ1LDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVCcmFuZE9wdGltaXplLCBFbmNvZGVk
SlNWYWx1ZSwgKEVuY28KICAgICBpZiAoc3R1YkluZm8tPmNvbnNpZGVyUmVwYXRjaGluZ0NhY2hl
Qnkodm0sIGNvZGVCbG9jaywgYmFzZU9iamVjdC0+c3RydWN0dXJlKCksIGlkZW50aWZpZXIpKQog
ICAgICAgICByZXBhdGNoSGFzUHJpdmF0ZUJyYW5kKGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBi
YXNlT2JqZWN0LCBpZGVudGlmaWVyLCBmb3VuZCwgKnN0dWJJbmZvKTsKIAotICAgIE9QRVJBVElP
Tl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZm91bmQpKSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZm91bmQpKTsKIH0KIAogSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVCcmFuZEdhdmVVcCwgRW5jb2RlZEpT
VmFsdWUsIChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJyYW5kLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8pKQpAQCAtMTA4NSwxMCArMTA2MiwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSGFzUHJpdmF0ZUJyYW5kR2F2ZVVwLCBFbmNvZGVkSlNWYWx1ZSwgKEVuY29k
ZQogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsK
ICAgICBpZiAoIWJhc2VWYWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAgIHRocm93RXhjZXB0aW9u
KGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUludmFsaWRJblBhcmFtZXRlckVycm9yKGdsb2Jh
bE9iamVjdCwgYmFzZVZhbHVlKSk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGVu
Y29kZWRKU1ZhbHVlKCkpOworICAgICAgICByZXR1cm4gZW5jb2RlZEpTVmFsdWUoKTsKICAgICB9
CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFu
KGFzT2JqZWN0KGJhc2VWYWx1ZSktPmhhc1ByaXZhdGVCcmFuZChnbG9iYWxPYmplY3QsIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkQnJhbmQpKSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzQm9vbGVhbihhc09iamVjdChiYXNlVmFsdWUpLT5oYXNQcml2YXRlQnJhbmQoZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJyYW5kKSkpKTsKIH0KIAogSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTdHJpY3RHYXZlVXAsIHZvaWQsIChFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pKQpAQCAt
MTA5OCw3ICsxMDc1LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5
SWRTdHJpY3RHYXZlVXAsIHZvaWQsIChFbmNvZGVkSlNWYWx1ZSBlbmMKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwogICAgIElDU2xvd1BhdGhDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUsIHN0dWJJbmZvKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAgICAgCiAgICAgc3R1YkluZm8tPnRvb2tTbG93UGF0aCA9IHRydWU7CiAgICAgCkBA
IC0xMTA5LDcgKzEwODUsNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZFN0cmljdEdhdmVVcCwgdm9pZCwgKEVuY29kZWRKU1ZhbHVlIGVuYwogICAgIGJhc2VWYWx1
ZS5wdXRJbmxpbmUoZ2xvYmFsT2JqZWN0LCBpZGVudCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRW
YWx1ZSksIHNsb3QpOwogICAgIAogICAgIExPR19JQygoSUNFdmVudDo6T3BlcmF0aW9uUHV0QnlJ
ZFN0cmljdCwgYmFzZVZhbHVlLmNsYXNzSW5mb09yTnVsbCgpLCBpZGVudCwgc2xvdC5iYXNlKCkg
PT0gYmFzZVZhbHVlKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2xvcHB5R2F2ZVVwLCB2b2lkLCAo
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZv
KSkKQEAgLTExMTksNyArMTA5NCw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeUlkU2xvcHB5R2F2ZVVwLCB2b2lkLCAoRW5jb2RlZEpTVmFsdWUgZW5jCiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBJQ1Nsb3dQYXRoQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lLCBzdHViSW5mbyk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogICAgIAogICAgIHN0dWJJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOwog
ICAgIApAQCAtMTEzMCw3ICsxMTA0LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWRTbG9wcHlHYXZlVXAsIHZvaWQsIChFbmNvZGVkSlNWYWx1ZSBlbmMKICAgICBi
YXNlVmFsdWUucHV0SW5saW5lKGdsb2JhbE9iamVjdCwgaWRlbnQsIEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpLCBzbG90KTsKIAogICAgIExPR19JQygoSUNFdmVudDo6T3BlcmF0aW9uUHV0
QnlJZFNsb3BweSwgYmFzZVZhbHVlLmNsYXNzSW5mb09yTnVsbCgpLCBpZGVudCwgc2xvdC5iYXNl
KCkgPT0gYmFzZVZhbHVlKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEFM
V0FZU19JTkxJTkUgc3RhdGljIHZvaWQgcHV0QnlJZE1lZ2Ftb3JwaGljKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIFN0cnVjdHVyZVN0
dWJJbmZvKiBzdHViSW5mbywgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgdmFsdWUsIENhY2hl
YWJsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUHV0QnlLaW5kIGtpbmQpCkBAIC0xMjIxLDE0ICsx
MTk0LDEyIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0
TWVnYW1vcnBoaWMsIHZvaWQsIChFbmNvZGVkSlNWYWx1CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKICAgICBJQ1Nsb3dQYXRoQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
LCBzdHViSW5mbyk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
CiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwog
ICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKICAgICBD
YWNoZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIgPSBzdHViSW5mby0+aWRlbnRpZmllcigpOwog
CiAgICAgcHV0QnlJZE1lZ2Ftb3JwaGljKGdsb2JhbE9iamVjdCwgdm0sIGNhbGxGcmFtZSwgc3R1
YkluZm8sIGJhc2VWYWx1ZSwgdmFsdWUsIGlkZW50aWZpZXIsIFB1dEJ5S2luZDo6QnlJZFN0cmlj
dCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0TWVnYW1vcnBoaWNHZW5lcmljLCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50
aWZpZXIpKQpAQCAtMTIzOCwxNCArMTIwOSwxMiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlJZFN0cmljdE1lZ2Ftb3JwaGljR2VuZXJpYywgdm9pZCwgKEpTR2xvYgog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRCYXNlKTsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRWYWx1ZSk7CiAgICAgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVudGlmaWVyID0gQ2Fj
aGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbVJhd0JpdHMocmF3Q2FjaGVhYmxlSWRlbnRpZmll
cik7CiAKICAgICBwdXRCeUlkTWVnYW1vcnBoaWMoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1l
LCBudWxscHRyLCBiYXNlVmFsdWUsIHZhbHVlLCBpZGVudGlmaWVyLCBQdXRCeUtpbmQ6OkJ5SWRT
dHJpY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNsb3BweU1lZ2Ftb3JwaGljLCB2b2lkLCAoRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKSkK
QEAgLTEyNTUsMTQgKzEyMjQsMTIgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5SWRTbG9wcHlNZWdhbW9ycGhpYywgdm9pZCwgKEVuY29kZWRKU1ZhbHUKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwogICAgIElDU2xvd1BhdGhDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KHZtLCBjYWxsRnJhbWUsIHN0dWJJbmZvKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkQmFzZSk7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpOwogICAgIENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmllciA9IHN0dWJJbmZvLT5p
ZGVudGlmaWVyKCk7CiAKICAgICBwdXRCeUlkTWVnYW1vcnBoaWMoZ2xvYmFsT2JqZWN0LCB2bSwg
Y2FsbEZyYW1lLCBzdHViSW5mbywgYmFzZVZhbHVlLCB2YWx1ZSwgaWRlbnRpZmllciwgUHV0QnlL
aW5kOjpCeUlkU2xvcHB5KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKIH0KIAogSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTbG9wcHlNZWdhbW9ycGhpY0dl
bmVyaWMsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3
Q2FjaGVhYmxlSWRlbnRpZmllcikpCkBAIC0xMjcyLDE0ICsxMjM5LDEyIEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2xvcHB5TWVnYW1vcnBoaWNHZW5lcmljLCB2
b2lkLCAoSlNHbG9iCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSBiYXNlVmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKICAgICBDYWNoZWFibGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIgPSBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tUmF3Qml0cyhyYXdDYWNo
ZWFibGVJZGVudGlmaWVyKTsKIAogICAgIHB1dEJ5SWRNZWdhbW9ycGhpYyhnbG9iYWxPYmplY3Qs
IHZtLCBjYWxsRnJhbWUsIG51bGxwdHIsIGJhc2VWYWx1ZSwgdmFsdWUsIGlkZW50aWZpZXIsIFB1
dEJ5S2luZDo6QnlJZFNsb3BweSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAK
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeU1lZ2Ftb3JwaGljUmVhbGxv
Y2F0aW5nLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgY29uc3QgTWVnYW1vcnBoaWNDYWNoZTo6U3RvcmVFbnRy
eSogZW50cnkpKQpAQCAtMTI4OCw3ICsxMjUzLDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5TWVnYW1vcnBoaWNSZWFsbG9jYXRpbmcsIHZvaWQsIChWTSogdm1Qb2kK
ICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCiAgICAgU3RydWN0dXJlKiBvbGRTdHJ1Y3R1cmUgPSBiYXNlT2JqZWN0
LT5zdHJ1Y3R1cmUoKTsKICAgICBTdHJ1Y3R1cmUqIG5ld1N0cnVjdHVyZSA9IGVudHJ5LT5tX25l
d1N0cnVjdHVyZUlELmRlY29kZSgpOwpAQCAtMTMwMSw3ICsxMjY1LDYgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5TWVnYW1vcnBoaWNSZWFsbG9jYXRpbmcsIHZvaWQs
IChWTSogdm1Qb2kKICAgICBiYXNlT2JqZWN0LT5zZXRTdHJ1Y3R1cmUodm0sIG5ld1N0cnVjdHVy
ZSk7CiAgICAgQVNTRVJUKG5ld1N0cnVjdHVyZSA9PSBiYXNlT2JqZWN0LT5zdHJ1Y3R1cmUoKSk7
CiAgICAgZGF0YUxvZ0xuSWYodmVyYm9zZSwgSlNWYWx1ZShiYXNlT2JqZWN0KSwgIiAiLCBvZmZz
ZXQpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdEdhdmVVcCwgdm9pZCwgKEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbykpCkBA
IC0xMzExLDcgKzEyNzQsNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZERpcmVjdFN0cmljdEdhdmVVcCwgdm9pZCwgKEVuY29kZWRKU1ZhbAogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CiAgICAgSUNTbG93UGF0aENhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0s
IGNhbGxGcmFtZSwgc3R1YkluZm8pOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKICAgICAKICAgICBzdHViSW5mby0+dG9va1Nsb3dQYXRoID0gdHJ1ZTsKICAgICAK
QEAgLTEzMjIsNyArMTI4NCw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeUlkRGlyZWN0U3RyaWN0R2F2ZVVwLCB2b2lkLCAoRW5jb2RlZEpTVmFsCiAgICAgQ29tbW9u
U2xvd1BhdGhzOjpwdXREaXJlY3RXaXRoUmVpZnkodm0sIGdsb2JhbE9iamVjdCwgYXNPYmplY3Qo
YmFzZVZhbHVlKSwgaWRlbnQsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBzbG90KTsK
IAogICAgIExPR19JQygoSUNFdmVudDo6T3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdCwgYmFz
ZVZhbHVlLmNsYXNzSW5mb09yTnVsbCgpLCBpZGVudCwgc2xvdC5iYXNlKCkgPT0gYmFzZVZhbHVl
KSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0U2xvcHB5R2F2ZVVwLCB2b2lkLCAoRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKSkKQEAg
LTEzMzIsNyArMTI5Myw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eUlkRGlyZWN0U2xvcHB5R2F2ZVVwLCB2b2lkLCAoRW5jb2RlZEpTVmFsCiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKICAgICBJQ1Nsb3dQYXRoQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lLCBzdHViSW5mbyk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogICAgIAogICAgIHN0dWJJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOwogICAgIApA
QCAtMTM0Myw3ICsxMzAzLDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5SWREaXJlY3RTbG9wcHlHYXZlVXAsIHZvaWQsIChFbmNvZGVkSlNWYWwKICAgICBDb21tb25T
bG93UGF0aHM6OnB1dERpcmVjdFdpdGhSZWlmeSh2bSwgZ2xvYmFsT2JqZWN0LCBhc09iamVjdChi
YXNlVmFsdWUpLCBpZGVudCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOwog
CiAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25QdXRCeUlkRGlyZWN0U2xvcHB5LCBiYXNl
VmFsdWUuY2xhc3NJbmZvT3JOdWxsKCksIGlkZW50LCBzbG90LmJhc2UoKSA9PSBiYXNlVmFsdWUp
KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbykpCkBAIC0xMzY5
LDE0ICsxMzI4LDEzIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlk
U3RyaWN0T3B0aW1pemUsIHZvaWQsIChFbmNvZGVkSlNWYWx1ZSBlCiAKICAgICBMT0dfSUMoKElD
RXZlbnQ6Ok9wZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZSwgYmFzZVZhbHVlLmNsYXNzSW5m
b09yTnVsbCgpLCBpZGVudCwgc2xvdC5iYXNlKCkgPT0gYmFzZVZhbHVlKSk7CiAKLSAgICBPUEVS
QVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgdm9pZCgpKTsKIAogICAgIGlmIChhY2Nlc3NUeXBlICE9IHN0YXRpY19jYXN0PEFj
Y2Vzc1R5cGU+KHN0dWJJbmZvLT5hY2Nlc3NUeXBlKSkKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSk7CisgICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAoc3R1YkluZm8tPmNvbnNp
ZGVyUmVwYXRjaGluZ0NhY2hlQnkodm0sIGNvZGVCbG9jaywgc3RydWN0dXJlLCBpZGVudGlmaWVy
KSkKICAgICAgICAgcmVwYXRjaFB1dEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFs
dWUsIHN0cnVjdHVyZSwgaWRlbnRpZmllciwgc2xvdCwgKnN0dWJJbmZvLCBQdXRCeUtpbmQ6OkJ5
SWRTdHJpY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNsb3BweU9wdGltaXplLCB2b2lkLCAoRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKSkK
QEAgLTE0MDIsMTQgKzEzNjAsMTMgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5SWRTbG9wcHlPcHRpbWl6ZSwgdm9pZCwgKEVuY29kZWRKU1ZhbHVlIGUKIAogICAgIExP
R19JQygoSUNFdmVudDo6T3BlcmF0aW9uUHV0QnlJZFNsb3BweU9wdGltaXplLCBiYXNlVmFsdWUu
Y2xhc3NJbmZvT3JOdWxsKCksIGlkZW50LCBzbG90LmJhc2UoKSA9PSBiYXNlVmFsdWUpKTsKIAot
ICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlKTsKKyAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCiAgICAgaWYgKGFjY2Vzc1R5cGUgIT0gc3RhdGlj
X2Nhc3Q8QWNjZXNzVHlwZT4oc3R1YkluZm8tPmFjY2Vzc1R5cGUpKQotICAgICAgICBPUEVSQVRJ
T05fUkVUVVJOKHNjb3BlKTsKKyAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlmIChzdHViSW5m
by0+Y29uc2lkZXJSZXBhdGNoaW5nQ2FjaGVCeSh2bSwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUsIGlk
ZW50aWZpZXIpKQogICAgICAgICByZXBhdGNoUHV0QnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ss
IGJhc2VWYWx1ZSwgc3RydWN0dXJlLCBpZGVudGlmaWVyLCBzbG90LCAqc3R1YkluZm8sIFB1dEJ5
S2luZDo6QnlJZFNsb3BweSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0T3B0aW1p
emUsIHZvaWQsIChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5m
byogc3R1YkluZm8pKQpAQCAtMTQzNCwxNCArMTM5MSwxMyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplLCB2b2lkLCAoRW5jb2Rl
ZEpTVgogCiAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0
T3B0aW1pemUsIGJhc2VPYmplY3QtPmNsYXNzSW5mbygpLCBpZGVudCwgc2xvdC5iYXNlKCkgPT0g
YmFzZU9iamVjdCkpOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUp
OworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAgICAgCiAgICAgaWYg
KGFjY2Vzc1R5cGUgIT0gc3RhdGljX2Nhc3Q8QWNjZXNzVHlwZT4oc3R1YkluZm8tPmFjY2Vzc1R5
cGUpKQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIAogICAgIGlmIChzdHViSW5mby0+Y29uc2lkZXJSZXBhdGNoaW5nQ2FjaGVCeSh2bSwgY29k
ZUJsb2NrLCBzdHJ1Y3R1cmUsIGlkZW50aWZpZXIpKQogICAgICAgICByZXBhdGNoUHV0QnkoZ2xv
YmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VPYmplY3QsIHN0cnVjdHVyZSwgaWRlbnRpZmllciwg
c2xvdCwgKnN0dWJJbmZvLCBQdXRCeUtpbmQ6OkJ5SWREaXJlY3RTdHJpY3QpOwotICAgIE9QRVJB
VElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlJZERpcmVjdFNsb3BweU9wdGltaXplLCB2b2lkLCAoRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKSkKQEAgLTE0NjYsMTQgKzE0
MjIsMTMgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3RT
bG9wcHlPcHRpbWl6ZSwgdm9pZCwgKEVuY29kZWRKU1YKIAogICAgIExPR19JQygoSUNFdmVudDo6
T3BlcmF0aW9uUHV0QnlJZERpcmVjdFNsb3BweU9wdGltaXplLCBiYXNlT2JqZWN0LT5jbGFzc0lu
Zm8oKSwgaWRlbnQsIHNsb3QuYmFzZSgpID09IGJhc2VPYmplY3QpKTsKIAotICAgIE9QRVJBVElP
Tl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB2b2lkKCkpOwogICAgIAogICAgIGlmIChhY2Nlc3NUeXBlICE9IHN0YXRpY19jYXN0PEFj
Y2Vzc1R5cGU+KHN0dWJJbmZvLT5hY2Nlc3NUeXBlKSkKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSk7CisgICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAoc3R1YkluZm8tPmNvbnNp
ZGVyUmVwYXRjaGluZ0NhY2hlQnkodm0sIGNvZGVCbG9jaywgc3RydWN0dXJlLCBpZGVudGlmaWVy
KSkKICAgICAgICAgcmVwYXRjaFB1dEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlT2Jq
ZWN0LCBzdHJ1Y3R1cmUsIGlkZW50aWZpZXIsIHNsb3QsICpzdHViSW5mbywgUHV0QnlLaW5kOjpC
eUlkRGlyZWN0U2xvcHB5KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKIH0KIAogdGVt
cGxhdGU8dHlwZW5hbWUgUHV0UHJpdmF0ZUZpZWxkQ2FsbGJhY2s+CkBAIC0xNTIxLDcgKzE0NzYs
NiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZh
dGVGaWVsZFN0cmljdEdhdmVVcCwgdm9pZCwgKAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CiAgICAgSUNTbG93UGF0aENhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSwgc3R1
YkluZm8pOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAg
IHN0dWJJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOwogCkBAIC0xNTMwLDcgKzE0ODQsNiBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVs
ZFN0cmljdEdhdmVVcCwgdm9pZCwgKAogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRCYXNlKTsKIAogICAgIGRlZmluZVByaXZhdGVGaWVsZCh2bSwgZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIGJhc2VWYWx1ZSwgaWRlbnRpZmllciwgdmFsdWUsIFtdKFZNJiwg
Q29kZUJsb2NrKiwgU3RydWN0dXJlKiwgUHV0UHJvcGVydHlTbG90JiwgY29uc3QgSWRlbnRpZmll
ciYpIHsgfSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGVmaW5lUHJpdmF0ZUZpZWxkU3RyaWN0T3B0
aW1pemUsIHZvaWQsIChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8pKQpAQCAtMTUzOSw3ICsxNDkyLDYgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwg
dm9pZCwKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIElDU2xvd1BhdGhDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUsIHN0dWJJbmZvKTsKLSAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBDYWNoZWFibGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIgPSBzdHViSW5mby0+aWRlbnRpZmllcigpOwogICAgIEFjY2Vzc1R5cGUgYWNjZXNz
VHlwZSA9IHN0YXRpY19jYXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLT5hY2Nlc3NUeXBlKTsKQEAg
LTE1NTUsNyArMTUwNyw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eUlkRGVmaW5lUHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1pemUsIHZvaWQsCiAgICAgICAgIGlmIChz
dHViSW5mby0+Y29uc2lkZXJSZXBhdGNoaW5nQ2FjaGVCeSh2bSwgY29kZUJsb2NrLCBvbGRTdHJ1
Y3R1cmUsIGlkZW50aWZpZXIpKQogICAgICAgICAgICAgcmVwYXRjaFB1dEJ5KGdsb2JhbE9iamVj
dCwgY29kZUJsb2NrLCBiYXNlT2JqZWN0LCBvbGRTdHJ1Y3R1cmUsIGlkZW50aWZpZXIsIHB1dFNs
b3QsICpzdHViSW5mbywgUHV0QnlLaW5kOjpEZWZpbmVQcml2YXRlTmFtZUJ5SWQpOwogICAgIH0p
OwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdEdhdmVVcCwgdm9pZCwg
KEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
bykpCkBAIC0xNTYzLDcgKzE1MTQsNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdEdhdmVVcCwgdm9pZCwgKEVuYwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSUNTbG93UGF0aENhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSwgc3R1YkluZm8pOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAogICAgIHN0dWJJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOwogCkBA
IC0xNTcyLDcgKzE1MjIsNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdEdhdmVVcCwgdm9pZCwgKEVuYwogICAgIEpTVmFsdWUg
YmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsKIAogICAgIHNldFByaXZh
dGVGaWVsZCh2bSwgZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGJhc2VWYWx1ZSwgaWRlbnRpZmll
ciwgdmFsdWUsIFtdKFZNJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlKiwgUHV0UHJvcGVydHlTbG90
JiwgY29uc3QgSWRlbnRpZmllciYpIHsgfSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7
CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0UHJpdmF0
ZUZpZWxkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pKQpAQCAtMTU4MSw3ICsxNTMwLDYgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJp
Y3RPcHRpbWl6ZSwgdm9pZCwgKEUKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIElD
U2xvd1BhdGhDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUsIHN0dWJJbmZvKTsK
LSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBDYWNoZWFi
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIgPSBzdHViSW5mby0+aWRlbnRpZmllcigpOwogICAgIEFj
Y2Vzc1R5cGUgYWNjZXNzVHlwZSA9IHN0YXRpY19jYXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLT5h
Y2Nlc3NUeXBlKTsKQEAgLTE1OTcsNyArMTU0NSw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChF
CiAgICAgICAgIGlmIChzdHViSW5mby0+Y29uc2lkZXJSZXBhdGNoaW5nQ2FjaGVCeSh2bSwgY29k
ZUJsb2NrLCBvbGRTdHJ1Y3R1cmUsIGlkZW50aWZpZXIpKQogICAgICAgICAgICAgcmVwYXRjaFB1
dEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlT2JqZWN0LCBvbGRTdHJ1Y3R1cmUsIGlk
ZW50aWZpZXIsIHB1dFNsb3QsICpzdHViSW5mbywgUHV0QnlLaW5kOjpTZXRQcml2YXRlTmFtZUJ5
SWQpOwogICAgIH0pOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBzdGF0aWMg
dm9pZCBwdXRCeVZhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGJhc2VW
YWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEpTVmFsdWUgdmFsdWUsIEFycmF5UHJvZmlsZSogYXJy
YXlQcm9maWxlLCBFQ01BTW9kZSBlY21hTW9kZSkKQEAgLTE3MzUsMTQgKzE2ODIsMTIgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0T3B0aW1pemUsIHZv
aWQsIChFbmNvZGVkSlNWYWx1ZQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSUNT
bG93UGF0aENhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSwgc3R1YkluZm8pOwot
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUg
YmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlVmFsdWUpOwogICAgIEpTVmFs
dWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwogICAgIEpT
VmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKIAogICAgIHB1dEJ5
VmFsT3B0aW1pemUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCBiYXNlVmFs
dWUsIHN1YnNjcmlwdCwgdmFsdWUsIHN0dWJJbmZvLCBwcm9maWxlLCBQdXRCeUtpbmQ6OkJ5VmFs
U3RyaWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKIH0KIAogSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsU2xvcHB5T3B0aW1pemUsIHZvaWQsIChFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2Ny
aXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgQXJyYXlQcm9maWxlKiBwcm9maWxl
KSkKQEAgLTE3NTAsMTQgKzE2OTUsMTIgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5VmFsU2xvcHB5T3B0aW1pemUsIHZvaWQsIChFbmNvZGVkSlNWYWx1ZQogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSUNTbG93UGF0aENhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSwgc3R1YkluZm8pOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRCYXNlVmFsdWUpOwogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRTdWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKTsKIAogICAgIHB1dEJ5VmFsT3B0aW1pemUoZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUtPmNvZGVCbG9jaygpLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgdmFsdWUsIHN0dWJJ
bmZvLCBwcm9maWxlLCBQdXRCeUtpbmQ6OkJ5VmFsU2xvcHB5KTsKLSAgICBPUEVSQVRJT05fUkVU
VVJOKHNjb3BlKTsKIH0KIAogc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBkaXJlY3RQdXRCeVZh
bE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENvZGVCbG9jayogY29kZUJs
b2NrLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEpTVmFsdWUgdmFsdWUs
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgQXJyYXlQcm9maWxlKiBwcm9maWxlLCBQdXRC
eUtpbmQga2luZCkKQEAgLTE4MDksMTQgKzE3NTIsMTIgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsU3RyaWN0T3B0aW1pemUsIHZvaWQsIChFbmNvZGVk
SlMKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIElDU2xvd1BhdGhDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUsIHN0dWJJbmZvKTsKLSAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkQmFzZVZhbHVlKTsKICAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KTsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CiAKICAgICBkaXJlY3RQdXRCeVZhbE9wdGltaXpl
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKSwgYmFzZVZhbHVlLCBzdWJzY3Jp
cHQsIHZhbHVlLCBzdHViSW5mbywgcHJvZmlsZSwgUHV0QnlLaW5kOjpCeVZhbERpcmVjdFN0cmlj
dCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25EaXJlY3RQdXRCeVZhbFNsb3BweU9wdGltaXplLCB2b2lkLCAoRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNj
cmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEFycmF5UHJvZmlsZSogcHJvZmls
ZSkpCkBAIC0xODI0LDE0ICsxNzY1LDEyIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25EaXJlY3RQdXRCeVZhbFNsb3BweU9wdGltaXplLCB2b2lkLCAoRW5jb2RlZEpTCiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBJQ1Nsb3dQYXRoQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lLCBzdHViSW5mbyk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZEJhc2VWYWx1ZSk7CiAgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpOwogCiAgICAgZGlyZWN0UHV0QnlWYWxPcHRpbWl6ZShnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1
ZSwgc3R1YkluZm8sIHByb2ZpbGUsIFB1dEJ5S2luZDo6QnlWYWxEaXJlY3RTbG9wcHkpOwotICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlWYWxTdHJpY3RHYXZlVXAsIHZvaWQsIChFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbywgQXJyYXlQcm9maWxlKiBwcm9maWxlKSkKQEAgLTE4MzksNyAr
MTc3OCw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFN0cmlj
dEdhdmVVcCwgdm9pZCwgKEVuY29kZWRKU1ZhbHVlIGVuCiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKICAgICBJQ1Nsb3dQYXRoQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
LCBzdHViSW5mbyk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
CiAgICAgc3R1YkluZm8tPnRvb2tTbG93UGF0aCA9IHRydWU7CiAKQEAgLTE4NDgsNyArMTc4Niw2
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFN0cmljdEdhdmVV
cCwgdm9pZCwgKEVuY29kZWRKU1ZhbHVlIGVuCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkVmFsdWUpOwogCiAgICAgcHV0QnlWYWwoZ2xvYmFsT2JqZWN0LCBiYXNl
VmFsdWUsIHN1YnNjcmlwdCwgdmFsdWUsIHByb2ZpbGUsIEVDTUFNb2RlOjpzdHJpY3QoKSk7Ci0g
ICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeVZhbFN0cmljdEdlbmVyaWMsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQpAQCAt
MTg1NiwxNCArMTc5MywxMiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlWYWxTdHJpY3RHZW5lcmljLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZEJhc2VWYWx1ZSk7CiAgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFN1YnNjcmlwdCk7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOwogCiAgICAgcHV0QnlWYWwoZ2xvYmFsT2JqZWN0LCBiYXNlVmFsdWUsIHN1YnNj
cmlwdCwgdmFsdWUsIG51bGxwdHIsIEVDTUFNb2RlOjpzdHJpY3QoKSk7Ci0gICAgT1BFUkFUSU9O
X1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbFNsb3BweUdhdmVVcCwgdm9pZCwgKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8q
IHN0dWJJbmZvLCBBcnJheVByb2ZpbGUqIHByb2ZpbGUpKQpAQCAtMTg3MSw3ICsxODA2LDYgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsU2xvcHB5R2F2ZVVwLCB2
b2lkLCAoRW5jb2RlZEpTVmFsdWUgZW4KICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAg
IElDU2xvd1BhdGhDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUsIHN0dWJJbmZv
KTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBzdHVi
SW5mby0+dG9va1Nsb3dQYXRoID0gdHJ1ZTsKIApAQCAtMTg4MCw3ICsxODE0LDYgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsU2xvcHB5R2F2ZVVwLCB2b2lkLCAo
RW5jb2RlZEpTVmFsdWUgZW4KICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRWYWx1ZSk7CiAKICAgICBwdXRCeVZhbChnbG9iYWxPYmplY3QsIGJhc2VWYWx1ZSwgc3Vi
c2NyaXB0LCB2YWx1ZSwgcHJvZmlsZSwgRUNNQU1vZGU6OnNsb3BweSgpKTsKLSAgICBPUEVSQVRJ
T05fUkVUVVJOKHNjb3BlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5VmFsU2xvcHB5R2VuZXJpYywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCkBAIC0xODg4LDE0ICsx
ODIxLDEyIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFNsb3Bw
eUdlbmVyaWMsIHZvaWQsIChKU0dsb2JhbE9iamVjdCoKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
ICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZVZhbHVl
KTsKICAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2Ny
aXB0KTsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7
CiAKICAgICBwdXRCeVZhbChnbG9iYWxPYmplY3QsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1
ZSwgbnVsbHB0ciwgRUNNQU1vZGU6OnNsb3BweSgpKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNj
b3BlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRpcmVjdFB1dEJ5
VmFsU3RyaWN0R2F2ZVVwLCB2b2lkLCAoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIEFycmF5UHJvZmlsZSogcHJvZmlsZSkpCkBAIC0xOTAzLDcgKzE4MzQsNiBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxTdHJpY3RHYXZlVXAs
IHZvaWQsIChFbmNvZGVkSlNWYQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSUNT
bG93UGF0aENhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSwgc3R1YkluZm8pOwot
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIHN0dWJJbmZv
LT50b29rU2xvd1BhdGggPSB0cnVlOwogCkBAIC0xOTEzLDcgKzE4NDMsNiBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxTdHJpY3RHYXZlVXAsIHZvaWQs
IChFbmNvZGVkSlNWYQogICAgIFJFTEVBU0VfQVNTRVJUKGJhc2VWYWx1ZS5pc09iamVjdCgpKTsK
IAogICAgIGRpcmVjdFB1dEJ5VmFsKGdsb2JhbE9iamVjdCwgYXNPYmplY3QoYmFzZVZhbHVlKSwg
c3Vic2NyaXB0LCB2YWx1ZSwgcHJvZmlsZSwgRUNNQU1vZGU6OnN0cmljdCgpKTsKLSAgICBPUEVS
QVRJT05fUkVUVVJOKHNjb3BlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRpcmVjdFB1dEJ5VmFsU3RyaWN0R2VuZXJpYywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCkBAIC0x
OTIxLDcgKzE4NTAsNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGlyZWN0
UHV0QnlWYWxTdHJpY3RHZW5lcmljLCB2b2lkLCAoSlNHbG9iYWxPYgogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKIAogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRC
YXNlVmFsdWUpOwogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRTdWJzY3JpcHQpOwpAQCAtMTkyOSw3ICsxODU3LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsU3RyaWN0R2VuZXJpYywgdm9pZCwgKEpTR2xvYmFs
T2IKICAgICBSRUxFQVNFX0FTU0VSVChiYXNlVmFsdWUuaXNPYmplY3QoKSk7CiAKICAgICBkaXJl
Y3RQdXRCeVZhbChnbG9iYWxPYmplY3QsIGFzT2JqZWN0KGJhc2VWYWx1ZSksIHN1YnNjcmlwdCwg
dmFsdWUsIG51bGxwdHIsIEVDTUFNb2RlOjpzdHJpY3QoKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSk7CiB9CiAKIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgcHV0QnlWYWxNZWdhbW9y
cGhpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEFycmF5UHJvZmlsZSogcHJvZmls
ZSwgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LCBKU1ZhbHVlIHZhbHVlLCBQ
dXRCeUtpbmQga2luZCkKQEAgLTIwMjEsMTQgKzE5NDgsMTIgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0TWVnYW1vcnBoaWMsIHZvaWQsIChFbmNvZGVk
SlNWYWwKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIElDU2xvd1BhdGhDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUsIHN0dWJJbmZvKTsKLSAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZVZhbHVlKTsKICAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KTsKICAgICBKU1ZhbHVlIHZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CiAKICAgICBwdXRCeVZhbE1lZ2Ftb3JwaGlj
KGdsb2JhbE9iamVjdCwgdm0sIGNhbGxGcmFtZSwgc3R1YkluZm8sIHByb2ZpbGUsIGJhc2VWYWx1
ZSwgc3Vic2NyaXB0LCB2YWx1ZSwgUHV0QnlLaW5kOjpCeVZhbFN0cmljdCk7Ci0gICAgT1BFUkFU
SU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeVZhbFN0cmljdE1lZ2Ftb3JwaGljR2VuZXJpYywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCkBA
IC0yMDM2LDE0ICsxOTYxLDEyIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbFN0cmljdE1lZ2Ftb3JwaGljR2VuZXJpYywgdm9pZCwgKEpTR2xvCiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZEJhc2VWYWx1ZSk7CiAgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFN1YnNjcmlwdCk7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpOwogCiAgICAgcHV0QnlWYWxNZWdhbW9ycGhpYyhnbG9iYWxPYmplY3QsIHZt
LCBjYWxsRnJhbWUsIG51bGxwdHIsIG51bGxwdHIsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1
ZSwgUHV0QnlLaW5kOjpCeVZhbFN0cmljdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7
CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFNsb3BweU1l
Z2Ftb3JwaGljLCB2b2lkLCAoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IEFycmF5UHJvZmlsZSogcHJvZmlsZSkpCkBAIC0yMDUxLDE0ICsxOTc0LDEyIEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFNsb3BweU1lZ2Ftb3JwaGljLCB2b2lk
LCAoRW5jb2RlZEpTVmFsCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBJQ1Nsb3dQ
YXRoQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lLCBzdHViSW5mbyk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSBiYXNl
VmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2VWYWx1ZSk7CiAgICAgSlNWYWx1ZSBz
dWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7CiAgICAgSlNWYWx1
ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwogCiAgICAgcHV0QnlWYWxN
ZWdhbW9ycGhpYyhnbG9iYWxPYmplY3QsIHZtLCBjYWxsRnJhbWUsIHN0dWJJbmZvLCBwcm9maWxl
LCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgdmFsdWUsIFB1dEJ5S2luZDo6QnlWYWxTbG9wcHkpOwot
ICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0QnlWYWxTbG9wcHlNZWdhbW9ycGhpY0dlbmVyaWMsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQpAQCAtMjA2NiwxNCArMTk4NywxMiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlWYWxTbG9wcHlNZWdhbW9ycGhpY0dlbmVyaWMsIHZvaWQsIChKU0dsbwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRCYXNlVmFsdWUpOwogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKIAogICAgIHB1dEJ5VmFsTWVnYW1vcnBoaWMoZ2xvYmFs
T2JqZWN0LCB2bSwgY2FsbEZyYW1lLCBudWxscHRyLCBudWxscHRyLCBiYXNlVmFsdWUsIHN1YnNj
cmlwdCwgdmFsdWUsIFB1dEJ5S2luZDo6QnlWYWxTbG9wcHkpOwotICAgIE9QRVJBVElPTl9SRVRV
Uk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGlyZWN0
UHV0QnlWYWxTbG9wcHlHYXZlVXAsIHZvaWQsIChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZv
KiBzdHViSW5mbywgQXJyYXlQcm9maWxlKiBwcm9maWxlKSkKQEAgLTIwODEsNyArMjAwMCw2IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EaXJlY3RQdXRCeVZhbFNsb3BweUdh
dmVVcCwgdm9pZCwgKEVuY29kZWRKU1ZhCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBJQ1Nsb3dQYXRoQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lLCBzdHViSW5m
byk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgc3R1
YkluZm8tPnRvb2tTbG93UGF0aCA9IHRydWU7CiAKQEAgLTIwOTEsNyArMjAwOSw2IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EaXJlY3RQdXRCeVZhbFNsb3BweUdhdmVVcCwg
dm9pZCwgKEVuY29kZWRKU1ZhCiAgICAgUkVMRUFTRV9BU1NFUlQoYmFzZVZhbHVlLmlzT2JqZWN0
KCkpOwogCiAgICAgZGlyZWN0UHV0QnlWYWwoZ2xvYmFsT2JqZWN0LCBhc09iamVjdChiYXNlVmFs
dWUpLCBzdWJzY3JpcHQsIHZhbHVlLCBwcm9maWxlLCBFQ01BTW9kZTo6c2xvcHB5KCkpOwotICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxTbG9wcHlHZW5lcmljLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
QEAgLTIwOTksNyArMjAxNiw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25E
aXJlY3RQdXRCeVZhbFNsb3BweUdlbmVyaWMsIHZvaWQsIChKU0dsb2JhbE9iCiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZEJhc2VWYWx1ZSk7CiAgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFN1YnNjcmlwdCk7CkBAIC0yMTA3LDcgKzIwMjMsNiBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxTbG9wcHlHZW5lcmljLCB2b2lkLCAoSlNH
bG9iYWxPYgogICAgIFJFTEVBU0VfQVNTRVJUKGJhc2VWYWx1ZS5pc09iamVjdCgpKTsKIAogICAg
IGRpcmVjdFB1dEJ5VmFsKGdsb2JhbE9iamVjdCwgYXNPYmplY3QoYmFzZVZhbHVlKSwgc3Vic2Ny
aXB0LCB2YWx1ZSwgbnVsbHB0ciwgRUNNQU1vZGU6OnNsb3BweSgpKTsKLSAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNl
dFByaXZhdGVCcmFuZE9wdGltaXplLCB2b2lkLCAoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJyYW5kLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pKQpAQCAtMjEyNiw3ICsyMDQxLDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldFByaXZhdGVCcmFuZE9wdGlt
aXplLCB2b2lkLCAoRW5jb2RlZEpTVmFsdWUKICAgICBKU09iamVjdCogYmFzZU9iamVjdCA9IGFz
T2JqZWN0KGJhc2VWYWx1ZSk7CiAgICAgU3RydWN0dXJlKiBvbGRTdHJ1Y3R1cmUgPSBiYXNlT2Jq
ZWN0LT5zdHJ1Y3R1cmUoKTsKICAgICBiYXNlT2JqZWN0LT5zZXRQcml2YXRlQnJhbmQoZ2xvYmFs
T2JqZWN0LCBicmFuZCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUp
OworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAKICAgICBDb2RlQmxv
Y2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgaWYgKENhY2hlYWJs
ZUlkZW50aWZpZXI6OmlzQ2FjaGVhYmxlSWRlbnRpZmllckNlbGwoYnJhbmQpKSB7CkBAIC0yMTM0
LDcgKzIwNDksNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0UHJpdmF0
ZUJyYW5kT3B0aW1pemUsIHZvaWQsIChFbmNvZGVkSlNWYWx1ZQogICAgICAgICBpZiAoc3R1Yklu
Zm8tPmNvbnNpZGVyUmVwYXRjaGluZ0NhY2hlQnkodm0sIGNvZGVCbG9jaywgYmFzZU9iamVjdC0+
c3RydWN0dXJlKCksIGlkZW50aWZpZXIpKQogICAgICAgICAgICAgcmVwYXRjaFNldFByaXZhdGVC
cmFuZChnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZU9iamVjdCwgb2xkU3RydWN0dXJlLCBp
ZGVudGlmaWVyLCAqc3R1YkluZm8pOwogICAgIH0KLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
KTsKKwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0UHJpdmF0ZUJy
YW5kR2F2ZVVwLCB2b2lkLCAoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJyYW5kLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pKQpAQCAtMjE1NCw3ICsyMDY5LDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldFByaXZhdGVCcmFuZEdhdmVVcCwgdm9pZCwgKEVu
Y29kZWRKU1ZhbHVlIGUKIAogICAgIEpTT2JqZWN0KiBiYXNlT2JqZWN0ID0gYXNPYmplY3QoYmFz
ZVZhbHVlKTsKICAgICBiYXNlT2JqZWN0LT5zZXRQcml2YXRlQnJhbmQoZ2xvYmFsT2JqZWN0LCBi
cmFuZCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgdm9pZCgpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNoZWNrUHJpdmF0ZUJyYW5kT3B0aW1pemUsIHZvaWQsIChFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQnJhbmQsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbykpCkBAIC0yMTY4LDEy
ICsyMDgzLDEyIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DaGVja1ByaXZh
dGVCcmFuZE9wdGltaXplLCB2b2lkLCAoRW5jb2RlZEpTVmFsCiAgICAgSlNWYWx1ZSBicmFuZCA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQnJhbmQpOwogCiAgICAgSlNPYmplY3QqIGJhc2VPYmpl
Y3QgPSBiYXNlVmFsdWUudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
dm9pZCgpKTsKIAogICAgIEFTU0VSVChicmFuZC5pc1N5bWJvbCgpKTsKIAogICAgIGJhc2VPYmpl
Y3QtPmNoZWNrUHJpdmF0ZUJyYW5kKGdsb2JhbE9iamVjdCwgYnJhbmQpOwotICAgIE9QRVJBVElP
Tl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB2b2lkKCkpOwogCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNv
ZGVCbG9jaygpOwogICAgIGlmIChDYWNoZWFibGVJZGVudGlmaWVyOjppc0NhY2hlYWJsZUlkZW50
aWZpZXJDZWxsKGJyYW5kKSkgewpAQCAtMjE4MSw3ICsyMDk2LDYgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNoZWNrUHJpdmF0ZUJyYW5kT3B0aW1pemUsIHZvaWQsIChFbmNv
ZGVkSlNWYWwKICAgICAgICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlclJlcGF0Y2hpbmdDYWNoZUJ5
KHZtLCBjb2RlQmxvY2ssIGJhc2VPYmplY3QtPnN0cnVjdHVyZSgpLCBpZGVudGlmaWVyKSkKICAg
ICAgICAgICAgIHJlcGF0Y2hDaGVja1ByaXZhdGVCcmFuZChnbG9iYWxPYmplY3QsIGNvZGVCbG9j
aywgYmFzZU9iamVjdCwgaWRlbnRpZmllciwgKnN0dWJJbmZvKTsKICAgICB9Ci0gICAgT1BFUkFU
SU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25DaGVja1ByaXZhdGVCcmFuZEdhdmVVcCwgdm9pZCwgKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCcmFuZCwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKSkKQEAgLTIxOTcsMTIgKzIx
MTEsMTIgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNoZWNrUHJpdmF0ZUJy
YW5kR2F2ZVVwLCB2b2lkLCAoRW5jb2RlZEpTVmFsdWUKICAgICBKU1ZhbHVlIGJyYW5kID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRCcmFuZCk7CiAKICAgICBKU09iamVjdCogYmFzZU9iamVjdCA9
IGJhc2VWYWx1ZS50b09iamVjdChnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lk
KCkpOwogCiAgICAgQVNTRVJUKGJyYW5kLmlzU3ltYm9sKCkpOwogCiAgICAgYmFzZU9iamVjdC0+
Y2hlY2tQcml2YXRlQnJhbmQoZ2xvYmFsT2JqZWN0LCBicmFuZCk7Ci0gICAgT1BFUkFUSU9OX1JF
VFVSTihzY29wZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIH0K
IAogdGVtcGxhdGU8Ym9vbCBkZWZpbmU+CkBAIC0yMjY4LDE0ICsyMTgyLDEyIEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERlZmluZVByaXZhdGVGaWVsZE9wdGlt
aXplLCB2b2lkLCAoRW5jCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBJQ1Nsb3dQ
YXRoQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lLCBzdHViSW5mbyk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgIEpTVmFsdWUgYmFzZVZhbHVl
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlVmFsdWUpOwogICAgIEpTVmFsdWUgc3Vic2Ny
aXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKICAgICBwdXRQcml2YXRlTmFtZU9w
dGltaXplPHRydWU+KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIHN1YnNjcmlw
dCwgdmFsdWUsIHN0dWJJbmZvKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKIH0KIAog
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsU2V0UHJpdmF0ZUZpZWxk
T3B0aW1pemUsIHZvaWQsIChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywg
QXJyYXlQcm9maWxlKikpCkBAIC0yMjgzLDE0ICsyMTk1LDEyIEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFNldFByaXZhdGVGaWVsZE9wdGltaXplLCB2b2lkLCAo
RW5jb2RlCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBJQ1Nsb3dQYXRoQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lLCBzdHViSW5mbyk7Ci0gICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRCYXNlVmFsdWUpOwogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKICAgICBwdXRQcml2YXRlTmFtZU9wdGltaXplPGZh
bHNlPihnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIHZhbHVl
LCBzdHViSW5mbyk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERlZmluZVByaXZhdGVGaWVsZEdhdmVV
cCwgdm9pZCwgKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBBcnJheVBy
b2ZpbGUqKSkKQEAgLTIyOTgsNyArMjIwOCw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRCeVZhbERlZmluZVByaXZhdGVGaWVsZEdhdmVVcCwgdm9pZCwgKEVuY29kCiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBJQ1Nsb3dQYXRoQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lLCBzdHViSW5mbyk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgc3R1YkluZm8tPnRvb2tTbG93UGF0aCA9IHRydWU7
CiAKQEAgLTIzMDcsNyArMjIxNiw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeVZhbERlZmluZVByaXZhdGVGaWVsZEdhdmVVcCwgdm9pZCwgKEVuY29kCiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwogCiAgICAgcHV0UHJp
dmF0ZU5hbWU8dHJ1ZT4oZ2xvYmFsT2JqZWN0LCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgdmFsdWUp
OwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEZWZpbmVQcml2YXRlRmllbGRHZW5lcmljLCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKQEAgLTIzMTUsMTQgKzIyMjMsMTIgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5VmFsRGVmaW5lUHJpdmF0ZUZpZWxkR2VuZXJpYywgdm9pZCwgKEpT
R2wKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3Vl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkQmFzZVZhbHVlKTsKICAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KTsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CiAKICAgICBwdXRQcml2YXRlTmFtZTx0cnVlPihn
bG9iYWxPYmplY3QsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSk7Ci0gICAgT1BFUkFUSU9O
X1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbFNldFByaXZhdGVGaWVsZEdhdmVVcCwgdm9pZCwgKEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvLCBBcnJheVByb2ZpbGUqKSkKQEAgLTIzMzAsNyArMjIzNiw2IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFNldFByaXZhdGVGaWVs
ZEdhdmVVcCwgdm9pZCwgKEVuY29kZWRKCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBJQ1Nsb3dQYXRoQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lLCBzdHViSW5m
byk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgc3R1
YkluZm8tPnRvb2tTbG93UGF0aCA9IHRydWU7CiAKQEAgLTIzMzksNyArMjI0NCw2IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFNldFByaXZhdGVGaWVsZEdhdmVV
cCwgdm9pZCwgKEVuY29kZWRKCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpOwogCiAgICAgcHV0UHJpdmF0ZU5hbWU8ZmFsc2U+KGdsb2JhbE9iamVjdCwg
YmFzZVZhbHVlLCBzdWJzY3JpcHQsIHZhbHVlKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
KTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsU2V0UHJp
dmF0ZUZpZWxkR2VuZXJpYywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJz
Y3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCkBAIC0yMzQ3LDM0ICsyMjUxLDI4
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFNldFByaXZhdGVG
aWVsZEdlbmVyaWMsIHZvaWQsIChKU0dsb2JhCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
ICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAg
SlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2VWYWx1ZSk7CiAg
ICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwogCiAg
ICAgcHV0UHJpdmF0ZU5hbWU8ZmFsc2U+KGdsb2JhbE9iamVjdCwgYmFzZVZhbHVlLCBzdWJzY3Jp
cHQsIHZhbHVlKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKIH0KIAogSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxEaXJlY3RFdmFsU2xvcHB5LCBFbmNvZGVkSlNW
YWx1ZSwgKHZvaWQqIGZyYW1lLCBKU1Njb3BlKiBjYWxsZXJTY29wZUNoYWluLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVGhpc1ZhbHVlKSkKIHsKLSAgICBDYWxsRnJhbWUqIGNhbGxlZUZyYW1lID0g
cmVpbnRlcnByZXRfY2FzdDxDYWxsRnJhbWUqPihmcmFtZSk7Ci0gICAgVk0mIHZtID0gY2FsbGVl
RnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKKyAgICBDYWxsRnJhbWUqIGNhbGxlZUZyYW1lID0gYml0d2lzZV9jYXN0PENhbGxG
cmFtZSo+KGZyYW1lKTsKICAgICBjYWxsZWVGcmFtZS0+c2V0Q29kZUJsb2NrKG51bGxwdHIpOwog
Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGV2YWwoY2FsbGVl
RnJhbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVGhpc1ZhbHVlKSwgY2FsbGVyU2NvcGVDaGFp
biwgRUNNQU1vZGU6OnNsb3BweSgpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXZh
bChjYWxsZWVGcmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRUaGlzVmFsdWUpLCBjYWxsZXJT
Y29wZUNoYWluLCBFQ01BTW9kZTo6c2xvcHB5KCkpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNhbGxEaXJlY3RFdmFsU3RyaWN0LCBFbmNvZGVkSlNWYWx1ZSwgKHZv
aWQqIGZyYW1lLCBKU1Njb3BlKiBjYWxsZXJTY29wZUNoYWluLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVGhpc1ZhbHVlKSkKIHsKLSAgICBDYWxsRnJhbWUqIGNhbGxlZUZyYW1lID0gcmVpbnRlcnBy
ZXRfY2FzdDxDYWxsRnJhbWUqPihmcmFtZSk7Ci0gICAgVk0mIHZtID0gY2FsbGVlRnJhbWUtPmRl
cHJlY2F0ZWRWTSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
KyAgICBDYWxsRnJhbWUqIGNhbGxlZUZyYW1lID0gYml0d2lzZV9jYXN0PENhbGxGcmFtZSo+KGZy
YW1lKTsKICAgICBjYWxsZWVGcmFtZS0+c2V0Q29kZUJsb2NrKG51bGxwdHIpOwogCi0gICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGV2YWwoY2FsbGVlRnJhbWUsIEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVGhpc1ZhbHVlKSwgY2FsbGVyU2NvcGVDaGFpbiwgRUNNQU1v
ZGU6OnN0cmljdCgpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXZhbChjYWxsZWVG
cmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRUaGlzVmFsdWUpLCBjYWxsZXJTY29wZUNoYWlu
LCBFQ01BTW9kZTo6c3RyaWN0KCkpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblBvbHltb3JwaGljQ2FsbCwgVUNQVVJlZ2lzdGVyLCAoQ2FsbEZyYW1lKiBjYWxsZWVG
cmFtZSwgQ2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8pKQpAQCAtMjM4OCwxMyArMjI4NiwxMyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9seW1vcnBoaWNDYWxsLCBVQ1BV
UmVnaXN0ZXIsIChDYWxsRnJhbWUqIGNhbAogICAgIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNl
bGw7CiAgICAgdm9pZCogY2FsbFRhcmdldCA9IHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24odm0sIG93
bmVyLCBjYWxsZWVGcmFtZSwgY2FsbExpbmtJbmZvLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCk7CiAg
ICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgT1BFUkFUSU9OX1JF
VFVSTihzY29wZSwgYml0d2lzZV9jYXN0PFVDUFVSZWdpc3Rlcj4odm0uZ2V0Q1RJU3R1YihDb21t
b25KSVRUaHVua0lEOjpUaHJvd0V4Y2VwdGlvbkZyb21DYWxsKS50ZW1wbGF0ZSByZXRhZ2dlZDxK
U0VudHJ5UHRyVGFnPigpLmNvZGUoKS50YWdnZWRQdHIoKSkpOworICAgICAgICByZXR1cm4gYml0
d2lzZV9jYXN0PHVpbnRwdHJfdD4odm0uZ2V0Q1RJU3R1YihDb21tb25KSVRUaHVua0lEOjpUaHJv
d0V4Y2VwdGlvbkZyb21DYWxsKS50ZW1wbGF0ZSByZXRhZ2dlZDxKU0VudHJ5UHRyVGFnPigpLmNv
ZGUoKS50YWdnZWRQdHIoKSk7CiAgICAgbGlua1BvbHltb3JwaGljQ2FsbCh2bSwgb3duZXIsIGNh
bGxlZUZyYW1lLCAqY2FsbExpbmtJbmZvLCBDYWxsVmFyaWFudChjYWxsZWVBc0Z1bmN0aW9uQ2Vs
bCkpOwogICAgIC8vIEtlZXAgb3duZXIgYWxpdmUgZXhwbGljaXRseS4gTm93IHRoaXMgZnVuY3Rp
b24gY2FuIGJlIGNhbGxlZCBmcm9tIHRhaWwtY2FsbC4gVGhpcyBtZWFucyB0aGF0IENhbGxGcmFt
ZSBmb3IgdGhhdCBvd25lciBhbHJlYWR5IGdvZXMgYXdheSwgc28gd2Ugc2hvdWxkIGtlZXAgaXQg
YWxpdmUgaWYgd2Ugd291bGQgbGlrZSB0byB1c2UgaXQuCiAgICAgZW5zdXJlU3RpbGxBbGl2ZUhl
cmUob3duZXIpOwogICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkpCi0gICAgICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGJpdHdpc2VfY2FzdDxVQ1BVUmVnaXN0ZXI+KHZtLmdl
dENUSVN0dWIoQ29tbW9uSklUVGh1bmtJRDo6VGhyb3dFeGNlcHRpb25Gcm9tQ2FsbCkudGVtcGxh
dGUgcmV0YWdnZWQ8SlNFbnRyeVB0clRhZz4oKS5jb2RlKCkudGFnZ2VkUHRyKCkpKTsKLSAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KGJpdHdpc2Vf
Y2FzdDx1aW50cHRyX3Q+KGNhbGxUYXJnZXQpKSk7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nh
c3Q8dWludHB0cl90Pih2bS5nZXRDVElTdHViKENvbW1vbkpJVFRodW5rSUQ6OlRocm93RXhjZXB0
aW9uRnJvbUNhbGwpLnRlbXBsYXRlIHJldGFnZ2VkPEpTRW50cnlQdHJUYWc+KCkuY29kZSgpLnRh
Z2dlZFB0cigpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPihiaXR3aXNl
X2Nhc3Q8dWludHB0cl90PihjYWxsVGFyZ2V0KSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25WaXJ0dWFsQ2FsbCwgVUNQVVJlZ2lzdGVyLCAoQ2FsbEZyYW1lKiBjYWxs
ZWVGcmFtZSwgQ2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8pKQpAQCAtMjQxMCw4ICsyMzA4LDgg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZpcnR1YWxDYWxsLCBVQ1BVUmVn
aXN0ZXIsIChDYWxsRnJhbWUqIGNhbGxlZUYKICAgICAvLyBLZWVwIG93bmVyIGFsaXZlIGV4cGxp
Y2l0bHkuIE5vdyB0aGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgZnJvbSB0YWlsLWNhbGwuIFRo
aXMgbWVhbnMgdGhhdCBDYWxsRnJhbWUgZm9yIHRoYXQgb3duZXIgYWxyZWFkeSBnb2VzIGF3YXks
IHNvIHdlIHNob3VsZCBrZWVwIGl0IGFsaXZlIGlmIHdlIHdvdWxkIGxpa2UgdG8gdXNlIGl0Lgog
ICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKG93bmVyKTsKICAgICBpZiAoVU5MSUtFTFkoc2NvcGUu
ZXhjZXB0aW9uKCkpKQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBiaXR3aXNlX2Nh
c3Q8VUNQVVJlZ2lzdGVyPih2bS5nZXRDVElTdHViKENvbW1vbkpJVFRodW5rSUQ6OlRocm93RXhj
ZXB0aW9uRnJvbUNhbGwpLnRlbXBsYXRlIHJldGFnZ2VkPEpTRW50cnlQdHJUYWc+KCkuY29kZSgp
LnRhZ2dlZFB0cigpKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgYml0d2lzZV9jYXN0
PFVDUFVSZWdpc3Rlcj4oYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oY2FsbFRhcmdldCkpKTsKKyAg
ICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KHZtLmdldENUSVN0dWIoQ29tbW9u
SklUVGh1bmtJRDo6VGhyb3dFeGNlcHRpb25Gcm9tQ2FsbCkudGVtcGxhdGUgcmV0YWdnZWQ8SlNF
bnRyeVB0clRhZz4oKS5jb2RlKCkudGFnZ2VkUHRyKCkpOworICAgIHJldHVybiBiaXR3aXNlX2Nh
c3Q8VUNQVVJlZ2lzdGVyPihiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihjYWxsVGFyZ2V0KSk7CiB9
CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZhdWx0Q2FsbCwgVUNQVVJl
Z2lzdGVyLCAoQ2FsbEZyYW1lKiBjYWxsZWVGcmFtZSwgQ2FsbExpbmtJbmZvKiBjYWxsTGlua0lu
Zm8pKQpAQCAtMjQyNiw4ICsyMzI0LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRlZmF1bHRDYWxsLCBVQ1BVUmVnaXN0ZXIsIChDYWxsRnJhbWUqIGNhbGxlZUYKICAgICAv
LyBLZWVwIG93bmVyIGFsaXZlIGV4cGxpY2l0bHkuIE5vdyB0aGlzIGZ1bmN0aW9uIGNhbiBiZSBj
YWxsZWQgZnJvbSB0YWlsLWNhbGwuIFRoaXMgbWVhbnMgdGhhdCBDYWxsRnJhbWUgZm9yIHRoYXQg
b3duZXIgYWxyZWFkeSBnb2VzIGF3YXksIHNvIHdlIHNob3VsZCBrZWVwIGl0IGFsaXZlIGlmIHdl
IHdvdWxkIGxpa2UgdG8gdXNlIGl0LgogICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKG93bmVyKTsK
ICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKQotICAgICAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlLCBiaXR3aXNlX2Nhc3Q8VUNQVVJlZ2lzdGVyPih2bS5nZXRDVElTdHViKENv
bW1vbkpJVFRodW5rSUQ6OlRocm93RXhjZXB0aW9uRnJvbUNhbGwpLnRlbXBsYXRlIHJldGFnZ2Vk
PEpTRW50cnlQdHJUYWc+KCkuY29kZSgpLnRhZ2dlZFB0cigpKSk7Ci0gICAgT1BFUkFUSU9OX1JF
VFVSTihzY29wZSwgYml0d2lzZV9jYXN0PFVDUFVSZWdpc3Rlcj4oYml0d2lzZV9jYXN0PHVpbnRw
dHJfdD4oY2FsbFRhcmdldCkpKTsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDx1aW50cHRy
X3Q+KHZtLmdldENUSVN0dWIoQ29tbW9uSklUVGh1bmtJRDo6VGhyb3dFeGNlcHRpb25Gcm9tQ2Fs
bCkudGVtcGxhdGUgcmV0YWdnZWQ8SlNFbnRyeVB0clRhZz4oKS5jb2RlKCkudGFnZ2VkUHRyKCkp
OworICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8VUNQVVJlZ2lzdGVyPihiaXR3aXNlX2Nhc3Q8dWlu
dHB0cl90PihjYWxsVGFyZ2V0KSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlTGVzcywgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCkBA
IC0yNDM1LDkgKzIzMzMsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29t
cGFyZUxlc3MsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKICAgICAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBqc0xlc3M8dHJ1ZT4o
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkT3AyKSkpOworICAgIHJldHVybiBqc0xlc3M8dHJ1ZT4oZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSk7
CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzc0VxLCBz
aXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKQEAgLTI0NDUsOSArMjM0Miw4IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzc0VxLCBzaXplX3Qs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSwganNMZXNzRXE8dHJ1ZT4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSkpOworICAg
IHJldHVybiBqc0xlc3NFcTx0cnVlPihnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AxKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpKTsKIH0KIAogSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyLCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyKSkKQEAgLTI0NTUsOSArMjM1MSw4IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRlciwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29w
ZSwganNMZXNzPGZhbHNlPihnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3Ay
KSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpKSk7CisgICAgcmV0dXJuIGpzTGVzczxmYWxz
ZT4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMiksIEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AxKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db21wYXJlR3JlYXRlckVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkK
QEAgLTI0NjUsOSArMjM2MCw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b21wYXJlR3JlYXRlckVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwganNMZXNzRXE8ZmFsc2U+
KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpLCBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9wMSkpKTsKKyAgICByZXR1cm4ganNMZXNzRXE8ZmFsc2U+KGdsb2JhbE9iamVj
dCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
MSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUVxLCBz
aXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKQEAgLTI0NzUsOSArMjM2OSw4IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlRXEsIHNpemVfdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZXF1YWxTbG93Q2FzZUlubGluZShnbG9iYWxP
YmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDIpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVxdWFsU2xvd0Nhc2VJbmxpbmUoZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AyKSk7CiB9CiAKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtMjQ4OSwxMyArMjM4MiwxMiBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0VxLCBzaXpl
X3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAg
ICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGJv
b2wgcmVzdWx0ID0gYXNTdHJpbmcobGVmdCktPmVxdWFsSW5saW5lKGdsb2JhbE9iamVjdCwgYXNT
dHJpbmcocmlnaHQpKTsKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgIE9QRVJBVElPTl9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVzdWx0KSkpOworICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlc3VsdCkpOwogI2Vsc2UKLSAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlLCByZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7CiAjZW5kaWYKIH0KIApA
QCAtMjUwNCwxMiArMjM5NiwxMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29tcGFyZVN0cmljdEVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgc3JjMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
T3AxKTsKICAgICBKU1ZhbHVlIHNyYzIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CiAK
LSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjpzdHJpY3RFcXVhbChnbG9iYWxP
YmplY3QsIHNyYzEsIHNyYzIpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6c3RyaWN0RXF1YWwoZ2xv
YmFsT2JqZWN0LCBzcmMxLCBzcmMyKTsKIH0KIAogI2lmIFVTRShCSUdJTlQzMikKQEAgLTI1MTgs
MTEgKzI0MDksMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVF
cUhlYXBCaWdJbnRUb0ludDMyLCBzaXplX3QsIChKU0dsb2JhbE8KICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAKICAgICBBU1NFUlQoaGVhcEJpZ0ludC0+aXNIZWFwQmlnSW50KCkpOwogCi0gICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSwgc3RhdGljX2Nhc3Q8SlNCaWdJbnQqPihoZWFwQmlnSW50KS0+
ZXF1YWxzVG9JbnQzMihzbWFsbEludCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0JpZ0lu
dCo+KGhlYXBCaWdJbnQpLT5lcXVhbHNUb0ludDMyKHNtYWxsSW50KTsKIH0KICNlbmRpZgogCkBA
IC0yNTMxLDggKzI0MjEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
QXJyYXlXaXRoUHJvZmlsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbAogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoY29u
c3RydWN0QXJyYXlOZWdhdGl2ZUluZGV4ZWQoZ2xvYmFsT2JqZWN0LCBwcm9maWxlLCB2YWx1ZXMs
IHNpemUpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RBcnJheU5lZ2F0
aXZlSW5kZXhlZChnbG9iYWxPYmplY3QsIHByb2ZpbGUsIHZhbHVlcywgc2l6ZSkpOwogfQogCiBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZUFuZFByb2Zp
bGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQXJyYXlB
bGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgRW5jb2RlZEpTVmFsdWUgc2l6ZSkpCkBAIC0yNTQw
LDI3ICsyNDI5LDI0IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJh
eVdpdGhTaXplQW5kUHJvZmlsZSwgRW5jb2RlZEpTVmFsdWUsIChKCiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogICAgIEpTVmFsdWUgc2l6ZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKHNpemUpOwotICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RBcnJheVdp
dGhTaXplUXVpcmsoZ2xvYmFsT2JqZWN0LCBwcm9maWxlLCBzaXplVmFsdWUpKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RBcnJheVdpdGhTaXplUXVpcmsoZ2xvYmFsT2Jq
ZWN0LCBwcm9maWxlLCBzaXplVmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNyZWF0ZUxleGljYWxFbnZpcm9ubWVudFREWiwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Njb3BlKiBlbnZpcm9ubWVudCwgU3ltYm9s
VGFibGUqIHRhYmxlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVM
ZXhpY2FsRW52aXJvbm1lbnRURFosIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNTY29wZSogc2NvcGUsIFN5bWJvbFRhYmxlKiB0YWJsZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVu
Y29kZShKU0xleGljYWxFbnZpcm9ubWVudDo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFjdGl2
YXRpb25TdHJ1Y3R1cmUoKSwgZW52aXJvbm1lbnQsIHRhYmxlLCBqc1REWlZhbHVlKCkpKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0xleGljYWxFbnZpcm9ubWVudDo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QtPmFjdGl2YXRpb25TdHJ1Y3R1cmUoKSwgc2NvcGUsIHRhYmxlLCBqc1RE
WlZhbHVlKCkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0
ZUxleGljYWxFbnZpcm9ubWVudFVuZGVmaW5lZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1Njb3BlKiBlbnZpcm9ubWVudCwgU3ltYm9sVGFibGUqIHRh
YmxlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVMZXhpY2FsRW52
aXJvbm1lbnRVbmRlZmluZWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNTY29wZSogc2NvcGUsIFN5bWJvbFRhYmxlKiB0YWJsZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShKU0xleGljYWxFbnZpcm9ubWVudDo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFjdGl2YXRp
b25TdHJ1Y3R1cmUoKSwgZW52aXJvbm1lbnQsIHRhYmxlLCBqc1VuZGVmaW5lZCgpKSkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNMZXhpY2FsRW52aXJvbm1lbnQ6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LT5hY3RpdmF0aW9uU3RydWN0dXJlKCksIHNjb3BlLCB0YWJsZSwganNVbmRl
ZmluZWQoKSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRl
RGlyZWN0QXJndW1lbnRzQmFzZWxpbmUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkpCkBAIC0yNTY4LDE4ICsyNDU0LDE2IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHNCYXNlbGluZSwgRW5jb2RlZEpT
VmFsdWUsCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUs
IEpTVmFsdWU6OmVuY29kZShEaXJlY3RBcmd1bWVudHM6OmNyZWF0ZUJ5Q29weWluZyhnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKERpcmVjdEFy
Z3VtZW50czo6Y3JlYXRlQnlDb3B5aW5nKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVTY29wZWRBcmd1bWVudHNC
YXNlbGluZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0xleGljYWxFbnZpcm9ubWVudCogZW52aXJvbm1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNyZWF0ZVNjb3BlZEFyZ3VtZW50c0Jhc2VsaW5lLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTTGV4aWNhbEVudmlyb25tZW50KiBz
Y29wZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Q
cm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFNjb3BlZEFyZ3VtZW50c1RhYmxl
KiB0YWJsZSA9IGVudmlyb25tZW50LT5zeW1ib2xUYWJsZSgpLT5hcmd1bWVudHMoKTsKLSAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoU2NvcGVkQXJndW1lbnRzOjpj
cmVhdGVCeUNvcHlpbmcoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIHRhYmxlLCBlbnZpcm9ubWVu
dCkpKTsKKyAgICBTY29wZWRBcmd1bWVudHNUYWJsZSogdGFibGUgPSBzY29wZS0+c3ltYm9sVGFi
bGUoKS0+YXJndW1lbnRzKCk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShTY29wZWRBcmd1
bWVudHM6OmNyZWF0ZUJ5Q29weWluZyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgdGFibGUsIHNj
b3BlKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9u
ZWRBcmd1bWVudHNCYXNlbGluZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KSkKQEAgLTI1ODcsOCArMjQ3MSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHNCYXNlbGluZSwgRW5jb2RlZEpTVmFsdWUs
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFs
dWU6OmVuY29kZShDbG9uZWRBcmd1bWVudHM6OmNyZWF0ZVdpdGhNYWNoaW5lRnJhbWUoZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIEFyZ3VtZW50c01vZGU6OkNsb25lZCkpKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKENsb25lZEFyZ3VtZW50czo6Y3JlYXRlV2l0aE1hY2hpbmVGcmFtZShn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgQXJndW1lbnRzTW9kZTo6Q2xvbmVkKSk7CiB9CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZT4KQEAgLTI2MDAsNzYgKzI0ODMsNjggQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIG5ld0Z1bmN0aW9uQ29tbW9uKFZNJiB2bSwgSlNTY29wZSogc2Nv
cGUsIEpTQ2VsbCogZnVuY3Rpb24KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEZ1bmN0aW9u
VHlwZTo6Y3JlYXRlKHZtLCBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihmdW5jdGlv
bkV4ZWN1dGFibGUpLCBzY29wZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3RnVuY3Rpb24sIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgSlNTY29w
ZSogZW52aXJvbm1lbnQsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGdW5jdGlvbiwgRW5jb2RlZEpTVmFsdWUsIChWTSog
dm1Qb2ludGVyLCBKU1Njb3BlKiBzY29wZSwgSlNDZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUpKQog
ewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgbmV3RnVuY3Rpb25D
b21tb248SlNGdW5jdGlvbj4odm0sIGVudmlyb25tZW50LCBmdW5jdGlvbkV4ZWN1dGFibGUsIGZh
bHNlKSk7CisgICAgcmV0dXJuIG5ld0Z1bmN0aW9uQ29tbW9uPEpTRnVuY3Rpb24+KHZtLCBzY29w
ZSwgZnVuY3Rpb25FeGVjdXRhYmxlLCBmYWxzZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNo
cG9pbnQsIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgSlNTY29wZSogZW52aXJvbm1l
bnQsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9p
bnQsIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgSlNTY29wZSogc2NvcGUsIEpTQ2Vs
bCogZnVuY3Rpb25FeGVjdXRhYmxlKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRP
cGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0g
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIE9QRVJBVElPTl9S
RVRVUk4oc2NvcGUsIG5ld0Z1bmN0aW9uQ29tbW9uPEpTRnVuY3Rpb24+KHZtLCBlbnZpcm9ubWVu
dCwgZnVuY3Rpb25FeGVjdXRhYmxlLCB0cnVlKSk7CisgICAgcmV0dXJuIG5ld0Z1bmN0aW9uQ29t
bW9uPEpTRnVuY3Rpb24+KHZtLCBzY29wZSwgZnVuY3Rpb25FeGVjdXRhYmxlLCB0cnVlKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0dlbmVyYXRvckZ1bmN0aW9u
LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIEpTU2NvcGUqIGVudmlyb25tZW50LCBK
U0NlbGwqIGZ1bmN0aW9uRXhlY3V0YWJsZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3R2VuZXJhdG9yRnVuY3Rpb24sIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRl
ciwgSlNTY29wZSogc2NvcGUsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlKSkKIHsKICAgICBW
TSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIG5ld0Z1bmN0aW9uQ29tbW9uPEpT
R2VuZXJhdG9yRnVuY3Rpb24+KHZtLCBlbnZpcm9ubWVudCwgZnVuY3Rpb25FeGVjdXRhYmxlLCBm
YWxzZSkpOworICAgIHJldHVybiBuZXdGdW5jdGlvbkNvbW1vbjxKU0dlbmVyYXRvckZ1bmN0aW9u
Pih2bSwgc2NvcGUsIGZ1bmN0aW9uRXhlY3V0YWJsZSwgZmFsc2UpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3R2VuZXJhdG9yRnVuY3Rpb25XaXRoSW52YWxpZGF0
ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIs
IEpTU2NvcGUqIGVudmlyb25tZW50LCBKU0NlbGwqIGZ1bmN0aW9uRXhlY3V0YWJsZSkpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3R2VuZXJhdG9yRnVuY3Rpb25XaXRoSW52
YWxpZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBv
aW50ZXIsIEpTU2NvcGUqIHNjb3BlLCBKU0NlbGwqIGZ1bmN0aW9uRXhlY3V0YWJsZSkpCiB7CiAg
ICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBuZXdGdW5jdGlvbkNvbW1v
bjxKU0dlbmVyYXRvckZ1bmN0aW9uPih2bSwgZW52aXJvbm1lbnQsIGZ1bmN0aW9uRXhlY3V0YWJs
ZSwgdHJ1ZSkpOworICAgIHJldHVybiBuZXdGdW5jdGlvbkNvbW1vbjxKU0dlbmVyYXRvckZ1bmN0
aW9uPih2bSwgc2NvcGUsIGZ1bmN0aW9uRXhlY3V0YWJsZSwgdHJ1ZSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBc3luY0Z1bmN0aW9uLCBFbmNvZGVkSlNWYWx1
ZSwgKFZNKiB2bVBvaW50ZXIsIEpTU2NvcGUqIGVudmlyb25tZW50LCBKU0NlbGwqIGZ1bmN0aW9u
RXhlY3V0YWJsZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXN5bmNG
dW5jdGlvbiwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBKU1Njb3BlKiBzY29wZSwg
SlNDZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAg
IEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
KTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgT1BFUkFU
SU9OX1JFVFVSTihzY29wZSwgbmV3RnVuY3Rpb25Db21tb248SlNBc3luY0Z1bmN0aW9uPih2bSwg
ZW52aXJvbm1lbnQsIGZ1bmN0aW9uRXhlY3V0YWJsZSwgZmFsc2UpKTsKKyAgICByZXR1cm4gbmV3
RnVuY3Rpb25Db21tb248SlNBc3luY0Z1bmN0aW9uPih2bSwgc2NvcGUsIGZ1bmN0aW9uRXhlY3V0
YWJsZSwgZmFsc2UpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
QXN5bmNGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQsIEVuY29k
ZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgSlNTY29wZSogZW52aXJvbm1lbnQsIEpTQ2VsbCog
ZnVuY3Rpb25FeGVjdXRhYmxlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25O
ZXdBc3luY0Z1bmN0aW9uV2l0aEludmFsaWRhdGVkUmVhbGxvY2F0aW9uV2F0Y2hwb2ludCwgRW5j
b2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBKU1Njb3BlKiBzY29wZSwgSlNDZWxsKiBmdW5j
dGlvbkV4ZWN1dGFibGUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihz
Y29wZSwgbmV3RnVuY3Rpb25Db21tb248SlNBc3luY0Z1bmN0aW9uPih2bSwgZW52aXJvbm1lbnQs
IGZ1bmN0aW9uRXhlY3V0YWJsZSwgdHJ1ZSkpOworICAgIHJldHVybiBuZXdGdW5jdGlvbkNvbW1v
bjxKU0FzeW5jRnVuY3Rpb24+KHZtLCBzY29wZSwgZnVuY3Rpb25FeGVjdXRhYmxlLCB0cnVlKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FzeW5jR2VuZXJhdG9y
RnVuY3Rpb24sIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgSlNTY29wZSogZW52aXJv
bm1lbnQsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdBc3luY0dlbmVyYXRvckZ1bmN0aW9uLCBFbmNvZGVkSlNWYWx1ZSwg
KFZNKiB2bVBvaW50ZXIsIEpTU2NvcGUqIHNjb3BlLCBKU0NlbGwqIGZ1bmN0aW9uRXhlY3V0YWJs
ZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBuZXdGdW5j
dGlvbkNvbW1vbjxKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24+KHZtLCBlbnZpcm9ubWVudCwgZnVu
Y3Rpb25FeGVjdXRhYmxlLCBmYWxzZSkpOworICAgIHJldHVybiBuZXdGdW5jdGlvbkNvbW1vbjxK
U0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24+KHZtLCBzY29wZSwgZnVuY3Rpb25FeGVjdXRhYmxlLCBm
YWxzZSk7CiB9CiAgICAgCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXN5
bmNHZW5lcmF0b3JGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQs
IEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgSlNTY29wZSogZW52aXJvbm1lbnQsIEpT
Q2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25OZXdBc3luY0dlbmVyYXRvckZ1bmN0aW9uV2l0aEludmFsaWRhdGVkUmVhbGxvY2F0aW9u
V2F0Y2hwb2ludCwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBKU1Njb3BlKiBzY29w
ZSwgSlNDZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50
ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSwgbmV3RnVuY3Rpb25Db21tb248SlNBc3luY0dlbmVyYXRvckZ1
bmN0aW9uPih2bSwgZW52aXJvbm1lbnQsIGZ1bmN0aW9uRXhlY3V0YWJsZSwgdHJ1ZSkpOworICAg
IHJldHVybiBuZXdGdW5jdGlvbkNvbW1vbjxKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24+KHZtLCBz
Y29wZSwgZnVuY3Rpb25FeGVjdXRhYmxlLCB0cnVlKTsKIH0KICAgICAKIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TZXRGdW5jdGlvbk5hbWUsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGZ1bmNDZWxsLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
TmFtZSkpCkBAIC0yNjc3LDEyICsyNTUyLDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25TZXRGdW5jdGlvbk5hbWUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNGdW5jdGlvbiogZnVuYyA9IGpzQ2FzdDxKU0Z1
bmN0aW9uKj4oZnVuY0NlbGwpOwogICAgIEpTVmFsdWUgbmFtZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkTmFtZSk7CiAgICAgZnVuYy0+c2V0RnVuY3Rpb25OYW1lKGdsb2JhbE9iamVjdCwgbmFt
ZSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdPYmplY3QsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkpCkBAIC0yNjkwLDkgKzI1NjMsOCBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3T2JqZWN0LCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3Ry
dWN0dXJlKgogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBjb25z
dHJ1Y3RFbXB0eU9iamVjdCh2bSwgc3RydWN0dXJlKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEVt
cHR5T2JqZWN0KHZtLCBzdHJ1Y3R1cmUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3UHJvbWlzZSwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSog
c3RydWN0dXJlKSkKQEAgLTI3MDAsOSArMjU3Miw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdQcm9taXNlLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJl
CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTUHJvbWlzZTo6
Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUpKTsKKyAgICByZXR1cm4gSlNQcm9taXNlOjpjcmVhdGUodm0s
IHN0cnVjdHVyZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJ
bnRlcm5hbFByb21pc2UsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkpCkBAIC0yNzEwLDkgKzI1ODEsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3SW50ZXJuYWxQcm9taXNlLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgUwogICAg
IFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU0ludGVybmFsUHJvbWlz
ZTo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUpKTsKKyAgICByZXR1cm4gSlNJbnRlcm5hbFByb21pc2U6
OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk5ld0dlbmVyYXRvciwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSog
c3RydWN0dXJlKSkKQEAgLTI3MjAsOSArMjU5MCw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdHZW5lcmF0b3IsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1
CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTR2VuZXJhdG9y
OjpjcmVhdGUodm0sIHN0cnVjdHVyZSkpOworICAgIHJldHVybiBKU0dlbmVyYXRvcjo6Y3JlYXRl
KHZtLCBzdHJ1Y3R1cmUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TmV3QXN5bmNHZW5lcmF0b3IsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkpCkBAIC0yNzMwLDkgKzI1OTksOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3QXN5bmNHZW5lcmF0b3IsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBTdAog
ICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU0FzeW5jR2VuZXJh
dG9yOjpjcmVhdGUodm0sIHN0cnVjdHVyZSkpOworICAgIHJldHVybiBKU0FzeW5jR2VuZXJhdG9y
OjpjcmVhdGUodm0sIHN0cnVjdHVyZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdSZWdleHAsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0NlbGwqIHJlZ2V4cFB0cikpCkBAIC0yNzQxLDExICsyNjA5LDEwIEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdSZWdleHAsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgUmVnRXhwKiByZWdleHAg
PSBzdGF0aWNfY2FzdDxSZWdFeHAqPihyZWdleHBQdHIpOwogICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBhcmVMZWdhY3lGZWF0dXJlc0VuYWJsZWQgPSB0cnVlOwotICAgIE9QRVJBVElPTl9SRVRV
Uk4oc2NvcGUsIFJlZ0V4cE9iamVjdDo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPnJlZ0V4cFN0
cnVjdHVyZSgpLCByZWdleHAsIGFyZUxlZ2FjeUZlYXR1cmVzRW5hYmxlZCkpOworICAgIHJldHVy
biBSZWdFeHBPYmplY3Q6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5yZWdFeHBTdHJ1Y3R1cmUo
KSwgcmVnZXhwLCBhcmVMZWdhY3lGZWF0dXJlc0VuYWJsZWQpOwogfQogCiAvLyBUaGUgb25seSBy
ZWFzb24gZm9yIHJldHVybmluZyBhbiBVbnVzZWRQdHIgKGluc3RlYWQgb2Ygdm9pZCkgaXMgc28g
dGhhdCB3ZSBjYW4gcmV1c2UgdGhlCkBAIC0yNzU3LDEwICsyNjI0LDkgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhbmRsZVRyYXBzLCBVbnVzZWRQdHIsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmEKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgQVNTRVJUKHZtLnRyYXBzKCku
bmVlZEhhbmRsaW5nKFZNVHJhcHM6OkFzeW5jRXZlbnRzKSk7CiAgICAgdm0udHJhcHMoKS5oYW5k
bGVUcmFwcyhWTVRyYXBzOjpBc3luY0V2ZW50cyk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29w
ZSwgbnVsbHB0cik7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25EZWJ1Zywgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIGludDMyX3QgZGVi
dWdIb29rVHlwZSkpCkBAIC0yNzY4LDEwICsyNjM0LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRlYnVnLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgaW50MzJfdCBkZWJ1Z0hv
b2sKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogCiAgICAgdm0uaW50ZXJwcmV0ZXIuZGVidWcoY2FsbEZyYW1lLCBz
dGF0aWNfY2FzdDxEZWJ1Z0hvb2tUeXBlPihkZWJ1Z0hvb2tUeXBlKSk7Ci0gICAgT1BFUkFUSU9O
X1JFVFVSTihzY29wZSk7CiB9CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKQEAgLTI3ODYsNyArMjY1
MCw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PcHRpbWl6ZSwgVUdQUlBh
aXIsIChWTSogdm1Qb2ludGVyLCB1aW50MzJfdCBiCiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAg
SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUp
OwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBCeXRlY29k
ZUluZGV4IGJ5dGVjb2RlSW5kZXggPSBCeXRlY29kZUluZGV4Ojpmcm9tQml0cyhieXRlY29kZUlu
ZGV4Qml0cyk7CiAKICAgICAvLyBEZWZlciBHQyBmb3IgYSB3aGlsZSBzbyB0aGF0IGl0IGRvZXNu
J3QgcnVuIGJldHdlZW4gd2hlbiB3ZSBlbnRlciBpbnRvIHRoaXMKQEAgLTI4MzQsNyArMjY5Nyw3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PcHRpbWl6ZSwgVUdQUlBhaXIs
IChWTSogdm1Qb2ludGVyLCB1aW50MzJfdCBiCiAgICAgICAgIENPREVCTE9DS19MT0dfRVZFTlQo
Y29kZUJsb2NrLCAiZGVsYXlPcHRpbWl6ZVRvREZHIiwgKCJjb3VudGVyID0gIiwgY29kZUJsb2Nr
LT5qaXRFeGVjdXRlQ291bnRlcigpKSk7CiAgICAgICAgIGNvZGVCbG9jay0+dXBkYXRlQWxsUHJl
ZGljdGlvbnMoKTsKICAgICAgICAgZGF0YUxvZ0xuSWYoT3B0aW9uczo6dmVyYm9zZU9TUigpLCAi
Q2hvb3Npbmcgbm90IHRvIG9wdGltaXplICIsICpjb2RlQmxvY2ssICIgeWV0LCBiZWNhdXNlIHRo
ZSB0aHJlc2hvbGQgaGFzbid0IGJlZW4gcmVhY2hlZC4iKTsKLSAgICAgICAgT1BFUkFUSU9OX1JF
VFVSTihzY29wZSwgZW5jb2RlUmVzdWx0KG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICAgICAgcmV0
dXJuIGVuY29kZVJlc3VsdChudWxscHRyLCBudWxscHRyKTsKICAgICB9CiAgICAgCiAgICAgaWYg
KFVOTElLRUxZKHZtLmhhc1Rlcm1pbmF0aW9uUmVxdWVzdCgpKSkgewpAQCAtMjg0MywyMSArMjcw
NiwyMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT3B0aW1pemUsIFVHUFJQ
YWlyLCAoVk0qIHZtUG9pbnRlciwgdWludDMyX3QgYgogICAgICAgICAvLyBjaGVja3Mgd2lsbCBi
ZSBjYWxsZWQsIGFuZCB3ZSBjYW4gdW53aW5kIG91dCBvZiB0aGUgY3VycmVudCBzdGFjay4KICAg
ICAgICAgQ09ERUJMT0NLX0xPR19FVkVOVChjb2RlQmxvY2ssICJkZWxheU9wdGltaXplVG9ERkci
LCAoIlRlcm1pbmF0aW5nIGN1cnJlbnQgZXhlY3V0aW9uIikpOwogICAgICAgICB1cGRhdGVBbGxQ
cmVkaWN0aW9uc0FuZE9wdGltaXplQWZ0ZXJXYXJtVXAoY29kZUJsb2NrKTsKLSAgICAgICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSwgZW5jb2RlUmVzdWx0KG51bGxwdHIsIG51bGxwdHIpKTsKKyAg
ICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChudWxscHRyLCBudWxscHRyKTsKICAgICB9CiAKICAg
ICBEZWJ1Z2dlciogZGVidWdnZXIgPSBjb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT5kZWJ1Z2dl
cigpOwogICAgIGlmIChVTkxJS0VMWShkZWJ1Z2dlciAmJiAoZGVidWdnZXItPmlzU3RlcHBpbmco
KSB8fCBjb2RlQmxvY2stPmJhc2VsaW5lQWx0ZXJuYXRpdmUoKS0+aGFzRGVidWdnZXJSZXF1ZXN0
cygpKSkpIHsKICAgICAgICAgQ09ERUJMT0NLX0xPR19FVkVOVChjb2RlQmxvY2ssICJkZWxheU9w
dGltaXplVG9ERkciLCAoImRlYnVnZ2VyIGlzIHN0ZXBwaW5nIG9yIGhhcyByZXF1ZXN0cyIpKTsK
ICAgICAgICAgdXBkYXRlQWxsUHJlZGljdGlvbnNBbmRPcHRpbWl6ZUFmdGVyV2FybVVwKGNvZGVC
bG9jayk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGVuY29kZVJlc3VsdChudWxs
cHRyLCBudWxscHRyKSk7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQobnVsbHB0ciwgbnVs
bHB0cik7CiAgICAgfQogCiAgICAgaWYgKGNvZGVCbG9jay0+bV9zaG91bGRBbHdheXNCZUlubGlu
ZWQpIHsKICAgICAgICAgQ09ERUJMT0NLX0xPR19FVkVOVChjb2RlQmxvY2ssICJkZWxheU9wdGlt
aXplVG9ERkciLCAoInNob3VsZCBhbHdheXMgYmUgaW5saW5lZCIpKTsKICAgICAgICAgdXBkYXRl
QWxsUHJlZGljdGlvbnNBbmRPcHRpbWl6ZUFmdGVyV2FybVVwKGNvZGVCbG9jayk7CiAgICAgICAg
IGRhdGFMb2dMbklmKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSwgIkNob29zaW5nIG5vdCB0byBvcHRp
bWl6ZSAiLCAqY29kZUJsb2NrLCAiIHlldCwgYmVjYXVzZSBtX3Nob3VsZEFsd2F5c0JlSW5saW5l
ZCA9PSB0cnVlLiIpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBlbmNvZGVSZXN1
bHQobnVsbHB0ciwgbnVsbHB0cikpOworICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KG51bGxw
dHIsIG51bGxwdHIpOwogICAgIH0KIAogICAgIC8vIFRoZSBjYWxsIHRvIEpJVFdvcmtsaXN0Ojpj
b21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JWTSgpIHdpbGwgY29tcGxldGUgYWxsIHJlYWR5CkBAIC0y
ODg3LDcgKzI3NTAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT3B0aW1p
emUsIFVHUFJQYWlyLCAoVk0qIHZtUG9pbnRlciwgdWludDMyX3QgYgogICAgICAgICAvLyByZXBs
YWNlbWVudC4KICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvZGVCbG9jay0+aGFzT3B0aW1pemVk
UmVwbGFjZW1lbnQoKSk7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0T3B0aW1pemF0aW9uVGhyZXNo
b2xkQmFzZWRPbkNvbXBpbGF0aW9uUmVzdWx0KENvbXBpbGF0aW9uRGVmZXJyZWQpOwotICAgICAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBlbmNvZGVSZXN1bHQobnVsbHB0ciwgbnVsbHB0cikp
OworICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KG51bGxwdHIsIG51bGxwdHIpOwogICAgIH0K
IAogICAgIGlmICh3b3JrbGlzdFN0YXRlID09IEpJVFdvcmtsaXN0OjpDb21waWxlZCkgewpAQCAt
MjkwMCw3ICsyNzYzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9wdGlt
aXplLCBVR1BSUGFpciwgKFZNKiB2bVBvaW50ZXIsIHVpbnQzMl90IGIKICAgICAgICAgICAgIENP
REVCTE9DS19MT0dfRVZFTlQoY29kZUJsb2NrLCAiZGVsYXlPcHRpbWl6ZVRvREZHIiwgKCJjb21w
aWxlZCBhbmQgZmFpbGVkIikpOwogICAgICAgICAgICAgY29kZUJsb2NrLT51cGRhdGVBbGxQcmVk
aWN0aW9ucygpOwogICAgICAgICAgICAgZGF0YUxvZ0xuSWYoT3B0aW9uczo6dmVyYm9zZU9TUigp
LCAiQ29kZSBibG9jayAiLCAqY29kZUJsb2NrLCAiIHdhcyBjb21waWxlZCBidXQgaXQgZG9lc24n
dCBoYXZlIGFuIG9wdGltaXplZCByZXBsYWNlbWVudC4iKTsKLSAgICAgICAgICAgIE9QRVJBVElP
Tl9SRVRVUk4oc2NvcGUsIGVuY29kZVJlc3VsdChudWxscHRyLCBudWxscHRyKSk7CisgICAgICAg
ICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KG51bGxwdHIsIG51bGxwdHIpOwogICAgICAgICB9CiAg
ICAgfSBlbHNlIGlmIChjb2RlQmxvY2stPmhhc09wdGltaXplZFJlcGxhY2VtZW50KCkpIHsKICAg
ICAgICAgQ29kZUJsb2NrKiByZXBsYWNlbWVudCA9IGNvZGVCbG9jay0+cmVwbGFjZW1lbnQoKTsK
QEAgLTI5MjQsMTQgKzI3ODcsMTQgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk9wdGltaXplLCBVR1BSUGFpciwgKFZNKiB2bVBvaW50ZXIsIHVpbnQzMl90IGIKICAgICAgICAg
ICAgICAgICAiVHJpZ2dlcmluZyByZW9wdGltaXphdGlvbiBvZiAiLCBjb2RlQmxvY2ssCiAgICAg
ICAgICAgICAgICAgIigiLCByZXBsYWNlbWVudCwgIikgKGluIGxvb3ApLiIpOwogICAgICAgICAg
ICAgcmVwbGFjZW1lbnQtPmpldHRpc29uKFByb2ZpbGVyOjpKZXR0aXNvbkR1ZVRvQmFzZWxpbmVM
b29wUmVvcHRpbWl6YXRpb25UcmlnZ2VyLCBDb3VudFJlb3B0aW1pemF0aW9uKTsKLSAgICAgICAg
ICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGVuY29kZVJlc3VsdChudWxscHRyLCBudWxscHRy
KSk7CisgICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KG51bGxwdHIsIG51bGxwdHIpOwog
ICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKCFjb2RlQmxvY2stPnNob3VsZE9w
dGltaXplTm93RnJvbUJhc2VsaW5lKCkpIHsKICAgICAgICAgICAgIGRhdGFMb2dMbklmKE9wdGlv
bnM6OnZlcmJvc2VPU1IoKSwKICAgICAgICAgICAgICAgICAiRGVsYXlpbmcgb3B0aW1pemF0aW9u
IGZvciAiLCAqY29kZUJsb2NrLAogICAgICAgICAgICAgICAgICIgYmVjYXVzZSBvZiBpbnN1ZmZp
Y2llbnQgcHJvZmlsaW5nLiIpOwotICAgICAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
ZW5jb2RlUmVzdWx0KG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICAgICAgICAgIHJldHVybiBlbmNv
ZGVSZXN1bHQobnVsbHB0ciwgbnVsbHB0cik7CiAgICAgICAgIH0KIAogICAgICAgICBkYXRhTG9n
TG5JZihPcHRpb25zOjp2ZXJib3NlT1NSKCksICJUcmlnZ2VyaW5nIG9wdGltaXplZCBjb21waWxh
dGlvbiBvZiAiLCAqY29kZUJsb2NrKTsKQEAgLTI5NTcsNyArMjgyMCw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25PcHRpbWl6ZSwgVUdQUlBhaXIsIChWTSogdm1Qb2ludGVy
LCB1aW50MzJfdCBiCiAgICAgICAgIAogICAgICAgICBpZiAocmVzdWx0ICE9IENvbXBpbGF0aW9u
U3VjY2Vzc2Z1bCkgewogICAgICAgICAgICAgQ09ERUJMT0NLX0xPR19FVkVOVChjb2RlQmxvY2ss
ICJkZWxheU9wdGltaXplVG9ERkciLCAoImNvbXBpbGF0aW9uIGZhaWxlZCIpKTsKLSAgICAgICAg
ICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGVuY29kZVJlc3VsdChudWxscHRyLCBudWxscHRy
KSk7CisgICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KG51bGxwdHIsIG51bGxwdHIpOwog
ICAgICAgICB9CiAgICAgfQogICAgIApAQCAtMjk3Miw3ICsyODM1LDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9wdGltaXplLCBVR1BSUGFpciwgKFZNKiB2bVBvaW50ZXIs
IHVpbnQzMl90IGIKICAgICAgICAgY29kZUJsb2NrLT51bmxpbmtlZENvZGVCbG9jaygpLT5zZXRE
aWRPcHRpbWl6ZShUcmlTdGF0ZTo6VHJ1ZSk7CiAgICAgICAgIHZvaWQqIHRhcmdldFBDID0gdW50
YWdDb2RlUHRyPEpJVFRodW5rUHRyVGFnPih2bS5nZXRDVElTdHViKERGRzo6b3NyRW50cnlUaHVu
a0dlbmVyYXRvcikuY29kZSgpLnRhZ2dlZFB0cigpKTsKICAgICAgICAgdGFyZ2V0UEMgPSB0YWdD
b2RlUHRyV2l0aFN0YWNrUG9pbnRlckZvckpJVENhbGwodGFyZ2V0UEMsIGNhbGxGcmFtZSk7Ci0g
ICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGVuY29kZVJlc3VsdCh0YXJnZXRQQywgZGF0
YUJ1ZmZlcikpOworICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KHRhcmdldFBDLCBkYXRhQnVm
ZmVyKTsKICAgICB9CiAKICAgICBkYXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3NlT1NSKCksCkBA
IC0yOTk4LDcgKzI4NjEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT3B0
aW1pemUsIFVHUFJQYWlyLCAoVk0qIHZtUG9pbnRlciwgdWludDMyX3QgYgogICAgICAgICAgICAg
IlRyaWdnZXJpbmcgcmVvcHRpbWl6YXRpb24gb2YgIiwgY29kZUJsb2NrLCAiIC0+ICIsCiAgICAg
ICAgICAgICBjb2RlQmxvY2stPnJlcGxhY2VtZW50KCksICIgKGFmdGVyIE9TUiBmYWlsKS4iKTsK
ICAgICAgICAgb3B0aW1pemVkQ29kZUJsb2NrLT5qZXR0aXNvbihQcm9maWxlcjo6SmV0dGlzb25E
dWVUb0Jhc2VsaW5lTG9vcFJlb3B0aW1pemF0aW9uVHJpZ2dlck9uT1NSRW50cnlGYWlsLCBDb3Vu
dFJlb3B0aW1pemF0aW9uKTsKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgZW5jb2Rl
UmVzdWx0KG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChu
dWxscHRyLCBudWxscHRyKTsKICAgICB9CiAKICAgICAvLyBPU1IgZmFpbGVkIHRoaXMgdGltZSwg
YnV0IGl0IG1pZ2h0IHN1Y2NlZWQgbmV4dCB0aW1lISBMZXQgdGhlIGNvZGUgcnVuIGEgYml0CkBA
IC0zMDA2LDcgKzI4NjksNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT3B0
aW1pemUsIFVHUFJQYWlyLCAoVk0qIHZtUG9pbnRlciwgdWludDMyX3QgYgogICAgIGNvZGVCbG9j
ay0+b3B0aW1pemVBZnRlcldhcm1VcCgpOwogICAgIAogICAgIENPREVCTE9DS19MT0dfRVZFTlQo
Y29kZUJsb2NrLCAiZGVsYXlPcHRpbWl6ZVRvREZHIiwgKCJPU1IgZmFpbGVkIikpOwotICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUsIGVuY29kZVJlc3VsdChudWxscHRyLCBudWxscHRyKSk7Cisg
ICAgcmV0dXJuIGVuY29kZVJlc3VsdChudWxscHRyLCBudWxscHRyKTsKIH0KIAogSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaEFuZFZhbHVlUHJvZmls
ZSwgVUdQUlBhaXIsIChWTSogdm1Qb2ludGVyLCB1aW50MzJfdCBieXRlY29kZUluZGV4Qml0cykp
CkBAIC0zMDE0LDE5ICsyODc3LDE4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25UcnlPU1JFbnRlckF0Q2F0Y2hBbmRWYWx1ZVByb2ZpbGUsIFVHUFJQYWlyLCAoCiAgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKICAgICBCeXRlY29kZUluZGV4IGJ5dGVjb2RlSW5kZXggPSBCeXRlY29kZUluZGV4Ojpm
cm9tQml0cyhieXRlY29kZUluZGV4Qml0cyk7CiAKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9
IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgQ29kZUJsb2NrKiBvcHRpbWl6ZWRSZXBsYWNl
bWVudCA9IGNvZGVCbG9jay0+cmVwbGFjZW1lbnQoKTsKICAgICBpZiAoVU5MSUtFTFkoIW9wdGlt
aXplZFJlcGxhY2VtZW50KSkKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgZW5jb2Rl
UmVzdWx0KG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChu
dWxscHRyLCBudWxscHRyKTsKIAogICAgIHN3aXRjaCAob3B0aW1pemVkUmVwbGFjZW1lbnQtPmpp
dFR5cGUoKSkgewogICAgIGNhc2UgSklUVHlwZTo6REZHSklUOgogICAgIGNhc2UgSklUVHlwZTo6
RlRMSklUOiB7CiAgICAgICAgIENvZGVQdHI8RXhjZXB0aW9uSGFuZGxlclB0clRhZz4gZW50cnkg
PSBERkc6OnByZXBhcmVDYXRjaE9TUkVudHJ5KHZtLCBjYWxsRnJhbWUsIGNvZGVCbG9jaywgb3B0
aW1pemVkUmVwbGFjZW1lbnQsIGJ5dGVjb2RlSW5kZXgpOwotICAgICAgICBPUEVSQVRJT05fUkVU
VVJOKHNjb3BlLCBlbmNvZGVSZXN1bHQoZW50cnkudGFnZ2VkUHRyPGNoYXIqPigpLCBvcHRpbWl6
ZWRSZXBsYWNlbWVudCkpOworICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KGVudHJ5LnRhZ2dl
ZFB0cjxjaGFyKj4oKSwgb3B0aW1pemVkUmVwbGFjZW1lbnQpOwogICAgIH0KICAgICBkZWZhdWx0
OgogICAgICAgICBicmVhazsKQEAgLTMwMzksNyArMjkwMSw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0Y2hBbmRWYWx1ZVByb2ZpbGUsIFVHUFJQ
YWlyLCAoCiAgICAgICAgIHByb2ZpbGUubV9idWNrZXRzWzBdID0gSlNWYWx1ZTo6ZW5jb2RlKGNh
bGxGcmFtZS0+dW5jaGVja2VkUihwcm9maWxlLm1fb3BlcmFuZCkuanNWYWx1ZSgpKTsKICAgICB9
KTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGVuY29kZVJlc3VsdChudWxscHRyLCBu
dWxscHRyKSk7CisgICAgcmV0dXJuIGVuY29kZVJlc3VsdChudWxscHRyLCBudWxscHRyKTsKIH0K
IAogI2VuZGlmCkBAIC0zMDY4LDE0ICsyOTMwLDEyIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRHZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlz
T2JqZWN0KCkpOwogICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsK
IAogICAgIEFTU0VSVChnZXR0ZXItPmlzT2JqZWN0KCkpOwogICAgIGJhc2VPYmotPnB1dEdldHRl
cihnbG9iYWxPYmplY3QsIHVpZCwgZ2V0dGVyLCBvcHRpb25zKTsKLSAgICBPUEVSQVRJT05fUkVU
VVJOKHNjb3BlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFNl
dHRlckJ5SWQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9i
amVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIHNl
dHRlcikpCkBAIC0zMDgzLDE0ICsyOTQzLDEyIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRTZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2Jq
ZWN0KCkpOwogICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKIAog
ICAgIEFTU0VSVChzZXR0ZXItPmlzT2JqZWN0KCkpOwogICAgIGJhc2VPYmotPnB1dFNldHRlcihn
bG9iYWxPYmplY3QsIHVpZCwgc2V0dGVyLCBvcHRpb25zKTsKLSAgICBPUEVSQVRJT05fUkVUVVJO
KHNjb3BlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRl
ckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlND
ZWxsKiBnZXR0ZXIpKQpAQCAtMzA5OCwxMCArMjk1Niw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgcHV0QWNjZXNzb3JCeVZhbChnbG9iYWxP
YmplY3QsIGFzT2JqZWN0KGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCks
IGF0dHJpYnV0ZSwgYXNPYmplY3QoZ2V0dGVyKSwgQWNjZXNzb3JUeXBlOjpHZXR0ZXIpOwotICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0NlbGwqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMy
X3QgYXR0cmlidXRlLCBKU0NlbGwqIHNldHRlcikpCkBAIC0zMTA5LDEwICsyOTY1LDggQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5VmFsLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
LSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBwdXRBY2Nl
c3NvckJ5VmFsKGdsb2JhbE9iamVjdCwgYXNPYmplY3QoYmFzZSksIEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkU3Vic2NyaXB0KSwgYXR0cmlidXRlLCBhc09iamVjdChzZXR0ZXIpLCBBY2Nlc3NvclR5
cGU6OlNldHRlcik7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9CiAKICNpZiBVU0Uo
SlNWQUxVRTY0KQpAQCAtMzEyMSw3ICsyOTc1LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBBU1NFUlQob2JqZWN0ICYmIG9iamVjdC0+aXNP
YmplY3QoKSk7CiAgICAgSlNPYmplY3QqIGJhc2VPYmplY3QgPSBhc09iamVjdChvYmplY3QpOwpA
QCAtMzEzMSw3ICsyOTg0LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICBBU1NFUlQo
Z2V0dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzT2JqZWN0KCkpOwogICAgIEdldHRlclNldHRl
ciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0
ZXIsIHNldHRlcik7CiAgICAgQ29tbW9uU2xvd1BhdGhzOjpwdXREaXJlY3RBY2Nlc3NvcldpdGhS
ZWlmeSh2bSwgZ2xvYmFsT2JqZWN0LCBiYXNlT2JqZWN0LCB1aWQsIGFjY2Vzc29yLCBhdHRyaWJ1
dGUpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUpOwogfQogCiAjZWxzZQpAQCAtMzE0MCw3
ICsyOTkyLDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNl
dHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKICAgICBBU1NFUlQob2JqZWN0ICYmIG9iamVjdC0+aXNPYmplY3QoKSk7CiAgICAgSlNPYmpl
Y3QqIGJhc2VPYmplY3QgPSBhc09iamVjdChvYmplY3QpOwpAQCAtMzE1MCw3ICszMDAxLDYgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICBKU09iamVjdCogc2V0dGVyID0gc2V0dGVyQ2Vs
bCA/IHNldHRlckNlbGwtPmdldE9iamVjdCgpIDogbnVsbHB0cjsKICAgICBHZXR0ZXJTZXR0ZXIq
IGFjY2Vzc29yID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgZ2V0dGVy
LCBzZXR0ZXIpOwogICAgIENvbW1vblNsb3dQYXRoczo6cHV0RGlyZWN0QWNjZXNzb3JXaXRoUmVp
Znkodm0sIGdsb2JhbE9iamVjdCwgYmFzZU9iamVjdCwgdWlkLCBhY2Nlc3NvciwgYXR0cmlidXRl
KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKIH0KICNlbmRpZgogCkBAIC0zMTU5LDE0
ICszMDA5LDEzIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnN0YW5jZU9m
Q3VzdG9tLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwog
ICAgIEpTVmFsdWUgaGFzSW5zdGFuY2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkSGFz
SW5zdGFuY2UpOwogCiAgICAgaWYgKGNvbnN0cnVjdG9yLT5oYXNJbnN0YW5jZShnbG9iYWxPYmpl
Y3QsIHZhbHVlLCBoYXNJbnN0YW5jZVZhbHVlKSkKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihz
Y29wZSwgMSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgMCk7CisgICAgICAgIHJldHVy
biAxOworICAgIHJldHVybiAwOwogfQogCiAjaWYgQ1BVKEFSTTY0KSB8fCAoQ1BVKFg4Nl82NCkg
JiYgIU9TKFdJTkRPV1MpKQpAQCAtMzE5MywxMyArMzA0MiwxMyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0b3JOZXh0VHJ5RmFzdCwgVUdQUlBhaXIsIChKU0dsb2Jh
bE9iamVjdAogICAgICAgICBpbmRleFNsb3Quc2V0V2l0aG91dFdyaXRlQmFycmllcihqc051bWJl
cihpbmRleCArIDEpKTsKICAgICAgICAgQVNTRVJUKGluZGV4ID09IHN0YXRpY19jYXN0PHVuc2ln
bmVkPihpbmRleCkpOwogICAgICAgICB2YWx1ZSA9IGFycmF5LT5nZXRJbmRleChnbG9iYWxPYmpl
Y3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbmRleCkpOwotICAgICAgICBPUEVSQVRJT05fUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbWFrZVVHUFJQYWlyKDAsIDApKTsKKyAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBO
byBuZWVkIGZvciBhIGJhcnJpZXIgaGVyZSBiZWNhdXNlIHdlIGtub3cgdGhpcyBpcyBhIHByaW1p
dGl2ZS4KICAgICAgICAgaW5kZXhTbG90LnNldFdpdGhvdXRXcml0ZUJhcnJpZXIoanNOdW1iZXIo
LTEpKTsKICAgICB9CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBtYWtlVUdQUlBhaXIo
SlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihkb25lKSksIEpTVmFsdWU6OmVuY29kZSh2YWx1ZSkp
KTsKKyAgICByZXR1cm4gbWFrZVVHUFJQYWlyKEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZG9u
ZSkpLCBKU1ZhbHVlOjplbmNvZGUodmFsdWUpKTsKIH0KIAogI2VuZGlmCkBAIC0zMjc4LDE0ICsz
MTI3LDEzIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbEdhdmVV
cCwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGVkSlNWYWx1CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKICAgICBJQ1Nsb3dQYXRoQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
LCBzdHViSW5mbyk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
CiAgICAgc3R1YkluZm8tPnRvb2tTbG93UGF0aCA9IHRydWU7CiAKICAgICBKU1ZhbHVlIGJhc2VW
YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSk7CiAgICAgSlNWYWx1ZSBzdWJzY3Jp
cHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7CiAKLSAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2V0QnlWYWwoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIHByb2ZpbGUsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0KSkpOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoZ2V0QnlWYWwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIHByb2ZpbGUsIGJh
c2VWYWx1ZSwgc3Vic2NyaXB0KSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25HZXRCeVZhbE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEFycmF5UHJvZmls
ZSogcHJvZmlsZSkpCkBAIC0zMzExLDIxICszMTU5LDIxIEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEVuY29kZWRK
U1ZhCiAKICAgICBpZiAoYmFzZVZhbHVlLmlzQ2VsbCgpICYmIENhY2hlYWJsZUlkZW50aWZpZXI6
OmlzQ2FjaGVhYmxlSWRlbnRpZmllckNlbGwoc3Vic2NyaXB0KSkgewogICAgICAgICBjb25zdCBJ
ZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IHN1YnNjcmlwdC50b1Byb3BlcnR5S2V5KGdsb2JhbE9i
amVjdCk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2Rl
ZEpTVmFsdWUoKSk7CiAgICAgICAgIGlmIChzdWJzY3JpcHQuaXNTeW1ib2woKSB8fCAhcGFyc2VJ
bmRleChwcm9wZXJ0eU5hbWUpKSB7CiAgICAgICAgICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAg
ICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoYmFzZVZhbHVl
LmdldFByb3BlcnR5U2xvdChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgWyZdIChib29sIGZv
dW5kLCBQcm9wZXJ0eVNsb3QmIHNsb3QpIC0+IEpTVmFsdWUgeworICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGdsb2JhbE9iamVjdCwg
cHJvcGVydHlOYW1lLCBbJl0gKGJvb2wgZm91bmQsIFByb3BlcnR5U2xvdCYgc2xvdCkgLT4gSlNW
YWx1ZSB7CiAgICAgICAgICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25HZXRCeVZh
bE9wdGltaXplLCBiYXNlVmFsdWUuY2xhc3NJbmZvT3JOdWxsKCksIHByb3BlcnR5TmFtZSwgYmFz
ZVZhbHVlID09IHNsb3Quc2xvdEJhc2UoKSkpOyAKICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIgPSBDYWNoZWFibGVJZGVudGlm
aWVyOjpjcmVhdGVGcm9tQ2VsbChzdWJzY3JpcHQuYXNDZWxsKCkpOwogICAgICAgICAgICAgICAg
IGlmIChzdHViSW5mby0+Y29uc2lkZXJSZXBhdGNoaW5nQ2FjaGVCeSh2bSwgY29kZUJsb2NrLCBi
YXNlVmFsdWUuc3RydWN0dXJlT3JOdWxsKCksIGlkZW50aWZpZXIpKQogICAgICAgICAgICAgICAg
ICAgICByZXBhdGNoR2V0QnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VWYWx1ZSwgaWRl
bnRpZmllciwgc2xvdCwgKnN0dWJJbmZvLCBHZXRCeUtpbmQ6OkJ5VmFsKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gZm91bmQgPyBzbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgcHJvcGVydHlO
YW1lKSA6IGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgICAgICB9KSkpOworICAgICAgICAgICAgfSkp
OwogICAgICAgICB9CiAgICAgfQogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKGdldEJ5VmFsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBwcm9maWxlLCBiYXNl
VmFsdWUsIHN1YnNjcmlwdCkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFs
dWU6OmVuY29kZShnZXRCeVZhbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgcHJvZmlsZSwgYmFz
ZVZhbHVlLCBzdWJzY3JpcHQpKSk7CiB9CiAKIEFMV0FZU19JTkxJTkUgc3RhdGljIEpTVmFsdWUg
Z2V0QnlWYWxXaXRoVGhpcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUsIEpTVmFsdWUgYmFzZVZhbHVl
LCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB0aGlzVmFsdWUpCkBAIC0zNDgzLDEwICszMzMx
LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsTWVnYW1vcnBo
aWMsIEVuY29kZWRKU1ZhbHVlLCAoRW5jb2RlZEoKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwogICAgIElDU2xvd1BhdGhDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUsIHN0
dWJJbmZvKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAg
ICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSk7Ci0gICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdldEJ5VmFsTWVnYW1vcnBo
aWMoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLCBzdHViSW5mbywgcHJvZmlsZSwgYmFzZVZh
bHVlLCBiYXNlVmFsdWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwgR2V0QnlL
aW5kOjpCeVZhbCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdldEJ5VmFsTWVnYW1v
cnBoaWMoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLCBzdHViSW5mbywgcHJvZmlsZSwgYmFz
ZVZhbHVlLCBiYXNlVmFsdWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwgR2V0
QnlLaW5kOjpCeVZhbCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
R2V0QnlWYWxNZWdhbW9ycGhpY0dlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRTdWJzY3JpcHQpKQpAQCAtMzQ5NCw5ICszMzQxLDggQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsTWVnYW1vcnBoaWNHZW5lcmljLCBFbmNvZGVk
SlNWYWx1ZSwgKEoKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShnZXRCeVZhbE1lZ2Ftb3JwaGljKGdsb2JhbE9iamVjdCwgdm0s
IGNhbGxGcmFtZSwgbnVsbHB0ciwgbnVsbHB0ciwgYmFzZVZhbHVlLCBiYXNlVmFsdWUsIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwgR2V0QnlLaW5kOjpCeVZhbCkpKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdldEJ5VmFsTWVnYW1vcnBoaWMoZ2xvYmFsT2JqZWN0LCB2
bSwgY2FsbEZyYW1lLCBudWxscHRyLCBudWxscHRyLCBiYXNlVmFsdWUsIGJhc2VWYWx1ZSwgSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBHZXRCeUtpbmQ6OkJ5VmFsKSk7CiB9CiAK
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSkpCkBAIC0zNTEzLDI2
ICszMzU5LDI2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbEdl
bmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplCiAgICAgICAgIEpTQ2VsbCogYmFz
ZSA9IGJhc2VWYWx1ZS5hc0NlbGwoKTsKIAogICAgICAgICBpZiAoc3RkOjpvcHRpb25hbDx1aW50
MzJfdD4gaW5kZXggPSBwcm9wZXJ0eS50cnlHZXRBc1VpbnQzMkluZGV4KCkpCi0gICAgICAgICAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBnZXRCeVZhbFdpdGhJbmRleChnbG9iYWxPYmplY3Qs
IGJhc2UsICppbmRleCkpOworICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBn
ZXRCeVZhbFdpdGhJbmRleChnbG9iYWxPYmplY3QsIGJhc2UsICppbmRleCkpOwogCiAgICAgICAg
IGlmIChwcm9wZXJ0eS5pc1N0cmluZygpKSB7CiAgICAgICAgICAgICBTdHJ1Y3R1cmUmIHN0cnVj
dHVyZSA9ICpiYXNlLT5zdHJ1Y3R1cmUoKTsKICAgICAgICAgICAgIGlmIChKU0NlbGw6OmNhblVz
ZUZhc3RHZXRPd25Qcm9wZXJ0eShzdHJ1Y3R1cmUpKSB7CiAgICAgICAgICAgICAgICAgYXV0byBl
eGlzdGluZ0F0b21TdHJpbmcgPSBhc1N0cmluZyhwcm9wZXJ0eSktPnRvRXhpc3RpbmdBdG9tU3Ry
aW5nKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgICAgICAgICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgICAgICAgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgICAgICAgICAgICAg
IGlmICghZXhpc3RpbmdBdG9tU3RyaW5nLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmIChKU1ZhbHVlIHJlc3VsdCA9IGJhc2UtPmZhc3RHZXRPd25Qcm9wZXJ0eSh2bSwgc3RydWN0
dXJlLCBleGlzdGluZ0F0b21TdHJpbmcuaW1wbCgpKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKICAgICBiYXNl
VmFsdWUucmVxdWlyZU9iamVjdENvZXJjaWJsZShnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElP
Tl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBhdXRvIHByb3Bl
cnR5TmFtZSA9IHByb3BlcnR5LnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKLSAgICBPUEVS
QVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGJhc2VWYWx1ZS5nZXQoZ2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1Zh
bHVlOjplbmNvZGUoYmFzZVZhbHVlLmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSkpKTsK
IH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsV2l0aFRoaXNH
YXZlVXAsIEVuY29kZWRKU1ZhbHVlLCAoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IEFycmF5UHJvZmlsZSogcHJvZmlsZSkpCkBAIC0zNTQwLDcgKzMzODYsNiBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxXaXRoVGhpc0dhdmVVcCwgRW5jb2RlZEpT
VmFsdWUsIChFbmNvZAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSUNTbG93UGF0
aENhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSwgc3R1YkluZm8pOwotICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIHN0dWJJbmZvLT50b29r
U2xvd1BhdGggPSB0cnVlOwogCkBAIC0zNTQ4LDcgKzMzOTMsNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxXaXRoVGhpc0dhdmVVcCwgRW5jb2RlZEpTVmFsdWUs
IChFbmNvZAogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRT
dWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRUaGlzKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShn
ZXRCeVZhbFdpdGhUaGlzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBwcm9maWxlLCBiYXNlVmFs
dWUsIHN1YnNjcmlwdCwgdGhpc1ZhbHVlKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Z2V0QnlWYWxXaXRoVGhpcyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgcHJvZmlsZSwgYmFzZVZh
bHVlLCBzdWJzY3JpcHQsIHRoaXNWYWx1ZSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0QnlWYWxXaXRoVGhpc09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBBcnJheVByb2ZpbGUqIHByb2ZpbGUpKQpA
QCAtMzU3NiwyMSArMzQyMSwyMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
R2V0QnlWYWxXaXRoVGhpc09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEVuYwogICAgIFByb3Bl
cnR5U2xvdCBzbG90KHRoaXNWYWx1ZSwgUHJvcGVydHlTbG90OjpQcm9wZXJ0eVNsb3Q6OkludGVy
bmFsTWV0aG9kVHlwZTo6R2V0KTsKICAgICBpZiAoYmFzZVZhbHVlLmlzQ2VsbCgpICYmIENhY2hl
YWJsZUlkZW50aWZpZXI6OmlzQ2FjaGVhYmxlSWRlbnRpZmllckNlbGwoc3Vic2NyaXB0KSkgewog
ICAgICAgICBjb25zdCBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IHN1YnNjcmlwdC50b1Byb3Bl
cnR5S2V5KGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgICAgIGlmIChzdWJzY3JpcHQuaXNTeW1i
b2woKSB8fCAhcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CiAgICAgICAgICAgICBzY29wZS5y
ZWxlYXNlKCk7Ci0gICAgICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjpl
bmNvZGUoYmFzZVZhbHVlLmdldFByb3BlcnR5U2xvdChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFt
ZSwgc2xvdCwgWyZdIChib29sIGZvdW5kLCBQcm9wZXJ0eVNsb3QmIHNsb3QpIC0+IEpTVmFsdWUg
eworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0UHJvcGVy
dHlTbG90KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90LCBbJl0gKGJvb2wgZm91bmQs
IFByb3BlcnR5U2xvdCYgc2xvdCkgLT4gSlNWYWx1ZSB7CiAgICAgICAgICAgICAgICAgTE9HX0lD
KChJQ0V2ZW50OjpPcGVyYXRpb25HZXRCeVZhbFdpdGhUaGlzT3B0aW1pemUsIGJhc2VWYWx1ZS5j
bGFzc0luZm9Pck51bGwoKSwgcHJvcGVydHlOYW1lLCBiYXNlVmFsdWUgPT0gc2xvdC5zbG90QmFz
ZSgpKSk7CiAKICAgICAgICAgICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIg
PSBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tQ2VsbChzdWJzY3JpcHQuYXNDZWxsKCkp
OwogICAgICAgICAgICAgICAgIGlmIChzdHViSW5mby0+Y29uc2lkZXJSZXBhdGNoaW5nQ2FjaGVC
eSh2bSwgY29kZUJsb2NrLCBiYXNlVmFsdWUuc3RydWN0dXJlT3JOdWxsKCksIGlkZW50aWZpZXIp
KQogICAgICAgICAgICAgICAgICAgICByZXBhdGNoR2V0QnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxv
Y2ssIGJhc2VWYWx1ZSwgaWRlbnRpZmllciwgc2xvdCwgKnN0dWJJbmZvLCBHZXRCeUtpbmQ6OkJ5
VmFsV2l0aFRoaXMpOwogICAgICAgICAgICAgICAgIHJldHVybiBmb3VuZCA/IHNsb3QuZ2V0VmFs
dWUoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpIDoganNVbmRlZmluZWQoKTsKLSAgICAgICAg
ICAgIH0pKSk7CisgICAgICAgICAgICB9KSk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBPUEVS
QVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2V0QnlWYWxXaXRoVGhpcyhnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSwgcHJvZmlsZSwgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIHRoaXNW
YWx1ZSkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShn
ZXRCeVZhbFdpdGhUaGlzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBwcm9maWxlLCBiYXNlVmFs
dWUsIHN1YnNjcmlwdCwgdGhpc1ZhbHVlKSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0QnlWYWxXaXRoVGhpc0dlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMp
KQpAQCAtMzYwOCwyNyArMzQ1MywyNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0QnlWYWxXaXRoVGhpc0dlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbAogICAgICAg
ICBKU0NlbGwqIGJhc2UgPSBiYXNlVmFsdWUuYXNDZWxsKCk7CiAKICAgICAgICAgaWYgKHN0ZDo6
b3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcHJvcGVydHkudHJ5R2V0QXNVaW50MzJJbmRleCgp
KQotICAgICAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgZ2V0QnlWYWxXaXRoSW5kZXhB
bmRUaGlzKGdsb2JhbE9iamVjdCwgYmFzZSwgKmluZGV4LCB0aGlzVmFsdWUpKTsKKyAgICAgICAg
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgZ2V0QnlWYWxXaXRoSW5kZXhBbmRUaGlzKGds
b2JhbE9iamVjdCwgYmFzZSwgKmluZGV4LCB0aGlzVmFsdWUpKTsKIAogICAgICAgICBpZiAocHJv
cGVydHkuaXNTdHJpbmcoKSkgewogICAgICAgICAgICAgU3RydWN0dXJlJiBzdHJ1Y3R1cmUgPSAq
YmFzZS0+c3RydWN0dXJlKCk7CiAgICAgICAgICAgICBpZiAoSlNDZWxsOjpjYW5Vc2VGYXN0R2V0
T3duUHJvcGVydHkoc3RydWN0dXJlKSkgewogICAgICAgICAgICAgICAgIGF1dG8gZXhpc3RpbmdB
dG9tU3RyaW5nID0gYXNTdHJpbmcocHJvcGVydHkpLT50b0V4aXN0aW5nQXRvbVN0cmluZyhnbG9i
YWxPYmplY3QpOwotICAgICAgICAgICAgICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOwogICAgICAgICAgICAgICAgIGlmICghZXhpc3RpbmdBdG9tU3Ry
aW5nLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIHJlc3VsdCA9
IGJhc2UtPmZhc3RHZXRPd25Qcm9wZXJ0eSh2bSwgc3RydWN0dXJlLCBleGlzdGluZ0F0b21TdHJp
bmcuaW1wbCgpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIE9QRVJBVElPTl9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKICAgICBiYXNlVmFsdWUucmVxdWlyZU9iamVjdENv
ZXJjaWJsZShnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwogICAgIGF1dG8gcHJvcGVydHlOYW1lID0gcHJvcGVydHkudG9Qcm9wZXJ0eUtleShn
bG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBl
bmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwog
ICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXNWYWx1ZSwgUHJvcGVydHlTbG90OjpQcm9wZXJ0eVNs
b3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoYmFzZVZhbHVlLmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFt
ZSwgc2xvdCkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShiYXNlVmFsdWUuZ2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KSkpOwogfQog
CiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxXaXRoVGhpc01lZ2Ft
b3JwaGljLCBFbmNvZGVkSlNWYWx1ZSwgKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZv
LCBBcnJheVByb2ZpbGUqIHByb2ZpbGUpKQpAQCAtMzYzNiw5ICszNDgxLDggQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsV2l0aFRoaXNNZWdhbW9ycGhpYywgRW5j
b2RlZEpTVmFsdWUsICgKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIElDU2xvd1Bh
dGhDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUsIHN0dWJJbmZvKTsKLSAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBPUEVSQVRJT05fUkVU
VVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2V0QnlWYWxNZWdhbW9ycGhpYyhnbG9iYWxPYmpl
Y3QsIHZtLCBjYWxsRnJhbWUsIHN0dWJJbmZvLCBwcm9maWxlLCBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZEJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFRoaXMpLCBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFN1YnNjcmlwdCksIEdldEJ5S2luZDo6QnlWYWxXaXRoVGhpcykpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGdldEJ5VmFsTWVnYW1vcnBoaWMoZ2xvYmFsT2JqZWN0LCB2bSwg
Y2FsbEZyYW1lLCBzdHViSW5mbywgcHJvZmlsZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNl
KSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRUaGlzKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRT
dWJzY3JpcHQpLCBHZXRCeUtpbmQ6OkJ5VmFsV2l0aFRoaXMpKTsKIH0KIAogSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsV2l0aFRoaXNNZWdhbW9ycGhpY0dlbmVyaWMs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRUaGlzKSkKQEAgLTM2NDYsOCArMzQ5MCw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbFdpdGhUaGlzTWVnYW1vcnBoaWNHZW5lcmlj
LCBFbmNvZGVkSlNWCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIE9QRVJBVElPTl9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShnZXRCeVZhbE1lZ2Ftb3JwaGljKGdsb2JhbE9iamVjdCwg
dm0sIGNhbGxGcmFtZSwgbnVsbHB0ciwgbnVsbHB0ciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRC
YXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRUaGlzKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRTdWJzY3JpcHQpLCBHZXRCeUtpbmQ6OkJ5VmFsV2l0aFRoaXMpKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShnZXRCeVZhbE1lZ2Ftb3JwaGljKGdsb2JhbE9iamVjdCwgdm0sIGNhbGxG
cmFtZSwgbnVsbHB0ciwgbnVsbHB0ciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKSwgSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRUaGlzKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3Jp
cHQpLCBHZXRCeUtpbmQ6OkJ5VmFsV2l0aFRoaXMpKTsKIH0KIAogQUxXQVlTX0lOTElORSBzdGF0
aWMgSlNWYWx1ZSBnZXRQcml2YXRlTmFtZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgZmllbGROYW1l
VmFsdWUpCkBAIC0zNzA0LDI0ICszNTQ3LDI0IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRQcml2YXRlTmFtZU9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEVuY29kCiAg
ICAgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIg
ZmllbGROYW1lID0gZmllbGROYW1lVmFsdWUudG9Qcm9wZXJ0eUtleShnbG9iYWxPYmplY3QpOwog
ICAgICAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24oKSB8fCB2bS5oYXNQZW5k
aW5nVGVybWluYXRpb25FeGNlcHRpb24oKSk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgICAgIEFTU0VSVChmaWVsZE5h
bWUuaXNTeW1ib2woKSk7CiAKICAgICAgICAgSlNPYmplY3QqIGJhc2UgPSBqc0Nhc3Q8SlNPYmpl
Y3QqPihiYXNlVmFsdWUuYXNDZWxsKCkpOwogCiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KGJh
c2UsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSk7CiAg
ICAgICAgIGJhc2UtPmdldFByaXZhdGVGaWVsZChnbG9iYWxPYmplY3QsIGZpZWxkTmFtZSwgc2xv
dCk7Ci0gICAgICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVk
SlNWYWx1ZSgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpT
VmFsdWUoKSk7CiAKICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25HZXRQcml2YXRl
TmFtZU9wdGltaXplLCBiYXNlVmFsdWUuY2xhc3NJbmZvT3JOdWxsKCksIGZpZWxkTmFtZSwgdHJ1
ZSkpOwogCiAgICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmllciA9IENhY2hlYWJs
ZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21DZWxsKGZpZWxkTmFtZVZhbHVlLmFzQ2VsbCgpKTsKICAg
ICAgICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlclJlcGF0Y2hpbmdDYWNoZUJ5KHZtLCBjb2RlQmxv
Y2ssIGJhc2VWYWx1ZS5zdHJ1Y3R1cmVPck51bGwoKSwgaWRlbnRpZmllcikpCiAgICAgICAgICAg
ICByZXBhdGNoR2V0QnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VWYWx1ZSwgaWRlbnRp
Zmllciwgc2xvdCwgKnN0dWJJbmZvLCBHZXRCeUtpbmQ6OlByaXZhdGVOYW1lKTsKLSAgICAgICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHNsb3QuZ2V0VmFsdWUoZ2xv
YmFsT2JqZWN0LCBmaWVsZE5hbWUpKSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
c2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGZpZWxkTmFtZSkpOwogICAgIH0KIAotICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShnZXRQcml2YXRlTmFtZShnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBmaWVsZE5hbWVWYWx1ZSkpKTsKKyAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShnZXRQcml2YXRlTmFtZShn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBmaWVsZE5hbWVWYWx1ZSkpKTsKIH0K
IAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lR2F2ZVVw
LCBFbmNvZGVkSlNWYWx1ZSwgKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkRmllbGROYW1lLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pKQpAQCAtMzcyOSwxNCArMzU3MiwxMyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVHYXZlVXAsIEVuY29kZWRK
U1ZhbHVlLCAoRW5jb2RlZAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSUNTbG93
UGF0aENhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSwgc3R1YkluZm8pOwotICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIHN0dWJJbmZvLT50
b29rU2xvd1BhdGggPSB0cnVlOwogCiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFsdWUgZmllbGROYW1lVmFsdWUgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZEZpZWxkTmFtZSk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoZ2V0UHJpdmF0ZU5hbWUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUs
IGJhc2VWYWx1ZSwgZmllbGROYW1lVmFsdWUpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShnZXRQcml2YXRlTmFtZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBmaWVs
ZE5hbWVWYWx1ZSkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
UHJpdmF0ZU5hbWVHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkRmllbGROYW1lKSkKQEAgLTM3NDQsMTIgKzM1ODYsMTEgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2IKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xv
Z3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSk7CiAgICAgSlNWYWx1ZSBmaWVsZE5hbWVWYWx1ZSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkRmllbGROYW1lKTsKIAotICAgIE9QRVJBVElPTl9SRVRV
Uk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShnZXRQcml2YXRlTmFtZShnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgYmFzZVZhbHVlLCBmaWVsZE5hbWVWYWx1ZSkpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGdldFByaXZhdGVOYW1lKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBiYXNlVmFs
dWUsIGZpZWxkTmFtZVZhbHVlKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25HZXRQcml2YXRlTmFtZUJ5SWRHYXZlVXAsIEVuY29kZWRKU1ZhbHVlLCAoRW5jb2RlZEpT
VmFsdWUgYmFzZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvKSkKQEAgLTM3NTksNyArMzYwMCw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRHYXZlVXAsIEVuY29kZWRKU1ZhbHVlLCAo
RW5jCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBJQ1Nsb3dQYXRoQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lLCBzdHViSW5mbyk7Ci0gICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgc3R1YkluZm8tPnRvb2tTbG93UGF0aCA9
IHRydWU7CiAKQEAgLTM3NzEsNyArMzYxMSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRHYXZlVXAsIEVuY29kZWRKU1ZhbHVlLCAoRW5jCiAK
ICAgICBMT0dfSUMoKElDRXZlbnQ6Ok9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZCwgYmFzZVZh
bHVlLmNsYXNzSW5mb09yTnVsbCgpLCBmaWVsZE5hbWUsIHRydWUpKTsKIAotICAgIE9QRVJBVElP
Tl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpKTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25HZXRQcml2YXRlTmFtZUJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGVk
SlNWYWx1ZSBiYXNlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8pKQpAQCAtMzc5MywxNyArMzYzMywxNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkT3B0aW1pemUsIEVuY29kZWRKU1Zh
bHVlLCAoRQogCiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KGJhc2UsIFByb3BlcnR5U2xvdDo6
SW50ZXJuYWxNZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSk7CiAgICAgICAgIGJhc2UtPmdldFBy
aXZhdGVGaWVsZChnbG9iYWxPYmplY3QsIGZpZWxkTmFtZSwgc2xvdCk7Ci0gICAgICAgIE9QRVJB
VElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKICAgICAg
ICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRPcHRpbWl6ZSwg
YmFzZVZhbHVlLmNsYXNzSW5mb09yTnVsbCgpLCBmaWVsZE5hbWUsIHRydWUpKTsKIAogICAgICAg
ICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgICAg
IGlmIChzdHViSW5mby0+Y29uc2lkZXJSZXBhdGNoaW5nQ2FjaGVCeSh2bSwgY29kZUJsb2NrLCBi
YXNlVmFsdWUuc3RydWN0dXJlT3JOdWxsKCksIGlkZW50aWZpZXIpKQogICAgICAgICAgICAgcmVw
YXRjaEdldEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIGlkZW50aWZpZXIs
IHNsb3QsICpzdHViSW5mbywgR2V0QnlLaW5kOjpQcml2YXRlTmFtZUJ5SWQpOwotICAgICAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoc2xvdC5nZXRWYWx1ZShnbG9i
YWxPYmplY3QsIGZpZWxkTmFtZSkpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShz
bG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgZmllbGROYW1lKSk7CiAgICAgfQogCi0gICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdldFByaXZhdGVOYW1lKGdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lLCBiYXNlVmFsdWUsIGZpZWxkTmFtZSkpKTsKKyAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShnZXRQcml2YXRlTmFtZShnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBmaWVsZE5hbWUpKSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRHZW5lcmljLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKQEAgLTM4MTMsNyArMzY1
Myw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5
SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAg
ICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoYmFzZSk7CiAgICAgQ2FjaGVh
YmxlSWRlbnRpZmllciBpZGVudGlmaWVyID0gQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJv
bVJhd0JpdHMocmF3Q2FjaGVhYmxlSWRlbnRpZmllcik7CkBAIC0zODIzLDcgKzM2NjIsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkR2VuZXJp
YywgRW5jb2RlZEpTVmFsdWUsIChKUwogCiAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25H
ZXRQcml2YXRlTmFtZUJ5SWRHZW5lcmljLCBiYXNlVmFsdWUuY2xhc3NJbmZvT3JOdWxsKCksIGZp
ZWxkTmFtZSwgdHJ1ZSkpOwogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0K
IAogc3RhdGljIGJvb2wgZGVsZXRlQnlJZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBW
TSYgdm0sIERlbGV0ZVByb3BlcnR5U2xvdCYgc2xvdCwgSlNWYWx1ZSBiYXNlLCBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudCwgRUNNQU1vZGUgZWNtYU1vZGUpCkBAIC0zODY4LDEyICszNzA3LDExIEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkU2xvcHB5T3B0aW1p
emUsIHNpemVfdCwgKEVuY29kZWRKU1ZhCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBJQ1Nsb3dQYXRoQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lLCBzdHViSW5m
byk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNW
YWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIENhY2hl
YWJsZUlkZW50aWZpZXIgaWRlbnRpZmllciA9IHN0dWJJbmZvLT5pZGVudGlmaWVyKCk7CiAKLSAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBkZWxldGVCeUlkT3B0aW1pemUoZ2xvYmFsT2JqZWN0
LCB2bSwgY2FsbEZyYW1lLCBzdHViSW5mbywgYmFzZVZhbHVlLCBpZGVudGlmaWVyLCBFQ01BTW9k
ZTo6c2xvcHB5KCkpKTsKKyAgICByZXR1cm4gZGVsZXRlQnlJZE9wdGltaXplKGdsb2JhbE9iamVj
dCwgdm0sIGNhbGxGcmFtZSwgc3R1YkluZm8sIGJhc2VWYWx1ZSwgaWRlbnRpZmllciwgRUNNQU1v
ZGU6OnNsb3BweSgpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRl
bGV0ZUJ5SWRTdHJpY3RPcHRpbWl6ZSwgc2l6ZV90LCAoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbykpCkBAIC0zODgxLDEyICszNzE5LDExIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25EZWxldGVCeUlkU3RyaWN0T3B0aW1pemUsIHNpemVfdCwgKEVuY29kZWRKU1ZhCiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBJQ1Nsb3dQYXRoQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lLCBzdHViSW5mbyk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmllciA9
IHN0dWJJbmZvLT5pZGVudGlmaWVyKCk7CiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBk
ZWxldGVCeUlkT3B0aW1pemUoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLCBzdHViSW5mbywg
YmFzZVZhbHVlLCBpZGVudGlmaWVyLCBFQ01BTW9kZTo6c3RyaWN0KCkpKTsKKyAgICByZXR1cm4g
ZGVsZXRlQnlJZE9wdGltaXplKGdsb2JhbE9iamVjdCwgdm0sIGNhbGxGcmFtZSwgc3R1YkluZm8s
IGJhc2VWYWx1ZSwgaWRlbnRpZmllciwgRUNNQU1vZGU6OnN0cmljdCgpKTsKIH0KIAogSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRTbG9wcHlHYXZlVXAsIHNpemVf
dCwgKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pKQpAQCAtMzg5NCwxNCArMzczMSwxMyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlJZFNsb3BweUdhdmVV
cCwgc2l6ZV90LCAoRW5jb2RlZEpTVmFsdQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAg
ICAgSUNTbG93UGF0aENhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSwgc3R1Yklu
Zm8pOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIHN0
dWJJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOwogCiAgICAgQ2FjaGVhYmxlSWRlbnRpZmllciBp
ZGVudGlmaWVyID0gc3R1YkluZm8tPmlkZW50aWZpZXIoKTsKICAgICBJZGVudGlmaWVyIGlkZW50
ID0gSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwgaWRlbnRpZmllci51aWQoKSk7CiAgICAgRGVsZXRl
UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgZGVsZXRlQnlJ
ZChnbG9iYWxPYmplY3QsIHZtLCBzbG90LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpLCBp
ZGVudCwgRUNNQU1vZGU6OnNsb3BweSgpKSk7CisgICAgcmV0dXJuIGRlbGV0ZUJ5SWQoZ2xvYmFs
T2JqZWN0LCB2bSwgc2xvdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKSwgaWRlbnQsIEVD
TUFNb2RlOjpzbG9wcHkoKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25EZWxldGVCeUlkU3RyaWN0R2F2ZVVwLCBzaXplX3QsIChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvKSkKQEAgLTM5MDksMTQgKzM3NDUsMTMgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkRlbGV0ZUJ5SWRTdHJpY3RHYXZlVXAsIHNpemVfdCwgKEVuY29kZWRKU1ZhbHUK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIElDU2xvd1BhdGhDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUsIHN0dWJJbmZvKTsKLSAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBzdHViSW5mby0+dG9va1Nsb3dQYXRoID0gdHJ1
ZTsKIAogICAgIENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmllciA9IHN0dWJJbmZvLT5pZGVu
dGlmaWVyKCk7CiAgICAgSWRlbnRpZmllciBpZGVudCA9IElkZW50aWZpZXI6OmZyb21VaWQodm0s
IGlkZW50aWZpZXIudWlkKCkpOwogICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUsIGRlbGV0ZUJ5SWQoZ2xvYmFsT2JqZWN0LCB2bSwgc2xvdCwg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKSwgaWRlbnQsIEVDTUFNb2RlOjpzdHJpY3QoKSkp
OworICAgIHJldHVybiBkZWxldGVCeUlkKGdsb2JhbE9iamVjdCwgdm0sIHNsb3QsIEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkQmFzZSksIGlkZW50LCBFQ01BTW9kZTo6c3RyaWN0KCkpOwogfQogCiBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlJZFNsb3BweUdlbmVyaWMs
IHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCkBAIC0zOTI0LDEx
ICszNzU5LDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlk
U2xvcHB5R2VuZXJpYywgc2l6ZV90LCAoSlNHbG9iYWxPYmplCiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogICAgIENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmllciA9IENhY2hlYWJsZUlkZW50aWZp
ZXI6OmNyZWF0ZUZyb21SYXdCaXRzKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAgIElkZW50
aWZpZXIgaWRlbnQgPSBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBpZGVudGlmaWVyLnVpZCgpKTsK
ICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3Bl
LCBkZWxldGVCeUlkKGdsb2JhbE9iamVjdCwgdm0sIHNsb3QsIEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkQmFzZSksIGlkZW50LCBFQ01BTW9kZTo6c2xvcHB5KCkpKTsKKyAgICByZXR1cm4gZGVsZXRl
QnlJZChnbG9iYWxPYmplY3QsIHZtLCBzbG90LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2Up
LCBpZGVudCwgRUNNQU1vZGU6OnNsb3BweSgpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRTdHJpY3RHZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90
IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQpAQCAtMzkzNiwxMSArMzc3MCwxMCBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlJZFN0cmljdEdlbmVyaWMsIHNpemVf
dCwgKEpTR2xvYmFsT2JqZQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3Bl
cmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBDYWNoZWFibGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIgPSBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tUmF3Qml0
cyhyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBJZGVudGlmaWVyIGlkZW50ID0gSWRlbnRp
Zmllcjo6ZnJvbVVpZCh2bSwgaWRlbnRpZmllci51aWQoKSk7CiAgICAgRGVsZXRlUHJvcGVydHlT
bG90IHNsb3Q7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgZGVsZXRlQnlJZChnbG9iYWxP
YmplY3QsIHZtLCBzbG90LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpLCBpZGVudCwgRUNN
QU1vZGU6OnN0cmljdCgpKSk7CisgICAgcmV0dXJuIGRlbGV0ZUJ5SWQoZ2xvYmFsT2JqZWN0LCB2
bSwgc2xvdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKSwgaWRlbnQsIEVDTUFNb2RlOjpz
dHJpY3QoKSk7CiB9CiAKIHN0YXRpYyBib29sIGRlbGV0ZUJ5VmFsKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFZNJiB2bSwgRGVsZXRlUHJvcGVydHlTbG90JiBzbG90LCBKU1ZhbHVlIGJh
c2UsIEpTVmFsdWUga2V5LCBFQ01BTW9kZSBlY21hTW9kZSkKQEAgLTM5OTcsMTIgKzM4MzAsMTEg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5VmFsU2xvcHB5T3B0
aW1pemUsIHNpemVfdCwgKEVuY29kZWRKU1YKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIElDU2xvd1BhdGhDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUsIHN0dWJJ
bmZvKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBK
U1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSk7CiAgICAgSlNW
YWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7CiAKLSAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBkZWxldGVCeVZhbE9wdGltaXplKGdsb2JhbE9iamVj
dCwgdm0sIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIHN0dWJJbmZvLCBFQ01BTW9k
ZTo6c2xvcHB5KCkpKTsKKyAgICByZXR1cm4gZGVsZXRlQnlWYWxPcHRpbWl6ZShnbG9iYWxPYmpl
Y3QsIHZtLCBjYWxsRnJhbWUsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCBzdHViSW5mbywgRUNNQU1v
ZGU6OnNsb3BweSgpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRl
bGV0ZUJ5VmFsU3RyaWN0T3B0aW1pemUsIHNpemVfdCwgKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pKQpAQCAtNDAxMCwxMiArMzg0
MiwxMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxTdHJp
Y3RPcHRpbWl6ZSwgc2l6ZV90LCAoRW5jb2RlZEpTVgogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CiAgICAgSUNTbG93UGF0aENhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSwg
c3R1YkluZm8pOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAog
ICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsKICAg
ICBKU1ZhbHVlIHN1YnNjcmlwdCA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KTsK
IAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGRlbGV0ZUJ5VmFsT3B0aW1pemUoZ2xvYmFs
T2JqZWN0LCB2bSwgY2FsbEZyYW1lLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgc3R1YkluZm8sIEVD
TUFNb2RlOjpzdHJpY3QoKSkpOworICAgIHJldHVybiBkZWxldGVCeVZhbE9wdGltaXplKGdsb2Jh
bE9iamVjdCwgdm0sIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIHN0dWJJbmZvLCBF
Q01BTW9kZTo6c3RyaWN0KCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uRGVsZXRlQnlWYWxTbG9wcHlHYXZlVXAsIHNpemVfdCwgKEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pKQpAQCAtNDAyMywxMiAr
Mzg1NCwxMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxT
bG9wcHlHYXZlVXAsIHNpemVfdCwgKEVuY29kZWRKU1ZhbAogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CiAgICAgSUNTbG93UGF0aENhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSwgc3R1YkluZm8pOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
IAogICAgIHN0dWJJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOwogCiAgICAgRGVsZXRlUHJvcGVy
dHlTbG90IHNsb3Q7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgZGVsZXRlQnlWYWwoZ2xv
YmFsT2JqZWN0LCB2bSwgc2xvdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKSwgSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBFQ01BTW9kZTo6c2xvcHB5KCkpKTsKKyAgICBy
ZXR1cm4gZGVsZXRlQnlWYWwoZ2xvYmFsT2JqZWN0LCB2bSwgc2xvdCwgSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRCYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBFQ01BTW9k
ZTo6c2xvcHB5KCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVs
ZXRlQnlWYWxTdHJpY3RHYXZlVXAsIHNpemVfdCwgKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pKQpAQCAtNDAzNiwxMiArMzg2Niwx
MSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxTdHJpY3RH
YXZlVXAsIHNpemVfdCwgKEVuY29kZWRKU1ZhbAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CiAgICAgSUNTbG93UGF0aENhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSwgc3R1
YkluZm8pOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAg
IHN0dWJJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOwogCiAgICAgRGVsZXRlUHJvcGVydHlTbG90
IHNsb3Q7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgZGVsZXRlQnlWYWwoZ2xvYmFsT2Jq
ZWN0LCB2bSwgc2xvdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKSwgSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRTdWJzY3JpcHQpLCBFQ01BTW9kZTo6c3RyaWN0KCkpKTsKKyAgICByZXR1cm4g
ZGVsZXRlQnlWYWwoZ2xvYmFsT2JqZWN0LCB2bSwgc2xvdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRCYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBFQ01BTW9kZTo6c3Ry
aWN0KCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlW
YWxTbG9wcHlHZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlw
dCkpCkBAIC00MDQ5LDkgKzM4NzgsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uRGVsZXRlQnlWYWxTbG9wcHlHZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9iagogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBPUEVSQVRJ
T05fUkVUVVJOKHNjb3BlLCBkZWxldGVCeVZhbChnbG9iYWxPYmplY3QsIHZtLCBzbG90LCBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlw
dCksIEVDTUFNb2RlOjpzbG9wcHkoKSkpOworICAgIHJldHVybiBkZWxldGVCeVZhbChnbG9iYWxP
YmplY3QsIHZtLCBzbG90LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpLCBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCksIEVDTUFNb2RlOjpzbG9wcHkoKSk7CiB9CiAKIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeVZhbFN0cmljdEdlbmVyaWMsIHNp
emVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0KSkKQEAgLTQwNTksOSArMzg4
Nyw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeVZhbFN0cmlj
dEdlbmVyaWMsIHNpemVfdCwgKEpTR2xvYmFsT2JqCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAg
IERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGRl
bGV0ZUJ5VmFsKGdsb2JhbE9iamVjdCwgdm0sIHNsb3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
QmFzZSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwgRUNNQU1vZGU6OnN0cmlj
dCgpKSk7CisgICAgcmV0dXJuIGRlbGV0ZUJ5VmFsKGdsb2JhbE9iamVjdCwgdm0sIHNsb3QsIEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2Ny
aXB0KSwgRUNNQU1vZGU6OnN0cmljdCgpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1c2hXaXRoU2NvcGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0NlbGwqIGN1cnJlbnRTY29wZUNlbGwsIEVuY29kZWRKU1ZhbHVlIG9iamVjdFZh
bHVlKSkKQEAgLTQwNzIsMjEgKzM4OTksMjAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1c2hXaXRoU2NvcGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU09iamVjdCog
b2JqZWN0ID0gSlNWYWx1ZTo6ZGVjb2RlKG9iamVjdFZhbHVlKS50b09iamVjdChnbG9iYWxPYmpl
Y3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAogICAgIEpTU2NvcGUq
IGN1cnJlbnRTY29wZSA9IGpzQ2FzdDxKU1Njb3BlKj4oY3VycmVudFNjb3BlQ2VsbCk7CiAKLSAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1dpdGhTY29wZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIGN1cnJlbnRTY29wZSwgb2JqZWN0KSk7CisgICAgcmV0dXJuIEpTV2l0aFNjb3BlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgY3VycmVudFNjb3BlLCBvYmplY3QpOwogfQogCi1KU0Nf
REVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHVzaFdpdGhTY29wZU9iamVj
dCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY3VycmVu
dFNjb3BlQ2VsbCwgSlNPYmplY3QqIG9iamVjdCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHVzaFdpdGhTY29wZU9iamVjdCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogY3VycmVudFNjb3BlQ2VsbCwgSlNPYmplY3QqIG9iamVjdCkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTU2NvcGUqIGN1cnJlbnRTY29wZSA9IGpz
Q2FzdDxKU1Njb3BlKj4oY3VycmVudFNjb3BlQ2VsbCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihz
Y29wZSwgSlNXaXRoU2NvcGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBjdXJyZW50U2NvcGUs
IG9iamVjdCkpOworICAgIHJldHVybiBKU1dpdGhTY29wZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIGN1cnJlbnRTY29wZSwgb2JqZWN0KTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkluc3RhbmNlT2ZHYXZlVXAsIEVuY29kZWRKU1ZhbHVlLCAoRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvdG8sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbykpCkBAIC00MDk0
LDcgKzM5MjAsNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFuY2VP
ZkdhdmVVcCwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGVkSlNWYQogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CiAgICAgSUNTbG93UGF0aENhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSwgc3R1YkluZm8pOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAogICAgIHN0dWJJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOwogCkBAIC00MTAyLDcgKzM5
MjcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFuY2VPZkdhdmVV
cCwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGVkSlNWYQogICAgIEpTVmFsdWUgcHJvdG8gPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFByb3RvKTsKIAogICAgIGJvb2wgcmVzdWx0ID0gSlNPYmplY3Q6
OmRlZmF1bHRIYXNJbnN0YW5jZShnbG9iYWxPYmplY3QsIHZhbHVlLCBwcm90byk7Ci0gICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZXN1bHQpKSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVzdWx0KSk7CiB9CiAKIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnN0YW5jZU9mT3B0aW1pemUsIEVuY29k
ZWRKU1ZhbHVlLCAoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkUHJvdG8sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJ
bmZvKiBzdHViSW5mbykpCkBAIC00MTE2LDMyICszOTQxLDMwIEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25JbnN0YW5jZU9mT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoRW5j
b2RlZEpTCiAgICAgSlNWYWx1ZSBwcm90byA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkUHJvdG8p
OwogICAgIAogICAgIGJvb2wgcmVzdWx0ID0gSlNPYmplY3Q6OmRlZmF1bHRIYXNJbnN0YW5jZShn
bG9iYWxPYmplY3QsIHZhbHVlLCBwcm90byk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKSk7CisgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKTsKICAg
ICAKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAg
ICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlclJlcGF0Y2hpbmdDYWNoZUdlbmVyaWModm0sIGNvZGVC
bG9jaywgdmFsdWUuc3RydWN0dXJlT3JOdWxsKCkpKQogICAgICAgICByZXBhdGNoSW5zdGFuY2VP
ZihnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgdmFsdWUsIHByb3RvLCAqc3R1YkluZm8sIHJlc3Vs
dCk7CiAgICAgCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpz
Qm9vbGVhbihyZXN1bHQpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4o
cmVzdWx0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplRnJh
bWVGb3JGb3J3YXJkQXJndW1lbnRzLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCBudW1Vc2VkU3RhY2tTbG90cywgaW50MzJfdCkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yRm9yd2FyZEFy
Z3VtZW50cywgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlLCBpbnQzMl90IG51bVVzZWRTdGFja1Nsb3RzLCBpbnQzMl90KSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgc2l6ZUZyYW1lRm9yRm9y
d2FyZEFyZ3VtZW50cyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgdm0sIG51bVVzZWRTdGFja1Ns
b3RzKSk7CisgICAgcmV0dXJuIHNpemVGcmFtZUZvckZvcndhcmRBcmd1bWVudHMoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUsIHZtLCBudW1Vc2VkU3RhY2tTbG90cyk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzLCBzaXplX3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRz
LCBpbnQzMl90IG51bVVzZWRTdGFja1Nsb3RzLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzLCBp
bnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEFyZ3VtZW50cywgaW50MzJfdCBudW1Vc2VkU3RhY2tTbG90cywgaW50MzJfdCBmaXJzdFZh
ckFyZ09mZnNldCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgYXJndW1l
bnRzID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRBcmd1bWVudHMpOwotICAgIE9QRVJBVElPTl9S
RVRVUk4oc2NvcGUsIHNpemVGcmFtZUZvclZhcmFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUs
IHZtLCBhcmd1bWVudHMsIG51bVVzZWRTdGFja1Nsb3RzLCBmaXJzdFZhckFyZ09mZnNldCkpOwor
ICAgIHJldHVybiBzaXplRnJhbWVGb3JWYXJhcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCB2
bSwgYXJndW1lbnRzLCBudW1Vc2VkU3RhY2tTbG90cywgZmlyc3RWYXJBcmdPZmZzZXQpOwogfQog
CiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBGb3J3YXJkQXJndW1lbnRz
RnJhbWUsIENhbGxGcmFtZSosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIG5ld0NhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QgbGVuZ3Ro
KSkKQEAgLTQxNDksOSArMzk3Miw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25TZXR1cEZvcndhcmRBcmd1bWVudHNGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvCiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogICAgIHNldHVwRm9yd2FyZEFyZ3VtZW50c0ZyYW1lKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBuZXdDYWxsRnJhbWUsIGxlbmd0aCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSwgbmV3Q2FsbEZyYW1lKTsKKyAgICByZXR1cm4gbmV3Q2FsbEZyYW1lOwogfQogCiBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBWYXJhcmdzRnJhbWUsIENhbGxG
cmFtZSosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIG5ld0NhbGxG
cmFtZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgaW50MzJfdCBmaXJzdFZhckFy
Z09mZnNldCwgaW50MzJfdCBsZW5ndGgpKQpAQCAtNDE1OSwxMCArMzk4MSw5IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cFZhcmFyZ3NGcmFtZSwgQ2FsbEZyYW1lKiwg
KEpTR2xvYmFsT2JqZWN0CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgYXJndW1l
bnRzID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRBcmd1bWVudHMpOwogICAgIHNldHVwVmFyYXJn
c0ZyYW1lKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBuZXdDYWxsRnJhbWUsIGFyZ3VtZW50cywg
Zmlyc3RWYXJBcmdPZmZzZXQsIGxlbmd0aCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
bmV3Q2FsbEZyYW1lKTsKKyAgICByZXR1cm4gbmV3Q2FsbEZyYW1lOwogfQogCiBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoQ2hhcldpdGhVbmtub3duS2V5VHlwZSwgY2hh
ciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
S2V5LCBzaXplX3QgdGFibGVJbmRleCwgaW50MzJfdCBtaW4pKQpAQCAtNDE3MCw3ICszOTkxLDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaENoYXJXaXRoVW5rbm93
bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iYWwKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIGtl
eSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkS2V5KTsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9j
ayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CkBAIC00MTgzLDEzICs0MDA0LDEzIEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hDaGFyV2l0aFVua25vd25LZXlUeXBl
LCBjaGFyKiwgKEpTR2xvYmFsCiAgICAgICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBhc1N0cmluZyhr
ZXkpOwogICAgICAgICBpZiAoc3RyaW5nLT5sZW5ndGgoKSA9PSAxKSB7CiAgICAgICAgICAgICBT
dHJpbmcgdmFsdWUgPSBzdHJpbmctPnZhbHVlKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgICAgICBP
UEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisgICAgICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwogICAgICAgICAgICAg
cmVzdWx0ID0gbGlua2VkVGFibGUuY3RpRm9yVmFsdWUobWluLCB2YWx1ZVswXSkudGFnZ2VkUHRy
KCk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBhc3NlcnRJc1RhZ2dlZFdpdGg8SlNTd2l0Y2hQ
dHJUYWc+KHJlc3VsdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgcmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4ocmVzdWx0KSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+
KHJlc3VsdCk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hJ
bW1XaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEtleSwgc2l6ZV90IHRhYmxlSW5kZXgsIGludDMyX3QgbWluKSkKQEAgLTQxOTcs
NyArNDAxOCw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hJbW1X
aXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoVk0qIHZtUG9pCiAgICAgVk0mIHZtID0gKnZtUG9p
bnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBK
U1ZhbHVlIGtleSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkS2V5KTsKICAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAKQEAgLTQyMTEsNyArNDAzMSw3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hJbW1XaXRoVW5rbm93
bktleVR5cGUsIGNoYXIqLCAoVk0qIHZtUG9pCiAgICAgZWxzZQogICAgICAgICByZXN1bHQgPSBs
aW5rZWRUYWJsZS5tX2N0aURlZmF1bHQudGFnZ2VkUHRyKCk7CiAgICAgYXNzZXJ0SXNUYWdnZWRX
aXRoPEpTU3dpdGNoUHRyVGFnPihyZXN1bHQpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUs
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJlc3VsdCkpOworICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PGNoYXIqPihyZXN1bHQpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU3dpdGNoU3RyaW5nV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRLZXksIHNpemVfdCB0YWJs
ZUluZGV4KSkKQEAgLTQyMTksOSArNDAzOSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iCiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUga2V5ID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRLZXkpOwogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAog
ICAgIHZvaWQqIHJlc3VsdDsKICAgICBjb25zdCBTdHJpbmdKdW1wVGFibGUmIGxpbmtlZFRhYmxl
ID0gY29kZUJsb2NrLT5iYXNlbGluZVN0cmluZ1N3aXRjaEp1bXBUYWJsZSh0YWJsZUluZGV4KTsK
QEAgLTQyMjksNyArNDA0OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
d2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iCiAgICAgaWYgKGtl
eS5pc1N0cmluZygpKSB7CiAgICAgICAgIFN0cmluZ0ltcGwqIHZhbHVlID0gYXNTdHJpbmcoa2V5
KS0+dmFsdWUoZ2xvYmFsT2JqZWN0KS5pbXBsKCk7CiAKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwogCiAgICAgICAgIGNvbnN0IFVubGlua2VkU3RyaW5n
SnVtcFRhYmxlJiB1bmxpbmtlZFRhYmxlID0gY29kZUJsb2NrLT51bmxpbmtlZFN0cmluZ1N3aXRj
aEp1bXBUYWJsZSh0YWJsZUluZGV4KTsKICAgICAgICAgcmVzdWx0ID0gbGlua2VkVGFibGUuY3Rp
Rm9yVmFsdWUodW5saW5rZWRUYWJsZSwgdmFsdWUpLnRhZ2dlZFB0cigpOwpAQCAtNDIzNyw3ICs0
MDU3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZ1dp
dGhVbmtub3duS2V5VHlwZSwgY2hhciosIChKU0dsb2IKICAgICAgICAgcmVzdWx0ID0gbGlua2Vk
VGFibGUuY3RpRGVmYXVsdCgpLnRhZ2dlZFB0cigpOwogCiAgICAgYXNzZXJ0SXNUYWdnZWRXaXRo
PEpTU3dpdGNoUHRyVGFnPihyZXN1bHQpOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJlc3VsdCkpOworICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PGNoYXIqPihyZXN1bHQpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUmVzb2x2ZVNjb3BlRm9yQmFzZWxpbmUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSlNJbnN0cnVjdGlvbiogcGMpKQpAQCAtNDI0NSwxNiAr
NDA2NSwxNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVzb2x2ZVNjb3Bl
Rm9yQmFzZWxpbmUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbAogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
KyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIENv
ZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKIAogICAgIGF1dG8g
Ynl0ZWNvZGUgPSBwYy0+YXM8T3BSZXNvbHZlU2NvcGU+KCk7CiAgICAgY29uc3QgSWRlbnRpZmll
ciYgaWRlbnQgPSBjb2RlQmxvY2stPmlkZW50aWZpZXIoYnl0ZWNvZGUubV92YXIpOwotICAgIEpT
U2NvcGUqIGVudmlyb25tZW50ID0gY2FsbEZyYW1lLT51bmNoZWNrZWRSKGJ5dGVjb2RlLm1fc2Nv
cGUpLlJlZ2lzdGVyOjpzY29wZSgpOwotICAgIEpTT2JqZWN0KiByZXNvbHZlZFNjb3BlID0gSlNT
Y29wZTo6cmVzb2x2ZShnbG9iYWxPYmplY3QsIGVudmlyb25tZW50LCBpZGVudCk7CisgICAgSlNT
Y29wZSogc2NvcGUgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZFIoYnl0ZWNvZGUubV9zY29wZSkuUmVn
aXN0ZXI6OnNjb3BlKCk7CisgICAgSlNPYmplY3QqIHJlc29sdmVkU2NvcGUgPSBKU1Njb3BlOjpy
ZXNvbHZlKGdsb2JhbE9iamVjdCwgc2NvcGUsIGlkZW50KTsKICAgICAvLyBQcm94eSBjYW4gdGhy
b3cgYW4gZXJyb3IgaGVyZSwgZS5nLiBQcm94eSBpbiB3aXRoIHN0YXRlbWVudCdzIEB1bnNjb3Bh
Ymxlcy4KLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpT
VmFsdWUoKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOwogCiAg
ICAgYXV0byYgbWV0YWRhdGEgPSBieXRlY29kZS5tZXRhZGF0YShjb2RlQmxvY2spOwogICAgIFJl
c29sdmVUeXBlIHJlc29sdmVUeXBlID0gbWV0YWRhdGEubV9yZXNvbHZlVHlwZTsKQEAgLTQyNzAs
NyArNDA5MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNvbHZlU2Nv
cGVGb3JCYXNlbGluZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsCiAgICAgICAgIGlmIChyZXNvbHZl
ZFNjb3BlLT5pc0dsb2JhbE9iamVjdCgpKSB7CiAgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0ganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4ocmVzb2x2ZWRTY29wZSk7CiAg
ICAgICAgICAgICBib29sIGhhc1Byb3BlcnR5ID0gZ2xvYmFsT2JqZWN0LT5oYXNQcm9wZXJ0eShn
bG9iYWxPYmplY3QsIGlkZW50KTsKLSAgICAgICAgICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKICAgICAgICAgICAgIGlmIChoYXNQcm9wZXJ0eSkg
ewogICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5t
X2xvY2spOwogICAgICAgICAgICAgICAgIG1ldGFkYXRhLm1fcmVzb2x2ZVR5cGUgPSBuZWVkc1Zh
ckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSkgPyBHbG9iYWxQcm9wZXJ0eVdpdGhWYXJJbmpl
Y3Rpb25DaGVja3MgOiBHbG9iYWxQcm9wZXJ0eTsKQEAgLTQyODksNyArNDEwOSw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNvbHZlU2NvcGVGb3JCYXNlbGluZSwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIE9QRVJBVElP
Tl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShyZXNvbHZlZFNjb3BlKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXNvbHZlZFNjb3BlKTsKIH0KIAogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkdldEZyb21TY29wZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBKU0luc3RydWN0aW9uKiBwYykpCkBAIC00Mjk3
LDM2ICs0MTE3LDM2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRGcm9t
U2NvcGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAg
ICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogCiAgICAg
YXV0byBieXRlY29kZSA9IHBjLT5hczxPcEdldEZyb21TY29wZT4oKTsKICAgICBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudCA9IGNvZGVCbG9jay0+aWRlbnRpZmllcihieXRlY29kZS5tX3Zhcik7Ci0g
ICAgSlNPYmplY3QqIGVudmlyb25tZW50ID0ganNDYXN0PEpTT2JqZWN0Kj4oY2FsbEZyYW1lLT51
bmNoZWNrZWRSKGJ5dGVjb2RlLm1fc2NvcGUpLmpzVmFsdWUoKSk7CisgICAgSlNPYmplY3QqIHNj
b3BlID0ganNDYXN0PEpTT2JqZWN0Kj4oY2FsbEZyYW1lLT51bmNoZWNrZWRSKGJ5dGVjb2RlLm1f
c2NvcGUpLmpzVmFsdWUoKSk7CiAgICAgR2V0UHV0SW5mbyYgZ2V0UHV0SW5mbyA9IGJ5dGVjb2Rl
Lm1ldGFkYXRhKGNvZGVCbG9jaykubV9nZXRQdXRJbmZvOwogCiAgICAgLy8gTW9kdWxlVmFyIGlz
IGFsd2F5cyBjb252ZXJ0ZWQgdG8gQ2xvc3VyZVZhciBmb3IgZ2V0X2Zyb21fc2NvcGUuCiAgICAg
QVNTRVJUKGdldFB1dEluZm8ucmVzb2x2ZVR5cGUoKSAhPSBNb2R1bGVWYXIpOwogCi0gICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGVudmlyb25tZW50LT5nZXRQcm9w
ZXJ0eVNsb3QoZ2xvYmFsT2JqZWN0LCBpZGVudCwgWyZdIChib29sIGZvdW5kLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpIC0+IEpTVmFsdWUgeworICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoc2NvcGUtPmdldFByb3BlcnR5U2xvdChnbG9iYWxPYmplY3QsIGlk
ZW50LCBbJl0gKGJvb2wgZm91bmQsIFByb3BlcnR5U2xvdCYgc2xvdCkgLT4gSlNWYWx1ZSB7CiAg
ICAgICAgIGlmICghZm91bmQpIHsKICAgICAgICAgICAgIGlmIChnZXRQdXRJbmZvLnJlc29sdmVN
b2RlKCkgPT0gVGhyb3dJZk5vdEZvdW5kKQotICAgICAgICAgICAgICAgIHRocm93RXhjZXB0aW9u
KGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVVuZGVmaW5lZFZhcmlhYmxlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBpZGVudCkpOworICAgICAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgY3JlYXRlVW5kZWZpbmVkVmFyaWFibGVFcnJvcihnbG9iYWxPYmpl
Y3QsIGlkZW50KSk7CiAgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICAgICAg
fQogCiAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZSgpOwotICAgICAgICBpZiAoZW52
aXJvbm1lbnQtPmlzR2xvYmFsTGV4aWNhbEVudmlyb25tZW50KCkpIHsKKyAgICAgICAgaWYgKHNj
b3BlLT5pc0dsb2JhbExleGljYWxFbnZpcm9ubWVudCgpKSB7CiAgICAgICAgICAgICAvLyBXaGVu
IHdlIGNhbid0IHN0YXRpY2FsbHkgcHJvdmUgd2UgbmVlZCBhIFREWiBjaGVjaywgd2UgbXVzdCBw
ZXJmb3JtIHRoZSBjaGVjayBvbiB0aGUgc2xvdyBwYXRoLgogICAgICAgICAgICAgcmVzdWx0ID0g
c2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KTsKICAgICAgICAgICAgIGlmIChyZXN1
bHQgPT0ganNURFpWYWx1ZSgpKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xv
YmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlVERaRXJyb3IoZ2xvYmFsT2JqZWN0KSk7CisgICAgICAg
ICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVU
RFpFcnJvcihnbG9iYWxPYmplY3QpKTsKICAgICAgICAgICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIENvbW1vblNsb3dQYXRo
czo6dHJ5Q2FjaGVHZXRGcm9tU2NvcGVHbG9iYWwoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIHZt
LCBieXRlY29kZSwgZW52aXJvbm1lbnQsIHNsb3QsIGlkZW50KTsKKyAgICAgICAgQ29tbW9uU2xv
d1BhdGhzOjp0cnlDYWNoZUdldEZyb21TY29wZUdsb2JhbChnbG9iYWxPYmplY3QsIGNvZGVCbG9j
aywgdm0sIGJ5dGVjb2RlLCBzY29wZSwgc2xvdCwgaWRlbnQpOwogCiAgICAgICAgIGlmICghcmVz
dWx0KQogICAgICAgICAgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUoZ2xvYmFsT2JqZWN0LCBpZGVu
dCk7CkBAIC00MzM5LDE0ICs0MTU5LDE0IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRUb1Njb3BlLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9j
aygpOwogICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BQdXRUb1Njb3BlPigpOwogICAgIGF1
dG8mIG1ldGFkYXRhID0gYnl0ZWNvZGUubWV0YWRhdGEoY29kZUJsb2NrKTsKIAogICAgIGNvbnN0
IElkZW50aWZpZXImIGlkZW50ID0gY29kZUJsb2NrLT5pZGVudGlmaWVyKGJ5dGVjb2RlLm1fdmFy
KTsKLSAgICBKU09iamVjdCoganNTY29wZSA9IGpzQ2FzdDxKU09iamVjdCo+KGNhbGxGcmFtZS0+
dW5jaGVja2VkUihieXRlY29kZS5tX3Njb3BlKS5qc1ZhbHVlKCkpOworICAgIEpTT2JqZWN0KiBz
Y29wZSA9IGpzQ2FzdDxKU09iamVjdCo+KGNhbGxGcmFtZS0+dW5jaGVja2VkUihieXRlY29kZS5t
X3Njb3BlKS5qc1ZhbHVlKCkpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBjYWxsRnJhbWUtPnIoYnl0
ZWNvZGUubV92YWx1ZSkuanNWYWx1ZSgpOwogICAgIEdldFB1dEluZm8mIGdldFB1dEluZm8gPSBt
ZXRhZGF0YS5tX2dldFB1dEluZm87CiAKQEAgLTQzNTQsMzkgKzQxNzQsMzggQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFRvU2NvcGUsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWMKICAgICBBU1NFUlQoZ2V0UHV0SW5mby5yZXNvbHZlVHlwZSgpICE9IE1v
ZHVsZVZhcik7CiAKICAgICBpZiAoZ2V0UHV0SW5mby5yZXNvbHZlVHlwZSgpID09IFJlc29sdmVk
Q2xvc3VyZVZhcikgewotICAgICAgICBKU0xleGljYWxFbnZpcm9ubWVudCogZW52aXJvbm1lbnQg
PSBqc0Nhc3Q8SlNMZXhpY2FsRW52aXJvbm1lbnQqPihqc1Njb3BlKTsKKyAgICAgICAgSlNMZXhp
Y2FsRW52aXJvbm1lbnQqIGVudmlyb25tZW50ID0ganNDYXN0PEpTTGV4aWNhbEVudmlyb25tZW50
Kj4oc2NvcGUpOwogICAgICAgICBlbnZpcm9ubWVudC0+dmFyaWFibGVBdChTY29wZU9mZnNldCht
ZXRhZGF0YS5tX29wZXJhbmQpKS5zZXQodm0sIGVudmlyb25tZW50LCB2YWx1ZSk7CiAgICAgICAg
IGlmIChXYXRjaHBvaW50U2V0KiBzZXQgPSBtZXRhZGF0YS5tX3dhdGNocG9pbnRTZXQpCiAgICAg
ICAgICAgICBzZXQtPnRvdWNoKHZtLCAiRXhlY3V0ZWQgb3BfcHV0X3Njb3BlPFJlc29sdmVkQ2xv
c3VyZVZhcj4iKTsKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CisgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBib29sIGhhc1Byb3BlcnR5ID0ganNTY29wZS0+aGFzUHJvcGVy
dHkoZ2xvYmFsT2JqZWN0LCBpZGVudCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUpOworICAgIGJvb2wgaGFzUHJvcGVydHkgPSBzY29wZS0+aGFzUHJvcGVydHkoZ2xv
YmFsT2JqZWN0LCBpZGVudCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB2
b2lkKCkpOwogICAgIGlmIChoYXNQcm9wZXJ0eQotICAgICAgICAmJiBqc1Njb3BlLT5pc0dsb2Jh
bExleGljYWxFbnZpcm9ubWVudCgpCisgICAgICAgICYmIHNjb3BlLT5pc0dsb2JhbExleGljYWxF
bnZpcm9ubWVudCgpCiAgICAgICAgICYmICFpc0luaXRpYWxpemF0aW9uKGdldFB1dEluZm8uaW5p
dGlhbGl6YXRpb25Nb2RlKCkpKSB7CiAgICAgICAgIC8vIFdoZW4gd2UgY2FuJ3Qgc3RhdGljYWxs
eSBwcm92ZSB3ZSBuZWVkIGEgVERaIGNoZWNrLCB3ZSBtdXN0IHBlcmZvcm0gdGhlIGNoZWNrIG9u
IHRoZSBzbG93IHBhdGguCi0gICAgICAgIFByb3BlcnR5U2xvdCBzbG90KGpzU2NvcGUsIFByb3Bl
cnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwotICAgICAgICBKU0dsb2JhbExleGlj
YWxFbnZpcm9ubWVudDo6Z2V0T3duUHJvcGVydHlTbG90KGpzU2NvcGUsIGdsb2JhbE9iamVjdCwg
aWRlbnQsIHNsb3QpOworICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChzY29wZSwgUHJvcGVydHlT
bG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7CisgICAgICAgIEpTR2xvYmFsTGV4aWNhbEVu
dmlyb25tZW50OjpnZXRPd25Qcm9wZXJ0eVNsb3Qoc2NvcGUsIGdsb2JhbE9iamVjdCwgaWRlbnQs
IHNsb3QpOwogICAgICAgICBpZiAoc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA9
PSBqc1REWlZhbHVlKCkpIHsKLSAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVj
dCwgc2NvcGUsIGNyZWF0ZVREWkVycm9yKGdsb2JhbE9iamVjdCkpOwotICAgICAgICAgICAgT1BF
UkFUSU9OX1JFVFVSTihzY29wZSk7CisgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZVREWkVycm9yKGdsb2JhbE9iamVjdCkpOworICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKGdldFB1dEluZm8ucmVz
b2x2ZU1vZGUoKSA9PSBUaHJvd0lmTm90Rm91bmQgJiYgIWhhc1Byb3BlcnR5KSB7Ci0gICAgICAg
IHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVVuZGVmaW5lZFZhcmlh
YmxlRXJyb3IoZ2xvYmFsT2JqZWN0LCBpZGVudCkpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJO
KHNjb3BlKTsKKyAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBjcmVhdGVVbmRlZmluZWRWYXJpYWJsZUVycm9yKGdsb2JhbE9iamVjdCwgaWRlbnQpKTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGpzU2NvcGUs
IGdldFB1dEluZm8uZWNtYU1vZGUoKS5pc1N0cmljdCgpLCBQdXRQcm9wZXJ0eVNsb3Q6OlVua25v
d25Db250ZXh0LCBpc0luaXRpYWxpemF0aW9uKGdldFB1dEluZm8uaW5pdGlhbGl6YXRpb25Nb2Rl
KCkpKTsKLSAgICBqc1Njb3BlLT5tZXRob2RUYWJsZSgpLT5wdXQoanNTY29wZSwgZ2xvYmFsT2Jq
ZWN0LCBpZGVudCwgdmFsdWUsIHNsb3QpOworICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KHNjb3Bl
LCBnZXRQdXRJbmZvLmVjbWFNb2RlKCkuaXNTdHJpY3QoKSwgUHV0UHJvcGVydHlTbG90OjpVbmtu
b3duQ29udGV4dCwgaXNJbml0aWFsaXphdGlvbihnZXRQdXRJbmZvLmluaXRpYWxpemF0aW9uTW9k
ZSgpKSk7CisgICAgc2NvcGUtPm1ldGhvZFRhYmxlKCktPnB1dChzY29wZSwgZ2xvYmFsT2JqZWN0
LCBpZGVudCwgdmFsdWUsIHNsb3QpOwogICAgIAotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHZvaWQo
KSk7CiAKLSAgICBDb21tb25TbG93UGF0aHM6OnRyeUNhY2hlUHV0VG9TY29wZUdsb2JhbChnbG9i
YWxPYmplY3QsIGNvZGVCbG9jaywgYnl0ZWNvZGUsIGpzU2NvcGUsIHNsb3QsIGlkZW50KTsKLSAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlKTsKKyAgICBDb21tb25TbG93UGF0aHM6OnRyeUNhY2hl
UHV0VG9TY29wZUdsb2JhbChnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYnl0ZWNvZGUsIHNjb3Bl
LCBzbG90LCBpZGVudCk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
aHJvdywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRFeGNlcHRpb25WYWx1ZSkpCkBAIC00NDAxLDcgKzQyMjAsNiBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3csIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbgogCiAgICAgLy8gUmVzdWx0cyBzdG9yZWQgb3V0LW9mLWJhbmQgaW4gdm0u
dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3cgJiB2bS5jYWxsRnJhbWVGb3JDYXRjaAogICAgIGdlbmVy
aWNVbndpbmQodm0sIGNhbGxGcmFtZSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSk7CiB9
CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5
VG9IYXZlUHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eSwgY2hhciosIChWTSogdm1Q
b2ludGVyLCBKU09iamVjdCogb2JqZWN0KSkKQEAgLTQ0MDksMTIgKzQyMjcsMTEgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlYWxsb2NhdGVCdXR0ZXJmbHlUb0hhdmVQcm9w
ZXJ0eVN0b3JhZ2VXaXRoSW4KICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Q
cm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgQVNTRVJUKCFvYmplY3QtPnN0
cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpKTsKICAgICBCdXR0ZXJmbHkqIHJlc3VsdCA9
IG9iamVjdC0+YWxsb2NhdGVNb3JlT3V0T2ZMaW5lU3RvcmFnZSh2bSwgMCwgaW5pdGlhbE91dE9m
TGluZUNhcGFjaXR5KTsKICAgICBvYmplY3QtPm51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHko
dm0sIG9iamVjdC0+c3RydWN0dXJlSUQoKSwgcmVzdWx0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJO
KHNjb3BlLCByZWludGVycHJldF9jYXN0PGNoYXIqPihyZXN1bHQpKTsKKyAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4ocmVzdWx0KTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblJlYWxsb2NhdGVCdXR0ZXJmbHlUb0dyb3dQcm9wZXJ0eVN0b3JhZ2UsIGNo
YXIqLCAoVk0qIHZtUG9pbnRlciwgSlNPYmplY3QqIG9iamVjdCwgc2l6ZV90IG5ld1NpemUpKQpA
QCAtNDQyMiwxNCArNDIzOSwxMyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UmVhbGxvY2F0ZUJ1dHRlcmZseVRvR3Jvd1Byb3BlcnR5U3RvcmFnZSwgY2hhcgogICAgIFZNJiB2
bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAKICAgICBCdXR0ZXJmbHkqIHJlc3VsdCA9IG9iamVjdC0+YWxsb2NhdGVNb3JlT3V0T2ZM
aW5lU3RvcmFnZSh2bSwgb2JqZWN0LT5zdHJ1Y3R1cmUoKS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSwg
bmV3U2l6ZSk7CiAgICAgb2JqZWN0LT5udWtlU3RydWN0dXJlQW5kU2V0QnV0dGVyZmx5KHZtLCBv
YmplY3QtPnN0cnVjdHVyZUlEKCksIHJlc3VsdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29w
ZSwgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4ocmVzdWx0KSk7CisgICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09Q
RVJBVElPTihvcGVyYXRpb25PU1JXcml0ZUJhcnJpZXIsIHZvaWQsIChWTSogdm1Qb2ludGVyLCBK
U0NlbGwqIGNlbGwpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9TUldyaXRl
QmFycmllciwgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogY2VsbCkpCiB7CiAgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC00NDM3LDcgKzQyNTMsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uT1NSV3JpdGVCYXJyaWVyLCB2b2lkLCAoVk0qIHZtUG9pbnRl
cgogICAgIHZtLndyaXRlQmFycmllcihjZWxsKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldyaXRlQmFycmllclNsb3dQYXRoLCB2b2lkLCAoVk0qIHZt
UG9pbnRlciwgSlNDZWxsKiBjZWxsKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Xcml0ZUJhcnJpZXJTbG93UGF0aCwgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogY2Vs
bCkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC00NDQ1LDcgKzQyNjEsNyBAQCBKU0NfREVG
SU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV3JpdGVCYXJyaWVyU2xvd1BhdGgs
IHZvaWQsIChWTSogdm1QbwogICAgIHZtLndyaXRlQmFycmllclNsb3dQYXRoKGNlbGwpOwogfQog
Ci1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTG9va3VwRXhjZXB0
aW9uSGFuZGxlciwgdm9pZCwgKFZNKiB2bVBvaW50ZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIsIHZvaWQsIChWTSogdm1Qb2ludGVy
KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTQ0NTQsNyArNDI3MCw3IEBAIEpTQ19ERUZJ
TkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Mb29rdXBFeGNlcHRpb25IYW5kbGVy
LCB2b2lkLCAoVk0qIHZtCiAgICAgQVNTRVJUKHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93KTsK
IH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxvb2t1cEV4
Y2VwdGlvbkhhbmRsZXJGcm9tQ2FsbGVyRnJhbWUsIHZvaWQsIChWTSogdm1Qb2ludGVyKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Mb29rdXBFeGNlcHRpb25IYW5kbGVyRnJv
bUNhbGxlckZyYW1lLCB2b2lkLCAoVk0qIHZtUG9pbnRlcikpCiB7CiAgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC00NDY1LDcgKzQyODEsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTG9va3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxsZXJGcmFtZQogICAgIEFT
U0VSVCh2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdyk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENF
UFRfSklUX09QRVJBVElPTihvcGVyYXRpb25WTUhhbmRsZUV4Y2VwdGlvbiwgdm9pZCwgKFZNKiB2
bVBvaW50ZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZNSGFuZGxlRXhj
ZXB0aW9uLCB2b2lkLCAoVk0qIHZtUG9pbnRlcikpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRl
cjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC00NDc4LDcgKzQyOTQsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uVk1IYW5kbGVFeGNlcHRpb24sIHZvaWQsIChWTSogdm1Qb2ludAogLy8gb3Vyc2VsdmVz
IHRvIHBsYXkgc29tZSBnbmFybHkgQUJJIHRyaWNrcyBqdXN0IHRvIHNpbXBsaWZ5IHRoZSBjYWxs
aW5nIGNvbnZlbnRpb24uIFRoaXMgaXMKIC8vIHBhcnRpY3VsYXJseSBzYWZlIGhlcmUgc2luY2Ug
dGhpcyBpcyBuZXZlciBjYWxsZWQgb24gdGhlIGNyaXRpY2FsIHBhdGggLSBpdCdzIG9ubHkgZm9y
CiAvLyB0ZXN0aW5nLgotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkV4Y2VwdGlvbkZ1enosIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FeGNlcHRpb25GdXp6LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTQ0OTQsNyArNDMxMCw3IEBAIEpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElP
TihvcGVyYXRpb25FeGNlcHRpb25GdXp6LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqCiAjZW5kaWYg
Ly8gQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklU
X09QRVJBVElPTihvcGVyYXRpb25FeGNlcHRpb25GdXp6V2l0aENhbGxGcmFtZSwgdm9pZCwgKFZN
KiB2bVBvaW50ZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkV4Y2VwdGlv
bkZ1enpXaXRoQ2FsbEZyYW1lLCB2b2lkLCAoVk0qIHZtUG9pbnRlcikpCiB7CiAgICAgVk0mIHZt
ID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC00NTE1LDggKzQzMzEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVmFsdWVBZGQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsbwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVl
OjplbmNvZGUoanNBZGQoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSks
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzQWRkKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMiwgQmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUpKQpAQCAtNDUy
NSw4ICs0MzQwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQWRk
UHJvZmlsZWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmoKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHByb2ZpbGVk
QWRkKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZE9wMiksICphcml0aFByb2ZpbGUpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShwcm9maWxlZEFkZChnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
T3AxKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpLCAqYXJpdGhQcm9maWxlKSk7CiB9CiAK
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1p
emUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMq
IGFkZElDKSkKQEAgLTQ1MzQsNyArNDM0OCw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHCiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogICAgIAogICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRPcDEpOwogICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDIpOwpAQCAtNDU1Miw3ICs0MzY1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblZhbHVlQWRkUHJvZmlsZWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0cKICAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGpzQWRkKGdsb2JhbE9iamVjdCwgb3AxLCBvcDIpOwogICAgIGFy
aXRoUHJvZmlsZS0+b2JzZXJ2ZVJlc3VsdChyZXN1bHQpOwogCi0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0KTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZh
bHVlQWRkUHJvZmlsZWROb09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIsIEpJVEFkZElDKiBhZGRJQykpCkBAIC00NTYwLDExICs0MzczLDEwIEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkTm9PcHRpbWl6
ZSwgRW5jb2RlZEpTVmFsdWUsIChKCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgQmluYXJ5
QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBhZGRJQy0+YXJpdGhQcm9maWxlKCk7CiAgICAg
QVNTRVJUKGFyaXRoUHJvZmlsZSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHByb2ZpbGVkQWRkKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMiksICphcml0aFByb2ZpbGUpKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShwcm9maWxlZEFkZChnbG9iYWxPYmplY3QsIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkT3AxKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpLCAqYXJp
dGhQcm9maWxlKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1
ZUFkZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIs
IEpJVEFkZElDKiBhZGRJQykpCkBAIC00NTcyLDcgKzQzODQsNiBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iagogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwogICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDIpOwpAQCAtNDU4Niw3ICs0Mzk3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblZhbHVlQWRkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmoKICAgICBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5kdW1wTWF0aElDU3RhdHMoKTsKICNlbmRp
ZgogCi0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkKGds
b2JhbE9iamVjdCwgb3AxLCBvcDIpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Fk
ZChnbG9iYWxPYmplY3QsIG9wMSwgb3AyKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25WYWx1ZUFkZE5vT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqKSkKQEAgLTQ1OTQsMTQgKzQ0MDUsMTMgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQWRkTm9PcHRpbWl6ZSwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE8KICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
LSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgCiAgICAgSlNW
YWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBvcDIg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CiAgICAgCiAgICAgSlNWYWx1ZSByZXN1bHQg
PSBqc0FkZChnbG9iYWxPYmplY3QsIG9wMSwgb3AyKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CiB9CiAKIEFMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHVu
cHJvZmlsZWRNdWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKQEAgLTQ2MzMsOSArNDQ0Myw4
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZU11bCwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
ICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSwgdW5wcm9maWxlZE11bChnbG9iYWxPYmplY3QsIGVuY29k
ZWRPcDEsIGVuY29kZWRPcDIpKTsKKyAgICByZXR1cm4gdW5wcm9maWxlZE11bChnbG9iYWxPYmpl
Y3QsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVmFsdWVNdWxOb09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElDKikpCkBAIC00NjQzLDkgKzQ0NTIsOCBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVNdWxOb09wdGltaXplLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsTwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklU
T3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwot
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElP
Tl9SRVRVUk4oc2NvcGUsIHVucHJvZmlsZWRNdWwoZ2xvYmFsT2JqZWN0LCBlbmNvZGVkT3AxLCBl
bmNvZGVkT3AyKSk7CisgICAgcmV0dXJuIHVucHJvZmlsZWRNdWwoZ2xvYmFsT2JqZWN0LCBlbmNv
ZGVkT3AxLCBlbmNvZGVkT3AyKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblZhbHVlTXVsT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMiwgSklUTXVsSUMqIG11bElDKSkKQEAgLTQ2NTMsNyArNDQ2MSw2IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZU11bE9wdGltaXplLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgYXV0byBub25PcHRp
bWl6ZVZhcmlhbnQgPSBvcGVyYXRpb25WYWx1ZU11bE5vT3B0aW1pemU7CiAgICAgaWYgKEJpbmFy
eUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbXVsSUMtPmFyaXRoUHJvZmlsZSgpKQpAQCAt
NDY2NCw3ICs0NDcxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVl
TXVsT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmoKICAgICBjYWxsRnJhbWUt
PmNvZGVCbG9jaygpLT5kdW1wTWF0aElDU3RhdHMoKTsKICNlbmRpZgogCi0gICAgT1BFUkFUSU9O
X1JFVFVSTihzY29wZSwgdW5wcm9maWxlZE11bChnbG9iYWxPYmplY3QsIGVuY29kZWRPcDEsIGVu
Y29kZWRPcDIpKTsKKyAgICByZXR1cm4gdW5wcm9maWxlZE11bChnbG9iYWxPYmplY3QsIGVuY29k
ZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVmFsdWVNdWxQcm9maWxlZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyLCBCaW5hcnlBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkpCkBAIC00NjcyLDEwICs0
NDc5LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlTXVsUHJvZmls
ZWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmoKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
ICAgICBBU1NFUlQoYXJpdGhQcm9maWxlKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBw
cm9maWxlZE11bChnbG9iYWxPYmplY3QsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFBy
b2ZpbGUpKTsKKyAgICByZXR1cm4gcHJvZmlsZWRNdWwoZ2xvYmFsT2JqZWN0LCBlbmNvZGVkT3Ax
LCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRNdWxJQyogbXVsSUMpKQpAQCAtNDY4Myw3ICs0
NDg5LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlTXVsUHJvZmls
ZWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0cKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
ICAgICBCaW5hcnlBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG11bElDLT5hcml0aFByb2Zp
bGUoKTsKICAgICBBU1NFUlQoYXJpdGhQcm9maWxlKTsKQEAgLTQ2OTUsNyArNDUwMCw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkT3B0aW1pemUs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHCiAgICAgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+ZHVtcE1h
dGhJQ1N0YXRzKCk7CiAjZW5kaWYKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHByb2Zp
bGVkTXVsKGdsb2JhbE9iamVjdCwgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmls
ZSwgZmFsc2UpKTsKKyAgICByZXR1cm4gcHJvZmlsZWRNdWwoZ2xvYmFsT2JqZWN0LCBlbmNvZGVk
T3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlLCBmYWxzZSk7CiB9CiAKIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkTm9PcHRpbWl6ZSwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRNdWxJQyogbXVsSUMpKQpA
QCAtNDcwMywzNiArNDUwOCwzNSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
VmFsdWVNdWxQcm9maWxlZE5vT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSgogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAogICAgIEJpbmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbXVs
SUMtPmFyaXRoUHJvZmlsZSgpOwogICAgIEFTU0VSVChhcml0aFByb2ZpbGUpOwotICAgIE9QRVJB
VElPTl9SRVRVUk4oc2NvcGUsIHByb2ZpbGVkTXVsKGdsb2JhbE9iamVjdCwgZW5jb2RlZE9wMSwg
ZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSkpOworICAgIHJldHVybiBwcm9maWxlZE11bChnbG9i
YWxPYmplY3QsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUpOwogfQogCiAv
LyBGSVhNRTogaXQgd291bGQgYmUgYmV0dGVyIHRvIGNhbGwgdGhvc2Ugb3BlcmF0aW9uVmFsdWVO
ZWdhdGUsIHNpbmNlIHRoZSBvcGVyYW5kIGNhbiBiZSBhIEJpZ0ludAogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoTmVnYXRlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcGVyYW5kKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCiAgICAgSlNWYWx1ZSBvcGVyYW5kID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRP
cGVyYW5kKTsKIAogICAgIEpTVmFsdWUgcHJpbVZhbHVlID0gb3BlcmFuZC50b1ByaW1pdGl2ZShn
bG9iYWxPYmplY3QsIFByZWZlck51bWJlcik7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCiAjaWYgVVNFKEJJR0lOVDMyKQogICAgIGlmIChw
cmltVmFsdWUuaXNCaWdJbnQzMigpKQotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBK
U1ZhbHVlOjplbmNvZGUoSlNCaWdJbnQ6OnVuYXJ5TWludXMoZ2xvYmFsT2JqZWN0LCBwcmltVmFs
dWUuYmlnSW50MzJBc0ludDMyKCkpKSk7CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50Ojp1bmFyeU1pbnVzKGdsb2JhbE9iamVjdCwgcHJp
bVZhbHVlLmJpZ0ludDMyQXNJbnQzMigpKSkpOwogI2VuZGlmCiAgICAgaWYgKHByaW1WYWx1ZS5p
c0hlYXBCaWdJbnQoKSkKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKEpTQmlnSW50Ojp1bmFyeU1pbnVzKGdsb2JhbE9iamVjdCwgcHJpbVZhbHVlLmFzSGVh
cEJpZ0ludCgpKSkpOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShKU0JpZ0ludDo6dW5hcnlNaW51cyhnbG9iYWxPYmplY3QsIHByaW1WYWx1ZS5hc0hl
YXBCaWdJbnQoKSkpKTsKIAogICAgIGRvdWJsZSBudW1iZXIgPSBwcmltVmFsdWUudG9OdW1iZXIo
Z2xvYmFsT2JqZWN0KTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKC1udW1iZXIpKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cigtbnVtYmVyKSk7CiAKIH0KIApAQCAtNDc0MSw0NSArNDU0NSw0NSBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhOZWdhdGVQcm9maWxlZCwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbAogewogICAgIEFTU0VSVChhcml0aFByb2ZpbGUpOwogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBK
U1ZhbHVlIG9wZXJhbmQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wZXJhbmQpOwogICAgIGFy
aXRoUHJvZmlsZS0+b2JzZXJ2ZUFyZyhvcGVyYW5kKTsKIAogICAgIEpTVmFsdWUgcHJpbVZhbHVl
ID0gb3BlcmFuZC50b1ByaW1pdGl2ZShnbG9iYWxPYmplY3QsIFByZWZlck51bWJlcik7Ci0gICAg
T1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCiAjaWYg
VVNFKEJJR0lOVDMyKQogICAgIGlmIChwcmltVmFsdWUuaXNCaWdJbnQzMigpKSB7CiAgICAgICAg
IEpTVmFsdWUgcmVzdWx0ID0gSlNCaWdJbnQ6OnVuYXJ5TWludXMoZ2xvYmFsT2JqZWN0LCBwcmlt
VmFsdWUuYmlnSW50MzJBc0ludDMyKCkpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7CiAgICAgICAgIGFyaXRoUHJvZmlsZS0+b2JzZXJ2ZVJlc3VsdChy
ZXN1bHQpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICB9
CiAjZW5kaWYKICAgICBpZiAocHJpbVZhbHVlLmlzSGVhcEJpZ0ludCgpKSB7CiAgICAgICAgIEpT
VmFsdWUgcmVzdWx0ID0gSlNCaWdJbnQ6OnVuYXJ5TWludXMoZ2xvYmFsT2JqZWN0LCBwcmltVmFs
dWUuYXNIZWFwQmlnSW50KCkpOwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CiAgICAgICAgIGFyaXRoUHJvZmlsZS0+b2JzZXJ2ZVJlc3VsdChyZXN1bHQp
OwotICAgICAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICB9CiAKICAg
ICBkb3VibGUgbnVtYmVyID0gcHJpbVZhbHVlLnRvTnVtYmVyKGdsb2JhbE9iamVjdCk7Ci0gICAg
T1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIEpT
VmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoLW51bWJlcik7CiAgICAgYXJpdGhQcm9maWxlLT5vYnNl
cnZlUmVzdWx0KHJlc3VsdCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0K
IAogLy8gRklYTUU6IGl0IHdvdWxkIGJlIGJldHRlciB0byBjYWxsIHRob3NlIG9wZXJhdGlvblZh
bHVlTmVnYXRlLCBzaW5jZSB0aGUgb3BlcmFuZCBjYW4gYmUgYSBCaWdJbnQKIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aE5lZ2F0ZVByb2ZpbGVkT3B0aW1pemUsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wZXJhbmQsIEpJVE5lZ0lDKiBuZWdJQykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAg
SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUp
OwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAKICAgICBK
U1ZhbHVlIG9wZXJhbmQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wZXJhbmQpOwogCkBAIC00
NzkzLDM3ICs0NTk3LDM3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0
aE5lZ2F0ZVByb2ZpbGVkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoCiAjZW5kaWYKICAgICAK
ICAgICBKU1ZhbHVlIHByaW1WYWx1ZSA9IG9wZXJhbmQudG9QcmltaXRpdmUoZ2xvYmFsT2JqZWN0
LCBQcmVmZXJOdW1iZXIpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKIAogI2lmIFVTRShCSUdJTlQzMikKICAgICBpZiAocHJpbVZhbHVlLmlz
QmlnSW50MzIoKSkgewogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTQmlnSW50Ojp1bmFyeU1p
bnVzKGdsb2JhbE9iamVjdCwgcHJpbVZhbHVlLmJpZ0ludDMyQXNJbnQzMigpKTsKLSAgICAgICAg
T1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwor
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgICAgICBhcml0aFBy
b2ZpbGUtPm9ic2VydmVSZXN1bHQocmVzdWx0KTsKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihz
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7CiAgICAgfQogI2VuZGlmCiAgICAgaWYgKHByaW1WYWx1ZS5pc0hlYXBC
aWdJbnQoKSkgewogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTQmlnSW50Ojp1bmFyeU1pbnVz
KGdsb2JhbE9iamVjdCwgcHJpbVZhbHVlLmFzSGVhcEJpZ0ludCgpKTsKLSAgICAgICAgT1BFUkFU
SU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgICAgICBhcml0aFByb2ZpbGUt
Pm9ic2VydmVSZXN1bHQocmVzdWx0KTsKLSAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHJlc3VsdCk7CiAgICAgfQogCiAgICAgZG91YmxlIG51bWJlciA9IHByaW1WYWx1ZS50b051bWJl
cihnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKC1udW1iZXIpOwog
ICAgIGFyaXRoUHJvZmlsZS0+b2JzZXJ2ZVJlc3VsdChyZXN1bHQpOwotICAgIE9QRVJBVElPTl9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKIC8vIEZJWE1FOiBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8g
Y2FsbCB0aG9zZSBvcGVyYXRpb25WYWx1ZU5lZ2F0ZSwgc2luY2UgdGhlIG9wZXJhbmQgY2FuIGJl
IGEgQmlnSW50CiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhOZWdhdGVP
cHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3BlcmFuZCwgSklUTmVnSUMqIG5lZ0lDKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCiAgICAgSlNWYWx1ZSBvcGVyYW5kID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcGVyYW5k
KTsKIApAQCAtNDgzNiwxOSArNDY0MCwxOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQXJpdGhOZWdhdGVPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbAogI2Vu
ZGlmCiAKICAgICBKU1ZhbHVlIHByaW1WYWx1ZSA9IG9wZXJhbmQudG9QcmltaXRpdmUoZ2xvYmFs
T2JqZWN0LCBQcmVmZXJOdW1iZXIpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAogI2lmIFVTRShCSUdJTlQzMikKICAgICAvLyBGSVhNRTog
d2h5IGRvZXMgdGhpcyBmdW5jdGlvbiBwcm9maWxlIHRoZSBhcmd1bWVudCBidXQgbm90IHRoZSBy
ZXN1bHQ/CiAgICAgaWYgKHByaW1WYWx1ZS5pc0JpZ0ludDMyKCkpCi0gICAgICAgIE9QRVJBVElP
Tl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6dW5hcnlNaW51cyhnbG9i
YWxPYmplY3QsIHByaW1WYWx1ZS5iaWdJbnQzMkFzSW50MzIoKSkpKTsKKyAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJbnQ6OnVuYXJ5TWludXMo
Z2xvYmFsT2JqZWN0LCBwcmltVmFsdWUuYmlnSW50MzJBc0ludDMyKCkpKSk7CiAjZW5kaWYKICAg
ICBpZiAocHJpbVZhbHVlLmlzSGVhcEJpZ0ludCgpKQotICAgICAgICBPUEVSQVRJT05fUkVUVVJO
KHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJbnQ6OnVuYXJ5TWludXMoZ2xvYmFsT2JqZWN0
LCBwcmltVmFsdWUuYXNIZWFwQmlnSW50KCkpKSk7CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50Ojp1bmFyeU1pbnVzKGdsb2JhbE9iamVj
dCwgcHJpbVZhbHVlLmFzSGVhcEJpZ0ludCgpKSkpOwogCiAgICAgZG91YmxlIG51bWJlciA9IHBy
aW1WYWx1ZS50b051bWJlcihnbG9iYWxPYmplY3QpOwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBPUEVSQVRJT05fUkVUVVJO
KHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLW51bWJlcikpKTsKKyAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKC1udW1iZXIpKTsKIH0KIAogQUxXQVlTX0lOTElORSBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgdW5wcm9maWxlZFN1YihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQpA
QCAtNDg4MCw4ICs0Njg0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZh
bHVlU3ViLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgdW5wcm9maWxlZFN1YihnbG9i
YWxPYmplY3QsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpKTsKKyAgICByZXR1cm4gdW5wcm9maWxl
ZFN1YihnbG9iYWxPYmplY3QsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCiBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZCwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBCaW5hcnlBcml0aFByb2ZpbGUqIGFyaXRo
UHJvZmlsZSkpCkBAIC00ODkxLDkgKzQ2OTQsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iagog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHByb2Zp
bGVkU3ViKHZtLCBnbG9iYWxPYmplY3QsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFBy
b2ZpbGUpKTsKKyAgICByZXR1cm4gcHJvZmlsZWRTdWIodm0sIGdsb2JhbE9iamVjdCwgZW5jb2Rl
ZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25WYWx1ZVN1Yk9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVFN1YklDKiBzdWJJQykpCkBAIC00OTAxLDcgKzQ3MDMs
NiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVTdWJPcHRpbWl6ZSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iagogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAg
IGF1dG8gbm9uT3B0aW1pemVWYXJpYW50ID0gb3BlcmF0aW9uVmFsdWVTdWJOb09wdGltaXplOwog
ICAgIGlmIChCaW5hcnlBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IHN1YklDLT5hcml0aFBy
b2ZpbGUoKSkKQEAgLTQ5MTIsNyArNDcxMyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25WYWx1ZVN1Yk9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqCiAg
ICAgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+ZHVtcE1hdGhJQ1N0YXRzKCk7CiAjZW5kaWYKIAot
ICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHVucHJvZmlsZWRTdWIoZ2xvYmFsT2JqZWN0LCBl
bmNvZGVkT3AxLCBlbmNvZGVkT3AyKSk7CisgICAgcmV0dXJuIHVucHJvZmlsZWRTdWIoZ2xvYmFs
T2JqZWN0LCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblZhbHVlU3ViTm9PcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRTdWJJQyopKQpAQCAtNDkyMCw5ICs0NzIxLDggQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlU3ViTm9PcHRpbWl6ZSwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE8KICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAg
IEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
KTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBPUEVS
QVRJT05fUkVUVVJOKHNjb3BlLCB1bnByb2ZpbGVkU3ViKGdsb2JhbE9iamVjdCwgZW5jb2RlZE9w
MSwgZW5jb2RlZE9wMikpOworICAgIHJldHVybiB1bnByb2ZpbGVkU3ViKGdsb2JhbE9iamVjdCwg
ZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUU3ViSUMqIHN1YklDKSkKQEAgLTQ5MzAsNyArNDczMCw2
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkT3B0
aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
ICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAg
QmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBzdWJJQy0+YXJpdGhQcm9maWxlKCk7
CiAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZSk7CkBAIC00OTQyLDcgKzQ3NDEsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZE9wdGltaXplLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTRwogICAgIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmR1bXBNYXRoSUNT
dGF0cygpOwogI2VuZGlmCiAKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBwcm9maWxlZFN1
Yih2bSwgZ2xvYmFsT2JqZWN0LCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxl
LCBmYWxzZSkpOworICAgIHJldHVybiBwcm9maWxlZFN1Yih2bSwgZ2xvYmFsT2JqZWN0LCBlbmNv
ZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlLCBmYWxzZSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkTm9PcHRpbWl6ZSwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRTdWJJQyogc3ViSUMp
KQpAQCAtNDk1MCwxNCArNDc0OSwxMyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVmFsdWVTdWJQcm9maWxlZE5vT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSgogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAogICAgIEJpbmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0g
c3ViSUMtPmFyaXRoUHJvZmlsZSgpOwogICAgIEFTU0VSVChhcml0aFByb2ZpbGUpOwotICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUsIHByb2ZpbGVkU3ViKHZtLCBnbG9iYWxPYmplY3QsIGVuY29k
ZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUpKTsKKyAgICByZXR1cm4gcHJvZmlsZWRT
dWIodm0sIGdsb2JhbE9iamVjdCwgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmls
ZSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWJ1
Z2dlcldpbGxDYWxsTmF0aXZlRXhlY3V0YWJsZSwgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWJ1Z2dlcldpbGxDYWxsTmF0
aXZlRXhlY3V0YWJsZSwgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBU1NF
UlQoIWNhbGxGcmFtZS0+aXNOYXRpdmVDYWxsZWVGcmFtZSgpKTsKIApAQCAtNDk3Miw3ICs0Nzcw
LDcgQEAgSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlYnVnZ2Vy
V2lsbENhbGxOYXRpdmVFeGVjdXRhYmxlLCB2b2kKICAgICBkZWJ1Z2dlci0+d2lsbENhbGxOYXRp
dmVFeGVjdXRhYmxlKGNhbGxGcmFtZSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Qcm9jZXNzVHlwZVByb2ZpbGVyTG9nLCB2b2lkLCAoVk0qIHZtUG9p
bnRlcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHJvY2Vzc1R5cGVQcm9m
aWxlckxvZywgdm9pZCwgKFZNKiB2bVBvaW50ZXIpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50
ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtNDk4MCw3ICs0Nzc4LDcgQEAgSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblByb2Nlc3NUeXBlUHJvZmlsZXJMb2csIHZvaWQsIChWTSogdm0KICAgICB2bS50eXBl
UHJvZmlsZXJMb2coKS0+cHJvY2Vzc0xvZ0VudHJpZXModm0sICJMb2cgRnVsbCwgY2FsbGVkIGZy
b20gaW5zaWRlIGJhc2VsaW5lIEpJVCJfcyk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklU
X09QRVJBVElPTihvcGVyYXRpb25Qcm9jZXNzU2hhZG93Q2hpY2tlbkxvZywgdm9pZCwgKFZNKiB2
bVBvaW50ZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblByb2Nlc3NTaGFk
b3dDaGlja2VuTG9nLCB2b2lkLCAoVk0qIHZtUG9pbnRlcikpCiB7CiAgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC00OTg5LDcgKzQ3ODcsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHJvY2Vzc1NoYWRvd0NoaWNrZW5Mb2csIHZvaWQsIChWTSogdgogICAgIHZt
LnNoYWRvd0NoaWNrZW4oKS0+dXBkYXRlKHZtLCBjYWxsRnJhbWUpOwogfQogCi1KU0NfREVGSU5F
X05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmV0cmlldmVBbmRDbGVhckV4Y2VwdGlv
bklmQ2F0Y2hhYmxlLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlcikpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUmV0cmlldmVBbmRDbGVhckV4Y2VwdGlvbklmQ2F0Y2hhYmxlLCBK
U0NlbGwqLCAoVk0qIHZtUG9pbnRlcikpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4IDI2NGU3NzU5OTE1ZS4uMTQ1
MmU0MzI3OWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJKSVRNYXRoSUNGb3J3YXJkcy5oIgogI2luY2x1
ZGUgIkpJVE9wZXJhdGlvblZhbGlkYXRpb24uaCIKICNpbmNsdWRlICJNZWdhbW9ycGhpY0NhY2hl
LmgiCi0jaW5jbHVkZSAiT3BlcmF0aW9uUmVzdWx0LmgiCiAjaW5jbHVkZSAiUHJpdmF0ZUZpZWxk
UHV0S2luZC5oIgogI2luY2x1ZGUgIlVHUFJQYWlyLmgiCiAjaW5jbHVkZSA8d3RmL1BsYXRmb3Jt
Lmg+CkBAIC04MSw4ICs4MCw4IEBAIHVzaW5nIEpTSW5zdHJ1Y3Rpb24gPSBCYXNlSW5zdHJ1Y3Rp
b248SlNPcGNvZGVUcmFpdHM+OwogCiB0eXBlZGVmIGNoYXIqIFVudXNlZFB0cjsKIAotLy8gVGhl
c2UgdHlwZWRlZnMgcHJvdmlkZSB0eXBlY2hlY2tpbmcgd2hlbiBjb2RlIG5lZWRzIGEgdmFyaWFi
bGUgdG8gaG9sZCB0aGUgZnVuY3Rpb24gcG9pbnRlcgotLy8gdG8gYSBoZWxwZXIgcm91dGluZS4K
Ky8vIFRoZXNlIHR5cGVkZWZzIHByb3ZpZGUgdHlwZWNoZWNraW5nIHdoZW4gZ2VuZXJhdGluZyBj
YWxscyBvdXQgdG8gaGVscGVyIHJvdXRpbmVzOworLy8gdGhpcyBoZWxwcyBwcmV2ZW50IGNhbGxp
bmcgYSBoZWxwZXIgcm91dGluZSB3aXRoIHRoZSB3cm9uZyBhcmd1bWVudHMhCiAvKgogICAgIEtl
eToKICAgICBBOiBKU0FycmF5KgpAQCAtMTI3LDM4ICsxMjYsMzkgQEAgdHlwZWRlZiBjaGFyKiBV
bnVzZWRQdHI7CiAgICAgVWk6IHVpbnQzMl90CiAqLwogCi11c2luZyBKX0pJVE9wZXJhdGlvbl9H
Sk1pYyA9IE9wZXJhdGlvblJldHVyblR5cGU8RW5jb2RlZEpTVmFsdWU+KEpJVF9PUEVSQVRJT05f
QVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCB2b2lkKik7Ci11
c2luZyBKX0pJVE9wZXJhdGlvbl9HUCA9IE9wZXJhdGlvblJldHVyblR5cGU8RW5jb2RlZEpTVmFs
dWU+KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIHZvaWQqKTsK
LXVzaW5nIEpfSklUT3BlcmF0aW9uX0dQUCA9IE9wZXJhdGlvblJldHVyblR5cGU8RW5jb2RlZEpT
VmFsdWU+KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIHZvaWQq
LCB2b2lkKik7Ci11c2luZyBKX0pJVE9wZXJhdGlvbl9HUFBQID0gT3BlcmF0aW9uUmV0dXJuVHlw
ZTxFbmNvZGVkSlNWYWx1ZT4oSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2Jq
ZWN0Kiwgdm9pZCosIHZvaWQqLCB2b2lkKik7Ci11c2luZyBKX0pJVE9wZXJhdGlvbl9HSkogPSBP
cGVyYXRpb25SZXR1cm5UeXBlPEVuY29kZWRKU1ZhbHVlPihKSVRfT1BFUkFUSU9OX0FUVFJJQlVU
RVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwot
dXNpbmcgSl9KSVRPcGVyYXRpb25fR0pKTWljID0gT3BlcmF0aW9uUmV0dXJuVHlwZTxFbmNvZGVk
SlNWYWx1ZT4oSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCB2b2lkKik7Ci11c2luZyBGX0pJVE9wZXJhdGlv
bl9HRkpaWiA9IE9wZXJhdGlvblJldHVyblR5cGU8Q2FsbEZyYW1lKj4oSklUX09QRVJBVElPTl9B
VFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUs
IGludDMyX3QsIGludDMyX3QpOwotdXNpbmcgU3BydF9KSVRPcGVyYXRpb25fRUdDbGkgPSBPcGVy
YXRpb25SZXR1cm5UeXBlPFVHUFJQYWlyPihKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoQ2Fs
bEZyYW1lKiwgSlNHbG9iYWxPYmplY3QqLCBDYWxsTGlua0luZm8qKTsKK3VzaW5nIEpfSklUT3Bl
cmF0aW9uX0dKTWljID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICop
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIHZvaWQqKTsKK3VzaW5nIEpfSklUT3Bl
cmF0aW9uX0dQID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpT
R2xvYmFsT2JqZWN0Kiwgdm9pZCopOwordXNpbmcgSl9KSVRPcGVyYXRpb25fR1BQID0gRW5jb2Rl
ZEpTVmFsdWUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0Kiwgdm9p
ZCosIHZvaWQqKTsKK3VzaW5nIEpfSklUT3BlcmF0aW9uX0dQUFAgPSBFbmNvZGVkSlNWYWx1ZShK
SVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCB2b2lkKiwgdm9pZCos
IHZvaWQqKTsKK3VzaW5nIEpfSklUT3BlcmF0aW9uX0dKSiA9IEVuY29kZWRKU1ZhbHVlKEpJVF9P
UEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSk7Cit1c2luZyBKX0pJVE9wZXJhdGlvbl9HSkpNaWMgPSBFbmNvZGVkSlNW
YWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHZvaWQqKTsKK3VzaW5nIFpfSklUT3BlcmF0aW9uX0dK
WlogPSBpbnQzMl90KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsKK3VzaW5nIEZfSklUT3BlcmF0aW9u
X0dGSlpaID0gQ2FsbEZyYW1lKihKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJfdCk7Cit1
c2luZyBTcHJ0X0pJVE9wZXJhdGlvbl9FR0NsaSA9IFVHUFJQYWlyKEpJVF9PUEVSQVRJT05fQVRU
UklCVVRFUyAqKShDYWxsRnJhbWUqLCBKU0dsb2JhbE9iamVjdCosIENhbGxMaW5rSW5mbyopOwog
dXNpbmcgVl9KSVRPcGVyYXRpb25fQ2IgPSB2b2lkKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAq
KShDb2RlQmxvY2sqKTsKLXVzaW5nIFpfSklUT3BlcmF0aW9uX0cgPSBPcGVyYXRpb25SZXR1cm5U
eXBlPGludDMyX3Q+KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCop
OwotdXNpbmcgUF9KSVRPcGVyYXRpb25fVm1TdFpCID0gT3BlcmF0aW9uUmV0dXJuVHlwZTxjaGFy
Kj4oSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKFZNKiwgU3RydWN0dXJlKiwgaW50MzJfdCwg
QnV0dGVyZmx5Kik7Ci11c2luZyBQX0pJVE9wZXJhdGlvbl9HU3RaQiA9IE9wZXJhdGlvblJldHVy
blR5cGU8Y2hhcio+KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSosIGludDMyX3QsIEJ1dHRlcmZseSopOwotdXNpbmcgSl9KSVRPcGVyYXRpb25f
R0ogPSBPcGVyYXRpb25SZXR1cm5UeXBlPEVuY29kZWRKU1ZhbHVlPihKSVRfT1BFUkFUSU9OX0FU
VFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSk7Ci11c2luZyBKX0pJ
VE9wZXJhdGlvbl9HSkkgPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMg
KikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqKTsg
Ly8gRE9NR2V0dGVycwordXNpbmcgWl9KSVRPcGVyYXRpb25fRyA9IGludDMyX3QgKEpJVF9PUEVS
QVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCopOwordXNpbmcgUF9KSVRPcGVyYXRp
b25fVm1TdFpCID0gY2hhciooSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKFZNKiwgU3RydWN0
dXJlKiwgaW50MzJfdCwgQnV0dGVyZmx5Kik7Cit1c2luZyBQX0pJVE9wZXJhdGlvbl9HU3RaQiA9
IGNoYXIqKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSosIGludDMyX3QsIEJ1dHRlcmZseSopOwordXNpbmcgSl9KSVRPcGVyYXRpb25fR0ogPSBF
bmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSk7Cit1c2luZyBKX0pJVE9wZXJhdGlvbl9HSkkgPSBFbmNvZGVkSlNW
YWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqKTsKK3VzaW5nIEpfSklUT3BlcmF0aW9uX0dKSVAg
PSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqLCB2b2lkKik7CiB1c2luZyBD
X0pJVE9wZXJhdGlvbl9UVCA9IHVpbnRwdHJfdChKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKiko
U3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKTsKLXVzaW5nIENfSklUT3BlcmF0aW9uX0JfR0pzc0pz
cyA9IE9wZXJhdGlvblJldHVyblR5cGU8dWludHB0cl90PihKSVRfT1BFUkFUSU9OX0FUVFJJQlVU
RVMgKikoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5nKik7Ci11c2luZyBTX0pJ
VE9wZXJhdGlvbl9HQyA9IE9wZXJhdGlvblJldHVyblR5cGU8c2l6ZV90PihKSVRfT1BFUkFUSU9O
X0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKTsKLXVzaW5nIFNfSklUT3Bl
cmF0aW9uX0dDWiA9IE9wZXJhdGlvblJldHVyblR5cGU8c2l6ZV90PihKSVRfT1BFUkFUSU9OX0FU
VFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBpbnQzMl90KTsKLXVzaW5nIFNf
SklUT3BlcmF0aW9uX0dKSiA9IE9wZXJhdGlvblJldHVyblR5cGU8c2l6ZV90PihKSVRfT1BFUkFU
SU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUpOwotdXNpbmcgU19KSVRPcGVyYXRpb25fR0paWiA9IE9wZXJhdGlvblJldHVyblR5
cGU8c2l6ZV90PihKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJfdCk7Ci11c2luZyBWX0pJVE9wZXJhdGlvbl9H
SkpKID0gT3BlcmF0aW9uUmV0dXJuVHlwZTx2b2lkPihKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMg
KikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlKTsKLXVzaW5nIFZfSklUT3BlcmF0aW9uX0dDQ0ogPSBPcGVyYXRpb25SZXR1cm5U
eXBlPHZvaWQ+KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlKTsKLXVzaW5nIFpfSklUT3BlcmF0aW9uX0dK
WlogPSBPcGVyYXRpb25SZXR1cm5UeXBlPGludDMyX3Q+KEpJVF9PUEVSQVRJT05fQVRUUklCVVRF
UyAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsK
LXVzaW5nIEZfSklUT3BlcmF0aW9uX0dGSlpaID0gT3BlcmF0aW9uUmV0dXJuVHlwZTxDYWxsRnJh
bWUqPihKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJfdCk7Cit1c2luZyBDX0pJVE9wZXJh
dGlvbl9CX0dKc3NKc3MgPSB1aW50cHRyX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpT
R2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopOwordXNpbmcgU19KSVRPcGVyYXRp
b25fR0MgPSBzaXplX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0
KiwgSlNDZWxsKik7Cit1c2luZyBTX0pJVE9wZXJhdGlvbl9HQ1ogPSBzaXplX3QoSklUX09QRVJB
VElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgaW50MzJfdCk7Cit1
c2luZyBTX0pJVE9wZXJhdGlvbl9HSkogPSBzaXplX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVT
ICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKK3Vz
aW5nIFZfSklUT3BlcmF0aW9uX0dKSkogPSB2b2lkKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAq
KShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUpOwordXNpbmcgVl9KSVRPcGVyYXRpb25fR0NDSiA9IHZvaWQoSklUX09QRVJBVElP
Tl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiwgRW5jb2Rl
ZEpTVmFsdWUpOwordXNpbmcgWl9KSVRPcGVyYXRpb25fR0paWiA9IGludDMyX3QoSklUX09QRVJB
VElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIGludDMy
X3QsIGludDMyX3QpOwordXNpbmcgRl9KSVRPcGVyYXRpb25fR0ZKWlogPSBDYWxsRnJhbWUqKEpJ
VF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSosIEVu
Y29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsKIAogLy8gVGhpcyBtZXRob2QgaXMgdXNl
ZCB0byBsb29rdXAgYW4gZXhjZXB0aW9uIGhhbmRlciwga2V5ZWQgYnkgZmF1bHRMb2NhdGlvbiwg
d2hpY2ggaXMKIC8vIHRoZSByZXR1cm4gbG9jYXRpb24gZnJvbSBvbmUgb2YgdGhlIGNhbGxzIG91
dCB0byBvbmUgb2YgdGhlIGhlbHBlciBvcGVyYXRpb25zIGFib3ZlLgogCi1KU0NfREVDTEFSRV9O
T0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIsIHZv
aWQsIChWTSopKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TG9va3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxsZXJGcmFtZSwgdm9pZCwgKFZNKikpOwotSlND
X0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25WTUhhbmRsZUV4Y2VwdGlv
biwgdm9pZCwgKFZNKikpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVy
YXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvckZyb21UaHVuaywgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Mb29rdXBFeGNlcHRp
b25IYW5kbGVyLCB2b2lkLCAoVk0qKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkxvb2t1cEV4Y2VwdGlvbkhhbmRsZXJGcm9tQ2FsbGVyRnJhbWUsIHZvaWQsIChWTSopKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVk1IYW5kbGVFeGNlcHRpb24sIHZv
aWQsIChWTSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGFj
a092ZXJmbG93RXJyb3JGcm9tVGh1bmssIHZvaWQsIChKU0dsb2JhbE9iamVjdCopKTsKIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dJdGVyYXRvclJlc3VsdElzTm90T2Jq
ZWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkdldFdyYXBwZWRWYWx1ZUZvckNhbGxlciwgRW5jb2RlZEpTVmFsdWUsIChKU1Jl
bW90ZUZ1bmN0aW9uKiwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0V3JhcHBlZFZhbHVlRm9yVGFyZ2V0LCBFbmNvZGVkSlNWYWx1ZSwgKEpT
UmVtb3RlRnVuY3Rpb24qLCBFbmNvZGVkSlNWYWx1ZSkpOwpAQCAtMTY2LDcgKzE2Niw3IEBAIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0ZXJpYWxpemVSZW1vdGVGdW5jdGlv
blRhcmdldENvZGUsIFVHUFJQYWlyCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk1hdGVyaWFsaXplQm91bmRGdW5jdGlvblRhcmdldENvZGUsIFVHUFJQYWlyLCAoSlNCb3VuZEZ1
bmN0aW9uKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd1JlbW90
ZUZ1bmN0aW9uRXhjZXB0aW9uLCBFbmNvZGVkSlNWYWx1ZSwgKEpTUmVtb3RlRnVuY3Rpb24qKSk7
CiAKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGFj
a092ZXJmbG93RXJyb3IsIHZvaWQsIChDb2RlQmxvY2sqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yLCB2b2lkLCAoQ29kZUJsb2Nr
KikpOwogCiAvLyBJQyByZWxhdGVkIGZ1bmN0aW9ucyBhbmQgZ2VuZXJpYyBoZWxwZXJzLgogLy8K
QEAgLTMxMiw3ICszMTIsNiBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdl
dFByaXZhdGVOYW1lQnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSgogCiAvLyBFbmQgb2Yg
SUMgcmVsYXRlZCBmdW5jdGlvbnMgYW5kIGdlbmVyaWMgaGVscGVycy4KIAotLy8gVGhlc2UgdXNl
IHZvaWQqIGluc3RlYWQgb2YgQ2FsbEZyYW1lKiB0byBwcmV2ZW50IHNldHVwQXJndW1lbnRzIGZy
b20gYXNzdW1pbmcgd2Ugd2FudCB0aGUgY3VycmVudCBjYWxsIGZyYW1lLgogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsRGlyZWN0RXZhbFNsb3BweSwgRW5jb2RlZEpTVmFs
dWUsICh2b2lkKiwgSlNTY29wZSosIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxEaXJlY3RFdmFsU3RyaWN0LCBFbmNvZGVkSlNWYWx1ZSwg
KHZvaWQqLCBKU1Njb3BlKiwgRW5jb2RlZEpTVmFsdWUpKTsKIApAQCAtMzcyLDkgKzM3MSw5IEBA
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlCiAjZW5kaWYKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXNoV2l0aFNjb3BlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBK
U0NlbGwqIGN1cnJlbnRTY29wZUNlbGwsIEVuY29kZWRKU1ZhbHVlIG9iamVjdCkpOwotSlNDX0RF
Q0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXNoV2l0aFNjb3BlT2JqZWN0
LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjdXJyZW50
U2NvcGVDZWxsLCBKU09iamVjdCogb2JqZWN0KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblNpemVGcmFtZUZvckZvcndhcmRBcmd1bWVudHMsIHNpemVfdCwgKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IG51bVVzZWRTdGFja1Ns
b3RzLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblNpemVGcmFtZUZvclZhcmFyZ3MsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IG51bVVzZWRTdGFja1Nsb3RzLCBp
bnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1c2hXaXRoU2NvcGVPYmplY3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0NlbGwqIGN1cnJlbnRTY29wZUNlbGwsIEpTT2JqZWN0KiBvYmplY3QpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yRm9yd2FyZEFy
Z3VtZW50cywgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYXJndW1l
bnRzLCBpbnQzMl90IG51bVVzZWRTdGFja1Nsb3RzLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFtZUZvclZhcmFy
Z3MsIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywg
aW50MzJfdCBudW1Vc2VkU3RhY2tTbG90cywgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCkpOwog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cEZvcndhcmRBcmd1bWVudHNG
cmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpT
VmFsdWUsIGludDMyX3QsIGludDMyX3QgbGVuZ3RoKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblNldHVwVmFyYXJnc0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIGludDMyX3QgZmlyc3RW
YXJBcmdPZmZzZXQsIGludDMyX3QgbGVuZ3RoKSk7CiAKQEAgLTM4OCwxMyArMzg3LDEzIEBAIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0VG9TY29wZSwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiwgY29uc3QgSlNJCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blJlYWxsb2NhdGVCdXR0ZXJmbHlUb0hhdmVQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFj
aXR5LCBjaGFyKiwgKFZNKiwgSlNPYmplY3QqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblJlYWxsb2NhdGVCdXR0ZXJmbHlUb0dyb3dQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIq
LCAoVk0qLCBKU09iamVjdCosIHNpemVfdCBuZXdTaXplKSk7CiAKLUpTQ19ERUNMQVJFX05PRVhD
RVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV3JpdGVCYXJyaWVyU2xvd1BhdGgsIHZvaWQsIChW
TSosIEpTQ2VsbCopKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uT1NSV3JpdGVCYXJyaWVyLCB2b2lkLCAoVk0qLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldyaXRlQmFycmllclNsb3dQYXRoLCB2b2lkLCAoVk0qLCBK
U0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9TUldyaXRlQmFy
cmllciwgdm9pZCwgKFZNKiwgSlNDZWxsKikpOwogCi1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enosIHZvaWQsIChKU0dsb2JhbE9iamVjdCop
KTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRXhjZXB0aW9u
RnV6eldpdGhDYWxsRnJhbWUsIHZvaWQsIChWTSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRXhjZXB0aW9uRnV6eiwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FeGNlcHRpb25GdXp6V2l0aENhbGxGcmFt
ZSwgdm9pZCwgKFZNKikpOwogCi1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblJldHJpZXZlQW5kQ2xlYXJFeGNlcHRpb25JZkNhdGNoYWJsZSwgSlNDZWxsKiwgKFZN
KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXRyaWV2ZUFuZENsZWFy
RXhjZXB0aW9uSWZDYXRjaGFibGUsIEpTQ2VsbCosIChWTSopKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbSwgc2l6ZV90LCAoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTT2JqZWN0KiBjb25zdHJ1Y3Rvciwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEhhc0luc3RhbmNlKSk7CiAKICNpZiBDUFUoQVJNNjQpIHx8
IChDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykpCkBAIC00MjQsMTAgKzQyMywxMCBAQCBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlU3ViTm9PcHRpbWl6ZSwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25W
YWx1ZVN1YlByb2ZpbGVkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBK
SVRTdWJJQyopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVTdWJQ
cm9maWxlZE5vT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRTdWJJ
QyopKTsKIAotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWJ1
Z2dlcldpbGxDYWxsTmF0aXZlRXhlY3V0YWJsZSwgdm9pZCwgKENhbGxGcmFtZSopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVidWdnZXJXaWxsQ2FsbE5hdGl2ZUV4ZWN1
dGFibGUsIHZvaWQsIChDYWxsRnJhbWUqKSk7CiAKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHJvY2Vzc1R5cGVQcm9maWxlckxvZywgdm9pZCwgKFZNKikpOwot
SlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Qcm9jZXNzU2hhZG93
Q2hpY2tlbkxvZywgdm9pZCwgKFZNKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Qcm9jZXNzVHlwZVByb2ZpbGVyTG9nLCB2b2lkLCAoVk0qKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblByb2Nlc3NTaGFkb3dDaGlja2VuTG9nLCB2b2lkLCAoVk0q
KSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L09wZXJhdGlvblJlc3VsdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9P
cGVyYXRpb25SZXN1bHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGMxNmM3NmVh
OGJiLi4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9PcGVyYXRp
b25SZXN1bHQuaAorKysgL2Rldi9udWxsCkBAIC0xLDE3OSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDI0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVk
ZSAiR1BSSW5mby5oIgotI2luY2x1ZGUgIkpJVE9wZXJhdGlvblZhbGlkYXRpb24uaCIKLSNpbmNs
dWRlICJUaHJvd1Njb3BlLmgiCi0KLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb25UcmFpdHMuaD4KLSNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotCi10ZW1wbGF0
ZTx0eXBlbmFtZSBUPgotY29uY2VwdCBjYW5NYWtlRXhjZXB0aW9uT3BlcmF0aW9uUmVzdWx0ID0K
LSAgICBzdGQ6OmlzX3N0YW5kYXJkX2xheW91dF92PFQ+Ci0gICAgJiYgc3RkOjppc190cml2aWFs
X3Y8VD4KLSNpZiBDUFUoQVJNNjQpCi0gICAgJiYgIXN0ZDo6aXNfZmxvYXRpbmdfcG9pbnRfdjxU
PiAvLyBUaGUgQVJNNjQgQUJJIHNheXMgdGhhdCB0aGlzIHNob3VsZCBiZSByZXR1cm5lZCBpbiB4
MCBpbnN0ZWFkIG9mIGQwLiBTZWVtcyB1bmxpa2VseSBpdCdzIHdvcnRoIGl0IHRvIGRvIHRoZSBl
eHRyYSBmbW92LgotI2VuZGlmCi0vLyBGSVhNRTogV2UgY291bGQgZW5hYmxlIFdpbmRvd3Mgd2hl
biB3ZSBzd2l0Y2ggdG8gc3lzdl9hYmkgdmlhIGNsYW5nLWNsIHRoZXJlLgotI2lmICEoQ1BVKEFS
TTY0KSB8fCBDUFUoWDg2XzY0KSkgfHwgT1MoV0lORE9XUykKLSAgICAmJiBmYWxzZSAvLyBXZSBk
b24ndCBoYXZlIGVub3VnaCByZXR1cm4gcmVnaXN0ZXJzIG9uIDMyLWJpdCAoQVJNNjRfMzIgc2Vl
bXMgdG8gd29yaykgKGRpZG4ndCB0ZXN0IFJJU0NWNjQpCi0jZW5kaWYKLSAgICAmJiBzaXplb2Yo
VCkgPD0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsKLQotc3RydWN0IEV4Y2VwdGlvbk9wZXJhdGlvblJl
c3VsdEJhc2UgeyB9OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RydWN0IEV4Y2VwdGlvbk9w
ZXJhdGlvblJlc3VsdCA6IHB1YmxpYyBFeGNlcHRpb25PcGVyYXRpb25SZXN1bHRCYXNlIHsKLSAg
ICB1c2luZyBSZXN1bHRUeXBlID0gVDsKLSAgICBUIHZhbHVlOwotICAgIEV4Y2VwdGlvbiogZXhj
ZXB0aW9uOwotfTsKLQotdGVtcGxhdGU8Pgotc3RydWN0IEV4Y2VwdGlvbk9wZXJhdGlvblJlc3Vs
dDx2b2lkPiA6IHB1YmxpYyBFeGNlcHRpb25PcGVyYXRpb25SZXN1bHRCYXNlIHsKLSAgICB1c2lu
ZyBSZXN1bHRUeXBlID0gdm9pZDsKLSAgICBFeGNlcHRpb24qIGV4Y2VwdGlvbjsKLX07Ci0KLXRl
bXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGU+Ci1jb25jZXB0IE9wZXJhdGlvbkhhc1Jlc3Vs
dCA9IEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+OjpoYXNSZXN1bHQgJiYgIXN0ZDo6aXNf
c2FtZV92PHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+OjpSZXN1bHRUeXBl
LCBFeGNlcHRpb25PcGVyYXRpb25SZXN1bHQ8dm9pZD4+OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBU
PgotY29uY2VwdCBpc0V4Y2VwdGlvbk9wZXJhdGlvblJlc3VsdCA9IHN0ZDo6aXNfYmFzZV9vZl92
PEV4Y2VwdGlvbk9wZXJhdGlvblJlc3VsdEJhc2UsIFQ+OwotCi0vLyBOb3RlOiBXZSBhbHdheXMg
cmV0dXJuIGFuIGV4Y2VwdGlvbiBpbiBhIHJlZ2lzdGVyIGlmIHRoZSBvcGVyYXRpb24ncyByZXR1
cm4gdHlwZSBpcyB2b2lkIG9uIGFsbCBwbGF0Zm9ybXMuCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgot
dXNpbmcgT3BlcmF0aW9uUmV0dXJuVHlwZSA9IHN0ZDo6Y29uZGl0aW9uYWxfdDwoc3RkOjppc19z
YW1lX3Y8VCwgdm9pZD4gfHwgY2FuTWFrZUV4Y2VwdGlvbk9wZXJhdGlvblJlc3VsdDxUPiksIEV4
Y2VwdGlvbk9wZXJhdGlvblJlc3VsdDxUPiwgVD47Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1y
ZXF1aXJlcyAoaXNFeGNlcHRpb25PcGVyYXRpb25SZXN1bHQ8VD4pCi1jb25zdGV4cHIgR1BSUmVn
IG9wZXJhdGlvbkV4Y2VwdGlvblJlZ2lzdGVyKCkKLXsKLSAgICBpZiAoc3RkOjppc19mbG9hdGlu
Z19wb2ludF92PHR5cGVuYW1lIFQ6OlJlc3VsdFR5cGU+IHx8IHN0ZDo6aXNfc2FtZV92PHR5cGVu
YW1lIFQ6OlJlc3VsdFR5cGUsIHZvaWQ+KQotICAgICAgICByZXR1cm4gR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFI7Ci0gICAgcmV0dXJuIEdQUkluZm86OnJldHVyblZhbHVlR1BSMjsKLX0KLQotdGVt
cGxhdGU8dHlwZW5hbWUgVD4KLXJlcXVpcmVzICghaXNFeGNlcHRpb25PcGVyYXRpb25SZXN1bHQ8
VD4pCi1jb25zdGV4cHIgR1BSUmVnIG9wZXJhdGlvbkV4Y2VwdGlvblJlZ2lzdGVyKCkgeyByZXR1
cm4gSW52YWxpZEdQUlJlZzsgfQotCi0vLyBUaGlzIGNsYXNzIGV4aXN0cyBzbyB3ZSBjYW4gY2Fz
dCBFeGNlcHRpb25PcGVyYXRpb25JbXBsaWNpdFJlc3VsdDxGcm9tPiB0byBFeGNlcHRpb25PcGVy
YXRpb25SZXN1bHQ8VG8+IGltcGxpY2l0eSB3aGlsZSBFeGNlcHRpb25PcGVyYXRpb25SZXN1bHQg
cmVtYWlucyBQT0QuCi0vLyBGSVhNRTogd2UgY291bGQgdXNlIF9fYXRyaWJ1dGVfXygodHJpdmlh
bF9hYmkpKSB3aGVuIHdlIG5vIGxvbmdlciBzdXBwb3J0IE1TVkMuCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBGcm9tPgotc3RydWN0IEV4Y2VwdGlvbk9wZXJhdGlvbkltcGxpY2l0UmVzdWx0IHsKLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUbz4KLSAgICByZXF1aXJlcyBzdGQ6OmlzX2NvbnZlcnRpYmxlX3Y8
RnJvbSwgVG8+Ci0gICAgQUxXQVlTX0lOTElORSBvcGVyYXRvciBFeGNlcHRpb25PcGVyYXRpb25S
ZXN1bHQ8VG8+KCkKLSAgICB7Ci0gICAgICAgIC8vIEZvciB3aGF0ZXZlciByZWFzb24gYWdncmVn
YXRlIGluaXRpYWxpemF0aW9uIGRvZXNuJ3Qgc2VlbSB0byB3b3JrIGhlcmUuCi0gICAgICAgIEV4
Y2VwdGlvbk9wZXJhdGlvblJlc3VsdDxUbz4gcmVzdWx0OwotICAgICAgICByZXN1bHQudmFsdWUg
PSB2YWx1ZTsKLSAgICAgICAgcmVzdWx0LmV4Y2VwdGlvbiA9IGV4Y2VwdGlvbjsKLSAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUbz4KLSAgICBB
TFdBWVNfSU5MSU5FIG9wZXJhdG9yIFRvKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB2YWx1ZTsK
LSAgICB9Ci0KLSAgICBGcm9tIHZhbHVlOwotICAgIEV4Y2VwdGlvbiogZXhjZXB0aW9uOwotfTsK
LQotdGVtcGxhdGU8Pgotc3RydWN0IEV4Y2VwdGlvbk9wZXJhdGlvbkltcGxpY2l0UmVzdWx0PHZv
aWQ+IHsKLSAgICBBTFdBWVNfSU5MSU5FIG9wZXJhdG9yIEV4Y2VwdGlvbk9wZXJhdGlvblJlc3Vs
dDx2b2lkPigpCi0gICAgewotICAgICAgICBFeGNlcHRpb25PcGVyYXRpb25SZXN1bHQ8dm9pZD4g
cmVzdWx0OwotICAgICAgICByZXN1bHQuZXhjZXB0aW9uID0gZXhjZXB0aW9uOwotICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIEV4Y2VwdGlvbiogZXhjZXB0aW9uOwotfTsKLQot
Ly8gV2UgY2FuJ3QgaGF2ZSBhIGNvbnN0cnVjdG9yIHNpbmNlIHRoYXQgd291bGQgbWFrZSBFeGNl
cHRpb25PcGVyYXRpb25SZXN1bHQgbm9uLXBvZCBhbmQgdGh1cyBub3QgcmV0dXJuZWQgaW4gcmVn
aXN0ZXJzLgotdGVtcGxhdGU8dHlwZW5hbWUgU2NvcGUsIHR5cGVuYW1lIFQ+Ci1yZXF1aXJlcyBj
YW5NYWtlRXhjZXB0aW9uT3BlcmF0aW9uUmVzdWx0PFQ+Ci1BTFdBWVNfSU5MSU5FIEV4Y2VwdGlv
bk9wZXJhdGlvbkltcGxpY2l0UmVzdWx0PFQ+IG1ha2VPcGVyYXRpb25SZXN1bHQoU2NvcGUmIHNj
b3BlLCBUIHJlc3VsdCkKLXsKLSAgICByZXR1cm4geyByZXN1bHQsIHNjb3BlLmV4Y2VwdGlvbigp
IH07Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFNjb3BlPgotQUxXQVlTX0lOTElORSBFeGNlcHRp
b25PcGVyYXRpb25JbXBsaWNpdFJlc3VsdDx2b2lkPiBtYWtlT3BlcmF0aW9uUmVzdWx0KFNjb3Bl
JiBzY29wZSkKLXsKLSAgICByZXR1cm4geyBzY29wZS5leGNlcHRpb24oKSB9OwotfQotCi10ZW1w
bGF0ZTx0eXBlbmFtZSBTY29wZSwgdHlwZW5hbWUgVD4KLXJlcXVpcmVzICghY2FuTWFrZUV4Y2Vw
dGlvbk9wZXJhdGlvblJlc3VsdDxUPikKLUFMV0FZU19JTkxJTkUgVCBtYWtlT3BlcmF0aW9uUmVz
dWx0KFNjb3BlJiBzY29wZSwgVCByZXN1bHQpCi17Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCByZXN1bHQpOwotfQotCi0jZGVmaW5lIE9QRVJBVElPTl9SRVRVUk4oc2NvcGVfXywgLi4u
KSByZXR1cm4gbWFrZU9wZXJhdGlvblJlc3VsdChzY29wZV9fLCAjIyBfX1ZBX0FSR1NfXyk7Ci0j
ZGVmaW5lIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlX18sIC4uLikgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZV9fLCBtYWtlT3BlcmF0aW9uUmVzdWx0KHNjb3BlX18sICMjIF9f
VkFfQVJHU19fKSkKLQotI2lmIENPTVBJTEVSKENMQU5HKQotCi0jZGVmaW5lIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04oZnVuY3Rpb25OYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzKSBcCi0g
ICAgX1ByYWdtYSgiY2xhbmcgZGlhZ25vc3RpYyBwdXNoIikgXAotICAgIF9QcmFnbWEoImNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCBcIi1XcmV0dXJuLXR5cGUtYy1saW5rYWdlXCIiKSBcCi0gICAg
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTl9JTVBMKGZ1bmN0aW9uTmFtZSwgSlNDOjpPcGVyYXRp
b25SZXR1cm5UeXBlPHJldHVyblR5cGU+LCBwYXJhbWV0ZXJzKSBcCi0gICAgX1ByYWdtYSgiY2xh
bmcgZGlhZ25vc3RpYyBwb3AiKQotCi0jZGVmaW5lIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT05f
V0lUSE9VVF9XVEZfSU5URVJOQUwoZnVuY3Rpb25OYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJz
KSBcCi0gICAgX1ByYWdtYSgiY2xhbmcgZGlhZ25vc3RpYyBwdXNoIikgXAotICAgIF9QcmFnbWEo
ImNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCBcIi1XcmV0dXJuLXR5cGUtYy1saW5rYWdlXCIiKSBc
Ci0gICAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTF9JTVBM
KGZ1bmN0aW9uTmFtZSwgSlNDOjpPcGVyYXRpb25SZXR1cm5UeXBlPHJldHVyblR5cGU+LCBwYXJh
bWV0ZXJzKSBcCi0gICAgX1ByYWdtYSgiY2xhbmcgZGlhZ25vc3RpYyBwb3AiKQotCi0jZWxzZQot
Ci0jZGVmaW5lIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04oZnVuY3Rpb25OYW1lLCByZXR1cm5U
eXBlLCBwYXJhbWV0ZXJzKSBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX0lNUEwoZnVuY3Rpb25O
YW1lLCBKU0M6Ok9wZXJhdGlvblJldHVyblR5cGU8cmV0dXJuVHlwZT4sIHBhcmFtZXRlcnMpCi0j
ZGVmaW5lIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwoZnVu
Y3Rpb25OYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzKSBKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMX0lNUEwoZnVuY3Rpb25OYW1lLCBKU0M6Ok9wZXJhdGlv
blJldHVyblR5cGU8cmV0dXJuVHlwZT4sIHBhcmFtZXRlcnMpCi0KLSNlbmRpZgotCi0jZGVmaW5l
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihmdW5jdGlvbk5hbWUsIHJldHVyblR5cGUsIHBhcmFt
ZXRlcnMpIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTl9JTVBMKGZ1bmN0aW9uTmFtZSwgSlNDOjpP
cGVyYXRpb25SZXR1cm5UeXBlPHJldHVyblR5cGU+LCBwYXJhbWV0ZXJzKQotCi0jZGVmaW5lIEpT
Q19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oZnVuY3Rpb25OYW1lLCByZXR1cm5UeXBl
LCBwYXJhbWV0ZXJzKSBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX0lNUEwoZnVuY3Rpb25OYW1l
LCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzKQotI2RlZmluZSBKU0NfREVDTEFSRV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyhmdW5jdGlvbk5hbWUsIGF0dHJpYnV0ZXMsIHJl
dHVyblR5cGUsIHBhcmFtZXRlcnMpIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT05fV0lUSF9BVFRS
SUJVVEVTX0lNUEwoZnVuY3Rpb25OYW1lLCBhdHRyaWJ1dGVzLCByZXR1cm5UeXBlLCBwYXJhbWV0
ZXJzKQotI2RlZmluZSBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRf
V1RGX0lOVEVSTkFMKGZ1bmN0aW9uTmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycykgSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTF9JTVBMKGZ1bmN0aW9uTmFt
ZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycykKLQotI2RlZmluZSBKU0NfREVGSU5FX05PRVhDRVBU
X0pJVF9PUEVSQVRJT05fV0lUSF9BVFRSSUJVVEVTKGZ1bmN0aW9uTmFtZSwgYXR0cmlidXRlcywg
cmV0dXJuVHlwZSwgcGFyYW1ldGVycykgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRU
UklCVVRFU19JTVBMKGZ1bmN0aW9uTmFtZSwgYXR0cmlidXRlcywgcmV0dXJuVHlwZSwgcGFyYW1l
dGVycykKLSNkZWZpbmUgSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKGZ1bmN0aW9u
TmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycykgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX0lN
UEwoZnVuY3Rpb25OYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzKQotCi19IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFRodW5r
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmgKaW5kZXggMTAw
NjI4OTI1ZjgzLi5jZDQwOTAwZWZhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFRodW5rcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFRodW5rcy5oCkBAIC0zOCw4ICszOCw4IEBAIHR5cGVkZWYgaW50NjRfdCBFbmNvZGVkSlNW
YWx1ZTsKIGV4dGVybiAiQyIgewogICAgIEVuY29kZWRKU1ZhbHVlIHZtRW50cnlUb0phdmFTY3Jp
cHQodm9pZCosIFZNKiwgUHJvdG9DYWxsRnJhbWUqKTsKICAgICBFbmNvZGVkSlNWYWx1ZSB2bUVu
dHJ5VG9OYXRpdmUodm9pZCosIFZNKiwgUHJvdG9DYWxsRnJhbWUqKTsKLSAgICBFbmNvZGVkSlNW
YWx1ZSB2bUVudHJ5Q3VzdG9tR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSwgdm9pZCopOwotICAgIHZvaWQgdm1FbnRyeUN1c3RvbVNldHRlcihKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
LCB2b2lkKik7CisgICAgRW5jb2RlZEpTVmFsdWUgdm1FbnRyeUN1c3RvbUdldHRlcihDUFVSZWdp
c3RlciwgQ1BVUmVnaXN0ZXIsIENQVVJlZ2lzdGVyLCBDUFVSZWdpc3Rlcik7CisgICAgRW5jb2Rl
ZEpTVmFsdWUgdm1FbnRyeUN1c3RvbVNldHRlcihDUFVSZWdpc3RlciwgQ1BVUmVnaXN0ZXIsIENQ
VVJlZ2lzdGVyLCBDUFVSZWdpc3RlciwgQ1BVUmVnaXN0ZXIpOwogICAgIEVuY29kZWRKU1ZhbHVl
IHZtRW50cnlIb3N0RnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCB2b2lkKik7
CiAKICNpZiBDUFUoQVJNNjQpICYmIENQVShBRERSRVNTNjQpICYmICFFTkFCTEUoQ19MT09QKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BdG9taWNzT2JqZWN0LmNwcAppbmRl
eCAyZjA3YTY5NjcxYWYuLjU1OTJiNTlmODQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAKQEAgLTYxNyw5ICs2MTcsOCBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc0FkZCwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3Bl
cmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIGFyZ3Nb
XSA9IHtKU1ZhbHVlOjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRleCksIEpTVmFs
dWU6OmRlY29kZShvcGVyYW5kKX07Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgYXRvbWlj
UmVhZE1vZGlmeVdyaXRlKGdsb2JhbE9iamVjdCwgdm0sIGFyZ3MsIEFkZEZ1bmMoKSkpOworICAg
IHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCB2bSwgYXJncywgQWRk
RnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NB
bmQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJh
bmQpKQpAQCAtNjI3LDkgKzYyNiw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25BdG9taWNzQW5kLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgYXJnc1tdID0ge0pTVmFsdWU6OmRlY29kZShiYXNl
KSwgSlNWYWx1ZTo6ZGVjb2RlKGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKG9wZXJhbmQpfTsKLSAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2Jq
ZWN0LCB2bSwgYXJncywgQW5kRnVuYygpKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlX
cml0ZShnbG9iYWxPYmplY3QsIHZtLCBhcmdzLCBBbmRGdW5jKCkpOwogfQogCiBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc0NvbXBhcmVFeGNoYW5nZSwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNl
LCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZXhwZWN0ZWQsIEVuY29kZWRK
U1ZhbHVlIG5ld1ZhbHVlKSkKQEAgLTYzNyw5ICs2MzUsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQXRvbWljc0NvbXBhcmVFeGNoYW5nZSwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsbwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIGFyZ3NbXSA9IHtKU1ZhbHVl
OjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRleCksIEpTVmFsdWU6OmRlY29kZShl
eHBlY3RlZCksIEpTVmFsdWU6OmRlY29kZShuZXdWYWx1ZSl9OwotICAgIE9QRVJBVElPTl9SRVRV
Uk4oc2NvcGUsIGF0b21pY1JlYWRNb2RpZnlXcml0ZShnbG9iYWxPYmplY3QsIHZtLCBhcmdzLCBD
b21wYXJlRXhjaGFuZ2VGdW5jKCkpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRl
KGdsb2JhbE9iamVjdCwgdm0sIGFyZ3MsIENvbXBhcmVFeGNoYW5nZUZ1bmMoKSk7CiB9CiAKIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzRXhjaGFuZ2UsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFz
ZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpKQpAQCAtNjQ3
LDkgKzY0NCw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzRXhj
aGFuZ2UsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplCiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogICAgIEpTVmFsdWUgYXJnc1tdID0ge0pTVmFsdWU6OmRlY29kZShiYXNlKSwgSlNWYWx1ZTo6
ZGVjb2RlKGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKG9wZXJhbmQpfTsKLSAgICBPUEVSQVRJT05f
UkVUVVJOKHNjb3BlLCBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCB2bSwgYXJn
cywgRXhjaGFuZ2VGdW5jKCkpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKGds
b2JhbE9iamVjdCwgdm0sIGFyZ3MsIEV4Y2hhbmdlRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NJc0xvY2tGcmVlLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHNpemUpKQpAQCAt
NjU3LDggKzY1Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNz
SXNMb2NrRnJlZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iCiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGlzTG9ja0ZyZWUoZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlOjpkZWNvZGUoc2l6ZSkpKTsKKyAgICByZXR1cm4gaXNMb2NrRnJlZShnbG9iYWxP
YmplY3QsIEpTVmFsdWU6OmRlY29kZShzaXplKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25BdG9taWNzTG9hZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRl
eCkpCkBAIC02NjYsOSArNjYxLDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkF0b21pY3NMb2FkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KgogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIGFyZ3NbXSA9IHtKU1ZhbHVlOjpkZWNvZGUoYmFzZSks
IEpTVmFsdWU6OmRlY29kZShpbmRleCl9OwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGF0
b21pY1JlYWRNb2RpZnlXcml0ZShnbG9iYWxPYmplY3QsIHZtLCBhcmdzLCBMb2FkRnVuYygpKSk7
CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZShnbG9iYWxPYmplY3QsIHZtLCBhcmdz
LCBMb2FkRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0
b21pY3NPciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUg
b3BlcmFuZCkpCkBAIC02NzYsOSArNjcwLDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkF0b21pY3NPciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2wKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSBhcmdzW10gPSB7SlNWYWx1ZTo6ZGVjb2Rl
KGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUob3BlcmFuZCl9
OwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIGF0b21pY1JlYWRNb2RpZnlXcml0ZShnbG9i
YWxPYmplY3QsIHZtLCBhcmdzLCBPckZ1bmMoKSkpOworICAgIHJldHVybiBhdG9taWNSZWFkTW9k
aWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCB2bSwgYXJncywgT3JGdW5jKCkpOwogfQogCiBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc1N0b3JlLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29k
ZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSkKQEAgLTY4Niw4ICs2Nzks
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc1N0b3JlLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KgogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBP
UEVSQVRJT05fUkVUVVJOKHNjb3BlLCBhdG9taWNTdG9yZShnbG9iYWxPYmplY3QsIHZtLCBKU1Zh
bHVlOjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRleCksIEpTVmFsdWU6OmRlY29k
ZShvcGVyYW5kKSkpOworICAgIHJldHVybiBhdG9taWNTdG9yZShnbG9iYWxPYmplY3QsIHZtLCBK
U1ZhbHVlOjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRleCksIEpTVmFsdWU6OmRl
Y29kZShvcGVyYW5kKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25B
dG9taWNzU3ViLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1
ZSBvcGVyYW5kKSkKQEAgLTY5NSw5ICs2ODcsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQXRvbWljc1N1YiwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIGFyZ3NbXSA9IHtKU1ZhbHVlOjpkZWNv
ZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRleCksIEpTVmFsdWU6OmRlY29kZShvcGVyYW5k
KX07Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgYXRvbWljUmVhZE1vZGlmeVdyaXRlKGds
b2JhbE9iamVjdCwgdm0sIGFyZ3MsIFN1YkZ1bmMoKSkpOworICAgIHJldHVybiBhdG9taWNSZWFk
TW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCB2bSwgYXJncywgU3ViRnVuYygpKTsKIH0KIAogSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NYb3IsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5j
b2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpKQpAQCAtNzA1LDkgKzY5
Niw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzWG9yLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAg
IEpTVmFsdWUgYXJnc1tdID0ge0pTVmFsdWU6OmRlY29kZShiYXNlKSwgSlNWYWx1ZTo6ZGVjb2Rl
KGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKG9wZXJhbmQpfTsKLSAgICBPUEVSQVRJT05fUkVUVVJO
KHNjb3BlLCBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCB2bSwgYXJncywgWG9y
RnVuYygpKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZShnbG9iYWxPYmplY3Qs
IHZtLCBhcmdzLCBYb3JGdW5jKCkpOwogfQogCiBJR05PUkVfV0FSTklOR1NfRU5ECmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCmluZGV4IGQ5YzRl
YTliMzkwNy4uMDZmMmIzODFkNDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21tb25TbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25TbG93UGF0aHMuaApAQCAtMjQzLDggKzI0MywxMSBAQCBpbmxpbmUgSlNBcnJh
eSogYWxsb2NhdGVOZXdBcnJheUJ1ZmZlcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBK
U0ltbXV0YWJsZQogCiBjbGFzcyBDYWxsRnJhbWU7CiAKLSNkZWZpbmUgSlNDX0RFQ0xBUkVfQ09N
TU9OX1NMT1dfUEFUSChuYW1lKSBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG5hbWUsIFVHUFJQ
YWlyLCAoQ2FsbEZyYW1lKiwgY29uc3QgSlNJbnN0cnVjdGlvbiopKQotI2RlZmluZSBKU0NfREVG
SU5FX0NPTU1PTl9TTE9XX1BBVEgobmFtZSkgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG5hbWUs
IFVHUFJQYWlyLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEpTSW5zdHJ1Y3Rpb24qIHBj
KSkKKyNkZWZpbmUgSlNDX0RFQ0xBUkVfQ09NTU9OX1NMT1dfUEFUSChuYW1lKSBcCisgICAgSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihuYW1lLCBVR1BSUGFpciwgKENhbGxGcmFtZSosIGNvbnN0
IEpTSW5zdHJ1Y3Rpb24qKSkKKworI2RlZmluZSBKU0NfREVGSU5FX0NPTU1PTl9TTE9XX1BBVEgo
bmFtZSkgXAorICAgIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihuYW1lLCBVR1BSUGFpciwgKENh
bGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBKU0luc3RydWN0aW9uKiBwYykpCiAKIEpTQ19ERUNM
QVJFX0NPTU1PTl9TTE9XX1BBVEgoc2xvd19wYXRoX2NyZWF0ZV90aGlzKTsKIEpTQ19ERUNMQVJF
X0NPTU1PTl9TTE9XX1BBVEgoc2xvd19wYXRoX2VudGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvblNjb3BlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGNlcHRpb25TY29wZS5oCmluZGV4IDMwYTEzMDJmNTg4YS4uNjYwNDUx
OGFiYmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRp
b25TY29wZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvblNj
b3BlLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgRXhjZXB0aW9uU2NvcGUgewogcHVibGljOgog
ICAgIFZNJiB2bSgpIGNvbnN0IHsgcmV0dXJuIG1fdm07IH0KICAgICB1bnNpZ25lZCByZWN1cnNp
b25EZXB0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdXJzaW9uRGVwdGg7IH0KLSAgICBBTFdBWVNf
SU5MSU5FIEV4Y2VwdGlvbiogZXhjZXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV92bS5leGNlcHRp
b24oKTsgfQorICAgIEV4Y2VwdGlvbiogZXhjZXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV92bS5l
eGNlcHRpb24oKTsgfQogCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIGFzc2VydE5vRXhjZXB0aW9u
KCkgeyBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0UoIWV4Y2VwdGlvbigpLCAiJXMiLCB1bmV4
cGVjdGVkRXhjZXB0aW9uTWVzc2FnZSgpLmRhdGEoKSk7IH0KICAgICBBTFdBWVNfSU5MSU5FIHZv
aWQgcmVsZWFzZUFzc2VydE5vRXhjZXB0aW9uKCkgeyBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NB
R0UoIWV4Y2VwdGlvbigpLCAiJXMiLCB1bmV4cGVjdGVkRXhjZXB0aW9uTWVzc2FnZSgpLmRhdGEo
KSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hhc2hNYXBJ
bXBsSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzaE1hcEltcGxJ
bmxpbmVzLmgKaW5kZXggYjNlOTBlZDg0ODgyLi5jOGRiZTc0ZjQwZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hhc2hNYXBJbXBsSW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hhc2hNYXBJbXBsSW5saW5lcy5oCkBAIC0yNTcs
MTQgKzI1NywxMiBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgSGFzaE1hcEJ1Y2tldFR5cGU+CiBBTFdB
WVNfSU5MSU5FIEhhc2hNYXBCdWNrZXRUeXBlKiBIYXNoTWFwSW1wbDxIYXNoTWFwQnVja2V0VHlw
ZT46OmFkZE5vcm1hbGl6ZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBr
ZXksIEpTVmFsdWUgdmFsdWUsIHVpbnQzMl90IGhhc2gpCiB7CiAgICAgVk0mIHZtID0gZ2V0Vk0o
Z2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShub3JtYWxpemVNYXBLZXkoa2V5KSA9PSBrZXksICJX
ZSBleHBlY3Qgbm9ybWFsaXplZCB2YWx1ZXMgZmxvd2luZyBpbnRvIHRoaXMgZnVuY3Rpb24uIik7
CiAgICAgREVGRVJfVEVSTUlOQVRJT05fQU5EX0FTU0VSVF9XSVRIX01FU1NBR0Uodm0sIGpzTWFw
SGFzaChnbG9iYWxPYmplY3QsIGdldFZNKGdsb2JhbE9iamVjdCksIGtleSkgPT0gaGFzaCwgIldl
IGV4cGVjdCBoYXNoIHZhbHVlIGlzIHdoYXQgd2UgZXhwZWN0LiIpOwotICAgIHNjb3BlLmFzc2Vy
dE5vRXhjZXB0aW9uRXhjZXB0VGVybWluYXRpb24oKTsKIAotICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgYWRkTm9ybWFsaXplZEludGVybmFsKGdsb2JhbE9iamVjdCwga2V5LCB2YWx1ZSwg
aGFzaCwgWyZdIChIYXNoTWFwQnVja2V0VHlwZSogYnVja2V0KSB7CisgICAgcmV0dXJuIGFkZE5v
cm1hbGl6ZWRJbnRlcm5hbChnbG9iYWxPYmplY3QsIGtleSwgdmFsdWUsIGhhc2gsIFsmXSAoSGFz
aE1hcEJ1Y2tldFR5cGUqIGJ1Y2tldCkgewogICAgICAgICByZXR1cm4gIWlzRGVsZXRlZChidWNr
ZXQpICYmIGFyZUtleXNFcXVhbChnbG9iYWxPYmplY3QsIGtleSwgYnVja2V0LT5rZXkoKSk7Ci0g
ICAgfSkpOworICAgIH0pOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgSGFzaE1hcEJ1Y2tldFR5
cGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoQ29tbW9u
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhDb21tb24uY3BwCmluZGV4
IDAyY2ZkMzcyZmJiNS4uM2Q0YmYxMjYwZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9NYXRoQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9NYXRoQ29tbW9uLmNwcApAQCAtNDA5LDcgKzQwOSw3IEBAIEFMV0FZU19JTkxJTkUg
ZG91YmxlIG1hdGhQb3dJbnRlcm5hbChkb3VibGUgeCwgZG91YmxlIHkpCiAKICNlbmRpZgogCi1K
U0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0aFBvdywgZG91Ymxl
LCAoZG91YmxlIHgsIGRvdWJsZSB5KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25NYXRoUG93LCBkb3VibGUsIChkb3VibGUgeCwgZG91YmxlIHkpKQogewogICAgIGlmIChzdGQ6
OmlzbmFuKHkpKQogICAgICAgICByZXR1cm4gUE5hTjsKQEAgLTQ0OSwxMiArNDQ5LDEyIEBAIEpT
Q19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRoUG93LCBkb3VibGUs
IChkb3VibGUgeCwgZG91YmxlIHkpCiAgICAgcmV0dXJuIG1hdGhQb3dJbnRlcm5hbCh4LCB5KTsK
IH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvSW50MzIs
IFVDUFVTdHJpY3RJbnQzMiwgKGRvdWJsZSB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVG9JbnQzMiwgVUNQVVN0cmljdEludDMyLCAoZG91YmxlIHZhbHVlKSkKIHsK
ICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoSlNDOjp0b0ludDMyKHZhbHVlKSk7CiB9CiAK
LUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0ludDMyU2Vuc2li
bGVTbG93LCBVQ1BVU3RyaWN0SW50MzIsIChkb3VibGUgbnVtYmVyKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Ub0ludDMyU2Vuc2libGVTbG93LCBVQ1BVU3RyaWN0SW50MzIs
IChkb3VibGUgbnVtYmVyKSkKIHsKICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIodG9JbnRJ
bXBsPGludDMyX3QsIFRvSW50TW9kZTo6SW50MzJBZnRlclNlbnNpYmxlQ29udmVyc2lvbkF0dGVt
cHQ+KG51bWJlcikpOwogfQpAQCAtNDc2LDcgKzQ3Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c1N0cmljdEludDMyKGRvdWJsZSB2YWx1ZSkKIAogZXh0ZXJuICJDIiB7CiAKLUpTQ19ERUZJTkVf
Tk9FWENFUFRfSklUX09QRVJBVElPTihqc1JvdW5kLCBkb3VibGUsIChkb3VibGUgdmFsdWUpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGpzUm91bmQsIGRvdWJsZSwgKGRvdWJsZSB2YWx1ZSkp
CiB7CiAgICAgZG91YmxlIGludGVnZXIgPSBjZWlsKHZhbHVlKTsKICAgICByZXR1cm4gaW50ZWdl
ciAtIChpbnRlZ2VyIC0gMC41ID4gdmFsdWUpOwpAQCAtNTA2LDExICs1MDYsMTEgQEAgZG91Ymxl
IGxvZzFwKGRvdWJsZSB2YWx1ZSkKIH0KIAogI2RlZmluZSBKU0NfREVGSU5FX1ZJQV9TVEQoY2Fw
aXRhbGl6ZWROYW1lLCBsb3dlck5hbWUpIFwKLSAgICBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9P
UEVSQVRJT04obG93ZXJOYW1lIyNEb3VibGUsIGRvdWJsZSwgKGRvdWJsZSB2YWx1ZSkpIFwKKyAg
ICBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04obG93ZXJOYW1lIyNEb3VibGUsIGRvdWJsZSwgKGRv
dWJsZSB2YWx1ZSkpIFwKICAgICB7IFwKICAgICAgICAgcmV0dXJuIHN0ZDo6bG93ZXJOYW1lKHZh
bHVlKTsgXAogICAgIH0gXAotICAgIEpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihs
b3dlck5hbWUjI0Zsb2F0LCBmbG9hdCwgKGZsb2F0IHZhbHVlKSkgXAorICAgIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihsb3dlck5hbWUjI0Zsb2F0LCBmbG9hdCwgKGZsb2F0IHZhbHVlKSkgXAog
ICAgIHsgXAogICAgICAgICByZXR1cm4gc3RkOjpsb3dlck5hbWUodmFsdWUpOyBcCiAgICAgfQpA
QCAtNTE4LDYwICs1MTgsNjAgQEAgRk9SX0VBQ0hfQVJJVEhfVU5BUllfT1BfU1REKEpTQ19ERUZJ
TkVfVklBX1NURCkKICN1bmRlZiBKU0NfREVGSU5FX1ZJQV9TVEQKIAogI2RlZmluZSBKU0NfREVG
SU5FX1ZJQV9DVVNUT00oY2FwaXRhbGl6ZWROYW1lLCBsb3dlck5hbWUpIFwKLSAgICBKU0NfREVG
SU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04obG93ZXJOYW1lIyNEb3VibGUsIGRvdWJsZSwgKGRv
dWJsZSB2YWx1ZSkpIFwKKyAgICBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04obG93ZXJOYW1lIyNE
b3VibGUsIGRvdWJsZSwgKGRvdWJsZSB2YWx1ZSkpIFwKICAgICB7IFwKICAgICAgICAgcmV0dXJu
IGxvd2VyTmFtZSMjRG91YmxlSW1wbCh2YWx1ZSk7IFwKICAgICB9IFwKLSAgICBKU0NfREVGSU5F
X05PRVhDRVBUX0pJVF9PUEVSQVRJT04obG93ZXJOYW1lIyNGbG9hdCwgZmxvYXQsIChmbG9hdCB2
YWx1ZSkpIFwKKyAgICBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04obG93ZXJOYW1lIyNGbG9hdCwg
ZmxvYXQsIChmbG9hdCB2YWx1ZSkpIFwKICAgICB7IFwKICAgICAgICAgcmV0dXJuIGxvd2VyTmFt
ZSMjRmxvYXRJbXBsKHZhbHVlKTsgXAogICAgIH0KIEZPUl9FQUNIX0FSSVRIX1VOQVJZX09QX0NV
U1RPTShKU0NfREVGSU5FX1ZJQV9DVVNUT00pCiAjdW5kZWYgSlNDX0RFRklORV9WSUFfQ1VTVE9N
CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTih0cnVuY0RvdWJsZSwgZG91Ymxl
LCAoZG91YmxlIHZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTih0cnVuY0RvdWJsZSwg
ZG91YmxlLCAoZG91YmxlIHZhbHVlKSkKIHsKICAgICByZXR1cm4gc3RkOjp0cnVuYyh2YWx1ZSk7
CiB9Ci1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04odHJ1bmNGbG9hdCwgZmxvYXQs
IChmbG9hdCB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04odHJ1bmNGbG9hdCwgZmxv
YXQsIChmbG9hdCB2YWx1ZSkpCiB7CiAgICAgcmV0dXJuIHN0ZDo6dHJ1bmModmFsdWUpOwogfQot
SlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKGNlaWxEb3VibGUsIGRvdWJsZSwgKGRv
dWJsZSB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oY2VpbERvdWJsZSwgZG91Ymxl
LCAoZG91YmxlIHZhbHVlKSkKIHsKICAgICByZXR1cm4gc3RkOjpjZWlsKHZhbHVlKTsKIH0KLUpT
Q19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihjZWlsRmxvYXQsIGZsb2F0LCAoZmxvYXQg
dmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGNlaWxGbG9hdCwgZmxvYXQsIChmbG9h
dCB2YWx1ZSkpCiB7CiAgICAgcmV0dXJuIHN0ZDo6Y2VpbCh2YWx1ZSk7CiB9Ci1KU0NfREVGSU5F
X05PRVhDRVBUX0pJVF9PUEVSQVRJT04oZmxvb3JEb3VibGUsIGRvdWJsZSwgKGRvdWJsZSB2YWx1
ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oZmxvb3JEb3VibGUsIGRvdWJsZSwgKGRvdWJs
ZSB2YWx1ZSkpCiB7CiAgICAgcmV0dXJuIHN0ZDo6Zmxvb3IodmFsdWUpOwogfQotSlNDX0RFRklO
RV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKGZsb29yRmxvYXQsIGZsb2F0LCAoZmxvYXQgdmFsdWUp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGZsb29yRmxvYXQsIGZsb2F0LCAoZmxvYXQgdmFs
dWUpKQogewogICAgIHJldHVybiBzdGQ6OmZsb29yKHZhbHVlKTsKIH0KLUpTQ19ERUZJTkVfTk9F
WENFUFRfSklUX09QRVJBVElPTihzcXJ0RG91YmxlLCBkb3VibGUsIChkb3VibGUgdmFsdWUpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKHNxcnREb3VibGUsIGRvdWJsZSwgKGRvdWJsZSB2YWx1
ZSkpCiB7CiAgICAgcmV0dXJuIHN0ZDo6c3FydCh2YWx1ZSk7CiB9Ci1KU0NfREVGSU5FX05PRVhD
RVBUX0pJVF9PUEVSQVRJT04oc3FydEZsb2F0LCBmbG9hdCwgKGZsb2F0IHZhbHVlKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihzcXJ0RmxvYXQsIGZsb2F0LCAoZmxvYXQgdmFsdWUpKQogewog
ICAgIHJldHVybiBzdGQ6OnNxcnQodmFsdWUpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJ
VF9PUEVSQVRJT04oc3RkUG93RG91YmxlLCBkb3VibGUsIChkb3VibGUgeCwgZG91YmxlIHkpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKHN0ZFBvd0RvdWJsZSwgZG91YmxlLCAoZG91YmxlIHgs
IGRvdWJsZSB5KSkKIHsKICAgICByZXR1cm4gc3RkOjpwb3coeCwgeSk7CiB9Ci1KU0NfREVGSU5F
X05PRVhDRVBUX0pJVF9PUEVSQVRJT04oc3RkUG93RmxvYXQsIGZsb2F0LCAoZmxvYXQgeCwgZmxv
YXQgeSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oc3RkUG93RmxvYXQsIGZsb2F0LCAoZmxv
YXQgeCwgZmxvYXQgeSkpCiB7CiAgICAgcmV0dXJuIHN0ZDo6cG93KHgsIHkpOwogfQogCi1KU0Nf
REVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oZm1vZERvdWJsZSwgZG91YmxlLCAoZG91Ymxl
IHgsIGRvdWJsZSB5KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihmbW9kRG91YmxlLCBkb3Vi
bGUsIChkb3VibGUgeCwgZG91YmxlIHkpKQogewogI2lmIEhBVkUoQVJNX0lESVZfSU5TVFJVQ1RJ
T05TKQogICAgIC8vIGZtb2QoKSBkb2VzIG5vdCBoYXZlIGV4YWN0IHJlc3VsdHMgZm9yIGludGVn
ZXIgb24gQVJNdjcuCkBAIC02MDEsMTIgKzYwMSwxMiBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBk
b3VibGUgcm91bmREb3VibGVJbXBsKGRvdWJsZSB2YWx1ZSkKICAgICByZXR1cm4gaW50ZWdlciAt
IChpbnRlZ2VyIC0gMC41ID4gdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9P
UEVSQVRJT04ocm91bmREb3VibGUsIGRvdWJsZSwgKGRvdWJsZSB2YWx1ZSkpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ocm91bmREb3VibGUsIGRvdWJsZSwgKGRvdWJsZSB2YWx1ZSkpCiB7CiAg
ICAgcmV0dXJuIHJvdW5kRG91YmxlSW1wbCh2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENF
UFRfSklUX09QRVJBVElPTihqc1JvdW5kRG91YmxlLCBkb3VibGUsIChkb3VibGUgdmFsdWUpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGpzUm91bmREb3VibGUsIGRvdWJsZSwgKGRvdWJsZSB2
YWx1ZSkpCiB7CiAgICAgcmV0dXJuIHJvdW5kRG91YmxlSW1wbCh2YWx1ZSk7CiB9CkBAIC02MTcs
NDIgKzYxNyw0MiBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBmbG9hdCByb3VuZEZsb2F0SW1wbChm
bG9hdCB2YWx1ZSkKICAgICByZXR1cm4gaW50ZWdlciAtIChpbnRlZ2VyIC0gMC41ID4gdmFsdWUp
OwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ocm91bmRGbG9hdCwgZmxv
YXQsIChmbG9hdCB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ocm91bmRGbG9hdCwg
ZmxvYXQsIChmbG9hdCB2YWx1ZSkpCiB7CiAgICAgcmV0dXJuIHJvdW5kRmxvYXRJbXBsKHZhbHVl
KTsKIH0KIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9P
UEVSQVRJT04oZjMyX25lYXJlc3QsIGZsb2F0LCAoZmxvYXQgb3BlcmFuZCkpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04oZjMyX25lYXJlc3QsIGZsb2F0LCAoZmxvYXQgb3BlcmFuZCkpCiB7CiAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUg
PT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsKICAgICByZXR1cm4gc3RkOjpuZWFyYnlpbnQob3Bl
cmFuZCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihmNjRfbmVhcmVz
dCwgZG91YmxlLCAoZG91YmxlIG9wZXJhbmQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGY2
NF9uZWFyZXN0LCBkb3VibGUsIChkb3VibGUgb3BlcmFuZCkpCiB7CiAgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90
b19uZWFyZXN0KTsKICAgICByZXR1cm4gc3RkOjpuZWFyYnlpbnQob3BlcmFuZCk7CiB9CiAKLUpT
Q19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihpMzJfZGl2X3MsIGludDMyX3QsIChpbnQz
Ml90IGEsIGludDMyX3QgYikpIHsgcmV0dXJuIGEgLyBiOyB9Ci1KU0NfREVGSU5FX05PRVhDRVBU
X0pJVF9PUEVSQVRJT04oaTMyX2Rpdl91LCB1aW50MzJfdCwgKHVpbnQzMl90IGEsIHVpbnQzMl90
IGIpKSB7IHJldHVybiBhIC8gYjsgfQotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9O
KGkzMl9yZW1fcywgaW50MzJfdCwgKGludDMyX3QgYSwgaW50MzJfdCBiKSkgeyByZXR1cm4gYSAl
IGI7IH0KLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihpMzJfcmVtX3UsIHVpbnQz
Ml90LCAodWludDMyX3QgYSwgdWludDMyX3QgYikpIHsgcmV0dXJuIGEgJSBiOyB9Ci1KU0NfREVG
SU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oaTY0X2Rpdl9zLCBpbnQ2NF90LCAoaW50NjRfdCBh
LCBpbnQ2NF90IGIpKSB7IHJldHVybiBhIC8gYjsgfQotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRf
T1BFUkFUSU9OKGk2NF9kaXZfdSwgdWludDY0X3QsICh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSkg
eyByZXR1cm4gYSAvIGI7IH0KLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihpNjRf
cmVtX3MsIGludDY0X3QsIChpbnQ2NF90IGEsIGludDY0X3QgYikpIHsgcmV0dXJuIGEgJSBiOyB9
Ci1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oaTY0X3JlbV91LCB1aW50NjRfdCwg
KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpKSB7IHJldHVybiBhICUgYjsgfQotCi1KU0NfREVGSU5F
X05PRVhDRVBUX0pJVF9PUEVSQVRJT04oaTY0X3RydW5jX3VfZjMyLCB1aW50NjRfdCwgKGZsb2F0
IG9wZXJhbmQpKSB7IHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCk7IH0KLUpT
Q19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihpNjRfdHJ1bmNfc19mMzIsIGludDY0X3Qs
IChmbG9hdCBvcGVyYW5kKSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCk7
IH0KLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihpNjRfdHJ1bmNfdV9mNjQsIHVp
bnQ2NF90LCAoZG91YmxlIG9wZXJhbmQpKSB7IHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4o
b3BlcmFuZCk7IH0KLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihpNjRfdHJ1bmNf
c19mNjQsIGludDY0X3QsIChkb3VibGUgb3BlcmFuZCkpIHsgcmV0dXJuIHN0YXRpY19jYXN0PGlu
dDY0X3Q+KG9wZXJhbmQpOyB9Ci0KLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihm
MzJfY29udmVydF91X2k2NCwgZmxvYXQsICh1aW50NjRfdCBvcGVyYW5kKSkgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KG9wZXJhbmQpOyB9Ci1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVS
QVRJT04oZjMyX2NvbnZlcnRfc19pNjQsIGZsb2F0LCAoaW50NjRfdCBvcGVyYW5kKSkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG9wZXJhbmQpOyB9Ci1KU0NfREVGSU5FX05PRVhDRVBUX0pJ
VF9PUEVSQVRJT04oZjY0X2NvbnZlcnRfdV9pNjQsIGRvdWJsZSwgKHVpbnQ2NF90IG9wZXJhbmQp
KSB7IHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KG9wZXJhbmQpOyB9Ci1KU0NfREVGSU5FX05P
RVhDRVBUX0pJVF9PUEVSQVRJT04oZjY0X2NvbnZlcnRfc19pNjQsIGRvdWJsZSwgKGludDY0X3Qg
b3BlcmFuZCkpIHsgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4ob3BlcmFuZCk7IH0KK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihpMzJfZGl2X3MsIGludDMyX3QsIChpbnQzMl90IGEsIGludDMy
X3QgYikpIHsgcmV0dXJuIGEgLyBiOyB9CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oaTMyX2Rp
dl91LCB1aW50MzJfdCwgKHVpbnQzMl90IGEsIHVpbnQzMl90IGIpKSB7IHJldHVybiBhIC8gYjsg
fQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGkzMl9yZW1fcywgaW50MzJfdCwgKGludDMyX3Qg
YSwgaW50MzJfdCBiKSkgeyByZXR1cm4gYSAlIGI7IH0KK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihpMzJfcmVtX3UsIHVpbnQzMl90LCAodWludDMyX3QgYSwgdWludDMyX3QgYikpIHsgcmV0dXJu
IGEgJSBiOyB9CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oaTY0X2Rpdl9zLCBpbnQ2NF90LCAo
aW50NjRfdCBhLCBpbnQ2NF90IGIpKSB7IHJldHVybiBhIC8gYjsgfQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKGk2NF9kaXZfdSwgdWludDY0X3QsICh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSkg
eyByZXR1cm4gYSAvIGI7IH0KK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihpNjRfcmVtX3MsIGlu
dDY0X3QsIChpbnQ2NF90IGEsIGludDY0X3QgYikpIHsgcmV0dXJuIGEgJSBiOyB9CitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04oaTY0X3JlbV91LCB1aW50NjRfdCwgKHVpbnQ2NF90IGEsIHVpbnQ2
NF90IGIpKSB7IHJldHVybiBhICUgYjsgfQorCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oaTY0
X3RydW5jX3VfZjMyLCB1aW50NjRfdCwgKGZsb2F0IG9wZXJhbmQpKSB7IHJldHVybiBzdGF0aWNf
Y2FzdDx1aW50NjRfdD4ob3BlcmFuZCk7IH0KK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihpNjRf
dHJ1bmNfc19mMzIsIGludDY0X3QsIChmbG9hdCBvcGVyYW5kKSkgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8aW50NjRfdD4ob3BlcmFuZCk7IH0KK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihpNjRfdHJ1
bmNfdV9mNjQsIHVpbnQ2NF90LCAoZG91YmxlIG9wZXJhbmQpKSB7IHJldHVybiBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4ob3BlcmFuZCk7IH0KK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihpNjRfdHJ1
bmNfc19mNjQsIGludDY0X3QsIChkb3VibGUgb3BlcmFuZCkpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PGludDY0X3Q+KG9wZXJhbmQpOyB9CisKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihmMzJfY29u
dmVydF91X2k2NCwgZmxvYXQsICh1aW50NjRfdCBvcGVyYW5kKSkgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8ZmxvYXQ+KG9wZXJhbmQpOyB9CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oZjMyX2NvbnZl
cnRfc19pNjQsIGZsb2F0LCAoaW50NjRfdCBvcGVyYW5kKSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KG9wZXJhbmQpOyB9CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oZjY0X2NvbnZlcnRf
dV9pNjQsIGRvdWJsZSwgKHVpbnQ2NF90IG9wZXJhbmQpKSB7IHJldHVybiBzdGF0aWNfY2FzdDxk
b3VibGU+KG9wZXJhbmQpOyB9CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oZjY0X2NvbnZlcnRf
c19pNjQsIGRvdWJsZSwgKGludDY0X3Qgb3BlcmFuZCkpIHsgcmV0dXJuIHN0YXRpY19jYXN0PGRv
dWJsZT4ob3BlcmFuZCk7IH0KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBNYXRoCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoQ29tbW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoQ29tbW9uLmgKaW5kZXggMGExZDQ3YjVlYzBmLi44
ZjAyZDcwNWM2NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
dGhDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoQ29tbW9u
LmgKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2luY2x1ZGUgIkNQVS5oIgogI2luY2x1ZGUgIkpJVE9w
ZXJhdGlvblZhbGlkYXRpb24uaCIKLSNpbmNsdWRlICJPcGVyYXRpb25SZXN1bHQuaCIKICNpbmNs
dWRlIDxjbGltaXRzPgogI2luY2x1ZGUgPGNtYXRoPgogI2luY2x1ZGUgPG9wdGlvbmFsPgpAQCAt
MzUsOSArMzQsOSBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IGludDMyX3QgbWF4RXhwb25l
bnRGb3JJbnRlZ2VyTWF0aFBvdyA9IDEwMDA7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk1hdGhQb3csIGRvdWJsZSwgKGRvdWJsZSB4LCBkb3VibGUgeSkpOwot
SlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0ludDMyLCBVQ1BV
U3RyaWN0SW50MzIsIChkb3VibGUpKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVG9JbnQzMlNlbnNpYmxlU2xvdywgVUNQVVN0cmljdEludDMyLCAoZG91Ymxl
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGhQb3csIGRvdWJsZSwg
KGRvdWJsZSB4LCBkb3VibGUgeSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Ub0ludDMyLCBVQ1BVU3RyaWN0SW50MzIsIChkb3VibGUpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uVG9JbnQzMlNlbnNpYmxlU2xvdywgVUNQVVN0cmljdEludDMyLCAo
ZG91YmxlKSk7CiAKIGNvbnN0ZXhwciBkb3VibGUgbWF4U2FmZUludGVnZXIoKQogewpAQCAtMjU2
LDcgKzI1NSw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBjYW5CZUludDMyKGRvdWJsZSB2YWx1ZSkK
IH0KIAogZXh0ZXJuICJDIiB7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKGpz
Um91bmQsIGRvdWJsZSwgKGRvdWJsZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihqc1Jv
dW5kLCBkb3VibGUsIChkb3VibGUpKTsKIH0KIAogbmFtZXNwYWNlIE1hdGggewpAQCAtMjkxLDU2
ICsyOTAsNTYgQEAgbmFtZXNwYWNlIE1hdGggewogCiAjZGVmaW5lIEpTQ19ERUZJTkVfVklBX1NU
RChjYXBpdGFsaXplZE5hbWUsIGxvd2VyTmFtZSkgXAogICAgIHVzaW5nIHN0ZDo6bG93ZXJOYW1l
OyBcCi0gICAgSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihsb3dlck5hbWUjI0Rv
dWJsZSwgZG91YmxlLCAoZG91YmxlKSk7IFwKLSAgICBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRf
T1BFUkFUSU9OKGxvd2VyTmFtZSMjRmxvYXQsIGZsb2F0LCAoZmxvYXQpKTsKKyAgICBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKGxvd2VyTmFtZSMjRG91YmxlLCBkb3VibGUsIChkb3VibGUpKTsg
XAorICAgIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04obG93ZXJOYW1lIyNGbG9hdCwgZmxvYXQs
IChmbG9hdCkpOwogRk9SX0VBQ0hfQVJJVEhfVU5BUllfT1BfU1REKEpTQ19ERUZJTkVfVklBX1NU
RCkKICN1bmRlZiBKU0NfREVGSU5FX1ZJQV9TVEQKIAogI2RlZmluZSBKU0NfREVGSU5FX1ZJQV9D
VVNUT00oY2FwaXRhbGl6ZWROYW1lLCBsb3dlck5hbWUpIFwKICAgICBKU19FWFBPUlRfUFJJVkFU
RSBkb3VibGUgbG93ZXJOYW1lKGRvdWJsZSk7IFwKLSAgICBKU0NfREVDTEFSRV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OKGxvd2VyTmFtZSMjRG91YmxlLCBkb3VibGUsIChkb3VibGUpKTsgXAotICAg
IEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04obG93ZXJOYW1lIyNGbG9hdCwgZmxv
YXQsIChmbG9hdCkpOworICAgIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04obG93ZXJOYW1lIyNE
b3VibGUsIGRvdWJsZSwgKGRvdWJsZSkpOyBcCisgICAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
Tihsb3dlck5hbWUjI0Zsb2F0LCBmbG9hdCwgKGZsb2F0KSk7CiBGT1JfRUFDSF9BUklUSF9VTkFS
WV9PUF9DVVNUT00oSlNDX0RFRklORV9WSUFfQ1VTVE9NKQogI3VuZGVmIEpTQ19ERUZJTkVfVklB
X0NVU1RPTQogCi1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKHRydW5jRG91Ymxl
LCBkb3VibGUsIChkb3VibGUpKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04o
dHJ1bmNGbG9hdCwgZmxvYXQsIChmbG9hdCkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09Q
RVJBVElPTihjZWlsRG91YmxlLCBkb3VibGUsIChkb3VibGUpKTsKLUpTQ19ERUNMQVJFX05PRVhD
RVBUX0pJVF9PUEVSQVRJT04oY2VpbEZsb2F0LCBmbG9hdCwgKGZsb2F0KSk7Ci1KU0NfREVDTEFS
RV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKGZsb29yRG91YmxlLCBkb3VibGUsIChkb3VibGUpKTsK
LUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oZmxvb3JGbG9hdCwgZmxvYXQsIChm
bG9hdCkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihzcXJ0RG91YmxlLCBk
b3VibGUsIChkb3VibGUpKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oc3Fy
dEZsb2F0LCBmbG9hdCwgKGZsb2F0KSk7Ci0KLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVS
QVRJT04oc3RkUG93RG91YmxlLCBkb3VibGUsIChkb3VibGUsIGRvdWJsZSkpOwotSlNDX0RFQ0xB
UkVfTk9FWENFUFRfSklUX09QRVJBVElPTihzdGRQb3dGbG9hdCwgZmxvYXQsIChmbG9hdCwgZmxv
YXQpKTsKLQotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihmbW9kRG91YmxlLCBk
b3VibGUsIChkb3VibGUsIGRvdWJsZSkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJB
VElPTihyb3VuZERvdWJsZSwgZG91YmxlLCAoZG91YmxlKSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQ
VF9KSVRfT1BFUkFUSU9OKGpzUm91bmREb3VibGUsIGRvdWJsZSwgKGRvdWJsZSkpOwotSlNDX0RF
Q0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihyb3VuZEZsb2F0LCBmbG9hdCwgKGZsb2F0KSk7
Ci0KLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oZjMyX25lYXJlc3QsIGZsb2F0
LCAoZmxvYXQpKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oZjY0X25lYXJl
c3QsIGRvdWJsZSwgKGRvdWJsZSkpOwotCi1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFU
SU9OKGkzMl9kaXZfcywgaW50MzJfdCwgKGludDMyX3QsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJF
X05PRVhDRVBUX0pJVF9PUEVSQVRJT04oaTMyX2Rpdl91LCB1aW50MzJfdCwgKHVpbnQzMl90LCB1
aW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihpMzJfcmVtX3Ms
IGludDMyX3QsIChpbnQzMl90LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRf
T1BFUkFUSU9OKGkzMl9yZW1fdSwgdWludDMyX3QsICh1aW50MzJfdCwgdWludDMyX3QpKTsKLUpT
Q19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oaTY0X2Rpdl9zLCBpbnQ2NF90LCAoaW50
NjRfdCwgaW50NjRfdCkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihpNjRf
ZGl2X3UsIHVpbnQ2NF90LCAodWludDY0X3QsIHVpbnQ2NF90KSk7Ci1KU0NfREVDTEFSRV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OKGk2NF9yZW1fcywgaW50NjRfdCwgKGludDY0X3QsIGludDY0X3Qp
KTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oaTY0X3JlbV91LCB1aW50NjRf
dCwgKHVpbnQ2NF90LCB1aW50NjRfdCkpOwotCi1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BF
UkFUSU9OKGk2NF90cnVuY191X2YzMiwgdWludDY0X3QsIChmbG9hdCkpOwotSlNDX0RFQ0xBUkVf
Tk9FWENFUFRfSklUX09QRVJBVElPTihpNjRfdHJ1bmNfc19mMzIsIGludDY0X3QsIChmbG9hdCkp
OwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihpNjRfdHJ1bmNfdV9mNjQsIHVp
bnQ2NF90LCAoZG91YmxlKSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKGk2
NF90cnVuY19zX2Y2NCwgaW50NjRfdCwgKGRvdWJsZSkpOwotCi1KU0NfREVDTEFSRV9OT0VYQ0VQ
VF9KSVRfT1BFUkFUSU9OKGYzMl9jb252ZXJ0X3VfaTY0LCBmbG9hdCwgKHVpbnQ2NF90KSk7Ci1K
U0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKGYzMl9jb252ZXJ0X3NfaTY0LCBmbG9h
dCwgKGludDY0X3QpKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04oZjY0X2Nv
bnZlcnRfdV9pNjQsIGRvdWJsZSwgKHVpbnQ2NF90KSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OKGY2NF9jb252ZXJ0X3NfaTY0LCBkb3VibGUsIChpbnQ2NF90KSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKHRydW5jRG91YmxlLCBkb3VibGUsIChkb3VibGUpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04odHJ1bmNGbG9hdCwgZmxvYXQsIChmbG9hdCkpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihjZWlsRG91YmxlLCBkb3VibGUsIChkb3VibGUpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04oY2VpbEZsb2F0LCBmbG9hdCwgKGZsb2F0KSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKGZsb29yRG91YmxlLCBkb3VibGUsIChkb3VibGUpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04oZmxvb3JGbG9hdCwgZmxvYXQsIChmbG9hdCkpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihzcXJ0RG91YmxlLCBkb3VibGUsIChkb3VibGUpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04oc3FydEZsb2F0LCBmbG9hdCwgKGZsb2F0KSk7CisKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04oc3RkUG93RG91YmxlLCBkb3VibGUsIChkb3VibGUsIGRv
dWJsZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihzdGRQb3dGbG9hdCwgZmxvYXQsIChm
bG9hdCwgZmxvYXQpKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihmbW9kRG91YmxlLCBk
b3VibGUsIChkb3VibGUsIGRvdWJsZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihyb3Vu
ZERvdWJsZSwgZG91YmxlLCAoZG91YmxlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGpz
Um91bmREb3VibGUsIGRvdWJsZSwgKGRvdWJsZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
Tihyb3VuZEZsb2F0LCBmbG9hdCwgKGZsb2F0KSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04oZjMyX25lYXJlc3QsIGZsb2F0LCAoZmxvYXQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04oZjY0X25lYXJlc3QsIGRvdWJsZSwgKGRvdWJsZSkpOworCitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKGkzMl9kaXZfcywgaW50MzJfdCwgKGludDMyX3QsIGludDMyX3QpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04oaTMyX2Rpdl91LCB1aW50MzJfdCwgKHVpbnQzMl90LCB1aW50MzJf
dCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihpMzJfcmVtX3MsIGludDMyX3QsIChpbnQz
Ml90LCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGkzMl9yZW1fdSwgdWlu
dDMyX3QsICh1aW50MzJfdCwgdWludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
aTY0X2Rpdl9zLCBpbnQ2NF90LCAoaW50NjRfdCwgaW50NjRfdCkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihpNjRfZGl2X3UsIHVpbnQ2NF90LCAodWludDY0X3QsIHVpbnQ2NF90KSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGk2NF9yZW1fcywgaW50NjRfdCwgKGludDY0X3QsIGlu
dDY0X3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04oaTY0X3JlbV91LCB1aW50NjRfdCwg
KHVpbnQ2NF90LCB1aW50NjRfdCkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGk2NF90
cnVuY191X2YzMiwgdWludDY0X3QsIChmbG9hdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihpNjRfdHJ1bmNfc19mMzIsIGludDY0X3QsIChmbG9hdCkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihpNjRfdHJ1bmNfdV9mNjQsIHVpbnQ2NF90LCAoZG91YmxlKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKGk2NF90cnVuY19zX2Y2NCwgaW50NjRfdCwgKGRvdWJsZSkpOworCitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGYzMl9jb252ZXJ0X3VfaTY0LCBmbG9hdCwgKHVpbnQ2
NF90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGYzMl9jb252ZXJ0X3NfaTY0LCBmbG9h
dCwgKGludDY0X3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04oZjY0X2NvbnZlcnRfdV9p
NjQsIGRvdWJsZSwgKHVpbnQ2NF90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGY2NF9j
b252ZXJ0X3NfaTY0LCBkb3VibGUsIChpbnQ2NF90KSk7CiAKIH0gLy8gbmFtZXNwYWNlIE1hdGgK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggNmYyYzRmMGQ5NjlkLi5jNTY0ZWM3MzJmNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cApAQCAtNzc5LDE1ICs3NzksMTUgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blN0cmluZ1Byb3RvRnVuY1JlcGxhY2VSZWdFeHBFbXB0eVN0ciwgSlNDZWxsKiwKICAgICBpZiAo
cmVnRXhwLT5nbG9iYWwoKSkgewogICAgICAgICAvLyBFUzUuMSAxNS41LjQuMTAgc3RlcCA4LmEu
CiAgICAgICAgIHNlYXJjaFZhbHVlLT5zZXRMYXN0SW5kZXgoZ2xvYmFsT2JqZWN0LCAwKTsKLSAg
ICAgICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICAgICAgU3RyaW5n
IHNvdXJjZSA9IHRoaXNWYWx1ZS0+dmFsdWUoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgT1BFUkFU
SU9OX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgICAgICBPUEVSQVRJ
T05fUkVUVVJOKHNjb3BlLCByZW1vdmVVc2luZ1JlZ0V4cFNlYXJjaCh2bSwgZ2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIFdURk1vdmUoc291cmNlKSwgcmVnRXhwKSk7CisgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIHJlbW92ZVVzaW5nUmVnRXhwU2VhcmNoKHZtLCBnbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgV1RGTW92ZShzb3VyY2UpLCByZWdFeHApKTsKICAgICB9CiAKICAgICBDYWxsRGF0YSBjYWxs
RGF0YTsKICAgICBTdHJpbmcgcmVwbGFjZW1lbnRTdHJpbmcgPSBlbXB0eVN0cmluZygpOwotICAg
IE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIHJlcGxhY2VVc2luZ1JlZ0V4cFNlYXJjaCgKKyAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIHJlcGxhY2VVc2luZ1JlZ0V4cFNlYXJjaCgKICAgICAg
ICAgdm0sIGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBzZWFyY2hWYWx1ZSwgY2FsbERhdGEsIHJl
cGxhY2VtZW50U3RyaW5nLCBKU1ZhbHVlKCkpKTsKIH0KIApAQCAtODAwLDggKzgwMCw4IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdQcm90b0Z1bmNSZXBsYWNlUmVn
RXhwU3RyaW5nLCBKU0NlbGwqLCAoCiAKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKICAgICBTdHJp
bmcgcmVwbGFjZW1lbnRTdHJpbmcgPSByZXBsYWNlU3RyaW5nLT52YWx1ZShnbG9iYWxPYmplY3Qp
OwotICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAg
ICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCByZXBsYWNlVXNpbmdSZWdFeHBTZWFyY2goCisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHNjb3BlLCByZXBsYWNlVXNpbmdSZWdFeHBTZWFyY2goCiAgICAgICAgIHZtLCBnbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgc2VhcmNoVmFsdWUsIGNhbGxEYXRhLCByZXBsYWNlbWVudFN0cmlu
ZywgcmVwbGFjZVN0cmluZykpOwogfQogCkBAIC05NDMsOSArOTQzLDggQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1Byb3RvRnVuY1JlcGxhY2VHZW5lcmljLCBKU0Nl
bGwqLCAoSlNHbG8KICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgCi0gICAgT1BFUkFUSU9OX1JF
VFVSTihzY29wZSwgcmVwbGFjZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSwgSlNWYWx1ZTo6ZGVjb2RlKHNlYXJjaFZhbHVlKSwgSlNWYWx1ZTo6ZGVjb2RlKHJl
cGxhY2VWYWx1ZSkpKTsKKyAgICByZXR1cm4gcmVwbGFjZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSwgSlNWYWx1ZTo6ZGVjb2RlKHNlYXJjaFZhbHVlKSwgSlNW
YWx1ZTo6ZGVjb2RlKHJlcGxhY2VWYWx1ZSkpOwogfQogCiBJR05PUkVfV0FSTklOR1NfRU5ECmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXggYzI4YWNmZjcw
YTEyLi5lZWNjNmQ5Y2YwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29s
cy9KU0RvbGxhclZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xs
YXJWTS5jcHAKQEAgLTQ4LDcgKzQ4LDYgQEAKICNpbmNsdWRlICJKU1Byb21pc2UuaCIKICNpbmNs
dWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKLSNpbmNsdWRlICJPcGVy
YXRpb25SZXN1bHQuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgi
CiAjaW5jbHVkZSAiUHJvYmVDb250ZXh0LmgiCkBAIC0xMDg5LDcgKzEwODgsNyBAQCBwcml2YXRl
OgogCiAKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGRvbUpJVEdldHRlckN1c3Rv
bUdldHRlcik7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGRvbUpJVEdldHRlclNsb3dDYWxs
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwgdm9pZCopKTsKK2V4dGVybiAiQyIg
eyBzdGF0aWMgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChk
b21KSVRHZXR0ZXJTbG93Q2FsbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIHZv
aWQqKSk7IH0KIAogY2xhc3MgRE9NSklUR2V0dGVyIDogcHVibGljIERPTUpJVE5vZGUgewogcHVi
bGljOgpAQCAtMTE4OSwxMyArMTE4OCwxMiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oZG9t
SklUR2V0dGVyU2xvd0NhbGwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqCiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihzdGF0aWNfY2FzdDxET01KSVRHZXR0ZXIqPihwb2ludGVyKS0+dmFsdWUo
KSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0YXRpY19jYXN0PERP
TUpJVEdldHRlcio+KHBvaW50ZXIpLT52YWx1ZSgpKSk7CiB9CiAKIAogc3RhdGljIEpTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoZG9tSklUR2V0dGVyTm9FZmZlY3RDdXN0b21HZXR0ZXIpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihkb21KSVRHZXR0ZXJOb0VmZmVjdFNsb3dDYWxsLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwgdm9pZCopKTsKK2V4dGVybiAiQyIgeyBzdGF0
aWMgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChkb21KSVRH
ZXR0ZXJOb0VmZmVjdFNsb3dDYWxsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
dm9pZCopKTsgfQogCiBjbGFzcyBET01KSVRHZXR0ZXJOb0VmZmVjdHMgOiBwdWJsaWMgRE9NSklU
Tm9kZSB7CiBwdWJsaWM6CkBAIC0xMjkwLDEyICsxMjg4LDExIEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihkb21KSVRHZXR0ZXJOb0VmZmVjdFNsb3dDYWxsLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUs
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihzdGF0aWNfY2FzdDxET01KSVRHZXR0ZXJOb0VmZmVj
dHMqPihwb2ludGVyKS0+dmFsdWUoKSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKHN0YXRpY19jYXN0PERPTUpJVEdldHRlck5vRWZmZWN0cyo+KHBvaW50ZXIpLT52YWx1
ZSgpKSk7CiB9CiAKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGRvbUpJVEdldHRl
ckNvbXBsZXhDdXN0b21HZXR0ZXIpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihkb21KSVRH
ZXR0ZXJDb21wbGV4U2xvd0NhbGwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCB2
b2lkKikpOworZXh0ZXJuICJDIiB7IHN0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJ
VEhPVVRfV1RGX0lOVEVSTkFMKGRvbUpJVEdldHRlckNvbXBsZXhTbG93Q2FsbCwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCosIHZvaWQqKSk7IH0KIAogY2xhc3MgRE9NSklUR2V0dGVy
Q29tcGxleCA6IHB1YmxpYyBET01KSVROb2RlIHsKIHB1YmxpYzoKQEAgLTE0MDIsOSArMTM5OSw5
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihkb21KSVRHZXR0ZXJDb21wbGV4U2xvd0NhbGws
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPCiAgICAgYXV0byogZG9taml0R2V0dGVyQ29tcGxl
eCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUR2V0dGVyQ29tcGxleCo+KG9iamVjdCk7CiAgICAgaWYg
KGRvbWppdEdldHRlckNvbXBsZXgpIHsKICAgICAgICAgaWYgKGRvbWppdEdldHRlckNvbXBsZXgt
Pm1fZW5hYmxlRXhjZXB0aW9uKQotICAgICAgICAgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0
ZUVycm9yKGdsb2JhbE9iamVjdCwgIkRPTUpJVEdldHRlckNvbXBsZXggc2xvdyBjYWxsIGV4Y2Vw
dGlvbiJfcykpKSk7CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhj
ZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgIkRP
TUpJVEdldHRlckNvbXBsZXggc2xvdyBjYWxsIGV4Y2VwdGlvbiJfcykpKTsKICAgICB9Ci0gICAg
T1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKG9iamVjdC0+
dmFsdWUoKSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKG9iamVjdC0+
dmFsdWUoKSkpOwogfQogCiBzdGF0aWMgY29uc3QgRE9NSklUR2V0dGVyQ29tcGxleDo6RE9NSklU
QXR0cmlidXRlIERPTUpJVEdldHRlckNvbXBsZXhET01KSVQ7CkBAIC0xNDE5LDcgKzE0MTYsNyBA
QCB2b2lkIERPTUpJVEdldHRlckNvbXBsZXg6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwg
Z2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZW5hYmxlRXhjZXB0aW9u
Il9zKSwgMCwgZnVuY3Rpb25ET01KSVRHZXR0ZXJDb21wbGV4RW5hYmxlRXhjZXB0aW9uLCBJbXBs
ZW1lbnRhdGlvblZpc2liaWxpdHk6OlB1YmxpYywgTm9JbnRyaW5zaWMsIDApOwogfQogCi1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKGZ1bmN0aW9uRE9NSklURnVuY3Rpb25PYmplY3RXaXRob3V0
VHlwZUNoZWNrLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IERPTUpJVE5vZGUqKSk7CitleHRlcm4gIkMiIHsgc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwoZnVuY3Rpb25ET01KSVRGdW5jdGlvbk9iamVjdFdp
dGhvdXRUeXBlQ2hlY2ssIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRE9NSklUTm9kZSopKTsgfQogCiBjbGFzcyBET01KSVRGdW5jdGlvbk9iamVjdCA6IHB1
YmxpYyBET01KSVROb2RlIHsKIHB1YmxpYzoKQEAgLTE0ODgsOCArMTQ4NSw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihmdW5jdGlvbkRPTUpJVEZ1bmN0aW9uT2JqZWN0V2l0aG91dFR5cGVD
aGVjaywgRW5jb2RlZEpTCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIE9QRVJBVElPTl9SRVRV
Uk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihub2RlLT52YWx1ZSgpKSkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIobm9kZS0+dmFsdWUoKSkpOwogfQogCiBz
dGF0aWMgY29uc3QgRE9NSklUOjpTaWduYXR1cmUgRE9NSklURnVuY3Rpb25PYmplY3RTaWduYXR1
cmUoZnVuY3Rpb25ET01KSVRGdW5jdGlvbk9iamVjdFdpdGhvdXRUeXBlQ2hlY2ssIERPTUpJVEZ1
bmN0aW9uT2JqZWN0OjppbmZvKCksIERPTUpJVDo6RWZmZWN0Ojpmb3JSZWFkKERPTUpJVDo6SGVh
cFJhbmdlKERPTUpJVDo6SGVhcFJhbmdlOjpDb25zdEV4cHIsIDAsIDEpKSwgU3BlY0ludDMyT25s
eSk7CkBAIC0xNTAxLDcgKzE0OTcsNyBAQCB2b2lkIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0
RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgImZ1bmMiX3MpLCAwLCBmdW5jdGlvbkRPTUpJVEZ1bmN0aW9uT2JqZWN0V2l0aFR5
cGVDaGVjaywgSW1wbGVtZW50YXRpb25WaXNpYmlsaXR5OjpQdWJsaWMsIE5vSW50cmluc2ljLCAm
RE9NSklURnVuY3Rpb25PYmplY3RTaWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKIH0KIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihmdW5jdGlvbkRPTUpJVENoZWNrSlNDYXN0T2JqZWN0V2l0aG91dFR5cGVDaGVjaywgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBET01KSVROb2RlKiBub2Rl
KSk7CitleHRlcm4gIkMiIHsgc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT05fV0lUSE9V
VF9XVEZfSU5URVJOQUwoZnVuY3Rpb25ET01KSVRDaGVja0pTQ2FzdE9iamVjdFdpdGhvdXRUeXBl
Q2hlY2ssIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9N
SklUTm9kZSogbm9kZSkpOyB9CiAKIGNsYXNzIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0IDogcHVi
bGljIERPTUpJVE5vZGUgewogcHVibGljOgpAQCAtMTU1MSw4ICsxNTQ3LDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKGZ1bmN0aW9uRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RXaXRob3V0VHlw
ZUNoZWNrLCBFbmNvZGUKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJh
dGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKG5vZGUtPnZhbHVlKCkpKSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihub2RlLT52YWx1ZSgpKSk7CiB9CiAKIHN0
YXRpYyBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSBET01KSVRDaGVja0pTQ2FzdE9iamVjdFNpZ25h
dHVyZShmdW5jdGlvbkRPTUpJVENoZWNrSlNDYXN0T2JqZWN0V2l0aG91dFR5cGVDaGVjaywgRE9N
SklUQ2hlY2tKU0Nhc3RPYmplY3Q6OmluZm8oKSwgRE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9N
SklUOjpIZWFwUmFuZ2U6OnRvcCgpKSwgU3BlY0ludDMyT25seSk7CkBAIC0xNTY1LDcgKzE1NjAs
NyBAQCB2b2lkIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogfQogCiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihkb21KSVRHZXR0ZXJCYXNlSlNPYmplY3RDdXN0b21HZXR0ZXIpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihkb21KSVRHZXR0ZXJCYXNlSlNPYmplY3RTbG93Q2FsbCwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIHZvaWQqKSk7CitleHRlcm4gIkMiIHsgc3Rh
dGljIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwoZG9tSklU
R2V0dGVyQmFzZUpTT2JqZWN0U2xvd0NhbGwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqLCB2b2lkKikpOyB9CiAKIGNsYXNzIERPTUpJVEdldHRlckJhc2VKU09iamVjdCA6IHB1Ymxp
YyBET01KSVROb2RlIHsKIHB1YmxpYzoKQEAgLTE2NTksOSArMTY1NCw4IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihkb21KSVRHZXR0ZXJCYXNlSlNPYmplY3RTbG93Q2FsbCwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTT2JqZWN0KiBvYmplY3Qg
PSBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHBvaW50ZXIpOwotICAgIE9QRVJBVElPTl9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShvYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpKTsK
IH0KIAogY2xhc3MgTWVzc2FnZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNZXNzYWdl
PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKaW5k
ZXggMDk3MDg1YTU1YjMxLi4xZGMyNWI5MjA2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKQEAgLTI3Myw3ICsyNzMsNyBAQCBpbmxpbmUgYm9v
bCBzaG91bGRKSVQodW5zaWduZWQgZnVuY3Rpb25JbmRleCkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2Vy
VGllclVwTm93LCB2b2lkLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCBmdW5jdGlvbklu
ZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dlclRpZXJV
cE5vdywgdm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdWludDMyX3QgZnVuY3Rpb25JbmRleCkp
CiB7CiAgICAgV2FzbTo6Q2FsbGVlR3JvdXAmIGNhbGxlZUdyb3VwID0gKmluc3RhbmNlLT5jYWxs
ZWVHcm91cCgpOwogICAgIEFTU0VSVChpbnN0YW5jZS0+bWVtb3J5KCktPm1vZGUoKSA9PSBjYWxs
ZWVHcm91cC5tb2RlKCkpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIEpTQ19ERUZJTkVfTk9FWENFUFRf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dlclRpZXJVcE5vdywgdm9pZCwgKEluc3Rh
bmNlCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9PTUdKSVQpCi1KU0NfREVGSU5F
X05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJPU1JFbnRyeU5vdywg
dm9pZCwgKFByb2JlOjpDb250ZXh0JiBjb250ZXh0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25XYXNtVHJpZ2dlck9TUkVudHJ5Tm93LCB2b2lkLCAoUHJvYmU6OkNvbnRleHQm
IGNvbnRleHQpKQogewogICAgIE9TUkVudHJ5RGF0YSYgb3NyRW50cnlEYXRhID0gKmNvbnRleHQu
YXJnPE9TUkVudHJ5RGF0YSo+KCk7CiAgICAgdWludDMyX3QgZnVuY3Rpb25JbmRleCA9IG9zckVu
dHJ5RGF0YS5mdW5jdGlvbkluZGV4KCk7CkBAIC01MjgsNyArNTI4LDcgQEAgSlNDX0RFRklORV9O
T0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyT1NSRW50cnlOb3csIHZv
aWQsIChQcm9iZToKICNlbmRpZgogI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9PTUdKSVQpIHx8IEVO
QUJMRShXRUJBU1NFTUJMWV9CQlFKSVQpCiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtTG9vcE9TUkVudGVyQkJRSklULCB2b2lkLCAoUHJvYmU6OkNvbnRl
eHQmIGNvbnRleHQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Mb29w
T1NSRW50ZXJCQlFKSVQsIHZvaWQsIChQcm9iZTo6Q29udGV4dCYgY29udGV4dCkpCiB7CiAgICAg
VGllclVwQ291bnQmIHRpZXJVcCA9ICpjb250ZXh0LmFyZzxUaWVyVXBDb3VudCo+KCk7CiAgICAg
dWludDY0X3QqIG9zckVudHJ5U2NyYXRjaEJ1ZmZlciA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+
KGNvbnRleHQuZ3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwpAQCAtNTg0LDcgKzU4NCw3IEBA
IEpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTG9vcE9TUkVu
dGVyQkJRSklULCB2b2lkLCAoUHJvYmU6CiAKICNlbmRpZgogCi1KU0NfREVGSU5FX05PRVhDRVBU
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVVud2luZCwgdm9pZCosIChJbnN0YW5jZSogaW5z
dGFuY2UpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21VbndpbmQsIHZv
aWQqLCAoSW5zdGFuY2UqIGluc3RhbmNlKSkKIHsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfV0FTTV9DQUxMX0ZSQU1FKGluc3RhbmNlKTsKICAgICBWTSYgdm0gPSBpbnN0YW5j
ZS0+dm0oKTsKQEAgLTU5NSw3ICs1OTUsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVVud2luZCwgdm9pZCosIChJbnN0YW5jZSogaW5zdGFuYwogICAg
IHJldHVybiB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIAotSlNDX0RFRklORV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKEluc3Rh
bmNlKiBpbnN0YW5jZSwgRW5jb2RlZEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCBF
bmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
V0FTTV9DQUxMX0ZSQU1FKGluc3RhbmNlKTsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+dm0oKTsK
QEAgLTYwNCw3ICs2MDQsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoSW5zdGFuY2UqIGlucwogICAgIHJldHVybiBK
U1ZhbHVlOjpkZWNvZGUodikudG9CaWdJbnQ2NChnbG9iYWxPYmplY3QpOwogfQogCi1KU0NfREVG
SU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUs
IChJbnN0YW5jZSogaW5zdGFuY2UsIEVuY29kZWRKU1ZhbHVlIHYpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoSW5zdGFuY2UqIGluc3Rh
bmNlLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfV0FTTV9DQUxMX0ZSQU1FKGluc3RhbmNlKTsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+
dm0oKTsKQEAgLTYxMyw3ICs2MTMsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChJbnN0YW5jZSogaW5zdAogICAgIHJl
dHVybiBKU1ZhbHVlOjpkZWNvZGUodikudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KTsKIH0KIAotSlND
X0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50
MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgRW5jb2RlZEpTVmFsdWUgdikpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoSW5zdGFuY2Uq
IGluc3RhbmNlLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfV0FTTV9DQUxMX0ZSQU1FKGluc3RhbmNlKTsKICAgICBWTSYgdm0gPSBpbnN0
YW5jZS0+dm0oKTsKQEAgLTYyMiw3ICs2MjIsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoSW5zdGFuY2UqIGlucwog
ICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodikudG9JbnQzMihnbG9iYWxPYmplY3QpOwogfQog
Ci1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMy
LCBmbG9hdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgRW5jb2RlZEpTVmFsdWUgdikpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKEluc3RhbmNl
KiBpbnN0YW5jZSwgRW5jb2RlZEpTVmFsdWUgdikpCiB7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX1dBU01fQ0FMTF9GUkFNRShpbnN0YW5jZSk7CiAgICAgVk0mIHZtID0gaW5z
dGFuY2UtPnZtKCk7CkBAIC02MzEsNyArNjMxLDcgQEAgSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQsIChJbnN0YW5jZSogaW5zdGEK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KEpTVmFsdWU6OmRlY29kZSh2KS50b051bWJl
cihnbG9iYWxPYmplY3QpKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnRUb0Z1bmNyZWYsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqIGlu
c3RhbmNlLCBjb25zdCBUeXBlRGVmaW5pdGlvbiogdHlwZSwgRW5jb2RlZEpTVmFsdWUgdikpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRnVuY3JlZiwgRW5jb2Rl
ZEpTVmFsdWUsIChJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0IFR5cGVEZWZpbml0aW9uKiB0eXBl
LCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfV0FTTV9DQUxMX0ZSQU1FKGluc3RhbmNlKTsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+dm0o
KTsKQEAgLTY2MCw3ICs2NjAsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29udmVydFRvRnVuY3JlZiwgRW5jb2RlZEpTVmFsdWUsIChJbgogICAgIHJldHVy
biB2OwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29u
dmVydFRvQW55cmVmLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgY29uc3Qg
VHlwZURlZmluaXRpb24qIHR5cGUsIEVuY29kZWRKU1ZhbHVlIHYpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0FueXJlZiwgRW5jb2RlZEpTVmFsdWUsIChJbnN0
YW5jZSogaW5zdGFuY2UsIGNvbnN0IFR5cGVEZWZpbml0aW9uKiB0eXBlLCBFbmNvZGVkSlNWYWx1
ZSB2KSkKIHsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfV0FTTV9DQUxMX0ZS
QU1FKGluc3RhbmNlKTsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+dm0oKTsKQEAgLTY4MSw3ICs2
ODEsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVy
dFRvQW55cmVmLCBFbmNvZGVkSlNWYWx1ZSwgKElucwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodmFsdWUpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwg
RW5jb2RlZFdhc21WYWx1ZSB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwg
RW5jb2RlZFdhc21WYWx1ZSB2YWx1ZSkpCiB7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX1dBU01fQ0FMTF9GUkFNRShpbnN0YW5jZSk7CiAgICAgVk0mIHZtID0gaW5zdGFuY2Ut
PnZtKCk7CkBAIC02OTEsNyArNjkxLDcgQEAgSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChJbnMKIH0KIAog
Ly8gaHR0cHM6Ly93ZWJhc3NlbWJseS5naXRodWIuaW8vbXVsdGktdmFsdWUvanMtYXBpL2luZGV4
Lmh0bWwjcnVuLWEtaG9zdC1mdW5jdGlvbgotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBj
b25zdCBUeXBlRGVmaW5pdGlvbiogdHlwZSwgRW5jb2RlZEpTVmFsdWUgZW5jUmVzdWx0LCB1aW50
NjRfdCogcmVnaXN0ZXJSZXN1bHRzLCB1aW50NjRfdCogY2FsbGVlRnJhbWVQb2ludGVyKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKElu
c3RhbmNlKiBpbnN0YW5jZSwgY29uc3QgVHlwZURlZmluaXRpb24qIHR5cGUsIEVuY29kZWRKU1Zh
bHVlIGVuY1Jlc3VsdCwgdWludDY0X3QqIHJlZ2lzdGVyUmVzdWx0cywgdWludDY0X3QqIGNhbGxl
ZUZyYW1lUG9pbnRlcikpCiB7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX1dB
U01fQ0FMTF9GUkFNRShpbnN0YW5jZSk7CiAgICAgVk0mIHZtID0gaW5zdGFuY2UtPnZtKCk7CkBA
IC03OTQsNyArNzk0LDcgQEAgSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoSW5zdGFuY2UqIGluc3QKIC8vIEZJWE1FOiBJdCB3
b3VsZCBiZSBtdWNoIGVhc2llciB0byBpbmxpbmUgdGhpcyB3aGVuIHdlIGhhdmUgYSBnbG9iYWwg
R0MsIHdoaWNoIGNvdWxkIHByb2JhYmx5IG1lYW4gd2UgY291bGQgYXZvaWQKIC8vIHNwaWxsaW5n
IHRoZSByZXN1bHRzIG9udG8gdGhlIHN0YWNrLgogLy8gU2F2ZWQgcmVzdWx0IHJlZ2lzdGVycyBz
aG91bGQgYmUgcGxhY2VkIG9uIHRoZSBzdGFjayBqdXN0IGFib3ZlIHRoZSBsYXN0IHN0YWNrIHJl
c3VsdC4KLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0
ZVJlc3VsdHNBcnJheSwgSlNBcnJheSosIChXYXNtOjpJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0
IFR5cGVEZWZpbml0aW9uKiB0eXBlLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlLCBKU1ZhbHVl
KiBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNBcnJheSosIChXYXNtOjpJbnN0YW5jZSogaW5z
dGFuY2UsIGNvbnN0IFR5cGVEZWZpbml0aW9uKiB0eXBlLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdU
eXBlLCBKU1ZhbHVlKiBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlKSkKIHsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfV0FTTV9DQUxMX0ZSQU1FKGluc3RhbmNlKTsKICAgICBWTSYg
dm0gPSBpbnN0YW5jZS0+dm0oKTsKQEAgLTgyOSw3ICs4MjksNyBAQCBKU0NfREVGSU5FX05PRVhD
RVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJyYXkq
LCAoV2FzbQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtV3JpdGVCYXJyaWVyU2xvd1BhdGgsIHZvaWQsIChKU0Nl
bGwqIGNlbGwsIFZNKiB2bVBvaW50ZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbldhc21Xcml0ZUJhcnJpZXJTbG93UGF0aCwgdm9pZCwgKEpTQ2VsbCogY2VsbCwgVk0qIHZt
UG9pbnRlcikpCiB7CiAgICAgQVNTRVJUKGNlbGwpOwogICAgIEFTU0VSVCh2bVBvaW50ZXIpOwpA
QCAtODM3LDE3ICs4MzcsMTcgQEAgSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbldhc21Xcml0ZUJhcnJpZXJTbG93UGF0aCwgdm9pZCwgKEpTQ2UKICAgICB2bS53cml0
ZUJhcnJpZXJTbG93UGF0aChjZWxsKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblBvcGNvdW50MzIsIHVpbnQzMl90LCAoaW50MzJfdCB2YWx1ZSkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQzMiwgdWludDMyX3QsIChp
bnQzMl90IHZhbHVlKSkKIHsKICAgICByZXR1cm4gc3RkOjpwb3Bjb3VudChzdGF0aWNfY2FzdDx1
aW50MzJfdD4odmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblBvcGNvdW50NjQsIHVpbnQ2NF90LCAoaW50NjRfdCB2YWx1ZSkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQ2NCwgdWludDY0X3QsIChpbnQ2NF90
IHZhbHVlKSkKIHsKICAgICByZXR1cm4gc3RkOjpwb3Bjb3VudChzdGF0aWNfY2FzdDx1aW50NjRf
dD4odmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdyb3dNZW1vcnksIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIGludDMyX3QgZGVs
dGEpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdyb3dNZW1vcnksIGludDMy
X3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIGludDMyX3QgZGVsdGEpKQogewogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9XQVNNX0NBTExfRlJBTUUoaW5zdGFuY2UpOwogICAgIFZN
JiB2bSA9IGluc3RhbmNlLT52bSgpOwpAQCAtODU1LDU3ICs4NTUsNTcgQEAgSlNDX0RFRklORV9O
T0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdyb3dNZW1vcnksIGludDMyX3QsIChJbnN0
YW5jZSogaW5zdGEKICAgICByZXR1cm4gZ3Jvd01lbW9yeShpbnN0YW5jZSwgZGVsdGEpOwogfQog
Ci1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUZp
bGwsIFVDUFVTdHJpY3RJbnQzMiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdWludDMyX3QgZHN0QWRk
cmVzcywgdWludDMyX3QgdGFyZ2V0VmFsdWUsIHVpbnQzMl90IGNvdW50KSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5RmlsbCwgVUNQVVN0cmljdEludDMyLCAo
SW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJfdCB0YXJnZXRW
YWx1ZSwgdWludDMyX3QgY291bnQpKQogewogICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMiht
ZW1vcnlGaWxsKGluc3RhbmNlLCBkc3RBZGRyZXNzLCB0YXJnZXRWYWx1ZSwgY291bnQpKTsKIH0K
IAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlD
b3B5LCBVQ1BVU3RyaWN0SW50MzIsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQzMl90IGRzdEFk
ZHJlc3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGNvdW50KSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5Q29weSwgVUNQVVN0cmljdEludDMyLCAo
SW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJfdCBzcmNBZGRy
ZXNzLCB1aW50MzJfdCBjb3VudCkpCiB7CiAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKG1l
bW9yeUNvcHkoaW5zdGFuY2UsIGRzdEFkZHJlc3MsIHNyY0FkZHJlc3MsIGNvdW50KSk7CiB9CiAK
LUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVF
bGVtZW50LCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFi
bGVJbmRleCwgaW50MzJfdCBzaWduZWRJbmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0V2FzbVRhYmxlRWxlbWVudCwgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSog
aW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgsIGludDMyX3Qgc2lnbmVkSW5kZXgpKQogewog
ICAgIHJldHVybiB0YWJsZUdldChpbnN0YW5jZSwgdGFibGVJbmRleCwgc2lnbmVkSW5kZXgpOwog
fQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0V2FzbVRh
YmxlRWxlbWVudCwgVUNQVVN0cmljdEludDMyLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25l
ZCB0YWJsZUluZGV4LCB1aW50MzJfdCBzaWduZWRJbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jVmFs
dWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldFdhc21UYWJsZUVsZW1l
bnQsIFVDUFVTdHJpY3RJbnQzMiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJ
bmRleCwgdWludDMyX3Qgc2lnbmVkSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY1ZhbHVlKSkKIHsK
ICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIodGFibGVTZXQoaW5zdGFuY2UsIHRhYmxlSW5k
ZXgsIHNpZ25lZEluZGV4LCBlbmNWYWx1ZSkpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlSW5pdCwgVUNQVVN0cmljdEludDMyLCAoSW5z
dGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBlbGVtZW50SW5kZXgsIHVuc2lnbmVkIHRhYmxlSW5k
ZXgsIHVpbnQzMl90IGRzdE9mZnNldCwgdWludDMyX3Qgc3JjT2Zmc2V0LCB1aW50MzJfdCBsZW5n
dGgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUluaXQsIFVD
UFVTdHJpY3RJbnQzMiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgZWxlbWVudEluZGV4
LCB1bnNpZ25lZCB0YWJsZUluZGV4LCB1aW50MzJfdCBkc3RPZmZzZXQsIHVpbnQzMl90IHNyY09m
ZnNldCwgdWludDMyX3QgbGVuZ3RoKSkKIHsKICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIo
dGFibGVJbml0KGluc3RhbmNlLCBlbGVtZW50SW5kZXgsIHRhYmxlSW5kZXgsIGRzdE9mZnNldCwg
c3JjT2Zmc2V0LCBsZW5ndGgpKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbldhc21FbGVtRHJvcCwgdm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5z
aWduZWQgZWxlbWVudEluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtRWxlbURyb3AsIHZvaWQsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGVsZW1lbnRJ
bmRleCkpCiB7CiAgICAgcmV0dXJuIGVsZW1Ecm9wKGluc3RhbmNlLCBlbGVtZW50SW5kZXgpOwog
fQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxl
R3JvdywgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCwg
RW5jb2RlZEpTVmFsdWUgZmlsbCwgdWludDMyX3QgZGVsdGEpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUdyb3csIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFu
Y2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIHVpbnQzMl90IGRl
bHRhKSkKIHsKICAgICByZXR1cm4gdGFibGVHcm93KGluc3RhbmNlLCB0YWJsZUluZGV4LCBmaWxs
LCBkZWx0YSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRp
b25XYXNtVGFibGVGaWxsLCBVQ1BVU3RyaWN0SW50MzIsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVu
c2lnbmVkIHRhYmxlSW5kZXgsIHVpbnQzMl90IG9mZnNldCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwg
dWludDMyX3QgY291bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21U
YWJsZUZpbGwsIFVDUFVTdHJpY3RJbnQzMiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQg
dGFibGVJbmRleCwgdWludDMyX3Qgb2Zmc2V0LCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCB1aW50MzJf
dCBjb3VudCkpCiB7CiAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKHRhYmxlRmlsbChpbnN0
YW5jZSwgdGFibGVJbmRleCwgb2Zmc2V0LCBmaWxsLCBjb3VudCkpOwogfQogCi1KU0NfREVGSU5F
X05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlQ29weSwgVUNQVVN0cmlj
dEludDMyLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBkc3RUYWJsZUluZGV4LCB1bnNp
Z25lZCBzcmNUYWJsZUluZGV4LCBpbnQzMl90IGRzdE9mZnNldCwgaW50MzJfdCBzcmNPZmZzZXQs
IGludDMyX3QgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
VGFibGVDb3B5LCBVQ1BVU3RyaWN0SW50MzIsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVk
IGRzdFRhYmxlSW5kZXgsIHVuc2lnbmVkIHNyY1RhYmxlSW5kZXgsIGludDMyX3QgZHN0T2Zmc2V0
LCBpbnQzMl90IHNyY09mZnNldCwgaW50MzJfdCBsZW5ndGgpKQogewogICAgIHJldHVybiB0b1VD
UFVTdHJpY3RJbnQzMih0YWJsZUNvcHkoaW5zdGFuY2UsIGRzdFRhYmxlSW5kZXgsIHNyY1RhYmxl
SW5kZXgsIGRzdE9mZnNldCwgc3JjT2Zmc2V0LCBsZW5ndGgpKTsKIH0KIAotSlNDX0RFRklORV9O
T0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZWZGdW5jLCBFbmNvZGVkSlNWYWx1
ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdWludDMyX3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZWZGdW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNl
KiBpbnN0YW5jZSwgdWludDMyX3QgaW5kZXgpKQogewogICAgIHJldHVybiByZWZGdW5jKGluc3Rh
bmNlLCBpbmRleCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtU3RydWN0TmV3LCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwg
dWludDMyX3QgdHlwZUluZGV4LCBib29sIHVzZURlZmF1bHQsIHVpbnQ2NF90KiBhcmd1bWVudHMp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21TdHJ1Y3ROZXcsIEVuY29k
ZWRKU1ZhbHVlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCB0eXBlSW5kZXgsIGJvb2wg
dXNlRGVmYXVsdCwgdWludDY0X3QqIGFyZ3VtZW50cykpCiB7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX1dBU01fQ0FMTF9GUkFNRShpbnN0YW5jZSk7CiAgICAgVk0mIHZtID0g
aW5zdGFuY2UtPnZtKCk7CkBAIC05MTMsNyArOTEzLDcgQEAgSlNDX0RFRklORV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21TdHJ1Y3ROZXcsIEVuY29kZWRKU1ZhbHVlLCAoSW5z
dGEKICAgICByZXR1cm4gc3RydWN0TmV3KGluc3RhbmNlLCB0eXBlSW5kZXgsIHVzZURlZmF1bHQs
IGFyZ3VtZW50cyk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtU3RydWN0TmV3RW1wdHksIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqIGluc3Rh
bmNlLCB1aW50MzJfdCB0eXBlSW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbldhc21TdHJ1Y3ROZXdFbXB0eSwgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSogaW5zdGFu
Y2UsIHVpbnQzMl90IHR5cGVJbmRleCkpCiB7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX1dBU01fQ0FMTF9GUkFNRShpbnN0YW5jZSk7CiAgICAgVk0mIHZtID0gaW5zdGFuY2Ut
PnZtKCk7CkBAIC05MjUsMTIgKzkyNSwxMiBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVN0cnVjdE5ld0VtcHR5LCBFbmNvZGVkSlNWYWx1ZSwgKAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUobmV3U3RydWN0ID8gbmV3U3RydWN0IDoganNOdWxsKCkp
OwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVN0
cnVjdEdldCwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3RydWN0UmVm
ZXJlbmNlLCB1aW50MzJfdCBmaWVsZEluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25XYXNtU3RydWN0R2V0LCBFbmNvZGVkSlNWYWx1ZSwgKEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRTdHJ1Y3RSZWZlcmVuY2UsIHVpbnQzMl90IGZpZWxkSW5kZXgpKQogewogICAgIHJldHVy
biBzdHJ1Y3RHZXQoZW5jb2RlZFN0cnVjdFJlZmVyZW5jZSwgZmllbGRJbmRleCk7CiB9CiAKLUpT
Q19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtU3RydWN0U2V0LCB2
b2lkLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3RydWN0UmVm
ZXJlbmNlLCB1aW50MzJfdCBmaWVsZEluZGV4LCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudCkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVN0cnVjdFNldCwgdm9pZCwgKElu
c3RhbmNlKiBpbnN0YW5jZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN0cnVjdFJlZmVyZW5jZSwg
dWludDMyX3QgZmllbGRJbmRleCwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnQpKQogewogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9XQVNNX0NBTExfRlJBTUUoaW5zdGFuY2UpOwog
ICAgIFZNJiB2bSA9IGluc3RhbmNlLT52bSgpOwpAQCAtOTM4LDM3ICs5MzgsMzcgQEAgSlNDX0RF
RklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21TdHJ1Y3RTZXQsIHZvaWQs
IChJbnN0YW5jZSogaW5zdGEKICAgICByZXR1cm4gc3RydWN0U2V0KGVuY29kZWRTdHJ1Y3RSZWZl
cmVuY2UsIGZpZWxkSW5kZXgsIGFyZ3VtZW50KTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZVNpemUsIGludDMyX3QsIChJbnN0YW5j
ZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZVNpemUsIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFu
Y2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgpKQogewogICAgIHJldHVybiB0YWJsZVNpemUoaW5zdGFu
Y2UsIHRhYmxlSW5kZXgpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDMyLCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNl
LCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQsIGludDMyX3QgdmFsdWUsIGludDY0X3Qg
dGltZW91dEluTmFub3NlY29uZHMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk1lbW9yeUF0b21pY1dhaXQzMiwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWdu
ZWQgYmFzZSwgdW5zaWduZWQgb2Zmc2V0LCBpbnQzMl90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXRJ
bk5hbm9zZWNvbmRzKSkKIHsKICAgICByZXR1cm4gbWVtb3J5QXRvbWljV2FpdDMyKGluc3RhbmNl
LCBiYXNlLCBvZmZzZXQsIHZhbHVlLCB0aW1lb3V0SW5OYW5vc2Vjb25kcyk7CiB9CiAKLUpTQ19E
RUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0NjQs
IGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGJhc2UsIHVuc2lnbmVkIG9m
ZnNldCwgaW50NjRfdCB2YWx1ZSwgaW50NjRfdCB0aW1lb3V0SW5OYW5vc2Vjb25kcykpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDY0LCBpbnQzMl90
LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQsIGlu
dDY0X3QgdmFsdWUsIGludDY0X3QgdGltZW91dEluTmFub3NlY29uZHMpKQogewogICAgIHJldHVy
biBtZW1vcnlBdG9taWNXYWl0NjQoaW5zdGFuY2UsIGJhc2UsIG9mZnNldCwgdmFsdWUsIHRpbWVv
dXRJbk5hbm9zZWNvbmRzKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk1lbW9yeUF0b21pY05vdGlmeSwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5j
ZSwgdW5zaWduZWQgYmFzZSwgdW5zaWduZWQgb2Zmc2V0LCBpbnQzMl90IGNvdW50VmFsdWUpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY05vdGlmeSwgaW50
MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgYmFzZSwgdW5zaWduZWQgb2Zmc2V0
LCBpbnQzMl90IGNvdW50VmFsdWUpKQogewogICAgIHJldHVybiBtZW1vcnlBdG9taWNOb3RpZnko
aW5zdGFuY2UsIGJhc2UsIG9mZnNldCwgY291bnRWYWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9F
WENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5SW5pdCwgVUNQVVN0cmljdElu
dDMyLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBkYXRhU2VnbWVudEluZGV4LCB1aW50
MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJfdCBzcmNBZGRyZXNzLCB1aW50MzJfdCBsZW5ndGgpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlJbml0LCBVQ1BVU3Ry
aWN0SW50MzIsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGRhdGFTZWdtZW50SW5kZXgs
IHVpbnQzMl90IGRzdEFkZHJlc3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGxlbmd0
aCkpCiB7CiAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKG1lbW9yeUluaXQoaW5zdGFuY2Us
IGRhdGFTZWdtZW50SW5kZXgsIGRzdEFkZHJlc3MsIHNyY0FkZHJlc3MsIGxlbmd0aCkpOwogfQog
Ci1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbURhdGFEcm9w
LCB2b2lkLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBkYXRhU2VnbWVudEluZGV4KSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtRGF0YURyb3AsIHZvaWQsIChJ
bnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGRhdGFTZWdtZW50SW5kZXgpKQogewogICAgIHJl
dHVybiBkYXRhRHJvcChpbnN0YW5jZSwgZGF0YVNlZ21lbnRJbmRleCk7CiB9CiAKLUpTQ19ERUZJ
TkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGhyb3csIHZvaWQqLCAoSW5z
dGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBleGNlcHRpb25JbmRleCwgdWludDY0X3QqIGFyZ3Vt
ZW50cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRocm93LCB2b2lk
KiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgZXhjZXB0aW9uSW5kZXgsIHVpbnQ2NF90
KiBhcmd1bWVudHMpKQogewogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9XQVNN
X0NBTExfRlJBTUUoaW5zdGFuY2UpOwogICAgIFZNJiB2bSA9IGluc3RhbmNlLT52bSgpOwpAQCAt
OTk4LDcgKzk5OCw3IEBAIEpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRp
b25XYXNtVGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqIGluc3RhbmNlCiAgICAgcmV0dXJuIHZtLnRh
cmdldE1hY2hpbmVQQ0ZvclRocm93OwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVJldGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBF
bmNvZGVkSlNWYWx1ZSB0aHJvd25WYWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVJldGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBFbmNvZGVkSlNW
YWx1ZSB0aHJvd25WYWx1ZSkpCiB7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X1dBU01fQ0FMTF9GUkFNRShpbnN0YW5jZSk7CiAgICAgVk0mIHZtID0gaW5zdGFuY2UtPnZtKCk7
CkBAIC0xMDE1LDcgKzEwMTUsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2FzbVJldGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqIGluc3RhbgogICAgIHJldHVy
biB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Ub0pTRXhjZXB0aW9uLCB2b2lkKiwgKEluc3RhbmNl
KiBpbnN0YW5jZSwgV2FzbTo6RXhjZXB0aW9uVHlwZSB0eXBlKSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtVG9KU0V4Y2VwdGlvbiwgdm9pZCosIChJbnN0YW5jZSogaW5z
dGFuY2UsIFdhc206OkV4Y2VwdGlvblR5cGUgdHlwZSkpCiB7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX1dBU01fQ0FMTF9GUkFNRShpbnN0YW5jZSk7CiAgICAgVk0mIHZtID0g
aW5zdGFuY2UtPnZtKCk7CkBAIC0xMDIzLDcgKzEwMjMsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBU
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRvSlNFeGNlcHRpb24sIHZvaWQqLCAoSW5zdGFu
Y2UqCiAgICAgcmV0dXJuIHRocm93V2FzbVRvSlNFeGNlcHRpb24oY2FsbEZyYW1lLCB0eXBlLCBp
bnN0YW5jZSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRp
b25DcmFzaER1ZVRvQkJRU3RhY2tPdmVyZmxvdywgdm9pZCwgKCkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ3Jhc2hEdWVUb0JCUVN0YWNrT3ZlcmZsb3csIHZvaWQsICgpKQog
ewogICAgIC8vIFdlIGhhdmUgY3Jhc2hlZCBiZWNhdXNlIG9mIGEgbWlzbWF0Y2ggYmV0d2VlbiB0
aGUgc3RhY2sgY2hlY2sgaW4gdGhlIHdhc20gc2xvdyBwYXRoIGxvb3Bfb3NyIGFuZCB0aGUgQkJR
IEpJVCBMb29wT1NSRW50cnlwb2ludC4KICAgICAvLyBUaGlzIHJlYWxseSBzaG91bGQgbmV2ZXIg
aGFwcGVuLiBXZSBtYWtlIHRoaXMgc2VwYXJhdGUgb3BlcmF0aW9uIHRvIGhhdmUgYSBjbGVhbiBj
cmFzaCBsb2cuCkBAIC0xMDMyLDcgKzEwMzIsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ3Jhc2hEdWVUb0JCUVN0YWNrT3ZlcmZsb3csIHZvaWQsICgpKQog
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGZhbHNlKTsK
IH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyYXNoRHVl
VG9PTUdTdGFja092ZXJmbG93LCB2b2lkLCAoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25DcmFzaER1ZVRvT01HU3RhY2tPdmVyZmxvdywgdm9pZCwgKCkpCiB7CiAgICAgYm9v
bCBoaWRkZW5SZXR1cm4gPSB0cnVlOwogICAgIGlmIChoaWRkZW5SZXR1cm4pCkBAIC0xMDQwLDcg
KzEwNDAsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3Jh
c2hEdWVUb09NR1N0YWNrT3ZlcmZsb3csIHZvaWQsICgpKQogfQogCiAjaWYgVVNFKEpTVkFMVUU2
NCkKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmV0cmll
dmVBbmRDbGVhckV4Y2VwdGlvbklmQ2F0Y2hhYmxlLCBUaHJvd25FeGNlcHRpb25JbmZvLCAoSW5z
dGFuY2UqIGluc3RhbmNlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
UmV0cmlldmVBbmRDbGVhckV4Y2VwdGlvbklmQ2F0Y2hhYmxlLCBUaHJvd25FeGNlcHRpb25JbmZv
LCAoSW5zdGFuY2UqIGluc3RhbmNlKSkKIHsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+dm0oKTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEwNjIs
NyArMTA2Miw3IEBAIEpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtUmV0cmlldmVBbmRDbGVhckV4Y2VwdGlvbklmQ2F0Y2hhCiB9CiAjZWxzZQogLy8gU2FtZSBh
cyBKU1ZBTFVFNjQgdmVyc2lvbiwgYnV0IHJldHVybnMgdGhyb3duVmFsdWUgb24gc3RhY2sKLUpT
Q19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmV0cmlldmVBbmRD
bGVhckV4Y2VwdGlvbklmQ2F0Y2hhYmxlLCB2b2lkKiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgRW5j
b2RlZEpTVmFsdWUqIHRocm93blZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtUmV0cmlldmVBbmRDbGVhckV4Y2VwdGlvbklmQ2F0Y2hhYmxlLCB2b2lkKiwgKElu
c3RhbmNlKiBpbnN0YW5jZSwgRW5jb2RlZEpTVmFsdWUqIHRocm93blZhbHVlKSkKIHsKICAgICBW
TSYgdm0gPSBpbnN0YW5jZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTEwODQsNyArMTA4NCw3IEBAIEpTQ19ERUZJTkVfTk9FWENFUFRf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmV0cmlldmVBbmRDbGVhckV4Y2VwdGlvbklmQ2F0
Y2hhCiB9CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKIAotSlNDX0RFRklORV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21BcnJheU5ldywgRW5jb2RlZEpTVmFsdWUsIChJbnN0
YW5jZSogaW5zdGFuY2UsIHVpbnQzMl90IHR5cGVJbmRleCwgdWludDMyX3Qgc2l6ZSwgdWludDY0
X3QgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21BcnJheU5l
dywgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQzMl90IHR5cGVJbmRl
eCwgdWludDMyX3Qgc2l6ZSwgdWludDY0X3QgdmFsdWUpKQogewogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9XQVNNX0NBTExfRlJBTUUoaW5zdGFuY2UpOwogICAgIFZNJiB2bSA9
IGluc3RhbmNlLT52bSgpOwpAQCAtMTA5Miw3ICsxMDkyLDcgQEAgSlNDX0RFRklORV9OT0VYQ0VQ
VF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21BcnJheU5ldywgRW5jb2RlZEpTVmFsdWUsIChJ
bnN0YW4KICAgICByZXR1cm4gYXJyYXlOZXcoaW5zdGFuY2UsIHR5cGVJbmRleCwgc2l6ZSwgdmFs
dWUpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bUFycmF5TmV3VmVjdG9yLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdWlu
dDMyX3QgdHlwZUluZGV4LCB1aW50MzJfdCBzaXplLCB1aW50NjRfdCBsYW5lMCwgdWludDY0X3Qg
bGFuZTEpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21BcnJheU5ld1Zl
Y3RvciwgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQzMl90IHR5cGVJ
bmRleCwgdWludDMyX3Qgc2l6ZSwgdWludDY0X3QgbGFuZTAsIHVpbnQ2NF90IGxhbmUxKSkKIHsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfV0FTTV9DQUxMX0ZSQU1FKGluc3Rh
bmNlKTsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+dm0oKTsKQEAgLTExMDAsNyArMTEwMCw3IEBA
IEpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtQXJyYXlOZXdW
ZWN0b3IsIEVuY29kZWRKU1ZhbHVlLCAoCiAgICAgcmV0dXJuIGFycmF5TmV3KGluc3RhbmNlLCB0
eXBlSW5kZXgsIHNpemUsIHYxMjhfdCB7IGxhbmUwLCBsYW5lMSB9KTsKIH0KIAotSlNDX0RFRklO
RV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21BcnJheU5ld0RhdGEsIEVuY29k
ZWRKU1ZhbHVlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCB0eXBlSW5kZXgsIHVpbnQz
Ml90IGRhdGFTZWdtZW50SW5kZXgsIHVpbnQzMl90IGFycmF5U2l6ZSwgdWludDMyX3Qgb2Zmc2V0
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtQXJyYXlOZXdEYXRhLCBF
bmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdWludDMyX3QgdHlwZUluZGV4LCB1
aW50MzJfdCBkYXRhU2VnbWVudEluZGV4LCB1aW50MzJfdCBhcnJheVNpemUsIHVpbnQzMl90IG9m
ZnNldCkpCiB7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX1dBU01fQ0FMTF9G
UkFNRShpbnN0YW5jZSk7CiAgICAgVk0mIHZtID0gaW5zdGFuY2UtPnZtKCk7CkBAIC0xMTA4LDcg
KzExMDgsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bUFycmF5TmV3RGF0YSwgRW5jb2RlZEpTVmFsdWUsIChJbgogICAgIHJldHVybiBhcnJheU5ld0Rh
dGEoaW5zdGFuY2UsIHR5cGVJbmRleCwgZGF0YVNlZ21lbnRJbmRleCwgYXJyYXlTaXplLCBvZmZz
ZXQpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bUFycmF5TmV3RWxlbSwgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQz
Ml90IHR5cGVJbmRleCwgdWludDMyX3QgZWxlbVNlZ21lbnRJbmRleCwgdWludDMyX3QgYXJyYXlT
aXplLCB1aW50MzJfdCBvZmZzZXQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldhc21BcnJheU5ld0VsZW0sIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1
aW50MzJfdCB0eXBlSW5kZXgsIHVpbnQzMl90IGVsZW1TZWdtZW50SW5kZXgsIHVpbnQzMl90IGFy
cmF5U2l6ZSwgdWludDMyX3Qgb2Zmc2V0KSkKIHsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfV0FTTV9DQUxMX0ZSQU1FKGluc3RhbmNlKTsKICAgICBWTSYgdm0gPSBpbnN0YW5j
ZS0+dm0oKTsKQEAgLTExMTcsNyArMTExNyw3IEBAIEpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtQXJyYXlOZXdFbGVtLCBFbmNvZGVkSlNWYWx1ZSwgKEluCiAg
ICAgcmV0dXJuIGFycmF5TmV3RWxlbShpbnN0YW5jZSwgdHlwZUluZGV4LCBlbGVtU2VnbWVudElu
ZGV4LCBhcnJheVNpemUsIG9mZnNldCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtQXJyYXlOZXdFbXB0eSwgRW5jb2RlZEpTVmFsdWUsIChJbnN0
YW5jZSogaW5zdGFuY2UsIHVpbnQzMl90IHR5cGVJbmRleCwgdWludDMyX3Qgc2l6ZSkpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbUFycmF5TmV3RW1wdHksIEVuY29kZWRK
U1ZhbHVlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCB0eXBlSW5kZXgsIHVpbnQzMl90
IHNpemUpKQogewogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9XQVNNX0NBTExf
RlJBTUUoaW5zdGFuY2UpOwogICAgIFZNJiB2bSA9IGluc3RhbmNlLT52bSgpOwpAQCAtMTE5MSw3
ICsxMTkxLDcgQEAgSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldh
c21BcnJheU5ld0VtcHR5LCBFbmNvZGVkSlNWYWx1ZSwgKEkKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGFycmF5ID8gYXJyYXkgOiBqc051bGwoKSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENF
UFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtQXJyYXlHZXQsIEVuY29kZWRKU1ZhbHVlLCAo
SW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCB0eXBlSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGFy
cmF5VmFsdWUsIHVpbnQzMl90IGluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtQXJyYXlHZXQsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1
aW50MzJfdCB0eXBlSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGFycmF5VmFsdWUsIHVpbnQzMl90IGlu
ZGV4KSkKIHsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfV0FTTV9DQUxMX0ZS
QU1FKGluc3RhbmNlKTsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+dm0oKTsKQEAgLTExOTksNyAr
MTE5OSw3IEBAIEpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
QXJyYXlHZXQsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuCiAgICAgcmV0dXJuIGFycmF5R2V0KGlu
c3RhbmNlLCB0eXBlSW5kZXgsIGFycmF5VmFsdWUsIGluZGV4KTsKIH0KIAotSlNDX0RFRklORV9O
T0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21BcnJheVNldCwgdm9pZCwgKEluc3Rh
bmNlKiBpbnN0YW5jZSwgdWludDMyX3QgdHlwZUluZGV4LCBFbmNvZGVkSlNWYWx1ZSBhcnJheVZh
bHVlLCB1aW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21BcnJheVNldCwgdm9pZCwgKEluc3RhbmNlKiBpbnN0
YW5jZSwgdWludDMyX3QgdHlwZUluZGV4LCBFbmNvZGVkSlNWYWx1ZSBhcnJheVZhbHVlLCB1aW50
MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpKQogewogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9XQVNNX0NBTExfRlJBTUUoaW5zdGFuY2UpOwogICAgIFZNJiB2bSA9
IGluc3RhbmNlLT52bSgpOwpAQCAtMTIwNyw3ICsxMjA3LDcgQEAgSlNDX0RFRklORV9OT0VYQ0VQ
VF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21BcnJheVNldCwgdm9pZCwgKEluc3RhbmNlKiBp
bnN0YW4KICAgICByZXR1cm4gYXJyYXlTZXQoaW5zdGFuY2UsIHR5cGVJbmRleCwgYXJyYXlWYWx1
ZSwgaW5kZXgsIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21BcnJheUZpbGwsIFVDUFVTdHJpY3RJbnQzMiwgKEluc3RhbmNlKiBpbnN0
YW5jZSwgRW5jb2RlZEpTVmFsdWUgYXJyYXlWYWx1ZSwgdWludDMyX3Qgb2Zmc2V0LCB1aW50NjRf
dCB2YWx1ZSwgdWludDMyX3Qgc2l6ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uV2FzbUFycmF5RmlsbCwgVUNQVVN0cmljdEludDMyLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBF
bmNvZGVkSlNWYWx1ZSBhcnJheVZhbHVlLCB1aW50MzJfdCBvZmZzZXQsIHVpbnQ2NF90IHZhbHVl
LCB1aW50MzJfdCBzaXplKSkKIHsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
V0FTTV9DQUxMX0ZSQU1FKGluc3RhbmNlKTsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+dm0oKTsK
QEAgLTEyMTUsNyArMTIxNSw3IEBAIEpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihv
cGVyYXRpb25XYXNtQXJyYXlGaWxsLCBVQ1BVU3RyaWN0SW50MzIsIChJbnN0CiAgICAgcmV0dXJu
IHRvVUNQVVN0cmljdEludDMyKGFycmF5RmlsbChhcnJheVZhbHVlLCBvZmZzZXQsIHZhbHVlLCBz
aXplKSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtQXJyYXlGaWxsVmVjdG9yLCBVQ1BVU3RyaWN0SW50MzIsIChJbnN0YW5jZSogaW5zdGFuY2Us
IEVuY29kZWRKU1ZhbHVlIGFycmF5VmFsdWUsIHVpbnQzMl90IG9mZnNldCwgdWludDY0X3QgbGFu
ZTAsIHVpbnQ2NF90IGxhbmUxLCB1aW50MzJfdCBzaXplKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtQXJyYXlGaWxsVmVjdG9yLCBVQ1BVU3RyaWN0SW50MzIsIChJbnN0
YW5jZSogaW5zdGFuY2UsIEVuY29kZWRKU1ZhbHVlIGFycmF5VmFsdWUsIHVpbnQzMl90IG9mZnNl
dCwgdWludDY0X3QgbGFuZTAsIHVpbnQ2NF90IGxhbmUxLCB1aW50MzJfdCBzaXplKSkKIHsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfV0FTTV9DQUxMX0ZSQU1FKGluc3RhbmNl
KTsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+dm0oKTsKQEAgLTEyMjMsMzMgKzEyMjMsMzMgQEAg
SlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21BcnJheUZpbGxW
ZWN0b3IsIFVDUFVTdHJpY3RJbnQzMiwKICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoYXJy
YXlGaWxsKGFycmF5VmFsdWUsIG9mZnNldCwgdjEyOF90IHsgbGFuZTAsIGxhbmUxIH0sIHNpemUp
KTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21B
cnJheUNvcHksIFVDUFVTdHJpY3RJbnQzMiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgRW5jb2RlZEpT
VmFsdWUgZHN0LCB1aW50MzJfdCBkc3RPZmZzZXQsIEVuY29kZWRKU1ZhbHVlIHNyYywgdWludDMy
X3Qgc3JjT2Zmc2V0LCB1aW50MzJfdCBzaXplKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25XYXNtQXJyYXlDb3B5LCBVQ1BVU3RyaWN0SW50MzIsIChJbnN0YW5jZSogaW5zdGFu
Y2UsIEVuY29kZWRKU1ZhbHVlIGRzdCwgdWludDMyX3QgZHN0T2Zmc2V0LCBFbmNvZGVkSlNWYWx1
ZSBzcmMsIHVpbnQzMl90IHNyY09mZnNldCwgdWludDMyX3Qgc2l6ZSkpCiB7CiAgICAgcmV0dXJu
IHRvVUNQVVN0cmljdEludDMyKGFycmF5Q29weShpbnN0YW5jZSwgZHN0LCBkc3RPZmZzZXQsIHNy
Yywgc3JjT2Zmc2V0LCBzaXplKSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtQXJyYXlJbml0RWxlbSwgVUNQVVN0cmljdEludDMyLCAoSW5zdGFu
Y2UqIGluc3RhbmNlLCBFbmNvZGVkSlNWYWx1ZSBkc3QsIHVpbnQzMl90IGRzdE9mZnNldCwgdWlu
dDMyX3Qgc3JjRWxlbWVudEluZGV4LCB1aW50MzJfdCBzcmNPZmZzZXQsIHVpbnQzMl90IHNpemUp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21BcnJheUluaXRFbGVtLCBV
Q1BVU3RyaWN0SW50MzIsIChJbnN0YW5jZSogaW5zdGFuY2UsIEVuY29kZWRKU1ZhbHVlIGRzdCwg
dWludDMyX3QgZHN0T2Zmc2V0LCB1aW50MzJfdCBzcmNFbGVtZW50SW5kZXgsIHVpbnQzMl90IHNy
Y09mZnNldCwgdWludDMyX3Qgc2l6ZSkpCiB7CiAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMy
KGFycmF5SW5pdEVsZW0oaW5zdGFuY2UsIGRzdCwgZHN0T2Zmc2V0LCBzcmNFbGVtZW50SW5kZXgs
IHNyY09mZnNldCwgc2l6ZSkpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2FzbUFycmF5SW5pdERhdGEsIFVDUFVTdHJpY3RJbnQzMiwgKEluc3RhbmNl
KiBpbnN0YW5jZSwgRW5jb2RlZEpTVmFsdWUgZHN0LCB1aW50MzJfdCBkc3RPZmZzZXQsIHVpbnQz
Ml90IHNyY0RhdGFJbmRleCwgdWludDMyX3Qgc3JjT2Zmc2V0LCB1aW50MzJfdCBzaXplKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtQXJyYXlJbml0RGF0YSwgVUNQVVN0
cmljdEludDMyLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBFbmNvZGVkSlNWYWx1ZSBkc3QsIHVpbnQz
Ml90IGRzdE9mZnNldCwgdWludDMyX3Qgc3JjRGF0YUluZGV4LCB1aW50MzJfdCBzcmNPZmZzZXQs
IHVpbnQzMl90IHNpemUpKQogewogICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMihhcnJheUlu
aXREYXRhKGluc3RhbmNlLCBkc3QsIGRzdE9mZnNldCwgc3JjRGF0YUluZGV4LCBzcmNPZmZzZXQs
IHNpemUpKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldhc21Jc1N1YlJUVCwgYm9vbCwgKFJUVCogbWF5YmVTdWJSVFQsIFJUVCogdGFyZ2V0UlRUKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtSXNTdWJSVFQsIGJvb2wsIChS
VFQqIG1heWJlU3ViUlRULCBSVFQqIHRhcmdldFJUVCkpCiB7CiAgICAgQVNTRVJUKG1heWJlU3Vi
UlRUICYmIHRhcmdldFJUVCk7CiAgICAgcmV0dXJuIG1heWJlU3ViUlRULT5pc1N1YlJUVCgqdGFy
Z2V0UlRUKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldhc21BbnlDb252ZXJ0RXh0ZXJuLCBFbmNvZGVkSlNWYWx1ZSwgKEVuY29kZWRKU1ZhbHVlIHJl
ZmVyZW5jZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbUFueUNvbnZl
cnRFeHRlcm4sIEVuY29kZWRKU1ZhbHVlLCAoRW5jb2RlZEpTVmFsdWUgcmVmZXJlbmNlKSkKIHsK
ICAgICByZXR1cm4gZXh0ZXJuSW50ZXJuYWxpemUocmVmZXJlbmNlKTsKIH0KIAotSlNDX0RFRklO
RV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZWZUZXN0LCBpbnQzMl90LCAo
SW5zdGFuY2UqIGluc3RhbmNlLCBFbmNvZGVkSlNWYWx1ZSByZWZlcmVuY2UsIHVpbnQzMl90IGFs
bG93TnVsbCwgaW50MzJfdCBoZWFwVHlwZSwgYm9vbCBzaG91bGROZWdhdGUpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZWZUZXN0LCBpbnQzMl90LCAoSW5zdGFuY2Uq
IGluc3RhbmNlLCBFbmNvZGVkSlNWYWx1ZSByZWZlcmVuY2UsIHVpbnQzMl90IGFsbG93TnVsbCwg
aW50MzJfdCBoZWFwVHlwZSwgYm9vbCBzaG91bGROZWdhdGUpKQogewogICAgIFdhc206OlR5cGVJ
bmRleCB0eXBlSW5kZXg7CiAgICAgaWYgKFdhc206OnR5cGVJbmRleElzVHlwZShzdGF0aWNfY2Fz
dDxXYXNtOjpUeXBlSW5kZXg+KGhlYXBUeXBlKSkpCkBAIC0xMjYyLDcgKzEyNjIsNyBAQCBKU0Nf
REVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJlZlRlc3QsIGludDMy
X3QsIChJbnN0YW5jZSogaW5zdAogICAgIHJldHVybiBXYXNtOjpyZWZDYXN0KHJlZmVyZW5jZSwg
c3RhdGljX2Nhc3Q8Ym9vbD4oYWxsb3dOdWxsKSwgdHlwZUluZGV4KSA/IHRydXRoIDogZmFsc2l0
eTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21S
ZWZDYXN0LCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgRW5jb2RlZEpTVmFs
dWUgcmVmZXJlbmNlLCB1aW50MzJfdCBhbGxvd051bGwsIGludDMyX3QgaGVhcFR5cGUpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZWZDYXN0LCBFbmNvZGVkSlNWYWx1
ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgRW5jb2RlZEpTVmFsdWUgcmVmZXJlbmNlLCB1aW50MzJf
dCBhbGxvd051bGwsIGludDMyX3QgaGVhcFR5cGUpKQogewogICAgIFdhc206OlR5cGVJbmRleCB0
eXBlSW5kZXg7CiAgICAgaWYgKFdhc206OnR5cGVJbmRleElzVHlwZShzdGF0aWNfY2FzdDxXYXNt
OjpUeXBlSW5kZXg+KGhlYXBUeXBlKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU9wZXJhdGlvbnMuaAppbmRleCBkYWU1MzA0ZTAwYmIuLjczZDZjMWRiY2FmYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCkBAIC0zMCw3ICszMCw2IEBA
CiAjaW5jbHVkZSAiSW5kZXhpbmdUeXBlLmgiCiAjaW5jbHVkZSAiSklUT3BlcmF0aW9uVmFsaWRh
dGlvbi5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKLSNpbmNsdWRlICJPcGVyYXRpb25SZXN1
bHQuaCIKICNpbmNsdWRlICJXYXNtRXhjZXB0aW9uVHlwZS5oIgogI2luY2x1ZGUgIldhc21PU1JF
bnRyeURhdGEuaCIKICNpbmNsdWRlICJXYXNtVHlwZURlZmluaXRpb24uaCIKQEAgLTUyLDkxICs1
MSw5MSBAQCB0eXBlZGVmIGludDY0X3QgRW5jb2RlZFdhc21WYWx1ZTsKIAogI2lmIEVOQUJMRShX
RUJBU1NFTUJMWV9PTUdKSVQpCiB2b2lkIGxvYWRWYWx1ZXNJbnRvQnVmZmVyKFByb2JlOjpDb250
ZXh0JiwgY29uc3QgU3RhY2tNYXAmLCB1aW50NjRfdCogYnVmZmVyLCBTYXZlZEZQV2lkdGgpOwot
SlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dlclRp
ZXJVcE5vdywgdm9pZCwgKEluc3RhbmNlKiwgdWludDMyX3QgZnVuY3Rpb25JbmRleCkpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dlclRpZXJVcE5vdywgdm9p
ZCwgKEluc3RhbmNlKiwgdWludDMyX3QgZnVuY3Rpb25JbmRleCkpOwogI2VuZGlmCiAjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZX09NR0pJVCkgfHwgRU5BQkxFKFdFQkFTU0VNQkxZX0JCUUpJVCkKLUpT
Q19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJPU1JF
bnRyeU5vdywgdm9pZCwgKFByb2JlOjpDb250ZXh0JikpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTG9vcE9TUkVudGVyQkJRSklULCB2b2lkLCAoUHJv
YmU6OkNvbnRleHQmKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21U
cmlnZ2VyT1NSRW50cnlOb3csIHZvaWQsIChQcm9iZTo6Q29udGV4dCYpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbUxvb3BPU1JFbnRlckJCUUpJVCwgdm9pZCwgKFBy
b2JlOjpDb250ZXh0JikpOwogI2VuZGlmCi1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbldhc21VbndpbmQsIHZvaWQqLCAoSW5zdGFuY2UqKSk7Ci0KLUpTQ19ERUNM
QVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90
LCAoSW5zdGFuY2UqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklU
X09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GNjQsIGRvdWJsZSwgKEluc3RhbmNlKiwgRW5j
b2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoSW5zdGFuY2UqLCBFbmNvZGVkSlNWYWx1ZSkpOwot
SlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GMzIs
IGZsb2F0LCAoSW5zdGFuY2UqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfTk9FWENF
UFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GdW5jcmVmLCBFbmNvZGVkSlNWYWx1
ZSwgKEluc3RhbmNlKiwgY29uc3QgVHlwZURlZmluaXRpb24qLCBFbmNvZGVkSlNWYWx1ZSkpOwot
SlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9Bbnly
ZWYsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqLCBjb25zdCBUeXBlRGVmaW5pdGlvbiosIEVu
Y29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIEVuY29kZWRX
YXNtVmFsdWUpKTsKLQotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRp
b25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKEluc3RhbmNlKiwgY29uc3QgVHlwZURlZmluaXRpb24q
LCBFbmNvZGVkSlNWYWx1ZSwgdWludDY0X3QqLCB1aW50NjRfdCopKTsKLUpTQ19ERUNMQVJFX05P
RVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJy
YXkqLCAoV2FzbTo6SW5zdGFuY2UqLCBjb25zdCBUeXBlRGVmaW5pdGlvbiosIEluZGV4aW5nVHlw
ZSwgSlNWYWx1ZSopKTsKLQotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtV3JpdGVCYXJyaWVyU2xvd1BhdGgsIHZvaWQsIChKU0NlbGwqLCBWTSopKTsKLUpT
Q19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQzMiwgdWlu
dDMyX3QsIChpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblBvcGNvdW50NjQsIHVpbnQ2NF90LCAoaW50NjRfdCkpOwotSlNDX0RFQ0xBUkVfTk9F
WENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Hcm93TWVtb3J5LCBpbnQzMl90LCAoSW5zdGFu
Y2UqLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbldhc21NZW1vcnlGaWxsLCBVQ1BVU3RyaWN0SW50MzIsIChJbnN0YW5jZSosIHVpbnQzMl90
IGRzdEFkZHJlc3MsIHVpbnQzMl90IHRhcmdldFZhbHVlLCB1aW50MzJfdCBjb3VudCkpOwotSlND
X0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5Q29weSwg
VUNQVVN0cmljdEludDMyLCAoSW5zdGFuY2UqLCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJf
dCBzcmNBZGRyZXNzLCB1aW50MzJfdCBjb3VudCkpOwotCi1KU0NfREVDTEFSRV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZUVsZW1lbnQsIEVuY29kZWRKU1ZhbHVl
LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRf
SklUX09QRVJBVElPTihvcGVyYXRpb25TZXRXYXNtVGFibGVFbGVtZW50LCBVQ1BVU3RyaWN0SW50
MzIsIChJbnN0YW5jZSosIHVuc2lnbmVkLCB1aW50MzJfdCwgRW5jb2RlZEpTVmFsdWUgZW5jVmFs
dWUpKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJl
ZkZ1bmMsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqLCB1aW50MzJfdCkpOwotSlNDX0RFQ0xB
UkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVJbml0LCBVQ1BVU3Ry
aWN0SW50MzIsIChJbnN0YW5jZSosIHVuc2lnbmVkIGVsZW1lbnRJbmRleCwgdW5zaWduZWQgdGFi
bGVJbmRleCwgdWludDMyX3QgZHN0T2Zmc2V0LCB1aW50MzJfdCBzcmNPZmZzZXQsIHVpbnQzMl90
IGxlbmd0aCkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtRWxlbURyb3AsIHZvaWQsIChJbnN0YW5jZSosIHVuc2lnbmVkIGVsZW1lbnRJbmRleCkpOwot
SlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVHcm93
LCBpbnQzMl90LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwgdWlu
dDMyX3QgZGVsdGEpKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uV2FzbVRhYmxlRmlsbCwgVUNQVVN0cmljdEludDMyLCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwg
dWludDMyX3Qgb2Zmc2V0LCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCB1aW50MzJfdCBjb3VudCkpOwot
SlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVDb3B5
LCBVQ1BVU3RyaWN0SW50MzIsIChJbnN0YW5jZSosIHVuc2lnbmVkIGRzdFRhYmxlSW5kZXgsIHVu
c2lnbmVkIHNyY1RhYmxlSW5kZXgsIGludDMyX3QgZHN0T2Zmc2V0LCBpbnQzMl90IHNyY09mZnNl
dCwgaW50MzJfdCBsZW5ndGgpKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0V2FzbVRhYmxlU2l6ZSwgaW50MzJfdCwgKEluc3RhbmNlKiwgdW5zaWduZWQp
KTsKLQotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlB
dG9taWNXYWl0MzIsIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGJhc2Us
IHVuc2lnbmVkIG9mZnNldCwgaW50MzJfdCB2YWx1ZSwgaW50NjRfdCB0aW1lb3V0KSk7Ci1KU0Nf
REVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQ2
NCwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgYmFzZSwgdW5zaWduZWQg
b2Zmc2V0LCBpbnQ2NF90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXQpKTsKLUpTQ19ERUNMQVJFX05P
RVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljTm90aWZ5LCBpbnQzMl90
LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwgdW5zaWduZWQsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJF
X05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUluaXQsIFVDUFVTdHJp
Y3RJbnQzMiwgKEluc3RhbmNlKiwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRleCwgdWludDMyX3Qg
ZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRkcmVzcywgdWludDMyX3QgbGVuZ3RoKSk7Ci1KU0Nf
REVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21EYXRhRHJvcCwgdm9p
ZCwgKEluc3RhbmNlKiwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRleCkpOwotCi1KU0NfREVDTEFS
RV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21TdHJ1Y3ROZXcsIEVuY29kZWRK
U1ZhbHVlLCAoSW5zdGFuY2UqLCB1aW50MzJfdCwgYm9vbCwgdWludDY0X3QqKSk7Ci1KU0NfREVD
TEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21TdHJ1Y3ROZXdFbXB0eSwg
RW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIHVpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21TdHJ1Y3RHZXQsIEVuY29kZWRKU1ZhbHVl
LCAoRW5jb2RlZEpTVmFsdWUsIHVpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21TdHJ1Y3RTZXQsIHZvaWQsIChJbnN0YW5jZSosIEVuY29k
ZWRKU1ZhbHVlLCB1aW50MzJfdCwgRW5jb2RlZEpTVmFsdWUpKTsKLQotSlNDX0RFQ0xBUkVfTk9F
WENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGhyb3csIHZvaWQqLCAoSW5zdGFuY2Uq
LCB1bnNpZ25lZCBleGNlcHRpb25JbmRleCwgdWludDY0X3QqKSk7Ci1KU0NfREVDTEFSRV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRocm93LCB2b2lkKiwgKEluc3RhbmNl
KiwgRW5jb2RlZEpTVmFsdWUgdGhyb3duVmFsdWUpKTsKLQotSlNDX0RFQ0xBUkVfTk9FWENFUFRf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVG9KU0V4Y2VwdGlvbiwgdm9pZCosIChJbnN0YW5j
ZSosIFdhc206OkV4Y2VwdGlvblR5cGUpKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ3Jhc2hEdWVUb0JCUVN0YWNrT3ZlcmZsb3csIHZvaWQsICgpKTsKLUpT
Q19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3Jhc2hEdWVUb09NR1N0
YWNrT3ZlcmZsb3csIHZvaWQsICgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uV2FzbVVud2luZCwgdm9pZCosIChJbnN0YW5jZSopKTsKKworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JNjQsIGludDY0X3QsIChJbnN0YW5jZSosIEVuY29k
ZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRU
b0Y2NCwgZG91YmxlLCAoSW5zdGFuY2UqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChJbnN0YW5jZSos
IEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNv
bnZlcnRUb0YzMiwgZmxvYXQsIChJbnN0YW5jZSosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Z1bmNyZWYsIEVuY29kZWRKU1Zh
bHVlLCAoSW5zdGFuY2UqLCBjb25zdCBUeXBlRGVmaW5pdGlvbiosIEVuY29kZWRKU1ZhbHVlKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0FueXJlZiwgRW5j
b2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIGNvbnN0IFR5cGVEZWZpbml0aW9uKiwgRW5jb2RlZEpT
VmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmln
SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiwgRW5jb2RlZFdhc21WYWx1ZSkpOworCitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAo
SW5zdGFuY2UqLCBjb25zdCBUeXBlRGVmaW5pdGlvbiosIEVuY29kZWRKU1ZhbHVlLCB1aW50NjRf
dCosIHVpbnQ2NF90KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxv
Y2F0ZVJlc3VsdHNBcnJheSwgSlNBcnJheSosIChXYXNtOjpJbnN0YW5jZSosIGNvbnN0IFR5cGVE
ZWZpbml0aW9uKiwgSW5kZXhpbmdUeXBlLCBKU1ZhbHVlKikpOworCitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21Xcml0ZUJhcnJpZXJTbG93UGF0aCwgdm9pZCwgKEpTQ2Vs
bCosIFZNKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3Bjb3VudDMy
LCB1aW50MzJfdCwgKGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUG9wY291bnQ2NCwgdWludDY0X3QsIChpbnQ2NF90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkdyb3dNZW1vcnksIGludDMyX3QsIChJbnN0YW5jZSosIGludDMyX3Qp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUZpbGwsIFVD
UFVTdHJpY3RJbnQzMiwgKEluc3RhbmNlKiwgdWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3Qg
dGFyZ2V0VmFsdWUsIHVpbnQzMl90IGNvdW50KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21NZW1vcnlDb3B5LCBVQ1BVU3RyaWN0SW50MzIsIChJbnN0YW5jZSosIHVp
bnQzMl90IGRzdEFkZHJlc3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGNvdW50KSk7
CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2FzbVRhYmxlRWxlbWVu
dCwgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIHVuc2lnbmVkLCBpbnQzMl90KSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldFdhc21UYWJsZUVsZW1lbnQsIFVDUFVT
dHJpY3RJbnQzMiwgKEluc3RhbmNlKiwgdW5zaWduZWQsIHVpbnQzMl90LCBFbmNvZGVkSlNWYWx1
ZSBlbmNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmVm
RnVuYywgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIHVpbnQzMl90KSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUluaXQsIFVDUFVTdHJpY3RJbnQzMiwg
KEluc3RhbmNlKiwgdW5zaWduZWQgZWxlbWVudEluZGV4LCB1bnNpZ25lZCB0YWJsZUluZGV4LCB1
aW50MzJfdCBkc3RPZmZzZXQsIHVpbnQzMl90IHNyY09mZnNldCwgdWludDMyX3QgbGVuZ3RoKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21FbGVtRHJvcCwgdm9pZCwg
KEluc3RhbmNlKiwgdW5zaWduZWQgZWxlbWVudEluZGV4KSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUdyb3csIGludDMyX3QsIChJbnN0YW5jZSosIHVuc2ln
bmVkLCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCB1aW50MzJfdCBkZWx0YSkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVGaWxsLCBVQ1BVU3RyaWN0SW50MzIsIChJ
bnN0YW5jZSosIHVuc2lnbmVkLCB1aW50MzJfdCBvZmZzZXQsIEVuY29kZWRKU1ZhbHVlIGZpbGws
IHVpbnQzMl90IGNvdW50KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldh
c21UYWJsZUNvcHksIFVDUFVTdHJpY3RJbnQzMiwgKEluc3RhbmNlKiwgdW5zaWduZWQgZHN0VGFi
bGVJbmRleCwgdW5zaWduZWQgc3JjVGFibGVJbmRleCwgaW50MzJfdCBkc3RPZmZzZXQsIGludDMy
X3Qgc3JjT2Zmc2V0LCBpbnQzMl90IGxlbmd0aCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25HZXRXYXNtVGFibGVTaXplLCBpbnQzMl90LCAoSW5zdGFuY2UqLCB1bnNpZ25l
ZCkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY1dh
aXQzMiwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgYmFzZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBpbnQzMl90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXQpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDY0LCBpbnQzMl90LCAoSW5z
dGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQsIGludDY0X3Qg
dmFsdWUsIGludDY0X3QgdGltZW91dCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25NZW1vcnlBdG9taWNOb3RpZnksIGludDMyX3QsIChJbnN0YW5jZSosIHVuc2lnbmVkLCB1
bnNpZ25lZCwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtTWVtb3J5SW5pdCwgVUNQVVN0cmljdEludDMyLCAoSW5zdGFuY2UqLCB1bnNpZ25lZCBkYXRh
U2VnbWVudEluZGV4LCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJfdCBzcmNBZGRyZXNzLCB1
aW50MzJfdCBsZW5ndGgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bURhdGFEcm9wLCB2b2lkLCAoSW5zdGFuY2UqLCB1bnNpZ25lZCBkYXRhU2VnbWVudEluZGV4KSk7
CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVN0cnVjdE5ldywgRW5j
b2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIHVpbnQzMl90LCBib29sLCB1aW50NjRfdCopKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVN0cnVjdE5ld0VtcHR5LCBFbmNv
ZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiwgdWludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVN0cnVjdEdldCwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGVkSlNW
YWx1ZSwgdWludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bVN0cnVjdFNldCwgdm9pZCwgKEluc3RhbmNlKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnQzMl90LCBF
bmNvZGVkSlNWYWx1ZSkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldh
c21UaHJvdywgdm9pZCosIChJbnN0YW5jZSosIHVuc2lnbmVkIGV4Y2VwdGlvbkluZGV4LCB1aW50
NjRfdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJldGhyb3cs
IHZvaWQqLCAoSW5zdGFuY2UqLCBFbmNvZGVkSlNWYWx1ZSB0aHJvd25WYWx1ZSkpOworCitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Ub0pTRXhjZXB0aW9uLCB2b2lkKiwg
KEluc3RhbmNlKiwgV2FzbTo6RXhjZXB0aW9uVHlwZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25DcmFzaER1ZVRvQkJRU3RhY2tPdmVyZmxvdywgdm9pZCwgKCkpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmFzaER1ZVRvT01HU3RhY2tPdmVyZmxv
dywgdm9pZCwgKCkpOwogCiBzdHJ1Y3QgVGhyb3duRXhjZXB0aW9uSW5mbyB7CiAgICAgRW5jb2Rl
ZEpTVmFsdWUgdGhyb3duVmFsdWU7CiAgICAgdm9pZCogcGF5bG9hZDsKIH07CiAKLUpTQ19ERUNM
QVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbUFycmF5TmV3LCBFbmNvZGVk
SlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdWludDMyX3QgdHlwZUluZGV4LCB1aW50MzJf
dCBzaXplLCB1aW50NjRfdCB2YWx1ZSkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtQXJyYXlOZXdWZWN0b3IsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFu
Y2UqIGluc3RhbmNlLCB1aW50MzJfdCB0eXBlSW5kZXgsIHVpbnQzMl90IHNpemUsIHVpbnQ2NF90
IGxhbmUwLCB1aW50NjRfdCBsYW5lMSkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtQXJyYXlOZXdEYXRhLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNl
KiBpbnN0YW5jZSwgdWludDMyX3QgdHlwZUluZGV4LCB1aW50MzJfdCBkYXRhU2VnbWVudEluZGV4
LCB1aW50MzJfdCBhcnJheVNpemUsIHVpbnQzMl90IG9mZnNldCkpOwotSlNDX0RFQ0xBUkVfTk9F
WENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtQXJyYXlOZXdFbGVtLCBFbmNvZGVkSlNW
YWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdWludDMyX3QgdHlwZUluZGV4LCB1aW50MzJfdCBl
bGVtU2VnbWVudEluZGV4LCB1aW50MzJfdCBhcnJheVNpemUsIHVpbnQzMl90IG9mZnNldCkpOwot
SlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtQXJyYXlOZXdF
bXB0eSwgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQzMl90IHR5cGVJ
bmRleCwgdWludDMyX3Qgc2l6ZSkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElP
TihvcGVyYXRpb25XYXNtQXJyYXlHZXQsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqIGluc3Rh
bmNlLCB1aW50MzJfdCB0eXBlSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY1ZhbHVlLCB1aW50MzJf
dCBpbmRleCkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtQXJyYXlTZXQsIHZvaWQsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQzMl90IHR5cGVJbmRl
eCwgRW5jb2RlZEpTVmFsdWUgZW5jVmFsdWUsIHVpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1
ZSB2YWx1ZSkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtQXJyYXlGaWxsLCBVQ1BVU3RyaWN0SW50MzIsIChJbnN0YW5jZSosIEVuY29kZWRKU1ZhbHVl
LCB1aW50MzJfdCwgdWludDY0X3QsIHVpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21BcnJheUZpbGxWZWN0b3IsIFVDUFVTdHJpY3RJbnQz
MiwgKEluc3RhbmNlKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnQzMl90LCB1aW50NjRfdCwgdWludDY0
X3QsIHVpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbldhc21BcnJheUNvcHksIFVDUFVTdHJpY3RJbnQzMiwgKEluc3RhbmNlKiwgRW5jb2RlZEpT
VmFsdWUsIHVpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSwgdWludDMyX3QsIHVpbnQzMl90KSk7Ci1K
U0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21BcnJheUluaXRF
bGVtLCBVQ1BVU3RyaWN0SW50MzIsIChJbnN0YW5jZSosIEVuY29kZWRKU1ZhbHVlLCB1aW50MzJf
dCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtQXJyYXlJbml0RGF0YSwgVUNQVVN0cmljdEludDMy
LCAoSW5zdGFuY2UqLCBFbmNvZGVkSlNWYWx1ZSwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJf
dCwgdWludDMyX3QpKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uV2FzbUlzU3ViUlRULCBib29sLCAoV2FzbTo6UlRUKiwgV2FzbTo6UlRUKikpOwotSlNDX0RF
Q0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtQW55Q29udmVydEV4dGVy
biwgRW5jb2RlZEpTVmFsdWUsIChFbmNvZGVkSlNWYWx1ZSkpOwotCi1KU0NfREVDTEFSRV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZWZUZXN0LCBpbnQzMl90LCAoSW5zdGFu
Y2UqLCBFbmNvZGVkSlNWYWx1ZSwgdWludDMyX3QsIGludDMyX3QsIGJvb2wpKTsKLUpTQ19ERUNM
QVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJlZkNhc3QsIEVuY29kZWRK
U1ZhbHVlLCAoSW5zdGFuY2UqLCBFbmNvZGVkSlNWYWx1ZSwgdWludDMyX3QsIGludDMyX3QpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbUFycmF5TmV3LCBFbmNvZGVk
SlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdWludDMyX3QgdHlwZUluZGV4LCB1aW50MzJf
dCBzaXplLCB1aW50NjRfdCB2YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtQXJyYXlOZXdWZWN0b3IsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqIGluc3Rh
bmNlLCB1aW50MzJfdCB0eXBlSW5kZXgsIHVpbnQzMl90IHNpemUsIHVpbnQ2NF90IGxhbmUwLCB1
aW50NjRfdCBsYW5lMSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
QXJyYXlOZXdEYXRhLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdWludDMy
X3QgdHlwZUluZGV4LCB1aW50MzJfdCBkYXRhU2VnbWVudEluZGV4LCB1aW50MzJfdCBhcnJheVNp
emUsIHVpbnQzMl90IG9mZnNldCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25XYXNtQXJyYXlOZXdFbGVtLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwg
dWludDMyX3QgdHlwZUluZGV4LCB1aW50MzJfdCBlbGVtU2VnbWVudEluZGV4LCB1aW50MzJfdCBh
cnJheVNpemUsIHVpbnQzMl90IG9mZnNldCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25XYXNtQXJyYXlOZXdFbXB0eSwgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSogaW5z
dGFuY2UsIHVpbnQzMl90IHR5cGVJbmRleCwgdWludDMyX3Qgc2l6ZSkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtQXJyYXlHZXQsIEVuY29kZWRKU1ZhbHVlLCAoSW5z
dGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCB0eXBlSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY1Zh
bHVlLCB1aW50MzJfdCBpbmRleCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25XYXNtQXJyYXlTZXQsIHZvaWQsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQzMl90IHR5cGVJ
bmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jVmFsdWUsIHVpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNW
YWx1ZSB2YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtQXJy
YXlGaWxsLCBVQ1BVU3RyaWN0SW50MzIsIChJbnN0YW5jZSosIEVuY29kZWRKU1ZhbHVlLCB1aW50
MzJfdCwgdWludDY0X3QsIHVpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbldhc21BcnJheUZpbGxWZWN0b3IsIFVDUFVTdHJpY3RJbnQzMiwgKEluc3RhbmNlKiwg
RW5jb2RlZEpTVmFsdWUsIHVpbnQzMl90LCB1aW50NjRfdCwgdWludDY0X3QsIHVpbnQzMl90KSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21BcnJheUNvcHksIFVDUFVT
dHJpY3RJbnQzMiwgKEluc3RhbmNlKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnQzMl90LCBFbmNvZGVk
SlNWYWx1ZSwgdWludDMyX3QsIHVpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21BcnJheUluaXRFbGVtLCBVQ1BVU3RyaWN0SW50MzIsIChJbnN0YW5jZSos
IEVuY29kZWRKU1ZhbHVlLCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtQXJyYXlJbml0RGF0YSwg
VUNQVVN0cmljdEludDMyLCAoSW5zdGFuY2UqLCBFbmNvZGVkSlNWYWx1ZSwgdWludDMyX3QsIHVp
bnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2FzbUlzU3ViUlRULCBib29sLCAoV2FzbTo6UlRUKiwgV2FzbTo6UlRUKikpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtQW55Q29udmVydEV4dGVybiwg
RW5jb2RlZEpTVmFsdWUsIChFbmNvZGVkSlNWYWx1ZSkpOworCitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21SZWZUZXN0LCBpbnQzMl90LCAoSW5zdGFuY2UqLCBFbmNvZGVk
SlNWYWx1ZSwgdWludDMyX3QsIGludDMyX3QsIGJvb2wpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVJlZkNhc3QsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqLCBF
bmNvZGVkSlNWYWx1ZSwgdWludDMyX3QsIGludDMyX3QpKTsKIAogI2lmIFVTRShKU1ZBTFVFNjQp
Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRyaWV2
ZUFuZENsZWFyRXhjZXB0aW9uSWZDYXRjaGFibGUsIFRocm93bkV4Y2VwdGlvbkluZm8sIChJbnN0
YW5jZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJldHJpZXZl
QW5kQ2xlYXJFeGNlcHRpb25JZkNhdGNoYWJsZSwgVGhyb3duRXhjZXB0aW9uSW5mbywgKEluc3Rh
bmNlKikpOwogI2Vsc2UKIC8qIE9uIDMyLWJpdCBwbGF0Zm9ybXMsIHdlIGNhbid0IHJldHVybiBi
b3RoIGFuIEVuY29kZWRKU1ZhbHVlIGFuZCB0aGUgcGF5bG9hZAogICogdG9nZXRoZXIgKG5vdCBl
bm91Z2ggcmV0dXJuIHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxlIGluIHRoZSBBQkkgYW5kIHdlIGRv
bid0CiAgKiBoYW5kbGUgc3RhY2sgYXJndW1lbnRzIHdoZW4gY2FsbGluZyBDIGZ1bmN0aW9ucyks
IHNvLCBpbnN0ZWFkLCByZXR1cm4gdGhlCiAgKiBwYXlsb2FkIGFuZCByZXR1cm4gdGhlIHRocm93
biB2YWx1ZSB2aWEgYW4gb3V0IHBvaW50ZXIgKi8KLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uV2FzbVJldHJpZXZlQW5kQ2xlYXJFeGNlcHRpb25JZkNhdGNoYWJs
ZSwgdm9pZCosIChJbnN0YW5jZSosIEVuY29kZWRKU1ZhbHVlKikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtUmV0cmlldmVBbmRDbGVhckV4Y2VwdGlvbklmQ2F0Y2hh
YmxlLCB2b2lkKiwgKEluc3RhbmNlKiwgRW5jb2RlZEpTVmFsdWUqKSk7CiAjZW5kaWYgLy8gVVNF
KEpTVkFMVUU2NCkKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyckpJVC5jcHAKaW5kZXggNWQ2OWE3NWE3ZWU4Li42ZDdlYmJiYmE2MzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCkBAIC01OCw3ICs1OCw3IEBAIGVu
dW0gY2xhc3MgVHJ5UmVhZFVuaWNvZGVDaGFyQ29kZUxvY2F0aW9uIHsgQ29tcGlsZWRJbmxpbmUs
IENvbXBpbGVkQXNIZWxwZXIgfTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFlBUlJfSklUX0JBQ0tS
RUZFUkVOQ0VTX0ZPUl8xNkJJVF9FWFBSUykKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQXJlQ2Fub25pY2FsbHlFcXVpdmFsZW50LCBib29sLCAodW5zaWduZWQs
IHVuc2lnbmVkLCBDYW5vbmljYWxNb2RlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkFyZUNhbm9uaWNhbGx5RXF1aXZhbGVudCwgYm9vbCwgKHVuc2lnbmVkLCB1bnNpZ25l
ZCwgQ2Fub25pY2FsTW9kZSkpOwogCiAvLyBTaW5jZSB0aGUgZ2VuZXJhdG9yIGFyZUNhbm9uaWNh
bGx5RXF1aXZhbGVudFRodW5rR2VuZXJhdG9yKCkgbmVlZHMgdG8gYmUgc3RhdGljLAogLy8gd2Ug
c2V0IHRoZSBpbmNvbWluZyBhcmd1bWVudCByZWdpc3RlcnMgdG8gdGhlIHRodW5rIGhlcmUgYW5k
IEFTU0VSVCBhdCBydW50aW1lCkBAIC01MzA5LDcgKzUzMDksNyBAQCBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY8SklUVGh1bmtQdHJUYWc+IGFyZUNhbm9uaWNhbGx5RXF1aXZhbGVudFRodW5rR2VuZXJh
dG9yKFZNJgogICAgIHJldHVybiBGSU5BTElaRV9USFVOSyhwYXRjaEJ1ZmZlciwgSklUVGh1bmtQ
dHJUYWcsIG51bGxwdHIsICJZQVJSIGFyZUNhbm9uaWNhbGx5RXF1aXZhbGVudCBjYWxsIik7CiB9
CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25BcmVDYW5vbmlj
YWxseUVxdWl2YWxlbnQsIGJvb2wsICh1bnNpZ25lZCBhLCB1bnNpZ25lZCBiLCBDYW5vbmljYWxN
b2RlIGNhbm9uaWNhbE1vZGUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFy
ZUNhbm9uaWNhbGx5RXF1aXZhbGVudCwgYm9vbCwgKHVuc2lnbmVkIGEsIHVuc2lnbmVkIGIsIENh
bm9uaWNhbE1vZGUgY2Fub25pY2FsTW9kZSkpCiB7CiAgICAgcmV0dXJuIGFyZUNhbm9uaWNhbGx5
RXF1aXZhbGVudChzdGF0aWNfY2FzdDxjaGFyMzJfdD4oYSksIHN0YXRpY19jYXN0PGNoYXIzMl90
PihiKSwgY2Fub25pY2FsTW9kZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUNhbGxpbmdDb252ZW50aW9ucy5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1DYWxsaW5n
Q29udmVudGlvbnMuaAppbmRleCBmYmI2YjE4ZDBmMjcuLjVkNDUyNWJkMDY4OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1DYWxsaW5nQ29udmVudGlvbnMuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUNhbGxpbmdDb252ZW50aW9ucy5oCkBAIC0xMTUsMjcgKzExNSwy
NyBAQAogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVF9PUEVSQVRJT05fVkFMSURBVElPTikgfHwgRU5B
QkxFKEpJVF9PUEVSQVRJT05fRElTQVNTRU1CTFkpCiAKLSNkZWZpbmUgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OX1dJVEhPVVRfVkFSSUFCTEVfSU1QTChmdW5jdGlvbk5hbWUsIHJldHVyblR5cGUs
IHBhcmFtZXRlcnMpIFwKKyNkZWZpbmUgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRf
VkFSSUFCTEUoZnVuY3Rpb25OYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzKSBcCiAgICAgcmV0
dXJuVHlwZSBKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgZnVuY3Rpb25OYW1lIHBhcmFtZXRlcnMK
IAotI2RlZmluZSBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT05fV0lUSF9BVFRSSUJVVEVTX0lNUEwo
ZnVuY3Rpb25OYW1lLCBhdHRyaWJ1dGVzLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzKSBcCisjZGVm
aW5lIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMoZnVuY3Rpb25OYW1l
LCBhdHRyaWJ1dGVzLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzKSBcCiAgICAgSlNDX0FOTk9UQVRF
X0pJVF9PUEVSQVRJT04oZnVuY3Rpb25OYW1lKTsgXAogICAgIGF0dHJpYnV0ZXMgcmV0dXJuVHlw
ZSBKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgZnVuY3Rpb25OYW1lIHBhcmFtZXRlcnMKIAotI2Rl
ZmluZSBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT05fSU1QTChmdW5jdGlvbk5hbWUsIHJldHVyblR5
cGUsIHBhcmFtZXRlcnMpIFwKLSAgICBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT05fV0lUSF9BVFRS
SUJVVEVTX0lNUEwoZnVuY3Rpb25OYW1lLCAsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMpCisjZGVm
aW5lIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihmdW5jdGlvbk5hbWUsIHJldHVyblR5cGUsIHBh
cmFtZXRlcnMpIFwKKyAgICBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT05fV0lUSF9BVFRSSUJVVEVT
KGZ1bmN0aW9uTmFtZSwgLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzKQogCi0jZGVmaW5lIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT05fV0lUSF9BVFRSSUJVVEVTX0lNUEwoZnVuY3Rpb25OYW1lLCBh
dHRyaWJ1dGVzLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzKSBcCisjZGVmaW5lIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT05fV0lUSF9BVFRSSUJVVEVTKGZ1bmN0aW9uTmFtZSwgYXR0cmlidXRlcywg
cmV0dXJuVHlwZSwgcGFyYW1ldGVycykgXAogICAgIGV4dGVybiAiQyIgYXR0cmlidXRlcyByZXR1
cm5UeXBlIEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyBmdW5jdGlvbk5hbWUgcGFyYW1ldGVycyBS
RUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsgXAogICAgIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT05fVkFMSURBVElPTihmdW5jdGlvbk5hbWUpIFwKIAotI2RlZmluZSBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OX0lNUEwoZnVuY3Rpb25OYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJz
KSBcCi0gICAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVNfSU1QTChm
dW5jdGlvbk5hbWUsICwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycykKKyNkZWZpbmUgSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihmdW5jdGlvbk5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMpIFwK
KyAgICBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyhmdW5jdGlvbk5h
bWUsICwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycykKIAotI2RlZmluZSBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMX0lNUEwoZnVuY3Rpb25OYW1lLCByZXR1cm5U
eXBlLCBwYXJhbWV0ZXJzKSBcCisjZGVmaW5lIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT05fV0lU
SE9VVF9XVEZfSU5URVJOQUwoZnVuY3Rpb25OYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzKSBc
CiAgICAgcmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgZnVuY3Rpb25OYW1lIHBh
cmFtZXRlcnMgUkVGRVJFTkNFRF9GUk9NX0FTTQogCi0jZGVmaW5lIEpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoZnVuY3Rpb25OYW1lKSBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRf
V1RGX0lOVEVSTkFMX0lNUEwoZnVuY3Rpb25OYW1lLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KSkKLSNkZWZpbmUgSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihmdW5jdGlvbk5hbWUpIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUxfSU1QTChmdW5jdGlvbk5h
bWUsIGJvb2wsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpKQotI2RlZmluZSBKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoZnVuY3Rpb25OYW1lLCBwYXJhbWV0ZXJzKSBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT05fV0lUSE9VVF9WQVJJQUJMRV9JTVBMKGZ1bmN0aW9uTmFtZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgcGFyYW1ldGVycykKLSNkZWZpbmUgSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKGZ1
bmN0aW9uTmFtZSwgcGFyYW1ldGVycykgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRf
VkFSSUFCTEVfSU1QTChmdW5jdGlvbk5hbWUsIGJvb2wsIHBhcmFtZXRlcnMpCisjZGVmaW5lIEpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoZnVuY3Rpb25OYW1lKSBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKGZ1bmN0aW9uTmFtZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSkpCisjZGVmaW5lIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoZnVuY3Rpb25O
YW1lKSBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKGZ1bmN0
aW9uTmFtZSwgYm9vbCwgKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSkpCisjZGVmaW5lIEpTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihmdW5jdGlvbk5hbWUsIHBhcmFtZXRlcnMpIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTl9XSVRIT1VUX1ZBUklBQkxFKGZ1bmN0aW9uTmFtZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgcGFyYW1ldGVycykKKyNkZWZpbmUgSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKGZ1
bmN0aW9uTmFtZSwgcGFyYW1ldGVycykgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRf
VkFSSUFCTEUoZnVuY3Rpb25OYW1lLCBib29sLCBwYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAK
aW5kZXggNzVlN2I0YzI1NGFkLi41YTMzM2FiOWFlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1RocmVhZGluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcApAQCAt
MzkzLDggKzM5Myw3IEBAIHZvaWQgVGhyZWFkOjpyZWdpc3RlckdDVGhyZWFkKEdDVGhyZWFkVHlw
ZSBnY1RocmVhZFR5cGUpCiAKIGJvb2wgVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkKIHsKLSAgICAv
LyBUT0RPOiBGSVggVEhJUwotICAgIHJldHVybiBUaHJlYWQ6OmN1cnJlbnQoKS5nY1RocmVhZFR5
cGUoKSAhPSBHQ1RocmVhZFR5cGU6Ok5vbmUgfHwgVGhyZWFkOjpjdXJyZW50KCkubV9pc0NvbXBp
bGF0aW9uVGhyZWFkOworICAgIHJldHVybiBUaHJlYWQ6OmN1cnJlbnQoKS5nY1RocmVhZFR5cGUo
KSAhPSBHQ1RocmVhZFR5cGU6Ok5vbmU7CiB9CiAKIHZvaWQgVGhyZWFkOjpyZWdpc3RlckpTVGhy
ZWFkKFRocmVhZCYgdGhyZWFkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA4N2FhMmEwZDAyMjAuLmU4OTIzNGNkZjBlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KQEAgLTYwNjEsNyArNjA2MSw3IEBAIHN1YiBHZW5lcmF0ZU9wZXJhdGlvbkRlZmluaXRp
b24KIAogICAgICAgICAgICAgbXkgKCRuYXRpdmVWYWx1ZSwgJG1heVRocm93RXhjZXB0aW9uKSA9
IFRvTmF0aXZlRm9yRnVuY3Rpb25XaXRob3V0VHlwZUNoZWNrKCRpbnRlcmZhY2UsICRhcmd1bWVu
dCwgJGVuY29kZWROYW1lLCAkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRp
b25hbH0pOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8gJG5hbWUg
PSAke25hdGl2ZVZhbHVlfTtcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIE9QRVJBVElPTl9SRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1Zh
bHVlKCkpO1xuIikgaWYgJG1heVRocm93RXhjZXB0aW9uOworICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpT
VmFsdWUoKSk7XG4iKSBpZiAkbWF5VGhyb3dFeGNlcHRpb247CiAgICAgICAgICAgICAkdmFsdWUg
PSAiV1RGTW92ZSgkbmFtZSkiOwogCiAgICAgICAgICAgICBpZiAoJHNob3VsZFBhc3NCeVJlZmVy
ZW5jZSkgewpAQCAtNjA3MCw3ICs2MDcwLDcgQEAgc3ViIEdlbmVyYXRlT3BlcmF0aW9uRGVmaW5p
dGlvbgogICAgICAgICAgICAgcHVzaChAYXJndW1lbnRzLCAkdmFsdWUpOwogICAgICAgICB9CiAg
ICAgICAgIG15ICRmdW5jdGlvblN0cmluZyA9ICIkaW1wbEZ1bmN0aW9uTmFtZSgiIC4gam9pbigi
LCAiLCBAYXJndW1lbnRzKSAuICIpIjsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IE9QRVJBVElPTl9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKCIgLiBOYXRpdmVU
b0pTVmFsdWVVc2luZ1BvaW50ZXJzKCRvcGVyYXRpb24sICRpbnRlcmZhY2UsICRmdW5jdGlvblN0
cmluZywgIipjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSIpIC4gIikpO1xuIik7CisgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKCIgLiBOYXRp
dmVUb0pTVmFsdWVVc2luZ1BvaW50ZXJzKCRvcGVyYXRpb24sICRpbnRlcmZhY2UsICRmdW5jdGlv
blN0cmluZywgIipjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSIpIC4gIik7XG4iKTsKICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKIAogICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIjZW5kaWZcblxuIikgaWYgJGNvbmRpdGlvbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmNwcAppbmRl
eCA3OWZmZThjNDhlY2QuLjBkMzZiMjU5NjljYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKQEAgLTEwOTks
OCArMTA5OSw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihqc1Rlc3RET01KSVRQcm90b3R5
cGVGdW5jdGlvbl9nZXRBdHRyaWJ1dGVXaXRob3V0VHlwZUNoCiAgICAgVU5VU0VEX1BBUkFNKHRo
cm93U2NvcGUpOwogICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7CiAgICAg
YXV0byBuYW1lID0gRE9NSklUOjpEaXJlY3RDb252ZXJ0ZXI8SURMRE9NU3RyaW5nPjo6ZGlyZWN0
Q29udmVydCgqbGV4aWNhbEdsb2JhbE9iamVjdCwgZW5jb2RlZE5hbWUpOwotICAgIE9QRVJBVElP
Tl9SRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAg
IE9QRVJBVElPTl9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMTnVs
bGFibGU8SURMRE9NU3RyaW5nPj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwuZ2V0QXR0cmlidXRlKFdURk1vdmUobmFtZSkpKSkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZSh0b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmdldEF0dHJpYnV0ZShXVEZNb3ZlKG5hbWUpKSkpOwogfQogCiBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUUHJvdG90eXBlRnVu
Y3Rpb25faXRlbUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdERP
TUpJVD46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCkBAIC0xMTM4LDEwICsxMTM4LDEwIEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbl9p
dGVtV2l0aG91dFR5cGVDaGVjaywgSlNDCiAgICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwog
ICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7CiAgICAgYXV0byB4ID0gRE9N
SklUOjpEaXJlY3RDb252ZXJ0ZXI8SURMVW5zaWduZWRTaG9ydD46OmRpcmVjdENvbnZlcnQoKmxl
eGljYWxHbG9iYWxPYmplY3QsIGVuY29kZWRYKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOX0lGX0VY
Q0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIGF1dG8geSA9IERPTUpJ
VDo6RGlyZWN0Q29udmVydGVyPElETFVuc2lnbmVkU2hvcnQ+OjpkaXJlY3RDb252ZXJ0KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBlbmNvZGVkWSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVS
Tih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLml0ZW0oV1RGTW92ZSh4KSwgV1RGTW92ZSh5
KSkpKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5pdGVtKFdURk1vdmUoeCksIFdURk1v
dmUoeSkpKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RE
T01KSVRQcm90b3R5cGVGdW5jdGlvbl9oYXNBdHRyaWJ1dGVCb2R5KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVu
YW1lIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlz
KQpAQCAtMTE3MCw3ICsxMTcwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGpzVGVzdERP
TUpJVFByb3RvdHlwZUZ1bmN0aW9uX2hhc0F0dHJpYnV0ZVdpdGhvdXRUeXBlQ2gKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBVTlVTRURfUEFSQU0o
dGhyb3dTY29wZSk7CiAgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKLSAg
ICBPUEVSQVRJT05fUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEJv
b2xlYW4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmhhc0F0dHJpYnV0
ZSgpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExCb29sZWFuPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5oYXNBdHRyaWJ1dGUoKSkpOwogfQog
CiBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUUHJvdG90eXBl
RnVuY3Rpb25fZ2V0RWxlbWVudEJ5SWRCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJh
dGlvbjxKU1Rlc3RET01KSVQ+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQpAQCAtMTIwNSw4
ICsxMjA1LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlw
ZUZ1bmN0aW9uX2dldEVsZW1lbnRCeUlkV2l0aG91dFR5cGUKICAgICBVTlVTRURfUEFSQU0odGhy
b3dTY29wZSk7CiAgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKICAgICBh
dXRvIGVsZW1lbnRJZCA9IERPTUpJVDo6RGlyZWN0Q29udmVydGVyPElETFJlcXVpcmVzRXhpc3Rp
bmdBdG9tU3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+Pjo6ZGlyZWN0Q29udmVydCgqbGV4aWNh
bEdsb2JhbE9iamVjdCwgZW5jb2RlZEVsZW1lbnRJZCk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgT1BFUkFUSU9O
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8RWxl
bWVudD4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCks
IHRocm93U2NvcGUsIGltcGwuZ2V0RWxlbWVudEJ5SWQoV1RGTW92ZShlbGVtZW50SWQpKSkpKTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8RWxlbWVudD4+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2Nv
cGUsIGltcGwuZ2V0RWxlbWVudEJ5SWQoV1RGTW92ZShlbGVtZW50SWQpKSkpOwogfQogCiBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rp
b25fZ2V0RWxlbWVudHNCeU5hbWVCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlv
bjxKU1Rlc3RET01KSVQ+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQpAQCAtMTI0MSw4ICsx
MjQxLDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1
bmN0aW9uX2dldEVsZW1lbnRzQnlOYW1lV2l0aG91dFQKICAgICBVTlVTRURfUEFSQU0odGhyb3dT
Y29wZSk7CiAgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKICAgICBhdXRv
IGVsZW1lbnROYW1lID0gRE9NSklUOjpEaXJlY3RDb252ZXJ0ZXI8SURMQXRvbVN0cmluZ0FkYXB0
b3I8SURMRE9NU3RyaW5nPj46OmRpcmVjdENvbnZlcnQoKmxleGljYWxHbG9iYWxPYmplY3QsIGVu
Y29kZWRFbGVtZW50TmFtZSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTl9JRl9FWENFUFRJT04odGhy
b3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTih0aHJvd1Nj
b3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8Tm9kZUxpc3Q+PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBp
bXBsLmdldEVsZW1lbnRzQnlOYW1lKFdURk1vdmUoZWxlbWVudE5hbWUpKSkpKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8Tm9kZUxpc3Q+PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBs
LmdldEVsZW1lbnRzQnlOYW1lKFdURk1vdmUoZWxlbWVudE5hbWUpKSkpOwogfQogCiBKU0M6OkdD
Q2xpZW50OjpJc29TdWJzcGFjZSogSlNUZXN0RE9NSklUOjpzdWJzcGFjZUZvckltcGwoSlNDOjpW
TSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKaW5kZXgg
MmM4YTMwYzk0NTJhLi4wNmQyYmE2Yzg4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
c2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2Vs
ZWN0b3JDb21waWxlci5jcHAKQEAgLTIxOSw4MSArMjE5LDgxIEBAIHZvaWQgZHVtcFNlbGVjdG9y
T3BlcmF0aW9uU3RhdHMoKQogCiBleHRlcm4gIkMiIHsKIAotc3RhdGljIEpTQ19ERUNMQVJFX05P
RVhDRVBUX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uQWRkU3R5
bGVSZWxhdGlvbkZ1bmN0aW9uLCB2b2lkLCAoU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRl
eHQqLCBjb25zdCBFbGVtZW50KikpOwotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9P
UEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uRWxlbWVudElzQWN0aXZlLCBi
b29sLCAoY29uc3QgRWxlbWVudCopKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRf
T1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbkVsZW1lbnRJc0hvdmVyZWQs
IGJvb2wsIChjb25zdCBFbGVtZW50KikpOwotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJ
VF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uSXNQbGFjZWhvbGRlclNo
b3duLCBib29sLCAoY29uc3QgRWxlbWVudCopKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQ
VF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbk1ha2VDb250ZXh0
U3R5bGVVbmlxdWVJZk5lY2Vzc2FyeUFuZFRlc3RJc1BsYWNlaG9sZGVyU2hvd24sIGJvb2wsIChj
b25zdCBFbGVtZW50KiwgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQqKSk7Ci1zdGF0
aWMgSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5B
TChvcGVyYXRpb25TeW5jaHJvbml6ZUFsbEFuaW1hdGVkU1ZHQXR0cmlidXRlLCB2b2lkLCAoU1ZH
RWxlbWVudCYpKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJ
VEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvblN5bmNocm9uaXplU3R5bGVBdHRyaWJ1dGVJbnRl
cm5hbCwgdm9pZCwgKFN0eWxlZEVsZW1lbnQqIHN0eWxlZEVsZW1lbnQpKTsKLXN0YXRpYyBKU0Nf
REVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJh
dGlvbkVxdWFsSWdub3JpbmdBU0NJSUNhc2VOb25OdWxsLCBib29sLCAoY29uc3QgU3RyaW5nSW1w
bCosIGNvbnN0IFN0cmluZ0ltcGwqKSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklU
X09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25FbGVtZW50SXNUYXJnZXQs
IGJvb2wsIChjb25zdCBFbGVtZW50KikpOwotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJ
VF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uSXNBdXRvZmlsbGVkLCBi
b29sLCAoY29uc3QgRWxlbWVudCYpKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRf
T1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbklzQXV0b2ZpbGxlZEFuZE9i
c2N1cmVkLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbklzQXV0b2Zp
bGxlZFN0cm9uZ1Bhc3N3b3JkLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsKLXN0YXRpYyBKU0Nf
REVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJh
dGlvbklzQXV0b2ZpbGxlZFN0cm9uZ1Bhc3N3b3JkVmlld2FibGUsIGJvb2wsIChjb25zdCBFbGVt
ZW50JikpOwotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT05fV0lUSE9V
VF9XVEZfSU5URVJOQUwob3BlcmF0aW9uSXNDaGVja2VkLCBib29sLCAoY29uc3QgRWxlbWVudCYp
KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RG
X0lOVEVSTkFMKG9wZXJhdGlvbk1hdGNoZXNEZWZhdWx0UHNldWRvQ2xhc3MsIGJvb2wsIChjb25z
dCBFbGVtZW50JikpOwotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT05f
V0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc0Rpc2FibGVkUHNldWRvQ2xhc3Ms
IGJvb2wsIChjb25zdCBFbGVtZW50JikpOwotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJ
VF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc0VuYWJsZWRQ
c2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmKSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVf
Tk9FWENFUFRfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25Jc0Rl
ZmluZWRFbGVtZW50LCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsKLXN0YXRpYyBKU0NfREVDTEFS
RV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbk1h
dGNoZXNGb2N1c1BzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsKLXN0YXRpYyBK
U0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9w
ZXJhdGlvbk1hdGNoZXNGb2N1c1Zpc2libGVQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1l
bnQmKSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTl9XSVRIT1VU
X1dURl9JTlRFUk5BTChvcGVyYXRpb25NYXRjaGVzRm9jdXNXaXRoaW5Qc2V1ZG9DbGFzcywgYm9v
bCwgKGNvbnN0IEVsZW1lbnQmKSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09Q
RVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25Jc01lZGlhRG9jdW1lbnQsIGJv
b2wsIChjb25zdCBFbGVtZW50JikpOwotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9P
UEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uSXNJblJhbmdlLCBib29sLCAo
Y29uc3QgRWxlbWVudCYpKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFU
SU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbk1hdGNoZXNJbmRldGVybWluYXRlUHNl
dWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOwotc3RhdGljIEpTQ19ERUNMQVJFX05P
RVhDRVBUX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uSXNJbnZh
bGlkLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQ
VF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbklzT3B0aW9uYWxG
b3JtQ29udHJvbCwgYm9vbCwgKGNvbnN0IEVsZW1lbnQmKSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVf
Tk9FWENFUFRfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25Jc091
dE9mUmFuZ2UsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOwotc3RhdGljIEpTQ19ERUNMQVJFX05P
RVhDRVBUX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hl
c1JlYWRPbmx5UHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOwotc3RhdGljIEpT
Q19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3Bl
cmF0aW9uTWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYp
KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RG
X0lOVEVSTkFMKG9wZXJhdGlvbklzUmVxdWlyZWRGb3JtQ29udHJvbCwgYm9vbCwgKGNvbnN0IEVs
ZW1lbnQmKSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTl9XSVRI
T1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25Jc1ZhbGlkLCBib29sLCAoY29uc3QgRWxlbWVudCYp
KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RG
X0lOVEVSTkFMKG9wZXJhdGlvbklzV2luZG93SW5hY3RpdmUsIGJvb2wsIChjb25zdCBFbGVtZW50
JikpOwotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9X
VEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc0RpciwgYm9vbCwgKGNvbnN0IEVsZW1lbnQmLCB1
aW50MzJfdCkpOwotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT05fV0lU
SE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc0xhbmdQc2V1ZG9DbGFzcywgYm9vbCwg
KGNvbnN0IEVsZW1lbnQmLCBjb25zdCBGaXhlZFZlY3RvcjxQb3NzaWJseVF1b3RlZElkZW50aWZp
ZXI+JikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5U
RVJOQUwob3BlcmF0aW9uQWRkU3R5bGVSZWxhdGlvbkZ1bmN0aW9uLCB2b2lkLCAoU2VsZWN0b3JD
aGVja2VyOjpDaGVja2luZ0NvbnRleHQqLCBjb25zdCBFbGVtZW50KikpOworc3RhdGljIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uRWxlbWVu
dElzQWN0aXZlLCBib29sLCAoY29uc3QgRWxlbWVudCopKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbkVsZW1lbnRJc0hvdmVy
ZWQsIGJvb2wsIChjb25zdCBFbGVtZW50KikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uSXNQbGFjZWhvbGRlclNob3duLCBi
b29sLCAoY29uc3QgRWxlbWVudCopKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
X1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbk1ha2VDb250ZXh0U3R5bGVVbmlxdWVJZk5l
Y2Vzc2FyeUFuZFRlc3RJc1BsYWNlaG9sZGVyU2hvd24sIGJvb2wsIChjb25zdCBFbGVtZW50Kiwg
U2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQqKSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25TeW5jaHJvbml6ZUFs
bEFuaW1hdGVkU1ZHQXR0cmlidXRlLCB2b2lkLCAoU1ZHRWxlbWVudCYpKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvblN5bmNo
cm9uaXplU3R5bGVBdHRyaWJ1dGVJbnRlcm5hbCwgdm9pZCwgKFN0eWxlZEVsZW1lbnQqIHN0eWxl
ZEVsZW1lbnQpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RG
X0lOVEVSTkFMKG9wZXJhdGlvbkVxdWFsSWdub3JpbmdBU0NJSUNhc2VOb25OdWxsLCBib29sLCAo
Y29uc3QgU3RyaW5nSW1wbCosIGNvbnN0IFN0cmluZ0ltcGwqKSk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25FbGVtZW50SXNU
YXJnZXQsIGJvb2wsIChjb25zdCBFbGVtZW50KikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uSXNBdXRvZmlsbGVkLCBib29s
LCAoY29uc3QgRWxlbWVudCYpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJ
VEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbklzQXV0b2ZpbGxlZEFuZE9ic2N1cmVkLCBib29s
LCAoY29uc3QgRWxlbWVudCYpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJ
VEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbklzQXV0b2ZpbGxlZFN0cm9uZ1Bhc3N3b3JkLCBi
b29sLCAoY29uc3QgRWxlbWVudCYpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
X1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbklzQXV0b2ZpbGxlZFN0cm9uZ1Bhc3N3b3Jk
Vmlld2FibGUsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uSXNDaGVja2VkLCBib29s
LCAoY29uc3QgRWxlbWVudCYpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJ
VEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbk1hdGNoZXNEZWZhdWx0UHNldWRvQ2xhc3MsIGJv
b2wsIChjb25zdCBFbGVtZW50JikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT05f
V0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc0Rpc2FibGVkUHNldWRvQ2xhc3Ms
IGJvb2wsIChjb25zdCBFbGVtZW50JikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc0VuYWJsZWRQc2V1ZG9DbGFz
cywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmKSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25Jc0RlZmluZWRFbGVtZW50LCBib29s
LCAoY29uc3QgRWxlbWVudCYpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJ
VEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbk1hdGNoZXNGb2N1c1BzZXVkb0NsYXNzLCBib29s
LCAoY29uc3QgRWxlbWVudCYpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJ
VEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbk1hdGNoZXNGb2N1c1Zpc2libGVQc2V1ZG9DbGFz
cywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmKSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25NYXRjaGVzRm9jdXNXaXRoaW5Qc2V1
ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmKSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25Jc01lZGlhRG9jdW1lbnQs
IGJvb2wsIChjb25zdCBFbGVtZW50JikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uSXNJblJhbmdlLCBib29sLCAoY29uc3Qg
RWxlbWVudCYpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RG
X0lOVEVSTkFMKG9wZXJhdGlvbk1hdGNoZXNJbmRldGVybWluYXRlUHNldWRvQ2xhc3MsIGJvb2ws
IChjb25zdCBFbGVtZW50JikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT05fV0lU
SE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uSXNJbnZhbGlkLCBib29sLCAoY29uc3QgRWxlbWVu
dCYpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVS
TkFMKG9wZXJhdGlvbklzT3B0aW9uYWxGb3JtQ29udHJvbCwgYm9vbCwgKGNvbnN0IEVsZW1lbnQm
KSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5B
TChvcGVyYXRpb25Jc091dE9mUmFuZ2UsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9u
TWF0Y2hlc1JlYWRPbmx5UHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0
aW9uTWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9w
ZXJhdGlvbklzUmVxdWlyZWRGb3JtQ29udHJvbCwgYm9vbCwgKGNvbnN0IEVsZW1lbnQmKSk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVy
YXRpb25Jc1ZhbGlkLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbklzV2luZG93SW5h
Y3RpdmUsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc0RpciwgYm9vbCwg
KGNvbnN0IEVsZW1lbnQmLCB1aW50MzJfdCkpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc0xhbmdQc2V1ZG9DbGFz
cywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmLCBjb25zdCBGaXhlZFZlY3RvcjxQb3NzaWJseVF1b3Rl
ZElkZW50aWZpZXI+JikpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLXN0YXRpYyBKU0Nf
REVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJh
dGlvbk1hdGNoZXNGdWxsc2NyZWVuUHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50Jikp
Owotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZf
SU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc0Z1bGxzY3JlZW5Eb2N1bWVudFBzZXVkb0NsYXNzLCBi
b29sLCAoY29uc3QgRWxlbWVudCYpKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRf
T1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbk1hdGNoZXNBbmltYXRpbmdG
dWxsc2NyZWVuVHJhbnNpdGlvblBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9w
ZXJhdGlvbk1hdGNoZXNGdWxsc2NyZWVuUHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50
JikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJO
QUwob3BlcmF0aW9uTWF0Y2hlc0Z1bGxzY3JlZW5Eb2N1bWVudFBzZXVkb0NsYXNzLCBib29sLCAo
Y29uc3QgRWxlbWVudCYpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhP
VVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbk1hdGNoZXNBbmltYXRpbmdGdWxsc2NyZWVuVHJhbnNp
dGlvblBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsKICNpZiBFTkFCTEUoVklE
RU8pCi1zdGF0aWMgSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTl9XSVRIT1VUX1dU
Rl9JTlRFUk5BTChvcGVyYXRpb25NYXRjaGVzSW5XaW5kb3dGdWxsc2NyZWVuUHNldWRvQ2xhc3Ms
IGJvb2wsIChjb25zdCBFbGVtZW50JikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc0luV2luZG93RnVsbHNjcmVl
blBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsKICNlbmRpZgogI2VuZGlmCiAj
aWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCi1zdGF0aWMgSlNDX0RFQ0xBUkVfTk9F
WENFUFRfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25NYXRjaGVz
UGljdHVyZUluUGljdHVyZVBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJh
dGlvbk1hdGNoZXNQaWN0dXJlSW5QaWN0dXJlUHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVt
ZW50JikpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPKQotc3RhdGljIEpTQ19ERUNMQVJFX05P
RVhDRVBUX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hl
c0Z1dHVyZUN1ZVBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsKLXN0YXRpYyBK
U0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9w
ZXJhdGlvbk1hdGNoZXNQYXN0Q3VlUHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50Jikp
Owotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZf
SU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc1BsYXlpbmdQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0
IEVsZW1lbnQmKSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTl9X
SVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25NYXRjaGVzUGF1c2VkUHNldWRvQ2xhc3MsIGJv
b2wsIChjb25zdCBFbGVtZW50JikpOwotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9P
UEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc1NlZWtpbmdQc2V1
ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmKSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfTk9F
WENFUFRfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25NYXRjaGVz
QnVmZmVyaW5nUHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOwotc3RhdGljIEpT
Q19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3Bl
cmF0aW9uTWF0Y2hlc1N0YWxsZWRQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmKSk7
Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9J
TlRFUk5BTChvcGVyYXRpb25NYXRjaGVzTXV0ZWRQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVs
ZW1lbnQmKSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTl9XSVRI
T1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25NYXRjaGVzVm9sdW1lTG9ja2VkUHNldWRvQ2xhc3Ms
IGJvb2wsIChjb25zdCBFbGVtZW50JikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc0Z1dHVyZUN1ZVBzZXVkb0Ns
YXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbk1hdGNoZXNQYXN0Q3VlUHNldWRv
Q2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc1BsYXlpbmdQc2V1
ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmKSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25NYXRjaGVzUGF1c2VkUHNl
dWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc1NlZWtpbmdQ
c2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmKSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25NYXRjaGVzQnVmZmVy
aW5nUHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOworc3RhdGljIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc1N0
YWxsZWRQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmKSk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25NYXRjaGVz
TXV0ZWRQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmKSk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25NYXRjaGVz
Vm9sdW1lTG9ja2VkUHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOwogI2VuZGlm
CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbkhhc0F0dGFj
aG1lbnQsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uSGFzQXR0YWNobWVudCwgYm9v
bCwgKGNvbnN0IEVsZW1lbnQmKSk7CiAjZW5kaWYKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQ
VF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbk1hdGNoZXNIdG1s
RG9jdW1lbnRQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmKSk7Ci1zdGF0aWMgSlND
X0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVy
YXRpb25NYXRjaGVzUG9wb3Zlck9wZW5Qc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQm
KSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTl9XSVRIT1VUX1dU
Rl9JTlRFUk5BTChvcGVyYXRpb25NYXRjaGVzTW9kYWxQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0
IEVsZW1lbnQmKSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTl9X
SVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25Jc1VzZXJJbnZhbGlkLCBib29sLCAoY29uc3Qg
RWxlbWVudCYpKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJ
VEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbklzVXNlclZhbGlkLCBib29sLCAoY29uc3QgRWxl
bWVudCYpKTsKLQotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT05fV0lU
SE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uQXR0cmlidXRlVmFsdWVCZWdpbnNXaXRoQ2FzZVNl
bnNpdGl2ZSwgYm9vbCwgKGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlLCBBdG9tU3RyaW5nSW1w
bCogZXhwZWN0ZWRTdHJpbmcpKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BF
UkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbkF0dHJpYnV0ZVZhbHVlQmVnaW5z
V2l0aENhc2VJbnNlbnNpdGl2ZSwgYm9vbCwgKGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlLCBB
dG9tU3RyaW5nSW1wbCogZXhwZWN0ZWRTdHJpbmcpKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbkF0dHJpYnV0
ZVZhbHVlQ29udGFpbnNDYXNlU2Vuc2l0aXZlLCBib29sLCAoY29uc3QgQXR0cmlidXRlKiBhdHRy
aWJ1dGUsIEF0b21TdHJpbmdJbXBsKiBleHBlY3RlZFN0cmluZykpOwotc3RhdGljIEpTQ19ERUNM
QVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9u
QXR0cmlidXRlVmFsdWVDb250YWluc0Nhc2VJbnNlbnNpdGl2ZSwgYm9vbCwgKGNvbnN0IEF0dHJp
YnV0ZSogYXR0cmlidXRlLCBBdG9tU3RyaW5nSW1wbCogZXhwZWN0ZWRTdHJpbmcpKTsKLXN0YXRp
YyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFM
KG9wZXJhdGlvbkF0dHJpYnV0ZVZhbHVlRW5kc1dpdGhDYXNlU2Vuc2l0aXZlLCBib29sLCAoY29u
c3QgQXR0cmlidXRlKiBhdHRyaWJ1dGUsIEF0b21TdHJpbmdJbXBsKiBleHBlY3RlZFN0cmluZykp
Owotc3RhdGljIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZf
SU5URVJOQUwob3BlcmF0aW9uQXR0cmlidXRlVmFsdWVFbmRzV2l0aENhc2VJbnNlbnNpdGl2ZSwg
Ym9vbCwgKGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlLCBBdG9tU3RyaW5nSW1wbCogZXhwZWN0
ZWRTdHJpbmcpKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OX1dJ
VEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbkF0dHJpYnV0ZVZhbHVlTWF0Y2hIeXBoZW5SdWxl
Q2FzZVNlbnNpdGl2ZSwgYm9vbCwgKGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlLCBBdG9tU3Ry
aW5nSW1wbCogZXhwZWN0ZWRTdHJpbmcpKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbkF0dHJpYnV0ZVZhbHVl
TWF0Y2hIeXBoZW5SdWxlQ2FzZUluc2Vuc2l0aXZlLCBib29sLCAoY29uc3QgQXR0cmlidXRlKiBh
dHRyaWJ1dGUsIEF0b21TdHJpbmdJbXBsKiBleHBlY3RlZFN0cmluZykpOwotc3RhdGljIEpTQ19E
RUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0
aW9uQXR0cmlidXRlVmFsdWVTcGFjZVNlcGFyYXRlZExpc3RDb250YWluc0Nhc2VTZW5zaXRpdmUs
IGJvb2wsIChjb25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSwgQXRvbVN0cmluZ0ltcGwqIGV4cGVj
dGVkU3RyaW5nKSk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTl9X
SVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25BdHRyaWJ1dGVWYWx1ZVNwYWNlU2VwYXJhdGVk
TGlzdENvbnRhaW5zQ2FzZUluc2Vuc2l0aXZlLCBib29sLCAoY29uc3QgQXR0cmlidXRlKiBhdHRy
aWJ1dGUsIEF0b21TdHJpbmdJbXBsKiBleHBlY3RlZFN0cmluZykpOworc3RhdGljIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uTWF0Y2hlc0h0
bWxEb2N1bWVudFBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJhdGlvbk1h
dGNoZXNQb3BvdmVyT3BlblBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJh
dGlvbk1hdGNoZXNNb2RhbFBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYpKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RGX0lOVEVSTkFMKG9wZXJh
dGlvbklzVXNlckludmFsaWQsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOworc3RhdGljIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uSXNVc2Vy
VmFsaWQsIGJvb2wsIChjb25zdCBFbGVtZW50JikpOworCitzdGF0aWMgSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25BdHRyaWJ1dGVWYWx1ZUJl
Z2luc1dpdGhDYXNlU2Vuc2l0aXZlLCBib29sLCAoY29uc3QgQXR0cmlidXRlKiBhdHRyaWJ1dGUs
IEF0b21TdHJpbmdJbXBsKiBleHBlY3RlZFN0cmluZykpOworc3RhdGljIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uQXR0cmlidXRlVmFsdWVC
ZWdpbnNXaXRoQ2FzZUluc2Vuc2l0aXZlLCBib29sLCAoY29uc3QgQXR0cmlidXRlKiBhdHRyaWJ1
dGUsIEF0b21TdHJpbmdJbXBsKiBleHBlY3RlZFN0cmluZykpOworc3RhdGljIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uQXR0cmlidXRlVmFs
dWVDb250YWluc0Nhc2VTZW5zaXRpdmUsIGJvb2wsIChjb25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0
ZSwgQXRvbVN0cmluZ0ltcGwqIGV4cGVjdGVkU3RyaW5nKSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25BdHRyaWJ1dGVWYWx1
ZUNvbnRhaW5zQ2FzZUluc2Vuc2l0aXZlLCBib29sLCAoY29uc3QgQXR0cmlidXRlKiBhdHRyaWJ1
dGUsIEF0b21TdHJpbmdJbXBsKiBleHBlY3RlZFN0cmluZykpOworc3RhdGljIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uQXR0cmlidXRlVmFs
dWVFbmRzV2l0aENhc2VTZW5zaXRpdmUsIGJvb2wsIChjb25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0
ZSwgQXRvbVN0cmluZ0ltcGwqIGV4cGVjdGVkU3RyaW5nKSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRpb25BdHRyaWJ1dGVWYWx1
ZUVuZHNXaXRoQ2FzZUluc2Vuc2l0aXZlLCBib29sLCAoY29uc3QgQXR0cmlidXRlKiBhdHRyaWJ1
dGUsIEF0b21TdHJpbmdJbXBsKiBleHBlY3RlZFN0cmluZykpOworc3RhdGljIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uQXR0cmlidXRlVmFs
dWVNYXRjaEh5cGhlblJ1bGVDYXNlU2Vuc2l0aXZlLCBib29sLCAoY29uc3QgQXR0cmlidXRlKiBh
dHRyaWJ1dGUsIEF0b21TdHJpbmdJbXBsKiBleHBlY3RlZFN0cmluZykpOworc3RhdGljIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT05fV0lUSE9VVF9XVEZfSU5URVJOQUwob3BlcmF0aW9uQXR0cmli
dXRlVmFsdWVNYXRjaEh5cGhlblJ1bGVDYXNlSW5zZW5zaXRpdmUsIGJvb2wsIChjb25zdCBBdHRy
aWJ1dGUqIGF0dHJpYnV0ZSwgQXRvbVN0cmluZ0ltcGwqIGV4cGVjdGVkU3RyaW5nKSk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTl9XSVRIT1VUX1dURl9JTlRFUk5BTChvcGVyYXRp
b25BdHRyaWJ1dGVWYWx1ZVNwYWNlU2VwYXJhdGVkTGlzdENvbnRhaW5zQ2FzZVNlbnNpdGl2ZSwg
Ym9vbCwgKGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlLCBBdG9tU3RyaW5nSW1wbCogZXhwZWN0
ZWRTdHJpbmcpKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhPVVRfV1RG
X0lOVEVSTkFMKG9wZXJhdGlvbkF0dHJpYnV0ZVZhbHVlU3BhY2VTZXBhcmF0ZWRMaXN0Q29udGFp
bnNDYXNlSW5zZW5zaXRpdmUsIGJvb2wsIChjb25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSwgQXRv
bVN0cmluZ0ltcGwqIGV4cGVjdGVkU3RyaW5nKSk7CiAKIH0gLy8gZXh0ZXJuICJDIgogCkBAIC03
NTUsMTY1ICs3NTUsMTY1IEBAIHN0YXRpYyBGdW5jdGlvblR5cGUgYWRkTnRoQ2hpbGRUeXBlKGNv
bnN0IENTU1NlbGVjdG9yJiBzZWxlY3RvciwgU2VsZWN0b3JDb250ZXh0CiAgICAgcmV0dXJuIEZ1
bmN0aW9uVHlwZTo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dDsKIH0KIAotSlND
X0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklzQXV0b2ZpbGxlZCwgYm9v
bCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbklzQXV0b2ZpbGxlZCwgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQogewog
ICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25Jc0F1dG9maWxsZWQpOwogICAg
IHJldHVybiBpc0F1dG9maWxsZWQoZWxlbWVudCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRf
SklUX09QRVJBVElPTihvcGVyYXRpb25Jc0F1dG9maWxsZWRBbmRPYnNjdXJlZCwgYm9vbCwgKGNv
bnN0IEVsZW1lbnQmIGVsZW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bklzQXV0b2ZpbGxlZEFuZE9ic2N1cmVkLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkp
CiB7CiAgICAgQ09VTlRfU0VMRUNUT1JfT1BFUkFUSU9OKG9wZXJhdGlvbklzQXV0b2ZpbGxlZEFu
ZE9ic2N1cmVkKTsKICAgICByZXR1cm4gaXNBdXRvZmlsbGVkQW5kT2JzY3VyZWQoZWxlbWVudCk7
CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Jc0F1dG9m
aWxsZWRTdHJvbmdQYXNzd29yZCwgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklzQXV0b2ZpbGxlZFN0cm9uZ1Bhc3N3b3Jk
LCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCiB7CiAgICAgQ09VTlRfU0VMRUNUT1Jf
T1BFUkFUSU9OKG9wZXJhdGlvbklzQXV0b2ZpbGxlZFN0cm9uZ1Bhc3N3b3JkKTsKICAgICByZXR1
cm4gaXNBdXRvZmlsbGVkU3Ryb25nUGFzc3dvcmQoZWxlbWVudCk7CiB9CiAKLUpTQ19ERUZJTkVf
Tk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Jc0F1dG9maWxsZWRTdHJvbmdQYXNzd29y
ZFZpZXdhYmxlLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSXNBdXRvZmlsbGVkU3Ryb25nUGFzc3dvcmRWaWV3YWJsZSwg
Ym9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQogewogICAgIENPVU5UX1NFTEVDVE9SX09Q
RVJBVElPTihvcGVyYXRpb25Jc0F1dG9maWxsZWRTdHJvbmdQYXNzd29yZFZpZXdhYmxlKTsKICAg
ICByZXR1cm4gaXNBdXRvZmlsbGVkU3Ryb25nUGFzc3dvcmRWaWV3YWJsZShlbGVtZW50KTsKIH0K
IAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklzQ2hlY2tlZCwg
Ym9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbklzQ2hlY2tlZCwgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQogewog
ICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25Jc0NoZWNrZWQpOwogICAgIHJl
dHVybiBpc0NoZWNrZWQoZWxlbWVudCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09Q
RVJBVElPTihvcGVyYXRpb25NYXRjaGVzRGVmYXVsdFBzZXVkb0NsYXNzLCBib29sLCAoY29uc3Qg
RWxlbWVudCYgZWxlbWVudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0
Y2hlc0RlZmF1bHRQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQog
ewogICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzRGVmYXVsdFBz
ZXVkb0NsYXNzKTsKICAgICByZXR1cm4gbWF0Y2hlc0RlZmF1bHRQc2V1ZG9DbGFzcyhlbGVtZW50
KTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNo
ZXNEaXNhYmxlZFBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc0Rpc2FibGVkUHNldWRvQ2xh
c3MsIGJvb2wsIChjb25zdCBFbGVtZW50JiBlbGVtZW50KSkKIHsKICAgICBDT1VOVF9TRUxFQ1RP
Ul9PUEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc0Rpc2FibGVkUHNldWRvQ2xhc3MpOwogICAgIHJl
dHVybiBtYXRjaGVzRGlzYWJsZWRQc2V1ZG9DbGFzcyhlbGVtZW50KTsKIH0KIAotSlNDX0RFRklO
RV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNFbmFibGVkUHNldWRvQ2xh
c3MsIGJvb2wsIChjb25zdCBFbGVtZW50JiBlbGVtZW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25NYXRjaGVzRW5hYmxlZFBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxl
bWVudCYgZWxlbWVudCkpCiB7CiAgICAgQ09VTlRfU0VMRUNUT1JfT1BFUkFUSU9OKG9wZXJhdGlv
bk1hdGNoZXNFbmFibGVkUHNldWRvQ2xhc3MpOwogICAgIHJldHVybiBtYXRjaGVzRW5hYmxlZFBz
ZXVkb0NsYXNzKGVsZW1lbnQpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSXNEZWZpbmVkRWxlbWVudCwgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1l
bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklzRGVmaW5lZEVsZW1lbnQs
IGJvb2wsIChjb25zdCBFbGVtZW50JiBlbGVtZW50KSkKIHsKICAgICBDT1VOVF9TRUxFQ1RPUl9P
UEVSQVRJT04ob3BlcmF0aW9uSXNEZWZpbmVkRWxlbWVudCk7CiAgICAgcmV0dXJuIGlzRGVmaW5l
ZEVsZW1lbnQoZWxlbWVudCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElP
TihvcGVyYXRpb25NYXRjaGVzRm9jdXNQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQm
IGVsZW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNGb2N1
c1BzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCiB7CiAgICAgQ09V
TlRfU0VMRUNUT1JfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNGb2N1c1BzZXVkb0NsYXNzKTsK
ICAgICByZXR1cm4gbWF0Y2hlc0ZvY3VzUHNldWRvQ2xhc3MoZWxlbWVudCk7CiB9CiAKLUpTQ19E
RUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzRm9jdXNWaXNpYmxl
UHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50JiBlbGVtZW50KSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzRm9jdXNWaXNpYmxlUHNldWRvQ2xhc3MsIGJv
b2wsIChjb25zdCBFbGVtZW50JiBlbGVtZW50KSkKIHsKICAgICBDT1VOVF9TRUxFQ1RPUl9PUEVS
QVRJT04ob3BlcmF0aW9uTWF0Y2hlc0ZvY3VzVmlzaWJsZVBzZXVkb0NsYXNzKTsKICAgICByZXR1
cm4gbWF0Y2hlc0ZvY3VzVmlzaWJsZVBzZXVkb0NsYXNzKGVsZW1lbnQpOwogfQogCi1KU0NfREVG
SU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc0ZvY3VzV2l0aGluUHNl
dWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50JiBlbGVtZW50KSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzRm9jdXNXaXRoaW5Qc2V1ZG9DbGFzcywgYm9vbCwg
KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQogewogICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElP
TihvcGVyYXRpb25NYXRjaGVzRm9jdXNXaXRoaW5Qc2V1ZG9DbGFzcyk7CiAgICAgcmV0dXJuIG1h
dGNoZXNGb2N1c1dpdGhpblBzZXVkb0NsYXNzKGVsZW1lbnQpOwogfQogCi1KU0NfREVGSU5FX05P
RVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXNNZWRpYURvY3VtZW50LCBib29sLCAoY29u
c3QgRWxlbWVudCYgZWxlbWVudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SXNNZWRpYURvY3VtZW50LCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCiB7CiAgICAg
Q09VTlRfU0VMRUNUT1JfT1BFUkFUSU9OKG9wZXJhdGlvbklzTWVkaWFEb2N1bWVudCk7CiAgICAg
cmV0dXJuIGlzTWVkaWFEb2N1bWVudChlbGVtZW50KTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQ
VF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklzSW5SYW5nZSwgYm9vbCwgKGNvbnN0IEVsZW1lbnQm
IGVsZW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklzSW5SYW5nZSwg
Ym9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQogewogICAgIENPVU5UX1NFTEVDVE9SX09Q
RVJBVElPTihvcGVyYXRpb25Jc0luUmFuZ2UpOwogICAgIHJldHVybiBpc0luUmFuZ2UoZWxlbWVu
dCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRj
aGVzSW5kZXRlcm1pbmF0ZVBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVu
dCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc0luZGV0ZXJtaW5h
dGVQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQogewogICAgIENP
VU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzSW5kZXRlcm1pbmF0ZVBzZXVk
b0NsYXNzKTsKICAgICByZXR1cm4gbWF0Y2hlc0luZGV0ZXJtaW5hdGVQc2V1ZG9DbGFzcyhlbGVt
ZW50KTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklz
SW52YWxpZCwgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbklzSW52YWxpZCwgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1l
bnQpKQogewogICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25Jc0ludmFsaWQp
OwogICAgIHJldHVybiBpc0ludmFsaWQoZWxlbWVudCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENF
UFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Jc09wdGlvbmFsRm9ybUNvbnRyb2wsIGJvb2wsIChj
b25zdCBFbGVtZW50JiBlbGVtZW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Jc09wdGlvbmFsRm9ybUNvbnRyb2wsIGJvb2wsIChjb25zdCBFbGVtZW50JiBlbGVtZW50KSkK
IHsKICAgICBDT1VOVF9TRUxFQ1RPUl9PUEVSQVRJT04ob3BlcmF0aW9uSXNPcHRpb25hbEZvcm1D
b250cm9sKTsKICAgICByZXR1cm4gaXNPcHRpb25hbEZvcm1Db250cm9sKGVsZW1lbnQpOwogfQog
Ci1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXNPdXRPZlJhbmdl
LCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSXNPdXRPZlJhbmdlLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkp
CiB7CiAgICAgQ09VTlRfU0VMRUNUT1JfT1BFUkFUSU9OKG9wZXJhdGlvbklzT3V0T2ZSYW5nZSk7
CiAgICAgcmV0dXJuIGlzT3V0T2ZSYW5nZShlbGVtZW50KTsKIH0KIAotSlNDX0RFRklORV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNSZWFkT25seVBzZXVkb0NsYXNzLCBi
b29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTWF0Y2hlc1JlYWRPbmx5UHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50
JiBlbGVtZW50KSkKIHsKICAgICBDT1VOVF9TRUxFQ1RPUl9PUEVSQVRJT04ob3BlcmF0aW9uTWF0
Y2hlc1JlYWRPbmx5UHNldWRvQ2xhc3MpOwogICAgIHJldHVybiBtYXRjaGVzUmVhZE9ubHlQc2V1
ZG9DbGFzcyhlbGVtZW50KTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1l
bnQmIGVsZW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNS
ZWFkV3JpdGVQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQogewog
ICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzUmVhZFdyaXRlUHNl
dWRvQ2xhc3MpOwogICAgIHJldHVybiBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoZWxlbWVu
dCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Jc1Jl
cXVpcmVkRm9ybUNvbnRyb2wsIGJvb2wsIChjb25zdCBFbGVtZW50JiBlbGVtZW50KSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Jc1JlcXVpcmVkRm9ybUNvbnRyb2wsIGJvb2ws
IChjb25zdCBFbGVtZW50JiBlbGVtZW50KSkKIHsKICAgICBDT1VOVF9TRUxFQ1RPUl9PUEVSQVRJ
T04ob3BlcmF0aW9uSXNSZXF1aXJlZEZvcm1Db250cm9sKTsKICAgICByZXR1cm4gaXNSZXF1aXJl
ZEZvcm1Db250cm9sKGVsZW1lbnQpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uSXNWYWxpZCwgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklzVmFsaWQsIGJvb2wsIChjb25zdCBF
bGVtZW50JiBlbGVtZW50KSkKIHsKICAgICBDT1VOVF9TRUxFQ1RPUl9PUEVSQVRJT04ob3BlcmF0
aW9uSXNWYWxpZCk7CiAgICAgcmV0dXJuIGlzVmFsaWQoZWxlbWVudCk7CiB9CiAKLUpTQ19ERUZJ
TkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Jc1dpbmRvd0luYWN0aXZlLCBib29s
LCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSXNXaW5kb3dJbmFjdGl2ZSwgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQog
ewogICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25Jc1dpbmRvd0luYWN0aXZl
KTsKICAgICByZXR1cm4gaXNXaW5kb3dJbmFjdGl2ZShlbGVtZW50KTsKIH0KIAogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVy
YXRpb25NYXRjaGVzRnVsbHNjcmVlblBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYg
ZWxlbWVudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc0Z1bGxz
Y3JlZW5Qc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQogewogICAg
IENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzRnVsbHNjcmVlblBzZXVk
b0NsYXNzKTsKICAgICByZXR1cm4gbWF0Y2hlc0Z1bGxzY3JlZW5Qc2V1ZG9DbGFzcyhlbGVtZW50
KTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNo
ZXNGdWxsc2NyZWVuRG9jdW1lbnRQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVs
ZW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNGdWxsc2Ny
ZWVuRG9jdW1lbnRQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQog
ewogICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzRnVsbHNjcmVl
bkRvY3VtZW50UHNldWRvQ2xhc3MpOwogICAgIHJldHVybiBtYXRjaGVzRnVsbHNjcmVlbkRvY3Vt
ZW50UHNldWRvQ2xhc3MoZWxlbWVudCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09Q
RVJBVElPTihvcGVyYXRpb25NYXRjaGVzQW5pbWF0aW5nRnVsbHNjcmVlblRyYW5zaXRpb25Qc2V1
ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNBbmltYXRpbmdGdWxsc2NyZWVuVHJhbnNpdGlvblBz
ZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCiB7CiAgICAgQ09VTlRf
U0VMRUNUT1JfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNBbmltYXRpbmdGdWxsc2NyZWVuVHJh
bnNpdGlvblBzZXVkb0NsYXNzKTsKICAgICByZXR1cm4gbWF0Y2hlc0FuaW1hdGluZ0Z1bGxzY3Jl
ZW5UcmFuc2l0aW9uUHNldWRvQ2xhc3MoZWxlbWVudCk7CiB9CiAKICNpZiBFTkFCTEUoVklERU8p
Ci1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc0luV2lu
ZG93RnVsbHNjcmVlblBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc0luV2luZG93RnVsbHNj
cmVlblBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCiB7CiAgICAg
Q09VTlRfU0VMRUNUT1JfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNJbldpbmRvd0Z1bGxzY3Jl
ZW5Qc2V1ZG9DbGFzcyk7CiAgICAgcmV0dXJuIG1hdGNoZXNJbldpbmRvd0Z1bGxzY3JlZW5Qc2V1
ZG9DbGFzcyhlbGVtZW50KTsKQEAgLTkyMyw3ICs5MjMsNyBAQCBKU0NfREVGSU5FX05PRVhDRVBU
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc0luV2luZG93RnVsbHNjcmVlblBzZXVkb0Ns
YXNzLAogI2VuZGlmCiAKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKLUpTQ19E
RUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzUGljdHVyZUluUGlj
dHVyZVBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc1BpY3R1cmVJblBpY3R1cmVQc2V1ZG9D
bGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQogewogICAgIENPVU5UX1NFTEVD
VE9SX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzUGljdHVyZUluUGljdHVyZVBzZXVkb0NsYXNz
KTsKICAgICByZXR1cm4gbWF0Y2hlc1BpY3R1cmVJblBpY3R1cmVQc2V1ZG9DbGFzcyhlbGVtZW50
KTsKQEAgLTkzMSw1NSArOTMxLDU1IEBAIEpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElP
TihvcGVyYXRpb25NYXRjaGVzUGljdHVyZUluUGljdHVyZVBzZXVkb0NsYXNzLCBiCiAjZW5kaWYK
IAogI2lmIEVOQUJMRShWSURFTykKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihv
cGVyYXRpb25NYXRjaGVzRnV0dXJlQ3VlUHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50
JiBlbGVtZW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzRnV0
dXJlQ3VlUHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50JiBlbGVtZW50KSkKIHsKICAg
ICBDT1VOVF9TRUxFQ1RPUl9PUEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc0Z1dHVyZUN1ZVBzZXVk
b0NsYXNzKTsKICAgICByZXR1cm4gbWF0Y2hlc0Z1dHVyZUN1ZVBzZXVkb0NsYXNzKGVsZW1lbnQp
OwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hl
c1Bhc3RDdWVQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNQYXN0Q3VlUHNldWRvQ2xhc3Ms
IGJvb2wsIChjb25zdCBFbGVtZW50JiBlbGVtZW50KSkKIHsKICAgICBDT1VOVF9TRUxFQ1RPUl9P
UEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc1Bhc3RDdWVQc2V1ZG9DbGFzcyk7CiAgICAgcmV0dXJu
IG1hdGNoZXNQYXN0Q3VlUHNldWRvQ2xhc3MoZWxlbWVudCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9F
WENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzUGxheWluZ1BzZXVkb0NsYXNzLCBi
b29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTWF0Y2hlc1BsYXlpbmdQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQm
IGVsZW1lbnQpKQogewogICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25NYXRj
aGVzUGxheWluZ1BzZXVkb0NsYXNzKTsKICAgICByZXR1cm4gbWF0Y2hlc1BsYXlpbmdQc2V1ZG9D
bGFzcyhlbGVtZW50KTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk1hdGNoZXNQYXVzZWRQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVs
ZW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNQYXVzZWRQ
c2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQogewogICAgIENPVU5U
X1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzUGF1c2VkUHNldWRvQ2xhc3MpOwog
ICAgIHJldHVybiBtYXRjaGVzUGF1c2VkUHNldWRvQ2xhc3MoZWxlbWVudCk7CiB9CiAKLUpTQ19E
RUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzU2Vla2luZ1BzZXVk
b0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc1NlZWtpbmdQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0
IEVsZW1lbnQmIGVsZW1lbnQpKQogewogICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVy
YXRpb25NYXRjaGVzU2Vla2luZ1BzZXVkb0NsYXNzKTsKICAgICByZXR1cm4gbWF0Y2hlc1NlZWtp
bmdQc2V1ZG9DbGFzcyhlbGVtZW50KTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNCdWZmZXJpbmdQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0
IEVsZW1lbnQmIGVsZW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1h
dGNoZXNCdWZmZXJpbmdQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQp
KQogewogICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzQnVmZmVy
aW5nUHNldWRvQ2xhc3MpOwogICAgIHJldHVybiBtYXRjaGVzQnVmZmVyaW5nUHNldWRvQ2xhc3Mo
ZWxlbWVudCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRp
b25NYXRjaGVzU3RhbGxlZFBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVu
dCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc1N0YWxsZWRQc2V1
ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQogewogICAgIENPVU5UX1NF
TEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzU3RhbGxlZFBzZXVkb0NsYXNzKTsKICAg
ICByZXR1cm4gbWF0Y2hlc1N0YWxsZWRQc2V1ZG9DbGFzcyhlbGVtZW50KTsKIH0KIAotSlNDX0RF
RklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNNdXRlZFBzZXVkb0Ns
YXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTWF0Y2hlc011dGVkUHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVt
ZW50JiBlbGVtZW50KSkKIHsKICAgICBDT1VOVF9TRUxFQ1RPUl9PUEVSQVRJT04ob3BlcmF0aW9u
TWF0Y2hlc011dGVkUHNldWRvQ2xhc3MpOwogICAgIHJldHVybiBtYXRjaGVzTXV0ZWRQc2V1ZG9D
bGFzcyhlbGVtZW50KTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk1hdGNoZXNWb2x1bWVMb2NrZWRQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1l
bnQmIGVsZW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNW
b2x1bWVMb2NrZWRQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQog
ewogICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzVm9sdW1lTG9j
a2VkUHNldWRvQ2xhc3MpOwogICAgIHJldHVybiBtYXRjaGVzVm9sdW1lTG9ja2VkUHNldWRvQ2xh
c3MoZWxlbWVudCk7CkBAIC05ODcsNTAgKzk4Nyw1MCBAQCBKU0NfREVGSU5FX05PRVhDRVBUX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc1ZvbHVtZUxvY2tlZFBzZXVkb0NsYXNzLCBib29s
LAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQotSlNDX0RFRklORV9O
T0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0F0dGFjaG1lbnQsIGJvb2wsIChjb25z
dCBFbGVtZW50JiBlbGVtZW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25I
YXNBdHRhY2htZW50LCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCiB7CiAgICAgQ09V
TlRfU0VMRUNUT1JfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0F0dGFjaG1lbnQpOwogICAgIHJldHVy
biBoYXNBdHRhY2htZW50KGVsZW1lbnQpOwogfQogI2VuZGlmCiAKLUpTQ19ERUZJTkVfTk9FWENF
UFRfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzRGlyLCBib29sLCAoY29uc3QgRWxlbWVu
dCYgZWxlbWVudCwgdWludDMyX3QgZGlyZWN0aW9uKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25NYXRjaGVzRGlyLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgdWlu
dDMyX3QgZGlyZWN0aW9uKSkKIHsKICAgICBDT1VOVF9TRUxFQ1RPUl9PUEVSQVRJT04ob3BlcmF0
aW9uTWF0Y2hlc0Rpcik7CiAgICAgcmV0dXJuIGVsZW1lbnQuZWZmZWN0aXZlVGV4dERpcmVjdGlv
bigpID09IHN0YXRpY19jYXN0PFRleHREaXJlY3Rpb24+KGRpcmVjdGlvbik7CiB9CiAKLUpTQ19E
RUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzSHRtbERvY3VtZW50
UHNldWRvQ2xhc3MsIGJvb2wsIChjb25zdCBFbGVtZW50JiBlbGVtZW50KSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzSHRtbERvY3VtZW50UHNldWRvQ2xhc3MsIGJv
b2wsIChjb25zdCBFbGVtZW50JiBlbGVtZW50KSkKIHsKICAgICBDT1VOVF9TRUxFQ1RPUl9PUEVS
QVRJT04ob3BlcmF0aW9uTWF0Y2hlc0h0bWxEb2N1bWVudFBzZXVkb0NsYXNzKTsKICAgICByZXR1
cm4gbWF0Y2hlc0h0bWxEb2N1bWVudFBzZXVkb0NsYXNzKGVsZW1lbnQpOwogfQogCi1KU0NfREVG
SU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0Y2hlc0xhbmdQc2V1ZG9DbGFz
cywgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEZpeGVkVmVjdG9yPFBvc3Np
Ymx5UXVvdGVkSWRlbnRpZmllcj4mIGFyZ3VtZW50TGlzdCkpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTWF0Y2hlc0xhbmdQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1l
bnQmIGVsZW1lbnQsIGNvbnN0IEZpeGVkVmVjdG9yPFBvc3NpYmx5UXVvdGVkSWRlbnRpZmllcj4m
IGFyZ3VtZW50TGlzdCkpCiB7CiAgICAgQ09VTlRfU0VMRUNUT1JfT1BFUkFUSU9OKG9wZXJhdGlv
bk1hdGNoZXNMYW5nUHNldWRvQ2xhc3MpOwogICAgIHJldHVybiBtYXRjaGVzTGFuZ1BzZXVkb0Ns
YXNzKGVsZW1lbnQsIGFyZ3VtZW50TGlzdCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklU
X09QRVJBVElPTihvcGVyYXRpb25NYXRjaGVzUG9wb3Zlck9wZW5Qc2V1ZG9DbGFzcywgYm9vbCwg
KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk1hdGNoZXNQb3BvdmVyT3BlblBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYg
ZWxlbWVudCkpCiB7CiAgICAgQ09VTlRfU0VMRUNUT1JfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNo
ZXNQb3BvdmVyT3BlblBzZXVkb0NsYXNzKTsKICAgICByZXR1cm4gbWF0Y2hlc1BvcG92ZXJPcGVu
UHNldWRvQ2xhc3MoZWxlbWVudCk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJB
VElPTihvcGVyYXRpb25NYXRjaGVzTW9kYWxQc2V1ZG9DbGFzcywgYm9vbCwgKGNvbnN0IEVsZW1l
bnQmIGVsZW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNN
b2RhbFBzZXVkb0NsYXNzLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCiB7CiAgICAg
Q09VTlRfU0VMRUNUT1JfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGNoZXNNb2RhbFBzZXVkb0NsYXNz
KTsKICAgICByZXR1cm4gbWF0Y2hlc01vZGFsUHNldWRvQ2xhc3MoZWxlbWVudCk7CiB9CiAKLUpT
Q19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Jc1VzZXJJbnZhbGlkLCBi
b29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uSXNVc2VySW52YWxpZCwgYm9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQog
ewogICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25Jc1VzZXJJbnZhbGlkKTsK
ICAgICByZXR1cm4gbWF0Y2hlc1VzZXJJbnZhbGlkUHNldWRvQ2xhc3MoZWxlbWVudCk7CiB9CiAK
LUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Jc1VzZXJWYWxpZCwg
Ym9vbCwgKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbklzVXNlclZhbGlkLCBib29sLCAoY29uc3QgRWxlbWVudCYgZWxlbWVudCkpCiB7
CiAgICAgQ09VTlRfU0VMRUNUT1JfT1BFUkFUSU9OKG9wZXJhdGlvbklzVXNlclZhbGlkKTsKICAg
ICByZXR1cm4gbWF0Y2hlc1VzZXJWYWxpZFBzZXVkb0NsYXNzKGVsZW1lbnQpOwpAQCAtMjcyNCw3
ICsyNzI0LDcgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlQWRkU3R5bGVS
ZWxhdGlvbklmUmVzb2x2aW5nU3R5bGUoQXNzZW1ibGVyOjoKICAgICBub3RSZXNvbHZpbmdTdHls
ZS5saW5rKCZtX2Fzc2VtYmxlcik7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJB
VElPTihvcGVyYXRpb25BZGRTdHlsZVJlbGF0aW9uRnVuY3Rpb24sIHZvaWQsIChTZWxlY3RvckNo
ZWNrZXI6OkNoZWNraW5nQ29udGV4dCogY2hlY2tpbmdDb250ZXh0LCBjb25zdCBFbGVtZW50KiBl
bGVtZW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BZGRTdHlsZVJlbGF0
aW9uRnVuY3Rpb24sIHZvaWQsIChTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCogY2hl
Y2tpbmdDb250ZXh0LCBjb25zdCBFbGVtZW50KiBlbGVtZW50KSkKIHsKICAgICBDT1VOVF9TRUxF
Q1RPUl9PUEVSQVRJT04ob3BlcmF0aW9uQWRkU3R5bGVSZWxhdGlvbkZ1bmN0aW9uKTsKICAgICBj
aGVja2luZ0NvbnRleHQtPnN0eWxlUmVsYXRpb25zLmFwcGVuZCh7ICplbGVtZW50LCB7IH0sIDEg
fSk7CkBAIC0zNDY2LDYxICszNDY2LDYxIEBAIHN0YXRpYyBib29sIGF0dHJpYnV0ZVZhbHVlU3Bh
Y2VTZXBhcmF0ZWRMaXN0Q29udGFpbnMoY29uc3QgQXR0cmlidXRlKiBhdHRyaWJ1dGUsCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQXR0cmlidXRlVmFsdWVCZWdpbnNXaXRoQ2FzZVNlbnNpdGl2ZSwgYm9vbCwgKGNvbnN0
IEF0dHJpYnV0ZSogYXR0cmlidXRlLCBBdG9tU3RyaW5nSW1wbCogZXhwZWN0ZWRTdHJpbmcpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0dHJpYnV0ZVZhbHVlQmVnaW5zV2l0
aENhc2VTZW5zaXRpdmUsIGJvb2wsIChjb25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSwgQXRvbVN0
cmluZ0ltcGwqIGV4cGVjdGVkU3RyaW5nKSkKIHsKICAgICBDT1VOVF9TRUxFQ1RPUl9PUEVSQVRJ
T04ob3BlcmF0aW9uQXR0cmlidXRlVmFsdWVCZWdpbnNXaXRoQ2FzZVNlbnNpdGl2ZSk7CiAgICAg
cmV0dXJuIGF0dHJpYnV0ZVZhbHVlQmVnaW5zV2l0aDxDYXNlU2Vuc2l0aXZlPihhdHRyaWJ1dGUs
IGV4cGVjdGVkU3RyaW5nKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkF0dHJpYnV0ZVZhbHVlQmVnaW5zV2l0aENhc2VJbnNlbnNpdGl2ZSwgYm9vbCwg
KGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlLCBBdG9tU3RyaW5nSW1wbCogZXhwZWN0ZWRTdHJp
bmcpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0dHJpYnV0ZVZhbHVlQmVn
aW5zV2l0aENhc2VJbnNlbnNpdGl2ZSwgYm9vbCwgKGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRl
LCBBdG9tU3RyaW5nSW1wbCogZXhwZWN0ZWRTdHJpbmcpKQogewogICAgIENPVU5UX1NFTEVDVE9S
X09QRVJBVElPTihvcGVyYXRpb25BdHRyaWJ1dGVWYWx1ZUJlZ2luc1dpdGhDYXNlSW5zZW5zaXRp
dmUpOwogICAgIHJldHVybiBhdHRyaWJ1dGVWYWx1ZUJlZ2luc1dpdGg8Q2FzZUluc2Vuc2l0aXZl
PihhdHRyaWJ1dGUsIGV4cGVjdGVkU3RyaW5nKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0dHJpYnV0ZVZhbHVlQ29udGFpbnNDYXNlU2Vuc2l0aXZl
LCBib29sLCAoY29uc3QgQXR0cmlidXRlKiBhdHRyaWJ1dGUsIEF0b21TdHJpbmdJbXBsKiBleHBl
Y3RlZFN0cmluZykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXR0cmlidXRl
VmFsdWVDb250YWluc0Nhc2VTZW5zaXRpdmUsIGJvb2wsIChjb25zdCBBdHRyaWJ1dGUqIGF0dHJp
YnV0ZSwgQXRvbVN0cmluZ0ltcGwqIGV4cGVjdGVkU3RyaW5nKSkKIHsKICAgICBDT1VOVF9TRUxF
Q1RPUl9PUEVSQVRJT04ob3BlcmF0aW9uQXR0cmlidXRlVmFsdWVDb250YWluc0Nhc2VTZW5zaXRp
dmUpOwogICAgIHJldHVybiBhdHRyaWJ1dGVWYWx1ZUNvbnRhaW5zPENhc2VTZW5zaXRpdmU+KGF0
dHJpYnV0ZSwgZXhwZWN0ZWRTdHJpbmcpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQXR0cmlidXRlVmFsdWVDb250YWluc0Nhc2VJbnNlbnNpdGl2ZSwg
Ym9vbCwgKGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlLCBBdG9tU3RyaW5nSW1wbCogZXhwZWN0
ZWRTdHJpbmcpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0dHJpYnV0ZVZh
bHVlQ29udGFpbnNDYXNlSW5zZW5zaXRpdmUsIGJvb2wsIChjb25zdCBBdHRyaWJ1dGUqIGF0dHJp
YnV0ZSwgQXRvbVN0cmluZ0ltcGwqIGV4cGVjdGVkU3RyaW5nKSkKIHsKICAgICBDT1VOVF9TRUxF
Q1RPUl9PUEVSQVRJT04ob3BlcmF0aW9uQXR0cmlidXRlVmFsdWVDb250YWluc0Nhc2VJbnNlbnNp
dGl2ZSk7CiAgICAgcmV0dXJuIGF0dHJpYnV0ZVZhbHVlQ29udGFpbnM8Q2FzZUluc2Vuc2l0aXZl
PihhdHRyaWJ1dGUsIGV4cGVjdGVkU3RyaW5nKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0dHJpYnV0ZVZhbHVlRW5kc1dpdGhDYXNlU2Vuc2l0aXZl
LCBib29sLCAoY29uc3QgQXR0cmlidXRlKiBhdHRyaWJ1dGUsIEF0b21TdHJpbmdJbXBsKiBleHBl
Y3RlZFN0cmluZykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXR0cmlidXRl
VmFsdWVFbmRzV2l0aENhc2VTZW5zaXRpdmUsIGJvb2wsIChjb25zdCBBdHRyaWJ1dGUqIGF0dHJp
YnV0ZSwgQXRvbVN0cmluZ0ltcGwqIGV4cGVjdGVkU3RyaW5nKSkKIHsKICAgICBDT1VOVF9TRUxF
Q1RPUl9PUEVSQVRJT04ob3BlcmF0aW9uQXR0cmlidXRlVmFsdWVFbmRzV2l0aENhc2VTZW5zaXRp
dmUpOwogICAgIHJldHVybiBhdHRyaWJ1dGVWYWx1ZUVuZHNXaXRoPENhc2VTZW5zaXRpdmU+KGF0
dHJpYnV0ZSwgZXhwZWN0ZWRTdHJpbmcpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQXR0cmlidXRlVmFsdWVFbmRzV2l0aENhc2VJbnNlbnNpdGl2ZSwg
Ym9vbCwgKGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlLCBBdG9tU3RyaW5nSW1wbCogZXhwZWN0
ZWRTdHJpbmcpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0dHJpYnV0ZVZh
bHVlRW5kc1dpdGhDYXNlSW5zZW5zaXRpdmUsIGJvb2wsIChjb25zdCBBdHRyaWJ1dGUqIGF0dHJp
YnV0ZSwgQXRvbVN0cmluZ0ltcGwqIGV4cGVjdGVkU3RyaW5nKSkKIHsKICAgICBDT1VOVF9TRUxF
Q1RPUl9PUEVSQVRJT04ob3BlcmF0aW9uQXR0cmlidXRlVmFsdWVFbmRzV2l0aENhc2VJbnNlbnNp
dGl2ZSk7CiAgICAgcmV0dXJuIGF0dHJpYnV0ZVZhbHVlRW5kc1dpdGg8Q2FzZUluc2Vuc2l0aXZl
PihhdHRyaWJ1dGUsIGV4cGVjdGVkU3RyaW5nKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0dHJpYnV0ZVZhbHVlTWF0Y2hIeXBoZW5SdWxlQ2FzZVNl
bnNpdGl2ZSwgYm9vbCwgKGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlLCBBdG9tU3RyaW5nSW1w
bCogZXhwZWN0ZWRTdHJpbmcpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0
dHJpYnV0ZVZhbHVlTWF0Y2hIeXBoZW5SdWxlQ2FzZVNlbnNpdGl2ZSwgYm9vbCwgKGNvbnN0IEF0
dHJpYnV0ZSogYXR0cmlidXRlLCBBdG9tU3RyaW5nSW1wbCogZXhwZWN0ZWRTdHJpbmcpKQogewog
ICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25BdHRyaWJ1dGVWYWx1ZU1hdGNo
SHlwaGVuUnVsZUNhc2VTZW5zaXRpdmUpOwogICAgIHJldHVybiBhdHRyaWJ1dGVWYWx1ZU1hdGNo
SHlwaGVuUnVsZTxDYXNlU2Vuc2l0aXZlPihhdHRyaWJ1dGUsIGV4cGVjdGVkU3RyaW5nKTsKIH0K
IAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0dHJpYnV0ZVZh
bHVlTWF0Y2hIeXBoZW5SdWxlQ2FzZUluc2Vuc2l0aXZlLCBib29sLCAoY29uc3QgQXR0cmlidXRl
KiBhdHRyaWJ1dGUsIEF0b21TdHJpbmdJbXBsKiBleHBlY3RlZFN0cmluZykpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXR0cmlidXRlVmFsdWVNYXRjaEh5cGhlblJ1bGVDYXNl
SW5zZW5zaXRpdmUsIGJvb2wsIChjb25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSwgQXRvbVN0cmlu
Z0ltcGwqIGV4cGVjdGVkU3RyaW5nKSkKIHsKICAgICBDT1VOVF9TRUxFQ1RPUl9PUEVSQVRJT04o
b3BlcmF0aW9uQXR0cmlidXRlVmFsdWVNYXRjaEh5cGhlblJ1bGVDYXNlSW5zZW5zaXRpdmUpOwog
ICAgIHJldHVybiBhdHRyaWJ1dGVWYWx1ZU1hdGNoSHlwaGVuUnVsZTxDYXNlSW5zZW5zaXRpdmU+
KGF0dHJpYnV0ZSwgZXhwZWN0ZWRTdHJpbmcpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQXR0cmlidXRlVmFsdWVTcGFjZVNlcGFyYXRlZExpc3RDb250
YWluc0Nhc2VTZW5zaXRpdmUsIGJvb2wsIChjb25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSwgQXRv
bVN0cmluZ0ltcGwqIGV4cGVjdGVkU3RyaW5nKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25BdHRyaWJ1dGVWYWx1ZVNwYWNlU2VwYXJhdGVkTGlzdENvbnRhaW5zQ2FzZVNlbnNp
dGl2ZSwgYm9vbCwgKGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlLCBBdG9tU3RyaW5nSW1wbCog
ZXhwZWN0ZWRTdHJpbmcpKQogewogICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRp
b25BdHRyaWJ1dGVWYWx1ZVNwYWNlU2VwYXJhdGVkTGlzdENvbnRhaW5zQ2FzZVNlbnNpdGl2ZSk7
CiAgICAgcmV0dXJuIGF0dHJpYnV0ZVZhbHVlU3BhY2VTZXBhcmF0ZWRMaXN0Q29udGFpbnM8Q2Fz
ZVNlbnNpdGl2ZT4oYXR0cmlidXRlLCBleHBlY3RlZFN0cmluZyk7CiB9CiAKLUpTQ19ERUZJTkVf
Tk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25BdHRyaWJ1dGVWYWx1ZVNwYWNlU2VwYXJh
dGVkTGlzdENvbnRhaW5zQ2FzZUluc2Vuc2l0aXZlLCBib29sLCAoY29uc3QgQXR0cmlidXRlKiBh
dHRyaWJ1dGUsIEF0b21TdHJpbmdJbXBsKiBleHBlY3RlZFN0cmluZykpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQXR0cmlidXRlVmFsdWVTcGFjZVNlcGFyYXRlZExpc3RDb250
YWluc0Nhc2VJbnNlbnNpdGl2ZSwgYm9vbCwgKGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlLCBB
dG9tU3RyaW5nSW1wbCogZXhwZWN0ZWRTdHJpbmcpKQogewogICAgIENPVU5UX1NFTEVDVE9SX09Q
RVJBVElPTihvcGVyYXRpb25BdHRyaWJ1dGVWYWx1ZVNwYWNlU2VwYXJhdGVkTGlzdENvbnRhaW5z
Q2FzZUluc2Vuc2l0aXZlKTsKICAgICByZXR1cm4gYXR0cmlidXRlVmFsdWVTcGFjZVNlcGFyYXRl
ZExpc3RDb250YWluczxDYXNlSW5zZW5zaXRpdmU+KGF0dHJpYnV0ZSwgZXhwZWN0ZWRTdHJpbmcp
OwpAQCAtMzY2Niw3ICszNjY2LDcgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVy
YXRlRWxlbWVudEZ1bmN0aW9uQ2FsbFRlc3QoQXNzZW1ibGVyOjpKdW1wTGlzdCYKICAgICBmYWls
dXJlQ2FzZXMuYXBwZW5kKGZ1bmN0aW9uQ2FsbC5jYWxsQW5kQnJhbmNoT25Cb29sZWFuUmV0dXJu
VmFsdWUoQXNzZW1ibGVyOjpaZXJvKSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09Q
RVJBVElPTihvcGVyYXRpb25FbGVtZW50SXNBY3RpdmUsIGJvb2wsIChjb25zdCBFbGVtZW50KiBl
bGVtZW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbGVtZW50SXNBY3Rp
dmUsIGJvb2wsIChjb25zdCBFbGVtZW50KiBlbGVtZW50KSkKIHsKICAgICBDT1VOVF9TRUxFQ1RP
Ul9PUEVSQVRJT04ob3BlcmF0aW9uRWxlbWVudElzQWN0aXZlKTsKICAgICByZXR1cm4gZWxlbWVu
dC0+YWN0aXZlKCkgfHwgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmb3JjZVBzZXVkb1N0YXRl
KCplbGVtZW50LCBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3M6OkFjdGl2ZSk7CkBAIC0zNzczLDcg
KzM3NzMsNyBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50SXNG
aXJzdENoaWxkKEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaQogICAgIHN1Y2Nlc3NDYXNlLmxpbmso
Jm1fYXNzZW1ibGVyKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkVsZW1lbnRJc0hvdmVyZWQsIGJvb2wsIChjb25zdCBFbGVtZW50KiBlbGVtZW50KSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbGVtZW50SXNIb3ZlcmVkLCBib29s
LCAoY29uc3QgRWxlbWVudCogZWxlbWVudCkpCiB7CiAgICAgQ09VTlRfU0VMRUNUT1JfT1BFUkFU
SU9OKG9wZXJhdGlvbkVsZW1lbnRJc0hvdmVyZWQpOwogICAgIHJldHVybiBlbGVtZW50LT5ob3Zl
cmVkKCkgfHwgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmb3JjZVBzZXVkb1N0YXRlKCplbGVt
ZW50LCBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3M6OkhvdmVyKTsKQEAgLTM5NDMsNyArMzk0Myw3
IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRJc09ubHlDaGls
ZChBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsCiAgICAgc3VjY2Vzc0Nhc2UubGluaygmbV9hc3Nl
bWJsZXIpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TWFrZUNvbnRleHRTdHlsZVVuaXF1ZUlmTmVjZXNzYXJ5QW5kVGVzdElzUGxhY2Vob2xkZXJTaG93
biwgYm9vbCwgKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tp
bmdDb250ZXh0KiBjaGVja2luZ0NvbnRleHQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk1ha2VDb250ZXh0U3R5bGVVbmlxdWVJZk5lY2Vzc2FyeUFuZFRlc3RJc1BsYWNlaG9s
ZGVyU2hvd24sIGJvb2wsIChjb25zdCBFbGVtZW50KiBlbGVtZW50LCBTZWxlY3RvckNoZWNrZXI6
OkNoZWNraW5nQ29udGV4dCogY2hlY2tpbmdDb250ZXh0KSkKIHsKICAgICBDT1VOVF9TRUxFQ1RP
Ul9PUEVSQVRJT04ob3BlcmF0aW9uTWFrZUNvbnRleHRTdHlsZVVuaXF1ZUlmTmVjZXNzYXJ5QW5k
VGVzdElzUGxhY2Vob2xkZXJTaG93bik7CiAgICAgYXV0byogZm9ybUNvbnRyb2wgPSBkeW5hbWlj
RG93bmNhc3Q8SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ+KCplbGVtZW50KTsKQEAgLTM5NTUs
MjYgKzM5NTUsMjYgQEAgSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk1ha2VDb250ZXh0U3R5bGVVbmlxdWVJZk5lY2Vzc2FyeUFuZFQKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Jc1BsYWNl
aG9sZGVyU2hvd24sIGJvb2wsIChjb25zdCBFbGVtZW50KiBlbGVtZW50KSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Jc1BsYWNlaG9sZGVyU2hvd24sIGJvb2wsIChjb25zdCBF
bGVtZW50KiBlbGVtZW50KSkKIHsKICAgICBDT1VOVF9TRUxFQ1RPUl9PUEVSQVRJT04ob3BlcmF0
aW9uSXNQbGFjZWhvbGRlclNob3duKTsKICAgICBhdXRvKiBmb3JtQ29udHJvbCA9IGR5bmFtaWNE
b3duY2FzdDxIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudD4oKmVsZW1lbnQpOwogICAgIHJldHVy
biBmb3JtQ29udHJvbCAmJiBmb3JtQ29udHJvbC0+aXNQbGFjZWhvbGRlclZpc2libGUoKTsKIH0K
IAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN5bmNocm9uaXpl
U3R5bGVBdHRyaWJ1dGVJbnRlcm5hbCwgdm9pZCwgKFN0eWxlZEVsZW1lbnQqIHN0eWxlZEVsZW1l
bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN5bmNocm9uaXplU3R5bGVB
dHRyaWJ1dGVJbnRlcm5hbCwgdm9pZCwgKFN0eWxlZEVsZW1lbnQqIHN0eWxlZEVsZW1lbnQpKQog
ewogICAgIENPVU5UX1NFTEVDVE9SX09QRVJBVElPTihvcGVyYXRpb25TeW5jaHJvbml6ZVN0eWxl
QXR0cmlidXRlSW50ZXJuYWwpOwogICAgIHN0eWxlZEVsZW1lbnQtPnN5bmNocm9uaXplU3R5bGVB
dHRyaWJ1dGVJbnRlcm5hbCgpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uU3luY2hyb25pemVBbGxBbmltYXRlZFNWR0F0dHJpYnV0ZSwgdm9pZCwgKFNW
R0VsZW1lbnQmIGVsZW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN5
bmNocm9uaXplQWxsQW5pbWF0ZWRTVkdBdHRyaWJ1dGUsIHZvaWQsIChTVkdFbGVtZW50JiBlbGVt
ZW50KSkKIHsKICAgICBDT1VOVF9TRUxFQ1RPUl9PUEVSQVRJT04ob3BlcmF0aW9uU3luY2hyb25p
emVBbGxBbmltYXRlZFNWR0F0dHJpYnV0ZSk7CiAgICAgZWxlbWVudC5zeW5jaHJvbml6ZUFsbEF0
dHJpYnV0ZXMoKTsKIH0KIAotSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkVxdWFsSWdub3JpbmdBU0NJSUNhc2VOb25OdWxsLCBib29sLCAoY29uc3QgU3RyaW5nSW1w
bCogYSwgY29uc3QgU3RyaW5nSW1wbCogYikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZU5vbk51bGwsIGJvb2wsIChjb25zdCBTdHJpbmdJ
bXBsKiBhLCBjb25zdCBTdHJpbmdJbXBsKiBiKSkKIHsKICAgICBDT1VOVF9TRUxFQ1RPUl9PUEVS
QVRJT04ob3BlcmF0aW9uRXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZU5vbk51bGwpOwogICAgIHJldHVy
biBXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNhc2VOb25OdWxsKGEsIGIpOwpAQCAtNDQwNCw3ICs0
NDA0LDcgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudElzU2Nv
cGVSb290KEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWwKICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5k
KG1fYXNzZW1ibGVyLmJyYW5jaFB0cihBc3NlbWJsZXI6Ok5vdEVxdWFsLCBzY29wZSwgZWxlbWVu
dEFkZHJlc3NSZWdpc3RlcikpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRWxlbWVudElzVGFyZ2V0LCBib29sLCAoY29uc3QgRWxlbWVudCogZWxlbWVu
dCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRWxlbWVudElzVGFyZ2V0LCBi
b29sLCAoY29uc3QgRWxlbWVudCogZWxlbWVudCkpCiB7CiAgICAgQ09VTlRfU0VMRUNUT1JfT1BF
UkFUSU9OKG9wZXJhdGlvbkVsZW1lbnRJc1RhcmdldCk7CiAgICAgcmV0dXJuIGVsZW1lbnQgPT0g
ZWxlbWVudC0+ZG9jdW1lbnQoKS5jc3NUYXJnZXQoKSB8fCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmZvcmNlUHNldWRvU3RhdGUoKmVsZW1lbnQsIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzczo6
VGFyZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbWppdC9KU0RvY3VtZW50RE9N
SklULmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbWppdC9KU0RvY3VtZW50RE9NSklULmNwcAppbmRl
eCBjOTliZDY2NDZmZmQuLmE1NGQ4NWM3ZWJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9taml0L0pTRG9jdW1lbnRET01KSVQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbWppdC9K
U0RvY3VtZW50RE9NSklULmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTYtMjAyNCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0xNTUsOCArMTU1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblRvSlNFbGVtZW50LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0ds
b2IKICAgICBKU0M6OlZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKU0M6OkpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgT1BFUkFUSU9OX1JF
VFVSTihzY29wZSwgRE9NSklUOjp0b1dyYXBwZXJTbG93SW1wbDxFbGVtZW50PihnbG9iYWxPYmpl
Y3QsIHJlc3VsdCkpOworICAgIHJldHVybiBET01KSVQ6OnRvV3JhcHBlclNsb3dJbXBsPEVsZW1l
bnQ+KGdsb2JhbE9iamVjdCwgcmVzdWx0KTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblRvSlNIVE1MRWxlbWVudCwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdm9pZCogcmVzdWx0KSkKQEAgLTE2Niw4ICsxNjUs
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9KU0hUTUxFbGVtZW50LCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKUwogICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpTQzo6SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBET01KSVQ6OnRvV3JhcHBlclNs
b3dJbXBsPEhUTUxFbGVtZW50PihnbG9iYWxPYmplY3QsIHJlc3VsdCkpOworICAgIHJldHVybiBE
T01KSVQ6OnRvV3JhcHBlclNsb3dJbXBsPEhUTUxFbGVtZW50PihnbG9iYWxPYmplY3QsIHJlc3Vs
dCk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0pTRG9jdW1lbnQs
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IHZvaWQqIHJlc3VsdCkpCkBAIC0xNzcsOCArMTc1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblRvSlNEb2N1bWVudCwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6SlNH
bG8KICAgICBKU0M6OlZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKU0M6OkpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgT1BFUkFUSU9OX1JF
VFVSTihzY29wZSwgRE9NSklUOjp0b1dyYXBwZXJTbG93SW1wbDxEb2N1bWVudD4oZ2xvYmFsT2Jq
ZWN0LCByZXN1bHQpKTsKKyAgICByZXR1cm4gRE9NSklUOjp0b1dyYXBwZXJTbG93SW1wbDxEb2N1
bWVudD4oZ2xvYmFsT2JqZWN0LCByZXN1bHQpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVG9KU05vZGUsIEpTQzo6RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIHZvaWQqIHJlc3VsdCkpCkBAIC0xODgsOCArMTg1LDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvSlNOb2RlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE8KICAgICBKU0M6OlZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKICAgICBKU0M6OkpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0gICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgRE9NSklUOjp0b1dyYXBwZXJTbG93SW1w
bDxOb2RlPihnbG9iYWxPYmplY3QsIHJlc3VsdCkpOworICAgIHJldHVybiBET01KSVQ6OnRvV3Jh
cHBlclNsb3dJbXBsPE5vZGU+KGdsb2JhbE9iamVjdCwgcmVzdWx0KTsKIH0KIAogSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvSlNDb250YWluZXJOb2RlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKiByZXN1bHQp
KQpAQCAtMTk5LDggKzE5NSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
b0pTQ29udGFpbmVyTm9kZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6CiAgICAgSlNDOjpW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSlNDOjpKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIERP
TUpJVDo6dG9XcmFwcGVyU2xvd0ltcGw8Q29udGFpbmVyTm9kZT4oZ2xvYmFsT2JqZWN0LCByZXN1
bHQpKTsKKyAgICByZXR1cm4gRE9NSklUOjp0b1dyYXBwZXJTbG93SW1wbDxDb250YWluZXJOb2Rl
PihnbG9iYWxPYmplY3QsIHJlc3VsdCk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgV2ViQ29yZTo6
RE9NSklUCg==
</data>
<flag name="commit-queue"
          id="497069"
          type_id="3"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
      

    </bug>

</bugzilla>