<?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>243879</bug_id>
          
          <creation_ts>2022-08-12 07:55:33 -0700</creation_ts>
          <short_desc>REGRESSION(253377@main): broke GTK/WPE</short_desc>
          <delta_ts>2022-08-12 07:59:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>243809</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>mcatanzaro</cc>
    
    <cc>philn</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1890874</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2022-08-12 07:55:33 -0700</bug_when>
    <thetext>https://commits.webkit.org/253377@main introduced a regression:
broke GTK/WPE

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>1890876</commentid>
    <comment_count>1</comment_count>
      <attachid>461561</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2022-08-12 07:55:40 -0700</bug_when>
    <thetext>Created attachment 461561
REVERT of 253377@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>1890878</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-08-12 07:58:25 -0700</bug_when>
    <thetext>Committed 253378@main (554eb7356604): &lt;https://commits.webkit.org/253378@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 461561.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1890880</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-08-12 07:59:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/98568187&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461561</attachid>
            <date>2022-08-12 07:55:40 -0700</date>
            <delta_ts>2022-08-12 07:58:26 -0700</delta_ts>
            <desc>REVERT of 253377@main</desc>
            <filename>bug-243879-20220812075539.patch</filename>
            <type>text/plain</type>
            <size>612802</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA3MDk1ODE5YTRjNzcxYjU4YzI3N2VhNDJkNTQ4MTk5ZDEyOTgxZmJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBGcmksIDEyIEF1ZyAyMDIyIDA3OjU1OjM4IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNTMzNzdAbWFpbi4KIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNDM4NzkKCmJyb2tlIEdUSy9XUEUKClJldmVydGVkIGNoYW5n
ZXNldDoKCiJbV1BFXVtHVEtdIFNoYXJlIHB1YmxpYyBoZWFkZXJzIgpodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQzODA5Cmh0dHBzOi8vY29tbWl0cy53ZWJraXQub3Jn
LzI1MzM3N0BtYWluCi0tLQogU291cmNlL1RoaXJkUGFydHkvdW5pZmRlZi9DTWFrZUxpc3RzLnR4
dCAgICAgIHwgICAxNCAtCiBTb3VyY2UvVGhpcmRQYXJ0eS91bmlmZGVmL1JFQURNRS53ZWJraXQg
ICAgICAgfCAgIDIwIC0KIFNvdXJjZS9UaGlyZFBhcnR5L3VuaWZkZWYvdW5pZmRlZi5jICAgICAg
ICAgICB8IDE2NzQgLS0tLS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9UaGlyZFBhcnR5L3VuaWZkZWYv
dW5pZmRlZi5oICAgICAgICAgICB8ICAgNTAgLQogU291cmNlL1RoaXJkUGFydHkvdW5pZmRlZi92
ZXJzaW9uLmggICAgICAgICAgIHwgICAgMSAtCiBTb3VyY2UvV2ViS2l0L0dMaWIuY21ha2UgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDE4IC0KIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21h
a2UgICAgICAgICAgICAgICB8ICAyMTAgKy0tCiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNt
YWtlICAgICAgICAgICAgICAgfCAgMjAyICstCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
QXBwbGljYXRpb25JbmZvLmggfCAgIDY5ICsKIC4uLi9BUEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0
aW9uUmVxdWVzdC5oICAgICB8ICAxNDMgKysKIC4uLi9XZWJLaXRBdXRvY2xlYW51cHMuaH0gICAg
ICAgICAgICAgICAgICAgICB8ICAgMjEgKy0KIC4uLi9BUEkvZ3RrL1dlYktpdEF1dG9tYXRpb25T
ZXNzaW9uLmggICAgICAgICB8ICAgOTAgKwogLi4uL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJh
Y2tGb3J3YXJkTGlzdC5oIHwgICA5NSArCiAuLi4vQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExp
c3RJdGVtLmggICAgICAgfCAgIDc0ICsKIC4uLi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250
ZXh0TWVudS5oICAgICB8ICAxMTkgKysKIC4uLi9XZWJLaXRDb250ZXh0TWVudUFjdGlvbnMuaH0g
ICAgICAgICAgICAgICB8ICAgNTkgKy0KIC4uLi9XZWJLaXRDb29raWVNYW5hZ2VyLmh9ICAgICAg
ICAgICAgICAgICAgICB8ICAgIDggKy0KIC4uLi9XZWJLaXRDcmVkZW50aWFsLmh9ICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDYgKy0KIC4uLi9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RGVmaW5lcy5oICB8ICAgNTUgKwogLi4uL2d0ay9XZWJLaXREZXZpY2VJbmZvUGVybWlzc2lv
blJlcXVlc3QuaCAgIHwgICA2NCArCiAuLi4vV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dERvd25sb2FkLmggfCAgMTA3ICsrCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RWRpdGlu
Z0NvbW1hbmRzLmggfCAgMTM4ICsrCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RWRpdG9y
U3RhdGUuaCAgICAgfCAgMTA0ICsKIC4uLi9XZWJLaXRFcnJvci5oLmluID0+IGd0ay9XZWJLaXRF
cnJvci5ofSAgICB8ICAgMTcgKy0KIC4uLi9XZWJLaXRGYXZpY29uRGF0YWJhc2UuaH0gICAgICAg
ICAgICAgICAgICB8ICAgMTYgKy0KIC4uLi9XZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QuaH0gICAg
ICAgICAgICAgICB8ICAgMTIgKy0KIC4uLi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29u
dHJvbGxlci5oICB8ICAxMjMgKysKIC4uLi9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QuaH0g
ICAgICAgICAgICB8ICAgIDggKy0KIC4uLi9BUEkvZ3RrL1dlYktpdEZvcndhcmREZWNsYXJhdGlv
bnMuaCAgICAgICB8ICAgMzkgKwogLi4uL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2Vy
LmggICAgICAgIHwgIDExNCArKwogLi4uL2d0ay9XZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmggIHwgICA2NSArCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SGl0VGVzdFJl
c3VsdC5oICAgfCAgMTI0ICsrCiAuLi50YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25S
ZXF1ZXN0LmggfCAgIDY4ICsKIC4uLi9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0Lmh9ICAgICAgICAg
ICAgICAgICB8ICAgMTMgKy0KIC4uLi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0LmggICB8ICAgNjggKwogLi4uL0FQSS9ndGsvV2ViS2l0TWVtb3J5UHJlc3N1cmVTZXR0aW5n
cy5oICAgIHwgICA4NSArCiAuLi4vV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1pbWVJ
bmZvLmggfCAgIDU3ICsKIC4uLi9BUEkvZ3RrL1dlYktpdE5hdmlnYXRpb25BY3Rpb24uaCAgICAg
ICAgICB8ICAgODcgKwogLi4uL1dlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi5ofSAgICAg
ICAgIHwgICAxNCArLQogLi4uL0FQSS9ndGsvV2ViS2l0TmV0d29ya1Byb3h5U2V0dGluZ3MuaCAg
ICAgIHwgICA3MiArCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Tm90aWZpY2F0aW9uLmgg
ICAgfCAgIDg2ICsKIC4uLi9ndGsvV2ViS2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
aCB8ICAgNTkgKwogLi4uL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE9wdGlvbk1lbnUuaCAgICAg
IHwgICA4NCArCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0T3B0aW9uTWVudUl0ZW0uaCAg
fCAgIDY1ICsKIC4uLi9BUEkvZ3RrL1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0LmggICAgICAgICB8
ICAgNTggKwogLi4uL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQbHVnaW4uaCAgIHwg
ICA3NyArCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9saWN5RGVjaXNpb24uaCAgfCAg
IDc5ICsKIC4uLi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5oICB8ICAg
IDIgKy0KIC4uLi9BUEkvZ3RrL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24uaCAgICB8ICAg
NzcgKwogLi4uL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlwdERpYWxvZy5oICAgIHwgICA4
NyArCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2VjdXJpdHlNYW5hZ2VyLmggfCAgMTEz
ICsrCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2VjdXJpdHlPcmlnaW4uaCAgfCAgIDcw
ICsKIC4uLi9XZWJLaXRTZXR0aW5ncy5ofSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIg
Ky0KIC4uLi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmggICAgICB8ICAgODIg
KwogLi4uL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlc3BvbnNlLmggICAgIHwgICA4NCAr
CiAuLi4vQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmggICAgICAgICAgfCAgMTAwICsK
IC4uLi9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmggICAgICAgICB8ICAgODQgKwog
Li4uL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVV0aWxpdGllcy5oICAgIHwgICAzNyArCiAu
Li4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnQuaCAgICAgfCAgMTU3ICsrCiAu
Li4vQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmggICAgfCAgMTQwICsrCiAu
Li4vQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuaCAgICAgICAgfCAgMTIzICsrCiAu
Li4vZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggICAgfCAgIDczICsKIC4u
Li9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVzc2FnZS5oICAgICB8ICAxMDQgKwogLi4u
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFZlcnNpb24uaC5pbiAgICAgIHwgICA1MiArCiAuLi4v
V2ViS2l0V2ViQ29udGV4dC5ofSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMwICstCiAuLi4v
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViUmVzb3VyY2UuaCAgICAgfCAgIDg1ICsKIC4uLi9X
ZWJLaXRXZWJWaWV3Lmh9ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxODkgKy0KIC4uLi9B
UEkvZ3RrL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuaCAgICAgICB8ICAgNTMgKwogLi4uL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYnNpdGVEYXRhLmggICAgIHwgICA5NyArCiAuLi5XZWJL
aXRXZWJzaXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0LmggfCAgIDcwICsKIC4uLi9BUEkv
Z3RrL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5oICAgICAgICB8ICAyNDggKysrCiAuLi4vV2Vi
S2l0V2Vic2l0ZVBvbGljaWVzLmh9ICAgICAgICAgICAgICAgICAgfCAgICA4ICstCiAuLi4vV2Vi
S2l0V2luZG93UHJvcGVydGllcy5ofSAgICAgICAgICAgICAgICAgfCAgIDEyICstCiAuLi4vV2Vi
S2l0Q29udGV4dE1lbnVJdGVtLmh9ICAgICAgICAgICAgICAgICAgfCAgIDIyICstCiAuLi4vV2Vi
S2l0SW5wdXRNZXRob2RDb250ZXh0Lmh9ICAgICAgICAgICAgICAgfCAgIDM5ICstCiAuLi4vV2Vi
S2l0V2ViVmlld0Jhc2UuaH0gICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICstCiAuLi4vQVBJ
L2d0azQvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmggICAgICAgICAgfCAgMTAwICsKIC4uLi9BUEkv
Z3RrNC9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaCAgICAgICB8ICAyMjMgKysrCiAuLi4vVUlQ
cm9jZXNzL0FQSS9ndGs0L1dlYktpdFdlYlZpZXdCYXNlLmggICAgfCAgIDcxICsKIC4uLi9XZWJL
aXRBcHBsaWNhdGlvbkluZm8uaH0gICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIC4uLi9XZWJL
aXRBdXRoZW50aWNhdGlvblJlcXVlc3QuaH0gICAgICAgICAgICB8ICAgMTQgKy0KIC4uLi9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRvY2xlYW51cHMuaCAgICB8ICAgOTAgKwogLi4uL1dlYktp
dEF1dG9tYXRpb25TZXNzaW9uLmh9ICAgICAgICAgICAgICAgIHwgICAgOCArLQogLi4uL1dlYktp
dEJhY2tGb3J3YXJkTGlzdC5ofSAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogLi4uL1dlYktp
dEJhY2tGb3J3YXJkTGlzdEl0ZW0uaH0gICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktp
dENvbnRleHRNZW51Lmh9ICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL0FQSS93
cGUvV2ViS2l0Q29udGV4dE1lbnVBY3Rpb25zLmggICAgICAgIHwgIDEyNCArKwogLi4uL1VJUHJv
Y2Vzcy9BUEkvd3BlL1dlYktpdENvbnRleHRNZW51SXRlbS5oIHwgIDEwMiArCiAuLi4vVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0Q29va2llTWFuYWdlci5oICAgfCAgMTUyICsrCiAuLi4vVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0Q3JlZGVudGlhbC5oICAgICAgfCAgIDkyICsKIC4uLi9XZWJLaXRE
ZWZpbmVzLmh9ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIC4uLi9XZWJLaXRE
ZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3QuaH0gICAgICB8ICAgIDYgKy0KIC4uLi9XZWJLaXRE
b3dubG9hZC5ofSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKy0KIC4uLi9XZWJLaXRF
ZGl0aW5nQ29tbWFuZHMuaH0gICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIC4uLi9XZWJLaXRF
ZGl0b3JTdGF0ZS5ofSAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0RXJyb3IuaCB8ICAxNjcgKysKIC4uLi9VSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRGYXZpY29uRGF0YWJhc2UuaCB8ICAgOTAgKwogLi4uL0FQSS93cGUv
V2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0LmggICAgICAgIHwgICA4MSArCiAuLi4vV2ViS2l0Rmlu
ZENvbnRyb2xsZXIuaH0gICAgICAgICAgICAgICAgICAgfCAgICA2ICstCiAuLi4vQVBJL3dwZS9X
ZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QuaCAgICAgfCAgIDczICsKIC4uLi9XZWJLaXRHZW9s
b2NhdGlvbk1hbmFnZXIuaH0gICAgICAgICAgICAgICB8ICAgIDYgKy0KIC4uLi9XZWJLaXRHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmh9ICAgICB8ICAgIDYgKy0KIC4uLi9XZWJLaXRIaXRU
ZXN0UmVzdWx0Lmh9ICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIC4uLi9BUEkvd3BlL1dl
YktpdElucHV0TWV0aG9kQ29udGV4dC5oICAgICAgICB8ICAyMjcgKysrCiAuLi5hbGxNaXNzaW5n
TWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuaH0gfCAgICA2ICstCiAuLi4vQVBJL3dwZS9X
ZWJLaXRKYXZhc2NyaXB0UmVzdWx0LmggICAgICAgICAgfCAgIDUyICsKIC4uLi9XZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmh9ICB8ICAgIDYgKy0KIC4uLi9XZWJLaXRNZW1v
cnlQcmVzc3VyZVNldHRpbmdzLmh9ICAgICAgICAgICB8ICAgIDYgKy0KIC4uLi9XZWJLaXRNaW1l
SW5mby5ofSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIC4uLi9XZWJLaXROYXZp
Z2F0aW9uQWN0aW9uLmh9ICAgICAgICAgICAgICAgICB8ICAgIDggKy0KIC4uLi9BUEkvd3BlL1dl
YktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi5oICB8ICAgNzQgKwogLi4uL1dlYktpdE5ldHdv
cmtQcm94eVNldHRpbmdzLmh9ICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdE5vdGlm
aWNhdGlvbi5ofSAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmh9ICAgIHwgICAgNiArLQogLi4uL1dlYktpdE9wdGlv
bk1lbnUuaH0gICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArLQogLi4uL1dlYktpdE9wdGlv
bk1lbnVJdGVtLmh9ICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogLi4uL1dlYktpdFBlcm1p
c3Npb25SZXF1ZXN0Lmh9ICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdFBsdWdp
bi5oLmluID0+IHdwZS9XZWJLaXRQbHVnaW4uaH0gIHwgICAgNiArLQogLi4uL1dlYktpdFBvbGlj
eURlY2lzaW9uLmh9ICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogLi4uL1dlYktpdFJlc3Bv
bnNlUG9saWN5RGVjaXNpb24uaH0gICAgICAgICAgIHwgICAxMiArLQogLi4uL1dlYktpdFNjcmlw
dERpYWxvZy5ofSAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdFNlY3Vy
aXR5TWFuYWdlci5ofSAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdFNlY3Vy
aXR5T3JpZ2luLmh9ICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRTZXR0aW5ncy5oIHwgIDQ4NCArKysrKwogLi4uL1dlYktpdFVS
SVJlcXVlc3QuaH0gICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdFVS
SVJlc3BvbnNlLmh9ICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdFVS
SVNjaGVtZVJlcXVlc3QuaH0gICAgICAgICAgICAgICAgIHwgICAgOCArLQogLi4uL1dlYktpdFVS
SVNjaGVtZVJlc3BvbnNlLmh9ICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdFVS
SVV0aWxpdGllcy5ofSAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdFVz
ZXJDb250ZW50Lmh9ICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdFVz
ZXJDb250ZW50RmlsdGVyU3RvcmUuaH0gICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdFVz
ZXJDb250ZW50TWFuYWdlci5ofSAgICAgICAgICAgICAgIHwgICAgOCArLQogLi4uL1dlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmh9ICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdFVz
ZXJNZXNzYWdlLmh9ICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL0FQSS97Z2xp
YiA9PiB3cGV9L1dlYktpdFZlcnNpb24uaC5pbiAgICAgIHwgICAgNiArLQogLi4uL1VJUHJvY2Vz
cy9BUEkvd3BlL1dlYktpdFdlYkNvbnRleHQuaCAgICAgIHwgIDI5OSArKysKIC4uLi9XZWJLaXRX
ZWJSZXNvdXJjZS5ofSAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKy0KIC4uLi9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oICB8ICA2NTMgKysrKysrKwogLi4uL1dl
YktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuaH0gICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL1dl
YktpdFdlYnNpdGVEYXRhLmh9ICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uZWJL
aXRXZWJzaXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0Lmh9IHwgICAgNiArLQogLi4uL1dl
YktpdFdlYnNpdGVEYXRhTWFuYWdlci5ofSAgICAgICAgICAgICAgIHwgICAxNCArLQogLi4uL1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYnNpdGVQb2xpY2llcy5oIHwgICA4OSArCiAuLi4vQVBJ
L3dwZS9XZWJLaXRXaW5kb3dQcm9wZXJ0aWVzLmggICAgICAgICAgfCAgIDg2ICsKIC4uLi9BUEkv
Z3RrL1dlYktpdENvbnNvbGVNZXNzYWdlLmggICAgICAgICAgICB8ICAxMDIgKwogLi4uL1dlYktp
dEZyYW1lLmguaW4gPT4gZ3RrL1dlYktpdEZyYW1lLmh9ICAgIHwgICAxNyArLQogLi4uL0FQSS9n
dGsvV2ViS2l0U2NyaXB0V29ybGQuaCAgICAgICAgICAgICAgIHwgICA3NSArCiAuLi4vSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFZGl0b3IuaCAgfCAgIDY1ICsKIC4uLi9BUEkvZ3Rr
L1dlYktpdFdlYkV4dGVuc2lvbi5oICAgICAgICAgICAgICB8ICAxMDAgKwogLi4uL0FQSS9ndGsv
V2ViS2l0V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzLmggIHwgICA0MSArCiAuLi4vQVBJL2d0ay9X
ZWJLaXRXZWJIaXRUZXN0UmVzdWx0LmggICAgICAgICAgfCAgIDY4ICsKIC4uLi9XZWJLaXRXZWJQ
YWdlLmh9ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKy0KIC4uLi93ZWJraXQtd2Vi
LWV4dGVuc2lvbi5ofSAgICAgICAgICAgICAgICAgICB8ICAgMzggKy0KIC4uLi9XZWJLaXRDb25z
b2xlTWVzc2FnZS5ofSAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIC4uLi9JbmplY3RlZEJ1
bmRsZS9BUEkvd3BlL1dlYktpdEZyYW1lLmggICAgICB8ICAgODcgKwogLi4uL1dlYktpdFNjcmlw
dFdvcmxkLmh9ICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdFdlYkVk
aXRvci5ofSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogLi4uL1dlYktpdFdlYkV4
dGVuc2lvbi5ofSAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArLQogLi4uL1dlYktpdFdlYkV4
dGVuc2lvbkF1dG9jbGVhbnVwcy5ofSAgICAgICAgIHwgICAgNCArLQogLi4uL1dlYktpdFdlYkhp
dFRlc3RSZXN1bHQuaH0gICAgICAgICAgICAgICAgIHwgICAxMyArLQogLi4uL0luamVjdGVkQnVu
ZGxlL0FQSS93cGUvV2ViS2l0V2ViUGFnZS5oICAgIHwgIDEwOSArKwogLi4uL0FQSS93cGUvd2Vi
a2l0LXdlYi1leHRlbnNpb24uaCAgICAgICAgICAgIHwgICA0OCArCiBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXIucHkgICAgICAgfCAgICAzICstCiAxNjMgZmlsZXMgY2hhbmdl
ZCwgODk5NyBpbnNlcnRpb25zKCspLCAyNTcyIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9UaGlyZFBhcnR5L3VuaWZkZWYvQ01ha2VMaXN0cy50eHQKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBTb3VyY2UvVGhpcmRQYXJ0eS91bmlmZGVmL1JFQURNRS53ZWJraXQKIGRlbGV0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvVGhpcmRQYXJ0eS91bmlmZGVmL3VuaWZkZWYuYwogZGVsZXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9UaGlyZFBhcnR5L3VuaWZkZWYvdW5pZmRlZi5oCiBkZWxldGUgbW9k
ZSAxMDA2NDQgU291cmNlL1RoaXJkUGFydHkvdW5pZmRlZi92ZXJzaW9uLmgKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBTb3VyY2UvV2ViS2l0L0dMaWIuY21ha2UKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEFwcGxpY2F0aW9uSW5mby5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRo
ZW50aWNhdGlvblJlcXVlc3QuaAogcmVuYW1lIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS97
Z2xpYi9XZWJLaXRBdXRvY2xlYW51cHMuaC5pbiA9PiBndGsvV2ViS2l0QXV0b2NsZWFudXBzLmh9
ICg5NyUpCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3QuaAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0Zvcndh
cmRMaXN0SXRlbS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudS5oCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3tnbGliL1dlYktpdENvbnRleHRNZW51QWN0aW9ucy5oLmluID0+IGd0ay9XZWJLaXRD
b250ZXh0TWVudUFjdGlvbnMuaH0gKDY3JSkKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkve2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5oLmluID0+IGd0ay9XZWJLaXRDb29raWVN
YW5hZ2VyLmh9ICg5OCUpCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tnbGli
L1dlYktpdENyZWRlbnRpYWwuaC5pbiA9PiBndGsvV2ViS2l0Q3JlZGVudGlhbC5ofSAoOTQlKQog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
RGVmaW5lcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXREZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3QuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuaAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RWRp
dGluZ0NvbW1hbmRzLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEVkaXRvclN0YXRlLmgKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkve2dsaWIvV2ViS2l0RXJyb3IuaC5pbiA9PiBndGsvV2ViS2l0RXJyb3IuaH0gKDk2
JSkKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0RmF2aWNv
bkRhdGFiYXNlLmguaW4gPT4gZ3RrL1dlYktpdEZhdmljb25EYXRhYmFzZS5ofSAoOTUlKQogcmVu
YW1lIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS97Z2xpYi9XZWJLaXRGaWxlQ2hvb3NlclJl
cXVlc3QuaC5pbiA9PiBndGsvV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0Lmh9ICg5NSUpCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5k
Q29udHJvbGxlci5oCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tnbGliL1dl
YktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5oLmluID0+IGd0ay9XZWJLaXRGb3JtU3VibWlzc2lv
blJlcXVlc3QuaH0gKDk0JSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEZvcndhcmREZWNsYXJhdGlvbnMuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRpb25NYW5h
Z2VyLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SGl0VGVzdFJlc3VsdC5oCiBj
cmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJ
bnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmgKIHJlbmFtZSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5oLmlu
ID0+IGd0ay9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0Lmh9ICg5MSUpCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdE1lbW9yeVByZXNzdXJlU2V0dGluZ3MuaAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWltZUluZm8uaAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
TmF2aWdhdGlvbkFjdGlvbi5oCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tn
bGliL1dlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi5oLmluID0+IGd0ay9XZWJLaXROYXZp
Z2F0aW9uUG9saWN5RGVjaXNpb24uaH0gKDkyJSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5ldHdvcmtQcm94eVNldHRpbmdzLmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5v
dGlmaWNhdGlvbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRPcHRpb25NZW51
LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdE9wdGlvbk1lbnVJdGVtLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0LmgKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBsdWdpbi5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xp
Y3lEZWNpc2lvbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRSZXNwb25zZVBvbGljeURlY2lzaW9uLmgKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlwdERpYWxvZy5oCiBj
cmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRT
ZWN1cml0eU1hbmFnZXIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0U2VjdXJpdHlPcmlnaW4uaAogcmVuYW1lIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS97Z2xpYi9XZWJLaXRTZXR0aW5ncy5oLmluID0+IGd0ay9XZWJLaXRTZXR0
aW5ncy5ofSAoOTklKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXNwb25zZS5oCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1
ZXN0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVV0aWxpdGllcy5oCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudC5o
CiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50TWFuYWdlci5oCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVzc2FnZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRWZXJzaW9uLmguaW4KIHJlbmFt
ZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0V2ViQ29udGV4dC5oLmlu
ID0+IGd0ay9XZWJLaXRXZWJDb250ZXh0Lmh9ICg5NSUpCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJSZXNvdXJjZS5oCiByZW5hbWUg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tnbGliL1dlYktpdFdlYlZpZXcuaC5pbiA9PiBn
dGsvV2ViS2l0V2ViVmlldy5ofSAoODQlKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5oCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJzaXRl
RGF0YS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJzaXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0LmgKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYnNpdGVEYXRh
TWFuYWdlci5oCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tnbGliL1dlYktp
dFdlYnNpdGVQb2xpY2llcy5oLmluID0+IGd0ay9XZWJLaXRXZWJzaXRlUG9saWNpZXMuaH0gKDk0
JSkKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0V2luZG93
UHJvcGVydGllcy5oLmluID0+IGd0ay9XZWJLaXRXaW5kb3dQcm9wZXJ0aWVzLmh9ICg5NSUpCiBy
ZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tnbGliL1dlYktpdENvbnRleHRNZW51
SXRlbS5oLmluID0+IGd0azMvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmh9ICg5MSUpCiByZW5hbWUg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tnbGliL1dlYktpdElucHV0TWV0aG9kQ29udGV4
dC5oLmluID0+IGd0azMvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0Lmh9ICg4OCUpCiByZW5hbWUg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tndGsvV2ViS2l0V2ViVmlld0Jhc2UuaC5pbiA9
PiBndGszL1dlYktpdFdlYlZpZXdCYXNlLmh9ICg5NSUpCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0azQvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrNC9XZWJLaXRJ
bnB1dE1ldGhvZENvbnRleHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGs0L1dlYktpdFdlYlZpZXdCYXNlLmgKIHJlbmFtZSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0QXBwbGljYXRpb25JbmZvLmguaW4gPT4gd3BlL1dl
YktpdEFwcGxpY2F0aW9uSW5mby5ofSAoOTMlKQogcmVuYW1lIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS97Z2xpYi9XZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuaC5pbiA9PiB3cGUvV2Vi
S2l0QXV0aGVudGljYXRpb25SZXF1ZXN0Lmh9ICg5NiUpCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRvY2xlYW51cHMuaAogcmVuYW1l
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS97Z2xpYi9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lv
bi5oLmluID0+IHdwZS9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5ofSAoOTQlKQogcmVuYW1lIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS97Z2xpYi9XZWJLaXRCYWNrRm9yd2FyZExpc3QuaC5p
biA9PiB3cGUvV2ViS2l0QmFja0ZvcndhcmRMaXN0Lmh9ICg5NCUpCiByZW5hbWUgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3tnbGliL1dlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0uaC5pbiA9
PiB3cGUvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5ofSAoOTQlKQogcmVuYW1lIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS97Z2xpYi9XZWJLaXRDb250ZXh0TWVudS5oLmluID0+IHdwZS9X
ZWJLaXRDb250ZXh0TWVudS5ofSAoOTUlKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Q29udGV4dE1lbnVBY3Rpb25zLmgKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbnRleHRN
ZW51SXRlbS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXRDb29raWVNYW5hZ2VyLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENyZWRlbnRpYWwuaAogcmVuYW1lIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS97Z2xpYi9XZWJLaXREZWZpbmVzLmguaW4gPT4gd3BlL1dlYktp
dERlZmluZXMuaH0gKDkxJSkKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkve2ds
aWIvV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0LmguaW4gPT4gd3BlL1dlYktpdERl
dmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdC5ofSAoOTQlKQogcmVuYW1lIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS97Z2xpYi9XZWJLaXREb3dubG9hZC5oLmluID0+IHdwZS9XZWJLaXREb3du
bG9hZC5ofSAoOTMlKQogcmVuYW1lIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS97Z2xpYi9X
ZWJLaXRFZGl0aW5nQ29tbWFuZHMuaC5pbiA9PiB3cGUvV2ViS2l0RWRpdGluZ0NvbW1hbmRzLmh9
ICg5NyUpCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tnbGliL1dlYktpdEVk
aXRvclN0YXRlLmguaW4gPT4gd3BlL1dlYktpdEVkaXRvclN0YXRlLmh9ICg5NSUpCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRFcnJvci5o
CiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRGYXZpY29uRGF0YWJhc2UuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0LmgKIHJlbmFtZSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0RmluZENvbnRyb2xsZXIuaC5pbiA9PiB3
cGUvV2ViS2l0RmluZENvbnRyb2xsZXIuaH0gKDk2JSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5o
CiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tnbGliL1dlYktpdEdlb2xvY2F0
aW9uTWFuYWdlci5oLmluID0+IHdwZS9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuaH0gKDk2JSkK
IHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0R2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5oLmluID0+IHdwZS9XZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0Lmh9ICg5NCUpCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tn
bGliL1dlYktpdEhpdFRlc3RSZXN1bHQuaC5pbiA9PiB3cGUvV2ViS2l0SGl0VGVzdFJlc3VsdC5o
fSAoOTUlKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmgKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkve2dsaWIvV2ViS2l0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9u
UmVxdWVzdC5oLmluID0+IHdwZS9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1p
c3Npb25SZXF1ZXN0Lmh9ICg5NSUpCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0LmgKIHJlbmFtZSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdC5oLmluID0+IHdwZS9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
Lmh9ICg5NCUpCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tnbGliL1dlYktp
dE1lbW9yeVByZXNzdXJlU2V0dGluZ3MuaC5pbiA9PiB3cGUvV2ViS2l0TWVtb3J5UHJlc3N1cmVT
ZXR0aW5ncy5ofSAoOTUlKQogcmVuYW1lIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS97Z2xp
Yi9XZWJLaXRNaW1lSW5mby5oLmluID0+IHdwZS9XZWJLaXRNaW1lSW5mby5ofSAoOTAlKQogcmVu
YW1lIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS97Z2xpYi9XZWJLaXROYXZpZ2F0aW9uQWN0
aW9uLmguaW4gPT4gd3BlL1dlYktpdE5hdmlnYXRpb25BY3Rpb24uaH0gKDkzJSkKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbi5oCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tn
bGliL1dlYktpdE5ldHdvcmtQcm94eVNldHRpbmdzLmguaW4gPT4gd3BlL1dlYktpdE5ldHdvcmtQ
cm94eVNldHRpbmdzLmh9ICg5MyUpCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3tnbGliL1dlYktpdE5vdGlmaWNhdGlvbi5oLmluID0+IHdwZS9XZWJLaXROb3RpZmljYXRpb24u
aH0gKDk0JSkKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaC5pbiA9PiB3cGUvV2ViS2l0Tm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuaH0gKDk0JSkKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkve2dsaWIvV2ViS2l0T3B0aW9uTWVudS5oLmluID0+IHdwZS9XZWJLaXRPcHRpb25N
ZW51Lmh9ICg5MiUpCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tnbGliL1dl
YktpdE9wdGlvbk1lbnVJdGVtLmguaW4gPT4gd3BlL1dlYktpdE9wdGlvbk1lbnVJdGVtLmh9ICg5
MCUpCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tnbGliL1dlYktpdFBlcm1p
c3Npb25SZXF1ZXN0LmguaW4gPT4gd3BlL1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0Lmh9ICg5MiUp
CiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tnbGliL1dlYktpdFBsdWdpbi5o
LmluID0+IHdwZS9XZWJLaXRQbHVnaW4uaH0gKDkzJSkKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0UG9saWN5RGVjaXNpb24uaC5pbiA9PiB3cGUvV2ViS2l0
UG9saWN5RGVjaXNpb24uaH0gKDkzJSkKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkve2dsaWIvV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbi5oLmluID0+IHdwZS9XZWJLaXRS
ZXNwb25zZVBvbGljeURlY2lzaW9uLmh9ICg5MSUpCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3tnbGliL1dlYktpdFNjcmlwdERpYWxvZy5oLmluID0+IHdwZS9XZWJLaXRTY3Jp
cHREaWFsb2cuaH0gKDk0JSkKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkve2ds
aWIvV2ViS2l0U2VjdXJpdHlNYW5hZ2VyLmguaW4gPT4gd3BlL1dlYktpdFNlY3VyaXR5TWFuYWdl
ci5ofSAoOTYlKQogcmVuYW1lIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS97Z2xpYi9XZWJL
aXRTZWN1cml0eU9yaWdpbi5oLmluID0+IHdwZS9XZWJLaXRTZWN1cml0eU9yaWdpbi5ofSAoOTMl
KQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2Vi
S2l0U2V0dGluZ3MuaAogcmVuYW1lIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS97Z2xpYi9X
ZWJLaXRVUklSZXF1ZXN0LmguaW4gPT4gd3BlL1dlYktpdFVSSVJlcXVlc3QuaH0gKDkyJSkKIHJl
bmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0VVJJUmVzcG9uc2Uu
aC5pbiA9PiB3cGUvV2ViS2l0VVJJUmVzcG9uc2UuaH0gKDkzJSkKIHJlbmFtZSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oLmluID0+IHdw
ZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmh9ICg5NCUpCiByZW5hbWUgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3tnbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmguaW4gPT4gd3BlL1dl
YktpdFVSSVNjaGVtZVJlc3BvbnNlLmh9ICg5NSUpCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3tnbGliL1dlYktpdFVSSVV0aWxpdGllcy5oLmluID0+IHdwZS9XZWJLaXRVUklV
dGlsaXRpZXMuaH0gKDg2JSkKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkve2ds
aWIvV2ViS2l0VXNlckNvbnRlbnQuaC5pbiA9PiB3cGUvV2ViS2l0VXNlckNvbnRlbnQuaH0gKDk3
JSkKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0VXNlckNv
bnRlbnRGaWx0ZXJTdG9yZS5oLmluID0+IHdwZS9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3Jl
Lmh9ICg5NyUpCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3tnbGliL1dlYktp
dFVzZXJDb250ZW50TWFuYWdlci5oLmluID0+IHdwZS9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIu
aH0gKDk2JSkKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaC5pbiA9PiB3cGUvV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuaH0gKDk0JSkKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkve2dsaWIvV2ViS2l0VXNlck1lc3NhZ2UuaC5pbiA9PiB3cGUvV2ViS2l0VXNlck1lc3NhZ2Uu
aH0gKDk0JSkKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkve2dsaWIgPT4gd3Bl
fS9XZWJLaXRWZXJzaW9uLmguaW4gKDkwJSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYkNvbnRleHQuaAogcmVuYW1lIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS97Z2xpYi9XZWJLaXRXZWJSZXNvdXJjZS5oLmluID0+IHdwZS9X
ZWJLaXRXZWJSZXNvdXJjZS5ofSAoOTMlKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oCiByZW5hbWUgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3tnbGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuaC5pbiA9PiB3
cGUvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5ofSAoOTAlKQogcmVuYW1lIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS97Z2xpYi9XZWJLaXRXZWJzaXRlRGF0YS5oLmluID0+IHdwZS9XZWJL
aXRXZWJzaXRlRGF0YS5ofSAoOTUlKQogcmVuYW1lIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS97Z2xpYi9XZWJLaXRXZWJzaXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0LmguaW4gPT4g
d3BlL1dlYktpdFdlYnNpdGVEYXRhQWNjZXNzUGVybWlzc2lvblJlcXVlc3QuaH0gKDk1JSkKIHJl
bmFtZSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkve2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFN
YW5hZ2VyLmguaW4gPT4gd3BlL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5ofSAoOTclKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2Vi
c2l0ZVBvbGljaWVzLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1dlYktpdFdpbmRvd1Byb3BlcnRpZXMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdENvbnNv
bGVNZXNzYWdlLmgKIHJlbmFtZSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL3tnbGliL1dlYktpdEZyYW1lLmguaW4gPT4gZ3RrL1dlYktpdEZyYW1lLmh9ICg5MyUp
CiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvV2ViS2l0U2NyaXB0V29ybGQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkVkaXRv
ci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJF
eHRlbnNpb25BdXRvY2xlYW51cHMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkhpdFRlc3RSZXN1bHQu
aAogcmVuYW1lIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkve2ds
aWIvV2ViS2l0V2ViUGFnZS5oLmluID0+IGd0ay9XZWJLaXRXZWJQYWdlLmh9ICg5MiUpCiByZW5h
bWUgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS97Z2xpYi93ZWJr
aXQtd2ViLWV4dGVuc2lvbi5oLmluID0+IGd0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5ofSAoNTIl
KQogcmVuYW1lIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkve2ds
aWIvV2ViS2l0Q29uc29sZU1lc3NhZ2UuaC5pbiA9PiB3cGUvV2ViS2l0Q29uc29sZU1lc3NhZ2Uu
aH0gKDk0JSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRGcmFtZS5oCiByZW5hbWUgU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS97Z2xpYi9XZWJLaXRTY3JpcHRXb3JsZC5oLmlu
ID0+IHdwZS9XZWJLaXRTY3JpcHRXb3JsZC5ofSAoOTMlKQogcmVuYW1lIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkve2dsaWIvV2ViS2l0V2ViRWRpdG9yLmguaW4g
PT4gd3BlL1dlYktpdFdlYkVkaXRvci5ofSAoOTAlKQogcmVuYW1lIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkve2dsaWIvV2ViS2l0V2ViRXh0ZW5zaW9uLmguaW4g
PT4gd3BlL1dlYktpdFdlYkV4dGVuc2lvbi5ofSAoOTMlKQogcmVuYW1lIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkve2dsaWIvV2ViS2l0V2ViRXh0ZW5zaW9uQXV0
b2NsZWFudXBzLmguaW4gPT4gd3BlL1dlYktpdFdlYkV4dGVuc2lvbkF1dG9jbGVhbnVwcy5ofSAo
OTAlKQogcmVuYW1lIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
e2dsaWIvV2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5oLmluID0+IHdwZS9XZWJLaXRXZWJIaXRUZXN0
UmVzdWx0Lmh9ICg5MSUpCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViUGFnZS5oCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvd2Vi
a2l0LXdlYi1leHRlbnNpb24uaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L3VuaWZk
ZWYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS91bmlmZGVmL0NNYWtlTGlzdHMu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZjk5MzNlMWQ2Y2YuLjAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS91bmlmZGVmL0NNYWtlTGlzdHMudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotIyBXZWJLaXQgYnVpbGQgcnVsZXMgZm9yIHVuaWZk
ZWYKLQotc2V0KFVOSUZERUZfRElSICIke1RISVJEUEFSVFlfRElSfS91bmlmZGVmIikKLQotc2V0
KFVOSUZERUZfU09VUkNFUwotICAgICR7VU5JRkRFRl9ESVJ9L3VuaWZkZWYuYwotKQotCi1hZGRf
ZXhlY3V0YWJsZSh1bmlmZGVmICR7VU5JRkRFRl9TT1VSQ0VTfSkKLXRhcmdldF9pbmNsdWRlX2Rp
cmVjdG9yaWVzKHVuaWZkZWYgUFJJVkFURSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0pCi0K
LWlmIChDT01QSUxFUl9JU19HQ0NfT1JfQ0xBTkcpCi0gICAgV0VCS0lUX0FERF9UQVJHRVRfQ1hY
X0ZMQUdTKHVuaWZkZWYgLVduby1zdWdnZXN0LWF0dHJpYnV0ZT1mb3JtYXQpCi1lbmRpZiAoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvdW5pZmRlZi9SRUFETUUud2Via2l0IGIvU291
cmNlL1RoaXJkUGFydHkvdW5pZmRlZi9SRUFETUUud2Via2l0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1ZWUyMDM0OGJmY2QuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS91bmlmZGVmL1JFQURNRS53ZWJraXQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBA
Ci1UaGlzIGRpcmVjdG9yeSBjb250YWlucyB1bmlmZGVmLmggYW5kIHVuaWZkZWYuYyBmcm9tOgot
Ci1odHRwczovL2dpdGh1Yi5jb20vZmFuZjIvdW5pZmRlZgotCi1XaXRoIHRoaXMgY3VzdG9taXph
dGlvbjoKLQotLSNkZWZpbmUgZW5kc3ltKGMpICghaXNhbG51bSgodW5zaWduZWQgY2hhciljKSAm
JiBjICE9ICdfJykKLSsjZGVmaW5lIGVuZHN5bShjKSAoIWlzYWxudW0oKHVuc2lnbmVkIGNoYXIp
YykgJiYgYyAhPSAnXycgJiYgYyAhPSAnKCcgJiYgYyAhPSAnKScpCi0KLVRoaXMgY2hhbmdlIGFs
bG93cyB1cyB0byB1c2UgcGFyZW50aGVzZXMgaW4gcHJlcHJvY2Vzc29yIHN5bWJvbHMsIGUuZy4K
LVBMQVRGT1JNKFdQRSkgb3IgVVNFKEdUSzQpLgotCi11bmlmZGVmIGFsbG93cyB1cyB0byBhdm9p
ZCBrZWVwaW5nIGEgYnVuY2ggb2YgZGlmZmVyZW50IGNvcGllcyBvZiBvdXIgcHVibGljCi1oZWFk
ZXJzIGZvciBlYWNoIGRlc2lyZWQgYnVpbGQgY29uZmlndXJhdGlvbi4gSW5zdGVhZCBvZiBoYXZp
bmcgb25lIHNldCBvZgotaGVhZGVycyBmb3IgR1RLIDMsIG9uZSBzZXQgZm9yIEdUSyA0LCBhbmQg
YW5vdGhlciBmb3IgV1BFLCB3ZSBjYW4gaGF2ZSBqdXN0IG9uZQotc2V0IG9mIC5oLmluIHRlbXBs
YXRlcywgdXNlICNpZiBndWFyZHMgaW4gdGhlIHRlbXBsYXRlcywgYW5kIGdlbmVyYXRlIHRoZSBy
ZWFsCi1oZWFkZXJzIHVzaW5nIHVuaWZkZWYuCi0KLVdhcm5pbmc6IHVuaWZkZWYgZG9lcyBub3Qg
d29yayBpbnNpZGUgY29tbWVudHMuIElmIHBhcnQgb2YgYSBjb21tZW50IG5lZWRzIHRvCi1kaWZm
ZXIsIHlvdSBtdXN0IGNvcHkgdGhlIGVudGlyZXR5IG9mIHRoZSBjb21tZW50LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvdW5pZmRlZi91bmlmZGVmLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS91bmlmZGVmL3VuaWZkZWYuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ5NjA3
YTA5NWM5Li4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvdW5pZmRlZi91bmlm
ZGVmLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxNjc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KGMpIDIwMDIgLSAyMDIwIFRvbnkgRmluY2ggPGRvdEBkb3RhdC5hdD4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECi0gKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0g
KiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRQotICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSAqIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
Ci0gKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikKLSAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0gKiBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZCi0gKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0vKgotICogdW5p
ZmRlZiAtIHJlbW92ZSBpZmRlZidlZCBsaW5lcwotICoKLSAqIFRoaXMgY29kZSB3YXMgZGVyaXZl
ZCBmcm9tIHNvZnR3YXJlIGNvbnRyaWJ1dGVkIHRvIEJlcmtlbGV5IGJ5IERhdmUgWW9zdC4KLSAq
IEl0IHdhcyByZXdyaXR0ZW4gdG8gc3VwcG9ydCBBTlNJIEMgYnkgVG9ueSBGaW5jaC4gVGhlIG9y
aWdpbmFsIHZlcnNpb24KLSAqIG9mIHVuaWZkZWYgY2FycmllZCB0aGUgNC1jbGF1c2UgQlNEIGNv
cHlyaWdodCBsaWNlbmNlLiBOb25lIG9mIGl0cyBjb2RlCi0gKiByZW1haW5zIGluIHRoaXMgdmVy
c2lvbiAodGhvdWdoIHNvbWUgb2YgdGhlIG5hbWVzIHJlbWFpbikgc28gaXQgbm93Ci0gKiBjYXJy
aWVzIGEgbW9yZSBsaWJlcmFsIGxpY2VuY2UuCi0gKgotICogIFdpc2hsaXN0OgotICogICAgICBw
cm92aWRlIGFuIG9wdGlvbiB3aGljaCB3aWxsIGFwcGVuZCB0aGUgbmFtZSBvZiB0aGUKLSAqICAg
ICAgICBhcHByb3ByaWF0ZSBzeW1ib2wgYWZ0ZXIgI2Vsc2UncyBhbmQgI2VuZGlmJ3MKLSAqICAg
ICAgcHJvdmlkZSBhbiBvcHRpb24gd2hpY2ggd2lsbCBjaGVjayBzeW1ib2xzIGFmdGVyCi0gKiAg
ICAgICAgI2Vsc2UncyBhbmQgI2VuZGlmJ3MgdG8gc2VlIHRoYXQgdGhleSBtYXRjaCB0aGVpcgot
ICogICAgICAgIGNvcnJlc3BvbmRpbmcgI2lmZGVmIG9yICNpZm5kZWYKLSAqCi0gKiAgIFRoZXNl
IHJlcXVpcmUgYmV0dGVyIGJ1ZmZlciBoYW5kbGluZywgd2hpY2ggd291bGQgYWxzbyBtYWtlCi0g
KiAgIGl0IHBvc3NpYmxlIHRvIGhhbmRsZSBhbGwgImRvZGd5IiBkaXJlY3RpdmVzIGNvcnJlY3Rs
eS4KLSAqLwotCi0jaW5jbHVkZSAidW5pZmRlZi5oIgotCi1zdGF0aWMgY29uc3QgY2hhciBjb3B5
cmlnaHRbXSA9Ci0gICAgIkAoIykgJEF1dGhvcjogVG9ueSBGaW5jaCAoZG90QGRvdGF0LmF0KSAk
XG4iCi0gICAgIkAoIykgJFVSTDogaHR0cDovL2RvdGF0LmF0L3Byb2cvdW5pZmRlZiAkXG4iCi07
Ci0KLS8qIHR5cGVzIG9mIGlucHV0IGxpbmVzOiAqLwotdHlwZWRlZiBlbnVtIHsKLQlMVF9UUlVF
SSwJCS8qIGEgdHJ1ZSAjaWYgd2l0aCBpZ25vcmUgZmxhZyAqLwotCUxUX0ZBTFNFSSwJCS8qIGEg
ZmFsc2UgI2lmIHdpdGggaWdub3JlIGZsYWcgKi8KLQlMVF9JRiwJCQkvKiBhbiB1bmtub3duICNp
ZiAqLwotCUxUX1RSVUUsCQkvKiBhIHRydWUgI2lmICovCi0JTFRfRkFMU0UsCQkvKiBhIGZhbHNl
ICNpZiAqLwotCUxUX0VMSUYsCQkvKiBhbiB1bmtub3duICNlbGlmICovCi0JTFRfRUxUUlVFLAkJ
LyogYSB0cnVlICNlbGlmICovCi0JTFRfRUxGQUxTRSwJCS8qIGEgZmFsc2UgI2VsaWYgKi8KLQlM
VF9FTFNFLAkJLyogI2Vsc2UgKi8KLQlMVF9FTkRJRiwJCS8qICNlbmRpZiAqLwotCUxUX0RPREdZ
LAkJLyogZmxhZzogZGlyZWN0aXZlIGlzIG5vdCBvbiBvbmUgbGluZSAqLwotCUxUX0RPREdZX0xB
U1QgPSBMVF9ET0RHWSArIExUX0VORElGLAotCUxUX1BMQUlOLAkJLyogb3JkaW5hcnkgbGluZSAq
LwotCUxUX0VPRiwJCQkvKiBlbmQgb2YgZmlsZSAqLwotCUxUX0VSUk9SLAkJLyogdW5ldmFsdWFi
bGUgI2lmICovCi0JTFRfQ09VTlQKLX0gTGluZXR5cGU7Ci0KLXN0YXRpYyBjaGFyIGNvbnN0ICog
Y29uc3QgbGluZXR5cGVfbmFtZVtdID0gewotCSJUUlVFSSIsICJGQUxTRUkiLCAiSUYiLCAiVFJV
RSIsICJGQUxTRSIsCi0JIkVMSUYiLCAiRUxUUlVFIiwgIkVMRkFMU0UiLCAiRUxTRSIsICJFTkRJ
RiIsCi0JIkRPREdZIFRSVUVJIiwgIkRPREdZIEZBTFNFSSIsCi0JIkRPREdZIElGIiwgIkRPREdZ
IFRSVUUiLCAiRE9ER1kgRkFMU0UiLAotCSJET0RHWSBFTElGIiwgIkRPREdZIEVMVFJVRSIsICJE
T0RHWSBFTEZBTFNFIiwKLQkiRE9ER1kgRUxTRSIsICJET0RHWSBFTkRJRiIsCi0JIlBMQUlOIiwg
IkVPRiIsICJFUlJPUiIKLX07Ci0KLSNkZWZpbmUgbGluZXR5cGVfaWYyZWxpZihsdCkgKChMaW5l
dHlwZSkobHQgLSBMVF9JRiArIExUX0VMSUYpKQotI2RlZmluZSBsaW5ldHlwZV8yZG9kZ3kobHQp
ICgoTGluZXR5cGUpKGx0ICsgTFRfRE9ER1kpKQotCi0vKiBzdGF0ZSBvZiAjaWYgcHJvY2Vzc2lu
ZyAqLwotdHlwZWRlZiBlbnVtIHsKLQlJU19PVVRTSURFLAotCUlTX0ZBTFNFX1BSRUZJWCwJLyog
ZmFsc2UgI2lmIGZvbGxvd2VkIGJ5IGZhbHNlICNlbGlmcyAqLwotCUlTX1RSVUVfUFJFRklYLAkJ
LyogZmlyc3Qgbm9uLWZhbHNlICMoZWwpaWYgaXMgdHJ1ZSAqLwotCUlTX1BBU1NfTUlERExFLAkJ
LyogZmlyc3Qgbm9uLWZhbHNlICMoZWwpaWYgaXMgdW5rbm93biAqLwotCUlTX0ZBTFNFX01JRERM
RSwJLyogYSBmYWxzZSAjZWxpZiBhZnRlciBhIHBhc3Mgc3RhdGUgKi8KLQlJU19UUlVFX01JRERM
RSwJCS8qIGEgdHJ1ZSAjZWxpZiBhZnRlciBhIHBhc3Mgc3RhdGUgKi8KLQlJU19QQVNTX0VMU0Us
CQkvKiBhbiBlbHNlIGFmdGVyIGEgcGFzcyBzdGF0ZSAqLwotCUlTX0ZBTFNFX0VMU0UsCQkvKiBh
biBlbHNlIGFmdGVyIGEgdHJ1ZSBzdGF0ZSAqLwotCUlTX1RSVUVfRUxTRSwJCS8qIGFuIGVsc2Ug
YWZ0ZXIgb25seSBmYWxzZSBzdGF0ZXMgKi8KLQlJU19GQUxTRV9UUkFJTEVSLAkvKiAjZWxpZnMg
YWZ0ZXIgYSB0cnVlIGFyZSBmYWxzZSAqLwotCUlTX0NPVU5UCi19IElmc3RhdGU7Ci0KLXN0YXRp
YyBjaGFyIGNvbnN0ICogY29uc3QgaWZzdGF0ZV9uYW1lW10gPSB7Ci0JIk9VVFNJREUiLCAiRkFM
U0VfUFJFRklYIiwgIlRSVUVfUFJFRklYIiwKLQkiUEFTU19NSURETEUiLCAiRkFMU0VfTUlERExF
IiwgIlRSVUVfTUlERExFIiwKLQkiUEFTU19FTFNFIiwgIkZBTFNFX0VMU0UiLCAiVFJVRV9FTFNF
IiwKLQkiRkFMU0VfVFJBSUxFUiIKLX07Ci0KLS8qIHN0YXRlIG9mIGNvbW1lbnQgcGFyc2VyICov
Ci10eXBlZGVmIGVudW0gewotCU5PX0NPTU1FTlQgPSBmYWxzZSwJLyogb3V0c2lkZSBhIGNvbW1l
bnQgKi8KLQlDX0NPTU1FTlQsCQkvKiBpbiBhIGNvbW1lbnQgbGlrZSB0aGlzIG9uZSAqLwotCUNY
WF9DT01NRU5ULAkJLyogYmV0d2VlbiAvLyBhbmQgZW5kIG9mIGxpbmUgKi8KLQlTVEFSVElOR19D
T01NRU5ULAkvKiBqdXN0IGFmdGVyIHNsYXNoLWJhY2tzbGFzaC1uZXdsaW5lICovCi0JRklOSVNI
SU5HX0NPTU1FTlQsCS8qIHN0YXItYmFja3NsYXNoLW5ld2xpbmUgaW4gYSBDIGNvbW1lbnQgKi8K
LQlDSEFSX0xJVEVSQUwsCQkvKiBpbnNpZGUgJycgKi8KLQlTVFJJTkdfTElURVJBTCwJCS8qIGlu
c2lkZSAiIiAqLwotCVJBV19TVFJJTkdfTElURVJBTAkvKiBpbnNpZGUgUiIoKSIgKi8KLX0gQ29t
bWVudF9zdGF0ZTsKLQotc3RhdGljIGNoYXIgY29uc3QgKiBjb25zdCBjb21tZW50X25hbWVbXSA9
IHsKLQkiTk8iLCAiQyIsICJDWFgiLCAiU1RBUlRJTkciLCAiRklOSVNISU5HIiwgIkNIQVIiLCAi
U1RSSU5HIgotfTsKLQotLyogc3RhdGUgb2YgcHJlcHJvY2Vzc29yIGxpbmUgcGFyc2VyICovCi10
eXBlZGVmIGVudW0gewotCUxTX1NUQVJULAkJLyogb25seSBzcGFjZSBhbmQgY29tbWVudHMgb24g
dGhpcyBsaW5lICovCi0JTFNfSEFTSCwJCS8qIG9ubHkgc3BhY2UsIGNvbW1lbnRzLCBhbmQgYSBo
YXNoICovCi0JTFNfRElSVFkJCS8qIHRoaXMgbGluZSBjYW4ndCBiZSBhIHByZXByb2Nlc3NvciBs
aW5lICovCi19IExpbmVfc3RhdGU7Ci0KLXN0YXRpYyBjaGFyIGNvbnN0ICogY29uc3QgbGluZXN0
YXRlX25hbWVbXSA9IHsKLQkiU1RBUlQiLCAiSEFTSCIsICJESVJUWSIKLX07Ci0KLS8qCi0gKiBN
aW5pbXVtIHRyYW5zbGF0aW9uIGxpbWl0cyBmcm9tIElTTy9JRUMgOTg5OToxOTk5IDUuMi40LjEK
LSAqLwotI2RlZmluZQlNQVhERVBUSCAgICAgICAgNjQJCQkvKiBtYXhpbXVtICNpZiBuZXN0aW5n
ICovCi0jZGVmaW5lCU1BWExJTkUgICAgICAgICA0MDk2CQkJLyogbWF4aW11bSBsZW5ndGggb2Yg
bGluZSAqLwotI2RlZmluZQlNQVhTWU1TICAgICAgICAgMTYzODQJCQkvKiBtYXhpbXVtIG51bWJl
ciBvZiBzeW1ib2xzICovCi0KLS8qCi0gKiBTb21ldGltZXMgd2hlbiBlZGl0aW5nIGEga2V5d29y
ZCB0aGUgcmVwbGFjZW1lbnQgdGV4dCBpcyBsb25nZXIsIHNvCi0gKiB3ZSBsZWF2ZSBzb21lIHNw
YWNlIGF0IHRoZSBlbmQgb2YgdGhlIHRsaW5lIGJ1ZmZlciB0byBhY2NvbW1vZGF0ZSB0aGlzLgot
ICovCi0jZGVmaW5lCUVESVRTTE9QICAgICAgICAxMAotCi0vKgotICogR2xvYmFscy4KLSAqLwot
Ci1zdGF0aWMgYm9vbCAgICAgICAgICAgICBjb21wYmxhbms7CQkvKiAtQjogY29tcHJlc3MgYmxh
bmsgbGluZXMgKi8KLXN0YXRpYyBib29sICAgICAgICAgICAgIGxuYmxhbms7CQkvKiAtYjogYmxh
bmsgZGVsZXRlZCBsaW5lcyAqLwotc3RhdGljIGJvb2wgICAgICAgICAgICAgY29tcGxlbWVudDsJ
CS8qIC1jOiBkbyB0aGUgY29tcGxlbWVudCAqLwotc3RhdGljIGJvb2wgICAgICAgICAgICAgZGVi
dWdnaW5nOwkJLyogLWQ6IGRlYnVnZ2luZyByZXBvcnRzICovCi1zdGF0aWMgYm9vbCAgICAgICAg
ICAgICBpbnBsYWNlOwkJLyogLW06IG1vZGlmeSBpbiBwbGFjZSAqLwotc3RhdGljIGJvb2wgICAg
ICAgICAgICAgaW9jY2NvazsJCS8qIC1lOiBmZXdlciBJT0NDQyBlcnJvcnMgKi8KLXN0YXRpYyBi
b29sICAgICAgICAgICAgIHN0cmljdGxvZ2ljOwkJLyogLUs6IGtlZXAgYW1iaWd1b3VzICNpZnMg
Ki8KLXN0YXRpYyBib29sICAgICAgICAgICAgIGtpbGxjb25zdHM7CQkvKiAtazogZXZhbCBjb25z
dGFudCAjaWZzICovCi1zdGF0aWMgYm9vbCAgICAgICAgICAgICBsbm51bTsJCQkvKiAtbjogYWRk
ICNsaW5lIGRpcmVjdGl2ZXMgKi8KLXN0YXRpYyBib29sICAgICAgICAgICAgIHN5bWxpc3Q7CQkv
KiAtczogb3V0cHV0IHN5bWJvbCBsaXN0ICovCi1zdGF0aWMgYm9vbCAgICAgICAgICAgICBzeW1k
ZXB0aDsJCS8qIC1TOiBvdXRwdXQgc3ltYm9sIGRlcHRoICovCi1zdGF0aWMgYm9vbCAgICAgICAg
ICAgICB0ZXh0OwkJCS8qIC10OiB0aGlzIGlzIGEgdGV4dCBmaWxlICovCi0KLXN0YXRpYyBjb25z
dCBjaGFyICAgICAgKnN5bW5hbWVbTUFYU1lNU107CS8qIHN5bWJvbCBuYW1lICovCi1zdGF0aWMg
Y29uc3QgY2hhciAgICAgICp2YWx1ZVtNQVhTWU1TXTsJCS8qIC1Ec3ltPXZhbHVlICovCi1zdGF0
aWMgYm9vbCAgICAgICAgICAgICBpZ25vcmVbTUFYU1lNU107CS8qIC1pRHN5bSBvciAtaVVzeW0g
Ki8KLXN0YXRpYyBpbnQgICAgICAgICAgICAgIG5zeW1zOwkJCS8qIG51bWJlciBvZiBzeW1ib2xz
ICovCi0KLXN0YXRpYyBGSUxFICAgICAgICAgICAgKmlucHV0OwkJCS8qIGlucHV0IGZpbGUgcG9p
bnRlciAqLwotc3RhdGljIGNvbnN0IGNoYXIgICAgICAqZmlsZW5hbWU7CQkvKiBpbnB1dCBmaWxl
IG5hbWUgKi8KLXN0YXRpYyBpbnQgICAgICAgICAgICAgIGxpbmVudW07CQkvKiBjdXJyZW50IGxp
bmUgbnVtYmVyICovCi1zdGF0aWMgY29uc3QgY2hhciAgICAgICpsaW5lZmlsZTsJCS8qIGZpbGUg
bmFtZSBmb3IgI2xpbmUgKi8KLXN0YXRpYyBGSUxFICAgICAgICAgICAgKm91dHB1dDsJCQkvKiBv
dXRwdXQgZmlsZSBwb2ludGVyICovCi1zdGF0aWMgY29uc3QgY2hhciAgICAgICpvZmlsZW5hbWU7
CQkvKiBvdXRwdXQgZmlsZSBuYW1lICovCi1zdGF0aWMgY29uc3QgY2hhciAgICAgICpiYWNrZXh0
OwkJLyogYmFja3VwIGV4dGVuc2lvbiAqLwotc3RhdGljIGNoYXIgICAgICAgICAgICAqdGVtcG5h
bWU7CQkvKiBhdm9pZCBzcGxhdHRpbmcgaW5wdXQgKi8KLQotc3RhdGljIGNoYXIgICAgICAgICAg
ICAgdGxpbmVbTUFYTElORStFRElUU0xPUF07LyogaW5wdXQgYnVmZmVyIHBsdXMgc3BhY2UgKi8K
LXN0YXRpYyBjaGFyICAgICAgICAgICAgKmtleXdvcmQ7CQkvKiB1c2VkIGZvciBlZGl0aW5nICNl
bGlmJ3MgKi8KLQotLyoKLSAqIFdoZW4gcHJvY2Vzc2luZyBhIGZpbGUsIHRoZSBvdXRwdXQncyBu
ZXdsaW5lIHN0eWxlIHdpbGwgbWF0Y2ggdGhlCi0gKiBpbnB1dCdzLCBhbmQgdW5pZmRlZiBjb3Jy
ZWN0bHkgaGFuZGxlcyBDUkxGIG9yIExGIGVuZGluZ3Mgd2hhdGV2ZXIKLSAqIHRoZSBwbGF0Zm9y
bSdzIG5hdGl2ZSBzdHlsZS4gVGhlIHN0ZGlvIHN0cmVhbXMgYXJlIG9wZW5lZCBpbiBiaW5hcnkK
LSAqIG1vZGUgdG8gYWNjb21tb2RhdGUgcGxhdGZvcm1zIHdob3NlIG5hdGl2ZSBuZXdsaW5lIHN0
eWxlIGlzIENSTEYuCi0gKiBXaGVuIHRoZSBvdXRwdXQgaXNuJ3QgYSBwcm9jZXNzZWQgaW5wdXQg
ZmlsZSAod2hlbiBpdCBpcyBlcnJvciAvCi0gKiBkZWJ1ZyAvIGRpYWdub3N0aWMgbWVzc2FnZXMp
IHRoZW4gdW5pZmRlZiB1c2VzIG5hdGl2ZSBsaW5lIGVuZGluZ3MuCi0gKi8KLQotc3RhdGljIGNv
bnN0IGNoYXIgICAgICAqbmV3bGluZTsJCS8qIGlucHV0IGZpbGUgZm9ybWF0ICovCi1zdGF0aWMg
Y29uc3QgY2hhciAgICAgICBuZXdsaW5lX3VuaXhbXSA9ICJcbiI7Ci1zdGF0aWMgY29uc3QgY2hh
ciAgICAgICBuZXdsaW5lX2NybGZbXSA9ICJcclxuIjsKLQotc3RhdGljIENvbW1lbnRfc3RhdGUg
ICAgaW5jb21tZW50OwkJLyogY29tbWVudCBwYXJzZXIgc3RhdGUgKi8KLXN0YXRpYyBMaW5lX3N0
YXRlICAgICAgIGxpbmVzdGF0ZTsJCS8qICNpZiBsaW5lIHBhcnNlciBzdGF0ZSAqLwotc3RhdGlj
IElmc3RhdGUgICAgICAgICAgaWZzdGF0ZVtNQVhERVBUSF07CS8qICNpZiBwcm9jZXNzb3Igc3Rh
dGUgKi8KLXN0YXRpYyBib29sICAgICAgICAgICAgIGlnbm9yaW5nW01BWERFUFRIXTsJLyogaWdu
b3JlIGNvbW1lbnRzIHN0YXRlICovCi1zdGF0aWMgaW50ICAgICAgICAgICAgICBzdGlmbGluZVtN
QVhERVBUSF07CS8qIHN0YXJ0IG9mIGN1cnJlbnQgI2lmICovCi1zdGF0aWMgaW50ICAgICAgICAg
ICAgICBkZXB0aDsJCQkvKiBjdXJyZW50ICNpZiBuZXN0aW5nICovCi1zdGF0aWMgaW50ICAgICAg
ICAgICAgICBkZWxjb3VudDsJCS8qIGNvdW50IG9mIGRlbGV0ZWQgbGluZXMgKi8KLXN0YXRpYyB1
bnNpZ25lZCAgICAgICAgIGJsYW5rY291bnQ7CQkvKiBjb3VudCBvZiBibGFuayBsaW5lcyAqLwot
c3RhdGljIHVuc2lnbmVkICAgICAgICAgYmxhbmttYXg7CQkvKiBtYXhpbXVtIHJlY2VudCBibGFu
a2NvdW50ICovCi1zdGF0aWMgYm9vbCAgICAgICAgICAgICBjb25zdGV4cHI7CQkvKiBjb25zdGFu
dCAjaWYgZXhwcmVzc2lvbiAqLwotc3RhdGljIGJvb2wgICAgICAgICAgICAgemVyb3N5bXM7CQkv
KiB0byBmb3JtYXQgc3ltZGVwdGggb3V0cHV0ICovCi1zdGF0aWMgYm9vbCAgICAgICAgICAgICBm
aXJzdHN5bTsJCS8qIGRpdHRvICovCi0KLXN0YXRpYyBpbnQgICAgICAgICAgICAgIGV4aXRtb2Rl
OwkJLyogZXhpdCBzdGF0dXMgbW9kZSAqLwotc3RhdGljIGludCAgICAgICAgICAgICAgZXhpdHN0
YXQ7CQkvKiBwcm9ncmFtIGV4aXQgc3RhdHVzICovCi1zdGF0aWMgYm9vbCAgICAgICAgICAgICBh
bHRlcmVkOwkJLyogd2FzIHRoaXMgZmlsZSBtb2RpZmllZD8gKi8KLQotc3RhdGljIHZvaWQgICAg
ICAgICAgICAgYWRkc3ltMShib29sLCBib29sLCBjaGFyICopOwotc3RhdGljIHZvaWQgICAgICAg
ICAgICAgYWRkc3ltMihib29sLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7Ci1zdGF0aWMg
Y2hhciAgICAgICAgICAgICphc3RyY2F0KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKLXN0
YXRpYyB2b2lkICAgICAgICAgICAgIGNsZWFudGVtcCh2b2lkKTsKLXN0YXRpYyB2b2lkICAgICAg
ICAgICAgIGNsb3NlaW8odm9pZCk7Ci1zdGF0aWMgdm9pZCAgICAgICAgICAgICBkZWJ1Zyhjb25z
dCBjaGFyICosIC4uLik7Ci1zdGF0aWMgdm9pZCAgICAgICAgICAgICBkZWJ1Z3N5bShjb25zdCBj
aGFyICosIGludCk7Ci1zdGF0aWMgYm9vbCAgICAgICAgICAgICBkZWZ1bmRlZih2b2lkKTsKLXN0
YXRpYyB2b2lkICAgICAgICAgICAgIGRlZnVuZGVmaWxlKGNvbnN0IGNoYXIgKik7Ci1zdGF0aWMg
dm9pZCAgICAgICAgICAgICBkb25lKHZvaWQpOwotc3RhdGljIHZvaWQgICAgICAgICAgICAgZXJy
b3IoY29uc3QgY2hhciAqKTsKLXN0YXRpYyBpbnQgICAgICAgICAgICAgIGZpbmRzeW0oY29uc3Qg
Y2hhciAqKik7Ci1zdGF0aWMgdm9pZCAgICAgICAgICAgICBmbHVzaGxpbmUoYm9vbCk7Ci1zdGF0
aWMgdm9pZCAgICAgICAgICAgICBoYXNobGluZSh2b2lkKTsKLXN0YXRpYyB2b2lkICAgICAgICAg
ICAgIGhlbHAodm9pZCk7Ci1zdGF0aWMgTGluZXR5cGUgICAgICAgICBpZmV2YWwoY29uc3QgY2hh
ciAqKik7Ci1zdGF0aWMgdm9pZCAgICAgICAgICAgICBpZ25vcmVvZmYodm9pZCk7Ci1zdGF0aWMg
dm9pZCAgICAgICAgICAgICBpZ25vcmVvbih2b2lkKTsKLXN0YXRpYyB2b2lkICAgICAgICAgICAg
IGluZGlyZWN0c3ltKHZvaWQpOwotc3RhdGljIHZvaWQgICAgICAgICAgICAga2V5d29yZGVkaXQo
Y29uc3QgY2hhciAqKTsKLXN0YXRpYyBjb25zdCBjaGFyICAgICAgKm1hdGNoc3ltKGNvbnN0IGNo
YXIgKiwgY29uc3QgY2hhciAqKTsKLXN0YXRpYyB2b2lkICAgICAgICAgICAgIG5lc3Qodm9pZCk7
Ci1zdGF0aWMgTGluZXR5cGUgICAgICAgICBwYXJzZWxpbmUodm9pZCk7Ci1zdGF0aWMgdm9pZCAg
ICAgICAgICAgICBwcm9jZXNzKHZvaWQpOwotc3RhdGljIHZvaWQgICAgICAgICAgICAgcHJvY2Vz
c2lub3V0KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKLXN0YXRpYyBjb25zdCBjaGFyICAg
ICAgKnNraXBhcmdzKGNvbnN0IGNoYXIgKik7Ci1zdGF0aWMgY29uc3QgY2hhciAgICAgICpza2lw
Y29tbWVudChjb25zdCBjaGFyICopOwotc3RhdGljIGNvbnN0IGNoYXIgICAgICAqc2tpcGhhc2go
dm9pZCk7Ci1zdGF0aWMgY29uc3QgY2hhciAgICAgICpza2lwbGluZShjb25zdCBjaGFyICopOwot
c3RhdGljIGNvbnN0IGNoYXIgICAgICAqc2tpcHN5bShjb25zdCBjaGFyICopOwotc3RhdGljIHZv
aWQgICAgICAgICAgICAgc3RhdGUoSWZzdGF0ZSk7Ci1zdGF0aWMgdm9pZCAgICAgICAgICAgICB1
bm5lc3Qodm9pZCk7Ci1zdGF0aWMgdm9pZCAgICAgICAgICAgICB1c2FnZSh2b2lkKTsKLXN0YXRp
YyB2b2lkICAgICAgICAgICAgIHZlcnNpb24odm9pZCk7Ci1zdGF0aWMgY29uc3QgY2hhciAgICAg
ICp4c3RyZHVwKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKLQotI2RlZmluZSBlbmRzeW0o
YykgKCFpc2FsbnVtKCh1bnNpZ25lZCBjaGFyKWMpICYmIGMgIT0gJ18nICYmIGMgIT0gJygnICYm
IGMgIT0gJyknKQotCi0vKgotICogVGhlIG1haW4gcHJvZ3JhbS4KLSAqLwotaW50Ci1tYWluKGlu
dCBhcmdjLCBjaGFyICphcmd2W10pCi17Ci0JaW50IG9wdDsKLQotCXdoaWxlICgob3B0ID0gZ2V0
b3B0KGFyZ2MsIGFyZ3YsICJpOkQ6VTpmOkk6TTpvOng6YkJjZGVoS2tsbW5zU3RWIikpICE9IC0x
KQotCQlzd2l0Y2ggKG9wdCkgewotCQljYXNlICdpJzogLyogdHJlYXQgc3R1ZmYgY29udHJvbGxl
ZCBieSB0aGVzZSBzeW1ib2xzIGFzIHRleHQgKi8KLQkJCS8qCi0JCQkgKiBGb3Igc3RyaWN0IGJh
Y2t3YXJkcy1jb21wYXRpYmlsaXR5IHRoZSBVIG9yIEQKLQkJCSAqIHNob3VsZCBiZSBpbW1lZGlh
dGVseSBhZnRlciB0aGUgLWkgYnV0IGl0IGRvZXNuJ3QKLQkJCSAqIG1hdHRlciBtdWNoIGlmIHdl
IHJlbGF4IHRoYXQgcmVxdWlyZW1lbnQuCi0JCQkgKi8KLQkJCW9wdCA9ICpvcHRhcmcrKzsKLQkJ
CWlmIChvcHQgPT0gJ0QnKQotCQkJCWFkZHN5bTEodHJ1ZSwgdHJ1ZSwgb3B0YXJnKTsKLQkJCWVs
c2UgaWYgKG9wdCA9PSAnVScpCi0JCQkJYWRkc3ltMSh0cnVlLCBmYWxzZSwgb3B0YXJnKTsKLQkJ
CWVsc2UKLQkJCQl1c2FnZSgpOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ0QnOiAvKiBkZWZpbmUgYSBz
eW1ib2wgKi8KLQkJCWFkZHN5bTEoZmFsc2UsIHRydWUsIG9wdGFyZyk7Ci0JCQlicmVhazsKLQkJ
Y2FzZSAnVSc6IC8qIHVuZGVmIGEgc3ltYm9sICovCi0JCQlhZGRzeW0xKGZhbHNlLCBmYWxzZSwg
b3B0YXJnKTsKLQkJCWJyZWFrOwotCQljYXNlICdJJzogLyogbm8tb3AgZm9yIGNvbXBhdGliaWxp
dHkgd2l0aCBjcHAgKi8KLQkJCWJyZWFrOwotCQljYXNlICdiJzogLyogYmxhbmsgZGVsZXRlZCBs
aW5lcyBpbnN0ZWFkIG9mIG9taXR0aW5nIHRoZW0gKi8KLQkJY2FzZSAnbCc6IC8qIGJhY2t3YXJk
cyBjb21wYXRpYmlsaXR5ICovCi0JCQlsbmJsYW5rID0gdHJ1ZTsKLQkJCWJyZWFrOwotCQljYXNl
ICdCJzogLyogY29tcHJlc3MgYmxhbmsgbGluZXMgYXJvdW5kIHJlbW92ZWQgc2VjdGlvbiAqLwot
CQkJY29tcGJsYW5rID0gdHJ1ZTsKLQkJCWJyZWFrOwotCQljYXNlICdjJzogLyogdHJlYXQgLUQg
YXMgLVUgYW5kIHZpY2UgdmVyc2EgKi8KLQkJCWNvbXBsZW1lbnQgPSB0cnVlOwotCQkJYnJlYWs7
Ci0JCWNhc2UgJ2QnOgotCQkJZGVidWdnaW5nID0gdHJ1ZTsKLQkJCWJyZWFrOwotCQljYXNlICdl
JzogLyogZmV3ZXIgZXJyb3JzIGZyb20gZG9kZ3kgbGluZXMgKi8KLQkJCWlvY2Njb2sgPSB0cnVl
OwotCQkJYnJlYWs7Ci0JCWNhc2UgJ2YnOiAvKiBkZWZpbml0aW9ucyBmaWxlICovCi0JCQlkZWZ1
bmRlZmlsZShvcHRhcmcpOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ2gnOgotCQkJaGVscCgpOwotCQkJ
YnJlYWs7Ci0JCWNhc2UgJ0snOiAvKiBrZWVwIGFtYmlndW91cyAjaWZzICovCi0JCQlzdHJpY3Rs
b2dpYyA9IHRydWU7Ci0JCQlicmVhazsKLQkJY2FzZSAnayc6IC8qIHByb2Nlc3MgY29uc3RhbnQg
I2lmcyAqLwotCQkJa2lsbGNvbnN0cyA9IHRydWU7Ci0JCQlicmVhazsKLQkJY2FzZSAnbSc6IC8q
IG1vZGlmeSBpbiBwbGFjZSAqLwotCQkJaW5wbGFjZSA9IHRydWU7Ci0JCQlicmVhazsKLQkJY2Fz
ZSAnTSc6IC8qIG1vZGlmeSBpbiBwbGFjZSBhbmQga2VlcCBiYWNrdXAgKi8KLQkJCWlucGxhY2Ug
PSB0cnVlOwotCQkJaWYgKHN0cmxlbihvcHRhcmcpID4gMCkKLQkJCQliYWNrZXh0ID0gb3B0YXJn
OwotCQkJYnJlYWs7Ci0JCWNhc2UgJ24nOiAvKiBhZGQgI2xpbmUgZGlyZWN0aXZlIGFmdGVyIGRl
bGV0ZWQgbGluZXMgKi8KLQkJCWxubnVtID0gdHJ1ZTsKLQkJCWJyZWFrOwotCQljYXNlICdvJzog
Lyogb3V0cHV0IHRvIGEgZmlsZSAqLwotCQkJb2ZpbGVuYW1lID0gb3B0YXJnOwotCQkJYnJlYWs7
Ci0JCWNhc2UgJ3MnOiAvKiBvbmx5IG91dHB1dCBsaXN0IG9mIHN5bWJvbHMgdGhhdCBjb250cm9s
ICNpZnMgKi8KLQkJCXN5bWxpc3QgPSB0cnVlOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ1MnOiAvKiBs
aXN0IHN5bWJvbHMgd2l0aCB0aGVpciBuZXN0aW5nIGRlcHRoICovCi0JCQlzeW1saXN0ID0gc3lt
ZGVwdGggPSB0cnVlOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ3QnOiAvKiBkb24ndCBwYXJzZSBDIGNv
bW1lbnRzICovCi0JCQl0ZXh0ID0gdHJ1ZTsKLQkJCWJyZWFrOwotCQljYXNlICdWJzoKLQkJCXZl
cnNpb24oKTsKLQkJCWJyZWFrOwotCQljYXNlICd4JzoKLQkJCWV4aXRtb2RlID0gYXRvaShvcHRh
cmcpOwotCQkJaWYoZXhpdG1vZGUgPCAwIHx8IGV4aXRtb2RlID4gMikKLQkJCQl1c2FnZSgpOwot
CQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQl1c2FnZSgpOwotCQl9Ci0JYXJnYyAtPSBvcHRpbmQ7
Ci0JYXJndiArPSBvcHRpbmQ7Ci0JaWYgKGNvbXBibGFuayAmJiBsbmJsYW5rKQotCQllcnJ4KDIs
ICItQiBhbmQgLWIgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIpOwotCWlmIChzeW1saXN0ICYmIChv
ZmlsZW5hbWUgIT0gTlVMTCB8fCBpbnBsYWNlIHx8IGFyZ2MgPiAxKSkKLQkJZXJyeCgyLCAiLXMg
b25seSB3b3JrcyB3aXRoIG9uZSBpbnB1dCBmaWxlIik7Ci0JaWYgKGFyZ2MgPiAxICYmIG9maWxl
bmFtZSAhPSBOVUxMKQotCQllcnJ4KDIsICItbyBjYW5ub3QgYmUgdXNlZCB3aXRoIG11bHRpcGxl
IGlucHV0IGZpbGVzIik7Ci0JaWYgKGFyZ2MgPiAxICYmICFpbnBsYWNlKQotCQllcnJ4KDIsICJt
dWx0aXBsZSBpbnB1dCBmaWxlcyByZXF1aXJlIC1tIG9yIC1NIik7Ci0JaWYgKGFyZ2MgPT0gMCAm
JiBpbnBsYWNlKQotCQllcnJ4KDIsICItbSByZXF1aXJlcyBhbiBpbnB1dCBmaWxlIik7Ci0JaWYg
KGFyZ2MgPT0gMCkKLQkJYXJnYyA9IDE7Ci0JaWYgKGFyZ2MgPT0gMSAmJiAhaW5wbGFjZSAmJiBv
ZmlsZW5hbWUgPT0gTlVMTCkKLQkJb2ZpbGVuYW1lID0gIi0iOwotCWluZGlyZWN0c3ltKCk7Ci0K
LQlhdGV4aXQoY2xlYW50ZW1wKTsKLQlpZiAob2ZpbGVuYW1lICE9IE5VTEwpCi0JCXByb2Nlc3Np
bm91dCgqYXJndiwgb2ZpbGVuYW1lKTsKLQllbHNlIHdoaWxlIChhcmdjLS0gPiAwKSB7Ci0JCXBy
b2Nlc3Npbm91dCgqYXJndiwgKmFyZ3YpOwotCQlhcmd2Kys7Ci0JfQotCXN3aXRjaChleGl0bW9k
ZSkgewotCWNhc2UoMCk6IGV4aXQoZXhpdHN0YXQpOwotCWNhc2UoMSk6IGV4aXQoIWV4aXRzdGF0
KTsKLQljYXNlKDIpOiBleGl0KDApOwotCWRlZmF1bHQ6IGFib3J0KCk7IC8qIGJ1ZyAqLwotCX0K
LX0KLQotLyoKLSAqIEZpbGUgbG9naXN0aWNzLgotICovCi1zdGF0aWMgdm9pZAotcHJvY2Vzc2lu
b3V0KGNvbnN0IGNoYXIgKmlmbiwgY29uc3QgY2hhciAqb2ZuKQotewotCXN0cnVjdCBzdGF0IHN0
OwotCi0JaWYgKGlmbiA9PSBOVUxMIHx8IHN0cmNtcChpZm4sICItIikgPT0gMCkgewotCQlmaWxl
bmFtZSA9ICJbc3RkaW5dIjsKLQkJbGluZWZpbGUgPSBOVUxMOwotCQlpbnB1dCA9IGZiaW5tb2Rl
KHN0ZGluKTsKLQl9IGVsc2UgewotCQlmaWxlbmFtZSA9IGlmbjsKLQkJbGluZWZpbGUgPSBpZm47
Ci0JCWlucHV0ID0gZm9wZW4oaWZuLCAicmIiKTsKLQkJaWYgKGlucHV0ID09IE5VTEwpCi0JCQll
cnIoMiwgImNhbid0IG9wZW4gJXMiLCBpZm4pOwotCX0KLQlpZiAoc3RyY21wKG9mbiwgIi0iKSA9
PSAwKSB7Ci0JCW91dHB1dCA9IGZiaW5tb2RlKHN0ZG91dCk7Ci0JCXByb2Nlc3MoKTsKLQkJcmV0
dXJuOwotCX0KLQlpZiAoc3RhdChvZm4sICZzdCkgPCAwKSB7Ci0JCW91dHB1dCA9IGZvcGVuKG9m
biwgIndiIik7Ci0JCWlmIChvdXRwdXQgPT0gTlVMTCkKLQkJCWVycigyLCAiY2FuJ3QgY3JlYXRl
ICVzIiwgb2ZuKTsKLQkJcHJvY2VzcygpOwotCQlyZXR1cm47Ci0JfQotCi0JdGVtcG5hbWUgPSBh
c3RyY2F0KG9mbiwgIi5YWFhYWFgiKTsKLQlvdXRwdXQgPSBta3RlbXBtb2RlKHRlbXBuYW1lLCBz
dC5zdF9tb2RlKTsKLQlpZiAob3V0cHV0ID09IE5VTEwpCi0JCWVycigyLCAiY2FuJ3QgY3JlYXRl
ICVzIiwgdGVtcG5hbWUpOwotCi0JcHJvY2VzcygpOwotCi0JaWYgKGJhY2tleHQgIT0gTlVMTCkg
ewotCQljaGFyICpiYWNrbmFtZSA9IGFzdHJjYXQob2ZuLCBiYWNrZXh0KTsKLQkJaWYgKHJlbmFt
ZShvZm4sIGJhY2tuYW1lKSA8IDApCi0JCQllcnIoMiwgImNhbid0IHJlbmFtZSBcIiVzXCIgdG8g
XCIlc1wiIiwgb2ZuLCBiYWNrbmFtZSk7Ci0JCWZyZWUoYmFja25hbWUpOwotCX0KLQkvKiBsZWF2
ZSBmaWxlIHVubW9kaWZpZWQgaWYgdW5pZmRlZiBtYWRlIG5vIGNoYW5nZXMgKi8KLQlpZiAoIWFs
dGVyZWQgJiYgYmFja2V4dCA9PSBOVUxMKSB7Ci0JCWlmIChyZW1vdmUodGVtcG5hbWUpIDwgMCkK
LQkJCXdhcm4oImNhbid0IHJlbW92ZSBcIiVzXCIiLCB0ZW1wbmFtZSk7Ci0JfSBlbHNlIGlmIChy
ZXBsYWNlKHRlbXBuYW1lLCBvZm4pIDwgMCkKLQkJZXJyKDIsICJjYW4ndCByZW5hbWUgXCIlc1wi
IHRvIFwiJXNcIiIsIHRlbXBuYW1lLCBvZm4pOwotCWZyZWUodGVtcG5hbWUpOwotCXRlbXBuYW1l
ID0gTlVMTDsKLX0KLQotLyoKLSAqIEZvciBjbGVhbmluZyB1cCBpZiB0aGVyZSBpcyBhbiBlcnJv
ci4KLSAqLwotc3RhdGljIHZvaWQKLWNsZWFudGVtcCh2b2lkKQotewotCWlmICh0ZW1wbmFtZSAh
PSBOVUxMKQotCQlyZW1vdmUodGVtcG5hbWUpOwotfQotCi0vKgotICogU2VsZi1pZGVudGlmaWNh
dGlvbiBmdW5jdGlvbnMuCi0gKi8KLQotc3RhdGljIHZvaWQKLXZlcnNpb24odm9pZCkKLXsKLQlj
b25zdCBjaGFyICpjID0gY29weXJpZ2h0OwotCWZvciAoOzspIHsKLQkJd2hpbGUgKCorK2MgIT0g
JyQnKQotCQkJaWYgKCpjID09ICdcMCcpCi0JCQkJZXhpdCgwKTsKLQkJd2hpbGUgKCorK2MgIT0g
JyQnKQotCQkJcHV0YygqYywgc3RkZXJyKTsKLQkJcHV0YygnXG4nLCBzdGRlcnIpOwotCX0KLX0K
LQotc3RhdGljIHZvaWQKLXN5bm9wc2lzKEZJTEUgKmZwKQotewotCWZwcmludGYoZnAsCi0JICAg
ICJ1c2FnZToJdW5pZmRlZiBbLWJCY2RlaEtrbW5zU3RWXSBbLXh7MDEyfV0gWy1NZXh0XSBbLW9w
YXRoXSBcXFxuIgotCSAgICAiCQlbLVtpXURzeW1bPXZhbF1dIFstW2ldVXN5bV0gWy1mcGF0aF0g
Li4uIFtmaWxlXSAuLi5cbiIpOwotfQotCi1zdGF0aWMgdm9pZAotdXNhZ2Uodm9pZCkKLXsKLQlz
eW5vcHNpcyhzdGRlcnIpOwotCWV4aXQoMik7Ci19Ci0KLXN0YXRpYyB2b2lkCi1oZWxwKHZvaWQp
Ci17Ci0Jc3lub3BzaXMoc3Rkb3V0KTsKLQlwcmludGYoCi0JICAgICIJLURzeW09dmFsICBkZWZp
bmUgcHJlcHJvY2Vzc29yIHN5bWJvbCB3aXRoIGdpdmVuIHZhbHVlXG4iCi0JICAgICIJLURzeW0g
ICAgICBkZWZpbmUgcHJlcHJvY2Vzc29yIHN5bWJvbCB3aXRoIHZhbHVlIDFcbiIKLQkgICAgIgkt
VXN5bQkgICBwcmVwcm9jZXNzb3Igc3ltYm9sIGlzIHVuZGVmaW5lZFxuIgotCSAgICAiCS1pRHN5
bT12YWwgXFwgIGlnbm9yZSBDIHN0cmluZ3MgYW5kIGNvbW1lbnRzXG4iCi0JICAgICIJLWlEc3lt
ICAgICAgKSBpbiBzZWN0aW9ucyBjb250cm9sbGVkIGJ5IHRoZXNlXG4iCi0JICAgICIJLWlVc3lt
CSAgIC8gIHByZXByb2Nlc3NvciBzeW1ib2xzXG4iCi0JICAgICIJLWZwYXRoCWZpbGUgY29udGFp
bmluZyAjZGVmaW5lIGFuZCAjdW5kZWYgZGlyZWN0aXZlc1xuIgotCSAgICAiCS1iCWJsYW5rIGxp
bmVzIGluc3RlYWQgb2YgZGVsZXRpbmcgdGhlbVxuIgotCSAgICAiCS1CCWNvbXByZXNzIGJsYW5r
IGxpbmVzIGFyb3VuZCBkZWxldGVkIHNlY3Rpb25cbiIKLQkgICAgIgktYwljb21wbGVtZW50IChp
bnZlcnQpIGtlZXAgdnMuIGRlbGV0ZVxuIgotCSAgICAiCS1kCWRlYnVnZ2luZyBtb2RlXG4iCi0J
ICAgICIJLWUJaWdub3JlIG11bHRpbGluZSBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlc1xuIgotCSAg
ICAiCS1oCXByaW50IGhlbHBcbiIKLQkgICAgIgktSXBhdGgJZXh0cmEgaW5jbHVkZSBmaWxlIHBh
dGggKGlnbm9yZWQpXG4iCi0JICAgICIJLUsJZGlzYWJsZSAmJiBhbmQgfHwgc2hvcnQtY2lyY3Vp
dGluZ1xuIgotCSAgICAiCS1rCXByb2Nlc3MgY29uc3RhbnQgI2lmIGV4cHJlc3Npb25zXG4iCi0J
ICAgICIJLU1leHQJbW9kaWZ5IGluIHBsYWNlIGFuZCBrZWVwIGJhY2t1cHNcbiIKLQkgICAgIgkt
bQltb2RpZnkgaW5wdXQgZmlsZXMgaW4gcGxhY2VcbiIKLQkgICAgIgktbglhZGQgI2xpbmUgZGly
ZWN0aXZlcyB0byBvdXRwdXRcbiIKLQkgICAgIgktb3BhdGgJb3V0cHV0IGZpbGUgbmFtZVxuIgot
CSAgICAiCS1TCWxpc3QgI2lmIGNvbnRyb2wgc3ltYm9scyB3aXRoIG5lc3RpbmdcbiIKLQkgICAg
IgktcwlsaXN0ICNpZiBjb250cm9sIHN5bWJvbHNcbiIKLQkgICAgIgktdAlpZ25vcmUgQyBzdHJp
bmdzIGFuZCBjb21tZW50c1xuIgotCSAgICAiCS1WCXByaW50IHZlcnNpb25cbiIKLQkgICAgIgkt
eHswMTJ9CWV4aXQgc3RhdHVzIG1vZGVcbiIKLQkpOwotCWV4aXQoMCk7Ci19Ci0KLS8qCi0gKiBB
IHN0YXRlIHRyYW5zaXRpb24gZnVuY3Rpb24gYWx0ZXJzIHRoZSBnbG9iYWwgI2lmIHByb2Nlc3Np
bmcgc3RhdGUKLSAqIGluIGEgcGFydGljdWxhciB3YXkuIFRoZSB0YWJsZSBiZWxvdyBpcyBpbmRl
eGVkIGJ5IHRoZSBjdXJyZW50Ci0gKiBwcm9jZXNzaW5nIHN0YXRlIGFuZCB0aGUgdHlwZSBvZiB0
aGUgY3VycmVudCBsaW5lLgotICoKLSAqIE5lc3RpbmcgaXMgaGFuZGxlZCBieSBrZWVwaW5nIGEg
c3RhY2sgb2Ygc3RhdGVzOyBzb21lIHRyYW5zaXRpb24KLSAqIGZ1bmN0aW9ucyBpbmNyZWFzZSBv
ciBkZWNyZWFzZSB0aGUgZGVwdGguIFRoZXkgYWxzbyBtYWludGFpbiB0aGUKLSAqIGlnbm9yZSBz
dGF0ZSBvbiBhIHN0YWNrLiBJbiBzb21lIGNvbXBsaWNhdGVkIGNhc2VzIHRoZXkgaGF2ZSB0bwot
ICogYWx0ZXIgdGhlIHByZXByb2Nlc3NvciBkaXJlY3RpdmUsIGFzIGZvbGxvd3MuCi0gKgotICog
V2hlbiB3ZSBoYXZlIHByb2Nlc3NlZCBhIGdyb3VwIHRoYXQgc3RhcnRzIG9mZiB3aXRoIGEga25v
d24tZmFsc2UKLSAqICNpZi8jZWxpZiBzZXF1ZW5jZSAod2hpY2ggaGFzIHRoZXJlZm9yZSBiZWVu
IGRlbGV0ZWQpIGZvbGxvd2VkIGJ5IGEKLSAqICNlbGlmIHRoYXQgd2UgZG9uJ3QgdW5kZXJzdGFu
ZCBhbmQgdGhlcmVmb3JlIG11c3Qga2VlcCwgd2UgZWRpdCB0aGUKLSAqIGxhdHRlciBpbnRvIGEg
I2lmIHRvIGtlZXAgdGhlIG5lc3RpbmcgY29ycmVjdC4gV2UgdXNlIG1lbWNweSgpIHRvCi0gKiBv
dmVyd3JpdGUgdGhlIDQgYnl0ZSB0b2tlbiAiZWxpZiIgd2l0aCAiaWYgICIgd2l0aG91dCBhICdc
MCcgYnl0ZS4KLSAqCi0gKiBXaGVuIHdlIGZpbmQgYSB0cnVlICNlbGlmIGluIGEgZ3JvdXAsIHRo
ZSBmb2xsb3dpbmcgYmxvY2sgd2lsbAotICogYWx3YXlzIGJlIGtlcHQgYW5kIHRoZSByZXN0IG9m
IHRoZSBzZXF1ZW5jZSBhZnRlciB0aGUgbmV4dCAjZWxpZiBvcgotICogI2Vsc2Ugd2lsbCBiZSBk
aXNjYXJkZWQuIFdlIGVkaXQgdGhlICNlbGlmIGludG8gYSAjZWxzZSBhbmQgdGhlCi0gKiBmb2xs
b3dpbmcgZGlyZWN0aXZlIHRvICNlbmRpZiBzaW5jZSB0aGlzIGhhcyB0aGUgZGVzaXJlZCBiZWhh
dmlvdXIuCi0gKgotICogIkRvZGd5IiBkaXJlY3RpdmVzIGFyZSBzcGxpdCBhY3Jvc3MgbXVsdGlw
bGUgbGluZXMsIHRoZSBtb3N0IGNvbW1vbgotICogZXhhbXBsZSBiZWluZyBhIG11bHRpLWxpbmUg
Y29tbWVudCBoYW5naW5nIG9mZiB0aGUgcmlnaHQgb2YgdGhlCi0gKiBkaXJlY3RpdmUuIFdlIGNh
biBoYW5kbGUgdGhlbSBjb3JyZWN0bHkgb25seSBpZiB0aGVyZSBpcyBubyBjaGFuZ2UKLSAqIGZy
b20gcHJpbnRpbmcgdG8gZHJvcHBpbmcgKG9yIHZpY2UgdmVyc2EpIGNhdXNlZCBieSB0aGF0IGRp
cmVjdGl2ZS4KLSAqIElmIHRoZSBkaXJlY3RpdmUgaXMgdGhlIGZpcnN0IG9mIGEgZ3JvdXAgd2Ug
aGF2ZSBhIGNob2ljZSBiZXR3ZWVuCi0gKiBmYWlsaW5nIHdpdGggYW4gZXJyb3IsIG9yIHBhc3Np
bmcgaXQgdGhyb3VnaCB1bmNoYW5nZWQgaW5zdGVhZCBvZgotICogZXZhbHVhdGluZyBpdC4gVGhl
IGxhdHRlciBpcyBub3QgdGhlIGRlZmF1bHQgdG8gYXZvaWQgcXVlc3Rpb25zIGZyb20KLSAqIHVz
ZXJzIGFib3V0IHVuaWZkZWYgdW5leHBlY3RlZGx5IGxlYXZpbmcgYmVoaW5kIHByZXByb2Nlc3Nv
ciBkaXJlY3RpdmVzLgotICovCi10eXBlZGVmIHZvaWQgc3RhdGVfZm4odm9pZCk7Ci0KLS8qIHJl
cG9ydCBhbiBlcnJvciAqLwotc3RhdGljIHZvaWQgRWVsaWYgKHZvaWQpIHsgZXJyb3IoIkluYXBw
cm9wcmlhdGUgI2VsaWYiKTsgfQotc3RhdGljIHZvaWQgRWVsc2UgKHZvaWQpIHsgZXJyb3IoIklu
YXBwcm9wcmlhdGUgI2Vsc2UiKTsgfQotc3RhdGljIHZvaWQgRWVuZGlmKHZvaWQpIHsgZXJyb3Io
IkluYXBwcm9wcmlhdGUgI2VuZGlmIik7IH0KLXN0YXRpYyB2b2lkIEVlb2YgICh2b2lkKSB7IGVy
cm9yKCJQcmVtYXR1cmUgRU9GIik7IH0KLXN0YXRpYyB2b2lkIEVpb2NjYyh2b2lkKSB7IGVycm9y
KCJPYmZ1c2NhdGVkIHByZXByb2Nlc3NvciBjb250cm9sIGxpbmUiKTsgfQotLyogcGxhaW4gbGlu
ZSBoYW5kbGluZyAqLwotc3RhdGljIHZvaWQgcHJpbnQgKHZvaWQpIHsgZmx1c2hsaW5lKHRydWUp
OyB9Ci1zdGF0aWMgdm9pZCBkcm9wICAodm9pZCkgeyBmbHVzaGxpbmUoZmFsc2UpOyB9Ci0vKiBv
dXRwdXQgbGFja3MgZ3JvdXAncyBzdGFydCBsaW5lICovCi1zdGF0aWMgdm9pZCBTdHJ1ZSAodm9p
ZCkgeyBkcm9wKCk7ICBpZ25vcmVvZmYoKTsgc3RhdGUoSVNfVFJVRV9QUkVGSVgpOyB9Ci1zdGF0
aWMgdm9pZCBTZmFsc2Uodm9pZCkgeyBkcm9wKCk7ICBpZ25vcmVvZmYoKTsgc3RhdGUoSVNfRkFM
U0VfUFJFRklYKTsgfQotc3RhdGljIHZvaWQgU2Vsc2UgKHZvaWQpIHsgZHJvcCgpOyAgICAgICAg
ICAgICAgIHN0YXRlKElTX1RSVUVfRUxTRSk7IH0KLS8qIHByaW50L3Bhc3MgdGhpcyBibG9jayAq
Lwotc3RhdGljIHZvaWQgUGVsaWYgKHZvaWQpIHsgcHJpbnQoKTsgaWdub3Jlb2ZmKCk7IHN0YXRl
KElTX1BBU1NfTUlERExFKTsgfQotc3RhdGljIHZvaWQgUGVsc2UgKHZvaWQpIHsgcHJpbnQoKTsg
ICAgICAgICAgICAgIHN0YXRlKElTX1BBU1NfRUxTRSk7IH0KLXN0YXRpYyB2b2lkIFBlbmRpZih2
b2lkKSB7IHByaW50KCk7IHVubmVzdCgpOyB9Ci0vKiBkaXNjYXJkIHRoaXMgYmxvY2sgKi8KLXN0
YXRpYyB2b2lkIERmYWxzZSh2b2lkKSB7IGRyb3AoKTsgIGlnbm9yZW9mZigpOyBzdGF0ZShJU19G
QUxTRV9UUkFJTEVSKTsgfQotc3RhdGljIHZvaWQgRGVsaWYgKHZvaWQpIHsgZHJvcCgpOyAgaWdu
b3Jlb2ZmKCk7IHN0YXRlKElTX0ZBTFNFX01JRERMRSk7IH0KLXN0YXRpYyB2b2lkIERlbHNlICh2
b2lkKSB7IGRyb3AoKTsgICAgICAgICAgICAgICBzdGF0ZShJU19GQUxTRV9FTFNFKTsgfQotc3Rh
dGljIHZvaWQgRGVuZGlmKHZvaWQpIHsgZHJvcCgpOyAgdW5uZXN0KCk7IH0KLS8qIGZpcnN0IGxp
bmUgb2YgZ3JvdXAgKi8KLXN0YXRpYyB2b2lkIEZkcm9wICh2b2lkKSB7IG5lc3QoKTsgIERmYWxz
ZSgpOyB9Ci1zdGF0aWMgdm9pZCBGcGFzcyAodm9pZCkgeyBuZXN0KCk7ICBQZWxpZigpOyB9Ci1z
dGF0aWMgdm9pZCBGdHJ1ZSAodm9pZCkgeyBuZXN0KCk7ICBTdHJ1ZSgpOyB9Ci1zdGF0aWMgdm9p
ZCBGZmFsc2Uodm9pZCkgeyBuZXN0KCk7ICBTZmFsc2UoKTsgfQotLyogdmFyaWFibGUgcGVkYW50
cnkgZm9yIG9iZnVzY2F0ZWQgbGluZXMgKi8KLXN0YXRpYyB2b2lkIE9pZmZ5ICh2b2lkKSB7IGlm
ICghaW9jY2NvaykgRWlvY2NjKCk7IEZwYXNzKCk7IGlnbm9yZW9uKCk7IH0KLXN0YXRpYyB2b2lk
IE9pZiAgICh2b2lkKSB7IGlmICghaW9jY2NvaykgRWlvY2NjKCk7IEZwYXNzKCk7IH0KLXN0YXRp
YyB2b2lkIE9lbGlmICh2b2lkKSB7IGlmICghaW9jY2NvaykgRWlvY2NjKCk7IFBlbGlmKCk7IH0K
LS8qIGlnbm9yZSBjb21tZW50cyBpbiB0aGlzIGJsb2NrICovCi1zdGF0aWMgdm9pZCBJZHJvcCAo
dm9pZCkgeyBGZHJvcCgpOyAgaWdub3Jlb24oKTsgfQotc3RhdGljIHZvaWQgSXRydWUgKHZvaWQp
IHsgRnRydWUoKTsgIGlnbm9yZW9uKCk7IH0KLXN0YXRpYyB2b2lkIElmYWxzZSh2b2lkKSB7IEZm
YWxzZSgpOyBpZ25vcmVvbigpOyB9Ci0vKiBtb2RpZnkgdGhpcyBsaW5lICovCi1zdGF0aWMgdm9p
ZCBNcGFzcyAodm9pZCkgeyBtZW1jcHkoa2V5d29yZCwgImlmICAiLCA0KTsgUGVsaWYoKTsgfQot
c3RhdGljIHZvaWQgTXRydWUgKHZvaWQpIHsga2V5d29yZGVkaXQoImVsc2UiKTsgIHN0YXRlKElT
X1RSVUVfTUlERExFKTsgfQotc3RhdGljIHZvaWQgTWVsaWYgKHZvaWQpIHsga2V5d29yZGVkaXQo
ImVuZGlmIik7IHN0YXRlKElTX0ZBTFNFX1RSQUlMRVIpOyB9Ci1zdGF0aWMgdm9pZCBNZWxzZSAo
dm9pZCkgeyBrZXl3b3JkZWRpdCgiZW5kaWYiKTsgc3RhdGUoSVNfRkFMU0VfRUxTRSk7IH0KLQot
c3RhdGljIHN0YXRlX2ZuICogY29uc3QgdHJhbnNfdGFibGVbSVNfQ09VTlRdW0xUX0NPVU5UXSA9
IHsKLS8qIElTX09VVFNJREUgKi8KLXsgSXRydWUsIElmYWxzZSxGcGFzcywgRnRydWUsIEZmYWxz
ZSxFZWxpZiwgRWVsaWYsIEVlbGlmLCBFZWxzZSwgRWVuZGlmLAotICBPaWZmeSwgT2lmZnksIEZw
YXNzLCBPaWYsICAgT2lmLCAgIEVlbGlmLCBFZWxpZiwgRWVsaWYsIEVlbHNlLCBFZW5kaWYsCi0g
IHByaW50LCBkb25lLCAgYWJvcnQgfSwKLS8qIElTX0ZBTFNFX1BSRUZJWCAqLwoteyBJZHJvcCwg
SWRyb3AsIEZkcm9wLCBGZHJvcCwgRmRyb3AsIE1wYXNzLCBTdHJ1ZSwgU2ZhbHNlLFNlbHNlLCBE
ZW5kaWYsCi0gIElkcm9wLCBJZHJvcCwgRmRyb3AsIEZkcm9wLCBGZHJvcCwgTXBhc3MsIEVpb2Nj
YyxFaW9jY2MsRWlvY2NjLEVpb2NjYywKLSAgZHJvcCwgIEVlb2YsICBhYm9ydCB9LAotLyogSVNf
VFJVRV9QUkVGSVggKi8KLXsgSXRydWUsIElmYWxzZSxGcGFzcywgRnRydWUsIEZmYWxzZSxEZmFs
c2UsRGZhbHNlLERmYWxzZSxEZWxzZSwgRGVuZGlmLAotICBPaWZmeSwgT2lmZnksIEZwYXNzLCBP
aWYsICAgT2lmLCAgIEVpb2NjYyxFaW9jY2MsRWlvY2NjLEVpb2NjYyxFaW9jY2MsCi0gIHByaW50
LCBFZW9mLCAgYWJvcnQgfSwKLS8qIElTX1BBU1NfTUlERExFICovCi17IEl0cnVlLCBJZmFsc2Us
RnBhc3MsIEZ0cnVlLCBGZmFsc2UsUGVsaWYsIE10cnVlLCBEZWxpZiwgUGVsc2UsIFBlbmRpZiwK
LSAgT2lmZnksIE9pZmZ5LCBGcGFzcywgT2lmLCAgIE9pZiwgICBQZWxpZiwgT2VsaWYsIE9lbGlm
LCBQZWxzZSwgUGVuZGlmLAotICBwcmludCwgRWVvZiwgIGFib3J0IH0sCi0vKiBJU19GQUxTRV9N
SURETEUgKi8KLXsgSWRyb3AsIElkcm9wLCBGZHJvcCwgRmRyb3AsIEZkcm9wLCBQZWxpZiwgTXRy
dWUsIERlbGlmLCBQZWxzZSwgUGVuZGlmLAotICBJZHJvcCwgSWRyb3AsIEZkcm9wLCBGZHJvcCwg
RmRyb3AsIEVpb2NjYyxFaW9jY2MsRWlvY2NjLEVpb2NjYyxFaW9jY2MsCi0gIGRyb3AsICBFZW9m
LCAgYWJvcnQgfSwKLS8qIElTX1RSVUVfTUlERExFICovCi17IEl0cnVlLCBJZmFsc2UsRnBhc3Ms
IEZ0cnVlLCBGZmFsc2UsTWVsaWYsIE1lbGlmLCBNZWxpZiwgTWVsc2UsIFBlbmRpZiwKLSAgT2lm
ZnksIE9pZmZ5LCBGcGFzcywgT2lmLCAgIE9pZiwgICBFaW9jY2MsRWlvY2NjLEVpb2NjYyxFaW9j
Y2MsUGVuZGlmLAotICBwcmludCwgRWVvZiwgIGFib3J0IH0sCi0vKiBJU19QQVNTX0VMU0UgKi8K
LXsgSXRydWUsIElmYWxzZSxGcGFzcywgRnRydWUsIEZmYWxzZSxFZWxpZiwgRWVsaWYsIEVlbGlm
LCBFZWxzZSwgUGVuZGlmLAotICBPaWZmeSwgT2lmZnksIEZwYXNzLCBPaWYsICAgT2lmLCAgIEVl
bGlmLCBFZWxpZiwgRWVsaWYsIEVlbHNlLCBQZW5kaWYsCi0gIHByaW50LCBFZW9mLCAgYWJvcnQg
fSwKLS8qIElTX0ZBTFNFX0VMU0UgKi8KLXsgSWRyb3AsIElkcm9wLCBGZHJvcCwgRmRyb3AsIEZk
cm9wLCBFZWxpZiwgRWVsaWYsIEVlbGlmLCBFZWxzZSwgRGVuZGlmLAotICBJZHJvcCwgSWRyb3As
IEZkcm9wLCBGZHJvcCwgRmRyb3AsIEVlbGlmLCBFZWxpZiwgRWVsaWYsIEVlbHNlLCBFaW9jY2Ms
Ci0gIGRyb3AsICBFZW9mLCAgYWJvcnQgfSwKLS8qIElTX1RSVUVfRUxTRSAqLwoteyBJdHJ1ZSwg
SWZhbHNlLEZwYXNzLCBGdHJ1ZSwgRmZhbHNlLEVlbGlmLCBFZWxpZiwgRWVsaWYsIEVlbHNlLCBE
ZW5kaWYsCi0gIE9pZmZ5LCBPaWZmeSwgRnBhc3MsIE9pZiwgICBPaWYsICAgRWVsaWYsIEVlbGlm
LCBFZWxpZiwgRWVsc2UsIEVpb2NjYywKLSAgcHJpbnQsIEVlb2YsICBhYm9ydCB9LAotLyogSVNf
RkFMU0VfVFJBSUxFUiAqLwoteyBJZHJvcCwgSWRyb3AsIEZkcm9wLCBGZHJvcCwgRmRyb3AsIERm
YWxzZSxEZmFsc2UsRGZhbHNlLERlbHNlLCBEZW5kaWYsCi0gIElkcm9wLCBJZHJvcCwgRmRyb3As
IEZkcm9wLCBGZHJvcCwgRGZhbHNlLERmYWxzZSxEZmFsc2UsRGVsc2UsIEVpb2NjYywKLSAgZHJv
cCwgIEVlb2YsICBhYm9ydCB9Ci0vKlRSVUVJICBGQUxTRUkgSUYgICAgIFRSVUUgICBGQUxTRSAg
RUxJRiAgIEVMVFJVRSBFTEZBTFNFIEVMU0UgIEVORElGCi0gIFRSVUVJICBGQUxTRUkgSUYgICAg
IFRSVUUgICBGQUxTRSAgRUxJRiAgIEVMVFJVRSBFTEZBTFNFIEVMU0UgIEVORElGIChET0RHWSkK
LSAgUExBSU4gIEVPRiAgICBFUlJPUiAqLwotfTsKLQotLyoKLSAqIFN0YXRlIG1hY2hpbmUgdXRp
bGl0eSBmdW5jdGlvbnMKLSAqLwotc3RhdGljIHZvaWQKLWlnbm9yZW9mZih2b2lkKQotewotCWlm
IChkZXB0aCA9PSAwKQotCQlhYm9ydCgpOyAvKiBidWcgKi8KLQlpZ25vcmluZ1tkZXB0aF0gPSBp
Z25vcmluZ1tkZXB0aC0xXTsKLX0KLXN0YXRpYyB2b2lkCi1pZ25vcmVvbih2b2lkKQotewotCWln
bm9yaW5nW2RlcHRoXSA9IHRydWU7Ci19Ci1zdGF0aWMgdm9pZAota2V5d29yZGVkaXQoY29uc3Qg
Y2hhciAqcmVwbGFjZW1lbnQpCi17Ci0Jc25wcmludGYoa2V5d29yZCwgdGxpbmUgKyBzaXplb2Yo
dGxpbmUpIC0ga2V5d29yZCwKLQkgICAgIiVzJXMiLCByZXBsYWNlbWVudCwgbmV3bGluZSk7Ci0J
YWx0ZXJlZCA9IHRydWU7Ci0JcHJpbnQoKTsKLX0KLXN0YXRpYyB2b2lkCi1uZXN0KHZvaWQpCi17
Ci0JaWYgKGRlcHRoID4gTUFYREVQVEgtMSkKLQkJYWJvcnQoKTsgLyogYnVnICovCi0JaWYgKGRl
cHRoID09IE1BWERFUFRILTEpCi0JCWVycm9yKCJUb28gbWFueSBsZXZlbHMgb2YgbmVzdGluZyIp
OwotCWRlcHRoICs9IDE7Ci0Jc3RpZmxpbmVbZGVwdGhdID0gbGluZW51bTsKLX0KLXN0YXRpYyB2
b2lkCi11bm5lc3Qodm9pZCkKLXsKLQlpZiAoZGVwdGggPT0gMCkKLQkJYWJvcnQoKTsgLyogYnVn
ICovCi0JZGVwdGggLT0gMTsKLX0KLXN0YXRpYyB2b2lkCi1zdGF0ZShJZnN0YXRlIGlzKQotewot
CWlmc3RhdGVbZGVwdGhdID0gaXM7Ci19Ci0KLS8qCi0gKiBUaGUgbGFzdCBzdGF0ZSB0cmFuc2l0
aW9uIGZ1bmN0aW9uLiBXaGVuIHRoaXMgaXMgY2FsbGVkLAotICogbGluZXZhbCA9PSBMVF9FT0Ys
IHNvIHRoZSBwcm9jZXNzKCkgbG9vcCB3aWxsIHRlcm1pbmF0ZS4KLSAqLwotc3RhdGljIHZvaWQK
LWRvbmUodm9pZCkKLXsKLQlpZiAoaW5jb21tZW50KQotCQllcnJvcigiRU9GIGluIGNvbW1lbnQi
KTsKLQljbG9zZWlvKCk7Ci19Ci0KLS8qCi0gKiBXcml0ZSBhIGxpbmUgdG8gdGhlIG91dHB1dCBv
ciBub3QsIGFjY29yZGluZyB0byBjb21tYW5kIGxpbmUgb3B0aW9ucy4KLSAqIElmIHdyaXRpbmcg
ZmFpbHMsIGNsb3NlaW8oKSB3aWxsIHByaW50IHRoZSBlcnJvciBhbmQgZXhpdC4KLSAqLwotc3Rh
dGljIHZvaWQKLWZsdXNobGluZShib29sIGtlZXApCi17Ci0JaWYgKHN5bWxpc3QpCi0JCXJldHVy
bjsKLQlpZiAoa2VlcCBeIGNvbXBsZW1lbnQpIHsKLQkJYm9vbCBibGFua2xpbmUgPSB0bGluZVtz
dHJzcG4odGxpbmUsICIgXHRcclxuIildID09ICdcMCc7Ci0JCWlmIChibGFua2xpbmUgJiYgY29t
cGJsYW5rICYmIGJsYW5rY291bnQgIT0gYmxhbmttYXgpIHsKLQkJCWRlbGNvdW50ICs9IDE7Ci0J
CQlibGFua2NvdW50ICs9IDE7Ci0JCX0gZWxzZSB7Ci0JCQlpZiAobG5udW0gJiYgZGVsY291bnQg
PiAwKQotCQkJCWhhc2hsaW5lKCk7Ci0JCQlpZiAoZnB1dHModGxpbmUsIG91dHB1dCkgPT0gRU9G
KQotCQkJCWNsb3NlaW8oKTsKLQkJCWRlbGNvdW50ID0gMDsKLQkJCWJsYW5rbWF4ID0gYmxhbmtj
b3VudCA9IGJsYW5rbGluZSA/IGJsYW5rY291bnQgKyAxIDogMDsKLQkJfQotCX0gZWxzZSB7Ci0J
CWlmIChsbmJsYW5rICYmIGZwdXRzKG5ld2xpbmUsIG91dHB1dCkgPT0gRU9GKQotCQkJY2xvc2Vp
bygpOwotCQlhbHRlcmVkID0gdHJ1ZTsKLQkJZGVsY291bnQgKz0gMTsKLQkJYmxhbmtjb3VudCA9
IDA7Ci0JfQotCWlmIChkZWJ1Z2dpbmcgJiYgZmZsdXNoKG91dHB1dCkgPT0gRU9GKQotCQljbG9z
ZWlvKCk7Ci19Ci0KLS8qCi0gKiBGb3JtYXQgb2YgI2xpbmUgZGlyZWN0aXZlcyBkZXBlbmRzIG9u
IHdoZXRoZXIgd2Uga25vdyB0aGUgaW5wdXQgZmlsZW5hbWUuCi0gKi8KLXN0YXRpYyB2b2lkCi1o
YXNobGluZSh2b2lkKQotewotCWludCBlOwotCi0JaWYgKGxpbmVmaWxlID09IE5VTEwpCi0JCWUg
PSBmcHJpbnRmKG91dHB1dCwgIiNsaW5lICVkJXMiLCBsaW5lbnVtLCBuZXdsaW5lKTsKLQllbHNl
Ci0JCWUgPSBmcHJpbnRmKG91dHB1dCwgIiNsaW5lICVkIFwiJXNcIiVzIiwKLQkJICAgIGxpbmVu
dW0sIGxpbmVmaWxlLCBuZXdsaW5lKTsKLQlpZiAoZSA8IDApCi0JCWNsb3NlaW8oKTsKLX0KLQot
LyoKLSAqIEZsdXNoIHRoZSBvdXRwdXQgYW5kIGhhbmRsZSBlcnJvcnMuCi0gKi8KLXN0YXRpYyB2
b2lkCi1jbG9zZWlvKHZvaWQpCi17Ci0JLyogVGlkeSB1cCBhZnRlciBmaW5kc3ltKCkuICovCi0J
aWYgKHN5bWRlcHRoICYmICF6ZXJvc3ltcykKLQkJcHJpbnRmKCJcbiIpOwotCWlmIChvdXRwdXQg
IT0gTlVMTCAmJiAoZmVycm9yKG91dHB1dCkgfHwgZmNsb3NlKG91dHB1dCkgPT0gRU9GKSkKLQkJ
CWVycigyLCAiJXM6IGNhbid0IHdyaXRlIHRvIG91dHB1dCIsIGZpbGVuYW1lKTsKLQlmY2xvc2Uo
aW5wdXQpOwotfQotCi0vKgotICogVGhlIGRyaXZlciBmb3IgdGhlIHN0YXRlIG1hY2hpbmUuCi0g
Ki8KLXN0YXRpYyB2b2lkCi1wcm9jZXNzKHZvaWQpCi17Ci0JTGluZXR5cGUgbGluZXZhbCA9IExU
X1BMQUlOOwotCS8qIFdoZW4gY29tcHJlc3NpbmcgYmxhbmsgbGluZXMsIGFjdCBhcyBpZiB0aGUg
ZmlsZQotCSAgIGlzIHByZWNlZGVkIGJ5IGEgbGFyZ2UgbnVtYmVyIG9mIGJsYW5rIGxpbmVzLiAq
LwotCWJsYW5rbWF4ID0gYmxhbmtjb3VudCA9IDEwMDA7Ci0JemVyb3N5bXMgPSB0cnVlOwotCW5l
d2xpbmUgPSBOVUxMOwotCWxpbmVudW0gPSAwOwotCWFsdGVyZWQgPSBmYWxzZTsKLQl3aGlsZSAo
bGluZXZhbCAhPSBMVF9FT0YpIHsKLQkJbGluZXZhbCA9IHBhcnNlbGluZSgpOwotCQl0cmFuc190
YWJsZVtpZnN0YXRlW2RlcHRoXV1bbGluZXZhbF0oKTsKLQkJZGVidWcoInByb2Nlc3MgbGluZSAl
ZCAlcyAtPiAlcyBkZXB0aCAlZCIsCi0JCSAgICBsaW5lbnVtLCBsaW5ldHlwZV9uYW1lW2xpbmV2
YWxdLAotCQkgICAgaWZzdGF0ZV9uYW1lW2lmc3RhdGVbZGVwdGhdXSwgZGVwdGgpOwotCX0KLQll
eGl0c3RhdCB8PSBhbHRlcmVkOwotfQotCi0vKgotICogUGFyc2UgYSBsaW5lIGFuZCBkZXRlcm1p
bmUgaXRzIHR5cGUuIFdlIGtlZXAgdGhlIHByZXByb2Nlc3NvciBsaW5lCi0gKiBwYXJzZXIgc3Rh
dGUgYmV0d2VlbiBjYWxscyBpbiB0aGUgZ2xvYmFsIHZhcmlhYmxlIGxpbmVzdGF0ZSwgd2l0aAot
ICogaGVscCBmcm9tIHNraXBjb21tZW50KCkuCi0gKi8KLXN0YXRpYyBMaW5ldHlwZQotcGFyc2Vs
aW5lKHZvaWQpCi17Ci0JY29uc3QgY2hhciAqY3A7Ci0JaW50IGN1cnN5bTsKLQlMaW5ldHlwZSBy
ZXR2YWw7Ci0JQ29tbWVudF9zdGF0ZSB3YXNjb21tZW50OwotCi0Jd2FzY29tbWVudCA9IGluY29t
bWVudDsKLQljcCA9IHNraXBoYXNoKCk7Ci0JaWYgKGNwID09IE5VTEwpCi0JCXJldHVybiAoTFRf
RU9GKTsKLQlpZiAobmV3bGluZSA9PSBOVUxMKSB7Ci0JCWlmIChzdHJyY2hyKHRsaW5lLCAnXG4n
KSA9PSBzdHJyY2hyKHRsaW5lLCAnXHInKSArIDEpCi0JCQluZXdsaW5lID0gbmV3bGluZV9jcmxm
OwotCQllbHNlCi0JCQluZXdsaW5lID0gbmV3bGluZV91bml4OwotCX0KLQlpZiAoKmNwID09ICdc
MCcpIHsKLQkJcmV0dmFsID0gTFRfUExBSU47Ci0JCWdvdG8gZG9uZTsKLQl9Ci0Ja2V5d29yZCA9
IHRsaW5lICsgKGNwIC0gdGxpbmUpOwotCWlmICgoY3AgPSBtYXRjaHN5bSgiaWZkZWYiLCBrZXl3
b3JkKSkgIT0gTlVMTCB8fAotCSAgICAoY3AgPSBtYXRjaHN5bSgiaWZuZGVmIiwga2V5d29yZCkp
ICE9IE5VTEwpIHsKLQkJY3AgPSBza2lwY29tbWVudChjcCk7Ci0JCWlmICgoY3Vyc3ltID0gZmlu
ZHN5bSgmY3ApKSA8IDApCi0JCQlyZXR2YWwgPSBMVF9JRjsKLQkJZWxzZSB7Ci0JCQlyZXR2YWwg
PSAoa2V5d29yZFsyXSA9PSAnbicpCi0JCQkgICAgPyBMVF9GQUxTRSA6IExUX1RSVUU7Ci0JCQlp
ZiAodmFsdWVbY3Vyc3ltXSA9PSBOVUxMKQotCQkJCXJldHZhbCA9IChyZXR2YWwgPT0gTFRfVFJV
RSkKLQkJCQkgICAgPyBMVF9GQUxTRSA6IExUX1RSVUU7Ci0JCQlpZiAoaWdub3JlW2N1cnN5bV0p
Ci0JCQkJcmV0dmFsID0gKHJldHZhbCA9PSBMVF9UUlVFKQotCQkJCSAgICA/IExUX1RSVUVJIDog
TFRfRkFMU0VJOwotCQl9Ci0JfSBlbHNlIGlmICgoY3AgPSBtYXRjaHN5bSgiaWYiLCBrZXl3b3Jk
KSkgIT0gTlVMTCkKLQkJcmV0dmFsID0gaWZldmFsKCZjcCk7Ci0JZWxzZSBpZiAoKGNwID0gbWF0
Y2hzeW0oImVsaWYiLCBrZXl3b3JkKSkgIT0gTlVMTCkKLQkJcmV0dmFsID0gbGluZXR5cGVfaWYy
ZWxpZihpZmV2YWwoJmNwKSk7Ci0JZWxzZSBpZiAoKGNwID0gbWF0Y2hzeW0oImVsc2UiLCBrZXl3
b3JkKSkgIT0gTlVMTCkKLQkJcmV0dmFsID0gTFRfRUxTRTsKLQllbHNlIGlmICgoY3AgPSBtYXRj
aHN5bSgiZW5kaWYiLCBrZXl3b3JkKSkgIT0gTlVMTCkKLQkJcmV0dmFsID0gTFRfRU5ESUY7Ci0J
ZWxzZSB7Ci0JCWNwID0gc2tpcHN5bShrZXl3b3JkKTsKLQkJLyogbm8gd2F5IGNhbiB3ZSBkZWFs
IHdpdGggYSBjb250aW51YXRpb24gaW5zaWRlIGEga2V5d29yZCAqLwotCQlpZiAoc3RybmNtcChj
cCwgIlxcXHJcbiIsIDMpID09IDAgfHwKLQkJICAgIHN0cm5jbXAoY3AsICJcXFxuIiwgMikgPT0g
MCkKLQkJCUVpb2NjYygpOwotCQljcCA9IHNraXBsaW5lKGNwKTsKLQkJcmV0dmFsID0gTFRfUExB
SU47Ci0JCWdvdG8gZG9uZTsKLQl9Ci0JY3AgPSBza2lwY29tbWVudChjcCk7Ci0JaWYgKCpjcCAh
PSAnXDAnKSB7Ci0JCWNwID0gc2tpcGxpbmUoY3ApOwotCQlpZiAocmV0dmFsID09IExUX1RSVUUg
fHwgcmV0dmFsID09IExUX0ZBTFNFIHx8Ci0JCSAgICByZXR2YWwgPT0gTFRfVFJVRUkgfHwgcmV0
dmFsID09IExUX0ZBTFNFSSkKLQkJCXJldHZhbCA9IExUX0lGOwotCQlpZiAocmV0dmFsID09IExU
X0VMVFJVRSB8fCByZXR2YWwgPT0gTFRfRUxGQUxTRSkKLQkJCXJldHZhbCA9IExUX0VMSUY7Ci0J
fQotCS8qIHRoZSBmb2xsb3dpbmcgY2FuIGhhcHBlbiBpZiB0aGUgbGFzdCBsaW5lIG9mIHRoZSBm
aWxlIGxhY2tzIGEKLQkgICBuZXdsaW5lIG9yIGlmIHRoZXJlIGlzIHRvbyBtdWNoIHdoaXRlc3Bh
Y2UgaW4gYSBkaXJlY3RpdmUgKi8KLQlpZiAobGluZXN0YXRlID09IExTX0hBU0gpIHsKLQkJbG9u
ZyBsZW4gPSBjcCAtIHRsaW5lOwotCQlpZiAoZmdldHModGxpbmUgKyBsZW4sIE1BWExJTkUgLSBs
ZW4sIGlucHV0KSA9PSBOVUxMKSB7Ci0JCQlpZiAoZmVycm9yKGlucHV0KSkKLQkJCQllcnIoMiwg
ImNhbid0IHJlYWQgJXMiLCBmaWxlbmFtZSk7Ci0JCQlkZWJ1ZygicGFyc2VyIGluc2VydCBuZXds
aW5lIGF0IEVPRiIsIGxpbmVudW0pOwotCQkJc3RyY3B5KHRsaW5lICsgbGVuLCBuZXdsaW5lKTsK
LQkJCWNwICs9IHN0cmxlbihuZXdsaW5lKTsKLQkJCWxpbmVzdGF0ZSA9IExTX1NUQVJUOwotCQl9
IGVsc2UgewotCQkJZGVidWcoInBhcnNlciBjb25jYXRlbmF0ZSBkYW5nbGluZyB3aGl0ZXNwYWNl
Iik7Ci0JCQkrK2xpbmVudW07Ci0JCQljcCA9IHNraXBjb21tZW50KGNwKTsKLQkJfQotCX0KLQlp
ZiAocmV0dmFsICE9IExUX1BMQUlOICYmICh3YXNjb21tZW50IHx8IGxpbmVzdGF0ZSAhPSBMU19T
VEFSVCkpIHsKLQkJcmV0dmFsID0gbGluZXR5cGVfMmRvZGd5KHJldHZhbCk7Ci0JCWxpbmVzdGF0
ZSA9IExTX0RJUlRZOwotCX0KLWRvbmU6Ci0JZGVidWcoInBhcnNlciBsaW5lICVkIHN0YXRlICVz
IGNvbW1lbnQgJXMgbGluZSIsIGxpbmVudW0sCi0JICAgIGNvbW1lbnRfbmFtZVtpbmNvbW1lbnRd
LCBsaW5lc3RhdGVfbmFtZVtsaW5lc3RhdGVdKTsKLQlyZXR1cm4gKHJldHZhbCk7Ci19Ci0KLS8q
Ci0gKiBUaGVzZSBhcmUgdGhlIGJpbmFyeSBvcGVyYXRvcnMgdGhhdCBhcmUgc3VwcG9ydGVkIGJ5
IHRoZSBleHByZXNzaW9uCi0gKiBldmFsdWF0b3IuCi0gKi8KLXN0YXRpYyBMaW5ldHlwZSBvcF9z
dHJpY3QobG9uZyAqcCwgbG9uZyB2LCBMaW5ldHlwZSBhdCwgTGluZXR5cGUgYnQpIHsKLQlpZihh
dCA9PSBMVF9JRiB8fCBidCA9PSBMVF9JRikgcmV0dXJuIChMVF9JRik7Ci0JcmV0dXJuICgqcCA9
IHYsIHYgPyBMVF9UUlVFIDogTFRfRkFMU0UpOwotfQotc3RhdGljIExpbmV0eXBlIG9wX2x0KGxv
bmcgKnAsIExpbmV0eXBlIGF0LCBsb25nIGEsIExpbmV0eXBlIGJ0LCBsb25nIGIpIHsKLQlyZXR1
cm4gb3Bfc3RyaWN0KHAsIGEgPCBiLCBhdCwgYnQpOwotfQotc3RhdGljIExpbmV0eXBlIG9wX2d0
KGxvbmcgKnAsIExpbmV0eXBlIGF0LCBsb25nIGEsIExpbmV0eXBlIGJ0LCBsb25nIGIpIHsKLQly
ZXR1cm4gb3Bfc3RyaWN0KHAsIGEgPiBiLCBhdCwgYnQpOwotfQotc3RhdGljIExpbmV0eXBlIG9w
X2xlKGxvbmcgKnAsIExpbmV0eXBlIGF0LCBsb25nIGEsIExpbmV0eXBlIGJ0LCBsb25nIGIpIHsK
LQlyZXR1cm4gb3Bfc3RyaWN0KHAsIGEgPD0gYiwgYXQsIGJ0KTsKLX0KLXN0YXRpYyBMaW5ldHlw
ZSBvcF9nZShsb25nICpwLCBMaW5ldHlwZSBhdCwgbG9uZyBhLCBMaW5ldHlwZSBidCwgbG9uZyBi
KSB7Ci0JcmV0dXJuIG9wX3N0cmljdChwLCBhID49IGIsIGF0LCBidCk7Ci19Ci1zdGF0aWMgTGlu
ZXR5cGUgb3BfZXEobG9uZyAqcCwgTGluZXR5cGUgYXQsIGxvbmcgYSwgTGluZXR5cGUgYnQsIGxv
bmcgYikgewotCXJldHVybiBvcF9zdHJpY3QocCwgYSA9PSBiLCBhdCwgYnQpOwotfQotc3RhdGlj
IExpbmV0eXBlIG9wX25lKGxvbmcgKnAsIExpbmV0eXBlIGF0LCBsb25nIGEsIExpbmV0eXBlIGJ0
LCBsb25nIGIpIHsKLQlyZXR1cm4gb3Bfc3RyaWN0KHAsIGEgIT0gYiwgYXQsIGJ0KTsKLX0KLXN0
YXRpYyBMaW5ldHlwZSBvcF9vcihsb25nICpwLCBMaW5ldHlwZSBhdCwgbG9uZyBhLCBMaW5ldHlw
ZSBidCwgbG9uZyBiKSB7Ci0JaWYgKCFzdHJpY3Rsb2dpYyAmJiAoYXQgPT0gTFRfVFJVRSB8fCBi
dCA9PSBMVF9UUlVFKSkKLQkJcmV0dXJuICgqcCA9IDEsIExUX1RSVUUpOwotCXJldHVybiBvcF9z
dHJpY3QocCwgYSB8fCBiLCBhdCwgYnQpOwotfQotc3RhdGljIExpbmV0eXBlIG9wX2FuZChsb25n
ICpwLCBMaW5ldHlwZSBhdCwgbG9uZyBhLCBMaW5ldHlwZSBidCwgbG9uZyBiKSB7Ci0JaWYgKCFz
dHJpY3Rsb2dpYyAmJiAoYXQgPT0gTFRfRkFMU0UgfHwgYnQgPT0gTFRfRkFMU0UpKQotCQlyZXR1
cm4gKCpwID0gMCwgTFRfRkFMU0UpOwotCXJldHVybiBvcF9zdHJpY3QocCwgYSAmJiBiLCBhdCwg
YnQpOwotfQotc3RhdGljIExpbmV0eXBlIG9wX2Jsc2gobG9uZyAqcCwgTGluZXR5cGUgYXQsIGxv
bmcgYSwgTGluZXR5cGUgYnQsIGxvbmcgYikgewotCXJldHVybiBvcF9zdHJpY3QocCwgYSA8PCBi
LCBhdCwgYnQpOwotfQotc3RhdGljIExpbmV0eXBlIG9wX2Jyc2gobG9uZyAqcCwgTGluZXR5cGUg
YXQsIGxvbmcgYSwgTGluZXR5cGUgYnQsIGxvbmcgYikgewotCXJldHVybiBvcF9zdHJpY3QocCwg
YSA+PiBiLCBhdCwgYnQpOwotfQotc3RhdGljIExpbmV0eXBlIG9wX2FkZChsb25nICpwLCBMaW5l
dHlwZSBhdCwgbG9uZyBhLCBMaW5ldHlwZSBidCwgbG9uZyBiKSB7Ci0JcmV0dXJuIG9wX3N0cmlj
dChwLCBhICsgYiwgYXQsIGJ0KTsKLX0KLXN0YXRpYyBMaW5ldHlwZSBvcF9zdWIobG9uZyAqcCwg
TGluZXR5cGUgYXQsIGxvbmcgYSwgTGluZXR5cGUgYnQsIGxvbmcgYikgewotCXJldHVybiBvcF9z
dHJpY3QocCwgYSAtIGIsIGF0LCBidCk7Ci19Ci1zdGF0aWMgTGluZXR5cGUgb3BfbXVsKGxvbmcg
KnAsIExpbmV0eXBlIGF0LCBsb25nIGEsIExpbmV0eXBlIGJ0LCBsb25nIGIpIHsKLQlyZXR1cm4g
b3Bfc3RyaWN0KHAsIGEgKiBiLCBhdCwgYnQpOwotfQotc3RhdGljIExpbmV0eXBlIG9wX2Rpdihs
b25nICpwLCBMaW5ldHlwZSBhdCwgbG9uZyBhLCBMaW5ldHlwZSBidCwgbG9uZyBiKSB7Ci0JaWYg
KGJ0ICE9IExUX1RSVUUpIHsKLQkJZGVidWcoImV2YWwgZGl2aXNpb24gYnkgemVybyIpOwotCQly
ZXR1cm4gKExUX0VSUk9SKTsKLQl9Ci0JcmV0dXJuIG9wX3N0cmljdChwLCBhIC8gYiwgYXQsIGJ0
KTsKLX0KLXN0YXRpYyBMaW5ldHlwZSBvcF9tb2QobG9uZyAqcCwgTGluZXR5cGUgYXQsIGxvbmcg
YSwgTGluZXR5cGUgYnQsIGxvbmcgYikgewotCXJldHVybiBvcF9zdHJpY3QocCwgYSAlIGIsIGF0
LCBidCk7Ci19Ci1zdGF0aWMgTGluZXR5cGUgb3BfYm9yKGxvbmcgKnAsIExpbmV0eXBlIGF0LCBs
b25nIGEsIExpbmV0eXBlIGJ0LCBsb25nIGIpIHsKLQlyZXR1cm4gb3Bfc3RyaWN0KHAsIGEgfCBi
LCBhdCwgYnQpOwotfQotc3RhdGljIExpbmV0eXBlIG9wX2J4b3IobG9uZyAqcCwgTGluZXR5cGUg
YXQsIGxvbmcgYSwgTGluZXR5cGUgYnQsIGxvbmcgYikgewotCXJldHVybiBvcF9zdHJpY3QocCwg
YSBeIGIsIGF0LCBidCk7Ci19Ci1zdGF0aWMgTGluZXR5cGUgb3BfYmFuZChsb25nICpwLCBMaW5l
dHlwZSBhdCwgbG9uZyBhLCBMaW5ldHlwZSBidCwgbG9uZyBiKSB7Ci0JcmV0dXJuIG9wX3N0cmlj
dChwLCBhICYgYiwgYXQsIGJ0KTsKLX0KLQotLyoKLSAqIEFuIGV2YWx1YXRpb24gZnVuY3Rpb24g
dGFrZXMgdGhyZWUgYXJndW1lbnRzLCBhcyBmb2xsb3dzOiAoMSkgYSBwb2ludGVyIHRvCi0gKiBh
biBlbGVtZW50IG9mIHRoZSBwcmVjZWRlbmNlIHRhYmxlIHdoaWNoIGxpc3RzIHRoZSBvcGVyYXRv
cnMgYXQgdGhlIGN1cnJlbnQKLSAqIGxldmVsIG9mIHByZWNlZGVuY2U7ICgyKSBhIHBvaW50ZXIg
dG8gYW4gaW50ZWdlciB3aGljaCB3aWxsIHJlY2VpdmUgdGhlCi0gKiB2YWx1ZSBvZiB0aGUgZXhw
cmVzc2lvbjsgYW5kICgzKSBhIHBvaW50ZXIgdG8gYSBjaGFyKiB0aGF0IHBvaW50cyB0byB0aGUK
LSAqIGV4cHJlc3Npb24gdG8gYmUgZXZhbHVhdGVkIGFuZCB0aGF0IGlzIHVwZGF0ZWQgdG8gdGhl
IGVuZCBvZiB0aGUgZXhwcmVzc2lvbgotICogd2hlbiBldmFsdWF0aW9uIGlzIGNvbXBsZXRlLiBU
aGUgZnVuY3Rpb24gcmV0dXJucyBMVF9GQUxTRSBpZiB0aGUgdmFsdWUgb2YKLSAqIHRoZSBleHBy
ZXNzaW9uIGlzIHplcm8sIExUX1RSVUUgaWYgaXQgaXMgbm9uLXplcm8sIExUX0lGIGlmIHRoZSBl
eHByZXNzaW9uCi0gKiBkZXBlbmRzIG9uIGFuIHVua25vd24gc3ltYm9sLCBvciBMVF9FUlJPUiBp
ZiB0aGVyZSBpcyBhIHBhcnNlIGZhaWx1cmUuCi0gKi8KLXN0cnVjdCBvcHM7Ci0KLXR5cGVkZWYg
TGluZXR5cGUgZXZhbF9mbihjb25zdCBzdHJ1Y3Qgb3BzICosIGxvbmcgKiwgY29uc3QgY2hhciAq
Kik7Ci0KLXN0YXRpYyBldmFsX2ZuIGV2YWxfdGFibGUsIGV2YWxfdW5hcnk7Ci0KLS8qCi0gKiBU
aGUgcHJlY2VkZW5jZSB0YWJsZS4gRXhwcmVzc2lvbnMgaW52b2x2aW5nIGJpbmFyeSBvcGVyYXRv
cnMgYXJlIGV2YWx1YXRlZAotICogaW4gYSB0YWJsZS1kcml2ZW4gd2F5IGJ5IGV2YWxfdGFibGUu
IFdoZW4gaXQgZXZhbHVhdGVzIGEgc3ViZXhwcmVzc2lvbiBpdAotICogY2FsbHMgdGhlIGlubmVy
IGZ1bmN0aW9uIHdpdGggaXRzIGZpcnN0IGFyZ3VtZW50IHBvaW50aW5nIHRvIHRoZSBuZXh0Ci0g
KiBlbGVtZW50IG9mIHRoZSB0YWJsZS4gSW5uZXJtb3N0IGV4cHJlc3Npb25zIGhhdmUgc3BlY2lh
bCBub24tdGFibGUtZHJpdmVuCi0gKiBoYW5kbGluZy4KLSAqCi0gKiBUaGUgc3RvcCBjaGFyYWN0
ZXJzIGhlbHAgd2l0aCBsZXhpY2FsIGFuYWx5c2lzOiBhbiBvcGVyYXRvciBpcyBub3QKLSAqIHJl
Y29nbml6ZWQgaWYgaXQgaXMgZm9sbG93ZWQgYnkgb25lIG9mIHRoZSBzdG9wIGNoYXJhY3RlcnMg
YmVjYXVzZQotICogdGhhdCB3b3VsZCBtYWtlIGl0IGEgZGlmZmVyZW50IG9wZXJhdG9yLgotICov
Ci1zdHJ1Y3Qgb3AgewotCWNvbnN0IGNoYXIgKnN0cjsKLQlMaW5ldHlwZSAoKmZuKShsb25nICos
IExpbmV0eXBlLCBsb25nLCBMaW5ldHlwZSwgbG9uZyk7Ci0JY29uc3QgY2hhciAqc3RvcDsKLX07
Ci1zdHJ1Y3Qgb3BzIHsKLQlldmFsX2ZuICppbm5lcjsKLQlzdHJ1Y3Qgb3Agb3BbNV07Ci19Owot
c3RhdGljIGNvbnN0IHN0cnVjdCBvcHMgZXZhbF9vcHNbXSA9IHsKLQl7IGV2YWxfdGFibGUsIHsg
eyAifHwiLCBvcF9vciwgICBOVUxMIH0gfSB9LAotCXsgZXZhbF90YWJsZSwgeyB7ICImJiIsIG9w
X2FuZCwgIE5VTEwgfSB9IH0sCi0JeyBldmFsX3RhYmxlLCB7IHsgInwiLCAgb3BfYm9yLCAgInwi
IH0gfSB9LAotCXsgZXZhbF90YWJsZSwgeyB7ICJeIiwgIG9wX2J4b3IsIE5VTEwgfSB9IH0sCi0J
eyBldmFsX3RhYmxlLCB7IHsgIiYiLCAgb3BfYmFuZCwgIiYiIH0gfSB9LAotCXsgZXZhbF90YWJs
ZSwgeyB7ICI9PSIsIG9wX2VxLCAgIE5VTEwgfSwKLQkJCXsgIiE9Iiwgb3BfbmUsICAgTlVMTCB9
IH0gfSwKLQl7IGV2YWxfdGFibGUsIHsgeyAiPD0iLCBvcF9sZSwgICBOVUxMIH0sCi0JCQl7ICI+
PSIsIG9wX2dlLCAgIE5VTEwgfSwKLQkJCXsgIjwiLCAgb3BfbHQsICAgIjw9IiB9LAotCQkJeyAi
PiIsICBvcF9ndCwgICAiPj0iIH0gfSB9LAotCXsgZXZhbF90YWJsZSwgeyB7ICI8PCIsIG9wX2Js
c2gsIE5VTEwgfSwKLQkJCXsgIj4+Iiwgb3BfYnJzaCwgTlVMTCB9IH0gfSwKLQl7IGV2YWxfdGFi
bGUsIHsgeyAiKyIsICBvcF9hZGQsICBOVUxMIH0sCi0JCQl7ICItIiwgIG9wX3N1YiwgIE5VTEwg
fSB9IH0sCi0JeyBldmFsX3VuYXJ5LCB7IHsgIioiLCAgb3BfbXVsLCAgTlVMTCB9LAotCQkJeyAi
LyIsICBvcF9kaXYsICBOVUxMIH0sCi0JCQl7ICIlIiwgIG9wX21vZCwgIE5VTEwgfSB9IH0sCi19
OwotCi0vKiBDdXJyZW50IG9wZXJhdG9yIHByZWNlZGVuY2UgbGV2ZWwgKi8KLXN0YXRpYyBsb25n
IHByZWMoY29uc3Qgc3RydWN0IG9wcyAqb3BzKQotewotCXJldHVybiAob3BzIC0gZXZhbF9vcHMp
OwotfQotCi0vKgotICogRnVuY3Rpb24gZm9yIGV2YWx1YXRpbmcgdGhlIGlubmVybW9zdCBwYXJ0
cyBvZiBleHByZXNzaW9ucywKLSAqIHZpei4gIWV4cHIgKGV4cHIpIG51bWJlciBkZWZpbmVkKHN5
bWJvbCkgc3ltYm9sCi0gKiBXZSByZXNldCB0aGUgY29uc3RleHByIGZsYWcgaW4gdGhlIGxhc3Qg
dHdvIGNhc2VzLgotICovCi1zdGF0aWMgTGluZXR5cGUKLWV2YWxfdW5hcnkoY29uc3Qgc3RydWN0
IG9wcyAqb3BzLCBsb25nICp2YWxwLCBjb25zdCBjaGFyICoqY3BwKQotewotCWNvbnN0IGNoYXIg
KmNwOwotCWNoYXIgKmVwOwotCWludCBzeW07Ci0JYm9vbCBkZWZwYXJlbjsKLQlMaW5ldHlwZSBs
dDsKLQotCWNwID0gc2tpcGNvbW1lbnQoKmNwcCk7Ci0JaWYgKCpjcCA9PSAnIScpIHsKLQkJZGVi
dWcoImV2YWwlZCAhIiwgcHJlYyhvcHMpKTsKLQkJY3ArKzsKLQkJbHQgPSBldmFsX3VuYXJ5KG9w
cywgdmFscCwgJmNwKTsKLQkJaWYgKGx0ID09IExUX0VSUk9SKQotCQkJcmV0dXJuIChMVF9FUlJP
Uik7Ci0JCWlmIChsdCAhPSBMVF9JRikgewotCQkJKnZhbHAgPSAhKnZhbHA7Ci0JCQlsdCA9ICp2
YWxwID8gTFRfVFJVRSA6IExUX0ZBTFNFOwotCQl9Ci0JfSBlbHNlIGlmICgqY3AgPT0gJ34nKSB7
Ci0JCWRlYnVnKCJldmFsJWQgfiIsIHByZWMob3BzKSk7Ci0JCWNwKys7Ci0JCWx0ID0gZXZhbF91
bmFyeShvcHMsIHZhbHAsICZjcCk7Ci0JCWlmIChsdCA9PSBMVF9FUlJPUikKLQkJCXJldHVybiAo
TFRfRVJST1IpOwotCQlpZiAobHQgIT0gTFRfSUYpIHsKLQkJCSp2YWxwID0gfigqdmFscCk7Ci0J
CQlsdCA9ICp2YWxwID8gTFRfVFJVRSA6IExUX0ZBTFNFOwotCQl9Ci0JfSBlbHNlIGlmICgqY3Ag
PT0gJy0nKSB7Ci0JCWRlYnVnKCJldmFsJWQgLSIsIHByZWMob3BzKSk7Ci0JCWNwKys7Ci0JCWx0
ID0gZXZhbF91bmFyeShvcHMsIHZhbHAsICZjcCk7Ci0JCWlmIChsdCA9PSBMVF9FUlJPUikKLQkJ
CXJldHVybiAoTFRfRVJST1IpOwotCQlpZiAobHQgIT0gTFRfSUYpIHsKLQkJCSp2YWxwID0gLSgq
dmFscCk7Ci0JCQlsdCA9ICp2YWxwID8gTFRfVFJVRSA6IExUX0ZBTFNFOwotCQl9Ci0JfSBlbHNl
IGlmICgqY3AgPT0gJygnKSB7Ci0JCWNwKys7Ci0JCWRlYnVnKCJldmFsJWQgKCIsIHByZWMob3Bz
KSk7Ci0JCWx0ID0gZXZhbF90YWJsZShldmFsX29wcywgdmFscCwgJmNwKTsKLQkJaWYgKGx0ID09
IExUX0VSUk9SKQotCQkJcmV0dXJuIChMVF9FUlJPUik7Ci0JCWNwID0gc2tpcGNvbW1lbnQoY3Ap
OwotCQlpZiAoKmNwKysgIT0gJyknKQotCQkJcmV0dXJuIChMVF9FUlJPUik7Ci0JfSBlbHNlIGlm
IChpc2RpZ2l0KCh1bnNpZ25lZCBjaGFyKSpjcCkpIHsKLQkJZGVidWcoImV2YWwlZCBudW1iZXIi
LCBwcmVjKG9wcykpOwotCQkqdmFscCA9IHN0cnRvbChjcCwgJmVwLCAwKTsKLQkJaWYgKGVwID09
IGNwKQotCQkJcmV0dXJuIChMVF9FUlJPUik7Ci0JCWx0ID0gKnZhbHAgPyBMVF9UUlVFIDogTFRf
RkFMU0U7Ci0JCWNwID0gZXA7Ci0JfSBlbHNlIGlmIChtYXRjaHN5bSgiZGVmaW5lZCIsIGNwKSAh
PSBOVUxMKSB7Ci0JCWNwID0gc2tpcGNvbW1lbnQoY3ArNyk7Ci0JCWlmICgqY3AgPT0gJygnKSB7
Ci0JCQljcCA9IHNraXBjb21tZW50KGNwKzEpOwotCQkJZGVmcGFyZW4gPSB0cnVlOwotCQl9IGVs
c2UgewotCQkJZGVmcGFyZW4gPSBmYWxzZTsKLQkJfQotCQlzeW0gPSBmaW5kc3ltKCZjcCk7Ci0J
CWNwID0gc2tpcGNvbW1lbnQoY3ApOwotCQlpZiAoZGVmcGFyZW4gJiYgKmNwKysgIT0gJyknKSB7
Ci0JCQlkZWJ1ZygiZXZhbCVkIGRlZmluZWQgbWlzc2luZyAnKSciLCBwcmVjKG9wcykpOwotCQkJ
cmV0dXJuIChMVF9FUlJPUik7Ci0JCX0KLQkJaWYgKHN5bSA8IDApIHsKLQkJCWRlYnVnKCJldmFs
JWQgZGVmaW5lZCB1bmtub3duIiwgcHJlYyhvcHMpKTsKLQkJCWx0ID0gTFRfSUY7Ci0JCX0gZWxz
ZSB7Ci0JCQlkZWJ1ZygiZXZhbCVkIGRlZmluZWQgJXMiLCBwcmVjKG9wcyksIHN5bW5hbWVbc3lt
XSk7Ci0JCQkqdmFscCA9ICh2YWx1ZVtzeW1dICE9IE5VTEwpOwotCQkJbHQgPSAqdmFscCA/IExU
X1RSVUUgOiBMVF9GQUxTRTsKLQkJfQotCQljb25zdGV4cHIgPSBmYWxzZTsKLQl9IGVsc2UgaWYg
KCFlbmRzeW0oKmNwKSkgewotCQlkZWJ1ZygiZXZhbCVkIHN5bWJvbCIsIHByZWMob3BzKSk7Ci0J
CXN5bSA9IGZpbmRzeW0oJmNwKTsKLQkJaWYgKHN5bSA8IDApIHsKLQkJCWx0ID0gTFRfSUY7Ci0J
CQljcCA9IHNraXBhcmdzKGNwKTsKLQkJfSBlbHNlIGlmICh2YWx1ZVtzeW1dID09IE5VTEwpIHsK
LQkJCSp2YWxwID0gMDsKLQkJCWx0ID0gTFRfRkFMU0U7Ci0JCX0gZWxzZSB7Ci0JCQkqdmFscCA9
IHN0cnRvbCh2YWx1ZVtzeW1dLCAmZXAsIDApOwotCQkJaWYgKCplcCAhPSAnXDAnIHx8IGVwID09
IHZhbHVlW3N5bV0pCi0JCQkJcmV0dXJuIChMVF9FUlJPUik7Ci0JCQlsdCA9ICp2YWxwID8gTFRf
VFJVRSA6IExUX0ZBTFNFOwotCQkJY3AgPSBza2lwYXJncyhjcCk7Ci0JCX0KLQkJY29uc3RleHBy
ID0gZmFsc2U7Ci0JfSBlbHNlIHsKLQkJZGVidWcoImV2YWwlZCBiYWQgZXhwciIsIHByZWMob3Bz
KSk7Ci0JCXJldHVybiAoTFRfRVJST1IpOwotCX0KLQotCSpjcHAgPSBjcDsKLQlkZWJ1ZygiZXZh
bCVkID0gJWQiLCBwcmVjKG9wcyksICp2YWxwKTsKLQlyZXR1cm4gKGx0KTsKLX0KLQotLyoKLSAq
IFRhYmxlLWRyaXZlbiBldmFsdWF0aW9uIG9mIGJpbmFyeSBvcGVyYXRvcnMuCi0gKi8KLXN0YXRp
YyBMaW5ldHlwZQotZXZhbF90YWJsZShjb25zdCBzdHJ1Y3Qgb3BzICpvcHMsIGxvbmcgKnZhbHAs
IGNvbnN0IGNoYXIgKipjcHApCi17Ci0JY29uc3Qgc3RydWN0IG9wICpvcDsKLQljb25zdCBjaGFy
ICpjcDsKLQlsb25nIHZhbCA9IDA7Ci0JTGluZXR5cGUgbHQsIHJ0OwotCi0JZGVidWcoImV2YWwl
ZCIsIHByZWMob3BzKSk7Ci0JY3AgPSAqY3BwOwotCWx0ID0gb3BzLT5pbm5lcihvcHMrMSwgdmFs
cCwgJmNwKTsKLQlpZiAobHQgPT0gTFRfRVJST1IpCi0JCXJldHVybiAoTFRfRVJST1IpOwotCWZv
ciAoOzspIHsKLQkJY3AgPSBza2lwY29tbWVudChjcCk7Ci0JCWZvciAob3AgPSBvcHMtPm9wOyBv
cC0+c3RyICE9IE5VTEw7IG9wKyspIHsKLQkJCWlmIChzdHJuY21wKGNwLCBvcC0+c3RyLCBzdHJs
ZW4ob3AtPnN0cikpID09IDApIHsKLQkJCQkvKiBhc3N1bWUgb25seSBvbmUtY2hhciBvcGVyYXRv
cnMgaGF2ZSBzdG9wIGNoYXJzICovCi0JCQkJaWYgKG9wLT5zdG9wICE9IE5VTEwgJiYgY3BbMV0g
IT0gJ1wwJyAmJgotCQkJCSAgICBzdHJjaHIob3AtPnN0b3AsIGNwWzFdKSAhPSBOVUxMKQotCQkJ
CQljb250aW51ZTsKLQkJCQllbHNlCi0JCQkJCWJyZWFrOwotCQkJfQotCQl9Ci0JCWlmIChvcC0+
c3RyID09IE5VTEwpCi0JCQlicmVhazsKLQkJY3AgKz0gc3RybGVuKG9wLT5zdHIpOwotCQlkZWJ1
ZygiZXZhbCVkICVzIiwgcHJlYyhvcHMpLCBvcC0+c3RyKTsKLQkJcnQgPSBvcHMtPmlubmVyKG9w
cysxLCAmdmFsLCAmY3ApOwotCQlpZiAocnQgPT0gTFRfRVJST1IpCi0JCQlyZXR1cm4gKExUX0VS
Uk9SKTsKLQkJbHQgPSBvcC0+Zm4odmFscCwgbHQsICp2YWxwLCBydCwgdmFsKTsKLQl9Ci0KLQkq
Y3BwID0gY3A7Ci0JZGVidWcoImV2YWwlZCA9ICVkIiwgcHJlYyhvcHMpLCAqdmFscCk7Ci0JZGVi
dWcoImV2YWwlZCBsdCA9ICVzIiwgcHJlYyhvcHMpLCBsaW5ldHlwZV9uYW1lW2x0XSk7Ci0JcmV0
dXJuIChsdCk7Ci19Ci0KLS8qCi0gKiBFdmFsdWF0ZSB0aGUgZXhwcmVzc2lvbiBvbiBhICNpZiBv
ciAjZWxpZiBsaW5lLiBJZiB3ZSBjYW4gd29yayBvdXQKLSAqIHRoZSByZXN1bHQgd2UgcmV0dXJu
IExUX1RSVUUgb3IgTFRfRkFMU0UgYWNjb3JkaW5nbHksIG90aGVyd2lzZSB3ZQotICogcmV0dXJu
IGp1c3QgYSBnZW5lcmljIExUX0lGLgotICovCi1zdGF0aWMgTGluZXR5cGUKLWlmZXZhbChjb25z
dCBjaGFyICoqY3BwKQotewotCUxpbmV0eXBlIHJldDsKLQlsb25nIHZhbCA9IDA7Ci0KLQlkZWJ1
ZygiZXZhbCAlcyIsICpjcHApOwotCWNvbnN0ZXhwciA9IGtpbGxjb25zdHMgPyBmYWxzZSA6IHRy
dWU7Ci0JcmV0ID0gZXZhbF90YWJsZShldmFsX29wcywgJnZhbCwgY3BwKTsKLQlkZWJ1ZygiZXZh
bCA9ICVkIiwgdmFsKTsKLQlyZXR1cm4gKGNvbnN0ZXhwciA/IExUX0lGIDogcmV0ID09IExUX0VS
Uk9SID8gTFRfSUYgOiByZXQpOwotfQotCi0vKgotICogUmVhZCBhIGxpbmUgYW5kIGV4YW1pbmUg
aXRzIGluaXRpYWwgcGFydCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgYQotICogcHJlcHJvY2Vzc29y
IGRpcmVjdGl2ZS4gUmV0dXJucyBOVUxMIG9uIEVPRiwgb3IgYSBwb2ludGVyIHRvIGEKLSAqIHBy
ZXByb2Nlc3NvciBkaXJlY3RpdmUgbmFtZSwgb3IgYSBwb2ludGVyIHRvIHRoZSB6ZXJvIGJ5dGUg
YXQgdGhlCi0gKiBlbmQgb2YgdGhlIGxpbmUuCi0gKi8KLXN0YXRpYyBjb25zdCBjaGFyICoKLXNr
aXBoYXNoKHZvaWQpCi17Ci0JY29uc3QgY2hhciAqY3A7Ci0KLQlsaW5lbnVtKys7Ci0JaWYgKGZn
ZXRzKHRsaW5lLCBNQVhMSU5FLCBpbnB1dCkgPT0gTlVMTCkgewotCQlpZiAoZmVycm9yKGlucHV0
KSkKLQkJCWVycigyLCAiY2FuJ3QgcmVhZCAlcyIsIGZpbGVuYW1lKTsKLQkJZWxzZQotCQkJcmV0
dXJuIChOVUxMKTsKLQl9Ci0JY3AgPSBza2lwY29tbWVudCh0bGluZSk7Ci0JaWYgKGxpbmVzdGF0
ZSA9PSBMU19TVEFSVCAmJiAqY3AgPT0gJyMnKSB7Ci0JCWxpbmVzdGF0ZSA9IExTX0hBU0g7Ci0J
CXJldHVybiAoc2tpcGNvbW1lbnQoY3AgKyAxKSk7Ci0JfSBlbHNlIGlmICgqY3AgPT0gJ1wwJykg
ewotCQlyZXR1cm4gKGNwKTsKLQl9IGVsc2UgewotCQlyZXR1cm4gKHNraXBsaW5lKGNwKSk7Ci0J
fQotfQotCi0vKgotICogTWFyayBhIGxpbmUgZGlydHkgYW5kIGNvbnN1bWUgdGhlIHJlc3Qgb2Yg
aXQsIGtlZXBpbmcgdHJhY2sgb2YgdGhlCi0gKiBsZXhpY2FsIHN0YXRlLgotICovCi1zdGF0aWMg
Y29uc3QgY2hhciAqCi1za2lwbGluZShjb25zdCBjaGFyICpjcCkKLXsKLQljb25zdCBjaGFyICpw
Y3A7Ci0JaWYgKCpjcCAhPSAnXDAnKQotCQlsaW5lc3RhdGUgPSBMU19ESVJUWTsKLQl3aGlsZSAo
KmNwICE9ICdcMCcpIHsKLQkJY3AgPSBza2lwY29tbWVudChwY3AgPSBjcCk7Ci0JCWlmIChwY3Ag
PT0gY3ApCi0JCQljcCsrOwotCX0KLQlyZXR1cm4gKGNwKTsKLX0KLQotLyoKLSAqIFNraXAgb3Zl
ciBjb21tZW50cywgc3RyaW5ncywgYW5kIGNoYXJhY3RlciBsaXRlcmFscyBhbmQgc3RvcCBhdCB0
aGUKLSAqIG5leHQgY2hhcmFjdGVyIHBvc2l0aW9uIHRoYXQgaXMgbm90IHdoaXRlc3BhY2UuIEJl
dHdlZW4gY2FsbHMgd2Uga2VlcAotICogdGhlIGNvbW1lbnQgc3RhdGUgaW4gdGhlIGdsb2JhbCB2
YXJpYWJsZSBpbmNvbW1lbnQsIGFuZCB3ZSBhbHNvIGFkanVzdAotICogdGhlIGdsb2JhbCB2YXJp
YWJsZSBsaW5lc3RhdGUgd2hlbiB3ZSBzZWUgYSBuZXdsaW5lLgotICogWFhYOiBkb2Vzbid0IGNv
cGUgd2l0aCB0aGUgYnVmZmVyIHNwbGl0dGluZyBpbnNpZGUgYSBzdGF0ZSB0cmFuc2l0aW9uLgot
ICovCi1zdGF0aWMgY29uc3QgY2hhciAqCi1za2lwY29tbWVudChjb25zdCBjaGFyICpjcCkKLXsK
LQlpZiAodGV4dCB8fCBpZ25vcmluZ1tkZXB0aF0pIHsKLQkJZm9yICg7IGlzc3BhY2UoKHVuc2ln
bmVkIGNoYXIpKmNwKTsgY3ArKykKLQkJCWlmICgqY3AgPT0gJ1xuJykKLQkJCQlsaW5lc3RhdGUg
PSBMU19TVEFSVDsKLQkJcmV0dXJuIChjcCk7Ci0JfQotCXdoaWxlICgqY3AgIT0gJ1wwJykKLQkJ
LyogZG9uJ3QgcmVzZXQgdG8gTFNfU1RBUlQgYWZ0ZXIgYSBsaW5lIGNvbnRpbnVhdGlvbiAqLwot
CQlpZiAoc3RybmNtcChjcCwgIlxcXHJcbiIsIDMpID09IDApCi0JCQljcCArPSAzOwotCQllbHNl
IGlmIChzdHJuY21wKGNwLCAiXFxcbiIsIDIpID09IDApCi0JCQljcCArPSAyOwotCQllbHNlIHN3
aXRjaCAoaW5jb21tZW50KSB7Ci0JCWNhc2UgTk9fQ09NTUVOVDoKLQkJCWlmIChzdHJuY21wKGNw
LCAiL1xcXHJcbiIsIDQpID09IDApIHsKLQkJCQlpbmNvbW1lbnQgPSBTVEFSVElOR19DT01NRU5U
OwotCQkJCWNwICs9IDQ7Ci0JCQl9IGVsc2UgaWYgKHN0cm5jbXAoY3AsICIvXFxcbiIsIDMpID09
IDApIHsKLQkJCQlpbmNvbW1lbnQgPSBTVEFSVElOR19DT01NRU5UOwotCQkJCWNwICs9IDM7Ci0J
CQl9IGVsc2UgaWYgKHN0cm5jbXAoY3AsICIvKiIsIDIpID09IDApIHsKLQkJCQlpbmNvbW1lbnQg
PSBDX0NPTU1FTlQ7Ci0JCQkJY3AgKz0gMjsKLQkJCX0gZWxzZSBpZiAoc3RybmNtcChjcCwgIi8v
IiwgMikgPT0gMCkgewotCQkJCWluY29tbWVudCA9IENYWF9DT01NRU5UOwotCQkJCWNwICs9IDI7
Ci0JCQl9IGVsc2UgaWYgKHN0cm5jbXAoY3AsICJcJyIsIDEpID09IDApIHsKLQkJCQlpbmNvbW1l
bnQgPSBDSEFSX0xJVEVSQUw7Ci0JCQkJbGluZXN0YXRlID0gTFNfRElSVFk7Ci0JCQkJY3AgKz0g
MTsKLQkJCX0gZWxzZSBpZiAoc3RybmNtcChjcCwgIlwiIiwgMSkgPT0gMCkgewotCQkJCWluY29t
bWVudCA9IFNUUklOR19MSVRFUkFMOwotCQkJCWxpbmVzdGF0ZSA9IExTX0RJUlRZOwotCQkJCWNw
ICs9IDE7Ci0JCQl9IGVsc2UgaWYgKHN0cm5jbXAoY3AsICJSXCIoIiwgMykgPT0gMCkgewotCQkJ
CWluY29tbWVudCA9IFJBV19TVFJJTkdfTElURVJBTDsKLQkJCQlsaW5lc3RhdGUgPSBMU19ESVJU
WTsKLQkJCQljcCArPSAzOwotCQkJfSBlbHNlIGlmIChzdHJuY21wKGNwLCAiXG4iLCAxKSA9PSAw
KSB7Ci0JCQkJbGluZXN0YXRlID0gTFNfU1RBUlQ7Ci0JCQkJY3AgKz0gMTsKLQkJCX0gZWxzZSBp
ZiAoc3RyY2hyKCIgXHJcdCIsICpjcCkgIT0gTlVMTCkgewotCQkJCWNwICs9IDE7Ci0JCQl9IGVs
c2UKLQkJCQlyZXR1cm4gKGNwKTsKLQkJCWNvbnRpbnVlOwotCQljYXNlIENYWF9DT01NRU5UOgot
CQkJaWYgKHN0cm5jbXAoY3AsICJcbiIsIDEpID09IDApIHsKLQkJCQlpbmNvbW1lbnQgPSBOT19D
T01NRU5UOwotCQkJCWxpbmVzdGF0ZSA9IExTX1NUQVJUOwotCQkJfQotCQkJY3AgKz0gMTsKLQkJ
CWNvbnRpbnVlOwotCQljYXNlIENIQVJfTElURVJBTDoKLQkJY2FzZSBTVFJJTkdfTElURVJBTDoK
LQkJCWlmICgoaW5jb21tZW50ID09IENIQVJfTElURVJBTCAmJiBjcFswXSA9PSAnXCcnKSB8fAot
CQkJICAgIChpbmNvbW1lbnQgPT0gU1RSSU5HX0xJVEVSQUwgJiYgY3BbMF0gPT0gJ1wiJykpIHsK
LQkJCQlpbmNvbW1lbnQgPSBOT19DT01NRU5UOwotCQkJCWNwICs9IDE7Ci0JCQl9IGVsc2UgaWYg
KGNwWzBdID09ICdcXCcpIHsKLQkJCQlpZiAoY3BbMV0gPT0gJ1wwJykKLQkJCQkJY3AgKz0gMTsK
LQkJCQllbHNlCi0JCQkJCWNwICs9IDI7Ci0JCQl9IGVsc2UgaWYgKHN0cm5jbXAoY3AsICJcbiIs
IDEpID09IDApIHsKLQkJCQlpZiAoaW5jb21tZW50ID09IENIQVJfTElURVJBTCkKLQkJCQkJZXJy
b3IoIlVudGVybWluYXRlZCBjaGFyIGxpdGVyYWwiKTsKLQkJCQllbHNlCi0JCQkJCWVycm9yKCJV
bnRlcm1pbmF0ZWQgc3RyaW5nIGxpdGVyYWwiKTsKLQkJCX0gZWxzZQotCQkJCWNwICs9IDE7Ci0J
CQljb250aW51ZTsKLQkJY2FzZSBSQVdfU1RSSU5HX0xJVEVSQUw6Ci0JCQlpZiAoc3RybmNtcChj
cCwgIilcIiIsIDIpID09IDApIHsKLQkJCQlpbmNvbW1lbnQgPSBOT19DT01NRU5UOwotCQkJCWNw
ICs9IDI7Ci0JCQl9IGVsc2UKLQkJCQljcCArPSAxOwotCQkJY29udGludWU7Ci0JCWNhc2UgQ19D
T01NRU5UOgotCQkJaWYgKHN0cm5jbXAoY3AsICIqXFxcclxuIiwgNCkgPT0gMCkgewotCQkJCWlu
Y29tbWVudCA9IEZJTklTSElOR19DT01NRU5UOwotCQkJCWNwICs9IDQ7Ci0JCQl9IGVsc2UgaWYg
KHN0cm5jbXAoY3AsICIqXFxcbiIsIDMpID09IDApIHsKLQkJCQlpbmNvbW1lbnQgPSBGSU5JU0hJ
TkdfQ09NTUVOVDsKLQkJCQljcCArPSAzOwotCQkJfSBlbHNlIGlmIChzdHJuY21wKGNwLCAiKi8i
LCAyKSA9PSAwKSB7Ci0JCQkJaW5jb21tZW50ID0gTk9fQ09NTUVOVDsKLQkJCQljcCArPSAyOwot
CQkJfSBlbHNlCi0JCQkJY3AgKz0gMTsKLQkJCWNvbnRpbnVlOwotCQljYXNlIFNUQVJUSU5HX0NP
TU1FTlQ6Ci0JCQlpZiAoKmNwID09ICcqJykgewotCQkJCWluY29tbWVudCA9IENfQ09NTUVOVDsK
LQkJCQljcCArPSAxOwotCQkJfSBlbHNlIGlmICgqY3AgPT0gJy8nKSB7Ci0JCQkJaW5jb21tZW50
ID0gQ1hYX0NPTU1FTlQ7Ci0JCQkJY3AgKz0gMTsKLQkJCX0gZWxzZSB7Ci0JCQkJaW5jb21tZW50
ID0gTk9fQ09NTUVOVDsKLQkJCQlsaW5lc3RhdGUgPSBMU19ESVJUWTsKLQkJCX0KLQkJCWNvbnRp
bnVlOwotCQljYXNlIEZJTklTSElOR19DT01NRU5UOgotCQkJaWYgKCpjcCA9PSAnLycpIHsKLQkJ
CQlpbmNvbW1lbnQgPSBOT19DT01NRU5UOwotCQkJCWNwICs9IDE7Ci0JCQl9IGVsc2UKLQkJCQlp
bmNvbW1lbnQgPSBDX0NPTU1FTlQ7Ci0JCQljb250aW51ZTsKLQkJZGVmYXVsdDoKLQkJCWFib3J0
KCk7IC8qIGJ1ZyAqLwotCQl9Ci0JcmV0dXJuIChjcCk7Ci19Ci0KLS8qCi0gKiBTa2lwIG1hY3Jv
IGFyZ3VtZW50cy4KLSAqLwotc3RhdGljIGNvbnN0IGNoYXIgKgotc2tpcGFyZ3MoY29uc3QgY2hh
ciAqY3ApCi17Ci0JY29uc3QgY2hhciAqb2NwID0gY3A7Ci0JaW50IGxldmVsID0gMDsKLQljcCA9
IHNraXBjb21tZW50KGNwKTsKLQlpZiAoKmNwICE9ICcoJykKLQkJcmV0dXJuIChjcCk7Ci0JZG8g
ewotCQlpZiAoKmNwID09ICcoJykKLQkJCWxldmVsKys7Ci0JCWlmICgqY3AgPT0gJyknKQotCQkJ
bGV2ZWwtLTsKLQkJY3AgPSBza2lwY29tbWVudChjcCsxKTsKLQl9IHdoaWxlIChsZXZlbCAhPSAw
ICYmICpjcCAhPSAnXDAnKTsKLQlpZiAobGV2ZWwgPT0gMCkKLQkJcmV0dXJuIChjcCk7Ci0JZWxz
ZQotCS8qIFJld2luZCBhbmQgcmUtZGV0ZWN0IHRoZSBzeW50YXggZXJyb3IgbGF0ZXIuICovCi0J
CXJldHVybiAob2NwKTsKLX0KLQotLyoKLSAqIFNraXAgb3ZlciBhbiBpZGVudGlmaWVyLgotICov
Ci1zdGF0aWMgY29uc3QgY2hhciAqCi1za2lwc3ltKGNvbnN0IGNoYXIgKmNwKQotewotCXdoaWxl
ICghZW5kc3ltKCpjcCkpCi0JCSsrY3A7Ci0JcmV0dXJuIChjcCk7Ci19Ci0KLS8qCi0gKiBTa2lw
IHdoaXRlc3BhY2UgYW5kIHRha2UgYSBjb3B5IG9mIGFueSBmb2xsb3dpbmcgaWRlbnRpZmllci4K
LSAqLwotc3RhdGljIGNvbnN0IGNoYXIgKgotZ2V0c3ltKGNvbnN0IGNoYXIgKipjcHApCi17Ci0J
Y29uc3QgY2hhciAqY3AgPSAqY3BwLCAqc3ltOwotCi0JY3AgPSBza2lwY29tbWVudChjcCk7Ci0J
Y3AgPSBza2lwc3ltKHN5bSA9IGNwKTsKLQlpZiAoY3AgPT0gc3ltKQotCQlyZXR1cm4gTlVMTDsK
LQkqY3BwID0gY3A7Ci0JcmV0dXJuICh4c3RyZHVwKHN5bSwgY3ApKTsKLX0KLQotLyoKLSAqIENo
ZWNrIHRoYXQgcyAoYSBzeW1ib2wpIG1hdGNoZXMgdGhlIHN0YXJ0IG9mIHQsIGFuZCB0aGF0IHRo
ZQotICogZm9sbG93aW5nIGNoYXJhY3RlciBpbiB0IGlzIG5vdCBhIHN5bWJvbCBjaGFyYWN0ZXIu
IFJldHVybnMgYQotICogcG9pbnRlciB0byB0aGUgZm9sbG93aW5nIGNoYXJhY3RlciBpbiB0IGlm
IHRoZXJlIGlzIGEgbWF0Y2gsCi0gKiBvdGhlcndpc2UgTlVMTC4KLSAqLwotc3RhdGljIGNvbnN0
IGNoYXIgKgotbWF0Y2hzeW0oY29uc3QgY2hhciAqcywgY29uc3QgY2hhciAqdCkKLXsKLQl3aGls
ZSAoKnMgIT0gJ1wwJyAmJiAqdCAhPSAnXDAnKQotCQlpZiAoKnMgIT0gKnQpCi0JCQlyZXR1cm4g
KE5VTEwpOwotCQllbHNlCi0JCQkrK3MsICsrdDsKLQlpZiAoKnMgPT0gJ1wwJyAmJiBlbmRzeW0o
KnQpKQotCQlyZXR1cm4odCk7Ci0JZWxzZQotCQlyZXR1cm4oTlVMTCk7Ci19Ci0KLS8qCi0gKiBM
b29rIGZvciB0aGUgc3ltYm9sIGluIHRoZSBzeW1ib2wgdGFibGUuIElmIGl0IGlzIGZvdW5kLCB3
ZSByZXR1cm4KLSAqIHRoZSBzeW1ib2wgdGFibGUgaW5kZXgsIGVsc2Ugd2UgcmV0dXJuIC0xLgot
ICovCi1zdGF0aWMgaW50Ci1maW5kc3ltKGNvbnN0IGNoYXIgKipzdHJwKQotewotCWNvbnN0IGNo
YXIgKnN0cjsKLQlpbnQgc3ltaW5kOwotCi0Jc3RyID0gKnN0cnA7Ci0JKnN0cnAgPSBza2lwc3lt
KHN0cik7Ci0JaWYgKHN5bWxpc3QpIHsKLQkJaWYgKCpzdHJwID09IHN0cikKLQkJCXJldHVybiAo
LTEpOwotCQlpZiAoc3ltZGVwdGggJiYgZmlyc3RzeW0pCi0JCQlwcmludGYoIiVzJTNkIiwgemVy
b3N5bXMgPyAiIiA6ICJcbiIsIGRlcHRoKTsKLQkJZmlyc3RzeW0gPSB6ZXJvc3ltcyA9IGZhbHNl
OwotCQlwcmludGYoIiVzJS4qcyVzIiwKLQkJICAgICAgIHN5bWRlcHRoID8gIiAiIDogIiIsCi0J
CSAgICAgICAoaW50KSgqc3RycC1zdHIpLCBzdHIsCi0JCSAgICAgICBzeW1kZXB0aCA/ICIiIDog
IlxuIik7Ci0JCS8qIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIHZhbHVlIG9mIHRoZSBzeW1ib2wg
Ki8KLQkJcmV0dXJuICgwKTsKLQl9Ci0JZm9yIChzeW1pbmQgPSAwOyBzeW1pbmQgPCBuc3ltczsg
KytzeW1pbmQpIHsKLQkJaWYgKG1hdGNoc3ltKHN5bW5hbWVbc3ltaW5kXSwgc3RyKSAhPSBOVUxM
KSB7Ci0JCQlkZWJ1Z3N5bSgiZmluZHN5bSIsIHN5bWluZCk7Ci0JCQlyZXR1cm4gKHN5bWluZCk7
Ci0JCX0KLQl9Ci0JcmV0dXJuICgtMSk7Ci19Ci0KLS8qCi0gKiBSZXNvbHZlIGluZGlyZWN0IHN5
bWJvbCB2YWx1ZXMgdG8gdGhlaXIgZmluYWwgZGVmaW5pdGlvbnMuCi0gKi8KLXN0YXRpYyB2b2lk
Ci1pbmRpcmVjdHN5bSh2b2lkKQotewotCWNvbnN0IGNoYXIgKmNwOwotCWludCBjaGFuZ2VkLCBz
eW0sIGluZDsKLQotCWRvIHsKLQkJY2hhbmdlZCA9IDA7Ci0JCWZvciAoc3ltID0gMDsgc3ltIDwg
bnN5bXM7ICsrc3ltKSB7Ci0JCQlpZiAodmFsdWVbc3ltXSA9PSBOVUxMKQotCQkJCWNvbnRpbnVl
OwotCQkJY3AgPSB2YWx1ZVtzeW1dOwotCQkJaW5kID0gZmluZHN5bSgmY3ApOwotCQkJaWYgKGlu
ZCA9PSAtMSB8fCBpbmQgPT0gc3ltIHx8Ci0JCQkgICAgKmNwICE9ICdcMCcgfHwKLQkJCSAgICB2
YWx1ZVtpbmRdID09IE5VTEwgfHwKLQkJCSAgICB2YWx1ZVtpbmRdID09IHZhbHVlW3N5bV0pCi0J
CQkJY29udGludWU7Ci0JCQlkZWJ1Z3N5bSgiaW5kaXIuLi4iLCBzeW0pOwotCQkJdmFsdWVbc3lt
XSA9IHZhbHVlW2luZF07Ci0JCQlkZWJ1Z3N5bSgiLi4uZWN0c3ltIiwgc3ltKTsKLQkJCWNoYW5n
ZWQrKzsKLQkJfQotCX0gd2hpbGUgKGNoYW5nZWQpOwotfQotCi0vKgotICogQWRkIGEgc3ltYm9s
IHRvIHRoZSBzeW1ib2wgdGFibGUsIHNwZWNpZmllZCB3aXRoIHRoZSBmb3JtYXQgc3ltPXZhbAot
ICovCi1zdGF0aWMgdm9pZAotYWRkc3ltMShib29sIGlnbm9yZXRoaXMsIGJvb2wgZGVmaW5ldGhp
cywgY2hhciAqc3ltdmFsKQotewotCWNvbnN0IGNoYXIgKnN5bSwgKnZhbDsKLQotCXN5bSA9IHN5
bXZhbDsKLQl2YWwgPSBza2lwc3ltKHN5bSk7Ci0JaWYgKGRlZmluZXRoaXMgJiYgKnZhbCA9PSAn
PScpIHsKLQkJc3ltdmFsW3ZhbCAtIHN5bV0gPSAnXDAnOwotCQl2YWwgPSB2YWwgKyAxOwotCX0g
ZWxzZSBpZiAoKnZhbCA9PSAnXDAnKSB7Ci0JCXZhbCA9IGRlZmluZXRoaXMgPyAiMSIgOiBOVUxM
OwotCX0gZWxzZSB7Ci0JCXVzYWdlKCk7Ci0JfQotCWFkZHN5bTIoaWdub3JldGhpcywgc3ltLCB2
YWwpOwotfQotCi0vKgotICogQWRkIGEgc3ltYm9sIHRvIHRoZSBzeW1ib2wgdGFibGUuCi0gKi8K
LXN0YXRpYyB2b2lkCi1hZGRzeW0yKGJvb2wgaWdub3JldGhpcywgY29uc3QgY2hhciAqc3ltLCBj
b25zdCBjaGFyICp2YWwpCi17Ci0JY29uc3QgY2hhciAqY3AgPSBzeW07Ci0JaW50IHN5bWluZDsK
LQotCXN5bWluZCA9IGZpbmRzeW0oJmNwKTsKLQlpZiAoc3ltaW5kIDwgMCkgewotCQlpZiAobnN5
bXMgPj0gTUFYU1lNUykKLQkJCWVycngoMiwgInRvbyBtYW55IHN5bWJvbHMiKTsKLQkJc3ltaW5k
ID0gbnN5bXMrKzsKLQl9Ci0JaWdub3JlW3N5bWluZF0gPSBpZ25vcmV0aGlzOwotCXN5bW5hbWVb
c3ltaW5kXSA9IHN5bTsKLQl2YWx1ZVtzeW1pbmRdID0gdmFsOwotCWRlYnVnc3ltKCJhZGRzeW0i
LCBzeW1pbmQpOwotfQotCi1zdGF0aWMgdm9pZAotZGVidWdzeW0oY29uc3QgY2hhciAqd2h5LCBp
bnQgc3ltaW5kKQotewotCWRlYnVnKCIlcyAlcyVjJXMiLCB3aHksIHN5bW5hbWVbc3ltaW5kXSwK
LQkgICAgdmFsdWVbc3ltaW5kXSA/ICc9JyA6ICcgJywKLQkgICAgdmFsdWVbc3ltaW5kXSA/IHZh
bHVlW3N5bWluZF0gOiAidW5kZWYiKTsKLX0KLQotLyoKLSAqIEFkZCBzeW1ib2xzIHRvIHRoZSBz
eW1ib2wgdGFibGUgZnJvbSBhIGZpbGUgY29udGFpbmluZwotICogI2RlZmluZSBhbmQgI3VuZGVm
IHByZXByb2Nlc3NvciBkaXJlY3RpdmVzLgotICovCi1zdGF0aWMgdm9pZAotZGVmdW5kZWZpbGUo
Y29uc3QgY2hhciAqZm4pCi17Ci0JZmlsZW5hbWUgPSBmbjsKLQlpbnB1dCA9IGZvcGVuKGZuLCAi
cmIiKTsKLQlpZiAoaW5wdXQgPT0gTlVMTCkKLQkJZXJyKDIsICJjYW4ndCBvcGVuICVzIiwgZm4p
OwotCWxpbmVudW0gPSAwOwotCXdoaWxlIChkZWZ1bmRlZigpKQotCQk7Ci0JaWYgKGZlcnJvcihp
bnB1dCkpCi0JCWVycigyLCAiY2FuJ3QgcmVhZCAlcyIsIGZpbGVuYW1lKTsKLQllbHNlCi0JCWZj
bG9zZShpbnB1dCk7Ci0JaWYgKGluY29tbWVudCkKLQkJZXJyb3IoIkVPRiBpbiBjb21tZW50Iik7
Ci19Ci0KLS8qCi0gKiBSZWFkIGFuZCBwcm9jZXNzIG9uZSAjZGVmaW5lIG9yICN1bmRlZiBkaXJl
Y3RpdmUKLSAqLwotc3RhdGljIGJvb2wKLWRlZnVuZGVmKHZvaWQpCi17Ci0JY29uc3QgY2hhciAq
Y3AsICprdywgKnN5bSwgKnZhbCwgKmVuZDsKLQotCWNwID0gc2tpcGhhc2goKTsKLQlpZiAoY3Ag
PT0gTlVMTCkKLQkJcmV0dXJuIChmYWxzZSk7Ci0JaWYgKCpjcCA9PSAnXDAnKQotCQlnb3RvIGRv
bmU7Ci0JLyogc3RyaXAgdHJhaWxpbmcgd2hpdGVzcGFjZSwgYW5kIGRvIGEgZmFpcmx5IHJvdWdo
IGNoZWNrIHRvCi0JICAgYXZvaWQgdW5zdXBwb3J0ZWQgbXVsdGktbGluZSBwcmVwcm9jZXNzb3Ig
ZGlyZWN0aXZlcyAqLwotCWVuZCA9IGNwICsgc3RybGVuKGNwKTsKLQl3aGlsZSAoZW5kID4gdGxp
bmUgJiYgc3RyY2hyKCIgXHRcblxyIiwgZW5kWy0xXSkgIT0gTlVMTCkKLQkJLS1lbmQ7Ci0JaWYg
KGVuZCA+IHRsaW5lICYmIGVuZFstMV0gPT0gJ1xcJykKLQkJRWlvY2NjKCk7Ci0KLQlrdyA9IGNw
OwotCWlmICgoY3AgPSBtYXRjaHN5bSgiZGVmaW5lIiwga3cpKSAhPSBOVUxMKSB7Ci0JCXN5bSA9
IGdldHN5bSgmY3ApOwotCQlpZiAoc3ltID09IE5VTEwpCi0JCQllcnJvcigiTWlzc2luZyBtYWNy
byBuYW1lIGluICNkZWZpbmUiKTsKLQkJaWYgKCpjcCA9PSAnKCcpIHsKLQkJCXZhbCA9ICIxIjsK
LQkJfSBlbHNlIHsKLQkJCWNwID0gc2tpcGNvbW1lbnQoY3ApOwotCQkJdmFsID0gKGNwIDwgZW5k
KSA/IHhzdHJkdXAoY3AsIGVuZCkgOiAiIjsKLQkJfQotCQlkZWJ1ZygiI2RlZmluZSIpOwotCQlh
ZGRzeW0yKGZhbHNlLCBzeW0sIHZhbCk7Ci0JfSBlbHNlIGlmICgoY3AgPSBtYXRjaHN5bSgidW5k
ZWYiLCBrdykpICE9IE5VTEwpIHsKLQkJc3ltID0gZ2V0c3ltKCZjcCk7Ci0JCWlmIChzeW0gPT0g
TlVMTCkKLQkJCWVycm9yKCJNaXNzaW5nIG1hY3JvIG5hbWUgaW4gI3VuZGVmIik7Ci0JCWNwID0g
c2tpcGNvbW1lbnQoY3ApOwotCQlkZWJ1ZygiI3VuZGVmIik7Ci0JCWFkZHN5bTIoZmFsc2UsIHN5
bSwgTlVMTCk7Ci0JfSBlbHNlIHsKLQkJZXJyb3IoIlVucmVjb2duaXplZCBwcmVwcm9jZXNzb3Ig
ZGlyZWN0aXZlIik7Ci0JfQotCXNraXBsaW5lKGNwKTsKLWRvbmU6Ci0JZGVidWcoInBhcnNlciBs
aW5lICVkIHN0YXRlICVzIGNvbW1lbnQgJXMgbGluZSIsIGxpbmVudW0sCi0JICAgIGNvbW1lbnRf
bmFtZVtpbmNvbW1lbnRdLCBsaW5lc3RhdGVfbmFtZVtsaW5lc3RhdGVdKTsKLQlyZXR1cm4gKHRy
dWUpOwotfQotCi0vKgotICogQ29uY2F0ZW5hdGUgdHdvIHN0cmluZ3MgaW50byBuZXcgbWVtb3J5
LCBjaGVja2luZyBmb3IgZmFpbHVyZS4KLSAqLwotc3RhdGljIGNoYXIgKgotYXN0cmNhdChjb25z
dCBjaGFyICpzMSwgY29uc3QgY2hhciAqczIpCi17Ci0JY2hhciAqczsKLQlpbnQgbGVuOwotCXNp
emVfdCBzaXplOwotCi0JbGVuID0gc25wcmludGYoTlVMTCwgMCwgIiVzJXMiLCBzMSwgczIpOwot
CWlmIChsZW4gPCAwKQotCQllcnIoMiwgInNucHJpbnRmIik7Ci0Jc2l6ZSA9IChzaXplX3QpbGVu
ICsgMTsKLQlzID0gKGNoYXIgKiltYWxsb2Moc2l6ZSk7Ci0JaWYgKHMgPT0gTlVMTCkKLQkJZXJy
KDIsICJtYWxsb2MiKTsKLQlzbnByaW50ZihzLCBzaXplLCAiJXMlcyIsIHMxLCBzMik7Ci0JcmV0
dXJuIChzKTsKLX0KLQotLyoKLSAqIER1cGxpY2F0ZSBhIHNlZ21lbnQgb2YgYSBzdHJpbmcsIGNo
ZWNraW5nIGZvciBmYWlsdXJlLgotICovCi1zdGF0aWMgY29uc3QgY2hhciAqCi14c3RyZHVwKGNv
bnN0IGNoYXIgKnN0YXJ0LCBjb25zdCBjaGFyICplbmQpCi17Ci0Jc2l6ZV90IG47Ci0JY2hhciAq
czsKLQotCWlmIChlbmQgPCBzdGFydCkgYWJvcnQoKTsgLyogYnVnICovCi0JbiA9IChzaXplX3Qp
KGVuZCAtIHN0YXJ0KSArIDE7Ci0JcyA9IChjaGFyICopbWFsbG9jKG4pOwotCWlmIChzID09IE5V
TEwpCi0JCWVycigyLCAibWFsbG9jIik7Ci0Jc25wcmludGYocywgbiwgIiVzIiwgc3RhcnQpOwot
CXJldHVybiAocyk7Ci19Ci0KLS8qCi0gKiBEaWFnbm9zdGljcy4KLSAqLwotc3RhdGljIHZvaWQK
LWRlYnVnKGNvbnN0IGNoYXIgKm1zZywgLi4uKQotewotCXZhX2xpc3QgYXA7Ci0KLQlpZiAoZGVi
dWdnaW5nKSB7Ci0JCXZhX3N0YXJ0KGFwLCBtc2cpOwotCQl2d2FybngobXNnLCBhcCk7Ci0JCXZh
X2VuZChhcCk7Ci0JfQotfQotCi1zdGF0aWMgdm9pZAotZXJyb3IoY29uc3QgY2hhciAqbXNnKQot
ewotCWlmIChkZXB0aCA9PSAwKQotCQl3YXJueCgiJXM6ICVkOiAlcyIsIGZpbGVuYW1lLCBsaW5l
bnVtLCBtc2cpOwotCWVsc2UKLQkJd2FybngoIiVzOiAlZDogJXMgKCNpZiBsaW5lICVkIGRlcHRo
ICVkKSIsCi0JCSAgICBmaWxlbmFtZSwgbGluZW51bSwgbXNnLCBzdGlmbGluZVtkZXB0aF0sIGRl
cHRoKTsKLQljbG9zZWlvKCk7Ci0JZXJyeCgyLCAiT3V0cHV0IG1heSBiZSB0cnVuY2F0ZWQiKTsK
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L3VuaWZkZWYvdW5pZmRlZi5oIGIvU291
cmNlL1RoaXJkUGFydHkvdW5pZmRlZi91bmlmZGVmLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDJjZDcwNmQ5ODZhYi4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L3VuaWZkZWYvdW5pZmRlZi5oCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoYykgMjAxMiAtIDIwMTMgVG9ueSBGaW5jaCA8ZG90QGRvdGF0LmF0PgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UKLSAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCi0gKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotICogREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMKLSAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQotICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSAqIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkKLSAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotCi0jaW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNsdWRlIDxl
cnIuaD4KLSNpbmNsdWRlIDxzdGRhcmcuaD4KLSNpbmNsdWRlIDxzdGRib29sLmg+Ci0jaW5jbHVk
ZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNp
bmNsdWRlIDx1bmlzdGQuaD4KLQotLyogcG9ydGFiaWxpdHkgc3R1YnMgKi8KLQotI2RlZmluZSBm
YmlubW9kZShmcCkgKGZwKQotCi0jZGVmaW5lIHJlcGxhY2Uob2xkLG5ldykgcmVuYW1lKG9sZCxu
ZXcpCi0KLXN0YXRpYyBGSUxFICoKLW1rdGVtcG1vZGUoY2hhciAqdG1wLCBpbnQgbW9kZSkKLXsK
LQlpbnQgZmQgPSBta3N0ZW1wKHRtcCk7Ci0JaWYgKGZkIDwgMCkgcmV0dXJuIChOVUxMKTsKLQlm
Y2htb2QoZmQsIG1vZGUgJiAoU19JUldYVXxTX0lSV1hHfFNfSVJXWE8pKTsKLQlyZXR1cm4gKGZk
b3BlbihmZCwgIndiIikpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvdW5pZmRl
Zi92ZXJzaW9uLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS91bmlmZGVmL3ZlcnNpb24uaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGUzNDU4OGJjZDkwLi4wMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvdW5pZmRlZi92ZXJzaW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSAr
MCwwIEBACi0vKiBXZWJLaXQgdmVyc2lvbi5oIGZvciB1bmlmZGVmLiBUaGlzIGZpbGUganVzdCBu
ZWVkcyB0byBleGlzdC4gKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR0xpYi5jbWFrZSBi
L1NvdXJjZS9XZWJLaXQvR0xpYi5jbWFrZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NjkzYjNkM2JjZTk5Li4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9HTGliLmNtYWtl
CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotaW5jbHVkZSguLi9UaGlyZFBhcnR5L3Vu
aWZkZWYvQ01ha2VMaXN0cy50eHQpCi0KLW1hY3JvKEdFTkVSQVRFX0FQSV9IRUFERVJTIF9pbnB1
dF9oZWFkZXJfdGVtcGxhdGVzIF9kZXJpdmVkX3NvdXJjZXNfZGlyZWN0b3J5IF9vdXRwdXRfaGVh
ZGVycykKLSAgICBmb3JlYWNoIChoZWFkZXJfdGVtcGxhdGUgJHske19pbnB1dF9oZWFkZXJfdGVt
cGxhdGVzfX0pCi0gICAgICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoaGVhZGVyICR7aGVhZGVy
X3RlbXBsYXRlfSBOQU1FX1dMRSkKLSAgICAgICAgY29uZmlndXJlX2ZpbGUoJHtoZWFkZXJfdGVt
cGxhdGV9ICR7X2Rlcml2ZWRfc291cmNlc19kaXJlY3Rvcnl9LyR7aGVhZGVyfS50bXApCi0gICAg
ICAgIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICAgICAgICAgIE9VVFBVVCAke19kZXJpdmVkX3Nv
dXJjZXNfZGlyZWN0b3J5fS8ke2hlYWRlcn0KLSAgICAgICAgICAgIERFUEVORFMgJHtoZWFkZXJf
dGVtcGxhdGV9IHVuaWZkZWYKLSAgICAgICAgICAgIENPTU1BTkQgdW5pZmRlZiAke0FSR059IC14
MiAtbyAke19kZXJpdmVkX3NvdXJjZXNfZGlyZWN0b3J5fS8ke2hlYWRlcn0gJHtfZGVyaXZlZF9z
b3VyY2VzX2RpcmVjdG9yeX0vJHtoZWFkZXJ9LnRtcAotICAgICAgICAgICAgVkVSQkFUSU0KLSAg
ICAgICAgKQotICAgICAgICBsaXN0KEFQUEVORCAke19vdXRwdXRfaGVhZGVyc30gIiR7X2Rlcml2
ZWRfc291cmNlc19kaXJlY3Rvcnl9LyR7aGVhZGVyfSIpCi0gICAgICAgIHVuc2V0KGhlYWRlcikK
LSAgICBlbmRmb3JlYWNoICgpCi0KLSAgICBsaXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUyAkeyR7
X291dHB1dF9oZWFkZXJzfX0pCi1lbmRtYWNybygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRl
eCBmOGZhZjYyOGZhODkuLjBmNTM1NWIzMDU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCkBA
IC0xLDQgKzEsMyBAQAotaW5jbHVkZShHTGliLmNtYWtlKQogaW5jbHVkZShJbnNwZWN0b3JHUmVz
b3VyY2VzLmNtYWtlKQogCiBpZiAoRU5BQkxFX1BERkpTKQpAQCAtMjAsNiArMTksNyBAQCBmaWxl
KE1BS0VfRElSRUNUT1JZICR7V2ViS2l0Mkd0a19GUkFNRVdPUktfSEVBREVSU19ESVJ9L3dlYmtp
dDJndGstJHtXRUJLSVRHVEtfQQogZmlsZShNQUtFX0RJUkVDVE9SWSAke1dlYktpdDJHdGtfRlJB
TUVXT1JLX0hFQURFUlNfRElSfS93ZWJraXQyZ3RrLXdlYmV4dGVuc2lvbikKIAogY29uZmlndXJl
X2ZpbGUoU2hhcmVkL2dsaWIvQnVpbGRSZXZpc2lvbi5oLmluICR7V2ViS2l0Mkd0a19GUkFNRVdP
UktfSEVBREVSU19ESVJ9L0J1aWxkUmV2aXNpb24uaCkKK2NvbmZpZ3VyZV9maWxlKFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFZlcnNpb24uaC5pbiAke1dlYktpdDJHdGtfREVSSVZFRF9TT1VSQ0VT
X0RJUn0vd2Via2l0L1dlYktpdFZlcnNpb24uaCkKIGNvbmZpZ3VyZV9maWxlKGd0ay93ZWJraXQy
Z3RrLnBjLmluICR7V2ViS2l0Ml9QS0dDT05GSUdfRklMRX0gQE9OTFkpCiBjb25maWd1cmVfZmls
ZShndGsvd2Via2l0Mmd0ay13ZWItZXh0ZW5zaW9uLnBjLmluICR7V2ViS2l0MldlYkV4dGVuc2lv
bl9QS0dDT05GSUdfRklMRX0gQE9OTFkpCiAKQEAgLTQ4LDIwICs0OCw2IEBAIGVuZGlmICgpCiAK
IHNldChXZWJLaXRfVVNFX1BSRUZJWF9IRUFERVIgT04pCiAKLXNldChBUElfSU5DTFVERV9QUkVG
SVggIndlYmtpdDIiKQotc2V0KEFQSV9TSU5HTEVfSEVBREVSX0NIRUNLICIjaWYgIWRlZmluZWQo
X19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCi0j
ZXJyb3IgXCJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5
LlwiCi0jZW5kaWYiCi0pCi1zZXQoSU5KRUNURURfQlVORExFX0FQSV9TSU5HTEVfSEVBREVSX0NI
RUNLICIjaWYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKSAmJiAh
ZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQotI2Vycm9yIFwiT25seSA8d2Via2l0Mi93ZWJr
aXQtd2ViLWV4dGVuc2lvbi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuXCIKLSNlbmRpZiIK
LSkKLXNldChTSEFSRURfQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0sgIiNpZiAhZGVmaW5lZChfX1dF
QktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikgJiYgIWRl
ZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKQotI2Vycm9yIFwiT25seSA8
d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS5cIgotI2VuZGlmIgot
KQotCiBsaXN0KEFQUEVORCBXZWJLaXRfVU5JRklFRF9TT1VSQ0VfTElTVF9GSUxFUwogICAgICJT
b3VyY2VzR1RLLnR4dCIKICkKQEAgLTEyOCw5OSArMTE0LDk0IEBAIGVsc2UgKCkKICAgICBzZXQo
R1RLX1BLR0NPTkZJR19QQUNLQUdFIGd0aystMy4wKQogZW5kaWYgKCkKIAotc2V0KFdlYktpdDJH
VEtfSEVBREVSX1RFTVBMQVRFUwotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdEFwcGxpY2F0aW9uSW5mby5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmguaW4KLSAgICAke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRBdXRvY2xlYW51cHMuaC5pbgotICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmguaW4K
LSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRCYWNrRm9yd2FyZExp
c3QuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEJhY2tG
b3J3YXJkTGlzdEl0ZW0uaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdENyZWRlbnRpYWwuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdENvbnRleHRNZW51LmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVudUFjdGlvbnMuaC5pbgotICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvbnRleHRNZW51SXRlbS5oLmluCi0gICAgJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5oLmluCi0gICAg
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RGVmaW5lcy5oLmluCi0gICAg
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Np
b25SZXF1ZXN0LmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXREb3dubG9hZC5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0RWRpdGluZ0NvbW1hbmRzLmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRFZGl0b3JTdGF0ZS5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0RXJyb3IuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdEZhdmljb25EYXRhYmFzZS5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0LmguaW4KLSAgICAke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGaW5kQ29udHJvbGxlci5oLmluCi0gICAg
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1
ZXN0LmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRHZW9s
b2NhdGlvbk1hbmFnZXIuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaC5pbgotICAgICR7V0VCS0lUX0RJ
Un0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEhpdFRlc3RSZXN1bHQuaC5pbgotICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5oLmlu
Ci0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5zdGFsbE1pc3Np
bmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdC5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5oLmluCi0gICAgJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdC5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
TWVtb3J5UHJlc3N1cmVTZXR0aW5ncy5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0TWltZUluZm8uaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25BY3Rpb24uaC5pbgotICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi5oLmluCi0g
ICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmV0d29ya1Byb3h5U2V0
dGluZ3MuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXROb3RpZmljYXRpb24uaC5pbgotICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE9wdGlvbk1lbnUuaC5pbgotICAgICR7V0VCS0lUX0RJ
Un0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE9wdGlvbk1lbnVJdGVtLmguaW4KLSAgICAke1dF
QktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQZXJtaXNzaW9uUmVxdWVzdC5oLmlu
Ci0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UGx1Z2luLmguaW4K
LSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQb2xpY3lEZWNpc2lv
bi5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UmVzcG9u
c2VQb2xpY3lEZWNpc2lvbi5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0U2NyaXB0RGlhbG9nLmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRTZWN1cml0eU1hbmFnZXIuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFNlY3VyaXR5T3JpZ2luLmguaW4KLSAgICAke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5oLmluCi0gICAgJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJUmVxdWVzdC5oLmluCi0gICAgJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJUmVzcG9uc2UuaC5pbgotICAgICR7
V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaC5p
bgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlLmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRV
UklVdGlsaXRpZXMuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFVzZXJDb250ZW50LmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuaC5pbgotICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2Vy
TWVzc2FnZS5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VmVyc2lvbi5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
V2ViQ29udGV4dC5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViUmVzb3VyY2UuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXcuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhLmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0
LmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRl
RGF0YU1hbmFnZXIuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFdpbmRvd1Byb3BlcnRpZXMuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFdlYnNpdGVQb2xpY2llcy5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5oLmluCi0pCi0KIHNldChXZWJLaXQyR1RL
X0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXZWJLaXQyR3RrX0RFUklWRURfU09VUkNFU19ESVJ9
L3dlYmtpdC9XZWJLaXRFbnVtVHlwZXMuaAorICAgICR7V2ViS2l0Mkd0a19ERVJJVkVEX1NPVVJD
RVNfRElSfS93ZWJraXQvV2ViS2l0VmVyc2lvbi5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQVBJL2d0ayR7R1RLX0FQSV9WRVJTSU9OfS9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaAorICAg
ICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGske0dUS19BUElfVkVSU0lPTn0vV2ViS2l0
SW5wdXRNZXRob2RDb250ZXh0LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3Rr
JHtHVEtfQVBJX1ZFUlNJT059L1dlYktpdFdlYlZpZXdCYXNlLmgKKyAgICAke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEFwcGxpY2F0aW9uSW5mby5oCisgICAgJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuaAorICAg
ICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKKyAg
ICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9tYXRpb25TZXNzaW9u
LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJk
TGlzdC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9y
d2FyZExpc3RJdGVtLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dENvbG9yQ2hvb3NlclJlcXVlc3QuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0Q3JlZGVudGlhbC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRDb250ZXh0TWVudS5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRDb250ZXh0TWVudUFjdGlvbnMuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0Q29va2llTWFuYWdlci5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXREZWZpbmVzLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdERldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdC5oCisgICAgJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5oCisgICAgJHtXRUJLSVRfRElS
fS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFZGl0aW5nQ29tbWFuZHMuaAorICAgICR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RWRpdG9yU3RhdGUuaAorICAgICR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuaAorICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmgKKyAgICAke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdC5oCisgICAgJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5oCisgICAg
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVl
c3QuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9yd2FyZERl
Y2xhcmF0aW9ucy5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRH
ZW9sb2NhdGlvbk1hbmFnZXIuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCisgICAgJHtXRUJLSVRfRElSfS9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRUZXN0UmVzdWx0LmgKKyAgICAke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlz
c2lvblJlcXVlc3QuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
SmF2YXNjcmlwdFJlc3VsdC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgKKyAgICAke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1lbW9yeVByZXNzdXJlU2V0dGluZ3MuaAorICAgICR7
V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWltZUluZm8uaAorICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvbkFjdGlvbi5oCisgICAg
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb24uaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmV0d29y
a1Byb3h5U2V0dGluZ3MuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0Tm90aWZpY2F0aW9uLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE9wdGlvbk1lbnUuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0T3B0aW9uTWVudUl0ZW0uaAorICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UGVybWlzc2lvblJlcXVlc3QuaAorICAgICR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UGx1Z2luLmgKICAgICAke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuaAor
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9saWN5RGVjaXNpb24u
aAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRDdXN0b21X
aWRnZXQuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRP
cGVyYXRpb24uaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVz
cG9uc2VQb2xpY3lEZWNpc2lvbi5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRTY3JpcHREaWFsb2cuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0U2VjdXJpdHlNYW5hZ2VyLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFNlY3VyaXR5T3JpZ2luLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVSSVJlcXVlc3QuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VVJJUmVzcG9uc2UuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCisgICAgJHtXRUJLSVRfRElSfS9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklVdGlsaXRpZXMuaAorICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnQuaAorICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5oCisgICAgJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuaAor
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VXNlck1lc3NhZ2UuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViQ29udGV4dC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJJbnNwZWN0b3IuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViUmVzb3VyY2UuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlldy5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3U2Vzc2lvblN0YXRlLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYnNpdGVEYXRhLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYnNpdGVEYXRhQWNjZXNzUGVybWlzc2lvblJlcXVlc3QuaAorICAgICR7V0VCS0lUX0RJ
Un0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmgKKyAgICAke1dF
QktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdpbmRvd1Byb3BlcnRpZXMuaAorICAg
ICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vic2l0ZVBvbGljaWVzLmgK
ICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAogKQogCiBzZXQo
V2ViS2l0MldlYkV4dGVuc2lvbl9JTlNUQUxMRURfSEVBREVSUwogICAgICR7V2ViS2l0Mkd0a19E
RVJJVkVEX1NPVVJDRVNfRElSfS93ZWJraXQvV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5oCi0p
Ci0KLXNldChXZWJLaXQyV2ViRXh0ZW5zaW9uX0hFQURFUl9URU1QTEFURVMKLSAgICAke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0Q29uc29sZU1l
c3NhZ2UuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ2xpYi9XZWJLaXRGcmFtZS5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFNjcmlwdFdvcmxkLmguaW4KLSAgICAke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViRWRpdG9y
LmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvV2ViS2l0V2ViRXh0ZW5zaW9uLmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzLmgu
aW4KLSAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIv
V2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuaC5pbgotICAgICR7V0VCS0lU
X0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi93ZWJraXQtd2ViLWV4dGVu
c2lvbi5oLmluCisgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvV2ViS2l0Q29uc29sZU1lc3NhZ2UuaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmgKKyAgICAke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRTY3JpcHRXb3JsZC5oCisg
ICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0
V2ViRWRpdG9yLmgKKyAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24uaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbkF1dG9jbGVhbnVwcy5o
CisgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2Vi
S2l0V2ViSGl0VGVzdFJlc3VsdC5oCisgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5oCisgICAgJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvd2Via2l0LXdlYi1leHRlbnNpb24uaAogKQog
CiBzZXQoV2ViS2l0RE9NX0lOU1RBTExFRF9IRUFERVJTCkBAIC00NzQsNiArNDU1LDcgQEAgbGlz
dChBUFBFTkQgV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9V
SVByb2Nlc3MvQVBJL0MvZ2xpYiIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL0Mv
Z3RrIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYiIKKyAgICAiJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ayR7R1RLX0FQSV9WRVJTSU9OfSIKICAgICAiJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ayIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvSW5zcGVj
dG9yL2dsaWIiCkBAIC01NjIsMjIgKzU0NCw2IEBAIGlmIChFTkFCTEVfTUVESUFfU1RSRUFNKQog
ICAgICkKIGVuZGlmICgpCiAKLUdFTkVSQVRFX0FQSV9IRUFERVJTKFdlYktpdDJHVEtfSEVBREVS
X1RFTVBMQVRFUwotICAgICR7V2ViS2l0Mkd0a19ERVJJVkVEX1NPVVJDRVNfRElSfS93ZWJraXQK
LSAgICBXZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFERVJTCi0gICAgIi1EUExBVEZPUk0oR1RLKT0x
IgotICAgICItRFBMQVRGT1JNKFdQRSk9MCIKLSAgICAiLURVU0UoR1RLNCk9JDxCT09MOiR7VVNF
X0dUSzR9PiIKLSkKLQotR0VORVJBVEVfQVBJX0hFQURFUlMoV2ViS2l0MldlYkV4dGVuc2lvbl9I
RUFERVJfVEVNUExBVEVTCi0gICAgJHtXZWJLaXQyR3RrX0RFUklWRURfU09VUkNFU19ESVJ9L3dl
YmtpdAotICAgIFdlYktpdDJXZWJFeHRlbnNpb25fSU5TVEFMTEVEX0hFQURFUlMKLSAgICAiLURQ
TEFURk9STShHVEspPTEiCi0gICAgIi1EUExBVEZPUk0oV1BFKT0wIgotICAgICItRFVTRShHVEs0
KT0kPEJPT0w6JHtVU0VfR1RLNH0+IgotKQotCiAjIFRvIGdlbmVyYXRlIFdlYktpdEVudW1UeXBl
cy5oIHdlIHdhbnQgdG8gdXNlIGFsbCBpbnN0YWxsZWQgaGVhZGVycywgZXhjZXB0IFdlYktpdEVu
dW1UeXBlcy5oIGl0c2VsZi4KIHNldChXZWJLaXQyR1RLX0VOVU1fR0VORVJBVElPTl9IRUFERVJT
ICR7V2ViS2l0MkdUS19JTlNUQUxMRURfSEVBREVSU30pCiBsaXN0KFJFTU9WRV9JVEVNIFdlYktp
dDJHVEtfRU5VTV9HRU5FUkFUSU9OX0hFQURFUlMgJHtXZWJLaXQyR3RrX0RFUklWRURfU09VUkNF
U19ESVJ9L3dlYmtpdC9XZWJLaXRFbnVtVHlwZXMuaCkKQEAgLTcxOCw2ICs2ODQsMTEgQEAgYWRk
X2N1c3RvbV9jb21tYW5kKAogICAgIERFUEVORFMgJHtXZWJLaXQyR3RrX0RFUklWRURfU09VUkNF
U19ESVJ9L3dlYmtpdAogICAgIENPTU1BTkQgbG4gLW4gLXMgLWYgJHtXZWJLaXQyR3RrX0RFUklW
RURfU09VUkNFU19ESVJ9L3dlYmtpdCAke1dlYktpdDJHdGtfREVSSVZFRF9TT1VSQ0VTX0RJUn0v
d2Via2l0MgogKQorYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke1dlYktpdDJHdGtf
RlJBTUVXT1JLX0hFQURFUlNfRElSfS93ZWJraXQyZ3RrLSR7V0VCS0lUR1RLX0FQSV9WRVJTSU9O
fS93ZWJraXQyCisgICAgREVQRU5EUyAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrJHtH
VEtfQVBJX1ZFUlNJT059CisgICAgQ09NTUFORCBsbiAtbiAtcyAtZiAke1dFQktJVF9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvZ3RrJHtHVEtfQVBJX1ZFUlNJT059ICR7V2ViS2l0Mkd0a19GUkFNRVdPUktf
SEVBREVSU19ESVJ9L3dlYmtpdDJndGstJHtXRUJLSVRHVEtfQVBJX1ZFUlNJT059L3dlYmtpdDIK
KykKIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQgJHtXZWJLaXQyR3RrX0ZSQU1FV09S
S19IRUFERVJTX0RJUn0vd2Via2l0Mmd0ay13ZWJleHRlbnNpb24vd2Via2l0MgogICAgIERFUEVO
RFMgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsKQEAgLTcz
MSw2ICs3MDIsNyBAQCBhZGRfY3VzdG9tX2NvbW1hbmQoCiBhZGRfY3VzdG9tX3RhcmdldChXZWJL
aXQtZmFrZS1hcGktaGVhZGVycwogICAgIERFUEVORFMgJHtXZWJLaXQyR3RrX0ZSQU1FV09SS19I
RUFERVJTX0RJUn0vd2Via2l0MgogICAgICAgICAgICAgJHtXZWJLaXQyR3RrX0RFUklWRURfU09V
UkNFU19ESVJ9L3dlYmtpdDIKKyAgICAgICAgICAgICR7V2ViS2l0Mkd0a19GUkFNRVdPUktfSEVB
REVSU19ESVJ9L3dlYmtpdDJndGstJHtXRUJLSVRHVEtfQVBJX1ZFUlNJT059L3dlYmtpdDIKICAg
ICAgICAgICAgICR7V2ViS2l0Mkd0a19GUkFNRVdPUktfSEVBREVSU19ESVJ9L3dlYmtpdDJndGst
d2ViZXh0ZW5zaW9uL3dlYmtpdDIKICAgICAgICAgICAgICR7V2ViS2l0Mkd0a19GUkFNRVdPUktf
SEVBREVSU19ESVJ9L3dlYmtpdDJndGstd2ViZXh0ZW5zaW9uL3dlYmtpdGRvbQogKQpAQCAtNzcy
LDE5ICs3NDQsMTkgQEAgR0lfSU5UUk9TUEVDVChXZWJLaXQyV2ViRXh0ZW5zaW9uICR7V0VCS0lU
R1RLX0FQSV9WRVJTSU9OfSB3ZWJraXQyL3dlYmtpdC13ZWItZXgKICAgICBTT1VSQ0VTCiAgICAg
ICAgICR7V2ViS2l0RE9NX0lOU1RBTExFRF9IRUFERVJTfQogICAgICAgICAke1dlYktpdDJXZWJF
eHRlbnNpb25fSU5TVEFMTEVEX0hFQURFUlN9Ci0gICAgICAgICR7V2ViS2l0Mkd0a19ERVJJVkVE
X1NPVVJDRVNfRElSfS93ZWJraXQvV2ViS2l0Q29udGV4dE1lbnUuaAotICAgICAgICAke1dlYktp
dDJHdGtfREVSSVZFRF9TT1VSQ0VTX0RJUn0vd2Via2l0L1dlYktpdENvbnRleHRNZW51QWN0aW9u
cy5oCi0gICAgICAgICR7V2ViS2l0Mkd0a19ERVJJVkVEX1NPVVJDRVNfRElSfS93ZWJraXQvV2Vi
S2l0Q29udGV4dE1lbnVJdGVtLmgKLSAgICAgICAgJHtXZWJLaXQyR3RrX0RFUklWRURfU09VUkNF
U19ESVJ9L3dlYmtpdC9XZWJLaXRIaXRUZXN0UmVzdWx0LmgKLSAgICAgICAgJHtXZWJLaXQyR3Rr
X0RFUklWRURfU09VUkNFU19ESVJ9L3dlYmtpdC9XZWJLaXRVc2VyTWVzc2FnZS5oCi0gICAgICAg
ICR7V2ViS2l0Mkd0a19ERVJJVkVEX1NPVVJDRVNfRElSfS93ZWJraXQvV2ViS2l0VVJJUmVxdWVz
dC5oCi0gICAgICAgICR7V2ViS2l0Mkd0a19ERVJJVkVEX1NPVVJDRVNfRElSfS93ZWJraXQvV2Vi
S2l0VVJJUmVzcG9uc2UuaAogICAgICAgICBTaGFyZWQvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1l
bnUuY3BwCiAgICAgICAgIFNoYXJlZC9BUEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVudUl0ZW0uY3Bw
CiAgICAgICAgIFNoYXJlZC9BUEkvZ2xpYi9XZWJLaXRIaXRUZXN0UmVzdWx0LmNwcAogICAgICAg
ICBTaGFyZWQvQVBJL2dsaWIvV2ViS2l0VXNlck1lc3NhZ2UuY3BwCiAgICAgICAgIFNoYXJlZC9B
UEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0LmNwcAogICAgICAgICBTaGFyZWQvQVBJL2dsaWIvV2Vi
S2l0VVJJUmVzcG9uc2UuY3BwCisgICAgICAgIFVJUHJvY2Vzcy9BUEkvZ3RrJHtHVEtfQVBJX1ZF
UlNJT059L1dlYktpdENvbnRleHRNZW51SXRlbS5oCisgICAgICAgIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdENvbnRleHRNZW51LmgKKyAgICAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29u
dGV4dE1lbnVBY3Rpb25zLmgKKyAgICAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SGl0VGVz
dFJlc3VsdC5oCisgICAgICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZXNzYWdlLmgK
KyAgICAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5oCisgICAgICAgIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlc3BvbnNlLmgKICAgICAgICAgV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ2xpYgogICAgICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9nbGliL0RPTQogICAgIE5PX0lNUExJQ0lUX1NPVVJDRVMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNt
YWtlCmluZGV4IGNhMzk5ZDM5ZGY5MS4uYTQ4ZmJjZDkyMTIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUu
Y21ha2UKQEAgLTEsNiArMSw1IEBACi1pbmNsdWRlKEdOVUluc3RhbGxEaXJzKQotaW5jbHVkZShH
TGliLmNtYWtlKQogaW5jbHVkZShJbnNwZWN0b3JHUmVzb3VyY2VzLmNtYWtlKQoraW5jbHVkZShH
TlVJbnN0YWxsRGlycykKIAogaWYgKEVOQUJMRV9QREZKUykKICAgICBpbmNsdWRlKFBkZkpTR1Jl
c291cmNlcy5jbWFrZSkKQEAgLTIyLDYgKzIxLDcgQEAgZmlsZShNQUtFX0RJUkVDVE9SWSAke0ZP
UldBUkRJTkdfSEVBREVSU19XUEVfRE9NX0RJUn0pCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7Rk9S
V0FSRElOR19IRUFERVJTX1dQRV9KU0NfRElSfSkKIAogY29uZmlndXJlX2ZpbGUoU2hhcmVkL2ds
aWIvQnVpbGRSZXZpc2lvbi5oLmluICR7Rk9SV0FSRElOR19IRUFERVJTX1dQRV9ESVJ9L0J1aWxk
UmV2aXNpb24uaCkKK2NvbmZpZ3VyZV9maWxlKFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFZlcnNp
b24uaC5pbiAke0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0vV2ViS2l0VmVyc2lvbi5oKQog
Y29uZmlndXJlX2ZpbGUod3BlL3dwZS13ZWJraXQucGMuaW4gJHtXUEVfUEtHQ09ORklHX0ZJTEV9
IEBPTkxZKQogY29uZmlndXJlX2ZpbGUod3BlL3dwZS13ZWItZXh0ZW5zaW9uLnBjLmluICR7V1BF
V2ViRXh0ZW5zaW9uX1BLR0NPTkZJR19GSUxFfSBAT05MWSkKIGNvbmZpZ3VyZV9maWxlKHdwZS93
cGUtd2Via2l0LXVuaW5zdGFsbGVkLnBjLmluICR7Q01BS0VfQklOQVJZX0RJUn0vd3BlLXdlYmtp
dC0ke1dQRV9BUElfVkVSU0lPTn0tdW5pbnN0YWxsZWQucGMgQE9OTFkpCkBAIC01MSwyMCArNTEs
NiBAQCBlbmRpZiAoKQogCiBzZXQoV2ViS2l0X1VTRV9QUkVGSVhfSEVBREVSIE9OKQogCi1zZXQo
UExBVEZPUk1fSU5DTFVERV9QUkVGSVggIndwZSIpCi1zZXQoQVBJX1NJTkdMRV9IRUFERVJfQ0hF
Q0sgIiNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQy
X0NPTVBJTEFUSU9OKQotI2Vycm9yIFwiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVk
ZWQgZGlyZWN0bHkuXCIKLSNlbmRpZiIKLSkKLXNldChJTkpFQ1RFRF9CVU5ETEVfQVBJX1NJTkdM
RV9IRUFERVJfQ0hFQ0sgIiNpZiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5T
SURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCi0jZXJyb3IgXCJPbmx5IDx3
cGUvd2Via2l0LXdlYi1leHRlbnNpb24uaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LlwiCi0j
ZW5kaWYiCi0pCi1zZXQoU0hBUkVEX0FQSV9TSU5HTEVfSEVBREVSX0NIRUNLICIjaWYgIWRlZmlu
ZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikg
JiYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKQotI2Vycm9yIFwi
T25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuXCIKLSNlbmRpZiIK
LSkKLQogYWRkX2N1c3RvbV90YXJnZXQod2Via2l0d3BlLWZvcndhcmRpbmctaGVhZGVycwogICAg
IENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9nZW5lcmF0
ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtXRUJLSVRfRElSfSAtLW91
dHB1dCAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9IC0tcGxhdGZvcm0gd3BlIC0tcGxhdGZvcm0g
c291cAogKQpAQCAtMTY4LDg0ICsxNTQsOTAgQEAgYWRkX2N1c3RvbV9jb21tYW5kKAogICAgIFZF
UkJBVElNCiApCiAKLXNldChXUEVfQVBJX0hFQURFUl9URU1QTEFURVMKLSAgICAke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRBcHBsaWNhdGlvbkluZm8uaC5pbgotICAgICR7
V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVz
dC5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0b2Ns
ZWFudXBzLmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRB
dXRvbWF0aW9uU2Vzc2lvbi5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0QmFja0ZvcndhcmRMaXN0LmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtLmguaW4KLSAgICAke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDcmVkZW50aWFsLmguaW4KLSAgICAke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVudS5oLmluCi0gICAgJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnVBY3Rpb25zLmgu
aW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVu
dUl0ZW0uaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENv
b2tpZU1hbmFnZXIuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdERlZmluZXMuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdERldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdC5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RG93bmxvYWQuaC5pbgotICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEVkaXRpbmdDb21tYW5kcy5oLmluCi0gICAgJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RWRpdG9yU3RhdGUuaC5pbgotICAgICR7
V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEVycm9yLmguaW4KLSAgICAke1dF
QktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGYXZpY29uRGF0YWJhc2UuaC5pbgot
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZpbGVDaG9vc2VyUmVx
dWVzdC5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Rmlu
ZENvbnRyb2xsZXIuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyLmguaW4KLSAgICAke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
LmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRIaXRUZXN0
UmVzdWx0LmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJ
bnB1dE1ldGhvZENvbnRleHQuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuaC5p
bgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEphdmFzY3JpcHRS
ZXN1bHQuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdE1lbW9yeVByZXNzdXJlU2V0dGluZ3MuaC5pbgotICAgICR7
V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1pbWVJbmZvLmguaW4KLSAgICAk
e1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uLmgu
aW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb24uaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdE5ldHdvcmtQcm94eVNldHRpbmdzLmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oLmluCi0g
ICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Tm90aWZpY2F0aW9uLmgu
aW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRPcHRpb25NZW51
LmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRPcHRpb25N
ZW51SXRlbS5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
UGVybWlzc2lvblJlcXVlc3QuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFBsdWdpbi5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0UG9saWN5RGVjaXNpb24uaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24uaC5pbgotICAgICR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNjcmlwdERpYWxvZy5oLmluCi0gICAgJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2VjdXJpdHlNYW5hZ2VyLmguaW4K
LSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZWN1cml0eU9yaWdp
bi5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGlu
Z3MuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVJl
cXVlc3QuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVS
SVJlc3BvbnNlLmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRVUklTY2hlbWVSZXF1ZXN0LmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJVXRpbGl0aWVzLmguaW4KLSAgICAke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudC5oLmluCi0gICAgJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5oLmlu
Ci0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnRN
YW5hZ2VyLmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0VXNlck1lc3NhZ2UuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFZlcnNpb24uaC5pbgotICAgICR7V0VCS0lUX0RJUn0vVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuaC5pbgotICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlJlc291cmNlLmguaW4KLSAgICAke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmguaW4KLSAgICAke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3U2Vzc2lvblN0YXRlLmguaW4KLSAg
ICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YS5oLmlu
Ci0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFB
Y2Nlc3NQZXJtaXNzaW9uUmVxdWVzdC5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmguaW4KLSAgICAke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXaW5kb3dQcm9wZXJ0aWVzLmguaW4KLSAgICAke1dF
QktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlUG9saWNpZXMuaC5pbgot
KQotCiBzZXQoV1BFX0FQSV9JTlNUQUxMRURfSEVBREVSUwogICAgICR7REVSSVZFRF9TT1VSQ0VT
X1dQRV9BUElfRElSfS9XZWJLaXRFbnVtVHlwZXMuaAorICAgICR7REVSSVZFRF9TT1VSQ0VTX1dQ
RV9BUElfRElSfS9XZWJLaXRWZXJzaW9uLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdEFwcGxpY2F0aW9uSW5mby5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuaAorICAgICR7V0VCS0lUX0RJ
Un0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0QXV0b2NsZWFudXBzLmgKKyAgICAke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmgKKyAgICAke1dF
QktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5oCisgICAg
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVt
LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENyZWRlbnRpYWwu
aAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Q29sb3IuaAorICAg
ICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Q29udGV4dE1lbnUuaAorICAg
ICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Q29udGV4dE1lbnVBY3Rpb25z
LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbnRleHRNZW51
SXRlbS5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRDb29raWVN
YW5hZ2VyLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdERlZmlu
ZXMuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0RGV2aWNlSW5m
b1Blcm1pc3Npb25SZXF1ZXN0LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3Bl
L1dlYktpdERvd25sb2FkLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dl
YktpdEVkaXRpbmdDb21tYW5kcy5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXRFZGl0b3JTdGF0ZS5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXRFcnJvci5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRGYXZpY29uRGF0YWJhc2UuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdEZpbmRDb250cm9sbGVyLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9BUEkvd3BlL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5oCisgICAgJHtXRUJLSVRfRElS
fS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuaAorICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRIaXRUZXN0
UmVzdWx0LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdElucHV0
TWV0aG9kQ29udGV4dC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmgKKyAgICAke1dF
QktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuaAorICAg
ICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRNZW1vcnlQcmVzc3VyZVNldHRpbmdzLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdE1pbWVJbmZvLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdE5hdmlnYXRpb25BY3Rpb24uaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmgKKyAgICAke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE5ldHdvcmtQcm94eVNldHRpbmdzLmgKKyAgICAk
e1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE5v
dGlmaWNhdGlvbi5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRP
cHRpb25NZW51LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE9w
dGlvbk1lbnVJdGVtLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktp
dFBlcm1pc3Npb25SZXF1ZXN0LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3Bl
L1dlYktpdFBsdWdpbi5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRQb2xpY3lEZWNpc2lvbi5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXRSZWN0YW5nbGUuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2Vi
S2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbi5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRTY3JpcHREaWFsb2cuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0U2VjdXJpdHlNYW5hZ2VyLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvd3BlL1dlYktpdFNlY3VyaXR5T3JpZ2luLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNldHRpbmdzLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvd3BlL1dlYktpdFVSSVJlcXVlc3QuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0VVJJUmVzcG9uc2UuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCisgICAgJHtXRUJLSVRfRElSfS9V
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCisgICAgJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklVdGlsaXRpZXMuaAorICAgICR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VXNlckNvbnRlbnQuaAorICAgICR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5oCisg
ICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVc2VyQ29udGVudE1hbmFn
ZXIuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0VXNlck1lc3NhZ2UuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0V2ViQ29udGV4dC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXRXZWJSZXNvdXJjZS5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXRXZWJWaWV3LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktp
dFdlYlZpZXdCYWNrZW5kLmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dl
YktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQ
SS93cGUvV2ViS2l0V2Vic2l0ZURhdGEuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQ
SS93cGUvV2ViS2l0V2Vic2l0ZURhdGFBY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdC5oCisgICAgJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuaAor
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2luZG93UHJvcGVydGll
cy5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJzaXRlUG9s
aWNpZXMuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvd2Via2l0LmgKICkK
IAogc2V0KFdQRV9XRUJfRVhURU5TSU9OX0FQSV9JTlNUQUxMRURfSEVBREVSUwogICAgICR7REVS
SVZFRF9TT1VSQ0VTX1dQRV9BUElfRElSfS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgKKyAg
ICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRD
b25zb2xlTWVzc2FnZS5oCisgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS93cGUvV2ViS2l0RnJhbWUuaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFNjcmlwdFdvcmxkLmgKKyAgICAke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJFZGl0b3IuaAor
ICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktp
dFdlYkV4dGVuc2lvbi5oCisgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS93cGUvV2ViS2l0V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzLmgKKyAgICAke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJIaXRUZXN0
UmVzdWx0LmgKKyAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L3dwZS9XZWJLaXRXZWJQYWdlLmgKKyAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL3dwZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCiAgICAgJHtXRUJLSVRfRElS
fS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL3dlYmtpdGRvbS5oCiAgICAg
JHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktp
dERPTURlZmluZXMuaAogICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvd3BlL0RPTS9XZWJLaXRET01Eb2N1bWVudC5oCkBAIC0yNTQsMzQgKzI0Niw2IEBAIHNl
dChXUEVfV0VCX0VYVEVOU0lPTl9BUElfSU5TVEFMTEVEX0hFQURFUlMKICAgICAke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NT2JqZWN0
LmgKICkKIAotc2V0KFdQRV9XRUJfRVhURU5TSU9OX0FQSV9IRUFERVJfVEVNUExBVEVTCi0gICAg
JHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdENv
bnNvbGVNZXNzYWdlLmguaW4KLSAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2dsaWIvV2ViS2l0RnJhbWUuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRTY3JpcHRXb3JsZC5oLmluCi0gICAg
JHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdl
YkVkaXRvci5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9nbGliL1dlYktpdFdlYkV4dGVuc2lvbi5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYkV4dGVuc2lvbkF1dG9jbGVh
bnVwcy5oLmluCi0gICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9nbGliL1dlYktpdFdlYkhpdFRlc3RSZXN1bHQuaC5pbgotICAgICR7V0VCS0lUX0RJUn0vV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmguaW4KLSAgICAk
e1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvd2Via2l0LXdl
Yi1leHRlbnNpb24uaC5pbgotKQotCi1HRU5FUkFURV9BUElfSEVBREVSUyhXUEVfQVBJX0hFQURF
Ul9URU1QTEFURVMKLSAgICAke0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0KLSAgICBXUEVf
QVBJX0lOU1RBTExFRF9IRUFERVJTCi0gICAgIi1EUExBVEZPUk0oR1RLKT0wIgotICAgICItRFBM
QVRGT1JNKFdQRSk9MSIKLSAgICAiLURVU0UoR1RLNCk9MCIKLSkKLQotR0VORVJBVEVfQVBJX0hF
QURFUlMoV1BFX1dFQl9FWFRFTlNJT05fQVBJX0hFQURFUl9URU1QTEFURVMKLSAgICAke0RFUklW
RURfU09VUkNFU19XUEVfQVBJX0RJUn0KLSAgICBXUEVfV0VCX0VYVEVOU0lPTl9BUElfSU5TVEFM
TEVEX0hFQURFUlMKLSAgICAiLURQTEFURk9STShHVEspPTAiCi0gICAgIi1EUExBVEZPUk0oV1BF
KT0xIgotICAgICItRFVTRShHVEs0KT0wIgotKQotCiAjIFRvIGdlbmVyYXRlIFdlYktpdEVudW1U
eXBlcy5oIHdlIHdhbnQgdG8gdXNlIGFsbCBpbnN0YWxsZWQgaGVhZGVycywgZXhjZXB0IFdlYktp
dEVudW1UeXBlcy5oIGl0c2VsZi4KIHNldChXUEVfRU5VTV9HRU5FUkFUSU9OX0hFQURFUlMgJHtX
UEVfQVBJX0lOU1RBTExFRF9IRUFERVJTfSkKIGxpc3QoUkVNT1ZFX0lURU0gV1BFX0VOVU1fR0VO
RVJBVElPTl9IRUFERVJTICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElfRElSfS9XZWJLaXRFbnVt
VHlwZXMuaCkKQEAgLTU5MiwxOSArNTU2LDE5IEBAIEdJX0lOVFJPU1BFQ1QoV1BFV2ViRXh0ZW5z
aW9uICR7V1BFX0FQSV9WRVJTSU9OfSB3cGUvd2Via2l0LXdlYi1leHRlbnNpb24uaAogICAgICAg
ICAtSSR7SmF2YVNjcmlwdENvcmVHTGliX0RFUklWRURfU09VUkNFU19ESVJ9CiAgICAgU09VUkNF
UwogICAgICAgICAke1dQRV9XRUJfRVhURU5TSU9OX0FQSV9JTlNUQUxMRURfSEVBREVSU30KLSAg
ICAgICAgJHtERVJJVkVEX1NPVVJDRVNfV1BFX0FQSV9ESVJ9L1dlYktpdENvbnRleHRNZW51LmgK
LSAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNfV1BFX0FQSV9ESVJ9L1dlYktpdENvbnRleHRNZW51
QWN0aW9ucy5oCi0gICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElfRElSfS9XZWJLaXRD
b250ZXh0TWVudUl0ZW0uaAotICAgICAgICAke0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0v
V2ViS2l0SGl0VGVzdFJlc3VsdC5oCi0gICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElf
RElSfS9XZWJLaXRVc2VyTWVzc2FnZS5oCi0gICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9B
UElfRElSfS9XZWJLaXRVUklSZXF1ZXN0LmgKLSAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNfV1BF
X0FQSV9ESVJ9L1dlYktpdFVSSVJlc3BvbnNlLmgKICAgICAgICAgU2hhcmVkL0FQSS9nbGliL1dl
YktpdENvbnRleHRNZW51LmNwcAogICAgICAgICBTaGFyZWQvQVBJL2dsaWIvV2ViS2l0Q29udGV4
dE1lbnVJdGVtLmNwcAogICAgICAgICBTaGFyZWQvQVBJL2dsaWIvV2ViS2l0SGl0VGVzdFJlc3Vs
dC5jcHAKICAgICAgICAgU2hhcmVkL0FQSS9nbGliL1dlYktpdFVzZXJNZXNzYWdlLmNwcAogICAg
ICAgICBTaGFyZWQvQVBJL2dsaWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAKICAgICAgICAgU2hhcmVk
L0FQSS9nbGliL1dlYktpdFVSSVJlc3BvbnNlLmNwcAorICAgICAgICBVSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaAorICAgICAgICBVSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRDb250ZXh0TWVudS5oCisgICAgICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbnRleHRN
ZW51QWN0aW9ucy5oCisgICAgICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEhpdFRlc3RSZXN1
bHQuaAorICAgICAgICBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVc2VyTWVzc2FnZS5oCisgICAg
ICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVJlcXVlc3QuaAorICAgICAgICBVSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRVUklSZXNwb25zZS5oCiAgICAgICAgIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTU5vZGUuY3BwCiAgICAgICAgIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIKICAgICBOT19JTVBMSUNJVF9TT1VSQ0VTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEFwcGxpY2F0aW9u
SW5mby5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBcHBsaWNhdGlv
bkluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM0ZGI5Yjlj
Yzc5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0QXBwbGljYXRpb25JbmZvLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18p
ICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIv
d2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYg
V2ViS2l0QXBwbGljYXRpb25JbmZvX2gKKyNkZWZpbmUgV2ViS2l0QXBwbGljYXRpb25JbmZvX2gK
KworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZp
bmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9BUFBMSUNBVElP
Tl9JTkZPICh3ZWJraXRfYXBwbGljYXRpb25faW5mb19nZXRfdHlwZSgpKQorCit0eXBlZGVmIHN0
cnVjdCBfV2ViS2l0QXBwbGljYXRpb25JbmZvIFdlYktpdEFwcGxpY2F0aW9uSW5mbzsKKworCitX
RUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfYXBwbGljYXRpb25faW5mb19nZXRfdHlwZSAgICAodm9p
ZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0QXBwbGljYXRpb25JbmZvICoKK3dlYmtpdF9hcHBsaWNh
dGlvbl9pbmZvX25ldyAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBXZWJLaXRBcHBsaWNh
dGlvbkluZm8gKgord2Via2l0X2FwcGxpY2F0aW9uX2luZm9fcmVmICAgICAgICAgKFdlYktpdEFw
cGxpY2F0aW9uSW5mbyAqaW5mbyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2FwcGxpY2F0
aW9uX2luZm9fdW5yZWYgICAgICAgKFdlYktpdEFwcGxpY2F0aW9uSW5mbyAqaW5mbyk7CisKK1dF
QktJVF9BUEkgdm9pZAord2Via2l0X2FwcGxpY2F0aW9uX2luZm9fc2V0X25hbWUgICAgKFdlYktp
dEFwcGxpY2F0aW9uSW5mbyAqaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKm5hbWUpOworV0VCS0lUX0FQSSBjb25zdCBnY2hh
ciAqCit3ZWJraXRfYXBwbGljYXRpb25faW5mb19nZXRfbmFtZSAgICAoV2ViS2l0QXBwbGljYXRp
b25JbmZvICppbmZvKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfYXBwbGljYXRpb25faW5m
b19zZXRfdmVyc2lvbiAoV2ViS2l0QXBwbGljYXRpb25JbmZvICppbmZvLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50NjQgICAgICAgICAgICAgICAgbWFqb3IsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQ2NCAgICAgICAgICAgICAg
ICBtaW5vciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludDY0ICAg
ICAgICAgICAgICAgIG1pY3JvKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfYXBwbGljYXRp
b25faW5mb19nZXRfdmVyc2lvbiAoV2ViS2l0QXBwbGljYXRpb25JbmZvICppbmZvLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50NjQgICAgICAgICAgICAgICAqbWFq
b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQ2NCAgICAgICAg
ICAgICAgICptaW5vciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWlu
dDY0ICAgICAgICAgICAgICAgKm1pY3JvKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0
aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRo
ZW50aWNhdGlvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLmFiYTMxNGY1ZDlkZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmgKQEAgLTAsMCArMSwxNDMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcyBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYg
IWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJr
aXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJL
aXRBdXRoZW50aWNhdGlvblJlcXVlc3RfaAorI2RlZmluZSBXZWJLaXRBdXRoZW50aWNhdGlvblJl
cXVlc3RfaAorCisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
Q3JlZGVudGlhbC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1
ZGUgPHdlYmtpdDIvV2ViS2l0U2VjdXJpdHlPcmlnaW4uaD4KKworR19CRUdJTl9ERUNMUworCisj
ZGVmaW5lIFdFQktJVF9UWVBFX0FVVEhFTlRJQ0FUSU9OX1JFUVVFU1QgICAgICAgICAgICAod2Vi
a2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0FV
VEhFTlRJQ0FUSU9OX1JFUVVFU1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFO
Q0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfQVVUSEVOVElDQVRJT05fUkVRVUVTVCwgV2ViS2l0
QXV0aGVudGljYXRpb25SZXF1ZXN0KSkKKyNkZWZpbmUgV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1JF
UVVFU1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAg
V0VCS0lUX1RZUEVfQVVUSEVOVElDQVRJT05fUkVRVUVTVCwgV2ViS2l0QXV0aGVudGljYXRpb25S
ZXF1ZXN0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfQVVUSEVOVElDQVRJT05fUkVRVUVTVChv
YmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQ
RV9BVVRIRU5USUNBVElPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX0lTX0FVVEhFTlRJQ0FU
SU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3Mp
LCAgV0VCS0lUX1RZUEVfQVVUSEVOVElDQVRJT05fUkVRVUVTVCkpCisjZGVmaW5lIFdFQktJVF9B
VVRIRU5USUNBVElPTl9SRVFVRVNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dF
VF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0FVVEhFTlRJQ0FUSU9OX1JFUVVFU1QsIFdlYktp
dEF1dGhlbnRpY2F0aW9uUmVxdWVzdENsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEF1
dGhlbnRpY2F0aW9uUmVxdWVzdCAgICAgICAgV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0Owor
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdENsYXNzICAgV2ViS2l0
QXV0aGVudGljYXRpb25SZXF1ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0QXV0aGVu
dGljYXRpb25SZXF1ZXN0UHJpdmF0ZSBXZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3RQcml2YXRl
OworCitzdHJ1Y3QgX1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdCB7CisgICAgR09iamVjdCBw
YXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRBdXRoZW50aWNhdGlvblJl
cXVlc3RQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRBdXRoZW50aWNhdGlvblJl
cXVlc3RDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKKworICAgIC8qPCBw
cml2YXRlID4qLworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZv
aWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2Vy
dmVkMikgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsK
KworLyoqCisgKiBXZWJLaXRBdXRoZW50aWNhdGlvblNjaGVtZToKKyAqIEBXRUJLSVRfQVVUSEVO
VElDQVRJT05fU0NIRU1FX0RFRkFVTFQ6IFRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIHNjaGVt
ZSBvZiBXZWJLaXQuCisgKiBAV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVFRQX0JBU0lD
OiBCYXNpYyBhdXRoZW50aWNhdGlvbiBzY2hlbWUgYXMgZGVmaW5lZCBpbiBSRkMgMjYxNy4KKyAq
IEBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfRElHRVNUOiBEaWdlc3QgYXV0aGVu
dGljYXRpb24gc2NoZW1lIGFzIGRlZmluZWQgaW4gUkZDIDI2MTcuCisgKiBAV0VCS0lUX0FVVEhF
TlRJQ0FUSU9OX1NDSEVNRV9IVE1MX0ZPUk06IEhUTUwgRm9ybSBhdXRoZW50aWNhdGlvbi4KKyAq
IEBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX05UTE06IE5UTE0gTWljcm9zb2Z0IHByb3By
aWV0YXJ5IGF1dGhlbnRpY2F0aW9uIHNjaGVtZS4KKyAqIEBXRUJLSVRfQVVUSEVOVElDQVRJT05f
U0NIRU1FX05FR09USUFURTogTmVnb3RpYXRlIChvciBTUE5FR08pIGF1dGhlbnRpY2F0aW9uIHNj
aGVtZSBhcyBkZWZpbmVkIGluIFJGQyA0NTU5LgorICogQFdFQktJVF9BVVRIRU5USUNBVElPTl9T
Q0hFTUVfQ0xJRU5UX0NFUlRJRklDQVRFX1JFUVVFU1RFRDogQ2xpZW50IENlcnRpZmljYXRlIEF1
dGhlbnRpY2F0aW9uIChzZWUgUkZDIDIyNDYpLgorICogQFdFQktJVF9BVVRIRU5USUNBVElPTl9T
Q0hFTUVfU0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVEOiBTZXJ2ZXIgVHJ1c3QgQXV0
aGVudGljYXRpb24uCisgKiBAV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9DTElFTlRfQ0VS
VElGSUNBVEVfUElOX1JFUVVFU1RFRDogQ2xpZW50IGNlcnRpZmljYXRlIFBJTiByZXF1aXJlZCBm
b3IgdXNlLiBTaW5jZTogMi4zNAorICogQFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfVU5L
Tk9XTjogQXV0aGVudGljYXRpb24gc2NoZW1lIHVua25vd24uCisgKgorICogRW51bSB2YWx1ZXMg
cmVwcmVzZW50aW5nIHRoZSBhdXRoZW50aWNhdGlvbiBzY2hlbWUuCisgKgorICogU2luY2U6IDIu
MgorICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVf
REVGQVVMVCA9IDEsCisgICAgV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVFRQX0JBU0lD
ID0gMiwKKyAgICBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfRElHRVNUID0gMywK
KyAgICBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUTUxfRk9STSA9IDQsCisgICAgV0VC
S0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9OVExNID0gNSwKKyAgICBXRUJLSVRfQVVUSEVOVElD
QVRJT05fU0NIRU1FX05FR09USUFURSA9IDYsCisgICAgV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1ND
SEVNRV9DTElFTlRfQ0VSVElGSUNBVEVfUkVRVUVTVEVEID0gNywKKyAgICBXRUJLSVRfQVVUSEVO
VElDQVRJT05fU0NIRU1FX1NFUlZFUl9UUlVTVF9FVkFMVUFUSU9OX1JFUVVFU1RFRCA9IDgsCisg
ICAgV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9DTElFTlRfQ0VSVElGSUNBVEVfUElOX1JF
UVVFU1RFRCA9IDksCisgICAgV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9VTktOT1dOID0g
MTAwLAorfSBXZWJLaXRBdXRoZW50aWNhdGlvblNjaGVtZTsKKworCitXRUJLSVRfQVBJIEdUeXBl
Cit3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9nZXRfdHlwZSAgICAgICAgICAgICAgICAo
dm9pZCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9hdXRoZW50aWNhdGlvbl9yZXF1
ZXN0X2Nhbl9zYXZlX2NyZWRlbnRpYWxzICAgIChXZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3Qg
KnJlcXVlc3QpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9hdXRoZW50aWNhdGlvbl9yZXF1
ZXN0X3NldF9jYW5fc2F2ZV9jcmVkZW50aWFscyhXZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3Qg
KnJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgICBlbmFibGVkKTsKKworV0VCS0lU
X0FQSSBXZWJLaXRDcmVkZW50aWFsICoKK3dlYmtpdF9hdXRoZW50aWNhdGlvbl9yZXF1ZXN0X2dl
dF9wcm9wb3NlZF9jcmVkZW50aWFsIChXZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QgKnJlcXVl
c3QpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9hdXRoZW50aWNhdGlvbl9yZXF1ZXN0X3Nl
dF9wcm9wb3NlZF9jcmVkZW50aWFsIChXZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QgKnJlcXVl
c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViS2l0Q3JlZGVudGlhbCAgICAgICAgICAgICpjcmVkZW50aWFsKTsKKworV0VCS0lUX0FQ
SSBjb25zdCBnY2hhciAqCit3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9nZXRfaG9zdCAg
ICAgICAgICAgICAgICAoV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0ICpyZXF1ZXN0KTsKKwor
V0VCS0lUX0FQSSBndWludAord2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3RfZ2V0X3BvcnQg
ICAgICAgICAgICAgICAgKFdlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdCAqcmVxdWVzdCk7CisK
K1dFQktJVF9BUEkgV2ViS2l0U2VjdXJpdHlPcmlnaW4gKgord2Via2l0X2F1dGhlbnRpY2F0aW9u
X3JlcXVlc3RfZ2V0X3NlY3VyaXR5X29yaWdpbiAgICAgKFdlYktpdEF1dGhlbnRpY2F0aW9uUmVx
dWVzdCAqcmVxdWVzdCk7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X2F1dGhl
bnRpY2F0aW9uX3JlcXVlc3RfZ2V0X3JlYWxtICAgICAgICAgICAgICAgKFdlYktpdEF1dGhlbnRp
Y2F0aW9uUmVxdWVzdCAqcmVxdWVzdCk7CisKK1dFQktJVF9BUEkgV2ViS2l0QXV0aGVudGljYXRp
b25TY2hlbWUKK3dlYmtpdF9hdXRoZW50aWNhdGlvbl9yZXF1ZXN0X2dldF9zY2hlbWUgICAgICAg
ICAgICAgIChXZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QgKnJlcXVlc3QpOworCitXRUJLSVRf
QVBJIGdib29sZWFuCit3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9pc19mb3JfcHJveHkg
ICAgICAgICAgICAoV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0ICpyZXF1ZXN0KTsKKworV0VC
S0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3RfaXNfcmV0cnkg
ICAgICAgICAgICAgICAgKFdlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdCAqcmVxdWVzdCk7CisK
K1dFQktJVF9BUEkgdm9pZAord2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3RfYXV0aGVudGlj
YXRlICAgICAgICAgICAgKFdlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdCAqcmVxdWVzdCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJL
aXRDcmVkZW50aWFsICAgICAgICAgICAgKmNyZWRlbnRpYWwpOworCitXRUJLSVRfQVBJIHZvaWQK
K3dlYmtpdF9hdXRoZW50aWNhdGlvbl9yZXF1ZXN0X2NhbmNlbCAgICAgICAgICAgICAgICAgIChX
ZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QgKnJlcXVlc3QpOworCitXRUJLSVRfQVBJIEdUbHNQ
YXNzd29yZEZsYWdzCit3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9nZXRfY2VydGlmaWNh
dGVfcGluX2ZsYWdzIChXZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QqIHJlcXVlc3QpOworCitH
X0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdEF1dG9jbGVhbnVwcy5oLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaApzaW1pbGFyaXR5IGluZGV4IDk3JQpyZW5h
bWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRBdXRvY2xlYW51
cHMuaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRB
dXRvY2xlYW51cHMuaAppbmRleCAwM2MyYzI3NzFhYmYuLjI1ZGY3ZDA3ODVjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0b2NsZWFudXBzLmgu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51
cHMuaApAQCAtMTcsNyArMTcsOSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAg
Ki8KIAotQEFQSV9TSU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9I
X0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5
IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgog
CiAjaWZuZGVmIFdlYktpdEF1dG9jbGVhbnVwc19oCiAjZGVmaW5lIFdlYktpdEF1dG9jbGVhbnVw
c19oCkBAIC0yOSw2ICszMSw3IEBAIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJL
aXRBdXRoZW50aWNhdGlvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BU
Ul9DTEVBTlVQX0ZVTkMgKFdlYktpdEF1dG9tYXRpb25TZXNzaW9uLCBnX29iamVjdF91bnJlZikK
IEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRCYWNrRm9yd2FyZExpc3QsIGdf
b2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEJhY2tG
b3J3YXJkTGlzdEl0ZW0sIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQ
X0ZVTkMgKFdlYktpdENvbG9yQ2hvb3NlclJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJ
TkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdENvbnRleHRNZW51LCBnX29iamVjdF91bnJl
ZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRDb250ZXh0TWVudUl0ZW0s
IGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdENv
b2tpZU1hbmFnZXIsIGdfb2JqZWN0X3VucmVmKQpAQCAtNDIsMTIgKzQ1LDE3IEBAIEdfREVGSU5F
X0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
LCBnX29iamVjdF91bnJlCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0SGl0
VGVzdFJlc3VsdCwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVO
QyAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FV
VE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1p
c3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9G
VU5DIChXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJl
ZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXROYXZpZ2F0aW9uUG9saWN5
RGVjaXNpb24sIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMg
KFdlYktpdE5vdGlmaWNhdGlvbiwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NM
RUFOVVBfRlVOQyAoV2ViS2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0
X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdE9wdGlvbk1lbnUs
IGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFBl
cm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5V
UF9GVU5DIChXZWJLaXRQbHVnaW4sIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMgKFdlYktpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0
X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFBvbGljeURlY2lz
aW9uLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJL
aXRQcmludEN1c3RvbVdpZGdldCwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NM
RUFOVVBfRlVOQyAoV2ViS2l0UHJpbnRPcGVyYXRpb24sIGdfb2JqZWN0X3VucmVmKQogR19ERUZJ
TkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24sIGdf
b2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFNlY3Vy
aXR5TWFuYWdlciwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVO
QyAoV2ViS2l0U2V0dGluZ3MsIGdfb2JqZWN0X3VucmVmKQpAQCAtNjAsMjIgKzY4LDEzIEBAIEdf
REVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIsIGdf
b2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJf
Q0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyTWVzc2FnZSwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklO
RV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0V2ViQ29udGV4dCwgZ19vYmplY3RfdW5yZWYp
CitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0V2ViSW5zcGVjdG9yLCBnX29i
amVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRXZWJSZXNv
dXJjZSwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2Vi
S2l0V2ViVmlldywgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVO
QyAoV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FV
VE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRXZWJzaXRlUG9saWNpZXMsIGdfb2JqZWN0X3VucmVm
KQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFdpbmRvd1Byb3BlcnRpZXMs
IGdfb2JqZWN0X3VucmVmKQogCi0jaWYgUExBVEZPUk0oR1RLKQotR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMgKFdlYktpdENvbG9yQ2hvb3NlclJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQot
R19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQotR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZV
TkMgKFdlYktpdE9wdGlvbk1lbnUsIGdfb2JqZWN0X3VucmVmKQotR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMgKFdlYktpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0
X3VucmVmKQotR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFByaW50Q3VzdG9t
V2lkZ2V0LCBnX29iamVjdF91bnJlZikKLUdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChX
ZWJLaXRQcmludE9wZXJhdGlvbiwgZ19vYmplY3RfdW5yZWYpCi1HX0RFRklORV9BVVRPUFRSX0NM
RUFOVVBfRlVOQyAoV2ViS2l0V2ViSW5zcGVjdG9yLCBnX29iamVjdF91bnJlZikKLSNlbmRpZgot
CiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0QXBwbGljYXRpb25JbmZvLCB3
ZWJraXRfYXBwbGljYXRpb25faW5mb191bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9G
VU5DIChXZWJLaXRDcmVkZW50aWFsLCB3ZWJraXRfY3JlZGVudGlhbF9mcmVlKQogR19ERUZJTkVf
QVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdElUUEZpcnN0UGFydHksIHdlYmtpdF9pdHBfZmly
c3RfcGFydHlfdW5yZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi5jNTI0YTMyMDM0YTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmgKQEAgLTAs
MCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRl
ZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJ
T04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGly
ZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0QXV0b21hdGlvblNlc3Npb25faAorI2Rl
ZmluZSBXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbl9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5o
PgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0QXBwbGljYXRpb25JbmZvLmg+CisjaW5jbHVkZSA8
d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJL
SVRfVFlQRV9BVVRPTUFUSU9OX1NFU1NJT04gICAgICAgICAgICAod2Via2l0X2F1dG9tYXRpb25f
c2Vzc2lvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfQVVUT01BVElPTl9TRVNTSU9OKG9i
aikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9U
WVBFX0FVVE9NQVRJT05fU0VTU0lPTiwgV2ViS2l0QXV0b21hdGlvblNlc3Npb24pKQorI2RlZmlu
ZSBXRUJLSVRfSVNfQVVUT01BVElPTl9TRVNTSU9OKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNL
X0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX0FVVE9NQVRJT05fU0VTU0lPTikpCisj
ZGVmaW5lIFdFQktJVF9BVVRPTUFUSU9OX1NFU1NJT05fQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfQVVUT01BVElPTl9TRVNTSU9O
LCBXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbkNsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX0FVVE9N
QVRJT05fU0VTU0lPTl9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFz
cyksICBXRUJLSVRfVFlQRV9BVVRPTUFUSU9OX1NFU1NJT04pKQorI2RlZmluZSBXRUJLSVRfQVVU
T01BVElPTl9TRVNTSU9OX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFT
Uygob2JqKSwgIFdFQktJVF9UWVBFX0FVVE9NQVRJT05fU0VTU0lPTiwgV2ViS2l0QXV0b21hdGlv
blNlc3Npb25DbGFzcykpCisKKy8qKgorICogV2ViS2l0QXV0b21hdGlvbkJyb3dzaW5nQ29udGV4
dFByZXNlbnRhdGlvbjoKKyAqIEBXRUJLSVRfQVVUT01BVElPTl9CUk9XU0lOR19DT05URVhUX1BS
RVNFTlRBVElPTl9XSU5ET1c6IGEgd2luZG93CisgKiBAV0VCS0lUX0FVVE9NQVRJT05fQlJPV1NJ
TkdfQ09OVEVYVF9QUkVTRU5UQVRJT05fVEFCOiBhIHRhYgorICoKKyAqIEVudW0gdmFsdWVzIHVz
ZWQgZm9yIGRldGVybWluaW5nIHRoZSBhdXRvbWF0aW9uIGJyb3dzaW5nIGNvbnRleHQgcHJlc2Vu
dGF0aW9uLgorICoKKyAqIFNpbmNlOiAyLjI4CisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgV0VC
S0lUX0FVVE9NQVRJT05fQlJPV1NJTkdfQ09OVEVYVF9QUkVTRU5UQVRJT05fV0lORE9XLAorICAg
IFdFQktJVF9BVVRPTUFUSU9OX0JST1dTSU5HX0NPTlRFWFRfUFJFU0VOVEFUSU9OX1RBQgorfSBX
ZWJLaXRBdXRvbWF0aW9uQnJvd3NpbmdDb250ZXh0UHJlc2VudGF0aW9uOworCit0eXBlZGVmIHN0
cnVjdCBfV2ViS2l0QXV0b21hdGlvblNlc3Npb24gICAgICAgIFdlYktpdEF1dG9tYXRpb25TZXNz
aW9uOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEF1dG9tYXRpb25TZXNzaW9uQ2xhc3MgICBXZWJL
aXRBdXRvbWF0aW9uU2Vzc2lvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEF1dG9tYXRp
b25TZXNzaW9uUHJpdmF0ZSBXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvblByaXZhdGU7CisKK3N0cnVj
dCBfV2ViS2l0QXV0b21hdGlvblNlc3Npb24geworICAgIEdPYmplY3QgcGFyZW50OworCisgICAg
Lyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0QXV0b21hdGlvblNlc3Npb25Qcml2YXRlICpwcml2
OworfTsKKworc3RydWN0IF9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbkNsYXNzIHsKKyAgICBHT2Jq
ZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgdm9pZCAo
Kl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQx
KSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9p
ZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3
ZWJraXRfYXV0b21hdGlvbl9zZXNzaW9uX2dldF90eXBlICAgICAgICAgICAgICh2b2lkKTsKKwor
V0VCS0lUX0FQSSBjb25zdCBjaGFyICoKK3dlYmtpdF9hdXRvbWF0aW9uX3Nlc3Npb25fZ2V0X2lk
ICAgICAgICAgICAgICAgKFdlYktpdEF1dG9tYXRpb25TZXNzaW9uICpzZXNzaW9uKTsKKworV0VC
S0lUX0FQSSB2b2lkCit3ZWJraXRfYXV0b21hdGlvbl9zZXNzaW9uX3NldF9hcHBsaWNhdGlvbl9p
bmZvIChXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbiAqc2Vzc2lvbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdEFwcGxpY2F0aW9uSW5mbyAgICpp
bmZvKTsKKworV0VCS0lUX0FQSSBXZWJLaXRBcHBsaWNhdGlvbkluZm8gKgord2Via2l0X2F1dG9t
YXRpb25fc2Vzc2lvbl9nZXRfYXBwbGljYXRpb25faW5mbyAoV2ViS2l0QXV0b21hdGlvblNlc3Np
b24gKnNlc3Npb24pOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogV2ViS2l0QXV0b21hdGlv
blNlc3Npb25faCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRCYWNrRm9yd2FyZExpc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi41MjAyNWEzMTk1YTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5oCkBAIC0wLDAgKzEsOTUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9f
V0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vy
cm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIK
KyNlbmRpZgorCisjaWZuZGVmIFdlYktpdEJhY2tGb3J3YXJkTGlzdF9oCisjZGVmaW5lIFdlYktp
dEJhY2tGb3J3YXJkTGlzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUg
PHdlYmtpdDIvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5oPgorI2luY2x1ZGUgPHdlYmtpdDIv
V2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVf
QkFDS19GT1JXQVJEX0xJU1QgICAgICAgICAgICAod2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2dl
dF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9CQUNLX0ZPUldBUkRfTElTVChvYmopICAgICAgICAg
ICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9CQUNLX0ZP
UldBUkRfTElTVCwgV2ViS2l0QmFja0ZvcndhcmRMaXN0KSkKKyNkZWZpbmUgV0VCS0lUX0JBQ0tf
Rk9SV0FSRF9MSVNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGts
YXNzKSwgIFdFQktJVF9UWVBFX0JBQ0tfRk9SV0FSRF9MSVNULCBXZWJLaXRCYWNrRm9yd2FyZExp
c3RDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19CQUNLX0ZPUldBUkRfTElTVChvYmopICAgICAg
ICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9CQUNLX0ZP
UldBUkRfTElTVCkpCisjZGVmaW5lIFdFQktJVF9JU19CQUNLX0ZPUldBUkRfTElTVF9DTEFTUyhr
bGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9CQUNL
X0ZPUldBUkRfTElTVCkpCisjZGVmaW5lIFdFQktJVF9CQUNLX0ZPUldBUkRfTElTVF9HRVRfQ0xB
U1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9C
QUNLX0ZPUldBUkRfTElTVCwgV2ViS2l0QmFja0ZvcndhcmRMaXN0Q2xhc3MpKQorCit0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0QmFja0ZvcndhcmRMaXN0ICAgICAgICBXZWJLaXRCYWNrRm9yd2FyZExp
c3Q7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0QmFja0ZvcndhcmRMaXN0Q2xhc3MgICBXZWJLaXRC
YWNrRm9yd2FyZExpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRCYWNrRm9yd2FyZExp
c3RQcml2YXRlIFdlYktpdEJhY2tGb3J3YXJkTGlzdFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0
QmFja0ZvcndhcmRMaXN0IHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRl
ID4qLworICAgIFdlYktpdEJhY2tGb3J3YXJkTGlzdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1
Y3QgX1dlYktpdEJhY2tGb3J3YXJkTGlzdENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50
X2NsYXNzOworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2
ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAg
dm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVz
ZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfYmFja19mb3J3
YXJkX2xpc3RfZ2V0X3R5cGUgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQ
SSBXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtICoKK3dlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9n
ZXRfY3VycmVudF9pdGVtICAgICAgICAgICAgKFdlYktpdEJhY2tGb3J3YXJkTGlzdCAqYmFja19m
b3J3YXJkX2xpc3QpOworCitXRUJLSVRfQVBJIFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0gKgor
d2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2dldF9iYWNrX2l0ZW0gICAgICAgICAgICAgICAoV2Vi
S2l0QmFja0ZvcndhcmRMaXN0ICpiYWNrX2ZvcndhcmRfbGlzdCk7CisKK1dFQktJVF9BUEkgV2Vi
S2l0QmFja0ZvcndhcmRMaXN0SXRlbSAqCit3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2Zv
cndhcmRfaXRlbSAgICAgICAgICAgIChXZWJLaXRCYWNrRm9yd2FyZExpc3QgKmJhY2tfZm9yd2Fy
ZF9saXN0KTsKKworV0VCS0lUX0FQSSBXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtICoKK3dlYmtp
dF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfbnRoX2l0ZW0gICAgICAgICAgICAgICAgKFdlYktpdEJh
Y2tGb3J3YXJkTGlzdCAqYmFja19mb3J3YXJkX2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50ICAgICAgICAgICAgICAgICAgIGlu
ZGV4KTsKK1dFQktJVF9BUEkgZ3VpbnQKK3dlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfbGVu
Z3RoICAgICAgICAgICAgICAgICAgKFdlYktpdEJhY2tGb3J3YXJkTGlzdCAqYmFja19mb3J3YXJk
X2xpc3QpOworCitXRUJLSVRfQVBJIEdMaXN0ICoKK3dlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9n
ZXRfYmFja19saXN0ICAgICAgICAgICAgICAgKFdlYktpdEJhY2tGb3J3YXJkTGlzdCAqYmFja19m
b3J3YXJkX2xpc3QpOworCitXRUJLSVRfQVBJIEdMaXN0ICoKK3dlYmtpdF9iYWNrX2ZvcndhcmRf
bGlzdF9nZXRfYmFja19saXN0X3dpdGhfbGltaXQgICAgKFdlYktpdEJhY2tGb3J3YXJkTGlzdCAq
YmFja19mb3J3YXJkX2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgIGxpbWl0KTsKKworV0VCS0lU
X0FQSSBHTGlzdCAqCit3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRfbGlzdCAg
ICAgICAgICAgIChXZWJLaXRCYWNrRm9yd2FyZExpc3QgKmJhY2tfZm9yd2FyZF9saXN0KTsKKwor
V0VCS0lUX0FQSSBHTGlzdCAqCit3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRf
bGlzdF93aXRoX2xpbWl0IChXZWJLaXRCYWNrRm9yd2FyZExpc3QgKmJhY2tfZm9yd2FyZF9saXN0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3VpbnQgICAgICAgICAgICAgICAgICBsaW1pdCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9y
d2FyZExpc3RJdGVtLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJh
Y2tGb3J3YXJkTGlzdEl0ZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLjUxZWJiMTg0OWIwNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5oCkBAIC0wLDAgKzEsNzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VC
S0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9y
ICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNl
bmRpZgorCisjaWZuZGVmIFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW1faAorI2RlZmluZSBXZWJL
aXRCYWNrRm9yd2FyZExpc3RJdGVtX2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5j
bHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmlu
ZSBXRUJLSVRfVFlQRV9CQUNLX0ZPUldBUkRfTElTVF9JVEVNICAgICAgICAgICAgKHdlYmtpdF9i
YWNrX2ZvcndhcmRfbGlzdF9pdGVtX2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9CQUNLX0ZP
UldBUkRfTElTVF9JVEVNKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NB
U1QoKG9iaiksIFdFQktJVF9UWVBFX0JBQ0tfRk9SV0FSRF9MSVNUX0lURU0sIFdlYktpdEJhY2tG
b3J3YXJkTGlzdEl0ZW0pKQorI2RlZmluZSBXRUJLSVRfQkFDS19GT1JXQVJEX0xJU1RfSVRFTV9D
TEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRf
VFlQRV9CQUNLX0ZPUldBUkRfTElTVF9JVEVNLCBXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtQ2xh
c3MpKQorI2RlZmluZSBXRUJLSVRfSVNfQkFDS19GT1JXQVJEX0xJU1RfSVRFTShvYmopICAgICAg
ICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9CQUNLX0ZP
UldBUkRfTElTVF9JVEVNKSkKKyNkZWZpbmUgV0VCS0lUX0lTX0JBQ0tfRk9SV0FSRF9MSVNUX0lU
RU1fQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lU
X1RZUEVfQkFDS19GT1JXQVJEX0xJU1RfSVRFTSkpCisjZGVmaW5lIFdFQktJVF9CQUNLX0ZPUldB
UkRfTElTVF9JVEVNX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygo
b2JqKSwgIFdFQktJVF9UWVBFX0JBQ0tfRk9SV0FSRF9MSVNUX0lURU0sIFdlYktpdEJhY2tGb3J3
YXJkTGlzdEl0ZW1DbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRCYWNrRm9yd2FyZExp
c3RJdGVtICAgICAgICBXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtOwordHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW1DbGFzcyAgIFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0
ZW1DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0
ZSBXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRCYWNr
Rm9yd2FyZExpc3RJdGVtIHsKKyAgICBHSW5pdGlhbGx5VW5vd25lZCBwYXJlbnQ7CisKKyAgICAv
KjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZSAqcHJp
djsKK307CisKK3N0cnVjdCBfV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbUNsYXNzIHsKKyAgICBH
SW5pdGlhbGx5VW5vd25lZENsYXNzIHBhcmVudF9jbGFzczsKKworICAgIC8qPCBwcml2YXRlID4q
LworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Vi
a2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZv
aWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lU
X0FQSSBHVHlwZQord2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fZ2V0X3R5cGUgICAgICAg
ICAodm9pZCk7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X2JhY2tfZm9yd2Fy
ZF9saXN0X2l0ZW1fZ2V0X3VyaSAgICAgICAgICAoV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbSog
bGlzdF9pdGVtKTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfYmFja19mb3J3
YXJkX2xpc3RfaXRlbV9nZXRfdGl0bGUgICAgICAgIChXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVt
KiBsaXN0X2l0ZW0pOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF9iYWNrX2Zv
cndhcmRfbGlzdF9pdGVtX2dldF9vcmlnaW5hbF91cmkgKFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0
ZW0qIGxpc3RfaXRlbSk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNWU3M2VhNTZmYWRlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudS5o
CkBAIC0wLDAgKzEsMTE5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwu
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9D
T01QSUxBVElPTikgJiYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9f
KQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVj
dGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdENvbnRleHRNZW51X2gKKyNkZWZpbmUgV2Vi
S2l0Q29udGV4dE1lbnVfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdENvbnRleHRNZW51SXRlbS5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5o
PgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfQ09OVEVYVF9NRU5VICAg
ICAgICAgICAgKHdlYmtpdF9jb250ZXh0X21lbnVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lU
X0NPTlRFWFRfTUVOVShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU
KChvYmopLCBXRUJLSVRfVFlQRV9DT05URVhUX01FTlUsIFdlYktpdENvbnRleHRNZW51KSkKKyNk
ZWZpbmUgV0VCS0lUX0lTX0NPTlRFWFRfTUVOVShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19J
TlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9DT05URVhUX01FTlUpKQorI2RlZmluZSBX
RUJLSVRfQ09OVEVYVF9NRU5VX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NB
U1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0NPTlRFWFRfTUVOVSwgV2ViS2l0Q29udGV4dE1lbnVD
bGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19DT05URVhUX01FTlVfQ0xBU1Moa2xhc3MpIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfQ09OVEVYVF9NRU5VKSkK
KyNkZWZpbmUgV0VCS0lUX0NPTlRFWFRfTUVOVV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNU
QU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9DT05URVhUX01FTlUsIFdlYktpdENv
bnRleHRNZW51Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0Q29udGV4dE1lbnVDbGFz
cyAgIFdlYktpdENvbnRleHRNZW51Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0Q29udGV4
dE1lbnVQcml2YXRlIFdlYktpdENvbnRleHRNZW51UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRD
b250ZXh0TWVudSB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8K
KyAgICBXZWJLaXRDb250ZXh0TWVudVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktp
dENvbnRleHRNZW51Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAg
ICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsK
KyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtp
dF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lk
KTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9jb250ZXh0X21lbnVfZ2V0X3R5cGUg
ICAgICAgICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdENvbnRleHRNZW51ICoKK3dl
YmtpdF9jb250ZXh0X21lbnVfbmV3ICAgICAgICAgICAgICAgICAgKHZvaWQpOworCitXRUJLSVRf
QVBJIFdlYktpdENvbnRleHRNZW51ICoKK3dlYmtpdF9jb250ZXh0X21lbnVfbmV3X3dpdGhfaXRl
bXMgICAgICAgKEdMaXN0ICAgICAgICAgICAgICAgICAqaXRlbXMpOworCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF9jb250ZXh0X21lbnVfcHJlcGVuZCAgICAgICAgICAgICAgKFdlYktpdENvbnRl
eHRNZW51ICAgICAqbWVudSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYktpdENvbnRleHRNZW51SXRlbSAqaXRlbSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X2NvbnRleHRfbWVudV9hcHBlbmQgICAgICAgICAgICAgICAoV2ViS2l0Q29udGV4dE1lbnUg
ICAgICptZW51LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
S2l0Q29udGV4dE1lbnVJdGVtICppdGVtKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfY29u
dGV4dF9tZW51X2luc2VydCAgICAgICAgICAgICAgIChXZWJLaXRDb250ZXh0TWVudSAgICAgKm1l
bnUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRDb250
ZXh0TWVudUl0ZW0gKml0ZW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnaW50ICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uKTsKKworV0VCS0lUX0FQSSB2b2lk
Cit3ZWJraXRfY29udGV4dF9tZW51X21vdmVfaXRlbSAgICAgICAgICAgIChXZWJLaXRDb250ZXh0
TWVudSAgICAgKm1lbnUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJLaXRDb250ZXh0TWVudUl0ZW0gKml0ZW0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnaW50ICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uKTsKK1dFQktJ
VF9BUEkgR0xpc3QgKgord2Via2l0X2NvbnRleHRfbWVudV9nZXRfaXRlbXMgICAgICAgICAgICAo
V2ViS2l0Q29udGV4dE1lbnUgICAgICptZW51KTsKKworV0VCS0lUX0FQSSBndWludAord2Via2l0
X2NvbnRleHRfbWVudV9nZXRfbl9pdGVtcyAgICAgICAgICAoV2ViS2l0Q29udGV4dE1lbnUgICAg
ICptZW51KTsKKworV0VCS0lUX0FQSSBXZWJLaXRDb250ZXh0TWVudUl0ZW0gKgord2Via2l0X2Nv
bnRleHRfbWVudV9maXJzdCAgICAgICAgICAgICAgICAoV2ViS2l0Q29udGV4dE1lbnUgICAgICpt
ZW51KTsKKworV0VCS0lUX0FQSSBXZWJLaXRDb250ZXh0TWVudUl0ZW0gKgord2Via2l0X2NvbnRl
eHRfbWVudV9sYXN0ICAgICAgICAgICAgICAgICAoV2ViS2l0Q29udGV4dE1lbnUgICAgICptZW51
KTsKKworV0VCS0lUX0FQSSBXZWJLaXRDb250ZXh0TWVudUl0ZW0gKgord2Via2l0X2NvbnRleHRf
bWVudV9nZXRfaXRlbV9hdF9wb3NpdGlvbiAoV2ViS2l0Q29udGV4dE1lbnUgICAgICptZW51LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAg
ICAgICAgICBwb3NpdGlvbik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2NvbnRleHRfbWVu
dV9yZW1vdmUgICAgICAgICAgICAgICAoV2ViS2l0Q29udGV4dE1lbnUgICAgICptZW51LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0Q29udGV4dE1lbnVJ
dGVtICppdGVtKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfY29udGV4dF9tZW51X3JlbW92
ZV9hbGwgICAgICAgICAgIChXZWJLaXRDb250ZXh0TWVudSAgICAgKm1lbnUpOworCitXRUJLSVRf
QVBJIHZvaWQKK3dlYmtpdF9jb250ZXh0X21lbnVfc2V0X3VzZXJfZGF0YSAgICAgICAgKFdlYktp
dENvbnRleHRNZW51ICAgICAqbWVudSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdWYXJpYW50ICAgICAgICAgICAgICAqdXNlcl9kYXRhKTsKKworV0VCS0lUX0FQ
SSBHVmFyaWFudCAqCit3ZWJraXRfY29udGV4dF9tZW51X2dldF91c2VyX2RhdGEgICAgICAgIChX
ZWJLaXRDb250ZXh0TWVudSAgICAgKm1lbnUpOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvbnRleHRN
ZW51QWN0aW9ucy5oLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRD
b250ZXh0TWVudUFjdGlvbnMuaApzaW1pbGFyaXR5IGluZGV4IDY3JQpyZW5hbWUgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVudUFjdGlvbnMuaC5p
bgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0
TWVudUFjdGlvbnMuaAppbmRleCBhMzZiYzNiNTNjNmIuLjRkNjNiOGZmZDM0NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnVBY3Rp
b25zLmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250
ZXh0TWVudUFjdGlvbnMuaApAQCAtMTcsNyArMTcsOSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCiAgKi8KIAotQFNIQVJFRF9BUElfU0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAh
ZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxB
VElPTikgJiYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKQorI2Vy
cm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIK
KyNlbmRpZgogCiAjaW5jbHVkZSA8Z2xpYi5oPgogCkBAIC0yNiw3ICsyOCw2IEBACiAKIEdfQkVH
SU5fREVDTFMKIAotI2lmIFBMQVRGT1JNKEdUSykKIC8qKgogICogV2ViS2l0Q29udGV4dE1lbnVB
Y3Rpb246CiAgKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fTk9fQUNUSU9OOiBObyBhY3Rp
b24sIHVzZWQgYnkgc2VwYXJhdG9yIG1lbnUgaXRlbXMuCkBAIC04MCw1NCArODEsNiBAQCBHX0JF
R0lOX0RFQ0xTCiAgKiBFbnVtIHZhbHVlcyB1c2VkIHRvIGRlbm90ZSB0aGUgc3RvY2sgYWN0aW9u
cyBmb3IKICAqICNXZWJLaXRDb250ZXh0TWVudUl0ZW08IS0tIC0tPnMKICAqLwotI2VsaWYgUExB
VEZPUk0oV1BFKQotLyoqCi0gKiBXZWJLaXRDb250ZXh0TWVudUFjdGlvbjoKLSAqIEBXRUJLSVRf
Q09OVEVYVF9NRU5VX0FDVElPTl9OT19BQ1RJT046IE5vIGFjdGlvbiwgdXNlZCBieSBzZXBhcmF0
b3IgbWVudSBpdGVtcy4KLSAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9PUEVOX0xJTks6
IE9wZW4gY3VycmVudCBsaW5rLgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX09QRU5f
TElOS19JTl9ORVdfV0lORE9XOiBPcGVuIGN1cnJlbnQgbGluayBpbiBhIG5ldyB3aW5kb3cuCi0g
KiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fRE9XTkxPQURfTElOS19UT19ESVNLOiBEb3du
bG9hZCBsaW5rIGRlc3RpbmF0aW9uLgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0NP
UFlfTElOS19UT19DTElQQk9BUkQ6IENvcHkgbGluayBsb2NhdGlvbiB0byB0aGUgY2xpcGJvYXJk
LgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX09QRU5fSU1BR0VfSU5fTkVXX1dJTkRP
VzogT3BlbiBjdXJyZW50IGltYWdlIGluIGEgbmV3IHdpbmRvdy4KLSAqIEBXRUJLSVRfQ09OVEVY
VF9NRU5VX0FDVElPTl9ET1dOTE9BRF9JTUFHRV9UT19ESVNLOiBEb3dubG9hZCBjdXJyZW50IGlt
YWdlLgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0NPUFlfSU1BR0VfVE9fQ0xJUEJP
QVJEOiBDb3B5IGN1cnJlbnQgaW1hZ2UgdG8gdGhlIGNsaXBib2FyZC4KLSAqIEBXRUJLSVRfQ09O
VEVYVF9NRU5VX0FDVElPTl9PUEVOX0ZSQU1FX0lOX05FV19XSU5ET1c6IE9wZW4gY3VycmVudCBm
cmFtZSBpbiBhIG5ldyB3aW5kb3cuCi0gKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fR09f
QkFDSzogTG9hZCB0aGUgcHJldmlvdXMgaGlzdG9yeSBpdGVtLgotICogQFdFQktJVF9DT05URVhU
X01FTlVfQUNUSU9OX0dPX0ZPUldBUkQ6IExvYWQgdGhlIG5leHQgaGlzdG9yeSBpdGVtLgotICog
QFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX1NUT1A6IFN0b3AgYW55IG9uZ29pbmcgbG9hZGlu
ZyBvcGVyYXRpb24uCi0gKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fUkVMT0FEOiBSZWxv
YWQgdGhlIGNvbnRlbnRzIG9mIGN1cnJlbnQgdmlldy4KLSAqIEBXRUJLSVRfQ09OVEVYVF9NRU5V
X0FDVElPTl9DT1BZOiBDb3B5IGN1cnJlbnQgc2VsZWN0aW9uIHRoZSBjbGlwYm9hcmQuCi0gKiBA
V0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fQ1VUOiBDdXQgY3VycmVudCBzZWxlY3Rpb24gdG8g
dGhlIGNsaXBib2FyZC4KLSAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9QQVNURTogUGFz
dGUgY2xpcGJvYXJkIGNvbnRlbnRzLgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX1NQ
RUxMSU5HX0dVRVNTOiBBIHByb3Bvc2VkIHJlcGxhY2VtZW50IGZvciBhIG1pc3NwZWxsZWQgd29y
ZC4KLSAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9OT19HVUVTU0VTX0ZPVU5EOiBBbiBp
bmRpY2F0b3IgdGhhdCBzcGVsbGNoZWNraW5nIGZvdW5kIG5vIHByb3Bvc2VkIHJlcGxhY2VtZW50
cy4KLSAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9JR05PUkVfU1BFTExJTkc6IENhdXNl
cyB0aGUgc3BlbGxjaGVja2VyIHRvIGlnbm9yZSB0aGUgd29yZCBmb3IgdGhpcyBzZXNzaW9uLgot
ICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0xFQVJOX1NQRUxMSU5HOiBDYXVzZXMgdGhl
IHNwZWxsY2hlY2tlciB0byBhZGQgdGhlIHdvcmQgdG8gdGhlIGRpY3Rpb25hcnkuCi0gKiBAV0VC
S0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fSUdOT1JFX0dSQU1NQVI6IElnbm9yZSBncmFtbWFyLgot
ICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0ZPTlRfTUVOVTogRm9udCBvcHRpb25zIG1l
bnUuCi0gKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fQk9MRDogQm9sZC4KLSAqIEBXRUJL
SVRfQ09OVEVYVF9NRU5VX0FDVElPTl9JVEFMSUM6IEl0YWxpYy4KLSAqIEBXRUJLSVRfQ09OVEVY
VF9NRU5VX0FDVElPTl9VTkRFUkxJTkU6IFVuZGVybGluZS4KLSAqIEBXRUJLSVRfQ09OVEVYVF9N
RU5VX0FDVElPTl9PVVRMSU5FOiBPdXRsaW5lLgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNU
SU9OX0lOU1BFQ1RfRUxFTUVOVDogT3BlbiBjdXJyZW50IGVsZW1lbnQgaW4gdGhlIGluc3BlY3Rv
ci4KLSAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9PUEVOX1ZJREVPX0lOX05FV19XSU5E
T1c6IE9wZW4gY3VycmVudCB2aWRlbyBlbGVtZW50IGluIGEgbmV3IHdpbmRvdy4KLSAqIEBXRUJL
SVRfQ09OVEVYVF9NRU5VX0FDVElPTl9PUEVOX0FVRElPX0lOX05FV19XSU5ET1c6IE9wZW4gY3Vy
cmVudCBhdWRpbyBlbGVtZW50IGluIGEgbmV3IHdpbmRvdy4KLSAqIEBXRUJLSVRfQ09OVEVYVF9N
RU5VX0FDVElPTl9DT1BZX1ZJREVPX0xJTktfVE9fQ0xJUEJPQVJEOiBDb3B5IHZpZGVvIGxpbmsg
bG9jYXRpb24gaW4gdG8gdGhlIGNsaXBib2FyZC4KLSAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FD
VElPTl9DT1BZX0FVRElPX0xJTktfVE9fQ0xJUEJPQVJEOiBDb3B5IGF1ZGlvIGxpbmsgbG9jYXRp
b24gaW4gdG8gdGhlIGNsaXBib2FyZC4KLSAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9U
T0dHTEVfTUVESUFfQ09OVFJPTFM6IEVuYWJsZSBvciBkaXNhYmxlIG1lZGlhIGNvbnRyb2xzLgot
ICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX1RPR0dMRV9NRURJQV9MT09QOiBFbmFibGUg
b3IgZGlzYWJsZSBtZWRpYSBsb29wLgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0VO
VEVSX1ZJREVPX0ZVTExTQ1JFRU46IFNob3cgY3VycmVudCB2aWRlbyBlbGVtZW50IGluIGZ1bGxz
Y3JlZW4gbW9kZS4KLSAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9NRURJQV9QTEFZOiBQ
bGF5IGN1cnJlbnQgbWVkaWEgZWxlbWVudC4KLSAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElP
Tl9NRURJQV9QQVVTRTogUGF1c2UgY3VycmVudCBtZWRpYSBlbGVtZW50LgotICogQFdFQktJVF9D
T05URVhUX01FTlVfQUNUSU9OX01FRElBX01VVEU6IE11dGUgY3VycmVudCBtZWRpYSBlbGVtZW50
LgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0RPV05MT0FEX1ZJREVPX1RPX0RJU0s6
IERvd25sb2FkIHZpZGVvIHRvIGRpc2suCi0gKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05f
RE9XTkxPQURfQVVESU9fVE9fRElTSzogRG93bmxvYWQgYXVkaW8gdG8gZGlzay4KLSAqIEBXRUJL
SVRfQ09OVEVYVF9NRU5VX0FDVElPTl9DVVNUT006IEN1c3RvbSBhY3Rpb24gZGVmaW5lZCBieSBh
cHBsaWNhdGlvbnMuCi0gKgotICogRW51bSB2YWx1ZXMgdXNlZCB0byBkZW5vdGUgdGhlIHN0b2Nr
IGFjdGlvbnMgZm9yCi0gKiAjV2ViS2l0Q29udGV4dE1lbnVJdGVtPCEtLSAtLT5zCi0gKi8KLSNl
bmRpZgogdHlwZWRlZiBlbnVtIHsKICAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9OT19B
Q1RJT04gPSAwLAogCkBAIC0xMzgsOSArOTEsNyBAQCB0eXBlZGVmIGVudW0gewogICAgIFdFQktJ
VF9DT05URVhUX01FTlVfQUNUSU9OX09QRU5fSU1BR0VfSU5fTkVXX1dJTkRPVywKICAgICBXRUJL
SVRfQ09OVEVYVF9NRU5VX0FDVElPTl9ET1dOTE9BRF9JTUFHRV9UT19ESVNLLAogICAgIFdFQktJ
VF9DT05URVhUX01FTlVfQUNUSU9OX0NPUFlfSU1BR0VfVE9fQ0xJUEJPQVJELAotI2lmIFBMQVRG
T1JNKEdUSykKICAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9DT1BZX0lNQUdFX1VSTF9U
T19DTElQQk9BUkQsCi0jZW5kaWYKICAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9PUEVO
X0ZSQU1FX0lOX05FV19XSU5ET1csCiAgICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fR09f
QkFDSywKICAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9HT19GT1JXQVJELApAQCAtMTQ5
LDEyICsxMDAsMTAgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FD
VElPTl9DT1BZLAogICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0NVVCwKICAgICBXRUJL
SVRfQ09OVEVYVF9NRU5VX0FDVElPTl9QQVNURSwKLSNpZiBQTEFURk9STShHVEspCiAgICAgV0VC
S0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fREVMRVRFLAogICAgIFdFQktJVF9DT05URVhUX01FTlVf
QUNUSU9OX1NFTEVDVF9BTEwsCiAgICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fSU5QVVRf
TUVUSE9EUywKICAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9VTklDT0RFLAotI2VuZGlm
CiAgICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fU1BFTExJTkdfR1VFU1MsCiAgICAgV0VC
S0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fTk9fR1VFU1NFU19GT1VORCwKICAgICBXRUJLSVRfQ09O
VEVYVF9NRU5VX0FDVElPTl9JR05PUkVfU1BFTExJTkcsCkBAIC0xNzgsMTAgKzEyNyw4IEBAIHR5
cGVkZWYgZW51bSB7CiAgICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fTUVESUFfTVVURSwK
ICAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9ET1dOTE9BRF9WSURFT19UT19ESVNLLAog
ICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0RPV05MT0FEX0FVRElPX1RPX0RJU0ssCi0j
aWYgUExBVEZPUk0oR1RLKQogICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0lOU0VSVF9F
TU9KSSwKICAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9QQVNURV9BU19QTEFJTl9URVhU
LAotI2VuZGlmCiAKICAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9DVVNUT00gPSAxMDAw
MAogfSBXZWJLaXRDb250ZXh0TWVudUFjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuaC5pbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29va2llTWFuYWdlci5oCnNpbWlsYXJpdHkgaW5k
ZXggOTglCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dENvb2tpZU1hbmFnZXIuaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRDb29raWVNYW5hZ2VyLmgKaW5kZXggYzQ1YzY4MTBlNDZhLi43MzY0OGI0NGEx
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENv
b2tpZU1hbmFnZXIuaC5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdENvb2tpZU1hbmFnZXIuaApAQCAtMTgsNyArMTgsOSBAQAogICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCiAgKi8KIAotQEFQSV9TSU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZp
bmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9O
KQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVj
dGx5LiIKKyNlbmRpZgogCiAjaWZuZGVmIFdlYktpdENvb2tpZU1hbmFnZXJfaAogI2RlZmluZSBX
ZWJLaXRDb29raWVNYW5hZ2VyX2gKQEAgLTI2LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxnaW8vZ2lv
Lmg+CiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4K
LSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVk
ZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtMTQ1LDcg
KzE0Nyw2IEBAIHdlYmtpdF9jb29raWVfbWFuYWdlcl9kZWxldGVfY29va2llX2ZpbmlzaCAgICAg
ICAgICAgIChXZWJLaXRDb29raWVNYW5hZ2VyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0FzeW5jUmVzdWx0ICAgICAgICAgICAgICAgICAq
cmVzdWx0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdFcnJvciAgICAgICAgICAgICAgICAgICAgICAqKmVycm9yKTsKIAotI2lmIFBMQVRG
T1JNKEdUSykKIFdFQktJVF9ERVBSRUNBVEVEX0ZPUih3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFn
ZXJfZmV0Y2gpIHZvaWQKIHdlYmtpdF9jb29raWVfbWFuYWdlcl9nZXRfZG9tYWluc193aXRoX2Nv
b2tpZXMgICAgICAgIChXZWJLaXRDb29raWVNYW5hZ2VyICAgICAgICAgICpjb29raWVfbWFuYWdl
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHQ2FuY2VsbGFibGUgICAgICAgICAgICAgICAgICpjYW5jZWxsYWJsZSwKQEAgLTE2Myw3ICsx
NjQsNiBAQCB3ZWJraXRfY29va2llX21hbmFnZXJfZGVsZXRlX2Nvb2tpZXNfZm9yX2RvbWFpbiAg
ICAgICAoV2ViS2l0Q29va2llTWFuYWdlcgogCiBXRUJLSVRfREVQUkVDQVRFRF9GT1Iod2Via2l0
X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2NsZWFyKSB2b2lkCiB3ZWJraXRfY29va2llX21hbmFnZXJf
ZGVsZXRlX2FsbF9jb29raWVzICAgICAgICAgICAgICAoV2ViS2l0Q29va2llTWFuYWdlciAgICAg
ICAgICAqY29va2llX21hbmFnZXIpOwotI2VuZGlmCiAKIEdfRU5EX0RFQ0xTCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENyZWRlbnRpYWwuaC5p
biBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q3JlZGVudGlhbC5oCnNp
bWlsYXJpdHkgaW5kZXggOTQlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdENyZWRlbnRpYWwuaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRDcmVkZW50aWFsLmgKaW5kZXggMWI3MzQxNjI1ZTdmLi42Mjcx
MWUzYjZkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdENyZWRlbnRpYWwuaC5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdENyZWRlbnRpYWwuaApAQCAtMTcsMTQgKzE3LDE2IEBACiAgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KICAqLwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRl
ZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJ
T04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGly
ZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0Q3JlZGVudGlhbF9oCiAjZGVmaW5lIFdl
YktpdENyZWRlbnRpYWxfaAogCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDxn
aW8vZ2lvLmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVmaW5lcy5o
PgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgogCiBHX0JFR0lOX0RFQ0xTCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RGVmaW5l
cy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREZWZpbmVzLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zMzAxNWQ1ODY4M2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERlZmlu
ZXMuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRl
ZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikgJiYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVO
U0lPTl9IX0lOU0lERV9fKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJl
IGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdERlZmluZXNfaAor
I2RlZmluZSBXZWJLaXREZWZpbmVzX2gKKworI2luY2x1ZGUgPGdsaWIuaD4KKworI2lmZGVmIEdf
T1NfV0lOMzIKKyMgICAgaWZkZWYgQlVJTERJTkdfV0VCS0lUCisjICAgICAgICBkZWZpbmUgV0VC
S0lUX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5l
IFdFQktJVF9BUEkgX19kZWNsc3BlYyhkbGxpbXBvcnQpCisjICAgIGVuZGlmCisjZWxzZQorIyAg
ICBkZWZpbmUgV0VCS0lUX0FQSSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0Iikp
KQorI2VuZGlmCisKKyNkZWZpbmUgV0VCS0lUX0RFUFJFQ0FURUQgV0VCS0lUX0FQSSBHX0RFUFJF
Q0FURUQKKyNkZWZpbmUgV0VCS0lUX0RFUFJFQ0FURURfRk9SKGYpIFdFQktJVF9BUEkgR19ERVBS
RUNBVEVEX0ZPUihmKQorCisvKioKKyAqIFdFQktJVF9ERVBSRUNBVEVEX0ZPUjogKHNraXApCisg
KiBAZjogcmVwbGFjZW1lbnQgc3ltYm9sIG5hbWUKKyAqCisgKiBNYXJrcyBhIHN5bWJvbCBhcyBk
ZXByZWNhdGVkLCBpbmRpY2F0aW5nIGEgcmVwbGFjZW1lbnQuCisgKi8KKworI2VuZGlmIC8qIFdl
YktpdERlZmluZXNfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXREZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wOTE2M2M3YTY2MWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERldmlj
ZUluZm9QZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggSWdhbGlhIFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExl
c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKwor
I2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NP
TVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1
ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdERldmljZUluZm9QZXJtaXNz
aW9uUmVxdWVzdF9oCisjZGVmaW5lIFdlYktpdERldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdF9o
CisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVm
aW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfREVWSUNFX0lO
Rk9fUEVSTUlTU0lPTl9SRVFVRVNUICAgICAgICAgICAgKHdlYmtpdF9kZXZpY2VfaW5mb19wZXJt
aXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0RFVklDRV9JTkZPX1BF
Uk1JU1NJT05fUkVRVUVTVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9D
QVNUKChvYmopLCBXRUJLSVRfVFlQRV9ERVZJQ0VfSU5GT19QRVJNSVNTSU9OX1JFUVVFU1QsIFdl
YktpdERldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdCkpCisjZGVmaW5lIFdFQktJVF9ERVZJQ0Vf
SU5GT19QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xB
U1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfREVWSUNFX0lORk9fUEVSTUlTU0lPTl9SRVFV
RVNULCBXZWJLaXREZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3RDbGFzcykpCisjZGVmaW5lIFdF
QktJVF9JU19ERVZJQ0VfSU5GT19QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfREVWSUNFX0lORk9fUEVS
TUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX0lTX0RFVklDRV9JTkZPX1BFUk1JU1NJ
T05fUkVRVUVTVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyks
ICBXRUJLSVRfVFlQRV9ERVZJQ0VfSU5GT19QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBX
RUJLSVRfREVWSUNFX0lORk9fUEVSTUlTU0lPTl9SRVFVRVNUX0dFVF9DTEFTUyhvYmopICAoR19U
WVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0RFVklDRV9JTkZPX1BF
Uk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0Q2xhc3Mp
KQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0ICAg
ICAgICBXZWJLaXREZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3Q7Cit0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0Q2xhc3MgICBXZWJLaXREZXZpY2VJbmZv
UGVybWlzc2lvblJlcXVlc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXREZXZpY2VJbmZv
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlIFdlYktpdERldmljZUluZm9QZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0IHsK
KyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIFdlYktpdERl
dmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dl
YktpdERldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3Mg
cGFyZW50X2NsYXNzOworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgdm9pZCAoKl93ZWJraXRf
cmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7
CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfZGV2
aWNlX2luZm9fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlICh2b2lkKTsKKworR19FTkRfREVD
TFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdERvd25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dERvd25sb2FkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wNmZl
NDUxNjY3ODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdERvd25sb2FkLmgKQEAgLTAsMCArMSwxMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAm
JiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dl
YmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdl
YktpdERvd25sb2FkX2gKKyNkZWZpbmUgV2ViS2l0RG93bmxvYWRfaAorCisjaW5jbHVkZSA8Z2xp
Yi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRl
IDx3ZWJraXQyL1dlYktpdEZvcndhcmREZWNsYXJhdGlvbnMuaD4KKyNpbmNsdWRlIDx3ZWJraXQy
L1dlYktpdFVSSVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlc3BvbnNl
Lmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9ET1dOTE9BRCAgICAg
ICAgICAgICh3ZWJraXRfZG93bmxvYWRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0RPV05M
T0FEKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdF
QktJVF9UWVBFX0RPV05MT0FELCBXZWJLaXREb3dubG9hZCkpCisjZGVmaW5lIFdFQktJVF9JU19E
T1dOTE9BRChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBX
RUJLSVRfVFlQRV9ET1dOTE9BRCkpCisjZGVmaW5lIFdFQktJVF9ET1dOTE9BRF9DTEFTUyhrbGFz
cykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9ET1dO
TE9BRCwgV2ViS2l0RG93bmxvYWRDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19ET1dOTE9BRF9D
TEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQ
RV9ET1dOTE9BRCkpCisjZGVmaW5lIFdFQktJVF9ET1dOTE9BRF9HRVRfQ0xBU1Mob2JqKSAgKEdf
VFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9ET1dOTE9BRCwgV2Vi
S2l0RG93bmxvYWRDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXREb3dubG9hZCAgICAg
ICAgV2ViS2l0RG93bmxvYWQ7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RG93bmxvYWRDbGFzcyAg
IFdlYktpdERvd25sb2FkQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RG93bmxvYWRQcml2
YXRlIFdlYktpdERvd25sb2FkUHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXREb3dubG9hZCB7Cisg
ICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXREb3du
bG9hZFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdERvd25sb2FkQ2xhc3Mgewor
ICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICAvKjwgcHVibGljID4qLworICAg
IGdib29sZWFuICgqIGRlY2lkZV9kZXN0aW5hdGlvbikgIChXZWJLaXREb3dubG9hZCAqZG93bmxv
YWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAg
ICpzdWdnZXN0ZWRfZmlsZW5hbWUpOworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgdm9pZCAo
Kl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQx
KSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9p
ZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3
ZWJraXRfZG93bmxvYWRfZ2V0X3R5cGUgICAgICAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lU
X0FQSSBXZWJLaXRVUklSZXF1ZXN0ICoKK3dlYmtpdF9kb3dubG9hZF9nZXRfcmVxdWVzdCAgICAg
ICAgICAgICAgKFdlYktpdERvd25sb2FkICpkb3dubG9hZCk7CisKK1dFQktJVF9BUEkgY29uc3Qg
Z2NoYXIgKgord2Via2l0X2Rvd25sb2FkX2dldF9kZXN0aW5hdGlvbiAgICAgICAgICAoV2ViS2l0
RG93bmxvYWQgKmRvd25sb2FkKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG93bmxvYWRf
c2V0X2Rlc3RpbmF0aW9uICAgICAgICAgIChXZWJLaXREb3dubG9hZCAqZG93bmxvYWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAqdXJp
KTsKKworV0VCS0lUX0FQSSBXZWJLaXRVUklSZXNwb25zZSoKK3dlYmtpdF9kb3dubG9hZF9nZXRf
cmVzcG9uc2UgICAgICAgICAgICAgKFdlYktpdERvd25sb2FkICpkb3dubG9hZCk7CisKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X2Rvd25sb2FkX2NhbmNlbCAgICAgICAgICAgICAgICAgICAoV2Vi
S2l0RG93bmxvYWQgKmRvd25sb2FkKTsKKworV0VCS0lUX0FQSSBnZG91YmxlCit3ZWJraXRfZG93
bmxvYWRfZ2V0X2VzdGltYXRlZF9wcm9ncmVzcyAgIChXZWJLaXREb3dubG9hZCAqZG93bmxvYWQp
OworCitXRUJLSVRfQVBJIGdkb3VibGUKK3dlYmtpdF9kb3dubG9hZF9nZXRfZWxhcHNlZF90aW1l
ICAgICAgICAgKFdlYktpdERvd25sb2FkICpkb3dubG9hZCk7CisKK1dFQktJVF9BUEkgZ3VpbnQ2
NAord2Via2l0X2Rvd25sb2FkX2dldF9yZWNlaXZlZF9kYXRhX2xlbmd0aCAoV2ViS2l0RG93bmxv
YWQgKmRvd25sb2FkKTsKKworV0VCS0lUX0FQSSBXZWJLaXRXZWJWaWV3ICoKK3dlYmtpdF9kb3du
bG9hZF9nZXRfd2ViX3ZpZXcgICAgICAgICAgICAgKFdlYktpdERvd25sb2FkICpkb3dubG9hZCk7
CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9kb3dubG9hZF9nZXRfYWxsb3dfb3Zlcndy
aXRlICAgICAgKFdlYktpdERvd25sb2FkICpkb3dubG9hZCk7CisKK1dFQktJVF9BUEkgdm9pZAor
d2Via2l0X2Rvd25sb2FkX3NldF9hbGxvd19vdmVyd3JpdGUgICAgICAoV2ViS2l0RG93bmxvYWQg
KmRvd25sb2FkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jv
b2xlYW4gICAgICAgIGFsbG93ZWQpOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RWRpdGluZ0NvbW1hbmRz
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVkaXRpbmdDb21tYW5k
cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTBlMjE5ODE4ZmU3
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRFZGl0aW5nQ29tbWFuZHMuaApAQCAtMCwwICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYm
ICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Vi
a2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2Vi
S2l0RWRpdGluZ0NvbW1hbmRzX2gKKyNkZWZpbmUgV2ViS2l0RWRpdGluZ0NvbW1hbmRzX2gKKwor
R19CRUdJTl9ERUNMUworCisvKioKKyAqIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1VUOgorICoK
KyAqIFRoZSBjdXQgY2xpcGJvYXJkIGNvbW1hbmQuIENvcGllcyB0aGUgY3VycmVudCBzZWxlY3Rp
b24gaW5zaWRlCisgKiBhICNXZWJLaXRXZWJWaWV3IHRvIHRoZSBjbGlwYm9hcmQgYW5kIGRlbGV0
ZXMgdGhlIHNlbGVjdGVkIGNvbnRlbnQuCisgKiBZb3UgY2FuIGNoZWNrIHdoZXRoZXIgaXQncyBw
b3NzaWJsZSB0byBleGVjdXRlIHRoZSBjb21tYW5kIHdpdGgKKyAqIHdlYmtpdF93ZWJfdmlld19j
YW5fZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmQoKS4gSW4gZ2VuZXJhbCBpdCdzCisgKiBwb3NzaWJs
ZSB0byBjdXQgdG8gdGhlIGNsaXBib2FyZCB3aGVuIHRoZSAjV2ViS2l0V2ViVmlldyBjb250ZW50
IGlzCisgKiBlZGl0YWJsZSBhbmQgdGhlcmUgaXMgYW4gYWN0aXZlIHNlbGVjdGlvbi4KKyAqLwor
I2RlZmluZSBXRUJLSVRfRURJVElOR19DT01NQU5EX0NVVCAiQ3V0IgorCisvKioKKyAqIFdFQktJ
VF9FRElUSU5HX0NPTU1BTkRfQ09QWToKKyAqCisgKiBUaGUgY29weSBjbGlwYm9hcmQgY29tbWFu
ZC4gQ29waWVzIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBpbnNpZGUKKyAqIGEgI1dlYktpdFdlYlZp
ZXcgdG8gdGhlIGNsaXBib2FyZC4KKyAqIFlvdSBjYW4gY2hlY2sgd2hldGhlciBpdCdzIHBvc3Np
YmxlIHRvIGV4ZWN1dGUgdGhlIGNvbW1hbmQgd2l0aAorICogd2Via2l0X3dlYl92aWV3X2Nhbl9l
eGVjdXRlX2VkaXRpbmdfY29tbWFuZCgpLiBJbiBnZW5lcmFsIGl0J3MKKyAqIHBvc3NpYmxlIHRv
IGNvcHkgdG8gdGhlIGNsaXBib2FyZCB3aGVuIHRoZXJlIGlzIGFuIGFjdGl2ZSBzZWxlY3Rpb24K
KyAqIGluc2lkZSB0aGUgI1dlYktpdFdlYlZpZXcuCisgKi8KKyNkZWZpbmUgV0VCS0lUX0VESVRJ
TkdfQ09NTUFORF9DT1BZICJDb3B5IgorCisvKioKKyAqIFdFQktJVF9FRElUSU5HX0NPTU1BTkRf
UEFTVEU6CisgKgorICogVGhlIHBhc3RlIGNsaXBib2FyZCBjb21tYW5kLiBQYXN0ZXMgdGhlIGNv
bnRlbnRzIG9mIHRoZSBjbGlwYm9hcmQgdG8KKyAqIGEgI1dlYktpdFdlYlZpZXcuCisgKiBZb3Ug
Y2FuIGNoZWNrIHdoZXRoZXIgaXQncyBwb3NzaWJsZSB0byBleGVjdXRlIHRoZSBjb21tYW5kIHdp
dGgKKyAqIHdlYmtpdF93ZWJfdmlld19jYW5fZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmQoKS4gSW4g
Z2VuZXJhbCBpdCdzIHBvc3NpYmxlCisgKiB0byBwYXN0ZSBmcm9tIHRoZSBjbGlwYm9hcmQgd2hl
biB0aGUgI1dlYktpdFdlYlZpZXcgY29udGVudCBpcyBlZGl0YWJsZQorICogYW5kIGNsaXBib2Fy
ZCBpcyBub3QgZW1wdHkuCisgKi8KKyNkZWZpbmUgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9QQVNU
RSAiUGFzdGUiCisKKy8qKgorICogV0VCS0lUX0VESVRJTkdfQ09NTUFORF9QQVNURV9BU19QTEFJ
Tl9URVhUOgorICoKKyAqIFRoZSBwYXN0ZSBhcyBwbGFpbnRleHQgY2xpcGJvYXJkIGNvbW1hbmQu
IFBhc3RlcyB0aGUgY29udGVudHMgb2YgdGhlCisgKiBjbGlwYm9hcmQgdG8gYSAjV2ViS2l0V2Vi
Vmlldywgd2l0aCBmb3JtYXR0aW5nIHJlbW92ZWQuCisgKiBZb3UgY2FuIGNoZWNrIHdoZXRoZXIg
aXQncyBwb3NzaWJsZSB0byBleGVjdXRlIHRoZSBjb21tYW5kIHdpdGgKKyAqIHdlYmtpdF93ZWJf
dmlld19jYW5fZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmQoKS4gSW4gZ2VuZXJhbCBpdCdzIHBvc3Np
YmxlCisgKiB0byBwYXN0ZSBmcm9tIHRoZSBjbGlwYm9hcmQgd2hlbiB0aGUgI1dlYktpdFdlYlZp
ZXcgY29udGVudCBpcyBlZGl0YWJsZQorICogYW5kIGNsaXBib2FyZCBpcyBub3QgZW1wdHkuCisg
KgorICogU2luY2U6IDIuMzAKKyAqLworI2RlZmluZSBXRUJLSVRfRURJVElOR19DT01NQU5EX1BB
U1RFX0FTX1BMQUlOX1RFWFQgIlBhc3RlQXNQbGFpblRleHQiCisKKy8qKgorICogV0VCS0lUX0VE
SVRJTkdfQ09NTUFORF9TRUxFQ1RfQUxMOgorICoKKyAqIFRoZSBzZWxlY3QgYWxsIGNvbW1hbmQu
IFNlbGVjdHMgYWxsIHRoZSBjb250ZW50IG9mIHRoZSBjdXJyZW50IHRleHQgZmllbGQgaW4KKyAq
IGEgI1dlYktpdFdlYlZpZXcuCisgKiBJdCBpcyBhbHdheXMgcG9zc2libGUgdG8gc2VsZWN0IGFs
bCB0ZXh0LCBubyBtYXR0ZXIgd2hldGhlciB0aGUKKyAqICNXZWJLaXRXZWJWaWV3IGNvbnRlbnQg
aXMgZWRpdGFibGUgb3Igbm90LiBZb3UgY2FuIHN0aWxsIGNoZWNrIGl0CisgKiB3aXRoIHdlYmtp
dF93ZWJfdmlld19jYW5fZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmQoKS4KKyAqLworI2RlZmluZSBX
RUJLSVRfRURJVElOR19DT01NQU5EX1NFTEVDVF9BTEwgIlNlbGVjdEFsbCIKKworLyoqCisgKiBX
RUJLSVRfRURJVElOR19DT01NQU5EX1VORE86CisgKgorICogVGhlIHVuZG8gY29tbWFuZC4gVW5k
b2VzIHRoZSBsYXN0IGVkaXRpbmcgY29tbWFuZCBpbiBhICNXZWJLaXRXZWJWaWV3LgorICogWW91
IGNhbiBjaGVjayB3aGV0aGVyIGl0J3MgcG9zc2libGUgdG8gZXhlY3V0ZSB0aGUgY29tbWFuZCB3
aXRoCisgKiB3ZWJraXRfd2ViX3ZpZXdfY2FuX2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kKCkuIEl0
J3Mgb25seSBwb3NzaWJsZQorICogdG8gdW5kbyBhIGNvbW1hbmQgYWZ0ZXIgYSBwcmV2aW91c2x5
IGV4ZWN1dGVkIGVkaXRpbmcgb3BlcmF0aW9uLgorICovCisjZGVmaW5lIFdFQktJVF9FRElUSU5H
X0NPTU1BTkRfVU5ETyAiVW5kbyIKKworLyoqCisgKiBXRUJLSVRfRURJVElOR19DT01NQU5EX1JF
RE86CisgKgorICogVGhlIHJlZG8gY29tbWFuZC4gUmVkb2VzIGEgcHJldmlvdXNseSB1bmRvbmUg
ZWRpdGluZyBjb21tYW5kIGluCisgKiBhICNXZWJLaXRXZWJWaWV3LgorICogWW91IGNhbiBjaGVj
ayB3aGV0aGVyIGl0J3MgcG9zc2libGUgdG8gZXhlY3V0ZSB0aGUgY29tbWFuZCB3aXRoCisgKiB3
ZWJraXRfd2ViX3ZpZXdfY2FuX2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kKCkuIEl0J3Mgb25seSBw
b3NzaWJsZQorICogdG8gcmVkbyBhIGNvbW1hbmQgd2hlbiBpdCBoYXMgYmVlbiBwcmV2aW91c2x5
IHVuZG9uZS4KKyAqLworI2RlZmluZSBXRUJLSVRfRURJVElOR19DT01NQU5EX1JFRE8gIlJlZG8i
CisKKy8qKgorICogV0VCS0lUX0VESVRJTkdfQ09NTUFORF9JTlNFUlRfSU1BR0U6CisgKgorICog
VGhlIGluc2VydCBpbWFnZSBjb21tYW5kLiBDcmVhdGVzIGFuIGltYWdlIGVsZW1lbnQgdGhhdCBp
cyBpbnNlcnRlZCBhdAorICogdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uLiBJdCByZWNlaXZl
cyBhbiBVUkkgYXMgYXJndW1lbnQsCisgKiB0aGF0IGlzIHVzZWQgYXMgdGhlIGltYWdlIHNvdXJj
ZS4gVGhpcyBjb21tYW5kIHNob3VsZCBiZSBleGVjdXRlZCB3aXRoCisgKiB3ZWJraXRfd2ViX3Zp
ZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmRfd2l0aF9hcmd1bWVudCgpLgorICoKKyAqIFNpbmNl
OiAyLjEwCisgKi8KKyNkZWZpbmUgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9JTlNFUlRfSU1BR0Ug
Ikluc2VydEltYWdlIgorCisvKioKKyAqIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1JFQVRFX0xJ
Tks6CisgKgorICogVGhlIGNyZWF0ZSBsaW5rIGNvbW1hbmQuIENyZWF0ZXMgYSBsaW5rIGVsZW1l
bnQgdGhhdCBpcyBpbnNlcnRlZCBhdAorICogdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uLiBJ
ZiB0aGVyZSdzIGEgc2VsZWN0aW9uLCB0aGUgc2VsZWN0ZWQgdGV4dAorICogd2lsbCBiZSB1c2Vk
IGFzIHRoZSBsaW5rIHRleHQsIG90aGVyd2lzZSB0aGUgVVJMIGl0c2VsZiB3aWxsIGJlIHVzZWQu
CisgKiBJdCByZWNlaXZlcyB0aGUgbGluayBVUkwgYXMgYXJndW1lbnQuIFRoaXMgY29tbWFuZCBz
aG91bGQgYmUgZXhlY3V0ZWQKKyAqIHdpdGggd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGlu
Z19jb21tYW5kX3dpdGhfYXJndW1lbnQoKQorICoKKyAqIFNpbmNlOiAyLjEwCisgKi8KKyNkZWZp
bmUgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9DUkVBVEVfTElOSyAiQ3JlYXRlTGluayIKKworR19F
TkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEVkaXRvclN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEVkaXRvclN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi5iZGFmMzUxODljMjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVkaXRvclN0YXRlLmgKQEAgLTAsMCArMSwxMDQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lU
Ml9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJP
bmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRp
ZgorCisjaWZuZGVmIFdlYktpdEVkaXRvclN0YXRlX2gKKyNkZWZpbmUgV2ViS2l0RWRpdG9yU3Rh
dGVfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktp
dERlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX0VESVRP
Ul9TVEFURSAgICAgICAgICAgICh3ZWJraXRfZWRpdG9yX3N0YXRlX2dldF90eXBlKCkpCisjZGVm
aW5lIFdFQktJVF9FRElUT1JfU1RBVEUob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5T
VEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfRURJVE9SX1NUQVRFLCBXZWJLaXRFZGl0b3JT
dGF0ZSkpCisjZGVmaW5lIFdFQktJVF9JU19FRElUT1JfU1RBVEUob2JqKSAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfRURJVE9SX1NUQVRFKSkK
KyNkZWZpbmUgV0VCS0lUX0VESVRPUl9TVEFURV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVD
S19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9FRElUT1JfU1RBVEUsIFdlYktpdEVk
aXRvclN0YXRlQ2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfRURJVE9SX1NUQVRFX0NMQVNTKGts
YXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0VESVRP
Ul9TVEFURSkpCisjZGVmaW5lIFdFQktJVF9FRElUT1JfU1RBVEVfR0VUX0NMQVNTKG9iaikgIChH
X1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfRURJVE9SX1NUQVRF
LCBXZWJLaXRFZGl0b3JTdGF0ZUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEVkaXRv
clN0YXRlICAgICAgICBXZWJLaXRFZGl0b3JTdGF0ZTsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRF
ZGl0b3JTdGF0ZUNsYXNzICAgV2ViS2l0RWRpdG9yU3RhdGVDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9XZWJLaXRFZGl0b3JTdGF0ZVByaXZhdGUgV2ViS2l0RWRpdG9yU3RhdGVQcml2YXRlOworCisv
KioKKyAqIFdlYktpdEVkaXRvclR5cGluZ0F0dHJpYnV0ZXM6CisgKiBAV0VCS0lUX0VESVRPUl9U
WVBJTkdfQVRUUklCVVRFX05PTkU6IE5vIHR5cGluZyBhdHRyaWJ1dGVzLgorICogQFdFQktJVF9F
RElUT1JfVFlQSU5HX0FUVFJJQlVURV9CT0xEOiBCb2xkIHR5cGluZyBhdHRyaWJ1dGUuCisgKiBA
V0VCS0lUX0VESVRPUl9UWVBJTkdfQVRUUklCVVRFX0lUQUxJQzogSXRhbGljIHR5cGluZyBhdHRy
aWJ1dGUuCisgKiBAV0VCS0lUX0VESVRPUl9UWVBJTkdfQVRUUklCVVRFX1VOREVSTElORTogVW5k
ZXJsaW5lIHR5cGluZyBhdHRyaWJ1dGUuCisgKiBAV0VCS0lUX0VESVRPUl9UWVBJTkdfQVRUUklC
VVRFX1NUUklLRVRIUk9VR0g6IFN0cmlrZXRocm91Z2ggdHlwaW5nIGF0dHJpYnV0ZS4KKyAqCisg
KiBFbnVtIHZhbHVlcyB3aXRoIGZsYWdzIHJlcHJlc2VudGluZyB0eXBpbmcgYXR0cmlidXRlcy4K
KyAqCisgKiBTaW5jZTogMi4xMAorICovCit0eXBlZGVmIGVudW0KK3sKKyAgICBXRUJLSVRfRURJ
VE9SX1RZUElOR19BVFRSSUJVVEVfTk9ORSAgICAgICAgICAgPSAxIDw8IDEsCisgICAgV0VCS0lU
X0VESVRPUl9UWVBJTkdfQVRUUklCVVRFX0JPTEQgICAgICAgICAgID0gMSA8PCAyLAorICAgIFdF
QktJVF9FRElUT1JfVFlQSU5HX0FUVFJJQlVURV9JVEFMSUMgICAgICAgICA9IDEgPDwgMywKKyAg
ICBXRUJLSVRfRURJVE9SX1RZUElOR19BVFRSSUJVVEVfVU5ERVJMSU5FICAgICAgPSAxIDw8IDQs
CisgICAgV0VCS0lUX0VESVRPUl9UWVBJTkdfQVRUUklCVVRFX1NUUklLRVRIUk9VR0ggID0gMSA8
PCA1Cit9IFdlYktpdEVkaXRvclR5cGluZ0F0dHJpYnV0ZXM7CisKK3N0cnVjdCBfV2ViS2l0RWRp
dG9yU3RhdGUgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisg
ICAgV2ViS2l0RWRpdG9yU3RhdGVQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRF
ZGl0b3JTdGF0ZUNsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAg
Lyo8IHByaXZhdGUgPiovCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7Cisg
ICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRf
cmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7
Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfZWRpdG9yX3N0YXRlX2dldF90eXBlICAg
ICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgZ3VpbnQKK3dlYmtpdF9lZGl0b3Jfc3Rh
dGVfZ2V0X3R5cGluZ19hdHRyaWJ1dGVzIChXZWJLaXRFZGl0b3JTdGF0ZSAqZWRpdG9yX3N0YXRl
KTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2VkaXRvcl9zdGF0ZV9pc19jdXRfYXZh
aWxhYmxlICAgICAgKFdlYktpdEVkaXRvclN0YXRlICplZGl0b3Jfc3RhdGUpOworCitXRUJLSVRf
QVBJIGdib29sZWFuCit3ZWJraXRfZWRpdG9yX3N0YXRlX2lzX2NvcHlfYXZhaWxhYmxlICAgICAo
V2ViS2l0RWRpdG9yU3RhdGUgKmVkaXRvcl9zdGF0ZSk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4K
K3dlYmtpdF9lZGl0b3Jfc3RhdGVfaXNfcGFzdGVfYXZhaWxhYmxlICAgIChXZWJLaXRFZGl0b3JT
dGF0ZSAqZWRpdG9yX3N0YXRlKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2VkaXRv
cl9zdGF0ZV9pc191bmRvX2F2YWlsYWJsZSAgICAgKFdlYktpdEVkaXRvclN0YXRlICplZGl0b3Jf
c3RhdGUpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfZWRpdG9yX3N0YXRlX2lzX3Jl
ZG9fYXZhaWxhYmxlICAgICAoV2ViS2l0RWRpdG9yU3RhdGUgKmVkaXRvcl9zdGF0ZSk7CisKK0df
RU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0RXJyb3IuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0RXJyb3IuaApzaW1pbGFyaXR5IGluZGV4IDk2JQpyZW5hbWUgZnJvbSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRFcnJvci5oLmluCnJlbmFtZSB0byBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmgKaW5kZXggMTJhODE2ZmEy
MjQ1Li44ZTFjMWIyZjg4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdEVycm9yLmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRFcnJvci5oCkBAIC0xOCwxMiArMTgsMTQgQEAKICAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgogICovCiAKLUBBUElfU0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAhZGVm
aW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElP
TikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJl
Y3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRFcnJvcl9oCiAjZGVmaW5lIFdlYktpdEVy
cm9yX2gKIAotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERlZmluZXMuaD4K
KyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KIAogR19CRUdJTl9ERUNMUwogCkBA
IC0zMSwxNCArMzMsMTEgQEAgR19CRUdJTl9ERUNMUwogI2RlZmluZSBXRUJLSVRfUE9MSUNZX0VS
Uk9SICAgICAgICAgICAgICB3ZWJraXRfcG9saWN5X2Vycm9yX3F1YXJrICgpCiAjZGVmaW5lIFdF
QktJVF9QTFVHSU5fRVJST1IgICAgICAgICAgICAgIHdlYmtpdF9wbHVnaW5fZXJyb3JfcXVhcmsg
KCkKICNkZWZpbmUgV0VCS0lUX0RPV05MT0FEX0VSUk9SICAgICAgICAgICAgd2Via2l0X2Rvd25s
b2FkX2Vycm9yX3F1YXJrICgpCisjZGVmaW5lIFdFQktJVF9QUklOVF9FUlJPUiAgICAgICAgICAg
ICAgIHdlYmtpdF9wcmludF9lcnJvcl9xdWFyayAoKQogI2RlZmluZSBXRUJLSVRfSkFWQVNDUklQ
VF9FUlJPUiAgICAgICAgICB3ZWJraXRfamF2YXNjcmlwdF9lcnJvcl9xdWFyayAoKQogI2RlZmlu
ZSBXRUJLSVRfU05BUFNIT1RfRVJST1IgICAgICAgICAgICB3ZWJraXRfc25hcHNob3RfZXJyb3Jf
cXVhcmsgKCkKICNkZWZpbmUgV0VCS0lUX1VTRVJfQ09OVEVOVF9GSUxURVJfRVJST1Igd2Via2l0
X3VzZXJfY29udGVudF9maWx0ZXJfZXJyb3JfcXVhcmsgKCkKIAotI2lmIFBMQVRGT1JNKEdUSykK
LSNkZWZpbmUgV0VCS0lUX1BSSU5UX0VSUk9SICAgICAgICAgICAgICAgd2Via2l0X3ByaW50X2Vy
cm9yX3F1YXJrICgpCi0jZW5kaWYKLQogLyoqCiAgKiBXZWJLaXROZXR3b3JrRXJyb3I6CiAgKiBA
V0VCS0lUX05FVFdPUktfRVJST1JfRkFJTEVEOiBHZW5lcmljIGxvYWQgZmFpbHVyZQpAQCAtODQs
NyArODMsNyBAQCB0eXBlZGVmIGVudW0gewogICogQFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVD
VElPTl9DQU5DRUxMRUQ6IExvYWQgZmFpbHVyZSBkdWUgdG8gY29ubmVjdGlvbiBjYW5jZWxsYXRp
b24uIERlcHJlY2F0ZWQgMi4zMgogICogQFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVf
TE9BRDogUHJlbGltaW5hcnkgbG9hZCBmYWlsdXJlIGZvciBtZWRpYSBjb250ZW50IHR5cGVzLiBB
IG5ldyBsb2FkIHdpbGwgYmUgc3RhcnRlZCB0byBwZXJmb3JtIHRoZSBtZWRpYSBsb2FkLgogICoK
LSAqIEVudW0gdmFsdWVzIHVzZWQgdG8gZGVub3RlIHRoZSB2YXJpb3VzIHBsdWdpbiBhbmQgbWVk
aWEgZXJyb3JzLgorICogRW51bSB2YWx1ZXMgdXNlZCB0byBkZW5vdGUgdGhlIHZhcmlvdXMgcGx1
Z2luIGFuZCBtdWx0aW1lZGlhIGVycm9ycy4KICAqKi8KIHR5cGVkZWYgZW51bSB7CiAgICAgV0VC
S0lUX1BMVUdJTl9FUlJPUl9GQUlMRUQgPSAyOTksCkBAIC0xMDksNyArMTA4LDYgQEAgdHlwZWRl
ZiBlbnVtIHsKICAgICBXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT04gPSA0MDEKIH0g
V2ViS2l0RG93bmxvYWRFcnJvcjsKIAotI2lmIFBMQVRGT1JNKEdUSykKIC8qKgogICogV2ViS2l0
UHJpbnRFcnJvcjoKICAqIEBXRUJLSVRfUFJJTlRfRVJST1JfR0VORVJBTDogVW5zcGVjaWZpZWQg
ZXJyb3IgZHVyaW5nIGEgcHJpbnQgb3BlcmF0aW9uCkBAIC0xMjMsNyArMTIxLDYgQEAgdHlwZWRl
ZiBlbnVtIHsKICAgICBXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRFUl9OT1RfRk9VTkQgPSA1MDAs
CiAgICAgV0VCS0lUX1BSSU5UX0VSUk9SX0lOVkFMSURfUEFHRV9SQU5HRSA9IDUwMQogfSBXZWJL
aXRQcmludEVycm9yOwotI2VuZGlmCiAKIC8qKgogICogV2ViS2l0SmF2YXNjcmlwdEVycm9yOgpA
QCAtMTcxLDEwICsxNjgsOCBAQCB3ZWJraXRfcGx1Z2luX2Vycm9yX3F1YXJrICAgICAgICAgICAg
ICAodm9pZCk7CiBXRUJLSVRfQVBJIEdRdWFyawogd2Via2l0X2Rvd25sb2FkX2Vycm9yX3F1YXJr
ICAgICAgICAgICAgKHZvaWQpOwogCi0jaWYgUExBVEZPUk0oR1RLKQogV0VCS0lUX0FQSSBHUXVh
cmsKIHdlYmtpdF9wcmludF9lcnJvcl9xdWFyayAgICAgICAgICAgICAgICh2b2lkKTsKLSNlbmRp
ZgogCiBXRUJLSVRfQVBJIEdRdWFyawogd2Via2l0X2phdmFzY3JpcHRfZXJyb3JfcXVhcmsgICAg
ICAgICAgKHZvaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmguaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEZhdmljb25EYXRhYmFzZS5oCnNpbWlsYXJpdHkgaW5kZXggOTUlCnJlbmFt
ZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZhdmljb25EYXRh
YmFzZS5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZhdmljb25EYXRhYmFzZS5oCmluZGV4IGQyNTczYzEwZDdkNS4uYjQ4Y2RjZmQ5MTJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGYXZpY29uRGF0
YWJhc2UuaC5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZh
dmljb25EYXRhYmFzZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiwgMjAxNyBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYwpAQCAtMTcsMTggKzE3LDE3IEBACiAgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KICAqLwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRlZmlu
ZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04p
CisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0
bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0RmF2aWNvbkRhdGFiYXNlX2gKICNkZWZpbmUg
V2ViS2l0RmF2aWNvbkRhdGFiYXNlX2gKIAorI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8
Z2lvL2dpby5oPgogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNM
VURFX1BSRUZJWEAvV2ViS2l0RGVmaW5lcy5oPgotCi0jaWYgUExBVEZPUk0oR1RLKQotI2luY2x1
ZGUgPGNhaXJvLmg+Ci0jZW5kaWYKKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4K
IAogR19CRUdJTl9ERUNMUwogCkBAIC04MSw3ICs4MCw2IEBAIHdlYmtpdF9mYXZpY29uX2RhdGFi
YXNlX2Vycm9yX3F1YXJrICAgICAgICAodm9pZCk7CiBXRUJLSVRfQVBJIEdUeXBlCiB3ZWJraXRf
ZmF2aWNvbl9kYXRhYmFzZV9nZXRfdHlwZSAgICAgICAgICAgKHZvaWQpOwogCi0jaWYgUExBVEZP
Uk0oR1RLKQogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV9nZXRfZmF2
aWNvbiAgICAgICAgKFdlYktpdEZhdmljb25EYXRhYmFzZSAqZGF0YWJhc2UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAq
cGFnZV91cmksCkBAIC05Miw4ICs5MCw2IEBAIFdFQktJVF9BUEkgY2Fpcm9fc3VyZmFjZV90ICoK
IHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF9mYXZpY29uX2ZpbmlzaCAoV2ViS2l0RmF2aWNv
bkRhdGFiYXNlICpkYXRhYmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0FzeW5jUmVzdWx0ICAgICAgICAgICpyZXN1bHQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAgICoqZXJyb3Ip
OwotI2VuZGlmCi0KIFdFQktJVF9BUEkgZ2NoYXIgKgogd2Via2l0X2Zhdmljb25fZGF0YWJhc2Vf
Z2V0X2Zhdmljb25fdXJpICAgIChXZWJLaXRGYXZpY29uRGF0YWJhc2UgKmRhdGFiYXNlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAg
ICAgICAgKnBhZ2VfdXJpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdC5oLmluIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QuaApzaW1pbGFyaXR5IGluZGV4
IDk1JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRG
aWxlQ2hvb3NlclJlcXVlc3QuaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QuaAppbmRleCAzNjM5ZDFhN2QxNDQuLjNi
MjI0YzY0ZjVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0LmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QuaApAQCAtMTcsMTcgKzE3LDE1IEBA
CiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi1AQVBJX1NJTkdMRV9IRUFE
RVJfQ0hFQ0tACisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVk
KFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBj
YW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0RmlsZUNo
b29zZXJSZXF1ZXN0X2gKICNkZWZpbmUgV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0X2gKIAotI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2Vi
S2l0RGVmaW5lcy5oPgotCi0jaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPGd0ay9ndGsuaD4K
LSNlbmRpZgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgogCiBHX0JFR0lOX0RF
Q0xTCiAKQEAgLTY1LDEwICs2Myw4IEBAIHdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdF9nZXRf
dHlwZSAgICAgICAgICAgICAgICAgICh2b2lkKTsKIFdFQktJVF9BUEkgY29uc3QgZ2NoYXIgKiBj
b25zdCAqCiB3ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3RfZ2V0X21pbWVfdHlwZXMgICAgICAg
IChXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QgKnJlcXVlc3QpOwogCi0jaWYgUExBVEZPUk0oR1RL
KQogV0VCS0lUX0FQSSBHdGtGaWxlRmlsdGVyICoKIHdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVz
dF9nZXRfbWltZV90eXBlc19maWx0ZXIgKFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdCAqcmVxdWVz
dCk7Ci0jZW5kaWYKIAogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X2ZpbGVfY2hvb3Nlcl9y
ZXF1ZXN0X2dldF9zZWxlY3RfbXVsdGlwbGUgICAoV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0ICpy
ZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RmluZENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RmluZENvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLjIwNmE4YjQ3YWJkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0RmluZENvbnRyb2xsZXIuaApAQCAtMCwwICsxLDEyMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyLDEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lU
Ml9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJP
bmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRp
ZgorCisjaWZuZGVmIFdlYktpdEZpbmRDb250cm9sbGVyX2gKKyNkZWZpbmUgV2ViS2l0RmluZENv
bnRyb2xsZXJfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQy
L1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZvcndhcmREZWNsYXJh
dGlvbnMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX0ZJTkRfQ09O
VFJPTExFUiAgICAgICAgICAgICh3ZWJraXRfZmluZF9jb250cm9sbGVyX2dldF90eXBlKCkpCisj
ZGVmaW5lIFdFQktJVF9GSU5EX0NPTlRST0xMRVIob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfRklORF9DT05UUk9MTEVSLCBXZWJL
aXRGaW5kQ29udHJvbGxlcikpCisjZGVmaW5lIFdFQktJVF9GSU5EX0NPTlRST0xMRVJfQ0xBU1Mo
a2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVf
RklORF9DT05UUk9MTEVSLCBXZWJLaXRGaW5kQ29udHJvbGxlckNsYXNzKSkKKyNkZWZpbmUgV0VC
S0lUX0lTX0ZJTkRfQ09OVFJPTExFUihvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5D
RV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9GSU5EX0NPTlRST0xMRVIpKQorI2RlZmluZSBXRUJL
SVRfSVNfRklORF9DT05UUk9MTEVSX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZ
UEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0ZJTkRfQ09OVFJPTExFUikpCisjZGVmaW5lIFdFQktJ
VF9GSU5EX0NPTlRST0xMRVJfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NM
QVNTKChvYmopLCAgV0VCS0lUX1RZUEVfRklORF9DT05UUk9MTEVSLCBXZWJLaXRGaW5kQ29udHJv
bGxlckNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEZpbmRDb250cm9sbGVyUHJpdmF0
ZSBXZWJLaXRGaW5kQ29udHJvbGxlclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0Rmlu
ZENvbnRyb2xsZXJDbGFzcyAgIFdlYktpdEZpbmRDb250cm9sbGVyQ2xhc3M7CisKKy8qKgorICog
V2ViS2l0RmluZE9wdGlvbnM6CisgKiBAV0VCS0lUX0ZJTkRfT1BUSU9OU19OT05FOiBubyBzZWFy
Y2ggZmxhZ3MsIHRoaXMgbWVhbnMgYSBjYXNlCisgKiAgIHNlbnNpdGl2ZSwgbm8gd3JhcCwgZm9y
d2FyZCBvbmx5IHNlYXJjaC4KKyAqIEBXRUJLSVRfRklORF9PUFRJT05TX0NBU0VfSU5TRU5TSVRJ
VkU6IGNhc2UgaW5zZW5zaXRpdmUgc2VhcmNoLgorICogQFdFQktJVF9GSU5EX09QVElPTlNfQVRf
V09SRF9TVEFSVFM6IHNlYXJjaCB0ZXh0IG9ubHkgYXQgdGhlCisgKiAgIGJlZ2luaW5nIG9mIHRo
ZSB3b3Jkcy4KKyAqIEBXRUJLSVRfRklORF9PUFRJT05TX1RSRUFUX01FRElBTF9DQVBJVEFMX0FT
X1dPUkRfU1RBUlQ6IHRyZWF0CisgKiAgIGNhcGl0YWwgbGV0dGVycyBpbiB0aGUgbWlkZGxlIG9m
IHdvcmRzIGFzIHdvcmQgc3RhcnQuCisgKiBAV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFM6
IHNlYXJjaCBiYWNrd2FyZHMuCisgKiBAV0VCS0lUX0ZJTkRfT1BUSU9OU19XUkFQX0FST1VORDog
aWYgbm90IHByZXNlbnQgc2VhcmNoIHdpbGwgc3RvcAorICogICBhdCB0aGUgZW5kIG9mIHRoZSBk
b2N1bWVudC4KKyAqCisgKiBFbnVtIHZhbHVlcyB1c2VkIHRvIHNwZWNpZnkgc2VhcmNoIG9wdGlv
bnMuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgIFdFQktJVF9GSU5EX09QVElPTlNfTk9ORSwKKwor
ICBXRUJLSVRfRklORF9PUFRJT05TX0NBU0VfSU5TRU5TSVRJVkUgPSAgICAgICAgICAgICAgICAg
ICAxIDw8IDAsCisgIFdFQktJVF9GSU5EX09QVElPTlNfQVRfV09SRF9TVEFSVFMgPSAgICAgICAg
ICAgICAgICAgICAgIDEgPDwgMSwKKyAgV0VCS0lUX0ZJTkRfT1BUSU9OU19UUkVBVF9NRURJQUxf
Q0FQSVRBTF9BU19XT1JEX1NUQVJUID0gMSA8PCAyLAorICBXRUJLSVRfRklORF9PUFRJT05TX0JB
Q0tXQVJEUyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAxIDw8IDMsCisgIFdFQktJVF9GSU5E
X09QVElPTlNfV1JBUF9BUk9VTkQgPSAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgNAorfSBX
ZWJLaXRGaW5kT3B0aW9uczsKKworc3RydWN0IF9XZWJLaXRGaW5kQ29udHJvbGxlciB7CisgICAg
R09iamVjdCBwYXJlbnQ7CisKKyAgLyo8IHByaXZhdGUgPiovCisgIFdlYktpdEZpbmRDb250cm9s
bGVyUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0RmluZENvbnRyb2xsZXJDbGFz
cyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKKworICAgIC8qPCBwcml2YXRlID4q
LworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Vi
a2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZv
aWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lU
X0FQSSBHVHlwZQord2Via2l0X2ZpbmRfY29udHJvbGxlcl9nZXRfdHlwZSAgICAgICAgICAgICh2
b2lkKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZmluZF9jb250cm9sbGVyX3NlYXJjaCAg
ICAgICAgICAgICAgKFdlYktpdEZpbmRDb250cm9sbGVyICpmaW5kX2NvbnRyb2xsZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAg
ICAgICpzZWFyY2hfdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ3VpbnQzMiAgICAgICAgICAgICAgIGZpbmRfb3B0aW9ucywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgIG1heF9t
YXRjaF9jb3VudCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2ZpbmRfY29udHJvbGxlcl9z
ZWFyY2hfZmluaXNoICAgICAgIChXZWJLaXRGaW5kQ29udHJvbGxlciAqZmluZF9jb250cm9sbGVy
KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZmluZF9jb250cm9sbGVyX3NlYXJjaF9uZXh0
ICAgICAgICAgKFdlYktpdEZpbmRDb250cm9sbGVyICpmaW5kX2NvbnRyb2xsZXIpOworCitXRUJL
SVRfQVBJIHZvaWQKK3dlYmtpdF9maW5kX2NvbnRyb2xsZXJfc2VhcmNoX3ByZXZpb3VzICAgICAo
V2ViS2l0RmluZENvbnRyb2xsZXIgKmZpbmRfY29udHJvbGxlcik7CisKK1dFQktJVF9BUEkgdm9p
ZAord2Via2l0X2ZpbmRfY29udHJvbGxlcl9jb3VudF9tYXRjaGVzICAgICAgIChXZWJLaXRGaW5k
Q29udHJvbGxlciAqZmluZF9jb250cm9sbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqc2VhcmNoX3RleHQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50MzIgICAgICAgICAg
ICAgICBmaW5kX29wdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICBtYXhfbWF0Y2hfY291bnQpOworCitXRUJLSVRf
QVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF9maW5kX2NvbnRyb2xsZXJfZ2V0X3NlYXJjaF90ZXh0
ICAgICAoV2ViS2l0RmluZENvbnRyb2xsZXIgKmZpbmRfY29udHJvbGxlcik7CisKK1dFQktJVF9B
UEkgZ3VpbnQzMgord2Via2l0X2ZpbmRfY29udHJvbGxlcl9nZXRfb3B0aW9ucyAgICAgICAgIChX
ZWJLaXRGaW5kQ29udHJvbGxlciAqZmluZF9jb250cm9sbGVyKTsKKworV0VCS0lUX0FQSSBndWlu
dAord2Via2l0X2ZpbmRfY29udHJvbGxlcl9nZXRfbWF4X21hdGNoX2NvdW50IChXZWJLaXRGaW5k
Q29udHJvbGxlciAqZmluZF9jb250cm9sbGVyKTsKKworV0VCS0lUX0FQSSBXZWJLaXRXZWJWaWV3
ICoKK3dlYmtpdF9maW5kX2NvbnRyb2xsZXJfZ2V0X3dlYl92aWV3ICAgICAgICAoV2ViS2l0Rmlu
ZENvbnRyb2xsZXIgKmZpbmRfY29udHJvbGxlcik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Rm9ybVN1
Ym1pc3Npb25SZXF1ZXN0LmguaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5oCnNpbWlsYXJpdHkgaW5kZXggOTQlCnJlbmFtZSBm
cm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZvcm1TdWJtaXNzaW9u
UmVxdWVzdC5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5oCmluZGV4IGMyZTcxODY0OGE2ZC4uMmEyMjdjZTIw
YmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRG
b3JtU3VibWlzc2lvblJlcXVlc3QuaC5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5oCkBAIC0xNywxMyArMTcsMTUgQEAK
ICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLUBBUElfU0lOR0xFX0hFQURF
Ul9DSEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQo
V0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNh
biBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRGb3JtU3Vi
bWlzc2lvblJlcXVlc3RfaAogI2RlZmluZSBXZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3RfaAog
CiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklY
QC9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CiAK
IEdfQkVHSU5fREVDTFMKIApAQCAtNTgsMTAgKzYwLDggQEAgc3RydWN0IF9XZWJLaXRGb3JtU3Vi
bWlzc2lvblJlcXVlc3RDbGFzcyB7CiBXRUJLSVRfQVBJIEdUeXBlCiB3ZWJraXRfZm9ybV9zdWJt
aXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUgICAgICAgICAodm9pZCk7CiAKLSNpZiBQTEFURk9STShH
VEspCiBXRUJLSVRfREVQUkVDQVRFRF9GT1Iod2Via2l0X2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0
X2xpc3RfdGV4dF9maWVsZHMpIEdIYXNoVGFibGUgKgogd2Via2l0X2Zvcm1fc3VibWlzc2lvbl9y
ZXF1ZXN0X2dldF90ZXh0X2ZpZWxkcyAgKFdlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdCAgKnJl
cXVlc3QpOwotI2VuZGlmCiAKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF9mb3JtX3N1Ym1p
c3Npb25fcmVxdWVzdF9saXN0X3RleHRfZmllbGRzIChXZWJLaXRGb3JtU3VibWlzc2lvblJlcXVl
c3QgICpyZXF1ZXN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRGb3J3YXJkRGVjbGFyYXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEZvcndhcmREZWNsYXJhdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLmU3NmU3YTFiYjVhMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oCkBA
IC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChX
RUJLSVQyX0NPTVBJTEFUSU9OKSAmJiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hf
SU5TSURFX18pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVk
ZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0Rm9yd2FyZF9oCisjZGVmaW5l
IFdlYktpdEZvcndhcmRfaAorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0UHJpbnRPcGVyYXRpb24g
IFdlYktpdFByaW50T3BlcmF0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEZpbmRDb250cm9s
bGVyICBXZWJLaXRGaW5kQ29udHJvbGxlcjsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJWaWV3
ICAgICAgICAgV2ViS2l0V2ViVmlldzsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRDb250ZXh0TWVu
dSAgICAgV2ViS2l0Q29udGV4dE1lbnU7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0Q29udGV4dE1l
bnVJdGVtIFdlYktpdENvbnRleHRNZW51SXRlbTsKKworI2VuZGlmIC8qIFdlYktpdEZvcndhcmRf
aCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRH
ZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0R2VvbG9jYXRpb25NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi42NWM0NzQ4NDY1MGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEdlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC0wLDAgKzEsMTE0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChf
X1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNl
cnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4i
CisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXJfaAorI2RlZmluZSBX
ZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXJfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNp
bmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVm
aW5lIFdFQktJVF9UWVBFX0dFT0xPQ0FUSU9OX01BTkFHRVIgICAgICAgICAgICAod2Via2l0X2dl
b2xvY2F0aW9uX21hbmFnZXJfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0dFT0xPQ0FUSU9O
X01BTkFHRVIob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2Jq
KSwgV0VCS0lUX1RZUEVfR0VPTE9DQVRJT05fTUFOQUdFUiwgV2ViS2l0R2VvbG9jYXRpb25NYW5h
Z2VyKSkKKyNkZWZpbmUgV0VCS0lUX0lTX0dFT0xPQ0FUSU9OX01BTkFHRVIob2JqKSAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfR0VPTE9DQVRJ
T05fTUFOQUdFUikpCisjZGVmaW5lIFdFQktJVF9HRU9MT0NBVElPTl9NQU5BR0VSX0NMQVNTKGts
YXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0dF
T0xPQ0FUSU9OX01BTkFHRVIsIFdlYktpdEdlb2xvY2F0aW9uTWFuYWdlckNsYXNzKSkKKyNkZWZp
bmUgV0VCS0lUX0lTX0dFT0xPQ0FUSU9OX01BTkFHRVJfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hF
Q0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfR0VPTE9DQVRJT05fTUFOQUdFUikp
CisjZGVmaW5lIFdFQktJVF9HRU9MT0NBVElPTl9NQU5BR0VSX0dFVF9DTEFTUyhvYmopICAoR19U
WVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0dFT0xPQ0FUSU9OX01B
TkFHRVIsIFdlYktpdEdlb2xvY2F0aW9uTWFuYWdlckNsYXNzKSkKKworI2RlZmluZSBXRUJLSVRf
VFlQRV9HRU9MT0NBVElPTl9QT1NJVElPTiAgICAgICAgICAgKHdlYmtpdF9nZW9sb2NhdGlvbl9w
b3NpdGlvbl9nZXRfdHlwZSgpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0R2VvbG9jYXRpb25N
YW5hZ2VyICAgICAgICBXZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXI7Cit0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyQ2xhc3MgICBXZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXJD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXJQcml2YXRlIFdl
YktpdEdlb2xvY2F0aW9uTWFuYWdlclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0R2Vv
bG9jYXRpb25Qb3NpdGlvbiAgICAgICBXZWJLaXRHZW9sb2NhdGlvblBvc2l0aW9uOworCitzdHJ1
Y3QgX1dlYktpdEdlb2xvY2F0aW9uTWFuYWdlciB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAg
ICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXJQcml2YXRlICpw
cml2OworfTsKKworc3RydWN0IF9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXJDbGFzcyB7CisgICAg
R09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIHZv
aWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2Vy
dmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAg
IHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlw
ZQord2Via2l0X2dlb2xvY2F0aW9uX21hbmFnZXJfZ2V0X3R5cGUgICAgICAgICAgICAgICAgICh2
b2lkKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZ2VvbG9jYXRpb25fbWFuYWdlcl91cGRh
dGVfcG9zaXRpb24gICAgICAgICAgIChXZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIgICptYW5hZ2Vy
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJLaXRHZW9sb2NhdGlvblBvc2l0aW9uICpwb3NpdGlvbik7CisKK1dFQktJVF9BUEkgdm9pZAor
d2Via2l0X2dlb2xvY2F0aW9uX21hbmFnZXJfZmFpbGVkICAgICAgICAgICAgICAgICAgICAoV2Vi
S2l0R2VvbG9jYXRpb25NYW5hZ2VyICAqbWFuYWdlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgICAgICAq
ZXJyb3JfbWVzc2FnZSk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9nZW9sb2NhdGlv
bl9tYW5hZ2VyX2dldF9lbmFibGVfaGlnaF9hY2N1cmFjeSAoV2ViS2l0R2VvbG9jYXRpb25NYW5h
Z2VyICAqbWFuYWdlcik7CisKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X2dlb2xvY2F0aW9u
X3Bvc2l0aW9uX2dldF90eXBlICAgICAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBX
ZWJLaXRHZW9sb2NhdGlvblBvc2l0aW9uICoKK3dlYmtpdF9nZW9sb2NhdGlvbl9wb3NpdGlvbl9u
ZXcgICAgICAgICAgICAgICAgICAgICAoZG91YmxlICAgICAgICAgICAgICAgICAgICAgbGF0aXR1
ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRvdWJsZSAgICAgICAgICAgICAgICAgICAgIGxvbmdpdHVkZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlICAgICAgICAgICAgICAg
ICAgICAgYWNjdXJhY3kpOworCitXRUJLSVRfQVBJIFdlYktpdEdlb2xvY2F0aW9uUG9zaXRpb24g
Kgord2Via2l0X2dlb2xvY2F0aW9uX3Bvc2l0aW9uX2NvcHkgICAgICAgICAgICAgICAgICAgIChX
ZWJLaXRHZW9sb2NhdGlvblBvc2l0aW9uICpwb3NpdGlvbik7CisKK1dFQktJVF9BUEkgdm9pZAor
d2Via2l0X2dlb2xvY2F0aW9uX3Bvc2l0aW9uX2ZyZWUgICAgICAgICAgICAgICAgICAgIChXZWJL
aXRHZW9sb2NhdGlvblBvc2l0aW9uICpwb3NpdGlvbik7CisKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X2dlb2xvY2F0aW9uX3Bvc2l0aW9uX3NldF90aW1lc3RhbXAgICAgICAgICAgIChXZWJLaXRH
ZW9sb2NhdGlvblBvc2l0aW9uICpwb3NpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQ2NCAgICAgICAgICAgICAgICAgICAgdGlt
ZXN0YW1wKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZ2VvbG9jYXRpb25fcG9zaXRpb25f
c2V0X2FsdGl0dWRlICAgICAgICAgICAgKFdlYktpdEdlb2xvY2F0aW9uUG9zaXRpb24gKnBvc2l0
aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkb3VibGUgICAgICAgICAgICAgICAgICAgICBhbHRpdHVkZSk7CisKK1dFQktJVF9BUEkgdm9p
ZAord2Via2l0X2dlb2xvY2F0aW9uX3Bvc2l0aW9uX3NldF9hbHRpdHVkZV9hY2N1cmFjeSAgIChX
ZWJLaXRHZW9sb2NhdGlvblBvc2l0aW9uICpwb3NpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlICAgICAgICAgICAgICAgICAg
ICAgYWx0aXR1ZGVfYWNjdXJhY3kpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9nZW9sb2Nh
dGlvbl9wb3NpdGlvbl9zZXRfaGVhZGluZyAgICAgICAgICAgICAoV2ViS2l0R2VvbG9jYXRpb25Q
b3NpdGlvbiAqcG9zaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRvdWJsZSAgICAgICAgICAgICAgICAgICAgIGhlYWRpbmcpOworCitX
RUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9nZW9sb2NhdGlvbl9wb3NpdGlvbl9zZXRfc3BlZWQgICAg
ICAgICAgICAgICAoV2ViS2l0R2VvbG9jYXRpb25Qb3NpdGlvbiAqcG9zaXRpb24sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSAgICAg
ICAgICAgICAgICAgICAgIHNwZWVkKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmIC8qIFdlYktp
dEdlb2xvY2F0aW9uTWFuYWdlcl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGRmMmQyMWZm
MWFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTAsMCArMSw2NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQy
X0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9u
bHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlm
CisKKyNpZm5kZWYgV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5l
IFdlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RfaAorCisjaW5jbHVkZSA8Z2xpYi1v
YmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKworR19CRUdJTl9E
RUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX0dFT0xPQ0FUSU9OX1BFUk1JU1NJT05fUkVRVUVT
VCAgICAgICAgICAgICh3ZWJraXRfZ2VvbG9jYXRpb25fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90
eXBlKCkpCisjZGVmaW5lIFdFQktJVF9HRU9MT0NBVElPTl9QRVJNSVNTSU9OX1JFUVVFU1Qob2Jq
KSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZ
UEVfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KSkKKyNkZWZpbmUgV0VCS0lUX0dFT0xPQ0FUSU9OX1BFUk1JU1NJT05fUkVR
VUVTVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBX
RUJLSVRfVFlQRV9HRU9MT0NBVElPTl9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19HRU9MT0NBVElP
Tl9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0Vf
VFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNUKSkK
KyNkZWZpbmUgV0VCS0lUX0lTX0dFT0xPQ0FUSU9OX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUyhr
bGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9HRU9M
T0NBVElPTl9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfR0VPTE9DQVRJT05f
UEVSTUlTU0lPTl9SRVFVRVNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9D
TEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0dFT0xPQ0FUSU9OX1BFUk1JU1NJT05fUkVRVUVTVCwg
V2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdENsYXNzKSkKKwordHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QgICAgICAgIFdlYktpdEdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0R2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdENsYXNzICAgV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlIFdlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOwor
CitzdHJ1Y3QgX1dlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QgeworICAgIEdPYmpl
Y3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdEdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9j
bGFzczsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVk
MCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAgIHZv
aWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2Vy
dmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X2dlb2xvY2F0aW9u
X3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRI
aXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEhp
dFRlc3RSZXN1bHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjBl
MGE5NTIwNzU4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0SGl0VGVzdFJlc3VsdC5oCkBAIC0wLDAgKzEsMTI0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJ
REVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikgJiYgIWRlZmluZWQoX19XRUJL
SVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtp
dDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktp
dEhpdFRlc3RSZXN1bHRfaAorI2RlZmluZSBXZWJLaXRIaXRUZXN0UmVzdWx0X2gKKworI2luY2x1
ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisK
K0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9ISVRfVEVTVF9SRVNVTFQgICAg
ICAgICAgICAod2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJL
SVRfSElUX1RFU1RfUkVTVUxUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNF
X0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX0hJVF9URVNUX1JFU1VMVCwgV2ViS2l0SGl0VGVzdFJl
c3VsdCkpCisjZGVmaW5lIFdFQktJVF9JU19ISVRfVEVTVF9SRVNVTFQob2JqKSAgICAgICAgIChH
X1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfSElUX1RFU1RfUkVT
VUxUKSkKKyNkZWZpbmUgV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9DTEFTUyhrbGFzcykgICAgKEdf
VFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9ISVRfVEVTVF9SRVNV
TFQsIFdlYktpdEhpdFRlc3RSZXN1bHRDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19ISVRfVEVT
VF9SRVNVTFRfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAg
V0VCS0lUX1RZUEVfSElUX1RFU1RfUkVTVUxUKSkKKyNkZWZpbmUgV0VCS0lUX0hJVF9URVNUX1JF
U1VMVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBX
RUJLSVRfVFlQRV9ISVRfVEVTVF9SRVNVTFQsIFdlYktpdEhpdFRlc3RSZXN1bHRDbGFzcykpCisK
K3R5cGVkZWYgc3RydWN0IF9XZWJLaXRIaXRUZXN0UmVzdWx0ICAgICAgICBXZWJLaXRIaXRUZXN0
UmVzdWx0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEhpdFRlc3RSZXN1bHRDbGFzcyAgIFdlYktp
dEhpdFRlc3RSZXN1bHRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRIaXRUZXN0UmVzdWx0
UHJpdmF0ZSBXZWJLaXRIaXRUZXN0UmVzdWx0UHJpdmF0ZTsKKworLyoqCisgKiBXZWJLaXRIaXRU
ZXN0UmVzdWx0Q29udGV4dDoKKyAqIEBXRUJLSVRfSElUX1RFU1RfUkVTVUxUX0NPTlRFWFRfRE9D
VU1FTlQ6IGFueXdoZXJlIGluIHRoZSBkb2N1bWVudC4KKyAqIEBXRUJLSVRfSElUX1RFU1RfUkVT
VUxUX0NPTlRFWFRfTElOSzogYSBoeXBlcmxpbmsgZWxlbWVudC4KKyAqIEBXRUJLSVRfSElUX1RF
U1RfUkVTVUxUX0NPTlRFWFRfSU1BR0U6IGFuIGltYWdlIGVsZW1lbnQuCisgKiBAV0VCS0lUX0hJ
VF9URVNUX1JFU1VMVF9DT05URVhUX01FRElBOiBhIHZpZGVvIG9yIGF1ZGlvIGVsZW1lbnQuCisg
KiBAV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9DT05URVhUX0VESVRBQkxFOiBhbiBlZGl0YWJsZSBl
bGVtZW50CisgKiBAV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9DT05URVhUX1NDUk9MTEJBUjogYSBz
Y3JvbGxiYXIgZWxlbWVudC4KKyAqIEBXRUJLSVRfSElUX1RFU1RfUkVTVUxUX0NPTlRFWFRfU0VM
RUNUSU9OOiBhIHNlbGVjdGVkIGVsZW1lbnQuIFNpbmNlIDIuOAorICoKKyAqIEVudW0gdmFsdWVz
IHdpdGggZmxhZ3MgcmVwcmVzZW50aW5nIHRoZSBjb250ZXh0IG9mIGEgI1dlYktpdEhpdFRlc3RS
ZXN1bHQuCisgKi8KK3R5cGVkZWYgZW51bQoreworICAgIFdFQktJVF9ISVRfVEVTVF9SRVNVTFRf
Q09OVEVYVF9ET0NVTUVOVCAgPSAxIDw8IDEsCisgICAgV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9D
T05URVhUX0xJTksgICAgICA9IDEgPDwgMiwKKyAgICBXRUJLSVRfSElUX1RFU1RfUkVTVUxUX0NP
TlRFWFRfSU1BR0UgICAgID0gMSA8PCAzLAorICAgIFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09O
VEVYVF9NRURJQSAgICAgPSAxIDw8IDQsCisgICAgV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9DT05U
RVhUX0VESVRBQkxFICA9IDEgPDwgNSwKKyAgICBXRUJLSVRfSElUX1RFU1RfUkVTVUxUX0NPTlRF
WFRfU0NST0xMQkFSID0gMSA8PCA2LAorICAgIFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVY
VF9TRUxFQ1RJT04gPSAxIDw8IDcKK30gV2ViS2l0SGl0VGVzdFJlc3VsdENvbnRleHQ7CisKK3N0
cnVjdCBfV2ViS2l0SGl0VGVzdFJlc3VsdCB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAv
KjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRIaXRUZXN0UmVzdWx0UHJpdmF0ZSAqcHJpdjsKK307
CisKK3N0cnVjdCBfV2ViS2l0SGl0VGVzdFJlc3VsdENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3Mg
cGFyZW50X2NsYXNzOworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgdm9pZCAoKl93ZWJraXRf
cmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7
CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfaGl0
X3Rlc3RfcmVzdWx0X2dldF90eXBlICAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBn
dWludAord2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9nZXRfY29udGV4dCAgICAgICAgICAoV2ViS2l0
SGl0VGVzdFJlc3VsdCAqaGl0X3Rlc3RfcmVzdWx0KTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgor
d2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9jb250ZXh0X2lzX2xpbmsgICAgICAoV2ViS2l0SGl0VGVz
dFJlc3VsdCAqaGl0X3Rlc3RfcmVzdWx0KTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0
X2hpdF90ZXN0X3Jlc3VsdF9jb250ZXh0X2lzX2ltYWdlICAgICAoV2ViS2l0SGl0VGVzdFJlc3Vs
dCAqaGl0X3Rlc3RfcmVzdWx0KTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2hpdF90
ZXN0X3Jlc3VsdF9jb250ZXh0X2lzX21lZGlhICAgICAoV2ViS2l0SGl0VGVzdFJlc3VsdCAqaGl0
X3Rlc3RfcmVzdWx0KTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2hpdF90ZXN0X3Jl
c3VsdF9jb250ZXh0X2lzX2VkaXRhYmxlICAoV2ViS2l0SGl0VGVzdFJlc3VsdCAqaGl0X3Rlc3Rf
cmVzdWx0KTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9j
b250ZXh0X2lzX3NlbGVjdGlvbiAoV2ViS2l0SGl0VGVzdFJlc3VsdCAqaGl0X3Rlc3RfcmVzdWx0
KTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2dl
dF9saW5rX3VyaSAgICAgICAgIChXZWJLaXRIaXRUZXN0UmVzdWx0ICpoaXRfdGVzdF9yZXN1bHQp
OworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF9oaXRfdGVzdF9yZXN1bHRfZ2V0
X2xpbmtfdGl0bGUgICAgICAgKFdlYktpdEhpdFRlc3RSZXN1bHQgKmhpdF90ZXN0X3Jlc3VsdCk7
CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9nZXRf
bGlua19sYWJlbCAgICAgICAoV2ViS2l0SGl0VGVzdFJlc3VsdCAqaGl0X3Rlc3RfcmVzdWx0KTsK
KworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2dldF9p
bWFnZV91cmkgICAgICAgIChXZWJLaXRIaXRUZXN0UmVzdWx0ICpoaXRfdGVzdF9yZXN1bHQpOwor
CitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF9oaXRfdGVzdF9yZXN1bHRfZ2V0X21l
ZGlhX3VyaSAgICAgICAgKFdlYktpdEhpdFRlc3RSZXN1bHQgKmhpdF90ZXN0X3Jlc3VsdCk7CisK
K1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY29udGV4dF9pc19z
Y3JvbGxiYXIgKFdlYktpdEhpdFRlc3RSZXN1bHQgKmhpdF90ZXN0X3Jlc3VsdCk7CisKK0dfRU5E
X0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluc3RhbGxNaXNzaW5nTWVk
aWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLmYwMmViZTUxZGMzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJt
aXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVm
aW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIu
aD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdElu
c3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBXZWJL
aXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0X2gKKworI2luY2x1
ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisK
K0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9JTlNUQUxMX01JU1NJTkdfTUVE
SUFfUExVR0lOU19QRVJNSVNTSU9OX1JFUVVFU1QgICAgICAgICAgICAod2Via2l0X2luc3RhbGxf
bWlzc2luZ19tZWRpYV9wbHVnaW5zX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBXRUJLSVRfSU5TVEFMTF9NSVNTSU5HX01FRElBX1BMVUdJTlNfUEVSTUlTU0lPTl9SRVFV
RVNUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdF
QktJVF9UWVBFX0lOU1RBTExfTUlTU0lOR19NRURJQV9QTFVHSU5TX1BFUk1JU1NJT05fUkVRVUVT
VCwgV2ViS2l0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdCkpCisj
ZGVmaW5lIFdFQktJVF9JU19JTlNUQUxMX01JU1NJTkdfTUVESUFfUExVR0lOU19QRVJNSVNTSU9O
X1JFUVVFU1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwg
V0VCS0lUX1RZUEVfSU5TVEFMTF9NSVNTSU5HX01FRElBX1BMVUdJTlNfUEVSTUlTU0lPTl9SRVFV
RVNUKSkKKyNkZWZpbmUgV0VCS0lUX0lOU1RBTExfTUlTU0lOR19NRURJQV9QTFVHSU5TX1BFUk1J
U1NJT05fUkVRVUVTVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChr
bGFzcyksICBXRUJLSVRfVFlQRV9JTlNUQUxMX01JU1NJTkdfTUVESUFfUExVR0lOU19QRVJNSVNT
SU9OX1JFUVVFU1QsIFdlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJl
cXVlc3RDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19JTlNUQUxMX01JU1NJTkdfTUVESUFfUExV
R0lOU19QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
VFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfSU5TVEFMTF9NSVNTSU5HX01FRElBX1BMVUdJTlNf
UEVSTUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX0lOU1RBTExfTUlTU0lOR19NRURJ
QV9QTFVHSU5TX1BFUk1JU1NJT05fUkVRVUVTVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNU
QU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9JTlNUQUxMX01JU1NJTkdfTUVESUFf
UExVR0lOU19QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVn
aW5zUGVybWlzc2lvblJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRJbnN0
YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0ICAgICAgICBXZWJLaXRJbnN0
YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3RDbGFzcyAg
IFdlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3RDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZSBXZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1
Z2luc1Blcm1pc3Npb25SZXF1ZXN0IHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBw
cml2YXRlID4qLworICAgIFdlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lv
blJlcXVlc3RQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRJbnN0YWxsTWlzc2lu
Z01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBw
YXJlbnRfY2xhc3M7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsK
KyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtp
dF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9pbnN0
YWxsX21pc3NpbmdfbWVkaWFfcGx1Z2luc19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUgICAg
ICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfaW5zdGFsbF9t
aXNzaW5nX21lZGlhX3BsdWdpbnNfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF9kZXNjcmlwdGlvbiAo
V2ViS2l0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVz
dCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5oLmluIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0LmgKc2ltaWxhcml0
eSBpbmRleCA5MSUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuaAppbmRleCBiOWVlYzI3M2M1MmQu
LmRhY2NkZWIwZGExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5oCkBAIC0xNywxOCArMTcsMTcgQEAK
ICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLUBBUElfU0lOR0xFX0hFQURF
Ul9DSEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQo
V0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNh
biBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRKYXZhc2Ny
aXB0UmVzdWx0X2gKICNkZWZpbmUgV2ViS2l0SmF2YXNjcmlwdFJlc3VsdF9oCiAKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU0Jhc2UuaD4KICNpbmNsdWRlIDxqc2MvanNjLmg+CiAjaW5jbHVk
ZSA8Z2xpYi1vYmplY3QuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRE
ZWZpbmVzLmg+Ci0KLSNpZiBQTEFURk9STShHVEspCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNCYXNlLmg+Ci0jZW5kaWYKKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KIAog
R19CRUdJTl9ERUNMUwogCkBAIC00NiwxMyArNDUsMTEgQEAgd2Via2l0X2phdmFzY3JpcHRfcmVz
dWx0X3JlZiAgICAgICAgICAgICAgICAoV2ViS2l0SmF2YXNjcmlwdFJlc3VsdCAqanNfcmVzdWx0
KTsKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2phdmFzY3JpcHRfcmVzdWx0X3VucmVmICAgICAg
ICAgICAgICAoV2ViS2l0SmF2YXNjcmlwdFJlc3VsdCAqanNfcmVzdWx0KTsKIAotI2lmIFBMQVRG
T1JNKEdUSykKIFdFQktJVF9ERVBSRUNBVEVEIEpTR2xvYmFsQ29udGV4dFJlZgogd2Via2l0X2ph
dmFzY3JpcHRfcmVzdWx0X2dldF9nbG9iYWxfY29udGV4dCAoV2ViS2l0SmF2YXNjcmlwdFJlc3Vs
dCAqanNfcmVzdWx0KTsKIAogV0VCS0lUX0RFUFJFQ0FURURfRk9SKHdlYmtpdF9qYXZhc2NyaXB0
X3Jlc3VsdF9nZXRfanNfdmFsdWUpIEpTVmFsdWVSZWYKIHdlYmtpdF9qYXZhc2NyaXB0X3Jlc3Vs
dF9nZXRfdmFsdWUgICAgICAgICAgKFdlYktpdEphdmFzY3JpcHRSZXN1bHQgKmpzX3Jlc3VsdCk7
Ci0jZW5kaWYKIAogV0VCS0lUX0FQSSBKU0NWYWx1ZSAqCiB3ZWJraXRfamF2YXNjcmlwdF9yZXN1
bHRfZ2V0X2pzX3ZhbHVlICAgICAgIChXZWJLaXRKYXZhc2NyaXB0UmVzdWx0ICpqc19yZXN1bHQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmI5MzJiYWJlZDYzNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAm
JiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dl
YmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdl
YktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBXZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+
CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKwor
I2RlZmluZSBXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCAg
ICAgICAgICAgICh3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFV
RVNUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdF
QktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9T
WVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NM
QVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lP
Tl9SRVFVRVNULCBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQor
I2RlZmluZSBXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1Qob2Jq
KSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVf
TUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfSVNf
TUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9Q
RVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJN
SVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNT
KChvYmopLCAgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1Qs
IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYg
c3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0ICAgICAgICBXZWJL
aXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktp
dE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzcyAgIFdlYktpdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0IHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4q
LworICAgIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlICpwcml2
OworfTsKKworc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xh
c3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICAvKjwgcHJpdmF0ZSA+
Ki8KKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2
b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJ
VF9BUEkgR1R5cGUKK3dlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fcmVxdWVzdF9n
ZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X21lZGlh
X2tleV9zeXN0ZW1fcGVybWlzc2lvbl9nZXRfbmFtZSAoV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdCAqcmVxdWVzdCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRNZW1vcnlQcmVzc3Vy
ZVNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1lbW9y
eVByZXNzdXJlU2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLmI2Njc4MzUxYjQ0NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0TWVtb3J5UHJlc3N1cmVTZXR0aW5ncy5oCkBAIC0wLDAgKzEsODUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9f
V0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vy
cm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIK
KyNlbmRpZgorCisjaWZuZGVmIFdlYktpdE1lbW9yeVByZXNzdXJlU2V0dGluZ3NfaAorI2RlZmlu
ZSBXZWJLaXRNZW1vcnlQcmVzc3VyZVNldHRpbmdzX2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0
Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMK
KworI2RlZmluZSBXRUJLSVRfVFlQRV9NRU1PUllfUFJFU1NVUkVfU0VUVElOR1MgKHdlYmtpdF9t
ZW1vcnlfcHJlc3N1cmVfc2V0dGluZ3NfZ2V0X3R5cGUoKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdE1lbW9yeVByZXNzdXJlU2V0dGluZ3MgV2ViS2l0TWVtb3J5UHJlc3N1cmVTZXR0aW5nczsK
KworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X21lbW9yeV9wcmVzc3VyZV9zZXR0aW5nc19nZXRf
dHlwZSAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0TWVtb3J5
UHJlc3N1cmVTZXR0aW5ncyAqCit3ZWJraXRfbWVtb3J5X3ByZXNzdXJlX3NldHRpbmdzX25ldyAg
ICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBXZWJLaXRNZW1vcnlQ
cmVzc3VyZVNldHRpbmdzICoKK3dlYmtpdF9tZW1vcnlfcHJlc3N1cmVfc2V0dGluZ3NfY29weSAg
ICAgICAgICAgICAgICAgICAgICAgKFdlYktpdE1lbW9yeVByZXNzdXJlU2V0dGluZ3MgKnNldHRp
bmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfbWVtb3J5X3ByZXNzdXJlX3NldHRpbmdz
X2ZyZWUgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRNZW1vcnlQcmVzc3VyZVNldHRpbmdz
ICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X21lbW9yeV9wcmVzc3VyZV9z
ZXR0aW5nc19zZXRfbWVtb3J5X2xpbWl0ICAgICAgICAgICAoV2ViS2l0TWVtb3J5UHJlc3N1cmVT
ZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgICAgICBtZW1v
cnlfbGltaXQpOworCitXRUJLSVRfQVBJIGd1aW50Cit3ZWJraXRfbWVtb3J5X3ByZXNzdXJlX3Nl
dHRpbmdzX2dldF9tZW1vcnlfbGltaXQgICAgICAgICAgIChXZWJLaXRNZW1vcnlQcmVzc3VyZVNl
dHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X21lbW9yeV9wcmVz
c3VyZV9zZXR0aW5nc19zZXRfY29uc2VydmF0aXZlX3RocmVzaG9sZCAoV2ViS2l0TWVtb3J5UHJl
c3N1cmVTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZG91YmxlICAgICAgICAgICAgICAgICAgICAg
ICB2YWx1ZSk7CisKK1dFQktJVF9BUEkgZ2RvdWJsZQord2Via2l0X21lbW9yeV9wcmVzc3VyZV9z
ZXR0aW5nc19nZXRfY29uc2VydmF0aXZlX3RocmVzaG9sZCAoV2ViS2l0TWVtb3J5UHJlc3N1cmVT
ZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9tZW1vcnlfcHJl
c3N1cmVfc2V0dGluZ3Nfc2V0X3N0cmljdF90aHJlc2hvbGQgICAgICAgKFdlYktpdE1lbW9yeVBy
ZXNzdXJlU2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RvdWJsZSAgICAgICAgICAgICAgICAgICAg
ICAgdmFsdWUpOworCitXRUJLSVRfQVBJIGdkb3VibGUKK3dlYmtpdF9tZW1vcnlfcHJlc3N1cmVf
c2V0dGluZ3NfZ2V0X3N0cmljdF90aHJlc2hvbGQgICAgICAgKFdlYktpdE1lbW9yeVByZXNzdXJl
U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfbWVtb3J5X3By
ZXNzdXJlX3NldHRpbmdzX3NldF9raWxsX3RocmVzaG9sZCAgICAgICAgIChXZWJLaXRNZW1vcnlQ
cmVzc3VyZVNldHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdkb3VibGUgICAgICAgICAgICAgICAgICAg
ICAgIHZhbHVlKTsKKworV0VCS0lUX0FQSSBnZG91YmxlCit3ZWJraXRfbWVtb3J5X3ByZXNzdXJl
X3NldHRpbmdzX2dldF9raWxsX3RocmVzaG9sZCAgICAgICAgIChXZWJLaXRNZW1vcnlQcmVzc3Vy
ZVNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X21lbW9yeV9w
cmVzc3VyZV9zZXR0aW5nc19zZXRfcG9sbF9pbnRlcnZhbCAgICAgICAgICAoV2ViS2l0TWVtb3J5
UHJlc3N1cmVTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZG91YmxlICAgICAgICAgICAgICAgICAg
ICAgICB2YWx1ZSk7CisKK1dFQktJVF9BUEkgZ2RvdWJsZQord2Via2l0X21lbW9yeV9wcmVzc3Vy
ZV9zZXR0aW5nc19nZXRfcG9sbF9pbnRlcnZhbCAgICAgICAgICAoV2ViS2l0TWVtb3J5UHJlc3N1
cmVTZXR0aW5ncyAqc2V0dGluZ3MpOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogV2ViS2l0
TWVtb3J5UHJlc3N1cmVTZXR0aW5nc19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1pbWVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdE1pbWVJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi44YmY1N2I5ZmIyOWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1pbWVJbmZvLmgKQEAgLTAsMCArMSw1NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQy
X0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9u
bHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlm
CisKKyNpZm5kZWYgV2ViS2l0TWltZUluZm9faAorI2RlZmluZSBXZWJLaXRNaW1lSW5mb19oCisK
KyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5l
cy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfTUlNRV9JTkZPICh3
ZWJraXRfbWltZV9pbmZvX2dldF90eXBlKCkpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRNaW1l
SW5mbyBXZWJLaXRNaW1lSW5mbzsKKworCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQord2Via2l0
X21pbWVfaW5mb19nZXRfdHlwZSAgICAgICAgKHZvaWQpOworCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRNaW1lSW5mbyAqCit3ZWJraXRfbWltZV9pbmZvX3JlZiAgICAgICAgICAgICAoV2ViS2l0
TWltZUluZm8gKmluZm8pOworCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCit3ZWJraXRfbWltZV9p
bmZvX3VucmVmICAgICAgICAgICAoV2ViS2l0TWltZUluZm8gKmluZm8pOworCitXRUJLSVRfREVQ
UkVDQVRFRCBjb25zdCBnY2hhciAqCit3ZWJraXRfbWltZV9pbmZvX2dldF9taW1lX3R5cGUgICAo
V2ViS2l0TWltZUluZm8gKmluZm8pOworCitXRUJLSVRfREVQUkVDQVRFRCBjb25zdCBnY2hhciAq
Cit3ZWJraXRfbWltZV9pbmZvX2dldF9kZXNjcmlwdGlvbiAoV2ViS2l0TWltZUluZm8gKmluZm8p
OworCitXRUJLSVRfREVQUkVDQVRFRCBjb25zdCBnY2hhciAqIGNvbnN0ICoKK3dlYmtpdF9taW1l
X2luZm9fZ2V0X2V4dGVuc2lvbnMgIChXZWJLaXRNaW1lSW5mbyAqaW5mbyk7CisKK0dfRU5EX0RF
Q0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdE5hdmlnYXRpb25BY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLjg4NDhhY2JkMTEwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvbkFjdGlvbi5oCkBAIC0wLDAgKzEs
ODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVk
KF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQor
I2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5
LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdE5hdmlnYXRpb25BY3Rpb25faAorI2RlZmluZSBX
ZWJLaXROYXZpZ2F0aW9uQWN0aW9uX2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5j
bHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRV
UklSZXF1ZXN0Lmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9OQVZJ
R0FUSU9OX0FDVElPTiAod2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2dldF90eXBlKCkpCisKKy8q
KgorICogV2ViS2l0TmF2aWdhdGlvblR5cGU6CisgKiBAV0VCS0lUX05BVklHQVRJT05fVFlQRV9M
SU5LX0NMSUNLRUQ6IFRoZSBuYXZpZ2F0aW9uIHdhcyB0cmlnZ2VyZWQgYnkgY2xpY2tpbmcgYSBs
aW5rLgorICogQFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfRk9STV9TVUJNSVRURUQ6IFRoZSBuYXZp
Z2F0aW9uIHdhcyB0cmlnZ2VyZWQgYnkgc3VibWl0dGluZyBhIGZvcm0uCisgKiBAV0VCS0lUX05B
VklHQVRJT05fVFlQRV9CQUNLX0ZPUldBUkQ6IFRoZSBuYXZpZ2F0aW9uIHdhcyB0cmlnZ2VyZWQg
YnkgbmF2aWdhdGluZyBmb3J3YXJkIG9yIGJhY2t3YXJkLgorICogQFdFQktJVF9OQVZJR0FUSU9O
X1RZUEVfUkVMT0FEOiBUaGUgbmF2aWdhdGlvbiB3YXMgdHJpZ2dlcmVkIGJ5IHJlbG9hZGluZy4K
KyAqIEBXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0ZPUk1fUkVTVUJNSVRURUQ6IFRoZSBuYXZpZ2F0
aW9uIHdhcyB0cmlnZ2VyZWQgYnkgcmVzdWJtaXR0aW5nIGEgZm9ybS4KKyAqIEBXRUJLSVRfTkFW
SUdBVElPTl9UWVBFX09USEVSOiBUaGUgbmF2aWdhdGlvbiB3YXMgdHJpZ2dlcmVkIGJ5IHNvbWUg
b3RoZXIgYWN0aW9uLgorICoKKyAqIEVudW0gdmFsdWVzIHVzZWQgdG8gZGVub3RlIHRoZSB2YXJp
b3VzIG5hdmlnYXRpb24gdHlwZXMuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX05B
VklHQVRJT05fVFlQRV9MSU5LX0NMSUNLRUQsCisgICAgV0VCS0lUX05BVklHQVRJT05fVFlQRV9G
T1JNX1NVQk1JVFRFRCwKKyAgICBXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0JBQ0tfRk9SV0FSRCwK
KyAgICBXRUJLSVRfTkFWSUdBVElPTl9UWVBFX1JFTE9BRCwKKyAgICBXRUJLSVRfTkFWSUdBVElP
Tl9UWVBFX0ZPUk1fUkVTVUJNSVRURUQsCisgICAgV0VCS0lUX05BVklHQVRJT05fVFlQRV9PVEhF
UgorfSBXZWJLaXROYXZpZ2F0aW9uVHlwZTsKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5hdmln
YXRpb25BY3Rpb24gV2ViS2l0TmF2aWdhdGlvbkFjdGlvbjsKKworCitXRUJLSVRfQVBJIEdUeXBl
Cit3ZWJraXRfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X3R5cGUgICAgICAgICAgICAodm9pZCk7CisK
K1dFQktJVF9BUEkgV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiAqCit3ZWJraXRfbmF2aWdhdGlvbl9h
Y3Rpb25fY29weSAgICAgICAgICAgICAgICAoV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiAqbmF2aWdh
dGlvbik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2ZyZWUg
ICAgICAgICAgICAgICAgKFdlYktpdE5hdmlnYXRpb25BY3Rpb24gKm5hdmlnYXRpb24pOworCitX
RUJLSVRfQVBJIFdlYktpdE5hdmlnYXRpb25UeXBlCit3ZWJraXRfbmF2aWdhdGlvbl9hY3Rpb25f
Z2V0X25hdmlnYXRpb25fdHlwZSAoV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiAqbmF2aWdhdGlvbik7
CisKK1dFQktJVF9BUEkgZ3VpbnQKK3dlYmtpdF9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfbW91c2Vf
YnV0dG9uICAgIChXZWJLaXROYXZpZ2F0aW9uQWN0aW9uICpuYXZpZ2F0aW9uKTsKKworV0VCS0lU
X0FQSSBndWludAord2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2dldF9tb2RpZmllcnMgICAgICAg
KFdlYktpdE5hdmlnYXRpb25BY3Rpb24gKm5hdmlnYXRpb24pOworCitXRUJLSVRfQVBJIFdlYktp
dFVSSVJlcXVlc3QgKgord2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2dldF9yZXF1ZXN0ICAgICAg
ICAgKFdlYktpdE5hdmlnYXRpb25BY3Rpb24gKm5hdmlnYXRpb24pOworCitXRUJLSVRfQVBJIGdi
b29sZWFuCit3ZWJraXRfbmF2aWdhdGlvbl9hY3Rpb25faXNfdXNlcl9nZXN0dXJlICAgICAoV2Vi
S2l0TmF2aWdhdGlvbkFjdGlvbiAqbmF2aWdhdGlvbik7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4K
K3dlYmtpdF9uYXZpZ2F0aW9uX2FjdGlvbl9pc19yZWRpcmVjdCAgICAgICAgIChXZWJLaXROYXZp
Z2F0aW9uQWN0aW9uICpuYXZpZ2F0aW9uKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb24uaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmgKc2ltaWxhcml0eSBpbmRleCA5MiUKcmVuYW1l
IGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvblBv
bGljeURlY2lzaW9uLmguaW4KcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmgKaW5kZXggN2VmOWM1NWEyMjEwLi41
NjViNTE1N2EwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmgKQEAgLTE3
LDE2ICsxNywxOCBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAotQEFQ
SV9TSU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9f
KSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQy
L3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgogCiAjaWZuZGVm
IFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbl9oCiAjZGVmaW5lIFdlYktpdE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbl9oCiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUg
PEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERlZmluZXMuaD4KLSNpbmNsdWRlIDxAQVBJX0lO
Q0xVREVfUFJFRklYQC9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uLmg+Ci0jaW5jbHVkZSA8QEFQSV9J
TkNMVURFX1BSRUZJWEAvV2ViS2l0UG9saWN5RGVjaXNpb24uaD4KLSNpbmNsdWRlIDxAQVBJX0lO
Q0xVREVfUFJFRklYQC9XZWJLaXRVUklSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJL
aXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uLmg+
CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRQb2xpY3lEZWNpc2lvbi5oPgorI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0VVJJUmVxdWVzdC5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTY0LDcgKzY2
LDYgQEAgd2Via2l0X25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX2dldF90eXBlICAgICAgICAg
ICAgKHZvaWQpOwogV0VCS0lUX0FQSSBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uICoKIHdlYmtpdF9u
YXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9nZXRfbmF2aWdhdGlvbl9hY3Rpb24gKFdlYktpdE5h
dmlnYXRpb25Qb2xpY3lEZWNpc2lvbiAqZGVjaXNpb24pOwogCi0jaWYgUExBVEZPUk0oR1RLKQog
V0VCS0lUX0RFUFJFQ0FURURfRk9SKHdlYmtpdF9uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9n
ZXRfbmF2aWdhdGlvbl9hY3Rpb24pIFdlYktpdE5hdmlnYXRpb25UeXBlCiB3ZWJraXRfbmF2aWdh
dGlvbl9wb2xpY3lfZGVjaXNpb25fZ2V0X25hdmlnYXRpb25fdHlwZSAgIChXZWJLaXROYXZpZ2F0
aW9uUG9saWN5RGVjaXNpb24gKmRlY2lzaW9uKTsKIApAQCAtNzYsNyArNzcsNiBAQCB3ZWJraXRf
bmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fZ2V0X21vZGlmaWVycyAgICAgICAgIChXZWJLaXRO
YXZpZ2F0aW9uUG9saWN5RAogCiBXRUJLSVRfREVQUkVDQVRFRF9GT1Iod2Via2l0X25hdmlnYXRp
b25fcG9saWN5X2RlY2lzaW9uX2dldF9uYXZpZ2F0aW9uX2FjdGlvbikgV2ViS2l0VVJJUmVxdWVz
dCAqCiB3ZWJraXRfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fZ2V0X3JlcXVlc3QgICAgICAg
ICAgIChXZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gKmRlY2lzaW9uKTsKLSNlbmRpZgog
CiBXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKIHdlYmtpdF9uYXZpZ2F0aW9uX3BvbGljeV9kZWNp
c2lvbl9nZXRfZnJhbWVfbmFtZSAgICAgICAgKFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lv
biAqZGVjaXNpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXROZXR3b3JrUHJveHlTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXROZXR3b3JrUHJveHlTZXR0aW5ncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uNDlmNmE4N2VlOTYxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROZXR3b3JrUHJveHlTZXR0aW5ncy5o
CkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NP
TVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1
ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdE5ldHdvcmtQcm94eVNldHRp
bmdzX2gKKyNkZWZpbmUgV2ViS2l0TmV0d29ya1Byb3h5U2V0dGluZ3NfaAorCisjaW5jbHVkZSA8
Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKworR19C
RUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX05FVFdPUktfTkVUV09SS19QUk9YWV9T
RVRUSU5HUyAod2Via2l0X25ldHdvcmtfcHJveHlfc2V0dGluZ3NfZ2V0X3R5cGUoKSkKKworLyoq
CisgKiBXZWJLaXROZXR3b3JrUHJveHlNb2RlOgorICogQFdFQktJVF9ORVRXT1JLX1BST1hZX01P
REVfREVGQVVMVDogVXNlIHRoZSBkZWZhdWx0IHByb3h5IG9mIHRoZSBzeXN0ZW0uCisgKiBAV0VC
S0lUX05FVFdPUktfUFJPWFlfTU9ERV9OT19QUk9YWTogRG8gbm90IHVzZSBhbnkgcHJveHkuCisg
KiBAV0VCS0lUX05FVFdPUktfUFJPWFlfTU9ERV9DVVNUT006IFVzZSBjdXN0b20gcHJveHkgc2V0
dGluZ3MuCisgKgorICogRW51bSB2YWx1ZXMgdXNlZCB0byBzZXQgdGhlIG5ldHdvcmsgcHJveHkg
bW9kZS4KKyAqCisgKiBTaW5jZTogMi4xNgorICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJ
VF9ORVRXT1JLX1BST1hZX01PREVfREVGQVVMVCwKKyAgICBXRUJLSVRfTkVUV09SS19QUk9YWV9N
T0RFX05PX1BST1hZLAorICAgIFdFQktJVF9ORVRXT1JLX1BST1hZX01PREVfQ1VTVE9NCit9IFdl
YktpdE5ldHdvcmtQcm94eU1vZGU7CisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXROZXR3b3JrUHJv
eHlTZXR0aW5ncyBXZWJLaXROZXR3b3JrUHJveHlTZXR0aW5nczsKKworV0VCS0lUX0FQSSBHVHlw
ZQord2Via2l0X25ldHdvcmtfcHJveHlfc2V0dGluZ3NfZ2V0X3R5cGUgICAgICAgICAgICAgKHZv
aWQpOworCitXRUJLSVRfQVBJIFdlYktpdE5ldHdvcmtQcm94eVNldHRpbmdzICoKK3dlYmtpdF9u
ZXR3b3JrX3Byb3h5X3NldHRpbmdzX25ldyAgICAgICAgICAgICAgICAgIChjb25zdCBnY2hhciAg
ICAgICAgICAgICAgICAqZGVmYXVsdF9wcm94eV91cmksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqIGNvbnN0ICAgICAgICAg
Kmlnbm9yZV9ob3N0cyk7CisKK1dFQktJVF9BUEkgV2ViS2l0TmV0d29ya1Byb3h5U2V0dGluZ3Mg
Kgord2Via2l0X25ldHdvcmtfcHJveHlfc2V0dGluZ3NfY29weSAgICAgICAgICAgICAgICAgKFdl
YktpdE5ldHdvcmtQcm94eVNldHRpbmdzICpwcm94eV9zZXR0aW5ncyk7CisKK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X25ldHdvcmtfcHJveHlfc2V0dGluZ3NfZnJlZSAgICAgICAgICAgICAgICAg
KFdlYktpdE5ldHdvcmtQcm94eVNldHRpbmdzICpwcm94eV9zZXR0aW5ncyk7CisKK1dFQktJVF9B
UEkgdm9pZAord2Via2l0X25ldHdvcmtfcHJveHlfc2V0dGluZ3NfYWRkX3Byb3h5X2Zvcl9zY2hl
bWUgKFdlYktpdE5ldHdvcmtQcm94eVNldHRpbmdzICpwcm94eV9zZXR0aW5ncywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAg
ICAgICAgICAgICAgICAqc2NoZW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgICpwcm94eV91cmkp
OworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogV2ViS2l0TmV0d29ya1Byb3h5U2V0dGluZ3Nf
aCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRO
b3RpZmljYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Tm90
aWZpY2F0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44MDk5
ZWE5MTUwNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdE5vdGlmaWNhdGlvbi5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQ29sbGFib3JhIEx0ZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lE
RV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJr
aXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZu
ZGVmIFdlYktpdE5vdGlmaWNhdGlvbl9oCisjZGVmaW5lIFdlYktpdE5vdGlmaWNhdGlvbl9oCisK
KyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5l
cy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oPgorCitH
X0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfTk9USUZJQ0FUSU9OICAgICAgICAg
ICAgKHdlYmtpdF9ub3RpZmljYXRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX05PVElG
SUNBVElPTihvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmop
LCBXRUJLSVRfVFlQRV9OT1RJRklDQVRJT04sIFdlYktpdE5vdGlmaWNhdGlvbikpCisjZGVmaW5l
IFdFQktJVF9JU19OT1RJRklDQVRJT04ob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFO
Q0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfTk9USUZJQ0FUSU9OKSkKKyNkZWZpbmUgV0VCS0lU
X05PVElGSUNBVElPTl9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChr
bGFzcyksICBXRUJLSVRfVFlQRV9OT1RJRklDQVRJT04sIFdlYktpdE5vdGlmaWNhdGlvbkNsYXNz
KSkKKyNkZWZpbmUgV0VCS0lUX0lTX05PVElGSUNBVElPTl9DTEFTUyhrbGFzcykgKEdfVFlQRV9D
SEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9OT1RJRklDQVRJT04pKQorI2Rl
ZmluZSBXRUJLSVRfTk9USUZJQ0FUSU9OX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNF
X0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX05PVElGSUNBVElPTiwgV2ViS2l0Tm90aWZp
Y2F0aW9uQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0Tm90aWZpY2F0aW9uICAgICAg
ICBXZWJLaXROb3RpZmljYXRpb247Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0Tm90aWZpY2F0aW9u
Q2xhc3MgICBXZWJLaXROb3RpZmljYXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRO
b3RpZmljYXRpb25Qcml2YXRlIFdlYktpdE5vdGlmaWNhdGlvblByaXZhdGU7CisKK3N0cnVjdCBf
V2ViS2l0Tm90aWZpY2F0aW9uIHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2
YXRlID4qLworICAgIFdlYktpdE5vdGlmaWNhdGlvblByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1
Y3QgX1dlYktpdE5vdGlmaWNhdGlvbkNsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2Ns
YXNzOworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQw
KSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9p
ZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2
ZWQzKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQ0KSAodm9pZCk7CisgICAg
dm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQ1KSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBl
Cit3ZWJraXRfbm90aWZpY2F0aW9uX2dldF90eXBlICAgICAgICAgICAgICAgICAodm9pZCk7CisK
K1dFQktJVF9BUEkgZ3VpbnQ2NAord2Via2l0X25vdGlmaWNhdGlvbl9nZXRfaWQgICAgICAgICAg
ICAgICAgICAgKFdlYktpdE5vdGlmaWNhdGlvbiAqbm90aWZpY2F0aW9uKTsKKworV0VCS0lUX0FQ
SSBjb25zdCBnY2hhciAqCit3ZWJraXRfbm90aWZpY2F0aW9uX2dldF90aXRsZSAgICAgICAgICAg
ICAgICAoV2ViS2l0Tm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pOworCitXRUJLSVRfQVBJIGNv
bnN0IGdjaGFyICoKK3dlYmtpdF9ub3RpZmljYXRpb25fZ2V0X2JvZHkgICAgICAgICAgICAgICAg
IChXZWJLaXROb3RpZmljYXRpb24gKm5vdGlmaWNhdGlvbik7CisKK1dFQktJVF9BUEkgY29uc3Qg
Z2NoYXIgKgord2Via2l0X25vdGlmaWNhdGlvbl9nZXRfdGFnICAgICAgICAgICAgICAgICAgKFdl
YktpdE5vdGlmaWNhdGlvbiAqbm90aWZpY2F0aW9uKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJr
aXRfbm90aWZpY2F0aW9uX2Nsb3NlICAgICAgICAgICAgICAgICAgICAoV2ViS2l0Tm90aWZpY2F0
aW9uICpub3RpZmljYXRpb24pOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9ub3RpZmljYXRp
b25fY2xpY2tlZCAgICAgICAgICAgICAgICAgIChXZWJLaXROb3RpZmljYXRpb24gKm5vdGlmaWNh
dGlvbik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
ZDJmYjQxMTA0ZjQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEs
NTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVk
KF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQor
I2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5
LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
X2gKKyNkZWZpbmUgV2ViS2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RfaAorCisjaW5j
bHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4K
KworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX05PVElGSUNBVElPTl9QRVJN
SVNTSU9OX1JFUVVFU1QgICAgICAgICAgICAod2Via2l0X25vdGlmaWNhdGlvbl9wZXJtaXNzaW9u
X3JlcXVlc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX05PVElGSUNBVElPTl9QRVJNSVNT
SU9OX1JFUVVFU1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgo
b2JqKSwgV0VCS0lUX1RZUEVfTk9USUZJQ0FUSU9OX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpKQorI2RlZmluZSBXRUJLSVRfTk9USUZJQ0FU
SU9OX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFT
U19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9OT1RJRklDQVRJT05fUEVSTUlTU0lPTl9SRVFV
RVNULCBXZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENsYXNzKSkKKyNkZWZpbmUg
V0VCS0lUX0lTX05PVElGSUNBVElPTl9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAgIChH
X1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfTk9USUZJQ0FUSU9O
X1BFUk1JU1NJT05fUkVRVUVTVCkpCisjZGVmaW5lIFdFQktJVF9JU19OT1RJRklDQVRJT05fUEVS
TUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGts
YXNzKSwgIFdFQktJVF9UWVBFX05PVElGSUNBVElPTl9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2Rl
ZmluZSBXRUJLSVRfTk9USUZJQ0FUSU9OX1BFUk1JU1NJT05fUkVRVUVTVF9HRVRfQ0xBU1Mob2Jq
KSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9OT1RJRklD
QVRJT05fUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdENsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0ICAgICAgICBXZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKK3R5
cGVkZWYgc3RydWN0IF9XZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENsYXNzICAg
V2ViS2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9XZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgV2ViS2l0Tm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOworCitzdHJ1Y3QgX1dlYktpdE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0IHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBw
cml2YXRlID4qLworICAgIFdlYktpdE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9B
UEkgR1R5cGUKK3dlYmtpdF9ub3RpZmljYXRpb25fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBl
ICh2b2lkKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE9wdGlvbk1lbnUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0T3B0aW9uTWVudS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uY2UwZjg1ZmI3ZGZhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRPcHRpb25NZW51LmgKQEAgLTAsMCAr
MSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmlu
ZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04p
CisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0
bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0T3B0aW9uTWVudV9oCisjZGVmaW5lIFdlYktp
dE9wdGlvbk1lbnVfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdE9wdGlvbk1lbnVJ
dGVtLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9PUFRJT05fTUVO
VSAgICAgICAgICAgICh3ZWJraXRfb3B0aW9uX21lbnVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VC
S0lUX09QVElPTl9NRU5VKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NB
U1QoKG9iaiksIFdFQktJVF9UWVBFX09QVElPTl9NRU5VLCBXZWJLaXRPcHRpb25NZW51KSkKKyNk
ZWZpbmUgV0VCS0lUX0lTX09QVElPTl9NRU5VKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX09QVElPTl9NRU5VKSkKKyNkZWZpbmUgV0VC
S0lUX09QVElPTl9NRU5VX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1Qo
KGtsYXNzKSwgIFdFQktJVF9UWVBFX09QVElPTl9NRU5VLCBXZWJLaXRPcHRpb25NZW51Q2xhc3Mp
KQorI2RlZmluZSBXRUJLSVRfSVNfT1BUSU9OX01FTlVfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hF
Q0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfT1BUSU9OX01FTlUpKQorI2RlZmlu
ZSBXRUJLSVRfT1BUSU9OX01FTlVfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VU
X0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfT1BUSU9OX01FTlUsIFdlYktpdE9wdGlvbk1lbnVD
bGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRPcHRpb25NZW51ICAgICAgICBXZWJLaXRP
cHRpb25NZW51OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE9wdGlvbk1lbnVDbGFzcyAgIFdlYktp
dE9wdGlvbk1lbnVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRPcHRpb25NZW51UHJpdmF0
ZSBXZWJLaXRPcHRpb25NZW51UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRPcHRpb25NZW51IHsK
KyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIFdlYktpdE9w
dGlvbk1lbnVQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRPcHRpb25NZW51Q2xh
c3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICAvKjwgcHJpdmF0ZSA+
Ki8KKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2
b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJ
VF9BUEkgR1R5cGUKK3dlYmtpdF9vcHRpb25fbWVudV9nZXRfdHlwZSAgICAgICAodm9pZCk7CisK
K1dFQktJVF9BUEkgZ3VpbnQKK3dlYmtpdF9vcHRpb25fbWVudV9nZXRfbl9pdGVtcyAgICAoV2Vi
S2l0T3B0aW9uTWVudSAqbWVudSk7CisKK1dFQktJVF9BUEkgV2ViS2l0T3B0aW9uTWVudUl0ZW0g
Kgord2Via2l0X29wdGlvbl9tZW51X2dldF9pdGVtICAgICAgIChXZWJLaXRPcHRpb25NZW51ICpt
ZW51LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAg
ICBpbmRleCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X29wdGlvbl9tZW51X3NlbGVjdF9p
dGVtICAgIChXZWJLaXRPcHRpb25NZW51ICptZW51LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBndWludCAgICAgICAgICAgICBpbmRleCk7CisKK1dFQktJVF9BUEkgdm9pZAor
d2Via2l0X29wdGlvbl9tZW51X2FjdGl2YXRlX2l0ZW0gIChXZWJLaXRPcHRpb25NZW51ICptZW51
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICBp
bmRleCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X29wdGlvbl9tZW51X2Nsb3NlICAgICAg
ICAgIChXZWJLaXRPcHRpb25NZW51ICptZW51KTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE9wdGlvbk1l
bnVJdGVtLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE9wdGlvbk1l
bnVJdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kZWQyNmYx
ZTllMDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdE9wdGlvbk1lbnVJdGVtLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18p
ICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIv
d2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYg
V2ViS2l0T3B0aW9uTWVudUl0ZW1faAorI2RlZmluZSBXZWJLaXRPcHRpb25NZW51SXRlbV9oCisK
KyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5l
cy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfT1BUSU9OX01FTlVf
SVRFTSAod2Via2l0X29wdGlvbl9tZW51X2l0ZW1fZ2V0X3R5cGUoKSkKKwordHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdE9wdGlvbk1lbnVJdGVtIFdlYktpdE9wdGlvbk1lbnVJdGVtOworCitXRUJLSVRf
QVBJIEdUeXBlCit3ZWJraXRfb3B0aW9uX21lbnVfaXRlbV9nZXRfdHlwZSAgICAgICAodm9pZCk7
CisKK1dFQktJVF9BUEkgV2ViS2l0T3B0aW9uTWVudUl0ZW0gKgord2Via2l0X29wdGlvbl9tZW51
X2l0ZW1fY29weSAgICAgICAgICAgKFdlYktpdE9wdGlvbk1lbnVJdGVtICppdGVtKTsKKworV0VC
S0lUX0FQSSB2b2lkCit3ZWJraXRfb3B0aW9uX21lbnVfaXRlbV9mcmVlICAgICAgICAgICAoV2Vi
S2l0T3B0aW9uTWVudUl0ZW0gKml0ZW0pOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dl
YmtpdF9vcHRpb25fbWVudV9pdGVtX2dldF9sYWJlbCAgICAgIChXZWJLaXRPcHRpb25NZW51SXRl
bSAqaXRlbSk7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X29wdGlvbl9tZW51
X2l0ZW1fZ2V0X3Rvb2x0aXAgICAgKFdlYktpdE9wdGlvbk1lbnVJdGVtICppdGVtKTsKKworV0VC
S0lUX0FQSSBnYm9vbGVhbgord2Via2l0X29wdGlvbl9tZW51X2l0ZW1faXNfZ3JvdXBfbGFiZWwg
KFdlYktpdE9wdGlvbk1lbnVJdGVtICppdGVtKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Vi
a2l0X29wdGlvbl9tZW51X2l0ZW1faXNfZ3JvdXBfY2hpbGQgKFdlYktpdE9wdGlvbk1lbnVJdGVt
ICppdGVtKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X29wdGlvbl9tZW51X2l0ZW1f
aXNfZW5hYmxlZCAgICAgKFdlYktpdE9wdGlvbk1lbnVJdGVtICppdGVtKTsKKworV0VCS0lUX0FQ
SSBnYm9vbGVhbgord2Via2l0X29wdGlvbl9tZW51X2l0ZW1faXNfc2VsZWN0ZWQgICAgKFdlYktp
dE9wdGlvbk1lbnVJdGVtICppdGVtKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBlcm1pc3Npb25SZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBlcm1pc3Npb25S
ZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hNjJmMWYx
YTViNmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURF
X18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtp
dDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5k
ZWYgV2ViS2l0UGVybWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBXZWJLaXRQZXJtaXNzaW9uUmVx
dWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2Vi
S2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfUEVS
TUlTU0lPTl9SRVFVRVNUICAgICAgICAgICAod2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9nZXRf
dHlwZSgpKQorI2RlZmluZSBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNUKG9iaikgICAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfUEVSTUlTU0lP
Tl9SRVFVRVNULCBXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCkpCisjZGVmaW5lIFdFQktJVF9JU19Q
RVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBF
KChvYmopLCBXRUJLSVRfVFlQRV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRf
UEVSTUlTU0lPTl9SRVFVRVNUX0dFVF9JRkFDRShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0lO
VEVSRkFDRSgob2JqKSwgV0VCS0lUX1RZUEVfUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRQZXJt
aXNzaW9uUmVxdWVzdElmYWNlKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFBlcm1pc3Npb25S
ZXF1ZXN0IFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFBl
cm1pc3Npb25SZXF1ZXN0SWZhY2UgV2ViS2l0UGVybWlzc2lvblJlcXVlc3RJZmFjZTsKKworc3Ry
dWN0IF9XZWJLaXRQZXJtaXNzaW9uUmVxdWVzdElmYWNlIHsKKyAgICBHVHlwZUludGVyZmFjZSBw
YXJlbnRfaW50ZXJmYWNlOworCisgICAgdm9pZCAoKiBhbGxvdykgKFdlYktpdFBlcm1pc3Npb25S
ZXF1ZXN0ICpyZXF1ZXN0KTsKKyAgICB2b2lkICgqIGRlbnkpICAoV2ViS2l0UGVybWlzc2lvblJl
cXVlc3QgKnJlcXVlc3QpOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3Blcm1pc3Np
b25fcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3Bl
cm1pc3Npb25fcmVxdWVzdF9hbGxvdyAgICAoV2ViS2l0UGVybWlzc2lvblJlcXVlc3QgKnJlcXVl
c3QpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfZGVueSAg
ICAgKFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KTsKKworR19FTkRfREVDTFMKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFBsdWdpbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQbHVnaW4u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmNkNTgxMjkzZGI0Ywot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UGx1Z2luLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2Fs
aWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdF
QktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4g
YmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0UGx1Z2luX2gK
KyNkZWZpbmUgV2ViS2l0UGx1Z2luX2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5j
bHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmlu
ZSBXRUJLSVRfVFlQRV9QTFVHSU4gICAgICAgICAgICAod2Via2l0X3BsdWdpbl9nZXRfdHlwZSgp
KQorI2RlZmluZSBXRUJLSVRfUExVR0lOKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1BMVUdJTiwgV2ViS2l0UGx1Z2luKSkKKyNk
ZWZpbmUgV0VCS0lUX0lTX1BMVUdJTihvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5D
RV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9QTFVHSU4pKQorI2RlZmluZSBXRUJLSVRfUExVR0lO
X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJ
VF9UWVBFX1BMVUdJTiwgV2ViS2l0UGx1Z2luQ2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfUExV
R0lOX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJ
VF9UWVBFX1BMVUdJTikpCisjZGVmaW5lIFdFQktJVF9QTFVHSU5fR0VUX0NMQVNTKG9iaikgIChH
X1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfUExVR0lOLCBXZWJL
aXRQbHVnaW5DbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRQbHVnaW4gICAgICAgIFdl
YktpdFBsdWdpbjsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRQbHVnaW5DbGFzcyAgIFdlYktpdFBs
dWdpbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFBsdWdpblByaXZhdGUgV2ViS2l0UGx1
Z2luUHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRQbHVnaW4geworICAgIEdPYmplY3QgcGFyZW50
OworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0UGx1Z2luUHJpdmF0ZSAqcHJpdjsK
K307CisKK3N0cnVjdCBfV2ViS2l0UGx1Z2luQ2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJl
bnRfY2xhc3M7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAg
ICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCit3ZWJraXRf
cGx1Z2luX2dldF90eXBlICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9ERVBSRUNBVEVEIGNv
bnN0IGdjaGFyICoKK3dlYmtpdF9wbHVnaW5fZ2V0X25hbWUgICAgICAgICAgIChXZWJLaXRQbHVn
aW4gKnBsdWdpbik7CisKK1dFQktJVF9ERVBSRUNBVEVEIGNvbnN0IGdjaGFyICoKK3dlYmtpdF9w
bHVnaW5fZ2V0X2Rlc2NyaXB0aW9uICAgIChXZWJLaXRQbHVnaW4gKnBsdWdpbik7CisKK1dFQktJ
VF9ERVBSRUNBVEVEIGNvbnN0IGdjaGFyICoKK3dlYmtpdF9wbHVnaW5fZ2V0X3BhdGggICAgICAg
ICAgIChXZWJLaXRQbHVnaW4gKnBsdWdpbik7CisKK1dFQktJVF9ERVBSRUNBVEVEIEdMaXN0ICoK
K3dlYmtpdF9wbHVnaW5fZ2V0X21pbWVfaW5mb19saXN0IChXZWJLaXRQbHVnaW4gKnBsdWdpbik7
CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lEZWNpc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lEZWNpc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uMDVjYTFlMGNkNjM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lEZWNpc2lvbi5oCkBAIC0w
LDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFk
ZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFU
SU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRp
cmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdFBvbGljeURlY2lzaW9uX2gKKyNkZWZp
bmUgV2ViS2l0UG9saWN5RGVjaXNpb25faAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNp
bmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktp
dFdlYnNpdGVQb2xpY2llcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZ
UEVfUE9MSUNZX0RFQ0lTSU9OICAgICAgICAgICAgKHdlYmtpdF9wb2xpY3lfZGVjaXNpb25fZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1BPTElDWV9ERUNJU0lPTihvYmopICAgICAgICAgICAg
KEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9QT0xJQ1lfREVD
SVNJT04sIFdlYktpdFBvbGljeURlY2lzaW9uKSkKKyNkZWZpbmUgV0VCS0lUX1BPTElDWV9ERUNJ
U0lPTl9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBX
RUJLSVRfVFlQRV9QT0xJQ1lfREVDSVNJT04sIFdlYktpdFBvbGljeURlY2lzaW9uQ2xhc3MpKQor
I2RlZmluZSBXRUJLSVRfSVNfUE9MSUNZX0RFQ0lTSU9OKG9iaikgICAgICAgICAoR19UWVBFX0NI
RUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1BPTElDWV9ERUNJU0lPTikpCisj
ZGVmaW5lIFdFQktJVF9JU19QT0xJQ1lfREVDSVNJT05fQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hF
Q0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfUE9MSUNZX0RFQ0lTSU9OKSkKKyNk
ZWZpbmUgV0VCS0lUX1BPTElDWV9ERUNJU0lPTl9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNU
QU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9QT0xJQ1lfREVDSVNJT04sIFdlYktp
dFBvbGljeURlY2lzaW9uQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0UG9saWN5RGVj
aXNpb24gICAgICAgIFdlYktpdFBvbGljeURlY2lzaW9uOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktp
dFBvbGljeURlY2lzaW9uQ2xhc3MgICBXZWJLaXRQb2xpY3lEZWNpc2lvbkNsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX1dlYktpdFBvbGljeURlY2lzaW9uUHJpdmF0ZSBXZWJLaXRQb2xpY3lEZWNpc2lv
blByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0UG9saWN5RGVjaXNpb24geworICAgIEdPYmplY3Qg
cGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0UG9saWN5RGVjaXNpb25Q
cml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRQb2xpY3lEZWNpc2lvbkNsYXNzIHsK
KyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgLyo8IHByaXZhdGUgPiovCisg
ICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRf
cmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7
CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJ
IEdUeXBlCit3ZWJraXRfcG9saWN5X2RlY2lzaW9uX2dldF90eXBlICh2b2lkKTsKKworV0VCS0lU
X0FQSSB2b2lkCit3ZWJraXRfcG9saWN5X2RlY2lzaW9uX3VzZSAgICAgIChXZWJLaXRQb2xpY3lE
ZWNpc2lvbiAqZGVjaXNpb24pOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9wb2xpY3lfZGVj
aXNpb25fdXNlX3dpdGhfcG9saWNpZXMgIChXZWJLaXRQb2xpY3lEZWNpc2lvbiAqZGVjaXNpb24s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2Vic2l0
ZVBvbGljaWVzICpwb2xpY2llcyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3BvbGljeV9k
ZWNpc2lvbl9pZ25vcmUgICAoV2ViS2l0UG9saWN5RGVjaXNpb24gKmRlY2lzaW9uKTsKKworV0VC
S0lUX0FQSSB2b2lkCit3ZWJraXRfcG9saWN5X2RlY2lzaW9uX2Rvd25sb2FkIChXZWJLaXRQb2xp
Y3lEZWNpc2lvbiAqZGVjaXNpb24pOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24u
aAppbmRleCBhOWNlOTk3OTYwZDYuLmM3YTYxNTM5NTc1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24uaApAQCAtMjYs
NiArMjYsNyBAQAogCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDx3ZWJraXQy
L1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZvcndhcmREZWNsYXJh
dGlvbnMuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYlZpZXcuaD4KIAogR19CRUdJTl9E
RUNMUwpAQCAtMzcsNyArMzgsNiBAQCBHX0JFR0lOX0RFQ0xTCiAjZGVmaW5lIFdFQktJVF9JU19Q
UklOVF9PUEVSQVRJT05fQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xh
c3MpLCAgV0VCS0lUX1RZUEVfUFJJTlRfT1BFUkFUSU9OKSkKICNkZWZpbmUgV0VCS0lUX1BSSU5U
X09QRVJBVElPTl9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9i
aiksICBXRUJLSVRfVFlQRV9QUklOVF9PUEVSQVRJT04sIFdlYktpdFByaW50T3BlcmF0aW9uQ2xh
c3MpKQogCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0UHJpbnRPcGVyYXRpb24gICAgICAgIFdlYktp
dFByaW50T3BlcmF0aW9uOwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFByaW50T3BlcmF0aW9uQ2xh
c3MgICBXZWJLaXRQcmludE9wZXJhdGlvbkNsYXNzOwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFBy
aW50T3BlcmF0aW9uUHJpdmF0ZSBXZWJLaXRQcmludE9wZXJhdGlvblByaXZhdGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVzcG9uc2VQb2xp
Y3lEZWNpc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZXNw
b25zZVBvbGljeURlY2lzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi45ZGZhODFhMDVkMDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24uaApAQCAtMCwwICsxLDc3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChf
X1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNl
cnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4i
CisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRSZXNwb25zZVBvbGljeURlY2lzaW9uX2gKKyNkZWZp
bmUgV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbl9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVj
dC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0UG9saWN5RGVjaXNpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJl
c3BvbnNlLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklSZXF1ZXN0Lmg+CisKK0dfQkVH
SU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9SRVNQT05TRV9QT0xJQ1lfREVDSVNJT04g
ICAgICAgICAgICAod2Via2l0X3Jlc3BvbnNlX3BvbGljeV9kZWNpc2lvbl9nZXRfdHlwZSgpKQor
I2RlZmluZSBXRUJLSVRfUkVTUE9OU0VfUE9MSUNZX0RFQ0lTSU9OKG9iaikgICAgICAgICAgICAo
R19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1JFU1BPTlNFX1BP
TElDWV9ERUNJU0lPTiwgV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbikpCisjZGVmaW5lIFdF
QktJVF9SRVNQT05TRV9QT0xJQ1lfREVDSVNJT05fQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hF
Q0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfUkVTUE9OU0VfUE9MSUNZX0RFQ0lT
SU9OLCBXZWJLaXRSZXNwb25zZVBvbGljeURlY2lzaW9uQ2xhc3MpKQorI2RlZmluZSBXRUJLSVRf
SVNfUkVTUE9OU0VfUE9MSUNZX0RFQ0lTSU9OKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1JFU1BPTlNFX1BPTElDWV9ERUNJU0lPTikp
CisjZGVmaW5lIFdFQktJVF9JU19SRVNQT05TRV9QT0xJQ1lfREVDSVNJT05fQ0xBU1Moa2xhc3Mp
IChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfUkVTUE9OU0Vf
UE9MSUNZX0RFQ0lTSU9OKSkKKyNkZWZpbmUgV0VCS0lUX1JFU1BPTlNFX1BPTElDWV9ERUNJU0lP
Tl9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJL
SVRfVFlQRV9SRVNQT05TRV9QT0xJQ1lfREVDSVNJT04sIFdlYktpdFJlc3BvbnNlUG9saWN5RGVj
aXNpb25DbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRSZXNwb25zZVBvbGljeURlY2lz
aW9uICAgICAgICBXZWJLaXRSZXNwb25zZVBvbGljeURlY2lzaW9uOwordHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb25DbGFzcyAgIFdlYktpdFJlc3BvbnNlUG9saWN5
RGVjaXNpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRSZXNwb25zZVBvbGljeURlY2lz
aW9uUHJpdmF0ZSBXZWJLaXRSZXNwb25zZVBvbGljeURlY2lzaW9uUHJpdmF0ZTsKKworc3RydWN0
IF9XZWJLaXRSZXNwb25zZVBvbGljeURlY2lzaW9uIHsKKyAgICBXZWJLaXRQb2xpY3lEZWNpc2lv
biBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRSZXNwb25zZVBvbGlj
eURlY2lzaW9uUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0UmVzcG9uc2VQb2xp
Y3lEZWNpc2lvbkNsYXNzIHsKKyAgICBXZWJLaXRQb2xpY3lEZWNpc2lvbkNsYXNzIHBhcmVudF9j
bGFzczsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVk
MCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAgIHZv
aWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2Vy
dmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3Jlc3BvbnNlX3Bv
bGljeV9kZWNpc2lvbl9nZXRfdHlwZSAgICAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQ
SSBXZWJLaXRVUklSZXF1ZXN0ICoKK3dlYmtpdF9yZXNwb25zZV9wb2xpY3lfZGVjaXNpb25fZ2V0
X3JlcXVlc3QgICAgICAgICAgICAoV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbiAqZGVjaXNp
b24pOworCitXRUJLSVRfQVBJIFdlYktpdFVSSVJlc3BvbnNlICoKK3dlYmtpdF9yZXNwb25zZV9w
b2xpY3lfZGVjaXNpb25fZ2V0X3Jlc3BvbnNlICAgICAgICAgICAoV2ViS2l0UmVzcG9uc2VQb2xp
Y3lEZWNpc2lvbiAqZGVjaXNpb24pOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfcmVz
cG9uc2VfcG9saWN5X2RlY2lzaW9uX2lzX21pbWVfdHlwZV9zdXBwb3J0ZWQgKFdlYktpdFJlc3Bv
bnNlUG9saWN5RGVjaXNpb24gKmRlY2lzaW9uKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlwdERp
YWxvZy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3JpcHREaWFs
b2cuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjZkMDNmYmEyZGFj
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0U2NyaXB0RGlhbG9nLmgKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFk
ZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0
Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0
U2NyaXB0RGlhbG9nX2gKKyNkZWZpbmUgV2ViS2l0U2NyaXB0RGlhbG9nX2gKKworI2luY2x1ZGUg
PGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisKK0df
QkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9TQ1JJUFRfRElBTE9HICh3ZWJraXRf
c2NyaXB0X2RpYWxvZ19nZXRfdHlwZSgpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0U2NyaXB0
RGlhbG9nIFdlYktpdFNjcmlwdERpYWxvZzsKKworLyoqCisgKiBXZWJLaXRTY3JpcHREaWFsb2dU
eXBlOgorICogQFdFQktJVF9TQ1JJUFRfRElBTE9HX0FMRVJUOiBBbGVydCBzY3JpcHQgZGlhbG9n
LCB1c2VkIHRvIHNob3cgYQorICogbWVzc2FnZSB0byB0aGUgdXNlci4KKyAqIEBXRUJLSVRfU0NS
SVBUX0RJQUxPR19DT05GSVJNOiBDb25maXJtIHNjcmlwdCBkaWFsb2csIHVzZWQgdG8gYXNrCisg
KiBjb25maXJtYXRpb24gdG8gdGhlIHVzZXIuCisgKiBAV0VCS0lUX1NDUklQVF9ESUFMT0dfUFJP
TVBUOiBQcm9tcHQgc2NyaXB0IGRpYWxvZywgdXNlZCB0byBhc2sKKyAqIGluZm9ybWF0aW9uIHRv
IHRoZSB1c2VyLgorICogQFdFQktJVF9TQ1JJUFRfRElBTE9HX0JFRk9SRV9VTkxPQURfQ09ORklS
TTogQmVmb3JlIHVubG9hZCBjb25maXJtIGRpYWxvZywKKyAqIHVzZWQgdG8gYXNrIGNvbmZpcm1h
dGlvbiB0byBsZWF2ZSB0aGUgY3VycmVudCBwYWdlIHRvIHRoZSB1c2VyLiBTaW5jZSAyLjEyCisg
KgorICogRW51bSB2YWx1ZXMgdXNlZCBmb3IgZGV0ZXJtaW5pbmcgdGhlIHR5cGUgb2YgI1dlYktp
dFNjcmlwdERpYWxvZworICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9TQ1JJUFRfRElB
TE9HX0FMRVJULAorICAgIFdFQktJVF9TQ1JJUFRfRElBTE9HX0NPTkZJUk0sCisgICAgV0VCS0lU
X1NDUklQVF9ESUFMT0dfUFJPTVBULAorICAgIFdFQktJVF9TQ1JJUFRfRElBTE9HX0JFRk9SRV9V
TkxPQURfQ09ORklSTQorfSBXZWJLaXRTY3JpcHREaWFsb2dUeXBlOworCitXRUJLSVRfQVBJIEdU
eXBlCit3ZWJraXRfc2NyaXB0X2RpYWxvZ19nZXRfdHlwZSAgICAgICAgICAgICAgICAodm9pZCk7
CisKK1dFQktJVF9BUEkgV2ViS2l0U2NyaXB0RGlhbG9nICoKK3dlYmtpdF9zY3JpcHRfZGlhbG9n
X3JlZiAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTY3JpcHREaWFsb2cgKmRpYWxvZyk7CisK
K1dFQktJVF9BUEkgdm9pZAord2Via2l0X3NjcmlwdF9kaWFsb2dfdW5yZWYgICAgICAgICAgICAg
ICAgICAgKFdlYktpdFNjcmlwdERpYWxvZyAqZGlhbG9nKTsKKworV0VCS0lUX0FQSSBXZWJLaXRT
Y3JpcHREaWFsb2dUeXBlCit3ZWJraXRfc2NyaXB0X2RpYWxvZ19nZXRfZGlhbG9nX3R5cGUgICAg
ICAgICAoV2ViS2l0U2NyaXB0RGlhbG9nICpkaWFsb2cpOworCitXRUJLSVRfQVBJIGNvbnN0IGdj
aGFyICoKK3dlYmtpdF9zY3JpcHRfZGlhbG9nX2dldF9tZXNzYWdlICAgICAgICAgICAgIChXZWJL
aXRTY3JpcHREaWFsb2cgKmRpYWxvZyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3Njcmlw
dF9kaWFsb2dfY29uZmlybV9zZXRfY29uZmlybWVkICAgKFdlYktpdFNjcmlwdERpYWxvZyAqZGlh
bG9nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29s
ZWFuICAgICAgICAgICAgY29uZmlybWVkKTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3
ZWJraXRfc2NyaXB0X2RpYWxvZ19wcm9tcHRfZ2V0X2RlZmF1bHRfdGV4dCAoV2ViS2l0U2NyaXB0
RGlhbG9nICpkaWFsb2cpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zY3JpcHRfZGlhbG9n
X3Byb21wdF9zZXRfdGV4dCAgICAgICAgIChXZWJLaXRTY3JpcHREaWFsb2cgKmRpYWxvZywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAg
ICAgICAgKnRleHQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zY3JpcHRfZGlhbG9nX2Ns
b3NlICAgICAgICAgICAgICAgICAgIChXZWJLaXRTY3JpcHREaWFsb2cgKmRpYWxvZyk7CisKK0df
RU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRTZWN1cml0eU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0U2VjdXJpdHlNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi4wM2FmYzA5NWYwZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNlY3VyaXR5TWFuYWdlci5oCkBAIC0wLDAg
KzEsMTEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIsMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRl
ZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJ
T04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGly
ZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0U2VjdXJpdHlNYW5hZ2VyX2gKKyNkZWZp
bmUgV2ViS2l0U2VjdXJpdHlNYW5hZ2VyX2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Cisj
aW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2Rl
ZmluZSBXRUJLSVRfVFlQRV9TRUNVUklUWV9NQU5BR0VSICAgICAgICAgICAgKHdlYmtpdF9zZWN1
cml0eV9tYW5hZ2VyX2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9TRUNVUklUWV9NQU5BR0VS
KG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJ
VF9UWVBFX1NFQ1VSSVRZX01BTkFHRVIsIFdlYktpdFNlY3VyaXR5TWFuYWdlcikpCisjZGVmaW5l
IFdFQktJVF9JU19TRUNVUklUWV9NQU5BR0VSKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1NFQ1VSSVRZX01BTkFHRVIpKQorI2RlZmlu
ZSBXRUJLSVRfU0VDVVJJVFlfTUFOQUdFUl9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19D
TEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9TRUNVUklUWV9NQU5BR0VSLCBXZWJLaXRT
ZWN1cml0eU1hbmFnZXJDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19TRUNVUklUWV9NQU5BR0VS
X0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9U
WVBFX1NFQ1VSSVRZX01BTkFHRVIpKQorI2RlZmluZSBXRUJLSVRfU0VDVVJJVFlfTUFOQUdFUl9H
RVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRf
VFlQRV9TRUNVUklUWV9NQU5BR0VSLCBXZWJLaXRTZWN1cml0eU1hbmFnZXJDbGFzcykpCisKK3R5
cGVkZWYgc3RydWN0IF9XZWJLaXRTZWN1cml0eU1hbmFnZXIgICAgICAgIFdlYktpdFNlY3VyaXR5
TWFuYWdlcjsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRTZWN1cml0eU1hbmFnZXJDbGFzcyAgIFdl
YktpdFNlY3VyaXR5TWFuYWdlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFNlY3VyaXR5
TWFuYWdlclByaXZhdGUgV2ViS2l0U2VjdXJpdHlNYW5hZ2VyUHJpdmF0ZTsKKworc3RydWN0IF9X
ZWJLaXRTZWN1cml0eU1hbmFnZXIgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHBy
aXZhdGUgPiovCisgICAgV2ViS2l0U2VjdXJpdHlNYW5hZ2VyUHJpdmF0ZSAqcHJpdjsKK307CisK
K3N0cnVjdCBfV2ViS2l0U2VjdXJpdHlNYW5hZ2VyQ2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBw
YXJlbnRfY2xhc3M7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsK
KyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtp
dF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9zZWN1
cml0eV9tYW5hZ2VyX2dldF90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9p
ZCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3NlY3VyaXR5X21hbmFnZXJfcmVnaXN0ZXJf
dXJpX3NjaGVtZV9hc19sb2NhbCAgICAgICAgICAgIChXZWJLaXRTZWN1cml0eU1hbmFnZXIgKnNl
Y3VyaXR5X21hbmFnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAqc2NoZW1lKTsK
KworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVt
ZV9pc19sb2NhbCAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZWN1cml0eU1hbmFnZXIgKnNl
Y3VyaXR5X21hbmFnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAqc2NoZW1lKTsK
KworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl9yZWdpc3Rlcl91cmlf
c2NoZW1lX2FzX25vX2FjY2VzcyAgICAgICAgKFdlYktpdFNlY3VyaXR5TWFuYWdlciAqc2VjdXJp
dHlfbWFuYWdlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICpzY2hlbWUpOworCitX
RUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl91cmlfc2NoZW1lX2lz
X25vX2FjY2VzcyAgICAgICAgICAgICAgICAgKFdlYktpdFNlY3VyaXR5TWFuYWdlciAqc2VjdXJp
dHlfbWFuYWdlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICpzY2hlbWUpOworCitX
RUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3JlZ2lzdGVyX3VyaV9zY2hl
bWVfYXNfZGlzcGxheV9pc29sYXRlZCAoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyICpzZWN1cml0eV9t
YW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKnNjaGVtZSk7CisKK1dFQktJ
VF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3VyaV9zY2hlbWVfaXNfZGlz
cGxheV9pc29sYXRlZCAgICAgICAgICAoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyICpzZWN1cml0eV9t
YW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKnNjaGVtZSk7CisKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X3NlY3VyaXR5X21hbmFnZXJfcmVnaXN0ZXJfdXJpX3NjaGVtZV9h
c19zZWN1cmUgICAgICAgICAgIChXZWJLaXRTZWN1cml0eU1hbmFnZXIgKnNlY3VyaXR5X21hbmFn
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAqc2NoZW1lKTsKKworV0VCS0lUX0FQ
SSBnYm9vbGVhbgord2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19zZWN1cmUg
ICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZWN1cml0eU1hbmFnZXIgKnNlY3VyaXR5X21hbmFn
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAqc2NoZW1lKTsKKworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl9yZWdpc3Rlcl91cmlfc2NoZW1lX2FzX2Nv
cnNfZW5hYmxlZCAgICAgKFdlYktpdFNlY3VyaXR5TWFuYWdlciAqc2VjdXJpdHlfbWFuYWdlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICpzY2hlbWUpOworCitXRUJLSVRfQVBJIGdi
b29sZWFuCit3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl91cmlfc2NoZW1lX2lzX2NvcnNfZW5hYmxl
ZCAgICAgICAgICAgICAgKFdlYktpdFNlY3VyaXR5TWFuYWdlciAqc2VjdXJpdHlfbWFuYWdlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICpzY2hlbWUpOworCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3JlZ2lzdGVyX3VyaV9zY2hlbWVfYXNfZW1wdHlf
ZG9jdW1lbnQgICAoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyICpzZWN1cml0eV9tYW5hZ2VyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKnNjaGVtZSk7CisKK1dFQktJVF9BUEkgZ2Jvb2xl
YW4KK3dlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3VyaV9zY2hlbWVfaXNfZW1wdHlfZG9jdW1lbnQg
ICAgICAgICAgICAoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyICpzZWN1cml0eV9tYW5hZ2VyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKnNjaGVtZSk7CisKK0dfRU5EX0RFQ0xTCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRT
ZWN1cml0eU9yaWdpbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRT
ZWN1cml0eU9yaWdpbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
MDllZGJjYzhkMGUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRTZWN1cml0eU9yaWdpbi5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lO
U0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3
ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisj
aWZuZGVmIFdlYktpdFNlY3VyaXR5T3JpZ2luX2gKKyNkZWZpbmUgV2ViS2l0U2VjdXJpdHlPcmln
aW5faAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktp
dERlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX1NFQ1VS
SVRZX09SSUdJTiAod2Via2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfdHlwZSgpKQorCit0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0U2VjdXJpdHlPcmlnaW4gV2ViS2l0U2VjdXJpdHlPcmlnaW47CisKK1dF
QktJVF9BUEkgR1R5cGUKK3dlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X3R5cGUgICAgICh2b2lk
KTsKKworV0VCS0lUX0FQSSBXZWJLaXRTZWN1cml0eU9yaWdpbiAqCit3ZWJraXRfc2VjdXJpdHlf
b3JpZ2luX25ldyAgICAgICAgICAoY29uc3QgZ2NoYXIgICAgICAgICAgKnByb3RvY29sLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICpo
b3N0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50MTYgICAgICAg
ICAgICAgICBwb3J0KTsKKworV0VCS0lUX0FQSSBXZWJLaXRTZWN1cml0eU9yaWdpbiAqCit3ZWJr
aXRfc2VjdXJpdHlfb3JpZ2luX25ld19mb3JfdXJpICAoY29uc3QgZ2NoYXIgICAgICAgICAgKnVy
aSk7CisKK1dFQktJVF9BUEkgV2ViS2l0U2VjdXJpdHlPcmlnaW4gKgord2Via2l0X3NlY3VyaXR5
X29yaWdpbl9yZWYgICAgICAgICAgKFdlYktpdFNlY3VyaXR5T3JpZ2luICpvcmlnaW4pOworCitX
RUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZWN1cml0eV9vcmlnaW5fdW5yZWYgICAgICAgIChXZWJL
aXRTZWN1cml0eU9yaWdpbiAqb3JpZ2luKTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3
ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF9wcm90b2NvbCAoV2ViS2l0U2VjdXJpdHlPcmlnaW4g
Km9yaWdpbik7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X3NlY3VyaXR5X29y
aWdpbl9nZXRfaG9zdCAgICAgKFdlYktpdFNlY3VyaXR5T3JpZ2luICpvcmlnaW4pOworCitXRUJL
SVRfQVBJIGd1aW50MTYKK3dlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X3BvcnQgICAgIChXZWJL
aXRTZWN1cml0eU9yaWdpbiAqb3JpZ2luKTsKKworV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4K
K3dlYmtpdF9zZWN1cml0eV9vcmlnaW5faXNfb3BhcXVlICAgIChXZWJLaXRTZWN1cml0eU9yaWdp
biAqb3JpZ2luKTsKKworV0VCS0lUX0FQSSBnY2hhciAqCit3ZWJraXRfc2VjdXJpdHlfb3JpZ2lu
X3RvX3N0cmluZyAgICAoV2ViS2l0U2VjdXJpdHlPcmlnaW4gKm9yaWdpbik7CisKK0dfRU5EX0RF
Q0xTCisKKyNlbmRpZiAvKiBXZWJLaXRTZWN1cml0eU9yaWdpbl9oICovCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5oLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oCnNpbWlsYXJpdHkg
aW5kZXggOTklCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFNldHRpbmdzLmguaW4KcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0U2V0dGluZ3MuaAppbmRleCA5NDQ0NGY0Y2I3NGUuLjQxNzBiY2MwODdmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3Mu
aC5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdz
LmgKQEAgLTI4LDEzICsyOCwxNSBAQAogICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotQEFQSV9TSU5HTEVfSEVBREVS
X0dVQVJEQAorI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChX
RUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2Fu
IGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgogCiAjaWZuZGVmIFdlYktpdFNldHRpbmdz
X2gKICNkZWZpbmUgV2ViS2l0U2V0dGluZ3NfaAogCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4K
LSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVk
ZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNDUsNyAr
NDcsNiBAQCBHX0JFR0lOX0RFQ0xTCiAjZGVmaW5lIFdFQktJVF9JU19TRVRUSU5HU19DTEFTUyhr
bGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9TRVRU
SU5HUykpCiAjZGVmaW5lIFdFQktJVF9TRVRUSU5HU19HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9J
TlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9TRVRUSU5HUywgV2ViS2l0U2V0
dGluZ3NDbGFzcykpCiAKLSNpZiBQTEFURk9STShHVEspCiAvKioKICAqIFdlYktpdEhhcmR3YXJl
QWNjZWxlcmF0aW9uUG9saWN5OgogICogQFdFQktJVF9IQVJEV0FSRV9BQ0NFTEVSQVRJT05fUE9M
SUNZX09OX0RFTUFORDogSGFyZHdhcmUgYWNjZWxlcmF0aW9uIGlzIGVuYWJsZWQvZGlzYWJsZWQg
YXMgcmVxdWVzdCBieSB3ZWIgY29udGVudHMuCkBAIC02MSw3ICs2Miw2IEBAIHR5cGVkZWYgZW51
bSB7CiAgICAgV0VCS0lUX0hBUkRXQVJFX0FDQ0VMRVJBVElPTl9QT0xJQ1lfQUxXQVlTLAogICAg
IFdFQktJVF9IQVJEV0FSRV9BQ0NFTEVSQVRJT05fUE9MSUNZX05FVkVSCiB9IFdlYktpdEhhcmR3
YXJlQWNjZWxlcmF0aW9uUG9saWN5OwotI2VuZGlmCiAKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRT
ZXR0aW5ncyBXZWJLaXRTZXR0aW5nczsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRTZXR0aW5nc0Ns
YXNzIFdlYktpdFNldHRpbmdzQ2xhc3M7CkBAIC0yNTQsMTQgKzI1NCwxMiBAQCBXRUJLSVRfQVBJ
IHZvaWQKIHdlYmtpdF9zZXR0aW5nc19zZXRfZGVmYXVsdF9jaGFyc2V0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No
YXIgICAgKmRlZmF1bHRfY2hhcnNldCk7CiAKLSNpZiBQTEFURk9STShHVEspCiBXRUJLSVRfREVQ
UkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfcHJpdmF0ZV9icm93
c2luZyAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CiAKIFdF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3ByaXZhdGVf
YnJvd3NpbmcgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOwotI2VuZGlmCiAKIFdFQktJVF9BUEkgZ2Jv
b2xlYW4KIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX2RldmVsb3Blcl9leHRyYXMgICAgICAg
ICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpOwpAQCAtNDc2LDcgKzQ3NCw2
IEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3NldHRpbmdzX3NldF9hbGxvd190b3BfbmF2aWdh
dGlvbl90b19kYXRhX3VybHMgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnYm9vbGVhbiAgICAgICAgYWxsb3dlZCk7CiAKLSNpZiBQTEFURk9STShHVEspCiBXRUJL
SVRfQVBJIFdlYktpdEhhcmR3YXJlQWNjZWxlcmF0aW9uUG9saWN5CiB3ZWJraXRfc2V0dGluZ3Nf
Z2V0X2hhcmR3YXJlX2FjY2VsZXJhdGlvbl9wb2xpY3kgICAgICAgICAgICAgICAoV2ViS2l0U2V0
dGluZ3MgKnNldHRpbmdzKTsKIApAQCAtNDk2LDcgKzQ5Myw2IEBAIHdlYmtpdF9zZXR0aW5nc19m
b250X3NpemVfdG9fcG9pbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgIChndWludDMyIHBp
eGVscyk7CiAKIFdFQktJVF9BUEkgZ3VpbnQzMgogd2Via2l0X3NldHRpbmdzX2ZvbnRfc2l6ZV90
b19waXhlbHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGd1aW50MzIgcG9pbnRzKTsKLSNl
bmRpZgogCiBXRUJLSVRfQVBJIGdib29sZWFuCiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9q
YXZhc2NyaXB0X21hcmt1cCAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRp
bmdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VVJJUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklS
ZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNjVhZDMw
NWU1NmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVSSVJlcXVlc3QuaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYg
IWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikgJiYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VY
VEVOU0lPTl9IX0lOU0lERV9fKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2Fu
IGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdFVSSVJlcXVl
c3RfaAorI2RlZmluZSBXZWJLaXRVUklSZXF1ZXN0X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0
Lmg+CisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRE
ZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9VUklfUkVR
VUVTVCAgICAgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
V0VCS0lUX1VSSV9SRVFVRVNUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNF
X0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1VSSV9SRVFVRVNULCBXZWJLaXRVUklSZXF1ZXN0KSkK
KyNkZWZpbmUgV0VCS0lUX0lTX1VSSV9SRVFVRVNUKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNL
X0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1VSSV9SRVFVRVNUKSkKKyNkZWZpbmUg
V0VCS0lUX1VSSV9SRVFVRVNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NB
U1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1VSSV9SRVFVRVNULCBXZWJLaXRVUklSZXF1ZXN0Q2xh
c3MpKQorI2RlZmluZSBXRUJLSVRfSVNfVVJJX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVJJX1JFUVVFU1QpKQorI2Rl
ZmluZSBXRUJLSVRfVVJJX1JFUVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0Vf
R0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfVVJJX1JFUVVFU1QsIFdlYktpdFVSSVJlcXVl
c3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVUklSZXF1ZXN0IFdlYktpdFVSSVJl
cXVlc3Q7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJUmVxdWVzdENsYXNzIFdlYktpdFVSSVJl
cXVlc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVUklSZXF1ZXN0UHJpdmF0ZSBXZWJL
aXRVUklSZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRVUklSZXF1ZXN0IHsKKyAgICBH
T2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIFdlYktpdFVSSVJlcXVl
c3RQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRVUklSZXF1ZXN0Q2xhc3Mgewor
ICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAg
ICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsK
KyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkg
R1R5cGUKK3dlYmtpdF91cmlfcmVxdWVzdF9nZXRfdHlwZSAgICAgICAgICh2b2lkKTsKKworV0VC
S0lUX0FQSSBXZWJLaXRVUklSZXF1ZXN0ICoKK3dlYmtpdF91cmlfcmVxdWVzdF9uZXcgICAgICAg
ICAgICAgIChjb25zdCBnY2hhciAgICAgICp1cmkpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFy
ICoKK3dlYmtpdF91cmlfcmVxdWVzdF9nZXRfdXJpICAgICAgICAgIChXZWJLaXRVUklSZXF1ZXN0
ICpyZXF1ZXN0KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3Vy
aSAgICAgICAgICAoV2ViS2l0VVJJUmVxdWVzdCAqcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICp1cmkpOworCitXRUJLSVRfQVBJ
IGNvbnN0IGdjaGFyICoKK3dlYmtpdF91cmlfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QgIChXZWJL
aXRVUklSZXF1ZXN0ICpyZXF1ZXN0KTsKKworV0VCS0lUX0FQSSBTb3VwTWVzc2FnZUhlYWRlcnMg
Kgord2Via2l0X3VyaV9yZXF1ZXN0X2dldF9odHRwX2hlYWRlcnMgKFdlYktpdFVSSVJlcXVlc3Qg
KnJlcXVlc3QpOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9uc2UuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjVmN2Y0ZTQzMjQyNAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9uc2UuaApAQCAt
MCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAh
ZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxB
VElPTikgJiYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKQorI2Vy
cm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIK
KyNlbmRpZgorCisjaWZuZGVmIFdlYktpdFVSSVJlc3BvbnNlX2gKKyNkZWZpbmUgV2ViS2l0VVJJ
UmVzcG9uc2VfaAorCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1ZGUgPGxpYnNvdXAvc291
cC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xT
CisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVJJX1JFU1BPTlNFICAgICAgICAgICAgKHdlYmtpdF91
cmlfcmVzcG9uc2VfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1VSSV9SRVNQT05TRShvYmop
ICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQ
RV9VUklfUkVTUE9OU0UsIFdlYktpdFVSSVJlc3BvbnNlKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VS
SV9SRVNQT05TRShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmop
LCBXRUJLSVRfVFlQRV9VUklfUkVTUE9OU0UpKQorI2RlZmluZSBXRUJLSVRfVVJJX1JFU1BPTlNF
X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJ
VF9UWVBFX1VSSV9SRVNQT05TRSwgV2ViS2l0VVJJUmVzcG9uc2VDbGFzcykpCisjZGVmaW5lIFdF
QktJVF9JU19VUklfUkVTUE9OU0VfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQ
RSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVJJX1JFU1BPTlNFKSkKKyNkZWZpbmUgV0VCS0lUX1VS
SV9SRVNQT05TRV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9i
aiksICBXRUJLSVRfVFlQRV9VUklfUkVTUE9OU0UsIFdlYktpdFVSSVJlc3BvbnNlQ2xhc3MpKQor
Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJUmVzcG9uc2UgV2ViS2l0VVJJUmVzcG9uc2U7Cit0
eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJUmVzcG9uc2VDbGFzcyBXZWJLaXRVUklSZXNwb25zZUNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVJlc3BvbnNlUHJpdmF0ZSBXZWJLaXRVUklS
ZXNwb25zZVByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0VVJJUmVzcG9uc2UgeworICAgIEdPYmpl
Y3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0VVJJUmVzcG9uc2VQ
cml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRVUklSZXNwb25zZUNsYXNzIHsKKyAg
ICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAg
dm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVz
ZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7Cisg
ICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdU
eXBlCit3ZWJraXRfdXJpX3Jlc3BvbnNlX2dldF90eXBlICAgICAgICAgICAgICAgKHZvaWQpOwor
CitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF91cmlfcmVzcG9uc2VfZ2V0X3VyaSAg
ICAgICAgICAgICAgICAoV2ViS2l0VVJJUmVzcG9uc2UgICAgKnJlc3BvbnNlKTsKKworV0VCS0lU
X0FQSSBndWludAord2Via2l0X3VyaV9yZXNwb25zZV9nZXRfc3RhdHVzX2NvZGUgICAgICAgIChX
ZWJLaXRVUklSZXNwb25zZSAgICAqcmVzcG9uc2UpOworCitXRUJLSVRfQVBJIGd1aW50NjQKK3dl
YmtpdF91cmlfcmVzcG9uc2VfZ2V0X2NvbnRlbnRfbGVuZ3RoICAgICAoV2ViS2l0VVJJUmVzcG9u
c2UgICAgKnJlc3BvbnNlKTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfdXJp
X3Jlc3BvbnNlX2dldF9taW1lX3R5cGUgICAgICAgICAgKFdlYktpdFVSSVJlc3BvbnNlICAgICpy
ZXNwb25zZSk7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X3VyaV9yZXNwb25z
ZV9nZXRfc3VnZ2VzdGVkX2ZpbGVuYW1lIChXZWJLaXRVUklSZXNwb25zZSAgICAqcmVzcG9uc2Up
OworCitXRUJLSVRfQVBJIFNvdXBNZXNzYWdlSGVhZGVycyAqCit3ZWJraXRfdXJpX3Jlc3BvbnNl
X2dldF9odHRwX2hlYWRlcnMgICAgICAgKFdlYktpdFVSSVJlc3BvbnNlICAgICpyZXNwb25zZSk7
CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFkZjcwMzI2YWYzMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5o
CkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwu
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9D
T01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNs
dWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
X2gKKyNkZWZpbmUgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9i
amVjdC5oPgorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2Vi
S2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9u
cy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaD4KKworR19C
RUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVRVUVTVCAgICAg
ICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF90eXBlKCkpCisjZGVmaW5lIFdF
QktJVF9VUklfU0NIRU1FX1JFUVVFU1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5T
VEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVFVRVNULCBXZWJLaXRV
UklTY2hlbWVSZXF1ZXN0KSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVRVUVTVChv
YmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQ
RV9VUklfU0NIRU1FX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVFVRVNU
X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJ
VF9UWVBFX1VSSV9TQ0hFTUVfUkVRVUVTVCwgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdENsYXNzKSkK
KyNkZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVRVUVTVF9DTEFTUyhrbGFzcykgKEdfVFlQ
RV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFUVVF
U1QpKQorI2RlZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVFVRVNUX0dFVF9DTEFTUyhvYmopICAo
R19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVf
UkVRVUVTVCwgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdENsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdFVSSVNjaGVtZVJlcXVlc3QgICAgICAgIFdlYktpdFVSSVNjaGVtZVJlcXVlc3Q7Cit0
eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVxdWVzdENsYXNzICAgV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQ
cml2YXRlIFdlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlOworCitzdHJ1Y3QgX1dlYktpdFVS
SVNjaGVtZVJlcXVlc3QgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUg
PiovCisgICAgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1
Y3QgX1dlYktpdFVSSVNjaGVtZVJlcXVlc3RDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVu
dF9jbGFzczsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2Vy
dmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAg
IHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jl
c2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3VyaV9zY2hl
bWVfcmVxdWVzdF9nZXRfdHlwZSAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFy
ICoKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3NjaGVtZSAgIChXZWJLaXRVUklTY2hl
bWVSZXF1ZXN0ICpyZXF1ZXN0KTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRf
dXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkgICAgICAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAq
cmVxdWVzdCk7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X3VyaV9zY2hlbWVf
cmVxdWVzdF9nZXRfcGF0aCAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwor
CitXRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9n
ZXRfd2ViX3ZpZXcgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOworCitXRUJLSVRf
QVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0
aG9kIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKKworV0VCS0lUX0FQSSBTb3Vw
TWVzc2FnZUhlYWRlcnMgKgord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9oZWFk
ZXJzIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKKworV0VCS0lUX0FQSSB2b2lk
Cit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaCAgICAgICAoV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdCAqcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHSW5wdXRTdHJlYW0gICAgICAgICAgICpzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2ludDY0ICAgICAgICAgICAgICAgICAgc3RyZWFtX2xlbmd0aCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAg
ICAgICAgICpjb250ZW50X3R5cGUpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91cmlfc2No
ZW1lX3JlcXVlc3RfZmluaXNoX3dpdGhfcmVzcG9uc2UgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3Qg
ICpyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlKTsKKworV0VCS0lUX0FQSSB2b2lk
Cit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvciAoV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdCAqcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHRXJyb3IgICAgICAgICAgICAgICAgICplcnJvcik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklT
Y2hlbWVSZXNwb25zZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
UklTY2hlbWVSZXNwb25zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MC4uNTljYjBkOGU3ODc0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCkBAIC0wLDAgKzEsODQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5nIExpdQorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQy
X0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9u
bHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlm
CisKKyNpZm5kZWYgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VfaAorI2RlZmluZSBXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZV9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPGxp
YnNvdXAvc291cC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1
ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oPgorCitHX0JFR0lOX0RFQ0xT
CisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSAgICAgICAgICAgICh3
ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfVVJJ
X1NDSEVNRV9SRVNQT05TRShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9D
QVNUKChvYmopLCBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hl
bWVSZXNwb25zZSkpCisjZGVmaW5lIFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFKG9iaikg
ICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1VS
SV9TQ0hFTUVfUkVTUE9OU0UpKQorI2RlZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9D
TEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRf
VFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzKSkK
KyNkZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1Moa2xhc3MpIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQ
T05TRSkpCisjZGVmaW5lIFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFX0dFVF9DTEFTUyhvYmop
ICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1VSSV9TQ0hF
TUVfUkVTUE9OU0UsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MpKQorCit0eXBlZGVmIHN0
cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgICAgICAgIFdlYktpdFVSSVNjaGVtZVJlc3Bv
bnNlOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MgICBXZWJL
aXRVUklTY2hlbWVSZXNwb25zZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlUHJpdmF0ZSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGU7CisKK3N0cnVj
dCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAg
Lyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlICpwcml2
OworfTsKKworc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzIHsKKyAgICBHT2Jq
ZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgdm9pZCAo
Kl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQx
KSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9p
ZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3
ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZSAgICAgICAgICAgKHZvaWQpOworCitX
RUJLSVRfQVBJIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICoKK3dlYmtpdF91cmlfc2NoZW1lX3Jl
c3BvbnNlX25ldyAgICAgICAgICAgICAgICAoR0lucHV0U3RyZWFtICAgICAgICAgICAgKmlucHV0
X3N0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2ludDY0ICAgICAgICAgICAgICAgICAgIHN0cmVhbV9sZW5ndGgpOworCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMgICAgICAgICAoV2ViS2l0
VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgc3RhdHVzX2NvZGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdj
aGFyICAgICAgICAgICAgICpyZWFzb25fcGhyYXNlKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJr
aXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfY29udGVudF90eXBlICAgKFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlICpyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgKmNvbnRlbnRfdHlwZSk7CisKK1dF
QktJVF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2h0dHBfaGVhZGVy
cyAgIChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXBNZXNzYWdlSGVhZGVycyAgICAgICpo
ZWFkZXJzKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVV0aWxpdGllcy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklVdGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNhMzA3NzY2MTM3NgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJVXRpbGl0aWVzLmgKQEAg
LTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBJZ2FsaWEgUy5MLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYg
IWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElM
QVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQg
ZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0VVJJVXRpbGl0aWVzX2gKKyNkZWZp
bmUgV2ViS2l0VVJJVXRpbGl0aWVzX2gKKworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCitXRUJLSVRfQVBJIGdj
aGFyICoKK3dlYmtpdF91cmlfZm9yX2Rpc3BsYXkgKGNvbnN0IGdjaGFyICp1cmkpOworCitHX0VO
RF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VXNlckNvbnRlbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VXNlckNvbnRlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLmMwOGNlZWU2ODNlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnQuaApAQCAtMCwwICsxLDE1NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQy
X0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9u
bHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlm
CisKKyNpZm5kZWYgV2ViS2l0VXNlckNvbnRlbnRfaAorI2RlZmluZSBXZWJLaXRVc2VyQ29udGVu
dF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKy8qKgorICogV2ViS2l0VXNlckNvbnRlbnRJ
bmplY3RlZEZyYW1lczoKKyAqIEBXRUJLSVRfVVNFUl9DT05URU5UX0lOSkVDVF9BTExfRlJBTUVT
OiBJbnNlcnQgdGhlIHVzZXIgc3R5bGUKKyAqICAgc2hlZXQgaW4gYWxsIHRoZSBmcmFtZXMgbG9h
ZGVkIGJ5IHRoZSB3ZWIgdmlldywgaW5jbHVkaW5nCisgKiAgIG5lc3RlZCBmcmFtZXMuIFRoaXMg
aXMgdGhlIGRlZmF1bHQuCisgKiBAV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfVE9QX0ZSQU1F
OiBJbnNlcnQgdGhlIHVzZXIgc3R5bGUKKyAqICAgc2hlZXQgKm9ubHkqIGluIHRoZSB0b3AtbGV2
ZWwgZnJhbWUgbG9hZGVkIGJ5IHRoZSB3ZWIgdmlldywKKyAqICAgYW5kICpub3QqIGluIHRoZSBu
ZXN0ZWQgZnJhbWVzLgorICoKKyAqIFNwZWNpZmllcyBpbiB3aGljaCBmcmFtZXMgdXNlciBzdHls
ZSBzaGVldHMgYXJlIHRvIGJlIGluc2VydGVkIGluLgorICoKKyAqIFNpbmNlOiAyLjYKKyAqLwor
dHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRfVVNFUl9DT05URU5UX0lOSkVDVF9BTExfRlJBTUVT
LAorICAgIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX1RPUF9GUkFNRSwKK30gV2ViS2l0VXNl
ckNvbnRlbnRJbmplY3RlZEZyYW1lczsKKworLyoqCisgKiBXZWJLaXRVc2VyU3R5bGVMZXZlbDoK
KyAqIEBXRUJLSVRfVVNFUl9TVFlMRV9MRVZFTF9VU0VSOiBUaGUgc3R5bGUgc2hlZXQgaXMgYW4g
dXNlciBzdHlsZSBzaGVldCwKKyAqICAgaXRzIGNvbnRlbnRzIGFsd2F5cyBvdmVycmlkZSBvdGhl
ciBzdHlsZSBzaGVldHMuIFRoaXMgaXMgdGhlIGRlZmF1bHQuCisgKiBAV0VCS0lUX1VTRVJfU1RZ
TEVfTEVWRUxfQVVUSE9SOiBUaGUgc3R5bGUgc2hlZXQgd2lsbCBiZSB0cmVhdGVkIGFzIGlmCisg
KiAgIGl0IHdhcyBwcm92aWRlZCBieSB0aGUgbG9hZGVkIGRvY3VtZW50cy4gVGhhdCBtZWFucyBv
dGhlciB1c2VyIHN0eWxlCisgKiAgIHNoZWV0cyBtYXkgc3RpbGwgb3ZlcnJpZGUgaXQuCisgKgor
ICogU3BlY2lmaWVzIGhvdyB0byB0cmVhdCBhbiB1c2VyIHN0eWxlIHNoZWV0LgorICoKKyAqIFNp
bmNlOiAyLjYKKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRfVVNFUl9TVFlMRV9MRVZF
TF9VU0VSLAorICAgIFdFQktJVF9VU0VSX1NUWUxFX0xFVkVMX0FVVEhPUiwKK30gV2ViS2l0VXNl
clN0eWxlTGV2ZWw7CisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVNFUl9TVFlMRV9TSEVFVCAod2Vi
a2l0X3VzZXJfc3R5bGVfc2hlZXRfZ2V0X3R5cGUoKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktp
dFVzZXJTdHlsZVNoZWV0IFdlYktpdFVzZXJTdHlsZVNoZWV0OworCitXRUJLSVRfQVBJIEdUeXBl
Cit3ZWJraXRfdXNlcl9zdHlsZV9zaGVldF9nZXRfdHlwZSAgICAgICh2b2lkKTsKKworV0VCS0lU
X0FQSSBXZWJLaXRVc2VyU3R5bGVTaGVldCAqCit3ZWJraXRfdXNlcl9zdHlsZV9zaGVldF9yZWYg
ICAgICAgICAgIChXZWJLaXRVc2VyU3R5bGVTaGVldCAgICAgICAgICAgKnVzZXJfc3R5bGVfc2hl
ZXQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91c2VyX3N0eWxlX3NoZWV0X3VucmVmICAg
ICAgICAgKFdlYktpdFVzZXJTdHlsZVNoZWV0ICAgICAgICAgICAqdXNlcl9zdHlsZV9zaGVldCk7
CisKK1dFQktJVF9BUEkgV2ViS2l0VXNlclN0eWxlU2hlZXQgKgord2Via2l0X3VzZXJfc3R5bGVf
c2hlZXRfbmV3ICAgICAgICAgICAoY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAgICAgICpzb3Vy
Y2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRVc2VyQ29u
dGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkX2ZyYW1lcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYktpdFVzZXJTdHlsZUxldmVsICAgICAgICAgICAgbGV2ZWws
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogY29u
c3QgICAgICAgICAgICAgKmFsbG93X2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciogY29uc3QgICAgICAgICAgICAgKmJsb2NrX2xpc3QpOwor
CitXRUJLSVRfQVBJIFdlYktpdFVzZXJTdHlsZVNoZWV0ICoKK3dlYmtpdF91c2VyX3N0eWxlX3No
ZWV0X25ld19mb3Jfd29ybGQgKGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgICAgICAqc291cmNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNlckNvbnRl
bnRJbmplY3RlZEZyYW1lcyBpbmplY3RlZF9mcmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXZWJLaXRVc2VyU3R5bGVMZXZlbCAgICAgICAgICAgIGxldmVsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAg
ICAgICAgICAgICAgICp3b3JsZF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgZ2NoYXIqIGNvbnN0ICAgICAgICAgICAgICphbGxvd19saXN0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqIGNvbnN0ICAg
ICAgICAgICAgICpibG9ja19saXN0KTsKKworLyoqCisgKiBXZWJLaXRVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZToKKyAqIEBXRUJLSVRfVVNFUl9TQ1JJUFRfSU5KRUNUX0FUX0RPQ1VNRU5UX1NUQVJU
OiBJbnNlcnQgdGhlIGNvZGUgb2YgdGhlIHVzZXIKKyAqICAgc2NyaXB0IGF0IHRoZSBiZWdpbm5p
bmcgb2YgbG9hZGVkIGRvY3VtZW50cy4gVGhpcyBpcyB0aGUgZGVmYXVsdC4KKyAqIEBXRUJLSVRf
VVNFUl9TQ1JJUFRfSU5KRUNUX0FUX0RPQ1VNRU5UX0VORDogSW5zZXJ0IHRoZSBjb2RlIG9mIHRo
ZSB1c2VyCisgKiAgIHNjcmlwdCBhdCB0aGUgZW5kIG9mIHRoZSBsb2FkZWQgZG9jdW1lbnRzLgor
ICoKKyAqIFNwZWNpZmllcyBhdCB3aGljaCBwbGFjZSBvZiBkb2N1bWVudHMgYW4gdXNlciBzY3Jp
cHQgd2lsbCBiZSBpbnNlcnRlZC4KKyAqCisgKiBTaW5jZTogMi42CisgKi8KK3R5cGVkZWYgZW51
bSB7CisgICAgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9TVEFSVCwKKyAg
ICBXRUJLSVRfVVNFUl9TQ1JJUFRfSU5KRUNUX0FUX0RPQ1VNRU5UX0VORCwKK30gV2ViS2l0VXNl
clNjcmlwdEluamVjdGlvblRpbWU7CisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVNFUl9TQ1JJUFQg
KHdlYmtpdF91c2VyX3NjcmlwdF9nZXRfdHlwZSgpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
VXNlclNjcmlwdCBXZWJLaXRVc2VyU2NyaXB0OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRf
dXNlcl9zY3JpcHRfZ2V0X3R5cGUgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0VXNl
clNjcmlwdCAqCit3ZWJraXRfdXNlcl9zY3JpcHRfcmVmICAgICAgICAgICAoV2ViS2l0VXNlclNj
cmlwdCAgICAgICAgICAgICAgICp1c2VyX3NjcmlwdCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X3VzZXJfc2NyaXB0X3VucmVmICAgICAgICAgKFdlYktpdFVzZXJTY3JpcHQgICAgICAgICAg
ICAgICAqdXNlcl9zY3JpcHQpOworCitXRUJLSVRfQVBJIFdlYktpdFVzZXJTY3JpcHQgKgord2Vi
a2l0X3VzZXJfc2NyaXB0X25ldyAgICAgICAgICAgKGNvbnN0IGdjaGFyICAgICAgICAgICAgICAg
ICAgICAqc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFVz
ZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRfZnJhbWVzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYktpdFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lICAgaW5qZWN0
aW9uX3RpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIq
IGNvbnN0ICAgICAgICAgICAgICphbGxvd19saXN0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGdjaGFyKiBjb25zdCAgICAgICAgICAgICAqYmxvY2tfbGlzdCk7CisK
K1dFQktJVF9BUEkgV2ViS2l0VXNlclNjcmlwdCAqCit3ZWJraXRfdXNlcl9zY3JpcHRfbmV3X2Zv
cl93b3JsZCAoY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAgICAgICpzb3VyY2UsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNlckNvbnRlbnRJbmplY3RlZEZyYW1l
cyBpbmplY3RlZF9mcmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
S2l0VXNlclNjcmlwdEluamVjdGlvblRpbWUgICBpbmplY3Rpb25fdGltZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICAgICAgKndv
cmxkX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIq
IGNvbnN0ICAgICAgICAgICAgICphbGxvd19saXN0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGdjaGFyKiBjb25zdCAgICAgICAgICAgICAqYmxvY2tfbGlzdCk7CisK
KyNkZWZpbmUgV0VCS0lUX1RZUEVfVVNFUl9DT05URU5UX0ZJTFRFUiAgICh3ZWJraXRfdXNlcl9j
b250ZW50X2ZpbHRlcl9nZXRfdHlwZSgpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNlckNv
bnRlbnRGaWx0ZXIgV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXI7CisKK1dFQktJVF9BUEkgR1R5cGUK
K3dlYmtpdF91c2VyX2NvbnRlbnRfZmlsdGVyX2dldF90eXBlICAgICAgICh2b2lkKTsKKworV0VC
S0lUX0FQSSBjb25zdCBjaGFyKgord2Via2l0X3VzZXJfY29udGVudF9maWx0ZXJfZ2V0X2lkZW50
aWZpZXIgKFdlYktpdFVzZXJDb250ZW50RmlsdGVyICAgICAqdXNlcl9jb250ZW50X2ZpbHRlcik7
CisKK1dFQktJVF9BUEkgV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXIgKgord2Via2l0X3VzZXJfY29u
dGVudF9maWx0ZXJfcmVmICAgICAgICAgICAgKFdlYktpdFVzZXJDb250ZW50RmlsdGVyICAgICAq
dXNlcl9jb250ZW50X2ZpbHRlcik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VzZXJfY29u
dGVudF9maWx0ZXJfdW5yZWYgICAgICAgICAgKFdlYktpdFVzZXJDb250ZW50RmlsdGVyICAgICAq
dXNlcl9jb250ZW50X2ZpbHRlcik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudEZpbHRl
clN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250
ZW50RmlsdGVyU3RvcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu
LjJkYWFkMjczNjk3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5oCkBAIC0wLDAgKzEsMTQwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiAh
ZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxB
VElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBk
aXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3Jl
X2gKKyNkZWZpbmUgV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZV9oCisKKyNpbmNsdWRlIDxn
aW8vZ2lvLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5f
REVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9VU0VSX0NPTlRFTlRfRklMVEVSX1NUT1JFICAg
ICAgICAgICAgKHdlYmtpdF91c2VyX2NvbnRlbnRfZmlsdGVyX3N0b3JlX2dldF90eXBlKCkpCisj
ZGVmaW5lIFdFQktJVF9VU0VSX0NPTlRFTlRfRklMVEVSX1NUT1JFKG9iaikgICAgICAgICAgICAo
R19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1VTRVJfQ09OVEVO
VF9GSUxURVJfU1RPUkUsIFdlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUpKQorI2RlZmluZSBX
RUJLSVRfSVNfVVNFUl9DT05URU5UX0ZJTFRFUl9TVE9SRShvYmopICAgICAgICAgKEdfVFlQRV9D
SEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9VU0VSX0NPTlRFTlRfRklMVEVS
X1NUT1JFKSkKKyNkZWZpbmUgV0VCS0lUX1VTRVJfQ09OVEVOVF9GSUxURVJfU1RPUkVfQ0xBU1Mo
a2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVf
VVNFUl9DT05URU5UX0ZJTFRFUl9TVE9SRSwgV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZUNs
YXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VTRVJfQ09OVEVOVF9GSUxURVJfU1RPUkVfQ0xBU1Mo
a2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVNF
Ul9DT05URU5UX0ZJTFRFUl9TVE9SRSkpCisjZGVmaW5lIFdFQktJVF9VU0VSX0NPTlRFTlRfRklM
VEVSX1NUT1JFX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2Jq
KSwgIFdFQktJVF9UWVBFX1VTRVJfQ09OVEVOVF9GSUxURVJfU1RPUkUsIFdlYktpdFVzZXJDb250
ZW50RmlsdGVyU3RvcmVDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVc2VyQ29udGVu
dEZpbHRlclN0b3JlICAgICAgICBXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlOwordHlwZWRl
ZiBzdHJ1Y3QgX1dlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmVDbGFzcyAgIFdlYktpdFVzZXJD
b250ZW50RmlsdGVyU3RvcmVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVc2VyQ29udGVu
dEZpbHRlclN0b3JlUHJpdmF0ZSBXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlUHJpdmF0ZTsK
KwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJDb250ZW50RmlsdGVyICAgICAgICAgICAgIFdl
YktpdFVzZXJDb250ZW50RmlsdGVyOworCitzdHJ1Y3QgX1dlYktpdFVzZXJDb250ZW50RmlsdGVy
U3RvcmUgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAg
V2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3Qg
X1dlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmVDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBh
cmVudF9jbGFzczsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIHZvaWQgKCpfd2Via2l0X3Jl
c2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOwor
ICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0
X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfdXNl
cl9jb250ZW50X2ZpbHRlcl9zdG9yZV9nZXRfdHlwZSAgICAgICAgICAgICAgICAgKHZvaWQpOwor
CitXRUJLSVRfQVBJIFdlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUgKgord2Via2l0X3VzZXJf
Y29udGVudF9maWx0ZXJfc3RvcmVfbmV3ICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBnY2hh
ciAgICAgICAgICAgICAgICAgICpzdG9yYWdlX3BhdGgpOworCitXRUJLSVRfQVBJIGNvbnN0IGdj
aGFyICoKK3dlYmtpdF91c2VyX2NvbnRlbnRfZmlsdGVyX3N0b3JlX2dldF9wYXRoICAgICAgICAg
ICAgICAgICAoV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZSAqc3RvcmUpOworCitXRUJLSVRf
QVBJIHZvaWQKK3dlYmtpdF91c2VyX2NvbnRlbnRfZmlsdGVyX3N0b3JlX3NhdmUgICAgICAgICAg
ICAgICAgICAgICAoV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZSAqc3RvcmUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGdjaGFyICAgICAgICAgICAgICAgICAgKmlkZW50aWZpZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdCeXRlcyAgICAgICAgICAg
ICAgICAgICAgICAgKnNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0NhbmNlbGxhYmxlICAgICAgICAgICAgICAgICAqY2Fu
Y2VsbGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdBc3luY1JlYWR5Q2FsbGJhY2sgICAgICAgICAgIGNhbGxiYWNrLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
cG9pbnRlciAgICAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEpOworCitXRUJLSVRfQVBJIFdl
YktpdFVzZXJDb250ZW50RmlsdGVyICoKK3dlYmtpdF91c2VyX2NvbnRlbnRfZmlsdGVyX3N0b3Jl
X3NhdmVfZmluaXNoICAgICAgICAgICAgICAoV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZSAq
c3RvcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdBc3luY1Jlc3VsdCAgICAgICAgICAgICAgICAgKnJlc3VsdCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9y
ICAgICAgICAgICAgICAgICAgICAgICoqZXJyb3IpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtp
dF91c2VyX2NvbnRlbnRfZmlsdGVyX3N0b3JlX3NhdmVfZnJvbV9maWxlICAgICAgICAgICAoV2Vi
S2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZSAqc3RvcmUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAg
ICAgICAgICAgKmlkZW50aWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdGaWxlICAgICAgICAgICAgICAgICAgICAgICAgKmZp
bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdDYW5jZWxsYWJsZSAgICAgICAgICAgICAgICAgKmNhbmNlbGxhYmxlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5
bmNSZWFkeUNhbGxiYWNrICAgICAgICAgICBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgICAg
ICAgICAgICAgICAgdXNlcl9kYXRhKTsKKworV0VCS0lUX0FQSSBXZWJLaXRVc2VyQ29udGVudEZp
bHRlciAqCit3ZWJraXRfdXNlcl9jb250ZW50X2ZpbHRlcl9zdG9yZV9zYXZlX2Zyb21fZmlsZV9m
aW5pc2ggICAgKFdlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUgKnN0b3JlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNS
ZXN1bHQgICAgICAgICAgICAgICAgICpyZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAgICAg
ICAgICAqKmVycm9yKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXNlcl9jb250ZW50X2Zp
bHRlcl9zdG9yZV9yZW1vdmUgICAgICAgICAgICAgICAgICAgKFdlYktpdFVzZXJDb250ZW50Rmls
dGVyU3RvcmUgKnN0b3JlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICAgICppZGVudGlm
aWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHQ2FuY2VsbGFibGUgICAgICAgICAgICAgICAgICpjYW5jZWxsYWJsZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Fz
eW5jUmVhZHlDYWxsYmFjayAgICAgICAgICAgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICAg
ICAgICAgICAgICAgIHVzZXJfZGF0YSk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF91
c2VyX2NvbnRlbnRfZmlsdGVyX3N0b3JlX3JlbW92ZV9maW5pc2ggICAgICAgICAgICAoV2ViS2l0
VXNlckNvbnRlbnRGaWx0ZXJTdG9yZSAqc3RvcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAgICAgICAgICAg
ICAgICAgKnJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgICAgICAgICAgICAgICoqZXJyb3IpOwor
CitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91c2VyX2NvbnRlbnRfZmlsdGVyX3N0b3JlX2xvYWQg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZSAqc3RvcmUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgICAgKmlkZW50aWZpZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDYW5jZWxs
YWJsZSAgICAgICAgICAgICAgICAgKmNhbmNlbGxhYmxlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZWFkeUNhbGxiYWNr
ICAgICAgICAgICBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgICAgICAgICAgICAgICAgdXNl
cl9kYXRhKTsKKworV0VCS0lUX0FQSSBXZWJLaXRVc2VyQ29udGVudEZpbHRlciAqCit3ZWJraXRf
dXNlcl9jb250ZW50X2ZpbHRlcl9zdG9yZV9sb2FkX2ZpbmlzaCAgICAgICAgICAgICAgKFdlYktp
dFVzZXJDb250ZW50RmlsdGVyU3RvcmUgKnN0b3JlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgICAgICAgICAg
ICAgICAgICpyZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAgICAgICAgICAqKmVycm9yKTsK
KworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXNlcl9jb250ZW50X2ZpbHRlcl9zdG9yZV9mZXRj
aF9pZGVudGlmaWVycyAgICAgICAgKFdlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUgKnN0b3Jl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHQ2FuY2VsbGFibGUgICAgICAgICAgICAgICAgICpjYW5jZWxsYWJsZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0FzeW5j
UmVhZHlDYWxsYmFjayAgICAgICAgICAgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICAgICAg
ICAgICAgICAgIHVzZXJfZGF0YSk7CisKK1dFQktJVF9BUEkgZ2NoYXIqKgord2Via2l0X3VzZXJf
Y29udGVudF9maWx0ZXJfc3RvcmVfZmV0Y2hfaWRlbnRpZmllcnNfZmluaXNoIChXZWJLaXRVc2Vy
Q29udGVudEZpbHRlclN0b3JlICpzdG9yZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0FzeW5jUmVzdWx0ICAgICAgICAgICAgICAg
ICAqcmVzdWx0KTsKKworR19FTkRfREVDTFMKKworI2VuZGlmIC8qICFXZWJLaXRVc2VyQ29udGVu
dEZpbHRlclN0b3JlX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uOGU5MGY5NTQ0MDE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuaApA
QCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCwgMjAyMCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJ
VDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUg
aW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0VXNlckNvbnRlbnRN
YW5hZ2VyX2gKKyNkZWZpbmUgV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyX2gKKworI2luY2x1ZGUg
PGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisjaW5j
bHVkZSA8d2Via2l0Mi9XZWJLaXRVc2VyQ29udGVudC5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNk
ZWZpbmUgV0VCS0lUX1RZUEVfVVNFUl9DT05URU5UX01BTkFHRVIgICAgICAgICAgICAod2Via2l0
X3VzZXJfY29udGVudF9tYW5hZ2VyX2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX0NP
TlRFTlRfTUFOQUdFUihvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU
KChvYmopLCBXRUJLSVRfVFlQRV9VU0VSX0NPTlRFTlRfTUFOQUdFUiwgV2ViS2l0VXNlckNvbnRl
bnRNYW5hZ2VyKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VTRVJfQ09OVEVOVF9NQU5BR0VSKG9iaikg
ICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1VT
RVJfQ09OVEVOVF9NQU5BR0VSKSkKKyNkZWZpbmUgV0VCS0lUX1VTRVJfQ09OVEVOVF9NQU5BR0VS
X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJ
VF9UWVBFX1VTRVJfQ09OVEVOVF9NQU5BR0VSLCBXZWJLaXRVc2VyQ29udGVudE1hbmFnZXJDbGFz
cykpCisjZGVmaW5lIFdFQktJVF9JU19VU0VSX0NPTlRFTlRfTUFOQUdFUl9DTEFTUyhrbGFzcykg
KEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9VU0VSX0NPTlRF
TlRfTUFOQUdFUikpCisjZGVmaW5lIFdFQktJVF9VU0VSX0NPTlRFTlRfTUFOQUdFUl9HRVRfQ0xB
U1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9V
U0VSX0NPTlRFTlRfTUFOQUdFUiwgV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyQ2xhc3MpKQorCit0
eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyICAgICAgICBXZWJLaXRVc2Vy
Q29udGVudE1hbmFnZXI7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2Vy
Q2xhc3MgICBXZWJLaXRVc2VyQ29udGVudE1hbmFnZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRVc2VyQ29udGVudE1hbmFnZXJQcml2YXRlIFdlYktpdFVzZXJDb250ZW50TWFuYWdlclBy
aXZhdGU7CisKKworc3RydWN0IF9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIgeworICAgIEdPYmpl
Y3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0VXNlckNvbnRlbnRN
YW5hZ2VyUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0VXNlckNvbnRlbnRNYW5h
Z2VyQ2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICAvKjwgcHJp
dmF0ZSA+Ki8KKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lk
ICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZl
ZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisK
K1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9nZXRfdHlwZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIFdl
YktpdFVzZXJDb250ZW50TWFuYWdlciAqCit3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfbmV3
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lU
X0FQSSB2b2lkCit3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfYWRkX3N0eWxlX3NoZWV0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIgKm1hbmFn
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJLaXRVc2VyU3R5bGVTaGVldCAgICAgKnN0eWxlc2hlZXQp
OworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9yZW1vdmVf
c3R5bGVfc2hlZXQgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFVzZXJDb250ZW50TWFu
YWdlciAqbWFuYWdlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFVzZXJTdHlsZVNoZWV0ICAgICAq
c3R5bGVzaGVldCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VzZXJfY29udGVudF9tYW5h
Z2VyX3JlbW92ZV9hbGxfc3R5bGVfc2hlZXRzICAgICAgICAgICAgICAgICAgICAoV2ViS2l0VXNl
ckNvbnRlbnRNYW5hZ2VyICptYW5hZ2VyKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0
X3VzZXJfY29udGVudF9tYW5hZ2VyX3JlZ2lzdGVyX3NjcmlwdF9tZXNzYWdlX2hhbmRsZXIgICAg
ICAgICAgICAoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyICptYW5hZ2VyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICpuYW1lKTsKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3VucmVnaXN0ZXJfc2NyaXB0X21lc3NhZ2VfaGFuZGxl
ciAgICAgICAgICAoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyICptYW5hZ2VyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICpuYW1lKTsKKworV0VCS0lUX0FQSSBnYm9v
bGVhbgord2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3JlZ2lzdGVyX3NjcmlwdF9tZXNzYWdl
X2hhbmRsZXJfaW5fd29ybGQgICAoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyICptYW5hZ2VyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICpuYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICp3b3JsZF9uYW1lKTsKK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3VucmVnaXN0ZXJfc2NyaXB0X21lc3Nh
Z2VfaGFuZGxlcl9pbl93b3JsZCAoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyICptYW5hZ2VyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICpuYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICp3b3JsZF9uYW1lKTsKKworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfYWRkX3NjcmlwdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIgKm1hbmFnZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXZWJLaXRVc2VyU2NyaXB0ICAgICAgICAgKnNjcmlwdCk7CisKK1dF
QktJVF9BUEkgdm9pZAord2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3JlbW92ZV9zY3JpcHQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyICpt
YW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNlclNjcmlwdCAgICAgICAgICpzY3JpcHQp
OworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9yZW1vdmVf
YWxsX3NjcmlwdHMgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFVzZXJDb250ZW50TWFu
YWdlciAqbWFuYWdlcik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VzZXJfY29udGVudF9t
YW5hZ2VyX2FkZF9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0
VXNlckNvbnRlbnRNYW5hZ2VyICptYW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNlckNv
bnRlbnRGaWx0ZXIgICpmaWx0ZXIpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91c2VyX2Nv
bnRlbnRfbWFuYWdlcl9yZW1vdmVfZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KFdlYktpdFVzZXJDb250ZW50TWFuYWdlciAqbWFuYWdlciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktp
dFVzZXJDb250ZW50RmlsdGVyICAqZmlsdGVyKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRf
dXNlcl9jb250ZW50X21hbmFnZXJfcmVtb3ZlX2ZpbHRlcl9ieV9pZCAgICAgICAgICAgICAgICAg
ICAgICAgIChXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIgKm1hbmFnZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyICAgICAgICAgICAgICAgKmZpbHRlcl9pZCk7CisKK1dFQktJVF9BUEkgdm9p
ZAord2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3JlbW92ZV9hbGxfZmlsdGVycyAgICAgICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyICptYW5hZ2VyKTsKKwor
R19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iNjUzZGE1M2Q0MGUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAg
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3Jp
dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLwor
CisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJf
Q09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5j
bHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RfaAorI2RlZmluZSBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9o
CisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVm
aW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVNFUl9NRURJ
QV9QRVJNSVNTSU9OX1JFUVVFU1QgICAgICAgICAgICAod2Via2l0X3VzZXJfbWVkaWFfcGVybWlz
c2lvbl9yZXF1ZXN0X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1J
U1NJT05fUkVRVUVTVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU
KChvYmopLCBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJQV9Q
RVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FT
VCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNf
VVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tf
SU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JF
UVVFU1QpKQorI2RlZmluZSBXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1Rf
Q0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZ
UEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9N
RURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0Vf
R0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVF
U1QsIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorCit0eXBlZGVmIHN0
cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgICAgICAgIFdlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0Q2xhc3MgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJp
dmF0ZSBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CisKK3N0cnVjdCBf
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgeworICAgIEdPYmplY3QgcGFyZW50Owor
CisgICAgLyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgLyo8
IHByaXZhdGUgPiovCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAg
dm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVz
ZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9
OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVl
c3RfZ2V0X3R5cGUgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfdXNl
cl9tZWRpYV9wZXJtaXNzaW9uX2lzX2Zvcl9hdWRpb19kZXZpY2UgKFdlYktpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0
X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9pc19mb3JfdmlkZW9fZGV2aWNlIChXZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dl
YmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25faXNfZm9yX2Rpc3BsYXlfZGV2aWNlIChXZWJLaXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCk7CisKK0dfRU5EX0RFQ0xTCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
c2VyTWVzc2FnZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2Vy
TWVzc2FnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYzFmOTQx
YzZkZjk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVc2VyTWVzc2FnZS5oCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykg
JiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikgJiYgIWRlZmluZWQoX19XRUJLSVRfV0VC
X0VYVEVOU0lPTl9IX0lOU0lERV9fKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4g
Y2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdFVzZXJN
ZXNzYWdlX2gKKyNkZWZpbmUgV2ViS2l0VXNlck1lc3NhZ2VfaAorCisjaW5jbHVkZSA8Z2lvL2dp
by5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xT
CisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVNFUl9NRVNTQUdFICAgICAgICAgICAgKHdlYmtpdF91
c2VyX21lc3NhZ2VfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1VTRVJfTUVTU0FHRShvYmop
ICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQ
RV9VU0VSX01FU1NBR0UsIFdlYktpdFVzZXJNZXNzYWdlKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VT
RVJfTUVTU0FHRShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmop
LCBXRUJLSVRfVFlQRV9VU0VSX01FU1NBR0UpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRVNTQUdF
X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJ
VF9UWVBFX1VTRVJfTUVTU0FHRSwgV2ViS2l0VXNlck1lc3NhZ2VDbGFzcykpCisjZGVmaW5lIFdF
QktJVF9JU19VU0VSX01FU1NBR0VfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQ
RSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVNFUl9NRVNTQUdFKSkKKyNkZWZpbmUgV0VCS0lUX1VT
RVJfTUVTU0FHRV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9i
aiksICBXRUJLSVRfVFlQRV9VU0VSX01FU1NBR0UsIFdlYktpdFVzZXJNZXNzYWdlQ2xhc3MpKQor
CisjZGVmaW5lIFdFQktJVF9VU0VSX01FU1NBR0VfRVJST1Igd2Via2l0X3VzZXJfbWVzc2FnZV9l
cnJvcl9xdWFyayAoKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNlck1lc3NhZ2UgICAgICAg
IFdlYktpdFVzZXJNZXNzYWdlOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJNZXNzYWdlQ2xh
c3MgICBXZWJLaXRVc2VyTWVzc2FnZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJN
ZXNzYWdlUHJpdmF0ZSBXZWJLaXRVc2VyTWVzc2FnZVByaXZhdGU7CisKKy8qKgorICogV2ViS2l0
VXNlck1lc3NhZ2VFcnJvcjoKKyAqIEBXRUJLSVRfVVNFUl9NRVNTQUdFX1VOSEFORExFRF9NRVNT
QUdFOiBUaGUgbWVzc2FnZSB3YXMgbm90IGhhbmRsZWQgYnkgdGhlIHJlY2VpdmVyLgorICoKKyAq
IEVudW0gdmFsdWVzIHVzZWQgdG8gZGVub3RlIGVycm9ycyBoYXBwZW5pbmcgd2hlbiBzZW5kaW5n
IHVzZXIgbWVzc2FnZXMuCisgKgorICogU2luY2U6IDIuMjgKKyAqLwordHlwZWRlZiBlbnVtIHsK
KyAgICBXRUJLSVRfVVNFUl9NRVNTQUdFX1VOSEFORExFRF9NRVNTQUdFCit9IFdlYktpdFVzZXJN
ZXNzYWdlRXJyb3I7CisKK3N0cnVjdCBfV2ViS2l0VXNlck1lc3NhZ2UgeworICAgIEdJbml0aWFs
bHlVbm93bmVkIHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIFdlYktpdFVzZXJN
ZXNzYWdlUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0VXNlck1lc3NhZ2VDbGFz
cyB7CisgICAgR0luaXRpYWxseVVub3duZWRDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICAvKjwg
cHJpdmF0ZSA+Ki8KKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307
CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF91c2VyX21lc3NhZ2VfZ2V0X3R5cGUgICAgICAg
ICAodm9pZCk7CisKK1dFQktJVF9BUEkgR1F1YXJrCit3ZWJraXRfdXNlcl9tZXNzYWdlX2Vycm9y
X3F1YXJrICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdFVzZXJNZXNzYWdlICoKK3dl
YmtpdF91c2VyX21lc3NhZ2VfbmV3ICAgICAgICAgICAgICAoY29uc3QgY2hhciAgICAgICAgKm5h
bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICAg
ICAgICpwYXJhbWV0ZXJzKTsKKworV0VCS0lUX0FQSSBXZWJLaXRVc2VyTWVzc2FnZSAqCit3ZWJr
aXRfdXNlcl9tZXNzYWdlX25ld193aXRoX2ZkX2xpc3QgKGNvbnN0IGNoYXIgICAgICAgICpuYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAgICAgICAg
ICAqcGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1Vu
aXhGRExpc3QgICAgICAgKmZkX2xpc3QpOworCitXRUJLSVRfQVBJIGNvbnN0IGNoYXIgKgord2Vi
a2l0X3VzZXJfbWVzc2FnZV9nZXRfbmFtZSAgICAgICAgIChXZWJLaXRVc2VyTWVzc2FnZSAqbWVz
c2FnZSk7CisKK1dFQktJVF9BUEkgR1ZhcmlhbnQgKgord2Via2l0X3VzZXJfbWVzc2FnZV9nZXRf
cGFyYW1ldGVycyAgIChXZWJLaXRVc2VyTWVzc2FnZSAqbWVzc2FnZSk7CisKK1dFQktJVF9BUEkg
R1VuaXhGRExpc3QgKgord2Via2l0X3VzZXJfbWVzc2FnZV9nZXRfZmRfbGlzdCAgICAgIChXZWJL
aXRVc2VyTWVzc2FnZSAqbWVzc2FnZSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VzZXJf
bWVzc2FnZV9zZW5kX3JlcGx5ICAgICAgIChXZWJLaXRVc2VyTWVzc2FnZSAqbWVzc2FnZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNlck1lc3NhZ2UgKnJl
cGx5KTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFZlcnNpb24uaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0VmVyc2lvbi5oLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMC4uNDU3NmFiY2FjMDA5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRWZXJzaW9uLmguaW4KQEAgLTAsMCArMSw1
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQo
X19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pICYm
ICFkZWZpbmVkKF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykKKyNlcnJvciAiT25s
eSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYK
KworI2lmbmRlZiBXZWJLaXRWZXJzaW9uX2gKKyNkZWZpbmUgV2ViS2l0VmVyc2lvbl9oCisKKyNp
bmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVm
aW5lIFdFQktJVF9NQUpPUl9WRVJTSU9OIChAUFJPSkVDVF9WRVJTSU9OX01BSk9SQCkKKyNkZWZp
bmUgV0VCS0lUX01JTk9SX1ZFUlNJT04gKEBQUk9KRUNUX1ZFUlNJT05fTUlOT1JAKQorI2RlZmlu
ZSBXRUJLSVRfTUlDUk9fVkVSU0lPTiAoQFBST0pFQ1RfVkVSU0lPTl9NSUNST0ApCisKKyNkZWZp
bmUgV0VCS0lUX0NIRUNLX1ZFUlNJT04obWFqb3IsIG1pbm9yLCBtaWNybykgXAorICAgIChXRUJL
SVRfTUFKT1JfVkVSU0lPTiA+IChtYWpvcikgfHwgXAorICAgIChXRUJLSVRfTUFKT1JfVkVSU0lP
TiA9PSAobWFqb3IpICYmIFdFQktJVF9NSU5PUl9WRVJTSU9OID4gKG1pbm9yKSkgfHwgXAorICAg
IChXRUJLSVRfTUFKT1JfVkVSU0lPTiA9PSAobWFqb3IpICYmIFdFQktJVF9NSU5PUl9WRVJTSU9O
ID09IChtaW5vcikgJiYgXAorICAgICBXRUJLSVRfTUlDUk9fVkVSU0lPTiA+PSAobWljcm8pKSkK
KworV0VCS0lUX0FQSSBndWludAord2Via2l0X2dldF9tYWpvcl92ZXJzaW9uICh2b2lkKTsKKwor
V0VCS0lUX0FQSSBndWludAord2Via2l0X2dldF9taW5vcl92ZXJzaW9uICh2b2lkKTsKKworV0VC
S0lUX0FQSSBndWludAord2Via2l0X2dldF9taWNyb192ZXJzaW9uICh2b2lkKTsKKworR19FTkRf
REVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJDb250ZXh0LmguaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYkNvbnRleHQuaApzaW1pbGFyaXR5IGluZGV4IDk1JQpyZW5hbWUgZnJvbSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmguaW4KcmVu
YW1lIHRvIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5o
CmluZGV4IGJkZmRhNWIzZTdhMy4uNGEzZjQ3YTZmMzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmguaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmgKQEAgLTE3LDIzICsx
NywyNSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAotQEFQSV9TSU5H
TEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAh
ZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtp
dDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgogCiAjaWZuZGVmIFdlYktp
dFdlYkNvbnRleHRfaAogI2RlZmluZSBXZWJLaXRXZWJDb250ZXh0X2gKIAogI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0QXV0b21h
dGlvblNlc3Npb24uaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRDb29r
aWVNYW5hZ2VyLmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVmaW5l
cy5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERvd25sb2FkLmg+Ci0j
aW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmg+Ci0j
aW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyLmg+
Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0TmV0d29ya1Byb3h5U2V0dGlu
Z3MuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRTZWN1cml0eU1hbmFn
ZXIuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRVUklTY2hlbWVSZXF1
ZXN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0VXNlck1lc3NhZ2Uu
aD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRXZWJzaXRlRGF0YU1hbmFn
ZXIuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmg+CisjaW5j
bHVkZSA8d2Via2l0Mi9XZWJLaXRDb29raWVNYW5hZ2VyLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9X
ZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREb3dubG9hZC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdDIvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmg+CisjaW5jbHVkZSA8d2Via2l0
Mi9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdE5l
dHdvcmtQcm94eVNldHRpbmdzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRTZWN1cml0eU1h
bmFnZXIuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaD4KKyNp
bmNsdWRlIDx3ZWJraXQyL1dlYktpdFVzZXJNZXNzYWdlLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9X
ZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuaD4KIAogR19CRUdJTl9ERUNMUwogCkBAIC0yNjcsMTEg
KzI2OSw5IEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3dlYl9jb250ZXh0X3ByZWZldGNoX2Ru
cyAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29u
dGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAgICAgKmhvc3RuYW1lKTsKIAotI2lmIFBMQVRG
T1JNKEdUSykKIFdFQktJVF9ERVBSRUNBVEVEX0ZPUih3ZWJraXRfd2ViX2NvbnRleHRfbmV3X3dp
dGhfd2Vic2l0ZV9kYXRhX21hbmFnZXIpIHZvaWQKIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfZGlz
a19jYWNoZV9kaXJlY3RvcnkgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAg
KmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgICAgICpkaXJlY3RvcnkpOwotI2VuZGlm
CiAKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3dlYl9jb250ZXh0X2FsbG93X3Rsc19jZXJ0aWZp
Y2F0ZV9mb3JfaG9zdCAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwK
QEAgLTI5NSwxNCArMjk1LDEyIEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3dlYl9jb250ZXh0
X3NlbmRfbWVzc2FnZV90b19hbGxfZXh0ZW5zaW9ucyAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAg
ICAgICAgICAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV2ViS2l0VXNlck1lc3NhZ2UgICAgICAgICAgICAgKm1lc3NhZ2UpOwog
Ci0jaWYgUExBVEZPUk0oR1RLKQogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfd2ViX2NvbnRleHRf
c2V0X3VzZV9zeXN0ZW1fYXBwZWFyYW5jZV9mb3Jfc2Nyb2xsYmFycyAoV2ViS2l0V2ViQ29udGV4
dCAgICAgICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgICAgZW5hYmxlZCk7CiAK
IFdFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfdXNlX3N5c3RlbV9h
cHBlYXJhbmNlX2Zvcl9zY3JvbGxiYXJzIChXZWJLaXRXZWJDb250ZXh0ICAgICAgKmNvbnRleHQp
OwotI2VuZGlmCiAKIFdFQktJVF9BUEkgY29uc3QgZ2NoYXIqCiB3ZWJraXRfd2ViX2NvbnRleHRf
Z2V0X3RpbWVfem9uZV9vdmVycmlkZSAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAg
ICAgICAgICpjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViUmVzb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLjUzMWY5MTFmODRjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViUmVzb3VyY2UuaApAQCAtMCwwICsxLDg1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJf
SF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25s
eSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYK
KworI2lmbmRlZiBXZWJLaXRXZWJSZXNvdXJjZV9oCisjZGVmaW5lIFdlYktpdFdlYlJlc291cmNl
X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2lu
Y2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
VVJJUmVzcG9uc2UuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX1dF
Ql9SRVNPVVJDRSAgICAgICAgICAgICh3ZWJraXRfd2ViX3Jlc291cmNlX2dldF90eXBlKCkpCisj
ZGVmaW5lIFdFQktJVF9XRUJfUkVTT1VSQ0Uob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tf
SU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLCBXZWJLaXRXZWJS
ZXNvdXJjZSkpCisjZGVmaW5lIFdFQktJVF9JU19XRUJfUkVTT1VSQ0Uob2JqKSAgICAgICAgIChH
X1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNF
KSkKKyNkZWZpbmUgV0VCS0lUX1dFQl9SRVNPVVJDRV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9D
SEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsIFdlYktp
dFdlYlJlc291cmNlQ2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfV0VCX1JFU09VUkNFX0NMQVNT
KGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dF
Ql9SRVNPVVJDRSkpCisjZGVmaW5lIFdFQktJVF9XRUJfUkVTT1VSQ0VfR0VUX0NMQVNTKG9iaikg
IChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfV0VCX1JFU09V
UkNFLCBXZWJLaXRXZWJSZXNvdXJjZUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdl
YlJlc291cmNlICAgICAgICBXZWJLaXRXZWJSZXNvdXJjZTsKK3R5cGVkZWYgc3RydWN0IF9XZWJL
aXRXZWJSZXNvdXJjZUNsYXNzICAgV2ViS2l0V2ViUmVzb3VyY2VDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRXZWJSZXNvdXJjZVByaXZhdGUgV2ViS2l0V2ViUmVzb3VyY2VQcml2YXRlOwor
CitzdHJ1Y3QgX1dlYktpdFdlYlJlc291cmNlIHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAg
IC8qPCBwcml2YXRlID4qLworICAgIFdlYktpdFdlYlJlc291cmNlUHJpdmF0ZSAqcHJpdjsKK307
CisKK3N0cnVjdCBfV2ViS2l0V2ViUmVzb3VyY2VDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBh
cmVudF9jbGFzczsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIHZvaWQgKCpfd2Via2l0X3Jl
c2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOwor
ICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0
X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3dlYl9y
ZXNvdXJjZV9nZXRfdHlwZSAgICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFy
ICoKK3dlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaSAgICAgICAgIChXZWJLaXRXZWJSZXNvdXJj
ZSAgKnJlc291cmNlKTsKKworV0VCS0lUX0FQSSBXZWJLaXRVUklSZXNwb25zZSAqCit3ZWJraXRf
d2ViX3Jlc291cmNlX2dldF9yZXNwb25zZSAgICAoV2ViS2l0V2ViUmVzb3VyY2UgICpyZXNvdXJj
ZSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfZGF0YSAgICAg
ICAgKFdlYktpdFdlYlJlc291cmNlICAqcmVzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0NhbmNlbGxhYmxlICAgICAgICpjYW5jZWxsYWJsZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZWFkeUNhbGxiYWNrIGNhbGxiYWNr
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICAg
ICAgdXNlcl9kYXRhKTsKKworV0VCS0lUX0FQSSBndWNoYXIgKgord2Via2l0X3dlYl9yZXNvdXJj
ZV9nZXRfZGF0YV9maW5pc2ggKFdlYktpdFdlYlJlc291cmNlICAqcmVzb3VyY2UsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0FzeW5jUmVzdWx0ICAgICAgICpyZXN1bHQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAgICAgICAgICAg
ICpsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAg
ICAgICAgICAgKiplcnJvcik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5oLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKc2ltaWxhcml0eSBp
bmRleCA4NCUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlldy5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXcuaAppbmRleCAzNGZiYjgyYjk5MDkuLmFjN2RlZDc5NjU3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5oLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCkBA
IC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZy
ZXl0aGVyCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2Vy
LmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDE3IElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlh
IFMuTC4KICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMSBNb3Rvcm9sYSBNb2JpbGl0eSwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMSw0OCArMjEsNDMg
QEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLUBBUElfU0lOR0xFX0hF
QURFUl9DSEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmlu
ZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+
IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRXZWJW
aWV3X2gKICNkZWZpbmUgV2ViS2l0V2ViVmlld19oCiAKLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVf
UFJFRklYQC9XZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuaD4KLSNpbmNsdWRlIDxAQVBJX0lO
Q0xVREVfUFJFRklYQC9XZWJLaXRCYWNrRm9yd2FyZExpc3QuaD4KLSNpbmNsdWRlIDxAQVBJX0lO
Q0xVREVfUFJFRklYQC9XZWJLaXRDb250ZXh0TWVudS5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVE
RV9QUkVGSVhAL1dlYktpdERlZmluZXMuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklY
QC9XZWJLaXRFZGl0b3JTdGF0ZS5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dl
YktpdEZpbGVDaG9vc2VyUmVxdWVzdC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhA
L1dlYktpdEZpbmRDb250cm9sbGVyLmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAv
V2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BS
RUZJWEAvV2ViS2l0SGl0VGVzdFJlc3VsdC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVG
SVhAL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9Q
UkVGSVhAL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVf
UFJFRklYQC9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uLmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURF
X1BSRUZJWEAvV2ViS2l0Tm90aWZpY2F0aW9uLmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BS
RUZJWEAvV2ViS2l0T3B0aW9uTWVudS5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhA
L1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJ
WEAvV2ViS2l0UG9saWN5RGVjaXNpb24uaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklY
QC9XZWJLaXRTY3JpcHREaWFsb2cuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9X
ZWJLaXRTZXR0aW5ncy5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdFVS
SVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRVc2VyQ29u
dGVudE1hbmFnZXIuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRVc2Vy
TWVzc2FnZS5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdFdlYkNvbnRl
eHQuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRXZWJSZXNvdXJjZS5o
PgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdFdlYnNpdGVQb2xpY2llcy5o
PgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdFdlYlZpZXdTZXNzaW9uU3Rh
dGUuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRXaW5kb3dQcm9wZXJ0
aWVzLmg+Ci0KLSNpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNC
YXNlLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuaD4K
KyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5oPgorI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0RGVmaW5lcy5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29sb3JDaG9v
c2VyUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RWRpdG9yU3RhdGUuaD4KKyNp
bmNsdWRlIDx3ZWJraXQyL1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0RmluZENvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZv
cm1TdWJtaXNzaW9uUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2FyZERl
Y2xhcmF0aW9ucy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0SGl0VGVzdFJlc3VsdC5oPgor
I2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0Lmg+CisjaW5jbHVkZSA8
d2Via2l0Mi9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJL
aXROYXZpZ2F0aW9uQWN0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXROb3RpZmljYXRp
b24uaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdE9wdGlvbk1lbnUuaD4KKyNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJL
aXRQb2xpY3lEZWNpc2lvbi5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0U2NyaXB0RGlhbG9n
Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRTZXR0aW5ncy5oPgorI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0VVJJUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VXNlckNvbnRl
bnRNYW5hZ2VyLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVc2VyTWVzc2FnZS5oPgorI2lu
Y2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViQ29udGV4dC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2Vi
S2l0V2ViSW5zcGVjdG9yLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJSZXNvdXJjZS5o
PgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2Vic2l0ZVBvbGljaWVzLmg+CiAjaW5jbHVkZSA8
d2Via2l0Mi9XZWJLaXRXZWJWaWV3QmFzZS5oPgotI2VsaWYgUExBVEZPUk0oV1BFKQotI2luY2x1
ZGUgPHdwZS9XZWJLaXRDb2xvci5oPgotI2luY2x1ZGUgPHdwZS9XZWJLaXRSZWN0YW5nbGUuaD4K
LSNpbmNsdWRlIDx3cGUvV2ViS2l0V2ViVmlld0JhY2tlbmQuaD4KLSNlbmRpZgorI2luY2x1ZGUg
PHdlYmtpdDIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5oPgorI2luY2x1ZGUgPHdlYmtpdDIv
V2ViS2l0V2luZG93UHJvcGVydGllcy5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTczLDEwICs2
OCw3IEBAIEdfQkVHSU5fREVDTFMKICNkZWZpbmUgV0VCS0lUX0lTX1dFQl9WSUVXX0NMQVNTKGts
YXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQl9W
SUVXKSkKICNkZWZpbmUgV0VCS0lUX1dFQl9WSUVXX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lO
U1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1dFQl9WSUVXLCBXZWJLaXRXZWJW
aWV3Q2xhc3MpKQogCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0UHJpbnRPcGVyYXRpb24gV2ViS2l0
UHJpbnRPcGVyYXRpb247Ci0KLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJWaWV3ICAgICAgICBX
ZWJLaXRXZWJWaWV3OwotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdDbGFzcyAgIFdlYktp
dFdlYlZpZXdDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJWaWV3Q2xhc3MgV2ViS2l0
V2ViVmlld0NsYXNzOwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdQcml2YXRlIFdlYktp
dFdlYlZpZXdQcml2YXRlOwogCiAvKioKQEAgLTE2Niw3ICsxNTgsNiBAQCB0eXBlZGVmIGVudW0g
ewogICAgIFdFQktJVF9JTlNFQ1VSRV9DT05URU5UX0RJU1BMQVlFRAogfSBXZWJLaXRJbnNlY3Vy
ZUNvbnRlbnRFdmVudDsKIAotI2lmIFBMQVRGT1JNKEdUSykKIC8qKgogICogV2ViS2l0U25hcHNo
b3RPcHRpb25zOgogICogQFdFQktJVF9TTkFQU0hPVF9PUFRJT05TX05PTkU6IERvIG5vdCBpbmNs
dWRlIGFueSBzcGVjaWFsIG9wdGlvbnMuCkBAIC0xOTcsNyArMTg4LDYgQEAgdHlwZWRlZiBlbnVt
IHsKICAgV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9WSVNJQkxFID0gMCwKICAgV0VCS0lUX1NOQVBT
SE9UX1JFR0lPTl9GVUxMX0RPQ1VNRU5ULAogfSBXZWJLaXRTbmFwc2hvdFJlZ2lvbjsKLSNlbmRp
ZgogCiAvKioKICAqIFdlYktpdFdlYlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjoKQEAgLTI0OCwz
NyArMjM4LDE1IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgV0VCS0lUX1dFQl9FWFRFTlNJT05fTU9E
RV9NQU5JRkVTVFYzLAogfSBXZWJLaXRXZWJFeHRlbnNpb25Nb2RlOwogCi0jaWYgUExBVEZPUk0o
V1BFKQotLyoqCi0gKiBXZWJLaXRGcmFtZURpc3BsYXllZENhbGxiYWNrOgotICogQHdlYl92aWV3
OiBhICNXZWJLaXRXZWJWaWV3Ci0gKiBAdXNlcl9kYXRhOiB1c2VyIGRhdGEKLSAqCi0gKiBDYWxs
YmFjayB0byBiZSBjYWxsZWQgd2hlbiBhIGZyYW1lIGlzIGRpc3BsYXllZCBpbiBhICNXZWJLaXRX
ZWJWaWV3LgotICoKLSAqIFNpbmNlOiAyLjI0Ci0gKi8KLXR5cGVkZWYgdm9pZCAoKiBXZWJLaXRG
cmFtZURpc3BsYXllZENhbGxiYWNrKSAoV2ViS2l0V2ViVmlldyAqd2ViX3ZpZXcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgIHVz
ZXJfZGF0YSk7Ci0jZW5kaWYKLQogc3RydWN0IF9XZWJLaXRXZWJWaWV3IHsKLSNpZiBQTEFURk9S
TShHVEspCiAgICAgV2ViS2l0V2ViVmlld0Jhc2UgcGFyZW50OwotI2VsaWYgUExBVEZPUk0oV1BF
KQotICAgIEdPYmplY3QgcGFyZW50OwotI2VuZGlmCiAKICAgICAvKjwgcHJpdmF0ZSA+Ki8KICAg
ICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSAqcHJpdjsKIH07CiAKIHN0cnVjdCBfV2ViS2l0V2ViVmll
d0NsYXNzIHsKLSNpZiBQTEFURk9STShHVEspCiAgICAgV2ViS2l0V2ViVmlld0Jhc2VDbGFzcyBw
YXJlbnQ7Ci0jZWxpZiBQTEFURk9STShXUEUpCi0gICAgR09iamVjdENsYXNzIHBhcmVudDsKLSNl
bmRpZgogCiAgICAgLyo8IHB1YmxpYyA+Ki8KICAgICB2b2lkICAgICAgICgqIGxvYWRfY2hhbmdl
ZCkgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcs
CkBAIC0yODgsMTQgKzI1Niw4IEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld0NsYXNzIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAg
ICAgICAgICAgICAgICAqZmFpbGluZ191cmksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgICAgICAgICAgKmVycm9yKTsK
IAotI2lmIFBMQVRGT1JNKEdUSykKICAgICBHdGtXaWRnZXQgKigqIGNyZWF0ZSkgICAgICAgICAg
ICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXROYXZpZ2F0
aW9uQWN0aW9uICAgICAgKm5hdmlnYXRpb25fYWN0aW9uKTsKLSNlbGlmIFBMQVRGT1JNKFdQRSkK
LSAgICBXZWJLaXRXZWJWaWV3ICooKiBjcmVhdGUpICAgICAgICAgICAgICAgICAgKFdlYktpdFdl
YlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uICAgICAgKm5hdmln
YXRpb25fYWN0aW9uKTsKLSNlbmRpZgotCiAgICAgdm9pZCAgICAgICAoKiByZWFkeV90b19zaG93
KSAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAgKndlYl92aWV3KTsK
ICAgICB2b2lkICAgICAgICgqIHJ1bl9hc19tb2RhbCkgICAgICAgICAgICAgICAgKFdlYktpdFdl
YlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogICAgIHZvaWQgICAgICAgKCogY2xvc2Up
ICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAgICp3ZWJf
dmlldyk7CkBAIC0zMTEsMTIgKzI3Myw4IEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld0NsYXNzIHsK
ICAgICB2b2lkICAgICAgICgqIG1vdXNlX3RhcmdldF9jaGFuZ2VkKSAgICAgICAgKFdlYktpdFdl
YlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRIaXRUZXN0UmVzdWx0ICAgICAgICAgKmhpdF90
ZXN0X3Jlc3VsdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzKTsKLQotI2lmIFBMQVRG
T1JNKEdUSykKICAgICBnYm9vbGVhbiAgICgqIHByaW50KSAgICAgICAgICAgICAgICAgICAgICAg
KFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRQcmludE9wZXJhdGlvbiAgICAg
ICAgKnByaW50X29wZXJhdGlvbik7Ci0jZW5kaWYKLQogICAgIHZvaWQgICAgICAgKCogcmVzb3Vy
Y2VfbG9hZF9zdGFydGVkKSAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAgICp3ZWJf
dmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YktpdFdlYlJlc291cmNlICAgICAgICAgICAqcmVzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRVUklSZXF1ZXN0ICAgICAgICAgICAg
KnJlcXVlc3QpOwpAQCAtMzI0LDE5ICsyODIsMTAgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3Q2xh
c3MgewogICAgIGdib29sZWFuICAgKCogbGVhdmVfZnVsbHNjcmVlbikgICAgICAgICAgICAoV2Vi
S2l0V2ViVmlldyAgICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAgICAgZ2Jvb2xlYW4gICAoKiBy
dW5fZmlsZV9jaG9vc2VyKSAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAg
KndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0ICAgICpyZXF1ZXN0KTsKLQotI2lmIFBMQVRGT1JN
KEdUSykKICAgICBnYm9vbGVhbiAgICgqIGNvbnRleHRfbWVudSkgICAgICAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRDb250ZXh0TWVudSAgICAgICAgICAg
KmNvbnRleHRfbWVudSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdka0V2ZW50ICAgICAgICAgICAgICAgICAgICAqZXZlbnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRIaXRUZXN0UmVzdWx0ICAg
ICAgICAgKmhpdF90ZXN0X3Jlc3VsdCk7Ci0jZWxpZiBQTEFURk9STShXUEUpCi0gICAgZ2Jvb2xl
YW4gICAoKiBjb250ZXh0X21lbnUpICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAg
ICAgICAgICAgKndlYl92aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV2ViS2l0Q29udGV4dE1lbnUgICAgICAgICAgICpjb250ZXh0X21lbnUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICAgICAg
ICAgICAgICAgICAgICAgICAgKmV2ZW50LCAvKiBGSVhNRTogVXNlIGEgd3BlIHRoaW5nIGhlcmUu
IEknbSBub3Qgc3VyZSB3ZSB3YW50IHRvIGV4cG9zZSBsaWJ3cGUgaW4gdGhlIEFQSS4gKi8KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdEhpdFRl
c3RSZXN1bHQgICAgICAgICAqaGl0X3Rlc3RfcmVzdWx0KTsKLSNlbmRpZgotCiAgICAgdm9pZCAg
ICAgICAoKiBjb250ZXh0X21lbnVfZGlzbWlzc2VkKSAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAg
ICAgICAgICAgKndlYl92aWV3KTsKICAgICB2b2lkICAgICAgICgqIHN1Ym1pdF9mb3JtKSAgICAg
ICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRGb3JtU3Vi
bWlzc2lvblJlcXVlc3QgKnJlcXVlc3QpOwpAQCAtMzUyLDQyICszMDEsMjMgQEAgc3RydWN0IF9X
ZWJLaXRXZWJWaWV3Q2xhc3MgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR1Rsc0NlcnRpZmljYXRlRmxhZ3MgICAgICAgICBlcnJvcnMpOwogICAgIGdi
b29sZWFuICAgKCogc2hvd19ub3RpZmljYXRpb24pICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAg
ICAgICAgICAgICAgICp3ZWJfdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdlYktpdE5vdGlmaWNhdGlvbiAgICAgICAgICAqbm90aWZpY2F0aW9u
KTsKLQotI2lmIFBMQVRGT1JNKEdUSykKICAgICBnYm9vbGVhbiAgICgqIHJ1bl9jb2xvcl9jaG9v
c2VyKSAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRDb2xv
ckNob29zZXJSZXF1ZXN0ICAgKnJlcXVlc3QpOwogICAgIGdib29sZWFuICAgKCogc2hvd19vcHRp
b25fbWVudSkgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAgICp3ZWJfdmll
dywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka1Jl
Y3RhbmdsZSAgICAgICAgICAgICAgICAqcmVjdGFuZ2xlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0T3B0aW9uTWVudSAgICAgICAgICAgICpt
ZW51KTsKLSNlbmRpZgotCiAgICAgdm9pZCAgICAgICAoKiB3ZWJfcHJvY2Vzc190ZXJtaW5hdGVk
KSAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAgKndlYl92aWV3LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uIHJlYXNvbik7CiAgICAgZ2Jvb2xlYW4gICAoKiB1c2VyX21lc3NhZ2Vf
cmVjZWl2ZWQpICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAgKndlYl92aWV3LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNl
ck1lc3NhZ2UgICAgICAgICAgICptZXNzYWdlKTsKIAotI2lmIFBMQVRGT1JNKFdQRSkKLSAgICBn
Ym9vbGVhbiAgICgqIHNob3dfb3B0aW9uX21lbnUpICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcg
ICAgICAgICAgICAgICAqd2ViX3ZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXZWJLaXRPcHRpb25NZW51ICAgICAgICAgICAgKm1lbnUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRSZWN0YW5n
bGUgICAgICAgICAgICAgKnJlY3RhbmdsZSk7Ci0jZW5kaWYKLQogICAgIC8qPCBwcml2YXRlID4q
LwogICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOwotCi0jaWYgUExBVEZPUk0o
V1BFKQotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOwotICAgIHZvaWQgKCpf
d2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykg
KHZvaWQpOwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkNCkgKHZvaWQpOwotICAgIHZvaWQg
KCpfd2Via2l0X3Jlc2VydmVkNSkgKHZvaWQpOwotI2VuZGlmCiB9OwogCiBXRUJLSVRfQVBJIEdU
eXBlCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh2b2lkKTsKIAotI2lmIFBMQVRGT1JNKEdUSykKIFdFQktJVF9BUEkgR3RrV2lkZ2V0ICoKIHdl
YmtpdF93ZWJfdmlld19uZXcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQp
OwogCkBAIC00MDIsMzEgKzMzMiw2IEBAIHdlYmtpdF93ZWJfdmlld19uZXdfd2l0aF9yZWxhdGVk
X3ZpZXcgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcKIAogV0VCS0lUX0FQSSBHdGtXaWRn
ZXQgKgogd2Via2l0X3dlYl92aWV3X25ld193aXRoX3VzZXJfY29udGVudF9tYW5hZ2VyICAgICAg
ICAoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyICAqdXNlcl9jb250ZW50X21hbmFnZXIpOwotI2Vu
ZGlmCi0KLSNpZiBQTEFURk9STShXUEUpCi1XRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgotd2Vi
a2l0X3dlYl92aWV3X25ldyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0
V2ViVmlld0JhY2tlbmQgICAgICAqYmFja2VuZCk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0V2ViVmll
dyAqCi13ZWJraXRfd2ViX3ZpZXdfbmV3X3dpdGhfY29udGV4dCAgICAgICAgICAgICAgICAgICAg
IChXZWJLaXRXZWJWaWV3QmFja2VuZCAgICAgICpiYWNrZW5kLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViQ29udGV4dCAgICAg
ICAgICAqY29udGV4dCk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0V2ViVmlldyAqCi13ZWJraXRfd2Vi
X3ZpZXdfbmV3X3dpdGhfc2V0dGluZ3MgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3
QmFja2VuZCAgICAgICpiYWNrZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViS2l0U2V0dGluZ3MgICAgICAgICAgICAqc2V0dGluZ3Mp
OwotCi1XRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgotd2Via2l0X3dlYl92aWV3X25ld193aXRo
X3JlbGF0ZWRfdmlldyAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlld0JhY2tlbmQgICAgICAq
YmFja2VuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKLQotV0VCS0lUX0FQ
SSBXZWJLaXRXZWJWaWV3ICoKLXdlYmtpdF93ZWJfdmlld19uZXdfd2l0aF91c2VyX2NvbnRlbnRf
bWFuYWdlciAgICAgICAgKFdlYktpdFdlYlZpZXdCYWNrZW5kICAgICAgKmJhY2tlbmQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRV
c2VyQ29udGVudE1hbmFnZXIgICp1c2VyX2NvbnRlbnRfbWFuYWdlcik7Ci0KLVdFQktJVF9BUEkg
V2ViS2l0V2ViVmlld0JhY2tlbmQgKgotd2Via2l0X3dlYl92aWV3X2dldF9iYWNrZW5kICAgICAg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcp
OwotI2VuZGlmCiAKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF93ZWJfdmlld19pc19lcGhl
bWVyYWwgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAg
KndlYl92aWV3KTsKQEAgLTUyNiwxMCArNDMxLDggQEAgd2Via2l0X3dlYl92aWV3X2dvX3RvX2Jh
Y2tfZm9yd2FyZF9saXN0X2l0ZW0gICAgICAgICAoV2ViS2l0V2ViVmlldwogV0VCS0lUX0FQSSBj
b25zdCBnY2hhciAqCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3VyaSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAKLSNpZiBQ
TEFURk9STShHVEspCiBXRUJLSVRfQVBJIGNhaXJvX3N1cmZhY2VfdCAqCiB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X2Zhdmljb24gICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAg
ICAgICAgICAgICp3ZWJfdmlldyk7Ci0jZW5kaWYKIAogV0VCS0lUX0FQSSBjb25zdCBnY2hhciAq
CiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2N1c3RvbV9jaGFyc2V0ICAgICAgICAgICAgICAgICAgIChX
ZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CkBAIC01NzgsMTAgKzQ4MSw4IEBA
IHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRpbmdfY29tbWFuZF93aXRoX2FyZ3VtZW50KFdl
YktpdFdlYlZpZXcKIFdFQktJVF9BUEkgV2ViS2l0RmluZENvbnRyb2xsZXIgKgogd2Via2l0X3dl
Yl92aWV3X2dldF9maW5kX2NvbnRyb2xsZXIgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmll
dyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCi0jaWYgUExBVEZPUk0oR1RLKQogV0VCS0lUX0RF
UFJFQ0FURUQgSlNHbG9iYWxDb250ZXh0UmVmCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2phdmFzY3Jp
cHRfZ2xvYmFsX2NvbnRleHQgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJf
dmlldyk7Ci0jZW5kaWYKIAogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfd2ViX3ZpZXdfcnVuX2ph
dmFzY3JpcHQgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAg
ICp3ZWJfdmlldywKQEAgLTYzMCwxMCArNTMxLDggQEAgd2Via2l0X3dlYl92aWV3X3J1bl9qYXZh
c2NyaXB0X2Zyb21fZ3Jlc291cmNlX2ZpbmlzaCAoV2ViS2l0V2ViVmlldwogV0VCS0lUX0FQSSBX
ZWJLaXRXZWJSZXNvdXJjZSAqCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fcmVzb3VyY2UgICAg
ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAK
LSNpZiBQTEFURk9STShHVEspCiBXRUJLSVRfQVBJIFdlYktpdFdlYkluc3BlY3RvciAqCiB3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X2luc3BlY3RvciAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7Ci0jZW5kaWYKIAogV0VCS0lUX0FQSSBnYm9v
bGVhbgogd2Via2l0X3dlYl92aWV3X2Nhbl9zaG93X21pbWVfdHlwZSAgICAgICAgICAgICAgICAg
ICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCkBAIC02NzIsOCArNTcxLDYg
QEAgV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dlYl92aWV3X2dldF90bHNfaW5mbyAgICAg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
VGxzQ2VydGlmaWNhdGUgICAgICAgICAgKipjZXJ0aWZpY2F0ZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUbHNDZXJ0aWZpY2F0ZUZsYWdz
ICAgICAgKmVycm9ycyk7Ci0KLSNpZiBQTEFURk9STShHVEspCiBXRUJLSVRfQVBJIHZvaWQKIHdl
YmtpdF93ZWJfdmlld19nZXRfc25hcHNob3QgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktp
dFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0U25hcHNob3RSZWdpb24gICAgICAg
cmVnaW9uLApAQCAtNjg2LDEyICs1ODMsMTAgQEAgV0VCS0lUX0FQSSBjYWlyb19zdXJmYWNlX3Qg
Kgogd2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdF9maW5pc2ggICAgICAgICAgICAgICAgICAo
V2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgICAgICAgICAg
ICAgICpyZXN1bHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgICAgICAgKiplcnJvcik7Ci0jZW5kaWYKIAog
V0VCS0lUX0FQSSBXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIgKgogd2Via2l0X3dlYl92aWV3X2dl
dF91c2VyX2NvbnRlbnRfbWFuYWdlciAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAg
ICAgICAqd2ViX3ZpZXcpOwogCi0jaWYgUExBVEZPUk0oR1RLKQogV0VCS0lUX0FQSSB2b2lkCiB3
ZWJraXRfd2ViX3ZpZXdfc2V0X2JhY2tncm91bmRfY29sb3IgICAgICAgICAgICAgICAgIChXZWJL
aXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdka1JHQkEgICAgICAgICAgICAg
KnJnYmEpOwpAQCAtNjk5LDE2ICs1OTQsNiBAQCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2JhY2tncm91
bmRfY29sb3IgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3CiBXRUJLSVRfQVBJIHZvaWQK
IHdlYmtpdF93ZWJfdmlld19nZXRfYmFja2dyb3VuZF9jb2xvciAgICAgICAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrUkdCQSAgICAgICAgICAgICAgICAg
ICAqcmdiYSk7Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKFdQRSkKLVdFQktJVF9BUEkgdm9pZAot
d2Via2l0X3dlYl92aWV3X3NldF9iYWNrZ3JvdW5kX2NvbG9yICAgICAgICAgICAgICAgICAoV2Vi
S2l0V2ViVmlldyAgICAgICAgICAgICAgICp3ZWJfdmlldywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdENvbG9yICAgICAgICAgICAg
ICAgICAqY29sb3IpOwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3ZpZXdfZ2V0X2JhY2tn
cm91bmRfY29sb3IgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAg
KndlYl92aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViS2l0Q29sb3IgICAgICAgICAgICAgICAgICpjb2xvcik7Ci0jZW5kaWYKIAog
V0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dlYl92aWV3X2lzX2VkaXRhYmxlICAgICAgICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwpA
QCAtNzI3LDE4ICs2MTIsNiBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJfdmlld19yZXN0
b3JlX3Nlc3Npb25fc3RhdGUgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAg
ICAgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZSAqc3RhdGUpOwogCi0jaWYgUExB
VEZPUk0oV1BFKQotV0VCS0lUX0FQSSBndWludAotd2Via2l0X3dlYl92aWV3X2FkZF9mcmFtZV9k
aXNwbGF5ZWRfY2FsbGJhY2sgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAgICp3
ZWJfdmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYktpdEZyYW1lRGlzcGxheWVkQ2FsbGJhY2sgY2FsbGJhY2ssCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAg
ICAgICAgICAgICAgICAgIHVzZXJfZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdEZXN0cm95Tm90aWZ5ICAgICAgICAgICAgICAgZGVz
dHJveV9ub3RpZnkpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19yZW1vdmVf
ZnJhbWVfZGlzcGxheWVkX2NhbGxiYWNrICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAg
ICAqd2ViX3ZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgICAgIGlkKTsKLSNlbmRpZgotCiBX
RUJLSVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJfdmlld19zZW5kX21lc3NhZ2VfdG9fcGFnZSAgICAg
ICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNl
ck1lc3NhZ2UgICAgICAgICAqbWVzc2FnZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3U2Vzc2lvblN0YXRlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43M2Y0YTRhNjk5NjcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdTZXNz
aW9uU3RhdGUuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEln
YWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQo
V0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNh
biBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRXZWJWaWV3
U2Vzc2lvblN0YXRlX2gKKyNkZWZpbmUgV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZV9oCisKKyNp
bmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5o
PgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfV0VCX1ZJRVdfU0VTU0lP
Tl9TVEFURSAod2Via2l0X3dlYl92aWV3X3Nlc3Npb25fc3RhdGVfZ2V0X3R5cGUoKSkKKwordHlw
ZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUgV2ViS2l0V2ViVmlld1Nlc3Np
b25TdGF0ZTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3dlYl92aWV3X3Nlc3Npb25fc3Rh
dGVfZ2V0X3R5cGUgICh2b2lkKTsKKworV0VCS0lUX0FQSSBXZWJLaXRXZWJWaWV3U2Vzc2lvblN0
YXRlICoKK3dlYmtpdF93ZWJfdmlld19zZXNzaW9uX3N0YXRlX25ldyAgICAgICAoR0J5dGVzICpk
YXRhKTsKKworV0VCS0lUX0FQSSBXZWJLaXRXZWJWaWV3U2Vzc2lvblN0YXRlICoKK3dlYmtpdF93
ZWJfdmlld19zZXNzaW9uX3N0YXRlX3JlZiAgICAgICAoV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0
ZSAqc3RhdGUpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19zZXNzaW9uX3N0
YXRlX3VucmVmICAgICAoV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZSAqc3RhdGUpOworCitXRUJL
SVRfQVBJIEdCeXRlcyAqCit3ZWJraXRfd2ViX3ZpZXdfc2Vzc2lvbl9zdGF0ZV9zZXJpYWxpemUg
KFdlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUgKnN0YXRlKTsKKworR19FTkRfREVDTFMKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YnNpdGVEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYnNp
dGVEYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41YzI0N2I1
MmQwMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYnNpdGVEYXRhLmgKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYm
ICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Vi
a2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2Vi
S2l0V2Vic2l0ZURhdGFfaAorI2RlZmluZSBXZWJLaXRXZWJzaXRlRGF0YV9oCisKKyNpbmNsdWRl
IDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitH
X0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfV0VCU0lURV9EQVRBICh3ZWJraXRf
d2Vic2l0ZV9kYXRhX2dldF90eXBlKCkpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJzaXRl
RGF0YSBXZWJLaXRXZWJzaXRlRGF0YTsKKworLyoqCisgKiBXZWJLaXRXZWJzaXRlRGF0YVR5cGVz
OgorICogQFdFQktJVF9XRUJTSVRFX0RBVEFfTUVNT1JZX0NBQ0hFOiBNZW1vcnkgY2FjaGUuCisg
KiBAV0VCS0lUX1dFQlNJVEVfREFUQV9ESVNLX0NBQ0hFOiBIVFRQIGRpc2sgY2FjaGUuCisgKiBA
V0VCS0lUX1dFQlNJVEVfREFUQV9PRkZMSU5FX0FQUExJQ0FUSU9OX0NBQ0hFOiBPZmZsaW5lIHdl
YiBhcHBsaWNhdGlvbiBjYWNoZS4KKyAqIEBXRUJLSVRfV0VCU0lURV9EQVRBX1NFU1NJT05fU1RP
UkFHRTogU2Vzc2lvbiBzdG9yYWdlIGRhdGEuCisgKiBAV0VCS0lUX1dFQlNJVEVfREFUQV9MT0NB
TF9TVE9SQUdFOiBMb2NhbCBzdG9yYWdlIGRhdGEuCisgKiBAV0VCS0lUX1dFQlNJVEVfREFUQV9X
RUJTUUxfREFUQUJBU0VTOiBXZWJTUUwgZGF0YWJhc2VzLiBEZXByZWNhdGVkIDIuMjQKKyAqIEBX
RUJLSVRfV0VCU0lURV9EQVRBX0lOREVYRUREQl9EQVRBQkFTRVM6IEluZGV4ZWREQiBkYXRhYmFz
ZXMuCisgKiBAV0VCS0lUX1dFQlNJVEVfREFUQV9QTFVHSU5fREFUQTogUGx1Z2lucyBkYXRhLiBE
ZXByZWNhdGVkIDIuMzIKKyAqIEBXRUJLSVRfV0VCU0lURV9EQVRBX0NPT0tJRVM6IENvb2tpZXMu
CisgKiBAV0VCS0lUX1dFQlNJVEVfREFUQV9ERVZJQ0VfSURfSEFTSF9TQUxUOiBIYXNoIHNhbHQg
dXNlZCB0byBnZW5lcmF0ZSB0aGUgZGV2aWNlIGlkcyB1c2VkIGJ5IHdlYnBhZ2VzLiBTaW5jZSAy
LjI0CisgKiBAV0VCS0lUX1dFQlNJVEVfREFUQV9IU1RTX0NBQ0hFOiBIU1RTIGNhY2hlLiBTaW5j
ZSAyLjI2CisgKiBAV0VCS0lUX1dFQlNJVEVfREFUQV9JVFA6IEludGVsbGlnZW50IFRyYWNraW5n
IFByZXZlbnRpb24gZGF0YS4gU2luY2UgMi4zMC4KKyAqIEBXRUJLSVRfV0VCU0lURV9EQVRBX1NF
UlZJQ0VfV09SS0VSX1JFR0lTVFJBVElPTlM6IFNlcnZpY2Ugd29ya2VyIHJlZ2lzdHJhdGlvbnMu
IFNpbmNlIDIuMzAKKyAqIEBXRUJLSVRfV0VCU0lURV9EQVRBX0RPTV9DQUNIRTogRE9NIChDYWNo
ZVN0b3JhZ2UpIGNhY2hlLiBTaW5jZSAyLjMwCisgKiBAV0VCS0lUX1dFQlNJVEVfREFUQV9BTEw6
IEFsbCB0eXBlcy4KKyAqCisgKiBFbnVtIHZhbHVlcyB3aXRoIGZsYWdzIHJlcHJlc2VudGluZyB0
eXBlcyBvZiBXZWJzaXRlIGRhdGEuCisgKgorICogU2luY2U6IDIuMTYKKyAqLwordHlwZWRlZiBl
bnVtIHsKKyAgICBXRUJLSVRfV0VCU0lURV9EQVRBX01FTU9SWV9DQUNIRSAgICAgICAgICAgICAg
ICAgPSAxIDw8IDAsCisgICAgV0VCS0lUX1dFQlNJVEVfREFUQV9ESVNLX0NBQ0hFICAgICAgICAg
ICAgICAgICAgID0gMSA8PCAxLAorICAgIFdFQktJVF9XRUJTSVRFX0RBVEFfT0ZGTElORV9BUFBM
SUNBVElPTl9DQUNIRSAgICA9IDEgPDwgMiwKKyAgICBXRUJLSVRfV0VCU0lURV9EQVRBX1NFU1NJ
T05fU1RPUkFHRSAgICAgICAgICAgICAgPSAxIDw8IDMsCisgICAgV0VCS0lUX1dFQlNJVEVfREFU
QV9MT0NBTF9TVE9SQUdFICAgICAgICAgICAgICAgID0gMSA8PCA0LAorICAgIFdFQktJVF9XRUJT
SVRFX0RBVEFfV0VCU1FMX0RBVEFCQVNFUyAgICAgICAgICAgICA9IDEgPDwgNSwKKyAgICBXRUJL
SVRfV0VCU0lURV9EQVRBX0lOREVYRUREQl9EQVRBQkFTRVMgICAgICAgICAgPSAxIDw8IDYsCisg
ICAgV0VCS0lUX1dFQlNJVEVfREFUQV9QTFVHSU5fREFUQSAgICAgICAgICAgICAgICAgID0gMSA8
PCA3LAorICAgIFdFQktJVF9XRUJTSVRFX0RBVEFfQ09PS0lFUyAgICAgICAgICAgICAgICAgICAg
ICA9IDEgPDwgOCwKKyAgICBXRUJLSVRfV0VCU0lURV9EQVRBX0RFVklDRV9JRF9IQVNIX1NBTFQg
ICAgICAgICAgPSAxIDw8IDksCisgICAgV0VCS0lUX1dFQlNJVEVfREFUQV9IU1RTX0NBQ0hFICAg
ICAgICAgICAgICAgICAgID0gMSA8PCAxMCwKKyAgICBXRUJLSVRfV0VCU0lURV9EQVRBX0lUUCAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDExLAorICAgIFdFQktJVF9XRUJTSVRFX0RB
VEFfU0VSVklDRV9XT1JLRVJfUkVHSVNUUkFUSU9OUyA9IDEgPDwgMTIsCisgICAgV0VCS0lUX1dF
QlNJVEVfREFUQV9ET01fQ0FDSEUgICAgICAgICAgICAgICAgICAgID0gMSA8PCAxMywKKyAgICBX
RUJLSVRfV0VCU0lURV9EQVRBX0FMTCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAoMSA8PCAx
NCkgLSAxCit9IFdlYktpdFdlYnNpdGVEYXRhVHlwZXM7CisKK1dFQktJVF9BUEkgR1R5cGUKK3dl
YmtpdF93ZWJzaXRlX2RhdGFfZ2V0X3R5cGUgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2Vi
S2l0V2Vic2l0ZURhdGEgKgord2Via2l0X3dlYnNpdGVfZGF0YV9yZWYgICAgICAgICAgIChXZWJL
aXRXZWJzaXRlRGF0YSAgICAgKndlYnNpdGVfZGF0YSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X3dlYnNpdGVfZGF0YV91bnJlZiAgICAgICAgIChXZWJLaXRXZWJzaXRlRGF0YSAgICAgKndl
YnNpdGVfZGF0YSk7CisKK1dFQktJVF9BUEkgY29uc3QgY2hhciAqCit3ZWJraXRfd2Vic2l0ZV9k
YXRhX2dldF9uYW1lICAgICAgKFdlYktpdFdlYnNpdGVEYXRhICAgICAqd2Vic2l0ZV9kYXRhKTsK
KworV0VCS0lUX0FQSSBXZWJLaXRXZWJzaXRlRGF0YVR5cGVzCit3ZWJraXRfd2Vic2l0ZV9kYXRh
X2dldF90eXBlcyAgICAgKFdlYktpdFdlYnNpdGVEYXRhICAgICAqd2Vic2l0ZV9kYXRhKTsKKwor
V0VCS0lUX0FQSSBndWludDY0Cit3ZWJraXRfd2Vic2l0ZV9kYXRhX2dldF9zaXplICAgICAgKFdl
YktpdFdlYnNpdGVEYXRhICAgICAqd2Vic2l0ZV9kYXRhLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRXZWJzaXRlRGF0YVR5cGVzIHR5cGVzKTsKKworR19FTkRfREVD
TFMKKworI2VuZGlmIC8qIFdlYktpdFdlYnNpdGVEYXRhX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vic2l0ZURhdGFBY2Nlc3NQZXJtaXNz
aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJz
aXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi43ODQ3MzdmYzRhZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYnNpdGVEYXRhQWNjZXNzUGVybWlzc2lv
blJlcXVlc3QuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZiAhZGVmaW5lZChf
X1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNl
cnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4i
CisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRXZWJzaXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1
ZXN0X2gKKyNkZWZpbmUgV2ViS2l0V2Vic2l0ZURhdGFBY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdF9o
CisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVm
aW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfV0VCU0lURV9E
QVRBX0FDQ0VTU19QRVJNSVNTSU9OX1JFUVVFU1QgICAgICAgICAgICAod2Via2l0X3dlYnNpdGVf
ZGF0YV9hY2Nlc3NfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJ
VF9XRUJTSVRFX0RBVEFfQUNDRVNTX1BFUk1JU1NJT05fUkVRVUVTVChvYmopICAgICAgICAgICAg
KEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9XRUJTSVRFX0RB
VEFfQUNDRVNTX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0V2Vic2l0ZURhdGFBY2Nlc3NQZXJt
aXNzaW9uUmVxdWVzdCkpCisjZGVmaW5lIFdFQktJVF9JU19XRUJTSVRFX0RBVEFfQUNDRVNTX1BF
Uk1JU1NJT05fUkVRVUVTVChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBF
KChvYmopLCBXRUJLSVRfVFlQRV9XRUJTSVRFX0RBVEFfQUNDRVNTX1BFUk1JU1NJT05fUkVRVUVT
VCkpCisjZGVmaW5lIFdFQktJVF9XRUJTSVRFX0RBVEFfQUNDRVNTX1BFUk1JU1NJT05fUkVRVUVT
VF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJL
SVRfVFlQRV9XRUJTSVRFX0RBVEFfQUNDRVNTX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0V2Vi
c2l0ZURhdGFBY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdENsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lT
X1dFQlNJVEVfREFUQV9BQ0NFU1NfUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAoR19U
WVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQlNJVEVfREFUQV9B
Q0NFU1NfUEVSTUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX1dFQlNJVEVfREFUQV9B
Q0NFU1NfUEVSTUlTU0lPTl9SRVFVRVNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNF
X0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1dFQlNJVEVfREFUQV9BQ0NFU1NfUEVSTUlT
U0lPTl9SRVFVRVNULCBXZWJLaXRXZWJzaXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0Q2xh
c3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2Vic2l0ZURhdGFBY2Nlc3NQZXJtaXNzaW9u
UmVxdWVzdCAgICAgICAgV2ViS2l0V2Vic2l0ZURhdGFBY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdDsK
K3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJzaXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0
Q2xhc3MgICBXZWJLaXRXZWJzaXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2Vic2l0ZURhdGFBY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGUgV2ViS2l0V2Vic2l0ZURhdGFBY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CisK
K3N0cnVjdCBfV2ViS2l0V2Vic2l0ZURhdGFBY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdCB7CisgICAg
R09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRXZWJzaXRl
RGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBf
V2ViS2l0V2Vic2l0ZURhdGFBY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdENsYXNzIHsKKyAgICBHT2Jq
ZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgdm9pZCAo
Kl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQx
KSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9p
ZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3
ZWJraXRfd2Vic2l0ZV9kYXRhX2FjY2Vzc19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUgICAg
ICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBjb25zdCBjaGFyICoKK3dlYmtpdF93ZWJz
aXRlX2RhdGFfYWNjZXNzX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfcmVxdWVzdGluZ19kb21haW4g
KFdlYktpdFdlYnNpdGVEYXRhQWNjZXNzUGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3QpOworCitX
RUJLSVRfQVBJIGNvbnN0IGNoYXIgKgord2Via2l0X3dlYnNpdGVfZGF0YV9hY2Nlc3NfcGVybWlz
c2lvbl9yZXF1ZXN0X2dldF9jdXJyZW50X2RvbWFpbiAgICAoV2ViS2l0V2Vic2l0ZURhdGFBY2Nl
c3NQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJzaXRl
RGF0YU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
c2l0ZURhdGFNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li42MDY4YjVmNjAwM2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5oCkBAIC0wLDAgKzEsMjQ4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIsMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJL
SVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3Ig
Ik9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2Vu
ZGlmCisKKyNpZm5kZWYgV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyX2gKKyNkZWZpbmUgV2ViS2l0
V2Vic2l0ZURhdGFNYW5hZ2VyX2gKKworI2luY2x1ZGUgPGdpby9naW8uaD4KKyNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdENvb2tpZU1hbmFnZXIuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERl
ZmluZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdE1lbW9yeVByZXNzdXJlU2V0dGluZ3Mu
aD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdE5ldHdvcmtQcm94eVNldHRpbmdzLmg+CisjaW5j
bHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJzaXRlRGF0YS5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNk
ZWZpbmUgV0VCS0lUX1RZUEVfV0VCU0lURV9EQVRBX01BTkFHRVIgICAgICAgICAgICAod2Via2l0
X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9XRUJTSVRF
X0RBVEFfTUFOQUdFUihvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU
KChvYmopLCBXRUJLSVRfVFlQRV9XRUJTSVRFX0RBVEFfTUFOQUdFUiwgV2ViS2l0V2Vic2l0ZURh
dGFNYW5hZ2VyKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1dFQlNJVEVfREFUQV9NQU5BR0VSKG9iaikg
ICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1dF
QlNJVEVfREFUQV9NQU5BR0VSKSkKKyNkZWZpbmUgV0VCS0lUX1dFQlNJVEVfREFUQV9NQU5BR0VS
X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJ
VF9UWVBFX1dFQlNJVEVfREFUQV9NQU5BR0VSLCBXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXJDbGFz
cykpCisjZGVmaW5lIFdFQktJVF9JU19XRUJTSVRFX0RBVEFfTUFOQUdFUl9DTEFTUyhrbGFzcykg
KEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9XRUJTSVRFX0RB
VEFfTUFOQUdFUikpCisjZGVmaW5lIFdFQktJVF9XRUJTSVRFX0RBVEFfTUFOQUdFUl9HRVRfQ0xB
U1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9X
RUJTSVRFX0RBVEFfTUFOQUdFUiwgV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyQ2xhc3MpKQorCisv
KioKKyAqIFdlYktpdFRMU0Vycm9yc1BvbGljeToKKyAqIEBXRUJLSVRfVExTX0VSUk9SU19QT0xJ
Q1lfSUdOT1JFOiBJZ25vcmUgVExTIGVycm9ycy4KKyAqIEBXRUJLSVRfVExTX0VSUk9SU19QT0xJ
Q1lfRkFJTDogVExTIGVycm9ycyB3aWxsIGVtaXQKKyAqICAgI1dlYktpdFdlYlZpZXc6OmxvYWQt
ZmFpbGVkLXdpdGgtdGxzLWVycm9ycyBhbmQsIGlmIHRoZSBzaWduYWwgaXMgaGFuZGxlZCwKKyAq
ICAgZmluaXNoIHRoZSBsb2FkLiBJbiBjYXNlIHRoZSBzaWduYWwgaXMgbm90IGhhbmRsZWQsCisg
KiAgICNXZWJLaXRXZWJWaWV3Ojpsb2FkLWZhaWxlZCBpcyBlbWl0dGVkIGJlZm9yZSB0aGUgbG9h
ZCBmaW5pc2hlcy4KKyAqCisgKiBFbnVtIHZhbHVlcyB1c2VkIHRvIGRlbm90ZSB0aGUgVExTIGVy
cm9ycyBwb2xpY3kuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX1RMU19FUlJPUlNf
UE9MSUNZX0lHTk9SRSwKKyAgICBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfRkFJTAorfSBXZWJL
aXRUTFNFcnJvcnNQb2xpY3k7CisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJzaXRlRGF0YU1h
bmFnZXIgICAgICAgIFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlcjsKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXJDbGFzcyAgIFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlckNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlclByaXZhdGUgV2Vi
S2l0V2Vic2l0ZURhdGFNYW5hZ2VyUHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRXZWJzaXRlRGF0
YU1hbmFnZXIgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisg
ICAgV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBf
V2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyQ2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRf
Y2xhc3M7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZl
ZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF93ZWJzaXRlX2Rh
dGFfbWFuYWdlcl9nZXRfdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9p
ZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyICoKK3dlYmtpdF93ZWJz
aXRlX2RhdGFfbWFuYWdlcl9uZXcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY29uc3QgZ2NoYXIgICAgICAgICAgICAgICpmaXJzdF9vcHRpb25fbmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLi4uKTsKK1dFQktJVF9BUEkgV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyICoKK3dlYmtp
dF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9uZXdfZXBoZW1lcmFsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJzaXRlX2Rh
dGFfbWFuYWdlcl9pc19lcGhlbWVyYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2Vi
S2l0V2Vic2l0ZURhdGFNYW5hZ2VyKiBtYW5hZ2VyKTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hh
ciAqCit3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X2Jhc2VfZGF0YV9kaXJlY3Rvcnkg
ICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciAqbWFuYWdlcik7CisK
K1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dl
dF9iYXNlX2NhY2hlX2RpcmVjdG9yeSAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJzaXRlRGF0
YU1hbmFnZXIgKm1hbmFnZXIpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF93
ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfbG9jYWxfc3RvcmFnZV9kaXJlY3RvcnkgICAgICAgICAg
ICAgICAoV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyICptYW5hZ2VyKTsKKworV0VCS0lUX0FQSSBj
b25zdCBnY2hhciAqCit3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X2Rpc2tfY2FjaGVf
ZGlyZWN0b3J5ICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciAqbWFu
YWdlcik7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X3dlYnNpdGVfZGF0YV9t
YW5hZ2VyX2dldF9vZmZsaW5lX2FwcGxpY2F0aW9uX2NhY2hlX2RpcmVjdG9yeSAgIChXZWJLaXRX
ZWJzaXRlRGF0YU1hbmFnZXIgKm1hbmFnZXIpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoK
K3dlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfaW5kZXhlZGRiX2RpcmVjdG9yeSAgICAg
ICAgICAgICAgICAgICAoV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyICptYW5hZ2VyKTsKKworV0VC
S0lUX0RFUFJFQ0FURUQgY29uc3QgZ2NoYXIgKgord2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2Vy
X2dldF93ZWJzcWxfZGlyZWN0b3J5ICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJzaXRl
RGF0YU1hbmFnZXIgKm1hbmFnZXIpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dlYmtp
dF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfaHN0c19jYWNoZV9kaXJlY3RvcnkgICAgICAgICAg
ICAgICAgICAoV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyICptYW5hZ2VyKTsKKworV0VCS0lUX0FQ
SSBjb25zdCBnY2hhciAqCit3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X2l0cF9kaXJl
Y3RvcnkgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciAq
bWFuYWdlcik7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X3dlYnNpdGVfZGF0
YV9tYW5hZ2VyX2dldF9zZXJ2aWNlX3dvcmtlcl9yZWdpc3RyYXRpb25zX2RpcmVjdG9yeShXZWJL
aXRXZWJzaXRlRGF0YU1hbmFnZXIgKm1hbmFnZXIpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFy
ICoKK3dlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfZG9tX2NhY2hlX2RpcmVjdG9yeSAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyICptYW5hZ2VyKTsKKwor
V0VCS0lUX0FQSSBXZWJLaXRDb29raWVNYW5hZ2VyICoKK3dlYmtpdF93ZWJzaXRlX2RhdGFfbWFu
YWdlcl9nZXRfY29va2llX21hbmFnZXIgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2Vi
c2l0ZURhdGFNYW5hZ2VyICptYW5hZ2VyKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2Vi
c2l0ZV9kYXRhX21hbmFnZXJfc2V0X2l0cF9lbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciAqbWFuYWdlciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jv
b2xlYW4gICAgICAgICAgICAgICAgICBlbmFibGVkKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgor
d2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9pdHBfZW5hYmxlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIgKm1hbmFnZXIpOworCitXRUJL
SVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9zZXRfcGVyc2lzdGVudF9j
cmVkZW50aWFsX3N0b3JhZ2VfZW5hYmxlZCAoV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyICptYW5h
Z2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgIGVuYWJsZWQpOwor
CitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X3Bl
cnNpc3RlbnRfY3JlZGVudGlhbF9zdG9yYWdlX2VuYWJsZWQgKFdlYktpdFdlYnNpdGVEYXRhTWFu
YWdlciAqbWFuYWdlcik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYnNpdGVfZGF0YV9t
YW5hZ2VyX3NldF90bHNfZXJyb3JzX3BvbGljeSAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJzaXRlRGF0YU1hbmFnZXIgKm1hbmFnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFRMU0Vycm9y
c1BvbGljeSAgICAgcG9saWN5KTsKKworV0VCS0lUX0FQSSBXZWJLaXRUTFNFcnJvcnNQb2xpY3kK
K3dlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfdGxzX2Vycm9yc19wb2xpY3kgICAgICAg
ICAgICAgICAgICAgICAoV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyICptYW5hZ2VyKTsKKworV0VC
S0lUX0FQSSB2b2lkCit3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfc2V0X25ldHdvcmtfcHJv
eHlfc2V0dGluZ3MgICAgICAgICAgICAgICAgKFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciAqbWFu
YWdlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViS2l0TmV0d29ya1Byb3h5TW9kZSAgICBwcm94eV9tb2Rl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXZWJLaXROZXR3b3JrUHJveHlTZXR0aW5ncyAqcHJveHlfc2V0dGlu
Z3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9mZXRj
aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2Vic2l0ZURhdGFN
YW5hZ2VyICptYW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJzaXRlRGF0YVR5cGVzICAg
IHR5cGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHQ2FuY2VsbGFibGUgICAgICAgICAgICAgKmNhbmNlbGxh
YmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZWFkeUNhbGxiYWNrICAgICAgIGNhbGxiYWNrLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBncG9pbnRlciAgICAgICAgICAgICAgICAgIHVzZXJfZGF0YSk7CisKK1dF
QktJVF9BUEkgR0xpc3QgKgord2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2ZldGNoX2Zpbmlz
aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIg
Km1hbmFnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAgICAgICAgICAgICAqcmVzdWx0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgICAgICAqKmVycm9yKTsKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX3JlbW92ZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIgKm1hbmFn
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYnNpdGVEYXRhVHlwZXMgICAgdHlwZXMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdMaXN0ICAgICAgICAgICAgICAgICAgICAqd2Vic2l0ZV9kYXRhLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHQ2FuY2VsbGFibGUgICAgICAgICAgICAgKmNhbmNlbGxhYmxlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHQXN5bmNSZWFkeUNhbGxiYWNrICAgICAgIGNhbGxiYWNrLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
cG9pbnRlciAgICAgICAgICAgICAgICAgIHVzZXJfZGF0YSk7CitXRUJLSVRfQVBJIGdib29sZWFu
Cit3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfcmVtb3ZlX2ZpbmlzaCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciAqbWFuYWdlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0FzeW5jUmVzdWx0ICAgICAgICAgICAgICpyZXN1bHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdFcnJvciAgICAgICAgICAgICAgICAgICoqZXJyb3IpOworCitXRUJLSVRfQVBJIHZvaWQKK3dl
YmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9jbGVhciAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciAqbWFuYWdlciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYktpdFdlYnNpdGVEYXRhVHlwZXMgICAgdHlwZXMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
VGltZVNwYW4gICAgICAgICAgICAgICAgIHRpbWVzcGFuLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NhbmNl
bGxhYmxlICAgICAgICAgICAgICpjYW5jZWxsYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jl
YWR5Q2FsbGJhY2sgICAgICAgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAg
ICAgICAgICAgICAgIHVzZXJfZGF0YSk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93
ZWJzaXRlX2RhdGFfbWFuYWdlcl9jbGVhcl9maW5pc2ggICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciAqbWFuYWdlciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdBc3luY1Jlc3VsdCAgICAgICAgICAgICAqcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9y
ICAgICAgICAgICAgICAgICAgKiplcnJvcik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dl
YnNpdGVfZGF0YV9tYW5hZ2VyX3NldF9tZW1vcnlfcHJlc3N1cmVfc2V0dGluZ3MgICAgICAgICAg
ICAgICAoV2ViS2l0TWVtb3J5UHJlc3N1cmVTZXR0aW5ncyAqc2V0dGluZ3MpOworCisKKyNkZWZp
bmUgV0VCS0lUX1RZUEVfSVRQX0ZJUlNUX1BBUlRZICAgKHdlYmtpdF9pdHBfZmlyc3RfcGFydHlf
Z2V0X3R5cGUoKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdElUUEZpcnN0UGFydHkgV2ViS2l0
SVRQRmlyc3RQYXJ0eTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X2l0cF9maXJzdF9wYXJ0
eV9nZXRfdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBX
ZWJLaXRJVFBGaXJzdFBhcnR5ICoKK3dlYmtpdF9pdHBfZmlyc3RfcGFydHlfcmVmICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0SVRQRmlyc3RQYXJ0eSAgICAgICppdHBfZmlyc3Rf
cGFydHkpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9pdHBfZmlyc3RfcGFydHlfdW5yZWYg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0SVRQRmlyc3RQYXJ0eSAgICAgICppdHBf
Zmlyc3RfcGFydHkpOworCitXRUJLSVRfQVBJIGNvbnN0IGNoYXIgKgord2Via2l0X2l0cF9maXJz
dF9wYXJ0eV9nZXRfZG9tYWluICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRJVFBGaXJzdFBh
cnR5ICAgICAgKml0cF9maXJzdF9wYXJ0eSk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtp
dF9pdHBfZmlyc3RfcGFydHlfZ2V0X3dlYnNpdGVfZGF0YV9hY2Nlc3NfYWxsb3dlZCAoV2ViS2l0
SVRQRmlyc3RQYXJ0eSAgICAgICppdHBfZmlyc3RfcGFydHkpOworCitXRUJLSVRfQVBJIEdEYXRl
VGltZSAqCit3ZWJraXRfaXRwX2ZpcnN0X3BhcnR5X2dldF9sYXN0X3VwZGF0ZV90aW1lICAgICAg
ICAgICAgKFdlYktpdElUUEZpcnN0UGFydHkgICAgICAqaXRwX2ZpcnN0X3BhcnR5KTsKKworCisj
ZGVmaW5lIFdFQktJVF9UWVBFX0lUUF9USElSRF9QQVJUWSAgICh3ZWJraXRfaXRwX3RoaXJkX3Bh
cnR5X2dldF90eXBlKCkpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRJVFBUaGlyZFBhcnR5IFdl
YktpdElUUFRoaXJkUGFydHk7CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9pdHBfdGhpcmRf
cGFydHlfZ2V0X3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9B
UEkgV2ViS2l0SVRQVGhpcmRQYXJ0eSAqCit3ZWJraXRfaXRwX3RoaXJkX3BhcnR5X3JlZiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdElUUFRoaXJkUGFydHkgICAgICAqaXRwX3Ro
aXJkX3BhcnR5KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfaXRwX3RoaXJkX3BhcnR5X3Vu
cmVmICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdElUUFRoaXJkUGFydHkgICAgICAq
aXRwX3RoaXJkX3BhcnR5KTsKKworV0VCS0lUX0FQSSBjb25zdCBjaGFyICoKK3dlYmtpdF9pdHBf
dGhpcmRfcGFydHlfZ2V0X2RvbWFpbiAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0SVRQVGhp
cmRQYXJ0eSAgICAgICppdHBfdGhpcmRfcGFydHkpOworCitXRUJLSVRfQVBJIEdMaXN0ICoKK3dl
YmtpdF9pdHBfdGhpcmRfcGFydHlfZ2V0X2ZpcnN0X3BhcnRpZXMgICAgICAgICAgICAgICAoV2Vi
S2l0SVRQVGhpcmRQYXJ0eSAgICAgICppdHBfdGhpcmRfcGFydHkpOworCisKK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9pdHBfc3VtbWFyeSAgICAgICAg
ICAgIChXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIgKm1hbmFnZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDYW5jZWxsYWJsZSAgICAg
ICAgICAgICAqY2FuY2VsbGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1JlYWR5Q2FsbGJhY2sgICAgICAgY2FsbGJhY2ss
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdwb2ludGVyICAgICAgICAgICAgICAgICAgdXNlcl9kYXRhKTsKK1dFQktJVF9BUEkgR0xpc3Qg
Kgord2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9pdHBfc3VtbWFyeV9maW5pc2ggICAg
IChXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIgKm1hbmFnZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAgICAgICAg
ICAgICAqcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgICAgICAqKmVycm9yKTsKKworR19FTkRf
REVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJzaXRlUG9saWNpZXMuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2Vic2l0ZVBvbGljaWVzLmgKc2ltaWxhcml0eSBpbmRleCA5NCUKcmVu
YW1lIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZVBv
bGljaWVzLmguaW4KcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2Vic2l0ZVBvbGljaWVzLmgKaW5kZXggYmZiNTRlNmUzOTRlLi42ZTdlOTViMWY1YTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVQ
b2xpY2llcy5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2Vic2l0ZVBvbGljaWVzLmgKQEAgLTE3LDEyICsxNywxNCBAQAogICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCiAgKi8KIAotQEFQSV9TSU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZp
bmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9O
KQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVj
dGx5LiIKKyNlbmRpZgogCiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGdpby9naW8uaD4KLSNp
bmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8
d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNzgsNyArODAs
NyBAQCBXRUJLSVRfQVBJIFdlYktpdFdlYnNpdGVQb2xpY2llcyAqCiB3ZWJraXRfd2Vic2l0ZV9w
b2xpY2llc19uZXcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKIAog
V0VCS0lUX0FQSSBXZWJLaXRXZWJzaXRlUG9saWNpZXMgKgotd2Via2l0X3dlYnNpdGVfcG9saWNp
ZXNfbmV3X3dpdGhfcG9saWNpZXMgICAgICAgICAgICAgICAgICAgICAoY29uc3QgZ2NoYXIgICAg
ICAgICAgICpmaXJzdF9wb2xpY3lfbmFtZSwKK3dlYmtpdF93ZWJzaXRlX3BvbGljaWVzX25ld193
aXRoX3BvbGljaWVzICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGdjaGFyICpmaXJzdF9wb2xp
Y3lfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC4uLik7CiAKIFdFQktJVF9BUEkgV2ViS2l0QXV0b3BsYXlQb2xpY3kK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdpbmRv
d1Byb3BlcnRpZXMuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2luZG93UHJvcGVydGllcy5oCnNpbWlsYXJpdHkgaW5kZXggOTUlCnJlbmFtZSBmcm9tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdpbmRvd1Byb3BlcnRpZXMuaC5pbgpy
ZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXaW5kb3dQcm9w
ZXJ0aWVzLmgKaW5kZXggM2FiYzg4MzJjMTk1Li4zZTQwYThkMTI5MjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdpbmRvd1Byb3BlcnRpZXMuaC5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdpbmRvd1Byb3Bl
cnRpZXMuaApAQCAtMTcsMTcgKzE3LDE2IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KICAqLwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRlZmluZWQoX19XRUJL
SVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3Ig
Ik9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2Vu
ZGlmCiAKICNpZm5kZWYgV2ViS2l0V2luZG93UHJvcGVydGllc19oCiAjZGVmaW5lIFdlYktpdFdp
bmRvd1Byb3BlcnRpZXNfaAogCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLSNpbmNsdWRlIDxA
QVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXREZWZpbmVzLmg+Ci0KLSNpZiBQTEFURk9STShHVEsp
CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2VuZGlmCisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRE
ZWZpbmVzLmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNjIsMTIgKzYxLDkgQEAgc3RydWN0IF9X
ZWJLaXRXaW5kb3dQcm9wZXJ0aWVzQ2xhc3MgewogV0VCS0lUX0FQSSBHVHlwZQogd2Via2l0X3dp
bmRvd19wcm9wZXJ0aWVzX2dldF90eXBlICAgICAgICAgICAgICAgICh2b2lkKTsKIAotI2lmIFBM
QVRGT1JNKEdUSykKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3dpbmRvd19wcm9wZXJ0aWVzX2dl
dF9nZW9tZXRyeSAgICAgICAgICAgIChXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzICp3aW5kb3dfcHJv
cGVydGllcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR2RrUmVjdGFuZ2xlICAgICAgICAgICAqZ2VvbWV0cnkpOwotI2VuZGlmCi0KIFdFQktJVF9B
UEkgZ2Jvb2xlYW4KIHdlYmtpdF93aW5kb3dfcHJvcGVydGllc19nZXRfdG9vbGJhcl92aXNpYmxl
ICAgICAoV2ViS2l0V2luZG93UHJvcGVydGllcyAqd2luZG93X3Byb3BlcnRpZXMpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVu
dUl0ZW0uaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGszL1dlYktpdENvbnRl
eHRNZW51SXRlbS5oCnNpbWlsYXJpdHkgaW5kZXggOTElCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvbnRleHRNZW51SXRlbS5oLmluCnJlbmFtZSB0
byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrMy9XZWJLaXRDb250ZXh0TWVudUl0ZW0u
aAppbmRleCA0YmQ4YmQ2ZTM2MzMuLjllNjIyZDFkN2E5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmguaW4KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0azMvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmgK
QEAgLTE3LDE5ICsxNywxOCBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8K
IAotQFNIQVJFRF9BUElfU0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJ
VDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikgJiYgIWRlZmlu
ZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKQorI2Vycm9yICJPbmx5IDx3ZWJr
aXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgogCiAjaWZu
ZGVmIFdlYktpdENvbnRleHRNZW51SXRlbV9oCiAjZGVmaW5lIFdlYktpdENvbnRleHRNZW51SXRl
bV9oCiAKLSNpbmNsdWRlIDxnaW8vZ2lvLmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJ
WEAvV2ViS2l0RGVmaW5lcy5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktp
dENvbnRleHRNZW51Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0Q29u
dGV4dE1lbnVBY3Rpb25zLmg+Ci0KLSNpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8Z3RrL2d0
ay5oPgotI2VuZGlmCisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVk
ZSA8d2Via2l0Mi9XZWJLaXRDb250ZXh0TWVudS5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
Q29udGV4dE1lbnVBY3Rpb25zLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGb3J3YXJkRGVj
bGFyYXRpb25zLmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNDAsMjEgKzM5LDE4IEBAIEdfQkVH
SU5fREVDTFMKICNkZWZpbmUgV0VCS0lUX0lTX0NPTlRFWFRfTUVOVV9JVEVNX0NMQVNTKGtsYXNz
KSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0NPTlRFWFRf
TUVOVV9JVEVNKSkKICNkZWZpbmUgV0VCS0lUX0NPTlRFWFRfTUVOVV9JVEVNX0dFVF9DTEFTUyhv
YmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0NPTlRF
WFRfTUVOVV9JVEVNLCBXZWJLaXRDb250ZXh0TWVudUl0ZW1DbGFzcykpCiAKLXR5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRDb250ZXh0TWVudUl0ZW0gICAgICAgIFdlYktpdENvbnRleHRNZW51SXRlbTsK
IHR5cGVkZWYgc3RydWN0IF9XZWJLaXRDb250ZXh0TWVudUl0ZW1DbGFzcyAgIFdlYktpdENvbnRl
eHRNZW51SXRlbUNsYXNzOwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdENvbnRleHRNZW51SXRlbVBy
aXZhdGUgV2ViS2l0Q29udGV4dE1lbnVJdGVtUHJpdmF0ZTsKIAogc3RydWN0IF9XZWJLaXRDb250
ZXh0TWVudUl0ZW0gewogICAgIEdJbml0aWFsbHlVbm93bmVkIHBhcmVudDsKIAotICAgIC8qPCBw
cml2YXRlID4qLwogICAgIFdlYktpdENvbnRleHRNZW51SXRlbVByaXZhdGUgKnByaXY7CiB9Owog
CiBzdHJ1Y3QgX1dlYktpdENvbnRleHRNZW51SXRlbUNsYXNzIHsKICAgICBHSW5pdGlhbGx5VW5v
d25lZENsYXNzIHBhcmVudF9jbGFzczsKIAotICAgIC8qPCBwcml2YXRlID4qLwogICAgIHZvaWQg
KCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOwogICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVk
MSkgKHZvaWQpOwogICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOwpAQCAtNjQs
MTAgKzYwLDggQEAgc3RydWN0IF9XZWJLaXRDb250ZXh0TWVudUl0ZW1DbGFzcyB7CiBXRUJLSVRf
QVBJIEdUeXBlCiB3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fZ2V0X3R5cGUgICAgICAgICAgICAg
ICAgICAgICAgICAgKHZvaWQpOwogCi0jaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpCiBX
RUJLSVRfREVQUkVDQVRFRF9GT1Iod2Via2l0X2NvbnRleHRfbWVudV9pdGVtX25ld19mcm9tX2dh
Y3Rpb24pIFdlYktpdENvbnRleHRNZW51SXRlbSAqCiB3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1f
bmV3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEd0a0FjdGlvbiAgICAgICAgICAgICAg
KmFjdGlvbik7Ci0jZW5kaWYKIAogV0VCS0lUX0FQSSBXZWJLaXRDb250ZXh0TWVudUl0ZW0gKgog
d2Via2l0X2NvbnRleHRfbWVudV9pdGVtX25ld19mcm9tX2dhY3Rpb24gICAgICAgICAgICAgICAg
IChHQWN0aW9uICAgICAgICAgICAgICAgICphY3Rpb24sCkBAIC04OCwxMCArODIsOCBAQCB3ZWJr
aXRfY29udGV4dF9tZW51X2l0ZW1fbmV3X3dpdGhfc3VibWVudSAgICAgICAgICAgICAgICAgKGNv
bnN0IGdjaGFyCiBXRUJLSVRfQVBJIFdlYktpdENvbnRleHRNZW51SXRlbSAqCiB3ZWJraXRfY29u
dGV4dF9tZW51X2l0ZW1fbmV3X3NlcGFyYXRvciAgICAgICAgICAgICAgICAgICAgKHZvaWQpOwog
Ci0jaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpCiBXRUJLSVRfREVQUkVDQVRFRF9GT1Io
d2Via2l0X2NvbnRleHRfbWVudV9pdGVtX2dldF9nYWN0aW9uKSBHdGtBY3Rpb24gKgogd2Via2l0
X2NvbnRleHRfbWVudV9pdGVtX2dldF9hY3Rpb24gICAgICAgICAgICAgICAgICAgICAgIChXZWJL
aXRDb250ZXh0TWVudUl0ZW0gICppdGVtKTsKLSNlbmRpZgogCiBXRUJLSVRfQVBJIEdBY3Rpb24g
Kgogd2Via2l0X2NvbnRleHRfbWVudV9pdGVtX2dldF9nYWN0aW9uICAgICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRDb250ZXh0TWVudUl0ZW0gICppdGVtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5oLmluIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0azMvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0
LmgKc2ltaWxhcml0eSBpbmRleCA4OCUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmguaW4KcmVuYW1lIHRvIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGszL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5oCmlu
ZGV4IDQ1ODUzOGRiMzQ3Ni4uNmY1MzA0NTg1ZDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaC5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrMy9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQu
aApAQCAtMTcsMjAgKzE3LDE2IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAq
LwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hf
SU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkg
PHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAK
ICNpZm5kZWYgV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0X2gKICNkZWZpbmUgV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0X2gKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQ
SV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVmaW5lcy5oPgotCi0jaWYgUExBVEZPUk0oR1RLKQog
I2luY2x1ZGUgPGdkay9nZGsuaD4KLSNlbGlmIFBMQVRGT1JNKFdQRSkKLSNpbmNsdWRlIDx3cGUv
V2ViS2l0Q29sb3IuaD4KLSNpbmNsdWRlIDx3cGUvd3BlLmg+Ci0jZW5kaWYKKyNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdERlZmluZXMuaD4KIAogR19CRUdJTl9ERUNMUwogCkBAIC0xMDYsOCArMTAy
LDYgQEAgc3RydWN0IF9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgewogc3RydWN0IF9XZWJLaXRJ
bnB1dE1ldGhvZENvbnRleHRDbGFzcyB7CiAgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsK
IAotICAgIC8qPCBwdWJsaWMgPiovCi0KICAgICAvKiBTaWduYWxzICovCiAgICAgdm9pZCAgICAg
KCogcHJlZWRpdF9zdGFydGVkKSAgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICpjb250ZXh0
KTsKICAgICB2b2lkICAgICAoKiBwcmVlZGl0X2NoYW5nZWQpICAgIChXZWJLaXRJbnB1dE1ldGhv
ZENvbnRleHQgKmNvbnRleHQpOwpAQCAtMTI1LDE2ICsxMTksOCBAQCBzdHJ1Y3QgX1dlYktpdElu
cHV0TWV0aG9kQ29udGV4dENsYXNzIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnY2hhciAgICAgICAgICAgICAgICAgICAqKnRleHQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR0xpc3QgICAgICAgICAgICAgICAgICAgKip1bmRlcmxpbmVzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAg
ICAgICAqY3Vyc29yX29mZnNldCk7Ci0jaWYgUExBVEZPUk0oR1RLKSAmJiBVU0UoR1RLNCkKLSAg
ICBnYm9vbGVhbiAoKiBmaWx0ZXJfa2V5X2V2ZW50KSAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRl
eHQgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrRXZl
bnQgICAgICAgICAgICAgICAgICprZXlfZXZlbnQpOwotI2VsaWYgUExBVEZPUk0oR1RLKQogICAg
IGdib29sZWFuICgqIGZpbHRlcl9rZXlfZXZlbnQpICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4
dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZGtFdmVu
dEtleSAgICAgICAgICAgICAgKmtleV9ldmVudCk7Ci0jZWxpZiBQTEFURk9STShXUEUpCi0gICAg
Z2Jvb2xlYW4gKCogZmlsdGVyX2tleV9ldmVudCkgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0
ICAgICAgICAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50ICprZXlfZXZlbnQpOwotI2VuZGlmCiAgICAg
dm9pZCAgICAgKCogbm90aWZ5X2ZvY3VzX2luKSAgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0
ICpjb250ZXh0KTsKICAgICB2b2lkICAgICAoKiBub3RpZnlfZm9jdXNfb3V0KSAgIChXZWJLaXRJ
bnB1dE1ldGhvZENvbnRleHQgKmNvbnRleHQpOwogICAgIHZvaWQgICAgICgqIG5vdGlmeV9jdXJz
b3JfYXJlYSkgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAqY29udGV4dCwKQEAgLTE0OSw3ICsx
MzUsNiBAQCBzdHJ1Y3QgX1dlYktpdElucHV0TWV0aG9kQ29udGV4dENsYXNzIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgIHNl
bGVjdGlvbl9pbmRleCk7CiAgICAgdm9pZCAgICAgKCogcmVzZXQpICAgICAgICAgICAgICAoV2Vi
S2l0SW5wdXRNZXRob2RDb250ZXh0ICpjb250ZXh0KTsKIAotICAgIC8qPCBwcml2YXRlID4qLwog
ICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOwogICAgIHZvaWQgKCpfd2Via2l0
X3Jlc2VydmVkMSkgKHZvaWQpOwogICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQp
OwpAQCAtMTczLDE5ICsxNTgsOSBAQCB3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfZ2V0X3By
ZWVkaXQgICAgICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAqY29udAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpc3QgICAgICAgICAgICAg
ICAgICAgICAqKnVuZGVybGluZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgICAqY3Vyc29yX29mZnNldCk7
CiAKLSNpZiBQTEFURk9STShHVEspICYmIFVTRShHVEs0KQotV0VCS0lUX0FQSSBnYm9vbGVhbgot
d2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X2ZpbHRlcl9rZXlfZXZlbnQgICAoV2ViS2l0SW5w
dXRNZXRob2RDb250ZXh0ICAgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHZGtFdmVudCAgICAgICAgICAgICAgICAgICAqa2V5X2V2ZW50
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSNlbGlmIFBMQVRGT1JN
KEdUSykKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9m
aWx0ZXJfa2V5X2V2ZW50ICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAgICpjb250ZXh0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrRXZlbnRL
ZXkgICAgICAgICAgICAgICAgKmtleV9ldmVudCk7Ci0jZWxpZiBQTEFURk9STShXUEUpCi1XRUJL
SVRfQVBJIGdib29sZWFuCi13ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfZmlsdGVyX2tleV9l
dmVudCAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAgICAgICpjb250ZXh0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHdwZV9pbnB1
dF9rZXlib2FyZF9ldmVudCAqa2V5X2V2ZW50KTsKLSNlbmRpZgogCiBXRUJLSVRfQVBJIHZvaWQK
IHdlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9ub3RpZnlfZm9jdXNfaW4gICAgKFdlYktpdElu
cHV0TWV0aG9kQ29udGV4dCAgICpjb250ZXh0KTsKQEAgLTIyNCwxNSArMTk5LDkgQEAgd2Via2l0
X2lucHV0X21ldGhvZF91bmRlcmxpbmVfY29weSAgICAgICAgICAgICAoV2ViS2l0SW5wdXRNZXRo
b2RVbmRlcmxpbmUgKnVuZGUKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2lucHV0X21ldGhvZF91
bmRlcmxpbmVfZnJlZSAgICAgICAgICAgICAoV2ViS2l0SW5wdXRNZXRob2RVbmRlcmxpbmUgKnVu
ZGVybGluZSk7CiAKLSNpZiBQTEFURk9STShHVEspCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9p
bnB1dF9tZXRob2RfdW5kZXJsaW5lX3NldF9jb2xvciAgICAgICAgKFdlYktpdElucHV0TWV0aG9k
VW5kZXJsaW5lICp1bmRlcmxpbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBHZGtSR0JBICAgICAgICAgICAgICAqcmdiYSk7Ci0jZWxpZiBQ
TEFURk9STShXUEUpCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9pbnB1dF9tZXRob2RfdW5kZXJs
aW5lX3NldF9jb2xvciAgICAgICAgKFdlYktpdElucHV0TWV0aG9kVW5kZXJsaW5lICp1bmRlcmxp
bmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJL
aXRDb2xvciAgICAgICAgICAgICAgICAqY29sb3IpOwotI2VuZGlmCiAKIFdFQktJVF9BUEkgV2Vi
S2l0SW5wdXRQdXJwb3NlCiB3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfZ2V0X2lucHV0X3B1
cnBvc2UgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAqY29udGV4dCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmguaW4g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrMy9XZWJLaXRXZWJWaWV3QmFzZS5oCnNp
bWlsYXJpdHkgaW5kZXggOTUlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0azMvV2ViS2l0V2ViVmlld0Jhc2UuaAppbmRleCBhNWRiMGRkMWFhYTcuLmQw
NWQwZGRhNjBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3QmFzZS5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGszL1dlYktpdFdlYlZpZXdCYXNlLmgKQEAgLTI1LDcgKzI1LDkgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisj
aWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09N
UElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVk
ZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0V2ViVmlld0Jhc2VfaAogI2Rl
ZmluZSBXZWJLaXRXZWJWaWV3QmFzZV9oCkBAIC00NywyMSArNDksMTMgQEAgdHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdFdlYlZpZXdCYXNlQ2xhc3MgV2ViS2l0V2ViVmlld0Jhc2VDbGFzczsKIHR5cGVk
ZWYgc3RydWN0IF9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUgV2ViS2l0V2ViVmlld0Jhc2VQcml2
YXRlOwogCiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdCYXNlIHsKLSNpZiBVU0UoR1RLNCkKLSAgICBH
dGtXaWRnZXQgcGFyZW50SW5zdGFuY2U7Ci0jZWxzZQogICAgIEd0a0NvbnRhaW5lciBwYXJlbnRJ
bnN0YW5jZTsKLSNlbmRpZgogICAgIC8qPCBwcml2YXRlID4qLwogICAgIFdlYktpdFdlYlZpZXdC
YXNlUHJpdmF0ZSogcHJpdjsKIH07CiAKIHN0cnVjdCBfV2ViS2l0V2ViVmlld0Jhc2VDbGFzcyB7
Ci0jaWYgVVNFKEdUSzQpCi0gICAgR3RrV2lkZ2V0Q2xhc3MgcGFyZW50Q2xhc3M7Ci0jZWxzZQog
ICAgIEd0a0NvbnRhaW5lckNsYXNzIHBhcmVudENsYXNzOwotI2VuZGlmCiAKICAgICB2b2lkICgq
X3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEp
ICh2b2lkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGs0L1dl
YktpdENvbnRleHRNZW51SXRlbS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0azQv
V2ViS2l0Q29udGV4dE1lbnVJdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi4yZTM0MzY5MWY2MGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrNC9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaApAQCAtMCwwICsxLDEwMCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19X
RUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pICYmICFk
ZWZpbmVkKF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykKKyNlcnJvciAiT25seSA8
d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKwor
I2lmbmRlZiBXZWJLaXRDb250ZXh0TWVudUl0ZW1faAorI2RlZmluZSBXZWJLaXRDb250ZXh0TWVu
dUl0ZW1faAorCisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4dE1lbnUuaD4KKyNpbmNs
dWRlIDx3ZWJraXQyL1dlYktpdENvbnRleHRNZW51QWN0aW9ucy5oPgorI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZp
bmUgV0VCS0lUX1RZUEVfQ09OVEVYVF9NRU5VX0lURU0gICAgICAgICAgICAod2Via2l0X2NvbnRl
eHRfbWVudV9pdGVtX2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9DT05URVhUX01FTlVfSVRF
TShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJL
SVRfVFlQRV9DT05URVhUX01FTlVfSVRFTSwgV2ViS2l0Q29udGV4dE1lbnVJdGVtKSkKKyNkZWZp
bmUgV0VCS0lUX0lTX0NPTlRFWFRfTUVOVV9JVEVNKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNL
X0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX0NPTlRFWFRfTUVOVV9JVEVNKSkKKyNk
ZWZpbmUgV0VCS0lUX0NPTlRFWFRfTUVOVV9JVEVNX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NI
RUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0NPTlRFWFRfTUVOVV9JVEVNLCBX
ZWJLaXRDb250ZXh0TWVudUl0ZW1DbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19DT05URVhUX01F
TlVfSVRFTV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBX
RUJLSVRfVFlQRV9DT05URVhUX01FTlVfSVRFTSkpCisjZGVmaW5lIFdFQktJVF9DT05URVhUX01F
TlVfSVRFTV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiks
ICBXRUJLSVRfVFlQRV9DT05URVhUX01FTlVfSVRFTSwgV2ViS2l0Q29udGV4dE1lbnVJdGVtQ2xh
c3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0Q29udGV4dE1lbnVJdGVtQ2xhc3MgICBXZWJL
aXRDb250ZXh0TWVudUl0ZW1DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRDb250ZXh0TWVu
dUl0ZW1Qcml2YXRlIFdlYktpdENvbnRleHRNZW51SXRlbVByaXZhdGU7CisKK3N0cnVjdCBfV2Vi
S2l0Q29udGV4dE1lbnVJdGVtIHsKKyAgICBHSW5pdGlhbGx5VW5vd25lZCBwYXJlbnQ7CisKKyAg
ICBXZWJLaXRDb250ZXh0TWVudUl0ZW1Qcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJL
aXRDb250ZXh0TWVudUl0ZW1DbGFzcyB7CisgICAgR0luaXRpYWxseVVub3duZWRDbGFzcyBwYXJl
bnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307
CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9nZXRfdHlwZSAg
ICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0Q29udGV4
dE1lbnVJdGVtICoKK3dlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9uZXdfZnJvbV9nYWN0aW9uICAg
ICAgICAgICAgICAgICAoR0FjdGlvbiAgICAgICAgICAgICAgICAqYWN0aW9uLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn
Y2hhciAgICAgICAgICAgICpsYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR1ZhcmlhbnQgICAgICAgICAgICAgICAqdGFyZ2V0
KTsKKworV0VCS0lUX0FQSSBXZWJLaXRDb250ZXh0TWVudUl0ZW0gKgord2Via2l0X2NvbnRleHRf
bWVudV9pdGVtX25ld19mcm9tX3N0b2NrX2FjdGlvbiAgICAgICAgICAgIChXZWJLaXRDb250ZXh0
TWVudUFjdGlvbiBhY3Rpb24pOworCitXRUJLSVRfQVBJIFdlYktpdENvbnRleHRNZW51SXRlbSAq
Cit3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fbmV3X2Zyb21fc3RvY2tfYWN0aW9uX3dpdGhfbGFi
ZWwgKFdlYktpdENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAg
ICAgICAqbGFiZWwpOworCitXRUJLSVRfQVBJIFdlYktpdENvbnRleHRNZW51SXRlbSAqCit3ZWJr
aXRfY29udGV4dF9tZW51X2l0ZW1fbmV3X3dpdGhfc3VibWVudSAgICAgICAgICAgICAgICAgKGNv
bnN0IGdjaGFyICAgICAgICAgICAgKmxhYmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRDb250ZXh0TWVudSAgICAgICpz
dWJtZW51KTsKKworV0VCS0lUX0FQSSBXZWJLaXRDb250ZXh0TWVudUl0ZW0gKgord2Via2l0X2Nv
bnRleHRfbWVudV9pdGVtX25ld19zZXBhcmF0b3IgICAgICAgICAgICAgICAgICAgICh2b2lkKTsK
KworV0VCS0lUX0FQSSBHQWN0aW9uICoKK3dlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9nZXRfZ2Fj
dGlvbiAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0Q29udGV4dE1lbnVJdGVtICAqaXRlbSk7
CisKK1dFQktJVF9BUEkgV2ViS2l0Q29udGV4dE1lbnVBY3Rpb24KK3dlYmtpdF9jb250ZXh0X21l
bnVfaXRlbV9nZXRfc3RvY2tfYWN0aW9uICAgICAgICAgICAgICAgICAoV2ViS2l0Q29udGV4dE1l
bnVJdGVtICAqaXRlbSk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9jb250ZXh0X21l
bnVfaXRlbV9pc19zZXBhcmF0b3IgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0Q29udGV4dE1l
bnVJdGVtICAqaXRlbSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2NvbnRleHRfbWVudV9p
dGVtX3NldF9zdWJtZW51ICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRDb250ZXh0TWVudUl0
ZW0gICppdGVtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRDb250ZXh0TWVudSAgICAgICpzdWJtZW51KTsKKworV0VCS0lU
X0FQSSBXZWJLaXRDb250ZXh0TWVudSAqCit3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fZ2V0X3N1
Ym1lbnUgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdENvbnRleHRNZW51SXRlbSAgKml0ZW0p
OworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGs0L1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0azQvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jYWZlZGEwNjVkZDcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrNC9XZWJLaXRJbnB1dE1ldGhv
ZENvbnRleHQuaApAQCAtMCwwICsxLDIyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJ
Z2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVk
KFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBj
YW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0X2gKKyNkZWZpbmUgV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0X2gKKworI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8Z2RrL2dkay5oPgorI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lU
X1RZUEVfSU5QVVRfTUVUSE9EX0NPTlRFWFQgICAgICAgICAgICAod2Via2l0X2lucHV0X21ldGhv
ZF9jb250ZXh0X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9JTlBVVF9NRVRIT0RfQ09OVEVY
VChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJL
SVRfVFlQRV9JTlBVVF9NRVRIT0RfQ09OVEVYVCwgV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0KSkK
KyNkZWZpbmUgV0VCS0lUX0lOUFVUX01FVEhPRF9DT05URVhUX0NMQVNTKGtsYXNzKSAgICAoR19U
WVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0lOUFVUX01FVEhPRF9D
T05URVhULCBXZWJLaXRJbnB1dE1ldGhvZENvbnRleHRDbGFzcykpCisjZGVmaW5lIFdFQktJVF9J
U19JTlBVVF9NRVRIT0RfQ09OVEVYVChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5D
RV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9JTlBVVF9NRVRIT0RfQ09OVEVYVCkpCisjZGVmaW5l
IFdFQktJVF9JU19JTlBVVF9NRVRIT0RfQ09OVEVYVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVD
S19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9JTlBVVF9NRVRIT0RfQ09OVEVYVCkp
CisjZGVmaW5lIFdFQktJVF9JTlBVVF9NRVRIT0RfQ09OVEVYVF9HRVRfQ0xBU1Mob2JqKSAgKEdf
VFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9JTlBVVF9NRVRIT0Rf
Q09OVEVYVCwgV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0Q2xhc3MpKQorCisjZGVmaW5lIFdFQktJ
VF9UWVBFX0lOUFVUX01FVEhPRF9VTkRFUkxJTkUgICAgICAgICAgKHdlYmtpdF9pbnB1dF9tZXRo
b2RfdW5kZXJsaW5lX2dldF90eXBlKCkpCisKKy8qKgorICogV2ViS2l0SW5wdXRQdXJwb3NlOgor
ICogQFdFQktJVF9JTlBVVF9QVVJQT1NFX0ZSRUVfRk9STTogRWRpdGFibGUgZWxlbWVudCBleHBl
Y3RzIGFueSBjaGFyYWN0ZXJzCisgKiBAV0VCS0lUX0lOUFVUX1BVUlBPU0VfRElHSVRTOiBFZGl0
YWJsZSBlbGVtZW50IGV4cGVjdHMgZGlnaXRzCisgKiBAV0VCS0lUX0lOUFVUX1BVUlBPU0VfTlVN
QkVSOiBFZGl0YWJsZSBlbGVtZW50IGV4cGVjdHMgYSBudW1iZXIKKyAqIEBXRUJLSVRfSU5QVVRf
UFVSUE9TRV9QSE9ORTogRWRpdGFibGUgZWxlbWVudCBleHBlY3RzIGEgdGVsZXBob25lCisgKiBA
V0VCS0lUX0lOUFVUX1BVUlBPU0VfVVJMOiBFZGl0YWJsZSBlbGVtZW50IGV4cGVjdHMgYSBVUkwK
KyAqIEBXRUJLSVRfSU5QVVRfUFVSUE9TRV9FTUFJTDogRWRpdGFibGUgZWxlbWVudCBleHBlY3Rz
IGFuIGVtYWlsCisgKiBAV0VCS0lUX0lOUFVUX1BVUlBPU0VfUEFTU1dPUkQ6IEVkaXRhYmxlIGVs
ZW1lbnQgZXhwZWN0cyBhIHBhc3N3b3JkCisgKgorICogRW51bSB2YWx1ZXMgdXNlZCB0byBkZXNj
cmliZSB0aGUgcHJpbWFyeSBwdXJwb3NlIG9mIHRoZSBhY3RpdmUgZWRpdGFibGUgZWxlbWVudC4K
KyAqCisgKiBTaW5jZTogMi4yOAorICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9JTlBV
VF9QVVJQT1NFX0ZSRUVfRk9STSwKKyAgICBXRUJLSVRfSU5QVVRfUFVSUE9TRV9ESUdJVFMsCisg
ICAgV0VCS0lUX0lOUFVUX1BVUlBPU0VfTlVNQkVSLAorICAgIFdFQktJVF9JTlBVVF9QVVJQT1NF
X1BIT05FLAorICAgIFdFQktJVF9JTlBVVF9QVVJQT1NFX1VSTCwKKyAgICBXRUJLSVRfSU5QVVRf
UFVSUE9TRV9FTUFJTCwKKyAgICBXRUJLSVRfSU5QVVRfUFVSUE9TRV9QQVNTV09SRAorfSBXZWJL
aXRJbnB1dFB1cnBvc2U7CisKKy8qKgorICogV2ViS2l0SW5wdXRIaW50czoKKyAqIEBXRUJLSVRf
SU5QVVRfSElOVF9OT05FOiBObyBzcGVjaWFsIGJlaGF2aW9yIHN1Z2dlc3RlZAorICogQFdFQktJ
VF9JTlBVVF9ISU5UX1NQRUxMQ0hFQ0s6IFN1Z2dlc3Qgc3BlbGwgY2hlY2tpbmcKKyAqIEBXRUJL
SVRfSU5QVVRfSElOVF9MT1dFUkNBU0U6IFN1Z2dlc3QgdG8gbm90IGF1dG9jYXBpdGxpemUKKyAq
IEBXRUJLSVRfSU5QVVRfSElOVF9VUFBFUkNBU0VfQ0hBUlM6IFN1Z2dlc3QgdG8gY2FwaXRhbGl6
ZSBhbGwgdGV4dAorICogQFdFQktJVF9JTlBVVF9ISU5UX1VQUEVSQ0FTRV9XT1JEUzogU3VnZ2Vz
dCB0byBjYXBpdGFsaXplIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgZWFjaCB3b3JkCisgKiBAV0VC
S0lUX0lOUFVUX0hJTlRfVVBQRVJDQVNFX1NFTlRFTkNFUzogU3VnZ2VzdCB0byBjYXBpdGFsaXpl
IHRoZSBmaXJzdCB3b3JkIG9mIGVhY2ggc2VudGVuY2UKKyAqIEBXRUJLSVRfSU5QVVRfSElOVF9J
TkhJQklUX09TSzogU3VnZ2VzdCB0byBub3Qgc2hvdyBhbiBvbnNjcmVlbiBrZXlib2FyZAorICoK
KyAqIEVudW0gdmFsdWVzIHVzZWQgdG8gZGVzY3JpYmUgaGludHMgdGhhdCBtaWdodCBiZSB0YWtl
biBpbnRvIGFjY291bnQgYnkgaW5wdXQgbWV0aG9kcy4KKyAqCisgKiBTaW5jZTogMi4yOAorICov
Cit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9JTlBVVF9ISU5UX05PTkUgICAgICAgICAgICAg
ICAgPSAwLAorICAgIFdFQktJVF9JTlBVVF9ISU5UX1NQRUxMQ0hFQ0sgICAgICAgICAgPSAxIDw8
IDAsCisgICAgV0VCS0lUX0lOUFVUX0hJTlRfTE9XRVJDQVNFICAgICAgICAgICA9IDEgPDwgMSwK
KyAgICBXRUJLSVRfSU5QVVRfSElOVF9VUFBFUkNBU0VfQ0hBUlMgICAgID0gMSA8PCAyLAorICAg
IFdFQktJVF9JTlBVVF9ISU5UX1VQUEVSQ0FTRV9XT1JEUyAgICAgPSAxIDw8IDMsCisgICAgV0VC
S0lUX0lOUFVUX0hJTlRfVVBQRVJDQVNFX1NFTlRFTkNFUyA9IDEgPDwgNCwKKyAgICBXRUJLSVRf
SU5QVVRfSElOVF9JTkhJQklUX09TSyAgICAgICAgID0gMSA8PCA1Cit9IFdlYktpdElucHV0SGlu
dHM7CisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAgICAgIFdl
YktpdElucHV0TWV0aG9kQ29udGV4dDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRJbnB1dE1ldGhv
ZENvbnRleHRDbGFzcyAgIFdlYktpdElucHV0TWV0aG9kQ29udGV4dENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdElucHV0TWV0aG9kQ29udGV4dFByaXZhdGUgV2ViS2l0SW5wdXRNZXRob2RD
b250ZXh0UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRJbnB1dE1ldGhvZFVuZGVybGlu
ZSAgICAgIFdlYktpdElucHV0TWV0aG9kVW5kZXJsaW5lOworCitzdHJ1Y3QgX1dlYktpdElucHV0
TWV0aG9kQ29udGV4dCB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+
Ki8KKyAgICBXZWJLaXRJbnB1dE1ldGhvZENvbnRleHRQcml2YXRlICpwcml2OworfTsKKworc3Ry
dWN0IF9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHRDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBh
cmVudF9jbGFzczsKKworICAgIC8qIFNpZ25hbHMgKi8KKyAgICB2b2lkICAgICAoKiBwcmVlZGl0
X3N0YXJ0ZWQpICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgKmNvbnRleHQpOworICAgIHZv
aWQgICAgICgqIHByZWVkaXRfY2hhbmdlZCkgICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAq
Y29udGV4dCk7CisgICAgdm9pZCAgICAgKCogcHJlZWRpdF9maW5pc2hlZCkgICAoV2ViS2l0SW5w
dXRNZXRob2RDb250ZXh0ICpjb250ZXh0KTsKKyAgICB2b2lkICAgICAoKiBjb21taXR0ZWQpICAg
ICAgICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgICAgICp0ZXh0KTsK
KyAgICB2b2lkICAgICAoKiBkZWxldGVfc3Vycm91bmRpbmcpIChXZWJLaXRJbnB1dE1ldGhvZENv
bnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICAgICBuX2NoYXJzKTsKKworICAgIC8q
IFZpcnR1YWwgZnVuY3Rpb25zICovCisgICAgdm9pZCAgICAgKCogc2V0X2VuYWJsZV9wcmVlZGl0
KSAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgICAgICAgZW5hYmxlZCk7Cisg
ICAgdm9pZCAgICAgKCogZ2V0X3ByZWVkaXQpICAgICAgICAoV2ViS2l0SW5wdXRNZXRob2RDb250
ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjaGFy
ICAgICAgICAgICAgICAgICAgICoqdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHTGlzdCAgICAgICAgICAgICAgICAgICAqKnVuZGVybGluZXMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICAgICpjdXJz
b3Jfb2Zmc2V0KTsKKyAgICBnYm9vbGVhbiAoKiBmaWx0ZXJfa2V5X2V2ZW50KSAgIChXZWJLaXRJ
bnB1dE1ldGhvZENvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR2RrRXZlbnQgICAgICAgICAgICAgICAgICprZXlfZXZlbnQpOworICAgIHZvaWQg
ICAgICgqIG5vdGlmeV9mb2N1c19pbikgICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAqY29u
dGV4dCk7CisgICAgdm9pZCAgICAgKCogbm90aWZ5X2ZvY3VzX291dCkgICAoV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0ICpjb250ZXh0KTsKKyAgICB2b2lkICAgICAoKiBub3RpZnlfY3Vyc29yX2Fy
ZWEpIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICB4LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICAg
eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAg
ICAgICAgICAgIHdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0KTsKKyAgICB2b2lkICAgICAoKiBub3RpZnlf
c3Vycm91bmRpbmcpIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgKmNvbnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICp0
ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAg
ICAgICAgICAgICAgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGd1aW50ICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX2luZGV4LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9u
X2luZGV4KTsKKyAgICB2b2lkICAgICAoKiByZXNldCkgICAgICAgICAgICAgIChXZWJLaXRJbnB1
dE1ldGhvZENvbnRleHQgKmNvbnRleHQpOworCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQw
KSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9p
ZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2
ZWQzKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQ0KSAodm9pZCk7CisgICAg
dm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQ1KSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVz
ZXJ2ZWQ2KSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQ3KSAodm9pZCk7Cit9
OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfZ2V0X3R5
cGUgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfaW5wdXRfbWV0
aG9kX2NvbnRleHRfc2V0X2VuYWJsZV9wcmVlZGl0IChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQg
ICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdib29sZWFuICAgICAgICAgICAgICAgICAgICBlbmFibGVkKTsKKworV0VCS0lUX0FQSSB2
b2lkCit3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfZ2V0X3ByZWVkaXQgICAgICAgIChXZWJL
aXRJbnB1dE1ldGhvZENvbnRleHQgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgICAgICAgICAgICAgICAgICAgICAgKip0ZXh0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpc3Qg
ICAgICAgICAgICAgICAgICAgICAqKnVuZGVybGluZXMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgICAqY3Vy
c29yX29mZnNldCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9pbnB1dF9tZXRob2Rf
Y29udGV4dF9maWx0ZXJfa2V5X2V2ZW50ICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAgICpj
b250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R2RrRXZlbnQgICAgICAgICAgICAgICAgICAgKmtleV9ldmVudCk7CisKK1dFQktJVF9BUEkgdm9p
ZAord2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X25vdGlmeV9mb2N1c19pbiAgICAoV2ViS2l0
SW5wdXRNZXRob2RDb250ZXh0ICAgKmNvbnRleHQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtp
dF9pbnB1dF9tZXRob2RfY29udGV4dF9ub3RpZnlfZm9jdXNfb3V0ICAgKFdlYktpdElucHV0TWV0
aG9kQ29udGV4dCAgICpjb250ZXh0KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfaW5wdXRf
bWV0aG9kX2NvbnRleHRfbm90aWZ5X2N1cnNvcl9hcmVhIChXZWJLaXRJbnB1dE1ldGhvZENvbnRl
eHQgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICB4LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAg
IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0
KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfbm90aWZ5
X3N1cnJvdW5kaW5nIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAqY29udGV4dCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAg
ICAgICAgICAgICAgICp0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAg
ICAgICAgICAgICBjdXJzb3JfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uX2lu
ZGV4KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfcmVz
ZXQgICAgICAgICAgICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAqY29udGV4dCk7CisK
KworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X2lucHV0X21ldGhvZF91bmRlcmxpbmVfZ2V0X3R5
cGUgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0SW5wdXRNZXRob2RVbmRlcmxp
bmUgKgord2Via2l0X2lucHV0X21ldGhvZF91bmRlcmxpbmVfbmV3ICAgICAgICAgICAgICAoZ3Vp
bnQgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X29mZnNldCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAg
ICBlbmRfb2Zmc2V0KTsKKworV0VCS0lUX0FQSSBXZWJLaXRJbnB1dE1ldGhvZFVuZGVybGluZSAq
Cit3ZWJraXRfaW5wdXRfbWV0aG9kX3VuZGVybGluZV9jb3B5ICAgICAgICAgICAgIChXZWJLaXRJ
bnB1dE1ldGhvZFVuZGVybGluZSAqdW5kZXJsaW5lKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJr
aXRfaW5wdXRfbWV0aG9kX3VuZGVybGluZV9mcmVlICAgICAgICAgICAgIChXZWJLaXRJbnB1dE1l
dGhvZFVuZGVybGluZSAqdW5kZXJsaW5lKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfaW5w
dXRfbWV0aG9kX3VuZGVybGluZV9zZXRfY29sb3IgICAgICAgIChXZWJLaXRJbnB1dE1ldGhvZFVu
ZGVybGluZSAqdW5kZXJsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgR2RrUkdCQSAgICAgICAgICAgICAgKnJnYmEpOworCitXRUJLSVRf
QVBJIFdlYktpdElucHV0UHVycG9zZQord2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X2dldF9p
bnB1dF9wdXJwb3NlICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICAgKmNvbnRleHQpOworCitX
RUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9zZXRfaW5wdXRfcHVy
cG9zZSAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAgICpjb250ZXh0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0SW5wdXRQdXJwb3NlICAg
ICAgICAgIHB1cnBvc2UpOworCitXRUJLSVRfQVBJIFdlYktpdElucHV0SGludHMKK3dlYmtpdF9p
bnB1dF9tZXRob2RfY29udGV4dF9nZXRfaW5wdXRfaGludHMgICAgKFdlYktpdElucHV0TWV0aG9k
Q29udGV4dCAgICpjb250ZXh0KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfaW5wdXRfbWV0
aG9kX2NvbnRleHRfc2V0X2lucHV0X2hpbnRzICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQg
ICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYktpdElucHV0SGludHMgICAgICAgICAgICBoaW50cyk7CisKKworR19FTkRfREVDTFMK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrNC9X
ZWJLaXRXZWJWaWV3QmFzZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0azQvV2Vi
S2l0V2ViVmlld0Jhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu
LmZmNjkyOTU1MmI2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGs0L1dlYktpdFdlYlZpZXdCYXNlLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0
aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQy
X0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGlu
Y2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdFdlYlZpZXdCYXNlX2gK
KyNkZWZpbmUgV2ViS2l0V2ViVmlld0Jhc2VfaAorCisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorI2lu
Y2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZp
bmUgV0VCS0lUX1RZUEVfV0VCX1ZJRVdfQkFTRSAgICAgICAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19iYXNlX2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9XRUJfVklFV19CQVNFKG9iamVjdCkg
ICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqZWN0KSwgV0VCS0lUX1RZ
UEVfV0VCX1ZJRVdfQkFTRSwgV2ViS2l0V2ViVmlld0Jhc2UpKQorI2RlZmluZSBXRUJLSVRfV0VC
X1ZJRVdfQkFTRV9DTEFTUyhrbGFzcykgICAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGts
YXNzKSwgV0VCS0lUX1RZUEVfV0VCX1ZJRVdfQkFTRSwgV2ViS2l0V2ViVmlld0Jhc2VDbGFzcykp
CisjZGVmaW5lIFdFQktJVF9JU19XRUJfVklFV19CQVNFKG9iamVjdCkgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqZWN0KSwgV0VCS0lUX1RZUEVfV0VCX1ZJRVdfQkFTRSkp
CisjZGVmaW5lIFdFQktJVF9JU19XRUJfVklFV19CQVNFX0NMQVNTKGtsYXNzKSAgIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCBXRUJLSVRfVFlQRV9XRUJfVklFV19CQVNFKSkKKyNk
ZWZpbmUgV0VCS0lUX1dFQl9WSUVXX0JBU0VfR0VUX0NMQVNTKG9iamVjdCkgKEdfVFlQRV9JTlNU
QU5DRV9HRVRfQ0xBU1MoKG9iamVjdCksIFdFQktJVF9UWVBFX1dFQl9WSUVXX0JBU0UsIFdlYktp
dFdlYlZpZXdCYXNlQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViVmlld0Jhc2Ug
V2ViS2l0V2ViVmlld0Jhc2U7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViVmlld0Jhc2VDbGFz
cyBXZWJLaXRXZWJWaWV3QmFzZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdC
YXNlUHJpdmF0ZSBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0V2Vi
Vmlld0Jhc2UgeworICAgIEd0a1dpZGdldCBwYXJlbnRJbnN0YW5jZTsKKyAgICAvKjwgcHJpdmF0
ZSA+Ki8KKyAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXY7Cit9OworCitzdHJ1Y3Qg
X1dlYktpdFdlYlZpZXdCYXNlQ2xhc3MgeworICAgIEd0a1dpZGdldENsYXNzIHBhcmVudENsYXNz
OworCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93
ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAo
dm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJL
SVRfQVBJIEdUeXBlCit3ZWJraXRfd2ViX3ZpZXdfYmFzZV9nZXRfdHlwZSAodm9pZCk7CisKK0df
RU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBXZWJLaXRXZWJWaWV3QmFzZV9oICovCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRBcHBsaWNhdGlvbkluZm8u
aC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0QXBwbGljYXRpb25J
bmZvLmgKc2ltaWxhcml0eSBpbmRleCA5MyUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXBwbGljYXRpb25JbmZvLmguaW4KcmVuYW1lIHRvIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0QXBwbGljYXRpb25JbmZvLmgKaW5kZXgg
OWU4Y2U3OTNkZTg3Li4xODczNjIxNWEzMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdEFwcGxpY2F0aW9uSW5mby5oLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0QXBwbGljYXRpb25JbmZvLmgKQEAgLTE3LDEz
ICsxNywxNSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAotQEFQSV9T
SU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5TSURFX18pICYm
ICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQu
aD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgogCiAjaWZuZGVmIFdlYktpdEFw
cGxpY2F0aW9uSW5mb19oCiAjZGVmaW5lIFdlYktpdEFwcGxpY2F0aW9uSW5mb19oCiAKICNpbmNs
dWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktp
dERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgogCiBHX0JFR0lOX0RF
Q0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dEF1dGhlbnRpY2F0aW9uUmVxdWVzdC5oLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuaApzaW1pbGFyaXR5IGluZGV4IDk2JQpy
ZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRBdXRoZW50
aWNhdGlvblJlcXVlc3QuaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuaAppbmRleCAyMzM2NTNiMTYzZmIuLmU1
NDVjZDI3ODY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuaApAQCAtMTcsMTggKzE3
LDE2IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi1AQVBJX1NJTkdM
RV9IRUFERVJfQ0hFQ0tACisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRl
ZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBj
YW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0QXV0aGVu
dGljYXRpb25SZXF1ZXN0X2gKICNkZWZpbmUgV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0X2gK
IAotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdENyZWRlbnRpYWwuaD4KLSNp
bmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXREZWZpbmVzLmg+Ci0jaW5jbHVkZSA8
QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0U2VjdXJpdHlPcmlnaW4uaD4KLQotI2lmIFBMQVRG
T1JNKEdUSykKLSNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jZW5kaWYKKyNpbmNsdWRlIDx3cGUvV2Vi
S2l0Q3JlZGVudGlhbC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVk
ZSA8d3BlL1dlYktpdFNlY3VyaXR5T3JpZ2luLmg+CiAKIEdfQkVHSU5fREVDTFMKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRvY2xlYW51cHMu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0QXV0b2NsZWFudXBzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41ZTIwZjQzNWUyMzEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEF1
dG9jbGVhbnVwcy5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
SWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5TSURFX18pICYmICFkZWZpbmVk
KFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQuaD4gY2FuIGJl
IGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdEF1dG9jbGVhbnVw
c19oCisjZGVmaW5lIFdlYktpdEF1dG9jbGVhbnVwc19oCisKKyNpZmRlZiBHX0RFRklORV9BVVRP
UFRSX0NMRUFOVVBfRlVOQworI2lmbmRlZiBfX0dJX1NDQU5ORVJfXworCitHX0RFRklORV9BVVRP
UFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LCBnX29iamVjdF91
bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRBdXRvbWF0aW9uU2Vz
c2lvbiwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2Vi
S2l0QmFja0ZvcndhcmRMaXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xF
QU5VUF9GVU5DIChXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtLCBnX29iamVjdF91bnJlZikKK0df
REVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRDb250ZXh0TWVudSwgZ19vYmplY3Rf
dW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0Q29udGV4dE1lbnVJ
dGVtLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJL
aXRDb29raWVNYW5hZ2VyLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5V
UF9GVU5DIChXZWJLaXREb3dubG9hZCwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRS
X0NMRUFOVVBfRlVOQyAoV2ViS2l0RWRpdG9yU3RhdGUsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJ
TkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEZhdmljb25EYXRhYmFzZSwgZ19vYmplY3Rf
dW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0RmlsZUNob29zZXJS
ZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChX
ZWJLaXRGaW5kQ29udHJvbGxlciwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NM
RUFOVVBfRlVOQyAoV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikK
K0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5D
IChXZWJLaXRIaXRUZXN0UmVzdWx0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJf
Q0xFQU5VUF9GVU5DIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQsIGdfb2JqZWN0X3VucmVmKQor
R19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQ
bHVnaW5zUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BU
Ul9DTEVBTlVQX0ZVTkMgKFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgZ19vYmplY3Rf
dW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0Tm90aWZpY2F0aW9u
LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9B
VVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0UGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3Vu
cmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFBsdWdpbiwgZ19vYmpl
Y3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0UG9saWN5RGVj
aXNpb24sIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdl
YktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24sIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVU
T1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFNlY3VyaXR5TWFuYWdlciwgZ19vYmplY3RfdW5yZWYp
CitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0U2V0dGluZ3MsIGdfb2JqZWN0
X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVJlcXVlc3Qs
IGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVS
SVJlc3BvbnNlLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5D
IChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9Q
VFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSwgZ19vYmplY3RfdW5yZWYp
CitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJT
dG9yZSwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2Vi
S2l0VXNlckNvbnRlbnRNYW5hZ2VyLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJf
Q0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwgZ19vYmplY3Rf
dW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNlck1lc3NhZ2Us
IGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFdl
YkNvbnRleHQsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMg
KFdlYktpdFdlYlJlc291cmNlLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xF
QU5VUF9GVU5DIChXZWJLaXRXZWJWaWV3LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9Q
VFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIsIGdfb2JqZWN0X3VucmVm
KQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFdlYnNpdGVQb2xpY2llcywg
Z19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0V2lu
ZG93UHJvcGVydGllcywgZ19vYmplY3RfdW5yZWYpCisKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5V
UF9GVU5DIChXZWJLaXRBcHBsaWNhdGlvbkluZm8sIHdlYmtpdF9hcHBsaWNhdGlvbl9pbmZvX3Vu
cmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdENyZWRlbnRpYWwsIHdl
YmtpdF9jcmVkZW50aWFsX2ZyZWUpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2Vi
S2l0SVRQRmlyc3RQYXJ0eSwgd2Via2l0X2l0cF9maXJzdF9wYXJ0eV91bnJlZikKK0dfREVGSU5F
X0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRJVFBUaGlyZFBhcnR5LCB3ZWJraXRfaXRwX3Ro
aXJkX3BhcnR5X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEph
dmFzY3JpcHRSZXN1bHQsIHdlYmtpdF9qYXZhc2NyaXB0X3Jlc3VsdF91bnJlZikKK0dfREVGSU5F
X0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRNZW1vcnlQcmVzc3VyZVNldHRpbmdzLCB3ZWJr
aXRfbWVtb3J5X3ByZXNzdXJlX3NldHRpbmdzX2ZyZWUpCitHX0RFRklORV9BVVRPUFRSX0NMRUFO
VVBfRlVOQyAoV2ViS2l0TWltZUluZm8sIHdlYmtpdF9taW1lX2luZm9fdW5yZWYpCitHX0RFRklO
RV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiwgd2Via2l0X25h
dmlnYXRpb25fYWN0aW9uX2ZyZWUpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2Vi
S2l0TmV0d29ya1Byb3h5U2V0dGluZ3MsIHdlYmtpdF9uZXR3b3JrX3Byb3h5X3NldHRpbmdzX2Zy
ZWUpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0U2VjdXJpdHlPcmlnaW4s
IHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBf
RlVOQyAoV2ViS2l0VXNlclNjcmlwdCwgd2Via2l0X3VzZXJfc2NyaXB0X3VucmVmKQorR19ERUZJ
TkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJTdHlsZVNoZWV0LCB3ZWJraXRfdXNl
cl9zdHlsZV9zaGVldF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJL
aXRVc2VyQ29udGVudEZpbHRlciwgd2Via2l0X3VzZXJfY29udGVudF9maWx0ZXJfdW5yZWYpCitH
X0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0V2Vic2l0ZURhdGEsIHdlYmtpdF93
ZWJzaXRlX2RhdGFfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0
V2ViVmlld1Nlc3Npb25TdGF0ZSwgd2Via2l0X3dlYl92aWV3X3Nlc3Npb25fc3RhdGVfdW5yZWYp
CisKKyNlbmRpZiAvKiBfX0dJX1NDQU5ORVJfXyAqLworI2VuZGlmIC8qIEdfREVGSU5FX0FVVE9Q
VFJfQ0xFQU5VUF9GVU5DICovCisKKyNlbmRpZiAvKiBXZWJLaXRBdXRvY2xlYW51cHNfaCAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0b21h
dGlvblNlc3Npb24uaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
QXV0b21hdGlvblNlc3Npb24uaApzaW1pbGFyaXR5IGluZGV4IDk0JQpyZW5hbWUgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5oLmlu
CnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEF1dG9tYXRp
b25TZXNzaW9uLmgKaW5kZXggNjMzZTI5MzdiMGUzLi4yYWY4NTM3ZTBlN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEF1dG9tYXRpb25TZXNzaW9u
LmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRvbWF0
aW9uU2Vzc2lvbi5oCkBAIC0xNywxNCArMTcsMTYgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgogICovCiAKLUBBUElfU0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAhZGVmaW5lZChf
X1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vy
cm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5k
aWYKIAogI2lmbmRlZiBXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbl9oCiAjZGVmaW5lIFdlYktpdEF1
dG9tYXRpb25TZXNzaW9uX2gKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8
QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0QXBwbGljYXRpb25JbmZvLmg+Ci0jaW5jbHVkZSA8
QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJL
aXRBcHBsaWNhdGlvbkluZm8uaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgogCiBH
X0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5oLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRCYWNrRm9yd2FyZExpc3QuaApzaW1pbGFyaXR5IGluZGV4IDk0JQpyZW5h
bWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRCYWNrRm9yd2Fy
ZExpc3QuaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRCYWNrRm9yd2FyZExpc3QuaAppbmRleCAxNTllN2QwNzRhMDUuLjAyNGIyMGFhYmE4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QmFja0Zvcndh
cmRMaXN0LmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRC
YWNrRm9yd2FyZExpc3QuaApAQCAtMTcsMTQgKzE3LDE2IEBACiAgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KICAqLwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRlZmlu
ZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikK
KyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgor
I2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0QmFja0ZvcndhcmRMaXN0X2gKICNkZWZpbmUgV2ViS2l0
QmFja0ZvcndhcmRMaXN0X2gKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8
QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5oPgotI2luY2x1
ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUv
V2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVz
Lmg+CiAKIEdfQkVHSU5fREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5oLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtLmgKc2ltaWxhcml0
eSBpbmRleCA5NCUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0uaAppbmRleCAyMDgzOTE3
MTMxZDMuLjc4ZDhiOTdlM2I3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5oLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5oCkBAIC0xNywx
MyArMTcsMTUgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLUBBUElf
U0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAm
JiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0
Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRC
YWNrRm9yd2FyZExpc3RJdGVtX2gKICNkZWZpbmUgV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbV9o
CiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVG
SVhAL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgogCiBH
X0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdENvbnRleHRNZW51LmguaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdENvbnRleHRNZW51LmgKc2ltaWxhcml0eSBpbmRleCA5NSUKcmVuYW1lIGZyb20g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnUuaC5pbgpy
ZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRDb250ZXh0TWVu
dS5oCmluZGV4IGM0MDM3ODUwM2Q0Yi4uZDliYzhmODkwZjJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVudS5oLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Q29udGV4dE1lbnUuaApAQCAtMTcs
MTMgKzE3LDE1IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi1AU0hB
UkVEX0FQSV9TSU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5T
SURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pICYmICFkZWZpbmVkKF9fV0VC
S0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5o
PiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0Q29u
dGV4dE1lbnVfaAogI2RlZmluZSBXZWJLaXRDb250ZXh0TWVudV9oCiAKICNpbmNsdWRlIDxnbGli
LW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERlZmluZXMu
aD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Q29udGV4dE1l
bnVBY3Rpb25zLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbnRl
eHRNZW51QWN0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
MzAxYzIxOWQ4M2FlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRDb250ZXh0TWVudUFjdGlvbnMuaApAQCAtMCwwICsxLDEyNCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVRf
SF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikgJiYgIWRlZmluZWQo
X19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKQorI2Vycm9yICJPbmx5IDx3cGUvd2Vi
a2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2luY2x1ZGUgPGds
aWIuaD4KKworI2lmbmRlZiBXZWJLaXRDb250ZXh0TWVudUFjdGlvbnNfaAorI2RlZmluZSBXZWJL
aXRDb250ZXh0TWVudUFjdGlvbnNfaAorCitHX0JFR0lOX0RFQ0xTCisKKy8qKgorICogV2ViS2l0
Q29udGV4dE1lbnVBY3Rpb246CisgKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fTk9fQUNU
SU9OOiBObyBhY3Rpb24sIHVzZWQgYnkgc2VwYXJhdG9yIG1lbnUgaXRlbXMuCisgKiBAV0VCS0lU
X0NPTlRFWFRfTUVOVV9BQ1RJT05fT1BFTl9MSU5LOiBPcGVuIGN1cnJlbnQgbGluay4KKyAqIEBX
RUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9PUEVOX0xJTktfSU5fTkVXX1dJTkRPVzogT3BlbiBj
dXJyZW50IGxpbmsgaW4gYSBuZXcgd2luZG93LgorICogQFdFQktJVF9DT05URVhUX01FTlVfQUNU
SU9OX0RPV05MT0FEX0xJTktfVE9fRElTSzogRG93bmxvYWQgbGluayBkZXN0aW5hdGlvbi4KKyAq
IEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9DT1BZX0xJTktfVE9fQ0xJUEJPQVJEOiBDb3B5
IGxpbmsgbG9jYXRpb24gdG8gdGhlIGNsaXBib2FyZC4KKyAqIEBXRUJLSVRfQ09OVEVYVF9NRU5V
X0FDVElPTl9PUEVOX0lNQUdFX0lOX05FV19XSU5ET1c6IE9wZW4gY3VycmVudCBpbWFnZSBpbiBh
IG5ldyB3aW5kb3cuCisgKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fRE9XTkxPQURfSU1B
R0VfVE9fRElTSzogRG93bmxvYWQgY3VycmVudCBpbWFnZS4KKyAqIEBXRUJLSVRfQ09OVEVYVF9N
RU5VX0FDVElPTl9DT1BZX0lNQUdFX1RPX0NMSVBCT0FSRDogQ29weSBjdXJyZW50IGltYWdlIHRv
IHRoZSBjbGlwYm9hcmQuCisgKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fT1BFTl9GUkFN
RV9JTl9ORVdfV0lORE9XOiBPcGVuIGN1cnJlbnQgZnJhbWUgaW4gYSBuZXcgd2luZG93LgorICog
QFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0dPX0JBQ0s6IExvYWQgdGhlIHByZXZpb3VzIGhp
c3RvcnkgaXRlbS4KKyAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9HT19GT1JXQVJEOiBM
b2FkIHRoZSBuZXh0IGhpc3RvcnkgaXRlbS4KKyAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElP
Tl9TVE9QOiBTdG9wIGFueSBvbmdvaW5nIGxvYWRpbmcgb3BlcmF0aW9uLgorICogQFdFQktJVF9D
T05URVhUX01FTlVfQUNUSU9OX1JFTE9BRDogUmVsb2FkIHRoZSBjb250ZW50cyBvZiBjdXJyZW50
IHZpZXcuCisgKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fQ09QWTogQ29weSBjdXJyZW50
IHNlbGVjdGlvbiB0aGUgY2xpcGJvYXJkLgorICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9O
X0NVVDogQ3V0IGN1cnJlbnQgc2VsZWN0aW9uIHRvIHRoZSBjbGlwYm9hcmQuCisgKiBAV0VCS0lU
X0NPTlRFWFRfTUVOVV9BQ1RJT05fUEFTVEU6IFBhc3RlIGNsaXBib2FyZCBjb250ZW50cy4KKyAq
IEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9TUEVMTElOR19HVUVTUzogQSBwcm9wb3NlZCBy
ZXBsYWNlbWVudCBmb3IgYSBtaXNzcGVsbGVkIHdvcmQuCisgKiBAV0VCS0lUX0NPTlRFWFRfTUVO
VV9BQ1RJT05fTk9fR1VFU1NFU19GT1VORDogQW4gaW5kaWNhdG9yIHRoYXQgc3BlbGxjaGVja2lu
ZyBmb3VuZCBubyBwcm9wb3NlZCByZXBsYWNlbWVudHMuCisgKiBAV0VCS0lUX0NPTlRFWFRfTUVO
VV9BQ1RJT05fSUdOT1JFX1NQRUxMSU5HOiBDYXVzZXMgdGhlIHNwZWxsY2hlY2tlciB0byBpZ25v
cmUgdGhlIHdvcmQgZm9yIHRoaXMgc2Vzc2lvbi4KKyAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FD
VElPTl9MRUFSTl9TUEVMTElORzogQ2F1c2VzIHRoZSBzcGVsbGNoZWNrZXIgdG8gYWRkIHRoZSB3
b3JkIHRvIHRoZSBkaWN0aW9uYXJ5LgorICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0lH
Tk9SRV9HUkFNTUFSOiBJZ25vcmUgZ3JhbW1hci4KKyAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FD
VElPTl9GT05UX01FTlU6IEZvbnQgb3B0aW9ucyBtZW51LgorICogQFdFQktJVF9DT05URVhUX01F
TlVfQUNUSU9OX0JPTEQ6IEJvbGQuCisgKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fSVRB
TElDOiBJdGFsaWMuCisgKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fVU5ERVJMSU5FOiBV
bmRlcmxpbmUuCisgKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fT1VUTElORTogT3V0bGlu
ZS4KKyAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9JTlNQRUNUX0VMRU1FTlQ6IE9wZW4g
Y3VycmVudCBlbGVtZW50IGluIHRoZSBpbnNwZWN0b3IuCisgKiBAV0VCS0lUX0NPTlRFWFRfTUVO
VV9BQ1RJT05fT1BFTl9WSURFT19JTl9ORVdfV0lORE9XOiBPcGVuIGN1cnJlbnQgdmlkZW8gZWxl
bWVudCBpbiBhIG5ldyB3aW5kb3cuCisgKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fT1BF
Tl9BVURJT19JTl9ORVdfV0lORE9XOiBPcGVuIGN1cnJlbnQgYXVkaW8gZWxlbWVudCBpbiBhIG5l
dyB3aW5kb3cuCisgKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fQ09QWV9WSURFT19MSU5L
X1RPX0NMSVBCT0FSRDogQ29weSB2aWRlbyBsaW5rIGxvY2F0aW9uIGluIHRvIHRoZSBjbGlwYm9h
cmQuCisgKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fQ09QWV9BVURJT19MSU5LX1RPX0NM
SVBCT0FSRDogQ29weSBhdWRpbyBsaW5rIGxvY2F0aW9uIGluIHRvIHRoZSBjbGlwYm9hcmQuCisg
KiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fVE9HR0xFX01FRElBX0NPTlRST0xTOiBFbmFi
bGUgb3IgZGlzYWJsZSBtZWRpYSBjb250cm9scy4KKyAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FD
VElPTl9UT0dHTEVfTUVESUFfTE9PUDogRW5hYmxlIG9yIGRpc2FibGUgbWVkaWEgbG9vcC4KKyAq
IEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9FTlRFUl9WSURFT19GVUxMU0NSRUVOOiBTaG93
IGN1cnJlbnQgdmlkZW8gZWxlbWVudCBpbiBmdWxsc2NyZWVuIG1vZGUuCisgKiBAV0VCS0lUX0NP
TlRFWFRfTUVOVV9BQ1RJT05fTUVESUFfUExBWTogUGxheSBjdXJyZW50IG1lZGlhIGVsZW1lbnQu
CisgKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fTUVESUFfUEFVU0U6IFBhdXNlIGN1cnJl
bnQgbWVkaWEgZWxlbWVudC4KKyAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9NRURJQV9N
VVRFOiBNdXRlIGN1cnJlbnQgbWVkaWEgZWxlbWVudC4KKyAqIEBXRUJLSVRfQ09OVEVYVF9NRU5V
X0FDVElPTl9ET1dOTE9BRF9WSURFT19UT19ESVNLOiBEb3dubG9hZCB2aWRlbyB0byBkaXNrLiBT
aW5jZSAyLjIKKyAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9ET1dOTE9BRF9BVURJT19U
T19ESVNLOiBEb3dubG9hZCBhdWRpbyB0byBkaXNrLiBTaW5jZSAyLjIKKyAqIEBXRUJLSVRfQ09O
VEVYVF9NRU5VX0FDVElPTl9DVVNUT006IEN1c3RvbSBhY3Rpb24gZGVmaW5lZCBieSBhcHBsaWNh
dGlvbnMuCisgKgorICogRW51bSB2YWx1ZXMgdXNlZCB0byBkZW5vdGUgdGhlIHN0b2NrIGFjdGlv
bnMgZm9yCisgKiAjV2ViS2l0Q29udGV4dE1lbnVJdGVtPCEtLSAtLT5zCisgKi8KK3R5cGVkZWYg
ZW51bSB7CisgICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fTk9fQUNUSU9OID0gMCwKKwor
ICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX09QRU5fTElOSywKKyAgICBXRUJLSVRfQ09O
VEVYVF9NRU5VX0FDVElPTl9PUEVOX0xJTktfSU5fTkVXX1dJTkRPVywKKyAgICBXRUJLSVRfQ09O
VEVYVF9NRU5VX0FDVElPTl9ET1dOTE9BRF9MSU5LX1RPX0RJU0ssCisgICAgV0VCS0lUX0NPTlRF
WFRfTUVOVV9BQ1RJT05fQ09QWV9MSU5LX1RPX0NMSVBCT0FSRCwKKyAgICBXRUJLSVRfQ09OVEVY
VF9NRU5VX0FDVElPTl9PUEVOX0lNQUdFX0lOX05FV19XSU5ET1csCisgICAgV0VCS0lUX0NPTlRF
WFRfTUVOVV9BQ1RJT05fRE9XTkxPQURfSU1BR0VfVE9fRElTSywKKyAgICBXRUJLSVRfQ09OVEVY
VF9NRU5VX0FDVElPTl9DT1BZX0lNQUdFX1RPX0NMSVBCT0FSRCwKKyAgICBXRUJLSVRfQ09OVEVY
VF9NRU5VX0FDVElPTl9PUEVOX0ZSQU1FX0lOX05FV19XSU5ET1csCisgICAgV0VCS0lUX0NPTlRF
WFRfTUVOVV9BQ1RJT05fR09fQkFDSywKKyAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9H
T19GT1JXQVJELAorICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX1NUT1AsCisgICAgV0VC
S0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fUkVMT0FELAorICAgIFdFQktJVF9DT05URVhUX01FTlVf
QUNUSU9OX0NPUFksCisgICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fQ1VULAorICAgIFdF
QktJVF9DT05URVhUX01FTlVfQUNUSU9OX1BBU1RFLAorICAgIFdFQktJVF9DT05URVhUX01FTlVf
QUNUSU9OX1NQRUxMSU5HX0dVRVNTLAorICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX05P
X0dVRVNTRVNfRk9VTkQsCisgICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fSUdOT1JFX1NQ
RUxMSU5HLAorICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0xFQVJOX1NQRUxMSU5HLAor
ICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0lHTk9SRV9HUkFNTUFSLAorICAgIFdFQktJ
VF9DT05URVhUX01FTlVfQUNUSU9OX0ZPTlRfTUVOVSwKKyAgICBXRUJLSVRfQ09OVEVYVF9NRU5V
X0FDVElPTl9CT0xELAorICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0lUQUxJQywKKyAg
ICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9VTkRFUkxJTkUsCisgICAgV0VCS0lUX0NPTlRF
WFRfTUVOVV9BQ1RJT05fT1VUTElORSwKKyAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9J
TlNQRUNUX0VMRU1FTlQsCisgICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fT1BFTl9WSURF
T19JTl9ORVdfV0lORE9XLAorICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX09QRU5fQVVE
SU9fSU5fTkVXX1dJTkRPVywKKyAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9DT1BZX1ZJ
REVPX0xJTktfVE9fQ0xJUEJPQVJELAorICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0NP
UFlfQVVESU9fTElOS19UT19DTElQQk9BUkQsCisgICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJ
T05fVE9HR0xFX01FRElBX0NPTlRST0xTLAorICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9O
X1RPR0dMRV9NRURJQV9MT09QLAorICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0VOVEVS
X1ZJREVPX0ZVTExTQ1JFRU4sCisgICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fTUVESUFf
UExBWSwKKyAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9NRURJQV9QQVVTRSwKKyAgICBX
RUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9NRURJQV9NVVRFLAorICAgIFdFQktJVF9DT05URVhU
X01FTlVfQUNUSU9OX0RPV05MT0FEX1ZJREVPX1RPX0RJU0ssCisgICAgV0VCS0lUX0NPTlRFWFRf
TUVOVV9BQ1RJT05fRE9XTkxPQURfQVVESU9fVE9fRElTSywKKworICAgIFdFQktJVF9DT05URVhU
X01FTlVfQUNUSU9OX0NVU1RPTSA9IDEwMDAwCit9IFdlYktpdENvbnRleHRNZW51QWN0aW9uOwor
CitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1dlYktpdENvbnRleHRNZW51SXRlbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uMTI0YTI1NGFmMTExCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaApAQCAt
MCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYg
IWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxB
VElPTikgJiYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKQorI2Vy
cm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5k
aWYKKworI2lmbmRlZiBXZWJLaXRDb250ZXh0TWVudUl0ZW1faAorI2RlZmluZSBXZWJLaXRDb250
ZXh0TWVudUl0ZW1faAorCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1ZGUgPHdwZS9XZWJL
aXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdENvbnRleHRNZW51Lmg+CisjaW5jbHVk
ZSA8d3BlL1dlYktpdENvbnRleHRNZW51QWN0aW9ucy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNk
ZWZpbmUgV0VCS0lUX1RZUEVfQ09OVEVYVF9NRU5VX0lURU0gICAgICAgICAgICAod2Via2l0X2Nv
bnRleHRfbWVudV9pdGVtX2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9DT05URVhUX01FTlVf
SVRFTShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBX
RUJLSVRfVFlQRV9DT05URVhUX01FTlVfSVRFTSwgV2ViS2l0Q29udGV4dE1lbnVJdGVtKSkKKyNk
ZWZpbmUgV0VCS0lUX0lTX0NPTlRFWFRfTUVOVV9JVEVNKG9iaikgICAgICAgICAoR19UWVBFX0NI
RUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX0NPTlRFWFRfTUVOVV9JVEVNKSkK
KyNkZWZpbmUgV0VCS0lUX0NPTlRFWFRfTUVOVV9JVEVNX0NMQVNTKGtsYXNzKSAgICAoR19UWVBF
X0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0NPTlRFWFRfTUVOVV9JVEVN
LCBXZWJLaXRDb250ZXh0TWVudUl0ZW1DbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19DT05URVhU
X01FTlVfSVRFTV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyks
ICBXRUJLSVRfVFlQRV9DT05URVhUX01FTlVfSVRFTSkpCisjZGVmaW5lIFdFQktJVF9DT05URVhU
X01FTlVfSVRFTV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9i
aiksICBXRUJLSVRfVFlQRV9DT05URVhUX01FTlVfSVRFTSwgV2ViS2l0Q29udGV4dE1lbnVJdGVt
Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0Q29udGV4dE1lbnVJdGVtICAgICAgICBX
ZWJLaXRDb250ZXh0TWVudUl0ZW07Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0Q29udGV4dE1lbnVJ
dGVtQ2xhc3MgICBXZWJLaXRDb250ZXh0TWVudUl0ZW1DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRDb250ZXh0TWVudUl0ZW1Qcml2YXRlIFdlYktpdENvbnRleHRNZW51SXRlbVByaXZhdGU7
CisKK3N0cnVjdCBfV2ViS2l0Q29udGV4dE1lbnVJdGVtIHsKKyAgICBHSW5pdGlhbGx5VW5vd25l
ZCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRDb250ZXh0TWVudUl0
ZW1Qcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRDb250ZXh0TWVudUl0ZW1DbGFz
cyB7CisgICAgR0luaXRpYWxseVVub3duZWRDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICAvKjwg
cHJpdmF0ZSA+Ki8KKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307
CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9nZXRfdHlwZSAg
ICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0Q29udGV4
dE1lbnVJdGVtICoKK3dlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9uZXdfZnJvbV9nYWN0aW9uICAg
ICAgICAgICAgICAgICAoR0FjdGlvbiAgICAgICAgICAgICAgICAqYWN0aW9uLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn
Y2hhciAgICAgICAgICAgICpsYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR1ZhcmlhbnQgICAgICAgICAgICAgICAqdGFyZ2V0
KTsKKworV0VCS0lUX0FQSSBXZWJLaXRDb250ZXh0TWVudUl0ZW0gKgord2Via2l0X2NvbnRleHRf
bWVudV9pdGVtX25ld19mcm9tX3N0b2NrX2FjdGlvbiAgICAgICAgICAgIChXZWJLaXRDb250ZXh0
TWVudUFjdGlvbiBhY3Rpb24pOworCitXRUJLSVRfQVBJIFdlYktpdENvbnRleHRNZW51SXRlbSAq
Cit3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fbmV3X2Zyb21fc3RvY2tfYWN0aW9uX3dpdGhfbGFi
ZWwgKFdlYktpdENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAg
ICAgICAqbGFiZWwpOworCitXRUJLSVRfQVBJIFdlYktpdENvbnRleHRNZW51SXRlbSAqCit3ZWJr
aXRfY29udGV4dF9tZW51X2l0ZW1fbmV3X3dpdGhfc3VibWVudSAgICAgICAgICAgICAgICAgKGNv
bnN0IGdjaGFyICAgICAgICAgICAgKmxhYmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRDb250ZXh0TWVudSAgICAgICpz
dWJtZW51KTsKKworV0VCS0lUX0FQSSBXZWJLaXRDb250ZXh0TWVudUl0ZW0gKgord2Via2l0X2Nv
bnRleHRfbWVudV9pdGVtX25ld19zZXBhcmF0b3IgICAgICAgICAgICAgICAgICAgICh2b2lkKTsK
KworV0VCS0lUX0FQSSBHQWN0aW9uICoKK3dlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9nZXRfZ2Fj
dGlvbiAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0Q29udGV4dE1lbnVJdGVtICAqaXRlbSk7
CisKK1dFQktJVF9BUEkgV2ViS2l0Q29udGV4dE1lbnVBY3Rpb24KK3dlYmtpdF9jb250ZXh0X21l
bnVfaXRlbV9nZXRfc3RvY2tfYWN0aW9uICAgICAgICAgICAgICAgICAoV2ViS2l0Q29udGV4dE1l
bnVJdGVtICAqaXRlbSk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9jb250ZXh0X21l
bnVfaXRlbV9pc19zZXBhcmF0b3IgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0Q29udGV4dE1l
bnVJdGVtICAqaXRlbSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2NvbnRleHRfbWVudV9p
dGVtX3NldF9zdWJtZW51ICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRDb250ZXh0TWVudUl0
ZW0gICppdGVtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRDb250ZXh0TWVudSAgICAgICpzdWJtZW51KTsKKworV0VCS0lU
X0FQSSBXZWJLaXRDb250ZXh0TWVudSAqCit3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fZ2V0X3N1
Ym1lbnUgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdENvbnRleHRNZW51SXRlbSAgKml0ZW0p
OworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0Q29va2llTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRDb29raWVNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi4yZDI0M2YzMmU1NDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvb2tpZU1hbmFnZXIuaApAQCAtMCww
ICsxLDE1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEVuZGxlc3MgTW9iaWxlLCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIsMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJL
SVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAi
T25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisK
KyNpZm5kZWYgV2ViS2l0Q29va2llTWFuYWdlcl9oCisjZGVmaW5lIFdlYktpdENvb2tpZU1hbmFn
ZXJfaAorCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Cisj
aW5jbHVkZSA8bGlic291cC9zb3VwLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4K
KworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX0NPT0tJRV9NQU5BR0VSICAg
ICAgICAgICAgKHdlYmtpdF9jb29raWVfbWFuYWdlcl9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJL
SVRfQ09PS0lFX01BTkFHRVIob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0Vf
Q0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfQ09PS0lFX01BTkFHRVIsIFdlYktpdENvb2tpZU1hbmFn
ZXIpKQorI2RlZmluZSBXRUJLSVRfSVNfQ09PS0lFX01BTkFHRVIob2JqKSAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfQ09PS0lFX01BTkFHRVIp
KQorI2RlZmluZSBXRUJLSVRfQ09PS0lFX01BTkFHRVJfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfQ09PS0lFX01BTkFHRVIsIFdl
YktpdENvb2tpZU1hbmFnZXJDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19DT09LSUVfTUFOQUdF
Ul9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRf
VFlQRV9DT09LSUVfTUFOQUdFUikpCisjZGVmaW5lIFdFQktJVF9DT09LSUVfTUFOQUdFUl9HRVRf
Q0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQ
RV9DT09LSUVfTUFOQUdFUiwgV2ViS2l0Q29va2llTWFuYWdlckNsYXNzKSkKKwordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdENvb2tpZU1hbmFnZXIgICAgICAgIFdlYktpdENvb2tpZU1hbmFnZXI7Cit0
eXBlZGVmIHN0cnVjdCBfV2ViS2l0Q29va2llTWFuYWdlckNsYXNzICAgV2ViS2l0Q29va2llTWFu
YWdlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdENvb2tpZU1hbmFnZXJQcml2YXRlIFdl
YktpdENvb2tpZU1hbmFnZXJQcml2YXRlOworCisvKioKKyAqIFdlYktpdENvb2tpZVBlcnNpc3Rl
bnRTdG9yYWdlOgorICogQFdFQktJVF9DT09LSUVfUEVSU0lTVEVOVF9TVE9SQUdFX1RFWFQ6IENv
b2tpZXMgYXJlIHN0b3JlZCBpbiBhIHRleHQKKyAqICBmaWxlIGluIHRoZSBNb3ppbGxhICJjb29r
aWVzLnR4dCIgZm9ybWF0LgorICogQFdFQktJVF9DT09LSUVfUEVSU0lTVEVOVF9TVE9SQUdFX1NR
TElURTogQ29va2llcyBhcmUgc3RvcmVkIGluIGEgU1FMaXRlCisgKiAgZmlsZSBpbiB0aGUgY3Vy
cmVudCBNb3ppbGxhIGZvcm1hdC4KKyAqCisgKiBFbnVtIHZhbHVlcyB1c2VkIHRvIGRlbm90ZSB0
aGUgY29va2llIHBlcnNpc3RlbnQgc3RvcmFnZSB0eXBlcy4KKyAqLwordHlwZWRlZiBlbnVtIHsK
KyAgICBXRUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9URVhULAorICAgIFdFQktJVF9D
T09LSUVfUEVSU0lTVEVOVF9TVE9SQUdFX1NRTElURQorfSBXZWJLaXRDb29raWVQZXJzaXN0ZW50
U3RvcmFnZTsKKworLyoqCisgKiBXZWJLaXRDb29raWVBY2NlcHRQb2xpY3k6CisgKiBAV0VCS0lU
X0NPT0tJRV9QT0xJQ1lfQUNDRVBUX0FMV0FZUzogQWNjZXB0IGFsbCBjb29raWVzIHVuY29uZGl0
aW9uYWxseS4KKyAqIEBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTkVWRVI6IFJlamVjdCBh
bGwgY29va2llcyB1bmNvbmRpdGlvbmFsbHkuCisgKiBAV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUND
RVBUX05PX1RISVJEX1BBUlRZOiBBY2NlcHQgb25seSBjb29raWVzIHNldCBieSB0aGUgbWFpbiBk
b2N1bWVudCBsb2FkZWQuCisgKgorICogRW51bSB2YWx1ZXMgdXNlZCB0byBkZW5vdGUgdGhlIGNv
b2tpZSBhY2NlcHRhbmNlIHBvbGljaWVzLgorICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJ
VF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVMsCisgICAgV0VCS0lUX0NPT0tJRV9QT0xJQ1lf
QUNDRVBUX05FVkVSLAorICAgIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9OT19USElSRF9Q
QVJUWQorfSBXZWJLaXRDb29raWVBY2NlcHRQb2xpY3k7CisKK3N0cnVjdCBfV2ViS2l0Q29va2ll
TWFuYWdlciB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAg
ICBXZWJLaXRDb29raWVNYW5hZ2VyUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0
Q29va2llTWFuYWdlckNsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisg
ICAgLyo8IHByaXZhdGUgPiovCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7
CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9p
ZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfY29va2llX21hbmFnZXJfZ2V0X3R5
cGUgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X2Nvb2tpZV9tYW5hZ2VyX3NldF9wZXJzaXN0ZW50X3N0b3JhZ2UgICAgICAgICAgKFdlYktp
dENvb2tpZU1hbmFnZXIgICAgICAgICAgKmNvb2tpZV9tYW5hZ2VyLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAg
ICAgICAgICAgICAgKmZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYktpdENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlIHN0b3Jh
Z2UpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9jb29raWVfbWFuYWdlcl9zZXRfYWNjZXB0
X3BvbGljeSAgICAgICAgICAgICAgIChXZWJLaXRDb29raWVNYW5hZ2VyICAgICAgICAgICpjb29r
aWVfbWFuYWdlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXZWJLaXRDb29raWVBY2NlcHRQb2xpY3kgICAgICBwb2xpY3kpOworCitXRUJL
SVRfQVBJIHZvaWQKK3dlYmtpdF9jb29raWVfbWFuYWdlcl9nZXRfYWNjZXB0X3BvbGljeSAgICAg
ICAgICAgICAgIChXZWJLaXRDb29raWVNYW5hZ2VyICAgICAgICAgICpjb29raWVfbWFuYWdlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
Q2FuY2VsbGFibGUgICAgICAgICAgICAgICAgICpjYW5jZWxsYWJsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZWFkeUNhbGxi
YWNrICAgICAgICAgICBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgICAgICAgICAgICAgICAgICB1c2Vy
X2RhdGEpOworCitXRUJLSVRfQVBJIFdlYktpdENvb2tpZUFjY2VwdFBvbGljeQord2Via2l0X2Nv
b2tpZV9tYW5hZ2VyX2dldF9hY2NlcHRfcG9saWN5X2ZpbmlzaCAgICAgICAgKFdlYktpdENvb2tp
ZU1hbmFnZXIgICAgICAgICAgKmNvb2tpZV9tYW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAgICAgICAgICAg
ICAgICAgKnJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgICAgICAgICAgKiplcnJvcik7CisKK1dF
QktJVF9BUEkgdm9pZAord2Via2l0X2Nvb2tpZV9tYW5hZ2VyX2FkZF9jb29raWUgICAgICAgICAg
ICAgICAgICAgICAgKFdlYktpdENvb2tpZU1hbmFnZXIgICAgICAgICAgKmNvb2tpZV9tYW5hZ2Vy
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNvdXBDb29raWUgICAgICAgICAgICAgICAgICAgKmNvb2tpZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2FuY2VsbGFibGUgICAgICAg
ICAgICAgICAgICpjYW5jZWxsYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZWFkeUNhbGxiYWNrICAgICAgICAgICBjYWxs
YmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBncG9pbnRlciAgICAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEpOworCitXRUJLSVRf
QVBJIGdib29sZWFuCit3ZWJraXRfY29va2llX21hbmFnZXJfYWRkX2Nvb2tpZV9maW5pc2ggICAg
ICAgICAgICAgICAoV2ViS2l0Q29va2llTWFuYWdlciAgICAgICAgICAqY29va2llX21hbmFnZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R0FzeW5jUmVzdWx0ICAgICAgICAgICAgICAgICAqcmVzdWx0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAg
ICAgICAgICAqKmVycm9yKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfY29va2llX21hbmFn
ZXJfZ2V0X2Nvb2tpZXMgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0Q29va2llTWFuYWdlciAg
ICAgICAgICAqY29va2llX21hbmFnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAgICAqdXJp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdDYW5jZWxsYWJsZSAgICAgICAgICAgICAgICAgKmNhbmNlbGxhYmxlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1JlYWR5Q2Fs
bGJhY2sgICAgICAgICAgIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICAgICAgICAgICAgICAgIHVz
ZXJfZGF0YSk7CisKK1dFQktJVF9BUEkgR0xpc3QgKgord2Via2l0X2Nvb2tpZV9tYW5hZ2VyX2dl
dF9jb29raWVzX2ZpbmlzaCAgICAgICAgICAgICAgKFdlYktpdENvb2tpZU1hbmFnZXIgICAgICAg
ICAgKmNvb2tpZV9tYW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAgICAgICAgICAgICAgICAgKnJlc3VsdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
RXJyb3IgICAgICAgICAgICAgICAgICAgICAgKiplcnJvcik7CisKK1dFQktJVF9BUEkgdm9pZAor
d2Via2l0X2Nvb2tpZV9tYW5hZ2VyX2RlbGV0ZV9jb29raWUgICAgICAgICAgICAgICAgICAgKFdl
YktpdENvb2tpZU1hbmFnZXIgICAgICAgICAgKmNvb2tpZV9tYW5hZ2VyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXBDb29raWUgICAg
ICAgICAgICAgICAgICAgKmNvb2tpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHQ2FuY2VsbGFibGUgICAgICAgICAgICAgICAgICpjYW5j
ZWxsYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHQXN5bmNSZWFkeUNhbGxiYWNrICAgICAgICAgICBjYWxsYmFjaywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAg
ICAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3
ZWJraXRfY29va2llX21hbmFnZXJfZGVsZXRlX2Nvb2tpZV9maW5pc2ggICAgICAgICAgICAoV2Vi
S2l0Q29va2llTWFuYWdlciAgICAgICAgICAqY29va2llX21hbmFnZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0FzeW5jUmVzdWx0ICAg
ICAgICAgICAgICAgICAqcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAgICAgICAgICAqKmVycm9y
KTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdENyZWRlbnRpYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0Q3JlZGVudGlhbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uNWRjYjZlMDc5YzQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRDcmVkZW50aWFsLmgKQEAgLTAsMCArMSw5MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5TSURFX18pICYmICFk
ZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQuaD4g
Y2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdENyZWRl
bnRpYWxfaAorI2RlZmluZSBXZWJLaXRDcmVkZW50aWFsX2gKKworI2luY2x1ZGUgPGdsaWItb2Jq
ZWN0Lmg+CisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVz
Lmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9DUkVERU5USUFMICh3
ZWJraXRfY3JlZGVudGlhbF9nZXRfdHlwZSgpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0Q3Jl
ZGVudGlhbCBXZWJLaXRDcmVkZW50aWFsOworCisvKioKKyAqIFdlYktpdENyZWRlbnRpYWxQZXJz
aXN0ZW5jZToKKyAqIEBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FOiBDcmVkZW50
aWFsIGRvZXMgbm90IHBlcnNpc3QKKyAqIEBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9G
T1JfU0VTU0lPTjogQ3JlZGVudGlhbCBwZXJzaXN0cyBmb3Igc2Vzc2lvbiBvbmx5CisgKiBAV0VC
S0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfUEVSTUFORU5UOiBDcmVkZW50aWFsIHBlcnNpc3Rz
IHBlcm1hbmVudGx5CisgKgorICogRW51bSB2YWx1ZXMgcmVwcmVzZW50aW5nIHRoZSBkdXJhdGlv
biBmb3Igd2hpY2ggYSBjcmVkZW50aWFsIHBlcnNpc3RzLgorICoKKyAqIFNpbmNlOiAyLjIKKyAq
LwordHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05F
LAorICAgIFdFQktJVF9DUkVERU5USUFMX1BFUlNJU1RFTkNFX0ZPUl9TRVNTSU9OLAorICAgIFdF
QktJVF9DUkVERU5USUFMX1BFUlNJU1RFTkNFX1BFUk1BTkVOVAorfSBXZWJLaXRDcmVkZW50aWFs
UGVyc2lzdGVuY2U7CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9jcmVkZW50aWFsX2dldF90
eXBlICAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBXZWJLaXRDcmVkZW50aWFsICoK
K3dlYmtpdF9jcmVkZW50aWFsX25ldyAgICAgICAgICAgICAgICAgICAgIChjb25zdCBnY2hhciAg
ICAgICAgICAgICAgICAgKnVzZXJuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgICAqcGFzc3dvcmQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0Q3JlZGVudGlhbFBl
cnNpc3RlbmNlICBwZXJzaXN0ZW5jZSk7CisKK1dFQktJVF9BUEkgV2ViS2l0Q3JlZGVudGlhbCAq
Cit3ZWJraXRfY3JlZGVudGlhbF9uZXdfZm9yX2NlcnRpZmljYXRlX3BpbiAoY29uc3QgZ2NoYXIg
ICAgICAgICAgICAgICAgICpwaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3RlbmNlICBwZXJzaXN0ZW5jZSk7CisKK1dF
QktJVF9BUEkgV2ViS2l0Q3JlZGVudGlhbCAqCit3ZWJraXRfY3JlZGVudGlhbF9uZXdfZm9yX2Nl
cnRpZmljYXRlICAgICAoR1Rsc0NlcnRpZmljYXRlICAgICAgICAgICAgICpjZXJ0aWZpY2F0ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRDcmVkZW50
aWFsUGVyc2lzdGVuY2UgIHBlcnNpc3RlbmNlKTsKKworV0VCS0lUX0FQSSBXZWJLaXRDcmVkZW50
aWFsICoKK3dlYmtpdF9jcmVkZW50aWFsX2NvcHkgICAgICAgICAgICAgICAgICAgIChXZWJLaXRD
cmVkZW50aWFsICAgICAgICAgICAgKmNyZWRlbnRpYWwpOworCitXRUJLSVRfQVBJIHZvaWQKK3dl
YmtpdF9jcmVkZW50aWFsX2ZyZWUgICAgICAgICAgICAgICAgICAgIChXZWJLaXRDcmVkZW50aWFs
ICAgICAgICAgICAgKmNyZWRlbnRpYWwpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dl
YmtpdF9jcmVkZW50aWFsX2dldF91c2VybmFtZSAgICAgICAgICAgIChXZWJLaXRDcmVkZW50aWFs
ICAgICAgICAgICAgKmNyZWRlbnRpYWwpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dl
YmtpdF9jcmVkZW50aWFsX2dldF9wYXNzd29yZCAgICAgICAgICAgIChXZWJLaXRDcmVkZW50aWFs
ICAgICAgICAgICAgKmNyZWRlbnRpYWwpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRf
Y3JlZGVudGlhbF9oYXNfcGFzc3dvcmQgICAgICAgICAgICAoV2ViS2l0Q3JlZGVudGlhbCAgICAg
ICAgICAgICpjcmVkZW50aWFsKTsKKworV0VCS0lUX0FQSSBHVGxzQ2VydGlmaWNhdGUgKgord2Vi
a2l0X2NyZWRlbnRpYWxfZ2V0X2NlcnRpZmljYXRlICAgICAgICAgKFdlYktpdENyZWRlbnRpYWwg
ICAgICAgICAgICAqY3JlZGVudGlhbCk7CisKK1dFQktJVF9BUEkgV2ViS2l0Q3JlZGVudGlhbFBl
cnNpc3RlbmNlCit3ZWJraXRfY3JlZGVudGlhbF9nZXRfcGVyc2lzdGVuY2UgICAgICAgICAoV2Vi
S2l0Q3JlZGVudGlhbCAgICAgICAgICAgICpjcmVkZW50aWFsKTsKKworR19FTkRfREVDTFMKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXREZWZpbmVzLmguaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdERl
ZmluZXMuaApzaW1pbGFyaXR5IGluZGV4IDkxJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXREZWZpbmVzLmguaW4KcmVuYW1lIHRvIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0RGVmaW5lcy5oCmluZGV4IDkxNWEyYmI0MGU1OC4u
MjBmYTI1ODU2YTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXREZWZpbmVzLmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXREZWZpbmVzLmgKQEAgLTIzLDcgKzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi1AU0hBUkVEX0FQSV9TSU5HTEVfSEVBREVSX0NIRUNLQAor
I2lmICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09N
UElMQVRJT04pICYmICFkZWZpbmVkKF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykK
KyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgor
I2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0RGVmaW5lc19oCiAjZGVmaW5lIFdlYktpdERlZmluZXNf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RGV2
aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0LmguaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdERldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdC5oCnNpbWlsYXJpdHkgaW5k
ZXggOTQlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dERldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdC5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdERldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdC5oCmlu
ZGV4IDM5NTE3M2YxZDA4Ni4uNDI1ODQ1YTM0NDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXREZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3QuaC5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdERldmljZUluZm9Q
ZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0xNiwxMyArMTYsMTUgQEAKICAqICBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKICAqLwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRlZmluZWQo
X19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNl
cnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2Vu
ZGlmCiAKICNpZm5kZWYgV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0X2gKICNkZWZp
bmUgV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0X2gKIAogI2luY2x1ZGUgPGdsaWIt
b2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVmaW5lcy5o
PgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CiAKIEdfQkVHSU5fREVDTFMKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RG93bmxvYWQu
aC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0RG93bmxvYWQuaApz
aW1pbGFyaXR5IGluZGV4IDkzJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXREb3dubG9hZC5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1dlYktpdERvd25sb2FkLmgKaW5kZXggYTYyNmJhZDA0NTQ1Li5lOTMzMjFk
MjI5NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dERvd25sb2FkLmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXREb3dubG9hZC5oCkBAIC0xNywxNSArMTcsMTcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgogICovCiAKLUBBUElfU0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAhZGVmaW5lZChf
X1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vy
cm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5k
aWYKIAogI2lmbmRlZiBXZWJLaXREb3dubG9hZF9oCiAjZGVmaW5lIFdlYktpdERvd25sb2FkX2gK
IAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJ
WEAvV2ViS2l0RGVmaW5lcy5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktp
dFVSSVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRVUklS
ZXNwb25zZS5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d3Bl
L1dlYktpdFVSSVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJUmVzcG9uc2UuaD4K
IAogR19CRUdJTl9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRFZGl0aW5nQ29tbWFuZHMuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0RWRpdGluZ0NvbW1hbmRzLmgKc2ltaWxhcml0eSBpbmRleCA5NyUK
cmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RWRpdGlu
Z0NvbW1hbmRzLmguaW4KcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0RWRpdGluZ0NvbW1hbmRzLmgKaW5kZXggNmZhOWY1Mzk0ZTRkLi5mZDViNzJkY2ExNjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEVkaXRp
bmdDb21tYW5kcy5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2Vi
S2l0RWRpdGluZ0NvbW1hbmRzLmgKQEAgLTE3LDcgKzE3LDkgQEAKICAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgogICovCiAKLUBBUElfU0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAhZGVm
aW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9O
KQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4i
CisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRFZGl0aW5nQ29tbWFuZHNfaAogI2RlZmluZSBXZWJL
aXRFZGl0aW5nQ29tbWFuZHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0RWRpdG9yU3RhdGUuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0RWRpdG9yU3RhdGUuaApzaW1pbGFyaXR5IGluZGV4IDk1JQpyZW5hbWUg
ZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRFZGl0b3JTdGF0ZS5o
LmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEVkaXRv
clN0YXRlLmgKaW5kZXggYTQ3ZTFlYjkwOTg4Li4wZjlmZDY2ZGNlNDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEVkaXRvclN0YXRlLmguaW4KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRFZGl0b3JTdGF0ZS5oCkBA
IC0xNywxMyArMTcsMTUgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAK
LUBBUElfU0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lE
RV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUv
d2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBX
ZWJLaXRFZGl0b3JTdGF0ZV9oCiAjZGVmaW5lIFdlYktpdEVkaXRvclN0YXRlX2gKIAogI2luY2x1
ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0
RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CiAKIEdfQkVHSU5fREVD
TFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRF
cnJvci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRFcnJvci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOTg0OWQ2YzUwZjE3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRFcnJv
ci5oCkBAIC0wLDAgKzEsMTY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBT
LkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVjYSBCcnVubyA8bGV0aGFsbWFuODhAZ21haWwu
Y29tPgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lU
Ml9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVk
ZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0RXJyb3JfaAorI2RlZmluZSBX
ZWJLaXRFcnJvcl9oCisKKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lO
X0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX05FVFdPUktfRVJST1IgICAgICAgICAgICAgd2Via2l0
X25ldHdvcmtfZXJyb3JfcXVhcmsgKCkKKyNkZWZpbmUgV0VCS0lUX1BPTElDWV9FUlJPUiAgICAg
ICAgICAgICAgd2Via2l0X3BvbGljeV9lcnJvcl9xdWFyayAoKQorI2RlZmluZSBXRUJLSVRfUExV
R0lOX0VSUk9SICAgICAgICAgICAgICB3ZWJraXRfcGx1Z2luX2Vycm9yX3F1YXJrICgpCisjZGVm
aW5lIFdFQktJVF9ET1dOTE9BRF9FUlJPUiAgICAgICAgICAgIHdlYmtpdF9kb3dubG9hZF9lcnJv
cl9xdWFyayAoKQorI2RlZmluZSBXRUJLSVRfSkFWQVNDUklQVF9FUlJPUiAgICAgICAgICB3ZWJr
aXRfamF2YXNjcmlwdF9lcnJvcl9xdWFyayAoKQorI2RlZmluZSBXRUJLSVRfU05BUFNIT1RfRVJS
T1IgICAgICAgICAgICB3ZWJraXRfc25hcHNob3RfZXJyb3JfcXVhcmsgKCkKKyNkZWZpbmUgV0VC
S0lUX1VTRVJfQ09OVEVOVF9GSUxURVJfRVJST1Igd2Via2l0X3VzZXJfY29udGVudF9maWx0ZXJf
ZXJyb3JfcXVhcmsgKCkKKworLyoqCisgKiBXZWJLaXROZXR3b3JrRXJyb3I6CisgKiBAV0VCS0lU
X05FVFdPUktfRVJST1JfRkFJTEVEOiBHZW5lcmljIGxvYWQgZmFpbHVyZQorICogQFdFQktJVF9O
RVRXT1JLX0VSUk9SX1RSQU5TUE9SVDogTG9hZCBmYWlsdXJlIGR1ZSB0byB0cmFuc3BvcnQgZXJy
b3IKKyAqIEBXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BST1RPQ09MOiBMb2FkIGZhaWx1
cmUgZHVlIHRvIHVua25vd24gcHJvdG9jb2wKKyAqIEBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5D
RUxMRUQ6IExvYWQgZmFpbHVyZSBkdWUgdG8gY2FuY2VsbGF0aW9uCisgKiBAV0VCS0lUX05FVFdP
UktfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVDogTG9hZCBmYWlsdXJlIGR1ZSB0byBtaXNzaW5n
IGZpbGUKKyAqCisgKiBFbnVtIHZhbHVlcyB1c2VkIHRvIGRlbm90ZSB0aGUgdmFyaW91cyBuZXR3
b3JrIGVycm9ycy4KKyAqKi8KK3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX05FVFdPUktfRVJS
T1JfRkFJTEVEID0gMzk5LAorICAgIFdFQktJVF9ORVRXT1JLX0VSUk9SX1RSQU5TUE9SVCA9IDMw
MCwKKyAgICBXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BST1RPQ09MID0gMzAxLAorICAg
IFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRCA9IDMwMiwKKyAgICBXRUJLSVRfTkVUV09S
S19FUlJPUl9GSUxFX0RPRVNfTk9UX0VYSVNUID0gMzAzCit9IFdlYktpdE5ldHdvcmtFcnJvcjsK
KworLyoqCisgKiBXZWJLaXRQb2xpY3lFcnJvcjoKKyAqIEBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZB
SUxFRDogR2VuZXJpYyBsb2FkIGZhaWx1cmUgZHVlIHRvIHBvbGljeSBlcnJvcgorICogQFdFQktJ
VF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFOiBMb2FkIGZhaWx1cmUgZHVlIHRv
IHVuc3VwcG9ydGVkIG1pbWUgdHlwZQorICogQFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NI
T1dfVVJJOiBMb2FkIGZhaWx1cmUgZHVlIHRvIFVSSSB0aGF0IGNhbiBub3QgYmUgc2hvd24KKyAq
IEBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZX0NI
QU5HRTogTG9hZCBmYWlsdXJlIGR1ZSB0byBmcmFtZSBsb2FkIGludGVycnVwdGlvbiBieSBwb2xp
Y3kgY2hhbmdlCisgKiBAV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RSSUNURURf
UE9SVDogTG9hZCBmYWlsdXJlIGR1ZSB0byBwb3J0IHJlc3RyaWN0aW9uCisgKgorICogRW51bSB2
YWx1ZXMgdXNlZCB0byBkZW5vdGUgdGhlIHZhcmlvdXMgcG9saWN5IGVycm9ycy4KKyAqKi8KK3R5
cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX1BPTElDWV9FUlJPUl9GQUlMRUQgPSAxOTksCisgICAg
V0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19NSU1FX1RZUEUgPSAxMDAsCisgICAgV0VC
S0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19VUkkgPSAxMDEsCisgICAgV0VCS0lUX1BPTElD
WV9FUlJPUl9GUkFNRV9MT0FEX0lOVEVSUlVQVEVEX0JZX1BPTElDWV9DSEFOR0UgPSAxMDIsCisg
ICAgV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RSSUNURURfUE9SVCA9IDEwMwor
fSBXZWJLaXRQb2xpY3lFcnJvcjsKKworLyoqCisgKiBXZWJLaXRQbHVnaW5FcnJvcjoKKyAqIEBX
RUJLSVRfUExVR0lOX0VSUk9SX0ZBSUxFRDogR2VuZXJpYyBwbHVnaW4gbG9hZCBmYWlsdXJlLiBE
ZXByZWNhdGVkIDIuMzIKKyAqIEBXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9GSU5EX1BMVUdJ
TjogTG9hZCBmYWlsdXJlIGR1ZSB0byBtaXNzaW5nIHBsdWdpbi4gRGVwcmVjYXRlZCAyLjMyCisg
KiBAV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfTE9BRF9QTFVHSU46IExvYWQgZmFpbHVyZSBk
dWUgdG8gaW5hYmlsaXR5IHRvIGxvYWQgcGx1Z2luLiBEZXByZWNhdGVkIDIuMzIKKyAqIEBXRUJL
SVRfUExVR0lOX0VSUk9SX0pBVkFfVU5BVkFJTEFCTEU6IExvYWQgZmFpbHVyZSBkdWUgdG8gbWlz
c2luZyBKYXZhIHN1cHBvcnQgdGhhdCBpcyByZXF1aXJlZCB0byBsb2FkIHBsdWdpbi4gRGVwcmVj
YXRlZCAyLjMyCisgKiBAV0VCS0lUX1BMVUdJTl9FUlJPUl9DT05ORUNUSU9OX0NBTkNFTExFRDog
TG9hZCBmYWlsdXJlIGR1ZSB0byBjb25uZWN0aW9uIGNhbmNlbGxhdGlvbi4gRGVwcmVjYXRlZCAy
LjMyCisgKiBAV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FEOiBQcmVsaW1pbmFy
eSBsb2FkIGZhaWx1cmUgZm9yIG1lZGlhIGNvbnRlbnQgdHlwZXMuIEEgbmV3IGxvYWQgd2lsbCBi
ZSBzdGFydGVkIHRvIHBlcmZvcm0gdGhlIG1lZGlhIGxvYWQuCisgKgorICogRW51bSB2YWx1ZXMg
dXNlZCB0byBkZW5vdGUgdGhlIHZhcmlvdXMgcGx1Z2luIGFuZCBtZWRpYSBlcnJvcnMuCisgKiov
Cit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9QTFVHSU5fRVJST1JfRkFJTEVEID0gMjk5LAor
ICAgIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lOID0gMjAwLAorICAgIFdF
QktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lOID0gMjAxLAorICAgIFdFQktJVF9Q
TFVHSU5fRVJST1JfSkFWQV9VTkFWQUlMQUJMRSA9IDIwMiwKKyAgICBXRUJLSVRfUExVR0lOX0VS
Uk9SX0NPTk5FQ1RJT05fQ0FOQ0VMTEVEID0gMjAzLAorICAgIFdFQktJVF9QTFVHSU5fRVJST1Jf
V0lMTF9IQU5ETEVfTE9BRCA9IDIwNCwKK30gV2ViS2l0UGx1Z2luRXJyb3I7CisKKy8qKgorICog
V2ViS2l0RG93bmxvYWRFcnJvcjoKKyAqIEBXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09SSzog
RG93bmxvYWQgZmFpbHVyZSBkdWUgdG8gbmV0d29yayBlcnJvcgorICogQFdFQktJVF9ET1dOTE9B
RF9FUlJPUl9DQU5DRUxMRURfQllfVVNFUjogRG93bmxvYWQgd2FzIGNhbmNlbGxlZCBieSB1c2Vy
CisgKiBAV0VCS0lUX0RPV05MT0FEX0VSUk9SX0RFU1RJTkFUSU9OOiBEb3dubG9hZCBmYWlsdXJl
IGR1ZSB0byBkZXN0aW5hdGlvbiBlcnJvcgorICoKKyAqIEVudW0gdmFsdWVzIHVzZWQgdG8gZGVu
b3RlIHRoZSB2YXJpb3VzIGRvd25sb2FkIGVycm9ycy4KKyAqLwordHlwZWRlZiBlbnVtIHsKKyAg
ICBXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09SSyA9IDQ5OSwKKyAgICBXRUJLSVRfRE9XTkxP
QURfRVJST1JfQ0FOQ0VMTEVEX0JZX1VTRVIgPSA0MDAsCisgICAgV0VCS0lUX0RPV05MT0FEX0VS
Uk9SX0RFU1RJTkFUSU9OID0gNDAxCit9IFdlYktpdERvd25sb2FkRXJyb3I7CisKKy8qKgorICog
V2ViS2l0SmF2YXNjcmlwdEVycm9yOgorICogQFdFQktJVF9KQVZBU0NSSVBUX0VSUk9SX1NDUklQ
VF9GQUlMRUQ6IEFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIGluIEphdmFTY3JpcHQgZXhlY3V0aW9u
CisgKgorICogRW51bSB2YWx1ZXMgdXNlZCB0byBkZW5vdGUgZXJyb3JzIGhhcHBlbmluZyB3aGVu
IGV4ZWN1dGluZyBKYXZhU2NyaXB0CisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX0pB
VkFTQ1JJUFRfRVJST1JfU0NSSVBUX0ZBSUxFRCA9IDY5OQorfSBXZWJLaXRKYXZhc2NyaXB0RXJy
b3I7CisKKy8qKgorICogV2ViS2l0U25hcHNob3RFcnJvcjoKKyAqIEBXRUJLSVRfU05BUFNIT1Rf
RVJST1JfRkFJTEVEX1RPX0NSRUFURTogQW4gZXJyb3Igb2NjdXJyZWQgd2hlbiBjcmVhdGluZyBh
IHdlYnBhZ2Ugc25hcHNob3QuCisgKgorICogRW51bSB2YWx1ZXMgdXNlZCB0byBkZW5vdGUgZXJy
b3JzIGhhcHBlbmluZyB3aGVuIGNyZWF0aW5nIHNuYXBzaG90cyBvZiAjV2ViS2l0V2ViVmlldwor
ICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9TTkFQU0hPVF9FUlJPUl9GQUlMRURfVE9f
Q1JFQVRFID0gNzk5Cit9IFdlYktpdFNuYXBzaG90RXJyb3I7CisKKy8qKgorICogV2ViS2l0VXNl
ckNvbnRlbnRGaWx0ZXJFcnJvcjoKKyAqIEBXRUJLSVRfVVNFUl9DT05URU5UX0ZJTFRFUl9FUlJP
Ul9JTlZBTElEX1NPVVJDRTogVGhlIEpTT04gc291cmNlIGZvciBhIGNvbnRlbnQgZmlsdGVyIGlz
IGludmFsaWQuCisgKiBAV0VCS0lUX1VTRVJfQ09OVEVOVF9GSUxURVJfRVJST1JfTk9UX0ZPVU5E
OiBUaGUgcmVxdWVzdGVkIGNvbnRlbnQgZmlsdGVyIGNvdWxkIG5vdCBiZSBmb3VuZC4KKyAqCisg
KiBFcnJvcnMgdGhhdCBjYW4gb2NjdXIgd2hpbGUgY29tcGlsaW5nIGNvbnRlbnQgZmlsdGVycy4K
KyAqCisgKiBTaW5jZTogMi4yNAorICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9VU0VS
X0NPTlRFTlRfRklMVEVSX0VSUk9SX0lOVkFMSURfU09VUkNFLAorICAgIFdFQktJVF9VU0VSX0NP
TlRFTlRfRklMVEVSX0VSUk9SX05PVF9GT1VORCwKK30gV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJF
cnJvcjsKKworV0VCS0lUX0FQSSBHUXVhcmsKK3dlYmtpdF9uZXR3b3JrX2Vycm9yX3F1YXJrICAg
ICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBHUXVhcmsKK3dlYmtpdF9wb2xpY3lfZXJy
b3JfcXVhcmsgICAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBHUXVhcmsKK3dlYmtp
dF9wbHVnaW5fZXJyb3JfcXVhcmsgICAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBH
UXVhcmsKK3dlYmtpdF9kb3dubG9hZF9lcnJvcl9xdWFyayAgICAgICAgICAgICh2b2lkKTsKKwor
V0VCS0lUX0FQSSBHUXVhcmsKK3dlYmtpdF9qYXZhc2NyaXB0X2Vycm9yX3F1YXJrICAgICAgICAg
ICh2b2lkKTsKKworV0VCS0lUX0FQSSBHUXVhcmsKK3dlYmtpdF9zbmFwc2hvdF9lcnJvcl9xdWFy
ayAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBHUXVhcmsKK3dlYmtpdF91c2VyX2Nv
bnRlbnRfZmlsdGVyX2Vycm9yX3F1YXJrICh2b2lkKTsKKworR19FTkRfREVDTFMKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEZhdmlj
b25EYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRGYXZp
Y29uRGF0YWJhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ3
ZjVlYWUyMTg2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiwgMjAxNyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyLDEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lU
X0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9u
bHkgPHdwZS93ZWJraXQuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisj
aWZuZGVmIFdlYktpdEZhdmljb25EYXRhYmFzZV9oCisjZGVmaW5lIFdlYktpdEZhdmljb25EYXRh
YmFzZV9oCisKKyNpbmNsdWRlIDxnaW8vZ2lvLmg+CisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4K
KyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZp
bmUgV0VCS0lUX1RZUEVfRkFWSUNPTl9EQVRBQkFTRSAgICAgICAgICAgICh3ZWJraXRfZmF2aWNv
bl9kYXRhYmFzZV9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfRkFWSUNPTl9EQVRBQkFTRShv
YmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRf
VFlQRV9GQVZJQ09OX0RBVEFCQVNFLCBXZWJLaXRGYXZpY29uRGF0YWJhc2UpKQorI2RlZmluZSBX
RUJLSVRfSVNfRkFWSUNPTl9EQVRBQkFTRShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNU
QU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9GQVZJQ09OX0RBVEFCQVNFKSkKKyNkZWZpbmUg
V0VCS0lUX0ZBVklDT05fREFUQUJBU0VfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xB
U1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRkFWSUNPTl9EQVRBQkFTRSwgV2ViS2l0RmF2
aWNvbkRhdGFiYXNlQ2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfRkFWSUNPTl9EQVRBQkFTRV9D
TEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQ
RV9GQVZJQ09OX0RBVEFCQVNFKSkKKyNkZWZpbmUgV0VCS0lUX0ZBVklDT05fREFUQUJBU0VfR0VU
X0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZ
UEVfRkFWSUNPTl9EQVRBQkFTRSwgV2ViS2l0RmF2aWNvbkRhdGFiYXNlQ2xhc3MpKQorI2RlZmlu
ZSBXRUJLSVRfRkFWSUNPTl9EQVRBQkFTRV9FUlJPUiAgICAgICAgICAgKHdlYmtpdF9mYXZpY29u
X2RhdGFiYXNlX2Vycm9yX3F1YXJrKCkpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRGYXZpY29u
RGF0YWJhc2UgICAgICAgIFdlYktpdEZhdmljb25EYXRhYmFzZTsKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRGYXZpY29uRGF0YWJhc2VDbGFzcyAgIFdlYktpdEZhdmljb25EYXRhYmFzZUNsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEZhdmljb25EYXRhYmFzZVByaXZhdGUgV2ViS2l0RmF2aWNv
bkRhdGFiYXNlUHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRGYXZpY29uRGF0YWJhc2UgeworICAg
IEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0RmF2aWNv
bkRhdGFiYXNlUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0RmF2aWNvbkRhdGFi
YXNlQ2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICAvKjwgcHJp
dmF0ZSA+Ki8KKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lk
ICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZl
ZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisK
Ky8qKgorICogV2ViS2l0RmF2aWNvbkRhdGFiYXNlRXJyb3I6CisgKiBAV0VCS0lUX0ZBVklDT05f
REFUQUJBU0VfRVJST1JfTk9UX0lOSVRJQUxJWkVEOiBUaGUgI1dlYktpdEZhdmljb25EYXRhYmFz
ZSBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgeWV0CisgKiBAV0VCS0lUX0ZBVklDT05fREFUQUJB
U0VfRVJST1JfRkFWSUNPTl9OT1RfRk9VTkQ6IFRoZXJlIGlzIG5vdCBhbiBpY29uIGF2YWlsYWJs
ZSBmb3IgdGhlIHJlcXVlc3RlZCBVUkwKKyAqIEBXRUJLSVRfRkFWSUNPTl9EQVRBQkFTRV9FUlJP
Ul9GQVZJQ09OX1VOS05PV046IFRoZXJlIG1pZ2h0IGJlIGFuIGljb24gZm9yIHRoZSByZXF1ZXN0
ZWQgVVJMLCBidXQgaXRzIGRhdGEgaXMgdW5rbm93biBhdCB0aGUgbW9tZW50CisgKgorICogRW51
bSB2YWx1ZXMgdXNlZCB0byBkZW5vdGUgdGhlIHZhcmlvdXMgZXJyb3JzIHJlbGF0ZWQgdG8gdGhl
ICNXZWJLaXRGYXZpY29uRGF0YWJhc2UuCisgKiovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJ
VF9GQVZJQ09OX0RBVEFCQVNFX0VSUk9SX05PVF9JTklUSUFMSVpFRCwKKyAgICBXRUJLSVRfRkFW
SUNPTl9EQVRBQkFTRV9FUlJPUl9GQVZJQ09OX05PVF9GT1VORCwKKyAgICBXRUJLSVRfRkFWSUNP
Tl9EQVRBQkFTRV9FUlJPUl9GQVZJQ09OX1VOS05PV04KK30gV2ViS2l0RmF2aWNvbkRhdGFiYXNl
RXJyb3I7CisKK1dFQktJVF9BUEkgR1F1YXJrCit3ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV9lcnJv
cl9xdWFyayAgICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfZmF2aWNv
bl9kYXRhYmFzZV9nZXRfdHlwZSAgICAgICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIGdjaGFy
ICoKK3dlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF9mYXZpY29uX3VyaSAgICAoV2ViS2l0RmF2
aWNvbkRhdGFiYXNlICpkYXRhYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICpwYWdlX3VyaSk7CitXRUJLSVRfQVBJ
IHZvaWQKK3dlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2NsZWFyICAgICAgICAgICAgICAoV2ViS2l0
RmF2aWNvbkRhdGFiYXNlICpkYXRhYmFzZSk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRGaWxlQ2hvb3Nl
clJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0RmlsZUNo
b29zZXJSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43
MDEyM2UzMGNhY2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdC5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUX0hf
SU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkg
PHdwZS93ZWJraXQuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZu
ZGVmIFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdF9oCisjZGVmaW5lIFdlYktpdEZpbGVDaG9vc2Vy
UmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdwZS9XZWJL
aXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9GSUxF
X0NIT09TRVJfUkVRVUVTVCAgICAgICAgICAgICh3ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3Rf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0ZJTEVfQ0hPT1NFUl9SRVFVRVNUKG9iaikgICAg
ICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX0ZJ
TEVfQ0hPT1NFUl9SRVFVRVNULCBXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QpKQorI2RlZmluZSBX
RUJLSVRfRklMRV9DSE9PU0VSX1JFUVVFU1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tf
Q0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRklMRV9DSE9PU0VSX1JFUVVFU1QsIFdl
YktpdEZpbGVDaG9vc2VyUmVxdWVzdENsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX0ZJTEVfQ0hP
T1NFUl9SRVFVRVNUKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9i
aiksIFdFQktJVF9UWVBFX0ZJTEVfQ0hPT1NFUl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX0lT
X0ZJTEVfQ0hPT1NFUl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZ
UEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0ZJTEVfQ0hPT1NFUl9SRVFVRVNUKSkKKyNkZWZpbmUg
V0VCS0lUX0ZJTEVfQ0hPT1NFUl9SRVFVRVNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RB
TkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0ZJTEVfQ0hPT1NFUl9SRVFVRVNULCBX
ZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRG
aWxlQ2hvb3NlclJlcXVlc3QgICAgICAgIFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdDsKK3R5cGVk
ZWYgc3RydWN0IF9XZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3RDbGFzcyAgIFdlYktpdEZpbGVDaG9v
c2VyUmVxdWVzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEZpbGVDaG9vc2VyUmVxdWVz
dFByaXZhdGUgV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJL
aXRGaWxlQ2hvb3NlclJlcXVlc3QgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHBy
aXZhdGUgPiovCisgICAgV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0UHJpdmF0ZSAqcHJpdjsKK307
CisKK3N0cnVjdCBfV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0Q2xhc3MgeworICAgIEdPYmplY3RD
bGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2
b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgq
X3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtp
dF9maWxlX2Nob29zZXJfcmVxdWVzdF9nZXRfdHlwZSAgICAgICAgICAgICAgICAgICh2b2lkKTsK
KworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqIGNvbnN0ICoKK3dlYmtpdF9maWxlX2Nob29zZXJf
cmVxdWVzdF9nZXRfbWltZV90eXBlcyAgICAgICAgKFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdCAq
cmVxdWVzdCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9maWxlX2Nob29zZXJfcmVx
dWVzdF9nZXRfc2VsZWN0X211bHRpcGxlICAgKFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdCAqcmVx
dWVzdCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X3Nl
bGVjdF9maWxlcyAgICAgICAgICAoV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0ICpyZXF1ZXN0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Z2NoYXIgKiBjb25zdCAgICAgICpmaWxlcyk7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKiBj
b25zdCAqCit3ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3RfZ2V0X3NlbGVjdGVkX2ZpbGVzICAg
IChXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QgKnJlcXVlc3QpOworCitXRUJLSVRfQVBJIHZvaWQK
K3dlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdF9jYW5jZWwgICAgICAgICAgICAgICAgKFdlYktp
dEZpbGVDaG9vc2VyUmVxdWVzdCAqcmVxdWVzdCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RmluZENv
bnRyb2xsZXIuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Rmlu
ZENvbnRyb2xsZXIuaApzaW1pbGFyaXR5IGluZGV4IDk2JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGaW5kQ29udHJvbGxlci5oLmluCnJlbmFtZSB0
byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEZpbmRDb250cm9sbGVyLmgK
aW5kZXggNGI1Nzk4ZDVjODQyLi45Y2Q5MjdhMmYwOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZpbmRDb250cm9sbGVyLmguaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRGaW5kQ29udHJvbGxlci5oCkBAIC0x
NywxMyArMTcsMTUgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLUBB
UElfU0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lERV9f
KSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Vi
a2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBXZWJL
aXRGaW5kQ29udHJvbGxlcl9oCiAjZGVmaW5lIFdlYktpdEZpbmRDb250cm9sbGVyX2gKIAogI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2Vi
S2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CiAKIEdfQkVHSU5f
REVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRGb3JtU3VibWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi5hNWI0YzgwMDBkMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5oCkBA
IC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lm
ICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElM
QVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVj
dGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdF9oCisj
ZGVmaW5lIFdlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9i
amVjdC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMK
KworI2RlZmluZSBXRUJLSVRfVFlQRV9GT1JNX1NVQk1JU1NJT05fUkVRVUVTVCAgICAgICAgICAg
ICh3ZWJraXRfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VC
S0lUX0ZPUk1fU1VCTUlTU0lPTl9SRVFVRVNUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNL
X0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX0ZPUk1fU1VCTUlTU0lPTl9SRVFVRVNU
LCBXZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QpKQorI2RlZmluZSBXRUJLSVRfSVNfRk9STV9T
VUJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQ
RSgob2JqKSwgV0VCS0lUX1RZUEVfRk9STV9TVUJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBX
RUJLSVRfRk9STV9TVUJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hF
Q0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRk9STV9TVUJNSVNTSU9OX1JFUVVF
U1QsIFdlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdENsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lT
X0ZPUk1fU1VCTUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNT
X1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0ZPUk1fU1VCTUlTU0lPTl9SRVFVRVNUKSkKKyNk
ZWZpbmUgV0VCS0lUX0ZPUk1fU1VCTUlTU0lPTl9SRVFVRVNUX0dFVF9DTEFTUyhvYmopICAoR19U
WVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0ZPUk1fU1VCTUlTU0lP
Tl9SRVFVRVNULCBXZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYg
c3RydWN0IF9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QgICAgICAgIFdlYktpdEZvcm1TdWJt
aXNzaW9uUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVl
c3RDbGFzcyAgIFdlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdFByaXZhdGUgV2ViS2l0Rm9ybVN1Ym1pc3Np
b25SZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3Qg
eworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0
Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0
Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xh
c3M7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDAp
ICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lk
ICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZl
ZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9mb3JtX3N1Ym1pc3Np
b25fcmVxdWVzdF9nZXRfdHlwZSAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBnYm9vbGVh
bgord2Via2l0X2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0X2xpc3RfdGV4dF9maWVsZHMgKFdlYktp
dEZvcm1TdWJtaXNzaW9uUmVxdWVzdCAgKnJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR1B0ckFycmF5ICAgICAgICAgICAgICAgICAgICoq
ZmllbGRfbmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR1B0ckFycmF5ICAgICAgICAgICAgICAgICAgICoqZmllbGRfdmFsdWVzKTsKKworV0VC
S0lUX0FQSSB2b2lkCit3ZWJraXRfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3Rfc3VibWl0ICAgICAg
ICAgICAoV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0ICAqcmVxdWVzdCk7CisKK0dfRU5EX0RF
Q0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyLmguaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1dlYktpdEdlb2xvY2F0aW9uTWFuYWdlci5oCnNpbWlsYXJpdHkgaW5kZXggOTYl
CnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEdlb2xv
Y2F0aW9uTWFuYWdlci5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdEdlb2xvY2F0aW9uTWFuYWdlci5oCmluZGV4IDZiYTg3NjU4NzE1NS4uZDQyNmU2
YjUzODQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRHZW9sb2NhdGlvbk1hbmFnZXIuaC5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdEdlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC0xNywxMyArMTcsMTUgQEAKICAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLUBBUElfU0lOR0xFX0hFQURFUl9D
SEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJL
SVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNs
dWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRHZW9sb2NhdGlvbk1hbmFn
ZXJfaAogI2RlZmluZSBXZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXJfaAogCiAjaW5jbHVkZSA8Z2xp
Yi1vYmplY3QuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXREZWZpbmVz
Lmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KIAogR19CRUdJTl9ERUNMUwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmguaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaApzaW1pbGFyaXR5IGluZGV4
IDk0JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmguaW4KcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCmlu
ZGV4IGQ4NmY2OTFlOGZkYy4uZTIzYjAwMGJiZWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmgu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTE3LDEzICsxNywxNSBAQAogICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCiAgKi8KIAotQEFQSV9TSU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFk
ZWZpbmVkKF9fV0VCS0lUX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJ
T04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5
LiIKKyNlbmRpZgogCiAjaWZuZGVmIFdlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Rf
aAogI2RlZmluZSBXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0X2gKIAogI2luY2x1
ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0
RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CiAKIEdfQkVHSU5fREVD
TFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
SGl0VGVzdFJlc3VsdC5oLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRIaXRUZXN0UmVzdWx0LmgKc2ltaWxhcml0eSBpbmRleCA5NSUKcmVuYW1lIGZyb20gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SGl0VGVzdFJlc3VsdC5oLmluCnJlbmFt
ZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEhpdFRlc3RSZXN1bHQu
aAppbmRleCA2NGNkYzE5MGU0NTAuLmRjNmVmYzVmNDgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SGl0VGVzdFJlc3VsdC5oLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0SGl0VGVzdFJlc3VsdC5oCkBAIC0x
NywxMyArMTcsMTUgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLUBT
SEFSRURfQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9J
TlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikgJiYgIWRlZmluZWQoX19X
RUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0
Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRI
aXRUZXN0UmVzdWx0X2gKICNkZWZpbmUgV2ViS2l0SGl0VGVzdFJlc3VsdF9oCiAKICNpbmNsdWRl
IDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERl
ZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgogCiBHX0JFR0lOX0RFQ0xT
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0SW5w
dXRNZXRob2RDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktp
dElucHV0TWV0aG9kQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uMmUzYjIxMjI1ZjQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaApAQCAtMCwwICsxLDIyNyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19X
RUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJv
ciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlm
CisKKyNpZm5kZWYgV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0X2gKKyNkZWZpbmUgV2ViS2l0SW5w
dXRNZXRob2RDb250ZXh0X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8
d3BlL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0Q29sb3IuaD4KKyNpbmNs
dWRlIDx3cGUvd3BlLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9J
TlBVVF9NRVRIT0RfQ09OVEVYVCAgICAgICAgICAgICh3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRl
eHRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0lOUFVUX01FVEhPRF9DT05URVhUKG9iaikg
ICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBF
X0lOUFVUX01FVEhPRF9DT05URVhULCBXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQpKQorI2RlZmlu
ZSBXRUJLSVRfSU5QVVRfTUVUSE9EX0NPTlRFWFRfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hF
Q0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfSU5QVVRfTUVUSE9EX0NPTlRFWFQs
IFdlYktpdElucHV0TWV0aG9kQ29udGV4dENsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX0lOUFVU
X01FVEhPRF9DT05URVhUKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUo
KG9iaiksIFdFQktJVF9UWVBFX0lOUFVUX01FVEhPRF9DT05URVhUKSkKKyNkZWZpbmUgV0VCS0lU
X0lTX0lOUFVUX01FVEhPRF9DT05URVhUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNT
X1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0lOUFVUX01FVEhPRF9DT05URVhUKSkKKyNkZWZp
bmUgV0VCS0lUX0lOUFVUX01FVEhPRF9DT05URVhUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lO
U1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0lOUFVUX01FVEhPRF9DT05URVhU
LCBXZWJLaXRJbnB1dE1ldGhvZENvbnRleHRDbGFzcykpCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVf
SU5QVVRfTUVUSE9EX1VOREVSTElORSAgICAgICAgICAod2Via2l0X2lucHV0X21ldGhvZF91bmRl
cmxpbmVfZ2V0X3R5cGUoKSkKKworLyoqCisgKiBXZWJLaXRJbnB1dFB1cnBvc2U6CisgKiBAV0VC
S0lUX0lOUFVUX1BVUlBPU0VfRlJFRV9GT1JNOiBFZGl0YWJsZSBlbGVtZW50IGV4cGVjdHMgYW55
IGNoYXJhY3RlcnMKKyAqIEBXRUJLSVRfSU5QVVRfUFVSUE9TRV9ESUdJVFM6IEVkaXRhYmxlIGVs
ZW1lbnQgZXhwZWN0cyBkaWdpdHMKKyAqIEBXRUJLSVRfSU5QVVRfUFVSUE9TRV9OVU1CRVI6IEVk
aXRhYmxlIGVsZW1lbnQgZXhwZWN0cyBhIG51bWJlcgorICogQFdFQktJVF9JTlBVVF9QVVJQT1NF
X1BIT05FOiBFZGl0YWJsZSBlbGVtZW50IGV4cGVjdHMgYSB0ZWxlcGhvbmUKKyAqIEBXRUJLSVRf
SU5QVVRfUFVSUE9TRV9VUkw6IEVkaXRhYmxlIGVsZW1lbnQgZXhwZWN0cyBhIFVSTAorICogQFdF
QktJVF9JTlBVVF9QVVJQT1NFX0VNQUlMOiBFZGl0YWJsZSBlbGVtZW50IGV4cGVjdHMgYW4gZW1h
aWwKKyAqIEBXRUJLSVRfSU5QVVRfUFVSUE9TRV9QQVNTV09SRDogRWRpdGFibGUgZWxlbWVudCBl
eHBlY3RzIGEgcGFzc3dvcmQKKyAqCisgKiBFbnVtIHZhbHVlcyB1c2VkIHRvIGRlc2NyaWJlIHRo
ZSBwcmltYXJ5IHB1cnBvc2Ugb2YgdGhlIGFjdGl2ZSBlZGl0YWJsZSBlbGVtZW50LgorICoKKyAq
IFNpbmNlOiAyLjI4CisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX0lOUFVUX1BVUlBP
U0VfRlJFRV9GT1JNLAorICAgIFdFQktJVF9JTlBVVF9QVVJQT1NFX0RJR0lUUywKKyAgICBXRUJL
SVRfSU5QVVRfUFVSUE9TRV9OVU1CRVIsCisgICAgV0VCS0lUX0lOUFVUX1BVUlBPU0VfUEhPTkUs
CisgICAgV0VCS0lUX0lOUFVUX1BVUlBPU0VfVVJMLAorICAgIFdFQktJVF9JTlBVVF9QVVJQT1NF
X0VNQUlMLAorICAgIFdFQktJVF9JTlBVVF9QVVJQT1NFX1BBU1NXT1JECit9IFdlYktpdElucHV0
UHVycG9zZTsKKworLyoqCisgKiBXZWJLaXRJbnB1dEhpbnRzOgorICogQFdFQktJVF9JTlBVVF9I
SU5UX05PTkU6IE5vIHNwZWNpYWwgYmVoYXZpb3Igc3VnZ2VzdGVkCisgKiBAV0VCS0lUX0lOUFVU
X0hJTlRfU1BFTExDSEVDSzogU3VnZ2VzdCBzcGVsbCBjaGVja2luZworICogQFdFQktJVF9JTlBV
VF9ISU5UX0xPV0VSQ0FTRTogU3VnZ2VzdCB0byBub3QgYXV0b2NhcGl0bGl6ZQorICogQFdFQktJ
VF9JTlBVVF9ISU5UX1VQUEVSQ0FTRV9DSEFSUzogU3VnZ2VzdCB0byBjYXBpdGFsaXplIGFsbCB0
ZXh0CisgKiBAV0VCS0lUX0lOUFVUX0hJTlRfVVBQRVJDQVNFX1dPUkRTOiBTdWdnZXN0IHRvIGNh
cGl0YWxpemUgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBlYWNoIHdvcmQKKyAqIEBXRUJLSVRfSU5Q
VVRfSElOVF9VUFBFUkNBU0VfU0VOVEVOQ0VTOiBTdWdnZXN0IHRvIGNhcGl0YWxpemUgdGhlIGZp
cnN0IHdvcmQgb2YgZWFjaCBzZW50ZW5jZQorICogQFdFQktJVF9JTlBVVF9ISU5UX0lOSElCSVRf
T1NLOiBTdWdnZXN0IHRvIG5vdCBzaG93IGFuIG9uc2NyZWVuIGtleWJvYXJkCisgKgorICogRW51
bSB2YWx1ZXMgdXNlZCB0byBkZXNjcmliZSBoaW50cyB0aGF0IG1pZ2h0IGJlIHRha2VuIGludG8g
YWNjb3VudCBieSBpbnB1dCBtZXRob2RzLgorICoKKyAqIFNpbmNlOiAyLjI4CisgKi8KK3R5cGVk
ZWYgZW51bSB7CisgICAgV0VCS0lUX0lOUFVUX0hJTlRfTk9ORSAgICAgICAgICAgICAgICA9IDAs
CisgICAgV0VCS0lUX0lOUFVUX0hJTlRfU1BFTExDSEVDSyAgICAgICAgICA9IDEgPDwgMCwKKyAg
ICBXRUJLSVRfSU5QVVRfSElOVF9MT1dFUkNBU0UgICAgICAgICAgID0gMSA8PCAxLAorICAgIFdF
QktJVF9JTlBVVF9ISU5UX1VQUEVSQ0FTRV9DSEFSUyAgICAgPSAxIDw8IDIsCisgICAgV0VCS0lU
X0lOUFVUX0hJTlRfVVBQRVJDQVNFX1dPUkRTICAgICA9IDEgPDwgMywKKyAgICBXRUJLSVRfSU5Q
VVRfSElOVF9VUFBFUkNBU0VfU0VOVEVOQ0VTID0gMSA8PCA0LAorICAgIFdFQktJVF9JTlBVVF9I
SU5UX0lOSElCSVRfT1NLICAgICAgICAgPSAxIDw8IDUKK30gV2ViS2l0SW5wdXRIaW50czsKKwor
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdElucHV0TWV0aG9kQ29udGV4dCAgICAgICAgV2ViS2l0SW5w
dXRNZXRob2RDb250ZXh0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdElucHV0TWV0aG9kQ29udGV4
dENsYXNzICAgV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0SW5wdXRNZXRob2RDb250ZXh0UHJpdmF0ZSBXZWJLaXRJbnB1dE1ldGhvZENvbnRleHRQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdElucHV0TWV0aG9kVW5kZXJsaW5lICAgICAg
V2ViS2l0SW5wdXRNZXRob2RVbmRlcmxpbmU7CisKK3N0cnVjdCBfV2ViS2l0SW5wdXRNZXRob2RD
b250ZXh0IHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAg
IFdlYktpdElucHV0TWV0aG9kQ29udGV4dFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dl
YktpdElucHV0TWV0aG9kQ29udGV4dENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2Ns
YXNzOworCisgICAgLyo8IHB1YmxpYyA+Ki8KKworICAgIC8qIFNpZ25hbHMgKi8KKyAgICB2b2lk
ICAgICAoKiBwcmVlZGl0X3N0YXJ0ZWQpICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAg
ICAgICpjb250ZXh0KTsKKyAgICB2b2lkICAgICAoKiBwcmVlZGl0X2NoYW5nZWQpICAgIChXZWJL
aXRJbnB1dE1ldGhvZENvbnRleHQgICAgICAgICpjb250ZXh0KTsKKyAgICB2b2lkICAgICAoKiBw
cmVlZGl0X2ZpbmlzaGVkKSAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAgICAgICpjb250
ZXh0KTsKKyAgICB2b2lkICAgICAoKiBjb21taXR0ZWQpICAgICAgICAgIChXZWJLaXRJbnB1dE1l
dGhvZENvbnRleHQgICAgICAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAgICAgICAgICAgICAgKnRleHQpOworICAgIHZv
aWQgICAgICgqIGRlbGV0ZV9zdXJyb3VuZGluZykgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAg
ICAgICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5fY2hh
cnMpOworCisgICAgLyogVmlydHVhbCBmdW5jdGlvbnMgKi8KKyAgICB2b2lkICAgICAoKiBzZXRf
ZW5hYmxlX3ByZWVkaXQpIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAgICAgICpjb250ZXh0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAg
ICAgICAgICAgICAgICAgIGVuYWJsZWQpOworICAgIHZvaWQgICAgICgqIGdldF9wcmVlZGl0KSAg
ICAgICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAgICAgICAgKmNvbnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIgICAgICAgICAgICAgICAgICAgICAg
ICAgICoqdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGlzdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgKip1bmRlcmxpbmVzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgKmN1cnNv
cl9vZmZzZXQpOworICAgIGdib29sZWFuICgqIGZpbHRlcl9rZXlfZXZlbnQpICAgKFdlYktpdElu
cHV0TWV0aG9kQ29udGV4dCAgICAgICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCAqa2V5X2V2ZW50
KTsKKyAgICB2b2lkICAgICAoKiBub3RpZnlfZm9jdXNfaW4pICAgIChXZWJLaXRJbnB1dE1ldGhv
ZENvbnRleHQgICAgICAgICpjb250ZXh0KTsKKyAgICB2b2lkICAgICAoKiBub3RpZnlfZm9jdXNf
b3V0KSAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAgICAgICpjb250ZXh0KTsKKyAgICB2
b2lkICAgICAoKiBub3RpZnlfY3Vyc29yX2FyZWEpIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQg
ICAgICAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQpOworICAgIHZvaWQgICAgICgqIG5v
dGlmeV9zdXJyb3VuZGluZykgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAgICAgICAgKmNvbnRl
eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAg
ICAgICAgICAgICAgICAgICAqdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBndWludCAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3Vyc29yX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1
aW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbl9pbmRleCk7CisgICAgdm9p
ZCAgICAgKCogcmVzZXQpICAgICAgICAgICAgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICAg
ICAgICAqY29udGV4dCk7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICB2b2lkICgqX3dlYmtp
dF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lk
KTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDQpICh2
b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDUpICh2b2lkKTsKKyAgICB2b2lkICgq
X3dlYmtpdF9yZXNlcnZlZDYpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDcp
ICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9pbnB1dF9tZXRob2RfY29u
dGV4dF9nZXRfdHlwZSAgICAgICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtp
dF9pbnB1dF9tZXRob2RfY29udGV4dF9zZXRfZW5hYmxlX3ByZWVkaXQgKFdlYktpdElucHV0TWV0
aG9kQ29udGV4dCAgICAgICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICBlbmFi
bGVkKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfZ2V0
X3ByZWVkaXQgICAgICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAgICAgICpjb250ZXh0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAg
ICAgICAgICAgICAgICAgICAgICAgICAgICoqdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdMaXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAq
KnVuZGVybGluZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBndWludCAgICAgICAgICAgICAgICAgICAgICAgICAgICpjdXJzb3Jfb2Zmc2V0KTsKKwor
V0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X2ZpbHRlcl9r
ZXlfZXZlbnQgICAoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICAgICAgICAqY29udGV4dCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB3cGVf
aW5wdXRfa2V5Ym9hcmRfZXZlbnQgKmtleV9ldmVudCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X2lucHV0X21ldGhvZF9jb250ZXh0X25vdGlmeV9mb2N1c19pbiAgICAoV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0ICAgICAgICAqY29udGV4dCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0
X2lucHV0X21ldGhvZF9jb250ZXh0X25vdGlmeV9mb2N1c19vdXQgICAoV2ViS2l0SW5wdXRNZXRo
b2RDb250ZXh0ICAgICAgICAqY29udGV4dCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2lu
cHV0X21ldGhvZF9jb250ZXh0X25vdGlmeV9jdXJzb3JfYXJlYSAoV2ViS2l0SW5wdXRNZXRob2RD
b250ZXh0ICAgICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtp
dF9pbnB1dF9tZXRob2RfY29udGV4dF9ub3RpZnlfc3Vycm91bmRpbmcgKFdlYktpdElucHV0TWV0
aG9kQ29udGV4dCAgICAgICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICAgICAgICp0ZXh0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3Vyc29yX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uX2luZGV4
KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfcmVzZXQg
ICAgICAgICAgICAgIChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgICAgICAgICpjb250ZXh0KTsK
KworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfaW5wdXRfbWV0aG9kX3VuZGVybGluZV9nZXRf
dHlwZSAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBXZWJLaXRJbnB1dE1ldGhvZFVuZGVy
bGluZSAqCit3ZWJraXRfaW5wdXRfbWV0aG9kX3VuZGVybGluZV9uZXcgICAgICAgICAgICAgIChn
dWludCAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9vZmZzZXQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbmRfb2Zmc2V0KTsKKworV0VCS0lUX0FQSSBXZWJLaXRJbnB1dE1ldGhv
ZFVuZGVybGluZSAqCit3ZWJraXRfaW5wdXRfbWV0aG9kX3VuZGVybGluZV9jb3B5ICAgICAgICAg
ICAgIChXZWJLaXRJbnB1dE1ldGhvZFVuZGVybGluZSAgICAgICp1bmRlcmxpbmUpOworCitXRUJL
SVRfQVBJIHZvaWQKK3dlYmtpdF9pbnB1dF9tZXRob2RfdW5kZXJsaW5lX2ZyZWUgICAgICAgICAg
ICAgKFdlYktpdElucHV0TWV0aG9kVW5kZXJsaW5lICAgICAgKnVuZGVybGluZSk7CisKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X2lucHV0X21ldGhvZF91bmRlcmxpbmVfc2V0X2NvbG9yICAgICAg
ICAoV2ViS2l0SW5wdXRNZXRob2RVbmRlcmxpbmUgICAgICAqdW5kZXJsaW5lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0Q29sb3IgICAgICAg
ICAgICAgICAgICAgICAqY29sb3IpOworCitXRUJLSVRfQVBJIFdlYktpdElucHV0UHVycG9zZQor
d2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X2dldF9pbnB1dF9wdXJwb3NlICAoV2ViS2l0SW5w
dXRNZXRob2RDb250ZXh0ICAgICAgICAqY29udGV4dCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X2lucHV0X21ldGhvZF9jb250ZXh0X3NldF9pbnB1dF9wdXJwb3NlICAoV2ViS2l0SW5wdXRN
ZXRob2RDb250ZXh0ICAgICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYktpdElucHV0UHVycG9zZSAgICAgICAgICAgICAgIHB1
cnBvc2UpOworCitXRUJLSVRfQVBJIFdlYktpdElucHV0SGludHMKK3dlYmtpdF9pbnB1dF9tZXRo
b2RfY29udGV4dF9nZXRfaW5wdXRfaGludHMgICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAg
ICAgICAgKmNvbnRleHQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9pbnB1dF9tZXRob2Rf
Y29udGV4dF9zZXRfaW5wdXRfaGludHMgICAgKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCAgICAg
ICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJLaXRJbnB1dEhpbnRzICAgICAgICAgICAgICAgICBoaW50cyk7CisKKworR19FTkRf
REVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0Lmgu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEluc3RhbGxNaXNzaW5n
TWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuaApzaW1pbGFyaXR5IGluZGV4IDk1JQpyZW5h
bWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnN0YWxsTWlz
c2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmguaW4KcmVuYW1lIHRvIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQ
ZXJtaXNzaW9uUmVxdWVzdC5oCmluZGV4IGM1NGNjZGNjNDIwYi4uMWMzZGMwZGM0YmM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnN0YWxsTWlz
c2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmguaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1p
c3Npb25SZXF1ZXN0LmgKQEAgLTE3LDEzICsxNywxNSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCiAgKi8KIAotQEFQSV9TSU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZpbmVk
KF9fV0VCS0lUX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisj
ZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNl
bmRpZgogCiAjaWZuZGVmIFdlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lv
blJlcXVlc3RfaAogI2RlZmluZSBXZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1p
c3Npb25SZXF1ZXN0X2gKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQ
SV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRE
ZWZpbmVzLmg+CiAKIEdfQkVHSU5fREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjFmZWUyZWZkNGJhMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0SmF2YXNjcmlwdFJlc3Vs
dC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMu
TC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2lmICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJf
Q09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQuaD4gY2FuIGJlIGluY2x1ZGVk
IGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdEphdmFzY3JpcHRSZXN1bHRfaAor
I2RlZmluZSBXZWJLaXRKYXZhc2NyaXB0UmVzdWx0X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0
Lmg+CisjaW5jbHVkZSA8anNjL2pzYy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+
CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9KQVZBU0NSSVBUX1JFU1VM
VCAod2Via2l0X2phdmFzY3JpcHRfcmVzdWx0X2dldF90eXBlKCkpCisKK3R5cGVkZWYgc3RydWN0
IF9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0IFdlYktpdEphdmFzY3JpcHRSZXN1bHQ7CisKKworV0VC
S0lUX0FQSSBHVHlwZQord2Via2l0X2phdmFzY3JpcHRfcmVzdWx0X2dldF90eXBlICAgICAgICAg
ICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0SmF2YXNjcmlwdFJlc3VsdCAqCit3ZWJraXRf
amF2YXNjcmlwdF9yZXN1bHRfcmVmICAgICAgICAgICAgICAgIChXZWJLaXRKYXZhc2NyaXB0UmVz
dWx0ICpqc19yZXN1bHQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9qYXZhc2NyaXB0X3Jl
c3VsdF91bnJlZiAgICAgICAgICAgICAgKFdlYktpdEphdmFzY3JpcHRSZXN1bHQgKmpzX3Jlc3Vs
dCk7CisKK1dFQktJVF9BUEkgSlNDVmFsdWUgKgord2Via2l0X2phdmFzY3JpcHRfcmVzdWx0X2dl
dF9qc192YWx1ZSAgICAgICAoV2ViS2l0SmF2YXNjcmlwdFJlc3VsdCAqanNfcmVzdWx0KTsKKwor
R19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmguaW4gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QuaApzaW1pbGFyaXR5IGluZGV4IDk0JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0LmguaW4KcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCmluZGV4IGJhZTE0MTczMTJmZi4uNjVh
NWU2ZWNhMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmguaW4KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0LmgKQEAgLTE3LDEzICsxNywxNSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CiAgKi8KIAotQEFQSV9TSU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZpbmVkKF9fV0VCS0lU
X0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9u
bHkgPHdwZS93ZWJraXQuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgogCiAj
aWZuZGVmIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RfaAogI2RlZmluZSBX
ZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0X2gKIAogI2luY2x1ZGUgPGdsaWIt
b2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVmaW5lcy5o
PgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CiAKIEdfQkVHSU5fREVDTFMKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVtb3J5UHJl
c3N1cmVTZXR0aW5ncy5oLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRNZW1vcnlQcmVzc3VyZVNldHRpbmdzLmgKc2ltaWxhcml0eSBpbmRleCA5NSUKcmVuYW1lIGZy
b20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVtb3J5UHJlc3N1cmVT
ZXR0aW5ncy5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dl
YktpdE1lbW9yeVByZXNzdXJlU2V0dGluZ3MuaAppbmRleCAwZWQ4NmQwMzAwNzYuLjFiNDczNWNm
Njc5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
TWVtb3J5UHJlc3N1cmVTZXR0aW5ncy5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0TWVtb3J5UHJlc3N1cmVTZXR0aW5ncy5oCkBAIC0xNywxMyArMTcsMTUg
QEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLUBBUElfU0lOR0xFX0hF
QURFUl9DSEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5l
ZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBi
ZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRNZW1vcnlQcmVz
c3VyZVNldHRpbmdzX2gKICNkZWZpbmUgV2ViS2l0TWVtb3J5UHJlc3N1cmVTZXR0aW5nc19oCiAK
ICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhA
L1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgogCiBHX0JF
R0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdE1pbWVJbmZvLmguaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dl
YktpdE1pbWVJbmZvLmgKc2ltaWxhcml0eSBpbmRleCA5MCUKcmVuYW1lIGZyb20gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWltZUluZm8uaC5pbgpyZW5hbWUgdG8gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRNaW1lSW5mby5oCmluZGV4IDk2YTVk
YTljMzg0NC4uNjdlNmJhYjU0NDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRNaW1lSW5mby5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0TWltZUluZm8uaApAQCAtMTcsMTMgKzE3LDE1IEBACiAgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tA
CisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9D
T01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQg
ZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0TWltZUluZm9faAogI2RlZmluZSBX
ZWJLaXRNaW1lSW5mb19oCiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPEBB
UElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0
RGVmaW5lcy5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25BY3Rpb24uaC5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TmF2aWdhdGlvbkFjdGlvbi5oCnNpbWlsYXJp
dHkgaW5kZXggOTMlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdE5hdmlnYXRpb25BY3Rpb24uaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uLmgKaW5kZXggNWNlN2U5NWM4OGY1
Li4wZmRlYzFkYzE4MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdE5hdmlnYXRpb25BY3Rpb24uaC5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1dlYktpdE5hdmlnYXRpb25BY3Rpb24uaApAQCAtMTcsMTQgKzE3LDE2IEBA
CiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi1AQVBJX1NJTkdMRV9IRUFE
RVJfQ0hFQ0tACisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQo
V0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUg
aW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0TmF2aWdhdGlvbkFj
dGlvbl9oCiAjZGVmaW5lIFdlYktpdE5hdmlnYXRpb25BY3Rpb25faAogCiAjaW5jbHVkZSA8Z2xp
Yi1vYmplY3QuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXREZWZpbmVz
Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0VVJJUmVxdWVzdC5oPgor
I2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVJl
cXVlc3QuaD4KIAogR19CRUdJTl9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjZhZmI4OTkyZWJlNwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVf
XykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dl
YmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2Vi
S2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uX2gKKyNkZWZpbmUgV2ViS2l0TmF2aWdhdGlvblBv
bGljeURlY2lzaW9uX2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d3Bl
L1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0TmF2aWdhdGlvbkFjdGlvbi5o
PgorI2luY2x1ZGUgPHdwZS9XZWJLaXRQb2xpY3lEZWNpc2lvbi5oPgorI2luY2x1ZGUgPHdwZS9X
ZWJLaXRVUklSZXF1ZXN0Lmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQ
RV9OQVZJR0FUSU9OX1BPTElDWV9ERUNJU0lPTiAgICAgICAgICAgICh3ZWJraXRfbmF2aWdhdGlv
bl9wb2xpY3lfZGVjaXNpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX05BVklHQVRJT05f
UE9MSUNZX0RFQ0lTSU9OKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NB
U1QoKG9iaiksIFdFQktJVF9UWVBFX05BVklHQVRJT05fUE9MSUNZX0RFQ0lTSU9OLCBXZWJLaXRO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb24pKQorI2RlZmluZSBXRUJLSVRfTkFWSUdBVElPTl9QT0xJ
Q1lfREVDSVNJT05fQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xh
c3MpLCAgV0VCS0lUX1RZUEVfTkFWSUdBVElPTl9QT0xJQ1lfREVDSVNJT04sIFdlYktpdE5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbkNsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX05BVklHQVRJT05f
UE9MSUNZX0RFQ0lTSU9OKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUo
KG9iaiksIFdFQktJVF9UWVBFX05BVklHQVRJT05fUE9MSUNZX0RFQ0lTSU9OKSkKKyNkZWZpbmUg
V0VCS0lUX0lTX05BVklHQVRJT05fUE9MSUNZX0RFQ0lTSU9OX0NMQVNTKGtsYXNzKSAoR19UWVBF
X0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX05BVklHQVRJT05fUE9MSUNZ
X0RFQ0lTSU9OKSkKKyNkZWZpbmUgV0VCS0lUX05BVklHQVRJT05fUE9MSUNZX0RFQ0lTSU9OX0dF
VF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9U
WVBFX05BVklHQVRJT05fUE9MSUNZX0RFQ0lTSU9OLCBXZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb25DbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb24gICAgICAgIFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjsKK3R5cGVkZWYgc3Ry
dWN0IF9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25DbGFzcyAgIFdlYktpdE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvblByaXZhdGUgV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uUHJpdmF0
ZTsKKworc3RydWN0IF9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24geworICAgIFdlYktp
dFBvbGljeURlY2lzaW9uIHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIFdlYktp
dE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvblByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dl
YktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkNsYXNzIHsKKyAgICBXZWJLaXRQb2xpY3lEZWNp
c2lvbkNsYXNzIHBhcmVudF9jbGFzczsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIHZvaWQg
KCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVk
MSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAgIHZv
aWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQor
d2Via2l0X25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX2dldF90eXBlICAgICAgICAgICAgKHZv
aWQpOworCitXRUJLSVRfQVBJIFdlYktpdE5hdmlnYXRpb25BY3Rpb24gKgord2Via2l0X25hdmln
YXRpb25fcG9saWN5X2RlY2lzaW9uX2dldF9uYXZpZ2F0aW9uX2FjdGlvbiAoV2ViS2l0TmF2aWdh
dGlvblBvbGljeURlY2lzaW9uICpkZWNpc2lvbik7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIg
Kgord2Via2l0X25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX2dldF9mcmFtZV9uYW1lICAgICAg
ICAoV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uICpkZWNpc2lvbik7CisKK0dfRU5EX0RF
Q0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0TmV0d29ya1Byb3h5U2V0dGluZ3MuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0TmV0d29ya1Byb3h5U2V0dGluZ3MuaApzaW1pbGFyaXR5IGluZGV4
IDkzJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRO
ZXR3b3JrUHJveHlTZXR0aW5ncy5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1dlYktpdE5ldHdvcmtQcm94eVNldHRpbmdzLmgKaW5kZXggMmEyYzhmMGIzODNh
Li5lZmQyOWM0NjE1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdE5ldHdvcmtQcm94eVNldHRpbmdzLmguaW4KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXROZXR3b3JrUHJveHlTZXR0aW5ncy5oCkBAIC0xNywxMyAr
MTcsMTUgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLUBBUElfSU5D
TFVERV9QUkVGSVhACisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmlu
ZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4g
YmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0TmV0d29ya1By
b3h5U2V0dGluZ3NfaAogI2RlZmluZSBXZWJLaXROZXR3b3JrUHJveHlTZXR0aW5nc19oCiAKICNp
bmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dl
YktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgogCiBHX0JFR0lO
X0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdE5vdGlmaWNhdGlvbi5oLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXROb3RpZmljYXRpb24uaApzaW1pbGFyaXR5IGluZGV4IDk0JQpyZW5hbWUgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROb3RpZmljYXRpb24uaC5pbgpyZW5h
bWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXROb3RpZmljYXRpb24u
aAppbmRleCBmOGE0YTdjM2QxZDQuLmQyYTk2MzZjMGU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Tm90aWZpY2F0aW9uLmguaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXROb3RpZmljYXRpb24uaApAQCAtMTcs
MTMgKzE3LDE1IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi1AQVBJ
X1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykg
JiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtp
dC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0
Tm90aWZpY2F0aW9uX2gKICNkZWZpbmUgV2ViS2l0Tm90aWZpY2F0aW9uX2gKIAogI2luY2x1ZGUg
PGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVm
aW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CiAKIEdfQkVHSU5fREVDTFMK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Tm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaApzaW1pbGFyaXR5
IGluZGV4IDk0JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oLmluCnJlbmFtZSB0byBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LmgKaW5kZXggNjdjZjM2N2VlYjY5Li42ZjZkZWJiOTM3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0xNywxMyArMTcsMTUgQEAKICAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLUBBUElfU0lOR0xFX0hFQURFUl9DSEVD
S0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQy
X0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRl
ZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXROb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdF9oCiAjZGVmaW5lIFdlYktpdE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
X2gKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BS
RUZJWEAvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CiAK
IEdfQkVHSU5fREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0T3B0aW9uTWVudS5oLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXRPcHRpb25NZW51LmgKc2ltaWxhcml0eSBpbmRleCA5MiUKcmVuYW1lIGZyb20g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0T3B0aW9uTWVudS5oLmluCnJl
bmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE9wdGlvbk1lbnUu
aAppbmRleCAxOTYxODVjMmMyYjEuLmI0OTFlYTg2MTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0T3B0aW9uTWVudS5oLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0T3B0aW9uTWVudS5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNywgMjAyMCBJZ2FsaWEgUy5MLgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE3LDE0
ICsxNywxNiBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAotQEFQSV9T
SU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5TSURFX18pICYm
ICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQu
aD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgogCiAjaWZuZGVmIFdlYktpdE9w
dGlvbk1lbnVfaAogI2RlZmluZSBXZWJLaXRPcHRpb25NZW51X2gKIAogI2luY2x1ZGUgPGdsaWIt
b2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVmaW5lcy5o
PgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdE9wdGlvbk1lbnVJdGVtLmg+
CisjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0T3B0
aW9uTWVudUl0ZW0uaD4KIAogR19CRUdJTl9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRPcHRpb25NZW51SXRlbS5oLmluIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRPcHRpb25NZW51SXRlbS5oCnNpbWlsYXJp
dHkgaW5kZXggOTAlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdE9wdGlvbk1lbnVJdGVtLmguaW4KcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0T3B0aW9uTWVudUl0ZW0uaAppbmRleCBmNjU0MDRmMTNhOWEuLmU0
YTU3ZDQzMWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0T3B0aW9uTWVudUl0ZW0uaC5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdE9wdGlvbk1lbnVJdGVtLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE3LCAyMDIwIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTcsMTMgKzE3LDE1IEBACiAgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hF
Q0tACisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lU
Ml9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVk
ZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0T3B0aW9uTWVudUl0ZW1faAog
I2RlZmluZSBXZWJLaXRPcHRpb25NZW51SXRlbV9oCiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5o
PgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERlZmluZXMuaD4KKyNpbmNs
dWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0
LmguaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFBlcm1pc3Npb25S
ZXF1ZXN0LmgKc2ltaWxhcml0eSBpbmRleCA5MiUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UGVybWlzc2lvblJlcXVlc3QuaC5pbgpyZW5hbWUgdG8g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRQZXJtaXNzaW9uUmVxdWVzdC5o
CmluZGV4IGM3MGZlNWY1YzA2NS4uOGFlNzU5OGUyZWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQZXJtaXNzaW9uUmVxdWVzdC5oLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0UGVybWlzc2lvblJlcXVlc3Qu
aApAQCAtMTcsMTMgKzE3LDE1IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAq
LwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9J
TlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8
d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5k
ZWYgV2ViS2l0UGVybWlzc2lvblJlcXVlc3RfaAogI2RlZmluZSBXZWJLaXRQZXJtaXNzaW9uUmVx
dWVzdF9oCiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVE
RV9QUkVGSVhAL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5o
PgogCiBHX0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFBsdWdpbi5oLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXRQbHVnaW4uaApzaW1pbGFyaXR5IGluZGV4IDkzJQpyZW5hbWUgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQbHVnaW4uaC5pbgpyZW5hbWUgdG8g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRQbHVnaW4uaAppbmRleCBhYTg3
ODc4NGRmN2UuLjhiMDcyOWVmOTdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0UGx1Z2luLmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRQbHVnaW4uaApAQCAtMTcsMTMgKzE3LDE1IEBACiAgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisj
aWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01Q
SUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGly
ZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0UGx1Z2luX2gKICNkZWZpbmUgV2ViS2l0
UGx1Z2luX2gKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNM
VURFX1BSRUZJWEAvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVz
Lmg+CiAKIEdfQkVHSU5fREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0UG9saWN5RGVjaXNpb24uaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0UG9saWN5RGVjaXNpb24uaApzaW1pbGFyaXR5IGluZGV4IDkz
JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQb2xp
Y3lEZWNpc2lvbi5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3Bl
L1dlYktpdFBvbGljeURlY2lzaW9uLmgKaW5kZXggM2UyNGMxYzU0NWNiLi43Zjc0ZjYzNjM0YjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFBvbGlj
eURlY2lzaW9uLmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRQb2xpY3lEZWNpc2lvbi5oCkBAIC0xNywxNCArMTcsMTYgQEAKICAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgogICovCiAKLUBBUElfU0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAhZGVm
aW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9O
KQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4i
CisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRQb2xpY3lEZWNpc2lvbl9oCiAjZGVmaW5lIFdlYktp
dFBvbGljeURlY2lzaW9uX2gKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8
QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVmaW5lcy5oPgotI2luY2x1ZGUgPEBBUElfSU5D
TFVERV9QUkVGSVhAL1dlYktpdFdlYnNpdGVQb2xpY2llcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJL
aXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdFdlYnNpdGVQb2xpY2llcy5oPgogCiBH
X0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24uaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbi5oCnNpbWlsYXJpdHkg
aW5kZXggOTElCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24uaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRSZXNwb25zZVBvbGljeURlY2lzaW9uLmgKaW5kZXggN2Nm
MTY4OWFjMWEwLi5hYTMxYTFmMTE3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24uaC5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24u
aApAQCAtMTcsMTYgKzE3LDE4IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAq
LwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9J
TlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8
d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5k
ZWYgV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbl9oCiAjZGVmaW5lIFdlYktpdFJlc3BvbnNl
UG9saWN5RGVjaXNpb25faAogCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLSNpbmNsdWRlIDxA
QVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXREZWZpbmVzLmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNM
VURFX1BSRUZJWEAvV2ViS2l0UG9saWN5RGVjaXNpb24uaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xV
REVfUFJFRklYQC9XZWJLaXRVUklSZXNwb25zZS5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9Q
UkVGSVhAL1dlYktpdFVSSVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5o
PgorI2luY2x1ZGUgPHdwZS9XZWJLaXRQb2xpY3lEZWNpc2lvbi5oPgorI2luY2x1ZGUgPHdwZS9X
ZWJLaXRVUklSZXNwb25zZS5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRVUklSZXF1ZXN0Lmg+CiAK
IEdfQkVHSU5fREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0U2NyaXB0RGlhbG9nLmguaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdFNjcmlwdERpYWxvZy5oCnNpbWlsYXJpdHkgaW5kZXggOTQlCnJlbmFtZSBm
cm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNjcmlwdERpYWxvZy5o
LmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNjcmlw
dERpYWxvZy5oCmluZGV4IDNhMGJkYzRkMTc1Ny4uYzk2MDkxNjE5NjUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTY3JpcHREaWFsb2cuaC5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNjcmlwdERpYWxvZy5o
CkBAIC0xNywxMyArMTcsMTUgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICov
CiAKLUBBUElfU0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lO
U0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3
cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRl
ZiBXZWJLaXRTY3JpcHREaWFsb2dfaAogI2RlZmluZSBXZWJLaXRTY3JpcHREaWFsb2dfaAogCiAj
aW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9X
ZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KIAogR19CRUdJ
Tl9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRTZWN1cml0eU1hbmFnZXIuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0U2VjdXJpdHlNYW5hZ2VyLmgKc2ltaWxhcml0eSBpbmRleCA5NiUKcmVuYW1lIGZy
b20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2VjdXJpdHlNYW5hZ2Vy
LmguaW4KcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2Vj
dXJpdHlNYW5hZ2VyLmgKaW5kZXggNDBlMmQ1MDdjOTk0Li44Y2FkNDUzNTdjZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNlY3VyaXR5TWFuYWdl
ci5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2VjdXJp
dHlNYW5hZ2VyLmgKQEAgLTE3LDEzICsxNywxNSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCiAgKi8KIAotQEFQSV9TSU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZpbmVkKF9f
V0VCS0lUX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJy
b3IgIk9ubHkgPHdwZS93ZWJraXQuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRp
ZgogCiAjaWZuZGVmIFdlYktpdFNlY3VyaXR5TWFuYWdlcl9oCiAjZGVmaW5lIFdlYktpdFNlY3Vy
aXR5TWFuYWdlcl9oCiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElf
SU5DTFVERV9QUkVGSVhAL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVm
aW5lcy5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFNlY3VyaXR5T3JpZ2luLmguaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNlY3VyaXR5T3JpZ2luLmgKc2ltaWxhcml0eSBpbmRl
eCA5MyUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
U2VjdXJpdHlPcmlnaW4uaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXRTZWN1cml0eU9yaWdpbi5oCmluZGV4IDc3NGJhNjdmMDA0ZC4uZTJiZDllMDk5
YTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRT
ZWN1cml0eU9yaWdpbi5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0U2VjdXJpdHlPcmlnaW4uaApAQCAtMTcsMTMgKzE3LDE1IEBACiAgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYg
IWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxB
VElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0
bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0U2VjdXJpdHlPcmlnaW5faAogI2RlZmluZSBX
ZWJLaXRTZWN1cml0eU9yaWdpbl9oCiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1
ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUv
V2ViS2l0RGVmaW5lcy5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLjFiNWFhMmI3YWY4OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2V0dGluZ3MuaApAQCAtMCwwICsxLDQ4
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMSBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICog
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUg
bWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICog
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBN
b2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAq
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5l
ZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBi
ZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRTZXR0aW5nc19o
CisjZGVmaW5lIFdlYktpdFNldHRpbmdzX2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Cisj
aW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5l
IFdFQktJVF9UWVBFX1NFVFRJTkdTICAgICAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19nZXRfdHlw
ZSgpKQorI2RlZmluZSBXRUJLSVRfU0VUVElOR1Mob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfU0VUVElOR1MsIFdlYktpdFNldHRp
bmdzKSkKKyNkZWZpbmUgV0VCS0lUX1NFVFRJTkdTX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NI
RUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1NFVFRJTkdTLCBXZWJLaXRTZXR0
aW5nc0NsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1NFVFRJTkdTKG9iaikgICAgICAgICAoR19U
WVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1NFVFRJTkdTKSkKKyNk
ZWZpbmUgV0VCS0lUX0lTX1NFVFRJTkdTX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNT
X1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1NFVFRJTkdTKSkKKyNkZWZpbmUgV0VCS0lUX1NF
VFRJTkdTX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwg
IFdFQktJVF9UWVBFX1NFVFRJTkdTLCBXZWJLaXRTZXR0aW5nc0NsYXNzKSkKKwordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdFNldHRpbmdzIFdlYktpdFNldHRpbmdzOwordHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdFNldHRpbmdzQ2xhc3MgV2ViS2l0U2V0dGluZ3NDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRTZXR0aW5nc1ByaXZhdGUgV2ViS2l0U2V0dGluZ3NQcml2YXRlOworCitzdHJ1Y3QgX1dl
YktpdFNldHRpbmdzIHsKKyAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKworICAgIC8qPCBw
cml2YXRlID4qLworICAgIFdlYktpdFNldHRpbmdzUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVj
dCBfV2ViS2l0U2V0dGluZ3NDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsK
KworICAgIC8qPCBwcml2YXRlID4qLworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZv
aWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpf
d2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykg
KHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3NldHRpbmdzX2dldF90eXBl
KHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdFNldHRpbmdzICoKK3dlYmtpdF9zZXR0aW5nc19u
ZXcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKKwor
V0VCS0lUX0FQSSBXZWJLaXRTZXR0aW5ncyAqCit3ZWJraXRfc2V0dGluZ3NfbmV3X3dpdGhfc2V0
dGluZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgZ2NoYXIgICAgKmZpcnN0
X3NldHRpbmdfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAuLi4pOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJr
aXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9qYXZhc2NyaXB0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRf
c2V0dGluZ3Nfc2V0X2VuYWJsZV9qYXZhc2NyaXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAo
V2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBlbmFibGVk
KTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3NldHRpbmdzX2dldF9hdXRvX2xvYWRf
aW1hZ2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5n
cyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3NldHRpbmdzX3NldF9hdXRvX2xvYWRfaW1h
Z2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5hYmxlZCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4K
K3dlYmtpdF9zZXR0aW5nc19nZXRfbG9hZF9pY29uc19pZ25vcmluZ19pbWFnZV9sb2FkX3NldHRp
bmcgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dl
YmtpdF9zZXR0aW5nc19zZXRfbG9hZF9pY29uc19pZ25vcmluZ19pbWFnZV9sb2FkX3NldHRpbmcg
ICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGVu
YWJsZWQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJs
ZV9vZmZsaW5lX3dlYl9hcHBsaWNhdGlvbl9jYWNoZSAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNl
dHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9v
ZmZsaW5lX3dlYl9hcHBsaWNhdGlvbl9jYWNoZSAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRp
bmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBlbmFibGVkKTsKKworV0VCS0lUX0FQSSBnYm9v
bGVhbgord2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfaHRtbDVfbG9jYWxfc3RvcmFnZSAgICAg
ICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9p
ZAord2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfaHRtbDVfbG9jYWxfc3RvcmFnZSAgICAgICAg
ICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAg
ICAgZW5hYmxlZCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9zZXR0aW5nc19nZXRf
ZW5hYmxlX2h0bWw1X2RhdGFiYXNlICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5n
cyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5nc19zZXRfZW5h
YmxlX2h0bWw1X2RhdGFiYXNlICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAq
c2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOworV0VCS0lUX0RFUFJF
Q0FURUQgZ2Jvb2xlYW4KK3dlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX3hzc19hdWRpdG9yICAg
ICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV94c3NfYXVkaXRv
ciAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdib29sZWFuICAgICAgICBlbmFibGVkKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Vi
a2l0X3NldHRpbmdzX2dldF9lbmFibGVfZnJhbWVfZmxhdHRlbmluZyAgICAgICAgICAgICAgICAg
ICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0
X3NldHRpbmdzX3NldF9lbmFibGVfZnJhbWVfZmxhdHRlbmluZyAgICAgICAgICAgICAgICAgICAg
KFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5hYmxl
ZCk7CisKK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2Vu
YWJsZV9wbHVnaW5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3Mg
KnNldHRpbmdzKTsKKworV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAord2Via2l0X3NldHRpbmdzX3Nl
dF9lbmFibGVfcGx1Z2lucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRp
bmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5hYmxlZCk7CisKK1dFQktJ
VF9ERVBSRUNBVEVEIGdib29sZWFuCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9qYXZhICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsK
KworV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAord2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfamF2
YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5n
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5hYmxlZCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xl
YW4KK3dlYmtpdF9zZXR0aW5nc19nZXRfamF2YXNjcmlwdF9jYW5fb3Blbl93aW5kb3dzX2F1dG9t
YXRpY2FsbHkgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQK
K3dlYmtpdF9zZXR0aW5nc19zZXRfamF2YXNjcmlwdF9jYW5fb3Blbl93aW5kb3dzX2F1dG9tYXRp
Y2FsbHkgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAg
IGVuYWJsZWQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2Vu
YWJsZV9oeXBlcmxpbmtfYXVkaXRpbmcgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3Mg
KnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJs
ZV9oeXBlcmxpbmtfYXVkaXRpbmcgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNl
dHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBlbmFibGVkKTsKKworV0VCS0lUX0FQSSBj
b25zdCBnY2hhciAqCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2RlZmF1bHRfZm9udF9mYW1pbHkgICAg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lU
X0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2RlZmF1bHRfZm9udF9mYW1pbHkgICAgICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGdjaGFyICAgICpkZWZhdWx0X2ZvbnRfZmFtaWx5KTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hh
ciAqCit3ZWJraXRfc2V0dGluZ3NfZ2V0X21vbm9zcGFjZV9mb250X2ZhbWlseSAgICAgICAgICAg
ICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lk
Cit3ZWJraXRfc2V0dGluZ3Nfc2V0X21vbm9zcGFjZV9mb250X2ZhbWlseSAgICAgICAgICAgICAg
ICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAg
ICptb25vc3BhY2VfZm9udF9mYW1pbHkpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dl
YmtpdF9zZXR0aW5nc19nZXRfc2VyaWZfZm9udF9mYW1pbHkgICAgICAgICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtp
dF9zZXR0aW5nc19zZXRfc2VyaWZfZm9udF9mYW1pbHkgICAgICAgICAgICAgICAgICAgICAgICAg
IChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgKnNlcmlm
X2ZvbnRfZmFtaWx5KTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfc2V0dGlu
Z3NfZ2V0X3NhbnNfc2VyaWZfZm9udF9mYW1pbHkgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0
U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nf
c2V0X3NhbnNfc2VyaWZfZm9udF9mYW1pbHkgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0
dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICpzYW5zX3NlcmlmX2ZvbnRf
ZmFtaWx5KTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfc2V0dGluZ3NfZ2V0
X2N1cnNpdmVfZm9udF9mYW1pbHkgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGlu
Z3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2N1
cnNpdmVfZm9udF9mYW1pbHkgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3Mg
KnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICpjdXJzaXZlX2ZvbnRfZmFtaWx5KTsK
KworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2ZhbnRhc3lf
Zm9udF9mYW1pbHkgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRp
bmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2ZhbnRhc3lfZm9u
dF9mYW1pbHkgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGdjaGFyICAgICpmYW50YXN5X2ZvbnRfZmFtaWx5KTsKKworV0VCS0lU
X0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfc2V0dGluZ3NfZ2V0X3BpY3RvZ3JhcGhfZm9udF9m
YW1pbHkgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKwor
V0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X3BpY3RvZ3JhcGhfZm9udF9mYW1p
bHkgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGdjaGFyICAgICpwaWN0b2dyYXBoX2ZvbnRfZmFtaWx5KTsKKworV0VCS0lUX0FQSSBn
dWludDMyCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2RlZmF1bHRfZm9udF9zaXplICAgICAgICAgICAg
ICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2
b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2RlZmF1bHRfZm9udF9zaXplICAgICAgICAgICAgICAg
ICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50MzIgICAg
ICAgICBmb250X3NpemUpOworCitXRUJLSVRfQVBJIGd1aW50MzIKK3dlYmtpdF9zZXR0aW5nc19n
ZXRfZGVmYXVsdF9tb25vc3BhY2VfZm9udF9zaXplICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0
aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5nc19zZXRf
ZGVmYXVsdF9tb25vc3BhY2VfZm9udF9zaXplICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5n
cyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ3VpbnQzMiAgICAgICAgIGZvbnRfc2l6ZSk7CisKK1dFQktJ
VF9BUEkgZ3VpbnQzMgord2Via2l0X3NldHRpbmdzX2dldF9taW5pbXVtX2ZvbnRfc2l6ZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X3NldHRpbmdzX3NldF9taW5pbXVtX2ZvbnRfc2l6ZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWlu
dDMyICAgICAgICAgZm9udF9zaXplKTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJr
aXRfc2V0dGluZ3NfZ2V0X2RlZmF1bHRfY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRf
c2V0dGluZ3Nfc2V0X2RlZmF1bHRfY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
V2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICpkZWZhdWx0
X2NoYXJzZXQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2Vu
YWJsZV9kZXZlbG9wZXJfZXh0cmFzICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3Mg
KnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJs
ZV9kZXZlbG9wZXJfZXh0cmFzICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNl
dHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBlbmFibGVkKTsKKworV0VCS0lUX0FQSSBn
Ym9vbGVhbgord2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfcmVzaXphYmxlX3RleHRfYXJlYXMg
ICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfcmVzaXphYmxlX3RleHRfYXJlYXMgICAg
ICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAg
ICAgICAgZW5hYmxlZCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9zZXR0aW5nc19n
ZXRfZW5hYmxlX3RhYnNfdG9fbGlua3MgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0
aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5nc19zZXRf
ZW5hYmxlX3RhYnNfdG9fbGlua3MgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5n
cyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOworCitXRUJLSVRf
QVBJIGdib29sZWFuCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9kbnNfcHJlZmV0Y2hpbmcg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lU
X0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9kbnNfcHJlZmV0Y2hpbmcgICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29s
ZWFuICAgICAgICBlbmFibGVkKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3NldHRp
bmdzX2dldF9lbmFibGVfY2FyZXRfYnJvd3NpbmcgICAgICAgICAgICAgICAgICAgICAgKFdlYktp
dFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3NldHRpbmdz
X3NldF9lbmFibGVfY2FyZXRfYnJvd3NpbmcgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNl
dHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5hYmxlZCk7CisKK1dF
QktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX2Z1bGxzY3JlZW4g
ICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpOworCitX
RUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX2Z1bGxzY3JlZW4gICAg
ICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRf
c2V0dGluZ3NfZ2V0X3ByaW50X2JhY2tncm91bmRzICAgICAgICAgICAgICAgICAgICAgICAgICAo
V2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0
dGluZ3Nfc2V0X3ByaW50X2JhY2tncm91bmRzICAgICAgICAgICAgICAgICAgICAgICAgICAoV2Vi
S2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBwcmludF9iYWNr
Z3JvdW5kcyk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9zZXR0aW5nc19nZXRfZW5h
YmxlX3dlYmF1ZGlvICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAq
c2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxl
X3dlYmF1ZGlvICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0
dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOworCitXRUJLSVRfQVBJIGdi
b29sZWFuCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV93ZWJnbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2
b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV93ZWJnbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAg
ICAgICBlbmFibGVkKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2Fs
bG93X21vZGFsX2RpYWxvZ3MgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3Mg
KnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBhbGxvd2VkKTsKKworV0VCS0lUX0FQ
SSBnYm9vbGVhbgord2Via2l0X3NldHRpbmdzX2dldF9hbGxvd19tb2RhbF9kaWFsb2dzICAgICAg
ICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9B
UEkgdm9pZAord2Via2l0X3NldHRpbmdzX3NldF96b29tX3RleHRfb25seSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVh
biAgICAgICAgem9vbV90ZXh0X29ubHkpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRf
c2V0dGluZ3NfZ2V0X3pvb21fdGV4dF9vbmx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
V2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0
X3NldHRpbmdzX2dldF9qYXZhc2NyaXB0X2Nhbl9hY2Nlc3NfY2xpcGJvYXJkICAgICAgICAgICAg
KFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3Nl
dHRpbmdzX3NldF9qYXZhc2NyaXB0X2Nhbl9hY2Nlc3NfY2xpcGJvYXJkICAgICAgICAgICAgKFdl
YktpdFNldHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5hYmxlZCk7
CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfcGxheWJh
Y2tfcmVxdWlyZXNfdXNlcl9nZXN0dXJlICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3Mp
OworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5nc19zZXRfbWVkaWFfcGxheWJhY2tf
cmVxdWlyZXNfdXNlcl9nZXN0dXJlICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3
ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX3BsYXliYWNrX2FsbG93c19pbmxpbmUgICAgICAgICAg
ICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJr
aXRfc2V0dGluZ3Nfc2V0X21lZGlhX3BsYXliYWNrX2FsbG93c19pbmxpbmUgICAgICAgICAgICAg
ICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBlbmFi
bGVkKTsKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9zZXR0aW5nc19nZXRfZHJhd19jb21w
b3NpdGluZ19pbmRpY2F0b3JzICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGlu
Z3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5nc19zZXRfZHJhd19jb21wb3Np
dGluZ19pbmRpY2F0b3JzICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3Ms
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOworCitXRUJLSVRfQVBJIGdib29sZWFu
Cit3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9zaXRlX3NwZWNpZmljX3F1aXJrcyAgICAgICAg
ICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3
ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9zaXRlX3NwZWNpZmljX3F1aXJrcyAgICAgICAgICAg
ICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBl
bmFibGVkKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3NldHRpbmdzX2dldF9lbmFi
bGVfcGFnZV9jYWNoZSAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpz
ZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVf
cGFnZV9jYWNoZSAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0
aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5hYmxlZCk7CisKK1dFQktJVF9BUEkgY29u
c3QgZ2NoYXIgKgord2Via2l0X3NldHRpbmdzX2dldF91c2VyX2FnZW50ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9B
UEkgdm9pZAord2Via2l0X3NldHRpbmdzX3NldF91c2VyX2FnZW50ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn
Y2hhciAgICAqdXNlcl9hZ2VudCk7CitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5nc19z
ZXRfdXNlcl9hZ2VudF93aXRoX2FwcGxpY2F0aW9uX2RldGFpbHMgICAgICAgIChXZWJLaXRTZXR0
aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgKmFwcGxpY2F0aW9uX25hbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgZ2NoYXIgICAgKmFwcGxpY2F0aW9uX3ZlcnNpb24pOworCitXRUJLSVRf
QVBJIGdib29sZWFuCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9zbW9vdGhfc2Nyb2xsaW5n
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lU
X0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9zbW9vdGhfc2Nyb2xsaW5nICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29s
ZWFuICAgICAgICBlbmFibGVkKTsKKworV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KK3dlYmtp
dF9zZXR0aW5nc19nZXRfZW5hYmxlX2FjY2VsZXJhdGVkXzJkX2NhbnZhcyAgICAgICAgICAgICAg
IChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCit3
ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9hY2NlbGVyYXRlZF8yZF9jYW52YXMgICAgICAgICAg
ICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBl
bmFibGVkKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3NldHRpbmdzX2dldF9lbmFi
bGVfd3JpdGVfY29uc29sZV9tZXNzYWdlc190b19zdGRvdXQgICAgKFdlYktpdFNldHRpbmdzICpz
ZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVf
d3JpdGVfY29uc29sZV9tZXNzYWdlc190b19zdGRvdXQgICAgKFdlYktpdFNldHRpbmdzICpzZXR0
aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5hYmxlZCk7CisKK1dFQktJVF9BUEkgZ2Jv
b2xlYW4KK3dlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX21lZGlhX3N0cmVhbSAgICAgICAgICAg
ICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhX3N0cmVhbSAgICAgICAgICAgICAg
ICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAg
ICAgIGVuYWJsZWQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfc2V0dGluZ3NfZ2V0
X2VuYWJsZV9tb2NrX2NhcHR1cmVfZGV2aWNlcyAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGlu
Z3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2Vu
YWJsZV9tb2NrX2NhcHR1cmVfZGV2aWNlcyAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3Mg
KnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBlbmFibGVkKTsKKworV0VCS0lUX0FQ
SSBnYm9vbGVhbgord2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfc3BhdGlhbF9uYXZpZ2F0aW9u
ICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9B
UEkgdm9pZAord2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfc3BhdGlhbF9uYXZpZ2F0aW9uICAg
ICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVh
biAgICAgICAgZW5hYmxlZCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9zZXR0aW5n
c19nZXRfZW5hYmxlX21lZGlhc291cmNlICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRT
ZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5nc19z
ZXRfZW5hYmxlX21lZGlhc291cmNlICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0
aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOworCitXRUJL
SVRfQVBJIGdib29sZWFuCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9lbmNyeXB0ZWRfbWVk
aWEgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VC
S0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9lbmNyeXB0ZWRfbWVkaWEg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdi
b29sZWFuICAgICAgICBlbmFibGVkKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3Nl
dHRpbmdzX2dldF9lbmFibGVfbWVkaWFfY2FwYWJpbGl0aWVzICAgICAgICAgICAgICAgICAgKFdl
YktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3NldHRp
bmdzX3NldF9lbmFibGVfbWVkaWFfY2FwYWJpbGl0aWVzICAgICAgICAgICAgICAgICAgKFdlYktp
dFNldHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5hYmxlZCk7CisK
K1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9zZXR0aW5nc19nZXRfYWxsb3dfZmlsZV9hY2Nl
c3NfZnJvbV9maWxlX3VybHMgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpOwor
CitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dfZmlsZV9hY2Nlc3Nf
ZnJvbV9maWxlX3VybHMgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2Jvb2xlYW4gICAgICAgIGFsbG93ZWQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJr
aXRfc2V0dGluZ3NfZ2V0X2FsbG93X3VuaXZlcnNhbF9hY2Nlc3NfZnJvbV9maWxlX3VybHMgICAg
ICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRf
c2V0dGluZ3Nfc2V0X2FsbG93X3VuaXZlcnNhbF9hY2Nlc3NfZnJvbV9maWxlX3VybHMgICAgICAo
V2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBhbGxvd2Vk
KTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3NldHRpbmdzX2dldF9hbGxvd190b3Bf
bmF2aWdhdGlvbl90b19kYXRhX3VybHMgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5n
cyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3NldHRpbmdzX3NldF9hbGxvd190b3BfbmF2
aWdhdGlvbl90b19kYXRhX3VybHMgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnYm9vbGVhbiAgICAgICAgYWxsb3dlZCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4K
K3dlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX2phdmFzY3JpcHRfbWFya3VwICAgICAgICAgICAg
ICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dl
YmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX2phdmFzY3JpcHRfbWFya3VwICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGVu
YWJsZWQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJs
ZV9tZWRpYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNl
dHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9t
ZWRpYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRp
bmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBlbmFibGVkKTsKKworV0VCS0lUX0FQSSBjb25z
dCBnY2hhciAqCit3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWly
aW5nX2hhcmR3YXJlX3N1cHBvcnQgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVp
cmluZ19oYXJkd2FyZV9zdXBwb3J0IChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyICpjb250ZW50X3R5cGVzKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgor
d2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfd2VicnRjICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X3NldHRpbmdzX3NldF9lbmFibGVfd2VicnRjICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBlbmFibGVkKTsK
KworR19FTkRfREVDTFMKKworI2VuZGlmIC8qIFdlYktpdFNldHRpbmdzX2ggKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVJlcXVlc3QuaC5p
biBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJUmVxdWVzdC5oCnNp
bWlsYXJpdHkgaW5kZXggOTIlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVSSVJlcXVlc3QuaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklSZXF1ZXN0LmgKaW5kZXggZWM4MTI2M2EyOTJhLi40ZmI2
YjMwZDE0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFVSSVJlcXVlc3QuaC5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3Bl
L1dlYktpdFVSSVJlcXVlc3QuaApAQCAtMTcsMTQgKzE3LDE2IEBACiAgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KICAqLwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRl
ZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElP
TikgJiYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKQorI2Vycm9y
ICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYK
IAogI2lmbmRlZiBXZWJLaXRVUklSZXF1ZXN0X2gKICNkZWZpbmUgV2ViS2l0VVJJUmVxdWVzdF9o
CiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgot
I2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRl
IDx3cGUvV2ViS2l0RGVmaW5lcy5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVJlc3BvbnNlLmguaW4gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVJlc3BvbnNlLmgKc2ltaWxh
cml0eSBpbmRleCA5MyUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0VVJJUmVzcG9uc2UuaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRVUklSZXNwb25zZS5oCmluZGV4IGZmYmNhNzkxMzM2Ni4uNDMyY2Nm
ODViYzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRVUklSZXNwb25zZS5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0VVJJUmVzcG9uc2UuaApAQCAtMTcsMTQgKzE3LDE2IEBACiAgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KICAqLwogCi1AU0hBUkVEX0FQSV9TSU5HTEVfSEVBREVSX0NIRUNLQAor
I2lmICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09N
UElMQVRJT04pICYmICFkZWZpbmVkKF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykK
KyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgor
I2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0VVJJUmVzcG9uc2VfaAogI2RlZmluZSBXZWJLaXRVUklS
ZXNwb25zZV9oCiAKICNpbmNsdWRlIDxnaW8vZ2lvLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3Vw
Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVmaW5lcy5oPgorI2lu
Y2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CiAKIEdfQkVHSU5fREVDTFMKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC5oLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVS
ZXF1ZXN0LmgKc2ltaWxhcml0eSBpbmRleCA5NCUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oLmluCnJlbmFtZSB0byBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaApp
bmRleCAwYjdmNmVkMDA1YzguLmUwZDdiYWUwN2NhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCkBA
IC0xNywxNSArMTcsMTcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAK
LUBBUElfU0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lE
RV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUv
d2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBX
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0X2gKICNkZWZpbmUgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdF9o
CiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgot
I2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERlZmluZXMuaD4KLSNpbmNsdWRl
IDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oPgorI2luY2x1
ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlLmg+CiAKIEdfQkVHSU5fREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaC5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaApzaW1pbGFy
aXR5IGluZGV4IDk1JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKaW5kZXggODg0MDdlYzBh
NDQxLi4yMzA0ZjQyYmE5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmguaW4KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCkBAIC0xNywxNCArMTcs
MTYgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLUBBUElfU0lOR0xF
X0hFQURFUl9DSEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVm
aW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNh
biBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRVUklTY2hl
bWVSZXNwb25zZV9oCiAjZGVmaW5lIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlX2gKIAogI2luY2x1
ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+Ci0jaW5jbHVkZSA8
QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJL
aXREZWZpbmVzLmg+CiAKIEdfQkVHSU5fREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJVXRpbGl0aWVzLmguaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVV0aWxpdGllcy5oCnNpbWlsYXJpdHkgaW5k
ZXggODYlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVSSVV0aWxpdGllcy5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdFVSSVV0aWxpdGllcy5oCmluZGV4IGJhMmQ4ZTI1MmMzOC4uY2IwNWYwMDBhZDUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklV
dGlsaXRpZXMuaC5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktp
dFVSSVV0aWxpdGllcy5oCkBAIC0xNywxMyArMTcsMTUgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgogICovCiAKLUBBUElfU0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAhZGVmaW5l
ZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQor
I2Vycm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisj
ZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRVUklVdGlsaXRpZXNfaAogI2RlZmluZSBXZWJLaXRVUklV
dGlsaXRpZXNfaAogCiAjaW5jbHVkZSA8Z2xpYi5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9Q
UkVGSVhAL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgog
CiBHX0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVzZXJDb250ZW50LmguaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdFVzZXJDb250ZW50LmgKc2ltaWxhcml0eSBpbmRleCA5NyUKcmVuYW1lIGZy
b20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnQuaC5p
bgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVc2VyQ29u
dGVudC5oCmluZGV4IGE1ZWJiMjViMTE0NS4uMjcwZWM5OTRkZGY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudC5oLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VXNlckNvbnRlbnQuaApAQCAt
MTcsMTMgKzE3LDE1IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi1A
QVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVf
XykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dl
YmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2Vi
S2l0VXNlckNvbnRlbnRfaAogI2RlZmluZSBXZWJLaXRVc2VyQ29udGVudF9oCiAKICNpbmNsdWRl
IDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERl
ZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgogCiBHX0JFR0lOX0RFQ0xT
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVz
ZXJDb250ZW50RmlsdGVyU3RvcmUuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5oCnNpbWlsYXJpdHkgaW5kZXggOTclCnJl
bmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVzZXJDb250
ZW50RmlsdGVyU3RvcmUuaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmgKaW5kZXggYTUzODBiZTQwMmU2Li41
M2I0ZTE3YzYwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUuaC5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUuaApAQCAtMjMsMTMg
KzIzLDE1IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotQEFQ
SV9TSU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5TSURFX18p
ICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJr
aXQuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgogCiAjaWZuZGVmIFdlYktp
dFVzZXJDb250ZW50RmlsdGVyU3RvcmVfaAogI2RlZmluZSBXZWJLaXRVc2VyQ29udGVudEZpbHRl
clN0b3JlX2gKIAogI2luY2x1ZGUgPGdpby9naW8uaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVf
UFJFRklYQC9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4K
IAogR19CRUdJTl9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmgKc2ltaWxhcml0eSBpbmRl
eCA5NiUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VXNlckNvbnRlbnRNYW5hZ2VyLmguaW4KcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmgKaW5kZXggZThiNGExNzliNjEwLi44
MjY3MTEwNDQ4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFVzZXJDb250ZW50TWFuYWdlci5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmgKQEAgLTE3LDE0ICsxNywxNiBA
QAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAotQFdFQktJVF9TSU5HTEVf
SEVBREVSX0NIRUNLQAorI2lmICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5TSURFX18pICYmICFkZWZp
bmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQuaD4gY2Fu
IGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgogCiAjaWZuZGVmIFdlYktpdFVzZXJDb250
ZW50TWFuYWdlcl9oCiAjZGVmaW5lIFdlYktpdFVzZXJDb250ZW50TWFuYWdlcl9oCiAKICNpbmNs
dWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktp
dERlZmluZXMuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRVc2VyQ29u
dGVudC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d3BlL1dl
YktpdFVzZXJDb250ZW50Lmg+CiAKIEdfQkVHSU5fREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuaApzaW1pbGFyaXR5IGluZGV4IDk0JQpyZW5hbWUgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKaW5kZXggYmRhZDBlYmI5OGYzLi40NTJkMzcz
ZDMwM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0xNiwx
MyArMTYsMTUgQEAKICAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKICAqLwogCi1AQVBJX1NJTkdM
RV9IRUFERVJfQ0hFQ0tACisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRl
ZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBj
YW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RfaAogI2RlZmluZSBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdF9oCiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElfSU5D
TFVERV9QUkVGSVhAL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5l
cy5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFVzZXJNZXNzYWdlLmguaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1dlYktpdFVzZXJNZXNzYWdlLmgKc2ltaWxhcml0eSBpbmRleCA5NCUKcmVu
YW1lIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlck1lc3Nh
Z2UuaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRV
c2VyTWVzc2FnZS5oCmluZGV4IDk2MGIwYjJjMmUzYS4uZDlmNDNhYmE0MTE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyTWVzc2FnZS5oLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VXNlck1lc3NhZ2Uu
aApAQCAtMTcsMTMgKzE3LDE1IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAq
LwogCi1AU0hBUkVEX0FQSV9TSU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZpbmVkKF9fV0VC
S0lUX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pICYmICFkZWZp
bmVkKF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykKKyNlcnJvciAiT25seSA8d3Bl
L3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYg
V2ViS2l0VXNlck1lc3NhZ2VfaAogI2RlZmluZSBXZWJLaXRVc2VyTWVzc2FnZV9oCiAKICNpbmNs
dWRlIDxnaW8vZ2lvLmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVm
aW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CiAKIEdfQkVHSU5fREVDTFMK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VmVy
c2lvbi5oLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRWZXJzaW9u
LmguaW4Kc2ltaWxhcml0eSBpbmRleCA5MCUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VmVyc2lvbi5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFZlcnNpb24uaC5pbgppbmRleCBkZjI4MGFjMzIwNjEu
Ljc2MmUxMjU2OGJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0VmVyc2lvbi5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0VmVyc2lvbi5oLmluCkBAIC0xNywxMiArMTcsMTQgQEAKICAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgogICovCiAKLUBTSEFSRURfQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tA
CisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9D
T01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQg
ZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0VmVyc2lvbl9oCiAjZGVmaW5lIFdl
YktpdFZlcnNpb25faAogCi0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVm
aW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CiAKIEdfQkVHSU5fREVDTFMK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJD
b250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYkNvbnRl
eHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU4YjAwZWUwYjNh
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2Vi
S2l0V2ViQ29udGV4dC5oCkBAIC0wLDAgKzEsMjk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVm
aW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNh
biBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRXZWJDb250
ZXh0X2gKKyNkZWZpbmUgV2ViS2l0V2ViQ29udGV4dF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVj
dC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5oPgorI2luY2x1ZGUg
PHdwZS9XZWJLaXRDb29raWVNYW5hZ2VyLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMu
aD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RG93bmxvYWQuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0
RmF2aWNvbkRhdGFiYXNlLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdEdlb2xvY2F0aW9uTWFuYWdl
ci5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXROZXR3b3JrUHJveHlTZXR0aW5ncy5oPgorI2luY2x1
ZGUgPHdwZS9XZWJLaXRTZWN1cml0eU1hbmFnZXIuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRVc2VyTWVzc2FnZS5oPgorI2lu
Y2x1ZGUgPHdwZS9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuaD4KKworR19CRUdJTl9ERUNMUwor
CisjZGVmaW5lIFdFQktJVF9UWVBFX1dFQl9DT05URVhUICAgICAgICAgICAgKHdlYmtpdF93ZWJf
Y29udGV4dF9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfV0VCX0NPTlRFWFQob2JqKSAgICAg
ICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfV0VC
X0NPTlRFWFQsIFdlYktpdFdlYkNvbnRleHQpKQorI2RlZmluZSBXRUJLSVRfV0VCX0NPTlRFWFRf
Q0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lU
X1RZUEVfV0VCX0NPTlRFWFQsIFdlYktpdFdlYkNvbnRleHRDbGFzcykpCisjZGVmaW5lIFdFQktJ
VF9JU19XRUJfQ09OVEVYVChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBF
KChvYmopLCBXRUJLSVRfVFlQRV9XRUJfQ09OVEVYVCkpCisjZGVmaW5lIFdFQktJVF9JU19XRUJf
Q09OVEVYVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBX
RUJLSVRfVFlQRV9XRUJfQ09OVEVYVCkpCisjZGVmaW5lIFdFQktJVF9XRUJfQ09OVEVYVF9HRVRf
Q0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQ
RV9XRUJfQ09OVEVYVCwgV2ViS2l0V2ViQ29udGV4dENsYXNzKSkKKworLyoqCisgKiBXZWJLaXRD
YWNoZU1vZGVsOgorICogQFdFQktJVF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9WSUVXRVI6IERpc2Fi
bGUgdGhlIGNhY2hlIGNvbXBsZXRlbHksIHdoaWNoCisgKiAgIHN1YnN0YW50aWFsbHkgcmVkdWNl
cyBtZW1vcnkgdXNhZ2UuIFVzZWZ1bCBmb3IgYXBwbGljYXRpb25zIHRoYXQgb25seQorICogICBh
Y2Nlc3MgYSBzaW5nbGUgbG9jYWwgZmlsZSwgd2l0aCBubyBuYXZpZ2F0aW9uIHRvIG90aGVyIHBh
Z2VzLiBObyByZW1vdGUKKyAqICAgcmVzb3VyY2VzIHdpbGwgYmUgY2FjaGVkLgorICogQFdFQktJ
VF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9CUk9XU0VSOiBBIGNhY2hlIG1vZGVsIG9wdGltaXplZCBm
b3Igdmlld2luZworICogICBhIHNlcmllcyBvZiBsb2NhbCBmaWxlcyAtLSBmb3IgZXhhbXBsZSwg
YSBkb2N1bWVudGF0aW9uIHZpZXdlciBvciBhIHdlYnNpdGUKKyAqICAgZGVzaWduZXIuIFdlYktp
dCB3aWxsIGNhY2hlIGEgbW9kZXJhdGUgbnVtYmVyIG9mIHJlc291cmNlcy4KKyAqIEBXRUJLSVRf
Q0FDSEVfTU9ERUxfV0VCX0JST1dTRVI6IEltcHJvdmUgZG9jdW1lbnQgbG9hZCBzcGVlZCBzdWJz
dGFudGlhbGx5CisgKiAgIGJ5IGNhY2hpbmcgYSB2ZXJ5IGxhcmdlIG51bWJlciBvZiByZXNvdXJj
ZXMgYW5kIHByZXZpb3VzbHkgdmlld2VkIGNvbnRlbnQuCisgKgorICogRW51bSB2YWx1ZXMgdXNl
ZCBmb3IgZGV0ZXJtaW5pbmcgdGhlICNXZWJLaXRXZWJDb250ZXh0IGNhY2hlIG1vZGVsLgorICov
Cit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9WSUVXRVIs
CisgICAgV0VCS0lUX0NBQ0hFX01PREVMX1dFQl9CUk9XU0VSLAorICAgIFdFQktJVF9DQUNIRV9N
T0RFTF9ET0NVTUVOVF9CUk9XU0VSCit9IFdlYktpdENhY2hlTW9kZWw7CisKKy8qKgorICogV2Vi
S2l0UHJvY2Vzc01vZGVsOgorICogQFdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRB
UllfUFJPQ0VTUzogRGVwcmVjYXRlZCAyLjI2LgorICogQFdFQktJVF9QUk9DRVNTX01PREVMX01V
TFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM6IFVzZSBvbmUgcHJvY2VzcworICogICBmb3IgZWFj
aCAjV2ViS2l0V2ViVmlldywgd2hpbGUgc3RpbGwgYWxsb3dpbmcgZm9yIHNvbWUgb2YgdGhlbSB0
bworICogICBzaGFyZSBhIHByb2Nlc3MgaW4gY2VydGFpbiBzaXR1YXRpb25zLiBUaGUgbWFpbiBh
ZHZhbnRhZ2UKKyAqICAgb2YgdGhpcyBwcm9jZXNzIG1vZGVsIGlzIHRoYXQgdGhlIHJlbmRlcmlu
ZyBwcm9jZXNzIGZvciBhIHdlYiB2aWV3CisgKiAgIGNhbiBjcmFzaCB3aGlsZSB0aGUgcmVzdCBv
ZiB0aGUgdmlld3Mga2VlcCB3b3JraW5nIG5vcm1hbGx5LiBUaGlzCisgKiAgIHByb2Nlc3MgbW9k
ZWwgaXMgaW5kaWNhdGVkIGZvciBhcHBsaWNhdGlvbnMgd2hpY2ggbWF5IHVzZSBhIG51bWJlcgor
ICogICBvZiB3ZWIgdmlld3MgYW5kIHRoZSBjb250ZW50IG9mIGluIGVhY2ggbXVzdCBub3QgaW50
ZXJmZXJlIHdpdGggdGhlCisgKiAgIHJlc3Qg4oCUIGZvciBleGFtcGxlIGEgZnVsbC1mbGVkZ2Vk
IHdlYiBicm93c2VyIHdpdGggc3VwcG9ydCBmb3IKKyAqICAgbXVsdGlwbGUgdGFicy4KKyAqCisg
KiBFbnVtIHZhbHVlcyB1c2VkIGZvciBkZXRlcm1pbmluZyB0aGUgI1dlYktpdFdlYkNvbnRleHQg
cHJvY2VzcyBtb2RlbC4KKyAqCisgKiBTaW5jZTogMi40CisgKi8KK3R5cGVkZWYgZW51bSB7Cisg
ICAgV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTLAorICAgIFdF
QktJVF9QUk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVMsCit9IFdlYktp
dFByb2Nlc3NNb2RlbDsKKworLyoqCisgKiBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Q2FsbGJhY2s6
CisgKiBAcmVxdWVzdDogdGhlICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0CisgKiBAdXNlcl9kYXRh
OiB1c2VyIGRhdGEgcGFzc2VkIHRvIHRoZSBjYWxsYmFjaworICoKKyAqIFR5cGUgZGVmaW5pdGlv
biBmb3IgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIGJhY2sgd2hlbiBhbiBVUkkgcmVx
dWVzdCBpcworICogbWFkZSBmb3IgYSB1c2VyIHJlZ2lzdGVyZWQgVVJJIHNjaGVtZS4KKyAqLwor
dHlwZWRlZiB2b2lkICgqIFdlYktpdFVSSVNjaGVtZVJlcXVlc3RDYWxsYmFjaykgKFdlYktpdFVS
SVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgICAgICAgICAgdXNlcl9kYXRhKTsKKwor
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkNvbnRleHQgICAgICAgIFdlYktpdFdlYkNvbnRleHQ7
Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViQ29udGV4dENsYXNzICAgV2ViS2l0V2ViQ29udGV4
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkNvbnRleHRQcml2YXRlIFdlYktpdFdl
YkNvbnRleHRQcml2YXRlOworCitzdHJ1Y3QgX1dlYktpdFdlYkNvbnRleHQgeworICAgIEdPYmpl
Y3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0V2ViQ29udGV4dFBy
aXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdFdlYkNvbnRleHRDbGFzcyB7CisgICAg
R09iamVjdENsYXNzIHBhcmVudDsKKworICAgIC8qPCBwdWJsaWMgPiovCisgICAgdm9pZCAgICAg
KCogZG93bmxvYWRfc3RhcnRlZCkgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0
ICAgICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdlYktpdERvd25sb2FkICAgICAgICAgICpkb3dubG9hZCk7CisgICAg
dm9pZCAgICAgKCogaW5pdGlhbGl6ZV93ZWJfZXh0ZW5zaW9ucykgICAgICAgICAgIChXZWJLaXRX
ZWJDb250ZXh0ICAgICAgICAqY29udGV4dCk7CisgICAgdm9pZCAgICAgKCogaW5pdGlhbGl6ZV9u
b3RpZmljYXRpb25fcGVybWlzc2lvbnMpIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAqY29udGV4
dCk7CisgICAgdm9pZCAgICAgKCogYXV0b21hdGlvbl9zdGFydGVkKSAgICAgICAgICAgICAgICAg
IChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdEF1dG9tYXRpb25TZXNzaW9u
ICpzZXNzaW9uKTsKKyAgICBnYm9vbGVhbiAoKiB1c2VyX21lc3NhZ2VfcmVjZWl2ZWQpICAgICAg
ICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICpjb250ZXh0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNlck1lc3Nh
Z2UgICAgICAgKm1lc3NhZ2UpOworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgdm9pZCAoKl93
ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAo
dm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7Cit9OworCitXRUJL
SVRfQVBJIEdUeXBlCit3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3R5cGUgICAgICAgICAgICAgICAg
ICAgICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdFdlYkNvbnRleHQgKgord2Via2l0
X3dlYl9jb250ZXh0X2dldF9kZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKKwor
V0VCS0lUX0FQSSBXZWJLaXRXZWJDb250ZXh0ICoKK3dlYmtpdF93ZWJfY29udGV4dF9uZXcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0V2Vi
Q29udGV4dCAqCit3ZWJraXRfd2ViX2NvbnRleHRfbmV3X2VwaGVtZXJhbCAgICAgICAgICAgICAg
ICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdFdlYkNvbnRleHQgKgord2Via2l0X3dl
Yl9jb250ZXh0X25ld193aXRoX3dlYnNpdGVfZGF0YV9tYW5hZ2VyICAgIChXZWJLaXRXZWJzaXRl
RGF0YU1hbmFnZXIgICAgICAqbWFuYWdlcik7CisKK1dFQktJVF9BUEkgV2ViS2l0V2Vic2l0ZURh
dGFNYW5hZ2VyICoKK3dlYmtpdF93ZWJfY29udGV4dF9nZXRfd2Vic2l0ZV9kYXRhX21hbmFnZXIg
ICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQpOworCitXRUJL
SVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2ViX2NvbnRleHRfaXNfZXBoZW1lcmFsICAgICAgICAg
ICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsKKwor
V0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl9jb250ZXh0X2lzX2F1dG9tYXRpb25fYWxs
b3dlZCAgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7
CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl9jb250ZXh0X3NldF9hdXRvbWF0aW9uX2Fs
bG93ZWQgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jv
b2xlYW4gICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQpOworV0VCS0lUX0FQSSB2b2lkCit3
ZWJraXRfd2ViX2NvbnRleHRfc2V0X2NhY2hlX21vZGVsICAgICAgICAgICAgICAgICAgKFdlYktp
dFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRDYWNoZU1vZGVsICAgICAgICAg
ICAgICAgY2FjaGVfbW9kZWwpOworV0VCS0lUX0FQSSBXZWJLaXRDYWNoZU1vZGVsCit3ZWJraXRf
d2ViX2NvbnRleHRfZ2V0X2NhY2hlX21vZGVsICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYkNv
bnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsKKworV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAor
d2Via2l0X3dlYl9jb250ZXh0X3NldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdCAgICAgIChXZWJL
aXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxpbWl0KTsKKworV0VCS0lUX0RFUFJFQ0FURUQgZ3VpbnQKK3dlYmtpdF93ZWJfY29u
dGV4dF9nZXRfd2ViX3Byb2Nlc3NfY291bnRfbGltaXQgICAgICAoV2ViS2l0V2ViQ29udGV4dCAg
ICAgICAgICAgICAgKmNvbnRleHQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfY29u
dGV4dF9jbGVhcl9jYWNoZSAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAg
ICAgICAgICAgICAgKmNvbnRleHQpOworCitXRUJLSVRfREVQUkVDQVRFRF9GT1Iod2Via2l0X3dl
YnNpdGVfZGF0YV9tYW5hZ2VyX3NldF9uZXR3b3JrX3Byb3h5X3NldHRpbmdzKSB2b2lkCit3ZWJr
aXRfd2ViX2NvbnRleHRfc2V0X25ldHdvcmtfcHJveHlfc2V0dGluZ3MgICAgICAgKFdlYktpdFdl
YkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXROZXR3b3JrUHJveHlNb2RlICAgICAg
ICAgcHJveHlfbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV2ViS2l0TmV0d29ya1Byb3h5U2V0dGluZ3MgICAgKnByb3h5X3NldHRpbmdz
KTsKKworV0VCS0lUX0FQSSBXZWJLaXREb3dubG9hZCAqCit3ZWJraXRfd2ViX2NvbnRleHRfZG93
bmxvYWRfdXJpICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAg
ICAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICAgICAqdXJpKTsKKworV0VCS0lU
X0FQSSBXZWJLaXRDb29raWVNYW5hZ2VyICoKK3dlYmtpdF93ZWJfY29udGV4dF9nZXRfY29va2ll
X21hbmFnZXIgICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNv
bnRleHQpOworCitXRUJLSVRfQVBJIFdlYktpdEdlb2xvY2F0aW9uTWFuYWdlciAqCit3ZWJraXRf
d2ViX2NvbnRleHRfZ2V0X2dlb2xvY2F0aW9uX21hbmFnZXIgICAgICAgICAgKFdlYktpdFdlYkNv
bnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsKKworV0VCS0lUX0FQSSBXZWJLaXRGYXZpY29u
RGF0YWJhc2UgKgord2Via2l0X3dlYl9jb250ZXh0X2dldF9mYXZpY29uX2RhdGFiYXNlICAgICAg
ICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7CisKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X3dlYl9jb250ZXh0X3NldF9mYXZpY29uX2RhdGFiYXNlX2RpcmVj
dG9yeSAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIg
ICAgICAgICAgICAgICAgICAgKnBhdGgpOworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJr
aXRfd2ViX2NvbnRleHRfZ2V0X2Zhdmljb25fZGF0YWJhc2VfZGlyZWN0b3J5ICAgKFdlYktpdFdl
YkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsKKworV0VCS0lUX0FQSSBXZWJLaXRTZWN1
cml0eU1hbmFnZXIgKgord2Via2l0X3dlYl9jb250ZXh0X2dldF9zZWN1cml0eV9tYW5hZ2VyICAg
ICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7CisKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKK3dlYmtpdF93ZWJfY29udGV4dF9zZXRfYWRkaXRpb25hbF9w
bHVnaW5zX2RpcmVjdG9yeSAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGdjaGFyICAgICAgICAgICAgICAgICAgICpkaXJlY3RvcnkpOworCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCit3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3BsdWdpbnMgICAgICAgICAgICAgICAg
ICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2FuY2VsbGFibGUg
ICAgICAgICAgICAgICAgICAqY2FuY2VsbGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1JlYWR5Q2FsbGJhY2sgICAgICAgICAg
ICBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ3BvaW50ZXIgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfZGF0YSk7CisKK1dF
QktJVF9ERVBSRUNBVEVEIEdMaXN0ICoKK3dlYmtpdF93ZWJfY29udGV4dF9nZXRfcGx1Z2luc19m
aW5pc2ggICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRl
eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdBc3luY1Jlc3VsdCAgICAgICAgICAgICAgICAgICpyZXN1bHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAg
ICAgICAgICAgKiplcnJvcik7CitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfY29udGV4dF9y
ZWdpc3Rlcl91cmlfc2NoZW1lICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAg
ICAgICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgICAgICpzY2hlbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFVS
SVNjaGVtZVJlcXVlc3RDYWxsYmFjayBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgICAgICAgICAgICAg
ICAgIHVzZXJfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0Rlc3Ryb3lOb3RpZnkgICAgICAgICAgICAgICAgIHVzZXJfZGF0YV9kZXN0
cm95X2Z1bmMpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfY29udGV4dF9zZXRfc2Fu
ZGJveF9lbmFibGVkICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAg
ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZCk7CisKK1dFQktJ
VF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfY29udGV4dF9nZXRfc2FuZGJveF9lbmFibGVkICAg
ICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQpOworCitX
RUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfY29udGV4dF9hZGRfcGF0aF90b19zYW5kYm94ICAg
ICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIgICAgICAgICAgICAgICAgICAgICpwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAg
cmVhZF9vbmx5KTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl9jb250ZXh0X2dl
dF9zcGVsbF9jaGVja2luZ19lbmFibGVkICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAg
ICAgICAqY29udGV4dCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl9jb250ZXh0X3Nl
dF9zcGVsbF9jaGVja2luZ19lbmFibGVkICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAg
ICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQpOworV0VC
S0lUX0FQSSBjb25zdCBnY2hhciAqIGNvbnN0ICoKK3dlYmtpdF93ZWJfY29udGV4dF9nZXRfc3Bl
bGxfY2hlY2tpbmdfbGFuZ3VhZ2VzICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAg
KmNvbnRleHQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfY29udGV4dF9zZXRfc3Bl
bGxfY2hlY2tpbmdfbGFuZ3VhZ2VzICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAg
KmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGdjaGFyICogY29uc3QgICAgICAgICAgICpsYW5ndWFnZXMpOworCitXRUJL
SVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJlZmVycmVkX2xhbmd1YWdlcyAg
ICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFy
ICogY29uc3QgICAgICAgICAgICpsYW5ndWFnZXMpOworCitXRUJLSVRfREVQUkVDQVRFRF9GT1Io
d2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX3NldF90bHNfZXJyb3JzX3BvbGljeSkgdm9pZAor
d2Via2l0X3dlYl9jb250ZXh0X3NldF90bHNfZXJyb3JzX3BvbGljeSAgICAgICAgICAgIChXZWJL
aXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VExTRXJyb3JzUG9saWN5ICAg
ICAgICAgIHBvbGljeSk7CisKK1dFQktJVF9ERVBSRUNBVEVEX0ZPUih3ZWJraXRfd2Vic2l0ZV9k
YXRhX21hbmFnZXJfZ2V0X3Rsc19lcnJvcnNfcG9saWN5KSBXZWJLaXRUTFNFcnJvcnNQb2xpY3kK
K3dlYmtpdF93ZWJfY29udGV4dF9nZXRfdGxzX2Vycm9yc19wb2xpY3kgICAgICAgICAgICAoV2Vi
S2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQpOworCitXRUJLSVRfQVBJIHZvaWQK
K3dlYmtpdF93ZWJfY29udGV4dF9zZXRfd2ViX2V4dGVuc2lvbnNfZGlyZWN0b3J5ICAgICAoV2Vi
S2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAg
ICAgICAgICpkaXJlY3RvcnkpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfY29udGV4
dF9zZXRfd2ViX2V4dGVuc2lvbnNfaW5pdGlhbGl6YXRpb25fdXNlcl9kYXRhCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRl
eHQgICAgICAgICAgICAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAgICAgICAgICAgICAgICAgICAgICAqdXNl
cl9kYXRhKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX2NvbnRleHRfcHJlZmV0Y2hf
ZG5zICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpj
b250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICAgICAqaG9zdG5hbWUpOworCitXRUJLSVRf
QVBJIHZvaWQKK3dlYmtpdF93ZWJfY29udGV4dF9hbGxvd190bHNfY2VydGlmaWNhdGVfZm9yX2hv
c3QgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUbHNDZXJ0aWZpY2F0
ZSAgICAgICAgICAgICAgICpjZXJ0aWZpY2F0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAgICAg
Kmhvc3QpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJvY2Vz
c19tb2RlbCAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNv
bnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYktpdFByb2Nlc3NNb2RlbCAgICAgICAgICAgICBwcm9jZXNzX21vZGVsKTsKKworV0VC
S0lUX0FQSSBXZWJLaXRQcm9jZXNzTW9kZWwKK3dlYmtpdF93ZWJfY29udGV4dF9nZXRfcHJvY2Vz
c19tb2RlbCAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNv
bnRleHQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfY29udGV4dF9pbml0aWFsaXpl
X25vdGlmaWNhdGlvbl9wZXJtaXNzaW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29u
dGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0xpc3QgICAgICAgICAgICAgICAgICAgICAgICAgKmFsbG93ZWRfb3JpZ2lucywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpc3QgICAg
ICAgICAgICAgICAgICAgICAgICAgKmRpc2FsbG93ZWRfb3JpZ2lucyk7CisKK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X3dlYl9jb250ZXh0X3NlbmRfbWVzc2FnZV90b19hbGxfZXh0ZW5zaW9ucyAg
IChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNlck1lc3NhZ2Ug
ICAgICAgICAgICAgKm1lc3NhZ2UpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgord2Via2l0
X3dlYl9jb250ZXh0X2dldF90aW1lX3pvbmVfb3ZlcnJpZGUgICAgICAgICAgIChXZWJLaXRXZWJD
b250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViUmVz
b3VyY2UuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViUmVz
b3VyY2UuaApzaW1pbGFyaXR5IGluZGV4IDkzJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJSZXNvdXJjZS5oLmluCnJlbmFtZSB0byBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlJlc291cmNlLmgKaW5kZXggZDk2MmNi
ZTExNjExLi4xN2RhNTI2MjFiODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYlJlc291cmNlLmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJSZXNvdXJjZS5oCkBAIC0xNywxNSArMTcsMTcgQEAKICAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLUBBUElfU0lOR0xFX0hFQURFUl9D
SEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJL
SVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNs
dWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRXZWJSZXNvdXJjZV9oCiAj
ZGVmaW5lIFdlYktpdFdlYlJlc291cmNlX2gKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAj
aW5jbHVkZSA8Z2lvL2dpby5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktp
dERlZmluZXMuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRVUklSZXNw
b25zZS5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d3BlL1dl
YktpdFVSSVJlc3BvbnNlLmg+CiAKIEdfQkVHSU5fREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLmRiMzQ4OGE0NmIyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oCkBAIC0wLDAgKzEsNjUz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVy
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgorICogQ29weXJpZ2h0IChDKSAy
MDExLCAyMDE3IElnYWxpYSBTLkwuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTEgTW90
b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChf
X1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vy
cm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5k
aWYKKworI2lmbmRlZiBXZWJLaXRXZWJWaWV3X2gKKyNkZWZpbmUgV2ViS2l0V2ViVmlld19oCisK
KyNpbmNsdWRlIDx3cGUvV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8
d3BlL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRDb2xvci5o
PgorI2luY2x1ZGUgPHdwZS9XZWJLaXRDb250ZXh0TWVudS5oPgorI2luY2x1ZGUgPHdwZS9XZWJL
aXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdEVkaXRvclN0YXRlLmg+CisjaW5jbHVk
ZSA8d3BlL1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRG
aW5kQ29udHJvbGxlci5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVl
c3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0SGl0VGVzdFJlc3VsdC5oPgorI2luY2x1ZGUgPHdw
ZS9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0SmF2YXNj
cmlwdFJlc3VsdC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uLmg+Cisj
aW5jbHVkZSA8d3BlL1dlYktpdE5vdGlmaWNhdGlvbi5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRP
cHRpb25NZW51Lmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0Lmg+Cisj
aW5jbHVkZSA8d3BlL1dlYktpdFBvbGljeURlY2lzaW9uLmg+CisjaW5jbHVkZSA8d3BlL1dlYktp
dFJlY3RhbmdsZS5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRTY3JpcHREaWFsb2cuaD4KKyNpbmNs
dWRlIDx3cGUvV2ViS2l0U2V0dGluZ3MuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJUmVxdWVz
dC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuaD4KKyNpbmNsdWRl
IDx3cGUvV2ViS2l0VXNlck1lc3NhZ2UuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0V2ViQ29udGV4
dC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRXZWJSZXNvdXJjZS5oPgorI2luY2x1ZGUgPHdwZS9X
ZWJLaXRXZWJzaXRlUG9saWNpZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0V2ViVmlld0JhY2tl
bmQuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5oPgorI2luY2x1
ZGUgPHdwZS9XZWJLaXRXaW5kb3dQcm9wZXJ0aWVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2Rl
ZmluZSBXRUJLSVRfVFlQRV9XRUJfVklFVyAgICAgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1dFQl9WSUVXKG9iaikgICAgICAgICAgICAoR19UWVBF
X0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9WSUVXLCBXZWJLaXRX
ZWJWaWV3KSkKKyNkZWZpbmUgV0VCS0lUX0lTX1dFQl9WSUVXKG9iaikgICAgICAgICAoR19UWVBF
X0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9WSUVXKSkKKyNkZWZp
bmUgV0VCS0lUX1dFQl9WSUVXX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NB
U1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQl9WSUVXLCBXZWJLaXRXZWJWaWV3Q2xhc3MpKQor
I2RlZmluZSBXRUJLSVRfSVNfV0VCX1ZJRVdfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xB
U1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfV0VCX1ZJRVcpKQorI2RlZmluZSBXRUJLSVRf
V0VCX1ZJRVdfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmop
LCAgV0VCS0lUX1RZUEVfV0VCX1ZJRVcsIFdlYktpdFdlYlZpZXdDbGFzcykpCisKK3R5cGVkZWYg
c3RydWN0IF9XZWJLaXRXZWJWaWV3ICAgICAgICBXZWJLaXRXZWJWaWV3OwordHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdFdlYlZpZXdDbGFzcyAgIFdlYktpdFdlYlZpZXdDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSBXZWJLaXRXZWJWaWV3UHJpdmF0ZTsKKworLyoqCisg
KiBXZWJLaXRQb2xpY3lEZWNpc2lvblR5cGU6CisgKiBAV0VCS0lUX1BPTElDWV9ERUNJU0lPTl9U
WVBFX05BVklHQVRJT05fQUNUSU9OOiBUaGlzIHR5cGUgb2YgcG9saWN5IGRlY2lzaW9uCisgKiAg
IGlzIHJlcXVlc3RlZCB3aGVuIFdlYktpdCBpcyBhYm91dCB0byBuYXZpZ2F0ZSB0byBhIG5ldyBw
YWdlIGluIGVpdGhlciB0aGUKKyAqICAgbWFpbiBmcmFtZSBvciBhIHN1YmZyYW1lLiBBY2NlcHRh
YmxlIHBvbGljeSBkZWNpc2lvbnMgYXJlIGVpdGhlcgorICogICB3ZWJraXRfcG9saWN5X2RlY2lz
aW9uX3VzZSgpIG9yIHdlYmtpdF9wb2xpY3lfZGVjaXNpb25faWdub3JlKCkuIFRoaXMKKyAqICAg
dHlwZSBvZiBwb2xpY3kgZGVjaXNpb24gaXMgYWx3YXlzIGEgI1dlYktpdE5hdmlnYXRpb25Qb2xp
Y3lEZWNpc2lvbi4KKyAqIEBXRUJLSVRfUE9MSUNZX0RFQ0lTSU9OX1RZUEVfTkVXX1dJTkRPV19B
Q1RJT046IFRoaXMgdHlwZSBvZiBwb2xpY3kgZGVjaXNpb24KKyAqICAgaXMgcmVxdWVzdGVkIHdo
ZW4gV2ViS2l0IGlzIGFib3V0IHRvIGNyZWF0ZSBhIG5ldyB3aW5kb3cuIEFjY2VwdGFibGUgcG9s
aWN5CisgKiAgIGRlY2lzaW9ucyBhcmUgZWl0aGVyIHdlYmtpdF9wb2xpY3lfZGVjaXNpb25fdXNl
KCkgb3IKKyAqICAgd2Via2l0X3BvbGljeV9kZWNpc2lvbl9pZ25vcmUoKS4gVGhpcyB0eXBlIG9m
IHBvbGljeSBkZWNpc2lvbiBpcyBhbHdheXMKKyAqICAgYSAjV2ViS2l0TmF2aWdhdGlvblBvbGlj
eURlY2lzaW9uLiBUaGVzZSBkZWNpc2lvbnMgYXJlIHVzZWZ1bCBmb3IgaW1wbGVtZW50aW5nCisg
KiAgIHNwZWNpYWwgYWN0aW9ucyBmb3IgbmV3IHdpbmRvd3MsIHN1Y2ggYXMgZm9yY2luZyB0aGUg
bmV3IHdpbmRvdyB0byBvcGVuCisgKiAgIGluIGEgdGFiIHdoZW4gYSBrZXlib2FyZCBtb2RpZmll
ciBpcyBhY3RpdmUgb3IgaGFuZGxpbmcgYSBzcGVjaWFsCisgKiAgIHRhcmdldCBhdHRyaWJ1dGUg
b24gPGE+IGVsZW1lbnRzLgorICogQFdFQktJVF9QT0xJQ1lfREVDSVNJT05fVFlQRV9SRVNQT05T
RTogVGhpcyB0eXBlIG9mIGRlY2lzaW9uIGlzIHVzZWQgd2hlbiBXZWJLaXQgaGFzCisgKiAgIHJl
Y2VpdmVkIGEgcmVzcG9uc2UgZm9yIGEgbmV0d29yayByZXNvdXJjZSBhbmQgaXMgYWJvdXQgdG8g
c3RhcnQgdGhlIGxvYWQuCisgKiAgIE5vdGUgdGhhdCB0aGVzZSByZXNvdXJjZXMgaW5jbHVkZSBh
bGwgc3VicmVzb3VyY2VzIG9mIGEgcGFnZSBzdWNoIGFzIGltYWdlcworICogICBhbmQgc3R5bGVz
aGVldHMgYXMgd2VsbCBhcyBtYWluIGRvY3VtZW50cy4gQXBwcm9wcmlhdGUgcG9saWN5IHJlc3Bv
bnNlcyB0bworICogICB0aGlzIGRlY2lzaW9uIGFyZSB3ZWJraXRfcG9saWN5X2RlY2lzaW9uX3Vz
ZSgpLCB3ZWJraXRfcG9saWN5X2RlY2lzaW9uX2lnbm9yZSgpLAorICogICBvciB3ZWJraXRfcG9s
aWN5X2RlY2lzaW9uX2Rvd25sb2FkKCkuIFRoaXMgdHlwZSBvZiBwb2xpY3kgZGVjaXNpb24gaXMg
YWx3YXlzCisgKiAgIGEgI1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24uIFRoaXMgZGVjaXNp
b24gaXMgdXNlZnVsIGZvciBmb3JjaW5nCisgKiAgIHNvbWUgdHlwZXMgb2YgcmVzb3VyY2VzIHRv
IGJlIGRvd25sb2FkZWQgcmF0aGVyIHRoYW4gcmVuZGVyZWQgaW4gdGhlIFdlYlZpZXcKKyAqICAg
b3IgdG8gYmxvY2sgdGhlIHRyYW5zZmVyIG9mIHJlc291cmNlcyBlbnRpcmVseS4KKyAqCisgKiBF
bnVtIHZhbHVlcyB1c2VkIGZvciBkZXRlcm1pbmluZyB0aGUgdHlwZSBvZiBhIHBvbGljeSBkZWNp
c2lvbiBkdXJpbmcKKyAqICNXZWJLaXRXZWJWaWV3OjpkZWNpZGUtcG9saWN5LgorICovCit0eXBl
ZGVmIGVudW0geworICAgIFdFQktJVF9QT0xJQ1lfREVDSVNJT05fVFlQRV9OQVZJR0FUSU9OX0FD
VElPTiwKKyAgICBXRUJLSVRfUE9MSUNZX0RFQ0lTSU9OX1RZUEVfTkVXX1dJTkRPV19BQ1RJT04s
CisgICAgV0VCS0lUX1BPTElDWV9ERUNJU0lPTl9UWVBFX1JFU1BPTlNFLAorfSBXZWJLaXRQb2xp
Y3lEZWNpc2lvblR5cGU7CisKKy8qKgorICogV2ViS2l0TG9hZEV2ZW50OgorICogQFdFQktJVF9M
T0FEX1NUQVJURUQ6IEEgbmV3IGxvYWQgcmVxdWVzdCBoYXMgYmVlbiBtYWRlLgorICogTm8gZGF0
YSBoYXMgYmVlbiByZWNlaXZlZCB5ZXQsIGVtcHR5IHN0cnVjdHVyZXMgaGF2ZQorICogYmVlbiBh
bGxvY2F0ZWQgdG8gcGVyZm9ybSB0aGUgbG9hZDsgdGhlIGxvYWQgbWF5IHN0aWxsCisgKiBmYWls
IGR1ZSB0byB0cmFuc3BvcnQgaXNzdWVzIHN1Y2ggYXMgbm90IGJlaW5nIGFibGUgdG8KKyAqIHJl
c29sdmUgYSBuYW1lLCBvciBjb25uZWN0IHRvIGEgcG9ydC4KKyAqIEBXRUJLSVRfTE9BRF9SRURJ
UkVDVEVEOiBBIHByb3Zpc2lvbmFsIGRhdGEgc291cmNlIHJlY2VpdmVkCisgKiBhIHNlcnZlciBy
ZWRpcmVjdC4KKyAqIEBXRUJLSVRfTE9BRF9DT01NSVRURUQ6IFRoZSBjb250ZW50IHN0YXJ0ZWQg
YXJyaXZpbmcgZm9yIGEgcGFnZSBsb2FkLgorICogVGhlIG5lY2Vzc2FyeSB0cmFuc3BvcnQgcmVx
dWlyZW1lbnRzIGFyZSBlc3RhYmxpc2hlZCwgYW5kIHRoZQorICogbG9hZCBpcyBiZWluZyBwZXJm
b3JtZWQuCisgKiBAV0VCS0lUX0xPQURfRklOSVNIRUQ6IExvYWQgY29tcGxldGVkLiBBbGwgcmVz
b3VyY2VzIGFyZSBkb25lIGxvYWRpbmcKKyAqIG9yIHRoZXJlIHdhcyBhbiBlcnJvciBkdXJpbmcg
dGhlIGxvYWQgb3BlcmF0aW9uLgorICoKKyAqIEVudW0gdmFsdWVzIHVzZWQgdG8gZGVub3RlIHRo
ZSBkaWZmZXJlbnQgZXZlbnRzIHRoYXQgaGFwcGVuIGR1cmluZyBhCisgKiAjV2ViS2l0V2ViVmll
dyBsb2FkIG9wZXJhdGlvbi4KKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRfTE9BRF9T
VEFSVEVELAorICAgIFdFQktJVF9MT0FEX1JFRElSRUNURUQsCisgICAgV0VCS0lUX0xPQURfQ09N
TUlUVEVELAorICAgIFdFQktJVF9MT0FEX0ZJTklTSEVECit9IFdlYktpdExvYWRFdmVudDsKKwor
LyoqCisgKiBXZWJLaXRTYXZlTW9kZToKKyAqIEBXRUJLSVRfU0FWRV9NT0RFX01IVE1MOiBTYXZl
IHRoZSBjdXJyZW50IHBhZ2UgdXNpbmcgdGhlIE1IVE1MIGZvcm1hdC4KKyAqCisgKiBFbnVtIHZh
bHVlcyB0byBzcGVjaWZ5IHRoZSBkaWZmZXJlbnQgd2F5cyBpbiB3aGljaCBhICNXZWJLaXRXZWJW
aWV3CisgKiBjYW4gc2F2ZSBpdHMgY3VycmVudCB3ZWIgcGFnZSBpbnRvIGEgc2VsZi1jb250YWlu
ZWQgZmlsZS4KKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRfU0FWRV9NT0RFX01IVE1M
Cit9IFdlYktpdFNhdmVNb2RlOworCisvKioKKyAqIFdlYktpdEluc2VjdXJlQ29udGVudEV2ZW50
OgorICogQFdFQktJVF9JTlNFQ1VSRV9DT05URU5UX1JVTjogSW5zZWN1cmUgY29udGVudCBoYXMg
YmVlbiBkZXRlY3RlZCBieQorICogdHJ5aW5nIHRvIGV4ZWN1dGUgYW55IGtpbmQgb2YgbG9naWMg
KGUuZy4gYSBzY3JpcHQpIGZyb20gYW4KKyAqIHVudHJ1c3RlZCBzb3VyY2UuCisgKiBAV0VCS0lU
X0lOU0VDVVJFX0NPTlRFTlRfRElTUExBWUVEOiBJbnNlY3VyZSBjb250ZW50IGhhcyBiZWVuCisg
KiBkZXRlY3RlZCBieSB0cnlpbmcgdG8gZGlzcGxheSBhbnkga2luZCBvZiByZXNvdXJjZSAoZS5n
LiBhbiBpbWFnZSkKKyAqIGZyb20gYW4gdW50cnVzdGVkIHNvdXJjZS4KKyAqCisgKiBFbnVtIHZh
bHVlcyB1c2VkIHRvIGRlbm90ZSB0aGUgZGlmZmVyZW50IGV2ZW50cyB3aGljaCBjYW4gdHJpZ2dl
cgorICogdGhlIGRldGVjdGlvbiBvZiBpbnNlY3VyZSBjb250ZW50LgorICovCit0eXBlZGVmIGVu
dW0geworICAgIFdFQktJVF9JTlNFQ1VSRV9DT05URU5UX1JVTiwKKyAgICBXRUJLSVRfSU5TRUNV
UkVfQ09OVEVOVF9ESVNQTEFZRUQKK30gV2ViS2l0SW5zZWN1cmVDb250ZW50RXZlbnQ7CisKKy8q
KgorICogV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOgorICogQFdFQktJVF9XRUJf
UFJPQ0VTU19DUkFTSEVEOiB0aGUgd2ViIHByb2Nlc3MgY3Jhc2hlZC4KKyAqIEBXRUJLSVRfV0VC
X1BST0NFU1NfRVhDRUVERURfTUVNT1JZX0xJTUlUOiB0aGUgd2ViIHByb2Nlc3MgZXhjZWVkZWQg
dGhlIG1lbW9yeSBsaW1pdC4KKyAqIEBXRUJLSVRfV0VCX1BST0NFU1NfVEVSTUlOQVRFRF9CWV9B
UEk6IHRoZSB3ZWIgcHJvY2VzcyB0ZXJtaW5hdGlvbiB3YXMgcmVxdWVzdGVkIGJ5IGFuIEFQSSBj
YWxsLiBTaW5jZTogMi4zNAorICoKKyAqIEVudW0gdmFsdWVzIHVzZWQgdG8gc3BlY2lmeSB0aGUg
cmVhc29uIHdoeSB0aGUgd2ViIHByb2Nlc3MgdGVybWluYXRlZCBhYm5vcm1hbGx5LgorICoKKyAq
IFNpbmNlOiAyLjIwCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX1dFQl9QUk9DRVNT
X0NSQVNIRUQsCisgICAgV0VCS0lUX1dFQl9QUk9DRVNTX0VYQ0VFREVEX01FTU9SWV9MSU1JVCwK
KyAgICBXRUJLSVRfV0VCX1BST0NFU1NfVEVSTUlOQVRFRF9CWV9BUEkKK30gV2ViS2l0V2ViUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uOworCisvKioKKyAqIFdlYktpdEZyYW1lRGlzcGxheWVkQ2Fs
bGJhY2s6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqIEB1c2VyX2RhdGE6IHVz
ZXIgZGF0YQorICoKKyAqIENhbGxiYWNrIHRvIGJlIGNhbGxlZCB3aGVuIGEgZnJhbWUgaXMgZGlz
cGxheWVkIGluIGEgI3dlYktpdFdlYlZpZXcuCisgKgorICogU2luY2U6IDIuMjQKKyAqLwordHlw
ZWRlZiB2b2lkICgqIFdlYktpdEZyYW1lRGlzcGxheWVkQ2FsbGJhY2spIChXZWJLaXRXZWJWaWV3
ICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ3BvaW50ZXIgICAgICAgdXNlcl9kYXRhKTsKKworLyoqCisgKiBXZWJLaXRNZWRpYUNhcHR1
cmVTdGF0ZToKKyAqIEBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9OT05FOiBNZWRpYSBjYXB0
dXJlIGlzIGRpc2FibGVkLgorICogQFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX0FDVElWRTog
TWVkaWEgY2FwdHVyZSBpcyBhY3RpdmUuCisgKiBAV0VCS0lUX01FRElBX0NBUFRVUkVfU1RBVEVf
TVVURUQ6IE1lZGlhIGNhcHR1cmUgaXMgbXV0ZWQuCisgKgorICogRW51bSB2YWx1ZXMgdXNlZCB0
byBzcGVjaWZ5IHRoZSBjYXB0dXJlIHN0YXRlIG9mIGEgbWVkaWEgZGV2aWNlLgorICoKKyAqIFNp
bmNlOiAyLjM0CisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX01FRElBX0NBUFRVUkVf
U1RBVEVfTk9ORSwKKyAgICBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9BQ1RJVkUsCisgICAg
V0VCS0lUX01FRElBX0NBUFRVUkVfU1RBVEVfTVVURUQsCit9IFdlYktpdE1lZGlhQ2FwdHVyZVN0
YXRlOworCisvKioKKyAqIFdlYktpdFdlYkV4dGVuc2lvbk1vZGU6CisgKiBAV0VCS0lUX1dFQl9F
WFRFTlNJT05fTU9ERV9OT05FOiBOb3QgZm9yIGFuIGV4dGVuc2lvbi4KKyAqIEBXRUJLSVRfV0VC
X0VYVEVOU0lPTl9NT0RFX01BTklGRVNUVjI6IEZvciBhIE1hbmlmZXN0VjIgZXh0ZW5zaW9uLgor
ICogQFdFQktJVF9XRUJfRVhURU5TSU9OX01PREVfTUFOSUZFU1RWMzogRm9yIGEgTWFuaWZlc3RW
MyBleHRlbnNpb24uCisgKgorICogRW51bSB2YWx1ZXMgdXNlZCBmb3Igc2V0dGluZyBpZiBhICNX
ZWJLaXRXZWJWaWV3IGlzIGludGVuZGVkIGZvcgorICogV2ViRXh0ZW5zaW9ucy4KKyAqCisgKiBT
aW5jZTogMi4zOAorICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9XRUJfRVhURU5TSU9O
X01PREVfTk9ORSwKKyAgICBXRUJLSVRfV0VCX0VYVEVOU0lPTl9NT0RFX01BTklGRVNUVjIsCisg
ICAgV0VCS0lUX1dFQl9FWFRFTlNJT05fTU9ERV9NQU5JRkVTVFYzLAorfSBXZWJLaXRXZWJFeHRl
bnNpb25Nb2RlOworCitzdHJ1Y3QgX1dlYktpdFdlYlZpZXcgeworICAgIEdPYmplY3QgcGFyZW50
OworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUgKnByaXY7
Cit9OworCitzdHJ1Y3QgX1dlYktpdFdlYlZpZXdDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBh
cmVudDsKKworICAgIC8qPCBwdWJsaWMgPiovCisgICAgdm9pZCAgICAgICAgICAgKCogbG9hZF9j
aGFuZ2VkKSAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAgICp3ZWJf
dmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJLaXRMb2FkRXZlbnQgICAgICAgICAgICAgIGxvYWRfZXZlbnQpOworICAgIGdib29sZWFu
ICAgICAgICgqIGxvYWRfZmFpbGVkKSAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAg
ICAgICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV2ViS2l0TG9hZEV2ZW50ICAgICAgICAgICAgICBsb2FkX2V2ZW50
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGdjaGFyICAgICAgICAgICAgICAgICAqZmFpbGluZ191cmksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgICAgICAg
ICAgICAgICplcnJvcik7CisKKyAgICBXZWJLaXRXZWJWaWV3ICooKiBjcmVhdGUpICAgICAgICAg
ICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAgKndlYl92aWV3LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdE5h
dmlnYXRpb25BY3Rpb24gICAgICAqbmF2aWdhdGlvbl9hY3Rpb24pOworICAgIHZvaWQgICAgICAg
ICAgICgqIHJlYWR5X3RvX3Nob3cpICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAg
ICAgICAgICAqd2ViX3ZpZXcpOworICAgIHZvaWQgICAgICAgICAgICgqIHJ1bl9hc19tb2RhbCkg
ICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcpOwor
ICAgIHZvaWQgICAgICAgICAgICgqIGNsb3NlKSAgICAgICAgICAgICAgICAgICAgICAgKFdlYktp
dFdlYlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCisgICAgZ2Jvb2xlYW4gICAgICAg
KCogc2NyaXB0X2RpYWxvZykgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAg
ICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXZWJLaXRTY3JpcHREaWFsb2cgICAgICAgICAgKmRpYWxvZyk7CisKKyAgICBn
Ym9vbGVhbiAgICAgICAoKiBkZWNpZGVfcG9saWN5KSAgICAgICAgICAgICAgIChXZWJLaXRXZWJW
aWV3ICAgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFBvbGljeURlY2lzaW9uICAgICAgICAqZGVj
aXNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViS2l0UG9saWN5RGVjaXNpb25UeXBlICAgICB0eXBlKTsKKyAgICBnYm9vbGVhbiAgICAg
ICAoKiBwZXJtaXNzaW9uX3JlcXVlc3QpICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAg
ICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICAgICAqcGVybWlzc2lvbl9yZXF1
ZXN0KTsKKyAgICB2b2lkICAgICAgICAgICAoKiBtb3VzZV90YXJnZXRfY2hhbmdlZCkgICAgICAg
IChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdEhpdFRlc3RSZXN1bHQg
ICAgICAgICAqaGl0X3Rlc3RfcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZp
ZXJzKTsKKyAgICB2b2lkICAgICAgICAgICAoKiByZXNvdXJjZV9sb2FkX3N0YXJ0ZWQpICAgICAg
IChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYlJlc291cmNlICAg
ICAgICAgICAqcmVzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV2ViS2l0VVJJUmVxdWVzdCAgICAgICAgICAgICpyZXF1ZXN0KTsKKyAg
ICBnYm9vbGVhbiAgICAgICAoKiBlbnRlcl9mdWxsc2NyZWVuKSAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAgICAgICAgKndlYl92aWV3KTsKKyAgICBnYm9vbGVhbiAgICAgICAoKiBs
ZWF2ZV9mdWxsc2NyZWVuKSAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAg
KndlYl92aWV3KTsKKyAgICBnYm9vbGVhbiAgICAgICAoKiBydW5fZmlsZV9jaG9vc2VyKSAgICAg
ICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdEZpbGVDaG9v
c2VyUmVxdWVzdCAgICAqcmVxdWVzdCk7CisgICAgZ2Jvb2xlYW4gICAgICAgKCogY29udGV4dF9t
ZW51KSAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAgICp3ZWJfdmll
dywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJLaXRDb250ZXh0TWVudSAgICAgICAgICAgKmNvbnRleHRfbWVudSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICAgICAgICAgICAgICAg
ICAgICAgICAgKmV2ZW50LCAvKiBGSVhNRTogVXNlIGEgd3BlIHRoaW5nIGhlcmUuIEknbSBub3Qg
c3VyZSB3ZSB3YW50IHRvIGV4cG9zZSBsaWJ3cGUgaW4gdGhlIEFQSS4gKi8KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRIaXRUZXN0UmVz
dWx0ICAgICAgICAgKmhpdF90ZXN0X3Jlc3VsdCk7CisgICAgdm9pZCAgICAgICAgICAgKCogY29u
dGV4dF9tZW51X2Rpc21pc3NlZCkgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAgICp3
ZWJfdmlldyk7CisgICAgdm9pZCAgICAgICAgICAgKCogc3VibWl0X2Zvcm0pICAgICAgICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRGb3JtU3VibWlz
c2lvblJlcXVlc3QgKnJlcXVlc3QpOworICAgIHZvaWQgICAgICAgICAgICgqIGluc2VjdXJlX2Nv
bnRlbnRfZGV0ZWN0ZWQpICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
S2l0SW5zZWN1cmVDb250ZW50RXZlbnQgICBldmVudCk7CisgICAgZ2Jvb2xlYW4gICAgICAgKCog
d2ViX3Byb2Nlc3NfY3Jhc2hlZCkgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAg
ICp3ZWJfdmlldyk7CisKKyAgICBnYm9vbGVhbiAgICAgICAoKiBhdXRoZW50aWNhdGUpICAgICAg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdEF1dGhl
bnRpY2F0aW9uUmVxdWVzdCAqcmVxdWVzdCk7CisgICAgZ2Jvb2xlYW4gICAgICAgKCogbG9hZF9m
YWlsZWRfd2l0aF90bHNfZXJyb3JzKSAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAgICp3ZWJf
dmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICAgKmZhaWxpbmdfdXJpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUbHNDZXJ0aWZpY2F0ZSAg
ICAgICAgICAgICAqY2VydGlmaWNhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR1Rsc0NlcnRpZmljYXRlRmxhZ3MgICAgICAgICBlcnJvcnMp
OworICAgIGdib29sZWFuICAgICAgICgqIHNob3dfbm90aWZpY2F0aW9uKSAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0Tm90aWZpY2F0aW9uICAgICAg
ICAgICpub3RpZmljYXRpb24pOworICAgIHZvaWQgICAgICAgICAgICgqIHdlYl9wcm9jZXNzX3Rl
cm1pbmF0ZWQpICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0
V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbik7CisgICAgZ2Jvb2xlYW4gICAgICAg
KCogdXNlcl9tZXNzYWdlX3JlY2VpdmVkKSAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAg
ICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXZWJLaXRVc2VyTWVzc2FnZSAgICAgICAgICAgKm1lc3NhZ2UpOworICAgIGdi
b29sZWFuICAgICAgICgqIHNob3dfb3B0aW9uX21lbnUpICAgICAgICAgICAgKFdlYktpdFdlYlZp
ZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0T3B0aW9uTWVudSAgICAgICAgICAgICptZW51
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YktpdFJlY3RhbmdsZSAgICAgICAgICAgICAqcmVjdGFuZ2xlKTsKKworICAgIC8qPCBwcml2YXRl
ID4qLworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpf
d2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikg
KHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworICAgIHZvaWQg
KCpfd2Via2l0X3Jlc2VydmVkNCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVk
NSkgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3dlYl92aWV3X2dldF90
eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2Vi
S2l0V2ViVmlldyAqCit3ZWJraXRfd2ViX3ZpZXdfbmV3ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3QmFja2VuZCAgICAgICpiYWNrZW5kKTsKKworV0VCS0lU
X0FQSSBXZWJLaXRXZWJWaWV3ICoKK3dlYmtpdF93ZWJfdmlld19uZXdfd2l0aF9jb250ZXh0ICAg
ICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXdCYWNrZW5kICAgICAgKmJhY2tlbmQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJL
aXRXZWJDb250ZXh0ICAgICAgICAgICpjb250ZXh0KTsKKworV0VCS0lUX0FQSSBXZWJLaXRXZWJW
aWV3ICoKK3dlYmtpdF93ZWJfdmlld19uZXdfd2l0aF9zZXR0aW5ncyAgICAgICAgICAgICAgICAg
ICAgKFdlYktpdFdlYlZpZXdCYWNrZW5kICAgICAgKmJhY2tlbmQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRTZXR0aW5ncyAgICAg
ICAgICAgICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgV2ViS2l0V2ViVmlldyAqCit3ZWJraXRf
d2ViX3ZpZXdfbmV3X3dpdGhfcmVsYXRlZF92aWV3ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJW
aWV3QmFja2VuZCAgICAgICpiYWNrZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3Zp
ZXcpOworCitXRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgord2Via2l0X3dlYl92aWV3X25ld193
aXRoX3VzZXJfY29udGVudF9tYW5hZ2VyICAgICAgICAoV2ViS2l0V2ViVmlld0JhY2tlbmQgICAg
ICAqYmFja2VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdlYktpdFVzZXJDb250ZW50TWFuYWdlciAgKnVzZXJfY29udGVudF9tYW5hZ2Vy
KTsKKworV0VCS0lUX0FQSSBXZWJLaXRXZWJWaWV3QmFja2VuZCAqCit3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2JhY2tlbmQgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAg
ICAgICAgICp3ZWJfdmlldyk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmll
d19pc19lcGhlbWVyYWwgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAg
ICAgICAgICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl92
aWV3X2lzX2NvbnRyb2xsZWRfYnlfYXV0b21hdGlvbiAgICAgICAgICAoV2ViS2l0V2ViVmlldyAg
ICAgICAgICAgICAqd2ViX3ZpZXcpOworCitXRUJLSVRfQVBJIFdlYktpdEF1dG9tYXRpb25Ccm93
c2luZ0NvbnRleHRQcmVzZW50YXRpb24KK3dlYmtpdF93ZWJfdmlld19nZXRfYXV0b21hdGlvbl9w
cmVzZW50YXRpb25fdHlwZSAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3
KTsKKworV0VCS0lUX0FQSSBXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIgKgord2Via2l0X3dlYl92
aWV3X2dldF93ZWJzaXRlX2RhdGFfbWFuYWdlciAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAg
ICAgICAgICAgICAqd2ViX3ZpZXcpOworCitXRUJLSVRfQVBJIFdlYktpdFdlYkNvbnRleHQgKgor
d2Via2l0X3dlYl92aWV3X2dldF9jb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAoV2Vi
S2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCitXRUJLSVRfQVBJIHZvaWQKK3dl
YmtpdF93ZWJfdmlld190cnlfY2xvc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktp
dFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJr
aXRfd2ViX3ZpZXdfbG9hZF91cmkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgKnVy
aSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X2xvYWRfaHRtbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBnY2hhciAgICAgICAgICAgICAgICpjb250ZW50LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAg
ICAqYmFzZV91cmkpOworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfbG9hZF9hbHRl
cm5hdGVfaHRtbCAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3
ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgKmNvbnRlbnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAg
ICAgICAgICAgICpjb250ZW50X3VyaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgKmJhc2VfdXJp
KTsKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X2xvYWRfcGxhaW5fdGV4dCAgICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBnY2hhciAgICAgICAgICAgICAgICpwbGFpbl90ZXh0KTsKKworV0VCS0lUX0FQSSB2b2lkCit3
ZWJraXRfd2ViX3ZpZXdfbG9hZF9ieXRlcyAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJL
aXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdCeXRlcyAgICAgICAgICAgICAgICAgICAg
KmJ5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAqbWltZV90eXBlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAg
ICAgICAgICAgICAqZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICpiYXNlX3VyaSk7
CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X2xvYWRfcmVxdWVzdCAgICAgICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJL
aXRVUklSZXF1ZXN0ICAgICAgICAgICpyZXF1ZXN0KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJr
aXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dl
YmtpdF93ZWJfdmlld19pc19sb2FkaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktp
dFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgor
d2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8gICAgICAgICAgICAgICAgICAgICAoV2Vi
S2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCitXRUJLSVRfQVBJIHZvaWQKK3dl
YmtpdF93ZWJfdmlld19zZXRfaXNfbXV0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktp
dFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAg
bXV0ZWQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX211
dGVkICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3
ZWJfdmlldyk7CisKK1dFQktJVF9BUEkgZ3VpbnQ2NAord2Via2l0X3dlYl92aWV3X2dldF9wYWdl
X2lkICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAq
d2ViX3ZpZXcpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF93ZWJfdmlld19n
ZXRfdGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAg
ICAgICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfcmVs
b2FkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAg
ICAgICp3ZWJfdmlldyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X3JlbG9h
ZF9ieXBhc3NfY2FjaGUgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAg
ICAqd2ViX3ZpZXcpOworCitXRUJLSVRfQVBJIGdkb3VibGUKK3dlYmtpdF93ZWJfdmlld19nZXRf
ZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3MgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAg
ICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfZ29fYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAg
ICp3ZWJfdmlldyk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmlld19jYW5f
Z29fYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAg
ICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfZ29fZm9y
d2FyZCAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAg
ICp3ZWJfdmlldyk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmlld19jYW5f
Z29fZm9yd2FyZCAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAg
ICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSBXZWJLaXRCYWNrRm9yd2FyZExpc3QgKgord2Vi
a2l0X3dlYl92aWV3X2dldF9iYWNrX2ZvcndhcmRfbGlzdCAgICAgICAgICAgICAgICAoV2ViS2l0
V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtp
dF93ZWJfdmlld19nb190b19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtICAgICAgICAgKFdlYktpdFdl
YlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbSAqbGlz
dF9pdGVtKTsKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X3dlYl92aWV3X2dldF91
cmkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAg
ICAqd2ViX3ZpZXcpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF93ZWJfdmll
d19nZXRfY3VzdG9tX2NoYXJzZXQgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAg
ICAgICAgICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdf
c2V0X2N1c3RvbV9jaGFyc2V0ICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAg
ICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgKmNoYXJzZXQpOworCitX
RUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19zZXRfc2V0dGluZ3MgICAgICAgICAgICAg
ICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0U2V0
dGluZ3MgICAgICAgICAgICAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIFdlYktpdFNldHRpbmdz
ICoKK3dlYmtpdF93ZWJfdmlld19nZXRfc2V0dGluZ3MgICAgICAgICAgICAgICAgICAgICAgICAg
KFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSBXZWJL
aXRXaW5kb3dQcm9wZXJ0aWVzICoKK3dlYmtpdF93ZWJfdmlld19nZXRfd2luZG93X3Byb3BlcnRp
ZXMgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsK
KworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfc2V0X3pvb21fbGV2ZWwgICAgICAg
ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdkb3Vi
bGUgICAgICAgICAgICAgICAgICAgIHpvb21fbGV2ZWwpOworV0VCS0lUX0FQSSBnZG91YmxlCit3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3pvb21fbGV2ZWwgICAgICAgICAgICAgICAgICAgICAgIChXZWJL
aXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X3dlYl92aWV3X2Nhbl9leGVjdXRlX2VkaXRpbmdfY29tbWFuZCAgICAgICAgICAoV2ViS2l0
V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICpj
b21tYW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0NhbmNlbGxhYmxlICAgICAgICAgICAgICAqY2FuY2VsbGFibGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZWFkeUNh
bGxiYWNrICAgICAgICBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICAgICAgICAgICAgIHVzZXJfZGF0
YSk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmlld19jYW5fZXhlY3V0ZV9l
ZGl0aW5nX2NvbW1hbmRfZmluaXNoICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92
aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0FzeW5jUmVzdWx0ICAgICAgICAgICAgICAqcmVzdWx0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgICAgICAg
ICAgICoqZXJyb3IpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19leGVjdXRl
X2VkaXRpbmdfY29tbWFuZCAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAg
KndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAqY29tbWFuZCk7CisKK1dFQktJVF9B
UEkgdm9pZAord2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kX3dpdGhfYXJn
dW1lbnQoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICAgICAg
ICAgICAgICAgICpjb21tYW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgICAgICAqYXJndW1lbnQpOwor
CitXRUJLSVRfQVBJIFdlYktpdEZpbmRDb250cm9sbGVyICoKK3dlYmtpdF93ZWJfdmlld19nZXRf
ZmluZF9jb250cm9sbGVyICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAg
ICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfcnVuX2ph
dmFzY3JpcHQgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAg
ICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgKnNjcmlwdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDYW5jZWxsYWJsZSAg
ICAgICAgICAgICAgKmNhbmNlbGxhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0FzeW5jUmVhZHlDYWxsYmFjayAgICAgICAgY2FsbGJh
Y2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBncG9pbnRlciAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEpOworV0VCS0lUX0FQSSBXZWJL
aXRKYXZhc2NyaXB0UmVzdWx0ICoKK3dlYmtpdF93ZWJfdmlld19ydW5famF2YXNjcmlwdF9maW5p
c2ggICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Fz
eW5jUmVzdWx0ICAgICAgICAgICAgICAqcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgICAgICAgICAgICoq
ZXJyb3IpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19ydW5famF2YXNjcmlw
dF9pbl93b3JsZCAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92
aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAqc2NyaXB0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAg
ICAgICAqd29ybGRfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdDYW5jZWxsYWJsZSAgICAgICAgICAgICAgKmNhbmNlbGxhYmxlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Fz
eW5jUmVhZHlDYWxsYmFjayAgICAgICAgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgICAgICAgICAgICAg
ICB1c2VyX2RhdGEpOworV0VCS0lUX0FQSSBXZWJLaXRKYXZhc2NyaXB0UmVzdWx0ICoKK3dlYmtp
dF93ZWJfdmlld19ydW5famF2YXNjcmlwdF9pbl93b3JsZF9maW5pc2ggICAgICAgKFdlYktpdFdl
YlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0FzeW5jUmVzdWx0ICAgICAgICAgICAgICAqcmVz
dWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0Vycm9yICAgICAgICAgICAgICAgICAgICoqZXJyb3IpOworCitXRUJLSVRfQVBJIHZvaWQK
K3dlYmtpdF93ZWJfdmlld19ydW5fYXN5bmNfamF2YXNjcmlwdF9mdW5jdGlvbl9pbl93b3JsZCAo
V2ViS2l0V2ViVmlldyAgICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAg
ICAgICpib2R5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHVmFyaWFudCAgICAgICAgICAgICAgICAgKmFyZ3VtZW50cywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciAgICAgICAgICAgICAgICp3b3JsZF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2FuY2VsbGFibGUqICAgICAgICAgICAgIGNh
bmNlbGxhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHQXN5bmNSZWFkeUNhbGxiYWNrICAgICAgIGNhbGxiYWNrLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAg
ICAgICAgICAgICAgICAgIHVzZXJfZGF0YSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dl
Yl92aWV3X3J1bl9qYXZhc2NyaXB0X2Zyb21fZ3Jlc291cmNlICAgICAgICAoV2ViS2l0V2ViVmll
dyAgICAgICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICpyZXNvdXJj
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdDYW5jZWxsYWJsZSAgICAgICAgICAgICAgKmNhbmNlbGxhYmxlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0FzeW5jUmVhZHlDYWxsYmFj
ayAgICAgICAgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEpOwor
CitXRUJLSVRfQVBJIFdlYktpdEphdmFzY3JpcHRSZXN1bHQgKgord2Via2l0X3dlYl92aWV3X3J1
bl9qYXZhc2NyaXB0X2Zyb21fZ3Jlc291cmNlX2ZpbmlzaCAoV2ViS2l0V2ViVmlldyAgICAgICAg
ICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgICAgICAgICAgICAgICpyZXN1bHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAg
ICAgICAgICAgICAgICAgKiplcnJvcik7CisKK1dFQktJVF9BUEkgV2ViS2l0V2ViUmVzb3VyY2Ug
Kgord2Via2l0X3dlYl92aWV3X2dldF9tYWluX3Jlc291cmNlICAgICAgICAgICAgICAgICAgICAo
V2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCitXRUJLSVRfQVBJIGdib29s
ZWFuCit3ZWJraXRfd2ViX3ZpZXdfY2FuX3Nob3dfbWltZV90eXBlICAgICAgICAgICAgICAgICAg
IChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAg
ICAgICAgKm1pbWVfdHlwZSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X3Nh
dmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAg
ICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRTYXZlTW9kZSAgICAgICAgICAgICBzYXZlX21vZGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2FuY2Vs
bGFibGUgICAgICAgICAgICAgICpjYW5jZWxsYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1JlYWR5Q2FsbGJhY2sgICAgICAg
IGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ3BvaW50ZXIgICAgICAgICAgICAgICAgICAgdXNlcl9kYXRhKTsKKworV0VCS0lU
X0FQSSBHSW5wdXRTdHJlYW0gKgord2Via2l0X3dlYl92aWV3X3NhdmVfZmluaXNoICAgICAgICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5
bmNSZXN1bHQgICAgICAgICAgICAgICpyZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgICAgICAgKipl
cnJvcik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X3NhdmVfdG9fZmlsZSAg
ICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3Zp
ZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHRmlsZSAgICAgICAgICAgICAgICAgICAgICpmaWxlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0U2F2ZU1vZGUgICAgICAgICAg
ICAgc2F2ZV9tb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0NhbmNlbGxhYmxlICAgICAgICAgICAgICAqY2FuY2VsbGFibGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNS
ZWFkeUNhbGxiYWNrICAgICAgICBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICAgICAgICAgICAgIHVz
ZXJfZGF0YSk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmlld19zYXZlX3Rv
X2ZpbGVfZmluaXNoICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAg
KndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0FzeW5jUmVzdWx0ICAgICAgICAgICAgICAqcmVzdWx0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAg
ICAgICAgICAgICoqZXJyb3IpOworCitXRUJLSVRfQVBJIFdlYktpdERvd25sb2FkICoKK3dlYmtp
dF93ZWJfdmlld19kb3dubG9hZF91cmkgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdl
YlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgICAgICAqdXJp
KTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X2dldF90bHNfaW5mbyAg
ICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3Zp
ZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHVGxzQ2VydGlmaWNhdGUgICAgICAgICAgKipjZXJ0aWZpY2F0ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUbHNDZXJ0aWZpY2F0ZUZs
YWdzICAgICAgKmVycm9ycyk7CisKK1dFQktJVF9BUEkgV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2Vy
ICoKK3dlYmtpdF93ZWJfdmlld19nZXRfdXNlcl9jb250ZW50X21hbmFnZXIgICAgICAgICAgICAg
KFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSBnYm9v
bGVhbgord2Via2l0X3dlYl92aWV3X2lzX2VkaXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAg
ICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUgICAgICAgICAgICAgICAgICAgICAgICAg
KFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAg
ICAgICBlZGl0YWJsZSk7CisKK1dFQktJVF9BUEkgV2ViS2l0RWRpdG9yU3RhdGUgKgord2Via2l0
X3dlYl92aWV3X2dldF9lZGl0b3Jfc3RhdGUgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2Vi
VmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCitXRUJLSVRfQVBJIFdlYktpdFdlYlZpZXdT
ZXNzaW9uU3RhdGUgKgord2Via2l0X3dlYl92aWV3X2dldF9zZXNzaW9uX3N0YXRlICAgICAgICAg
ICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCitXRUJL
SVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19yZXN0b3JlX3Nlc3Npb25fc3RhdGUgICAgICAg
ICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViVmll
d1Nlc3Npb25TdGF0ZSAqc3RhdGUpOworCitXRUJLSVRfQVBJIGd1aW50Cit3ZWJraXRfd2ViX3Zp
ZXdfYWRkX2ZyYW1lX2Rpc3BsYXllZF9jYWxsYmFjayAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAg
ICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViS2l0RnJhbWVEaXNwbGF5ZWRDYWxsYmFjayBjYWxsYmFj
aywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdwb2ludGVyICAgICAgICAgICAgICAgICAgICAgdXNlcl9kYXRhLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Rlc3Ryb3lOb3RpZnkgICAg
ICAgICAgICAgICBkZXN0cm95X25vdGlmeSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dl
Yl92aWV3X3JlbW92ZV9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2sgICAgICAoV2ViS2l0V2ViVmll
dyAgICAgICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAgICAgaWQp
OworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19zZXRfYmFja2dyb3VuZF9jb2xv
ciAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJLaXRDb2xvciAgICAgICAgICAgICAgICAgKmNvbG9yKTsKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X3dlYl92aWV3X2dldF9iYWNrZ3JvdW5kX2NvbG9yICAgICAgICAgICAgICAgICAoV2ViS2l0
V2ViVmlldyAgICAgICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdENvbG9yICAgICAgICAgICAgICAg
ICAqY29sb3IpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19zZW5kX21lc3Nh
Z2VfdG9fcGFnZSAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgICAq
d2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXZWJLaXRVc2VyTWVzc2FnZSAgICAgICAgICAgKm1lc3NhZ2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2FuY2VsbGFibGUg
ICAgICAgICAgICAgICAgKmNhbmNlbGxhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0FzeW5jUmVhZHlDYWxsYmFjayAgICAgICAgICBj
YWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdwb2ludGVyICAgICAgICAgICAgICAgICAgICAgdXNlcl9kYXRhKTsKKworV0VCS0lU
X0FQSSBXZWJLaXRVc2VyTWVzc2FnZSAqCit3ZWJraXRfd2ViX3ZpZXdfc2VuZF9tZXNzYWdlX3Rv
X3BhZ2VfZmluaXNoICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAgKndlYl92
aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0FzeW5jUmVzdWx0ICAgICAgICAgICAgICAgICpyZXN1bHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAg
ICAgICAgICAqKmVycm9yKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfc2V0
X2lucHV0X21ldGhvZF9jb250ZXh0ICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAg
ICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0ICAgICpjb250ZXh0KTsKKwor
V0VCS0lUX0FQSSBXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQgKgord2Via2l0X3dlYl92aWV3X2dl
dF9pbnB1dF9tZXRob2RfY29udGV4dCAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAg
ICAgICAgICp3ZWJfdmlldyk7CisKK1dFQktJVF9BUEkgV2ViS2l0V2Vic2l0ZVBvbGljaWVzICoK
K3dlYmtpdF93ZWJfdmlld19nZXRfd2Vic2l0ZV9wb2xpY2llcyAgICAgICAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSBnYm9vbGVh
bgord2Via2l0X3dlYl92aWV3X2dldF9pc193ZWJfcHJvY2Vzc19yZXNwb25zaXZlICAgICAgICAo
V2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCitXRUJLSVRfQVBJIHZvaWQK
K3dlYmtpdF93ZWJfdmlld190ZXJtaW5hdGVfd2ViX3Byb2Nlc3MgICAgICAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSB2b2lkCit3
ZWJraXRfd2ViX3ZpZXdfc2V0X2NvcnNfYWxsb3dsaXN0ICAgICAgICAgICAgICAgICAgIChXZWJL
aXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICogY29uc3QgICAgICAg
KmFsbG93bGlzdCk7CisKK1dFQktJVF9BUEkgV2ViS2l0TWVkaWFDYXB0dXJlU3RhdGUKK3dlYmtp
dF93ZWJfdmlld19nZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUgICAgICAgICAgICAgKFdlYktpdFdl
YlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRf
d2ViX3ZpZXdfc2V0X2NhbWVyYV9jYXB0dXJlX3N0YXRlICAgICAgICAgICAgIChXZWJLaXRXZWJW
aWV3ICAgICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdE1lZGlhQ2FwdHVyZVN0YXRlICAgIHN0YXRl
KTsKKworV0VCS0lUX0FQSSBXZWJLaXRNZWRpYUNhcHR1cmVTdGF0ZQord2Via2l0X3dlYl92aWV3
X2dldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAg
ICAgICAgICAqd2ViX3ZpZXcpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19z
ZXRfbWljcm9waG9uZV9jYXB0dXJlX3N0YXRlICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAg
ICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV2ViS2l0TWVkaWFDYXB0dXJlU3RhdGUgICAgc3RhdGUpOworCitXRUJL
SVRfQVBJIFdlYktpdE1lZGlhQ2FwdHVyZVN0YXRlCit3ZWJraXRfd2ViX3ZpZXdfZ2V0X2Rpc3Bs
YXlfY2FwdHVyZV9zdGF0ZSAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3
ZWJfdmlldyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X3NldF9kaXNwbGF5
X2NhcHR1cmVfc3RhdGUgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2Vi
X3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJLaXRNZWRpYUNhcHR1cmVTdGF0ZSAgICBzdGF0ZSk7CisKK1dFQktJVF9BUEkgV2Vi
S2l0V2ViRXh0ZW5zaW9uTW9kZQord2Via2l0X3dlYl92aWV3X2dldF93ZWJfZXh0ZW5zaW9uX21v
ZGUgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwor
CitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgord2Via2l0X3dlYl92aWV3X2dldF9kZWZhdWx0X2Nv
bnRlbnRfc2VjdXJpdHlfcG9saWN5ICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3Zp
ZXcpOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuaC5pbiBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5oCnNp
bWlsYXJpdHkgaW5kZXggOTAlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuaC5pbgpyZW5hbWUgdG8gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3U2Vzc2lvblN0YXRlLmgKaW5kZXgg
YTRjYzViMzg0NWJhLi41MzU1NjQ1YTE5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuaC5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuaApA
QCAtMTcsMTMgKzE3LDE1IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwog
Ci1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJ
REVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3Bl
L3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYg
V2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZV9oCiAjZGVmaW5lIFdlYktpdFdlYlZpZXdTZXNzaW9u
U3RhdGVfaAogCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xV
REVfUFJFRklYQC9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMu
aD4KIAogR19CRUdJTl9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YS5oLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRXZWJzaXRlRGF0YS5oCnNpbWlsYXJpdHkgaW5kZXggOTUlCnJlbmFt
ZSBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRh
LmguaW4KcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2Vi
c2l0ZURhdGEuaAppbmRleCA3ZTVmYmU4MzQ1MmUuLjU4MmI4YzBiZDYxOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGEuaC5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYnNpdGVEYXRhLmgK
QEAgLTE3LDEzICsxNywxNSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8K
IAotQEFQSV9TSU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5T
SURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdw
ZS93ZWJraXQuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgogCiAjaWZuZGVm
IFdlYktpdFdlYnNpdGVEYXRhX2gKICNkZWZpbmUgV2ViS2l0V2Vic2l0ZURhdGFfaAogCiAjaW5j
bHVkZSA8Z2xpYi1vYmplY3QuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJL
aXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KIAogR19CRUdJTl9E
RUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJzaXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0LmguaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYnNpdGVEYXRhQWNjZXNzUGVybWlzc2lvblJlcXVl
c3QuaApzaW1pbGFyaXR5IGluZGV4IDk1JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0Lmgu
aW4KcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2Vic2l0
ZURhdGFBY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdC5oCmluZGV4IDkzZTYxYWU4ZWY1Mi4uNzI0NjZh
MTQwNzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJzaXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0LmguaW4KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJzaXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25S
ZXF1ZXN0LmgKQEAgLTE2LDEzICsxNiwxNSBAQAogICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQog
ICovCiAKLUBBUElfU0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9I
X0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5
IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lm
bmRlZiBXZWJLaXRXZWJzaXRlRGF0YUFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0X2gKICNkZWZpbmUg
V2ViS2l0V2Vic2l0ZURhdGFBY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdF9oCiAKICNpbmNsdWRlIDxn
bGliLW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERlZmlu
ZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgogCiBHX0JFR0lOX0RFQ0xTCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNp
dGVEYXRhTWFuYWdlci5oLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRXZWJzaXRlRGF0YU1hbmFnZXIuaApzaW1pbGFyaXR5IGluZGV4IDk3JQpyZW5hbWUgZnJvbSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIu
aC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJz
aXRlRGF0YU1hbmFnZXIuaAppbmRleCA2YWE4ZWM4YmJjNDcuLjY2NGI4NTQ5NTZkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFN
YW5hZ2VyLmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRX
ZWJzaXRlRGF0YU1hbmFnZXIuaApAQCAtMTcsMTcgKzE3LDE5IEBACiAgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KICAqLwogCi1AQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRl
ZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElP
TikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHku
IgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyX2gKICNkZWZpbmUg
V2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyX2gKIAogI2luY2x1ZGUgPGdpby9naW8uaD4KLSNpbmNs
dWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRDb29raWVNYW5hZ2VyLmg+Ci0jaW5jbHVk
ZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0RGVmaW5lcy5oPgotI2luY2x1ZGUgPEBBUElf
SU5DTFVERV9QUkVGSVhAL1dlYktpdE1lbW9yeVByZXNzdXJlU2V0dGluZ3MuaD4KLSNpbmNsdWRl
IDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXROZXR3b3JrUHJveHlTZXR0aW5ncy5oPgotI2lu
Y2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdFdlYnNpdGVEYXRhLmg+CisjaW5jbHVk
ZSA8d3BlL1dlYktpdENvb2tpZU1hbmFnZXIuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5l
cy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRNZW1vcnlQcmVzc3VyZVNldHRpbmdzLmg+CisjaW5j
bHVkZSA8d3BlL1dlYktpdE5ldHdvcmtQcm94eVNldHRpbmdzLmg+CisjaW5jbHVkZSA8d3BlL1dl
YktpdFdlYnNpdGVEYXRhLmg+CiAKIEdfQkVHSU5fREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJzaXRlUG9saWNpZXMuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2Vic2l0ZVBvbGljaWVzLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kMTNlZDMwNGNmNDMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYnNpdGVQ
b2xpY2llcy5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiwxIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChX
RUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0Mi5oPiBjYW4gYmUg
aW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
Z2lvL2dpby5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVD
TFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9XRUJTSVRFX1BPTElDSUVTICAgICAgICAgICAgKHdl
YmtpdF93ZWJzaXRlX3BvbGljaWVzX2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9XRUJTSVRF
X1BPTElDSUVTKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9i
aiksIFdFQktJVF9UWVBFX1dFQlNJVEVfUE9MSUNJRVMsIFdlYktpdFdlYnNpdGVQb2xpY2llcykp
CisjZGVmaW5lIFdFQktJVF9JU19XRUJTSVRFX1BPTElDSUVTKG9iaikgICAgICAgICAoR19UWVBF
X0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1dFQlNJVEVfUE9MSUNJRVMp
KQorI2RlZmluZSBXRUJLSVRfV0VCU0lURV9QT0xJQ0lFU19DTEFTUyhrbGFzcykgICAgKEdfVFlQ
RV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9XRUJTSVRFX1BPTElDSUVT
LCBXZWJLaXRXZWJzaXRlUG9saWNpZXNDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19XRUJTSVRF
X1BPTElDSUVTX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwg
IFdFQktJVF9UWVBFX1dFQlNJVEVfUE9MSUNJRVMpKQorI2RlZmluZSBXRUJLSVRfV0VCU0lURV9Q
T0xJQ0lFU19HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiks
ICBXRUJLSVRfVFlQRV9XRUJTSVRFX1BPTElDSUVTLCBXZWJLaXRXZWJzaXRlUG9saWNpZXNDbGFz
cykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJzaXRlUG9saWNpZXMgICAgICAgIFdlYktp
dFdlYnNpdGVQb2xpY2llczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJzaXRlUG9saWNpZXND
bGFzcyAgIFdlYktpdFdlYnNpdGVQb2xpY2llc0NsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktp
dFdlYnNpdGVQb2xpY2llc1ByaXZhdGUgV2ViS2l0V2Vic2l0ZVBvbGljaWVzUHJpdmF0ZTsKKwor
c3RydWN0IF9XZWJLaXRXZWJzaXRlUG9saWNpZXMgeworICAgIEdPYmplY3QgcGFyZW50OworCisg
ICAgLyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0V2Vic2l0ZVBvbGljaWVzUHJpdmF0ZSAqcHJp
djsKK307CisKK3N0cnVjdCBfV2ViS2l0V2Vic2l0ZVBvbGljaWVzQ2xhc3MgeworICAgIEdPYmpl
Y3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICB2b2lkICgq
X3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEp
ICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lk
ICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKKy8qKgorICogV2ViS2l0QXV0b3Bs
YXlQb2xpY3k6CisgKiBAV0VCS0lUX0FVVE9QTEFZX0FMTE9XOiBEbyBub3QgcmVzdHJpY3QgYXV0
b3BsYXkuCisgKiBAV0VCS0lUX0FVVE9QTEFZX0FMTE9XX1dJVEhPVVRfU09VTkQ6IEFsbG93IHZp
ZGVvcyB0byBhdXRvcGxheSBpZgorICogICAgIHRoZXkgaGF2ZSBubyBhdWRpbyB0cmFjaywgb3Ig
aWYgdGhlaXIgYXVkaW8gdHJhY2sgaXMgbXV0ZWQuCisgKiBAV0VCS0lUX0FVVE9QTEFZX0RFTlk6
IE5ldmVyIGFsbG93IGF1dG9wbGF5LgorICoKKyAqIEVudW0gdmFsdWVzIHVzZWQgdG8gc3BlY2lm
eSBhdXRvcGxheSBwb2xpY2llcy4KKyAqCisgKiBTaW5jZTogMi4zMAorICovCit0eXBlZGVmIGVu
dW0geworICAgIFdFQktJVF9BVVRPUExBWV9BTExPVywKKyAgICBXRUJLSVRfQVVUT1BMQVlfQUxM
T1dfV0lUSE9VVF9TT1VORCwKKyAgICBXRUJLSVRfQVVUT1BMQVlfREVOWQorfSBXZWJLaXRBdXRv
cGxheVBvbGljeTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3dlYnNpdGVfcG9saWNpZXNf
Z2V0X3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9B
UEkgV2ViS2l0V2Vic2l0ZVBvbGljaWVzICoKK3dlYmtpdF93ZWJzaXRlX3BvbGljaWVzX25ldyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIFdl
YktpdFdlYnNpdGVQb2xpY2llcyAqCit3ZWJraXRfd2Vic2l0ZV9wb2xpY2llc19uZXdfd2l0aF9w
b2xpY2llcyAgICAgICAgICAgICAgICAgICAgIChjb25zdCBnY2hhciAgKmZpcnN0X3BvbGljeV9u
YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLi4uKTsKKworV0VCS0lUX0FQSSBXZWJLaXRBdXRvcGxheVBvbGljeQord2Vi
a2l0X3dlYnNpdGVfcG9saWNpZXNfZ2V0X2F1dG9wbGF5X3BvbGljeSAgICAgICAgICAgICAgICAg
ICAoV2ViS2l0V2Vic2l0ZVBvbGljaWVzKiBwb2xpY2llcyk7CisKK0dfRU5EX0RFQ0xTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdpbmRvd1Byb3Bl
cnRpZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2luZG93UHJv
cGVydGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTZkY2Qy
ZjM4M2IwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXRXaW5kb3dQcm9wZXJ0aWVzLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVf
XykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dl
YmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2Vi
S2l0V2luZG93UHJvcGVydGllc19oCisjZGVmaW5lIFdlYktpdFdpbmRvd1Byb3BlcnRpZXNfaAor
CisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5o
PgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfV0lORE9XX1BST1BFUlRJ
RVMgICAgICAgICAgICAod2Via2l0X3dpbmRvd19wcm9wZXJ0aWVzX2dldF90eXBlKCkpCisjZGVm
aW5lIFdFQktJVF9XSU5ET1dfUFJPUEVSVElFUyhvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVD
S19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9XSU5ET1dfUFJPUEVSVElFUywgV2Vi
S2l0V2luZG93UHJvcGVydGllcykpCisjZGVmaW5lIFdFQktJVF9JU19XSU5ET1dfUFJPUEVSVElF
UyhvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRf
VFlQRV9XSU5ET1dfUFJPUEVSVElFUykpCisjZGVmaW5lIFdFQktJVF9XSU5ET1dfUFJPUEVSVElF
U19DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJL
SVRfVFlQRV9XSU5ET1dfUFJPUEVSVElFUywgV2ViS2l0V2luZG93UHJvcGVydGllc0NsYXNzKSkK
KyNkZWZpbmUgV0VCS0lUX0lTX1dJTkRPV19QUk9QRVJUSUVTX0NMQVNTKGtsYXNzKSAoR19UWVBF
X0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dJTkRPV19QUk9QRVJUSUVT
KSkKKyNkZWZpbmUgV0VCS0lUX1dJTkRPV19QUk9QRVJUSUVTX0dFVF9DTEFTUyhvYmopICAoR19U
WVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1dJTkRPV19QUk9QRVJU
SUVTLCBXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2Vi
S2l0V2luZG93UHJvcGVydGllcyBXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzOwordHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdFdpbmRvd1Byb3BlcnRpZXNDbGFzcyBXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2luZG93UHJvcGVydGllc1ByaXZhdGUgV2ViS2l0
V2luZG93UHJvcGVydGllc1ByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0V2luZG93UHJvcGVydGll
cyB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJL
aXRXaW5kb3dQcm9wZXJ0aWVzUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0V2lu
ZG93UHJvcGVydGllc0NsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisg
ICAgLyo8IHByaXZhdGUgPiovCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7
CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9p
ZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfd2luZG93X3Byb3BlcnRpZXNfZ2V0
X3R5cGUgICAgICAgICAgICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJr
aXRfd2luZG93X3Byb3BlcnRpZXNfZ2V0X3Rvb2xiYXJfdmlzaWJsZSAgICAgKFdlYktpdFdpbmRv
d1Byb3BlcnRpZXMgKndpbmRvd19wcm9wZXJ0aWVzKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgor
d2Via2l0X3dpbmRvd19wcm9wZXJ0aWVzX2dldF9zdGF0dXNiYXJfdmlzaWJsZSAgIChXZWJLaXRX
aW5kb3dQcm9wZXJ0aWVzICp3aW5kb3dfcHJvcGVydGllcyk7CisKK1dFQktJVF9BUEkgZ2Jvb2xl
YW4KK3dlYmtpdF93aW5kb3dfcHJvcGVydGllc19nZXRfc2Nyb2xsYmFyc192aXNpYmxlICAoV2Vi
S2l0V2luZG93UHJvcGVydGllcyAqd2luZG93X3Byb3BlcnRpZXMpOworCitXRUJLSVRfQVBJIGdi
b29sZWFuCit3ZWJraXRfd2luZG93X3Byb3BlcnRpZXNfZ2V0X21lbnViYXJfdmlzaWJsZSAgICAg
KFdlYktpdFdpbmRvd1Byb3BlcnRpZXMgKndpbmRvd19wcm9wZXJ0aWVzKTsKKworV0VCS0lUX0FQ
SSBnYm9vbGVhbgord2Via2l0X3dpbmRvd19wcm9wZXJ0aWVzX2dldF9sb2NhdGlvbmJhcl92aXNp
YmxlIChXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzICp3aW5kb3dfcHJvcGVydGllcyk7CisKK1dFQktJ
VF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93aW5kb3dfcHJvcGVydGllc19nZXRfcmVzaXphYmxlICAg
ICAgICAgICAoV2ViS2l0V2luZG93UHJvcGVydGllcyAqd2luZG93X3Byb3BlcnRpZXMpOworCitX
RUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2luZG93X3Byb3BlcnRpZXNfZ2V0X2Z1bGxzY3Jl
ZW4gICAgICAgICAgKFdlYktpdFdpbmRvd1Byb3BlcnRpZXMgKndpbmRvd19wcm9wZXJ0aWVzKTsK
KworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRDb25zb2xlTWVzc2FnZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0Q29uc29s
ZU1lc3NhZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmNiZmJj
ZGYzMTg3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdENvbnNvbGVNZXNzYWdlLmgKQEAgLTAsMCArMSwxMDIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9f
V0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01Q
SUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPiBj
YW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0Q29uc29s
ZU1lc3NhZ2VfaAorI2RlZmluZSBXZWJLaXRDb25zb2xlTWVzc2FnZV9oCisKKyNpbmNsdWRlIDxn
bGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JF
R0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfQ09OU09MRV9NRVNTQUdFICh3ZWJraXRf
Y29uc29sZV9tZXNzYWdlX2dldF90eXBlKCkpCisKKy8qKgorICogV2ViS2l0Q29uc29sZU1lc3Nh
Z2VTb3VyY2U6CisgKiBAV0VCS0lUX0NPTlNPTEVfTUVTU0FHRV9TT1VSQ0VfSkFWQVNDUklQVDog
TWVzc2FnZSBwcm9kdWNlZCBieSBKYXZhU2NyaXB0LgorICogQFdFQktJVF9DT05TT0xFX01FU1NB
R0VfU09VUkNFX05FVFdPUks6IE5ldHdvcmsgbWVzc2FnZXMuCisgKiBAV0VCS0lUX0NPTlNPTEVf
TUVTU0FHRV9TT1VSQ0VfQ09OU09MRV9BUEk6IE1lc3NhZ2VzIHByb2R1Y2VkIGJ5IGNvbnNvbGUg
QVBJLgorICogQFdFQktJVF9DT05TT0xFX01FU1NBR0VfU09VUkNFX1NFQ1VSSVRZOiBTZWN1cml0
eSBtZXNzYWdlcy4KKyAqIEBXRUJLSVRfQ09OU09MRV9NRVNTQUdFX1NPVVJDRV9PVEhFUjogT3Ro
ZXIgbWVzc2FnZXMuCisgKgorICogRW51bSB2YWx1ZXMgdXNlZCB0byBkZW5vdGUgdGhlIHZhcmlv
dXMgc291cmNlcyBvZiBjb25zb2xlIG1lc3NhZ2VzLgorICoKKyAqIFNpbmNlOiAyLjEyCisgKi8K
K3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX0NPTlNPTEVfTUVTU0FHRV9TT1VSQ0VfSkFWQVND
UklQVCwKKyAgICBXRUJLSVRfQ09OU09MRV9NRVNTQUdFX1NPVVJDRV9ORVRXT1JLLAorICAgIFdF
QktJVF9DT05TT0xFX01FU1NBR0VfU09VUkNFX0NPTlNPTEVfQVBJLAorICAgIFdFQktJVF9DT05T
T0xFX01FU1NBR0VfU09VUkNFX1NFQ1VSSVRZLAorICAgIFdFQktJVF9DT05TT0xFX01FU1NBR0Vf
U09VUkNFX09USEVSCit9IFdlYktpdENvbnNvbGVNZXNzYWdlU291cmNlOworCisvKioKKyAqIFdl
YktpdENvbnNvbGVNZXNzYWdlTGV2ZWw6CisgKiBAV0VCS0lUX0NPTlNPTEVfTUVTU0FHRV9MRVZF
TF9JTkZPOiBJbmZvcm1hdGlvbiBtZXNzYWdlLgorICogQFdFQktJVF9DT05TT0xFX01FU1NBR0Vf
TEVWRUxfTE9HOiBMb2cgbWVzc2FnZS4KKyAqIEBXRUJLSVRfQ09OU09MRV9NRVNTQUdFX0xFVkVM
X1dBUk5JTkc6IFdhcm5pbmcgbWVzc2FnZS4KKyAqIEBXRUJLSVRfQ09OU09MRV9NRVNTQUdFX0xF
VkVMX0VSUk9SOiBFcnJvciBtZXNzYWdlLgorICogQFdFQktJVF9DT05TT0xFX01FU1NBR0VfTEVW
RUxfREVCVUc6IERlYnVnIG1lc3NhZ2UuCisgKgorICogRW51bSB2YWx1ZXMgdXNlZCB0byBkZW5v
dGUgdGhlIHZhcmlvdXMgbGV2ZWxzIG9mIGNvbnNvbGUgbWVzc2FnZXMuCisgKgorICogU2luY2U6
IDIuMTIKKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRfQ09OU09MRV9NRVNTQUdFX0xF
VkVMX0lORk8sCisgICAgV0VCS0lUX0NPTlNPTEVfTUVTU0FHRV9MRVZFTF9MT0csCisgICAgV0VC
S0lUX0NPTlNPTEVfTUVTU0FHRV9MRVZFTF9XQVJOSU5HLAorICAgIFdFQktJVF9DT05TT0xFX01F
U1NBR0VfTEVWRUxfRVJST1IsCisgICAgV0VCS0lUX0NPTlNPTEVfTUVTU0FHRV9MRVZFTF9ERUJV
RworfSBXZWJLaXRDb25zb2xlTWVzc2FnZUxldmVsOworCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
Q29uc29sZU1lc3NhZ2UgV2ViS2l0Q29uc29sZU1lc3NhZ2U7CisKK1dFQktJVF9BUEkgR1R5cGUK
K3dlYmtpdF9jb25zb2xlX21lc3NhZ2VfZ2V0X3R5cGUgICAgICAodm9pZCk7CisKK1dFQktJVF9B
UEkgV2ViS2l0Q29uc29sZU1lc3NhZ2UgKgord2Via2l0X2NvbnNvbGVfbWVzc2FnZV9jb3B5ICAg
ICAgICAgIChXZWJLaXRDb25zb2xlTWVzc2FnZSAqY29uc29sZV9tZXNzYWdlKTsKKworV0VCS0lU
X0FQSSB2b2lkCit3ZWJraXRfY29uc29sZV9tZXNzYWdlX2ZyZWUgICAgICAgICAgKFdlYktpdENv
bnNvbGVNZXNzYWdlICpjb25zb2xlX21lc3NhZ2UpOworCitXRUJLSVRfQVBJIFdlYktpdENvbnNv
bGVNZXNzYWdlU291cmNlCit3ZWJraXRfY29uc29sZV9tZXNzYWdlX2dldF9zb3VyY2UgICAgKFdl
YktpdENvbnNvbGVNZXNzYWdlICpjb25zb2xlX21lc3NhZ2UpOworCitXRUJLSVRfQVBJIFdlYktp
dENvbnNvbGVNZXNzYWdlTGV2ZWwKK3dlYmtpdF9jb25zb2xlX21lc3NhZ2VfZ2V0X2xldmVsICAg
ICAoV2ViS2l0Q29uc29sZU1lc3NhZ2UgKmNvbnNvbGVfbWVzc2FnZSk7CisKK1dFQktJVF9BUEkg
Y29uc3QgZ2NoYXIgKgord2Via2l0X2NvbnNvbGVfbWVzc2FnZV9nZXRfdGV4dCAgICAgIChXZWJL
aXRDb25zb2xlTWVzc2FnZSAqY29uc29sZV9tZXNzYWdlKTsKKworV0VCS0lUX0FQSSBndWludAor
d2Via2l0X2NvbnNvbGVfbWVzc2FnZV9nZXRfbGluZSAgICAgIChXZWJLaXRDb25zb2xlTWVzc2Fn
ZSAqY29uc29sZV9tZXNzYWdlKTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRf
Y29uc29sZV9tZXNzYWdlX2dldF9zb3VyY2VfaWQgKFdlYktpdENvbnNvbGVNZXNzYWdlICpjb25z
b2xlX21lc3NhZ2UpOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5o
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2Vi
S2l0RnJhbWUuaApzaW1pbGFyaXR5IGluZGV4IDkzJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RnJhbWUuaC5pbgpyZW5h
bWUgdG8gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2Vi
S2l0RnJhbWUuaAppbmRleCBkODgxY2I0NWNiN2IuLjMxNTE1ZDFlMzM1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZy
YW1lLmguaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvV2ViS2l0RnJhbWUuaApAQCAtMTcsMjIgKzE3LDE5IEBACiAgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KICAqLwogCi1ASU5KRUNURURfQlVORExFX0FQSV9TSU5HTEVfSEVBREVS
X0NIRUNLQAorI2lmICFkZWZpbmVkKF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykg
JiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93
ZWJraXQtd2ViLWV4dGVuc2lvbi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlm
CiAKICNpZm5kZWYgV2ViS2l0RnJhbWVfaAogI2RlZmluZSBXZWJLaXRGcmFtZV9oCiAKKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Jhc2UuaD4KICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgog
I2luY2x1ZGUgPGpzYy9qc2MuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJL
aXREZWZpbmVzLmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0U2NyaXB0
V29ybGQuaD4KLQotI2lmIFBMQVRGT1JNKEdUSykKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U0Jhc2UuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdFNjcmlwdFdvcmxkLmg+CiAjaW5jbHVkZSA8d2Via2l0ZG9tL3dlYmtpdGRv
bS5oPgotI2VsaWYgUExBVEZPUk0oV1BFKQotI2luY2x1ZGUgPHdwZS93ZWJraXRkb20uaD4KLSNl
bmRpZgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTcwLDE0ICs2NywxMiBAQCB3ZWJraXRfZnJhbWVf
aXNfbWFpbl9mcmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUg
ICAgICAgKmZyYQogV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCiB3ZWJraXRfZnJhbWVfZ2V0X3Vy
aSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAg
KmZyYW1lKTsKIAotI2lmIFBMQVRGT1JNKEdUSykKIFdFQktJVF9ERVBSRUNBVEVEX0ZPUih3ZWJr
aXRfZnJhbWVfZ2V0X2pzX2NvbnRleHQpIEpTR2xvYmFsQ29udGV4dFJlZgogd2Via2l0X2ZyYW1l
X2dldF9qYXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0ICAgICAgICAgICAgICAgKFdlYktpdEZyYW1l
ICAgICAgICpmcmFtZSk7CiAKIFdFQktJVF9ERVBSRUNBVEVEX0ZPUih3ZWJraXRfZnJhbWVfZ2V0
X2pzX2NvbnRleHRfZm9yX3NjcmlwdF93b3JsZCkgSlNHbG9iYWxDb250ZXh0UmVmCiB3ZWJraXRf
ZnJhbWVfZ2V0X2phdmFzY3JpcHRfY29udGV4dF9mb3Jfc2NyaXB0X3dvcmxkICAgICAoV2ViS2l0
RnJhbWUgICAgICAgKmZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFNjcmlwdFdvcmxkICp3b3JsZCk7Ci0jZW5kaWYK
IAogV0VCS0lUX0FQSSBKU0NDb250ZXh0ICoKIHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvV2ViS2l0U2NyaXB0V29ybGQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFNjcmlwdFdvcmxkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi4yOTc4YTM5ZTRkNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRTY3JpcHRX
b3JsZC5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlh
IFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiwxIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5TSURFX18pICYm
ICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Vi
a2l0LXdlYi1leHRlbnNpb24uaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgor
CisjaWZuZGVmIFdlYktpdFNjcmlwdFdvcmxkX2gKKyNkZWZpbmUgV2ViS2l0U2NyaXB0V29ybGRf
aAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERl
ZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX1NDUklQVF9X
T1JMRCAgICAgICAgICAgICh3ZWJraXRfc2NyaXB0X3dvcmxkX2dldF90eXBlKCkpCisjZGVmaW5l
IFdFQktJVF9TQ1JJUFRfV09STEQob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFO
Q0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfU0NSSVBUX1dPUkxELCBXZWJLaXRTY3JpcHRXb3Js
ZCkpCisjZGVmaW5lIFdFQktJVF9JU19TQ1JJUFRfV09STEQob2JqKSAgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfU0NSSVBUX1dPUkxEKSkKKyNk
ZWZpbmUgV0VCS0lUX1NDUklQVF9XT1JMRF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19D
TEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9TQ1JJUFRfV09STEQsIFdlYktpdFNjcmlw
dFdvcmxkQ2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfU0NSSVBUX1dPUkxEX0NMQVNTKGtsYXNz
KSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1NDUklQVF9X
T1JMRCkpCisjZGVmaW5lIFdFQktJVF9TQ1JJUFRfV09STERfR0VUX0NMQVNTKG9iaikgIChHX1RZ
UEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfU0NSSVBUX1dPUkxELCBX
ZWJLaXRTY3JpcHRXb3JsZENsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFNjcmlwdFdv
cmxkICAgICAgICBXZWJLaXRTY3JpcHRXb3JsZDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRTY3Jp
cHRXb3JsZENsYXNzICAgV2ViS2l0U2NyaXB0V29ybGRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRTY3JpcHRXb3JsZFByaXZhdGUgV2ViS2l0U2NyaXB0V29ybGRQcml2YXRlOworCitzdHJ1
Y3QgX1dlYktpdFNjcmlwdFdvcmxkIHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIFdlYktp
dFNjcmlwdFdvcmxkUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0U2NyaXB0V29y
bGRDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKKworICAgIHZvaWQgKCpf
d2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkg
KHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAgIHZvaWQg
KCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Vi
a2l0X3NjcmlwdF93b3JsZF9nZXRfdHlwZSAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBXZWJL
aXRTY3JpcHRXb3JsZCAqCit3ZWJraXRfc2NyaXB0X3dvcmxkX2dldF9kZWZhdWx0ICAgKHZvaWQp
OworCitXRUJLSVRfQVBJIFdlYktpdFNjcmlwdFdvcmxkICoKK3dlYmtpdF9zY3JpcHRfd29ybGRf
bmV3ICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0U2NyaXB0V29ybGQgKgor
d2Via2l0X3NjcmlwdF93b3JsZF9uZXdfd2l0aF9uYW1lIChjb25zdCBjaGFyICAgICAgICAqbmFt
ZSk7CisKK1dFQktJVF9BUEkgY29uc3QgY2hhciAqCit3ZWJraXRfc2NyaXB0X3dvcmxkX2dldF9u
YW1lICAgICAgKFdlYktpdFNjcmlwdFdvcmxkICp3b3JsZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvV2ViS2l0V2ViRWRpdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFZGl0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLjIwNjA3MTUxZjEzZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkVk
aXRvci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgUmVkIEhh
dCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIsMSBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKSAm
JiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dl
YmtpdC13ZWItZXh0ZW5zaW9uLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYK
KworI2lmbmRlZiBXZWJLaXRXZWJFZGl0b3JfaAorI2RlZmluZSBXZWJLaXRXZWJFZGl0b3JfaAor
CisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmlu
ZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYlBhZ2UuaD4KKworR19CRUdJTl9ERUNM
UworCisjZGVmaW5lIFdFQktJVF9UWVBFX1dFQl9FRElUT1IgICAgICAgICAgICAgICAod2Via2l0
X3dlYl9lZGl0b3JfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1dFQl9FRElUT1Iob2JqKSAg
ICAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZ
UEVfV0VCX0VESVRPUiwgV2ViS2l0V2ViRWRpdG9yKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1dFQl9F
RElUT1Iob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwg
V0VCS0lUX1RZUEVfV0VCX0VESVRPUikpCisjZGVmaW5lIFdFQktJVF9XRUJfRURJVE9SX0NMQVNT
KGtsYXNzKSAgICAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9U
WVBFX1dFQl9FRElUT1IsIFdlYktpdFdlYkVkaXRvckNsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lT
X1dFQl9FRElUT1JfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xh
c3MpLCAgV0VCS0lUX1RZUEVfV0VCX0VESVRPUikpCisjZGVmaW5lIFdFQktJVF9XRUJfRURJVE9S
X0dFVF9DTEFTUyhvYmopICAgICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdF
QktJVF9UWVBFX1dFQl9FRElUT1IsIFdlYktpdFdlYkVkaXRvckNsYXNzKSkKKwordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdFdlYkVkaXRvciAgICAgICAgV2ViS2l0V2ViRWRpdG9yOwordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdFdlYkVkaXRvckNsYXNzICAgV2ViS2l0V2ViRWRpdG9yQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0V2ViRWRpdG9yUHJpdmF0ZSBXZWJLaXRXZWJFZGl0b3JQcml2YXRl
OworCisvKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAqLwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdl
YlBhZ2UgICAgICAgICAgV2ViS2l0V2ViUGFnZTsKKworc3RydWN0IF9XZWJLaXRXZWJFZGl0b3Ig
eworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgV2ViS2l0V2ViRWRpdG9yUHJpdmF0ZSAqcHJp
djsKK307CisKK3N0cnVjdCBfV2ViS2l0V2ViRWRpdG9yQ2xhc3MgeworICAgIEdPYmplY3RDbGFz
cyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfd2ViX2VkaXRv
cl9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0V2ViUGFnZSAqCit3ZWJraXRf
d2ViX2VkaXRvcl9nZXRfcGFnZSAoV2ViS2l0V2ViRWRpdG9yICplZGl0b3IpOworCitHX0VORF9E
RUNMUworCisjZW5kaWYgLyogV2ViS2l0V2ViRWRpdG9yX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVu
c2lvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
V2ViS2l0V2ViRXh0ZW5zaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi41NDIyZmU1N2YxYjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24uaApAQCAtMCww
ICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLDEgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFk
ZWZpbmVkKF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VC
S0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4dGVu
c2lvbi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2Vi
S2l0V2ViRXh0ZW5zaW9uX2gKKyNkZWZpbmUgV2ViS2l0V2ViRXh0ZW5zaW9uX2gKKworI2luY2x1
ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+Cisj
aW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVc2VyTWVzc2FnZS5oPgorI2luY2x1ZGUgPHdlYmtpdDIv
V2ViS2l0V2ViUGFnZS5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVf
V0VCX0VYVEVOU0lPTiAgICAgICAgICAgICh3ZWJraXRfd2ViX2V4dGVuc2lvbl9nZXRfdHlwZSgp
KQorI2RlZmluZSBXRUJLSVRfV0VCX0VYVEVOU0lPTihvYmopICAgICAgICAgICAgKEdfVFlQRV9D
SEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9XRUJfRVhURU5TSU9OLCBXZWJL
aXRXZWJFeHRlbnNpb24pKQorI2RlZmluZSBXRUJLSVRfSVNfV0VCX0VYVEVOU0lPTihvYmopICAg
ICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9XRUJf
RVhURU5TSU9OKSkKKyNkZWZpbmUgV0VCS0lUX1dFQl9FWFRFTlNJT05fQ0xBU1Moa2xhc3MpICAg
IChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfV0VCX0VYVEVO
U0lPTiwgV2ViS2l0V2ViRXh0ZW5zaW9uQ2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfV0VCX0VY
VEVOU0lPTl9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBX
RUJLSVRfVFlQRV9XRUJfRVhURU5TSU9OKSkKKyNkZWZpbmUgV0VCS0lUX1dFQl9FWFRFTlNJT05f
R0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lU
X1RZUEVfV0VCX0VYVEVOU0lPTiwgV2ViS2l0V2ViRXh0ZW5zaW9uQ2xhc3MpKQorCit0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0V2ViRXh0ZW5zaW9uICAgICAgICBXZWJLaXRXZWJFeHRlbnNpb247Cit0
eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViRXh0ZW5zaW9uQ2xhc3MgICBXZWJLaXRXZWJFeHRlbnNp
b25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJFeHRlbnNpb25Qcml2YXRlIFdlYktp
dFdlYkV4dGVuc2lvblByaXZhdGU7CisKKy8qKgorICogV2ViS2l0V2ViRXh0ZW5zaW9uSW5pdGlh
bGl6ZUZ1bmN0aW9uOgorICogQGV4dGVuc2lvbjogYSAjV2ViS2l0V2ViRXh0ZW5zaW9uCisgKgor
ICogVHlwZSBkZWZpbml0aW9uIGZvciBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgdG8g
aW5pdGlhbGl6ZQorICogdGhlIHdlYiBleHRlbnNpb24gd2hlbiB0aGUgd2ViIHByb2Nlc3Mgc3Rh
cnRzLgorICovCit0eXBlZGVmIHZvaWQgKCogV2ViS2l0V2ViRXh0ZW5zaW9uSW5pdGlhbGl6ZUZ1
bmN0aW9uKSAoV2ViS2l0V2ViRXh0ZW5zaW9uICpleHRlbnNpb24pOworCisvKioKKyAqIFdlYktp
dFdlYkV4dGVuc2lvbkluaXRpYWxpemVXaXRoVXNlckRhdGFGdW5jdGlvbjoKKyAqIEBleHRlbnNp
b246IGEgI1dlYktpdFdlYkV4dGVuc2lvbgorICogQHVzZXJfZGF0YTogYSAjR1ZhcmlhbnQKKyAq
CisgKiBUeXBlIGRlZmluaXRpb24gZm9yIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB0
byBpbml0aWFsaXplCisgKiB0aGUgd2ViIGV4dGVuc2lvbnMgd2hlbiB0aGUgd2ViIHByb2Nlc3Mg
c3RhcnRzLCBhbmQgd2hpY2ggcmVjZWl2ZXMKKyAqIGFzIGFkZGl0aW9uYWwgYXJndW1lbnQgdGhl
IHVzZXIgZGF0YSBzZXQgd2l0aAorICogd2Via2l0X3dlYl9jb250ZXh0X3NldF93ZWJfZXh0ZW5z
aW9uc19pbml0aWFsaXphdGlvbl91c2VyX2RhdGEoKS4KKyAqCisgKiBTaW5jZTogMi40CisgKi8K
K3R5cGVkZWYgdm9pZCAoKiBXZWJLaXRXZWJFeHRlbnNpb25Jbml0aWFsaXplV2l0aFVzZXJEYXRh
RnVuY3Rpb24pIChXZWJLaXRXZWJFeHRlbnNpb24gKmV4dGVuc2lvbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBHVmFyaWFudCAgICAgKnVzZXJfZGF0YSk7CisKK3N0cnVjdCBfV2ViS2l0V2ViRXh0ZW5zaW9u
IHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIFdlYktpdFdlYkV4dGVuc2lvblByaXZhdGUg
KnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdFdlYkV4dGVuc2lvbkNsYXNzIHsKKyAgICBHT2Jq
ZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3dl
Yl9leHRlbnNpb25fZ2V0X3R5cGUgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKKworV0VC
S0lUX0FQSSBXZWJLaXRXZWJQYWdlICoKK3dlYmtpdF93ZWJfZXh0ZW5zaW9uX2dldF9wYWdlICAg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViRXh0ZW5zaW9uICpleHRlbnNpb24sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50NjQg
ICAgICAgICAgICAgcGFnZV9pZCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl9leHRl
bnNpb25fc2VuZF9tZXNzYWdlX3RvX2NvbnRleHQgICAgICAgIChXZWJLaXRXZWJFeHRlbnNpb24g
KmV4dGVuc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViS2l0VXNlck1lc3NhZ2UgICptZXNzYWdlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2FuY2VsbGFibGUgICAgICAgKmNh
bmNlbGxhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHQXN5bmNSZWFkeUNhbGxiYWNrIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgICAgICAgIHVz
ZXJfZGF0YSk7CisKK1dFQktJVF9BUEkgV2ViS2l0VXNlck1lc3NhZ2UgKgord2Via2l0X3dlYl9l
eHRlbnNpb25fc2VuZF9tZXNzYWdlX3RvX2NvbnRleHRfZmluaXNoIChXZWJLaXRXZWJFeHRlbnNp
b24gKmV4dGVuc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0FzeW5jUmVzdWx0ICAgICAgICpyZXN1bHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICoq
ZXJyb3IpOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbkF1
dG9jbGVhbnVwcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44NDljN2RiNzYzNGUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJF
eHRlbnNpb25BdXRvY2xlYW51cHMuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9O
X0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9u
bHkgPHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVj
dGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdFdlYkV4dGVuc2lvbkF1dG9jbGVhbnVwc19o
CisjZGVmaW5lIFdlYktpdFdlYkV4dGVuc2lvbkF1dG9jbGVhbnVwc19oCisKKyNpZmRlZiBHX0RF
RklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQworI2lmbmRlZiBfX0dJX1NDQU5ORVJfXworCitHX0RF
RklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0RnJhbWUsIGdfb2JqZWN0X3VucmVmKQor
R19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFNjcmlwdFdvcmxkLCBnX29iamVj
dF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyTWVzc2Fn
ZSwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0
V2ViRWRpdG9yLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5D
IChXZWJLaXRXZWJFeHRlbnNpb24sIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMgKFdlYktpdFdlYkhpdFRlc3RSZXN1bHQsIGdfb2JqZWN0X3VucmVmKQorR19E
RUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFdlYlBhZ2UsIGdfb2JqZWN0X3VucmVm
KQorCisjZW5kaWYgLyogX19HSV9TQ0FOTkVSX18gKi8KKyNlbmRpZiAvKiBHX0RFRklORV9BVVRP
UFRSX0NMRUFOVVBfRlVOQyAqLworCisjZW5kaWYgLyogV2ViS2l0V2ViRXh0ZW5zaW9uQXV0b2Ns
ZWFudXBzX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkhpdFRlc3RSZXN1bHQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkhpdFRlc3RSZXN1bHQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhjZTg0N2Q4NzYxYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL1dlYktpdFdlYkhpdFRlc3RSZXN1bHQuaApAQCAtMCwwICsxLDY4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIsMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVRf
V0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9O
KQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmg+IGNhbiBiZSBp
bmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRXZWJIaXRUZXN0UmVz
dWx0X2gKKyNkZWZpbmUgV2ViS2l0V2ViSGl0VGVzdFJlc3VsdF9oCisKKyNpbmNsdWRlIDxnbGli
LW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUg
PHdlYmtpdDIvV2ViS2l0SGl0VGVzdFJlc3VsdC5oPgorI2luY2x1ZGUgPHdlYmtpdGRvbS93ZWJr
aXRkb20uaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX1dFQl9ISVRf
VEVTVF9SRVNVTFQgICAgICAgICAgICAod2Via2l0X3dlYl9oaXRfdGVzdF9yZXN1bHRfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1dFQl9ISVRfVEVTVF9SRVNVTFQob2JqKSAgICAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX0hJVF9U
RVNUX1JFU1VMVCwgV2ViS2l0V2ViSGl0VGVzdFJlc3VsdCkpCisjZGVmaW5lIFdFQktJVF9JU19X
RUJfSElUX1RFU1RfUkVTVUxUKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZ
UEUoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9ISVRfVEVTVF9SRVNVTFQpKQorI2RlZmluZSBXRUJL
SVRfV0VCX0hJVF9URVNUX1JFU1VMVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFT
U19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9XRUJfSElUX1RFU1RfUkVTVUxULCBXZWJLaXRX
ZWJIaXRUZXN0UmVzdWx0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfV0VCX0hJVF9URVNUX1JF
U1VMVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJL
SVRfVFlQRV9XRUJfSElUX1RFU1RfUkVTVUxUKSkKKyNkZWZpbmUgV0VCS0lUX1dFQl9ISVRfVEVT
VF9SRVNVTFRfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmop
LCAgV0VCS0lUX1RZUEVfV0VCX0hJVF9URVNUX1JFU1VMVCwgV2ViS2l0V2ViSGl0VGVzdFJlc3Vs
dENsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkhpdFRlc3RSZXN1bHQgICAgICAg
IFdlYktpdFdlYkhpdFRlc3RSZXN1bHQ7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViSGl0VGVz
dFJlc3VsdENsYXNzICAgV2ViS2l0V2ViSGl0VGVzdFJlc3VsdENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdFdlYkhpdFRlc3RSZXN1bHRQcml2YXRlIFdlYktpdFdlYkhpdFRlc3RSZXN1bHRQ
cml2YXRlOworCitzdHJ1Y3QgX1dlYktpdFdlYkhpdFRlc3RSZXN1bHQgeworICAgIFdlYktpdEhp
dFRlc3RSZXN1bHQgcGFyZW50OworCisgICAgV2ViS2l0V2ViSGl0VGVzdFJlc3VsdFByaXZhdGUg
KnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdFdlYkhpdFRlc3RSZXN1bHRDbGFzcyB7CisgICAg
V2ViS2l0SGl0VGVzdFJlc3VsdENsYXNzIHBhcmVudF9jbGFzczsKKworICAgIHZvaWQgKCpfd2Vi
a2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZv
aWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAgIHZvaWQgKCpf
d2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0
X3dlYl9oaXRfdGVzdF9yZXN1bHRfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktp
dERPTU5vZGUgKgord2Via2l0X3dlYl9oaXRfdGVzdF9yZXN1bHRfZ2V0X25vZGUgKFdlYktpdFdl
YkhpdFRlc3RSZXN1bHQgKmhpdF90ZXN0X3Jlc3VsdCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9nbGliL1dlYktpdFdlYlBhZ2UuaC5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuaApzaW1pbGFyaXR5IGluZGV4IDkyJQpy
ZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvV2ViS2l0V2ViUGFnZS5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmgKaW5kZXggYTAyMTFjOWMyMjUw
Li5iZWM1ZTU1YTY3YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmguaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5oCkBAIC0x
NywyMiArMTcsMTkgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLUBJ
TkpFQ1RFRF9CVU5ETEVfQVBJX1NJTkdMRV9IRUFERVJfQ0hFQ0tACisjaWYgIWRlZmluZWQoX19X
RUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJ
TEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmg+IGNh
biBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRXZWJQYWdl
X2gKICNkZWZpbmUgV2ViS2l0V2ViUGFnZV9oCiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgot
I2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERlZmluZXMuaD4KLSNpbmNsdWRl
IDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRGcmFtZS5oPgotI2luY2x1ZGUgPEBBUElfSU5D
TFVERV9QUkVGSVhAL1dlYktpdFVzZXJNZXNzYWdlLmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURF
X1BSRUZJWEAvV2ViS2l0V2ViRWRpdG9yLmg+Ci0KLSNpZiBQTEFURk9STShHVEspCisjaW5jbHVk
ZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGcmFt
ZS5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VXNlck1lc3NhZ2UuaD4KKyNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdFdlYkVkaXRvci5oPgogI2luY2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb20u
aD4KLSNlbGlmIFBMQVRGT1JNKFdQRSkKLSNpbmNsdWRlIDx3cGUvd2Via2l0ZG9tLmg+Ci0jZW5k
aWYKIAogR19CRUdJTl9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvd2Via2l0LXdlYi1leHRlbnNpb24uaC5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWIt
ZXh0ZW5zaW9uLmgKc2ltaWxhcml0eSBpbmRleCA1MiUKcmVuYW1lIGZyb20gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL3dlYmtpdC13ZWItZXh0ZW5zaW9u
LmguaW4KcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKaW5kZXggZTNiZjgyMTU5NDM0Li5iYzRiNDI0
MDA2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ2xpYi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgK
QEAgLTE3LDM4ICsxNywzMiBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8K
IAotI2lmIFBMQVRGT1JNKEdUSykKICNpZmRlZiBfX1dFQktJVF8yX0hfXwogI2Vycm9yICJIZWFk
ZXJzIDx3ZWJraXQyL3dlYmtpdDIuaD4gYW5kIDx3ZWJraXQyL3dlYmtpdC13ZWItZXh0ZW5zaW9u
Lmg+IGNhbm5vdCBiZSBpbmNsdWRlZCB0b2dldGhlci4iCiAjZW5kaWYKLSNlbGlmIFBMQVRGT1JN
KFdQRSkKLSNpZmRlZiBfX1dFQktJVF9IX18KLSNlcnJvciAiSGVhZGVycyA8d3BlL3dlYmtpdC5o
PiBhbmQgPHdwZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPiBjYW5ub3QgYmUgaW5jbHVkZWQgdG9n
ZXRoZXIuIgotI2VuZGlmCi0jZW5kaWYKIAogI2lmbmRlZiBfX1dFQktJVF9XRUJfRVhURU5TSU9O
X0hfXwogI2RlZmluZSBfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfXwogCiAjZGVmaW5lIF9fV0VC
S0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXwogCi0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BS
RUZJWEAvV2ViS2l0Q29uc29sZU1lc3NhZ2UuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJF
RklYQC9XZWJLaXRDb250ZXh0TWVudS5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhA
L1dlYktpdENvbnRleHRNZW51QWN0aW9ucy5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVG
SVhAL1dlYktpdENvbnRleHRNZW51SXRlbS5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVG
SVhAL1dlYktpdEZyYW1lLmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0
U2NyaXB0V29ybGQuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRVUklS
ZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0VVJJUmVzcG9u
c2UuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRVc2VyTWVzc2FnZS5o
PgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdFZlcnNpb24uaD4KLSNpbmNs
dWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRXZWJFZGl0b3IuaD4KLSNpbmNsdWRlIDxA
QVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRXZWJFeHRlbnNpb24uaD4KLSNpbmNsdWRlIDxAQVBJ
X0lOQ0xVREVfUFJFRklYQC9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0Lmg+Ci0jaW5jbHVkZSA8QEFQ
SV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0V2ViUGFnZS5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVE
RV9QUkVGSVhAL1dlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQy
L1dlYktpdENvbnNvbGVNZXNzYWdlLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRDb250ZXh0
TWVudS5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4dE1lbnVBY3Rpb25zLmg+Cisj
aW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaD4KKyNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdEZyYW1lLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRTY3JpcHRXb3JsZC5o
PgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0VVJJUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVzZXJNZXNz
YWdlLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRWZXJzaW9uLmg+CisjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRXZWJFZGl0b3IuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYkV4dGVu
c2lvbi5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViUGFnZS5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
V2ViUHJvY2Vzc0VudW1UeXBlcy5oPgogCi0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAv
V2ViS2l0V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJL
aXRXZWJFeHRlbnNpb25BdXRvY2xlYW51cHMuaD4KIAogI3VuZGVmIF9fV0VCS0lUX1dFQl9FWFRF
TlNJT05fSF9JTlNJREVfXwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0Q29uc29sZU1lc3NhZ2UuaC5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdENvbnNvbGVN
ZXNzYWdlLmgKc2ltaWxhcml0eSBpbmRleCA5NCUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdENvbnNvbGVNZXNzYWdlLmgu
aW4KcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlL1dlYktpdENvbnNvbGVNZXNzYWdlLmgKaW5kZXggMTEzYWUyNGVhNTczLi41MzAxYzVhOWZm
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ2xpYi9XZWJLaXRDb25zb2xlTWVzc2FnZS5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdENvbnNvbGVNZXNzYWdlLmgKQEAg
LTE3LDEzICsxNywxNSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAot
QElOSkVDVEVEX0JVTkRMRV9BUElfU0lOR0xFX0hFQURFUl9DSEVDS0AKKyNpZiAhZGVmaW5lZChf
X1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09N
UElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPiBjYW4g
YmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCiAKICNpZm5kZWYgV2ViS2l0Q29uc29sZU1l
c3NhZ2VfaAogI2RlZmluZSBXZWJLaXRDb25zb2xlTWVzc2FnZV9oCiAKICNpbmNsdWRlIDxnbGli
LW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdERlZmluZXMu
aD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3Bl
L1dlYktpdEZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL3dwZS9XZWJLaXRGcmFtZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uN2Q2MmM4ZDgxODU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0RnJhbWUuaApAQCAtMCwwICsxLDg3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIsMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQo
X19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NP
TVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0LXdlYi1leHRlbnNpb24uaD4gY2Fu
IGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdEZyYW1lX2gK
KyNkZWZpbmUgV2ViS2l0RnJhbWVfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNs
dWRlIDxqc2MvanNjLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRl
IDx3cGUvV2ViS2l0U2NyaXB0V29ybGQuaD4KKyNpbmNsdWRlIDx3cGUvd2Via2l0ZG9tLmg+CisK
K0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9GUkFNRSAgICAgICAgICAgICh3
ZWJraXRfZnJhbWVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0ZSQU1FKG9iaikgICAgICAg
ICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX0ZSQU1F
LCBXZWJLaXRGcmFtZSkpCisjZGVmaW5lIFdFQktJVF9JU19GUkFNRShvYmopICAgICAgICAgKEdf
VFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9GUkFNRSkpCisjZGVm
aW5lIFdFQktJVF9GUkFNRV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNU
KChrbGFzcyksICBXRUJLSVRfVFlQRV9GUkFNRSwgV2ViS2l0RnJhbWVDbGFzcykpCisjZGVmaW5l
IFdFQktJVF9JU19GUkFNRV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChr
bGFzcyksICBXRUJLSVRfVFlQRV9GUkFNRSkpCisjZGVmaW5lIFdFQktJVF9GUkFNRV9HRVRfQ0xB
U1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9G
UkFNRSwgV2ViS2l0RnJhbWVDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRGcmFtZSAg
ICAgICAgV2ViS2l0RnJhbWU7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RnJhbWVDbGFzcyAgIFdl
YktpdEZyYW1lQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RnJhbWVQcml2YXRlIFdlYktp
dEZyYW1lUHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRGcmFtZSB7CisgICAgR09iamVjdCBwYXJl
bnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRGcmFtZVByaXZhdGUgKnByaXY7
Cit9OworCitzdHJ1Y3QgX1dlYktpdEZyYW1lQ2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJl
bnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfZnJhbWVfZ2V0X3R5cGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkg
Z3VpbnQ2NAord2Via2l0X2ZyYW1lX2dldF9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7CisKK1dFQktJVF9BUEkgZ2Jvb2xl
YW4KK3dlYmtpdF9mcmFtZV9pc19tYWluX2ZyYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFy
ICoKK3dlYmtpdF9mcmFtZV9nZXRfdXJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOworCitXRUJLSVRfQVBJIEpTQ0NvbnRleHQg
Kgord2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7CisKK1dFQktJVF9BUEkgSlNDQ29udGV4dCAq
Cit3ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHRfZm9yX3NjcmlwdF93b3JsZCAgICAgICAgICAg
ICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFNjcmlwdFdvcmxkICp3b3JsZCk7
CisKK1dFQktJVF9BUEkgSlNDVmFsdWUgKgord2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3Jf
ZG9tX29iamVjdCAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJLaXRET01PYmplY3QgICAqZG9tX29iamVjdCk7CisKK1dFQktJVF9BUEkgSlNDVmFsdWUgKgor
d2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdF9pbl9zY3JpcHRfd29ybGQg
KFdlYktpdEZyYW1lICAgICAgICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRET01PYmplY3QgICAqZG9tX29iamVj
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJLaXRTY3JpcHRXb3JsZCAqd29ybGQpOworCitHX0VORF9ERUNMUworCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z2xpYi9XZWJLaXRTY3JpcHRXb3JsZC5oLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0U2NyaXB0V29ybGQuaApzaW1pbGFyaXR5IGluZGV4
IDkzJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvV2ViS2l0U2NyaXB0V29ybGQuaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0U2NyaXB0V29ybGQuaAppbmRl
eCA4OWY5MGNhZmRjYzIuLjk2NDVjNGM1NDM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFNjcmlwdFdvcmxkLmguaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2Vi
S2l0U2NyaXB0V29ybGQuaApAQCAtMTcsMTMgKzE3LDE1IEBACiAgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KICAqLwogCi1ASU5KRUNURURfQlVORExFX0FQSV9TSU5HTEVfSEVBREVSX0NI
RUNLQAorI2lmICFkZWZpbmVkKF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykgJiYg
IWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC13
ZWItZXh0ZW5zaW9uLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lm
bmRlZiBXZWJLaXRTY3JpcHRXb3JsZF9oCiAjZGVmaW5lIFdlYktpdFNjcmlwdFdvcmxkX2gKIAog
I2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAv
V2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CiAKIEdfQkVH
SU5fREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYkVkaXRvci5oLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViRWRpdG9yLmgKc2ltaWxhcml0
eSBpbmRleCA5MCUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYkVkaXRvci5oLmluCnJlbmFtZSB0byBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJFZGl0b3IuaApp
bmRleCAwMDVjYzhmNjIzZTkuLjA1YTQxNDk4ZjFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYkVkaXRvci5oLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dl
YktpdFdlYkVkaXRvci5oCkBAIC0xNywxNCArMTcsMTYgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgogICovCiAKLUBJTkpFQ1RFRF9CVU5ETEVfQVBJX1NJTkdMRV9IRUFERVJfQ0hF
Q0tACisjaWYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKSAmJiAh
ZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDxhcGUvd2Via2l0LXdl
Yi1leHRlbnNpb24uaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgogCiAjaWZu
ZGVmIFdlYktpdFdlYkVkaXRvcl9oCiAjZGVmaW5lIFdlYktpdFdlYkVkaXRvcl9oCiAKICNpbmNs
dWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktp
dERlZmluZXMuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRXZWJQYWdl
Lmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0
V2ViUGFnZS5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJFeHRlbnNpb24uaC5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktp
dFdlYkV4dGVuc2lvbi5oCnNpbWlsYXJpdHkgaW5kZXggOTMlCnJlbmFtZSBmcm9tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJFeHRlbnNp
b24uaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS93cGUvV2ViS2l0V2ViRXh0ZW5zaW9uLmgKaW5kZXggODk2MWYzNTFkODliLi4wOWFlZTM4
Y2RjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ2xpYi9XZWJLaXRXZWJFeHRlbnNpb24uaC5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJFeHRlbnNpb24uaApAQCAt
MTcsMTUgKzE3LDE3IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi1A
SU5KRUNURURfQlVORExFX0FQSV9TSU5HTEVfSEVBREVSX0NIRUNLQAorI2lmICFkZWZpbmVkKF9f
V0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01Q
SUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmg+IGNhbiBi
ZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKIAogI2lmbmRlZiBXZWJLaXRXZWJFeHRlbnNp
b25faAogI2RlZmluZSBXZWJLaXRXZWJFeHRlbnNpb25faAogCiAjaW5jbHVkZSA8Z2xpYi1vYmpl
Y3QuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXREZWZpbmVzLmg+Ci0j
aW5jbHVkZSA8QEFQSV9JTkNMVURFX1BSRUZJWEAvV2ViS2l0VXNlck1lc3NhZ2UuaD4KLSNpbmNs
dWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRXZWJQYWdlLmg+CisjaW5jbHVkZSA8d3Bl
L1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0VXNlck1lc3NhZ2UuaD4KKyNp
bmNsdWRlIDx3cGUvV2ViS2l0V2ViUGFnZS5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJL
aXRXZWJFeHRlbnNpb25BdXRvY2xlYW51cHMuaC5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdlYkV4dGVuc2lvbkF1dG9jbGVhbnVwcy5o
CnNpbWlsYXJpdHkgaW5kZXggOTAlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJFeHRlbnNpb25BdXRvY2xlYW51cHMu
aC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS93cGUvV2ViS2l0V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzLmgKaW5kZXggNWE2NjI3YmIwNjk2
Li40YzRkNzg0NDU5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJFeHRlbnNpb25BdXRvY2xlYW51cHMuaC5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJL
aXRXZWJFeHRlbnNpb25BdXRvY2xlYW51cHMuaApAQCAtMTcsNyArMTcsOSBAQAogICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAotQElOSkVDVEVEX0JVTkRMRV9BUElfU0lOR0xF
X0hFQURFUl9DSEVDS0AKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5T
SURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdw
ZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2Vu
ZGlmCiAKICNpZm5kZWYgV2ViS2l0V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzX2gKICNkZWZpbmUg
V2ViS2l0V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJIaXRUZXN0UmVz
dWx0LmguaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dw
ZS9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0LmgKc2ltaWxhcml0eSBpbmRleCA5MSUKcmVuYW1lIGZy
b20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktp
dFdlYkhpdFRlc3RSZXN1bHQuaC5pbgpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5oCmluZGV4IGUy
MzYyYjZjMTk2OC4uZmM0M2IyNWE4Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5oLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dl
YktpdFdlYkhpdFRlc3RSZXN1bHQuaApAQCAtMTcsMjAgKzE3LDE3IEBACiAgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi1ASU5KRUNURURfQlVORExFX0FQSV9TSU5HTEVfSEVB
REVSX0NIRUNLQAorI2lmICFkZWZpbmVkKF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVf
XykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dl
YmtpdC13ZWItZXh0ZW5zaW9uLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYK
IAogI2lmbmRlZiBXZWJLaXRXZWJIaXRUZXN0UmVzdWx0X2gKICNkZWZpbmUgV2ViS2l0V2ViSGl0
VGVzdFJlc3VsdF9oCiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPEBBUElf
SU5DTFVERV9QUkVGSVhAL1dlYktpdERlZmluZXMuaD4KLSNpbmNsdWRlIDxAQVBJX0lOQ0xVREVf
UFJFRklYQC9XZWJLaXRIaXRUZXN0UmVzdWx0Lmg+Ci0KLSNpZiBQTEFURk9STShHVEspCi0jaW5j
bHVkZSA8d2Via2l0ZG9tL3dlYmtpdGRvbS5oPgotI2VsaWYgUExBVEZPUk0oV1BFKQorI2luY2x1
ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdEhpdFRlc3RSZXN1
bHQuaD4KICNpbmNsdWRlIDx3cGUvd2Via2l0ZG9tLmg+Ci0jZW5kaWYKIAogR19CRUdJTl9ERUNM
UwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL3dwZS9XZWJLaXRXZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi4zYTdiZDczMTAwYzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQYWdlLmgK
QEAgLTAsMCArMSwxMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiwxIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5TSURFX18pICYmICFkZWZp
bmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQtd2ViLWV4
dGVuc2lvbi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYg
V2ViS2l0V2ViUGFnZV9oCisjZGVmaW5lIFdlYktpdFdlYlBhZ2VfaAorCisjaW5jbHVkZSA8Z2xp
Yi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdw
ZS9XZWJLaXRGcmFtZS5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRVc2VyTWVzc2FnZS5oPgorI2lu
Y2x1ZGUgPHdwZS9XZWJLaXRXZWJFZGl0b3IuaD4KKyNpbmNsdWRlIDx3cGUvd2Via2l0ZG9tLmg+
CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9XRUJfUEFHRSAgICAgICAg
ICAgICh3ZWJraXRfd2ViX3BhZ2VfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1dFQl9QQUdF
KG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJ
VF9UWVBFX1dFQl9QQUdFLCBXZWJLaXRXZWJQYWdlKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1dFQl9Q
QUdFKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJ
VF9UWVBFX1dFQl9QQUdFKSkKKyNkZWZpbmUgV0VCS0lUX1dFQl9QQUdFX0NMQVNTKGtsYXNzKSAg
ICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQl9QQUdF
LCBXZWJLaXRXZWJQYWdlQ2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfV0VCX1BBR0VfQ0xBU1Mo
a2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfV0VC
X1BBR0UpKQorI2RlZmluZSBXRUJLSVRfV0VCX1BBR0VfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVf
SU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfV0VCX1BBR0UsIFdlYktpdFdl
YlBhZ2VDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJQYWdlICAgICAgICBXZWJL
aXRXZWJQYWdlOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlBhZ2VDbGFzcyAgIFdlYktpdFdl
YlBhZ2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJQYWdlUHJpdmF0ZSBXZWJLaXRX
ZWJQYWdlUHJpdmF0ZTsKKworLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgKi8KK3R5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRXZWJFZGl0b3IgICAgICBXZWJLaXRXZWJFZGl0b3I7CisKKy8qKgorICogV2Vi
S2l0Rm9ybVN1Ym1pc3Npb25TdGVwOgorICogQFdFQktJVF9GT1JNX1NVQk1JU1NJT05fV0lMTF9T
RU5EX0RPTV9FVkVOVDogaW5kaWNhdGVzIHRoZSBmb3JtJ3MKKyAqIERPTSBzdWJtaXQgZXZlbnQg
aXMgYWJvdXQgdG8gYmUgZW1pdHRlZC4KKyAqIEBXRUJLSVRfRk9STV9TVUJNSVNTSU9OX1dJTExf
Q09NUExFVEU6IGluZGljYXRlcyB0aGUgZm9ybSBpcyBhYm91dAorICogdG8gYmUgc3VibWl0dGVk
LgorICoKKyAqIFVzZWQgdG8gaW5kaWNhdGUgYSBwYXJ0aWN1bGFyIHN0YWdlIGluIGZvcm0gc3Vi
bWlzc2lvbi4gU2VlCisgKiAjV2ViS2l0V2ViUGFnZTo6d2lsbC1zdWJtaXQtZm9ybS4KKyAqLwor
dHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRfRk9STV9TVUJNSVNTSU9OX1dJTExfU0VORF9ET01f
RVZFTlQsCisgICAgV0VCS0lUX0ZPUk1fU1VCTUlTU0lPTl9XSUxMX0NPTVBMRVRFLAorfSBXZWJL
aXRGb3JtU3VibWlzc2lvblN0ZXA7CisKK3N0cnVjdCBfV2ViS2l0V2ViUGFnZSB7CisgICAgR09i
amVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRXZWJQYWdlUHJp
dmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0V2ViUGFnZUNsYXNzIHsKKyAgICBHT2Jq
ZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3dl
Yl9wYWdlX2dldF90eXBlICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkg
V2ViS2l0RE9NRG9jdW1lbnQgKgord2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQgICAg
ICAgICAgICAoV2ViS2l0V2ViUGFnZSAqd2ViX3BhZ2UpOworCitXRUJLSVRfQVBJIGd1aW50NjQK
K3dlYmtpdF93ZWJfcGFnZV9nZXRfaWQgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlBh
Z2UgKndlYl9wYWdlKTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfd2ViX3Bh
Z2VfZ2V0X3VyaSAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJQYWdlICp3ZWJfcGFnZSk7
CisKK1dFQktJVF9BUEkgV2ViS2l0RnJhbWUgKgord2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2Zy
YW1lICAgICAgICAgICAgICAoV2ViS2l0V2ViUGFnZSAqd2ViX3BhZ2UpOworCitXRUJLSVRfQVBJ
IFdlYktpdFdlYkVkaXRvciAqCit3ZWJraXRfd2ViX3BhZ2VfZ2V0X2VkaXRvciAgICAgICAgICAg
ICAgICAgIChXZWJLaXRXZWJQYWdlICp3ZWJfcGFnZSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X3dlYl9wYWdlX3NlbmRfbWVzc2FnZV90b192aWV3ICAgICAgICAoV2ViS2l0V2ViUGFnZSAg
ICAgICp3ZWJfcGFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYktpdFVzZXJNZXNzYWdlICAqbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdDYW5jZWxsYWJsZSAgICAgICAqY2FuY2VsbGFibGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZWFkeUNh
bGxiYWNrIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ3BvaW50ZXIgICAgICAgICAgICB1c2VyX2RhdGEpOworCitXRUJLSVRfQVBJIFdlYktp
dFVzZXJNZXNzYWdlICoKK3dlYmtpdF93ZWJfcGFnZV9zZW5kX21lc3NhZ2VfdG9fdmlld19maW5p
c2ggKFdlYktpdFdlYlBhZ2UgICAgICAqd2ViX3BhZ2UsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgICAgICAgKnJlc3VsdCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAg
ICoqZXJyb3IpOworCisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvd2Via2l0LXdlYi1leHRl
bnNpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3Bl
L3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi5kNWQzMzU0ZjMyM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCkBA
IC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiwxIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
ZmRlZiBfX1dFQktJVF9IX18KKyNlcnJvciAiSGVhZGVycyA8d3BlL3dlYmtpdC5oPiBhbmQgPHdw
ZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPiBjYW5ub3QgYmUgaW5jbHVkZWQgdG9nZXRoZXIuIgor
I2VuZGlmCisKKyNpZm5kZWYgX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX18KKyNkZWZpbmUgX19X
RUJLSVRfV0VCX0VYVEVOU0lPTl9IX18KKworI2RlZmluZSBfX1dFQktJVF9XRUJfRVhURU5TSU9O
X0hfSU5TSURFX18KKworI2luY2x1ZGUgPHdwZS9XZWJLaXRDb25zb2xlTWVzc2FnZS5oPgorI2lu
Y2x1ZGUgPHdwZS9XZWJLaXRDb250ZXh0TWVudS5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRDb250
ZXh0TWVudUFjdGlvbnMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmg+
CisjaW5jbHVkZSA8d3BlL1dlYktpdEZyYW1lLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdFNjcmlw
dFdvcmxkLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3
cGUvV2ViS2l0VVJJUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0VXNlck1lc3NhZ2Uu
aD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0V2ViRWRpdG9yLmg+CisjaW5jbHVkZSA8d3BlL1dlYktp
dFdlYkV4dGVuc2lvbi5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0Lmg+
CisjaW5jbHVkZSA8d3BlL1dlYktpdFdlYlBhZ2UuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0V2Vi
UHJvY2Vzc0VudW1UeXBlcy5oPgorCisjaW5jbHVkZSA8d3BlL1dlYktpdFdlYkV4dGVuc2lvbkF1
dG9jbGVhbnVwcy5oPgorCisjdW5kZWYgX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9f
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IGIy
MmFlNzU1ODFmOS4uMDdiMjhmMzk2N2EwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2VyLnB5CkBAIC0yNjAsNiArMjYwLDcgQEAgX1BBVEhfUlVMRVNfU1BFQ0lGSUVSID0gWwog
CiAgICAgIyBGb3IgdGhpcmQtcGFydHkgY29kZSwga2VlcCBvbmx5IHRoZSBmb2xsb3dpbmcgY2hl
Y2tzLS0KICAgICAjCisgICAgIyAgIE5vIHRhYnM6IHRvIGF2b2lkIGhhdmluZyB0byBzZXQgdGhl
IFNWTiBhbGxvdy10YWJzIHByb3BlcnR5LgogICAgICMgICBObyB0cmFpbGluZyB3aGl0ZSBzcGFj
ZTogc2luY2UgdGhpcyBpcyBlYXN5IHRvIGNvcnJlY3QuCiAgICAgIyAgIE5vIGNhcnJpYWdlLXJl
dHVybiBsaW5lIGVuZGluZ3M6IHNpbmNlIHRoaXMgaXMgZWFzeSB0byBjb3JyZWN0LgogICAgICMK
QEAgLTI2OCwxMCArMjY5LDEwIEBAIF9QQVRIX1JVTEVTX1NQRUNJRklFUiA9IFsKICAgICAgIG9z
LnBhdGguam9pbignU291cmNlJywgJ1RoaXJkUGFydHknLCAnQU5HTEUnKSwKICAgICAgIG9zLnBh
dGguam9pbignU291cmNlJywgJ1RoaXJkUGFydHknLCAnbGlid2VicnRjJyksCiAgICAgICBvcy5w
YXRoLmpvaW4oJ1NvdXJjZScsICdUaGlyZFBhcnR5JywgJ29wZW52cicpLAotICAgICAgb3MucGF0
aC5qb2luKCdTb3VyY2UnLCAnVGhpcmRQYXJ0eScsICd1bmlmZGVmJyksCiAgICAgICBvcy5wYXRo
LmpvaW4oJ1NvdXJjZScsICdUaGlyZFBhcnR5JywgJ3hkZ21pbWUnKSwKICAgICAgIG9zLnBhdGgu
am9pbignVG9vbHMnLCAnV2ViR1BVQVBJU3RydWN0dXJlJyldLAogICAgICBbIi0iLAorICAgICAg
IitwZXA4L1cxOTEiLCAgIyBUYWJzCiAgICAgICAiK3BlcDgvVzI5MSIsICAjIFRyYWlsaW5nIHdo
aXRlIHNwYWNlCiAgICAgICAiK3doaXRlc3BhY2UvY2FycmlhZ2VfcmV0dXJuIl0pLAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>