<?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>145799</bug_id>
          
          <creation_ts>2015-06-09 06:27:31 -0700</creation_ts>
          <short_desc>[GLib] Move files under Source/WTF/wtf/gobject to Source/WTF/wtf/glib</short_desc>
          <delta_ts>2015-06-12 06:32:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1100638</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-06-09 06:27:31 -0700</bug_when>
    <thetext>[GLib] Move files under Source/WTF/wtf/gobject to Source/WTF/wtf/glib</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100643</commentid>
    <comment_count>1</comment_count>
      <attachid>254565</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-06-09 06:54:40 -0700</bug_when>
    <thetext>Created attachment 254565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100644</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-09 06:57:59 -0700</bug_when>
    <thetext>Attachment 254565 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:48:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:216:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:232:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:293:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:361:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:442:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:446:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:531:  Extra space before ( in function call  [whitespace/parens] [4]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/WebKitColorChooser.h&quot;
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:100:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:117:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:134:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:169:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:186:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:203:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:220:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:266:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:283:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GThreadSafeMainLoopSource.cpp:63:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GThreadSafeMainLoopSource.cpp:70:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GThreadSafeMainLoopSource.cpp:77:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GThreadSafeMainLoopSource.cpp:84:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GThreadSafeMainLoopSource.cpp:91:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GThreadSafeMainLoopSource.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.h:96:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.h:97:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.h:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.h:99:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GTypedefs.h:34:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WTF/wtf/glib/GRefPtr.h:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/wtf/glib/GRefPtr.h:48:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/glib/GRefPtr.h:71:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/glib/GRefPtr.h:89:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/glib/GRefPtr.h:102:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/glib/GRefPtr.h:126:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/glib/GRefPtr.h:126:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 35 in 208 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100986</commentid>
    <comment_count>3</comment_count>
      <attachid>254645</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-06-10 04:09:21 -0700</bug_when>
    <thetext>Created attachment 254645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100987</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-10 04:13:06 -0700</bug_when>
    <thetext>Attachment 254645 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:48:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:216:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:232:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:293:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:361:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:442:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:446:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:531:  Extra space before ( in function call  [whitespace/parens] [4]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/WebKitColorChooser.h&quot;
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:100:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:117:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:134:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:169:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:186:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:203:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:220:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:266:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.cpp:283:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GThreadSafeMainLoopSource.cpp:63:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GThreadSafeMainLoopSource.cpp:70:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GThreadSafeMainLoopSource.cpp:77:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GThreadSafeMainLoopSource.cpp:84:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GThreadSafeMainLoopSource.cpp:91:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GThreadSafeMainLoopSource.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.h:96:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.h:97:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.h:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GMainLoopSource.h:99:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/glib/GTypedefs.h:34:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WTF/wtf/glib/GRefPtr.h:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/wtf/glib/GRefPtr.h:48:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/glib/GRefPtr.h:71:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/glib/GRefPtr.h:89:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/glib/GRefPtr.h:102:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/glib/GRefPtr.h:126:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/glib/GRefPtr.h:126:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 35 in 209 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100996</commentid>
    <comment_count>5</comment_count>
      <attachid>254645</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-06-10 05:38:12 -0700</bug_when>
    <thetext>Comment on attachment 254645
Patch

This makes a lot of sense, thanks! Blindly review, since this is just moving existing code, I trust you and EWS :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101543</commentid>
    <comment_count>6</comment_count>
      <attachid>254645</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-12 04:18:28 -0700</bug_when>
    <thetext>Comment on attachment 254645
Patch

Rejecting attachment 254645 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 254645, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
ing file Tools/WebKitTestRunner/InjectedBundle/gtk/InjectedBundleUtilities.cpp
patching file Tools/WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp
patching file Tools/WebKitTestRunner/PlatformGTK.cmake
patching file Tools/WebKitTestRunner/gtk/EventSenderProxyGtk.cpp
patching file Tools/WebKitTestRunner/gtk/TestControllerGtk.cpp

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Carlos Garcia Campos&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/5973668677025792</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101577</commentid>
    <comment_count>7</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-06-12 06:32:41 -0700</bug_when>
    <thetext>Committed r185502: &lt;http://trac.webkit.org/changeset/185502&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254565</attachid>
            <date>2015-06-09 06:54:40 -0700</date>
            <delta_ts>2015-06-10 04:09:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145799-20150609065833.patch</filename>
            <type>text/plain</type>
            <size>315168</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDlmNDM3NmM5NGE5OGMwYTk0NDNjYjBi
MzAzNjFkMDFkYzA1NTUxYjMuLmRlNjVmZGRjNGJmMDA2MTJkNDFlM2Y2YzI1M2M5NmU2NjExMDAw
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAzIEBACisyMDE1LTA2LTA5ICBaYW4gRG9iZXJzZWsgIDx6ZG9i
ZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0xpYl0gTW92ZSBmaWxlcyB1bmRlciBTb3Vy
Y2UvV1RGL3d0Zi9nb2JqZWN0IHRvIFNvdXJjZS9XVEYvd3RmL2dsaWIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTc5OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIEdMaWItc3BlY2lmaWMg
ZmlsZXMgdG8gdGhlIFNvdXJjZS9XVEYvd3RmL2dsaWIvIGRpcmVjdG9yeS4KKyAgICAgICAgJ2dv
YmplY3QnIHdhc24ndCB0aGUgbW9zdCBhcHByb3ByaWF0ZSBuYW1lIGZvciB0aGUgZGlyZWN0b3J5
IHNpbmNlCisgICAgICAgIEdPYmplY3QgaXMgYSBzdWJtb2R1bGUgb2YgR0xpYiwgYnV0IGEgbG90
IG9mIHRoZSBjb2RlIHRoZXJlIGRpZG4ndAorICAgICAgICBoYXZlIG11Y2ggdG8gZG8gd2l0aCBH
T2JqZWN0IHNwZWNpZmljYWxseS4KKworICAgICAgICBCdWlsZCBydWxlcyBmb3IgdGhlIG1vdmVk
IGZpbGVzIGFyZSBhbHNvIHVwZGF0ZWQuCisKKyAgICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4
cHJvajoKKyAgICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzOgorICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVmbC5jbWFrZToKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogd3RmL1J1bkxvb3AuaDoK
KyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmg6CisgICAgICAgICogd3RmL2dsaWIvR0xpYlV0aWxp
dGllcy5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dsaWJVdGlsaXRp
ZXMuY3BwLgorICAgICAgICAoZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKToKKyAgICAgICAgKiB3
dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9nb2Jq
ZWN0L0dsaWJVdGlsaXRpZXMuaC4KKyAgICAgICAgKiB3dGYvZ2xpYi9HTWFpbkxvb3BTb3VyY2Uu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2Uu
Y3BwLgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChX
VEY6OkdNYWluTG9vcFNvdXJjZTo6R01haW5Mb29wU291cmNlKToKKyAgICAgICAgKFdURjo6R01h
aW5Mb29wU291cmNlOjp+R01haW5Mb29wU291cmNlKToKKyAgICAgICAgKFdURjo6R01haW5Mb29w
U291cmNlOjppc1NjaGVkdWxlZCk6CisgICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6aXNB
Y3RpdmUpOgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BTb3VyY2U6OmNhbmNlbCk6CisgICAgICAg
IChXVEY6OkdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVJZGxlU291cmNlKToKKyAgICAgICAgKFdU
Rjo6R01haW5Mb29wU291cmNlOjpzY2hlZHVsZSk6CisgICAgICAgIChXVEY6OkdNYWluTG9vcFNv
dXJjZTo6c2NoZWR1bGVUaW1lb3V0U291cmNlKToKKyAgICAgICAgKFdURjo6R01haW5Mb29wU291
cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkpOgorICAgICAgICAoV1RGOjpjcmVhdGVNaWNyb3NlY29u
ZHNUaW1lb3V0U291cmNlKToKKyAgICAgICAgKFdURjo6R01haW5Mb29wU291cmNlOjpzY2hlZHVs
ZUFuZERlbGV0ZU9uRGVzdHJveSk6CisgICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6c2No
ZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KToKKyAgICAgICAgKFdURjo6R01haW5M
b29wU291cmNlOjpwcmVwYXJlVm9pZENhbGxiYWNrKToKKyAgICAgICAgKFdURjo6R01haW5Mb29w
U291cmNlOjpmaW5pc2hWb2lkQ2FsbGJhY2spOgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BTb3Vy
Y2U6OnZvaWRDYWxsYmFjayk6CisgICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6cHJlcGFy
ZUJvb2xDYWxsYmFjayk6CisgICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6ZmluaXNoQm9v
bENhbGxiYWNrKToKKyAgICAgICAgKFdURjo6R01haW5Mb29wU291cmNlOjpib29sQ2FsbGJhY2sp
OgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BTb3VyY2U6OnNvY2tldENhbGxiYWNrKToKKyAgICAg
ICAgKFdURjo6R01haW5Mb29wU291cmNlOjp2b2lkU291cmNlQ2FsbGJhY2spOgorICAgICAgICAo
V1RGOjpHTWFpbkxvb3BTb3VyY2U6OmJvb2xTb3VyY2VDYWxsYmFjayk6CisgICAgICAgIChXVEY6
OkdNYWluTG9vcFNvdXJjZTo6c29ja2V0U291cmNlQ2FsbGJhY2spOgorICAgICAgICAoV1RGOjpH
TWFpbkxvb3BTb3VyY2U6OkNvbnRleHQ6OmRlc3Ryb3lTb3VyY2UpOgorICAgICAgICAqIHd0Zi9n
bGliL0dNYWluTG9vcFNvdXJjZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvZ29iamVj
dC9HTWFpbkxvb3BTb3VyY2UuaC4KKyAgICAgICAgKFdURjo6R01haW5Mb29wU291cmNlOjpDb250
ZXh0OjpvcGVyYXRvcj0pOgorICAgICAgICAqIHd0Zi9nbGliL0dNdXRleExvY2tlci5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dURi93dGYvZ29iamVjdC9HTXV0ZXhMb2NrZXIuaC4KKyAgICAgICAg
KFdURjo6TXV0ZXhXcmFwcGVyPEdNdXRleD46OmxvY2spOgorICAgICAgICAoV1RGOjpNdXRleFdy
YXBwZXI8R011dGV4Pjo6dW5sb2NrKToKKyAgICAgICAgKFdURjo6TXV0ZXhXcmFwcGVyPEdSZWNN
dXRleD46OmxvY2spOgorICAgICAgICAoV1RGOjpNdXRleFdyYXBwZXI8R1JlY011dGV4Pjo6dW5s
b2NrKToKKyAgICAgICAgKFdURjo6R011dGV4TG9ja2VyOjpHTXV0ZXhMb2NrZXIpOgorICAgICAg
ICAoV1RGOjpHTXV0ZXhMb2NrZXI6On5HTXV0ZXhMb2NrZXIpOgorICAgICAgICAoV1RGOjpHTXV0
ZXhMb2NrZXI6OmxvY2spOgorICAgICAgICAoV1RGOjpHTXV0ZXhMb2NrZXI6OnVubG9jayk6Cisg
ICAgICAgICogd3RmL2dsaWIvR1JlZlB0ci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0
Zi9nb2JqZWN0L0dSZWZQdHIuY3BwLgorICAgICAgICAoV1RGOjpyZWZHUHRyKToKKyAgICAgICAg
KFdURjo6ZGVyZWZHUHRyKToKKyAgICAgICAgKiB3dGYvZ2xpYi9HUmVmUHRyLmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dSZWZQdHIuaC4KKyAgICAgICAgKFdURjo6R1Jl
ZlB0cjo6R1JlZlB0cik6CisgICAgICAgIChXVEY6OkdSZWZQdHI6On5HUmVmUHRyKToKKyAgICAg
ICAgKFdURjo6R1JlZlB0cjo6Y2xlYXIpOgorICAgICAgICAoV1RGOjpHUmVmUHRyOjpvdXRQdHIp
OgorICAgICAgICAoV1RGOjpHUmVmUHRyOjppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSk6CisgICAg
ICAgIChXVEY6OkdSZWZQdHI6OmdldCk6CisgICAgICAgIChXVEY6OkdSZWZQdHI6Om9wZXJhdG9y
Kik6CisgICAgICAgIChXVEY6OkdSZWZQdHI6Om9wZXJhdG9yLT4pOgorICAgICAgICAoV1RGOjpH
UmVmUHRyOjpvcGVyYXRvciEpOgorICAgICAgICAoV1RGOjpHUmVmUHRyOjpvcGVyYXRvciBVbnNw
ZWNpZmllZEJvb2xUeXBlKToKKyAgICAgICAgKFdURjo6R1JlZlB0cjo6aGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKToKKyAgICAgICAgKFdURjo6PSk6CisgICAgICAgIChXVEY6OkdSZWZQdHI8VD46OnN3
YXApOgorICAgICAgICAoV1RGOjpzd2FwKToKKyAgICAgICAgKFdURjo6b3BlcmF0b3I9PSk6Cisg
ICAgICAgIChXVEY6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV1RGOjpzdGF0aWNfcG9pbnRlcl9j
YXN0KToKKyAgICAgICAgKFdURjo6Y29uc3RfcG9pbnRlcl9jYXN0KToKKyAgICAgICAgKFdURjo6
YWRvcHRHUmVmKToKKyAgICAgICAgKFdURjo6cmVmR1B0cik6CisgICAgICAgIChXVEY6OmRlcmVm
R1B0cik6CisgICAgICAgICogd3RmL2dsaWIvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5jcHA6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dUaHJlYWRTYWZlTWFpbkxvb3BT
b3VyY2UuY3BwLgorICAgICAgICAoV1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpHVGhy
ZWFkU2FmZU1haW5Mb29wU291cmNlKToKKyAgICAgICAgKFdURjo6R1RocmVhZFNhZmVNYWluTG9v
cFNvdXJjZTo6fkdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UpOgorICAgICAgICAoV1RGOjpHVGhy
ZWFkU2FmZU1haW5Mb29wU291cmNlOjpjYW5jZWwpOgorICAgICAgICAoV1RGOjpHVGhyZWFkU2Fm
ZU1haW5Mb29wU291cmNlOjpzY2hlZHVsZSk6CisgICAgICAgIChXVEY6OkdUaHJlYWRTYWZlTWFp
bkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheSk6CisgICAgICAgIChXVEY6OkdUaHJlYWRT
YWZlTWFpbkxvb3BTb3VyY2U6OnByZXBhcmVWb2lkQ2FsbGJhY2spOgorICAgICAgICAoV1RGOjpH
VGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpmaW5pc2hWb2lkQ2FsbGJhY2spOgorICAgICAgICAo
V1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjp2b2lkQ2FsbGJhY2spOgorICAgICAgICAo
V1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpwcmVwYXJlQm9vbENhbGxiYWNrKToKKyAg
ICAgICAgKFdURjo6R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6ZmluaXNoQm9vbENhbGxiYWNr
KToKKyAgICAgICAgKFdURjo6R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6Ym9vbENhbGxiYWNr
KToKKyAgICAgICAgKiB3dGYvZ2xpYi9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2Uu
aC4KKyAgICAgICAgKiB3dGYvZ2xpYi9HVHlwZWRlZnMuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
VEYvd3RmL2dvYmplY3QvR1R5cGVkZWZzLmguCisgICAgICAgICogd3RmL2dsaWIvR1VuaXF1ZVB0
ci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvZ29iamVjdC9HVW5pcXVlUHRyLmguCisg
ICAgICAgIChXVEY6OkdQdHJEZWxldGVyOjpvcGVyYXRvcigpKToKKyAgICAgICAgKFdURjo6R1Vu
aXF1ZU91dFB0cjo6R1VuaXF1ZU91dFB0cik6CisgICAgICAgIChXVEY6OkdVbmlxdWVPdXRQdHI6
On5HVW5pcXVlT3V0UHRyKToKKyAgICAgICAgKFdURjo6R1VuaXF1ZU91dFB0cjo6b3V0UHRyKToK
KyAgICAgICAgKFdURjo6R1VuaXF1ZU91dFB0cjo6cmVsZWFzZSk6CisgICAgICAgIChXVEY6OkdV
bmlxdWVPdXRQdHI6Om9wZXJhdG9yKik6CisgICAgICAgIChXVEY6OkdVbmlxdWVPdXRQdHI6Om9w
ZXJhdG9yLT4pOgorICAgICAgICAoV1RGOjpHVW5pcXVlT3V0UHRyOjpnZXQpOgorICAgICAgICAo
V1RGOjpHVW5pcXVlT3V0UHRyOjpvcGVyYXRvciEpOgorICAgICAgICAoV1RGOjpHVW5pcXVlT3V0
UHRyOjpvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKToKKyAgICAgICAgKFdURjo6R1VuaXF1
ZU91dFB0cjo6cmVzZXQpOgorICAgICAgICAqIHd0Zi9nbGliL01haW5UaHJlYWRHTGliLmNwcDoK
KyAgICAgICAgKiB3dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3BwOgorICAgICAgICAoV1RG
OjpHTWFpbkxvb3BTb3VyY2U6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdNYWlu
TG9vcFNvdXJjZTo6R01haW5Mb29wU291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R01h
aW5Mb29wU291cmNlOjp+R01haW5Mb29wU291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
R01haW5Mb29wU291cmNlOjppc1NjaGVkdWxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdN
YWluTG9vcFNvdXJjZTo6aXNBY3RpdmUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHTWFpbkxv
b3BTb3VyY2U6OmNhbmNlbCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJj
ZTo6c2NoZWR1bGVJZGxlU291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R01haW5Mb29w
U291cmNlOjpzY2hlZHVsZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJj
ZTo6c2NoZWR1bGVUaW1lb3V0U291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R01haW5M
b29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpj
cmVhdGVNaWNyb3NlY29uZHNUaW1lb3V0U291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
R01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFuZERlbGV0ZU9uRGVzdHJveSk6IERlbGV0ZWQuCisg
ICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRl
T25EZXN0cm95KTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R01haW5Mb29wU291cmNlOjpwcmVw
YXJlVm9pZENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R01haW5Mb29wU291cmNl
OjpmaW5pc2hWb2lkQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BT
b3VyY2U6OnZvaWRDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdNYWluTG9vcFNv
dXJjZTo6cHJlcGFyZUJvb2xDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdNYWlu
TG9vcFNvdXJjZTo6ZmluaXNoQm9vbENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
R01haW5Mb29wU291cmNlOjpib29sQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpH
TWFpbkxvb3BTb3VyY2U6OnNvY2tldENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
R01haW5Mb29wU291cmNlOjp2b2lkU291cmNlQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpHTWFpbkxvb3BTb3VyY2U6OmJvb2xTb3VyY2VDYWxsYmFjayk6IERlbGV0ZWQuCisgICAg
ICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6c29ja2V0U291cmNlQ2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BTb3VyY2U6OkNvbnRleHQ6OmRlc3Ryb3lTb3VyY2Up
OiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oOgorICAg
ICAgICAoV1RGOjpHTWFpbkxvb3BTb3VyY2U6OkNvbnRleHQ6Om9wZXJhdG9yPSk6IERlbGV0ZWQu
CisgICAgICAgICogd3RmL2dvYmplY3QvR011dGV4TG9ja2VyLmg6CisgICAgICAgIChXVEY6Ok11
dGV4V3JhcHBlcjxHTXV0ZXg+Ojpsb2NrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6TXV0ZXhX
cmFwcGVyPEdNdXRleD46OnVubG9jayk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Ok11dGV4V3Jh
cHBlcjxHUmVjTXV0ZXg+Ojpsb2NrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6TXV0ZXhXcmFw
cGVyPEdSZWNNdXRleD46OnVubG9jayk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdNdXRleExv
Y2tlcjo6R011dGV4TG9ja2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R011dGV4TG9ja2Vy
Ojp+R011dGV4TG9ja2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R011dGV4TG9ja2VyOjps
b2NrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R011dGV4TG9ja2VyOjp1bmxvY2spOiBEZWxl
dGVkLgorICAgICAgICAqIHd0Zi9nb2JqZWN0L0dSZWZQdHIuY3BwOgorICAgICAgICAoV1RGOjpy
ZWZHUHRyKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6ZGVyZWZHUHRyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiB3dGYvZ29iamVjdC9HUmVmUHRyLmg6CisgICAgICAgIChXVEY6OkdSZWZQdHI6OkdS
ZWZQdHIpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHUmVmUHRyOjp+R1JlZlB0cik6IERlbGV0
ZWQuCisgICAgICAgIChXVEY6OkdSZWZQdHI6OmNsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKFdU
Rjo6R1JlZlB0cjo6b3V0UHRyKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1JlZlB0cjo6aXNI
YXNoVGFibGVEZWxldGVkVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHUmVmUHRyOjpn
ZXQpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHUmVmUHRyOjpvcGVyYXRvciopOiBEZWxldGVk
LgorICAgICAgICAoV1RGOjpHUmVmUHRyOjpvcGVyYXRvci0+KTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6R1JlZlB0cjo6b3BlcmF0b3IhKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1JlZlB0
cjo6b3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6
OkdSZWZQdHI6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6
Oj0pOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHUmVmUHRyPFQ+Ojpzd2FwKTogRGVsZXRlZC4K
KyAgICAgICAgKFdURjo6c3dhcCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Om9wZXJhdG9yPT0p
OiBEZWxldGVkLgorICAgICAgICAoV1RGOjpvcGVyYXRvciE9KTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6c3RhdGljX3BvaW50ZXJfY2FzdCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OmNvbnN0
X3BvaW50ZXJfY2FzdCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OmFkb3B0R1JlZik6IERlbGV0
ZWQuCisgICAgICAgIChXVEY6OnJlZkdQdHIpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpkZXJl
ZkdQdHIpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9nb2JqZWN0L0dUaHJlYWRTYWZlTWFpbkxv
b3BTb3VyY2UuY3BwOgorICAgICAgICAoV1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpH
VGhyZWFkU2FmZU1haW5Mb29wU291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1RocmVh
ZFNhZmVNYWluTG9vcFNvdXJjZTo6fkdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UpOiBEZWxldGVk
LgorICAgICAgICAoV1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpjYW5jZWwpOiBEZWxl
dGVkLgorICAgICAgICAoV1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpzY2hlZHVsZSk6
IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OnNjaGVk
dWxlQWZ0ZXJEZWxheSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdUaHJlYWRTYWZlTWFpbkxv
b3BTb3VyY2U6OnByZXBhcmVWb2lkQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpH
VGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpmaW5pc2hWb2lkQ2FsbGJhY2spOiBEZWxldGVkLgor
ICAgICAgICAoV1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjp2b2lkQ2FsbGJhY2spOiBE
ZWxldGVkLgorICAgICAgICAoV1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpwcmVwYXJl
Qm9vbENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1RocmVhZFNhZmVNYWluTG9v
cFNvdXJjZTo6ZmluaXNoQm9vbENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1Ro
cmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6Ym9vbENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAg
KiB3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg6CisgICAgICAgIChXVEY6OkdQdHJEZWxldGVyOjpv
cGVyYXRvcigpKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1VuaXF1ZU91dFB0cjo6R1VuaXF1
ZU91dFB0cik6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdVbmlxdWVPdXRQdHI6On5HVW5pcXVl
T3V0UHRyKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1VuaXF1ZU91dFB0cjo6b3V0UHRyKTog
RGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1VuaXF1ZU91dFB0cjo6cmVsZWFzZSk6IERlbGV0ZWQu
CisgICAgICAgIChXVEY6OkdVbmlxdWVPdXRQdHI6Om9wZXJhdG9yKik6IERlbGV0ZWQuCisgICAg
ICAgIChXVEY6OkdVbmlxdWVPdXRQdHI6Om9wZXJhdG9yLT4pOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpHVW5pcXVlT3V0UHRyOjpnZXQpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHVW5pcXVl
T3V0UHRyOjpvcGVyYXRvciEpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHVW5pcXVlT3V0UHRy
OjpvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
R1VuaXF1ZU91dFB0cjo6cmVzZXQpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9nb2JqZWN0L0ds
aWJVdGlsaXRpZXMuY3BwOgorICAgICAgICAoZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKTogRGVs
ZXRlZC4KKwogMjAxNS0wNi0wOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4K
IAogICAgICAgICBCdWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJhMTk0NTk5NmExMGE0MjJkNjFh
NmY3ZmEyMGFlNWIyN2I4ODUwMS4uNTg5YzI3YzQyNzk4ZWY5NDk1ZjJlODY0MjRlZWM2YzMxMjU1
NDc4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE1LTA2LTA5ICBaYW4gRG9iZXJz
ZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0xpYl0gTW92ZSBmaWxlcyB1
bmRlciBTb3VyY2UvV1RGL3d0Zi9nb2JqZWN0IHRvIFNvdXJjZS9XVEYvd3RmL2dsaWIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTc5OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBoZWFkZXIg
aW5jbHVzaW9ucyBmb3IgaGVhZGVycyB0aGF0IGhhdmUgYmVlbiBtb3ZlZAorICAgICAgICB0byBT
b3VyY2UvV1RGL3d0Zi9nbGliLy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRrL0FYT2Jq
ZWN0Q2FjaGVBdGsuY3BwOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vz
c2libGVJbnRlcmZhY2VUZXh0LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0RPTU9i
amVjdENhY2hlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dPYmplY3RFdmVudExp
c3RlbmVyLmg6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNv
bmRpdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL2dvYmplY3QvR09iamVjdFhQYXRoTlNSZXNv
bHZlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NRXZlbnRUYXJnZXQu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNlUHJvdmlkZXJH
U3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRX
ZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3Rr
L0F1ZGlvQnVzR3RrLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nZW9jbHVlL0dlb2xvY2F0aW9u
UHJvdmlkZXJHZW9jbHVlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ2VvY2x1ZS9HZW9sb2NhdGlv
blByb3ZpZGVyR2VvY2x1ZTIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvQmF0dGVyeVBy
b3ZpZGVyVVBvd2VyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0JhdHRlcnlQcm92aWRl
clVQb3dlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRy
R1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lclV0aWxpdGllcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dVbmlxdWVQdHJHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0
cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQ
cml2YXRlQmFzZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ltYWdlQnVmZmVyR3RrLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvSW1hZ2VHdGsuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9Db250ZXh0TWVudUd0ay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0NvbnRl
eHRNZW51SXRlbUd0ay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0RhdGFPYmplY3RHdGsu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9EYXRhT2JqZWN0R3RrLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9H
UmVmUHRyR3RrLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dVbmlxdWVQdHJHdGsuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9HdGtVdGlsaXRpZXMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9MYW5ndWFnZUd0
ay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9TaGFyZWRCdWZmZXJHdGsuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9TaGFyZWRUaW1l
ckd0ay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2d0
ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvQ2VydGlmaWNhdGVJbmZvLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3Vw
L0Nvb2tpZUphclNvdXAuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9ETlNT
b3VwLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvR1JlZlB0clNvdXAuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvR1VuaXF1ZVB0clNvdXAuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvci5oOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L2d0ay9IeXBoZW5hdGlvbkxpYkh5cGhlbi5jcHA6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lR3RrLmNwcDoKKwogMjAxNS0wNi0wOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpA
YXBwbGUuY29tPgogCiAgICAgICAgIE1hZGUgTWljcm9UYXNrLmggYSBwcm9qZWN0IGhlYWRlci4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjYTM5Nzg5MTk4ZmM0NzM1MDJjYzc3OTE2M2ZkNjEyZmUxZDJhNGI5Li5k
Yzc5NjNmYjI4ZGI0MmFhYjcyZDU3OTViY2IzOTEwNTE3NjhmMDBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsODYgQEAKKzIwMTUtMDYtMDkgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtHTGliXSBNb3ZlIGZpbGVzIHVuZGVyIFNvdXJjZS9XVEYvd3RmL2dv
YmplY3QgdG8gU291cmNlL1dURi93dGYvZ2xpYgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1Nzk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGhlYWRlciBpbmNsdXNpb25zIGZvciBoZWFkZXJz
IHRoYXQgaGF2ZSBiZWVuIG1vdmVkCisgICAgICAgIHRvIFNvdXJjZS9XVEYvd3RmL2dsaWIvLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbVBv
c2l4Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFu
bmVsLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFu
bmVsU291cC5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vz
c1NvdXAuY3BwOgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFBsYXRm
b3JtR1RLLmNtYWtlOgorICAgICAgICAqIFNoYXJlZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNv
dXAuY3BwOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL0N1
c3RvbVByb3RvY29sTWFuYWdlckltcGwuaDoKKyAgICAgICAgKiBTaGFyZWQvUHJpbnRJbmZvLmg6
CisgICAgICAgICogU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5jcHA6CisgICAgICAgICog
U2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5oOgorICAgICAgICAqIFNoYXJlZC9ndGsvS2V5
ZWREZWNvZGVyLmg6CisgICAgICAgICogU2hhcmVkL2d0ay9LZXllZEVuY29kZXIuaDoKKyAgICAg
ICAgKiBTaGFyZWQvZ3RrL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0ay5jcHA6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0LmNwcDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtLmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb2xvckNob29zZXIuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudS5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXREb3dubG9hZC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RG93bmxvYWRDbGllbnQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZhdmljb25EYXRhYmFzZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
RmlsZUNob29zZXJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRGaW5kQ29udHJvbGxlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
Rm9ybUNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybVN1
Ym1pc3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJ
bmplY3RlZEJ1bmRsZUNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0SmF2YXNjcmlwdFJlc3VsdC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0TG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRN
aW1lSW5mby5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlv
bkFjdGlvbi5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlv
blBvbGljeURlY2lzaW9uLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQ
b2xpY3lDbGllbnQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50
T3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZXNwb25z
ZVBvbGljeURlY2lzaW9uLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
SUNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRl
bnRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250
ZXh0LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJJbnNwZWN0b3Iu
Y3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlJlc291cmNlLmNwcDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXIuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvSW5zcGVjdG9yU2VydmVyL2d0ay9XZWJJbnNwZWN0b3JTZXJ2ZXJHdGsuY3BwOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvc291cC9XZWJTb2NrZXRTZXJ2ZXJTb3Vw
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0
ay5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvZ3RrL1BsdWdpbkluZm9DYWNoZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luUHJvY2Vzc1Byb3h5VW5p
eC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9EcmFnQW5kRHJvcEhhbmRsZXIuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvR2VzdHVyZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvZ3RrL0lucHV0TWV0aG9kRmlsdGVyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Z3RrL0lucHV0TWV0aG9kRmlsdGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJJbnNw
ZWN0b3JQcm94eUd0ay5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQ
cm94eUd0ay5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0
ay5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc1Bvb2xHdGsuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0
ZW5zaW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
V2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9ndGsvV2ViRWRpdG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5
ZXJUcmVlSG9zdEd0ay5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvUHJpbnRl
ckxpc3RHdGsuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25H
dGsuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRp
b25HdGsuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2d0ay9XZWJHdGtFeHRlbnNpb25NYW5hZ2Vy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJl
YW0uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5oOgorCiAyMDE1
LTA2LTA4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29h
XSBVc2UgZ2VuZXJpY3MgaW4gZnJhbWV3b3JrIGhlYWRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ogYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52
Y3hwcm9qCmluZGV4IDQwN2ViMzE1Zjk0NGRhNDQ2MjRjYzUyMzQ2M2E3MDZlNmRlYWIzMTAuLjhi
NDBjZGVjNWZmZTI0ZTBlMTNjMTg1MGJmNWNmZTI2M2E0YzQ2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oKKysrIGIvU291cmNlL1dURi9XVEYudmN4cHJv
ai9XVEYudmN4cHJvagpAQCAtNzMsNyArNzMsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cd3RmXEZhc3RNYWxsb2MuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3Rm
XEZpbGVQcmludFN0cmVhbS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZc
RnVuY3Rpb25EaXNwYXRjaGVyLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0
Zlxnb2JqZWN0XEdsaWJVdGlsaXRpZXMuY3BwIj4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHd0ZlxnbGliXEdMaWJVdGlsaXRpZXMuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC05Myw3ICs5Myw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXGdvYmplY3RcR1JlZlB0ci5jcHAiPgorICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXGdsaWJcR1JlZlB0ci5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTIwNCwxMiArMjA0LDEyIEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcRnVuY3Rpb25EaXNwYXRjaGVyLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcRnVuY3Rpb25hbC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cd3RmXEdldFB0ci5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cd3RmXGdvYmplY3RcR2xpYlV0aWxpdGllcy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cd3RmXGdsaWJcR0xpYlV0aWxpdGllcy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cd3RmXGdsaWJcR1JlZlB0ci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cd3RmXGdsaWJcR1R5cGVkZWZzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3
dGZcZ29iamVjdFxHTWFpbkxvb3BTb3VyY2UuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHd0Zlxnb2JqZWN0XEdNdXRleExvY2tlci5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cd3RmXGdvYmplY3RcR1JlZlB0ci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cd3RmXGdsaWJcR011dGV4TG9ja2VyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llx3dGZcZ29iamVjdFxHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmgiIC8+Ci0gICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3dGZcZ29iamVjdFxHVHlwZWRlZnMuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHd0Zlxnb2JqZWN0XEdVbmlxdWVQdHIuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHd0ZlxHcmVnb3JpYW5EYXRlVGltZS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cd3RmXEhhc2hDb3VudGVkU2V0LmgiIC8+CkBAIC03NzMsNCArNzczLDQg
QEAKICAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFy
Z2V0cyIgLz4KICAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgPC9J
bXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L1By
b2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZp
bHRlcnMgYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMKaW5kZXgg
NjhhMmRiMTllNmZmODVlNGNhYWRjMWVjYmExZmEyMTBmYmQ4Yzg3Yy4uODFiOGQxZDI1MWU2NTg4
OTc4N2UwZDkxMGI0OTRjNzMwMTg0ZmUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmN4
cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RG
LnZjeHByb2ouZmlsdGVycwpAQCAtMjI4LDEwICsyMjgsMTAgQEAKICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHd0ZlxTaXhDaGFyYWN0ZXJIYXNoLmNwcCI+CiAgICAgICA8RmlsdGVyPnd0Zjwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3Rm
XGdvYmplY3RcR2xpYlV0aWxpdGllcy5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
d3RmXGdsaWJcR0xpYlV0aWxpdGllcy5jcHAiPgogICAgICAgPEZpbHRlcj53dGZcZ29iamVjdDwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3Rm
XGdvYmplY3RcR1JlZlB0ci5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXGds
aWJcR1JlZlB0ci5jcHAiPgogICAgICAgPEZpbHRlcj53dGZcZ29iamVjdDwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFJ1bkxvb3AuY3Bw
Ij4KQEAgLTY3NiwxNyArNjc2LDE3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZc
d2luXEdESU9iamVjdC5oIj4KICAgICAgIDxGaWx0ZXI+d3RmXHdpbjwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXGdvYmplY3RcR2xpYlV0
aWxpdGllcy5oIj4KLSAgICAgIDxGaWx0ZXI+d3RmXGdvYmplY3Q8L0ZpbHRlcj4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxnbGliXEdMaWJVdGlsaXRpZXMuaCI+CisgICAgICA8Rmls
dGVyPnd0ZlxnbGliPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlx3dGZcZ29iamVjdFxHTXV0ZXhMb2NrZXIuaCI+Ci0gICAgICA8RmlsdGVyPnd0
Zlxnb2JqZWN0PC9GaWx0ZXI+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcZ2xpYlxH
TXV0ZXhMb2NrZXIuaCI+CisgICAgICA8RmlsdGVyPnd0ZlxnbGliPC9GaWx0ZXI+CiAgICAgPC9D
bEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcZ29iamVjdFxHUmVmUHRy
LmgiPgotICAgICAgPEZpbHRlcj53dGZcZ29iamVjdDwvRmlsdGVyPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cd3RmXGdsaWJcR1JlZlB0ci5oIj4KKyAgICAgIDxGaWx0ZXI+d3RmXGdsaWI8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0
Zlxnb2JqZWN0XEdUeXBlZGVmcy5oIj4KLSAgICAgIDxGaWx0ZXI+d3RmXGdvYmplY3Q8L0ZpbHRl
cj4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxnbGliXEdUeXBlZGVmcy5oIj4KKyAg
ICAgIDxGaWx0ZXI+d3RmXGdsaWI8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxCYWcuaCI+CiAgICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVy
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtLmgKaW5kZXggN2RmNDQ1YTIxNTcyYWQ0NTE2NTZkZThkYzE1MzZkMWMzODdmYTVm
NC4uYzYyMGY3ODg3ZTE5ZjhlOWY3Y2MwOWI3NWViYTgzMzVlMDc5NTU3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5o
CkBAIC05NDksNyArOTQ5LDcgQEAKICNlbmRpZgogCiAjaWYgVVNFKEdMSUIpCi0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR1R5cGVkZWZzLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1R5cGVkZWZzLmg+
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEVGTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UKaW5k
ZXggNGMzMTMxZDIxNzUzMmE4YTRmMTMyMzgwOTI4ZWJmMjU1M2Y0Mjk0MS4uY2QwYmNmMDgxYjMw
NDFjOTBiYjRlNWM5ODFmMmQ3MmM3MGI3NWY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UK
QEAgLTQsOSArNCw5IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgZWZsL1J1bkxvb3BF
ZmwuY3BwCiAgICAgZWZsL1dvcmtRdWV1ZUVmbC5jcHAKIAotICAgIGdvYmplY3QvR01haW5Mb29w
U291cmNlLmNwcAotICAgIGdvYmplY3QvR1JlZlB0ci5jcHAKLSAgICBnb2JqZWN0L0dUaHJlYWRT
YWZlTWFpbkxvb3BTb3VyY2UuY3BwCisgICAgZ2xpYi9HTWFpbkxvb3BTb3VyY2UuY3BwCisgICAg
Z2xpYi9HUmVmUHRyLmNwcAorICAgIGdsaWIvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5jcHAK
ICkKIAogbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZQpp
bmRleCA1OGUzY2Q4NzFlMjJiOTFlM2Q5ZmNlOTgyZTMyMjAxOTcwNmJlZDgzLi44MzIyMGRjODZl
ZmUyOWUzM2NkNGI1MDc3NjRmNTdiYWExMWU5YTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFr
ZQpAQCAtMiwxNCArMiwxMyBAQCBzZXQoV1RGX0xJQlJBUllfVFlQRSBTVEFUSUMpCiBzZXQoV1RG
X09VVFBVVF9OQU1FIFdURkdUSykKIAogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKKyAgICBnbGli
L0dMaWJVdGlsaXRpZXMuY3BwCisgICAgZ2xpYi9HTWFpbkxvb3BTb3VyY2UuY3BwCisgICAgZ2xp
Yi9HUmVmUHRyLmNwcAorICAgIGdsaWIvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5jcHAKICAg
ICBnbGliL01haW5UaHJlYWRHTGliLmNwcAogICAgIGdsaWIvUnVuTG9vcEdMaWIuY3BwCiAgICAg
Z2xpYi9Xb3JrUXVldWVHTGliLmNwcAotCi0gICAgZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3Bw
Ci0gICAgZ29iamVjdC9HUmVmUHRyLmNwcAotICAgIGdvYmplY3QvR1RocmVhZFNhZmVNYWluTG9v
cFNvdXJjZS5jcHAKLSAgICBnb2JqZWN0L0dsaWJVdGlsaXRpZXMuY3BwCiApCiAKIGxpc3QoQVBQ
RU5EIFdURl9MSUJSQVJJRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaCBi
L1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaAppbmRleCA4NTBiY2U5NzBkZTk0ZWE3MjNhMWI0NjY3
MzM4MmZkNGY4ZDY5YWUwLi42ZjMwMjM2YjM0YzI4MTZhODE1OGQ1ZWY3ZTdlNWEwOWU4ZDU0YTBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKKysrIGIvU291cmNlL1dURi93
dGYvUnVuTG9vcC5oCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5o
PgogCiAjaWYgVVNFKEdMSUIpCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR01haW5Mb29wU291cmNl
Lmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR01haW5Mb29wU291cmNlLmg+CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKEVGTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oIGIv
U291cmNlL1dURi93dGYvV29ya1F1ZXVlLmgKaW5kZXggMTVkNzU1ZjI4NTg1NzI5NzRlNjc0MWZj
NzIwZDY1YTdhODUwZjJmMS4uNjg1MWMwOTMxNjQ1YzVhMGMwZDU4OTRkNzlhM2UxZWEzZjJjMGVj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvV29ya1F1ZXVlLmgKQEAgLTM5LDggKzM5LDggQEAKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oR1RLKQotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oPgotI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTWFpbkxvb3BT
b3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjZWxpZiBQTEFURk9STShF
RkwpCiAjaW5jbHVkZSA8RGlzcGF0Y2hRdWV1ZUVmbC5oPgogI2VsaWYgT1MoV0lORE9XUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR0xpYlV0aWxpdGllcy5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL0dMaWJVdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2MjliNTcxNWJlNWFh
MDA5N2ExNzhmMWYxMTZlYjM3OThiMmQ4NmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9nbGliL0dMaWJVdGlsaXRpZXMuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJHTGliVXRpbGl0aWVzLmgiCisKKyNpZiBPUyhXSU5ET1dTKQorI2luY2x1
ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNlbHNlCisj
aW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKworI2lmIE9T
KExJTlVYKQorQ1N0cmluZyBnZXRDdXJyZW50RXhlY3V0YWJsZVBhdGgoKQoreworICAgIHN0YXRp
YyBjaGFyIHJlYWRMaW5rQnVmZmVyW1BBVEhfTUFYXTsKKyAgICBzc2l6ZV90IHJlc3VsdCA9IHJl
YWRsaW5rKCIvcHJvYy9zZWxmL2V4ZSIsIHJlYWRMaW5rQnVmZmVyLCBQQVRIX01BWCk7CisgICAg
aWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKKyAgICByZXR1cm4g
Q1N0cmluZyhyZWFkTGlua0J1ZmZlciwgcmVzdWx0KTsKK30KKyNlbGlmIE9TKEhVUkQpCitDU3Ry
aW5nIGdldEN1cnJlbnRFeGVjdXRhYmxlUGF0aCgpCit7CisgICAgcmV0dXJuIENTdHJpbmcoKTsK
K30KKyNlbGlmIE9TKFVOSVgpCitDU3RyaW5nIGdldEN1cnJlbnRFeGVjdXRhYmxlUGF0aCgpCit7
CisgICAgc3RhdGljIGNoYXIgcmVhZExpbmtCdWZmZXJbUEFUSF9NQVhdOworICAgIHNzaXplX3Qg
cmVzdWx0ID0gcmVhZGxpbmsoIi9wcm9jL2N1cnByb2MvZmlsZSIsIHJlYWRMaW5rQnVmZmVyLCBQ
QVRIX01BWCk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIENTdHJpbmco
KTsKKyAgICByZXR1cm4gQ1N0cmluZyhyZWFkTGlua0J1ZmZlciwgcmVzdWx0KTsKK30KKyNlbGlm
IE9TKFdJTkRPV1MpCitDU3RyaW5nIGdldEN1cnJlbnRFeGVjdXRhYmxlUGF0aCgpCit7CisgICAg
c3RhdGljIFdDSEFSIGJ1ZmZlcltNQVhfUEFUSF07CisgICAgRFdPUkQgbGVuZ3RoID0gR2V0TW9k
dWxlRmlsZU5hbWVXKDAsIGJ1ZmZlciwgTUFYX1BBVEgpOworICAgIGlmICghbGVuZ3RoIHx8IChs
ZW5ndGggPT0gTUFYX1BBVEggJiYgR2V0TGFzdEVycm9yKCkgPT0gRVJST1JfSU5TVUZGSUNJRU5U
X0JVRkZFUikpCisgICAgICAgIHJldHVybiBDU3RyaW5nKCk7CisKKyAgICBTdHJpbmcgcGF0aChi
dWZmZXIsIGxlbmd0aCk7CisgICAgcmV0dXJuIHBhdGgudXRmOCgpOworfQorI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaCBiL1NvdXJjZS9XVEYv
d3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczNTc4MjQ1OWQ2NzY5NjI2Zjk1
NmUzYjllNTRkMTE2ZWU1ZjQ1NGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9n
bGliL0dMaWJVdGlsaXRpZXMuaApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIEdMaWJVdGlsaXRpZXNfaAor
I2RlZmluZSBHTGliVXRpbGl0aWVzX2gKKworI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCitDU3RyaW5nIGdldEN1cnJlbnRFeGVjdXRh
YmxlUGF0aCgpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR01h
aW5Mb29wU291cmNlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR01haW5Mb29wU291cmNlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44Yzc4NDA5MGIxYmZmOTQ1ZDk0N2NkYjhmMDI4MDY1Y2Q5NDRlNWRjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9HTWFpbkxvb3BTb3VyY2UuY3Bw
CkBAIC0wLDAgKzEsNDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHTWFpbkxvb3BTb3Vy
Y2UuaCIKKworI2lmIFVTRShHTElCKQorCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorCituYW1lc3Bh
Y2UgV1RGIHsKKworR01haW5Mb29wU291cmNlJiBHTWFpbkxvb3BTb3VyY2U6OmNyZWF0ZSgpCit7
CisgICAgcmV0dXJuICpuZXcgR01haW5Mb29wU291cmNlKERlbGV0ZU9uRGVzdHJveSk7Cit9CisK
K0dNYWluTG9vcFNvdXJjZTo6R01haW5Mb29wU291cmNlKCkKKyAgICA6IG1fZGVsZXRlT25EZXN0
cm95KERvTm90RGVsZXRlT25EZXN0cm95KQorICAgICwgbV9zdGF0dXMoUmVhZHkpCit7Cit9CisK
K0dNYWluTG9vcFNvdXJjZTo6R01haW5Mb29wU291cmNlKERlbGV0ZU9uRGVzdHJveVR5cGUgZGVs
ZXRlT25EZXN0cm95KQorICAgIDogbV9kZWxldGVPbkRlc3Ryb3koZGVsZXRlT25EZXN0cm95KQor
ICAgICwgbV9zdGF0dXMoUmVhZHkpCit7Cit9CisKK0dNYWluTG9vcFNvdXJjZTo6fkdNYWluTG9v
cFNvdXJjZSgpCit7CisgICAgY2FuY2VsKCk7Cit9CisKK2Jvb2wgR01haW5Mb29wU291cmNlOjpp
c1NjaGVkdWxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RhdHVzID09IFNjaGVkdWxlZDsK
K30KKworYm9vbCBHTWFpbkxvb3BTb3VyY2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9zdGF0dXMgIT0gUmVhZHk7Cit9CisKK3ZvaWQgR01haW5Mb29wU291cmNlOjpjYW5jZWwo
KQoreworICAgIC8vIERlbGV0ZS1vbi1kZXN0cm95IEdNYWluTG9vcFNvdXJjZSBvYmplY3RzIGNh
bid0IGJlIGNhbmNlbGxlZC4KKyAgICBpZiAobV9kZWxldGVPbkRlc3Ryb3kgPT0gRGVsZXRlT25E
ZXN0cm95KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBBIHZhbGlkIGNvbnRleHQgc2hvdWxk
IG9ubHkgYmUgcHJlc2VudCBpZiBHTWFpbkxvb3BTb3VyY2UgaXMgaW4gdGhlIFNjaGVkdWxlZCBv
ciBEaXNwYXRjaGluZyBzdGF0ZS4KKyAgICBBU1NFUlQoIW1fY29udGV4dC5zb3VyY2UgfHwgbV9z
dGF0dXMgPT0gU2NoZWR1bGVkIHx8IG1fc3RhdHVzID09IERpc3BhdGNoaW5nKTsKKworICAgIG1f
c3RhdHVzID0gUmVhZHk7CisKKyAgICBnX2NhbmNlbGxhYmxlX2NhbmNlbChtX2NvbnRleHQuc29j
a2V0Q2FuY2VsbGFibGUuZ2V0KCkpOworCisgICAgaWYgKCFtX2NvbnRleHQuc291cmNlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBDb250ZXh0IGNvbnRleHQ7CisgICAgY29udGV4dCA9IFdURjo6
bW92ZShtX2NvbnRleHQpOworICAgIGNvbnRleHQuZGVzdHJveVNvdXJjZSgpOworfQorCit2b2lk
IEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVJZGxlU291cmNlKGNvbnN0IGNoYXIqIG5hbWUsIEdT
b3VyY2VGdW5jIHNvdXJjZUZ1bmN0aW9uLCBpbnQgcHJpb3JpdHksIEdNYWluQ29udGV4dCogY29u
dGV4dCkKK3sKKyAgICBBU1NFUlQobV9zdGF0dXMgPT0gUmVhZHkpOworICAgIG1fc3RhdHVzID0g
U2NoZWR1bGVkOworCisgICAgZ19zb3VyY2Vfc2V0X25hbWUobV9jb250ZXh0LnNvdXJjZS5nZXQo
KSwgbmFtZSk7CisgICAgaWYgKHByaW9yaXR5ICE9IEdfUFJJT1JJVFlfREVGQVVMVF9JRExFKQor
ICAgICAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkobV9jb250ZXh0LnNvdXJjZS5nZXQoKSwgcHJp
b3JpdHkpOworICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX2NvbnRleHQuc291cmNlLmdldCgp
LCBzb3VyY2VGdW5jdGlvbiwgdGhpcywgbnVsbHB0cik7CisgICAgZ19zb3VyY2VfYXR0YWNoKG1f
Y29udGV4dC5zb3VyY2UuZ2V0KCksIGNvbnRleHQpOworfQorCit2b2lkIEdNYWluTG9vcFNvdXJj
ZTo6c2NoZWR1bGUoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5j
dGlvbiwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGRlc3Ryb3lGdW5jdGlv
biwgR01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAgIGNhbmNlbCgpOworCisgICAgQVNTRVJU
KCFtX2NvbnRleHQuc291cmNlKTsKKyAgICBtX2NvbnRleHQgPSB7CisgICAgICAgIGFkb3B0R1Jl
ZihnX2lkbGVfc291cmNlX25ldygpKSwKKyAgICAgICAgbnVsbHB0ciwgLy8gY2FuY2VsbGFibGUK
KyAgICAgICAgbnVsbHB0ciwgLy8gc29ja2V0Q2FuY2VsbGFibGUKKyAgICAgICAgV1RGOjptb3Zl
KGZ1bmN0aW9uKSwKKyAgICAgICAgbnVsbHB0ciwgLy8gYm9vbENhbGxiYWNrCisgICAgICAgIG51
bGxwdHIsIC8vIHNvY2tldENhbGxiYWNrCisgICAgICAgIFdURjo6bW92ZShkZXN0cm95RnVuY3Rp
b24pCisgICAgfTsKKyAgICBzY2hlZHVsZUlkbGVTb3VyY2UobmFtZSwgcmVpbnRlcnByZXRfY2Fz
dDxHU291cmNlRnVuYz4odm9pZFNvdXJjZUNhbGxiYWNrKSwgcHJpb3JpdHksIGNvbnRleHQpOwor
fQorCit2b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGUoY29uc3QgY2hhciogbmFtZSwgc3Rk
OjpmdW5jdGlvbjxib29sICgpPiBmdW5jdGlvbiwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9u
PHZvaWQgKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAg
IGNhbmNlbCgpOworCisgICAgQVNTRVJUKCFtX2NvbnRleHQuc291cmNlKTsKKyAgICBtX2NvbnRl
eHQgPSB7CisgICAgICAgIGFkb3B0R1JlZihnX2lkbGVfc291cmNlX25ldygpKSwKKyAgICAgICAg
bnVsbHB0ciwgLy8gY2FuY2VsbGFibGUKKyAgICAgICAgbnVsbHB0ciwgLy8gc29ja2V0Q2FuY2Vs
bGFibGUKKyAgICAgICAgbnVsbHB0ciwgLy8gdm9pZENhbGxiYWNrCisgICAgICAgIFdURjo6bW92
ZShmdW5jdGlvbiksCisgICAgICAgIG51bGxwdHIsIC8vIHNvY2tldENhbGxiYWNrCisgICAgICAg
IFdURjo6bW92ZShkZXN0cm95RnVuY3Rpb24pCisgICAgfTsKKyAgICBzY2hlZHVsZUlkbGVTb3Vy
Y2UobmFtZSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oYm9vbFNvdXJjZUNhbGxiYWNr
KSwgcHJpb3JpdHksIGNvbnRleHQpOworfQorCit2b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1
bGUoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sIChHSU9Db25kaXRpb24pPiBm
dW5jdGlvbiwgR1NvY2tldCogc29ja2V0LCBHSU9Db25kaXRpb24gY29uZGl0aW9uLCBzdGQ6OmZ1
bmN0aW9uPHZvaWQgKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQor
eworICAgIGNhbmNlbCgpOworCisgICAgQVNTRVJUKCFtX2NvbnRleHQuc291cmNlKTsKKyAgICBH
Q2FuY2VsbGFibGUqIHNvY2tldENhbmNlbGxhYmxlID0gZ19jYW5jZWxsYWJsZV9uZXcoKTsKKyAg
ICBtX2NvbnRleHQgPSB7CisgICAgICAgIGFkb3B0R1JlZihnX3NvY2tldF9jcmVhdGVfc291cmNl
KHNvY2tldCwgY29uZGl0aW9uLCBzb2NrZXRDYW5jZWxsYWJsZSkpLAorICAgICAgICBudWxscHRy
LCAvLyBjYW5jZWxsYWJsZQorICAgICAgICBhZG9wdEdSZWYoc29ja2V0Q2FuY2VsbGFibGUpLAor
ICAgICAgICBudWxscHRyLCAvLyB2b2lkQ2FsbGJhY2sKKyAgICAgICAgbnVsbHB0ciwgLy8gYm9v
bENhbGxiYWNrCisgICAgICAgIFdURjo6bW92ZShmdW5jdGlvbiksCisgICAgICAgIFdURjo6bW92
ZShkZXN0cm95RnVuY3Rpb24pCisgICAgfTsKKworICAgIEFTU0VSVChtX3N0YXR1cyA9PSBSZWFk
eSk7CisgICAgbV9zdGF0dXMgPSBTY2hlZHVsZWQ7CisgICAgZ19zb3VyY2Vfc2V0X25hbWUobV9j
b250ZXh0LnNvdXJjZS5nZXQoKSwgbmFtZSk7CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1f
Y29udGV4dC5zb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KHNvY2tl
dFNvdXJjZUNhbGxiYWNrKSwgdGhpcywgbnVsbHB0cik7CisgICAgZ19zb3VyY2VfYXR0YWNoKG1f
Y29udGV4dC5zb3VyY2UuZ2V0KCksIGNvbnRleHQpOworfQorCit2b2lkIEdNYWluTG9vcFNvdXJj
ZTo6c2NoZWR1bGVUaW1lb3V0U291cmNlKGNvbnN0IGNoYXIqIG5hbWUsIEdTb3VyY2VGdW5jIHNv
dXJjZUZ1bmN0aW9uLCBpbnQgcHJpb3JpdHksIEdNYWluQ29udGV4dCogY29udGV4dCkKK3sKKyAg
ICBBU1NFUlQobV9zdGF0dXMgPT0gUmVhZHkpOworICAgIG1fc3RhdHVzID0gU2NoZWR1bGVkOwor
CisgICAgZ19zb3VyY2Vfc2V0X25hbWUobV9jb250ZXh0LnNvdXJjZS5nZXQoKSwgbmFtZSk7Cisg
ICAgaWYgKHByaW9yaXR5ICE9IEdfUFJJT1JJVFlfREVGQVVMVCkKKyAgICAgICAgZ19zb3VyY2Vf
c2V0X3ByaW9yaXR5KG1fY29udGV4dC5zb3VyY2UuZ2V0KCksIHByaW9yaXR5KTsKKyAgICBnX3Nv
dXJjZV9zZXRfY2FsbGJhY2sobV9jb250ZXh0LnNvdXJjZS5nZXQoKSwgc291cmNlRnVuY3Rpb24s
IHRoaXMsIG51bGxwdHIpOworICAgIGdfc291cmNlX2F0dGFjaChtX2NvbnRleHQuc291cmNlLmdl
dCgpLCBjb250ZXh0KTsKK30KKwordm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJE
ZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uLCBz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rp
b248dm9pZCAoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCit7Cisg
ICAgY2FuY2VsKCk7CisKKyAgICBBU1NFUlQoIW1fY29udGV4dC5zb3VyY2UpOworICAgIG1fY29u
dGV4dCA9IHsKKyAgICAgICAgYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KGRlbGF5LmNv
dW50KCkpKSwKKyAgICAgICAgbnVsbHB0ciwgLy8gY2FuY2VsbGFibGUKKyAgICAgICAgbnVsbHB0
ciwgLy8gc29ja2V0Q2FuY2VsbGFibGUKKyAgICAgICAgV1RGOjptb3ZlKGZ1bmN0aW9uKSwKKyAg
ICAgICAgbnVsbHB0ciwgLy8gYm9vbENhbGxiYWNrCisgICAgICAgIG51bGxwdHIsIC8vIHNvY2tl
dENhbGxiYWNrCisgICAgICAgIFdURjo6bW92ZShkZXN0cm95RnVuY3Rpb24pCisgICAgfTsKKyAg
ICBzY2hlZHVsZVRpbWVvdXRTb3VyY2UobmFtZSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVu
Yz4odm9pZFNvdXJjZUNhbGxiYWNrKSwgcHJpb3JpdHksIGNvbnRleHQpOworfQorCit2b2lkIEdN
YWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6
ZnVuY3Rpb248Ym9vbCAoKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVs
YXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24s
IEdNYWluQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBjYW5jZWwoKTsKKworICAgIEFTU0VSVCgh
bV9jb250ZXh0LnNvdXJjZSk7CisgICAgbV9jb250ZXh0ID0geworICAgICAgICBhZG9wdEdSZWYo
Z190aW1lb3V0X3NvdXJjZV9uZXcoZGVsYXkuY291bnQoKSkpLAorICAgICAgICBudWxscHRyLCAv
LyBjYW5jZWxsYWJsZQorICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYW5jZWxsYWJsZQorICAg
ICAgICBudWxscHRyLCAvLyB2b2lkQ2FsbGJhY2sKKyAgICAgICAgV1RGOjptb3ZlKGZ1bmN0aW9u
KSwKKyAgICAgICAgbnVsbHB0ciwgLy8gc29ja2V0Q2FsbGJhY2sKKyAgICAgICAgV1RGOjptb3Zl
KGRlc3Ryb3lGdW5jdGlvbikKKyAgICB9OworICAgIHNjaGVkdWxlVGltZW91dFNvdXJjZShuYW1l
LCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPihib29sU291cmNlQ2FsbGJhY2spLCBwcmlv
cml0eSwgY29udGV4dCk7Cit9CisKK3ZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVy
RGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbiwg
c3RkOjpjaHJvbm86OnNlY29uZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2
b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBj
YW5jZWwoKTsKKworICAgIEFTU0VSVCghbV9jb250ZXh0LnNvdXJjZSk7CisgICAgbV9jb250ZXh0
ID0geworICAgICAgICBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXdfc2Vjb25kcyhkZWxh
eS5jb3VudCgpKSksCisgICAgICAgIG51bGxwdHIsIC8vIGNhbmNlbGxhYmxlCisgICAgICAgIG51
bGxwdHIsIC8vIHNvY2tldENhbmNlbGxhYmxlCisgICAgICAgIFdURjo6bW92ZShmdW5jdGlvbiks
CisgICAgICAgIG51bGxwdHIsIC8vIGJvb2xDYWxsYmFjaworICAgICAgICBudWxscHRyLCAvLyBz
b2NrZXRDYWxsYmFjaworICAgICAgICBXVEY6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKQorICAgIH07
CisgICAgc2NoZWR1bGVUaW1lb3V0U291cmNlKG5hbWUsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJj
ZUZ1bmM+KHZvaWRTb3VyY2VDYWxsYmFjayksIHByaW9yaXR5LCBjb250ZXh0KTsKK30KKwordm9p
ZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1lLCBz
dGQ6OmZ1bmN0aW9uPGJvb2wgKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6c2Vjb25kcyBkZWxh
eSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGRlc3Ryb3lGdW5jdGlvbiwg
R01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAgIGNhbmNlbCgpOworCisgICAgQVNTRVJUKCFt
X2NvbnRleHQuc291cmNlKTsKKyAgICBtX2NvbnRleHQgPSB7CisgICAgICAgIGFkb3B0R1JlZihn
X3RpbWVvdXRfc291cmNlX25ld19zZWNvbmRzKGRlbGF5LmNvdW50KCkpKSwKKyAgICAgICAgbnVs
bHB0ciwgLy8gY2FuY2VsbGFibGUKKyAgICAgICAgbnVsbHB0ciwgLy8gc29ja2V0Q2FuY2VsbGFi
bGUKKyAgICAgICAgbnVsbHB0ciwgLy8gdm9pZENhbGxiYWNrCisgICAgICAgIFdURjo6bW92ZShm
dW5jdGlvbiksCisgICAgICAgIG51bGxwdHIsIC8vIHNvY2tldENhbGxiYWNrCisgICAgICAgIFdU
Rjo6bW92ZShkZXN0cm95RnVuY3Rpb24pCisgICAgfTsKKyAgICBzY2hlZHVsZVRpbWVvdXRTb3Vy
Y2UobmFtZSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oYm9vbFNvdXJjZUNhbGxiYWNr
KSwgcHJpb3JpdHksIGNvbnRleHQpOworfQorCitzdHJ1Y3QgTWljcm9zZWNvbmRzVGltZW91dFNv
dXJjZSB7CisgICAgR1NvdXJjZSBzb3VyY2U7CisgICAgdWludDY0X3QgZGVsYXk7Cit9OworCitz
dGF0aWMgR1NvdXJjZUZ1bmNzIG1pY3Jvc2Vjb25kc1RpbWVvdXRTb3VyY2VGdW5jdGlvbnMgPSB7
CisgICAgbnVsbHB0ciwgLy8gcHJlcGFyZQorICAgIG51bGxwdHIsIC8vIGNoZWNrCisgICAgLy8g
ZGlzcGF0Y2gKKyAgICBbXShHU291cmNlKiBzb3VyY2UsIEdTb3VyY2VGdW5jIGNhbGxiYWNrLCBn
cG9pbnRlciB1c2VyRGF0YSkgLT4gZ2Jvb2xlYW4KKyAgICB7CisgICAgICAgIGJvb2wgcmVwZWF0
ID0gY2FsbGJhY2sodXNlckRhdGEpOworICAgICAgICBpZiAocmVwZWF0KQorICAgICAgICAgICAg
Z19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUoc291cmNlLCBnX3NvdXJjZV9nZXRfdGltZShzb3VyY2Up
ICsgcmVpbnRlcnByZXRfY2FzdDxNaWNyb3NlY29uZHNUaW1lb3V0U291cmNlKj4oc291cmNlKS0+
ZGVsYXkpOworICAgICAgICByZXR1cm4gcmVwZWF0OworICAgIH0sCisgICAgbnVsbHB0ciwgLy8g
ZmluYWxpemUKKyAgICBudWxscHRyLCAvLyBjbG9zdXJlX2NhbGxiYWNrCisgICAgbnVsbHB0ciAv
LyBjbG9zdXJlX21hcnNoYWxsCit9OworCitzdGF0aWMgR1NvdXJjZSogY3JlYXRlTWljcm9zZWNv
bmRzVGltZW91dFNvdXJjZSh1aW50NjRfdCBkZWxheSkKK3sKKyAgICBHU291cmNlKiBzb3VyY2Ug
PSBnX3NvdXJjZV9uZXcoJm1pY3Jvc2Vjb25kc1RpbWVvdXRTb3VyY2VGdW5jdGlvbnMsIHNpemVv
ZihNaWNyb3NlY29uZHNUaW1lb3V0U291cmNlKSk7CisgICAgcmVpbnRlcnByZXRfY2FzdDxNaWNy
b3NlY29uZHNUaW1lb3V0U291cmNlKj4oc291cmNlKS0+ZGVsYXkgPSBkZWxheTsKKyAgICBnX3Nv
dXJjZV9zZXRfcmVhZHlfdGltZShzb3VyY2UsIGdfZ2V0X21vbm90b25pY190aW1lKCkgKyBkZWxh
eSk7CisgICAgcmV0dXJuIHNvdXJjZTsKK30KKwordm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVk
dWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1
bmN0aW9uLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0
ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRl
eHQpCit7CisgICAgY2FuY2VsKCk7CisKKyAgICBBU1NFUlQoIW1fY29udGV4dC5zb3VyY2UpOwor
ICAgIG1fY29udGV4dCA9IHsKKyAgICAgICAgYWRvcHRHUmVmKGNyZWF0ZU1pY3Jvc2Vjb25kc1Rp
bWVvdXRTb3VyY2UoZGVsYXkuY291bnQoKSkpLAorICAgICAgICBudWxscHRyLCAvLyBjYW5jZWxs
YWJsZQorICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYW5jZWxsYWJsZQorICAgICAgICBXVEY6
Om1vdmUoZnVuY3Rpb24pLAorICAgICAgICBudWxscHRyLCAvLyBib29sQ2FsbGJhY2sKKyAgICAg
ICAgbnVsbHB0ciwgLy8gc29ja2V0Q2FsbGJhY2sKKyAgICAgICAgV1RGOjptb3ZlKGRlc3Ryb3lG
dW5jdGlvbikKKyAgICB9OworICAgIHNjaGVkdWxlVGltZW91dFNvdXJjZShuYW1lLCByZWludGVy
cHJldF9jYXN0PEdTb3VyY2VGdW5jPih2b2lkU291cmNlQ2FsbGJhY2spLCBwcmlvcml0eSwgY29u
dGV4dCk7Cit9CisKK3ZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkoY29u
c3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sICgpPiBmdW5jdGlvbiwgc3RkOjpjaHJv
bm86Om1pY3Jvc2Vjb25kcyBkZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAgIGNhbmNl
bCgpOworCisgICAgQVNTRVJUKCFtX2NvbnRleHQuc291cmNlKTsKKyAgICBtX2NvbnRleHQgPSB7
CisgICAgICAgIGFkb3B0R1JlZihjcmVhdGVNaWNyb3NlY29uZHNUaW1lb3V0U291cmNlKGRlbGF5
LmNvdW50KCkpKSwKKyAgICAgICAgbnVsbHB0ciwgLy8gY2FuY2VsbGFibGUKKyAgICAgICAgbnVs
bHB0ciwgLy8gc29ja2V0Q2FuY2VsbGFibGUKKyAgICAgICAgbnVsbHB0ciwgLy8gdm9pZENhbGxi
YWNrCisgICAgICAgIFdURjo6bW92ZShmdW5jdGlvbiksCisgICAgICAgIG51bGxwdHIsIC8vIHNv
Y2tldENhbGxiYWNrCisgICAgICAgIFdURjo6bW92ZShkZXN0cm95RnVuY3Rpb24pCisgICAgfTsK
KyAgICBzY2hlZHVsZVRpbWVvdXRTb3VyY2UobmFtZSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNl
RnVuYz4oYm9vbFNvdXJjZUNhbGxiYWNrKSwgcHJpb3JpdHksIGNvbnRleHQpOworfQorCit2b2lk
IEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBbmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hhciog
bmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9uLCBpbnQgcHJpb3JpdHksIHN0ZDo6
ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkK
K3sKKyAgICBjcmVhdGUoKS5zY2hlZHVsZShuYW1lLCBmdW5jdGlvbiwgcHJpb3JpdHksIGRlc3Ry
b3lGdW5jdGlvbiwgY29udGV4dCk7Cit9CisKK3ZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVs
ZUFuZERlbGV0ZU9uRGVzdHJveShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2wo
KT4gZnVuY3Rpb24sIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lG
dW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAgIGNyZWF0ZSgpLnNjaGVkdWxl
KG5hbWUsIGZ1bmN0aW9uLCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKK30K
Kwordm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVz
dHJveShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24sIHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlv
bjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAg
IGNyZWF0ZSgpLnNjaGVkdWxlQWZ0ZXJEZWxheShuYW1lLCBmdW5jdGlvbiwgZGVsYXksIHByaW9y
aXR5LCBkZXN0cm95RnVuY3Rpb24sIGNvbnRleHQpOworfQorCit2b2lkIEdNYWluTG9vcFNvdXJj
ZTo6c2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUs
IHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBkZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0
aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgY3JlYXRlKCkuc2NoZWR1bGVBZnRl
ckRlbGF5KG5hbWUsIGZ1bmN0aW9uLCBkZWxheSwgcHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwg
Y29udGV4dCk7Cit9CisKK3ZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXlB
bmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+
IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6c2Vjb25kcyBkZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQp
Cit7CisgICAgY3JlYXRlKCkuc2NoZWR1bGVBZnRlckRlbGF5KG5hbWUsIGZ1bmN0aW9uLCBkZWxh
eSwgcHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwgY29udGV4dCk7Cit9CisKK3ZvaWQgR01haW5M
b29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hh
ciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6c2Vj
b25kcyBkZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1
bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgY3JlYXRlKCkuc2NoZWR1bGVB
ZnRlckRlbGF5KG5hbWUsIGZ1bmN0aW9uLCBkZWxheSwgcHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlv
biwgY29udGV4dCk7Cit9CisKK3ZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVs
YXlBbmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lk
KCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3Jp
dHksIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCog
Y29udGV4dCkKK3sKKyAgICBjcmVhdGUoKS5zY2hlZHVsZUFmdGVyRGVsYXkobmFtZSwgZnVuY3Rp
b24sIGRlbGF5LCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKK30KKwordm9p
ZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJveShj
b25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4gZnVuY3Rpb24sIHN0ZDo6Y2hy
b25vOjptaWNyb3NlY29uZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lk
KCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAgIGNyZWF0
ZSgpLnNjaGVkdWxlQWZ0ZXJEZWxheShuYW1lLCBmdW5jdGlvbiwgZGVsYXksIHByaW9yaXR5LCBk
ZXN0cm95RnVuY3Rpb24sIGNvbnRleHQpOworfQorCitib29sIEdNYWluTG9vcFNvdXJjZTo6cHJl
cGFyZVZvaWRDYWxsYmFjayhDb250ZXh0JiBjb250ZXh0KQoreworICAgIGlmICghbV9jb250ZXh0
LnNvdXJjZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29udGV4dCA9IFdURjo6bW92
ZShtX2NvbnRleHQpOworCisgICAgQVNTRVJUKGNvbnRleHQudm9pZENhbGxiYWNrKTsKKyAgICBB
U1NFUlQobV9zdGF0dXMgPT0gU2NoZWR1bGVkKTsKKyAgICBtX3N0YXR1cyA9IERpc3BhdGNoaW5n
OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgR01haW5Mb29wU291cmNlOjpmaW5pc2hW
b2lkQ2FsbGJhY2soKQoreworICAgIG1fc3RhdHVzID0gUmVhZHk7Cit9CisKK3ZvaWQgR01haW5M
b29wU291cmNlOjp2b2lkQ2FsbGJhY2soKQoreworICAgIENvbnRleHQgY29udGV4dDsKKyAgICBp
ZiAoIXByZXBhcmVWb2lkQ2FsbGJhY2soY29udGV4dCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGNvbnRleHQudm9pZENhbGxiYWNrKCk7CisgICAgaWYgKG1fc3RhdHVzICE9IFJlYWR5ICYmICFt
X2NvbnRleHQuc291cmNlKSB7CisgICAgICAgIC8vIFN3aXRjaCB0byBSZWFkeSBpZiBpdCBoYXNu
J3QgYmVlbiByZS1zY2hlZHVsZWQgb3IgY2FuY2VsbGVkLgorICAgICAgICBmaW5pc2hWb2lkQ2Fs
bGJhY2soKTsKKyAgICB9CisKKyAgICBjb250ZXh0LmRlc3Ryb3lTb3VyY2UoKTsKKyAgICBpZiAo
bV9kZWxldGVPbkRlc3Ryb3kgPT0gRGVsZXRlT25EZXN0cm95KQorICAgICAgICBkZWxldGUgdGhp
czsKK30KKworYm9vbCBHTWFpbkxvb3BTb3VyY2U6OnByZXBhcmVCb29sQ2FsbGJhY2soQ29udGV4
dCYgY29udGV4dCkKK3sKKyAgICBpZiAoIW1fY29udGV4dC5zb3VyY2UpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGNvbnRleHQgPSBXVEY6Om1vdmUobV9jb250ZXh0KTsKKworICAgIEFT
U0VSVChjb250ZXh0LmJvb2xDYWxsYmFjayk7CisgICAgQVNTRVJUKG1fc3RhdHVzID09IFNjaGVk
dWxlZCB8fCBtX3N0YXR1cyA9PSBEaXNwYXRjaGluZyk7CisgICAgbV9zdGF0dXMgPSBEaXNwYXRj
aGluZzsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBHTWFpbkxvb3BTb3VyY2U6OmZpbmlz
aEJvb2xDYWxsYmFjayhib29sIHJldHZhbCwgQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICAvLyBt
X3N0YXR1cyBzaG91bGQgcmVmbGVjdCB3aGV0aGVyIHRoZSBHTWFpbkxvb3BTb3VyY2UgaGFzIGJl
ZW4gcmVzY2hlZHVsZWQgZHVyaW5nIGRpc3BhdGNoLgorICAgIEFTU0VSVCgoIW1fY29udGV4dC5z
b3VyY2UgJiYgbV9zdGF0dXMgPT0gRGlzcGF0Y2hpbmcpIHx8IG1fc3RhdHVzID09IFNjaGVkdWxl
ZCk7CisgICAgaWYgKHJldHZhbCAmJiAhbV9jb250ZXh0LnNvdXJjZSkKKyAgICAgICAgbV9jb250
ZXh0ID0gV1RGOjptb3ZlKGNvbnRleHQpOworICAgIGVsc2UgaWYgKCFyZXR2YWwpCisgICAgICAg
IG1fc3RhdHVzID0gUmVhZHk7Cit9CisKK2Jvb2wgR01haW5Mb29wU291cmNlOjpib29sQ2FsbGJh
Y2soKQoreworICAgIENvbnRleHQgY29udGV4dDsKKyAgICBpZiAoIXByZXBhcmVCb29sQ2FsbGJh
Y2soY29udGV4dCkpCisgICAgICAgIHJldHVybiBTdG9wOworCisgICAgYm9vbCByZXR2YWwgPSBj
b250ZXh0LmJvb2xDYWxsYmFjaygpOworICAgIGlmIChtX3N0YXR1cyAhPSBSZWFkeSAmJiAhbV9j
b250ZXh0LnNvdXJjZSkgeworICAgICAgICAvLyBQcmVwYXJlIGZvciBhIG5ldyBpdGVyYXRpb24g
b3Igc3dpdGNoIHRvIFJlYWR5IGlmIGl0IGhhc24ndCBiZWVuIHJlLXNjaGVkdWxlZCBvciBjYW5j
ZWxsZWQuCisgICAgICAgIGZpbmlzaEJvb2xDYWxsYmFjayhyZXR2YWwsIGNvbnRleHQpOworICAg
IH0KKworICAgIGlmIChjb250ZXh0LnNvdXJjZSkgeworICAgICAgICBjb250ZXh0LmRlc3Ryb3lT
b3VyY2UoKTsKKyAgICAgICAgaWYgKG1fZGVsZXRlT25EZXN0cm95ID09IERlbGV0ZU9uRGVzdHJv
eSkKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworICAgIHJldHVybiByZXR2YWw7
Cit9CisKK2Jvb2wgR01haW5Mb29wU291cmNlOjpzb2NrZXRDYWxsYmFjayhHSU9Db25kaXRpb24g
Y29uZGl0aW9uKQoreworICAgIGlmICghbV9jb250ZXh0LnNvdXJjZSkKKyAgICAgICAgcmV0dXJu
IFN0b3A7CisKKyAgICBDb250ZXh0IGNvbnRleHQ7CisgICAgY29udGV4dCA9IFdURjo6bW92ZSht
X2NvbnRleHQpOworCisgICAgQVNTRVJUKGNvbnRleHQuc29ja2V0Q2FsbGJhY2spOworICAgIEFT
U0VSVChtX3N0YXR1cyA9PSBTY2hlZHVsZWQgfHwgbV9zdGF0dXMgPT0gRGlzcGF0Y2hpbmcpOwor
ICAgIG1fc3RhdHVzID0gRGlzcGF0Y2hpbmc7CisKKyAgICBpZiAoZ19jYW5jZWxsYWJsZV9pc19j
YW5jZWxsZWQoY29udGV4dC5zb2NrZXRDYW5jZWxsYWJsZS5nZXQoKSkpIHsKKyAgICAgICAgY29u
dGV4dC5kZXN0cm95U291cmNlKCk7CisgICAgICAgIHJldHVybiBTdG9wOworICAgIH0KKworICAg
IGJvb2wgcmV0dmFsID0gY29udGV4dC5zb2NrZXRDYWxsYmFjayhjb25kaXRpb24pOworCisgICAg
aWYgKG1fc3RhdHVzICE9IFJlYWR5ICYmICFtX2NvbnRleHQuc291cmNlKSB7CisgICAgICAgIC8v
IG1fc3RhdHVzIHNob3VsZCByZWZsZWN0IHdoZXRoZXIgdGhlIEdNYWluTG9vcFNvdXJjZSBoYXMg
YmVlbiByZXNjaGVkdWxlZCBkdXJpbmcgZGlzcGF0Y2guCisgICAgICAgIEFTU0VSVCgoIW1fY29u
dGV4dC5zb3VyY2UgJiYgbV9zdGF0dXMgPT0gRGlzcGF0Y2hpbmcpIHx8IG1fc3RhdHVzID09IFNj
aGVkdWxlZCk7CisgICAgICAgIGlmIChyZXR2YWwgJiYgIW1fY29udGV4dC5zb3VyY2UpCisgICAg
ICAgICAgICBtX2NvbnRleHQgPSBXVEY6Om1vdmUoY29udGV4dCk7CisgICAgICAgIGVsc2UgaWYg
KCFyZXR2YWwpCisgICAgICAgICAgICBtX3N0YXR1cyA9IFJlYWR5OworICAgIH0KKworICAgIGlm
IChjb250ZXh0LnNvdXJjZSkKKyAgICAgICAgY29udGV4dC5kZXN0cm95U291cmNlKCk7CisKKyAg
ICByZXR1cm4gcmV0dmFsOworfQorCitnYm9vbGVhbiBHTWFpbkxvb3BTb3VyY2U6OnZvaWRTb3Vy
Y2VDYWxsYmFjayhHTWFpbkxvb3BTb3VyY2UqIHNvdXJjZSkKK3sKKyAgICBzb3VyY2UtPnZvaWRD
YWxsYmFjaygpOworICAgIHJldHVybiBHX1NPVVJDRV9SRU1PVkU7Cit9CisKK2dib29sZWFuIEdN
YWluTG9vcFNvdXJjZTo6Ym9vbFNvdXJjZUNhbGxiYWNrKEdNYWluTG9vcFNvdXJjZSogc291cmNl
KQoreworICAgIHJldHVybiBzb3VyY2UtPmJvb2xDYWxsYmFjaygpID09IENvbnRpbnVlOworfQor
CitnYm9vbGVhbiBHTWFpbkxvb3BTb3VyY2U6OnNvY2tldFNvdXJjZUNhbGxiYWNrKEdTb2NrZXQq
LCBHSU9Db25kaXRpb24gY29uZGl0aW9uLCBHTWFpbkxvb3BTb3VyY2UqIHNvdXJjZSkKK3sKKyAg
ICByZXR1cm4gc291cmNlLT5zb2NrZXRDYWxsYmFjayhjb25kaXRpb24pID09IENvbnRpbnVlOwor
fQorCit2b2lkIEdNYWluTG9vcFNvdXJjZTo6Q29udGV4dDo6ZGVzdHJveVNvdXJjZSgpCit7Cisg
ICAgZ19zb3VyY2VfZGVzdHJveShzb3VyY2UuZ2V0KCkpOworICAgIGlmIChkZXN0cm95Q2FsbGJh
Y2spCisgICAgICAgIGRlc3Ryb3lDYWxsYmFjaygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYK
KworI2VuZGlmIC8vIFVTRShHTElCKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9H
TWFpbkxvb3BTb3VyY2UuaCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR01haW5Mb29wU291cmNlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzNjMTEwOGJlZTU5NTdiYWNjNTE0YTU2Nzc3MzkxYjBmNGU5ZjAzNQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR01haW5Mb29wU291cmNlLmgKQEAg
LTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBHTWFpbkxvb3BTb3VyY2VfaAorI2RlZmluZSBHTWFpbkxvb3BTb3Vy
Y2VfaAorCisjaWYgVVNFKEdMSUIpCisKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUg
PGdsaWIuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HUmVmUHRyLmg+CisKK3R5cGVkZWYgc3RydWN0IF9HU29ja2V0IEdTb2NrZXQ7CisKK25hbWVz
cGFjZSBXVEYgeworCitjbGFzcyBHTWFpbkxvb3BTb3VyY2UgeworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEdNYWluTG9vcFNvdXJjZSk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEdNYWluTG9vcFNvdXJjZSgpOworICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5HTWFpbkxvb3BTb3VyY2UoKTsKKworICAgIHN0YXRp
YyBjb25zdCBib29sIFN0b3AgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBDb250aW51
ZSA9IHRydWU7CisKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc1NjaGVkdWxlZCgpIGNv
bnN0OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzQWN0aXZlKCkgY29uc3Q7CisKKyAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHNjaGVkdWxlKGNvbnN0IGNoYXIqIG5h
bWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZB
VUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01h
aW5Db250ZXh0KiA9IG51bGxwdHIpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZv
aWQgc2NoZWR1bGUoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+LCBpbnQg
cHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0
cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7CisgICAgV1RG
X0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hh
ciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
LCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgp
PiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7Cisg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXkoY29u
c3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+LCBzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzLCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0
cik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFmdGVyRGVs
YXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+LCBzdGQ6OmNocm9ubzo6
c2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxw
dHIpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBZnRlckRl
bGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPiwgc3RkOjpjaHJvbm86
OnNlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlv
bjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxs
cHRyKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHNjaGVkdWxlQWZ0ZXJE
ZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4sIHN0ZDo6Y2hyb25v
OjptaWNyb3NlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCog
PSBudWxscHRyKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHNjaGVkdWxl
QWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4sIHN0ZDo6
Y2hyb25vOjptaWNyb3NlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29u
dGV4dCogPSBudWxscHRyKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIGNh
bmNlbCgpOworCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2NoZWR1bGUoY29uc3QgY2hh
ciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKEdJT0NvbmRpdGlvbik+LCBHU29ja2V0KiwgR0lP
Q29uZGl0aW9uLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0
ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIpOworCisgICAgc3RhdGljIHZvaWQgc2NoZWR1bGVB
bmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+
LCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgp
PiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7Cisg
ICAgc3RhdGljIHZvaWQgc2NoZWR1bGVBbmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hhciogbmFt
ZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+LCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFV
TFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFp
bkNvbnRleHQqID0gbnVsbHB0cik7CisgICAgc3RhdGljIHZvaWQgc2NoZWR1bGVBZnRlckRlbGF5
QW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgp
Piwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9E
RUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwg
R01haW5Db250ZXh0KiA9IG51bGxwdHIpOworICAgIHN0YXRpYyB2b2lkIHNjaGVkdWxlQWZ0ZXJE
ZWxheUFuZERlbGV0ZU9uRGVzdHJveShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJv
b2woKT4sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJ
VFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxw
dHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKTsKKyAgICBzdGF0aWMgdm9pZCBzY2hlZHVsZUFm
dGVyRGVsYXlBbmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlv
bjx2b2lkKCk+LCBzdGQ6OmNocm9ubzo6c2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklU
WV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0
ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIpOworICAgIHN0YXRpYyB2b2lkIHNjaGVkdWxlQWZ0
ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJveShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9u
PGJvb2woKT4sIHN0ZDo6Y2hyb25vOjpzZWNvbmRzLCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZ
X0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRy
LCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7CisgICAgc3RhdGljIHZvaWQgc2NoZWR1bGVBZnRl
ckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklP
UklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVs
bHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIpOworICAgIHN0YXRpYyB2b2lkIHNjaGVkdWxl
QWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJveShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0
aW9uPGJvb2woKT4sIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMsIGludCBwcmlvcml0eSA9IEdf
UFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9
IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKTsKKworcHJvdGVjdGVkOgorICAgIGVu
dW0gU3RhdHVzIHsgUmVhZHksIFNjaGVkdWxlZCwgRGlzcGF0Y2hpbmcgfTsKKworICAgIHN0cnVj
dCBDb250ZXh0IHsKKyAgICAgICAgQ29udGV4dCgpID0gZGVmYXVsdDsKKyAgICAgICAgQ29udGV4
dCYgb3BlcmF0b3I9KENvbnRleHQmJiBjKQorICAgICAgICB7CisgICAgICAgICAgICBzb3VyY2Ug
PSBXVEY6Om1vdmUoYy5zb3VyY2UpOworICAgICAgICAgICAgY2FuY2VsbGFibGUgPSBXVEY6Om1v
dmUoYy5jYW5jZWxsYWJsZSk7CisgICAgICAgICAgICBzb2NrZXRDYW5jZWxsYWJsZSA9IFdURjo6
bW92ZShjLnNvY2tldENhbmNlbGxhYmxlKTsKKyAgICAgICAgICAgIHZvaWRDYWxsYmFjayA9IFdU
Rjo6bW92ZShjLnZvaWRDYWxsYmFjayk7CisgICAgICAgICAgICBib29sQ2FsbGJhY2sgPSBXVEY6
Om1vdmUoYy5ib29sQ2FsbGJhY2spOworICAgICAgICAgICAgc29ja2V0Q2FsbGJhY2sgPSBXVEY6
Om1vdmUoYy5zb2NrZXRDYWxsYmFjayk7CisgICAgICAgICAgICBkZXN0cm95Q2FsbGJhY2sgPSBX
VEY6Om1vdmUoYy5kZXN0cm95Q2FsbGJhY2spOworICAgICAgICAgICAgcmV0dXJuICp0aGlzOwor
ICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkZXN0cm95U291cmNlKCk7CisKKyAgICAgICAgR1Jl
ZlB0cjxHU291cmNlPiBzb3VyY2U7CisgICAgICAgIEdSZWZQdHI8R0NhbmNlbGxhYmxlPiBjYW5j
ZWxsYWJsZTsKKyAgICAgICAgR1JlZlB0cjxHQ2FuY2VsbGFibGU+IHNvY2tldENhbmNlbGxhYmxl
OworICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IHZvaWRDYWxsYmFjazsKKyAgICAgICAg
c3RkOjpmdW5jdGlvbjxib29sICgpPiBib29sQ2FsbGJhY2s7CisgICAgICAgIHN0ZDo6ZnVuY3Rp
b248Ym9vbCAoR0lPQ29uZGl0aW9uKT4gc29ja2V0Q2FsbGJhY2s7CisgICAgICAgIHN0ZDo6ZnVu
Y3Rpb248dm9pZCAoKT4gZGVzdHJveUNhbGxiYWNrOworICAgIH07CisKKyAgICB2aXJ0dWFsIHZv
aWQgdm9pZENhbGxiYWNrKCk7CisgICAgdmlydHVhbCBib29sIGJvb2xDYWxsYmFjaygpOworCisg
ICAgdmlydHVhbCBib29sIHByZXBhcmVWb2lkQ2FsbGJhY2soQ29udGV4dCYpOworICAgIHZpcnR1
YWwgdm9pZCBmaW5pc2hWb2lkQ2FsbGJhY2soKTsKKyAgICB2aXJ0dWFsIGJvb2wgcHJlcGFyZUJv
b2xDYWxsYmFjayhDb250ZXh0Jik7CisgICAgdmlydHVhbCB2b2lkIGZpbmlzaEJvb2xDYWxsYmFj
ayhib29sIHJldHZhbCwgQ29udGV4dCYpOworCitwcml2YXRlOgorICAgIHN0YXRpYyBHTWFpbkxv
b3BTb3VyY2UmIGNyZWF0ZSgpOworCisgICAgZW51bSBEZWxldGVPbkRlc3Ryb3lUeXBlIHsgRGVs
ZXRlT25EZXN0cm95LCBEb05vdERlbGV0ZU9uRGVzdHJveSB9OworICAgIEdNYWluTG9vcFNvdXJj
ZShEZWxldGVPbkRlc3Ryb3lUeXBlKTsKKworICAgIHZvaWQgc2NoZWR1bGVJZGxlU291cmNlKGNv
bnN0IGNoYXIqIG5hbWUsIEdTb3VyY2VGdW5jLCBpbnQgcHJpb3JpdHksIEdNYWluQ29udGV4dCop
OworICAgIHZvaWQgc2NoZWR1bGVUaW1lb3V0U291cmNlKGNvbnN0IGNoYXIqIG5hbWUsIEdTb3Vy
Y2VGdW5jLCBpbnQgcHJpb3JpdHksIEdNYWluQ29udGV4dCopOworICAgIGJvb2wgc29ja2V0Q2Fs
bGJhY2soR0lPQ29uZGl0aW9uKTsKKworICAgIHN0YXRpYyBnYm9vbGVhbiB2b2lkU291cmNlQ2Fs
bGJhY2soR01haW5Mb29wU291cmNlKik7CisgICAgc3RhdGljIGdib29sZWFuIGJvb2xTb3VyY2VD
YWxsYmFjayhHTWFpbkxvb3BTb3VyY2UqKTsKKyAgICBzdGF0aWMgZ2Jvb2xlYW4gc29ja2V0U291
cmNlQ2FsbGJhY2soR1NvY2tldCosIEdJT0NvbmRpdGlvbiwgR01haW5Mb29wU291cmNlKik7CisK
KyAgICBEZWxldGVPbkRlc3Ryb3lUeXBlIG1fZGVsZXRlT25EZXN0cm95OworCitwcm90ZWN0ZWQ6
CisgICAgQ29udGV4dCBtX2NvbnRleHQ7CisgICAgU3RhdHVzIG1fc3RhdHVzOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6R01haW5Mb29wU291cmNlOworCisjZW5kaWYg
Ly8gVVNFKEdMSUIpCisKKyNlbmRpZiAvLyBHTWFpbkxvb3BTb3VyY2VfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvZ2xpYi9HTXV0ZXhMb2NrZXIuaCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIv
R011dGV4TG9ja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWVmYmZmMDAwMDg5MWI0YmUyNGM1ZGI1ZmY4MjEx
MTA2ZWM2Y2NmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR011dGV4
TG9ja2VyLmgKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEzIENv
bGxhYm9yYSBMdGQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgR011dGV4TG9ja2VyX2gKKyNkZWZpbmUg
R011dGV4TG9ja2VyX2gKKworI2lmIFVTRShHTElCKQorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8
dHlwZW5hbWUgVD4KK3N0cnVjdCBNdXRleFdyYXBwZXI7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBN
dXRleFdyYXBwZXI8R011dGV4PiB7CisgICAgc3RhdGljIHZvaWQgbG9jayhHTXV0ZXgqIG11dGV4
KQorICAgIHsKKyAgICAgICAgZ19tdXRleF9sb2NrKG11dGV4KTsKKyAgICB9CisKKyAgICBzdGF0
aWMgdm9pZCB1bmxvY2soR011dGV4KiBtdXRleCkKKyAgICB7CisgICAgICAgIGdfbXV0ZXhfdW5s
b2NrKG11dGV4KTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTXV0ZXhXcmFwcGVy
PEdSZWNNdXRleD4geworICAgIHN0YXRpYyB2b2lkIGxvY2soR1JlY011dGV4KiBtdXRleCkKKyAg
ICB7CisgICAgICAgIGdfcmVjX211dGV4X2xvY2sobXV0ZXgpOworICAgIH0KKworICAgIHN0YXRp
YyB2b2lkIHVubG9jayhHUmVjTXV0ZXgqIG11dGV4KQorICAgIHsKKyAgICAgICAgZ19yZWNfbXV0
ZXhfdW5sb2NrKG11dGV4KTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xh
c3MgR011dGV4TG9ja2VyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTXV0ZXhMb2NrZXIp
OworcHVibGljOgorICAgIGV4cGxpY2l0IEdNdXRleExvY2tlcihUJiBtdXRleCkKKyAgICAgICAg
OiBtX211dGV4KG11dGV4KQorICAgICAgICAsIG1fbG9ja2VkKGZhbHNlKQorICAgIHsKKyAgICAg
ICAgbG9jaygpOworICAgIH0KKworICAgIH5HTXV0ZXhMb2NrZXIoKQorICAgIHsKKyAgICAgICAg
dW5sb2NrKCk7CisgICAgfQorCisgICAgdm9pZCBsb2NrKCkKKyAgICB7CisgICAgICAgIGlmICht
X2xvY2tlZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBNdXRleFdyYXBwZXI8VD46
OmxvY2soJm1fbXV0ZXgpOworICAgICAgICBtX2xvY2tlZCA9IHRydWU7CisgICAgfQorCisgICAg
dm9pZCB1bmxvY2soKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2xvY2tlZCkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBtX2xvY2tlZCA9IGZhbHNlOworICAgICAgICBNdXRleFdyYXBw
ZXI8VD46OnVubG9jaygmbV9tdXRleCk7CisgICAgfQorCitwcml2YXRlOgorICAgIFQmIG1fbXV0
ZXg7CisgICAgYm9vbCBtX2xvY2tlZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5k
aWYgLy8gVVNFKEdMSUIpCisKKyNlbmRpZiAvLyBHTXV0ZXhMb2NrZXJfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvZ2xpYi9HUmVmUHRyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1Jl
ZlB0ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzUyMjA5NWFmMzY1OGY5MzFkMDQ3OTlhNTFhYzcwODEzMzEy
MWI5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5jcHAK
QEAgLTAsMCArMSwxNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgTWFydGluIFJvYmlu
c29uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiR1JlZlB0ci5oIgorCisjaWYgVVNFKEdMSUIpCisKKyNpbmNsdWRlIDxnbGli
LW9iamVjdC5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBs
YXRlIDw+IEdIYXNoVGFibGUqIHJlZkdQdHIoR0hhc2hUYWJsZSogcHRyKQoreworICAgIGlmIChw
dHIpCisgICAgICAgIGdfaGFzaF90YWJsZV9yZWYocHRyKTsKKyAgICByZXR1cm4gcHRyOworfQor
Cit0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHSGFzaFRhYmxlKiBwdHIpCit7CisgICAgaWYg
KHB0cikKKyAgICAgICAgZ19oYXNoX3RhYmxlX3VucmVmKHB0cik7Cit9CisKK3RlbXBsYXRlIDw+
IEdNYWluQ29udGV4dCogcmVmR1B0cihHTWFpbkNvbnRleHQqIHB0cikKK3sKKyAgICBpZiAocHRy
KQorICAgICAgICBnX21haW5fY29udGV4dF9yZWYocHRyKTsKKyAgICByZXR1cm4gcHRyOworfQor
Cit0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHTWFpbkNvbnRleHQqIHB0cikKK3sKKyAgICBp
ZiAocHRyKQorICAgICAgICBnX21haW5fY29udGV4dF91bnJlZihwdHIpOworfQorCit0ZW1wbGF0
ZSA8PiBHTWFpbkxvb3AqIHJlZkdQdHIoR01haW5Mb29wKiBwdHIpCit7CisgICAgaWYgKHB0cikK
KyAgICAgICAgZ19tYWluX2xvb3BfcmVmKHB0cik7CisgICAgcmV0dXJuIHB0cjsKK30KKwordGVt
cGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR01haW5Mb29wKiBwdHIpCit7CisgICAgaWYgKHB0cikK
KyAgICAgICAgZ19tYWluX2xvb3BfdW5yZWYocHRyKTsKK30KKwordGVtcGxhdGUgPD4gR0J5dGVz
KiByZWZHUHRyKEdCeXRlcyogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdfYnl0ZXNf
cmVmKHB0cik7CisgICAgcmV0dXJuIHB0cjsKK30KKwordGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQ
dHIoR0J5dGVzKiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgZ19ieXRlc191bnJlZihw
dHIpOworfQorCit0ZW1wbGF0ZSA8PiBHVmFyaWFudCogcmVmR1B0cihHVmFyaWFudCogcHRyKQor
eworICAgIGlmIChwdHIpCisgICAgICAgIGdfdmFyaWFudF9yZWZfc2luayhwdHIpOworICAgIHJl
dHVybiBwdHI7Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdWYXJpYW50KiBwdHIp
Cit7CisgICAgaWYgKHB0cikKKyAgICAgICAgZ192YXJpYW50X3VucmVmKHB0cik7Cit9CisKK3Rl
bXBsYXRlIDw+IEdWYXJpYW50QnVpbGRlciogcmVmR1B0cihHVmFyaWFudEJ1aWxkZXIqIHB0cikK
K3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9yZWYocHRyKTsKKyAg
ICByZXR1cm4gcHRyOworfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHVmFyaWFudEJ1
aWxkZXIqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl91
bnJlZihwdHIpOworfQorCit0ZW1wbGF0ZSA8PiBHU291cmNlKiByZWZHUHRyKEdTb3VyY2UqIHB0
cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX3NvdXJjZV9yZWYocHRyKTsKKyAgICByZXR1
cm4gcHRyOworfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHU291cmNlKiBwdHIpCit7
CisgICAgaWYgKHB0cikKKyAgICAgICAgZ19zb3VyY2VfdW5yZWYocHRyKTsKK30KKwordGVtcGxh
dGUgPD4gR1B0ckFycmF5KiByZWZHUHRyKEdQdHJBcnJheSogcHRyKQoreworICAgIGlmIChwdHIp
CisgICAgICAgIGdfcHRyX2FycmF5X3JlZihwdHIpOworICAgIHJldHVybiBwdHI7Cit9CisKK3Rl
bXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdQdHJBcnJheSogcHRyKQoreworICAgIGlmIChwdHIp
CisgICAgICAgIGdfcHRyX2FycmF5X3VucmVmKHB0cik7Cit9CisKK3RlbXBsYXRlIDw+IEdCeXRl
QXJyYXkqIHJlZkdQdHIoR0J5dGVBcnJheSogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAg
IGdfYnl0ZV9hcnJheV9yZWYocHRyKTsKKyAgICByZXR1cm4gcHRyOworfQorCit0ZW1wbGF0ZSA8
PiB2b2lkIGRlcmVmR1B0cihHQnl0ZUFycmF5KiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAg
ICAgZ19ieXRlX2FycmF5X3VucmVmKHB0cik7Cit9CisKK3RlbXBsYXRlIDw+IEdDbG9zdXJlKiBy
ZWZHUHRyKEdDbG9zdXJlKiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgZ19jbG9zdXJl
X3JlZihwdHIpOworICAgIHJldHVybiBwdHI7Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQgZGVyZWZH
UHRyKEdDbG9zdXJlKiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgZ19jbG9zdXJlX3Vu
cmVmKHB0cik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gVVNFKEdMSUIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dSZWZQdHIuaCBiL1NvdXJjZS9XVEYv
d3RmL2dsaWIvR1JlZlB0ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlZTY5NzU5ZmU0NWY1ZjEwNDllNzE2ZWI1
ODAxNGRhYmY1MWM2YjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dS
ZWZQdHIuaApAQCAtMCwwICsxLDI2MSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHly
aWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgorICogIENvcHlyaWdodCAoQykgMjAwOSBNYXJ0
aW4gUm9iaW5zb24KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgV1RGX0dSZWZQdHJfaAorI2RlZmlu
ZSBXVEZfR1JlZlB0cl9oCisKKyNpZiBVU0UoR0xJQikKKworI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCitleHRl
cm4gIkMiIHZvaWQgZ19vYmplY3RfdW5yZWYoZ3BvaW50ZXIpOworZXh0ZXJuICJDIiBncG9pbnRl
ciBnX29iamVjdF9yZWZfc2luayhncG9pbnRlcik7CisKK25hbWVzcGFjZSBXVEYgeworCitlbnVt
IEdSZWZQdHJBZG9wdFR5cGUgeyBHUmVmUHRyQWRvcHQgfTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
PiBpbmxpbmUgVCogcmVmR1B0cihUKik7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIHZv
aWQgZGVyZWZHUHRyKFQqKTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBHUmVmUHRyOwor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IEdSZWZQdHI8VD4gYWRvcHRHUmVmKFQqKTsKKwordGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEdSZWZQdHIgeworcHVibGljOgorICAgIHR5cGVkZWYgVCBW
YWx1ZVR5cGU7CisgICAgdHlwZWRlZiBWYWx1ZVR5cGUqIFB0clR5cGU7CisKKyAgICBHUmVmUHRy
KCkgOiBtX3B0cigwKSB7IH0KKworICAgIEdSZWZQdHIoVCogcHRyKQorICAgICAgICA6IG1fcHRy
KHB0cikKKyAgICB7CisgICAgICAgIGlmIChwdHIpCisgICAgICAgICAgICByZWZHUHRyKHB0cik7
CisgICAgfQorCisgICAgR1JlZlB0cihjb25zdCBHUmVmUHRyJiBvKQorICAgICAgICA6IG1fcHRy
KG8ubV9wdHIpCisgICAgeworICAgICAgICBpZiAoVCogcHRyID0gbV9wdHIpCisgICAgICAgICAg
ICByZWZHUHRyKHB0cik7CisgICAgfQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IEdSZWZQ
dHIoY29uc3QgR1JlZlB0cjxVPiYgbykKKyAgICAgICAgOiBtX3B0cihvLmdldCgpKQorICAgIHsK
KyAgICAgICAgaWYgKFQqIHB0ciA9IG1fcHRyKQorICAgICAgICAgICAgcmVmR1B0cihwdHIpOwor
ICAgIH0KKworICAgIEdSZWZQdHIoR1JlZlB0ciYmIG8pIDogbV9wdHIoby5sZWFrUmVmKCkpIHsg
fQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBHUmVmUHRyKEdSZWZQdHI8VT4mJiBvKSA6IG1f
cHRyKG8ubGVha1JlZigpKSB7IH0KKworICAgIH5HUmVmUHRyKCkKKyAgICB7CisgICAgICAgIGlm
IChUKiBwdHIgPSBtX3B0cikKKyAgICAgICAgICAgIGRlcmVmR1B0cihwdHIpOworICAgIH0KKwor
ICAgIHZvaWQgY2xlYXIoKQorICAgIHsKKyAgICAgICAgVCogcHRyID0gbV9wdHI7CisgICAgICAg
IG1fcHRyID0gMDsKKyAgICAgICAgaWYgKHB0cikKKyAgICAgICAgICAgIGRlcmVmR1B0cihwdHIp
OworICAgIH0KKworICAgIFQqIGxlYWtSZWYoKSBXQVJOX1VOVVNFRF9SRVRVUk4KKyAgICB7Cisg
ICAgICAgIFQqIHB0ciA9IG1fcHRyOworICAgICAgICBtX3B0ciA9IDA7CisgICAgICAgIHJldHVy
biBwdHI7CisgICAgfQorCisgICAgVComIG91dFB0cigpCisgICAgeworICAgICAgICBBU1NFUlQo
IW1fcHRyKTsKKyAgICAgICAgcmV0dXJuIG1fcHRyOworICAgIH0KKworICAgIC8vIEhhc2ggdGFi
bGUgZGVsZXRlZCB2YWx1ZXMsIHdoaWNoIGFyZSBvbmx5IGNvbnN0cnVjdGVkIGFuZCBuZXZlciBj
b3BpZWQgb3IgZGVzdHJveWVkLgorICAgIEdSZWZQdHIoSGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlw
ZSkgOiBtX3B0cihoYXNoVGFibGVEZWxldGVkVmFsdWUoKSkgeyB9CisgICAgYm9vbCBpc0hhc2hU
YWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyID09IGhhc2hUYWJsZURlbGV0
ZWRWYWx1ZSgpOyB9CisKKyAgICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQorICAg
IFQmIG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuICptX3B0cjsgfQorICAgIEFMV0FZU19JTkxJ
TkUgVCogb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9CisKKyAgICBib29sIG9w
ZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX3B0cjsgfQorCisgICAgLy8gVGhpcyBjb252ZXJz
aW9uIG9wZXJhdG9yIGFsbG93cyBpbXBsaWNpdCBjb252ZXJzaW9uIHRvIGJvb2wgYnV0IG5vdCB0
byBvdGhlciBpbnRlZ2VyIHR5cGVzLgorICAgIHR5cGVkZWYgVCogR1JlZlB0cjo6KlVuc3BlY2lm
aWVkQm9vbFR5cGU7CisgICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHRyID8gJkdSZWZQdHI6Om1fcHRyIDogMDsgfQorCisgICAgR1JlZlB0ciYgb3Bl
cmF0b3I9KGNvbnN0IEdSZWZQdHImKTsKKyAgICBHUmVmUHRyJiBvcGVyYXRvcj0oR1JlZlB0ciYm
KTsKKyAgICBHUmVmUHRyJiBvcGVyYXRvcj0oVCopOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBV
PiBHUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgR1JlZlB0cjxVPiYpOworCisgICAgdm9pZCBzd2Fw
KEdSZWZQdHImKTsKKyAgICBmcmllbmQgR1JlZlB0ciBhZG9wdEdSZWY8VD4oVCopOworCitwcml2
YXRlOgorICAgIHN0YXRpYyBUKiBoYXNoVGFibGVEZWxldGVkVmFsdWUoKSB7IHJldHVybiByZWlu
dGVycHJldF9jYXN0PFQqPigtMSk7IH0KKyAgICAvLyBBZG9wdGluZyBjb25zdHJ1Y3Rvci4KKyAg
ICBHUmVmUHRyKFQqIHB0ciwgR1JlZlB0ckFkb3B0VHlwZSkgOiBtX3B0cihwdHIpIHt9CisKKyAg
ICBUKiBtX3B0cjsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgR1JlZlB0cjxU
PiYgR1JlZlB0cjxUPjo6b3BlcmF0b3I9KGNvbnN0IEdSZWZQdHI8VD4mIG8pCit7CisgICAgVCog
b3B0ciA9IG8uZ2V0KCk7CisgICAgaWYgKG9wdHIpCisgICAgICAgIHJlZkdQdHIob3B0cik7Cisg
ICAgVCogcHRyID0gbV9wdHI7CisgICAgbV9wdHIgPSBvcHRyOworICAgIGlmIChwdHIpCisgICAg
ICAgIGRlcmVmR1B0cihwdHIpOworICAgIHJldHVybiAqdGhpczsKK30KKwordGVtcGxhdGUgPHR5
cGVuYW1lIFQ+IGlubGluZSBHUmVmUHRyPFQ+JiBHUmVmUHRyPFQ+OjpvcGVyYXRvcj0oR1JlZlB0
cjxUPiYmIG8pCit7CisgICAgR1JlZlB0ciBwdHIgPSBXVEY6Om1vdmUobyk7CisgICAgc3dhcChw
dHIpOworICAgIHJldHVybiAqdGhpczsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGlu
ZSBHUmVmUHRyPFQ+JiBHUmVmUHRyPFQ+OjpvcGVyYXRvcj0oVCogb3B0cikKK3sKKyAgICBUKiBw
dHIgPSBtX3B0cjsKKyAgICBpZiAob3B0cikKKyAgICAgICAgcmVmR1B0cihvcHRyKTsKKyAgICBt
X3B0ciA9IG9wdHI7CisgICAgaWYgKHB0cikKKyAgICAgICAgZGVyZWZHUHRyKHB0cik7CisgICAg
cmV0dXJuICp0aGlzOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gaW5saW5lIHZvaWQgR1JlZlB0
cjxUPjo6c3dhcChHUmVmUHRyPFQ+JiBvKQoreworICAgIHN0ZDo6c3dhcChtX3B0ciwgby5tX3B0
cik7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBUPiBpbmxpbmUgdm9pZCBzd2FwKEdSZWZQdHI8VD4m
IGEsIEdSZWZQdHI8VD4mIGIpCit7CisgICAgYS5zd2FwKGIpOworfQorCit0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHUmVmUHRy
PFQ+JiBhLCBjb25zdCBHUmVmUHRyPFU+JiBiKQoreworICAgIHJldHVybiBhLmdldCgpID09IGIu
Z2V0KCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEdSZWZQdHI8VD4mIGEsIFUqIGIpCit7CisgICAgcmV0dXJuIGEu
Z2V0KCkgPT0gYjsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGlu
ZSBib29sIG9wZXJhdG9yPT0oVCogYSwgY29uc3QgR1JlZlB0cjxVPiYgYikKK3sKKyAgICByZXR1
cm4gYSA9PSBiLmdldCgpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4g
aW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBHUmVmUHRyPFQ+JiBhLCBjb25zdCBHUmVmUHRy
PFU+JiBiKQoreworICAgIHJldHVybiBhLmdldCgpICE9IGIuZ2V0KCk7Cit9CisKK3RlbXBsYXRl
IDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEdS
ZWZQdHI8VD4mIGEsIFUqIGIpCit7CisgICAgcmV0dXJuIGEuZ2V0KCkgIT0gYjsKK30KKwordGVt
cGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0oVCog
YSwgY29uc3QgR1JlZlB0cjxVPiYgYikKK3sKKyAgICByZXR1cm4gYSAhPSBiLmdldCgpOworfQor
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIEdSZWZQdHI8VD4gc3Rh
dGljX3BvaW50ZXJfY2FzdChjb25zdCBHUmVmUHRyPFU+JiBwKQoreworICAgIHJldHVybiBHUmVm
UHRyPFQ+KHN0YXRpY19jYXN0PFQqPihwLmdldCgpKSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgR1JlZlB0cjxUPiBjb25zdF9wb2ludGVyX2Nhc3QoY29u
c3QgR1JlZlB0cjxVPiYgcCkKK3sKKyAgICByZXR1cm4gR1JlZlB0cjxUPihjb25zdF9jYXN0PFQq
PihwLmdldCgpKSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgSXNTbWFydFB0
cjxHUmVmUHRyPFQ+PiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOworfTsK
KwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IEdSZWZQdHI8VD4gYWRvcHRHUmVmKFQqIHApCit7Cisg
ICAgcmV0dXJuIEdSZWZQdHI8VD4ocCwgR1JlZlB0ckFkb3B0KTsKK30KKwordGVtcGxhdGUgPD4g
V1RGX0VYUE9SVF9QUklWQVRFIEdIYXNoVGFibGUqIHJlZkdQdHIoR0hhc2hUYWJsZSogcHRyKTsK
K3RlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRlcmVmR1B0cihHSGFzaFRhYmxl
KiBwdHIpOwordGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIEdNYWluQ29udGV4dCogcmVm
R1B0cihHTWFpbkNvbnRleHQqIHB0cik7Cit0ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBkZXJlZkdQdHIoR01haW5Db250ZXh0KiBwdHIpOwordGVtcGxhdGUgPD4gV1RGX0VYUE9S
VF9QUklWQVRFIEdNYWluTG9vcCogcmVmR1B0cihHTWFpbkxvb3AqIHB0cik7Cit0ZW1wbGF0ZSA8
PiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXJlZkdQdHIoR01haW5Mb29wKiBwdHIpOwordGVt
cGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIEdWYXJpYW50KiByZWZHUHRyKEdWYXJpYW50KiBw
dHIpOwordGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVyZWZHUHRyKEdWYXJp
YW50KiBwdHIpOwordGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIEdWYXJpYW50QnVpbGRl
ciogcmVmR1B0cihHVmFyaWFudEJ1aWxkZXIqIHB0cik7Cit0ZW1wbGF0ZSA8PiBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBkZXJlZkdQdHIoR1ZhcmlhbnRCdWlsZGVyKiBwdHIpOwordGVtcGxhdGUg
PD4gV1RGX0VYUE9SVF9QUklWQVRFIEdTb3VyY2UqIHJlZkdQdHIoR1NvdXJjZSogcHRyKTsKK3Rl
bXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRlcmVmR1B0cihHU291cmNlKiBwdHIp
OwordGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIEdQdHJBcnJheSogcmVmR1B0cihHUHRy
QXJyYXkqKTsKK3RlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRlcmVmR1B0cihH
UHRyQXJyYXkqKTsKK3RlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSBHQnl0ZUFycmF5KiBy
ZWZHUHRyKEdCeXRlQXJyYXkqKTsKK3RlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IGRlcmVmR1B0cihHQnl0ZUFycmF5Kik7Cit0ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUg
R0J5dGVzKiByZWZHUHRyKEdCeXRlcyopOwordGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgZGVyZWZHUHRyKEdCeXRlcyopOwordGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRF
IEdDbG9zdXJlKiByZWZHUHRyKEdDbG9zdXJlKik7Cit0ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBkZXJlZkdQdHIoR0Nsb3N1cmUqKTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IGlubGluZSBUKiByZWZHUHRyKFQqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX29i
amVjdF9yZWZfc2luayhwdHIpOworICAgIHJldHVybiBwdHI7Cit9CisKK3RlbXBsYXRlIDx0eXBl
bmFtZSBUPiBpbmxpbmUgdm9pZCBkZXJlZkdQdHIoVCogcHRyKQoreworICAgIGlmIChwdHIpCisg
ICAgICAgIGdfb2JqZWN0X3VucmVmKHB0cik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1
c2luZyBXVEY6OkdSZWZQdHI7Cit1c2luZyBXVEY6OmFkb3B0R1JlZjsKKworI2VuZGlmIC8vIFVT
RShHTElCKQorCisjZW5kaWYgLy8gV1RGX0dSZWZQdHJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvZ2xpYi9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L2dsaWIvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY4MzA1NDk2
NzAwNTI0YTgwMzVhNDRmNDk0MjU4NzRlMDkxYzIyYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL2dsaWIvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5jcHAKQEAgLTAsMCArMSwx
NzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2Uu
aCIKKworI2lmIFVTRShHTElCKQorCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1ZGUgPHd0
Zi9nbGliL0dNdXRleExvY2tlci5oPgorCituYW1lc3BhY2UgV1RGIHsKKworR1RocmVhZFNhZmVN
YWluTG9vcFNvdXJjZTo6R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSgpCit7CisgICAgZ19yZWNf
bXV0ZXhfaW5pdCgmbV9tdXRleCk7Cit9CisKK0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6On5H
VGhyZWFkU2FmZU1haW5Mb29wU291cmNlKCkKK3sKKyAgICBjYW5jZWwoKTsKKyAgICBnX3JlY19t
dXRleF9jbGVhcigmbV9tdXRleCk7Cit9CisKK3ZvaWQgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJj
ZTo6Y2FuY2VsKCkKK3sKKyAgICBHTXV0ZXhMb2NrZXI8R1JlY011dGV4PiBsb2NrZXIobV9tdXRl
eCk7CisKKyAgICAvLyBUaGUgZ2VuZXJhbCBjYW5jZWxsYWJsZSBvYmplY3Qgc2hvdWxkIG9ubHkg
YmUgcHJlc2VudCBpZiB3ZSdyZSBjdXJyZW50bHkgZGlzcGF0Y2hpbmcgdGhpcyBHTWFpbkxvb3BT
b3VyY2UuCisgICAgQVNTRVJUKCFtX2NhbmNlbGxhYmxlIHx8IG1fc3RhdHVzID09IERpc3BhdGNo
aW5nKTsKKworICAgIC8vIFRoZSBzb3VyY2UgaXMgcGVyaGFwcyBiZWluZyBjYW5jZWxsZWQgaW4g
dGhlIG1pZGRsZSBvZiBhIGNhbGxiYWNrIGRpc3BhdGNoLgorICAgIC8vIENhbmNlbGxpbmcgdGhp
cyBHQ2FuY2VsbGFibGUgb2JqZWN0IHdpbGwgY29udmV5IHRoaXMgaW5mb3JtYXRpb24gdG8gdGhl
CisgICAgLy8gY3VycmVudCBleGVjdXRpb24gY29udGV4dCB3aGVuIHRoZSBjYWxsYmFjayBkaXNw
YXRjaCBpcyBmaW5pc2hlZC4KKyAgICBnX2NhbmNlbGxhYmxlX2NhbmNlbChtX2NhbmNlbGxhYmxl
LmdldCgpKTsKKyAgICBtX2NhbmNlbGxhYmxlID0gbnVsbHB0cjsKKworICAgIEdNYWluTG9vcFNv
dXJjZTo6Y2FuY2VsKCk7Cit9CisKK3ZvaWQgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6c2No
ZWR1bGUoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbiwg
aW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01h
aW5Db250ZXh0KiBjb250ZXh0KQoreworICAgIEdNdXRleExvY2tlcjxHUmVjTXV0ZXg+IGxvY2tl
cihtX211dGV4KTsKKyAgICBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlKG5hbWUsIGZ1bmN0aW9u
LCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKKyAgICBtX2NvbnRleHQuY2Fu
Y2VsbGFibGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7Cit9CisKK3ZvaWQgR1Ro
cmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGUoY29uc3QgY2hhciogbmFtZSwgc3RkOjpm
dW5jdGlvbjxib29sICgpPiBmdW5jdGlvbiwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZv
aWQgKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAgIEdN
dXRleExvY2tlcjxHUmVjTXV0ZXg+IGxvY2tlcihtX211dGV4KTsKKyAgICBHTWFpbkxvb3BTb3Vy
Y2U6OnNjaGVkdWxlKG5hbWUsIGZ1bmN0aW9uLCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0aW9uLCBj
b250ZXh0KTsKKyAgICBtX2NvbnRleHQuY2FuY2VsbGFibGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxs
YWJsZV9uZXcoKSk7Cit9CisKK3ZvaWQgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6c2NoZWR1
bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVu
Y3Rpb24sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3Rk
OjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4
dCkKK3sKKyAgICBHTXV0ZXhMb2NrZXI8R1JlY011dGV4PiBsb2NrZXIobV9tdXRleCk7CisgICAg
R01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkobmFtZSwgZnVuY3Rpb24sIGRlbGF5
LCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKKyAgICBtX2NvbnRleHQuY2Fu
Y2VsbGFibGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7Cit9CisKK3ZvaWQgR1Ro
cmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5h
bWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95
RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBHTXV0ZXhMb2NrZXI8R1Jl
Y011dGV4PiBsb2NrZXIobV9tdXRleCk7CisgICAgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFm
dGVyRGVsYXkobmFtZSwgZnVuY3Rpb24sIGRlbGF5LCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0aW9u
LCBjb250ZXh0KTsKKyAgICBtX2NvbnRleHQuY2FuY2VsbGFibGUgPSBhZG9wdEdSZWYoZ19jYW5j
ZWxsYWJsZV9uZXcoKSk7Cit9CisKK3ZvaWQgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6c2No
ZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4g
ZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0ZDo6
ZnVuY3Rpb248dm9pZCAoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQp
Cit7CisgICAgR011dGV4TG9ja2VyPEdSZWNNdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAgIEdN
YWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KG5hbWUsIGZ1bmN0aW9uLCBkZWxheSwg
cHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwgY29udGV4dCk7CisgICAgbV9jb250ZXh0LmNhbmNl
bGxhYmxlID0gYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOworfQorCit2b2lkIEdUaHJl
YWRTYWZlTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1l
LCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6c2Vjb25kcyBk
ZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGRlc3Ryb3lGdW5jdGlv
biwgR01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAgIEdNdXRleExvY2tlcjxHUmVjTXV0ZXg+
IGxvY2tlcihtX211dGV4KTsKKyAgICBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxh
eShuYW1lLCBmdW5jdGlvbiwgZGVsYXksIHByaW9yaXR5LCBkZXN0cm95RnVuY3Rpb24sIGNvbnRl
eHQpOworICAgIG1fY29udGV4dC5jYW5jZWxsYWJsZSA9IGFkb3B0R1JlZihnX2NhbmNlbGxhYmxl
X25ldygpKTsKK30KKworYm9vbCBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpwcmVwYXJlVm9p
ZENhbGxiYWNrKENvbnRleHQmIGNvbnRleHQpCit7CisgICAgR011dGV4TG9ja2VyPEdSZWNNdXRl
eD4gbG9ja2VyKG1fbXV0ZXgpOworICAgIGJvb2wgcmV0dmFsID0gR01haW5Mb29wU291cmNlOjpw
cmVwYXJlVm9pZENhbGxiYWNrKGNvbnRleHQpOworICAgIG1fY2FuY2VsbGFibGUgPSBjb250ZXh0
LmNhbmNlbGxhYmxlOworICAgIHJldHVybiByZXR2YWw7Cit9CisKK3ZvaWQgR1RocmVhZFNhZmVN
YWluTG9vcFNvdXJjZTo6ZmluaXNoVm9pZENhbGxiYWNrKCkKK3sKKyAgICBHTXV0ZXhMb2NrZXI8
R1JlY011dGV4PiBsb2NrZXIobV9tdXRleCk7CisgICAgR01haW5Mb29wU291cmNlOjpmaW5pc2hW
b2lkQ2FsbGJhY2soKTsKKyAgICBtX2NhbmNlbGxhYmxlID0gbnVsbHB0cjsKK30KKwordm9pZCBH
VGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjp2b2lkQ2FsbGJhY2soKQoreworICAgIENvbnRleHQg
Y29udGV4dDsKKyAgICBpZiAoIXByZXBhcmVWb2lkQ2FsbGJhY2soY29udGV4dCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGNvbnRleHQudm9pZENhbGxiYWNrKCk7CisKKyAgICBpZiAoZ19jYW5j
ZWxsYWJsZV9pc19jYW5jZWxsZWQoY29udGV4dC5jYW5jZWxsYWJsZS5nZXQoKSkpIHsKKyAgICAg
ICAgY29udGV4dC5kZXN0cm95U291cmNlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBmaW5pc2hWb2lkQ2FsbGJhY2soKTsKKyAgICBjb250ZXh0LmRlc3Ryb3lTb3VyY2UoKTsKK30K
KworYm9vbCBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpwcmVwYXJlQm9vbENhbGxiYWNrKENv
bnRleHQmIGNvbnRleHQpCit7CisgICAgR011dGV4TG9ja2VyPEdSZWNNdXRleD4gbG9ja2VyKG1f
bXV0ZXgpOworICAgIGJvb2wgcmV0dmFsID0gR01haW5Mb29wU291cmNlOjpwcmVwYXJlQm9vbENh
bGxiYWNrKGNvbnRleHQpOworICAgIG1fY2FuY2VsbGFibGUgPSBjb250ZXh0LmNhbmNlbGxhYmxl
OworICAgIHJldHVybiByZXR2YWw7Cit9CisKK3ZvaWQgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJj
ZTo6ZmluaXNoQm9vbENhbGxiYWNrKGJvb2wgcmV0dmFsLCBDb250ZXh0JiBjb250ZXh0KQorewor
ICAgIEdNdXRleExvY2tlcjxHUmVjTXV0ZXg+IGxvY2tlcihtX211dGV4KTsKKyAgICBHTWFpbkxv
b3BTb3VyY2U6OmZpbmlzaEJvb2xDYWxsYmFjayhyZXR2YWwsIGNvbnRleHQpOworICAgIG1fY2Fu
Y2VsbGFibGUgPSBudWxscHRyOworfQorCitib29sIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6
OmJvb2xDYWxsYmFjaygpCit7CisgICAgQ29udGV4dCBjb250ZXh0OworICAgIGlmICghcHJlcGFy
ZUJvb2xDYWxsYmFjayhjb250ZXh0KSkKKyAgICAgICAgcmV0dXJuIFN0b3A7CisKKyAgICBib29s
IHJldHZhbCA9IGNvbnRleHQuYm9vbENhbGxiYWNrKCk7CisKKyAgICBpZiAoZ19jYW5jZWxsYWJs
ZV9pc19jYW5jZWxsZWQoY29udGV4dC5jYW5jZWxsYWJsZS5nZXQoKSkpIHsKKyAgICAgICAgY29u
dGV4dC5kZXN0cm95U291cmNlKCk7CisgICAgICAgIHJldHVybiBTdG9wOworICAgIH0KKworICAg
IGZpbmlzaEJvb2xDYWxsYmFjayhyZXR2YWwsIGNvbnRleHQpOworICAgIGlmIChjb250ZXh0LnNv
dXJjZSkKKyAgICAgICAgY29udGV4dC5kZXN0cm95U291cmNlKCk7CisgICAgcmV0dXJuIHJldHZh
bDsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBVU0UoR0xJQikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5oIGIv
U291cmNlL1dURi93dGYvZ2xpYi9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTAwNjkxYThjNDg3YjIyYjJiNDAzMDdmZTg4M2ZjYmFhYmE1MDQxMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5oCkBA
IC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlX2gKKyNkZWZpbmUgR1Ro
cmVhZFNhZmVNYWluTG9vcFNvdXJjZV9oCisKKyNpZiBVU0UoR0xJQikKKworI2luY2x1ZGUgPHd0
Zi9nbGliL0dNYWluTG9vcFNvdXJjZS5oPgorCit0eXBlZGVmIHN0cnVjdCBfR1JlY011dGV4IEdS
ZWNNdXRleDsKKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEdUaHJlYWRTYWZlTWFpbkxvb3BT
b3VyY2UgZmluYWwgOiBwdWJsaWMgR01haW5Mb29wU291cmNlIHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgR1RocmVhZFNhZmVNYWlu
TG9vcFNvdXJjZSgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5HVGhyZWFkU2Fm
ZU1haW5Mb29wU291cmNlKCk7CisKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lk
IHNjaGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgaW50IHBy
aW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJv
eUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIpIG92ZXJyaWRlOwor
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgc2NoZWR1bGUoY29uc3QgY2hhciog
bmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+LCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RF
RkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBH
TWFpbkNvbnRleHQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzLCBpbnQgcHJpb3JpdHkg
PSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rp
b24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgV1RG
X0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hh
ciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
LCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgp
PiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFmdGVy
RGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+LCBzdGQ6OmNocm9u
bzo6c2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51
bGxwdHIpIG92ZXJyaWRlOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgc2No
ZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPiwg
c3RkOjpjaHJvbm86OnNlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29u
dGV4dCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVh
bCB2b2lkIGNhbmNlbCgpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCB2
b2lkQ2FsbGJhY2soKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgYm9vbENhbGxiYWNrKCkg
b3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIGJvb2wgcHJlcGFyZVZvaWRDYWxsYmFjayhDb250ZXh0
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGZpbmlzaFZvaWRDYWxsYmFjaygpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBwcmVwYXJlQm9vbENhbGxiYWNrKENvbnRleHQmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoQm9vbENhbGxiYWNrKGJvb2wgcmV0dmFsLCBD
b250ZXh0Jikgb3ZlcnJpZGU7CisKKyAgICBHUmVjTXV0ZXggbV9tdXRleDsKKyAgICBHUmVmUHRy
PEdDYW5jZWxsYWJsZT4gbV9jYW5jZWxsYWJsZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgor
Cit1c2luZyBXVEY6OkdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U7CisKKyNlbmRpZiAvLyBVU0Uo
R0xJQikKKworI2VuZGlmIC8vIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2VfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvZ2xpYi9HVHlwZWRlZnMuaCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIv
R1R5cGVkZWZzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ1OTM3NGQ4MzdkZmRlNjQ1ZDk1NmU2MzUzMTIzMjgx
YTZiOGMwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1R5cGVkZWZz
LmgKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhLCBT
LkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKyNpZm5kZWYgV1RGX0dUeXBlZGVmc19oCisjZGVmaW5lIFdURl9HVHlw
ZWRlZnNfaAorCisvKiBWYW5pbGxhIEMgY29kZSBkb2VzIG5vdCBzZWVtIHRvIGJlIGFibGUgdG8g
aGFuZGxlIGZvcndhcmQtZGVjbGFyYXRpb24gdHlwZWRlZnMuICovCisjaWZkZWYgIF9fY3BsdXNw
bHVzCisKK3R5cGVkZWYgY2hhciBnY2hhcjsKK3R5cGVkZWYgZG91YmxlIGdkb3VibGU7Cit0eXBl
ZGVmIGZsb2F0IGdmbG9hdDsKK3R5cGVkZWYgaW50IGdpbnQ7Cit0eXBlZGVmIGdpbnQgZ2Jvb2xl
YW47Cit0eXBlZGVmIGxvbmcgZ2xvbmc7Cit0eXBlZGVmIHNob3J0IGdzaG9ydDsKK3R5cGVkZWYg
dW5zaWduZWQgY2hhciBndWNoYXI7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBndWludDsKK3R5cGVk
ZWYgdW5zaWduZWQgbG9uZyBndWxvbmc7Cit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGd1c2hvcnQ7
Cit0eXBlZGVmIHZvaWQqIGdwb2ludGVyOworCit0eXBlZGVmIHN0cnVjdCBfR0FzeW5jUmVzdWx0
IEdBc3luY1Jlc3VsdDsKK3R5cGVkZWYgc3RydWN0IF9HQ2FuY2VsbGFibGUgR0NhbmNlbGxhYmxl
OwordHlwZWRlZiBzdHJ1Y3QgX0dDaGFyc2V0Q29udmVydGVyIEdDaGFyc2V0Q29udmVydGVyOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEaXIgR0RpcjsKK3R5cGVkZWYgc3RydWN0IF9HZGtBdG9tKiBHZGtB
dG9tOwordHlwZWRlZiBzdHJ1Y3QgX0dka0N1cnNvciBHZGtDdXJzb3I7Cit0eXBlZGVmIHN0cnVj
dCBfR2RrRHJhZ0NvbnRleHQgR2RrRHJhZ0NvbnRleHQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RrRXZl
bnRDb25maWd1cmUgR2RrRXZlbnRDb25maWd1cmU7Cit0eXBlZGVmIHN0cnVjdCBfR2RrRXZlbnRF
eHBvc2UgR2RrRXZlbnRFeHBvc2U7Cit0eXBlZGVmIHN0cnVjdCBfR2RrUGl4YnVmIEdka1BpeGJ1
ZjsKK3R5cGVkZWYgc3RydWN0IF9HRXJyb3IgR0Vycm9yOwordHlwZWRlZiBzdHJ1Y3QgX0dGaWxl
IEdGaWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dIYXNoVGFibGUgR0hhc2hUYWJsZTsKK3R5cGVkZWYg
c3RydWN0IF9HSW5wdXRTdHJlYW0gR0lucHV0U3RyZWFtOwordHlwZWRlZiBzdHJ1Y3QgX0dMaXN0
IEdMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dNYWluQ29udGV4dCBHTWFpbkNvbnRleHQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR01haW5Mb29wIEdNYWluTG9vcDsKK3R5cGVkZWYgc3RydWN0IF9HUGF0dGVy
blNwZWMgR1BhdHRlcm5TcGVjOwordHlwZWRlZiBzdHJ1Y3QgX0dQb2xsYWJsZU91dHB1dFN0cmVh
bSBHUG9sbGFibGVPdXRwdXRTdHJlYW07Cit0eXBlZGVmIHN0cnVjdCBfR1NMaXN0IEdTTGlzdDsK
K3R5cGVkZWYgc3RydWN0IF9HU29ja2V0Q2xpZW50IEdTb2NrZXRDbGllbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR1NvY2tldENvbm5lY3Rpb24gR1NvY2tldENvbm5lY3Rpb247Cit0eXBlZGVmIHN0cnVj
dCBfR1NvdXJjZSBHU291cmNlOwordHlwZWRlZiBzdHJ1Y3QgX0dWYXJpYW50IEdWYXJpYW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dWYXJpYW50QnVpbGRlciBHVmFyaWFudEJ1aWxkZXI7Cit0eXBlZGVm
IHVuaW9uIF9HZGtFdmVudCBHZGtFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HVGltZXIgR1RpbWVy
OwordHlwZWRlZiBzdHJ1Y3QgX0dLZXlGaWxlIEdLZXlGaWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dQ
dHJBcnJheSBHUHRyQXJyYXk7Cit0eXBlZGVmIHN0cnVjdCBfR0J5dGVBcnJheSBHQnl0ZUFycmF5
OwordHlwZWRlZiBzdHJ1Y3QgX0dCeXRlcyBHQnl0ZXM7Cit0eXBlZGVmIHN0cnVjdCBfR0Nsb3N1
cmUgR0Nsb3N1cmU7CisKKyNpZiBVU0UoQ0FJUk8pCit0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc3Vy
ZmFjZSBjYWlyb19zdXJmYWNlX3Q7Cit0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fcmVjdGFuZ2xlX2lu
dCBjYWlyb19yZWN0YW5nbGVfaW50X3Q7CisjZW5kaWYKKworI2lmIFVTRShDTFVUVEVSKQordHlw
ZWRlZiBzdHJ1Y3QgX0NsdXR0ZXJBY3RvciBDbHV0dGVyQWN0b3I7Cit0eXBlZGVmIHN0cnVjdCBf
R3JhcGhpY3NMYXllckFjdG9yIEdyYXBoaWNzTGF5ZXJBY3RvcjsKKyNlbmRpZgorCisjaWYgUExB
VEZPUk0oR1RLKQordHlwZWRlZiBzdHJ1Y3QgX0d0a0FjdGlvbiBHdGtBY3Rpb247Cit0eXBlZGVm
IHN0cnVjdCBfR3RrQWRqdXN0bWVudCBHdGtBZGp1c3RtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0d0
a0JvcmRlciBHdGtCb3JkZXI7Cit0eXBlZGVmIHN0cnVjdCBfR3RrQ2xpcGJvYXJkIEd0a0NsaXBi
b2FyZDsKK3R5cGVkZWYgc3RydWN0IF9HdGtDb250YWluZXIgR3RrQ29udGFpbmVyOwordHlwZWRl
ZiBzdHJ1Y3QgX0d0a0ljb25JbmZvIEd0a0ljb25JbmZvOwordHlwZWRlZiBzdHJ1Y3QgX0d0a01l
bnUgR3RrTWVudTsKK3R5cGVkZWYgc3RydWN0IF9HdGtNZW51SXRlbSBHdGtNZW51SXRlbTsKK3R5
cGVkZWYgc3RydWN0IF9HdGtPYmplY3QgR3RrT2JqZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0d0a1Nl
bGVjdGlvbkRhdGEgR3RrU2VsZWN0aW9uRGF0YTsKK3R5cGVkZWYgc3RydWN0IF9HdGtTdHlsZSBH
dGtTdHlsZTsKK3R5cGVkZWYgc3RydWN0IF9HdGtUYXJnZXRMaXN0IEd0a1RhcmdldExpc3Q7Cit0
eXBlZGVmIHN0cnVjdCBfR3RrVGhlbWVQYXJ0cyBHdGtUaGVtZVBhcnRzOwordHlwZWRlZiBzdHJ1
Y3QgX0d0a1dpZGdldCBHdGtXaWRnZXQ7Cit0eXBlZGVmIHN0cnVjdCBfR3RrV2luZG93IEd0a1dp
bmRvdzsKKworI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCit0eXBlZGVmIHN0cnVjdCBfR2RrUmVj
dGFuZ2xlIEdka1JlY3RhbmdsZTsKK3R5cGVkZWYgc3RydWN0IF9HZGtEcmF3YWJsZSBHZGtXaW5k
b3c7CisjZWxzZQordHlwZWRlZiBzdHJ1Y3QgX0dka1dpbmRvdyBHZGtXaW5kb3c7Cit0eXBlZGVm
IHN0cnVjdCBfR3RrU3R5bGVDb250ZXh0IEd0a1N0eWxlQ29udGV4dDsKKyNlbmRpZgorCisjZW5k
aWYKKworI2VuZGlmCisjZW5kaWYgLy8gV1RGX0dUeXBlZGVmc19oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9nbGliL0dVbmlxdWVQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1VuaXF1
ZVB0ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNkYTQ4OGE4ODMwN2U0YTgwM2I2MGYxZGI2NjFkYTZhMTczZTE1
ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dVbmlxdWVQdHIuaApA
QCAtMCwwICsxLDEyOCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKgorICovCisKKyNpZm5kZWYgR1VuaXF1ZVB0cl9oCisjZGVmaW5lIEdVbmlxdWVQdHJf
aAorCisjaWYgVVNFKEdMSUIpCisKKyNpbmNsdWRlIDxnaW8vZ2lvLmg+CisjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
Pgorc3RydWN0IEdQdHJEZWxldGVyIHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoVCogcHRyKSBjb25z
dCB7IGdfZnJlZShwdHIpOyB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordXNpbmcgR1Vu
aXF1ZVB0ciA9IHN0ZDo6dW5pcXVlX3B0cjxULCBHUHRyRGVsZXRlcjxUPj47CisKKyNkZWZpbmUg
Rk9SX0VBQ0hfR0xJQl9ERUxFVEVSKG1hY3JvKSBcCisgICAgbWFjcm8oR0Vycm9yLCBnX2Vycm9y
X2ZyZWUpIFwKKyAgICBtYWNybyhHTGlzdCwgZ19saXN0X2ZyZWUpIFwKKyAgICBtYWNybyhHU0xp
c3QsIGdfc2xpc3RfZnJlZSkgXAorICAgIG1hY3JvKEdQYXR0ZXJuU3BlYywgZ19wYXR0ZXJuX3Nw
ZWNfZnJlZSkgXAorICAgIG1hY3JvKEdEaXIsIGdfZGlyX2Nsb3NlKSBcCisgICAgbWFjcm8oR1Rp
bWVyLCBnX3RpbWVyX2Rlc3Ryb3kpIFwKKyAgICBtYWNybyhHS2V5RmlsZSwgZ19rZXlfZmlsZV9m
cmVlKSBcCisgICAgbWFjcm8oY2hhciosIGdfc3RyZnJlZXYpCisKKyNkZWZpbmUgV1RGX0RFRklO
RV9HUFRSX0RFTEVURVIodHlwZU5hbWUsIGRlbGV0ZXJGdW5jKSBcCisgICAgdGVtcGxhdGU8PiBz
dHJ1Y3QgR1B0ckRlbGV0ZXI8dHlwZU5hbWU+IFwKKyAgICB7IFwKKyAgICAgICAgdm9pZCBvcGVy
YXRvcigpICh0eXBlTmFtZSogcHRyKSBjb25zdCBcCisgICAgICAgIHsgXAorICAgICAgICAgICAg
aWYgKHB0cikgXAorICAgICAgICAgICAgICAgIGRlbGV0ZXJGdW5jKHB0cik7IFwKKyAgICAgICAg
fSBcCisgICAgfTsKKworRk9SX0VBQ0hfR0xJQl9ERUxFVEVSKFdURl9ERUZJTkVfR1BUUl9ERUxF
VEVSKQorI3VuZGVmIEZPUl9FQUNIX0dMSUJfREVMRVRFUgorCit0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4gY2xhc3MgR1VuaXF1ZU91dFB0ciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR1VuaXF1
ZU91dFB0cik7CitwdWJsaWM6CisgICAgR1VuaXF1ZU91dFB0cigpCisgICAgICAgIDogbV9wdHIo
bnVsbHB0cikKKyAgICB7CisgICAgfQorCisgICAgfkdVbmlxdWVPdXRQdHIoKQorICAgIHsKKyAg
ICAgICAgcmVzZXQoKTsKKyAgICB9CisKKyAgICBUKiYgb3V0UHRyKCkKKyAgICB7CisgICAgICAg
IHJlc2V0KCk7CisgICAgICAgIHJldHVybiBtX3B0cjsKKyAgICB9CisKKyAgICBHVW5pcXVlUHRy
PFQ+IHJlbGVhc2UoKQorICAgIHsKKyAgICAgICAgR1VuaXF1ZVB0cjxUPiBwdHIobV9wdHIpOwor
ICAgICAgICBtX3B0ciA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiBwdHI7CisgICAgfQorCisg
ICAgVCYgb3BlcmF0b3IqKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3B0cik7Cisg
ICAgICAgIHJldHVybiAqbV9wdHI7CisgICAgfQorCisgICAgVCogb3BlcmF0b3ItPigpIGNvbnN0
CisgICAgeworICAgICAgICBBU1NFUlQobV9wdHIpOworICAgICAgICByZXR1cm4gbV9wdHI7Cisg
ICAgfQorCisgICAgVCogZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KKworICAgIGJvb2wg
b3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gIW1fcHRyOyB9CisKKyAgICAvLyBUaGlzIGNvbnZl
cnNpb24gb3BlcmF0b3IgYWxsb3dzIGltcGxpY2l0IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90
IHRvIG90aGVyIGludGVnZXIgdHlwZXMuCisgICAgdHlwZWRlZiBUKiBHVW5pcXVlT3V0UHRyOjoq
VW5zcGVjaWZpZWRCb29sVHlwZTsKKyAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9wdHIgPyAmR1VuaXF1ZU91dFB0cjo6bV9wdHIgOiAwOyB9CisKK3By
aXZhdGU6CisgICAgdm9pZCByZXNldCgpCisgICAgeworICAgICAgICBpZiAobV9wdHIpIHsKKyAg
ICAgICAgICAgIEdVbmlxdWVQdHI8VD4gZGVsZXRlUHRyKG1fcHRyKTsKKyAgICAgICAgICAgIG1f
cHRyID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKworICAgIFQqIG1fcHRyOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6R1VuaXF1ZVB0cjsKK3VzaW5nIFdURjo6
R1VuaXF1ZU91dFB0cjsKKworI2VuZGlmIC8vIFVTRShHTElCKQorCisjZW5kaWYgLy8gR1VuaXF1
ZVB0cl9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvTWFpblRocmVhZEdMaWIu
Y3BwIGIvU291cmNlL1dURi93dGYvZ2xpYi9NYWluVGhyZWFkR0xpYi5jcHAKaW5kZXggNTk4MTI5
YWY4ZGMyMjQ3ZGU2MmIyMjQ1NjNhMDJkNTI4MjMzNWU3OS4uNjQ5YTlhNTAyYmVkNjQ3NDY5NmE2
MDAzMWI2ZmY0YjZjOWI0M2E3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2xpYi9NYWlu
VGhyZWFkR0xpYi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9NYWluVGhyZWFkR0xpYi5j
cHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNYWlu
VGhyZWFkLmgiCiAKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuaD4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HTWFpbkxvb3BTb3VyY2UuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmNwcCBi
L1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOGM3ODQwOTBiMWJmZjk0NWQ5NDdjZGI4ZjAyODA2NWNkOTQ0ZTVk
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0
NzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiR01haW5Mb29wU291cmNlLmgiCi0K
LSNpZiBVU0UoR0xJQikKLQotI2luY2x1ZGUgPGdpby9naW8uaD4KLQotbmFtZXNwYWNlIFdURiB7
Ci0KLUdNYWluTG9vcFNvdXJjZSYgR01haW5Mb29wU291cmNlOjpjcmVhdGUoKQotewotICAgIHJl
dHVybiAqbmV3IEdNYWluTG9vcFNvdXJjZShEZWxldGVPbkRlc3Ryb3kpOwotfQotCi1HTWFpbkxv
b3BTb3VyY2U6OkdNYWluTG9vcFNvdXJjZSgpCi0gICAgOiBtX2RlbGV0ZU9uRGVzdHJveShEb05v
dERlbGV0ZU9uRGVzdHJveSkKLSAgICAsIG1fc3RhdHVzKFJlYWR5KQotewotfQotCi1HTWFpbkxv
b3BTb3VyY2U6OkdNYWluTG9vcFNvdXJjZShEZWxldGVPbkRlc3Ryb3lUeXBlIGRlbGV0ZU9uRGVz
dHJveSkKLSAgICA6IG1fZGVsZXRlT25EZXN0cm95KGRlbGV0ZU9uRGVzdHJveSkKLSAgICAsIG1f
c3RhdHVzKFJlYWR5KQotewotfQotCi1HTWFpbkxvb3BTb3VyY2U6On5HTWFpbkxvb3BTb3VyY2Uo
KQotewotICAgIGNhbmNlbCgpOwotfQotCi1ib29sIEdNYWluTG9vcFNvdXJjZTo6aXNTY2hlZHVs
ZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX3N0YXR1cyA9PSBTY2hlZHVsZWQ7Ci19Ci0KLWJv
b2wgR01haW5Mb29wU291cmNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc3Rh
dHVzICE9IFJlYWR5OwotfQotCi12b2lkIEdNYWluTG9vcFNvdXJjZTo6Y2FuY2VsKCkKLXsKLSAg
ICAvLyBEZWxldGUtb24tZGVzdHJveSBHTWFpbkxvb3BTb3VyY2Ugb2JqZWN0cyBjYW4ndCBiZSBj
YW5jZWxsZWQuCi0gICAgaWYgKG1fZGVsZXRlT25EZXN0cm95ID09IERlbGV0ZU9uRGVzdHJveSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gQSB2YWxpZCBjb250ZXh0IHNob3VsZCBvbmx5IGJl
IHByZXNlbnQgaWYgR01haW5Mb29wU291cmNlIGlzIGluIHRoZSBTY2hlZHVsZWQgb3IgRGlzcGF0
Y2hpbmcgc3RhdGUuCi0gICAgQVNTRVJUKCFtX2NvbnRleHQuc291cmNlIHx8IG1fc3RhdHVzID09
IFNjaGVkdWxlZCB8fCBtX3N0YXR1cyA9PSBEaXNwYXRjaGluZyk7Ci0KLSAgICBtX3N0YXR1cyA9
IFJlYWR5OwotCi0gICAgZ19jYW5jZWxsYWJsZV9jYW5jZWwobV9jb250ZXh0LnNvY2tldENhbmNl
bGxhYmxlLmdldCgpKTsKLQotICAgIGlmICghbV9jb250ZXh0LnNvdXJjZSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgQ29udGV4dCBjb250ZXh0OwotICAgIGNvbnRleHQgPSBXVEY6Om1vdmUobV9j
b250ZXh0KTsKLSAgICBjb250ZXh0LmRlc3Ryb3lTb3VyY2UoKTsKLX0KLQotdm9pZCBHTWFpbkxv
b3BTb3VyY2U6OnNjaGVkdWxlSWRsZVNvdXJjZShjb25zdCBjaGFyKiBuYW1lLCBHU291cmNlRnVu
YyBzb3VyY2VGdW5jdGlvbiwgaW50IHByaW9yaXR5LCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCi17
Ci0gICAgQVNTRVJUKG1fc3RhdHVzID09IFJlYWR5KTsKLSAgICBtX3N0YXR1cyA9IFNjaGVkdWxl
ZDsKLQotICAgIGdfc291cmNlX3NldF9uYW1lKG1fY29udGV4dC5zb3VyY2UuZ2V0KCksIG5hbWUp
OwotICAgIGlmIChwcmlvcml0eSAhPSBHX1BSSU9SSVRZX0RFRkFVTFRfSURMRSkKLSAgICAgICAg
Z19zb3VyY2Vfc2V0X3ByaW9yaXR5KG1fY29udGV4dC5zb3VyY2UuZ2V0KCksIHByaW9yaXR5KTsK
LSAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV9jb250ZXh0LnNvdXJjZS5nZXQoKSwgc291cmNl
RnVuY3Rpb24sIHRoaXMsIG51bGxwdHIpOwotICAgIGdfc291cmNlX2F0dGFjaChtX2NvbnRleHQu
c291cmNlLmdldCgpLCBjb250ZXh0KTsKLX0KLQotdm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVk
dWxlKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb24sIGlu
dCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWlu
Q29udGV4dCogY29udGV4dCkKLXsKLSAgICBjYW5jZWwoKTsKLQotICAgIEFTU0VSVCghbV9jb250
ZXh0LnNvdXJjZSk7Ci0gICAgbV9jb250ZXh0ID0gewotICAgICAgICBhZG9wdEdSZWYoZ19pZGxl
X3NvdXJjZV9uZXcoKSksCi0gICAgICAgIG51bGxwdHIsIC8vIGNhbmNlbGxhYmxlCi0gICAgICAg
IG51bGxwdHIsIC8vIHNvY2tldENhbmNlbGxhYmxlCi0gICAgICAgIFdURjo6bW92ZShmdW5jdGlv
biksCi0gICAgICAgIG51bGxwdHIsIC8vIGJvb2xDYWxsYmFjawotICAgICAgICBudWxscHRyLCAv
LyBzb2NrZXRDYWxsYmFjawotICAgICAgICBXVEY6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKQotICAg
IH07Ci0gICAgc2NoZWR1bGVJZGxlU291cmNlKG5hbWUsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJj
ZUZ1bmM+KHZvaWRTb3VyY2VDYWxsYmFjayksIHByaW9yaXR5LCBjb250ZXh0KTsKLX0KLQotdm9p
ZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rp
b248Ym9vbCAoKT4gZnVuY3Rpb24sIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgp
PiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBjYW5jZWwo
KTsKLQotICAgIEFTU0VSVCghbV9jb250ZXh0LnNvdXJjZSk7Ci0gICAgbV9jb250ZXh0ID0gewot
ICAgICAgICBhZG9wdEdSZWYoZ19pZGxlX3NvdXJjZV9uZXcoKSksCi0gICAgICAgIG51bGxwdHIs
IC8vIGNhbmNlbGxhYmxlCi0gICAgICAgIG51bGxwdHIsIC8vIHNvY2tldENhbmNlbGxhYmxlCi0g
ICAgICAgIG51bGxwdHIsIC8vIHZvaWRDYWxsYmFjawotICAgICAgICBXVEY6Om1vdmUoZnVuY3Rp
b24pLAotICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYWxsYmFjawotICAgICAgICBXVEY6Om1v
dmUoZGVzdHJveUZ1bmN0aW9uKQotICAgIH07Ci0gICAgc2NoZWR1bGVJZGxlU291cmNlKG5hbWUs
IHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KGJvb2xTb3VyY2VDYWxsYmFjayksIHByaW9y
aXR5LCBjb250ZXh0KTsKLX0KLQotdm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlKGNvbnN0
IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoR0lPQ29uZGl0aW9uKT4gZnVuY3Rpb24s
IEdTb2NrZXQqIHNvY2tldCwgR0lPQ29uZGl0aW9uIGNvbmRpdGlvbiwgc3RkOjpmdW5jdGlvbjx2
b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBj
YW5jZWwoKTsKLQotICAgIEFTU0VSVCghbV9jb250ZXh0LnNvdXJjZSk7Ci0gICAgR0NhbmNlbGxh
YmxlKiBzb2NrZXRDYW5jZWxsYWJsZSA9IGdfY2FuY2VsbGFibGVfbmV3KCk7Ci0gICAgbV9jb250
ZXh0ID0gewotICAgICAgICBhZG9wdEdSZWYoZ19zb2NrZXRfY3JlYXRlX3NvdXJjZShzb2NrZXQs
IGNvbmRpdGlvbiwgc29ja2V0Q2FuY2VsbGFibGUpKSwKLSAgICAgICAgbnVsbHB0ciwgLy8gY2Fu
Y2VsbGFibGUKLSAgICAgICAgYWRvcHRHUmVmKHNvY2tldENhbmNlbGxhYmxlKSwKLSAgICAgICAg
bnVsbHB0ciwgLy8gdm9pZENhbGxiYWNrCi0gICAgICAgIG51bGxwdHIsIC8vIGJvb2xDYWxsYmFj
awotICAgICAgICBXVEY6Om1vdmUoZnVuY3Rpb24pLAotICAgICAgICBXVEY6Om1vdmUoZGVzdHJv
eUZ1bmN0aW9uKQotICAgIH07Ci0KLSAgICBBU1NFUlQobV9zdGF0dXMgPT0gUmVhZHkpOwotICAg
IG1fc3RhdHVzID0gU2NoZWR1bGVkOwotICAgIGdfc291cmNlX3NldF9uYW1lKG1fY29udGV4dC5z
b3VyY2UuZ2V0KCksIG5hbWUpOwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX2NvbnRleHQu
c291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPihzb2NrZXRTb3VyY2VD
YWxsYmFjayksIHRoaXMsIG51bGxwdHIpOwotICAgIGdfc291cmNlX2F0dGFjaChtX2NvbnRleHQu
c291cmNlLmdldCgpLCBjb250ZXh0KTsKLX0KLQotdm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVk
dWxlVGltZW91dFNvdXJjZShjb25zdCBjaGFyKiBuYW1lLCBHU291cmNlRnVuYyBzb3VyY2VGdW5j
dGlvbiwgaW50IHByaW9yaXR5LCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgQVNTRVJU
KG1fc3RhdHVzID09IFJlYWR5KTsKLSAgICBtX3N0YXR1cyA9IFNjaGVkdWxlZDsKLQotICAgIGdf
c291cmNlX3NldF9uYW1lKG1fY29udGV4dC5zb3VyY2UuZ2V0KCksIG5hbWUpOwotICAgIGlmIChw
cmlvcml0eSAhPSBHX1BSSU9SSVRZX0RFRkFVTFQpCi0gICAgICAgIGdfc291cmNlX3NldF9wcmlv
cml0eShtX2NvbnRleHQuc291cmNlLmdldCgpLCBwcmlvcml0eSk7Ci0gICAgZ19zb3VyY2Vfc2V0
X2NhbGxiYWNrKG1fY29udGV4dC5zb3VyY2UuZ2V0KCksIHNvdXJjZUZ1bmN0aW9uLCB0aGlzLCBu
dWxscHRyKTsKLSAgICBnX3NvdXJjZV9hdHRhY2gobV9jb250ZXh0LnNvdXJjZS5nZXQoKSwgY29u
dGV4dCk7Ci19Ci0KLXZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkoY29u
c3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbiwgc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyBkZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQotewotICAgIGNhbmNl
bCgpOwotCi0gICAgQVNTRVJUKCFtX2NvbnRleHQuc291cmNlKTsKLSAgICBtX2NvbnRleHQgPSB7
Ci0gICAgICAgIGFkb3B0R1JlZihnX3RpbWVvdXRfc291cmNlX25ldyhkZWxheS5jb3VudCgpKSks
Ci0gICAgICAgIG51bGxwdHIsIC8vIGNhbmNlbGxhYmxlCi0gICAgICAgIG51bGxwdHIsIC8vIHNv
Y2tldENhbmNlbGxhYmxlCi0gICAgICAgIFdURjo6bW92ZShmdW5jdGlvbiksCi0gICAgICAgIG51
bGxwdHIsIC8vIGJvb2xDYWxsYmFjawotICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYWxsYmFj
awotICAgICAgICBXVEY6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKQotICAgIH07Ci0gICAgc2NoZWR1
bGVUaW1lb3V0U291cmNlKG5hbWUsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KHZvaWRT
b3VyY2VDYWxsYmFjayksIHByaW9yaXR5LCBjb250ZXh0KTsKLX0KLQotdm9pZCBHTWFpbkxvb3BT
b3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9u
PGJvb2wgKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbGF5LCBpbnQg
cHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNv
bnRleHQqIGNvbnRleHQpCi17Ci0gICAgY2FuY2VsKCk7Ci0KLSAgICBBU1NFUlQoIW1fY29udGV4
dC5zb3VyY2UpOwotICAgIG1fY29udGV4dCA9IHsKLSAgICAgICAgYWRvcHRHUmVmKGdfdGltZW91
dF9zb3VyY2VfbmV3KGRlbGF5LmNvdW50KCkpKSwKLSAgICAgICAgbnVsbHB0ciwgLy8gY2FuY2Vs
bGFibGUKLSAgICAgICAgbnVsbHB0ciwgLy8gc29ja2V0Q2FuY2VsbGFibGUKLSAgICAgICAgbnVs
bHB0ciwgLy8gdm9pZENhbGxiYWNrCi0gICAgICAgIFdURjo6bW92ZShmdW5jdGlvbiksCi0gICAg
ICAgIG51bGxwdHIsIC8vIHNvY2tldENhbGxiYWNrCi0gICAgICAgIFdURjo6bW92ZShkZXN0cm95
RnVuY3Rpb24pCi0gICAgfTsKLSAgICBzY2hlZHVsZVRpbWVvdXRTb3VyY2UobmFtZSwgcmVpbnRl
cnByZXRfY2FzdDxHU291cmNlRnVuYz4oYm9vbFNvdXJjZUNhbGxiYWNrKSwgcHJpb3JpdHksIGNv
bnRleHQpOwotfQotCi12b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KGNv
bnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb24sIHN0ZDo6Y2hy
b25vOjpzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4g
ZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgY2FuY2VsKCk7
Ci0KLSAgICBBU1NFUlQoIW1fY29udGV4dC5zb3VyY2UpOwotICAgIG1fY29udGV4dCA9IHsKLSAg
ICAgICAgYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3X3NlY29uZHMoZGVsYXkuY291bnQo
KSkpLAotICAgICAgICBudWxscHRyLCAvLyBjYW5jZWxsYWJsZQotICAgICAgICBudWxscHRyLCAv
LyBzb2NrZXRDYW5jZWxsYWJsZQotICAgICAgICBXVEY6Om1vdmUoZnVuY3Rpb24pLAotICAgICAg
ICBudWxscHRyLCAvLyBib29sQ2FsbGJhY2sKLSAgICAgICAgbnVsbHB0ciwgLy8gc29ja2V0Q2Fs
bGJhY2sKLSAgICAgICAgV1RGOjptb3ZlKGRlc3Ryb3lGdW5jdGlvbikKLSAgICB9OwotICAgIHNj
aGVkdWxlVGltZW91dFNvdXJjZShuYW1lLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPih2
b2lkU291cmNlQ2FsbGJhY2spLCBwcmlvcml0eSwgY29udGV4dCk7Ci19Ci0KLXZvaWQgR01haW5M
b29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5j
dGlvbjxib29sICgpPiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86OnNlY29uZHMgZGVsYXksIGludCBw
cmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29u
dGV4dCogY29udGV4dCkKLXsKLSAgICBjYW5jZWwoKTsKLQotICAgIEFTU0VSVCghbV9jb250ZXh0
LnNvdXJjZSk7Ci0gICAgbV9jb250ZXh0ID0gewotICAgICAgICBhZG9wdEdSZWYoZ190aW1lb3V0
X3NvdXJjZV9uZXdfc2Vjb25kcyhkZWxheS5jb3VudCgpKSksCi0gICAgICAgIG51bGxwdHIsIC8v
IGNhbmNlbGxhYmxlCi0gICAgICAgIG51bGxwdHIsIC8vIHNvY2tldENhbmNlbGxhYmxlCi0gICAg
ICAgIG51bGxwdHIsIC8vIHZvaWRDYWxsYmFjawotICAgICAgICBXVEY6Om1vdmUoZnVuY3Rpb24p
LAotICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYWxsYmFjawotICAgICAgICBXVEY6Om1vdmUo
ZGVzdHJveUZ1bmN0aW9uKQotICAgIH07Ci0gICAgc2NoZWR1bGVUaW1lb3V0U291cmNlKG5hbWUs
IHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KGJvb2xTb3VyY2VDYWxsYmFjayksIHByaW9y
aXR5LCBjb250ZXh0KTsKLX0KLQotc3RydWN0IE1pY3Jvc2Vjb25kc1RpbWVvdXRTb3VyY2Ugewot
ICAgIEdTb3VyY2Ugc291cmNlOwotICAgIHVpbnQ2NF90IGRlbGF5OwotfTsKLQotc3RhdGljIEdT
b3VyY2VGdW5jcyBtaWNyb3NlY29uZHNUaW1lb3V0U291cmNlRnVuY3Rpb25zID0gewotICAgIG51
bGxwdHIsIC8vIHByZXBhcmUKLSAgICBudWxscHRyLCAvLyBjaGVjawotICAgIC8vIGRpc3BhdGNo
Ci0gICAgW10oR1NvdXJjZSogc291cmNlLCBHU291cmNlRnVuYyBjYWxsYmFjaywgZ3BvaW50ZXIg
dXNlckRhdGEpIC0+IGdib29sZWFuCi0gICAgewotICAgICAgICBib29sIHJlcGVhdCA9IGNhbGxi
YWNrKHVzZXJEYXRhKTsKLSAgICAgICAgaWYgKHJlcGVhdCkKLSAgICAgICAgICAgIGdfc291cmNl
X3NldF9yZWFkeV90aW1lKHNvdXJjZSwgZ19zb3VyY2VfZ2V0X3RpbWUoc291cmNlKSArIHJlaW50
ZXJwcmV0X2Nhc3Q8TWljcm9zZWNvbmRzVGltZW91dFNvdXJjZSo+KHNvdXJjZSktPmRlbGF5KTsK
LSAgICAgICAgcmV0dXJuIHJlcGVhdDsKLSAgICB9LAotICAgIG51bGxwdHIsIC8vIGZpbmFsaXpl
Ci0gICAgbnVsbHB0ciwgLy8gY2xvc3VyZV9jYWxsYmFjawotICAgIG51bGxwdHIgLy8gY2xvc3Vy
ZV9tYXJzaGFsbAotfTsKLQotc3RhdGljIEdTb3VyY2UqIGNyZWF0ZU1pY3Jvc2Vjb25kc1RpbWVv
dXRTb3VyY2UodWludDY0X3QgZGVsYXkpCi17Ci0gICAgR1NvdXJjZSogc291cmNlID0gZ19zb3Vy
Y2VfbmV3KCZtaWNyb3NlY29uZHNUaW1lb3V0U291cmNlRnVuY3Rpb25zLCBzaXplb2YoTWljcm9z
ZWNvbmRzVGltZW91dFNvdXJjZSkpOwotICAgIHJlaW50ZXJwcmV0X2Nhc3Q8TWljcm9zZWNvbmRz
VGltZW91dFNvdXJjZSo+KHNvdXJjZSktPmRlbGF5ID0gZGVsYXk7Ci0gICAgZ19zb3VyY2Vfc2V0
X3JlYWR5X3RpbWUoc291cmNlLCBnX2dldF9tb25vdG9uaWNfdGltZSgpICsgZGVsYXkpOwotICAg
IHJldHVybiBzb3VyY2U7Ci19Ci0KLXZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVy
RGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbiwg
c3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBkZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQotewot
ICAgIGNhbmNlbCgpOwotCi0gICAgQVNTRVJUKCFtX2NvbnRleHQuc291cmNlKTsKLSAgICBtX2Nv
bnRleHQgPSB7Ci0gICAgICAgIGFkb3B0R1JlZihjcmVhdGVNaWNyb3NlY29uZHNUaW1lb3V0U291
cmNlKGRlbGF5LmNvdW50KCkpKSwKLSAgICAgICAgbnVsbHB0ciwgLy8gY2FuY2VsbGFibGUKLSAg
ICAgICAgbnVsbHB0ciwgLy8gc29ja2V0Q2FuY2VsbGFibGUKLSAgICAgICAgV1RGOjptb3ZlKGZ1
bmN0aW9uKSwKLSAgICAgICAgbnVsbHB0ciwgLy8gYm9vbENhbGxiYWNrCi0gICAgICAgIG51bGxw
dHIsIC8vIHNvY2tldENhbGxiYWNrCi0gICAgICAgIFdURjo6bW92ZShkZXN0cm95RnVuY3Rpb24p
Ci0gICAgfTsKLSAgICBzY2hlZHVsZVRpbWVvdXRTb3VyY2UobmFtZSwgcmVpbnRlcnByZXRfY2Fz
dDxHU291cmNlRnVuYz4odm9pZFNvdXJjZUNhbGxiYWNrKSwgcHJpb3JpdHksIGNvbnRleHQpOwot
fQotCi12b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIq
IG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjptaWNy
b3NlY29uZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0
cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBjYW5jZWwoKTsKLQot
ICAgIEFTU0VSVCghbV9jb250ZXh0LnNvdXJjZSk7Ci0gICAgbV9jb250ZXh0ID0gewotICAgICAg
ICBhZG9wdEdSZWYoY3JlYXRlTWljcm9zZWNvbmRzVGltZW91dFNvdXJjZShkZWxheS5jb3VudCgp
KSksCi0gICAgICAgIG51bGxwdHIsIC8vIGNhbmNlbGxhYmxlCi0gICAgICAgIG51bGxwdHIsIC8v
IHNvY2tldENhbmNlbGxhYmxlCi0gICAgICAgIG51bGxwdHIsIC8vIHZvaWRDYWxsYmFjawotICAg
ICAgICBXVEY6Om1vdmUoZnVuY3Rpb24pLAotICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYWxs
YmFjawotICAgICAgICBXVEY6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKQotICAgIH07Ci0gICAgc2No
ZWR1bGVUaW1lb3V0U291cmNlKG5hbWUsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KGJv
b2xTb3VyY2VDYWxsYmFjayksIHByaW9yaXR5LCBjb250ZXh0KTsKLX0KLQotdm9pZCBHTWFpbkxv
b3BTb3VyY2U6OnNjaGVkdWxlQW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0
ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbiwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAg
Y3JlYXRlKCkuc2NoZWR1bGUobmFtZSwgZnVuY3Rpb24sIHByaW9yaXR5LCBkZXN0cm95RnVuY3Rp
b24sIGNvbnRleHQpOwotfQotCi12b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBbmREZWxl
dGVPbkRlc3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+IGZ1bmN0
aW9uLCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24s
IEdNYWluQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBjcmVhdGUoKS5zY2hlZHVsZShuYW1lLCBm
dW5jdGlvbiwgcHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwgY29udGV4dCk7Ci19Ci0KLXZvaWQg
R01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRlc3Ryb3koY29u
c3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCgp
PiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBjcmVhdGUo
KS5zY2hlZHVsZUFmdGVyRGVsYXkobmFtZSwgZnVuY3Rpb24sIGRlbGF5LCBwcmlvcml0eSwgZGVz
dHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKLX0KLQotdm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVk
dWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJveShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1
bmN0aW9uPGJvb2woKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsYXks
IGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01h
aW5Db250ZXh0KiBjb250ZXh0KQotewotICAgIGNyZWF0ZSgpLnNjaGVkdWxlQWZ0ZXJEZWxheShu
YW1lLCBmdW5jdGlvbiwgZGVsYXksIHByaW9yaXR5LCBkZXN0cm95RnVuY3Rpb24sIGNvbnRleHQp
OwotfQotCi12b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRl
T25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlv
biwgc3RkOjpjaHJvbm86OnNlY29uZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlv
bjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQotewotICAg
IGNyZWF0ZSgpLnNjaGVkdWxlQWZ0ZXJEZWxheShuYW1lLCBmdW5jdGlvbiwgZGVsYXksIHByaW9y
aXR5LCBkZXN0cm95RnVuY3Rpb24sIGNvbnRleHQpOwotfQotCi12b2lkIEdNYWluTG9vcFNvdXJj
ZTo6c2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUs
IHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86OnNlY29uZHMgZGVs
YXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiwg
R01haW5Db250ZXh0KiBjb250ZXh0KQotewotICAgIGNyZWF0ZSgpLnNjaGVkdWxlQWZ0ZXJEZWxh
eShuYW1lLCBmdW5jdGlvbiwgZGVsYXksIHByaW9yaXR5LCBkZXN0cm95RnVuY3Rpb24sIGNvbnRl
eHQpOwotfQotCi12b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5QW5kRGVs
ZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5j
dGlvbiwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBkZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQp
Ci17Ci0gICAgY3JlYXRlKCkuc2NoZWR1bGVBZnRlckRlbGF5KG5hbWUsIGZ1bmN0aW9uLCBkZWxh
eSwgcHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwgY29udGV4dCk7Ci19Ci0KLXZvaWQgR01haW5M
b29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hh
ciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6bWlj
cm9zZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0
cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBjcmVhdGUoKS5zY2hl
ZHVsZUFmdGVyRGVsYXkobmFtZSwgZnVuY3Rpb24sIGRlbGF5LCBwcmlvcml0eSwgZGVzdHJveUZ1
bmN0aW9uLCBjb250ZXh0KTsKLX0KLQotYm9vbCBHTWFpbkxvb3BTb3VyY2U6OnByZXBhcmVWb2lk
Q2FsbGJhY2soQ29udGV4dCYgY29udGV4dCkKLXsKLSAgICBpZiAoIW1fY29udGV4dC5zb3VyY2Up
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGNvbnRleHQgPSBXVEY6Om1vdmUobV9jb250
ZXh0KTsKLQotICAgIEFTU0VSVChjb250ZXh0LnZvaWRDYWxsYmFjayk7Ci0gICAgQVNTRVJUKG1f
c3RhdHVzID09IFNjaGVkdWxlZCk7Ci0gICAgbV9zdGF0dXMgPSBEaXNwYXRjaGluZzsKLQotICAg
IHJldHVybiB0cnVlOwotfQotCi12b2lkIEdNYWluTG9vcFNvdXJjZTo6ZmluaXNoVm9pZENhbGxi
YWNrKCkKLXsKLSAgICBtX3N0YXR1cyA9IFJlYWR5OwotfQotCi12b2lkIEdNYWluTG9vcFNvdXJj
ZTo6dm9pZENhbGxiYWNrKCkKLXsKLSAgICBDb250ZXh0IGNvbnRleHQ7Ci0gICAgaWYgKCFwcmVw
YXJlVm9pZENhbGxiYWNrKGNvbnRleHQpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb250ZXh0
LnZvaWRDYWxsYmFjaygpOwotICAgIGlmIChtX3N0YXR1cyAhPSBSZWFkeSAmJiAhbV9jb250ZXh0
LnNvdXJjZSkgewotICAgICAgICAvLyBTd2l0Y2ggdG8gUmVhZHkgaWYgaXQgaGFzbid0IGJlZW4g
cmUtc2NoZWR1bGVkIG9yIGNhbmNlbGxlZC4KLSAgICAgICAgZmluaXNoVm9pZENhbGxiYWNrKCk7
Ci0gICAgfQotCi0gICAgY29udGV4dC5kZXN0cm95U291cmNlKCk7Ci0gICAgaWYgKG1fZGVsZXRl
T25EZXN0cm95ID09IERlbGV0ZU9uRGVzdHJveSkKLSAgICAgICAgZGVsZXRlIHRoaXM7Ci19Ci0K
LWJvb2wgR01haW5Mb29wU291cmNlOjpwcmVwYXJlQm9vbENhbGxiYWNrKENvbnRleHQmIGNvbnRl
eHQpCi17Ci0gICAgaWYgKCFtX2NvbnRleHQuc291cmNlKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBjb250ZXh0ID0gV1RGOjptb3ZlKG1fY29udGV4dCk7Ci0KLSAgICBBU1NFUlQoY29u
dGV4dC5ib29sQ2FsbGJhY2spOwotICAgIEFTU0VSVChtX3N0YXR1cyA9PSBTY2hlZHVsZWQgfHwg
bV9zdGF0dXMgPT0gRGlzcGF0Y2hpbmcpOwotICAgIG1fc3RhdHVzID0gRGlzcGF0Y2hpbmc7Ci0g
ICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgR01haW5Mb29wU291cmNlOjpmaW5pc2hCb29sQ2Fs
bGJhY2soYm9vbCByZXR2YWwsIENvbnRleHQmIGNvbnRleHQpCi17Ci0gICAgLy8gbV9zdGF0dXMg
c2hvdWxkIHJlZmxlY3Qgd2hldGhlciB0aGUgR01haW5Mb29wU291cmNlIGhhcyBiZWVuIHJlc2No
ZWR1bGVkIGR1cmluZyBkaXNwYXRjaC4KLSAgICBBU1NFUlQoKCFtX2NvbnRleHQuc291cmNlICYm
IG1fc3RhdHVzID09IERpc3BhdGNoaW5nKSB8fCBtX3N0YXR1cyA9PSBTY2hlZHVsZWQpOwotICAg
IGlmIChyZXR2YWwgJiYgIW1fY29udGV4dC5zb3VyY2UpCi0gICAgICAgIG1fY29udGV4dCA9IFdU
Rjo6bW92ZShjb250ZXh0KTsKLSAgICBlbHNlIGlmICghcmV0dmFsKQotICAgICAgICBtX3N0YXR1
cyA9IFJlYWR5OwotfQotCi1ib29sIEdNYWluTG9vcFNvdXJjZTo6Ym9vbENhbGxiYWNrKCkKLXsK
LSAgICBDb250ZXh0IGNvbnRleHQ7Ci0gICAgaWYgKCFwcmVwYXJlQm9vbENhbGxiYWNrKGNvbnRl
eHQpKQotICAgICAgICByZXR1cm4gU3RvcDsKLQotICAgIGJvb2wgcmV0dmFsID0gY29udGV4dC5i
b29sQ2FsbGJhY2soKTsKLSAgICBpZiAobV9zdGF0dXMgIT0gUmVhZHkgJiYgIW1fY29udGV4dC5z
b3VyY2UpIHsKLSAgICAgICAgLy8gUHJlcGFyZSBmb3IgYSBuZXcgaXRlcmF0aW9uIG9yIHN3aXRj
aCB0byBSZWFkeSBpZiBpdCBoYXNuJ3QgYmVlbiByZS1zY2hlZHVsZWQgb3IgY2FuY2VsbGVkLgot
ICAgICAgICBmaW5pc2hCb29sQ2FsbGJhY2socmV0dmFsLCBjb250ZXh0KTsKLSAgICB9Ci0KLSAg
ICBpZiAoY29udGV4dC5zb3VyY2UpIHsKLSAgICAgICAgY29udGV4dC5kZXN0cm95U291cmNlKCk7
Ci0gICAgICAgIGlmIChtX2RlbGV0ZU9uRGVzdHJveSA9PSBEZWxldGVPbkRlc3Ryb3kpCi0gICAg
ICAgICAgICBkZWxldGUgdGhpczsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmV0dmFsOwotfQotCi1i
b29sIEdNYWluTG9vcFNvdXJjZTo6c29ja2V0Q2FsbGJhY2soR0lPQ29uZGl0aW9uIGNvbmRpdGlv
bikKLXsKLSAgICBpZiAoIW1fY29udGV4dC5zb3VyY2UpCi0gICAgICAgIHJldHVybiBTdG9wOwot
Ci0gICAgQ29udGV4dCBjb250ZXh0OwotICAgIGNvbnRleHQgPSBXVEY6Om1vdmUobV9jb250ZXh0
KTsKLQotICAgIEFTU0VSVChjb250ZXh0LnNvY2tldENhbGxiYWNrKTsKLSAgICBBU1NFUlQobV9z
dGF0dXMgPT0gU2NoZWR1bGVkIHx8IG1fc3RhdHVzID09IERpc3BhdGNoaW5nKTsKLSAgICBtX3N0
YXR1cyA9IERpc3BhdGNoaW5nOwotCi0gICAgaWYgKGdfY2FuY2VsbGFibGVfaXNfY2FuY2VsbGVk
KGNvbnRleHQuc29ja2V0Q2FuY2VsbGFibGUuZ2V0KCkpKSB7Ci0gICAgICAgIGNvbnRleHQuZGVz
dHJveVNvdXJjZSgpOwotICAgICAgICByZXR1cm4gU3RvcDsKLSAgICB9Ci0KLSAgICBib29sIHJl
dHZhbCA9IGNvbnRleHQuc29ja2V0Q2FsbGJhY2soY29uZGl0aW9uKTsKLQotICAgIGlmIChtX3N0
YXR1cyAhPSBSZWFkeSAmJiAhbV9jb250ZXh0LnNvdXJjZSkgewotICAgICAgICAvLyBtX3N0YXR1
cyBzaG91bGQgcmVmbGVjdCB3aGV0aGVyIHRoZSBHTWFpbkxvb3BTb3VyY2UgaGFzIGJlZW4gcmVz
Y2hlZHVsZWQgZHVyaW5nIGRpc3BhdGNoLgotICAgICAgICBBU1NFUlQoKCFtX2NvbnRleHQuc291
cmNlICYmIG1fc3RhdHVzID09IERpc3BhdGNoaW5nKSB8fCBtX3N0YXR1cyA9PSBTY2hlZHVsZWQp
OwotICAgICAgICBpZiAocmV0dmFsICYmICFtX2NvbnRleHQuc291cmNlKQotICAgICAgICAgICAg
bV9jb250ZXh0ID0gV1RGOjptb3ZlKGNvbnRleHQpOwotICAgICAgICBlbHNlIGlmICghcmV0dmFs
KQotICAgICAgICAgICAgbV9zdGF0dXMgPSBSZWFkeTsKLSAgICB9Ci0KLSAgICBpZiAoY29udGV4
dC5zb3VyY2UpCi0gICAgICAgIGNvbnRleHQuZGVzdHJveVNvdXJjZSgpOwotCi0gICAgcmV0dXJu
IHJldHZhbDsKLX0KLQotZ2Jvb2xlYW4gR01haW5Mb29wU291cmNlOjp2b2lkU291cmNlQ2FsbGJh
Y2soR01haW5Mb29wU291cmNlKiBzb3VyY2UpCi17Ci0gICAgc291cmNlLT52b2lkQ2FsbGJhY2so
KTsKLSAgICByZXR1cm4gR19TT1VSQ0VfUkVNT1ZFOwotfQotCi1nYm9vbGVhbiBHTWFpbkxvb3BT
b3VyY2U6OmJvb2xTb3VyY2VDYWxsYmFjayhHTWFpbkxvb3BTb3VyY2UqIHNvdXJjZSkKLXsKLSAg
ICByZXR1cm4gc291cmNlLT5ib29sQ2FsbGJhY2soKSA9PSBDb250aW51ZTsKLX0KLQotZ2Jvb2xl
YW4gR01haW5Mb29wU291cmNlOjpzb2NrZXRTb3VyY2VDYWxsYmFjayhHU29ja2V0KiwgR0lPQ29u
ZGl0aW9uIGNvbmRpdGlvbiwgR01haW5Mb29wU291cmNlKiBzb3VyY2UpCi17Ci0gICAgcmV0dXJu
IHNvdXJjZS0+c29ja2V0Q2FsbGJhY2soY29uZGl0aW9uKSA9PSBDb250aW51ZTsKLX0KLQotdm9p
ZCBHTWFpbkxvb3BTb3VyY2U6OkNvbnRleHQ6OmRlc3Ryb3lTb3VyY2UoKQotewotICAgIGdfc291
cmNlX2Rlc3Ryb3koc291cmNlLmdldCgpKTsKLSAgICBpZiAoZGVzdHJveUNhbGxiYWNrKQotICAg
ICAgICBkZXN0cm95Q2FsbGJhY2soKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLSNlbmRp
ZiAvLyBVU0UoR0xJQikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR01haW5M
b29wU291cmNlLmggYi9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTI1ODcwNGFkMjM4NzIxZjU4ZWQ3MWUxYjgz
Njc3NDI2YjYxMWQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmgKKysrIC9kZXYvbnVs
bApAQCAtMSwxMzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaWZuZGVmIEdNYWluTG9vcFNvdXJjZV9oCi0jZGVmaW5lIEdNYWluTG9v
cFNvdXJjZV9oCi0KLSNpZiBVU0UoR0xJQikKLQotI2luY2x1ZGUgPGZ1bmN0aW9uYWw+Ci0jaW5j
bHVkZSA8Z2xpYi5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLQotdHlwZWRlZiBzdHJ1Y3QgX0dTb2NrZXQgR1NvY2tldDsK
LQotbmFtZXNwYWNlIFdURiB7Ci0KLWNsYXNzIEdNYWluTG9vcFNvdXJjZSB7Ci0gICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoR01haW5Mb29wU291cmNlKTsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKLXB1YmxpYzoKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgR01haW5Mb29wU291cmNlKCk7
Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgfkdNYWluTG9vcFNvdXJjZSgpOwotCi0g
ICAgc3RhdGljIGNvbnN0IGJvb2wgU3RvcCA9IGZhbHNlOwotICAgIHN0YXRpYyBjb25zdCBib29s
IENvbnRpbnVlID0gdHJ1ZTsKLQotICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzU2NoZWR1
bGVkKCkgY29uc3Q7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNBY3RpdmUoKSBjb25z
dDsKLQotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgc2NoZWR1bGUoY29uc3Qg
Y2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+LCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9S
SVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxs
cHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2wo
KT4sIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lk
KCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKTsK
LSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheShj
b25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4sIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlv
bjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxs
cHRyKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHNjaGVkdWxlQWZ0ZXJE
ZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4sIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCog
PSBudWxscHRyKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHNjaGVkdWxl
QWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4sIHN0ZDo6
Y2hyb25vOjpzZWNvbmRzLCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6
ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQq
ID0gbnVsbHB0cik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBzY2hlZHVs
ZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+LCBzdGQ6
OmNocm9ubzo6c2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0
KiA9IG51bGxwdHIpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgc3Rk
OjpjaHJvbm86Om1pY3Jvc2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxU
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5D
b250ZXh0KiA9IG51bGxwdHIpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQg
c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCgp
Piwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9E
RUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwg
R01haW5Db250ZXh0KiA9IG51bGxwdHIpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFs
IHZvaWQgY2FuY2VsKCk7Ci0KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzY2hlZHVsZShj
b25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woR0lPQ29uZGl0aW9uKT4sIEdTb2Nr
ZXQqLCBHSU9Db25kaXRpb24sIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24g
PSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7Ci0KLSAgICBzdGF0aWMgdm9pZCBz
Y2hlZHVsZUFuZERlbGV0ZU9uRGVzdHJveShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4sIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlv
bjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxs
cHRyKTsKLSAgICBzdGF0aWMgdm9pZCBzY2hlZHVsZUFuZERlbGV0ZU9uRGVzdHJveShjb25zdCBj
aGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4sIGludCBwcmlvcml0eSA9IEdfUFJJT1JJ
VFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxw
dHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKTsKLSAgICBzdGF0aWMgdm9pZCBzY2hlZHVsZUFm
dGVyRGVsYXlBbmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlv
bjx2b2lkKCk+LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzLCBpbnQgcHJpb3JpdHkgPSBHX1BS
SU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBu
dWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7Ci0gICAgc3RhdGljIHZvaWQgc2NoZWR1
bGVBZnRlckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVu
Y3Rpb248Ym9vbCgpPiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcywgaW50IHByaW9yaXR5ID0g
R19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9u
ID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIpOwotICAgIHN0YXRpYyB2b2lkIHNj
aGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJveShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4sIHN0ZDo6Y2hyb25vOjpzZWNvbmRzLCBpbnQgcHJpb3JpdHkgPSBH
X1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24g
PSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7Ci0gICAgc3RhdGljIHZvaWQgc2No
ZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6
ZnVuY3Rpb248Ym9vbCgpPiwgc3RkOjpjaHJvbm86OnNlY29uZHMsIGludCBwcmlvcml0eSA9IEdf
UFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9
IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKTsKLSAgICBzdGF0aWMgdm9pZCBzY2hl
ZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+LCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzLCBpbnQgcHJpb3JpdHkg
PSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rp
b24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7Ci0gICAgc3RhdGljIHZvaWQg
c2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0
ZDo6ZnVuY3Rpb248Ym9vbCgpPiwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcywgaW50IHByaW9y
aXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1
bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIpOwotCi1wcm90ZWN0ZWQ6
Ci0gICAgZW51bSBTdGF0dXMgeyBSZWFkeSwgU2NoZWR1bGVkLCBEaXNwYXRjaGluZyB9OwotCi0g
ICAgc3RydWN0IENvbnRleHQgewotICAgICAgICBDb250ZXh0KCkgPSBkZWZhdWx0OwotICAgICAg
ICBDb250ZXh0JiBvcGVyYXRvcj0oQ29udGV4dCYmIGMpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHNvdXJjZSA9IFdURjo6bW92ZShjLnNvdXJjZSk7Ci0gICAgICAgICAgICBjYW5jZWxsYWJsZSA9
IFdURjo6bW92ZShjLmNhbmNlbGxhYmxlKTsKLSAgICAgICAgICAgIHNvY2tldENhbmNlbGxhYmxl
ID0gV1RGOjptb3ZlKGMuc29ja2V0Q2FuY2VsbGFibGUpOwotICAgICAgICAgICAgdm9pZENhbGxi
YWNrID0gV1RGOjptb3ZlKGMudm9pZENhbGxiYWNrKTsKLSAgICAgICAgICAgIGJvb2xDYWxsYmFj
ayA9IFdURjo6bW92ZShjLmJvb2xDYWxsYmFjayk7Ci0gICAgICAgICAgICBzb2NrZXRDYWxsYmFj
ayA9IFdURjo6bW92ZShjLnNvY2tldENhbGxiYWNrKTsKLSAgICAgICAgICAgIGRlc3Ryb3lDYWxs
YmFjayA9IFdURjo6bW92ZShjLmRlc3Ryb3lDYWxsYmFjayk7Ci0gICAgICAgICAgICByZXR1cm4g
KnRoaXM7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGRlc3Ryb3lTb3VyY2UoKTsKLQotICAg
ICAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZTsKLSAgICAgICAgR1JlZlB0cjxHQ2FuY2VsbGFi
bGU+IGNhbmNlbGxhYmxlOwotICAgICAgICBHUmVmUHRyPEdDYW5jZWxsYWJsZT4gc29ja2V0Q2Fu
Y2VsbGFibGU7Ci0gICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gdm9pZENhbGxiYWNrOwot
ICAgICAgICBzdGQ6OmZ1bmN0aW9uPGJvb2wgKCk+IGJvb2xDYWxsYmFjazsKLSAgICAgICAgc3Rk
OjpmdW5jdGlvbjxib29sIChHSU9Db25kaXRpb24pPiBzb2NrZXRDYWxsYmFjazsKLSAgICAgICAg
c3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95Q2FsbGJhY2s7Ci0gICAgfTsKLQotICAgIHZp
cnR1YWwgdm9pZCB2b2lkQ2FsbGJhY2soKTsKLSAgICB2aXJ0dWFsIGJvb2wgYm9vbENhbGxiYWNr
KCk7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgcHJlcGFyZVZvaWRDYWxsYmFjayhDb250ZXh0Jik7Ci0g
ICAgdmlydHVhbCB2b2lkIGZpbmlzaFZvaWRDYWxsYmFjaygpOwotICAgIHZpcnR1YWwgYm9vbCBw
cmVwYXJlQm9vbENhbGxiYWNrKENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZmluaXNoQm9v
bENhbGxiYWNrKGJvb2wgcmV0dmFsLCBDb250ZXh0Jik7Ci0KLXByaXZhdGU6Ci0gICAgc3RhdGlj
IEdNYWluTG9vcFNvdXJjZSYgY3JlYXRlKCk7Ci0KLSAgICBlbnVtIERlbGV0ZU9uRGVzdHJveVR5
cGUgeyBEZWxldGVPbkRlc3Ryb3ksIERvTm90RGVsZXRlT25EZXN0cm95IH07Ci0gICAgR01haW5M
b29wU291cmNlKERlbGV0ZU9uRGVzdHJveVR5cGUpOwotCi0gICAgdm9pZCBzY2hlZHVsZUlkbGVT
b3VyY2UoY29uc3QgY2hhciogbmFtZSwgR1NvdXJjZUZ1bmMsIGludCBwcmlvcml0eSwgR01haW5D
b250ZXh0Kik7Ci0gICAgdm9pZCBzY2hlZHVsZVRpbWVvdXRTb3VyY2UoY29uc3QgY2hhciogbmFt
ZSwgR1NvdXJjZUZ1bmMsIGludCBwcmlvcml0eSwgR01haW5Db250ZXh0Kik7Ci0gICAgYm9vbCBz
b2NrZXRDYWxsYmFjayhHSU9Db25kaXRpb24pOwotCi0gICAgc3RhdGljIGdib29sZWFuIHZvaWRT
b3VyY2VDYWxsYmFjayhHTWFpbkxvb3BTb3VyY2UqKTsKLSAgICBzdGF0aWMgZ2Jvb2xlYW4gYm9v
bFNvdXJjZUNhbGxiYWNrKEdNYWluTG9vcFNvdXJjZSopOwotICAgIHN0YXRpYyBnYm9vbGVhbiBz
b2NrZXRTb3VyY2VDYWxsYmFjayhHU29ja2V0KiwgR0lPQ29uZGl0aW9uLCBHTWFpbkxvb3BTb3Vy
Y2UqKTsKLQotICAgIERlbGV0ZU9uRGVzdHJveVR5cGUgbV9kZWxldGVPbkRlc3Ryb3k7Ci0KLXBy
b3RlY3RlZDoKLSAgICBDb250ZXh0IG1fY29udGV4dDsKLSAgICBTdGF0dXMgbV9zdGF0dXM7Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpHTWFpbkxvb3BTb3VyY2U7Ci0K
LSNlbmRpZiAvLyBVU0UoR0xJQikKLQotI2VuZGlmIC8vIEdNYWluTG9vcFNvdXJjZV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dNdXRleExvY2tlci5oIGIvU291cmNlL1dU
Ri93dGYvZ29iamVjdC9HTXV0ZXhMb2NrZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNWVmYmZmMDAwMDg5MWI0YmUyNGM1ZGI1ZmY4MjExMTA2ZWM2Y2NmNC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0
L0dNdXRleExvY2tlci5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAKLS8qCi0gKiAg
Q29weXJpZ2h0IChDKSAyMDEzIENvbGxhYm9yYSBMdGQuCi0gKgotICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwot
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgR011
dGV4TG9ja2VyX2gKLSNkZWZpbmUgR011dGV4TG9ja2VyX2gKLQotI2lmIFVTRShHTElCKQotCi0j
aW5jbHVkZSA8Z2xpYi5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotCi1uYW1lc3Bh
Y2UgV1RGIHsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXN0cnVjdCBNdXRleFdyYXBwZXI7Ci0K
LXRlbXBsYXRlPD4KLXN0cnVjdCBNdXRleFdyYXBwZXI8R011dGV4PiB7Ci0gICAgc3RhdGljIHZv
aWQgbG9jayhHTXV0ZXgqIG11dGV4KQotICAgIHsKLSAgICAgICAgZ19tdXRleF9sb2NrKG11dGV4
KTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgdm9pZCB1bmxvY2soR011dGV4KiBtdXRleCkKLSAgICB7
Ci0gICAgICAgIGdfbXV0ZXhfdW5sb2NrKG11dGV4KTsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTw+
Ci1zdHJ1Y3QgTXV0ZXhXcmFwcGVyPEdSZWNNdXRleD4gewotICAgIHN0YXRpYyB2b2lkIGxvY2so
R1JlY011dGV4KiBtdXRleCkKLSAgICB7Ci0gICAgICAgIGdfcmVjX211dGV4X2xvY2sobXV0ZXgp
OwotICAgIH0KLQotICAgIHN0YXRpYyB2b2lkIHVubG9jayhHUmVjTXV0ZXgqIG11dGV4KQotICAg
IHsKLSAgICAgICAgZ19yZWNfbXV0ZXhfdW5sb2NrKG11dGV4KTsKLSAgICB9Ci19OwotCi10ZW1w
bGF0ZTx0eXBlbmFtZSBUPgotY2xhc3MgR011dGV4TG9ja2VyIHsKLSAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShHTXV0ZXhMb2NrZXIpOwotcHVibGljOgotICAgIGV4cGxpY2l0IEdNdXRleExvY2tl
cihUJiBtdXRleCkKLSAgICAgICAgOiBtX211dGV4KG11dGV4KQotICAgICAgICAsIG1fbG9ja2Vk
KGZhbHNlKQotICAgIHsKLSAgICAgICAgbG9jaygpOwotICAgIH0KLQotICAgIH5HTXV0ZXhMb2Nr
ZXIoKQotICAgIHsKLSAgICAgICAgdW5sb2NrKCk7Ci0gICAgfQotCi0gICAgdm9pZCBsb2NrKCkK
LSAgICB7Ci0gICAgICAgIGlmIChtX2xvY2tlZCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICBNdXRleFdyYXBwZXI8VD46OmxvY2soJm1fbXV0ZXgpOwotICAgICAgICBtX2xvY2tlZCA9
IHRydWU7Ci0gICAgfQotCi0gICAgdm9pZCB1bmxvY2soKQotICAgIHsKLSAgICAgICAgaWYgKCFt
X2xvY2tlZCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBtX2xvY2tlZCA9IGZhbHNl
OwotICAgICAgICBNdXRleFdyYXBwZXI8VD46OnVubG9jaygmbV9tdXRleCk7Ci0gICAgfQotCi1w
cml2YXRlOgotICAgIFQmIG1fbXV0ZXg7Ci0gICAgYm9vbCBtX2xvY2tlZDsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdURgotCi0jZW5kaWYgLy8gVVNFKEdMSUIpCi0KLSNlbmRpZiAvLyBHTXV0ZXhM
b2NrZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ29iamVjdC9HUmVmUHRyLmNwcCBi
L1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR1JlZlB0ci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGM1MjIwOTVhZjM2NThmOTMxZDA0Nzk5YTUxYWM3MDgxMzMxMjFiOTYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYv
Z29iamVjdC9HUmVmUHRyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE2MSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA5IE1hcnRpbiBSb2JpbnNvbgotICoKLSAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkdSZWZQdHIuaCIK
LQotI2lmIFVTRShHTElCKQotCi0jaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLSNpbmNsdWRlIDxn
bGliLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZSA8PiBHSGFzaFRhYmxlKiByZWZH
UHRyKEdIYXNoVGFibGUqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBnX2hhc2hfdGFi
bGVfcmVmKHB0cik7Ci0gICAgcmV0dXJuIHB0cjsKLX0KLQotdGVtcGxhdGUgPD4gdm9pZCBkZXJl
ZkdQdHIoR0hhc2hUYWJsZSogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIGdfaGFzaF90
YWJsZV91bnJlZihwdHIpOwotfQotCi10ZW1wbGF0ZSA8PiBHTWFpbkNvbnRleHQqIHJlZkdQdHIo
R01haW5Db250ZXh0KiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZ19tYWluX2NvbnRl
eHRfcmVmKHB0cik7Ci0gICAgcmV0dXJuIHB0cjsKLX0KLQotdGVtcGxhdGUgPD4gdm9pZCBkZXJl
ZkdQdHIoR01haW5Db250ZXh0KiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZ19tYWlu
X2NvbnRleHRfdW5yZWYocHRyKTsKLX0KLQotdGVtcGxhdGUgPD4gR01haW5Mb29wKiByZWZHUHRy
KEdNYWluTG9vcCogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIGdfbWFpbl9sb29wX3Jl
ZihwdHIpOwotICAgIHJldHVybiBwdHI7Ci19Ci0KLXRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRy
KEdNYWluTG9vcCogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIGdfbWFpbl9sb29wX3Vu
cmVmKHB0cik7Ci19Ci0KLXRlbXBsYXRlIDw+IEdCeXRlcyogcmVmR1B0cihHQnl0ZXMqIHB0cikK
LXsKLSAgICBpZiAocHRyKQotICAgICAgICBnX2J5dGVzX3JlZihwdHIpOwotICAgIHJldHVybiBw
dHI7Ci19Ci0KLXRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdCeXRlcyogcHRyKQotewotICAg
IGlmIChwdHIpCi0gICAgICAgIGdfYnl0ZXNfdW5yZWYocHRyKTsKLX0KLQotdGVtcGxhdGUgPD4g
R1ZhcmlhbnQqIHJlZkdQdHIoR1ZhcmlhbnQqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAg
ICBnX3ZhcmlhbnRfcmVmX3NpbmsocHRyKTsKLSAgICByZXR1cm4gcHRyOwotfQotCi10ZW1wbGF0
ZSA8PiB2b2lkIGRlcmVmR1B0cihHVmFyaWFudCogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAg
ICAgIGdfdmFyaWFudF91bnJlZihwdHIpOwotfQotCi10ZW1wbGF0ZSA8PiBHVmFyaWFudEJ1aWxk
ZXIqIHJlZkdQdHIoR1ZhcmlhbnRCdWlsZGVyKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAg
ICAgZ192YXJpYW50X2J1aWxkZXJfcmVmKHB0cik7Ci0gICAgcmV0dXJuIHB0cjsKLX0KLQotdGVt
cGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR1ZhcmlhbnRCdWlsZGVyKiBwdHIpCi17Ci0gICAgaWYg
KHB0cikKLSAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfdW5yZWYocHRyKTsKLX0KLQotdGVtcGxh
dGUgPD4gR1NvdXJjZSogcmVmR1B0cihHU291cmNlKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAg
ICAgICAgZ19zb3VyY2VfcmVmKHB0cik7Ci0gICAgcmV0dXJuIHB0cjsKLX0KLQotdGVtcGxhdGUg
PD4gdm9pZCBkZXJlZkdQdHIoR1NvdXJjZSogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAg
IGdfc291cmNlX3VucmVmKHB0cik7Ci19Ci0KLXRlbXBsYXRlIDw+IEdQdHJBcnJheSogcmVmR1B0
cihHUHRyQXJyYXkqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBnX3B0cl9hcnJheV9y
ZWYocHRyKTsKLSAgICByZXR1cm4gcHRyOwotfQotCi10ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0
cihHUHRyQXJyYXkqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBnX3B0cl9hcnJheV91
bnJlZihwdHIpOwotfQotCi10ZW1wbGF0ZSA8PiBHQnl0ZUFycmF5KiByZWZHUHRyKEdCeXRlQXJy
YXkqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBnX2J5dGVfYXJyYXlfcmVmKHB0cik7
Ci0gICAgcmV0dXJuIHB0cjsKLX0KLQotdGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR0J5dGVB
cnJheSogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIGdfYnl0ZV9hcnJheV91bnJlZihw
dHIpOwotfQotCi10ZW1wbGF0ZSA8PiBHQ2xvc3VyZSogcmVmR1B0cihHQ2xvc3VyZSogcHRyKQot
ewotICAgIGlmIChwdHIpCi0gICAgICAgIGdfY2xvc3VyZV9yZWYocHRyKTsKLSAgICByZXR1cm4g
cHRyOwotfQotCi10ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHQ2xvc3VyZSogcHRyKQotewot
ICAgIGlmIChwdHIpCi0gICAgICAgIGdfY2xvc3VyZV91bnJlZihwdHIpOwotfQotCi19IC8vIG5h
bWVzcGFjZSBXVEYKLQotI2VuZGlmIC8vIFVTRShHTElCKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvZ29iamVjdC9HUmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dSZWZQdHIu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmVlNjk3NTlmZTQ1ZjVmMTA0OWU3MTZl
YjU4MDE0ZGFiZjUxYzZiNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dSZWZQdHIuaAorKysgL2Rldi9udWxsCkBA
IC0xLDI2MSArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywg
MjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAgQ29weXJpZ2h0IChDKSAy
MDA4IENvbGxhYm9yYSBMdGQuCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA5IE1hcnRpbiBSb2JpbnNv
bgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICog
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KLSAqCi0gKi8KLQotI2lmbmRlZiBXVEZfR1JlZlB0cl9oCi0jZGVmaW5lIFdURl9HUmVm
UHRyX2gKLQotI2lmIFVTRShHTElCKQotCi0jaW5jbHVkZSA8d3RmL0dldFB0ci5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDxhbGdvcml0aG0+Ci0KLWV4dGVybiAiQyIgdm9p
ZCBnX29iamVjdF91bnJlZihncG9pbnRlcik7Ci1leHRlcm4gIkMiIGdwb2ludGVyIGdfb2JqZWN0
X3JlZl9zaW5rKGdwb2ludGVyKTsKLQotbmFtZXNwYWNlIFdURiB7Ci0KLWVudW0gR1JlZlB0ckFk
b3B0VHlwZSB7IEdSZWZQdHJBZG9wdCB9OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBU
KiByZWZHUHRyKFQqKTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBkZXJlZkdQ
dHIoVCopOwotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEdSZWZQdHI7Ci10ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gR1JlZlB0cjxUPiBhZG9wdEdSZWYoVCopOwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4gY2xhc3MgR1JlZlB0ciB7Ci1wdWJsaWM6Ci0gICAgdHlwZWRlZiBUIFZhbHVlVHlwZTsK
LSAgICB0eXBlZGVmIFZhbHVlVHlwZSogUHRyVHlwZTsKLQotICAgIEdSZWZQdHIoKSA6IG1fcHRy
KDApIHsgfQotCi0gICAgR1JlZlB0cihUKiBwdHIpCi0gICAgICAgIDogbV9wdHIocHRyKQotICAg
IHsKLSAgICAgICAgaWYgKHB0cikKLSAgICAgICAgICAgIHJlZkdQdHIocHRyKTsKLSAgICB9Ci0K
LSAgICBHUmVmUHRyKGNvbnN0IEdSZWZQdHImIG8pCi0gICAgICAgIDogbV9wdHIoby5tX3B0cikK
LSAgICB7Ci0gICAgICAgIGlmIChUKiBwdHIgPSBtX3B0cikKLSAgICAgICAgICAgIHJlZkdQdHIo
cHRyKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gR1JlZlB0cihjb25zdCBH
UmVmUHRyPFU+JiBvKQotICAgICAgICA6IG1fcHRyKG8uZ2V0KCkpCi0gICAgewotICAgICAgICBp
ZiAoVCogcHRyID0gbV9wdHIpCi0gICAgICAgICAgICByZWZHUHRyKHB0cik7Ci0gICAgfQotCi0g
ICAgR1JlZlB0cihHUmVmUHRyJiYgbykgOiBtX3B0cihvLmxlYWtSZWYoKSkgeyB9Ci0gICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFU+IEdSZWZQdHIoR1JlZlB0cjxVPiYmIG8pIDogbV9wdHIoby5sZWFr
UmVmKCkpIHsgfQotCi0gICAgfkdSZWZQdHIoKQotICAgIHsKLSAgICAgICAgaWYgKFQqIHB0ciA9
IG1fcHRyKQotICAgICAgICAgICAgZGVyZWZHUHRyKHB0cik7Ci0gICAgfQotCi0gICAgdm9pZCBj
bGVhcigpCi0gICAgewotICAgICAgICBUKiBwdHIgPSBtX3B0cjsKLSAgICAgICAgbV9wdHIgPSAw
OwotICAgICAgICBpZiAocHRyKQotICAgICAgICAgICAgZGVyZWZHUHRyKHB0cik7Ci0gICAgfQot
Ci0gICAgVCogbGVha1JlZigpIFdBUk5fVU5VU0VEX1JFVFVSTgotICAgIHsKLSAgICAgICAgVCog
cHRyID0gbV9wdHI7Ci0gICAgICAgIG1fcHRyID0gMDsKLSAgICAgICAgcmV0dXJuIHB0cjsKLSAg
ICB9Ci0KLSAgICBUKiYgb3V0UHRyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9wdHIpOwot
ICAgICAgICByZXR1cm4gbV9wdHI7Ci0gICAgfQotCi0gICAgLy8gSGFzaCB0YWJsZSBkZWxldGVk
IHZhbHVlcywgd2hpY2ggYXJlIG9ubHkgY29uc3RydWN0ZWQgYW5kIG5ldmVyIGNvcGllZCBvciBk
ZXN0cm95ZWQuCi0gICAgR1JlZlB0cihIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fcHRy
KGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKSB7IH0KLSAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wdHIgPT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7
IH0KLQotICAgIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0gICAgVCYgb3BlcmF0
b3IqKCkgY29uc3QgeyByZXR1cm4gKm1fcHRyOyB9Ci0gICAgQUxXQVlTX0lOTElORSBUKiBvcGVy
YXRvci0+KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KLQotICAgIGJvb2wgb3BlcmF0b3IhKCkg
Y29uc3QgeyByZXR1cm4gIW1fcHRyOyB9Ci0KLSAgICAvLyBUaGlzIGNvbnZlcnNpb24gb3BlcmF0
b3IgYWxsb3dzIGltcGxpY2l0IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90aGVyIGlu
dGVnZXIgdHlwZXMuCi0gICAgdHlwZWRlZiBUKiBHUmVmUHRyOjoqVW5zcGVjaWZpZWRCb29sVHlw
ZTsKLSAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9w
dHIgPyAmR1JlZlB0cjo6bV9wdHIgOiAwOyB9Ci0KLSAgICBHUmVmUHRyJiBvcGVyYXRvcj0oY29u
c3QgR1JlZlB0ciYpOwotICAgIEdSZWZQdHImIG9wZXJhdG9yPShHUmVmUHRyJiYpOwotICAgIEdS
ZWZQdHImIG9wZXJhdG9yPShUKik7Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IEdSZWZQdHIm
IG9wZXJhdG9yPShjb25zdCBHUmVmUHRyPFU+Jik7Ci0KLSAgICB2b2lkIHN3YXAoR1JlZlB0ciYp
OwotICAgIGZyaWVuZCBHUmVmUHRyIGFkb3B0R1JlZjxUPihUKik7Ci0KLXByaXZhdGU6Ci0gICAg
c3RhdGljIFQqIGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8VCo+KC0xKTsgfQotICAgIC8vIEFkb3B0aW5nIGNvbnN0cnVjdG9yLgotICAgIEdSZWZQdHIo
VCogcHRyLCBHUmVmUHRyQWRvcHRUeXBlKSA6IG1fcHRyKHB0cikge30KLQotICAgIFQqIG1fcHRy
OwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBHUmVmUHRyPFQ+JiBHUmVmUHRy
PFQ+OjpvcGVyYXRvcj0oY29uc3QgR1JlZlB0cjxUPiYgbykKLXsKLSAgICBUKiBvcHRyID0gby5n
ZXQoKTsKLSAgICBpZiAob3B0cikKLSAgICAgICAgcmVmR1B0cihvcHRyKTsKLSAgICBUKiBwdHIg
PSBtX3B0cjsKLSAgICBtX3B0ciA9IG9wdHI7Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZGVyZWZH
UHRyKHB0cik7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
aW5saW5lIEdSZWZQdHI8VD4mIEdSZWZQdHI8VD46Om9wZXJhdG9yPShHUmVmUHRyPFQ+JiYgbykK
LXsKLSAgICBHUmVmUHRyIHB0ciA9IFdURjo6bW92ZShvKTsKLSAgICBzd2FwKHB0cik7Ci0gICAg
cmV0dXJuICp0aGlzOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIEdSZWZQdHI8
VD4mIEdSZWZQdHI8VD46Om9wZXJhdG9yPShUKiBvcHRyKQotewotICAgIFQqIHB0ciA9IG1fcHRy
OwotICAgIGlmIChvcHRyKQotICAgICAgICByZWZHUHRyKG9wdHIpOwotICAgIG1fcHRyID0gb3B0
cjsKLSAgICBpZiAocHRyKQotICAgICAgICBkZXJlZkdQdHIocHRyKTsKLSAgICByZXR1cm4gKnRo
aXM7Ci19Ci0KLXRlbXBsYXRlIDxjbGFzcyBUPiBpbmxpbmUgdm9pZCBHUmVmUHRyPFQ+Ojpzd2Fw
KEdSZWZQdHI8VD4mIG8pCi17Ci0gICAgc3RkOjpzd2FwKG1fcHRyLCBvLm1fcHRyKTsKLX0KLQot
dGVtcGxhdGUgPGNsYXNzIFQ+IGlubGluZSB2b2lkIHN3YXAoR1JlZlB0cjxUPiYgYSwgR1JlZlB0
cjxUPiYgYikKLXsKLSAgICBhLnN3YXAoYik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0
eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdSZWZQdHI8VD4mIGEsIGNv
bnN0IEdSZWZQdHI8VT4mIGIpCi17Ci0gICAgcmV0dXJuIGEuZ2V0KCkgPT0gYi5nZXQoKTsKLX0K
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9y
PT0oY29uc3QgR1JlZlB0cjxUPiYgYSwgVSogYikKLXsKLSAgICByZXR1cm4gYS5nZXQoKSA9PSBi
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3Bl
cmF0b3I9PShUKiBhLCBjb25zdCBHUmVmUHRyPFU+JiBiKQotewotICAgIHJldHVybiBhID09IGIu
Z2V0KCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9v
bCBvcGVyYXRvciE9KGNvbnN0IEdSZWZQdHI8VD4mIGEsIGNvbnN0IEdSZWZQdHI8VT4mIGIpCi17
Ci0gICAgcmV0dXJuIGEuZ2V0KCkgIT0gYi5nZXQoKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgR1JlZlB0cjxUPiYg
YSwgVSogYikKLXsKLSAgICByZXR1cm4gYS5nZXQoKSAhPSBiOwotfQotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShUKiBhLCBjb25zdCBH
UmVmUHRyPFU+JiBiKQotewotICAgIHJldHVybiBhICE9IGIuZ2V0KCk7Ci19Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgR1JlZlB0cjxUPiBzdGF0aWNfcG9pbnRl
cl9jYXN0KGNvbnN0IEdSZWZQdHI8VT4mIHApCi17Ci0gICAgcmV0dXJuIEdSZWZQdHI8VD4oc3Rh
dGljX2Nhc3Q8VCo+KHAuZ2V0KCkpKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFU+IGlubGluZSBHUmVmUHRyPFQ+IGNvbnN0X3BvaW50ZXJfY2FzdChjb25zdCBHUmVmUHRy
PFU+JiBwKQotewotICAgIHJldHVybiBHUmVmUHRyPFQ+KGNvbnN0X2Nhc3Q8VCo+KHAuZ2V0KCkp
KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBJc1NtYXJ0UHRyPEdSZWZQdHI8
VD4+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7Ci19OwotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4gR1JlZlB0cjxUPiBhZG9wdEdSZWYoVCogcCkKLXsKLSAgICByZXR1cm4g
R1JlZlB0cjxUPihwLCBHUmVmUHRyQWRvcHQpOwotfQotCi10ZW1wbGF0ZSA8PiBXVEZfRVhQT1JU
X1BSSVZBVEUgR0hhc2hUYWJsZSogcmVmR1B0cihHSGFzaFRhYmxlKiBwdHIpOwotdGVtcGxhdGUg
PD4gV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVyZWZHUHRyKEdIYXNoVGFibGUqIHB0cik7Ci10
ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUgR01haW5Db250ZXh0KiByZWZHUHRyKEdNYWlu
Q29udGV4dCogcHRyKTsKLXRlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRlcmVm
R1B0cihHTWFpbkNvbnRleHQqIHB0cik7Ci10ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUg
R01haW5Mb29wKiByZWZHUHRyKEdNYWluTG9vcCogcHRyKTsKLXRlbXBsYXRlIDw+IFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkIGRlcmVmR1B0cihHTWFpbkxvb3AqIHB0cik7Ci10ZW1wbGF0ZSA8PiBX
VEZfRVhQT1JUX1BSSVZBVEUgR1ZhcmlhbnQqIHJlZkdQdHIoR1ZhcmlhbnQqIHB0cik7Ci10ZW1w
bGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXJlZkdQdHIoR1ZhcmlhbnQqIHB0cik7
Ci10ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUgR1ZhcmlhbnRCdWlsZGVyKiByZWZHUHRy
KEdWYXJpYW50QnVpbGRlciogcHRyKTsKLXRlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIGRlcmVmR1B0cihHVmFyaWFudEJ1aWxkZXIqIHB0cik7Ci10ZW1wbGF0ZSA8PiBXVEZfRVhQ
T1JUX1BSSVZBVEUgR1NvdXJjZSogcmVmR1B0cihHU291cmNlKiBwdHIpOwotdGVtcGxhdGUgPD4g
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVyZWZHUHRyKEdTb3VyY2UqIHB0cik7Ci10ZW1wbGF0
ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUgR1B0ckFycmF5KiByZWZHUHRyKEdQdHJBcnJheSopOwot
dGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVyZWZHUHRyKEdQdHJBcnJheSop
OwotdGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIEdCeXRlQXJyYXkqIHJlZkdQdHIoR0J5
dGVBcnJheSopOwotdGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVyZWZHUHRy
KEdCeXRlQXJyYXkqKTsKLXRlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSBHQnl0ZXMqIHJl
ZkdQdHIoR0J5dGVzKik7Ci10ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXJl
ZkdQdHIoR0J5dGVzKik7Ci10ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUgR0Nsb3N1cmUq
IHJlZkdQdHIoR0Nsb3N1cmUqKTsKLXRlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IGRlcmVmR1B0cihHQ2xvc3VyZSopOwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFQq
IHJlZkdQdHIoVCogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIGdfb2JqZWN0X3JlZl9z
aW5rKHB0cik7Ci0gICAgcmV0dXJuIHB0cjsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlu
bGluZSB2b2lkIGRlcmVmR1B0cihUKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZ19v
YmplY3RfdW5yZWYocHRyKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6
R1JlZlB0cjsKLXVzaW5nIFdURjo6YWRvcHRHUmVmOwotCi0jZW5kaWYgLy8gVVNFKEdMSUIpCi0K
LSNlbmRpZiAvLyBXVEZfR1JlZlB0cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nb2Jq
ZWN0L0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuY3BwIGIvU291cmNlL1dURi93dGYvZ29iamVj
dC9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNGFjMmIzYmRhM2FjZDgyY2Y2MmUxN2MyNWNmMzQ1OTZmOGM2NDM3ZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nb2Jq
ZWN0L0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTcz
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkdUaHJlYWRTYWZlTWFpbkxvb3BTb3Vy
Y2UuaCIKLQotI2lmIFVTRShHTElCKQotCi0jaW5jbHVkZSA8Z2lvL2dpby5oPgotI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dNdXRleExvY2tlci5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotR1RocmVh
ZFNhZmVNYWluTG9vcFNvdXJjZTo6R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSgpCi17Ci0gICAg
Z19yZWNfbXV0ZXhfaW5pdCgmbV9tdXRleCk7Ci19Ci0KLUdUaHJlYWRTYWZlTWFpbkxvb3BTb3Vy
Y2U6On5HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlKCkKLXsKLSAgICBjYW5jZWwoKTsKLSAgICBn
X3JlY19tdXRleF9jbGVhcigmbV9tdXRleCk7Ci19Ci0KLXZvaWQgR1RocmVhZFNhZmVNYWluTG9v
cFNvdXJjZTo6Y2FuY2VsKCkKLXsKLSAgICBHTXV0ZXhMb2NrZXI8R1JlY011dGV4PiBsb2NrZXIo
bV9tdXRleCk7Ci0KLSAgICAvLyBUaGUgZ2VuZXJhbCBjYW5jZWxsYWJsZSBvYmplY3Qgc2hvdWxk
IG9ubHkgYmUgcHJlc2VudCBpZiB3ZSdyZSBjdXJyZW50bHkgZGlzcGF0Y2hpbmcgdGhpcyBHTWFp
bkxvb3BTb3VyY2UuCi0gICAgQVNTRVJUKCFtX2NhbmNlbGxhYmxlIHx8IG1fc3RhdHVzID09IERp
c3BhdGNoaW5nKTsKLQotICAgIC8vIFRoZSBzb3VyY2UgaXMgcGVyaGFwcyBiZWluZyBjYW5jZWxs
ZWQgaW4gdGhlIG1pZGRsZSBvZiBhIGNhbGxiYWNrIGRpc3BhdGNoLgotICAgIC8vIENhbmNlbGxp
bmcgdGhpcyBHQ2FuY2VsbGFibGUgb2JqZWN0IHdpbGwgY29udmV5IHRoaXMgaW5mb3JtYXRpb24g
dG8gdGhlCi0gICAgLy8gY3VycmVudCBleGVjdXRpb24gY29udGV4dCB3aGVuIHRoZSBjYWxsYmFj
ayBkaXNwYXRjaCBpcyBmaW5pc2hlZC4KLSAgICBnX2NhbmNlbGxhYmxlX2NhbmNlbChtX2NhbmNl
bGxhYmxlLmdldCgpKTsKLSAgICBtX2NhbmNlbGxhYmxlID0gbnVsbHB0cjsKLQotICAgIEdNYWlu
TG9vcFNvdXJjZTo6Y2FuY2VsKCk7Ci19Ci0KLXZvaWQgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJj
ZTo6c2NoZWR1bGUoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5j
dGlvbiwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGRlc3Ryb3lGdW5jdGlv
biwgR01haW5Db250ZXh0KiBjb250ZXh0KQotewotICAgIEdNdXRleExvY2tlcjxHUmVjTXV0ZXg+
IGxvY2tlcihtX211dGV4KTsKLSAgICBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlKG5hbWUsIGZ1
bmN0aW9uLCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKLSAgICBtX2NvbnRl
eHQuY2FuY2VsbGFibGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7Ci19Ci0KLXZv
aWQgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGUoY29uc3QgY2hhciogbmFtZSwg
c3RkOjpmdW5jdGlvbjxib29sICgpPiBmdW5jdGlvbiwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQotewot
ICAgIEdNdXRleExvY2tlcjxHUmVjTXV0ZXg+IGxvY2tlcihtX211dGV4KTsKLSAgICBHTWFpbkxv
b3BTb3VyY2U6OnNjaGVkdWxlKG5hbWUsIGZ1bmN0aW9uLCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0
aW9uLCBjb250ZXh0KTsKLSAgICBtX2NvbnRleHQuY2FuY2VsbGFibGUgPSBhZG9wdEdSZWYoZ19j
YW5jZWxsYWJsZV9uZXcoKSk7Ci19Ci0KLXZvaWQgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6
c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAo
KT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsYXksIGludCBwcmlvcml0
eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCog
Y29udGV4dCkKLXsKLSAgICBHTXV0ZXhMb2NrZXI8R1JlY011dGV4PiBsb2NrZXIobV9tdXRleCk7
Ci0gICAgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkobmFtZSwgZnVuY3Rpb24s
IGRlbGF5LCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKLSAgICBtX2NvbnRl
eHQuY2FuY2VsbGFibGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7Ci19Ci0KLXZv
aWQgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNo
YXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBk
ZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBHTXV0ZXhMb2Nr
ZXI8R1JlY011dGV4PiBsb2NrZXIobV9tdXRleCk7Ci0gICAgR01haW5Mb29wU291cmNlOjpzY2hl
ZHVsZUFmdGVyRGVsYXkobmFtZSwgZnVuY3Rpb24sIGRlbGF5LCBwcmlvcml0eSwgZGVzdHJveUZ1
bmN0aW9uLCBjb250ZXh0KTsKLSAgICBtX2NvbnRleHQuY2FuY2VsbGFibGUgPSBhZG9wdEdSZWYo
Z19jYW5jZWxsYWJsZV9uZXcoKSk7Ci19Ci0KLXZvaWQgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJj
ZTo6c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHks
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNv
bnRleHQpCi17Ci0gICAgR011dGV4TG9ja2VyPEdSZWNNdXRleD4gbG9ja2VyKG1fbXV0ZXgpOwot
ICAgIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KG5hbWUsIGZ1bmN0aW9uLCBk
ZWxheSwgcHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwgY29udGV4dCk7Ci0gICAgbV9jb250ZXh0
LmNhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOwotfQotCi12b2lk
IEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFy
KiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6c2Vj
b25kcyBkZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGRlc3Ryb3lG
dW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQotewotICAgIEdNdXRleExvY2tlcjxHUmVj
TXV0ZXg+IGxvY2tlcihtX211dGV4KTsKLSAgICBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0
ZXJEZWxheShuYW1lLCBmdW5jdGlvbiwgZGVsYXksIHByaW9yaXR5LCBkZXN0cm95RnVuY3Rpb24s
IGNvbnRleHQpOwotICAgIG1fY29udGV4dC5jYW5jZWxsYWJsZSA9IGFkb3B0R1JlZihnX2NhbmNl
bGxhYmxlX25ldygpKTsKLX0KLQotYm9vbCBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpwcmVw
YXJlVm9pZENhbGxiYWNrKENvbnRleHQmIGNvbnRleHQpCi17Ci0gICAgR011dGV4TG9ja2VyPEdS
ZWNNdXRleD4gbG9ja2VyKG1fbXV0ZXgpOwotICAgIGJvb2wgcmV0dmFsID0gR01haW5Mb29wU291
cmNlOjpwcmVwYXJlVm9pZENhbGxiYWNrKGNvbnRleHQpOwotICAgIG1fY2FuY2VsbGFibGUgPSBj
b250ZXh0LmNhbmNlbGxhYmxlOwotICAgIHJldHVybiByZXR2YWw7Ci19Ci0KLXZvaWQgR1RocmVh
ZFNhZmVNYWluTG9vcFNvdXJjZTo6ZmluaXNoVm9pZENhbGxiYWNrKCkKLXsKLSAgICBHTXV0ZXhM
b2NrZXI8R1JlY011dGV4PiBsb2NrZXIobV9tdXRleCk7Ci0gICAgR01haW5Mb29wU291cmNlOjpm
aW5pc2hWb2lkQ2FsbGJhY2soKTsKLSAgICBtX2NhbmNlbGxhYmxlID0gbnVsbHB0cjsKLX0KLQot
dm9pZCBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjp2b2lkQ2FsbGJhY2soKQotewotICAgIENv
bnRleHQgY29udGV4dDsKLSAgICBpZiAoIXByZXBhcmVWb2lkQ2FsbGJhY2soY29udGV4dCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGNvbnRleHQudm9pZENhbGxiYWNrKCk7Ci0KLSAgICBpZiAo
Z19jYW5jZWxsYWJsZV9pc19jYW5jZWxsZWQoY29udGV4dC5jYW5jZWxsYWJsZS5nZXQoKSkpIHsK
LSAgICAgICAgY29udGV4dC5kZXN0cm95U291cmNlKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBmaW5pc2hWb2lkQ2FsbGJhY2soKTsKLSAgICBjb250ZXh0LmRlc3Ryb3lTb3VyY2Uo
KTsKLX0KLQotYm9vbCBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpwcmVwYXJlQm9vbENhbGxi
YWNrKENvbnRleHQmIGNvbnRleHQpCi17Ci0gICAgR011dGV4TG9ja2VyPEdSZWNNdXRleD4gbG9j
a2VyKG1fbXV0ZXgpOwotICAgIGJvb2wgcmV0dmFsID0gR01haW5Mb29wU291cmNlOjpwcmVwYXJl
Qm9vbENhbGxiYWNrKGNvbnRleHQpOwotICAgIG1fY2FuY2VsbGFibGUgPSBjb250ZXh0LmNhbmNl
bGxhYmxlOwotICAgIHJldHVybiByZXR2YWw7Ci19Ci0KLXZvaWQgR1RocmVhZFNhZmVNYWluTG9v
cFNvdXJjZTo6ZmluaXNoQm9vbENhbGxiYWNrKGJvb2wgcmV0dmFsLCBDb250ZXh0JiBjb250ZXh0
KQotewotICAgIEdNdXRleExvY2tlcjxHUmVjTXV0ZXg+IGxvY2tlcihtX211dGV4KTsKLSAgICBH
TWFpbkxvb3BTb3VyY2U6OmZpbmlzaEJvb2xDYWxsYmFjayhyZXR2YWwsIGNvbnRleHQpOwotICAg
IG1fY2FuY2VsbGFibGUgPSBudWxscHRyOwotfQotCi1ib29sIEdUaHJlYWRTYWZlTWFpbkxvb3BT
b3VyY2U6OmJvb2xDYWxsYmFjaygpCi17Ci0gICAgQ29udGV4dCBjb250ZXh0OwotICAgIGlmICgh
cHJlcGFyZUJvb2xDYWxsYmFjayhjb250ZXh0KSkKLSAgICAgICAgcmV0dXJuIFN0b3A7Ci0KLSAg
ICBib29sIHJldHZhbCA9IGNvbnRleHQuYm9vbENhbGxiYWNrKCk7Ci0KLSAgICBpZiAoZ19jYW5j
ZWxsYWJsZV9pc19jYW5jZWxsZWQoY29udGV4dC5jYW5jZWxsYWJsZS5nZXQoKSkpIHsKLSAgICAg
ICAgY29udGV4dC5kZXN0cm95U291cmNlKCk7Ci0gICAgICAgIHJldHVybiBTdG9wOwotICAgIH0K
LQotICAgIGZpbmlzaEJvb2xDYWxsYmFjayhyZXR2YWwsIGNvbnRleHQpOwotICAgIGlmIChjb250
ZXh0LnNvdXJjZSkKLSAgICAgICAgY29udGV4dC5kZXN0cm95U291cmNlKCk7Ci0gICAgcmV0dXJu
IHJldHZhbDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLSNlbmRpZiAvLyBVU0UoR0xJQikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR1RocmVhZFNhZmVNYWluTG9vcFNv
dXJjZS5oIGIvU291cmNlL1dURi93dGYvZ29iamVjdC9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNl
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3N2U4NGEyMDI5ODU1OWEyN2FjNzg4
YjVhZDkxZWMyMzc5MmZhMWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dURi93dGYvZ29iamVjdC9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNl
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgR1RocmVhZFNhZmVNYWluTG9vcFNv
dXJjZV9oCi0jZGVmaW5lIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2VfaAotCi0jaWYgVVNFKEdM
SUIpCi0KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuaD4KLQotdHlwZWRl
ZiBzdHJ1Y3QgX0dSZWNNdXRleCBHUmVjTXV0ZXg7Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1jbGFz
cyBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlIGZpbmFsIDogcHVibGljIEdNYWluTG9vcFNvdXJj
ZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSk7
Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgV1RGX0VYUE9SVF9Q
UklWQVRFIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UoKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgdmlydHVhbCB+R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSgpOwotCi0gICAgV1RGX0VYUE9S
VF9QUklWQVRFIHZpcnR1YWwgdm9pZCBzY2hlZHVsZShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4sIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCog
PSBudWxscHRyKSBvdmVycmlkZTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lk
IHNjaGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPiwgaW50IHBy
aW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJv
eUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIpIG92ZXJyaWRlOwot
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBZnRlckRlbGF5KGNv
bnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgc3RkOjpjaHJvbm86Om1pbGxp
c2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxw
dHIpIG92ZXJyaWRlOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPiwgc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxU
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5D
b250ZXh0KiA9IG51bGxwdHIpIG92ZXJyaWRlOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0
dWFsIHZvaWQgc2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rp
b248dm9pZCgpPiwgc3RkOjpjaHJvbm86OnNlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJ
VFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxw
dHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKSBvdmVycmlkZTsKLSAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdmlydHVhbCB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1lLCBz
dGQ6OmZ1bmN0aW9uPGJvb2woKT4sIHN0ZDo6Y2hyb25vOjpzZWNvbmRzLCBpbnQgcHJpb3JpdHkg
PSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rp
b24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Ci0gICAgV1RG
X0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBjYW5jZWwoKSBvdmVycmlkZTsKLQotcHJpdmF0
ZToKLSAgICB2aXJ0dWFsIHZvaWQgdm9pZENhbGxiYWNrKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCBib29sIGJvb2xDYWxsYmFjaygpIG92ZXJyaWRlOwotCi0gICAgdmlydHVhbCBib29sIHByZXBh
cmVWb2lkQ2FsbGJhY2soQ29udGV4dCYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBmaW5p
c2hWb2lkQ2FsbGJhY2soKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgcHJlcGFyZUJvb2xD
YWxsYmFjayhDb250ZXh0Jikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGZpbmlzaEJvb2xD
YWxsYmFjayhib29sIHJldHZhbCwgQ29udGV4dCYpIG92ZXJyaWRlOwotCi0gICAgR1JlY011dGV4
IG1fbXV0ZXg7Ci0gICAgR1JlZlB0cjxHQ2FuY2VsbGFibGU+IG1fY2FuY2VsbGFibGU7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291
cmNlOwotCi0jZW5kaWYgLy8gVVNFKEdMSUIpCi0KLSNlbmRpZiAvLyBHVGhyZWFkU2FmZU1haW5M
b29wU291cmNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR1R5cGVkZWZz
LmggYi9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzMjI5OGQ1MDVhYWI5MmMwYzJjYTA4ZWNjZjYyNzZiYmQ0YzU0NjdkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYv
d3RmL2dvYmplY3QvR1R5cGVkZWZzLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEsIFMuTC4KLSAqCi0gKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCi0gKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRl
ZiBHdGtUeXBlZGVmc19oCi0jZGVmaW5lIEd0a1R5cGVkZWZzX2gKLQotLyogVmFuaWxsYSBDIGNv
ZGUgZG9lcyBub3Qgc2VlbSB0byBiZSBhYmxlIHRvIGhhbmRsZSBmb3J3YXJkLWRlY2xhcmF0aW9u
IHR5cGVkZWZzLiAqLwotI2lmZGVmICBfX2NwbHVzcGx1cwotCi10eXBlZGVmIGNoYXIgZ2NoYXI7
Ci10eXBlZGVmIGRvdWJsZSBnZG91YmxlOwotdHlwZWRlZiBmbG9hdCBnZmxvYXQ7Ci10eXBlZGVm
IGludCBnaW50OwotdHlwZWRlZiBnaW50IGdib29sZWFuOwotdHlwZWRlZiBsb25nIGdsb25nOwot
dHlwZWRlZiBzaG9ydCBnc2hvcnQ7Ci10eXBlZGVmIHVuc2lnbmVkIGNoYXIgZ3VjaGFyOwotdHlw
ZWRlZiB1bnNpZ25lZCBpbnQgZ3VpbnQ7Ci10eXBlZGVmIHVuc2lnbmVkIGxvbmcgZ3Vsb25nOwot
dHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBndXNob3J0OwotdHlwZWRlZiB2b2lkKiBncG9pbnRlcjsK
LQotdHlwZWRlZiBzdHJ1Y3QgX0dBc3luY1Jlc3VsdCBHQXN5bmNSZXN1bHQ7Ci10eXBlZGVmIHN0
cnVjdCBfR0NhbmNlbGxhYmxlIEdDYW5jZWxsYWJsZTsKLXR5cGVkZWYgc3RydWN0IF9HQ2hhcnNl
dENvbnZlcnRlciBHQ2hhcnNldENvbnZlcnRlcjsKLXR5cGVkZWYgc3RydWN0IF9HRGlyIEdEaXI7
Ci10eXBlZGVmIHN0cnVjdCBfR2RrQXRvbSogR2RrQXRvbTsKLXR5cGVkZWYgc3RydWN0IF9HZGtD
dXJzb3IgR2RrQ3Vyc29yOwotdHlwZWRlZiBzdHJ1Y3QgX0dka0RyYWdDb250ZXh0IEdka0RyYWdD
b250ZXh0OwotdHlwZWRlZiBzdHJ1Y3QgX0dka0V2ZW50Q29uZmlndXJlIEdka0V2ZW50Q29uZmln
dXJlOwotdHlwZWRlZiBzdHJ1Y3QgX0dka0V2ZW50RXhwb3NlIEdka0V2ZW50RXhwb3NlOwotdHlw
ZWRlZiBzdHJ1Y3QgX0dka1BpeGJ1ZiBHZGtQaXhidWY7Ci10eXBlZGVmIHN0cnVjdCBfR0Vycm9y
IEdFcnJvcjsKLXR5cGVkZWYgc3RydWN0IF9HRmlsZSBHRmlsZTsKLXR5cGVkZWYgc3RydWN0IF9H
SGFzaFRhYmxlIEdIYXNoVGFibGU7Ci10eXBlZGVmIHN0cnVjdCBfR0lucHV0U3RyZWFtIEdJbnB1
dFN0cmVhbTsKLXR5cGVkZWYgc3RydWN0IF9HTGlzdCBHTGlzdDsKLXR5cGVkZWYgc3RydWN0IF9H
TWFpbkNvbnRleHQgR01haW5Db250ZXh0OwotdHlwZWRlZiBzdHJ1Y3QgX0dNYWluTG9vcCBHTWFp
bkxvb3A7Ci10eXBlZGVmIHN0cnVjdCBfR1BhdHRlcm5TcGVjIEdQYXR0ZXJuU3BlYzsKLXR5cGVk
ZWYgc3RydWN0IF9HUG9sbGFibGVPdXRwdXRTdHJlYW0gR1BvbGxhYmxlT3V0cHV0U3RyZWFtOwot
dHlwZWRlZiBzdHJ1Y3QgX0dTTGlzdCBHU0xpc3Q7Ci10eXBlZGVmIHN0cnVjdCBfR1NvY2tldENs
aWVudCBHU29ja2V0Q2xpZW50OwotdHlwZWRlZiBzdHJ1Y3QgX0dTb2NrZXRDb25uZWN0aW9uIEdT
b2NrZXRDb25uZWN0aW9uOwotdHlwZWRlZiBzdHJ1Y3QgX0dTb3VyY2UgR1NvdXJjZTsKLXR5cGVk
ZWYgc3RydWN0IF9HVmFyaWFudCBHVmFyaWFudDsKLXR5cGVkZWYgc3RydWN0IF9HVmFyaWFudEJ1
aWxkZXIgR1ZhcmlhbnRCdWlsZGVyOwotdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7
Ci10eXBlZGVmIHN0cnVjdCBfR1RpbWVyIEdUaW1lcjsKLXR5cGVkZWYgc3RydWN0IF9HS2V5Rmls
ZSBHS2V5RmlsZTsKLXR5cGVkZWYgc3RydWN0IF9HUHRyQXJyYXkgR1B0ckFycmF5OwotdHlwZWRl
ZiBzdHJ1Y3QgX0dCeXRlQXJyYXkgR0J5dGVBcnJheTsKLXR5cGVkZWYgc3RydWN0IF9HQnl0ZXMg
R0J5dGVzOwotdHlwZWRlZiBzdHJ1Y3QgX0dDbG9zdXJlIEdDbG9zdXJlOwotCi0jaWYgVVNFKENB
SVJPKQotdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3N1cmZhY2UgY2Fpcm9fc3VyZmFjZV90OwotdHlw
ZWRlZiBzdHJ1Y3QgX2NhaXJvX3JlY3RhbmdsZV9pbnQgY2Fpcm9fcmVjdGFuZ2xlX2ludF90Owot
I2VuZGlmCi0KLSNpZiBVU0UoQ0xVVFRFUikKLXR5cGVkZWYgc3RydWN0IF9DbHV0dGVyQWN0b3Ig
Q2x1dHRlckFjdG9yOwotdHlwZWRlZiBzdHJ1Y3QgX0dyYXBoaWNzTGF5ZXJBY3RvciBHcmFwaGlj
c0xheWVyQWN0b3I7Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKEdUSykKLXR5cGVkZWYgc3RydWN0
IF9HdGtBY3Rpb24gR3RrQWN0aW9uOwotdHlwZWRlZiBzdHJ1Y3QgX0d0a0FkanVzdG1lbnQgR3Rr
QWRqdXN0bWVudDsKLXR5cGVkZWYgc3RydWN0IF9HdGtCb3JkZXIgR3RrQm9yZGVyOwotdHlwZWRl
ZiBzdHJ1Y3QgX0d0a0NsaXBib2FyZCBHdGtDbGlwYm9hcmQ7Ci10eXBlZGVmIHN0cnVjdCBfR3Rr
Q29udGFpbmVyIEd0a0NvbnRhaW5lcjsKLXR5cGVkZWYgc3RydWN0IF9HdGtJY29uSW5mbyBHdGtJ
Y29uSW5mbzsKLXR5cGVkZWYgc3RydWN0IF9HdGtNZW51IEd0a01lbnU7Ci10eXBlZGVmIHN0cnVj
dCBfR3RrTWVudUl0ZW0gR3RrTWVudUl0ZW07Ci10eXBlZGVmIHN0cnVjdCBfR3RrT2JqZWN0IEd0
a09iamVjdDsKLXR5cGVkZWYgc3RydWN0IF9HdGtTZWxlY3Rpb25EYXRhIEd0a1NlbGVjdGlvbkRh
dGE7Ci10eXBlZGVmIHN0cnVjdCBfR3RrU3R5bGUgR3RrU3R5bGU7Ci10eXBlZGVmIHN0cnVjdCBf
R3RrVGFyZ2V0TGlzdCBHdGtUYXJnZXRMaXN0OwotdHlwZWRlZiBzdHJ1Y3QgX0d0a1RoZW1lUGFy
dHMgR3RrVGhlbWVQYXJ0czsKLXR5cGVkZWYgc3RydWN0IF9HdGtXaWRnZXQgR3RrV2lkZ2V0Owot
dHlwZWRlZiBzdHJ1Y3QgX0d0a1dpbmRvdyBHdGtXaW5kb3c7Ci0KLSNpZmRlZiBHVEtfQVBJX1ZF
UlNJT05fMgotdHlwZWRlZiBzdHJ1Y3QgX0dka1JlY3RhbmdsZSBHZGtSZWN0YW5nbGU7Ci10eXBl
ZGVmIHN0cnVjdCBfR2RrRHJhd2FibGUgR2RrV2luZG93OwotI2Vsc2UKLXR5cGVkZWYgc3RydWN0
IF9HZGtXaW5kb3cgR2RrV2luZG93OwotdHlwZWRlZiBzdHJ1Y3QgX0d0a1N0eWxlQ29udGV4dCBH
dGtTdHlsZUNvbnRleHQ7Ci0jZW5kaWYKLQotI2VuZGlmCi0KLSNlbmRpZgotI2VuZGlmIC8qIEd0
a1R5cGVkZWZzX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR1VuaXF1
ZVB0ci5oIGIvU291cmNlL1dURi93dGYvZ29iamVjdC9HVW5pcXVlUHRyLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGNkYTQ4OGE4ODMwN2U0YTgwM2I2MGYxZGI2NjFkYTZhMTczZTE1
ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dURi93dGYvZ29iamVjdC9HVW5pcXVlUHRyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjggKzAs
MCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KLSAqCi0gKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCi0gKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwot
ICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCi0gKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICov
Ci0KLSNpZm5kZWYgR1VuaXF1ZVB0cl9oCi0jZGVmaW5lIEdVbmlxdWVQdHJfaAotCi0jaWYgVVNF
KEdMSUIpCi0KLSNpbmNsdWRlIDxnaW8vZ2lvLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RydWN0IEdQ
dHJEZWxldGVyIHsKLSAgICB2b2lkIG9wZXJhdG9yKCkoVCogcHRyKSBjb25zdCB7IGdfZnJlZShw
dHIpOyB9Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotdXNpbmcgR1VuaXF1ZVB0ciA9IHN0
ZDo6dW5pcXVlX3B0cjxULCBHUHRyRGVsZXRlcjxUPj47Ci0KLSNkZWZpbmUgRk9SX0VBQ0hfR0xJ
Ql9ERUxFVEVSKG1hY3JvKSBcCi0gICAgbWFjcm8oR0Vycm9yLCBnX2Vycm9yX2ZyZWUpIFwKLSAg
ICBtYWNybyhHTGlzdCwgZ19saXN0X2ZyZWUpIFwKLSAgICBtYWNybyhHU0xpc3QsIGdfc2xpc3Rf
ZnJlZSkgXAotICAgIG1hY3JvKEdQYXR0ZXJuU3BlYywgZ19wYXR0ZXJuX3NwZWNfZnJlZSkgXAot
ICAgIG1hY3JvKEdEaXIsIGdfZGlyX2Nsb3NlKSBcCi0gICAgbWFjcm8oR1RpbWVyLCBnX3RpbWVy
X2Rlc3Ryb3kpIFwKLSAgICBtYWNybyhHS2V5RmlsZSwgZ19rZXlfZmlsZV9mcmVlKSBcCi0gICAg
bWFjcm8oY2hhciosIGdfc3RyZnJlZXYpCi0KLSNkZWZpbmUgV1RGX0RFRklORV9HUFRSX0RFTEVU
RVIodHlwZU5hbWUsIGRlbGV0ZXJGdW5jKSBcCi0gICAgdGVtcGxhdGU8PiBzdHJ1Y3QgR1B0ckRl
bGV0ZXI8dHlwZU5hbWU+IFwKLSAgICB7IFwKLSAgICAgICAgdm9pZCBvcGVyYXRvcigpICh0eXBl
TmFtZSogcHRyKSBjb25zdCBcCi0gICAgICAgIHsgXAotICAgICAgICAgICAgaWYgKHB0cikgXAot
ICAgICAgICAgICAgICAgIGRlbGV0ZXJGdW5jKHB0cik7IFwKLSAgICAgICAgfSBcCi0gICAgfTsK
LQotRk9SX0VBQ0hfR0xJQl9ERUxFVEVSKFdURl9ERUZJTkVfR1BUUl9ERUxFVEVSKQotI3VuZGVm
IEZPUl9FQUNIX0dMSUJfREVMRVRFUgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgR1Vu
aXF1ZU91dFB0ciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR1VuaXF1ZU91dFB0cik7Ci1w
dWJsaWM6Ci0gICAgR1VuaXF1ZU91dFB0cigpCi0gICAgICAgIDogbV9wdHIobnVsbHB0cikKLSAg
ICB7Ci0gICAgfQotCi0gICAgfkdVbmlxdWVPdXRQdHIoKQotICAgIHsKLSAgICAgICAgcmVzZXQo
KTsKLSAgICB9Ci0KLSAgICBUKiYgb3V0UHRyKCkKLSAgICB7Ci0gICAgICAgIHJlc2V0KCk7Ci0g
ICAgICAgIHJldHVybiBtX3B0cjsKLSAgICB9Ci0KLSAgICBHVW5pcXVlUHRyPFQ+IHJlbGVhc2Uo
KQotICAgIHsKLSAgICAgICAgR1VuaXF1ZVB0cjxUPiBwdHIobV9wdHIpOwotICAgICAgICBtX3B0
ciA9IG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBwdHI7Ci0gICAgfQotCi0gICAgVCYgb3BlcmF0
b3IqKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3B0cik7Ci0gICAgICAgIHJldHVy
biAqbV9wdHI7Ci0gICAgfQotCi0gICAgVCogb3BlcmF0b3ItPigpIGNvbnN0Ci0gICAgewotICAg
ICAgICBBU1NFUlQobV9wdHIpOwotICAgICAgICByZXR1cm4gbV9wdHI7Ci0gICAgfQotCi0gICAg
VCogZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KLQotICAgIGJvb2wgb3BlcmF0b3IhKCkg
Y29uc3QgeyByZXR1cm4gIW1fcHRyOyB9Ci0KLSAgICAvLyBUaGlzIGNvbnZlcnNpb24gb3BlcmF0
b3IgYWxsb3dzIGltcGxpY2l0IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90aGVyIGlu
dGVnZXIgdHlwZXMuCi0gICAgdHlwZWRlZiBUKiBHVW5pcXVlT3V0UHRyOjoqVW5zcGVjaWZpZWRC
b29sVHlwZTsKLSAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKCkgY29uc3QgeyByZXR1
cm4gbV9wdHIgPyAmR1VuaXF1ZU91dFB0cjo6bV9wdHIgOiAwOyB9Ci0KLXByaXZhdGU6Ci0gICAg
dm9pZCByZXNldCgpCi0gICAgewotICAgICAgICBpZiAobV9wdHIpIHsKLSAgICAgICAgICAgIEdV
bmlxdWVQdHI8VD4gZGVsZXRlUHRyKG1fcHRyKTsKLSAgICAgICAgICAgIG1fcHRyID0gbnVsbHB0
cjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIFQqIG1fcHRyOwotfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV1RGCi0KLXVzaW5nIFdURjo6R1VuaXF1ZVB0cjsKLXVzaW5nIFdURjo6R1VuaXF1ZU91dFB0
cjsKLQotI2VuZGlmIC8vIFVTRShHTElCKQotCi0jZW5kaWYgLy8gR1VuaXF1ZVB0cl9oCi0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR2xpYlV0aWxpdGllcy5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9nb2JqZWN0L0dsaWJVdGlsaXRpZXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmMDhlMzMzNDU1NDdkZThkNThiODY5MTZlNTkxOGQ0Nzk5YTU3ZTk2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3Rm
L2dvYmplY3QvR2xpYlV0aWxpdGllcy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSwgUy5MLgotICoKLSAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKLSAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiR2xpYlV0aWxpdGllcy5oIgotCi0jaWYgT1MoV0lO
RE9XUykKLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+Ci0jZWxzZQotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2Vu
ZGlmCi0KLSNpZiBPUyhMSU5VWCkKLUNTdHJpbmcgZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKCkK
LXsKLSAgICBzdGF0aWMgY2hhciByZWFkTGlua0J1ZmZlcltQQVRIX01BWF07Ci0gICAgc3NpemVf
dCByZXN1bHQgPSByZWFkbGluaygiL3Byb2Mvc2VsZi9leGUiLCByZWFkTGlua0J1ZmZlciwgUEFU
SF9NQVgpOwotICAgIGlmIChyZXN1bHQgPT0gLTEpCi0gICAgICAgIHJldHVybiBDU3RyaW5nKCk7
Ci0gICAgcmV0dXJuIENTdHJpbmcocmVhZExpbmtCdWZmZXIsIHJlc3VsdCk7Ci19Ci0jZWxpZiBP
UyhIVVJEKQotQ1N0cmluZyBnZXRDdXJyZW50RXhlY3V0YWJsZVBhdGgoKQotewotICAgIHJldHVy
biBDU3RyaW5nKCk7Ci19Ci0jZWxpZiBPUyhVTklYKQotQ1N0cmluZyBnZXRDdXJyZW50RXhlY3V0
YWJsZVBhdGgoKQotewotICAgIHN0YXRpYyBjaGFyIHJlYWRMaW5rQnVmZmVyW1BBVEhfTUFYXTsK
LSAgICBzc2l6ZV90IHJlc3VsdCA9IHJlYWRsaW5rKCIvcHJvYy9jdXJwcm9jL2ZpbGUiLCByZWFk
TGlua0J1ZmZlciwgUEFUSF9NQVgpOwotICAgIGlmIChyZXN1bHQgPT0gLTEpCi0gICAgICAgIHJl
dHVybiBDU3RyaW5nKCk7Ci0gICAgcmV0dXJuIENTdHJpbmcocmVhZExpbmtCdWZmZXIsIHJlc3Vs
dCk7Ci19Ci0jZWxpZiBPUyhXSU5ET1dTKQotQ1N0cmluZyBnZXRDdXJyZW50RXhlY3V0YWJsZVBh
dGgoKQotewotICAgIHN0YXRpYyBXQ0hBUiBidWZmZXJbTUFYX1BBVEhdOwotICAgIERXT1JEIGxl
bmd0aCA9IEdldE1vZHVsZUZpbGVOYW1lVygwLCBidWZmZXIsIE1BWF9QQVRIKTsKLSAgICBpZiAo
IWxlbmd0aCB8fCAobGVuZ3RoID09IE1BWF9QQVRIICYmIEdldExhc3RFcnJvcigpID09IEVSUk9S
X0lOU1VGRklDSUVOVF9CVUZGRVIpKQotICAgICAgICByZXR1cm4gQ1N0cmluZygpOwotCi0gICAg
U3RyaW5nIHBhdGgoYnVmZmVyLCBsZW5ndGgpOwotICAgIHJldHVybiBwYXRoLnV0ZjgoKTsKLX0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ29iamVjdC9HbGliVXRpbGl0aWVz
LmggYi9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dsaWJVdGlsaXRpZXMuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggY2UxMGEwNWM4OTNmYTY3ZGM3MTc4ZGJiNjRkZmEwODIxYjA2OGNm
OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9nb2JqZWN0L0dsaWJVdGlsaXRpZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhLCBTLkwuCi0gKgotICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQotICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
LSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0K
LSNpZm5kZWYgR2xpYlV0aWxpdGllc19oCi0jZGVmaW5lIEdsaWJVdGlsaXRpZXNfaAotCi0jaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0K
LUNTdHJpbmcgZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKCk7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcApp
bmRleCBiODQ1MTE1ZTZmMjk4ODVhMjg3NzFmYzIyMmZhMWVhZGExYTdlNzU5Li4yZjM1Zjc0MDk3
OGU3ODM1NzUyMTRjNDk1ZTQzZWI0NTVjOTI3NGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcApAQCAtMzEsNyArMzEs
NyBAQAogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIldlYktpdEFjY2Vzc2li
bGVXcmFwcGVyQXRrLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVk
ZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2li
bGVJbnRlcmZhY2VUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dl
YktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcAppbmRleCA0Yjk3ZGU5NDUzOGNiMDAwMzEw
ZmRmMzRiNjUxMTRhODE0ZGFlYjk1Li5lYTY4YjAzMGU0NTgyMzc5ODE4ZDAzYmVkZjQ0Y2YzZDZl
MDVhNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJL
aXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwCkBAIC01MSw3ICs1
MSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0QWNjZXNzaWJsZVV0aWwuaCIKICNpbmNsdWRlICJXZWJL
aXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCi0jaW5j
bHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlx
dWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9E
T01PYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0RPTU9i
amVjdENhY2hlLmNwcAppbmRleCBhY2I2ZjY4ODJkNmZkZmYxOTFiNDU1NzliNjk1YzRmOGI4MDk5
ZWUzLi42ZjM0N2JiNjk4OTc0ZjNjODc4MTEwMDhmOWRhZmY0MTBhMjU1NWI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0RPTU9iamVjdENhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0RPTU9iamVjdENhY2hlLmNwcApAQCAt
MjgsNyArMjgsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi9n
b2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2Jq
ZWN0L0dPYmplY3RFdmVudExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2Jq
ZWN0L0dPYmplY3RFdmVudExpc3RlbmVyLmgKaW5kZXggNTg0MzZmZDhhZjVjODU3OWNkNTA5MjBk
MWZkNTc3NzQ0MzAzNzhiMy4uZTExN2Y0MGQ2ZWNlNWQ0ZjY2OGMwOTliODA5NTZhNzNiMGZjNmM4
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0RXZl
bnRMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVj
dEV2ZW50TGlzdGVuZXIuaApAQCAtMjIsNyArMjIsNyBAQAogI2luY2x1ZGUgIkV2ZW50TGlzdGVu
ZXIuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
LSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdHlwZWRlZiBzdHJ1Y3Qg
X0dPYmplY3QgR09iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dv
YmplY3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uaAppbmRleCA5MTFlZDczZTNi
ZjYzZWRhMzMyZTQ5M2EyOGEzNDhiMTdhY2IxNTVlLi42OTI3NjRkMjUwZmU3MzIzN2JjM2QyMDUx
MTUzOTBhZWM3YjBhOTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2Jq
ZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5oCkBAIC0yNCw3ICsyNCw3
IEBACiAjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZUZpbHRlci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIE5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9nb2JqZWN0L0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2dvYmplY3QvR09iamVjdFhQYXRoTlNSZXNvbHZlci5oCmluZGV4IGVhYTM1ZjlkZTM3
OTMzOWUyY2YwMWZiNmJlODEwNTAwMTNiNzYwMTUuLjM2OWFkMDUyMTAzOTMyY2Q0ODM4YWI3MDlh
OTI3YTRjNjY1ZWY0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmpl
Y3QvR09iamVjdFhQYXRoTlNSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2dvYmplY3QvR09iamVjdFhQYXRoTlNSZXNvbHZlci5oCkBAIC0yMiw3ICsyMiw3IEBACiAjaW5j
bHVkZSAiV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyLmgiCiAjaW5jbHVkZSAiWFBhdGhOU1Jlc29s
dmVyLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qv
V2ViS2l0RE9NRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVj
dC9XZWJLaXRET01FdmVudFRhcmdldC5jcHAKaW5kZXggYWQ4YjIyNDJhNmUwMDg5OWE4MmMzYzk0
MmMwYzE3ZmM1YzBmZWVhYS4uOWUzYjEyYjllZmY5YWQwY2YyNTlmMjVlNTUyODljZjg5NGI4MWE2
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01F
dmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJL
aXRET01FdmVudFRhcmdldC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJXZWJLaXRE
T01FdmVudC5oIgogI2luY2x1ZGUgIldlYktpdERPTUV2ZW50VGFyZ2V0UHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIldlYktpdERPTVByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCiB0eXBlZGVmIFdlYktpdERPTUV2
ZW50VGFyZ2V0SWZhY2UgV2ViS2l0RE9NRXZlbnRUYXJnZXRJbnRlcmZhY2U7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRleCBmYTEyZDJhODEzNTJiN2E4ZjZlYTFiZWQ2OTc3
NWVkMGE5ZmIyOGRjLi43MmIwMjU0NGU5NTNmOTIyZGIyNmNjN2MwNDNhNDAyNjRjNzdlOTdiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCkBAIC0zNCw3ICszNCw3IEBACiAKICNp
ZiBQTEFURk9STShHVEspCiB0eXBlZGVmIHN0cnVjdCBfR3RrQ2xpcGJvYXJkIEd0a0NsaXBib2Fy
ZDsKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIv
R1JlZlB0ci5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKaW5kZXggNTBjOTdlZDE2M2ZmMzgxNmI2YmU2NjJkZDlj
MWU2MzE4MjQ1NWFmMi4uZTUwOTZjODk5OGQwOGZlMzBkYzU3MDhhZThlM2EyODRiOGQyNzA5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
RGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcApAQCAtMjksNyArMjks
NyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJBdWRpb1NvdXJj
ZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAK
aW5kZXggNDk3NWU2ZmRjMmU0ODYyYzkxODFmMDAxOGY0MjIxZWMyNjg4MmFlNy4uOGIyZTI4ZWZi
NGE4NzI3NjA5ZmZlZWNkYTQzNzE2YzU3ZjQzMTVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJl
YWRlckdTdHJlYW1lci5jcHAKQEAgLTMwLDkgKzMwLDkgQEAKICNpbmNsdWRlIDxnc3QvYXVkaW8v
YXVkaW8taW5mby5oPgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L2dvYmplY3QvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5oPgotI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL2dsaWIvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dVbmlxdWVQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRl
ckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
QXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHAKaW5kZXggMDYyZmFjMjcxZWUyOTdjOGEy
N2RiMjAzMGE1MzJmMzAwMTE5ZTFjZC4uMTlmODJmYjQwY2EyZDY0NTQ1ZGU3M2E2YjM4N2ZhZDY1
ZDdjYTk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVh
bWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNw
cApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc2luay5oPgogI2lu
Y2x1ZGUgPGdzdC9hdWRpby9hdWRpby1pbmZvLmg+CiAjaW5jbHVkZSA8Z3N0L2Jhc2UvZ3N0YWRh
cHRlci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNdXRleExvY2tlci5oPgorI2luY2x1ZGUg
PHd0Zi9nbGliL0dNdXRleExvY2tlci5oPgogCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJB
dWRpb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9n
c3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDZlYmIwOWU3
MDFlNjhmZDEwZDFmZDMwZWZmOTljOGQ1Zjk5OTM1MWUuLjRkOTJjMTFhM2JkYTYzYjA1YWNiMWI1
NzhhMDFlOWYwYzgwZDk2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNl
R1N0cmVhbWVyLmNwcApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBw
c3JjLmg+CiAjaW5jbHVkZSA8Z3N0L2F1ZGlvL2F1ZGlvLWluZm8uaD4KICNpbmNsdWRlIDxnc3Qv
cGJ1dGlscy9taXNzaW5nLXBsdWdpbnMuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVl
UHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3RrL0F1ZGlvQnVzR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2d0ay9B
dWRpb0J1c0d0ay5jcHAKaW5kZXggN2E3ZTc4ZDk2NDk0NTdmYmRjZjNmYzEwMDczMTZlMzg0YThh
MWM0Mi4uNzkxYmZhMzk2MzYwMTVjNmE5OThlYjc4MzhlOThkMDRlM2MyNjA1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3RrL0F1ZGlvQnVzR3RrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9ndGsvQXVkaW9CdXNHdGsuY3BwCkBAIC0y
NCw4ICsyNCw4IEBACiAKICNpbmNsdWRlICJBdWRpb0ZpbGVSZWFkZXIuaCIKICNpbmNsdWRlIDxn
aW8vZ2lvLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlb2NsdWUvR2VvbG9jYXRpb25Q
cm92aWRlckdlb2NsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlb2NsdWUvR2VvbG9j
YXRpb25Qcm92aWRlckdlb2NsdWUuaAppbmRleCA2NTRjZWU1ODRmMmUwMTE3M2Y2NzY1MTRhOGNl
ZmU3OTA0YzdmZjRlLi43YzMyNTkzOWI4NjI5M2M5MGVmYTUxMGRhMWJiNGQzMmIyODZmODFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW9jbHVlL0dlb2xvY2F0aW9uUHJv
dmlkZXJHZW9jbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VvY2x1ZS9HZW9s
b2NhdGlvblByb3ZpZGVyR2VvY2x1ZS5oCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdF
T0xPQ0FUSU9OKQogCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWVDbGllbnQu
aCIKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIv
R1JlZlB0ci5oPgogCiAjaWYgVVNFKEdFT0NMVUUyKQogI2luY2x1ZGUgIkdlb2NsdWUySW50ZXJm
YWNlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW9jbHVlL0dlb2xv
Y2F0aW9uUHJvdmlkZXJHZW9jbHVlMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW9j
bHVlL0dlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlMi5jcHAKaW5kZXggY2VhNDhmM2I2ZWNiYzhk
ODc2YzI5YzVkYzYzMzBiMWViZTZkNTExOS4uNTBiMDA5NWQ0MTA5N2FkNjAzNjg2YzNkY2RmYjFm
ZmQwYWRiZjI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VvY2x1ZS9H
ZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZTIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dlb2NsdWUvR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWUyLmNwcApAQCAtMjgsOCArMjgs
OCBAQAogCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKSAmJiBVU0UoR0VPQ0xVRTIpCiAKLSNpbmNs
dWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR2xp
YlV0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogCiBjb25zdCBjaGFyKiBnR2VvY2x1ZUJ1c05hbWUgPSAib3JnLmZyZWVkZXNrdG9wLkdlb0Ns
dWUyIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvQmF0dGVyeVBy
b3ZpZGVyVVBvd2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvQmF0dGVyeVBy
b3ZpZGVyVVBvd2VyLmNwcAppbmRleCBlZmM4MDAwZWQxMjI5ZTFlYmI2NmUyZmYzNDFjNmRlNTIw
NzIxZmE2Li45ZmE0ZWY2NGNhOGM5NmM1MjBjYmIwODUxZGJjNGQyZTk2MzA1NmRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0JhdHRlcnlQcm92aWRlclVQb3dlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9CYXR0ZXJ5UHJvdmlkZXJVUG93
ZXIuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiQmF0dGVyeVByb3ZpZGVyVVBvd2Vy
Q2xpZW50LmgiCiAjaW5jbHVkZSA8Y21hdGg+CiAjaW5jbHVkZSA8bGltaXRzPgotI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRy
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nbGliL0JhdHRlcnlQcm92aWRlclVQb3dlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ2xpYi9CYXR0ZXJ5UHJvdmlkZXJVUG93ZXIuaAppbmRleCBkMTYwOWJiNjVh
OGM1MmU4ODE1MThkOTVmZGVmZjRjNWM2MTg3ZDE0Li42ZTczZTRmYTAzZTQ0N2NiOTdiYzgyYTJh
ZjUyMzM2YWYwNGVmYjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGli
L0JhdHRlcnlQcm92aWRlclVQb3dlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ds
aWIvQmF0dGVyeVByb3ZpZGVyVVBvd2VyLmgKQEAgLTIzLDcgKzIzLDcgQEAKICNpZiBFTkFCTEUo
QkFUVEVSWV9TVEFUVVMpCiAKICNpbmNsdWRlIDxsaWJ1cG93ZXItZ2xpYi91cG93ZXIuaD4KLSNp
bmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oCmlu
ZGV4IDJjZTBhMWQ4MDhhZTIyNDU2ZWFiMzM4ZjU0MDU1MjU1ZDNhYzE5OGIuLjRiYTUzM2FmYTZl
MDAxNzNhM2M5YWJmYWYzNzE3ZWRiYTEyZjM4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIu
aApAQCAtMjEsNyArMjEsNyBAQAogI2RlZmluZSBHUmVmUHRyR1N0cmVhbWVyX2gKICNpZiBVU0Uo
R1NUUkVBTUVSKQogCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX0dzdEVsZW1lbnQgR3N0RWxl
bWVudDsKIHR5cGVkZWYgc3RydWN0IF9Hc3RQYWQgR3N0UGFkOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
VXRpbGl0aWVzLmNwcAppbmRleCAyNzliZGRlZDc2YjMyNDFiNTExZDQ1YTcyZTg5N2FhOGUxOTY5
M2VjLi44YzU1OTU1NmRkNjdjZTVjMDdjYTk5NzdkNDQxYWQ1NTFmZjJlNjcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRp
bGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmNwcApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgPGdz
dC9nc3QuaD4KICNpbmNsdWRlIDxnc3QvdmlkZW8vdmlkZW8taW5mby5oPgogI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykg
JiYgVVNFKEdTVFJFQU1FUl9NUEVHVFMpCiAjZGVmaW5lIEdTVF9VU0VfVU5TVEFCTEVfQVBJCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1Vu
aXF1ZVB0ckdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dVbmlxdWVQdHJHU3RyZWFtZXIuaAppbmRleCBjNGQxMmI1YjY5YWEwZmI5ZThiZDAz
MDA4MmY5NTQ3ZDBhNDU5M2U1Li45YmRkMjY2OTk0ZWQ0MTgyZmFkZmI0ODYxMzAyZGJmOWU2Yzll
N2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1VuaXF1ZVB0ckdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HVW5pcXVlUHRyR1N0cmVhbWVyLmgKQEAgLTIyLDcgKzIyLDcgQEAK
ICNpZiBVU0UoR1NUUkVBTUVSKQogCiAjaW5jbHVkZSA8Z3N0L2dzdHN0cnVjdHVyZS5oPgotI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5p
cXVlUHRyLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJl
YW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFu
ZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA2MjIyYTY4NDgyN2JjY2UyNDBmMDMw
MmE5Y2EyZTYyZTA0MDlmOTQ4Li5iN2RmZmE3NmVjMDdhNjM3YTdmMmVkMjUxODgzYjA5MzY4MDQw
NmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVh
bWVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCiAj
aW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXIuaCIKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVGhyZWFkU2FmZU1haW5M
b29wU291cmNlLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJj
ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggMjc4MTIyMTU2OWU2YTVlMjMxODFjODhhOGQ4
NDRhODU1NzQzZGY2My4uYTI1NTMzMzU0M2E0YTk0NTNhOWYwZjIzNjA5NjVjOTk4ZDI5NTU5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAg
LTQwLDcgKzQwLDcgQEAKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8d3RmL0hleE51bWJl
ci5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9H
VW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA0YzI2ZjBkNzhlMmRl
YjQ2YTZjMTY5ZjFhNDMxNjQzYzgzZWZmZDQ2Li4yNjAyNjRjOTUzM2U3MzlkZGM2NWJlZjliYjE4
MTg5OTk0MTJlNmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgogI2luY2x1ZGUg
PGdzdC9wYnV0aWxzL2luc3RhbGwtcGx1Z2lucy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuaD4KIAogI2lmIEVOQUJM
RShWSURFT19UUkFDSykgJiYgVVNFKEdTVFJFQU1FUl9NUEVHVFMpCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQXRvbWljU3RyaW5nSGFzaC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IDMxOGE0ZjVlNGU5MDlkZDJiNTBmNzdmNGVk
OWVhMDJkM2Q5ZDhlOTQuLjY0YTIzZDFmMmQ5M2FiZmU3Y2MyZGFhODc2NTFmODU0NjYzZjQ1ZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZS5jcHAKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlICJWaWRlb1NpbmtHU3RyZWFtZXIuaCIK
ICNpbmNsdWRlICJXZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuaCIKICNpbmNsdWRlIDxnc3QvZ3N0
Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR011dGV4TG9ja2VyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR011dGV4TG9ja2VyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAj
aW5jbHVkZSA8Z3N0L2F1ZGlvL3N0cmVhbXZvbHVtZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKaW5kZXggODllYWE3OWExMWFmZWE3Mjli
MjQ1MDliOTU3MDc1ZDVlNDAyMDM3ZS4uMzEzNTczM2QxYjE5OGU2NWFmNWIzODI0ZTVjMmQ4Njcx
ZmI2ZjJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSA8Z2xpYi5oPgogCiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVGhyZWFkU2FmZU1haW5M
b29wU291cmNlLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJj
ZS5oPgogCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTKQogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3Vy
Y2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA4ZDMzYTIwZDRhMTJjZTQyZGVlOTgw
Y2Q2ZGY3NWE1MjFhOTVlNGRjLi4zYTJmODU5Y2YzMTA4MWQwZDk1ZmMxODgyYWI3MDE0MmQyNWNi
ZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTM5LDcgKzM5
LDcgQEAKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKIAotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3Bw
CmluZGV4IDVjOTA0M2MzZmJiNjIyY2Y1NzE2N2ZmNWY5ODk1Mjg3NzMxMjI5YzMuLmQ5MWZkMWVi
NmVkZDMzOTEzYzQzNDI3NjYzNDIwM2Q0ZmQ3YzAxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJh
Y2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlIDxn
bGliLW9iamVjdC5oPgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDxnc3QvdGFnL3Rh
Zy5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
Z2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBHU1Rf
REVCVUdfQ0FURUdPUllfRVhURVJOKHdlYmtpdF9tZWRpYV9wbGF5ZXJfZGVidWcpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgKaW5kZXggOWU2ODA5MTg4ZWFmYWNj
MmUwZTExMjVjZDI0YjFhNWFkMWM4MDkwMC4uZTNkNmY0MWViODFiOTViZWU4MzYwM2NmNTFiYzgy
OTNkNzU5MTZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5o
CkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCiAjaW5j
bHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9H
VGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1RocmVhZFNh
ZmVNYWluTG9vcFNvdXJjZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCmluZGV4
IGM5NzJjNGQ4MTRhNDM1YTBiYWJmYmE5ZjVhOTIxODBjMzQ0MDkwMmIuLjE4NzA0ZjhlMWI5MDQ5
YWNhNWI2MzUwNjBjODRiYzliYzZhZjQ1YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFt
ZXIuY3BwCkBAIC0zNSw4ICszNSw4IEBACiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPGdz
dC9nc3QuaD4KICNpbmNsdWRlIDxnc3QvdmlkZW8vZ3N0dmlkZW9tZXRhLmg+Ci0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR011dGV4TG9ja2VyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1RocmVh
ZFNhZmVNYWluTG9vcFNvdXJjZS5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dNdXRleExvY2tlci5o
PgorI2luY2x1ZGUgPHd0Zi9nbGliL0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0TWVkaWFTb3Vy
Y2VHU3RyZWFtZXIuY3BwCmluZGV4IDYxY2ZlYjg3MTA2ZjlhNzJkYjA0N2Q5NThmYTQ5ZTY0ZjI4
NmVlMWYuLjMxMjUwZWEzMTcyOTg0MDc2MzA4YTk3NDMzYmEzMjJiYTY4NWY5MTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRNZWRp
YVNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMzEsNyArMzEs
NyBAQAogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc3JjLmg+CiAjaW5jbHVkZSA8Z3N0L2dzdC5o
PgogI2luY2x1ZGUgPGdzdC9wYnV0aWxzL21pc3NpbmctcGx1Z2lucy5oPgotI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB0eXBlZGVmIHN0cnVjdCBfU291cmNl
IFNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5k
ZXggMzJlM2MxNDVhZjY5MmQ4OGQ4ZDRiMDQ3OTFmYTUxNWViODMwMzQ5Ny4uOTM0ZGFmOGNiNmQ1
OThjN2VlYjZhN2QyNmM3NGY0MjFhZjY3OTRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdl
YlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTQwLDEwICs0MCwxMCBAQAogI2luY2x1ZGUgPGdzdC9w
YnV0aWxzL21pc3NpbmctcGx1Z2lucy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR011dGV4
TG9ja2VyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuaD4KLSNpbmNsdWRlIDx3dGYvZ29i
amVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR011dGV4TG9ja2VyLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dUaHJlYWRT
YWZlTWFpbkxvb3BTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9JbWFnZUJ1
ZmZlckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvSW1hZ2VC
dWZmZXJHdGsuY3BwCmluZGV4IDc4YTYwYzFlZmMwMTNmYWExOWZkZWZkZTg0MzgzMmY0MDdiNzkz
MzQuLjMxNmNkMWMzYTFmOGJjYWY4MGU2ZGI3YmM5MTI5YWQ3OTAwMmNmN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9JbWFnZUJ1ZmZlckd0ay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ltYWdlQnVmZmVyR3Rr
LmNwcApAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNp
bmNsdWRlIDxjYWlyby5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3dGYvZ29i
amVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9JbWFnZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ndGsvSW1hZ2VHdGsuY3BwCmluZGV4IGUxYjJiYmM0NmFhNGExNzE3
OGU5NDhlODFkN2Y1YjU1NzcyZWI1MjQuLjQ5Y2NjOTExOGY0ZjU3MDVjYTQxY2NmMDMzYjM5NWM4
N2ViYmU1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0
ay9JbWFnZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0ltYWdlR3RrLmNwcApAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgogI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlx
dWVQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0NvbnRleHRNZW51R3RrLmNwcAppbmRleCA5NmNkMjY4ZWI4YTU3MzZkMzQxNmJh
NWQ1OGNmMzlmYjc5ZTVjMjk5Li5hMTkwODU1OTdlNWMzOGNjMzIxZDg5YThlYzJkMjcxM2MxNTQ4
YWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVH
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUd0ay5j
cHAKQEAgLTI0LDggKzI0LDggQEAKICNpbmNsdWRlICJDb250ZXh0TWVudS5oIgogCiAjaW5jbHVk
ZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRl
IDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJ
dGVtR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0ZW1H
dGsuY3BwCmluZGV4IGM0MGIzNzE3MmRlMDk2YTVlODlkYTZjN2ZjMGM1M2VhOGU3MWM5MDAuLmQw
OGFmZWIwYzJmMDVhMTI1YmJiMzRhYWQ5YzZmMTczYjI0Y2U4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwCkBAIC0yNiw4ICsy
Niw4IEBACiAKICNpbmNsdWRlICJDb250ZXh0TWVudS5oIgogI2luY2x1ZGUgPGd0ay9ndGsuaD4K
LSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAj
ZGVmaW5lIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OICJ3ZWJraXQtY29udGV4dC1tZW51Igpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RhdGFPYmplY3RHdGsuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RhdGFPYmplY3RHdGsuY3BwCmluZGV4IGY2
MDAxNzY4N2M2M2NkMzQ5YTk5YjU3MjA4MjFiZWRjNzZmOGZhYzAuLjFjZDQxYjlkNGRjZDdjMzNl
ODNkNzZjMWM0ZTczZTE3OTgzZjM2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9EYXRhT2JqZWN0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvRGF0YU9iamVjdEd0ay5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICNpbmNsdWRlICJEYXRhT2Jq
ZWN0R3RrLmgiCiAKICNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRGF0YU9iamVjdEd0
ay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RhdGFPYmplY3RHdGsuaAppbmRleCA4
NTBkMjgwZmY0YjkzNjRjYjg0NDY3MTdjNTM0N2MwZmVmNTRiNGY1Li5kY2U1Mzc3NzlkYmY5MTY4
ZjgzMTUzZGE2MzJlZDM5MTIzZjMwMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvRGF0YU9iamVjdEd0ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9EYXRhT2JqZWN0R3RrLmgKQEAgLTIyLDcgKzIyLDcgQEAKICNpbmNsdWRlICJGaWxlTGlzdC5o
IgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVk
ZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcAppbmRleCBi
OGViMjlkMzgzM2NiMDlhY2VlYzQ5ZGE4MDU0YTc5Yzk2NjQwNTU2Li45MTVlYTY5YmIxNzA5ODYx
MGNjOWY4ZGQyMzliNTgzNzdjOTU4Y2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvRmlsZVN5c3RlbUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0ZpbGVTeXN0ZW1HdGsuY3BwCkBAIC0yOSw5ICsyOSw5IEBACiAjaW5jbHVkZSA8Z2lvL2dp
by5oPgogI2luY2x1ZGUgPGdsaWIuaD4KICNpbmNsdWRlIDxnbGliL2dzdGRpby5oPgotI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVl
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR2xpYlV0aWxpdGllcy5oPgorI2luY2x1ZGUg
PHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmgKaW5kZXggY2RjN2I3ZWI0MGFhYTlmMTdmY2UxYzI5
N2ZkMjZhMjdmNjhjZTliNy4uOGYwNDI2ZGI1MWVkNjg4N2UyNGVhMzljMTMyYjQ3NzhmZmI4NjJh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5oCkBAIC0yMSw3ICsy
MSw3IEBACiAjaWZuZGVmIEdSZWZQdHJHdGtfaAogI2RlZmluZSBHUmVmUHRyR3RrX2gKIAotI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRy
Lmg+CiAKIHR5cGVkZWYgc3RydWN0IF9TZWNyZXRWYWx1ZSBTZWNyZXRWYWx1ZTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dVbmlxdWVQdHJHdGsuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HVW5pcXVlUHRyR3RrLmgKaW5kZXggYTdjN2M0NDQzYTRi
NDdlYzRmMmI2MjBjNWIwNzljOTI5ZWFjMTIxOS4uNjQzMDdkYWU1MjY5Mzk0N2M0ZWFiZDFlZjM1
ZDIwMjZiZDJlM2EzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dV
bmlxdWVQdHJHdGsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1VuaXF1ZVB0
ckd0ay5oCkBAIC0yMSw3ICsyMSw3IEBACiAjZGVmaW5lIEdVbmlxdWVQdHJHdGtfaAogCiAjaW5j
bHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcAppbmRleCBmNzZkOTJmMDVj
MTFkZTg2NTU1M2RjZTA5ZWMwYTIwZWM4MDA2ZGI3Li4yNmY5YmU2MmM3NjQ2M2M2ZTA4MWZjZWZl
Nzk2YjJlYWYxNzU5NThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R2FtZXBhZHNHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFk
c0d0ay5jcHAKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlIDxnaW8vZ3VuaXhpbnB1dHN0cmVh
bS5oPgogI2luY2x1ZGUgPGd1ZGV2L2d1ZGV2Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
LSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvR3RrVXRpbGl0aWVzLmNwcAppbmRleCBhY2RhZjRlZDZiMmQ4NDVhZTRkZmUwZTc1ZThh
MmE1NzhkMjk0ZTM3Li45ZjRlMTdhNWMzYTJmMDllNDA5OTBmZjZmOTFkZmUyYTYxYTc0OTY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcApAQCAtMjEs
OCArMjEsOCBAQAogCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNsdWRlIDxndGsvZ3RrLmg+
Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dsaWJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9MYW5ndWFnZUd0ay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTGFuZ3VhZ2VHdGsuY3BwCmluZGV4IDU4
ZDNhOTFiYzYyMGRlMDNmZGY2NWE1MzA5MmU0MDg0N2VkMTI0ZTkuLjUxNWM4MmQ5NjFjYjg3NDdl
ZDYzYWQwNjM4MDQ0Zjg3M2JmNTJlYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9MYW5ndWFnZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0xhbmd1YWdlR3RrLmNwcApAQCAtMjEsNyArMjEsNyBAQAogI2luY2x1ZGUgIkxhbmd1YWdlLmgi
CiAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1
ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcApp
bmRleCA0NjRjOTQ3N2Q5YmY3N2YxYWUwMjMxZTc2MTUwNTBiMDZjNzk5YTQ1Li4zY2I3MTI2NTg1
YTAzMDgzYWY4YmU1NGI1YzAzYmEzZjViZGIxMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCkBAIC0zNiw3ICszNiw3IEBA
CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCmluZGV4IDY4NDRh
ODBkODAzZTBkMzI4NWU2NDJhNGI2NzAzZTVhNTQyMTg2OWEuLjQ4ZGFlYjM5YThkMGZjMDI1MzM1
ODRkYTU0NjEyMGRiZjQ3MjU5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUGFzdGVib2FyZEhlbHBlci5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJQYXN0
ZWJvYXJkLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgPGd0
ay9ndGsuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8
d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9T
Y3JvbGxiYXJUaGVtZUd0ay5jcHAKaW5kZXggOWM1NjI1OGYxMDZlNzBkZDc5OGM3MTU5OTk0MzMy
YTlkNGVjZTFiZS4uOGZjYmIzMmQyMzJmY2I3MTZmNDU3NmNlZTNkMGVlMGRhNDJiNTI3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3Bw
CkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSA8Z3Rr
L2d0ay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9n
b2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1NoYXJlZEJ1ZmZlckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVk
QnVmZmVyR3RrLmNwcAppbmRleCA5ZjZiNmM0YTBjNGMyMWFiOGE4ZDBjNjQyYWI2MzNhMTc5Mzhj
M2ZhLi5lMTUyMmY2ZmFjMTA5ZmE0OTYyODE5YjAxMWEwZjg3NWM5MmMwODY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNwcApAQCAtMjAsNyAr
MjAsNyBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCiAjaW5jbHVkZSAiRmlsZVN5c3Rl
bS5oIgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
Z2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaW5j
bHVkZSA8Z2xpYi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1No
YXJlZFRpbWVyR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFyZWRUaW1l
ckd0ay5jcHAKaW5kZXggMTMzZTkwNmZhMGYwNTgwOWI2YTUwYTAwZTk5MThiZGMxZDY4MDM5OC4u
Y2ZmN2Q3MzMxMWY0MTA0YWMxM2UzZmFiMDVhOWI3MjJmNGVhMTg0NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJlZFRpbWVyR3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkVGltZXJHdGsuY3BwCkBAIC0yOCw3ICsyOCw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2hhcmVkVGltZXIuaCIKIAotI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dN
YWluTG9vcFNvdXJjZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlck93ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwCmluZGV4IGVjMjU3
MzFhZWE5ZjVjZTFjM2IxNjVmYzA0YzIxOGRmMGJlN2ExMzUuLjhlYmQ0MjllZWYxOTgzNTIwNzkz
NDI4ZjY0NGNlMWM4MjRlZDJjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmNwcApAQCAtNDksNyArNDksNyBAQAogI2luY2x1ZGUg
PG93ci9vd3JfbWVkaWFfc291cmNlLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5p
cXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUludGVybmFsLmgKaW5kZXggNmJjZDUzNjIxNjlkYmJkOWRmNmVmNDFlNjc1YTY1MGViZTM4NGIz
OC4uNDQ4ZWE3Njk4ZThjMzkxNjM5YTM4NzUzZTA2ZjA0ZjAwMmY3NWUzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVy
bmFsLmgKQEAgLTUxLDggKzUxLDggQEAKICNpZiBVU0UoU09VUCkKICNpbmNsdWRlICJHVW5pcXVl
UHRyU291cC5oIgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgotI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dNYWluTG9vcFNvdXJjZS5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvZ2xpYi9HTWFpbkxvb3BTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HUmVmUHRyLmg+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ndGsvQ3JlZGVudGlhbEJhY2tpbmdTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50aWFsQmFj
a2luZ1N0b3JlLmNwcAppbmRleCA4NTEzN2YwNWQyYzQ0OGNkY2NkOGMyZDkzZTc5MDA0OTk2NGRh
NDdiLi5lZjJkMzkxNWE2NDIxZDEyMjg0MDRmOTg0ODZhM2NhM2MwMWQyMmExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50aWFsQmFja2luZ1N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50
aWFsQmFja2luZ1N0b3JlLmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPGdsaWIvZ2kx
OG4tbGliLmg+CiAjaW5jbHVkZSA8bGlic2VjcmV0L3NlY3JldC5oPgogI2luY2x1ZGUgPGxpYnNv
dXAvc291cC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9DZXJ0aWZpY2F0ZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9DZXJ0aWZpY2F0ZUluZm8uaAppbmRleCA3MWRjMjg4YTEzZmI3NmE5ZTMzNTk2ZDdlMmRmMDky
MjEzMzhiZDZiLi4yMDZjZGVmNjg3NGY2MjcyOGMzZjUxMjI1NGM5YmZmNDhiMmNjMjNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ2VydGlmaWNhdGVJ
bmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0NlcnRpZmlj
YXRlSW5mby5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nv
b2tpZUphclNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nv
b2tpZUphclNvdXAuY3BwCmluZGV4IDEzMDFiNTc2ODk2ZDg2MjFiNWYwMGUxODNmMmI1NmFkZTA4
MTg5Y2IuLmZkYTI0NGNjYjE2MzgwZTQzNTZkMWZiMGU1YmQ1MThmMWJmYTRmYzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291
cC5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiU291cE5ldHdvcmtTZXNz
aW9uLmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9ETlNTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9E
TlNTb3VwLmNwcAppbmRleCAxZGZkZGE3NDA2NzY2MmU2ZDg0ZDJjNjY4OTQ4OGYwOWJlMGRiZDhh
Li40Y2ZkYmE1ZjFlYmUxZjc2YTZkMzRhMjllMDRkOWZhYzgzNGYwNDExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvRE5TU291cC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwCkBAIC0zMyw4ICsz
Myw4IEBACiAjaW5jbHVkZSAiU291cE5ldHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSA8bGlic291
cC9zb3VwLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvZ29i
amVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvR1JlZlB0
clNvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9HUmVmUHRyU291
cC5oCmluZGV4IDY5ZmRiMjU3YWIxN2VhMjIwODUyYzEzMDE3YzA5YjU5NWE3ZTJlYzUuLmE1OTg4
ZTJmYjk3ZGFkYmFmN2FiY2EyNzM1ZjU3MzFlZDY5ZGQ2ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9HUmVmUHRyU291cC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9HUmVmUHRyU291cC5oCkBAIC0yMyw3ICsyMyw3
IEBACiAjaWYgVVNFKFNPVVApCiAKICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KLSNpbmNsdWRl
IDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgog
CiBuYW1lc3BhY2UgV1RGIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL0dVbmlxdWVQdHJTb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvR1VuaXF1ZVB0clNvdXAuaAppbmRleCAzMjc3NWZiNDZhOGY0NDgzMTcyYTAz
OWQxNGU3Y2FhZThhZThhMjZjLi44NmRjNjM3NDEyZTE4YmE3MjVmNzQ4M2VjMzI2ZTEyNDlhODhh
MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvR1Vu
aXF1ZVB0clNvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
R1VuaXF1ZVB0clNvdXAuaApAQCAtMjEsNyArMjEsNyBAQAogI2RlZmluZSBHVW5pcXVlUHRyU291
cF9oCiAKICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9H
VW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBuYW1lc3Bh
Y2UgV1RGIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUVycm9yLmgKaW5kZXggNjhlZmVhOTRkZDVlY2NmMGEwNWExZjA0NzQ4MzlhMjc1
NGNiYTNiYS4uZTUwMjk3YTdmZTlkNGM4OTQ5MzgxMGQ1NmJiODBmOGE3NWY0YjhlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJv
ci5oCkBAIC0zMCw3ICszMCw3IEBACiAKICNpZiBVU0UoU09VUCkKIAotI2luY2x1ZGUgPHd0Zi9n
b2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIHR5cGVk
ZWYgc3RydWN0IF9HVGxzQ2VydGlmaWNhdGUgR1Rsc0NlcnRpZmljYXRlOwogdHlwZWRlZiBzdHJ1
Y3QgX1NvdXBSZXF1ZXN0IFNvdXBSZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAKaW5kZXggMWM5
M2U2ZWY2YWU1NGQ1YjE0Zjg3Y2FmMzk3YmM2OTMyNmZmMTFmMS4uYjI1YjVhMGI4NjUxZTFhMGNm
NWY2MTk2MGQ1N2EyMjRhYTUzNTgzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCkBAIC0zMCw3ICsz
MCw3IEBACiAKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSA8bGlic291
cC9zb3VwLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggYjdlOGM3ODFi
NzVlZDljZWE5MTkxNzYxYmI2YWZhMWMyMWU0ZTEwYS4uY2NmYWY2OWE1M2VjNDE2NDhkNTRhNDc4
MTQ2ZjBmOGQ1MjA4N2Y4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTU5LDcgKzU5LDcg
QEAKICNlbmRpZgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9T
SEExLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5oCmluZGV4IDM5N2UxYTEyODgwZDQzOTNk
ZTQ0ZmFkOThiN2Q0NDg0Yjk1OGVjNTIuLmZmOGJlMmFkOTM1MTk4ZTRjNmY2NDJiODA3NmU1Mzdk
OGYxMWYwODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZVJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlUmVzcG9uc2UuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIlJl
c291cmNlUmVzcG9uc2VCYXNlLmgiCiAKICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KLSNpbmNs
dWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGUuaAppbmRleCA1ZmYzN2Vh
MGY4YjFlNzZmMjNlZDE1NjVkYzVhMjQ1NGMyNmRjZTIyLi41ZTc3ZDJjMDRjNGMxZDYyNmI1OTNi
NGIxMDFkZTIwZTc3MTc0MGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZS5oCkBAIC0zOSw3ICszOSw3IEBA
CiAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGli
L0dSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlU291cC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxl
U291cC5jcHAKaW5kZXggZjhjY2RlNDE2OGZlYWM4ZmNhOTBiNTBlZTM1MGU1NjljMjljMWZkMi4u
NTM1OGM2OWM0NDU1MGNjMDcyZTYwYjNmNTY0MTYyZWE2N2E1NzFhOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZVNvdXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJl
YW1IYW5kbGVTb3VwLmNwcApAQCAtNDQsNyArNDQsNyBAQAogI2luY2x1ZGUgPGdsaWIuaD4KIAog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KIAogI2RlZmluZSBSRUFEX0JVRkZFUl9TSVpFIDEwMjQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Np
b24uaAppbmRleCA4OTM0NTVhNmMyZWFkMDZlY2VkMTMyMTY5ZjI3NDIyMmVkODM5YmVmLi45Yzhj
ZmFhNjE2YTc0YmM0ZTA3Mzc3Y2VjYWJhODI1MDU0ZGIzZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5o
CkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogdHlwZWRlZiBzdHJ1Y3QgX1NvdXBDYWNoZSBTb3VwQ2FjaGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9IeXBoZW5hdGlvbkxpYkh5cGhlbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9IeXBoZW5hdGlvbkxpYkh5cGhlbi5j
cHAKaW5kZXggMDIzNDI5MTdiNTg0NDIwYzlmNzk2MTA5MDY3YmFkZmEyYjY3ZDdkMi4uNTlmMjNk
ZTc3MTcxZmU0MDY4OWUwMTkzZTM2OGU2OGQ2ZTVkMjIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvSHlwaGVuYXRpb25MaWJIeXBoZW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3RrL0h5cGhlbmF0aW9uTGliSHlwaGVuLmNwcApA
QCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPGh5cGhlbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL2dv
YmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IGI3ZjBiNGI3MTg5YjVlYTJl
Zjc0ZjU5Y2ExMGFjOTk1MmQ2NDA3YzQuLjJhNTU3NTc3YzU2YWU1M2NhOTlkMDIzNDdiNDZlZmRl
ODUyOWQ1ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNw
cApAQCAtNTMsOCArNTMsOCBAQAogI2luY2x1ZGUgPGdsaWIuaD4KICNpbmNsdWRlIDxndGsvZ3Rr
Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmpl
Y3QvR1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW1Qb3NpeC5oIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbVBvc2l4LmgKaW5kZXggODc1
MDIyY2JkYjQwMDFmNGJjODQ4MmI0MGFhNWY3MDNkMDYyMmRmYS4uODU0ZDQzOTQxNGJmYTY5ZjM1
MTk0YTNjMWNjMjBmOTEyMWNhNWNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbVBvc2l4LmgKKysrIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbVBvc2l4
LmgKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNp
ZiBVU0UoU09VUCkKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL2dsaWIvR1JlZlB0ci5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9D
aGFubmVsLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVJT0NoYW5uZWwuaAppbmRleCBiODhhMjM4ZWEwNjcwZDQwMjlmYjk3N2VjY2NhZGQ3ODEwNjM0
MjMzLi42MzczYWY1NjUxZDZkMDVhYjI3ZjQ3N2E5YjMyZTE2M2FlMDUzY2JiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5u
ZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVJT0NoYW5uZWwuaApAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiAjaWYgVVNFKFNPVVApCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAKaW5kZXggODA1YmM3NDUzOWQw
MmIwNGY3Mjk1NTk0YTllNDI0ZTg3ZmYzZjZiNS4uZTlhMGRkOTAzN2U0YWIzMmE5Yjk5ZDk5OGVk
MTM3MTZiODgxZWMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAKQEAgLTI5
LDkgKzI5LDkgQEAKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKIAogI2luY2x1ZGUgIk5ldHdv
cmtDYWNoZUZpbGVTeXN0ZW1Qb3NpeC5oIgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNYWluTG9v
cFNvdXJjZS5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNdXRleExvY2tlci5oPgotI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTWFpbkxv
b3BTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTXV0ZXhMb2NrZXIuaD4KKyNpbmNsdWRl
IDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogbmFtZXNwYWNl
IE5ldHdvcmtDYWNoZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAKaW5kZXggYmE1MTg4MTcwMTYwNDNmNjY4
ZmE0ZDhlZjk1MmQ0ZGU0OWM1MTllMy4uYzg2Y2VkMDFiMjNjMDY5NDI0MmUyM2M1NDFmMGNmNGFj
YzRmZjYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcApAQCAtMzksOCArMzksOCBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvU291cE5ldHdvcmtTZXNzaW9uLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+
CiAjaW5jbHVkZSA8d3RmL1JBTVNpemUuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDhkZmZl
MWQyNzE3Y2JiYTFiY2ZkMTk2MDNmNTE1YWY2Mzg1M2VmMzIuLjE5YzM3NTEyMGE0MDcyMjU5Nzk4
MDhhMzJiOGNhMmRhZWEzMDg4ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0yNTYs
OCArMjU2LDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAg
IiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsIgogICAgICIke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAiCiAgICAgIiR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzIgotICAgICIke1dU
Rl9ESVJ9L3d0Zi9lZmwvIgotICAgICIke1dURl9ESVJ9L3d0Zi9nb2JqZWN0IgorICAgICIke1dU
Rl9ESVJ9L3d0Zi9lZmwiCisgICAgIiR7V1RGX0RJUn0vd3RmL2dsaWIiCiApCiAKIGxpc3QoQVBQ
RU5EIFdlYktpdDJfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsu
Y21ha2UKaW5kZXggODljMjNhMWQ3ZjkyMDcyMjQyOTJlNjRhODM0NmYzNDM4NGZiOGZlNS4uMDkw
ZmZkMDZkMWFkMTgwNjQ1YTg5MDY0ZGMwNGEyNjcwYTU3Mzg4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1H
VEsuY21ha2UKQEAgLTQ4NSw4ICs0ODUsOCBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9zb3VwIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRrIgogICAg
ICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrIgotICAgICIke1dURl9ESVJ9
L3d0Zi9ndGsvIgotICAgICIke1dURl9ESVJ9L3d0Zi9nb2JqZWN0IgorICAgICIke1dURl9ESVJ9
L3d0Zi9ndGsiCisgICAgIiR7V1RGX0RJUn0vd3RmL2dsaWIiCiAgICAgIiR7V1RGX0RJUn0iCiAp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvc291cC9Eb3du
bG9hZFNvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9zb3VwL0Rvd25s
b2FkU291cC5jcHAKaW5kZXggM2ZmMjgyYzcxYTAxZDNhNTM1M2YxNzkyMDkyMjYwZmVkYzFlMWMy
YS4uM2M1Nzk3YWNjMGUwMzY0NWI5ZTI0ZGViYjE0MTFlYTY4MzIzODU4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAK
QEAgLTMyLDkgKzMyLDkgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg+CiAjaW5jbHVkZSA8Z2lv
L2dpby5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oPgotI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVl
UHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR01haW5Mb29wU291cmNlLmg+CisjaW5jbHVkZSA8
d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBQTEFURk9STShHVEspCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9D
dXN0b21Qcm90b2NvbE1hbmFnZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJJbXBsLmgKaW5kZXgg
ZTY1ZmQxMjUyMWM3MjE5ZDMxNjA2NmQwNzg2NDM4ZTViOWRmMmNhNi4uODU4Njc1YTAxNGFjZmE5
OTU2NmU4NjFmNTFmMzNjYTgyZGIxZTlmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VySW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9z
b3VwL0N1c3RvbVByb3RvY29sTWFuYWdlckltcGwuaApAQCAtMjEsNyArMjEsNyBAQAogI2RlZmlu
ZSBDdXN0b21Qcm90b2NvbE1hbmFnZXJJbXBsX2gKIAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dS
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogdHlwZWRlZiBzdHJ1
Y3QgX0dUYXNrIEdUYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50
SW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5oCmluZGV4IDhiZTlmOGQx
ZjhmOTljMDEyMmYxY2I2M2EyYmNiZmEzMzQzNTY1YzUuLmJjYjJiZTE4Y2QxMjMzZDA4NDc0NTMz
NjU1ZmIzZTY2Mzg3YjMzNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcmlu
dEluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmgKQEAgLTMxLDcg
KzMxLDcgQEAgT0JKQ19DTEFTUyBOU1ByaW50SW5mbzsKICNlbGlmIFBMQVRGT1JNKEdUSykKIHR5
cGVkZWYgc3RydWN0IF9HdGtQcmludFNldHRpbmdzIEd0a1ByaW50U2V0dGluZ3M7CiB0eXBlZGVm
IHN0cnVjdCBfR3RrUGFnZVNldHVwIEd0a1BhZ2VTZXR1cDsKLSNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2Vsc2UKIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCB1c2UgdGhlIHdpbmRvd3MgZXF1aXZhbGVudC4KIGNsYXNzIE5TUHJp
bnRJbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENv
ZGVyc0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3Rr
LmNwcAppbmRleCBlZjFjYjFhY2MyMmQzYTU4NjBiZTYzN2E3YzBlNmIzYzA1YzY1NWNiLi41MDFk
NmYxMzcwOTBjOTM0NmEyZmU0ZDExOWYwNDAxYTU0MjQzY2RlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmNwcApAQCAtMzQsNyArMzQsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9H
dGtWZXJzaW9uaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvbnRleHRDYWlyby5o
PgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HVW5pcXVlUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1l
bnRDb2RlcnNHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNH
dGsuaAppbmRleCA0YWE1NWRlNzQwMTEyNGIxNmI1YjJhNGI4MjgyZDBkMTNlNzI3ZDg5Li44MGE1
ZGMxZWRlYmVhMGQzZDY1MzUyODAzNDhiNTRkODUwZjFkZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5oCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVm
aW5lIEFyZ3VtZW50Q29kZXJzR3RrX2gKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQ
dHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX0d0a1ByaW50U2V0dGluZ3MgR3RrUHJpbnRTZXR0aW5n
czsKIHR5cGVkZWYgc3RydWN0IF9HdGtQYWdlU2V0dXAgR3RrUGFnZVNldHVwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9LZXllZERlY29kZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9ndGsvS2V5ZWREZWNvZGVyLmgKaW5kZXggMDgzYTdhY2M2ZDJhYTgyYzNkZWQx
NjAwZDAxNjA0YmQyMjFjMmIyZi4uOGViMWM2MTMyYzg2ZWU0YmIyN2MwMDNiZTAyM2Y5ZmEzOGZi
MTg0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9LZXllZERlY29kZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0tleWVkRGVjb2Rlci5oCkBAIC0yOSw3
ICsyOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9LZXllZENvZGluZy5oPgogI2luY2x1ZGUgPGds
aWIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0tleWVkRW5jb2Rlci5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL2d0ay9LZXllZEVuY29kZXIuaAppbmRleCA3ZWEzM2ZkOTMyMTdiN2Qx
MWEyYmQ5ZmI1NWRhYTM2OGU0MWNjMWNkLi5hY2JiNzZiMmZiODE5MTAyNDJkMmFiOTNkYjNmMzEw
OTQyMGE2YmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0tleWVkRW5j
b2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvS2V5ZWRFbmNvZGVyLmgKQEAg
LTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0tleWVkQ29kaW5nLmg+CiAjaW5jbHVk
ZSA8Z2xpYi5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoR3RrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoR3RrLmNwcAppbmRl
eCAzZmU4MGY0NGEzNTk0ZmI0YTJkYzhiOWIyNzc1YmEyOTczNDU2NTkxLi5kZDFkMTNjNDQ4MDBh
NzVhZDM5NjczMTI4YTNlYzE3YjJkN2JlMmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvZ3RrL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL2d0ay9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhHdGsuY3BwCkBAIC0zMSw3ICszMSw3
IEBACiAjaW5jbHVkZSA8Z2xpYi5oPgogCiAjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKQotI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dsaWJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9H
TGliVXRpbGl0aWVzLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2Fy
ZExpc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0Zv
cndhcmRMaXN0LmNwcAppbmRleCAyYzhmODllNmYyNTc2OTA0YmUxNmRmZTUxODJlZDk2MzhiNGU5
NmY2Li4wMWUyODEwMDJjMDliZDJkMjllMGNkMWU1YzgwMjhhMTEyZjMxZjIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3
YXJkTGlzdC5jcHAKQEAgLTIzLDcgKzIzLDcgQEAKICNpbmNsdWRlICJXZWJLaXRCYWNrRm9yd2Fy
ZExpc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0TWFyc2hhbC5oIgogI2luY2x1ZGUgIldl
YktpdFByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCiAvKioKICAqIFNFQ1RJT046IFdlYktpdEJhY2tGb3J3
YXJkTGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0QmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtLmNwcAppbmRleCBiMDNjNmE2OTY1OTNmY2Mz
NWIzMDg1YmVhZDkxMmRkYTc0OTZjZGE4Li5iMjk1Yzk5MDQxZGMyNzYyMTlhYjI2NjliN2U2Mjg2
OTk2YzczZGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtLmNwcApAQCAtMjQsNyArMjQsNyBA
QAogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JDaG9vc2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb2xvckNob29zZXIuaAppbmRleCBh
ODgzYmIxMGNlODQ1NjhmZjQ3ZDAzNjdjY2ZlMTVkZWE2NTMxMmMwLi4yNGE5NDFhNTc1NjBjMWFl
ZGFkNGE0NjQwNDY5MjY0ZjZmMGYzOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRDb2xvckNob29zZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb2xvckNob29zZXIuaApAQCAtMjIsNyArMjIsNyBAQAog
CiAjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJHdGsuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRl
LmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGli
L0dSZWZQdHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdENvbG9yQ2hvb3NlclJlcXVlc3Qg
V2ViS2l0Q29sb3JDaG9vc2VyUmVxdWVzdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnUuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnUuY3BwCmluZGV4IGJmZjhjZmVmM2Qy
NmMzMzhkMjZmOTRhNDU0Y2MxNzlhZGI5YzkyNTIuLmU0ZjZjZjBhMjA5ZDlkMzY3M2M2OTVkNGFi
NGQ0MDVkYmQ3ZThhNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENvbnRleHRNZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudS5jcHAKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRl
ICJXZWJDb250ZXh0TWVudUl0ZW0uaCIKICNpbmNsdWRlICJXZWJLaXRDb250ZXh0TWVudUl0ZW1Q
cml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q29udGV4dE1lbnVQcml2YXRlLmgiCi0jaW5jbHVk
ZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1l
bnVJdGVtLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRl
eHRNZW51SXRlbS5jcHAKaW5kZXggNjhhODRhOWVjNWViZWMzNjkyYWZjOTNhYzc1MjRkNDcwNjVh
YzE0OS4uNmU3YTI3Y2FhYmVlODZhNWExNjIwMjBmMTA1NzVhMjZiZjdiNzhkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVJdGVt
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0
TWVudUl0ZW0uY3BwCkBAIC0zMCw4ICszMCw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZXh0
TWVudUl0ZW0uaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgotI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5p
cXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dVbmlxdWVQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0Q29va2llTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcAppbmRleCAxZTljNTI4MDQ5OWQzNzlmYmU5NTQ2
OWFhNjQyMWY4NmUzNTlmM2QzLi42ZjQ3ZjYwZTc3MzkzMWQ5Mjc5YWExZTU4MDE5NTg3MWFlYTg2
OGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRD
b29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRDb29raWVNYW5hZ2VyLmNwcApAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgIldlYkNv
b2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYktpdENvb2tpZU1hbmFnZXJQcml2YXRl
LmgiCiAjaW5jbHVkZSAiV2ViS2l0RW51bVR5cGVzLmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKaW5kZXggN2Q1
YWY2M2U1NWYwODExNDM4NTE2OGZlNTg0Y2ExMDFmNmFlMDIwZi4uNGI0ZTM3NGZkYjNlMjFkYzQ0
YmVjOTAwYzc0MDY5Yzk3MzlhYzAyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcApAQCAtMjksOCArMjksOCBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvRXJyb3JzR3RrLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3Bv
bnNlLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2Fk
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25s
b2FkQ2xpZW50LmNwcAppbmRleCBkZjdjNDdmY2VkNWRlZjIyMTg0NmNhODgwODI3Mzg3OTExZDU0
ZGNhLi5jYzcyMDgxNzJiNTRhZDJlMTk1NzFhNDBiN2RmZTI1NzQ5ZTQyMjg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZENsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWRD
bGllbnQuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFBy
aXZhdGUuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgPFdlYktpdC9X
S1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwCmluZGV4IGY0NWZlODQ3ZjZm
MjU4ZGQ5YzRlOGY1MDRhYjJjMDBiNmQ4Mjg1MDMuLjgwYWMxNWE3MmU1MzQ1M2NkMjI3NzhjY2Nl
Y2VjYjg5OTkyMDJiZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmNwcApAQCAtMjksOCArMjksOCBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvUmVmUHRyQ2Fpcm8uaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxp
Yi5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1Jl
ZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvZ2xpYi9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbGVDaG9v
c2VyUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRG
aWxlQ2hvb3NlclJlcXVlc3QuY3BwCmluZGV4IDBhMDJmYmVmZWMwY2M5ZjkyODUzNjYzYzk4MWY4
ZmExYWQ0MDQzNGMuLmIyMzU5NzY2MDAyNGYyMDg4NmRjY2Y5ZDViYWJmMWJkZGI3MjMyNzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbGVDaG9v
c2VyUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RmlsZUNob29zZXJSZXF1ZXN0LmNwcApAQCAtMjcsOCArMjcsOCBAQAogI2luY2x1ZGUgIldl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVT
eXN0ZW0uaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5j
bHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRG
aW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRGaW5kQ29udHJvbGxlci5jcHAKaW5kZXggMTdiMWQ1ZDJiN2VlODBmMTIwMDZlYjU4MTAyYzk5
OGRlOTg5MTlhZC4uMDgzMGJjY2FmNzZmZDQyMDllOTZiMTIxYWVkNDVkMjE4MTJjYzBkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmluZENvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZp
bmRDb250cm9sbGVyLmNwcApAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlZp
ZXcuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCIKICNpbmNsdWRlIDxn
bGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtQ2xpZW50LmNwcAppbmRleCAxODlkMzVkMjcxN2M3MjEw
Yzg0MWJkY2VkMjg5NDEzNmE1NjkzYzNkLi4xMmVjOTI3YThjMGE1ZjZkODExNmU0YTlhNzU1YjAw
NzNkODRhZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRGb3JtQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRGb3JtQ2xpZW50LmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgIldlYktp
dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCIKICNpbmNs
dWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QuY3BwCmluZGV4IDg0ZmQ4MGM1MzM5
ZWIwNzliZjlhMGVhOWJiNTVhYmZhZjcwNmYyOGYuLmQyZDVlNjgyMThmYTI2MTM0ZDhkNmNiMzM4
OGY0NWZjY2VhZWZhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMjQs
NyArMjQsNyBAQAogI2luY2x1ZGUgIkFQSVN0cmluZy5oIgogI2luY2x1ZGUgIldlYkZvcm1TdWJt
aXNzaW9uTGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYktpdEZvcm1TdWJtaXNzaW9uUmVx
dWVzdFByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcAppbmRl
eCBiMjEzNGViZWU1NDA2Y2MxZDM1YmNiYzIxNGY4MDU1NWU4ZjQ0Y2M0Li43MjA1ZjBhZTAzOTc5
MDFkNmMyYTY5MDBjYzA3ZGVkNDFlY2U2NmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQu
Y3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXRXZWJSZXNvdXJjZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJL
aXRXZWJWaWV3UHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5jcHAKaW5kZXgg
MmU2NGYwMTU2MjRiZDg3Mzc1YmMxZDNmZTgzY2ZhMDg3ODgyNzNhNy4uMjIxZWFjN2NiNDg2M2Iy
YmUwYTVlNzQ0MzAxMDMxMjJjMWFhZDIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5jcHAKQEAgLTIy
LDcgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2lu
Y2x1ZGUgIldlYktpdEphdmFzY3JpcHRSZXN1bHRQcml2YXRlLmgiCi0jaW5jbHVkZSA8d3RmL2dv
YmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAKaW5kZXggMzIwMzA5MDk2MzdkZTI5OGQw
NGRkODFmNWI3N2NmMGNiZDNjNGI5YS4uZTQ2ZmExYzZkMzY4OTk3MGFkMjhjMTA2MmU5M2NkNzJj
YTZmZjg0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0TG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiV2Vi
S2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2
YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld1ByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYv
Z29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1pbWVJ
bmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1pbWVJbmZv
LmNwcAppbmRleCAyMjgyZWRlMzc1MjEzMTA4MTIwMGU0YTc2ODFmNGQ2MmZmYzc1ZjA3Li45OTU0
Y2ZiMGFlMjM1YjA3YjE5ZGJhYjFmYWE1Y2MwMDRjMjgzZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRNaW1lSW5mby5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWltZUluZm8uY3BwCkBAIC0yMSw3ICsy
MSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0TWltZUluZm8uaCIKIAogI2luY2x1ZGUgIldlYktpdE1p
bWVJbmZvUHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
CiBzdHJ1Y3QgX1dlYktpdE1pbWVJbmZvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmlnYXRpb25BY3Rpb24uY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvbkFjdGlvbi5jcHAKaW5kZXggNDNj
NzBhNjA2MjY2MzJkMjEwNWU5YTkzMjQ0ZTRjNGJhMzNmZWRhMC4uYWZmNjI4MzFiOTJkOGVkNjM5
MzQxOWM4NTljYzgwZTA1ZDViYTdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvbkFjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvbkFjdGlvbi5jcHAKQEAgLTIyLDcg
KzIyLDcgQEAKIAogI2luY2x1ZGUgIldlYktpdE5hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgiCiAj
aW5jbHVkZSA8Z2RrL2dkay5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwCmluZGV4IDAwYmQ4YWMxNzQzZDJh
YzI0ODUwZmNjYjRlNDAwYjU2NWE4YmQ5NTAuLmU1NzY5NzIzY2JkY2VhMjYzNDQ3OTE4Y2I4NmMw
Y2E1Yzk1Y2JhYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmNwcApAQCAt
MjYsNyArMjYsNyBAQAogI2luY2x1ZGUgIldlYktpdFBvbGljeURlY2lzaW9uUHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4
bi1saWIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFBvbGljeUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwCmluZGV4IDAzNTY2MTc2NmNlYzY2NDcxYzk5
ODM2NDU2YzhmMmI4MTJhZWNkNjEuLjJkNGVhYzViM2Y4NzcwY2MwOTM1ZjExMGRlNDQwMjIwMWNm
ODQ1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFBvbGljeUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UG9saWN5Q2xpZW50LmNwcApAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgIldlYktp
dFJlc3BvbnNlUG9saWN5RGVjaXNpb25Qcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmll
d0Jhc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld1ByaXZhdGUuaCIKLSNpbmNs
dWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBy
aW50T3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFByaW50T3BlcmF0aW9uLmNwcAppbmRleCA2NTkxMWI0NTA3ZWM0Mzg1MDUzMGFhNzhkODU3ZmI4
YjRmYjYyZjBiLi5hNmU1MjRiNDM4ODFmZjk2NGQzMTMzM2YyYjRmNmU5NTkwNWZiNDU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJp
bnRPcGVyYXRpb24uY3BwCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtV
dGlsaXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVk
ZSA8Z2xpYi9naTE4bi1saWIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCiAjaWYgSEFWRShHVEtfVU5JWF9QUklOVElORykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlc3BvbnNlUG9saWN5
RGVjaXNpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVz
cG9uc2VQb2xpY3lEZWNpc2lvbi5jcHAKaW5kZXggNzZjM2I5Mjc0ZWYxOWQyZWE5N2E0YjEzYTgw
OGEyOGMyMTZhNmRiMi4uNjliMjQxZjg1M2FmOWEwMTJjNzI2MTgwNTE4YTRjMjI1YTBjMDQzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVzcG9u
c2VQb2xpY3lEZWNpc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbi5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKICNp
bmNsdWRlICJXZWJLaXRVUklSZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJl
c3BvbnNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5j
cHAKaW5kZXggZWQzODRjYmRlYjI4MTAxNTA0ZDBhOTE5MmU5ZTIxNzg2ODFhNWMzMi4uNTViY2Rm
NGQ4MTRlNTQ4NWExNDZkNWVhMjczYzNlODNlYThiYWIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcApAQCAtMzMsNyArMzMs
NyBAQAogI2luY2x1ZGUgIldlYktpdFdpbmRvd1Byb3BlcnRpZXNQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRpZXMuaD4KLSNp
bmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0
ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCmlu
ZGV4IGY3NTFhMTBjMGIyOTU3MGJiMmQ0YWJmODJhMzFhMTlhNmI4YTc3MzIuLmQ2NmNiM2FjNzg0
NTQyMDNkOTc0MDA4NzQzYzljNjkzNmExZWM5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCkBA
IC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVlUHRyU291cC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5o
PgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9H
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVzZXJDb250ZW50TWFuYWdlci5jcHAKaW5kZXggMjc1OTk0OWU0MmRlYmY0
ZDM2ZjRkNzQ0NzIxYzUwOGM3OWI4NjYyZi4uMTk4NTMxYTJkNGU4OWI1M2U2YTAxYjgwMGZmZmQ0
MGJhNjEzZDFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCkBAIC0yNyw3ICsyNyw3IEBA
CiAjaW5jbHVkZSAiV2ViS2l0VXNlckNvbnRlbnRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2ViQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJTY3JpcHRNZXNzYWdlSGFuZGxlci5o
IgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9H
UmVmUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViQ29udGV4dC5jcHAKaW5kZXggNWE1ZWQxNmVlNWJhMzQ0ZDFjNGY2OGMwZDNiYjJlNzViN2Vk
NjMxOC4uZGQ2ODg0MzI1MGNkNmRlMzMzYTM2ZGYyZjI5MWQ0OGVlNzJhMzAyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5j
cHAKQEAgLTU5LDggKzU5LDggQEAKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dV
bmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJJbnNwZWN0b3IuY3BwCmluZGV4IDVkNmE5YmU1NjU3YjZiYzc2
YWVjMWMyZDM1NGQ1MGQwMzIwZmQ5YzEuLjdiNDZkNTI3ZjdlYjM3YzJiYWE3OWEwZjkyNzkxMGNj
YjA3MjFhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYkluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViSW5zcGVjdG9yLmNwcApAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIldl
YktpdE1hcnNoYWwuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJJbnNwZWN0b3JQcml2YXRlLmgiCiAj
aW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlJlc291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlJlc291cmNlLmNwcAppbmRleCBiZGU2
NGI5ZGI1ZDcyZDZkYjYxOTg3NzdmMmI3OWFkN2Q2ZmM0MTExLi5kYmE3ZjcwMDBhMjRkNmFhNGU2
MDM0MTY5MjNlZjI5MjY3MjM3Nzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViUmVzb3VyY2UuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAj
aW5jbHVkZSAiV2ViS2l0VVJJUmVxdWVzdC5oIgogI2luY2x1ZGUgIldlYktpdFdlYlJlc291cmNl
UHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0jaW5jbHVkZSA8d3RmL2dv
YmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4
IDUzZThhNjBjMzZmZjhkYzYyZGE4YWUzMDE4N2JhNTk2Zjk3OTY4ZmIuLmNmZTgxZTE3YmMzOTk4
ZGJkZDRlMjU1NjkzN2EzMTE5NGMxMzMzNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCkBAIC02Nyw3ICs2Nyw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZlB0ckNh
aXJvLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIFVTRShMSUJOT1RJRlkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5kZXgg
MWQ3MzAxZmUwNzNlZTkyYmQ4MzA4MTE1NTY2NzU3NjQ1OTE1OTQ2MS4uZTQyOThhYjU0OTlhZGZk
YTU2ZjNkOTAzODRhZTU5Mjg0NjhiYTI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtNjEsNyArNjEsNyBA
QAogI2luY2x1ZGUgPGdkay9nZGtrZXlzeW1zLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXIuaAppbmRleCA2
ZDViMzg4NGEyZTU1Nzg1ZDhjY2EwMzE0OGU1ZmQ4MGVmYTkwZWM4Li4yZTIyN2VmMDAyNjgxZTlm
NTQxNTZlOTc1ZGI4YWE3NThkODA4MzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyLmgKQEAgLTM1LDcg
KzM1LDcgQEAKIAogI2lmIFVTRShTT1VQKQogI2luY2x1ZGUgPGdpby9naW8uaD4KLSNpbmNsdWRl
IDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgog
I2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvZ3RrL1dlYkluc3BlY3RvclNlcnZlckd0ay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL2d0ay9XZWJJbnNwZWN0
b3JTZXJ2ZXJHdGsuY3BwCmluZGV4IDU5ZDcyMDMyN2U1NGQ2NzM4MDExYTkzY2FkZmQ2OTU5YjM1
NTYzZTguLmM1MzkzYTQ3ZGU0NzRiZDcwOTExNDViOTg4YWFhNjI1MTdkMmFjOTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvZ3RrL1dlYkluc3Bl
Y3RvclNlcnZlckd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3Rv
clNlcnZlci9ndGsvV2ViSW5zcGVjdG9yU2VydmVyR3RrLmNwcApAQCAtMzMsNyArMzMsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPGdpby9naW8u
aD4KICNpbmNsdWRlIDxnbGliLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3NvdXAvV2ViU29ja2V0U2VydmVyU291cC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3NvdXAvV2ViU29ja2V0
U2VydmVyU291cC5jcHAKaW5kZXggZDAzMDU1ODhkZjYzZGQ4YjQ5OTY5MWY1MTlmMzRhN2ZmNjRl
NGJhMy4uNDFlMjZiZTg5YjEzNzUyYzM4N2ViNzhhYTQyNWU2MjkwMzI5MjE2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9zb3VwL1dlYlNvY2tl
dFNlcnZlclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JT
ZXJ2ZXIvc291cC9XZWJTb2NrZXRTZXJ2ZXJTb3VwLmNwcApAQCAtMzEsNyArMzEsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvU29ja2V0U3RyZWFtSGFuZGxlLmg+CiAjaW5jbHVkZSA8Z2lvL2dpby5o
PgogI2luY2x1ZGUgPGdsaWIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5j
cHAKaW5kZXggOGU2ZWUwMmExNGRiOTZhZTlmMDNhZWJmMTg1NjY2MzI4YTgzMzYyNS4uOWQ0MTZh
OGY3ZWIxZDMxOTM3YWZmNmUxNTExOWRiMjQzMDA3ZGYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3Rr
LmNwcApAQCAtMzgsMTAgKzM4LDEwIEBACiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPGxv
Y2FsZS5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xp
YlV0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dsaWJVdGlsaXRpZXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL2d0ay9QbHVnaW5JbmZvQ2FjaGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL2d0ay9QbHVnaW5JbmZvQ2FjaGUu
aAppbmRleCBjYWIxZTBmOWI2NDE0N2IyZmY3YWY0ZTViMWM3NjZhNTQ3MDNmYjRkLi5kMzg2ZDQ5
OTMxNWIxMWI5ZGQyNDIwYmM2MmExODA1MzdhNDk1ZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9ndGsvUGx1Z2luSW5mb0NhY2hlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvZ3RrL1BsdWdpbkluZm9DYWNoZS5oCkBAIC0zMSw4
ICszMSw4IEBACiAjaW5jbHVkZSAiUGx1Z2luTW9kdWxlSW5mby5oIgogI2luY2x1ZGUgPG11dGV4
PgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dNYWluTG9vcFNvdXJjZS5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvZ2xpYi9HTWFpbkxvb3BTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HVW5pcXVlUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpblByb2Nlc3NQcm94eVVuaXgu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5Qcm9jZXNz
UHJveHlVbml4LmNwcAppbmRleCA3MGQ4NzNkYmEzZGQ5ZDhiM2ViNTkyOTUzMWI2ZTk4ODk0ZTY5
ODcxLi5mZDI1ZTc0NTdmNWU4ZGQ1MzVjMWM4MTdlNzYwNmNkYjU4ZmU4NjY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpblByb2Nlc3NQcm94
eVVuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1
Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAKIAogI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oRUZMKQogI2luY2x1ZGUgPGdsaWIuaD4KLSNpbmNsdWRlIDx3dGYv
Z29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgog
I2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZ3RrL0RyYWdBbmREcm9wSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZ3RrL0RyYWdBbmREcm9wSGFuZGxlci5jcHAKaW5kZXggOGE2YWRiOTNmMjZhZGRkM2Q2
MjJkYmMyMjgzNTZkNGUzNzQyNGZhZS4uY2NmNmYzMDU0ZTlkOGMwMDM0MmI2OGZjNDljZDM2NTkw
NDQyYTA5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9EcmFnQW5k
RHJvcEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvRHJhZ0Fu
ZERyb3BIYW5kbGVyLmNwcApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR3Rr
VXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkSGVscGVyLmg+CiAjaW5j
bHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5o
PgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HTWFpbkxvb3BTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZ3RrL0dlc3R1cmVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZ3RrL0dlc3R1cmVDb250cm9sbGVyLmgKaW5kZXggNjNlZDdiZDk4MTkyOTcxZTAwNmY4MjRj
OThhODYwNDU0MjY1MjNkOS4uNzhmYzJjYjMxY2IwNjg2MmZmY2MzZjNiODYyMmUxMzYwNjgyOWFh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9HZXN0dXJlQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvR2VzdHVyZUNvbnRyb2xs
ZXIuaApAQCAtMzAsOCArMzAsOCBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR01h
aW5Mb29wU291cmNlLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dNYWluTG9vcFNvdXJjZS5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQ
dHIuaD4KIAogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CiB0eXBlZGVmIHN0cnVj
dCBfR2RrRXZlbnRTZXF1ZW5jZSBHZGtFdmVudFNlcXVlbmNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2d0ay9JbnB1dE1ldGhvZEZpbHRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZ3RrL0lucHV0TWV0aG9kRmlsdGVyLmNwcAppbmRleCA2OTZiODY0NGVj
YWQyOGJjYzgwZWY4NjA1N2E0NTQ0MTA1MzM0OGE5Li5hOWZkM2Q1NmMxNDA3MDgzYjU0MjQyZDE5
ZjM0Y2Y1OGJmNjdjNDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L0lucHV0TWV0aG9kRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L0lucHV0TWV0aG9kRmlsdGVyLmNwcApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPGdkay9n
ZGtrZXlzeW1zLmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2ds
aWIvR1VuaXF1ZVB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9JbnB1dE1ldGhvZEZpbHRlci5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9JbnB1dE1ldGhvZEZpbHRlci5oCmluZGV4IDM3ZGU4
M2U2ZjA0YTM4M2NmMGQ1NTJlOTU2YTJjN2EyMmUwNGIzODkuLjE1MmU2YTFhMTcxZTI1NmM3Njc3
NmE5MzE1ZDNjNzNmNWNkYzQwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9ndGsvSW5wdXRNZXRob2RGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Z3RrL0lucHV0TWV0aG9kRmlsdGVyLmgKQEAgLTIyLDcgKzIyLDcgQEAKIAogI2luY2x1ZGUgPFdl
YkNvcmUvSW50UG9pbnQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRl
IDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiB0eXBlZGVmIHN0cnVjdCBfR2RrRXZl
bnRLZXkgR2RrRXZlbnRLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Z3RrL1dlYkluc3BlY3RvclByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCmluZGV4IGQ2OGVkYzE3YzI2OTM1YWJlZWQ3NDgy
ZjAwN2QwMjMwY2ZjZWIwMTUuLmUwMWFkMWJmNWFkMmI0OGIzYmY4ZGI3N2VjMjg1ZmUxNjRjZjky
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9y
UHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVj
dG9yUHJveHlHdGsuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVkZSA8Z3Rr
L2d0ay5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCmluZGV4IGNjZTlmMzZhMzlh
Yjc5NzgxYmU2MTNlYjk0ZGQ1NGI3YzIzN2M5NjkuLjQ2ODFjNzFmZDQzOTU0MDNiZTAxOTc5MDVi
NTBjMmUzZWFjZDYxZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsv
V2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9HdGtVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNp
bmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oCmluZGV4IGE1ZTdkOWNhZmVj
NTE0M2NkNTkxOWNkZTEzMThlOGY2YTQ0ZjZiNWYuLmQ5MjAwMzk1OTdmYzA5ZWM5YTFhNzY5ZWU5
MGNhOTU4MWNiNzU0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsv
V2ViUG9wdXBNZW51UHJveHlHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYlBvcHVwTWVudVByb3h5R3RrLmgKQEAgLTIxLDcgKzIxLDcgQEAKICNkZWZpbmUgV2ViUG9w
dXBNZW51UHJveHlHdGtfaAogCiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKLSNpbmNs
dWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiB0eXBlZGVmIHN0cnVjdCBfR01h
aW5Mb29wIEdNYWluTG9vcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvV2ViUHJvY2Vzc1Bvb2xHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9X
ZWJQcm9jZXNzUG9vbEd0ay5jcHAKaW5kZXggZjQwYzMxZmMwZmRjMTU3MmU4OGVkOWZhMzRmMWVj
MDZlMmJlMDVlZi4uNjIzMDQzZDJhOGRlNTBiMGY0OWJkMDQyM2M0NWNiYzEzNTAwZThhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQcm9jZXNzUG9vbEd0ay5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQcm9jZXNzUG9vbEd0ay5j
cHAKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hl
bWVSZWdpc3RyeS5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3Vw
LmNwcAppbmRleCAzZTdiNDZhMDk3NDE0MjJjZWFiYjJkYTdiYTBlMTg1N2Y2OThkY2Y0Li5lZmY0
ODc0OTk0OGFkYTJlZGY4NzMzMGE2MjY3MmIyZTQyYTQ3YzZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFu
YWdlclNvdXAuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVK
YXJTb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb3VwTmV0d29ya1Nlc3Npb24uaD4KICNpbmNs
dWRlIDxsaWJzb3VwL3NvdXAuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJL
aXRXZWJFeHRlbnNpb24uY3BwCmluZGV4IGY0YTJhYmM3MWZmYmNiYTZlM2RjYmFjNDllYzU3NDFj
ODU2NTA1YTcuLmNmMjY5NmYzNjJkNmFjNzViZGE3Mzk2MWIxYjE2NWM1NWFmMDhmZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9X
ZWJLaXRXZWJFeHRlbnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24uY3BwCkBAIC0yOSw3ICsyOSw3
IEBACiAjaW5jbHVkZSAiV2ViS2l0V2ViUGFnZVByaXZhdGUuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0ROUy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkhpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkhpdFRlc3RS
ZXN1bHQuY3BwCmluZGV4IDU1NjI0NmRjZjZjMDA0Y2M4YmM4MmRkNGNiZGVhMzUyZjI2ZTgwOWQu
LmZjMjA5NjlhNmE2NTRkODI1NDRmMDY1ODhkOTA0NTliNWUyZDU1MjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJI
aXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTI1LDcgKzI1LDcg
QEAKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViSGl0VGVz
dFJlc3VsdFByaXZhdGUuaCIKICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsv
V2ViRWRpdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAKaW5kZXggNzY5ZDc4YzZkNDIzNWEx
MmM1NTU4ZTFlMDM0OWFlYTg5ZDUyMWM5MS4uMmYxMDhhZmM3MjMzNzI4YmQzNDU4MzkyNzU1YzM5
ZmUzZDM4ZTBlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9ndGsvV2ViRWRpdG9yQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRHdGsuY3BwCkBAIC0z
Miw3ICszMiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9XaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvbWFya3Vw
Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGli
L0dSZWZQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDZjYjcwOWUyMjQwMzBlOTExMDhh
MDMxNjQzYjlkMzNmMDFkMzE3NDIuLjgzMzZmOTc2NjE1NTMxODJiOWU1ZTVkMDRiNGM5MTg1ODVh
ZDMyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtNzQsNyArNzQsNyBAQAogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAoUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShFRkwpKQogI2luY2x1ZGUgIldlYlBhZ2VBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dSZWZQdHIuaD4KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsu
aAppbmRleCA2OTRjMzQ1Y2I0ZDhlZjMxYTNkODVmNWEwNzQ3MzAxMzk4ZDFiMDA3Li5kMGFjZDg0
ZmY4ZDhjMDM4MWE1Y2Q4NmE3NmU1OGJlNzQyZTY2MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaApAQCAt
MzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJMYXllci5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvR0xDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyQ2xp
ZW50Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmg+CisjaW5jbHVk
ZSA8d3RmL2dsaWIvR01haW5Mb29wU291cmNlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1ByaW50ZXJM
aXN0R3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1ByaW50ZXJM
aXN0R3RrLmgKaW5kZXggYjkxOGRlZTQwYmI1NDE3MGQzY2U4MzYwYjI4MzY3ODljODhlMGY5Ny4u
ZTEzY2IyOTk1OGNiYTlkMzNkNTdkMDNlNGQ2NjYyYjAwMzY5Mzg4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9QcmludGVyTGlzdEd0ay5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvUHJpbnRlckxpc3RHdGsuaApA
QCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX0d0a1ByaW50ZXIgR3Rr
UHJpbnRlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2d0ay9XZWJQYWdlR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9n
dGsvV2ViUGFnZUd0ay5jcHAKaW5kZXggZWM5OTBlY2Q2MWIxZTg1NzdmOGVkYjhlOTcyZjVhOGZj
MmNmYTUzNS4uYjdlN2QxYjQ2YmNiNGE3MDgwNjYyZmQwMjgzZDEzYzU4MmJjOWQzNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsu
Y3BwCkBAIC00NSw3ICs0NSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJk
RXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Vc2VyQWdlbnRHdGsuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9X
ZWJQcmludE9wZXJhdGlvbkd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAppbmRleCA2YzNjODJjZWQ0MmViMzRlYWRl
YWYyZDY2NzM2MTk4MmY1YTFhZmJhLi41NWVjZGIyYjQ2ZTYzYWJjOGRmMWExMmE4MTFkNWE3NTVi
NzNhMDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcApAQCAtNDIsNyArNDIsNyBAQAog
I2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKICNpZiBIQVZFKEdUS19VTklYX1BSSU5USU5HKQogI2lu
Y2x1ZGUgIlByaW50ZXJMaXN0R3RrLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmgKaW5kZXggYzIw
MWEyZWY5NzUwZTA5M2Q5NThlYTQ4MzcwN2RhODJiMmNiMGE4ZC4uZjVmZWMxMDZjYTI3OTRiNTY3
NTYxODUzZmE4MzExNDYxOTA1MWM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuaApAQCAtMzAs
NyArMzAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVmUHRyQ2Fpcm8uaD4KICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAog
dHlwZWRlZiBzdHJ1Y3QgX0d0a1ByaW50U2V0dGluZ3MgR3RrUHJpbnRTZXR0aW5nczsKIHR5cGVk
ZWYgc3RydWN0IF9HdGtQYWdlU2V0dXAgR3RrUGFnZVNldHVwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViR3RrRXh0ZW5zaW9uTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViR3RrRXh0ZW5zaW9uTWFuYWdlci5oCmluZGV4IDM3
YzVlNjY3NjU5MWRlMzUyNjBjYWYzMGE1OWUzYTQ0MTIwM2VkYTYuLjg4NGNhMzlmNDI0NDJkNzZk
NGRmZjUxZDQxZTY3NDQ4ODM2Yjk1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvZ3RrL1dlYkd0a0V4dGVuc2lvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2d0ay9XZWJHdGtFeHRlbnNpb25NYW5hZ2VyLmgKQEAgLTI1LDcgKzI1LDcgQEAK
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdFdlYkV4dGVuc2lvbiBXZWJLaXRXZWJFeHRlbnNpb247CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFt
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElu
cHV0U3RyZWFtLmNwcAppbmRleCBkZDVkNThhZDVjODc5YTU4ODM4YTNmZGRhMjUzNWM2NWQyMzk4
NDNhLi43OTRhNGJkNjVjNjdhMjU3YjFmOTRjMGVkODAzZGI3NDViZjBlYzJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0
cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBS
ZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCkBAIC0yMSw3ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0
U291cFJlcXVlc3RJbnB1dFN0cmVhbS5oIgogCiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgot
I2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVm
UHRyLmg+CiAKIHN0cnVjdCBBc3luY1JlYWREYXRhIHsKICAgICBBc3luY1JlYWREYXRhKEdTaW1w
bGVBc3luY1Jlc3VsdCogcmVzdWx0LCB2b2lkKiBidWZmZXIsIGdzaXplIGNvdW50LCBHQ2FuY2Vs
bGFibGUqIGNhbmNlbGxhYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291
cC9XZWJQcm9jZXNzU291cC5jcHAKaW5kZXggMDdjOWE4ZjdhMGNkMGVjMGZmMTRmNWQ2Yzk3Njk4
MDRmMzE4OGEwNi4uZmUyYTNjNmNmODAwMmE5OGRlYmMwMDM3MGFiZTYyMzZkY2Y4NDcwYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3Bw
CkBAIC00Miw4ICs0Miw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Tb3VwTmV0d29ya1Nlc3Npb24u
aD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KICNpbmNsdWRlIDx3dGYvUkFNU2l6ZS5oPgot
I2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9H
VW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuaApp
bmRleCA3MTA5ODkzZmYzZjE4MGRkYjRmNWU0ZDU1Yzc5OWVjZGFiNzJhZWQ4Li4xZDZlOWEzMTQ4
ZjM4ZTIzYmQ0MmZkNDU1ZjNmOWVmZTBlN2NlOTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5oCkBAIC0yNyw3ICsy
Nyw3IEBACiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX0dJbnB1dFN0cmVhbSBHSW5wdXRTdHJlYW07CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjNhYzE3
MzkyMWVkNWMxZTY3NjJkODc0NWY3MjdmNzZmYWNjOGRjMi4uMmI3Y2Y4YjEzOGM1NDEwNDg2ZDgw
YzVjNDM0NmI1MGYzNWY0NTJjYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxNS0wNi0wOSAgWmFuIERvYmVyc2Vr
ICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dMaWJdIE1vdmUgZmlsZXMgdW5k
ZXIgU291cmNlL1dURi93dGYvZ29iamVjdCB0byBTb3VyY2UvV1RGL3d0Zi9nbGliCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU3OTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgaGVhZGVyIGlu
Y2x1c2lvbnMgZm9yIGhlYWRlcnMgdGhhdCBoYXZlIGJlZW4gbW92ZWQKKyAgICAgICAgdG8gU291
cmNlL1dURi93dGYvZ2xpYi8uCisKKyAgICAgICAgQWxzbyBtb3ZlIHRoZSB1bml0IHRlc3RzIHVu
ZGVyIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dvYmplY3QvCisgICAgICAgIHRvIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL2dsaWIvIGFuZCB1cGRhdGUgdGhlIGJ1aWxkIHJ1bGVzLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9nbGliL0dNYWluTG9vcFNvdXJjZS5jcHA6IFJlbmFtZWQgZnJvbSBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5jcHAu
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpHTWFpbkxvb3BTb3VyY2VUZXN0OjpHTWFpbkxvb3BT
b3VyY2VUZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkdNYWluTG9vcFNvdXJjZVRlc3Q6
On5HTWFpbkxvb3BTb3VyY2VUZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkdNYWluTG9v
cFNvdXJjZVRlc3Q6OnJ1bkxvb3ApOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R01haW5Mb29w
U291cmNlVGVzdDo6ZGVsYXllZEZpbmlzaCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpHTWFp
bkxvb3BTb3VyY2VUZXN0OjpmaW5pc2gpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R01haW5M
b29wU291cmNlVGVzdDo6c291cmNlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmJhc2ljUmVz
Y2hlZHVsaW5nKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6cmVlbnRyYW50UmVzY2hlZHVsaW5nKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OmNhbmNlbFJlcGVhdGluZ1NvdXJjZUR1cmluZ0Rpc3BhdGNoKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OmJhc2ljRGVzdHJveUNhbGxiYWNrcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpkZXN0cm95Q2FsbGJhY2tzQWZ0ZXJDYW5jZWxsaW5nRHVyaW5nRGlzcGF0Y2gpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6ZGVzdHJveUNhbGxiYWNrc0FmdGVyUmVzY2hlZHVsaW5nRHVyaW5n
RGlzcGF0Y2gpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvR1VuaXF1
ZVB0ci5jcHA6IFJlbmFtZWQgZnJvbSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nb2Jq
ZWN0L0dVbmlxdWVQdHIuY3BwLgorICAgICAgICAobG9nKToKKyAgICAgICAgKHRha2VMb2dTdHIp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpyZXR1cm5PdXRDaGFyKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGli
L1dvcmtRdWV1ZUdMaWIuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dv
YmplY3QvR01haW5Mb29wU291cmNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkdNYWlu
TG9vcFNvdXJjZVRlc3Q6OkdNYWluTG9vcFNvdXJjZVRlc3QpOiBEZWxldGVkLgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6R01haW5Mb29wU291cmNlVGVzdDo6fkdNYWluTG9vcFNvdXJjZVRlc3Qp
OiBEZWxldGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R01haW5Mb29wU291cmNlVGVzdDo6
cnVuTG9vcCk6IERlbGV0ZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpHTWFpbkxvb3BTb3Vy
Y2VUZXN0OjpkZWxheWVkRmluaXNoKTogRGVsZXRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OkdNYWluTG9vcFNvdXJjZVRlc3Q6OmZpbmlzaCk6IERlbGV0ZWQuCisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpHTWFpbkxvb3BTb3VyY2VUZXN0Ojpzb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6YmFzaWNSZXNjaGVkdWxpbmcpOiBEZWxldGVkLgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6IERlbGV0ZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpyZWVu
dHJhbnRSZXNjaGVkdWxpbmcpOiBEZWxldGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y2Fu
Y2VsUmVwZWF0aW5nU291cmNlRHVyaW5nRGlzcGF0Y2gpOiBEZWxldGVkLgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6YmFzaWNEZXN0cm95Q2FsbGJhY2tzKTogRGVsZXRlZC4KKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OmRlc3Ryb3lDYWxsYmFja3NBZnRlckNhbmNlbGxpbmdEdXJpbmdEaXNwYXRj
aCk6IERlbGV0ZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkZXN0cm95Q2FsbGJhY2tzQWZ0
ZXJSZXNjaGVkdWxpbmdEdXJpbmdEaXNwYXRjaCk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvZ29iamVjdC9HVW5pcXVlUHRyLmNwcDoKKyAgICAgICAgKGxvZyk6
IERlbGV0ZWQuCisgICAgICAgICh0YWtlTG9nU3RyKTogRGVsZXRlZC4KKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOiBEZWxldGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6cmV0dXJu
T3V0Q2hhcik6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L2d0ay9JbnB1dE1ldGhvZEZpbHRlci5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyR3RrL0RPTU5vZGVGaWx0ZXJUZXN0LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NTm9kZVRlc3QuY3BwOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01YUGF0aE5TUmVzb2x2ZXJUZXN0LmNwcDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEF1dGhlbnRpY2F0aW9uLmNw
cDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdENvbnRleHRN
ZW51LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdERv
d25sb2Fkcy5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rl
c3RJbnNwZWN0b3IuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0
ay9UZXN0SW5zcGVjdG9yU2VydmVyLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJHdGsvVGVzdFByaW50aW5nLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJHdGsvVGVzdFJlc291cmNlcy5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RVSUNsaWVudC5jcHA6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3Bw
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0RmF2
aWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvVGVzdFdlYktpdEZpbmRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFBvbGljeUNsaWVudC5jcHA6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHA6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRVc2VyQ29u
dGVudE1hbmFnZXIuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0
ay9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3BwOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJFeHRlbnNpb25UZXN0LmNwcDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3QuY3BwOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5o
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNwcDoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvVGVzdE1haW4uaDoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RCdXMuY3BwOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdEJ1cy5oOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZlci5jcHA6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9h
dGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
QXRrLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9B
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlckF0ay5oOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3Bw
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL0FjdGl2YXRl
Rm9udHNHdGsuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
Z3RrL0luamVjdGVkQnVuZGxlVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcDoKKwogMjAxNS0wNi0wOCAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggYSB0eXBvIGluIHIxODUzNDUuCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA3YmYwNWQ1ZGQyY2FjODE2ZDhk
MWViZjY1MTBmMTc2MjQ0NWIzZGRhLi42MmJmZWIzNGJlNGQxNTljMTA5ZWFiNWE1ODgwNDllY2Q4
YTJmZWQwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtl
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTEzNiw3ICsx
MzYsNyBAQCBzZXRfdGVzdHNfcHJvcGVydGllcyhUZXN0V2ViQ29yZSBQUk9QRVJUSUVTIFRJTUVP
VVQgNjApCiBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoVGVzdFdlYkNvcmUgUFJPUEVSVElFUyBSVU5U
SU1FX09VVFBVVF9ESVJFQ1RPUlkgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVD
VE9SWX0vV2ViQ29yZSkKIAogbGlzdChBUFBFTkQgVGVzdFdURl9TT1VSQ0VTCisgICAgJHtURVNU
V0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL2dsaWIvR01haW5Mb29wU291cmNlLmNwcAorICAgICR7
VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9nbGliL0dVbmlxdWVQdHIuY3BwCiAgICAgJHtU
RVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAKLSAgICAk
e1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3Bw
Ci0gICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL2dvYmplY3QvR1VuaXF1ZVB0ci5j
cHAKICkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvR01h
aW5Mb29wU291cmNlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvR01h
aW5Mb29wU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDk5MWVlZWI2MzkwNGZhNzk2ZTc4YjdkYzVk
ZGMxMDdmMzFmMzg4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvZ2xpYi9HTWFpbkxvb3BTb3VyY2UuY3BwCkBAIC0wLDAgKzEsNTQ3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuaD4KKyNpbmNsdWRlIDxz
dGRpby5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3RlbXBsYXRlIDx0eXBlbmFt
ZSBUPgorY2xhc3MgR01haW5Mb29wU291cmNlVGVzdCB7CitwdWJsaWM6CisgICAgR01haW5Mb29w
U291cmNlVGVzdCgpCisgICAgICAgIDogbV9tYWluTG9vcChnX21haW5fbG9vcF9uZXcobnVsbHB0
ciwgVFJVRSkpCisgICAgeworICAgIH0KKworICAgIH5HTWFpbkxvb3BTb3VyY2VUZXN0KCkKKyAg
ICB7CisgICAgICAgIGdfbWFpbl9sb29wX3VucmVmKG1fbWFpbkxvb3ApOworICAgIH0KKworICAg
IHZvaWQgcnVuTG9vcCgpCisgICAgeworICAgICAgICBnX21haW5fbG9vcF9ydW4obV9tYWluTG9v
cCk7CisgICAgfQorCisgICAgdm9pZCBkZWxheWVkRmluaXNoKCkKKyAgICB7CisgICAgICAgIGdf
dGltZW91dF9hZGQoMjUwLAorICAgICAgICAgICAgW10oZ3BvaW50ZXIgZGF0YSkgeworICAgICAg
ICAgICAgICAgIEdNYWluTG9vcFNvdXJjZVRlc3QmIHRlc3QgPSAqc3RhdGljX2Nhc3Q8R01haW5M
b29wU291cmNlVGVzdCo+KGRhdGEpOworICAgICAgICAgICAgICAgIHRlc3QuZmluaXNoKCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIEdfU09VUkNFX1JFTU9WRTsKKyAgICAgICAgICAgIH0sIHRo
aXMpOworICAgIH0KKworICAgIHZvaWQgZmluaXNoKCkKKyAgICB7CisgICAgICAgIGdfbWFpbl9s
b29wX3F1aXQobV9tYWluTG9vcCk7CisgICAgfQorCisgICAgVCYgc291cmNlKCkgeyByZXR1cm4g
bV9zb3VyY2U7IH0KKworcHJpdmF0ZToKKyAgICBHTWFpbkxvb3AqIG1fbWFpbkxvb3A7CisgICAg
VCBtX3NvdXJjZTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RhdGljIHZvaWQgYmFz
aWNSZXNjaGVkdWxpbmcoVCYgY29udGV4dCkKK3sKKyAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50
ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOworCisgICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLnNj
aGVkdWxlKCJbVGVzdF0gRmlyc3RUYXNrIiwgWyZdIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQg
bmV2ZXIgYmUgY2FsbGVkLiBUaGF0J3Mgd2h5IHdlIGFzc2VydAorICAgICAgICAvLyB0aGF0IHRo
ZSB2YXJpYWJsZSBpcyBmYWxzZSBhIGZldyBsaW5lcyBsYXRlci4KKyAgICAgICAgY29udGV4dC5m
aW5pc2hlZEZpcnN0VGFzayA9IHRydWU7CisgICAgfSk7CisgICAgRVhQRUNUX1RSVUUoY29udGV4
dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOworCisgICAgY29udGV4dC50ZXN0LnNvdXJj
ZSgpLnNjaGVkdWxlKCJbVGVzdF0gU2Vjb25kVGFzayIsIFsmXSB7CisgICAgICAgIEVYUEVDVF9U
UlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpICYmICFjb250ZXh0LnRlc3Quc291
cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisgICAgICAgIGNvbnRleHQuZmluaXNoZWRTZWNvbmRUYXNr
ID0gdHJ1ZTsKKyAgICAgICAgY29udGV4dC50ZXN0LmZpbmlzaCgpOworICAgIH0pOworICAgIEVY
UEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKKworICAgIGNv
bnRleHQudGVzdC5ydW5Mb29wKCk7CisKKyAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNv
dXJjZSgpLmlzQWN0aXZlKCkpOworICAgIEVYUEVDVF9GQUxTRShjb250ZXh0LmZpbmlzaGVkRmly
c3RUYXNrKTsKKyAgICBFWFBFQ1RfVFJVRShjb250ZXh0LmZpbmlzaGVkU2Vjb25kVGFzayk7Cit9
CisKK1RFU1QoV1RGX0dNYWluTG9vcFNvdXJjZSwgQmFzaWNSZXNjaGVkdWxpbmcpCit7CisgICAg
c3RydWN0IFRlc3RpbmdDb250ZXh0IHsKKyAgICAgICAgR01haW5Mb29wU291cmNlVGVzdDxHTWFp
bkxvb3BTb3VyY2U+IHRlc3Q7CisgICAgICAgIGJvb2wgZmluaXNoZWRGaXJzdFRhc2sgPSBmYWxz
ZTsKKyAgICAgICAgYm9vbCBmaW5pc2hlZFNlY29uZFRhc2sgPSBmYWxzZTsKKyAgICB9IGNvbnRl
eHQ7CisgICAgYmFzaWNSZXNjaGVkdWxpbmc8VGVzdGluZ0NvbnRleHQ+KGNvbnRleHQpOworCisg
ICAgc3RydWN0IFRocmVhZFNhZmVUZXN0aW5nQ29udGV4dCB7CisgICAgICAgIEdNYWluTG9vcFNv
dXJjZVRlc3Q8R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZT4gdGVzdDsKKyAgICAgICAgYm9vbCBm
aW5pc2hlZEZpcnN0VGFzayA9IGZhbHNlOworICAgICAgICBib29sIGZpbmlzaGVkU2Vjb25kVGFz
ayA9IGZhbHNlOworICAgIH0gdGhyZWFkU2FmZUNvbnRleHQ7CisgICAgYmFzaWNSZXNjaGVkdWxp
bmc8VGhyZWFkU2FmZVRlc3RpbmdDb250ZXh0Pih0aHJlYWRTYWZlQ29udGV4dCk7Cit9CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBUPgorc3RhdGljIHZvaWQgcmVlbnRyYW50UmVzY2hlZHVsaW5nKFQm
IGNvbnRleHQpCit7CisgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0Fj
dGl2ZSgpKTsKKworICAgIGNvbnRleHQudGVzdC5zb3VyY2UoKS5zY2hlZHVsZSgiW1Rlc3RdIEZp
cnN0VGFzayIsIFsmXSB7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2Uo
KS5pc0FjdGl2ZSgpICYmICFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisK
KyAgICAgICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLnNjaGVkdWxlKCJbVGVzdF0gU2Vjb25kVGFz
ayIsIFsmXSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCku
aXNBY3RpdmUoKSAmJiAhY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOworICAg
ICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC5maW5pc2hlZEZpcnN0VGFzayk7CisKKyAgICAg
ICAgICAgIGNvbnRleHQuZmluaXNoZWRTZWNvbmRUYXNrID0gdHJ1ZTsKKyAgICAgICAgICAgIGNv
bnRleHQudGVzdC5maW5pc2goKTsKKyAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNv
bnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKKworICAgICAgICBjb250ZXh0LmZp
bmlzaGVkRmlyc3RUYXNrID0gdHJ1ZTsKKyAgICB9KTsKKyAgICBFWFBFQ1RfVFJVRShjb250ZXh0
LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisKKyAgICBjb250ZXh0LnRlc3QucnVuTG9v
cCgpOworCisgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgp
KTsKKyAgICBFWFBFQ1RfVFJVRShjb250ZXh0LmZpbmlzaGVkRmlyc3RUYXNrKTsKKyAgICBFWFBF
Q1RfVFJVRShjb250ZXh0LmZpbmlzaGVkU2Vjb25kVGFzayk7Cit9CisKK1RFU1QoV1RGX0dNYWlu
TG9vcFNvdXJjZSwgUmVlbnRyYW50UmVzY2hlZHVsaW5nKQoreworICAgIHN0cnVjdCBUZXN0aW5n
Q29udGV4dCB7CisgICAgICAgIEdNYWluTG9vcFNvdXJjZVRlc3Q8R01haW5Mb29wU291cmNlPiB0
ZXN0OworICAgICAgICBib29sIGZpbmlzaGVkRmlyc3RUYXNrID0gZmFsc2U7CisgICAgICAgIGJv
b2wgZmluaXNoZWRTZWNvbmRUYXNrID0gZmFsc2U7CisgICAgfSBjb250ZXh0OworICAgIHJlZW50
cmFudFJlc2NoZWR1bGluZzxUZXN0aW5nQ29udGV4dD4oY29udGV4dCk7CisKKyAgICBzdHJ1Y3Qg
VGhyZWFkU2FmZVRlc3RpbmdDb250ZXh0IHsKKyAgICAgICAgR01haW5Mb29wU291cmNlVGVzdDxH
VGhyZWFkU2FmZU1haW5Mb29wU291cmNlPiB0ZXN0OworICAgICAgICBib29sIGZpbmlzaGVkRmly
c3RUYXNrID0gZmFsc2U7CisgICAgICAgIGJvb2wgZmluaXNoZWRTZWNvbmRUYXNrID0gZmFsc2U7
CisgICAgfSB0aHJlYWRTYWZlQ29udGV4dDsKKyAgICByZWVudHJhbnRSZXNjaGVkdWxpbmc8VGhy
ZWFkU2FmZVRlc3RpbmdDb250ZXh0Pih0aHJlYWRTYWZlQ29udGV4dCk7Cit9CisKK1RFU1QoV1RG
X0dNYWluTG9vcFNvdXJjZSwgUmVzY2hlZHVsaW5nRnJvbURpZmZlcmVudFRocmVhZCkKK3sKKyAg
ICBzdHJ1Y3QgVGVzdGluZ0NvbnRleHQgeworICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0PEdU
aHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U+IHRlc3Q7CisgICAgICAgIGJvb2wgZmluaXNoZWRGaXJz
dFRhc2s7CisgICAgICAgIGJvb2wgZmluaXNoZWRTZWNvbmRUYXNrOworICAgIH0gY29udGV4dDsK
KworICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7CisK
KyAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBGaXJzdFRhc2siLCBb
Jl0geworICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUo
KSAmJiAhY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOworCisgICAgICAgIGdf
dXNsZWVwKDEgKiBHX1VTRUNfUEVSX1NFQyk7CisgICAgICAgIGNvbnRleHQuZmluaXNoZWRGaXJz
dFRhc2sgPSB0cnVlOworICAgIH0pOworICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3Vy
Y2UoKS5pc1NjaGVkdWxlZCgpKTsKKworICAgIEdUaHJlYWQqIGhlbHBlclRocmVhZCA9IGdfdGhy
ZWFkX25ldyhudWxscHRyLCBbXShncG9pbnRlciBkYXRhKSAtPiBncG9pbnRlciB7CisgICAgICAg
IGdfdXNsZWVwKDAuMjUgKiBHX1VTRUNfUEVSX1NFQyk7CisKKyAgICAgICAgVGVzdGluZ0NvbnRl
eHQmIGNvbnRleHQgPSAqc3RhdGljX2Nhc3Q8VGVzdGluZ0NvbnRleHQqPihkYXRhKTsKKyAgICAg
ICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkgJiYgIWNvbnRl
eHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKGNv
bnRleHQuZmluaXNoZWRGaXJzdFRhc2spOworCisgICAgICAgIGNvbnRleHQudGVzdC5zb3VyY2Uo
KS5zY2hlZHVsZSgiW1Rlc3RdIFNlY29uZFRhc2siLCBbJl0geworICAgICAgICAgICAgRVhQRUNU
X1RSVUUoY29udGV4dC5maW5pc2hlZEZpcnN0VGFzayk7CisKKyAgICAgICAgICAgIGNvbnRleHQu
ZmluaXNoZWRTZWNvbmRUYXNrID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbnRleHQudGVzdC5maW5p
c2goKTsKKyAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3Vy
Y2UoKS5pc1NjaGVkdWxlZCgpKTsKKworICAgICAgICBnX3RocmVhZF9leGl0KG51bGxwdHIpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9LCAmY29udGV4dCk7CisKKyAgICBjb250ZXh0
LnRlc3QucnVuTG9vcCgpOworICAgIGdfdGhyZWFkX3VucmVmKGhlbHBlclRocmVhZCk7CisKKyAg
ICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOworICAgIEVY
UEVDVF9UUlVFKGNvbnRleHQuZmluaXNoZWRGaXJzdFRhc2spOworICAgIEVYUEVDVF9UUlVFKGNv
bnRleHQuZmluaXNoZWRTZWNvbmRUYXNrKTsKK30KKworVEVTVChXVEZfR01haW5Mb29wU291cmNl
LCBEZXN0cnVjdGlvbkR1cmluZ0Rpc3BhdGNoKQoreworICAgIC8vIFRoaXMgaXMganVzdCBhIHJh
dyB0ZXN0IHRoYXQgZW5zdXJlcyBkZWxldGluZyB0aGUgR01haW5Mb29wU291cmNlIG9iamVjdCBk
dXJpbmcKKyAgICAvLyBkaXNwYXRjaCBkb2VzIG5vdCBjYXVzZSBwcm9ibGVtcy4gVGhpcyB0ZXN0
IHN1Y2NlZWRzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guCisKKyAgICBHTWFpbkxvb3BTb3VyY2UqIHNv
dXJjZTsKKyAgICBHTWFpbkxvb3AqIGxvb3AgPSBnX21haW5fbG9vcF9uZXcobnVsbHB0ciwgVFJV
RSk7CisKKyAgICBzb3VyY2UgPSBuZXcgR01haW5Mb29wU291cmNlOworICAgIHNvdXJjZS0+c2No
ZWR1bGUoIltUZXN0XSBEZXN0cm95U291cmNlVGFzayIsIFsmXSB7CisgICAgICAgIGRlbGV0ZSBz
b3VyY2U7CisgICAgICAgIGdfbWFpbl9sb29wX3F1aXQobG9vcCk7CisgICAgfSk7CisgICAgZ19t
YWluX2xvb3BfcnVuKGxvb3ApOworCisgICAgc291cmNlID0gbmV3IEdNYWluTG9vcFNvdXJjZTsK
KyAgICBzb3VyY2UtPnNjaGVkdWxlKCJbVGVzdF0gRGVzdHJveVNvdXJjZVRhc2siLCBzdGQ6OmZ1
bmN0aW9uPGJvb2wgKCk+KFsmXSB7CisgICAgICAgIGRlbGV0ZSBzb3VyY2U7CisgICAgICAgIGdf
bWFpbl9sb29wX3F1aXQobG9vcCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9KSk7Cisg
ICAgZ19tYWluX2xvb3BfcnVuKGxvb3ApOworCisgICAgZ19tYWluX2xvb3BfdW5yZWYobG9vcCk7
Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RhdGljIHZvaWQgY2FuY2VsUmVwZWF0aW5n
U291cmNlRHVyaW5nRGlzcGF0Y2goVCYgY29udGV4dCkKK3sKKyAgICBFWFBFQ1RfVFJVRSghY29u
dGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOworCisgICAgY29udGV4dC50ZXN0LnNvdXJj
ZSgpLnNjaGVkdWxlKCJbVGVzdF0gUmVwZWF0aW5nVGFzayIsCisgICAgICAgIHN0ZDo6ZnVuY3Rp
b248Ym9vbCAoKT4oWyZdIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5z
b3VyY2UoKS5pc0FjdGl2ZSgpICYmICFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQo
KSk7CisKKyAgICAgICAgICAgIGNvbnRleHQuY2FsbENvdW50Kys7CisgICAgICAgICAgICBpZiAo
Y29udGV4dC5jYWxsQ291bnQgPT0gMykKKyAgICAgICAgICAgICAgICBjb250ZXh0LnRlc3Quc291
cmNlKCkuY2FuY2VsKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSkpOwor
ICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKKwor
ICAgIGNvbnRleHQudGVzdC5kZWxheWVkRmluaXNoKCk7CisgICAgY29udGV4dC50ZXN0LnJ1bkxv
b3AoKTsKKworICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUo
KSk7CisgICAgRVhQRUNUX0VRKDMsIGNvbnRleHQuY2FsbENvdW50KTsKK30KKworVEVTVChXVEZf
R01haW5Mb29wU291cmNlLCBDYW5jZWxSZXBlYXRpbmdTb3VyY2VEdXJpbmdEaXNwYXRjaCkKK3sK
KyAgICBzdHJ1Y3QgVGVzdGluZ0NvbnRleHQgeworICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0
PEdNYWluTG9vcFNvdXJjZT4gdGVzdDsKKyAgICAgICAgdW5zaWduZWQgY2FsbENvdW50ID0gMDsK
KyAgICB9IGNvbnRleHQ7CisgICAgY2FuY2VsUmVwZWF0aW5nU291cmNlRHVyaW5nRGlzcGF0Y2g8
VGVzdGluZ0NvbnRleHQ+KGNvbnRleHQpOworCisgICAgc3RydWN0IFRocmVhZFNhZmVUZXN0aW5n
Q29udGV4dCB7CisgICAgICAgIEdNYWluTG9vcFNvdXJjZVRlc3Q8R1RocmVhZFNhZmVNYWluTG9v
cFNvdXJjZT4gdGVzdDsKKyAgICAgICAgdW5zaWduZWQgY2FsbENvdW50ID0gMDsKKyAgICB9IHRo
cmVhZFNhZmVDb250ZXh0OworICAgIGNhbmNlbFJlcGVhdGluZ1NvdXJjZUR1cmluZ0Rpc3BhdGNo
PFRocmVhZFNhZmVUZXN0aW5nQ29udGV4dD4odGhyZWFkU2FmZUNvbnRleHQpOworfQorCit0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KK3N0YXRpYyB2b2lkIGJhc2ljRGVzdHJveUNhbGxiYWNrcygpCit7
CisgICAgeworICAgICAgICBUIGNvbnRleHQ7CisgICAgICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0
LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7CisgICAgICAgIGNvbnRleHQudGVzdC5zb3VyY2Uo
KS5zY2hlZHVsZSgiW1Rlc3RdIERlc3Ryb3lDYWxsYmFjayIsCisgICAgICAgICAgICBbJl0gewor
ICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2
ZSgpICYmICFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisgICAgICAgICAg
ICAgICAgY29udGV4dC5jYWxsYmFja0NhbGxlZCA9IHRydWU7CisgICAgICAgICAgICB9LCBHX1BS
SU9SSVRZX0RFRkFVTFQsCisgICAgICAgICAgICBbJl0geworICAgICAgICAgICAgICAgIEVYUEVD
VF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7CisgICAgICAgICAgICAg
ICAgY29udGV4dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSB0cnVlOworICAgICAgICAgICAgICAg
IGNvbnRleHQudGVzdC5maW5pc2goKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBFWFBFQ1Rf
VFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisKKyAgICAgICAgY29u
dGV4dC50ZXN0LnJ1bkxvb3AoKTsKKworICAgICAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0
LnNvdXJjZSgpLmlzQWN0aXZlKCkpOworICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LmNhbGxi
YWNrQ2FsbGVkKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC5kZXN0cm95Q2FsbGJhY2tD
YWxsZWQpOworICAgIH0KKworICAgIHsKKyAgICAgICAgVCBjb250ZXh0OworICAgICAgICBFWFBF
Q1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOworICAgICAgICBjb250
ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBEZXN0cm95Q2FsbGJhY2siLAorICAg
ICAgICAgICAgc3RkOjpmdW5jdGlvbjxib29sICgpPihbJl0geworICAgICAgICAgICAgICAgIEVY
UEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpICYmICFjb250ZXh0LnRl
c3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisgICAgICAgICAgICAgICAgY29udGV4dC5jYWxs
YmFja0NhbGxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgfSksIEdfUFJJT1JJVFlfREVGQVVMVCwKKyAgICAgICAgICAgIFsmXSB7CisgICAgICAg
ICAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsK
KyAgICAgICAgICAgICAgICBjb250ZXh0LmRlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgY29udGV4dC50ZXN0LmZpbmlzaCgpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsK
KworICAgICAgICBjb250ZXh0LnRlc3QucnVuTG9vcCgpOworCisgICAgICAgIEVYUEVDVF9UUlVF
KCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7CisgICAgICAgIEVYUEVDVF9UUlVF
KGNvbnRleHQuY2FsbGJhY2tDYWxsZWQpOworICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LmRl
c3Ryb3lDYWxsYmFja0NhbGxlZCk7CisgICAgfQorfQorCitURVNUKFdURl9HTWFpbkxvb3BTb3Vy
Y2UsIEJhc2ljRGVzdHJveUNhbGxiYWNrcykKK3sKKyAgICBzdHJ1Y3QgVGVzdGluZ0NvbnRleHQg
eworICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0PEdNYWluTG9vcFNvdXJjZT4gdGVzdDsKKyAg
ICAgICAgYm9vbCBjYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgICAgICBib29sIGRlc3Ryb3lD
YWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIH07CisgICAgYmFzaWNEZXN0cm95Q2FsbGJhY2tz
PFRlc3RpbmdDb250ZXh0PigpOworCisgICAgc3RydWN0IFRocmVhZFNhZmVUZXN0aW5nQ29udGV4
dCB7CisgICAgICAgIEdNYWluTG9vcFNvdXJjZVRlc3Q8R1RocmVhZFNhZmVNYWluTG9vcFNvdXJj
ZT4gdGVzdDsKKyAgICAgICAgYm9vbCBjYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgICAgICBi
b29sIGRlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIH07CisgICAgYmFzaWNEZXN0
cm95Q2FsbGJhY2tzPFRocmVhZFNhZmVUZXN0aW5nQ29udGV4dD4oKTsKK30KKwordGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CitzdGF0aWMgdm9pZCBkZXN0cm95Q2FsbGJhY2tzQWZ0ZXJDYW5jZWxsaW5n
RHVyaW5nRGlzcGF0Y2goKQoreworICAgIHsKKyAgICAgICAgVCBjb250ZXh0OworICAgICAgICBF
WFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOworICAgICAgICBj
b250ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBEZXN0cm95Q2FsbGJhY2siLAor
ICAgICAgICAgICAgWyZdIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRl
c3Quc291cmNlKCkuaXNBY3RpdmUoKSAmJiAhY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1
bGVkKCkpOworICAgICAgICAgICAgICAgIGNvbnRleHQuY2FsbGJhY2tDYWxsQ291bnQrKzsKKyAg
ICAgICAgICAgICAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuY2FuY2VsKCk7CisgICAgICAgICAg
ICB9LCBHX1BSSU9SSVRZX0RFRkFVTFQsCisgICAgICAgICAgICBbJl0geworICAgICAgICAgICAg
ICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7CisgICAg
ICAgICAgICAgICAgY29udGV4dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSB0cnVlOworICAgICAg
ICAgICAgICAgIGNvbnRleHQudGVzdC5maW5pc2goKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisKKyAg
ICAgICAgY29udGV4dC50ZXN0LmRlbGF5ZWRGaW5pc2goKTsKKyAgICAgICAgY29udGV4dC50ZXN0
LnJ1bkxvb3AoKTsKKworICAgICAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgp
LmlzQWN0aXZlKCkpOworICAgICAgICBFWFBFQ1RfRVEoMSwgY29udGV4dC5jYWxsYmFja0NhbGxD
b3VudCk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQuZGVzdHJveUNhbGxiYWNrQ2FsbGVk
KTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIFQgY29udGV4dDsKKyAgICAgICAgRVhQRUNUX1RS
VUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKKyAgICAgICAgY29udGV4dC50
ZXN0LnNvdXJjZSgpLnNjaGVkdWxlKCJbVGVzdF0gRGVzdHJveUNhbGxiYWNrIiwKKyAgICAgICAg
ICAgIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4oWyZdIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1Rf
VFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSAmJiAhY29udGV4dC50ZXN0LnNv
dXJjZSgpLmlzU2NoZWR1bGVkKCkpOworICAgICAgICAgICAgICAgIGNvbnRleHQuY2FsbGJhY2tD
YWxsQ291bnQrKzsKKyAgICAgICAgICAgICAgICBpZiAoY29udGV4dC5jYWxsYmFja0NhbGxDb3Vu
dCA9PSAzKQorICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuY2FuY2Vs
KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9KSwgR19QUklP
UklUWV9ERUZBVUxULAorICAgICAgICAgICAgWyZdIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1Rf
VFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOworICAgICAgICAgICAgICAg
IGNvbnRleHQuZGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7
CisKKyAgICAgICAgY29udGV4dC50ZXN0LmRlbGF5ZWRGaW5pc2goKTsKKyAgICAgICAgY29udGV4
dC50ZXN0LnJ1bkxvb3AoKTsKKworICAgICAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNv
dXJjZSgpLmlzQWN0aXZlKCkpOworICAgICAgICBFWFBFQ1RfRVEoMywgY29udGV4dC5jYWxsYmFj
a0NhbGxDb3VudCk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQuZGVzdHJveUNhbGxiYWNr
Q2FsbGVkKTsKKyAgICB9Cit9CisKK1RFU1QoV1RGX0dNYWluTG9vcFNvdXJjZSwgRGVzdHJveUNh
bGxiYWNrc0FmdGVyQ2FuY2VsbGluZ0R1cmluZ0Rpc3BhdGNoKQoreworICAgIHN0cnVjdCBUZXN0
aW5nQ29udGV4dCB7CisgICAgICAgIEdNYWluTG9vcFNvdXJjZVRlc3Q8R01haW5Mb29wU291cmNl
PiB0ZXN0OworICAgICAgICB1bnNpZ25lZCBjYWxsYmFja0NhbGxDb3VudD0gMDsKKyAgICAgICAg
Ym9vbCBkZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICB9OworICAgIGRlc3Ryb3lD
YWxsYmFja3NBZnRlckNhbmNlbGxpbmdEdXJpbmdEaXNwYXRjaDxUZXN0aW5nQ29udGV4dD4oKTsK
KworICAgIHN0cnVjdCBUaHJlYWRTYWZlVGVzdGluZ0NvbnRleHQgeworICAgICAgICBHTWFpbkxv
b3BTb3VyY2VUZXN0PEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U+IHRlc3Q7CisgICAgICAgIHVu
c2lnbmVkIGNhbGxiYWNrQ2FsbENvdW50PSAwOworICAgICAgICBib29sIGRlc3Ryb3lDYWxsYmFj
a0NhbGxlZCA9IGZhbHNlOworICAgIH07CisgICAgZGVzdHJveUNhbGxiYWNrc0FmdGVyQ2FuY2Vs
bGluZ0R1cmluZ0Rpc3BhdGNoPFRocmVhZFNhZmVUZXN0aW5nQ29udGV4dD4oKTsKK30KKwordGVt
cGxhdGUgPHR5cGVuYW1lIFQ+CitzdGF0aWMgdm9pZCBkZXN0cm95Q2FsbGJhY2tzQWZ0ZXJSZXNj
aGVkdWxpbmdEdXJpbmdEaXNwYXRjaCgpCit7CisgICAgeworICAgICAgICBUIGNvbnRleHQ7Cisg
ICAgICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7Cisg
ICAgICAgIGNvbnRleHQudGVzdC5zb3VyY2UoKS5zY2hlZHVsZSgiW1Rlc3RdIEJhc2VDYWxsYmFj
ayIsCisgICAgICAgICAgICBbJl0geworICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRl
eHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpICYmICFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNT
Y2hlZHVsZWQoKSk7CisgICAgICAgICAgICAgICAgY29udGV4dC5maXJzdENhbGxiYWNrQ2FsbENv
dW50Kys7CisgICAgICAgICAgICAgICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLnNjaGVkdWxlKCJb
VGVzdF0gUmVzY2hlZHVsaW5nQ2FsbGJhY2siLAorICAgICAgICAgICAgICAgICAgICBbJl0gewor
ICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgp
LmlzQWN0aXZlKCkgJiYgIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuc2Vjb25kQ2FsbGJhY2tDYWxsQ291bnQrKzsK
KyAgICAgICAgICAgICAgICAgICAgfSwgR19QUklPUklUWV9ERUZBVUxULAorICAgICAgICAgICAg
ICAgICAgICBbJl0geworICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRl
eHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnRleHQuc2Vjb25kRGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJj
ZSgpLmlzU2NoZWR1bGVkKCkpOworICAgICAgICAgICAgfSwgR19QUklPUklUWV9ERUZBVUxULAor
ICAgICAgICAgICAgWyZdIHsKKyAgICAgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBH
TWFpbkxvb3BTb3VyY2UgaGFzIGJlZW4gcmVzY2hlZHVsZWQsIGVyZ28gdGhlIFNjaGVkdWxlZCBz
dGF0dXMuCisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgp
LmlzU2NoZWR1bGVkKCkpOworICAgICAgICAgICAgICAgIGNvbnRleHQuZmlyc3REZXN0cm95Q2Fs
bGJhY2tDYWxsZWQgPSB0cnVlOworICAgICAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9UUlVF
KGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKKworICAgICAgICBjb250ZXh0
LnRlc3QuZGVsYXllZEZpbmlzaCgpOworICAgICAgICBjb250ZXh0LnRlc3QucnVuTG9vcCgpOwor
CisgICAgICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7
CisgICAgICAgIEVYUEVDVF9FUSgxLCBjb250ZXh0LmZpcnN0Q2FsbGJhY2tDYWxsQ291bnQpOwor
ICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LmZpcnN0RGVzdHJveUNhbGxiYWNrQ2FsbGVkKTsK
KyAgICAgICAgRVhQRUNUX0VRKDEsIGNvbnRleHQuc2Vjb25kQ2FsbGJhY2tDYWxsQ291bnQpOwor
ICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnNlY29uZERlc3Ryb3lDYWxsYmFja0NhbGxlZCk7
CisgICAgfQorCisgICAgeworICAgICAgICBUIGNvbnRleHQ7CisgICAgICAgIEVYUEVDVF9UUlVF
KCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7CisgICAgICAgIGNvbnRleHQudGVz
dC5zb3VyY2UoKS5zY2hlZHVsZSgiW1Rlc3RdIEJhc2VDYWxsYmFjayIsCisgICAgICAgICAgICBz
dGQ6OmZ1bmN0aW9uPGJvb2wgKCk+KFsmXSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUo
Y29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkgJiYgIWNvbnRleHQudGVzdC5zb3VyY2Uo
KS5pc1NjaGVkdWxlZCgpKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LmZpcnN0Q2FsbGJhY2tD
YWxsQ291bnQrKzsKKyAgICAgICAgICAgICAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1
bGUoIltUZXN0XSBSZXNjaGVkdWxpbmdDYWxsYmFjayIsCisgICAgICAgICAgICAgICAgICAgIHN0
ZDo6ZnVuY3Rpb248Ym9vbCAoKT4oWyZdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVD
VF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpICYmICFjb250ZXh0LnRlc3Qu
c291cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0
LnNlY29uZENhbGxiYWNrQ2FsbENvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gY29udGV4dC5zZWNvbmRDYWxsYmFja0NhbGxDb3VudCAhPSAzOworICAgICAgICAgICAgICAg
ICAgICB9KSwgR19QUklPUklUWV9ERUZBVUxULAorICAgICAgICAgICAgICAgICAgICBbJl0gewor
ICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3VyY2Uo
KS5pc0FjdGl2ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuc2Vjb25kRGVz
dHJveUNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVk
KCkpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfSksIEdfUFJJ
T1JJVFlfREVGQVVMVCwKKyAgICAgICAgICAgIFsmXSB7CisgICAgICAgICAgICAgICAgLy8gQXQg
dGhpcyBwb2ludCB0aGUgR01haW5Mb29wU291cmNlIGhhcyBiZWVuIHJlc2NoZWR1bGVkLCBlcmdv
IHRoZSBTY2hlZHVsZWQgc3RhdHVzLgorICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRl
eHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0
LmZpcnN0RGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisK
KyAgICAgICAgY29udGV4dC50ZXN0LmRlbGF5ZWRGaW5pc2goKTsKKyAgICAgICAgY29udGV4dC50
ZXN0LnJ1bkxvb3AoKTsKKworICAgICAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJj
ZSgpLmlzQWN0aXZlKCkpOworICAgICAgICBFWFBFQ1RfRVEoMSwgY29udGV4dC5maXJzdENhbGxi
YWNrQ2FsbENvdW50KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC5maXJzdERlc3Ryb3lD
YWxsYmFja0NhbGxlZCk7CisgICAgICAgIEVYUEVDVF9FUSgzLCBjb250ZXh0LnNlY29uZENhbGxi
YWNrQ2FsbENvdW50KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC5zZWNvbmREZXN0cm95
Q2FsbGJhY2tDYWxsZWQpOworICAgIH0KK30KKworVEVTVChXVEZfR01haW5Mb29wU291cmNlLCBE
ZXN0cm95Q2FsbGJhY2tzQWZ0ZXJSZXNjaGVkdWxpbmdEdXJpbmdEaXNwYXRjaCkKK3sKKyAgICBz
dHJ1Y3QgVGVzdGluZ0NvbnRleHQgeworICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0PEdNYWlu
TG9vcFNvdXJjZT4gdGVzdDsKKyAgICAgICAgdW5zaWduZWQgZmlyc3RDYWxsYmFja0NhbGxDb3Vu
dCA9IDA7CisgICAgICAgIGJvb2wgZmlyc3REZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsK
KyAgICAgICAgdW5zaWduZWQgc2Vjb25kQ2FsbGJhY2tDYWxsQ291bnQgPSAwOworICAgICAgICBi
b29sIHNlY29uZERlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIH07CisgICAgZGVz
dHJveUNhbGxiYWNrc0FmdGVyUmVzY2hlZHVsaW5nRHVyaW5nRGlzcGF0Y2g8VGVzdGluZ0NvbnRl
eHQ+KCk7CisKKyAgICBzdHJ1Y3QgVGhyZWFkU2FmZVRlc3RpbmdDb250ZXh0IHsKKyAgICAgICAg
R01haW5Mb29wU291cmNlVGVzdDxHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlPiB0ZXN0OworICAg
ICAgICB1bnNpZ25lZCBmaXJzdENhbGxiYWNrQ2FsbENvdW50ID0gMDsKKyAgICAgICAgYm9vbCBm
aXJzdERlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgICAgICB1bnNpZ25lZCBzZWNv
bmRDYWxsYmFja0NhbGxDb3VudCA9IDA7CisgICAgICAgIGJvb2wgc2Vjb25kRGVzdHJveUNhbGxi
YWNrQ2FsbGVkID0gZmFsc2U7CisgICAgfTsKKyAgICBkZXN0cm95Q2FsbGJhY2tzQWZ0ZXJSZXNj
aGVkdWxpbmdEdXJpbmdEaXNwYXRjaDxUaHJlYWRTYWZlVGVzdGluZ0NvbnRleHQ+KCk7Cit9CisK
K1RFU1QoV1RGX0dNYWluTG9vcFNvdXJjZSwgRGVsZXRlT25EZXN0cm95U291cmNlcykKK3sKKyAg
ICAvLyBUZXN0aW5nIHRoZSBkZWxldGUtb24tZGVzdHJveSBzb3VyY2VzIGlzIHZlcnkgbGltaXRl
ZC4gVGhlcmUncyBubyBnb29kIHdheQorICAgIC8vIG9mIHRlc3RpbmcgdGhhdCB0aGUgR01haW5M
b29wU291cmNlIG9iamVjdHMgYXJlIGRlbGV0ZWQgd2hlbiB0aGVpciBHU291cmNlCisgICAgLy8g
aXMgZGVzdHJveWVkLgorCisgICAgc3RydWN0IFRlc3RpbmdDb250ZXh0IHsKKyAgICAgICAgR01h
aW5Mb29wU291cmNlVGVzdDxHTWFpbkxvb3BTb3VyY2U+IHRlc3Q7CisgICAgICAgIHVuc2lnbmVk
IGNhbGxiYWNrQ2FsbENvdW50ID0gMDsKKyAgICAgICAgYm9vbCBkZXN0cm95Q2FsbGJhY2tDYWxs
ZWQgPSBmYWxzZTsKKyAgICB9IGNvbnRleHQ7CisKKyAgICB7CisgICAgICAgIFRlc3RpbmdDb250
ZXh0IGNvbnRleHQ7CisKKyAgICAgICAgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFuZERlbGV0
ZU9uRGVzdHJveSgiW1Rlc3RdIERlbGV0ZU9uRGVzdHJveSIsCisgICAgICAgICAgICBbJl0gewor
ICAgICAgICAgICAgICAgIGNvbnRleHQuY2FsbGJhY2tDYWxsQ291bnQrKzsKKyAgICAgICAgICAg
IH0sIEdfUFJJT1JJVFlfREVGQVVMVCwKKyAgICAgICAgICAgIFsmXSB7CisgICAgICAgICAgICAg
ICAgRVhQRUNUX0ZBTFNFKGNvbnRleHQuZGVzdHJveUNhbGxiYWNrQ2FsbGVkKTsKKyAgICAgICAg
ICAgICAgICBjb250ZXh0LmRlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IHRydWU7CisgICAgICAgICAg
ICB9KTsKKworICAgICAgICBjb250ZXh0LnRlc3QuZGVsYXllZEZpbmlzaCgpOworICAgICAgICBj
b250ZXh0LnRlc3QucnVuTG9vcCgpOworICAgICAgICBFWFBFQ1RfRVEoMSwgY29udGV4dC5jYWxs
YmFja0NhbGxDb3VudCk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQuZGVzdHJveUNhbGxi
YWNrQ2FsbGVkKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIFRlc3RpbmdDb250ZXh0IGNvbnRl
eHQ7CisKKyAgICAgICAgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFuZERlbGV0ZU9uRGVzdHJv
eSgiW1Rlc3RdIERlbGV0ZU9uRGVzdHJveSIsCisgICAgICAgICAgICBzdGQ6OmZ1bmN0aW9uPGJv
b2wgKCk+KFsmXSB7CisgICAgICAgICAgICAgICAgY29udGV4dC5jYWxsYmFja0NhbGxDb3VudCsr
OworICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmNhbGxiYWNrQ2FsbENvdW50ICE9IDM7
CisgICAgICAgICAgICB9KSwgR19QUklPUklUWV9ERUZBVUxULAorICAgICAgICAgICAgWyZdIHsK
KyAgICAgICAgICAgICAgICBFWFBFQ1RfRkFMU0UoY29udGV4dC5kZXN0cm95Q2FsbGJhY2tDYWxs
ZWQpOworICAgICAgICAgICAgICAgIGNvbnRleHQuZGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgIGNvbnRleHQudGVzdC5kZWxheWVkRmluaXNo
KCk7CisgICAgICAgIGNvbnRleHQudGVzdC5ydW5Mb29wKCk7CisgICAgICAgIEVYUEVDVF9FUSgz
LCBjb250ZXh0LmNhbGxiYWNrQ2FsbENvdW50KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4
dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xp
Yi9HVW5pcXVlUHRyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvR1Vu
aXF1ZVB0ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFmMDJjN2IwZjdmZDcwZDgzZjYwNzFkNzFhZTI0Njgz
NjJjYjdhOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L2dsaWIvR1VuaXF1ZVB0ci5jcHAKQEAgLTAsMCArMSwxOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aW5jbHVkZSA8Z2lvL2dpby5oPgorCitpbmxpbmUgc3RkOjpvc3RyaW5nc3RyZWFtJiBsb2coKQor
eworICAgIHN0YXRpYyBzdGQ6Om9zdHJpbmdzdHJlYW0gbG9nOworICAgIHJldHVybiBsb2c7Cit9
CisKK2lubGluZSBzdGQ6OnN0cmluZyB0YWtlTG9nU3RyKCkKK3sKKyAgICBzdGQ6OnN0cmluZyBz
dHJpbmcgPSBsb2coKS5zdHIoKTsKKyAgICBsb2coKS5zdHIoIiIpOworICAgIHJldHVybiBzdHJp
bmc7Cit9CisKK3N0YXRpYyB2b2lkICgqIF9nX2ZyZWUpKHZvaWQqKSA9IGdfZnJlZTsKKyNkZWZp
bmUgZ19mcmVlKHgpIFwKKyAgICBsb2coKSA8PCAiZ19mcmVlKCIgPDwgcHRyIDw8ICIpOyI7IFwK
KyAgICBfZ19mcmVlKHgpOworCitzdGF0aWMgdm9pZCAoKiBfZ19lcnJvcl9mcmVlKShHRXJyb3Iq
KSA9IGdfZXJyb3JfZnJlZTsKKyNkZWZpbmUgZ19lcnJvcl9mcmVlKHgpIFwKKyAgICBsb2coKSA8
PCAiZ19lcnJvcl9mcmVlKCIgPDwgcHRyIDw8ICIpOyI7IFwKKyAgICBfZ19lcnJvcl9mcmVlKHgp
OworCitzdGF0aWMgdm9pZCAoKiBfZ19saXN0X2ZyZWUpKEdMaXN0KikgPSBnX2xpc3RfZnJlZTsK
KyNkZWZpbmUgZ19saXN0X2ZyZWUoeCkgXAorICAgIGxvZygpIDw8ICJnX2xpc3RfZnJlZSgiIDw8
IHB0ciA8PCAiKTsiOyBcCisgICAgX2dfbGlzdF9mcmVlKHgpOworCitzdGF0aWMgdm9pZCAoKiBf
Z19zbGlzdF9mcmVlKShHU0xpc3QqKSA9IGdfc2xpc3RfZnJlZTsKKyNkZWZpbmUgZ19zbGlzdF9m
cmVlKHgpIFwKKyAgICBsb2coKSA8PCAiZ19zbGlzdF9mcmVlKCIgPDwgcHRyIDw8ICIpOyI7IFwK
KyAgICBfZ19zbGlzdF9mcmVlKHgpOworCitzdGF0aWMgdm9pZCAoKiBfZ19wYXR0ZXJuX3NwZWNf
ZnJlZSkoR1BhdHRlcm5TcGVjKikgPSBnX3BhdHRlcm5fc3BlY19mcmVlOworI2RlZmluZSBnX3Bh
dHRlcm5fc3BlY19mcmVlKHgpIFwKKyAgICBsb2coKSA8PCAiZ19wYXR0ZXJuX3NwZWNfZnJlZSgi
IDw8IHB0ciA8PCAiKTsiOyBcCisgICAgX2dfcGF0dGVybl9zcGVjX2ZyZWUoeCk7CisKK3N0YXRp
YyB2b2lkICgqIF9nX2Rpcl9jbG9zZSkoR0RpciopID0gZ19kaXJfY2xvc2U7CisjZGVmaW5lIGdf
ZGlyX2Nsb3NlKHgpIFwKKyAgICBsb2coKSA8PCAiZ19kaXJfY2xvc2UoIiA8PCBwdHIgPDwgIik7
IjsgXAorICAgIF9nX2Rpcl9jbG9zZSh4KTsKKworc3RhdGljIHZvaWQgKCogX2dfdGltZXJfZGVz
dHJveSkoR1RpbWVyKikgPSBnX3RpbWVyX2Rlc3Ryb3k7CisjZGVmaW5lIGdfdGltZXJfZGVzdHJv
eSh4KSBcCisgICAgbG9nKCkgPDwgImdfdGltZXJfZGVzdHJveSgiIDw8IHB0ciA8PCAiKTsiOyBc
CisgICAgX2dfdGltZXJfZGVzdHJveSh4KTsKKworc3RhdGljIHZvaWQgKCogX2dfa2V5X2ZpbGVf
ZnJlZSkoR0tleUZpbGUqKSA9IGdfa2V5X2ZpbGVfZnJlZTsKKyNkZWZpbmUgZ19rZXlfZmlsZV9m
cmVlKHgpIFwKKyAgICBsb2coKSA8PCAiZ19rZXlfZmlsZV9mcmVlKCIgPDwgcHRyIDw8ICIpOyI7
IFwKKyAgICBfZ19rZXlfZmlsZV9mcmVlKHgpOworCisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1
ZVB0ci5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoV1RGX0dVbmlxdWVQ
dHIsIEJhc2ljKQoreworICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBhY3R1YWw7CisKKyAgICB7Cisg
ICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gYShnX3N0cmR1cCgiYSIpKTsKKyAgICAgICAgYWN0dWFs
IDw8ICJnX2ZyZWUoIiA8PCBhLmdldCgpIDw8ICIpOyI7CisgICAgfQorICAgIEFTU0VSVF9TVFJF
UShhY3R1YWwuc3RyKCkuY19zdHIoKSwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIGFjdHVh
bC5zdHIoIiIpOworCisgICAgeworICAgICAgICBHVW5pcXVlUHRyPEdFcnJvcj4gYShnX2Vycm9y
X25ld19saXRlcmFsKEdfSU9fRVJST1IsIEdfSU9fRVJST1JfTk9UX0ZPVU5ELCAiYSIpKTsKKyAg
ICAgICAgYWN0dWFsIDw8ICJnX2Vycm9yX2ZyZWUoIiA8PCBhLmdldCgpIDw8ICIpOyI7CisgICAg
fQorICAgIEFTU0VSVF9TVFJFUShhY3R1YWwuc3RyKCkuY19zdHIoKSwgdGFrZUxvZ1N0cigpLmNf
c3RyKCkpOworICAgIGFjdHVhbC5zdHIoIiIpOworCisgICAgeworICAgICAgICBHVW5pcXVlUHRy
PEdMaXN0PiBhKGdfbGlzdF9wcmVwZW5kKG51bGxwdHIsIGdfc3RyZHVwKCJhIikpKTsKKyAgICAg
ICAgYWN0dWFsIDw8ICJnX2xpc3RfZnJlZSgiIDw8IGEuZ2V0KCkgPDwgIik7IjsKKyAgICB9Cisg
ICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIoKS5jX3N0cigpLCB0YWtlTG9nU3RyKCkuY19zdHIo
KSk7CisgICAgYWN0dWFsLnN0cigiIik7CisKKyAgICB7CisgICAgICAgIEdVbmlxdWVQdHI8R1NM
aXN0PiBhKGdfc2xpc3RfcHJlcGVuZChudWxscHRyLCBnX3N0cmR1cCgiYSIpKSk7CisgICAgICAg
IGFjdHVhbCA8PCAiZ19zbGlzdF9mcmVlKCIgPDwgYS5nZXQoKSA8PCAiKTsiOworICAgIH0KKyAg
ICBBU1NFUlRfU1RSRVEoYWN0dWFsLnN0cigpLmNfc3RyKCksIHRha2VMb2dTdHIoKS5jX3N0cigp
KTsKKyAgICBhY3R1YWwuc3RyKCIiKTsKKworICAgIHsKKyAgICAgICAgR1VuaXF1ZVB0cjxHUGF0
dGVyblNwZWM+IGEoZ19wYXR0ZXJuX3NwZWNfbmV3KCJhIikpOworICAgICAgICBhY3R1YWwgPDwg
ImdfcGF0dGVybl9zcGVjX2ZyZWUoIiA8PCBhLmdldCgpIDw8ICIpOyI7CisgICAgfQorICAgIEFT
U0VSVF9TVFJFUShhY3R1YWwuc3RyKCkuY19zdHIoKSwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwor
ICAgIGFjdHVhbC5zdHIoIiIpOworCisgICAgeworICAgICAgICBHVW5pcXVlUHRyPEdEaXI+IGEo
Z19kaXJfb3BlbigiL3RtcCIsIDAsIG51bGxwdHIpKTsKKyAgICAgICAgYWN0dWFsIDw8ICJnX2Rp
cl9jbG9zZSgiIDw8IGEuZ2V0KCkgPDwgIik7IjsKKyAgICB9CisgICAgQVNTRVJUX1NUUkVRKGFj
dHVhbC5zdHIoKS5jX3N0cigpLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgYWN0dWFsLnN0
cigiIik7CisKKyAgICB7CisgICAgICAgIEdVbmlxdWVQdHI8R1RpbWVyPiBhKGdfdGltZXJfbmV3
KCkpOworICAgICAgICBhY3R1YWwgPDwgImdfdGltZXJfZGVzdHJveSgiIDw8IGEuZ2V0KCkgPDwg
Iik7IjsKKyAgICB9CisgICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIoKS5jX3N0cigpLCB0YWtl
TG9nU3RyKCkuY19zdHIoKSk7CisgICAgYWN0dWFsLnN0cigiIik7CisKKyAgICB7CisgICAgICAg
IEdVbmlxdWVQdHI8R0tleUZpbGU+IGEoZ19rZXlfZmlsZV9uZXcoKSk7CisgICAgICAgIGFjdHVh
bCA8PCAiZ19rZXlfZmlsZV9mcmVlKCIgPDwgYS5nZXQoKSA8PCAiKTsiOworICAgIH0KKyAgICBB
U1NFUlRfU1RSRVEoYWN0dWFsLnN0cigpLmNfc3RyKCksIHRha2VMb2dTdHIoKS5jX3N0cigpKTsK
KyAgICBhY3R1YWwuc3RyKCIiKTsKK30KKworc3RhdGljIHZvaWQgcmV0dXJuT3V0Q2hhcihjaGFy
Kiogb3V0Q2hhcikKK3sKKyAgICAqb3V0Q2hhciA9IGdfc3RyZHVwKCJhIik7Cit9CisKK1RFU1Qo
V1RGX0dVbmlxdWVQdHIsIE91dFB0cikKK3sKKyAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gYWN0dWFs
OworCisgICAgeworICAgICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IGE7CisgICAgICAgIEFTU0VS
VF9FUShudWxscHRyLCBhLmdldCgpKTsKKyAgICB9CisgICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5z
dHIoKS5jX3N0cigpLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgYWN0dWFsLnN0cigiIik7
CisKKyAgICB7CisgICAgICAgIEdVbmlxdWVPdXRQdHI8Y2hhcj4gYTsKKyAgICAgICAgcmV0dXJu
T3V0Q2hhcigmYS5vdXRQdHIoKSk7CisgICAgICAgIGFjdHVhbCA8PCAiZ19mcmVlKCIgPDwgYS5n
ZXQoKSA8PCAiKTsiOworICAgIH0KKyAgICBBU1NFUlRfU1RSRVEoYWN0dWFsLnN0cigpLmNfc3Ry
KCksIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBhY3R1YWwuc3RyKCIiKTsKKworICAgIHsK
KyAgICAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBhOworICAgICAgICByZXR1cm5PdXRDaGFyKCZh
Lm91dFB0cigpKTsKKyAgICAgICAgYWN0dWFsIDw8ICJnX2ZyZWUoIiA8PCBhLmdldCgpIDw8ICIp
OyI7CisgICAgICAgIHJldHVybk91dENoYXIoJmEub3V0UHRyKCkpOworICAgICAgICBBU1NFUlRf
U1RSRVEoYWN0dWFsLnN0cigpLmNfc3RyKCksIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICAg
ICAgYWN0dWFsLnN0cigiIik7CisgICAgICAgIGFjdHVhbCA8PCAiZ19mcmVlKCIgPDwgYS5nZXQo
KSA8PCAiKTsiOworICAgIH0KKyAgICBBU1NFUlRfU1RSRVEoYWN0dWFsLnN0cigpLmNfc3RyKCks
IHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBhY3R1YWwuc3RyKCIiKTsKKworICAgIHsKKyAg
ICAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBhOworICAgICAgICByZXR1cm5PdXRDaGFyKCZhLm91
dFB0cigpKTsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBiID0gYS5yZWxlYXNlKCk7CisgICAg
ICAgIEFTU0VSVF9TVFJFUShhY3R1YWwuc3RyKCkuY19zdHIoKSwgdGFrZUxvZ1N0cigpLmNfc3Ry
KCkpOworICAgICAgICBhY3R1YWwgPDwgImdfZnJlZSgiIDw8IGIuZ2V0KCkgPDwgIik7IjsKKyAg
ICB9CisgICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIoKS5jX3N0cigpLCB0YWtlTG9nU3RyKCku
Y19zdHIoKSk7CisgICAgYWN0dWFsLnN0cigiIik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIv
V29ya1F1ZXVlR0xpYi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dv
cmtRdWV1ZUdMaWIuY3BwCmluZGV4IDk5MzJiNDdiYjg0OTc0M2Y4MjljMWYxZjBiODI1ODRkOTc0
NjE2M2EuLjI4YzkxMTI3ZDllMWEzMmU0YmFmZmY5M2E4NmExNTNiYmIwZWEzN2QgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNw
cApAQCAtMjksOCArMjksOCBAQAogI2luY2x1ZGUgPGdpby9naW8uaD4KICNpbmNsdWRlIDx0aHJl
YWQ+CiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dS
ZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8
d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAog
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGRjZGU5OGQyYTE2OTc0OWMxMDUyYWMyMzgwMjc3ZDIwYjU3MTRh
MTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNTQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1Ro
cmVhZFNhZmVNYWluTG9vcFNvdXJjZS5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0KLW5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBHTWFpbkxv
b3BTb3VyY2VUZXN0IHsKLXB1YmxpYzoKLSAgICBHTWFpbkxvb3BTb3VyY2VUZXN0KCkKLSAgICAg
ICAgOiBtX21haW5Mb29wKGdfbWFpbl9sb29wX25ldyhudWxscHRyLCBUUlVFKSkKLSAgICB7Ci0g
ICAgfQotCi0gICAgfkdNYWluTG9vcFNvdXJjZVRlc3QoKQotICAgIHsKLSAgICAgICAgZ19tYWlu
X2xvb3BfdW5yZWYobV9tYWluTG9vcCk7Ci0gICAgfQotCi0gICAgdm9pZCBydW5Mb29wKCkKLSAg
ICB7Ci0gICAgICAgIGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKLSAgICB9Ci0KLSAgICB2
b2lkIGRlbGF5ZWRGaW5pc2goKQotICAgIHsKLSAgICAgICAgZ190aW1lb3V0X2FkZCgyNTAsCi0g
ICAgICAgICAgICBbXShncG9pbnRlciBkYXRhKSB7Ci0gICAgICAgICAgICAgICAgR01haW5Mb29w
U291cmNlVGVzdCYgdGVzdCA9ICpzdGF0aWNfY2FzdDxHTWFpbkxvb3BTb3VyY2VUZXN0Kj4oZGF0
YSk7Ci0gICAgICAgICAgICAgICAgdGVzdC5maW5pc2goKTsKLSAgICAgICAgICAgICAgICByZXR1
cm4gR19TT1VSQ0VfUkVNT1ZFOwotICAgICAgICAgICAgfSwgdGhpcyk7Ci0gICAgfQotCi0gICAg
dm9pZCBmaW5pc2goKQotICAgIHsKLSAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX21haW5Mb29w
KTsKLSAgICB9Ci0KLSAgICBUJiBzb3VyY2UoKSB7IHJldHVybiBtX3NvdXJjZTsgfQotCi1wcml2
YXRlOgotICAgIEdNYWluTG9vcCogbV9tYWluTG9vcDsKLSAgICBUIG1fc291cmNlOwotfTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdGF0aWMgdm9pZCBiYXNpY1Jlc2NoZWR1bGluZyhUJiBj
b250ZXh0KQotewotICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3Rp
dmUoKSk7Ci0KLSAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBGaXJz
dFRhc2siLCBbJl0gewotICAgICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBiZSBjYWxsZWQuIFRo
YXQncyB3aHkgd2UgYXNzZXJ0Ci0gICAgICAgIC8vIHRoYXQgdGhlIHZhcmlhYmxlIGlzIGZhbHNl
IGEgZmV3IGxpbmVzIGxhdGVyLgotICAgICAgICBjb250ZXh0LmZpbmlzaGVkRmlyc3RUYXNrID0g
dHJ1ZTsKLSAgICB9KTsKLSAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNT
Y2hlZHVsZWQoKSk7Ci0KLSAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0
XSBTZWNvbmRUYXNrIiwgWyZdIHsKLSAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNv
dXJjZSgpLmlzQWN0aXZlKCkgJiYgIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgp
KTsKLSAgICAgICAgY29udGV4dC5maW5pc2hlZFNlY29uZFRhc2sgPSB0cnVlOwotICAgICAgICBj
b250ZXh0LnRlc3QuZmluaXNoKCk7Ci0gICAgfSk7Ci0gICAgRVhQRUNUX1RSVUUoY29udGV4dC50
ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOwotCi0gICAgY29udGV4dC50ZXN0LnJ1bkxvb3Ao
KTsKLQotICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7
Ci0gICAgRVhQRUNUX0ZBTFNFKGNvbnRleHQuZmluaXNoZWRGaXJzdFRhc2spOwotICAgIEVYUEVD
VF9UUlVFKGNvbnRleHQuZmluaXNoZWRTZWNvbmRUYXNrKTsKLX0KLQotVEVTVChXVEZfR01haW5M
b29wU291cmNlLCBCYXNpY1Jlc2NoZWR1bGluZykKLXsKLSAgICBzdHJ1Y3QgVGVzdGluZ0NvbnRl
eHQgewotICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0PEdNYWluTG9vcFNvdXJjZT4gdGVzdDsK
LSAgICAgICAgYm9vbCBmaW5pc2hlZEZpcnN0VGFzayA9IGZhbHNlOwotICAgICAgICBib29sIGZp
bmlzaGVkU2Vjb25kVGFzayA9IGZhbHNlOwotICAgIH0gY29udGV4dDsKLSAgICBiYXNpY1Jlc2No
ZWR1bGluZzxUZXN0aW5nQ29udGV4dD4oY29udGV4dCk7Ci0KLSAgICBzdHJ1Y3QgVGhyZWFkU2Fm
ZVRlc3RpbmdDb250ZXh0IHsKLSAgICAgICAgR01haW5Mb29wU291cmNlVGVzdDxHVGhyZWFkU2Fm
ZU1haW5Mb29wU291cmNlPiB0ZXN0OwotICAgICAgICBib29sIGZpbmlzaGVkRmlyc3RUYXNrID0g
ZmFsc2U7Ci0gICAgICAgIGJvb2wgZmluaXNoZWRTZWNvbmRUYXNrID0gZmFsc2U7Ci0gICAgfSB0
aHJlYWRTYWZlQ29udGV4dDsKLSAgICBiYXNpY1Jlc2NoZWR1bGluZzxUaHJlYWRTYWZlVGVzdGlu
Z0NvbnRleHQ+KHRocmVhZFNhZmVDb250ZXh0KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1zdGF0aWMgdm9pZCByZWVudHJhbnRSZXNjaGVkdWxpbmcoVCYgY29udGV4dCkKLXsKLSAgICBF
WFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOwotCi0gICAgY29u
dGV4dC50ZXN0LnNvdXJjZSgpLnNjaGVkdWxlKCJbVGVzdF0gRmlyc3RUYXNrIiwgWyZdIHsKLSAg
ICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkgJiYgIWNv
bnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKLQotICAgICAgICBjb250ZXh0LnRl
c3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBTZWNvbmRUYXNrIiwgWyZdIHsKLSAgICAgICAg
ICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpICYmICFjb250
ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7Ci0gICAgICAgICAgICBFWFBFQ1RfVFJV
RShjb250ZXh0LmZpbmlzaGVkRmlyc3RUYXNrKTsKLQotICAgICAgICAgICAgY29udGV4dC5maW5p
c2hlZFNlY29uZFRhc2sgPSB0cnVlOwotICAgICAgICAgICAgY29udGV4dC50ZXN0LmZpbmlzaCgp
OwotICAgICAgICB9KTsKLSAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgp
LmlzU2NoZWR1bGVkKCkpOwotCi0gICAgICAgIGNvbnRleHQuZmluaXNoZWRGaXJzdFRhc2sgPSB0
cnVlOwotICAgIH0pOwotICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1Nj
aGVkdWxlZCgpKTsKLQotICAgIGNvbnRleHQudGVzdC5ydW5Mb29wKCk7Ci0KLSAgICBFWFBFQ1Rf
VFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOwotICAgIEVYUEVDVF9UUlVF
KGNvbnRleHQuZmluaXNoZWRGaXJzdFRhc2spOwotICAgIEVYUEVDVF9UUlVFKGNvbnRleHQuZmlu
aXNoZWRTZWNvbmRUYXNrKTsKLX0KLQotVEVTVChXVEZfR01haW5Mb29wU291cmNlLCBSZWVudHJh
bnRSZXNjaGVkdWxpbmcpCi17Ci0gICAgc3RydWN0IFRlc3RpbmdDb250ZXh0IHsKLSAgICAgICAg
R01haW5Mb29wU291cmNlVGVzdDxHTWFpbkxvb3BTb3VyY2U+IHRlc3Q7Ci0gICAgICAgIGJvb2wg
ZmluaXNoZWRGaXJzdFRhc2sgPSBmYWxzZTsKLSAgICAgICAgYm9vbCBmaW5pc2hlZFNlY29uZFRh
c2sgPSBmYWxzZTsKLSAgICB9IGNvbnRleHQ7Ci0gICAgcmVlbnRyYW50UmVzY2hlZHVsaW5nPFRl
c3RpbmdDb250ZXh0Pihjb250ZXh0KTsKLQotICAgIHN0cnVjdCBUaHJlYWRTYWZlVGVzdGluZ0Nv
bnRleHQgewotICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0PEdUaHJlYWRTYWZlTWFpbkxvb3BT
b3VyY2U+IHRlc3Q7Ci0gICAgICAgIGJvb2wgZmluaXNoZWRGaXJzdFRhc2sgPSBmYWxzZTsKLSAg
ICAgICAgYm9vbCBmaW5pc2hlZFNlY29uZFRhc2sgPSBmYWxzZTsKLSAgICB9IHRocmVhZFNhZmVD
b250ZXh0OwotICAgIHJlZW50cmFudFJlc2NoZWR1bGluZzxUaHJlYWRTYWZlVGVzdGluZ0NvbnRl
eHQ+KHRocmVhZFNhZmVDb250ZXh0KTsKLX0KLQotVEVTVChXVEZfR01haW5Mb29wU291cmNlLCBS
ZXNjaGVkdWxpbmdGcm9tRGlmZmVyZW50VGhyZWFkKQotewotICAgIHN0cnVjdCBUZXN0aW5nQ29u
dGV4dCB7Ci0gICAgICAgIEdNYWluTG9vcFNvdXJjZVRlc3Q8R1RocmVhZFNhZmVNYWluTG9vcFNv
dXJjZT4gdGVzdDsKLSAgICAgICAgYm9vbCBmaW5pc2hlZEZpcnN0VGFzazsKLSAgICAgICAgYm9v
bCBmaW5pc2hlZFNlY29uZFRhc2s7Ci0gICAgfSBjb250ZXh0OwotCi0gICAgRVhQRUNUX1RSVUUo
IWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLQotICAgIGNvbnRleHQudGVzdC5z
b3VyY2UoKS5zY2hlZHVsZSgiW1Rlc3RdIEZpcnN0VGFzayIsIFsmXSB7Ci0gICAgICAgIEVYUEVD
VF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpICYmICFjb250ZXh0LnRlc3Qu
c291cmNlKCkuaXNTY2hlZHVsZWQoKSk7Ci0KLSAgICAgICAgZ191c2xlZXAoMSAqIEdfVVNFQ19Q
RVJfU0VDKTsKLSAgICAgICAgY29udGV4dC5maW5pc2hlZEZpcnN0VGFzayA9IHRydWU7Ci0gICAg
fSk7Ci0gICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkp
OwotCi0gICAgR1RocmVhZCogaGVscGVyVGhyZWFkID0gZ190aHJlYWRfbmV3KG51bGxwdHIsIFtd
KGdwb2ludGVyIGRhdGEpIC0+IGdwb2ludGVyIHsKLSAgICAgICAgZ191c2xlZXAoMC4yNSAqIEdf
VVNFQ19QRVJfU0VDKTsKLQotICAgICAgICBUZXN0aW5nQ29udGV4dCYgY29udGV4dCA9ICpzdGF0
aWNfY2FzdDxUZXN0aW5nQ29udGV4dCo+KGRhdGEpOwotICAgICAgICBFWFBFQ1RfVFJVRShjb250
ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSAmJiAhY29udGV4dC50ZXN0LnNvdXJjZSgpLmlz
U2NoZWR1bGVkKCkpOwotICAgICAgICBFWFBFQ1RfRkFMU0UoY29udGV4dC5maW5pc2hlZEZpcnN0
VGFzayk7Ci0KLSAgICAgICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLnNjaGVkdWxlKCJbVGVzdF0g
U2Vjb25kVGFzayIsIFsmXSB7Ci0gICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LmZpbmlz
aGVkRmlyc3RUYXNrKTsKLQotICAgICAgICAgICAgY29udGV4dC5maW5pc2hlZFNlY29uZFRhc2sg
PSB0cnVlOwotICAgICAgICAgICAgY29udGV4dC50ZXN0LmZpbmlzaCgpOwotICAgICAgICB9KTsK
LSAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkp
OwotCi0gICAgICAgIGdfdGhyZWFkX2V4aXQobnVsbHB0cik7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0sICZjb250ZXh0KTsKLQotICAgIGNvbnRleHQudGVzdC5ydW5Mb29wKCk7Ci0g
ICAgZ190aHJlYWRfdW5yZWYoaGVscGVyVGhyZWFkKTsKLQotICAgIEVYUEVDVF9UUlVFKCFjb250
ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7Ci0gICAgRVhQRUNUX1RSVUUoY29udGV4dC5m
aW5pc2hlZEZpcnN0VGFzayk7Ci0gICAgRVhQRUNUX1RSVUUoY29udGV4dC5maW5pc2hlZFNlY29u
ZFRhc2spOwotfQotCi1URVNUKFdURl9HTWFpbkxvb3BTb3VyY2UsIERlc3RydWN0aW9uRHVyaW5n
RGlzcGF0Y2gpCi17Ci0gICAgLy8gVGhpcyBpcyBqdXN0IGEgcmF3IHRlc3QgdGhhdCBlbnN1cmVz
IGRlbGV0aW5nIHRoZSBHTWFpbkxvb3BTb3VyY2Ugb2JqZWN0IGR1cmluZwotICAgIC8vIGRpc3Bh
dGNoIGRvZXMgbm90IGNhdXNlIHByb2JsZW1zLiBUaGlzIHRlc3Qgc3VjY2VlZHMgaWYgaXQgZG9l
c24ndCBjcmFzaC4KLQotICAgIEdNYWluTG9vcFNvdXJjZSogc291cmNlOwotICAgIEdNYWluTG9v
cCogbG9vcCA9IGdfbWFpbl9sb29wX25ldyhudWxscHRyLCBUUlVFKTsKLQotICAgIHNvdXJjZSA9
IG5ldyBHTWFpbkxvb3BTb3VyY2U7Ci0gICAgc291cmNlLT5zY2hlZHVsZSgiW1Rlc3RdIERlc3Ry
b3lTb3VyY2VUYXNrIiwgWyZdIHsKLSAgICAgICAgZGVsZXRlIHNvdXJjZTsKLSAgICAgICAgZ19t
YWluX2xvb3BfcXVpdChsb29wKTsKLSAgICB9KTsKLSAgICBnX21haW5fbG9vcF9ydW4obG9vcCk7
Ci0KLSAgICBzb3VyY2UgPSBuZXcgR01haW5Mb29wU291cmNlOwotICAgIHNvdXJjZS0+c2NoZWR1
bGUoIltUZXN0XSBEZXN0cm95U291cmNlVGFzayIsIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4oWyZd
IHsKLSAgICAgICAgZGVsZXRlIHNvdXJjZTsKLSAgICAgICAgZ19tYWluX2xvb3BfcXVpdChsb29w
KTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0pKTsKLSAgICBnX21haW5fbG9vcF9ydW4o
bG9vcCk7Ci0KLSAgICBnX21haW5fbG9vcF91bnJlZihsb29wKTsKLX0KLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci1zdGF0aWMgdm9pZCBjYW5jZWxSZXBlYXRpbmdTb3VyY2VEdXJpbmdEaXNwYXRj
aChUJiBjb250ZXh0KQotewotICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCku
aXNBY3RpdmUoKSk7Ci0KLSAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0
XSBSZXBlYXRpbmdUYXNrIiwKLSAgICAgICAgc3RkOjpmdW5jdGlvbjxib29sICgpPihbJl0gewot
ICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkg
JiYgIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKLQotICAgICAgICAgICAg
Y29udGV4dC5jYWxsQ291bnQrKzsKLSAgICAgICAgICAgIGlmIChjb250ZXh0LmNhbGxDb3VudCA9
PSAzKQotICAgICAgICAgICAgICAgIGNvbnRleHQudGVzdC5zb3VyY2UoKS5jYW5jZWwoKTsKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29u
dGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOwotCi0gICAgY29udGV4dC50ZXN0LmRl
bGF5ZWRGaW5pc2goKTsKLSAgICBjb250ZXh0LnRlc3QucnVuTG9vcCgpOwotCi0gICAgRVhQRUNU
X1RSVUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLSAgICBFWFBFQ1RfRVEo
MywgY29udGV4dC5jYWxsQ291bnQpOwotfQotCi1URVNUKFdURl9HTWFpbkxvb3BTb3VyY2UsIENh
bmNlbFJlcGVhdGluZ1NvdXJjZUR1cmluZ0Rpc3BhdGNoKQotewotICAgIHN0cnVjdCBUZXN0aW5n
Q29udGV4dCB7Ci0gICAgICAgIEdNYWluTG9vcFNvdXJjZVRlc3Q8R01haW5Mb29wU291cmNlPiB0
ZXN0OwotICAgICAgICB1bnNpZ25lZCBjYWxsQ291bnQgPSAwOwotICAgIH0gY29udGV4dDsKLSAg
ICBjYW5jZWxSZXBlYXRpbmdTb3VyY2VEdXJpbmdEaXNwYXRjaDxUZXN0aW5nQ29udGV4dD4oY29u
dGV4dCk7Ci0KLSAgICBzdHJ1Y3QgVGhyZWFkU2FmZVRlc3RpbmdDb250ZXh0IHsKLSAgICAgICAg
R01haW5Mb29wU291cmNlVGVzdDxHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlPiB0ZXN0OwotICAg
ICAgICB1bnNpZ25lZCBjYWxsQ291bnQgPSAwOwotICAgIH0gdGhyZWFkU2FmZUNvbnRleHQ7Ci0g
ICAgY2FuY2VsUmVwZWF0aW5nU291cmNlRHVyaW5nRGlzcGF0Y2g8VGhyZWFkU2FmZVRlc3RpbmdD
b250ZXh0Pih0aHJlYWRTYWZlQ29udGV4dCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
c3RhdGljIHZvaWQgYmFzaWNEZXN0cm95Q2FsbGJhY2tzKCkKLXsKLSAgICB7Ci0gICAgICAgIFQg
Y29udGV4dDsKLSAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0Fj
dGl2ZSgpKTsKLSAgICAgICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLnNjaGVkdWxlKCJbVGVzdF0g
RGVzdHJveUNhbGxiYWNrIiwKLSAgICAgICAgICAgIFsmXSB7Ci0gICAgICAgICAgICAgICAgRVhQ
RUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkgJiYgIWNvbnRleHQudGVz
dC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKLSAgICAgICAgICAgICAgICBjb250ZXh0LmNhbGxi
YWNrQ2FsbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0sIEdfUFJJT1JJVFlfREVGQVVMVCwKLSAg
ICAgICAgICAgIFsmXSB7Ci0gICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVz
dC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLSAgICAgICAgICAgICAgICBjb250ZXh0LmRlc3Ryb3lD
YWxsYmFja0NhbGxlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgY29udGV4dC50ZXN0LmZpbmlz
aCgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5z
b3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKLQotICAgICAgICBjb250ZXh0LnRlc3QucnVuTG9vcCgp
OwotCi0gICAgICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUo
KSk7Ci0gICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQuY2FsbGJhY2tDYWxsZWQpOwotICAgICAg
ICBFWFBFQ1RfVFJVRShjb250ZXh0LmRlc3Ryb3lDYWxsYmFja0NhbGxlZCk7Ci0gICAgfQotCi0g
ICAgewotICAgICAgICBUIGNvbnRleHQ7Ci0gICAgICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRl
c3Quc291cmNlKCkuaXNBY3RpdmUoKSk7Ci0gICAgICAgIGNvbnRleHQudGVzdC5zb3VyY2UoKS5z
Y2hlZHVsZSgiW1Rlc3RdIERlc3Ryb3lDYWxsYmFjayIsCi0gICAgICAgICAgICBzdGQ6OmZ1bmN0
aW9uPGJvb2wgKCk+KFsmXSB7Ci0gICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50
ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkgJiYgIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVk
dWxlZCgpKTsKLSAgICAgICAgICAgICAgICBjb250ZXh0LmNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9KSwgR19QUklPUklU
WV9ERUZBVUxULAotICAgICAgICAgICAgWyZdIHsKLSAgICAgICAgICAgICAgICBFWFBFQ1RfVFJV
RSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOwotICAgICAgICAgICAgICAgIGNv
bnRleHQuZGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBjb250
ZXh0LnRlc3QuZmluaXNoKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgRVhQRUNUX1RSVUUo
Y29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOwotCi0gICAgICAgIGNvbnRleHQu
dGVzdC5ydW5Mb29wKCk7Ci0KLSAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3Vy
Y2UoKS5pc0FjdGl2ZSgpKTsKLSAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC5jYWxsYmFja0Nh
bGxlZCk7Ci0gICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQuZGVzdHJveUNhbGxiYWNrQ2FsbGVk
KTsKLSAgICB9Ci19Ci0KLVRFU1QoV1RGX0dNYWluTG9vcFNvdXJjZSwgQmFzaWNEZXN0cm95Q2Fs
bGJhY2tzKQotewotICAgIHN0cnVjdCBUZXN0aW5nQ29udGV4dCB7Ci0gICAgICAgIEdNYWluTG9v
cFNvdXJjZVRlc3Q8R01haW5Mb29wU291cmNlPiB0ZXN0OwotICAgICAgICBib29sIGNhbGxiYWNr
Q2FsbGVkID0gZmFsc2U7Ci0gICAgICAgIGJvb2wgZGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gZmFs
c2U7Ci0gICAgfTsKLSAgICBiYXNpY0Rlc3Ryb3lDYWxsYmFja3M8VGVzdGluZ0NvbnRleHQ+KCk7
Ci0KLSAgICBzdHJ1Y3QgVGhyZWFkU2FmZVRlc3RpbmdDb250ZXh0IHsKLSAgICAgICAgR01haW5M
b29wU291cmNlVGVzdDxHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlPiB0ZXN0OwotICAgICAgICBi
b29sIGNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7Ci0gICAgICAgIGJvb2wgZGVzdHJveUNhbGxiYWNr
Q2FsbGVkID0gZmFsc2U7Ci0gICAgfTsKLSAgICBiYXNpY0Rlc3Ryb3lDYWxsYmFja3M8VGhyZWFk
U2FmZVRlc3RpbmdDb250ZXh0PigpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0YXRp
YyB2b2lkIGRlc3Ryb3lDYWxsYmFja3NBZnRlckNhbmNlbGxpbmdEdXJpbmdEaXNwYXRjaCgpCi17
Ci0gICAgewotICAgICAgICBUIGNvbnRleHQ7Ci0gICAgICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0
LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7Ci0gICAgICAgIGNvbnRleHQudGVzdC5zb3VyY2Uo
KS5zY2hlZHVsZSgiW1Rlc3RdIERlc3Ryb3lDYWxsYmFjayIsCi0gICAgICAgICAgICBbJl0gewot
ICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2
ZSgpICYmICFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7Ci0gICAgICAgICAg
ICAgICAgY29udGV4dC5jYWxsYmFja0NhbGxDb3VudCsrOwotICAgICAgICAgICAgICAgIGNvbnRl
eHQudGVzdC5zb3VyY2UoKS5jYW5jZWwoKTsKLSAgICAgICAgICAgIH0sIEdfUFJJT1JJVFlfREVG
QVVMVCwKLSAgICAgICAgICAgIFsmXSB7Ci0gICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoIWNv
bnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLSAgICAgICAgICAgICAgICBjb250ZXh0
LmRlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgY29udGV4dC50
ZXN0LmZpbmlzaCgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIEVYUEVDVF9UUlVFKGNvbnRl
eHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKLQotICAgICAgICBjb250ZXh0LnRlc3Qu
ZGVsYXllZEZpbmlzaCgpOwotICAgICAgICBjb250ZXh0LnRlc3QucnVuTG9vcCgpOwotCi0gICAg
ICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7Ci0gICAg
ICAgIEVYUEVDVF9FUSgxLCBjb250ZXh0LmNhbGxiYWNrQ2FsbENvdW50KTsKLSAgICAgICAgRVhQ
RUNUX1RSVUUoY29udGV4dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQpOwotICAgIH0KLQotICAgIHsK
LSAgICAgICAgVCBjb250ZXh0OwotICAgICAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNv
dXJjZSgpLmlzQWN0aXZlKCkpOwotICAgICAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1
bGUoIltUZXN0XSBEZXN0cm95Q2FsbGJhY2siLAotICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjxi
b29sICgpPihbJl0gewotICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5z
b3VyY2UoKS5pc0FjdGl2ZSgpICYmICFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQo
KSk7Ci0gICAgICAgICAgICAgICAgY29udGV4dC5jYWxsYmFja0NhbGxDb3VudCsrOwotICAgICAg
ICAgICAgICAgIGlmIChjb250ZXh0LmNhbGxiYWNrQ2FsbENvdW50ID09IDMpCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnRleHQudGVzdC5zb3VyY2UoKS5jYW5jZWwoKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0pLCBHX1BSSU9SSVRZX0RFRkFVTFQsCi0gICAg
ICAgICAgICBbJl0gewotICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Qu
c291cmNlKCkuaXNBY3RpdmUoKSk7Ci0gICAgICAgICAgICAgICAgY29udGV4dC5kZXN0cm95Q2Fs
bGJhY2tDYWxsZWQgPSB0cnVlOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIEVYUEVDVF9UUlVF
KGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKLQotICAgICAgICBjb250ZXh0
LnRlc3QuZGVsYXllZEZpbmlzaCgpOwotICAgICAgICBjb250ZXh0LnRlc3QucnVuTG9vcCgpOwot
Ci0gICAgICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7
Ci0gICAgICAgIEVYUEVDVF9FUSgzLCBjb250ZXh0LmNhbGxiYWNrQ2FsbENvdW50KTsKLSAgICAg
ICAgRVhQRUNUX1RSVUUoY29udGV4dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQpOwotICAgIH0KLX0K
LQotVEVTVChXVEZfR01haW5Mb29wU291cmNlLCBEZXN0cm95Q2FsbGJhY2tzQWZ0ZXJDYW5jZWxs
aW5nRHVyaW5nRGlzcGF0Y2gpCi17Ci0gICAgc3RydWN0IFRlc3RpbmdDb250ZXh0IHsKLSAgICAg
ICAgR01haW5Mb29wU291cmNlVGVzdDxHTWFpbkxvb3BTb3VyY2U+IHRlc3Q7Ci0gICAgICAgIHVu
c2lnbmVkIGNhbGxiYWNrQ2FsbENvdW50PSAwOwotICAgICAgICBib29sIGRlc3Ryb3lDYWxsYmFj
a0NhbGxlZCA9IGZhbHNlOwotICAgIH07Ci0gICAgZGVzdHJveUNhbGxiYWNrc0FmdGVyQ2FuY2Vs
bGluZ0R1cmluZ0Rpc3BhdGNoPFRlc3RpbmdDb250ZXh0PigpOwotCi0gICAgc3RydWN0IFRocmVh
ZFNhZmVUZXN0aW5nQ29udGV4dCB7Ci0gICAgICAgIEdNYWluTG9vcFNvdXJjZVRlc3Q8R1RocmVh
ZFNhZmVNYWluTG9vcFNvdXJjZT4gdGVzdDsKLSAgICAgICAgdW5zaWduZWQgY2FsbGJhY2tDYWxs
Q291bnQ9IDA7Ci0gICAgICAgIGJvb2wgZGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7Ci0g
ICAgfTsKLSAgICBkZXN0cm95Q2FsbGJhY2tzQWZ0ZXJDYW5jZWxsaW5nRHVyaW5nRGlzcGF0Y2g8
VGhyZWFkU2FmZVRlc3RpbmdDb250ZXh0PigpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
LXN0YXRpYyB2b2lkIGRlc3Ryb3lDYWxsYmFja3NBZnRlclJlc2NoZWR1bGluZ0R1cmluZ0Rpc3Bh
dGNoKCkKLXsKLSAgICB7Ci0gICAgICAgIFQgY29udGV4dDsKLSAgICAgICAgRVhQRUNUX1RSVUUo
IWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLSAgICAgICAgY29udGV4dC50ZXN0
LnNvdXJjZSgpLnNjaGVkdWxlKCJbVGVzdF0gQmFzZUNhbGxiYWNrIiwKLSAgICAgICAgICAgIFsm
XSB7Ci0gICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlz
QWN0aXZlKCkgJiYgIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKLSAgICAg
ICAgICAgICAgICBjb250ZXh0LmZpcnN0Q2FsbGJhY2tDYWxsQ291bnQrKzsKLSAgICAgICAgICAg
ICAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBSZXNjaGVkdWxpbmdD
YWxsYmFjayIsCi0gICAgICAgICAgICAgICAgICAgIFsmXSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSAmJiAhY29u
dGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgY29udGV4dC5zZWNvbmRDYWxsYmFja0NhbGxDb3VudCsrOwotICAgICAgICAgICAgICAgICAg
ICB9LCBHX1BSSU9SSVRZX0RFRkFVTFQsCi0gICAgICAgICAgICAgICAgICAgIFsmXSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlz
QWN0aXZlKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zZWNvbmREZXN0cm95
Q2FsbGJhY2tDYWxsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7
Ci0gICAgICAgICAgICB9LCBHX1BSSU9SSVRZX0RFRkFVTFQsCi0gICAgICAgICAgICBbJl0gewot
ICAgICAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgdGhlIEdNYWluTG9vcFNvdXJjZSBoYXMg
YmVlbiByZXNjaGVkdWxlZCwgZXJnbyB0aGUgU2NoZWR1bGVkIHN0YXR1cy4KLSAgICAgICAgICAg
ICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7Ci0g
ICAgICAgICAgICAgICAgY29udGV4dC5maXJzdERlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IHRydWU7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJj
ZSgpLmlzU2NoZWR1bGVkKCkpOwotCi0gICAgICAgIGNvbnRleHQudGVzdC5kZWxheWVkRmluaXNo
KCk7Ci0gICAgICAgIGNvbnRleHQudGVzdC5ydW5Mb29wKCk7Ci0KLSAgICAgICAgRVhQRUNUX1RS
VUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VR
KDEsIGNvbnRleHQuZmlyc3RDYWxsYmFja0NhbGxDb3VudCk7Ci0gICAgICAgIEVYUEVDVF9UUlVF
KGNvbnRleHQuZmlyc3REZXN0cm95Q2FsbGJhY2tDYWxsZWQpOwotICAgICAgICBFWFBFQ1RfRVEo
MSwgY29udGV4dC5zZWNvbmRDYWxsYmFja0NhbGxDb3VudCk7Ci0gICAgICAgIEVYUEVDVF9UUlVF
KGNvbnRleHQuc2Vjb25kRGVzdHJveUNhbGxiYWNrQ2FsbGVkKTsKLSAgICB9Ci0KLSAgICB7Ci0g
ICAgICAgIFQgY29udGV4dDsKLSAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3Vy
Y2UoKS5pc0FjdGl2ZSgpKTsKLSAgICAgICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLnNjaGVkdWxl
KCJbVGVzdF0gQmFzZUNhbGxiYWNrIiwKLSAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248Ym9vbCAo
KT4oWyZdIHsKLSAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNl
KCkuaXNBY3RpdmUoKSAmJiAhY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOwot
ICAgICAgICAgICAgICAgIGNvbnRleHQuZmlyc3RDYWxsYmFja0NhbGxDb3VudCsrOwotICAgICAg
ICAgICAgICAgIGNvbnRleHQudGVzdC5zb3VyY2UoKS5zY2hlZHVsZSgiW1Rlc3RdIFJlc2NoZWR1
bGluZ0NhbGxiYWNrIiwKLSAgICAgICAgICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjxib29sICgp
PihbJl0gewotICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0
LnNvdXJjZSgpLmlzQWN0aXZlKCkgJiYgIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxl
ZCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuc2Vjb25kQ2FsbGJhY2tDYWxs
Q291bnQrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0LnNlY29uZENh
bGxiYWNrQ2FsbENvdW50ICE9IDM7Ci0gICAgICAgICAgICAgICAgICAgIH0pLCBHX1BSSU9SSVRZ
X0RFRkFVTFQsCi0gICAgICAgICAgICAgICAgICAgIFsmXSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zZWNvbmREZXN0cm95Q2FsbGJhY2tDYWxsZWQg
PSB0cnVlOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICBFWFBFQ1Rf
VFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9KSwgR19QUklPUklUWV9ERUZBVUxULAotICAg
ICAgICAgICAgWyZdIHsKLSAgICAgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBHTWFp
bkxvb3BTb3VyY2UgaGFzIGJlZW4gcmVzY2hlZHVsZWQsIGVyZ28gdGhlIFNjaGVkdWxlZCBzdGF0
dXMuCi0gICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlz
U2NoZWR1bGVkKCkpOwotICAgICAgICAgICAgICAgIGNvbnRleHQuZmlyc3REZXN0cm95Q2FsbGJh
Y2tDYWxsZWQgPSB0cnVlOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIEVYUEVDVF9UUlVFKGNv
bnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKLQotICAgICAgICBjb250ZXh0LnRl
c3QuZGVsYXllZEZpbmlzaCgpOwotICAgICAgICBjb250ZXh0LnRlc3QucnVuTG9vcCgpOwotCi0g
ICAgICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7Ci0g
ICAgICAgIEVYUEVDVF9FUSgxLCBjb250ZXh0LmZpcnN0Q2FsbGJhY2tDYWxsQ291bnQpOwotICAg
ICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LmZpcnN0RGVzdHJveUNhbGxiYWNrQ2FsbGVkKTsKLSAg
ICAgICAgRVhQRUNUX0VRKDMsIGNvbnRleHQuc2Vjb25kQ2FsbGJhY2tDYWxsQ291bnQpOwotICAg
ICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnNlY29uZERlc3Ryb3lDYWxsYmFja0NhbGxlZCk7Ci0g
ICAgfQotfQotCi1URVNUKFdURl9HTWFpbkxvb3BTb3VyY2UsIERlc3Ryb3lDYWxsYmFja3NBZnRl
clJlc2NoZWR1bGluZ0R1cmluZ0Rpc3BhdGNoKQotewotICAgIHN0cnVjdCBUZXN0aW5nQ29udGV4
dCB7Ci0gICAgICAgIEdNYWluTG9vcFNvdXJjZVRlc3Q8R01haW5Mb29wU291cmNlPiB0ZXN0Owot
ICAgICAgICB1bnNpZ25lZCBmaXJzdENhbGxiYWNrQ2FsbENvdW50ID0gMDsKLSAgICAgICAgYm9v
bCBmaXJzdERlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IGZhbHNlOwotICAgICAgICB1bnNpZ25lZCBz
ZWNvbmRDYWxsYmFja0NhbGxDb3VudCA9IDA7Ci0gICAgICAgIGJvb2wgc2Vjb25kRGVzdHJveUNh
bGxiYWNrQ2FsbGVkID0gZmFsc2U7Ci0gICAgfTsKLSAgICBkZXN0cm95Q2FsbGJhY2tzQWZ0ZXJS
ZXNjaGVkdWxpbmdEdXJpbmdEaXNwYXRjaDxUZXN0aW5nQ29udGV4dD4oKTsKLQotICAgIHN0cnVj
dCBUaHJlYWRTYWZlVGVzdGluZ0NvbnRleHQgewotICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0
PEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U+IHRlc3Q7Ci0gICAgICAgIHVuc2lnbmVkIGZpcnN0
Q2FsbGJhY2tDYWxsQ291bnQgPSAwOwotICAgICAgICBib29sIGZpcnN0RGVzdHJveUNhbGxiYWNr
Q2FsbGVkID0gZmFsc2U7Ci0gICAgICAgIHVuc2lnbmVkIHNlY29uZENhbGxiYWNrQ2FsbENvdW50
ID0gMDsKLSAgICAgICAgYm9vbCBzZWNvbmREZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsK
LSAgICB9OwotICAgIGRlc3Ryb3lDYWxsYmFja3NBZnRlclJlc2NoZWR1bGluZ0R1cmluZ0Rpc3Bh
dGNoPFRocmVhZFNhZmVUZXN0aW5nQ29udGV4dD4oKTsKLX0KLQotVEVTVChXVEZfR01haW5Mb29w
U291cmNlLCBEZWxldGVPbkRlc3Ryb3lTb3VyY2VzKQotewotICAgIC8vIFRlc3RpbmcgdGhlIGRl
bGV0ZS1vbi1kZXN0cm95IHNvdXJjZXMgaXMgdmVyeSBsaW1pdGVkLiBUaGVyZSdzIG5vIGdvb2Qg
d2F5Ci0gICAgLy8gb2YgdGVzdGluZyB0aGF0IHRoZSBHTWFpbkxvb3BTb3VyY2Ugb2JqZWN0cyBh
cmUgZGVsZXRlZCB3aGVuIHRoZWlyIEdTb3VyY2UKLSAgICAvLyBpcyBkZXN0cm95ZWQuCi0KLSAg
ICBzdHJ1Y3QgVGVzdGluZ0NvbnRleHQgewotICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0PEdN
YWluTG9vcFNvdXJjZT4gdGVzdDsKLSAgICAgICAgdW5zaWduZWQgY2FsbGJhY2tDYWxsQ291bnQg
PSAwOwotICAgICAgICBib29sIGRlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IGZhbHNlOwotICAgIH0g
Y29udGV4dDsKLQotICAgIHsKLSAgICAgICAgVGVzdGluZ0NvbnRleHQgY29udGV4dDsKLQotICAg
ICAgICBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQW5kRGVsZXRlT25EZXN0cm95KCJbVGVzdF0g
RGVsZXRlT25EZXN0cm95IiwKLSAgICAgICAgICAgIFsmXSB7Ci0gICAgICAgICAgICAgICAgY29u
dGV4dC5jYWxsYmFja0NhbGxDb3VudCsrOwotICAgICAgICAgICAgfSwgR19QUklPUklUWV9ERUZB
VUxULAotICAgICAgICAgICAgWyZdIHsKLSAgICAgICAgICAgICAgICBFWFBFQ1RfRkFMU0UoY29u
dGV4dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQpOwotICAgICAgICAgICAgICAgIGNvbnRleHQuZGVz
dHJveUNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIGNv
bnRleHQudGVzdC5kZWxheWVkRmluaXNoKCk7Ci0gICAgICAgIGNvbnRleHQudGVzdC5ydW5Mb29w
KCk7Ci0gICAgICAgIEVYUEVDVF9FUSgxLCBjb250ZXh0LmNhbGxiYWNrQ2FsbENvdW50KTsKLSAg
ICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQpOwotICAgIH0K
LQotICAgIHsKLSAgICAgICAgVGVzdGluZ0NvbnRleHQgY29udGV4dDsKLQotICAgICAgICBHTWFp
bkxvb3BTb3VyY2U6OnNjaGVkdWxlQW5kRGVsZXRlT25EZXN0cm95KCJbVGVzdF0gRGVsZXRlT25E
ZXN0cm95IiwKLSAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4oWyZdIHsKLSAgICAg
ICAgICAgICAgICBjb250ZXh0LmNhbGxiYWNrQ2FsbENvdW50Kys7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIGNvbnRleHQuY2FsbGJhY2tDYWxsQ291bnQgIT0gMzsKLSAgICAgICAgICAgIH0pLCBH
X1BSSU9SSVRZX0RFRkFVTFQsCi0gICAgICAgICAgICBbJl0gewotICAgICAgICAgICAgICAgIEVY
UEVDVF9GQUxTRShjb250ZXh0LmRlc3Ryb3lDYWxsYmFja0NhbGxlZCk7Ci0gICAgICAgICAgICAg
ICAgY29udGV4dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSB0cnVlOwotICAgICAgICAgICAgfSk7
Ci0KLSAgICAgICAgY29udGV4dC50ZXN0LmRlbGF5ZWRGaW5pc2goKTsKLSAgICAgICAgY29udGV4
dC50ZXN0LnJ1bkxvb3AoKTsKLSAgICAgICAgRVhQRUNUX0VRKDMsIGNvbnRleHQuY2FsbGJhY2tD
YWxsQ291bnQpOwotICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LmRlc3Ryb3lDYWxsYmFja0Nh
bGxlZCk7Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nb2JqZWN0L0dVbmlxdWVQdHIuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ29iamVjdC9HVW5pcXVlUHRyLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODk0MmY4NjU3MmJkZGNkZWJiYTk3ZDI4NTI5
YTlkNTZhMTIyZTQzYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nb2JqZWN0L0dVbmlxdWVQdHIuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMTk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTQgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVk
ZSA8Z2lvL2dpby5oPgotCi1pbmxpbmUgc3RkOjpvc3RyaW5nc3RyZWFtJiBsb2coKQotewotICAg
IHN0YXRpYyBzdGQ6Om9zdHJpbmdzdHJlYW0gbG9nOwotICAgIHJldHVybiBsb2c7Ci19Ci0KLWlu
bGluZSBzdGQ6OnN0cmluZyB0YWtlTG9nU3RyKCkKLXsKLSAgICBzdGQ6OnN0cmluZyBzdHJpbmcg
PSBsb2coKS5zdHIoKTsKLSAgICBsb2coKS5zdHIoIiIpOwotICAgIHJldHVybiBzdHJpbmc7Ci19
Ci0KLXN0YXRpYyB2b2lkICgqIF9nX2ZyZWUpKHZvaWQqKSA9IGdfZnJlZTsKLSNkZWZpbmUgZ19m
cmVlKHgpIFwKLSAgICBsb2coKSA8PCAiZ19mcmVlKCIgPDwgcHRyIDw8ICIpOyI7IFwKLSAgICBf
Z19mcmVlKHgpOwotCi1zdGF0aWMgdm9pZCAoKiBfZ19lcnJvcl9mcmVlKShHRXJyb3IqKSA9IGdf
ZXJyb3JfZnJlZTsKLSNkZWZpbmUgZ19lcnJvcl9mcmVlKHgpIFwKLSAgICBsb2coKSA8PCAiZ19l
cnJvcl9mcmVlKCIgPDwgcHRyIDw8ICIpOyI7IFwKLSAgICBfZ19lcnJvcl9mcmVlKHgpOwotCi1z
dGF0aWMgdm9pZCAoKiBfZ19saXN0X2ZyZWUpKEdMaXN0KikgPSBnX2xpc3RfZnJlZTsKLSNkZWZp
bmUgZ19saXN0X2ZyZWUoeCkgXAotICAgIGxvZygpIDw8ICJnX2xpc3RfZnJlZSgiIDw8IHB0ciA8
PCAiKTsiOyBcCi0gICAgX2dfbGlzdF9mcmVlKHgpOwotCi1zdGF0aWMgdm9pZCAoKiBfZ19zbGlz
dF9mcmVlKShHU0xpc3QqKSA9IGdfc2xpc3RfZnJlZTsKLSNkZWZpbmUgZ19zbGlzdF9mcmVlKHgp
IFwKLSAgICBsb2coKSA8PCAiZ19zbGlzdF9mcmVlKCIgPDwgcHRyIDw8ICIpOyI7IFwKLSAgICBf
Z19zbGlzdF9mcmVlKHgpOwotCi1zdGF0aWMgdm9pZCAoKiBfZ19wYXR0ZXJuX3NwZWNfZnJlZSko
R1BhdHRlcm5TcGVjKikgPSBnX3BhdHRlcm5fc3BlY19mcmVlOwotI2RlZmluZSBnX3BhdHRlcm5f
c3BlY19mcmVlKHgpIFwKLSAgICBsb2coKSA8PCAiZ19wYXR0ZXJuX3NwZWNfZnJlZSgiIDw8IHB0
ciA8PCAiKTsiOyBcCi0gICAgX2dfcGF0dGVybl9zcGVjX2ZyZWUoeCk7Ci0KLXN0YXRpYyB2b2lk
ICgqIF9nX2Rpcl9jbG9zZSkoR0RpciopID0gZ19kaXJfY2xvc2U7Ci0jZGVmaW5lIGdfZGlyX2Ns
b3NlKHgpIFwKLSAgICBsb2coKSA8PCAiZ19kaXJfY2xvc2UoIiA8PCBwdHIgPDwgIik7IjsgXAot
ICAgIF9nX2Rpcl9jbG9zZSh4KTsKLQotc3RhdGljIHZvaWQgKCogX2dfdGltZXJfZGVzdHJveSko
R1RpbWVyKikgPSBnX3RpbWVyX2Rlc3Ryb3k7Ci0jZGVmaW5lIGdfdGltZXJfZGVzdHJveSh4KSBc
Ci0gICAgbG9nKCkgPDwgImdfdGltZXJfZGVzdHJveSgiIDw8IHB0ciA8PCAiKTsiOyBcCi0gICAg
X2dfdGltZXJfZGVzdHJveSh4KTsKLQotc3RhdGljIHZvaWQgKCogX2dfa2V5X2ZpbGVfZnJlZSko
R0tleUZpbGUqKSA9IGdfa2V5X2ZpbGVfZnJlZTsKLSNkZWZpbmUgZ19rZXlfZmlsZV9mcmVlKHgp
IFwKLSAgICBsb2coKSA8PCAiZ19rZXlfZmlsZV9mcmVlKCIgPDwgcHRyIDw8ICIpOyI7IFwKLSAg
ICBfZ19rZXlfZmlsZV9mcmVlKHgpOwotCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0
ci5oPgotCi1uYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Ci0KLVRFU1QoV1RGX0dVbmlxdWVQdHIs
IEJhc2ljKQotewotICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBhY3R1YWw7Ci0KLSAgICB7Ci0gICAg
ICAgIEdVbmlxdWVQdHI8Y2hhcj4gYShnX3N0cmR1cCgiYSIpKTsKLSAgICAgICAgYWN0dWFsIDw8
ICJnX2ZyZWUoIiA8PCBhLmdldCgpIDw8ICIpOyI7Ci0gICAgfQotICAgIEFTU0VSVF9TVFJFUShh
Y3R1YWwuc3RyKCkuY19zdHIoKSwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwotICAgIGFjdHVhbC5z
dHIoIiIpOwotCi0gICAgewotICAgICAgICBHVW5pcXVlUHRyPEdFcnJvcj4gYShnX2Vycm9yX25l
d19saXRlcmFsKEdfSU9fRVJST1IsIEdfSU9fRVJST1JfTk9UX0ZPVU5ELCAiYSIpKTsKLSAgICAg
ICAgYWN0dWFsIDw8ICJnX2Vycm9yX2ZyZWUoIiA8PCBhLmdldCgpIDw8ICIpOyI7Ci0gICAgfQot
ICAgIEFTU0VSVF9TVFJFUShhY3R1YWwuc3RyKCkuY19zdHIoKSwgdGFrZUxvZ1N0cigpLmNfc3Ry
KCkpOwotICAgIGFjdHVhbC5zdHIoIiIpOwotCi0gICAgewotICAgICAgICBHVW5pcXVlUHRyPEdM
aXN0PiBhKGdfbGlzdF9wcmVwZW5kKG51bGxwdHIsIGdfc3RyZHVwKCJhIikpKTsKLSAgICAgICAg
YWN0dWFsIDw8ICJnX2xpc3RfZnJlZSgiIDw8IGEuZ2V0KCkgPDwgIik7IjsKLSAgICB9Ci0gICAg
QVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIoKS5jX3N0cigpLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7
Ci0gICAgYWN0dWFsLnN0cigiIik7Ci0KLSAgICB7Ci0gICAgICAgIEdVbmlxdWVQdHI8R1NMaXN0
PiBhKGdfc2xpc3RfcHJlcGVuZChudWxscHRyLCBnX3N0cmR1cCgiYSIpKSk7Ci0gICAgICAgIGFj
dHVhbCA8PCAiZ19zbGlzdF9mcmVlKCIgPDwgYS5nZXQoKSA8PCAiKTsiOwotICAgIH0KLSAgICBB
U1NFUlRfU1RSRVEoYWN0dWFsLnN0cigpLmNfc3RyKCksIHRha2VMb2dTdHIoKS5jX3N0cigpKTsK
LSAgICBhY3R1YWwuc3RyKCIiKTsKLQotICAgIHsKLSAgICAgICAgR1VuaXF1ZVB0cjxHUGF0dGVy
blNwZWM+IGEoZ19wYXR0ZXJuX3NwZWNfbmV3KCJhIikpOwotICAgICAgICBhY3R1YWwgPDwgImdf
cGF0dGVybl9zcGVjX2ZyZWUoIiA8PCBhLmdldCgpIDw8ICIpOyI7Ci0gICAgfQotICAgIEFTU0VS
VF9TVFJFUShhY3R1YWwuc3RyKCkuY19zdHIoKSwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwotICAg
IGFjdHVhbC5zdHIoIiIpOwotCi0gICAgewotICAgICAgICBHVW5pcXVlUHRyPEdEaXI+IGEoZ19k
aXJfb3BlbigiL3RtcCIsIDAsIG51bGxwdHIpKTsKLSAgICAgICAgYWN0dWFsIDw8ICJnX2Rpcl9j
bG9zZSgiIDw8IGEuZ2V0KCkgPDwgIik7IjsKLSAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKGFjdHVh
bC5zdHIoKS5jX3N0cigpLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Ci0gICAgYWN0dWFsLnN0cigi
Iik7Ci0KLSAgICB7Ci0gICAgICAgIEdVbmlxdWVQdHI8R1RpbWVyPiBhKGdfdGltZXJfbmV3KCkp
OwotICAgICAgICBhY3R1YWwgPDwgImdfdGltZXJfZGVzdHJveSgiIDw8IGEuZ2V0KCkgPDwgIik7
IjsKLSAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIoKS5jX3N0cigpLCB0YWtlTG9n
U3RyKCkuY19zdHIoKSk7Ci0gICAgYWN0dWFsLnN0cigiIik7Ci0KLSAgICB7Ci0gICAgICAgIEdV
bmlxdWVQdHI8R0tleUZpbGU+IGEoZ19rZXlfZmlsZV9uZXcoKSk7Ci0gICAgICAgIGFjdHVhbCA8
PCAiZ19rZXlfZmlsZV9mcmVlKCIgPDwgYS5nZXQoKSA8PCAiKTsiOwotICAgIH0KLSAgICBBU1NF
UlRfU1RSRVEoYWN0dWFsLnN0cigpLmNfc3RyKCksIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKLSAg
ICBhY3R1YWwuc3RyKCIiKTsKLX0KLQotc3RhdGljIHZvaWQgcmV0dXJuT3V0Q2hhcihjaGFyKiog
b3V0Q2hhcikKLXsKLSAgICAqb3V0Q2hhciA9IGdfc3RyZHVwKCJhIik7Ci19Ci0KLVRFU1QoV1RG
X0dVbmlxdWVQdHIsIE91dFB0cikKLXsKLSAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gYWN0dWFsOwot
Ci0gICAgewotICAgICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IGE7Ci0gICAgICAgIEFTU0VSVF9F
UShudWxscHRyLCBhLmdldCgpKTsKLSAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIo
KS5jX3N0cigpLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Ci0gICAgYWN0dWFsLnN0cigiIik7Ci0K
LSAgICB7Ci0gICAgICAgIEdVbmlxdWVPdXRQdHI8Y2hhcj4gYTsKLSAgICAgICAgcmV0dXJuT3V0
Q2hhcigmYS5vdXRQdHIoKSk7Ci0gICAgICAgIGFjdHVhbCA8PCAiZ19mcmVlKCIgPDwgYS5nZXQo
KSA8PCAiKTsiOwotICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoYWN0dWFsLnN0cigpLmNfc3RyKCks
IHRha2VMb2dTdHIoKS5jX3N0cigpKTsKLSAgICBhY3R1YWwuc3RyKCIiKTsKLQotICAgIHsKLSAg
ICAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBhOwotICAgICAgICByZXR1cm5PdXRDaGFyKCZhLm91
dFB0cigpKTsKLSAgICAgICAgYWN0dWFsIDw8ICJnX2ZyZWUoIiA8PCBhLmdldCgpIDw8ICIpOyI7
Ci0gICAgICAgIHJldHVybk91dENoYXIoJmEub3V0UHRyKCkpOwotICAgICAgICBBU1NFUlRfU1RS
RVEoYWN0dWFsLnN0cigpLmNfc3RyKCksIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKLSAgICAgICAg
YWN0dWFsLnN0cigiIik7Ci0gICAgICAgIGFjdHVhbCA8PCAiZ19mcmVlKCIgPDwgYS5nZXQoKSA8
PCAiKTsiOwotICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoYWN0dWFsLnN0cigpLmNfc3RyKCksIHRh
a2VMb2dTdHIoKS5jX3N0cigpKTsKLSAgICBhY3R1YWwuc3RyKCIiKTsKLQotICAgIHsKLSAgICAg
ICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBhOwotICAgICAgICByZXR1cm5PdXRDaGFyKCZhLm91dFB0
cigpKTsKLSAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBiID0gYS5yZWxlYXNlKCk7Ci0gICAgICAg
IEFTU0VSVF9TVFJFUShhY3R1YWwuc3RyKCkuY19zdHIoKSwgdGFrZUxvZ1N0cigpLmNfc3RyKCkp
OwotICAgICAgICBhY3R1YWwgPDwgImdfZnJlZSgiIDw8IGIuZ2V0KCkgPDwgIik7IjsKLSAgICB9
Ci0gICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIoKS5jX3N0cigpLCB0YWtlTG9nU3RyKCkuY19z
dHIoKSk7Ci0gICAgYWN0dWFsLnN0cigiIik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9ndGsv
SW5wdXRNZXRob2RGaWx0ZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L2d0ay9JbnB1dE1ldGhvZEZpbHRlci5jcHAKaW5kZXggNDg4MWE0NGNhYzhlNmQ0MjU2N2M0Mjgw
NTY3YTlkODU2MzJjYjE0NC4uNzJjYTllMjYwOTVhNjA0OTdlMTMwMjI2YTFlYjg0YjRhODY3Mzg0
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2d0ay9JbnB1
dE1ldGhvZEZpbHRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L2d0ay9JbnB1dE1ldGhvZEZpbHRlci5jcHAKQEAgLTI5LDggKzI5LDggQEAKICNpbmNsdWRlIDxX
ZWJLaXQvSW5wdXRNZXRob2RGaWx0ZXIuaD4KICNpbmNsdWRlIDxnZGsvZ2Rra2V5c3ltcy5oPgog
I2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTU5vZGVGaWx0ZXJUZXN0LmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01Ob2RlRmlsdGVyVGVz
dC5jcHAKaW5kZXggZWU1ZTBlM2FjNWE4ZDI0Njc4Nzc1NDIxMWUwODlkZDhlM2RkZTgzNS4uMGYx
OGQxZjMxODRlYzRjNGE3NjA5NmZjMmExMmJhNmRmMzQ1YWMyNiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTU5vZGVGaWx0ZXJUZXN0LmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NTm9kZUZpbHRlclRlc3Qu
Y3BwCkBAIC0yMiw3ICsyMiw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Rlc3QuaCIKICNpbmNs
dWRlIDxnaW8vZ2lvLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5o
PgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HVW5pcXVlUHRyLmg+CiAKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXROb2RlRmlsdGVyIHsKICAg
ICBHT2JqZWN0IHBhcmVudDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mkd0ay9ET01Ob2RlVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvRE9NTm9kZVRlc3QuY3BwCmluZGV4IGM4MzM5YzUxNDRjOTU0ZmI2NjJlZTE5ZDUz
NTZjYjIxMDBkY2M1MzYuLjMzNDM4NGY2N2E0NzliZDgzZmRjYTJlM2NjOTBjMDM5ZmRjZGZjZTIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01Ob2Rl
VGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTU5v
ZGVUZXN0LmNwcApAQCAtMjIsNyArMjIsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NUZXN0Lmgi
CiAjaW5jbHVkZSA8Z2lvL2dpby5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0LXdlYi1leHRl
bnNpb24uaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8
d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBjbGFzcyBXZWJLaXRET01Ob2RlVGVzdCA6IHB1Ymxp
YyBXZWJQcm9jZXNzVGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NWFBhdGhOU1Jlc29sdmVyVGVzdC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NWFBhdGhOU1Jlc29sdmVyVGVzdC5jcHAK
aW5kZXggMjBlNGRhMGJiMTU3ZjdiYTU4ZTA1NThhZDk5ODRhOWI3ZGMwZDM3Yy4uMTEwNjc3ZTQx
NDIwNzg4ZjU0OTNlZmIwYjUzM2FjYmE1ZjZiYTIzMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTVhQYXRoTlNSZXNvbHZlclRlc3QuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01YUGF0aE5TUmVzb2x2ZXJU
ZXN0LmNwcApAQCAtMjIsNyArMjIsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NUZXN0LmgiCiAj
aW5jbHVkZSA8Z2lvL2dpby5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNp
b24uaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1VuaXF1ZVB0ci5oPgogCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0WFBhdGhOU1Jlc29s
dmVyIHsKICAgICBHT2JqZWN0IHBhcmVudDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0QXV0aGVudGljYXRpb24uY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RBdXRoZW50aWNhdGlvbi5jcHAKaW5kZXggZWQw
NTY5YzVkMzU0Y2YzMTJlMmJlZDU0Y2JhMGU1ZDhiMzNjYThhMC4uZGFjNWU0ZWJhZGQ5NGNkZGZi
NzgwMjAxMGM3OGJkYjllOWEyMjQ4NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyR3RrL1Rlc3RBdXRoZW50aWNhdGlvbi5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RBdXRoZW50aWNhdGlvbi5jcHAKQEAgLTIwLDcg
KzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2FkVHJhY2tpbmdUZXN0
LmgiCiAjaW5jbHVkZSAiV2ViS2l0VGVzdFNlcnZlci5oIgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIHN0YXRpYyBXZWJL
aXRUZXN0U2VydmVyKiBrU2VydmVyOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJHdGsvVGVzdENvbnRleHRNZW51LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0Q29udGV4dE1lbnUuY3BwCmluZGV4IGRjZGZlNjI0ZjU1
N2VmYzVmNDQzNjkwYmE1YzU0Y2ZlMTU2ZjBiZDMuLmYyZjBkNmE1NzdjYjU3NzczODAyOTYxOGU0
OWVlMDJlYjM1YmMyMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mkd0ay9UZXN0Q29udGV4dE1lbnUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mkd0ay9UZXN0Q29udGV4dE1lbnUuY3BwCkBAIC0yMCw3ICsyMCw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViVmlld1Rlc3QuaCIKICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9nbGliL0dSZWZQdHIuaD4KIAogY2xhc3MgQ29udGV4dE1lbnVUZXN0OiBwdWJsaWMgV2ViVmll
d1Rlc3QgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyR3RrL1Rlc3REb3dubG9hZHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyR3RrL1Rlc3REb3dubG9hZHMuY3BwCmluZGV4IGNlN2NhMzczYjg0ODg3MzJlMzkwY2M5
MjY5NjlmN2QzMTBlZjBiNTguLmI0ZjIxYTEzMGExMjRmYzg2ZGJhYzFlYmE0MDUwNmQzYzY4ODVk
NGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0
RG93bmxvYWRzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsv
VGVzdERvd25sb2Fkcy5jcHAKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlIDxzdHJpbmcuaD4K
ICNpbmNsdWRlIDx3ZWJraXQyL3dlYmtpdDIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dV
bmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogY2xh
c3MgRG93bmxvYWRUZXN0OiBwdWJsaWMgVGVzdCB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEluc3BlY3Rvci5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEluc3BlY3Rvci5jcHAKaW5kZXggMGFiMjZmZGMy
ZDNiMGE2OWFmYTY3MDE1NGQ0ZGU1YWIwMTk4MmM1Ny4uM2Q5OTNlMjRmMWI0OGU3N2VmNzlmNmY5
ZTgwYTIyYmViOTBlMjdhMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyR3RrL1Rlc3RJbnNwZWN0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mkd0ay9UZXN0SW5zcGVjdG9yLmNwcApAQCAtMjEsNyArMjEsNyBAQAogCiAjaW5j
bHVkZSAiV2ViVmlld1Rlc3QuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAog
Y2xhc3MgSW5zcGVjdG9yVGVzdDogcHVibGljIFdlYlZpZXdUZXN0IHsKIHB1YmxpYzoKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0SW5zcGVjdG9y
U2VydmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0SW5z
cGVjdG9yU2VydmVyLmNwcAppbmRleCBmMGJmYjA2ODZiYjhmOGIzYjdlOWUyNjFkNzI2M2RhNjJi
ZTQ4YmQ2Li40M2Y0ZDQ4MTcwNmE0OGIxYzNmMmEyMWI2MWQ2MmQ1MjNhOTk3ZjIxIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEluc3BlY3RvclNl
cnZlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RJ
bnNwZWN0b3JTZXJ2ZXIuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAKICNpbmNsdWRlICJXZWJWaWV3VGVzdC5oIgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKIC8vIE5hbWUgb2YgdGhlIHRlc3Qgc2VydmVyIGFwcGxpY2F0aW9uIGNy
ZWF0aW5nIHRoZSB3ZWJWaWV3IG9iamVjdC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0UHJpbnRpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RQcmludGluZy5jcHAKaW5kZXggYTE1NWVkMzk5ZDg4MDFm
NGEwZmFjNDkwYzU3ZTFmNzljMzNkNmY1My4uYzEzMTg1NDI3NTVjZGQzNTljM2I4MDk2MDk4M2Vi
YWQ0MDdjMmEyMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
R3RrL1Rlc3RQcmludGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyR3RrL1Rlc3RQcmludGluZy5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJXZWJWaWV3VGVzdC5oIgogI2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+
Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dS
ZWZQdHIuaD4KIAogI2lmZGVmIEhBVkVfR1RLX1VOSVhfUFJJTlRJTkcKICNpbmNsdWRlIDxndGsv
Z3RrdW5peHByaW50Lmg+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvVGVzdFJlc291cmNlcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvVGVzdFJlc291cmNlcy5jcHAKaW5kZXggMjZmOWNjOTM3Y2M3ZDQ4MGI2YzkxMDZk
MzQ1OTEyMThjMGM4MjQ3ZS4uNDdmNjY2YTlkYzE5Y2NlMDY3Nzg5ZDIzZjk1ODRlZjI1MWM3ZGNk
YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RS
ZXNvdXJjZXMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9U
ZXN0UmVzb3VyY2VzLmNwcApAQCAtMjIsOSArMjIsOSBAQAogI2luY2x1ZGUgIldlYktpdFRlc3RT
ZXJ2ZXIuaCIKICNpbmNsdWRlICJXZWJWaWV3VGVzdC5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuaD4KLSNpbmNsdWRlIDx3
dGYvZ29iamVjdC9HTXV0ZXhMb2NrZXIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR01haW5Mb29wU291cmNlLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR011dGV4TG9ja2VyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCiBz
dGF0aWMgV2ViS2l0VGVzdFNlcnZlcioga1NlcnZlcjsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RVSUNsaWVudC5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFVJQ2xpZW50LmNwcAppbmRleCBlMjEwNjNk
NDc0NGVmYjAwZGYzMWI3OGY4MzBhY2FkMjE1YWI4OGYxLi5hZTg5YmUxOGMxYTdiY2ZjYmIzZTYx
ZmFhMmYzZjVjNDUxZjYzZTA5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJHdGsvVGVzdFVJQ2xpZW50LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJHdGsvVGVzdFVJQ2xpZW50LmNwcApAQCAtMjAsNyArMjAsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYlZpZXdUZXN0LmgiCiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogc3Rh
dGljIGNvbnN0IGNoYXIqIGtBbGVydERpYWxvZ01lc3NhZ2UgPSAiV2ViS2l0R1RLKyBhbGVydCBk
aWFsb2cgbWVzc2FnZSI7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvVGVzdFdlYkV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyR3RrL1Rlc3RXZWJFeHRlbnNpb25zLmNwcAppbmRleCA0YTA5NGQwNGIwNmZmZDhj
Mjk3OTUzZGMwYjExNDU3ZTY2OWE1YTMwLi44MmQzZWMzNjQ0ZDVlOGY5MTRkNzE3ZTZhZWI1Yjc5
ZDQ0NTVlZjhiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mkd0ay9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKQEAgLTIxLDcgKzIxLDcgQEAKIAogI2lu
Y2x1ZGUgIldlYktpdFRlc3RCdXMuaCIKICNpbmNsdWRlICJXZWJWaWV3VGVzdC5oIgotI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+
CiAKIHN0YXRpYyBjb25zdCBjaGFyKiB3ZWJFeHRlbnNpb25zVXNlckRhdGEgPSAiV2ViIEV4dGVu
c2lvbnMgdXNlciBkYXRhIjsKIHN0YXRpYyBXZWJLaXRUZXN0QnVzKiBidXM7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdEFjY2Vzc2li
aWxpdHkuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJL
aXRBY2Nlc3NpYmlsaXR5LmNwcAppbmRleCBhNWQ4ZGY5ZGU2NzFiODY1ZGU0OGQ2Nzg4NjgwZGM2
YWU4MmVlOTAwLi5lYTRhODEyNWY5NmFlNzg5NmUwNGM1ZmMxNWNmN2I3M2RiMWU3YmU0IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdEFj
Y2Vzc2liaWxpdHkuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0
ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHAKQEAgLTMzLDggKzMzLDggQEAgZXh0ZXJuICJD
IiB7CiAjaW5jbHVkZSA8c2lnbmFsLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIC8vIE5hbWUgb2YgdGhl
IHRlc3Qgc2VydmVyIGFwcGxpY2F0aW9uIGNyZWF0aW5nIHRoZSB3ZWJWaWV3IG9iamVjdC4KIHN0
YXRpYyBjb25zdCBjaGFyKiBrVGVzdFNlcnZlckFwcE5hbWUgPSAiQWNjZXNzaWJpbGl0eVRlc3RT
ZXJ2ZXIiOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3Rr
L1Rlc3RXZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwCmluZGV4IGU2YjU1OGNh
ZDc3MGFlNTMwYTVhZjdiYTliYzM0M2U5MWNmNzZiNGYuLjhkNWJlOTI1MDU4NTE0Yzg4ZmM3N2Jh
YzdjMjQ5MDQxOTM0MTViOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mkd0ay9UZXN0V2ViS2l0RmF2aWNvbkRhdGFiYXNlLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdEZhdmljb25EYXRhYmFzZS5jcHAK
QEAgLTIzLDcgKzIzLDcgQEAKICNpbmNsdWRlICJXZWJWaWV3VGVzdC5oIgogI2luY2x1ZGUgPGds
aWIvZ3N0ZGlvLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+Ci0jaW5jbHVkZSA8d3RmL2dv
YmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAog
c3RhdGljIFdlYktpdFRlc3RTZXJ2ZXIqIGtTZXJ2ZXI7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0RmluZENvbnRyb2xsZXIuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRGaW5kQ29u
dHJvbGxlci5jcHAKaW5kZXggZDJlZWY0Y2E0ODYzZTljMWEyYzM2ZTQzMTU3ZWM2ZDU0YjVkNzFk
My4uNzI4OWZkMzdmOTcyOTg4ZjY3ZTBkYmUzM2Y1YWZmNTkzYTg2MDg1YSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRGaW5kQ29udHJv
bGxlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RX
ZWJLaXRGaW5kQ29udHJvbGxlci5jcHAKQEAgLTIyLDcgKzIyLDcgQEAKICNpbmNsdWRlICJMb2Fk
VHJhY2tpbmdUZXN0LmgiCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHdlYmtpdDIv
d2Via2l0Mi5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIHN0YXRpYyBjb25zdCBjaGFyKiB0ZXN0U3RyaW5nID0gIjxo
dG1sPjxib2R5PmZpcnN0IHRlc3Rpbmcgc2Vjb25kIHRlc3Rpbmcgc2Vjb25kSGFsZjwvYm9keT48
L2h0bWw+IjsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
R3RrL1Rlc3RXZWJLaXRQb2xpY3lDbGllbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRQb2xpY3lDbGllbnQuY3BwCmluZGV4IDg1MTQwZmNkZmYy
YWEyODg0OWY4OTFmM2FkMjZlNDQ4ZmQ3YTFmYWEuLjlmOTUxNTEyM2MzOTg5ZDE5MjVmOTQ1MGVk
Mzc1ZjdkZTM3MWRhNWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mkd0ay9UZXN0V2ViS2l0UG9saWN5Q2xpZW50LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFBvbGljeUNsaWVudC5jcHAKQEAgLTIxLDcg
KzIxLDcgQEAKIAogI2luY2x1ZGUgIkxvYWRUcmFja2luZ1Rlc3QuaCIKICNpbmNsdWRlICJXZWJL
aXRUZXN0U2VydmVyLmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
IHN0YXRpYyBXZWJLaXRUZXN0U2VydmVyKiBrU2VydmVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFNldHRpbmdzLmNwcApp
bmRleCA3MDdjZjc4MmVlNzRmMDIxNDRhMGY2MzI4YzNkZTY1MmRlMjI2NGRmLi5iM2EzNzcyNzBk
NTIyZTljMzY1MjE1OWZhNTVjNjNmMjIxOGZjNGVhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFNldHRpbmdzLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFNldHRpbmdzLmNwcApA
QCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgIldlYktpdFRlc3RTZXJ2ZXIuaCIKICNpbmNsdWRl
IDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQyLmg+Ci0jaW5jbHVkZSA8d3Rm
L2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogc3Rh
dGljIFdlYktpdFRlc3RTZXJ2ZXIqIGdTZXJ2ZXI7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0VXNlckNv
bnRlbnRNYW5hZ2VyLmNwcAppbmRleCA5ZjQ5ZDFkMWZhM2UxMTI1YzNiNTI0YjcyNThhMGYyYjQ5
ZjBhNjIwLi41ODM5NmZmMzFhYTA0Mzg0ZjdkODUxMDFlNjA5NmVhNjM1NmQxYWZiIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFVzZXJD
b250ZW50TWFuYWdlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
R3RrL1Rlc3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCkBAIC0yNCw4ICsyNCw4IEBACiAj
aW5jbHVkZSA8Y3N0ZGFyZz4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d2Via2l0
Mi93ZWJraXQyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBjbGFzcyBVc2VyQ29udGVudE1h
bmFnZXJUZXN0IDogcHVibGljIFdlYlZpZXdUZXN0IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0V2ViQ29udGV4dC5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFdlYkNv
bnRleHQuY3BwCmluZGV4IGY1ZTNiMzlkZTc2MDc0MTVhMGU3NjZhZWY2NDNmNzM2MWRlYTE3NjAu
Ljk5MTkzMTM4NjYzMTI5MWUyNmU4NDc2YjZlOTFiZTU2MDI2OTZmNTUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0V2ViQ29udGV4dC5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRX
ZWJDb250ZXh0LmNwcApAQCAtMjQsOCArMjQsOCBAQAogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNp
bmNsdWRlIDx3ZWJraXQyL3dlYmtpdDIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5p
cXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIHN0
YXRpYyBXZWJLaXRUZXN0U2VydmVyKiBrU2VydmVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0V2ViVmlldy5jcHAKaW5kZXgg
MmI3NDJiNGVhMGQxYzUyMDRmMDcwYWEzNWU4ZDg1NzhiODZkNDRmMC4uNDMxZTcwMGY2MGMwYmEw
MzM1NDIxNzgzOTNhNmM2MTdjOWZmMWJlNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFdlYlZpZXcuY3BwCkBAIC0yNCw3
ICsyNCw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWYuaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU1ZhbHVlUmVmLmg+CiAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8u
aD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIv
R1JlZlB0ci5oPgogCiBjbGFzcyBJc1BsYXlpbmdBdWRpb1dlYlZpZXdUZXN0IDogcHVibGljIFdl
YlZpZXdUZXN0IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3BwCmluZGV4IDIzY2ZkMTlkZWY5
MjNkZjM1NGJjZGFiNzk4MWE2MTkyODljNWRlNWYuLjFjY2YxOTY4MjdmYzM1MjYwOTA4NjBiYmZh
NDBjYTE0OTMwZmE5ZjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcApAQCAtMTksNyArMTksNyBAQAog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViVmlld1Rlc3QuaCIKLSNpbmNsdWRl
IDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgog
CiBjbGFzcyBFZGl0b3JUZXN0OiBwdWJsaWMgV2ViVmlld1Rlc3QgewogcHVibGljOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1dlYkV4dGVuc2lvblRl
c3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1dlYkV4dGVuc2lv
blRlc3QuY3BwCmluZGV4IDc2NWE0MmYxNGIxMmQzY2RjODRmOGYzZjEzMzUxMjg2Y2M4M2Q0YTEu
LjUxYmQ2Mzc2YTEyMGEyZmRiY2JkM2FmODFkODhmMWJkNjM1NjA5ODcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJFeHRlbnNpb25UZXN0LmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViRXh0ZW5zaW9uVGVz
dC5jcHAKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlIDx3ZWJraXQyL3dlYmtpdC13ZWItZXh0
ZW5zaW9uLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NJ
RC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29i
amVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKICNkZWZpbmUgV0VCS0lUX0RPTV9VU0VfVU5TVEFCTEVfQVBJCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3QuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1dlYlByb2Nlc3NUZXN0LmNwcAppbmRl
eCA4MmYxMTEyZGM0NTZkNjI3NzU3MTg5YzljYmVmNTdkZTI4NzI1NzY3Li5jY2Q2ZjE3OWFmOWYx
Nzg2NzE5MGE1ODkzY2QwZmU3NmZhNTc4ZWUwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5jcHAKQEAgLTI0LDcgKzI0
LDcgQEAKICNpbmNsdWRlIDxnaW8vZ2lvLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5p
cXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBzdGF0aWMgSGFz
aFNldDxHT2JqZWN0Kj4gc193YXRjaGVkT2JqZWN0czsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1dlYlByb2Nlc3NUZXN0LmggYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3QuaAppbmRleCBlNzJlZWQ5
MmQ5ZjI0ZTNmZTBlODA1N2Y5YzNjNWNmNzhhZjUwNWZkLi4zNzE1ZWI5MWUwOTAwNzZmODQyOTIy
NGU1MDJiNDAwYTNjZjhhOGZlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3QuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3QuaApAQCAtMTksNyArMTksNyBAQAogCiAjaW5j
bHVkZSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvZ3RrL1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3Rr
L1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNwcAppbmRleCA5NGM3ODllZjcwNDAwOWNmOTQyNjVlNjEx
ZjQ2OGQ5YjlhY2U0ZjZkLi5mN2IyMzFmY2MyZDRhOWRmOGQyODZmOGQ0NGMxOTU2ZjRhNTlhZjY5
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVV0aWxpdGllc0d0
ay5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1VdGlsaXRpZXNHdGsu
Y3BwCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKIAog
I2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKIG5hbWVzcGFjZSBVdGlsIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCmluZGV4IDFkNjBiNjM5NDA4MTVjNTc3ZTUzNWZi
NTZjNDVjM2U3NTk2MDU2ZjIuLjVmMGViNDA0MDIzZDk1NjhlY2YwYmQyZjEzNWU0OGI5ODU2ZTZk
ZjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0
ay5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNw
cApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVlUHRyR3RrLmg+
CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0
ay9UZXN0TWFpbi5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9UZXN0TWFp
bi5oCmluZGV4IGM3N2MxOWEzY2FmNzdkNDEyNmJlNDVkMTlhNzUxOWU3ZTI0NjRhN2EuLjhlYWY4
ZTAyZjdmMjgzNGJkMzM3MmVmN2VhOWQ2OTU0NWQyMjgxNjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvVGVzdE1haW4uaAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2d0ay9XZWJLaXQyR3RrL1Rlc3RNYWluLmgKQEAgLTI0LDggKzI0LDggQEAKICNpbmNs
dWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0Mi5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KIAogI2RlZmluZSBNQUtFX0dMSUJfVEVTVF9GSVhUVVJFKENsYXNzTmFt
ZSkgXApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJL
aXRUZXN0QnVzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0
VGVzdEJ1cy5jcHAKaW5kZXggMzViY2YxYmQ2ODdjMzE2ZWQxMDFiNjQ0OTBhNDA1YjdiODhhZDBh
Zi4uMWNmMjQxNDYxMDEwODcyY2Q4N2M3N2M0OGQzN2E0MzhjMWUzMzA1MSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0QnVzLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RCdXMuY3BwCkBA
IC0yMCw3ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0VGVz
dEJ1cy5oIgogCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogV2ViS2l0VGVzdEJ1czo6V2ViS2l0VGVzdEJ1cygpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RCdXMuaCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdEJ1cy5oCmluZGV4IGI5Zjg1NmIyNzUzZWYy
ZmNlYjQ2ZDFmYzA0MWU5ZGQ0NTE1ZjY0NTQuLjAzYmNjM2FlNTI5YjhmM2UyZDg2MTFhMzJkNjE5
YjQ3MDE5ZDhmMGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJH
dGsvV2ViS2l0VGVzdEJ1cy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJH
dGsvV2ViS2l0VGVzdEJ1cy5oCkBAIC0yMSw3ICsyMSw3IEBACiAjZGVmaW5lIFdlYktpdFRlc3RC
dXNfaAogCiAjaW5jbHVkZSA8Z2lvL2dpby5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCiBjbGFzcyBXZWJLaXRUZXN0QnVzIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZlci5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCmluZGV4IDg3
MzY3NzFmYTc0NmRjMDM2NmVhOWEzZjE4ZGM3OTI4YTg0ZGZiYjIuLjVjNzUxNDNjYTAwZjQzMTJh
ZGIyN2QyYTI0ZDcwYWM5NjA1MWZhM2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Z3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmNwcApAQCAtMjEsNyArMjEsNyBA
QAogI2luY2x1ZGUgIldlYktpdFRlc3RTZXJ2ZXIuaCIKIAogI2luY2x1ZGUgIlRlc3RNYWluLmgi
Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGli
L0dVbmlxdWVQdHIuaD4KIAogV2ViS2l0VGVzdFNlcnZlcjo6V2ViS2l0VGVzdFNlcnZlcihTZXJ2
ZXJUeXBlIHR5cGUpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJL
aXQyR3RrL1dlYktpdFRlc3RTZXJ2ZXIuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktp
dDJHdGsvV2ViS2l0VGVzdFNlcnZlci5oCmluZGV4IDUwMmY3ZmFkMDQ4MzQ4YmQ3NjIxZGJhYjky
ZDNjZTkwNGE4NzJiNGQuLjIzNWQ2YzkzYTUwNGEyYmJiMzY0MGU4MGJmMjU1OWQzMTNlYTE4YzYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVz
dFNlcnZlci5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0
VGVzdFNlcnZlci5oCkBAIC0yMiw3ICsyMiw3IEBACiAKICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAu
aD4KICNpbmNsdWRlIDx3ZWJraXQyL3dlYmtpdDIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9H
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KIAogY2xhc3MgV2ViS2l0VGVzdFNlcnZlciB7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oCmluZGV4IDBlZGVmY2I4YTY3ZDc5YjM5YjQ1ZTMyODIyZTA5YjliZmRhNDRj
YWIuLjk4ZWQ0NWI5MWIwZDIzNGIzNDJiZDkyOGIyODdhOTI0ZmIxMDMyYjYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5oCkBAIC00NCw3ICs0NCw3IEBAIHR5cGVkZWYgc3RydWN0IG9iamNf
b2JqZWN0KiBQbGF0Zm9ybVVJRWxlbWVudDsKICNlbGlmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYg
KFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlckF0ay5oIgogI2luY2x1ZGUgPGF0ay9hdGsuaD4KLSNpbmNsdWRl
IDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgog
dHlwZWRlZiBHUmVmUHRyPEF0a09iamVjdD4gUGxhdGZvcm1VSUVsZW1lbnQ7CiAjZWxzZQogdHlw
ZWRlZiB2b2lkKiBQbGF0Zm9ybVVJRWxlbWVudDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggYWRlZTMzN2JjYmY3NzU4MWQz
YWVmZmVmNmNiNzhmYWZiYmQzOWRkMi4uMDY2YzRiMDRkY2Q5ZmJiMDA4ZmQyNDk0N2IyMWYyMDFh
ZWJlMTIyNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlv
bi9DRlJ1bkxvb3AuaD4KIHR5cGVkZWYgUmV0YWluUHRyPENGUnVuTG9vcFRpbWVyUmVmPiBQbGF0
Zm9ybVRpbWVyUmVmOwogI2VsaWYgUExBVEZPUk0oR1RLKQotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dNYWluTG9vcFNvdXJjZS5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dNYWluTG9vcFNvdXJjZS5o
PgogdHlwZWRlZiBHTWFpbkxvb3BTb3VyY2UgUGxhdGZvcm1UaW1lclJlZjsKICNlbGlmIFBMQVRG
T1JNKEVGTCkKIHR5cGVkZWYgRWNvcmVfVGltZXIqIFBsYXRmb3JtVGltZXJSZWY7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlckF0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAKaW5kZXggNGI1NDFmNWIzZGY1
ZDMxNmNkNTgyNTcxNzIxNTg1Zjg1YjA4N2QyZC4uYzFjYjM0OTUxNjQyZGQ3ODE3NmIxYzgxOTg3
OGVlMTEwODE2YjJmYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
QXRrLmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VQ
cml2YXRlLmg+CiAjaW5jbHVkZSA8YXRrL2F0ay5oPgogI2luY2x1ZGUgPGNzdGRpbz4KLSNpbmNs
dWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1
ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNl
IFdUUiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2F0ay9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlckF0ay5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
SGFuZGxlckF0ay5jcHAKaW5kZXggODIxYjE1MDczMDM1NzVjNDEwOWZlZWNmMWZhYmRlNTJiMTFm
ZWFlYi4uOTVjZjhhZTRiNzhiMjcxZTJkNDMyM2NhMDVmZWVkNmFiNWU2M2JlNSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXJBdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyQXRrLmNw
cApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VQcml2YXRl
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dV
bmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyQXRrLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlckF0ay5oCmluZGV4IGM4NGU0ZGNjZjU1Njk2ZjNjMDNlY2UxMTcw
MTA3Y2FhNDZkMDA3NDkuLmJiMzg2OWVjZGM2NTZiNjhhYWNmYTk1MGVkNDc5MmViNDBkNTU3MzUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0Fj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyQXRrLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXJBdGsuaApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgPGF0ay9hdGtvYmplY3QuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQ
dHIuaD4KIAogbmFtZXNwYWNlIFdUUiB7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudEF0ay5jcHAKaW5kZXggMzgyMmM2ZDNhYzYyNmY4OWZmMTYzZDEwNjNiYzUyZDRhMDY4
NDUxYy4uMjljZDNhODQ4YjY2YmYzNmIyODM5YTlkNzg4YTc1OWVkZWJiOGY4NCAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudEF0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAKQEAgLTQwLDggKzQwLDggQEAK
ICNlbmRpZgogI2luY2x1ZGUgPGF0ay9hdGsuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9ndGsvQWN0aXZhdGVGb250c0d0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL2d0ay9BY3RpdmF0ZUZvbnRzR3RrLmNwcAppbmRleCA3NGYzYWIwZDcxMmU2
Yjk0N2FjMzgxNWE3YWM1OTM2NTMwMjRjN2I5Li40OTZjMWJjYmY1ODI4MmM2MmI3YjYyYjA5MjNi
NjZmM2ZlYTg0MDMwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL2d0ay9BY3RpdmF0ZUZvbnRzR3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL2d0ay9BY3RpdmF0ZUZvbnRzR3RrLmNwcApAQCAtMzQsOCArMzQs
OCBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8Zm9u
dGNvbmZpZy9mb250Y29uZmlnLmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HbGliVXRpbGl0
aWVzLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0
Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAogbmFtZXNwYWNlIFdUUiB7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL0luamVjdGVkQnVuZGxlVXRp
bGl0aWVzLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL0lu
amVjdGVkQnVuZGxlVXRpbGl0aWVzLmNwcAppbmRleCAwMmRmN2RmMDRiYTYzMzU0MTI2YmVhZTQ2
ZDA4MTNlM2U0MDY0NGFmLi5hZmJkM2Y3NGExZDYwZDczMThkNGI3OThkMDk0MzIwZDljYTY5MmVm
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2d0ay9J
bmplY3RlZEJ1bmRsZVV0aWxpdGllcy5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9ndGsvSW5qZWN0ZWRCdW5kbGVVdGlsaXRpZXMuY3BwCkBAIC0zMCw4ICsz
MCw4IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVdGlsaXRpZXMuaCIKIAogI2luY2x1ZGUg
PGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+Ci0jaW5jbHVk
ZSA8d3RmL2dvYmplY3QvR2xpYlV0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJV
dGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXVFIgewogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL2d0ay9UZXN0UnVubmVyR3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCmluZGV4IGZkMjdhNThkZGU3MDQ0YzJkNGM0
MzRlMmVlNDVkMWE2MmExNGViNTUuLjZhMzZlZTc1ODkwNjgyYWJkMjE4MTkwYmI2NGIyNjRmZjk1
NTgzN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
Z3RrL1Rlc3RSdW5uZXJHdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGUuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVV0aWxpdGllcy5o
IgogI2luY2x1ZGUgPGdsaWIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBuYW1lc3BhY2UgV1RSIHsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUdUSy5jbWFrZSBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYzkzNGE4YjExMzk4
ZjllMWQzODRlNjI4OWMwMDU3Y2VkZGY4NjRkNi4uZjExNzU0NTU4YTMwNjkzNTFlMGY0ZmJhZGU5
ZDAzYzAwZWUyMDk5NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9y
bUdUSy5jbWFrZQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtR1RLLmNtYWtl
CkBAIC0xOSw3ICsxOSw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUwog
CiBsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAk
e0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9Ci0gICAgJHtXVEZfRElSfS93dGYvZ29iamVjdAorICAg
ICR7V1RGX0RJUn0vd3RmL2dsaWIKICAgICAke0FUS19JTkNMVURFX0RJUlN9CiAgICAgJHtDQUlS
T19JTkNMVURFX0RJUlN9CiAgICAgJHtHVEszX0lOQ0xVREVfRElSU30KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5kZXJQcm94eUd0ay5jcHAKaW5kZXggZTBhN2Q4
ZDVmODY1OTc5OTQ5MTdmYTViNDI2MjE5ZDRjMjAxMjJmZS4uYjhmNWNiZWY0YTg4Y2FjNjhmMzJl
NDE0YTJiNjNlNTgyODBlYzhkZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9n
dGsvRXZlbnRTZW5kZXJQcm94eUd0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9n
dGsvRXZlbnRTZW5kZXJQcm94eUd0ay5jcHAKQEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlIDxn
ZGsvZ2Rra2V5c3ltcy5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdUUiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9U
ZXN0Q29udHJvbGxlckd0ay5jcHAKaW5kZXggODBmNmMyMjQ0NGQ4NTdmNDU4NzUxMTAxOWU4MzMy
ZjdmOGMzOGE5ZC4uNTBmYmZhOTBjYmI3YWMwYzU5OTFlN2QwNWQzNjk1Mjk2MWRjNzYzYSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcApA
QCAtMzAsOCArMzAsOCBAQAogI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgogI2luY2x1ZGUg
PGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KLSNpbmNsdWRlIDx3dGYvZ29i
amVjdC9HTWFpbkxvb3BTb3VyY2UuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR01haW5Mb29wU291cmNlLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBu
YW1lc3BhY2UgV1RSIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254645</attachid>
            <date>2015-06-10 04:09:21 -0700</date>
            <delta_ts>2015-06-12 04:18:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145799-20150610040850.patch</filename>
            <type>text/plain</type>
            <size>319466</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIwYzdmOTdjYzdjNDE2ZDNkMDg1ZGFh
M2E4ZGMxYjIwY2M1N2Q5NjAuLmE5ZGM5NGVmNmIwMzdlMjZkZGJmMmRiOGY4ZjQwODMzZjFjY2M5
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAzIEBACisyMDE1LTA2LTEwICBaYW4gRG9iZXJzZWsgIDx6ZG9i
ZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0xpYl0gTW92ZSBmaWxlcyB1bmRlciBTb3Vy
Y2UvV1RGL3d0Zi9nb2JqZWN0IHRvIFNvdXJjZS9XVEYvd3RmL2dsaWIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTc5OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIEdMaWItc3BlY2lmaWMg
ZmlsZXMgdG8gdGhlIFNvdXJjZS9XVEYvd3RmL2dsaWIvIGRpcmVjdG9yeS4KKyAgICAgICAgJ2dv
YmplY3QnIHdhc24ndCB0aGUgbW9zdCBhcHByb3ByaWF0ZSBuYW1lIGZvciB0aGUgZGlyZWN0b3J5
IHNpbmNlCisgICAgICAgIEdPYmplY3QgaXMgYSBzdWJtb2R1bGUgb2YgR0xpYiwgYnV0IGEgbG90
IG9mIHRoZSBjb2RlIHRoZXJlIGRpZG4ndAorICAgICAgICBoYXZlIG11Y2ggdG8gZG8gd2l0aCBH
T2JqZWN0IHNwZWNpZmljYWxseS4KKworICAgICAgICBCdWlsZCBydWxlcyBmb3IgdGhlIG1vdmVk
IGZpbGVzIGFyZSBhbHNvIHVwZGF0ZWQuCisKKyAgICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4
cHJvajoKKyAgICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzOgorICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVmbC5jbWFrZToKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogd3RmL1J1bkxvb3AuaDoK
KyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmg6CisgICAgICAgICogd3RmL2dsaWIvR0xpYlV0aWxp
dGllcy5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dsaWJVdGlsaXRp
ZXMuY3BwLgorICAgICAgICAoZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKToKKyAgICAgICAgKiB3
dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9nb2Jq
ZWN0L0dsaWJVdGlsaXRpZXMuaC4KKyAgICAgICAgKiB3dGYvZ2xpYi9HTWFpbkxvb3BTb3VyY2Uu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2Uu
Y3BwLgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChX
VEY6OkdNYWluTG9vcFNvdXJjZTo6R01haW5Mb29wU291cmNlKToKKyAgICAgICAgKFdURjo6R01h
aW5Mb29wU291cmNlOjp+R01haW5Mb29wU291cmNlKToKKyAgICAgICAgKFdURjo6R01haW5Mb29w
U291cmNlOjppc1NjaGVkdWxlZCk6CisgICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6aXNB
Y3RpdmUpOgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BTb3VyY2U6OmNhbmNlbCk6CisgICAgICAg
IChXVEY6OkdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVJZGxlU291cmNlKToKKyAgICAgICAgKFdU
Rjo6R01haW5Mb29wU291cmNlOjpzY2hlZHVsZSk6CisgICAgICAgIChXVEY6OkdNYWluTG9vcFNv
dXJjZTo6c2NoZWR1bGVUaW1lb3V0U291cmNlKToKKyAgICAgICAgKFdURjo6R01haW5Mb29wU291
cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkpOgorICAgICAgICAoV1RGOjpjcmVhdGVNaWNyb3NlY29u
ZHNUaW1lb3V0U291cmNlKToKKyAgICAgICAgKFdURjo6R01haW5Mb29wU291cmNlOjpzY2hlZHVs
ZUFuZERlbGV0ZU9uRGVzdHJveSk6CisgICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6c2No
ZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KToKKyAgICAgICAgKFdURjo6R01haW5M
b29wU291cmNlOjpwcmVwYXJlVm9pZENhbGxiYWNrKToKKyAgICAgICAgKFdURjo6R01haW5Mb29w
U291cmNlOjpmaW5pc2hWb2lkQ2FsbGJhY2spOgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BTb3Vy
Y2U6OnZvaWRDYWxsYmFjayk6CisgICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6cHJlcGFy
ZUJvb2xDYWxsYmFjayk6CisgICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6ZmluaXNoQm9v
bENhbGxiYWNrKToKKyAgICAgICAgKFdURjo6R01haW5Mb29wU291cmNlOjpib29sQ2FsbGJhY2sp
OgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BTb3VyY2U6OnNvY2tldENhbGxiYWNrKToKKyAgICAg
ICAgKFdURjo6R01haW5Mb29wU291cmNlOjp2b2lkU291cmNlQ2FsbGJhY2spOgorICAgICAgICAo
V1RGOjpHTWFpbkxvb3BTb3VyY2U6OmJvb2xTb3VyY2VDYWxsYmFjayk6CisgICAgICAgIChXVEY6
OkdNYWluTG9vcFNvdXJjZTo6c29ja2V0U291cmNlQ2FsbGJhY2spOgorICAgICAgICAoV1RGOjpH
TWFpbkxvb3BTb3VyY2U6OkNvbnRleHQ6OmRlc3Ryb3lTb3VyY2UpOgorICAgICAgICAqIHd0Zi9n
bGliL0dNYWluTG9vcFNvdXJjZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvZ29iamVj
dC9HTWFpbkxvb3BTb3VyY2UuaC4KKyAgICAgICAgKFdURjo6R01haW5Mb29wU291cmNlOjpDb250
ZXh0OjpvcGVyYXRvcj0pOgorICAgICAgICAqIHd0Zi9nbGliL0dNdXRleExvY2tlci5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dURi93dGYvZ29iamVjdC9HTXV0ZXhMb2NrZXIuaC4KKyAgICAgICAg
KFdURjo6TXV0ZXhXcmFwcGVyPEdNdXRleD46OmxvY2spOgorICAgICAgICAoV1RGOjpNdXRleFdy
YXBwZXI8R011dGV4Pjo6dW5sb2NrKToKKyAgICAgICAgKFdURjo6TXV0ZXhXcmFwcGVyPEdSZWNN
dXRleD46OmxvY2spOgorICAgICAgICAoV1RGOjpNdXRleFdyYXBwZXI8R1JlY011dGV4Pjo6dW5s
b2NrKToKKyAgICAgICAgKFdURjo6R011dGV4TG9ja2VyOjpHTXV0ZXhMb2NrZXIpOgorICAgICAg
ICAoV1RGOjpHTXV0ZXhMb2NrZXI6On5HTXV0ZXhMb2NrZXIpOgorICAgICAgICAoV1RGOjpHTXV0
ZXhMb2NrZXI6OmxvY2spOgorICAgICAgICAoV1RGOjpHTXV0ZXhMb2NrZXI6OnVubG9jayk6Cisg
ICAgICAgICogd3RmL2dsaWIvR1JlZlB0ci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0
Zi9nb2JqZWN0L0dSZWZQdHIuY3BwLgorICAgICAgICAoV1RGOjpyZWZHUHRyKToKKyAgICAgICAg
KFdURjo6ZGVyZWZHUHRyKToKKyAgICAgICAgKiB3dGYvZ2xpYi9HUmVmUHRyLmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dSZWZQdHIuaC4KKyAgICAgICAgKFdURjo6R1Jl
ZlB0cjo6R1JlZlB0cik6CisgICAgICAgIChXVEY6OkdSZWZQdHI6On5HUmVmUHRyKToKKyAgICAg
ICAgKFdURjo6R1JlZlB0cjo6Y2xlYXIpOgorICAgICAgICAoV1RGOjpHUmVmUHRyOjpvdXRQdHIp
OgorICAgICAgICAoV1RGOjpHUmVmUHRyOjppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSk6CisgICAg
ICAgIChXVEY6OkdSZWZQdHI6OmdldCk6CisgICAgICAgIChXVEY6OkdSZWZQdHI6Om9wZXJhdG9y
Kik6CisgICAgICAgIChXVEY6OkdSZWZQdHI6Om9wZXJhdG9yLT4pOgorICAgICAgICAoV1RGOjpH
UmVmUHRyOjpvcGVyYXRvciEpOgorICAgICAgICAoV1RGOjpHUmVmUHRyOjpvcGVyYXRvciBVbnNw
ZWNpZmllZEJvb2xUeXBlKToKKyAgICAgICAgKFdURjo6R1JlZlB0cjo6aGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKToKKyAgICAgICAgKFdURjo6PSk6CisgICAgICAgIChXVEY6OkdSZWZQdHI8VD46OnN3
YXApOgorICAgICAgICAoV1RGOjpzd2FwKToKKyAgICAgICAgKFdURjo6b3BlcmF0b3I9PSk6Cisg
ICAgICAgIChXVEY6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV1RGOjpzdGF0aWNfcG9pbnRlcl9j
YXN0KToKKyAgICAgICAgKFdURjo6Y29uc3RfcG9pbnRlcl9jYXN0KToKKyAgICAgICAgKFdURjo6
YWRvcHRHUmVmKToKKyAgICAgICAgKFdURjo6cmVmR1B0cik6CisgICAgICAgIChXVEY6OmRlcmVm
R1B0cik6CisgICAgICAgICogd3RmL2dsaWIvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5jcHA6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dUaHJlYWRTYWZlTWFpbkxvb3BT
b3VyY2UuY3BwLgorICAgICAgICAoV1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpHVGhy
ZWFkU2FmZU1haW5Mb29wU291cmNlKToKKyAgICAgICAgKFdURjo6R1RocmVhZFNhZmVNYWluTG9v
cFNvdXJjZTo6fkdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UpOgorICAgICAgICAoV1RGOjpHVGhy
ZWFkU2FmZU1haW5Mb29wU291cmNlOjpjYW5jZWwpOgorICAgICAgICAoV1RGOjpHVGhyZWFkU2Fm
ZU1haW5Mb29wU291cmNlOjpzY2hlZHVsZSk6CisgICAgICAgIChXVEY6OkdUaHJlYWRTYWZlTWFp
bkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheSk6CisgICAgICAgIChXVEY6OkdUaHJlYWRT
YWZlTWFpbkxvb3BTb3VyY2U6OnByZXBhcmVWb2lkQ2FsbGJhY2spOgorICAgICAgICAoV1RGOjpH
VGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpmaW5pc2hWb2lkQ2FsbGJhY2spOgorICAgICAgICAo
V1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjp2b2lkQ2FsbGJhY2spOgorICAgICAgICAo
V1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpwcmVwYXJlQm9vbENhbGxiYWNrKToKKyAg
ICAgICAgKFdURjo6R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6ZmluaXNoQm9vbENhbGxiYWNr
KToKKyAgICAgICAgKFdURjo6R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6Ym9vbENhbGxiYWNr
KToKKyAgICAgICAgKiB3dGYvZ2xpYi9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2Uu
aC4KKyAgICAgICAgKiB3dGYvZ2xpYi9HVHlwZWRlZnMuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
VEYvd3RmL2dvYmplY3QvR1R5cGVkZWZzLmguCisgICAgICAgICogd3RmL2dsaWIvR1VuaXF1ZVB0
ci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvZ29iamVjdC9HVW5pcXVlUHRyLmguCisg
ICAgICAgIChXVEY6OkdQdHJEZWxldGVyOjpvcGVyYXRvcigpKToKKyAgICAgICAgKFdURjo6R1Vu
aXF1ZU91dFB0cjo6R1VuaXF1ZU91dFB0cik6CisgICAgICAgIChXVEY6OkdVbmlxdWVPdXRQdHI6
On5HVW5pcXVlT3V0UHRyKToKKyAgICAgICAgKFdURjo6R1VuaXF1ZU91dFB0cjo6b3V0UHRyKToK
KyAgICAgICAgKFdURjo6R1VuaXF1ZU91dFB0cjo6cmVsZWFzZSk6CisgICAgICAgIChXVEY6OkdV
bmlxdWVPdXRQdHI6Om9wZXJhdG9yKik6CisgICAgICAgIChXVEY6OkdVbmlxdWVPdXRQdHI6Om9w
ZXJhdG9yLT4pOgorICAgICAgICAoV1RGOjpHVW5pcXVlT3V0UHRyOjpnZXQpOgorICAgICAgICAo
V1RGOjpHVW5pcXVlT3V0UHRyOjpvcGVyYXRvciEpOgorICAgICAgICAoV1RGOjpHVW5pcXVlT3V0
UHRyOjpvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKToKKyAgICAgICAgKFdURjo6R1VuaXF1
ZU91dFB0cjo6cmVzZXQpOgorICAgICAgICAqIHd0Zi9nbGliL01haW5UaHJlYWRHTGliLmNwcDoK
KyAgICAgICAgKiB3dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3BwOgorICAgICAgICAoV1RG
OjpHTWFpbkxvb3BTb3VyY2U6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdNYWlu
TG9vcFNvdXJjZTo6R01haW5Mb29wU291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R01h
aW5Mb29wU291cmNlOjp+R01haW5Mb29wU291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
R01haW5Mb29wU291cmNlOjppc1NjaGVkdWxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdN
YWluTG9vcFNvdXJjZTo6aXNBY3RpdmUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHTWFpbkxv
b3BTb3VyY2U6OmNhbmNlbCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJj
ZTo6c2NoZWR1bGVJZGxlU291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R01haW5Mb29w
U291cmNlOjpzY2hlZHVsZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJj
ZTo6c2NoZWR1bGVUaW1lb3V0U291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R01haW5M
b29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpj
cmVhdGVNaWNyb3NlY29uZHNUaW1lb3V0U291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
R01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFuZERlbGV0ZU9uRGVzdHJveSk6IERlbGV0ZWQuCisg
ICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRl
T25EZXN0cm95KTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R01haW5Mb29wU291cmNlOjpwcmVw
YXJlVm9pZENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R01haW5Mb29wU291cmNl
OjpmaW5pc2hWb2lkQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BT
b3VyY2U6OnZvaWRDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdNYWluTG9vcFNv
dXJjZTo6cHJlcGFyZUJvb2xDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdNYWlu
TG9vcFNvdXJjZTo6ZmluaXNoQm9vbENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
R01haW5Mb29wU291cmNlOjpib29sQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpH
TWFpbkxvb3BTb3VyY2U6OnNvY2tldENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
R01haW5Mb29wU291cmNlOjp2b2lkU291cmNlQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpHTWFpbkxvb3BTb3VyY2U6OmJvb2xTb3VyY2VDYWxsYmFjayk6IERlbGV0ZWQuCisgICAg
ICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6c29ja2V0U291cmNlQ2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BTb3VyY2U6OkNvbnRleHQ6OmRlc3Ryb3lTb3VyY2Up
OiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oOgorICAg
ICAgICAoV1RGOjpHTWFpbkxvb3BTb3VyY2U6OkNvbnRleHQ6Om9wZXJhdG9yPSk6IERlbGV0ZWQu
CisgICAgICAgICogd3RmL2dvYmplY3QvR011dGV4TG9ja2VyLmg6CisgICAgICAgIChXVEY6Ok11
dGV4V3JhcHBlcjxHTXV0ZXg+Ojpsb2NrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6TXV0ZXhX
cmFwcGVyPEdNdXRleD46OnVubG9jayk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Ok11dGV4V3Jh
cHBlcjxHUmVjTXV0ZXg+Ojpsb2NrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6TXV0ZXhXcmFw
cGVyPEdSZWNNdXRleD46OnVubG9jayk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdNdXRleExv
Y2tlcjo6R011dGV4TG9ja2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R011dGV4TG9ja2Vy
Ojp+R011dGV4TG9ja2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R011dGV4TG9ja2VyOjps
b2NrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R011dGV4TG9ja2VyOjp1bmxvY2spOiBEZWxl
dGVkLgorICAgICAgICAqIHd0Zi9nb2JqZWN0L0dSZWZQdHIuY3BwOgorICAgICAgICAoV1RGOjpy
ZWZHUHRyKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6ZGVyZWZHUHRyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiB3dGYvZ29iamVjdC9HUmVmUHRyLmg6CisgICAgICAgIChXVEY6OkdSZWZQdHI6OkdS
ZWZQdHIpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHUmVmUHRyOjp+R1JlZlB0cik6IERlbGV0
ZWQuCisgICAgICAgIChXVEY6OkdSZWZQdHI6OmNsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKFdU
Rjo6R1JlZlB0cjo6b3V0UHRyKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1JlZlB0cjo6aXNI
YXNoVGFibGVEZWxldGVkVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHUmVmUHRyOjpn
ZXQpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHUmVmUHRyOjpvcGVyYXRvciopOiBEZWxldGVk
LgorICAgICAgICAoV1RGOjpHUmVmUHRyOjpvcGVyYXRvci0+KTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6R1JlZlB0cjo6b3BlcmF0b3IhKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1JlZlB0
cjo6b3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6
OkdSZWZQdHI6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6
Oj0pOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHUmVmUHRyPFQ+Ojpzd2FwKTogRGVsZXRlZC4K
KyAgICAgICAgKFdURjo6c3dhcCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Om9wZXJhdG9yPT0p
OiBEZWxldGVkLgorICAgICAgICAoV1RGOjpvcGVyYXRvciE9KTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6c3RhdGljX3BvaW50ZXJfY2FzdCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OmNvbnN0
X3BvaW50ZXJfY2FzdCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OmFkb3B0R1JlZik6IERlbGV0
ZWQuCisgICAgICAgIChXVEY6OnJlZkdQdHIpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpkZXJl
ZkdQdHIpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9nb2JqZWN0L0dUaHJlYWRTYWZlTWFpbkxv
b3BTb3VyY2UuY3BwOgorICAgICAgICAoV1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpH
VGhyZWFkU2FmZU1haW5Mb29wU291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1RocmVh
ZFNhZmVNYWluTG9vcFNvdXJjZTo6fkdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UpOiBEZWxldGVk
LgorICAgICAgICAoV1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpjYW5jZWwpOiBEZWxl
dGVkLgorICAgICAgICAoV1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpzY2hlZHVsZSk6
IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OnNjaGVk
dWxlQWZ0ZXJEZWxheSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdUaHJlYWRTYWZlTWFpbkxv
b3BTb3VyY2U6OnByZXBhcmVWb2lkQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpH
VGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpmaW5pc2hWb2lkQ2FsbGJhY2spOiBEZWxldGVkLgor
ICAgICAgICAoV1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjp2b2lkQ2FsbGJhY2spOiBE
ZWxldGVkLgorICAgICAgICAoV1RGOjpHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpwcmVwYXJl
Qm9vbENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1RocmVhZFNhZmVNYWluTG9v
cFNvdXJjZTo6ZmluaXNoQm9vbENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1Ro
cmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6Ym9vbENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAg
KiB3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg6CisgICAgICAgIChXVEY6OkdQdHJEZWxldGVyOjpv
cGVyYXRvcigpKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1VuaXF1ZU91dFB0cjo6R1VuaXF1
ZU91dFB0cik6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdVbmlxdWVPdXRQdHI6On5HVW5pcXVl
T3V0UHRyKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1VuaXF1ZU91dFB0cjo6b3V0UHRyKTog
RGVsZXRlZC4KKyAgICAgICAgKFdURjo6R1VuaXF1ZU91dFB0cjo6cmVsZWFzZSk6IERlbGV0ZWQu
CisgICAgICAgIChXVEY6OkdVbmlxdWVPdXRQdHI6Om9wZXJhdG9yKik6IERlbGV0ZWQuCisgICAg
ICAgIChXVEY6OkdVbmlxdWVPdXRQdHI6Om9wZXJhdG9yLT4pOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpHVW5pcXVlT3V0UHRyOjpnZXQpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHVW5pcXVl
T3V0UHRyOjpvcGVyYXRvciEpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpHVW5pcXVlT3V0UHRy
OjpvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
R1VuaXF1ZU91dFB0cjo6cmVzZXQpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9nb2JqZWN0L0ds
aWJVdGlsaXRpZXMuY3BwOgorICAgICAgICAoZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKTogRGVs
ZXRlZC4KKwogMjAxNS0wNi0wOSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFtjbWFrZV0gRml4IHRoZSBzdHlsZSBpc3N1ZXMgaW4gY21ha2UgcHJvamVj
dCBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU0YjZhN2E4MWQwZWQ2NjU3MDY5ZTBlZTg2NGViNzA4Mzg2
ZjE2ZmIuLjJiNWRjZWY5MjBkY2JhNTQ0N2QwMGRkNmVlNzE0ZGRiYTg1MWViNzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw3OSBAQAorMjAxNS0wNi0xMCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dMaWJdIE1vdmUgZmlsZXMgdW5kZXIgU291cmNlL1dU
Ri93dGYvZ29iamVjdCB0byBTb3VyY2UvV1RGL3d0Zi9nbGliCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU3OTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgaGVhZGVyIGluY2x1c2lvbnMgZm9y
IGhlYWRlcnMgdGhhdCBoYXZlIGJlZW4gbW92ZWQKKyAgICAgICAgdG8gU291cmNlL1dURi93dGYv
Z2xpYi8uCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNw
cDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNl
VGV4dC5jcHA6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9ET01PYmplY3RDYWNoZS5jcHA6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0RXZlbnRMaXN0ZW5lci5oOgorICAg
ICAgICAqIGJpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTUV2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVh
bWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VH
U3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2d0ay9BdWRpb0J1c0d0ay5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vZ2VvY2x1ZS9HZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dlb2NsdWUvR2VvbG9jYXRpb25Qcm92aWRlckdlb2Ns
dWUyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0JhdHRlcnlQcm92aWRlclVQb3dlci5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9CYXR0ZXJ5UHJvdmlkZXJVUG93ZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HVW5pcXVlUHRyR1N0
cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRl
eHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5r
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2Vi
S2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2d0ay9JbWFnZUJ1ZmZlckd0ay5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3RrL0ltYWdlR3RrLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvQ29udGV4
dE1lbnVHdGsuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0ZW1HdGsu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9EYXRhT2JqZWN0R3RrLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvRGF0YU9iamVjdEd0ay5oOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9G
aWxlU3lzdGVtR3RrLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9HVW5pcXVlUHRyR3RrLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0dhbWVwYWRzR3RrLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrVXRpbGl0
aWVzLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvTGFuZ3VhZ2VHdGsuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Nj
cm9sbGJhclRoZW1lR3RrLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2hhcmVkQnVmZmVy
R3RrLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2hhcmVkVGltZXJHdGsuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck93ci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUludGVybmFsLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ndGsvQ3JlZGVudGlhbEJh
Y2tpbmdTdG9yZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0NlcnRpZmlj
YXRlSW5mby5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3Vw
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvRE5TU291cC5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0dSZWZQdHJTb3VwLmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9zb3VwL0dVbmlxdWVQdHJTb3VwLmg6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZVJlc3BvbnNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1NvY2tldFN0cmVhbUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9T
b2NrZXRTdHJlYW1IYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvU291cE5ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9ndGsvSHlw
aGVuYXRpb25MaWJIeXBoZW4uY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUd0
ay5jcHA6CisKIDIwMTUtMDYtMTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5j
YW5vbi5mcj4KIAogICAgICAgICBSZWZhY3RvciBBdWRpb0NvbnRleHQgaW1wbGVtZW50YXRpb24g
dG8gZW5hYmxlIGF1dG9tYXRpYyBiaW5kaW5nIGdlbmVyYXRpb24gb2YgcHJvbWlzZS1iYXNlZCBt
ZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzYxZDU3OWRhOGIzZDgyMzBjYjU3ZWZiZGZiMWMzYTA4MDhm
ZjNlYy4uMTc1ZjYxYjhjZWMwNWJkOGZiYWYzOGZiMzUyYWE3NTdhOTU1ZjAzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDg4IEBACiAyMDE1LTA2LTEwICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtA
aWdhbGlhLmNvbT4KIAorICAgICAgICBbR0xpYl0gTW92ZSBmaWxlcyB1bmRlciBTb3VyY2UvV1RG
L3d0Zi9nb2JqZWN0IHRvIFNvdXJjZS9XVEYvd3RmL2dsaWIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTc5OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBoZWFkZXIgaW5jbHVzaW9ucyBmb3Ig
aGVhZGVycyB0aGF0IGhhdmUgYmVlbiBtb3ZlZAorICAgICAgICB0byBTb3VyY2UvV1RGL3d0Zi9n
bGliLy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVT
eXN0ZW1Qb3NpeC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZUlPQ2hhbm5lbC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZUlPQ2hhbm5lbFNvdXAuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a1Byb2Nlc3NTb3VwLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAg
KiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBTaGFyZWQvRG93bmxvYWRzL3NvdXAvRG93
bmxvYWRTb3VwLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMv
c291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJJbXBsLmg6CisgICAgICAgICogU2hhcmVkL1ByaW50
SW5mby5oOgorICAgICAgICAqIFNoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuY3BwOgorICAg
ICAgICAqIFNoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuaDoKKyAgICAgICAgKiBTaGFyZWQv
Z3RrL0tleWVkRGVjb2Rlci5oOgorICAgICAgICAqIFNoYXJlZC9ndGsvS2V5ZWRFbmNvZGVyLmg6
CisgICAgICAgICogU2hhcmVkL2d0ay9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhHdGsuY3BwOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5jcHA6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JDaG9vc2VyLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnUuY3BwOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29va2llTWFuYWdlci5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdERvd25sb2FkQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0RmluZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEZvcm1DbGllbnQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdExvYWRlckNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0TWltZUluZm8uY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5h
dmlnYXRpb25BY3Rpb24uY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5h
dmlnYXRpb25Qb2xpY3lEZWNpc2lvbi5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UG9saWN5Q2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRQcmludE9wZXJhdGlvbi5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UmVzcG9uc2VQb2xpY3lEZWNpc2lvbi5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VUlDbGllbnQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVS
SVNjaGVtZVJlcXVlc3QuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVz
ZXJDb250ZW50TWFuYWdlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViQ29udGV4dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViSW5z
cGVjdG9yLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJSZXNvdXJj
ZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9ndGsvV2ViSW5zcGVjdG9yU2VydmVyR3RrLmNw
cDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3NvdXAvV2ViU29ja2V0U2Vy
dmVyU291cC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1
bmNoZXJHdGsuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL2d0ay9QbHVnaW5JbmZv
Q2FjaGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpblByb2Nlc3NQ
cm94eVVuaXguY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvRHJhZ0FuZERyb3BIYW5kbGVy
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL0dlc3R1cmVDb250cm9sbGVyLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2d0ay9JbnB1dE1ldGhvZEZpbHRlci5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL2d0ay9JbnB1dE1ldGhvZEZpbHRlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsv
V2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUG9w
dXBNZW51UHJveHlHdGsuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51
UHJveHlHdGsuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NQb29sR3RrLmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291
cC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktp
dFdlYkV4dGVuc2lvbi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL1dlYktpdFdlYkhpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Z3RrL0xheWVyVHJlZUhvc3RHdGsuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L1ByaW50ZXJMaXN0R3RrLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQ
YWdlR3RrLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3Bl
cmF0aW9uR3RrLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50
T3BlcmF0aW9uR3RrLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9ndGsvV2ViR3RrRXh0ZW5zaW9u
TWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElu
cHV0U3RyZWFtLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuaDoK
KworMjAxNS0wNi0xMCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKICAg
ICAgICAgW0dUS10gV2ViIEluc3BlY3RvciBpcyBicm9rZW4KICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTgzNgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYu
dmN4cHJvagppbmRleCA0MDdlYjMxNWY5NDRkYTQ0NjI0Y2M1MjM0NjNhNzA2ZTZkZWFiMzEwLi4x
ZjZmOTBlMTlhMWUxMWMxNTBmOGMwNTU3NjgzYjViYTYxZThkZWZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHBy
b2ovV1RGLnZjeHByb2oKQEAgLTczLDcgKzczLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHd0ZlxGYXN0TWFsbG9jLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0
ZlxGaWxlUHJpbnRTdHJlYW0uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3Rm
XEZ1bmN0aW9uRGlzcGF0Y2hlci5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3
dGZcZ29iamVjdFxHbGliVXRpbGl0aWVzLmNwcCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
Llx3dGZcZ2xpYlxHTGliVXRpbGl0aWVzLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtODMsNyArODMsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0Zlxnb2JqZWN0XEdNYWluTG9vcFNvdXJjZS5jcHAi
PgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXGdsaWJcR01haW5Mb29wU291cmNlLmNw
cCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtOTMs
NyArOTMsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0
Zlxnb2JqZWN0XEdSZWZQdHIuY3BwIj4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0Zlxn
bGliXEdSZWZQdHIuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CkBAIC0xMDMsNyArMTAzLDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlx3dGZcZ29iamVjdFxHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmNwcCIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxnbGliXEdUaHJlYWRTYWZlTWFpbkxv
b3BTb3VyY2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXEdyZWdvcmlh
bkRhdGVUaW1lLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxIYXNoVGFi
bGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXE1haW5UaHJlYWQuY3Bw
IiAvPgpAQCAtMjA0LDEzICsyMDQsMTMgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0
ZlxGdW5jdGlvbkRpc3BhdGNoZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0
ZlxGdW5jdGlvbmFsLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcR2V0UHRy
LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcZ29iamVjdFxHbGliVXRpbGl0
aWVzLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcZ29iamVjdFxHTWFpbkxv
b3BTb3VyY2UuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlxnb2JqZWN0XEdN
dXRleExvY2tlci5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXGdvYmplY3Rc
R1JlZlB0ci5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXGdvYmplY3RcR1Ro
cmVhZFNhZmVNYWluTG9vcFNvdXJjZS5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
d3RmXGdvYmplY3RcR1R5cGVkZWZzLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3
dGZcZ29iamVjdFxHVW5pcXVlUHRyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3
dGZcZ2xpYlxHTGliVXRpbGl0aWVzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3
dGZcZ2xpYlxHTWFpbkxvb3BTb3VyY2UuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHd0ZlxnbGliXEdNdXRleExvY2tlci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
d3RmXGdsaWJcR1R5cGVkZWZzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZc
Z2xpYlxHUmVmUHRyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcZ2xpYlxH
VGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llx3dGZcZ2xpYlxHVW5pcXVlUHRyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3
dGZcR3JlZ29yaWFuRGF0ZVRpbWUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0
ZlxIYXNoQ291bnRlZFNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXEhh
c2hGdW5jdGlvbnMuaCIgLz4KQEAgLTc3Myw0ICs3NzMsNCBAQAogICA8SW1wb3J0IFByb2plY3Q9
IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgogICA8SW1wb3J0R3Jv
dXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XVEYvV1RG
LnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycwppbmRleCA2OGEyZGIxOWU2ZmY4NWU0Y2FhZGMx
ZWNiYTFmYTIxMGZiZDhjODdjLi5jMjFiMGNjZmExNTUzN2FlYWQ0ODQzZGE5Y2ZmNjNmNjZhMzQw
NmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRl
cnMKKysrIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCkBAIC0y
Miw3ICsyMiw3IEBACiAgICAgPEZpbHRlciBJbmNsdWRlPSJ3dGZcdW5pY29kZVxpY3UiPgogICAg
ICAgPFVuaXF1ZUlkZW50aWZpZXI+e2RhMjliYWJhLTEwYTItNGE3NC1hYjg3LTJmZWE1ZTEzODJk
YX08L1VuaXF1ZUlkZW50aWZpZXI+CiAgICAgPC9GaWx0ZXI+Ci0gICAgPEZpbHRlciBJbmNsdWRl
PSJ3dGZcZ29iamVjdCI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJ3dGZcZ2xpYiI+CiAgICAgICA8
VW5pcXVlSWRlbnRpZmllcj57ZWRkNmNjYzgtZTZlZS00MWVjLWE1OGQtOTQwNGEzMGMwYzdlfTwv
VW5pcXVlSWRlbnRpZmllcj4KICAgICA8L0ZpbHRlcj4KICAgICA8RmlsdGVyIEluY2x1ZGU9Ind0
Zlx3aW4iPgpAQCAtMjI4LDExICsyMjgsMTEgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHd0ZlxTaXhDaGFyYWN0ZXJIYXNoLmNwcCI+CiAgICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgog
ICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXGdvYmplY3Rc
R2xpYlV0aWxpdGllcy5jcHAiPgotICAgICAgPEZpbHRlcj53dGZcZ29iamVjdDwvRmlsdGVyPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXGdsaWJcR0xpYlV0aWxpdGllcy5jcHAiPgor
ICAgICAgPEZpbHRlcj53dGZcZ2xpYjwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXGdvYmplY3RcR1JlZlB0ci5jcHAiPgotICAgICAgPEZp
bHRlcj53dGZcZ29iamVjdDwvRmlsdGVyPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3Rm
XGdsaWJcR1JlZlB0ci5jcHAiPgorICAgICAgPEZpbHRlcj53dGZcZ2xpYjwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFJ1bkxvb3AuY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CkBAIC0yNDAsMTQgKzI0MCwxNCBAQAogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXHdpblxSdW5Mb29wV2luLmNwcCI+CiAgICAgICA8
RmlsdGVyPnd0Zlx3aW48L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHd0Zlxnb2JqZWN0XEdNYWluTG9vcFNvdXJjZS5jcHAiPgotICAgICAgPEZp
bHRlcj53dGZcZ29iamVjdDwvRmlsdGVyPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3Rm
XGdsaWJcR01haW5Mb29wU291cmNlLmNwcCI+CisgICAgICA8RmlsdGVyPnd0ZlxnbGliPC9GaWx0
ZXI+CiAgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcRmFz
dEJpdFZlY3Rvci5jcHAiPgogICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0Zlxnb2JqZWN0XEdUaHJlYWRTYWZl
TWFpbkxvb3BTb3VyY2UuY3BwIj4KLSAgICAgIDxGaWx0ZXI+d3RmXGdvYmplY3Q8L0ZpbHRlcj4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxnbGliXEdUaHJlYWRTYWZlTWFpbkxvb3BT
b3VyY2UuY3BwIj4KKyAgICAgIDxGaWx0ZXI+d3RmXGdsaWI8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxSZWZDb3VudGVyLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0Zlx3aW5cV1RGRExMLmNwcCI+CkBAIC02NzYs
MTcgKzY3NiwxNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXHdpblxHRElPYmpl
Y3QuaCI+CiAgICAgICA8RmlsdGVyPnd0Zlx3aW48L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
LSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlxnb2JqZWN0XEdsaWJVdGlsaXRpZXMuaCI+
Ci0gICAgICA8RmlsdGVyPnd0Zlxnb2JqZWN0PC9GaWx0ZXI+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlx3dGZcZ2xpYlxHTGliVXRpbGl0aWVzLmgiPgorICAgICAgPEZpbHRlcj53dGZcZ2xp
YjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
d3RmXGdvYmplY3RcR011dGV4TG9ja2VyLmgiPgotICAgICAgPEZpbHRlcj53dGZcZ29iamVjdDwv
RmlsdGVyPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXGdsaWJcR011dGV4TG9ja2Vy
LmgiPgorICAgICAgPEZpbHRlcj53dGZcZ2xpYjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgot
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXGdvYmplY3RcR1JlZlB0ci5oIj4KLSAgICAg
IDxGaWx0ZXI+d3RmXGdvYmplY3Q8L0ZpbHRlcj4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHd0ZlxnbGliXEdSZWZQdHIuaCI+CisgICAgICA8RmlsdGVyPnd0ZlxnbGliPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcZ29iamVjdFxH
VHlwZWRlZnMuaCI+Ci0gICAgICA8RmlsdGVyPnd0Zlxnb2JqZWN0PC9GaWx0ZXI+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcZ2xpYlxHVHlwZWRlZnMuaCI+CisgICAgICA8RmlsdGVy
Pnd0ZlxnbGliPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlx3dGZcQmFnLmgiPgogICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4KQEAgLTY5Nywx
NyArNjk3LDE3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUnVuTG9vcC5oIj4K
ICAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3dGZcZ29iamVjdFxHTWFpbkxvb3BTb3VyY2UuaCI+Ci0gICAgICA8
RmlsdGVyPnd0Zlxnb2JqZWN0PC9GaWx0ZXI+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3
dGZcZ2xpYlxHTWFpbkxvb3BTb3VyY2UuaCI+CisgICAgICA8RmlsdGVyPnd0ZlxnbGliPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcZ29i
amVjdFxHVW5pcXVlUHRyLmgiPgotICAgICAgPEZpbHRlcj53dGZcZ29iamVjdDwvRmlsdGVyPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXGdsaWJcR1VuaXF1ZVB0ci5oIj4KKyAgICAg
IDxGaWx0ZXI+d3RmXGdsaWI8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHd0ZlxIYXNoTWV0aG9kLmgiPgogICAgICAgPEZpbHRlcj53dGY8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlxn
b2JqZWN0XEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuaCI+Ci0gICAgICA8RmlsdGVyPnd0Zlxn
b2JqZWN0PC9GaWx0ZXI+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcZ2xpYlxHVGhy
ZWFkU2FmZU1haW5Mb29wU291cmNlLmgiPgorICAgICAgPEZpbHRlcj53dGZcZ2xpYjwvRmlsdGVy
PgogICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFJlZkNv
dW50ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxXb3JrUXVldWUuaCI+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL2NvcHktZmlsZXMuY21kIGIvU291
cmNlL1dURi9XVEYudmN4cHJvai9jb3B5LWZpbGVzLmNtZAppbmRleCBlN2U2NTllOGZmNjc3YTU2
MGFmN2Q3MDM5OTM0YmQzMTgzMTc4YTRlLi5kZDQwN2YzNzgxYjRkOGQzYjI0ZWE3NmVkYTFkNWYx
NzQ5MjY5NGM4IDEwMDc1NQotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL2NvcHktZmlsZXMu
Y21kCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovY29weS1maWxlcy5jbWQKQEAgLTEzLDcg
KzEzLDcgQEAgZm9yICUlZCBpbiAoCiAgICAgd3RmDQogICAgIHd0ZlxjZg0KICAgICB3dGZcZHRv
YQ0KLSAgICB3dGZcZ29iamVjdA0KKyAgICB3dGZcZ2xpYg0KICAgICB3dGZcdGV4dA0KICAgICB3
dGZcdGhyZWFkcw0KICAgICB3dGZcdW5pY29kZQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDdkZjQ0NWEyMTU3
MmFkNDUxNjU2ZGU4ZGMxNTM2ZDFjMzg3ZmE1ZjQuLmM2MjBmNzg4N2UxOWY4ZTlmN2NjMDliNzVl
YmE4MzM1ZTA3OTU1NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysr
IGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtOTQ5LDcgKzk0OSw3IEBACiAjZW5kaWYK
IAogI2lmIFVTRShHTElCKQotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dUeXBlZGVmcy5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShFRkwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDRjMzEzMWQyMTc1MzJhOGE0ZjEzMjM4MDky
OGViZjI1NTNmNDI5NDEuLmNkMGJjZjA4MWIzMDQxYzkwYmI0ZTVjOTgxZjJkNzJjNzBiNzVmN2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC00LDkgKzQsOSBAQCBsaXN0KEFQUEVORCBX
VEZfU09VUkNFUwogICAgIGVmbC9SdW5Mb29wRWZsLmNwcAogICAgIGVmbC9Xb3JrUXVldWVFZmwu
Y3BwCiAKLSAgICBnb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5jcHAKLSAgICBnb2JqZWN0L0dSZWZQ
dHIuY3BwCi0gICAgZ29iamVjdC9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmNwcAorICAgIGds
aWIvR01haW5Mb29wU291cmNlLmNwcAorICAgIGdsaWIvR1JlZlB0ci5jcHAKKyAgICBnbGliL0dU
aHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuY3BwCiApCiAKIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJ
RVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggNThlM2NkODcxZTIyYjkxZTNkOWZjZTk4
MmUzMjIwMTk3MDZiZWQ4My4uODMyMjBkYzg2ZWZlMjllMzNjZDRiNTA3NzY0ZjU3YmFhMTFlOWE2
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291
cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTIsMTQgKzIsMTMgQEAgc2V0KFdURl9M
SUJSQVJZX1RZUEUgU1RBVElDKQogc2V0KFdURl9PVVRQVVRfTkFNRSBXVEZHVEspCiAKIGxpc3Qo
QVBQRU5EIFdURl9TT1VSQ0VTCisgICAgZ2xpYi9HTGliVXRpbGl0aWVzLmNwcAorICAgIGdsaWIv
R01haW5Mb29wU291cmNlLmNwcAorICAgIGdsaWIvR1JlZlB0ci5jcHAKKyAgICBnbGliL0dUaHJl
YWRTYWZlTWFpbkxvb3BTb3VyY2UuY3BwCiAgICAgZ2xpYi9NYWluVGhyZWFkR0xpYi5jcHAKICAg
ICBnbGliL1J1bkxvb3BHTGliLmNwcAogICAgIGdsaWIvV29ya1F1ZXVlR0xpYi5jcHAKLQotICAg
IGdvYmplY3QvR01haW5Mb29wU291cmNlLmNwcAotICAgIGdvYmplY3QvR1JlZlB0ci5jcHAKLSAg
ICBnb2JqZWN0L0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuY3BwCi0gICAgZ29iamVjdC9HbGli
VXRpbGl0aWVzLmNwcAogKQogCiBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKaW5k
ZXggODUwYmNlOTcwZGU5NGVhNzIzYTFiNDY2NzMzODJmZDRmOGQ2OWFlMC4uNmYzMDIzNmIzNGMy
ODE2YTgxNThkNWVmN2U3ZTVhMDllOGQ1NGEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
UnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApAQCAtMzYsNyArMzYsNyBA
QAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogI2lmIFVTRShHTElCKQotI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dNYWlu
TG9vcFNvdXJjZS5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShFRkwpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCmlu
ZGV4IDE1ZDc1NWYyODU4NTcyOTc0ZTY3NDFmYzcyMGQ2NWE3YTg1MGYyZjEuLjY4NTFjMDkzMTY0
NWM1YTBjMGQ1ODk0ZDc5YTNlMWVhM2YyYzBlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1dvcmtRdWV1ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCkBAIC0zOSw4ICsz
OSw4IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKLSNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HTWFpbkxvb3BTb3VyY2UuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR01haW5Mb29wU291cmNlLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIv
R1JlZlB0ci5oPgogI2VsaWYgUExBVEZPUk0oRUZMKQogI2luY2x1ZGUgPERpc3BhdGNoUXVldWVF
ZmwuaD4KICNlbGlmIE9TKFdJTkRPV1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGli
L0dMaWJVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dURi93dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41NjI5YjU3MTViZTVhYTAwOTdhMTc4ZjFmMTE2ZWIzNzk4YjJkODZlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmNwcApA
QCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSwgUy5MLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR0xpYlV0aWxpdGllcy5o
IgorCisjaWYgT1MoV0lORE9XUykKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisjZWxzZQorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUg
PHVuaXN0ZC5oPgorI2VuZGlmCisKKyNpZiBPUyhMSU5VWCkKK0NTdHJpbmcgZ2V0Q3VycmVudEV4
ZWN1dGFibGVQYXRoKCkKK3sKKyAgICBzdGF0aWMgY2hhciByZWFkTGlua0J1ZmZlcltQQVRIX01B
WF07CisgICAgc3NpemVfdCByZXN1bHQgPSByZWFkbGluaygiL3Byb2Mvc2VsZi9leGUiLCByZWFk
TGlua0J1ZmZlciwgUEFUSF9NQVgpOworICAgIGlmIChyZXN1bHQgPT0gLTEpCisgICAgICAgIHJl
dHVybiBDU3RyaW5nKCk7CisgICAgcmV0dXJuIENTdHJpbmcocmVhZExpbmtCdWZmZXIsIHJlc3Vs
dCk7Cit9CisjZWxpZiBPUyhIVVJEKQorQ1N0cmluZyBnZXRDdXJyZW50RXhlY3V0YWJsZVBhdGgo
KQoreworICAgIHJldHVybiBDU3RyaW5nKCk7Cit9CisjZWxpZiBPUyhVTklYKQorQ1N0cmluZyBn
ZXRDdXJyZW50RXhlY3V0YWJsZVBhdGgoKQoreworICAgIHN0YXRpYyBjaGFyIHJlYWRMaW5rQnVm
ZmVyW1BBVEhfTUFYXTsKKyAgICBzc2l6ZV90IHJlc3VsdCA9IHJlYWRsaW5rKCIvcHJvYy9jdXJw
cm9jL2ZpbGUiLCByZWFkTGlua0J1ZmZlciwgUEFUSF9NQVgpOworICAgIGlmIChyZXN1bHQgPT0g
LTEpCisgICAgICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgcmV0dXJuIENTdHJpbmcocmVhZExp
bmtCdWZmZXIsIHJlc3VsdCk7Cit9CisjZWxpZiBPUyhXSU5ET1dTKQorQ1N0cmluZyBnZXRDdXJy
ZW50RXhlY3V0YWJsZVBhdGgoKQoreworICAgIHN0YXRpYyBXQ0hBUiBidWZmZXJbTUFYX1BBVEhd
OworICAgIERXT1JEIGxlbmd0aCA9IEdldE1vZHVsZUZpbGVOYW1lVygwLCBidWZmZXIsIE1BWF9Q
QVRIKTsKKyAgICBpZiAoIWxlbmd0aCB8fCAobGVuZ3RoID09IE1BWF9QQVRIICYmIEdldExhc3RF
cnJvcigpID09IEVSUk9SX0lOU1VGRklDSUVOVF9CVUZGRVIpKQorICAgICAgICByZXR1cm4gQ1N0
cmluZygpOworCisgICAgU3RyaW5nIHBhdGgoYnVmZmVyLCBsZW5ndGgpOworICAgIHJldHVybiBw
YXRoLnV0ZjgoKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9H
TGliVXRpbGl0aWVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MzU3ODI0NTlkNjc2OTYyNmY5NTZlM2I5ZTU0ZDExNmVlNWY0NTRmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmgKQEAgLTAsMCAr
MSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEsIFMuTC4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2lmbmRlZiBHTGliVXRpbGl0aWVzX2gKKyNkZWZpbmUgR0xpYlV0aWxpdGllc19oCisKKyNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
KworQ1N0cmluZyBnZXRDdXJyZW50RXhlY3V0YWJsZVBhdGgoKTsKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dNYWluTG9vcFNvdXJjZS5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9nbGliL0dNYWluTG9vcFNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM3ODQwOTBiMWJmZjk0
NWQ5NDdjZGI4ZjAyODA2NWNkOTQ0ZTVkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL2dsaWIvR01haW5Mb29wU291cmNlLmNwcApAQCAtMCwwICsxLDQ3OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiR01haW5Mb29wU291cmNlLmgiCisKKyNpZiBVU0UoR0xJQikKKworI2lu
Y2x1ZGUgPGdpby9naW8uaD4KKworbmFtZXNwYWNlIFdURiB7CisKK0dNYWluTG9vcFNvdXJjZSYg
R01haW5Mb29wU291cmNlOjpjcmVhdGUoKQoreworICAgIHJldHVybiAqbmV3IEdNYWluTG9vcFNv
dXJjZShEZWxldGVPbkRlc3Ryb3kpOworfQorCitHTWFpbkxvb3BTb3VyY2U6OkdNYWluTG9vcFNv
dXJjZSgpCisgICAgOiBtX2RlbGV0ZU9uRGVzdHJveShEb05vdERlbGV0ZU9uRGVzdHJveSkKKyAg
ICAsIG1fc3RhdHVzKFJlYWR5KQoreworfQorCitHTWFpbkxvb3BTb3VyY2U6OkdNYWluTG9vcFNv
dXJjZShEZWxldGVPbkRlc3Ryb3lUeXBlIGRlbGV0ZU9uRGVzdHJveSkKKyAgICA6IG1fZGVsZXRl
T25EZXN0cm95KGRlbGV0ZU9uRGVzdHJveSkKKyAgICAsIG1fc3RhdHVzKFJlYWR5KQoreworfQor
CitHTWFpbkxvb3BTb3VyY2U6On5HTWFpbkxvb3BTb3VyY2UoKQoreworICAgIGNhbmNlbCgpOwor
fQorCitib29sIEdNYWluTG9vcFNvdXJjZTo6aXNTY2hlZHVsZWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3N0YXR1cyA9PSBTY2hlZHVsZWQ7Cit9CisKK2Jvb2wgR01haW5Mb29wU291cmNlOjpp
c0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RhdHVzICE9IFJlYWR5OworfQorCit2
b2lkIEdNYWluTG9vcFNvdXJjZTo6Y2FuY2VsKCkKK3sKKyAgICAvLyBEZWxldGUtb24tZGVzdHJv
eSBHTWFpbkxvb3BTb3VyY2Ugb2JqZWN0cyBjYW4ndCBiZSBjYW5jZWxsZWQuCisgICAgaWYgKG1f
ZGVsZXRlT25EZXN0cm95ID09IERlbGV0ZU9uRGVzdHJveSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gQSB2YWxpZCBjb250ZXh0IHNob3VsZCBvbmx5IGJlIHByZXNlbnQgaWYgR01haW5Mb29w
U291cmNlIGlzIGluIHRoZSBTY2hlZHVsZWQgb3IgRGlzcGF0Y2hpbmcgc3RhdGUuCisgICAgQVNT
RVJUKCFtX2NvbnRleHQuc291cmNlIHx8IG1fc3RhdHVzID09IFNjaGVkdWxlZCB8fCBtX3N0YXR1
cyA9PSBEaXNwYXRjaGluZyk7CisKKyAgICBtX3N0YXR1cyA9IFJlYWR5OworCisgICAgZ19jYW5j
ZWxsYWJsZV9jYW5jZWwobV9jb250ZXh0LnNvY2tldENhbmNlbGxhYmxlLmdldCgpKTsKKworICAg
IGlmICghbV9jb250ZXh0LnNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ29udGV4dCBj
b250ZXh0OworICAgIGNvbnRleHQgPSBXVEY6Om1vdmUobV9jb250ZXh0KTsKKyAgICBjb250ZXh0
LmRlc3Ryb3lTb3VyY2UoKTsKK30KKwordm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlSWRs
ZVNvdXJjZShjb25zdCBjaGFyKiBuYW1lLCBHU291cmNlRnVuYyBzb3VyY2VGdW5jdGlvbiwgaW50
IHByaW9yaXR5LCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgQVNTRVJUKG1fc3RhdHVz
ID09IFJlYWR5KTsKKyAgICBtX3N0YXR1cyA9IFNjaGVkdWxlZDsKKworICAgIGdfc291cmNlX3Nl
dF9uYW1lKG1fY29udGV4dC5zb3VyY2UuZ2V0KCksIG5hbWUpOworICAgIGlmIChwcmlvcml0eSAh
PSBHX1BSSU9SSVRZX0RFRkFVTFRfSURMRSkKKyAgICAgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5
KG1fY29udGV4dC5zb3VyY2UuZ2V0KCksIHByaW9yaXR5KTsKKyAgICBnX3NvdXJjZV9zZXRfY2Fs
bGJhY2sobV9jb250ZXh0LnNvdXJjZS5nZXQoKSwgc291cmNlRnVuY3Rpb24sIHRoaXMsIG51bGxw
dHIpOworICAgIGdfc291cmNlX2F0dGFjaChtX2NvbnRleHQuc291cmNlLmdldCgpLCBjb250ZXh0
KTsKK30KKwordm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUs
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb24sIGludCBwcmlvcml0eSwgc3RkOjpmdW5j
dGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKK3sK
KyAgICBjYW5jZWwoKTsKKworICAgIEFTU0VSVCghbV9jb250ZXh0LnNvdXJjZSk7CisgICAgbV9j
b250ZXh0ID0geworICAgICAgICBhZG9wdEdSZWYoZ19pZGxlX3NvdXJjZV9uZXcoKSksCisgICAg
ICAgIG51bGxwdHIsIC8vIGNhbmNlbGxhYmxlCisgICAgICAgIG51bGxwdHIsIC8vIHNvY2tldENh
bmNlbGxhYmxlCisgICAgICAgIFdURjo6bW92ZShmdW5jdGlvbiksCisgICAgICAgIG51bGxwdHIs
IC8vIGJvb2xDYWxsYmFjaworICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYWxsYmFjaworICAg
ICAgICBXVEY6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKQorICAgIH07CisgICAgc2NoZWR1bGVJZGxl
U291cmNlKG5hbWUsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KHZvaWRTb3VyY2VDYWxs
YmFjayksIHByaW9yaXR5LCBjb250ZXh0KTsKK30KKwordm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNj
aGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4gZnVuY3Rpb24s
IGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdN
YWluQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBjYW5jZWwoKTsKKworICAgIEFTU0VSVCghbV9j
b250ZXh0LnNvdXJjZSk7CisgICAgbV9jb250ZXh0ID0geworICAgICAgICBhZG9wdEdSZWYoZ19p
ZGxlX3NvdXJjZV9uZXcoKSksCisgICAgICAgIG51bGxwdHIsIC8vIGNhbmNlbGxhYmxlCisgICAg
ICAgIG51bGxwdHIsIC8vIHNvY2tldENhbmNlbGxhYmxlCisgICAgICAgIG51bGxwdHIsIC8vIHZv
aWRDYWxsYmFjaworICAgICAgICBXVEY6Om1vdmUoZnVuY3Rpb24pLAorICAgICAgICBudWxscHRy
LCAvLyBzb2NrZXRDYWxsYmFjaworICAgICAgICBXVEY6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKQor
ICAgIH07CisgICAgc2NoZWR1bGVJZGxlU291cmNlKG5hbWUsIHJlaW50ZXJwcmV0X2Nhc3Q8R1Nv
dXJjZUZ1bmM+KGJvb2xTb3VyY2VDYWxsYmFjayksIHByaW9yaXR5LCBjb250ZXh0KTsKK30KKwor
dm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVu
Y3Rpb248Ym9vbCAoR0lPQ29uZGl0aW9uKT4gZnVuY3Rpb24sIEdTb2NrZXQqIHNvY2tldCwgR0lP
Q29uZGl0aW9uIGNvbmRpdGlvbiwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rp
b24sIEdNYWluQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBjYW5jZWwoKTsKKworICAgIEFTU0VS
VCghbV9jb250ZXh0LnNvdXJjZSk7CisgICAgR0NhbmNlbGxhYmxlKiBzb2NrZXRDYW5jZWxsYWJs
ZSA9IGdfY2FuY2VsbGFibGVfbmV3KCk7CisgICAgbV9jb250ZXh0ID0geworICAgICAgICBhZG9w
dEdSZWYoZ19zb2NrZXRfY3JlYXRlX3NvdXJjZShzb2NrZXQsIGNvbmRpdGlvbiwgc29ja2V0Q2Fu
Y2VsbGFibGUpKSwKKyAgICAgICAgbnVsbHB0ciwgLy8gY2FuY2VsbGFibGUKKyAgICAgICAgYWRv
cHRHUmVmKHNvY2tldENhbmNlbGxhYmxlKSwKKyAgICAgICAgbnVsbHB0ciwgLy8gdm9pZENhbGxi
YWNrCisgICAgICAgIG51bGxwdHIsIC8vIGJvb2xDYWxsYmFjaworICAgICAgICBXVEY6Om1vdmUo
ZnVuY3Rpb24pLAorICAgICAgICBXVEY6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKQorICAgIH07CisK
KyAgICBBU1NFUlQobV9zdGF0dXMgPT0gUmVhZHkpOworICAgIG1fc3RhdHVzID0gU2NoZWR1bGVk
OworICAgIGdfc291cmNlX3NldF9uYW1lKG1fY29udGV4dC5zb3VyY2UuZ2V0KCksIG5hbWUpOwor
ICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX2NvbnRleHQuc291cmNlLmdldCgpLCByZWludGVy
cHJldF9jYXN0PEdTb3VyY2VGdW5jPihzb2NrZXRTb3VyY2VDYWxsYmFjayksIHRoaXMsIG51bGxw
dHIpOworICAgIGdfc291cmNlX2F0dGFjaChtX2NvbnRleHQuc291cmNlLmdldCgpLCBjb250ZXh0
KTsKK30KKwordm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlVGltZW91dFNvdXJjZShjb25z
dCBjaGFyKiBuYW1lLCBHU291cmNlRnVuYyBzb3VyY2VGdW5jdGlvbiwgaW50IHByaW9yaXR5LCBH
TWFpbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgQVNTRVJUKG1fc3RhdHVzID09IFJlYWR5KTsK
KyAgICBtX3N0YXR1cyA9IFNjaGVkdWxlZDsKKworICAgIGdfc291cmNlX3NldF9uYW1lKG1fY29u
dGV4dC5zb3VyY2UuZ2V0KCksIG5hbWUpOworICAgIGlmIChwcmlvcml0eSAhPSBHX1BSSU9SSVRZ
X0RFRkFVTFQpCisgICAgICAgIGdfc291cmNlX3NldF9wcmlvcml0eShtX2NvbnRleHQuc291cmNl
LmdldCgpLCBwcmlvcml0eSk7CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fY29udGV4dC5z
b3VyY2UuZ2V0KCksIHNvdXJjZUZ1bmN0aW9uLCB0aGlzLCBudWxscHRyKTsKKyAgICBnX3NvdXJj
ZV9hdHRhY2gobV9jb250ZXh0LnNvdXJjZS5nZXQoKSwgY29udGV4dCk7Cit9CisKK3ZvaWQgR01h
aW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpm
dW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBkZWxh
eSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGRlc3Ryb3lGdW5jdGlvbiwg
R01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAgIGNhbmNlbCgpOworCisgICAgQVNTRVJUKCFt
X2NvbnRleHQuc291cmNlKTsKKyAgICBtX2NvbnRleHQgPSB7CisgICAgICAgIGFkb3B0R1JlZihn
X3RpbWVvdXRfc291cmNlX25ldyhkZWxheS5jb3VudCgpKSksCisgICAgICAgIG51bGxwdHIsIC8v
IGNhbmNlbGxhYmxlCisgICAgICAgIG51bGxwdHIsIC8vIHNvY2tldENhbmNlbGxhYmxlCisgICAg
ICAgIFdURjo6bW92ZShmdW5jdGlvbiksCisgICAgICAgIG51bGxwdHIsIC8vIGJvb2xDYWxsYmFj
aworICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYWxsYmFjaworICAgICAgICBXVEY6Om1vdmUo
ZGVzdHJveUZ1bmN0aW9uKQorICAgIH07CisgICAgc2NoZWR1bGVUaW1lb3V0U291cmNlKG5hbWUs
IHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KHZvaWRTb3VyY2VDYWxsYmFjayksIHByaW9y
aXR5LCBjb250ZXh0KTsKK30KKwordm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJE
ZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKCk+IGZ1bmN0aW9uLCBz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rp
b248dm9pZCAoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCit7Cisg
ICAgY2FuY2VsKCk7CisKKyAgICBBU1NFUlQoIW1fY29udGV4dC5zb3VyY2UpOworICAgIG1fY29u
dGV4dCA9IHsKKyAgICAgICAgYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KGRlbGF5LmNv
dW50KCkpKSwKKyAgICAgICAgbnVsbHB0ciwgLy8gY2FuY2VsbGFibGUKKyAgICAgICAgbnVsbHB0
ciwgLy8gc29ja2V0Q2FuY2VsbGFibGUKKyAgICAgICAgbnVsbHB0ciwgLy8gdm9pZENhbGxiYWNr
CisgICAgICAgIFdURjo6bW92ZShmdW5jdGlvbiksCisgICAgICAgIG51bGxwdHIsIC8vIHNvY2tl
dENhbGxiYWNrCisgICAgICAgIFdURjo6bW92ZShkZXN0cm95RnVuY3Rpb24pCisgICAgfTsKKyAg
ICBzY2hlZHVsZVRpbWVvdXRTb3VyY2UobmFtZSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVu
Yz4oYm9vbFNvdXJjZUNhbGxiYWNrKSwgcHJpb3JpdHksIGNvbnRleHQpOworfQorCit2b2lkIEdN
YWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6
ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGRlbGF5LCBp
bnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFp
bkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgY2FuY2VsKCk7CisKKyAgICBBU1NFUlQoIW1fY29u
dGV4dC5zb3VyY2UpOworICAgIG1fY29udGV4dCA9IHsKKyAgICAgICAgYWRvcHRHUmVmKGdfdGlt
ZW91dF9zb3VyY2VfbmV3X3NlY29uZHMoZGVsYXkuY291bnQoKSkpLAorICAgICAgICBudWxscHRy
LCAvLyBjYW5jZWxsYWJsZQorICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYW5jZWxsYWJsZQor
ICAgICAgICBXVEY6Om1vdmUoZnVuY3Rpb24pLAorICAgICAgICBudWxscHRyLCAvLyBib29sQ2Fs
bGJhY2sKKyAgICAgICAgbnVsbHB0ciwgLy8gc29ja2V0Q2FsbGJhY2sKKyAgICAgICAgV1RGOjpt
b3ZlKGRlc3Ryb3lGdW5jdGlvbikKKyAgICB9OworICAgIHNjaGVkdWxlVGltZW91dFNvdXJjZShu
YW1lLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPih2b2lkU291cmNlQ2FsbGJhY2spLCBw
cmlvcml0eSwgY29udGV4dCk7Cit9CisKK3ZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFm
dGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sICgpPiBmdW5jdGlv
biwgc3RkOjpjaHJvbm86OnNlY29uZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlv
bjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKK3sKKyAg
ICBjYW5jZWwoKTsKKworICAgIEFTU0VSVCghbV9jb250ZXh0LnNvdXJjZSk7CisgICAgbV9jb250
ZXh0ID0geworICAgICAgICBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXdfc2Vjb25kcyhk
ZWxheS5jb3VudCgpKSksCisgICAgICAgIG51bGxwdHIsIC8vIGNhbmNlbGxhYmxlCisgICAgICAg
IG51bGxwdHIsIC8vIHNvY2tldENhbmNlbGxhYmxlCisgICAgICAgIG51bGxwdHIsIC8vIHZvaWRD
YWxsYmFjaworICAgICAgICBXVEY6Om1vdmUoZnVuY3Rpb24pLAorICAgICAgICBudWxscHRyLCAv
LyBzb2NrZXRDYWxsYmFjaworICAgICAgICBXVEY6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKQorICAg
IH07CisgICAgc2NoZWR1bGVUaW1lb3V0U291cmNlKG5hbWUsIHJlaW50ZXJwcmV0X2Nhc3Q8R1Nv
dXJjZUZ1bmM+KGJvb2xTb3VyY2VDYWxsYmFjayksIHByaW9yaXR5LCBjb250ZXh0KTsKK30KKwor
c3RydWN0IE1pY3Jvc2Vjb25kc1RpbWVvdXRTb3VyY2UgeworICAgIEdTb3VyY2Ugc291cmNlOwor
ICAgIHVpbnQ2NF90IGRlbGF5OworfTsKKworc3RhdGljIEdTb3VyY2VGdW5jcyBtaWNyb3NlY29u
ZHNUaW1lb3V0U291cmNlRnVuY3Rpb25zID0geworICAgIG51bGxwdHIsIC8vIHByZXBhcmUKKyAg
ICBudWxscHRyLCAvLyBjaGVjaworICAgIC8vIGRpc3BhdGNoCisgICAgW10oR1NvdXJjZSogc291
cmNlLCBHU291cmNlRnVuYyBjYWxsYmFjaywgZ3BvaW50ZXIgdXNlckRhdGEpIC0+IGdib29sZWFu
CisgICAgeworICAgICAgICBib29sIHJlcGVhdCA9IGNhbGxiYWNrKHVzZXJEYXRhKTsKKyAgICAg
ICAgaWYgKHJlcGVhdCkKKyAgICAgICAgICAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lKHNvdXJj
ZSwgZ19zb3VyY2VfZ2V0X3RpbWUoc291cmNlKSArIHJlaW50ZXJwcmV0X2Nhc3Q8TWljcm9zZWNv
bmRzVGltZW91dFNvdXJjZSo+KHNvdXJjZSktPmRlbGF5KTsKKyAgICAgICAgcmV0dXJuIHJlcGVh
dDsKKyAgICB9LAorICAgIG51bGxwdHIsIC8vIGZpbmFsaXplCisgICAgbnVsbHB0ciwgLy8gY2xv
c3VyZV9jYWxsYmFjaworICAgIG51bGxwdHIgLy8gY2xvc3VyZV9tYXJzaGFsbAorfTsKKworc3Rh
dGljIEdTb3VyY2UqIGNyZWF0ZU1pY3Jvc2Vjb25kc1RpbWVvdXRTb3VyY2UodWludDY0X3QgZGVs
YXkpCit7CisgICAgR1NvdXJjZSogc291cmNlID0gZ19zb3VyY2VfbmV3KCZtaWNyb3NlY29uZHNU
aW1lb3V0U291cmNlRnVuY3Rpb25zLCBzaXplb2YoTWljcm9zZWNvbmRzVGltZW91dFNvdXJjZSkp
OworICAgIHJlaW50ZXJwcmV0X2Nhc3Q8TWljcm9zZWNvbmRzVGltZW91dFNvdXJjZSo+KHNvdXJj
ZSktPmRlbGF5ID0gZGVsYXk7CisgICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUoc291cmNlLCBn
X2dldF9tb25vdG9uaWNfdGltZSgpICsgZGVsYXkpOworICAgIHJldHVybiBzb3VyY2U7Cit9CisK
K3ZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFt
ZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vj
b25kcyBkZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGRlc3Ryb3lG
dW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAgIGNhbmNlbCgpOworCisgICAg
QVNTRVJUKCFtX2NvbnRleHQuc291cmNlKTsKKyAgICBtX2NvbnRleHQgPSB7CisgICAgICAgIGFk
b3B0R1JlZihjcmVhdGVNaWNyb3NlY29uZHNUaW1lb3V0U291cmNlKGRlbGF5LmNvdW50KCkpKSwK
KyAgICAgICAgbnVsbHB0ciwgLy8gY2FuY2VsbGFibGUKKyAgICAgICAgbnVsbHB0ciwgLy8gc29j
a2V0Q2FuY2VsbGFibGUKKyAgICAgICAgV1RGOjptb3ZlKGZ1bmN0aW9uKSwKKyAgICAgICAgbnVs
bHB0ciwgLy8gYm9vbENhbGxiYWNrCisgICAgICAgIG51bGxwdHIsIC8vIHNvY2tldENhbGxiYWNr
CisgICAgICAgIFdURjo6bW92ZShkZXN0cm95RnVuY3Rpb24pCisgICAgfTsKKyAgICBzY2hlZHVs
ZVRpbWVvdXRTb3VyY2UobmFtZSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4odm9pZFNv
dXJjZUNhbGxiYWNrKSwgcHJpb3JpdHksIGNvbnRleHQpOworfQorCit2b2lkIEdNYWluTG9vcFNv
dXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248
Ym9vbCAoKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgZGVsYXksIGludCBw
cmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29u
dGV4dCogY29udGV4dCkKK3sKKyAgICBjYW5jZWwoKTsKKworICAgIEFTU0VSVCghbV9jb250ZXh0
LnNvdXJjZSk7CisgICAgbV9jb250ZXh0ID0geworICAgICAgICBhZG9wdEdSZWYoY3JlYXRlTWlj
cm9zZWNvbmRzVGltZW91dFNvdXJjZShkZWxheS5jb3VudCgpKSksCisgICAgICAgIG51bGxwdHIs
IC8vIGNhbmNlbGxhYmxlCisgICAgICAgIG51bGxwdHIsIC8vIHNvY2tldENhbmNlbGxhYmxlCisg
ICAgICAgIG51bGxwdHIsIC8vIHZvaWRDYWxsYmFjaworICAgICAgICBXVEY6Om1vdmUoZnVuY3Rp
b24pLAorICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYWxsYmFjaworICAgICAgICBXVEY6Om1v
dmUoZGVzdHJveUZ1bmN0aW9uKQorICAgIH07CisgICAgc2NoZWR1bGVUaW1lb3V0U291cmNlKG5h
bWUsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KGJvb2xTb3VyY2VDYWxsYmFjayksIHBy
aW9yaXR5LCBjb250ZXh0KTsKK30KKwordm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQW5k
RGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBm
dW5jdGlvbiwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0
aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgY3JlYXRlKCkuc2NoZWR1bGUobmFt
ZSwgZnVuY3Rpb24sIHByaW9yaXR5LCBkZXN0cm95RnVuY3Rpb24sIGNvbnRleHQpOworfQorCit2
b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBbmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hh
ciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+IGZ1bmN0aW9uLCBpbnQgcHJpb3JpdHksIHN0
ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4
dCkKK3sKKyAgICBjcmVhdGUoKS5zY2hlZHVsZShuYW1lLCBmdW5jdGlvbiwgcHJpb3JpdHksIGRl
c3Ryb3lGdW5jdGlvbiwgY29udGV4dCk7Cit9CisKK3ZvaWQgR01haW5Mb29wU291cmNlOjpzY2hl
ZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbGF5
LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24sIEdN
YWluQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBjcmVhdGUoKS5zY2hlZHVsZUFmdGVyRGVsYXko
bmFtZSwgZnVuY3Rpb24sIGRlbGF5LCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0
KTsKK30KKwordm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0
ZU9uRGVzdHJveShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4gZnVuY3Rp
b24sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQor
eworICAgIGNyZWF0ZSgpLnNjaGVkdWxlQWZ0ZXJEZWxheShuYW1lLCBmdW5jdGlvbiwgZGVsYXks
IHByaW9yaXR5LCBkZXN0cm95RnVuY3Rpb24sIGNvbnRleHQpOworfQorCit2b2lkIEdNYWluTG9v
cFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIq
IG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86OnNlY29u
ZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5j
dGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAgIGNyZWF0ZSgpLnNjaGVkdWxlQWZ0
ZXJEZWxheShuYW1lLCBmdW5jdGlvbiwgZGVsYXksIHByaW9yaXR5LCBkZXN0cm95RnVuY3Rpb24s
IGNvbnRleHQpOworfQorCit2b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5
QW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCgp
PiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86OnNlY29uZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3Rk
OjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0
KQoreworICAgIGNyZWF0ZSgpLnNjaGVkdWxlQWZ0ZXJEZWxheShuYW1lLCBmdW5jdGlvbiwgZGVs
YXksIHByaW9yaXR5LCBkZXN0cm95RnVuY3Rpb24sIGNvbnRleHQpOworfQorCit2b2lkIEdNYWlu
TG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNo
YXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86Om1p
Y3Jvc2Vjb25kcyBkZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVz
dHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgY3JlYXRlKCkuc2No
ZWR1bGVBZnRlckRlbGF5KG5hbWUsIGZ1bmN0aW9uLCBkZWxheSwgcHJpb3JpdHksIGRlc3Ryb3lG
dW5jdGlvbiwgY29udGV4dCk7Cit9CisKK3ZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFm
dGVyRGVsYXlBbmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlv
bjxib29sKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGRlbGF5LCBpbnQg
cHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29u
dGV4dCogY29udGV4dCkKK3sKKyAgICBjcmVhdGUoKS5zY2hlZHVsZUFmdGVyRGVsYXkobmFtZSwg
ZnVuY3Rpb24sIGRlbGF5LCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKK30K
KworYm9vbCBHTWFpbkxvb3BTb3VyY2U6OnByZXBhcmVWb2lkQ2FsbGJhY2soQ29udGV4dCYgY29u
dGV4dCkKK3sKKyAgICBpZiAoIW1fY29udGV4dC5zb3VyY2UpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGNvbnRleHQgPSBXVEY6Om1vdmUobV9jb250ZXh0KTsKKworICAgIEFTU0VSVChj
b250ZXh0LnZvaWRDYWxsYmFjayk7CisgICAgQVNTRVJUKG1fc3RhdHVzID09IFNjaGVkdWxlZCk7
CisgICAgbV9zdGF0dXMgPSBEaXNwYXRjaGluZzsKKworICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIEdNYWluTG9vcFNvdXJjZTo6ZmluaXNoVm9pZENhbGxiYWNrKCkKK3sKKyAgICBtX3N0YXR1
cyA9IFJlYWR5OworfQorCit2b2lkIEdNYWluTG9vcFNvdXJjZTo6dm9pZENhbGxiYWNrKCkKK3sK
KyAgICBDb250ZXh0IGNvbnRleHQ7CisgICAgaWYgKCFwcmVwYXJlVm9pZENhbGxiYWNrKGNvbnRl
eHQpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0LnZvaWRDYWxsYmFjaygpOworICAg
IGlmIChtX3N0YXR1cyAhPSBSZWFkeSAmJiAhbV9jb250ZXh0LnNvdXJjZSkgeworICAgICAgICAv
LyBTd2l0Y2ggdG8gUmVhZHkgaWYgaXQgaGFzbid0IGJlZW4gcmUtc2NoZWR1bGVkIG9yIGNhbmNl
bGxlZC4KKyAgICAgICAgZmluaXNoVm9pZENhbGxiYWNrKCk7CisgICAgfQorCisgICAgY29udGV4
dC5kZXN0cm95U291cmNlKCk7CisgICAgaWYgKG1fZGVsZXRlT25EZXN0cm95ID09IERlbGV0ZU9u
RGVzdHJveSkKKyAgICAgICAgZGVsZXRlIHRoaXM7Cit9CisKK2Jvb2wgR01haW5Mb29wU291cmNl
OjpwcmVwYXJlQm9vbENhbGxiYWNrKENvbnRleHQmIGNvbnRleHQpCit7CisgICAgaWYgKCFtX2Nv
bnRleHQuc291cmNlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjb250ZXh0ID0gV1RG
Ojptb3ZlKG1fY29udGV4dCk7CisKKyAgICBBU1NFUlQoY29udGV4dC5ib29sQ2FsbGJhY2spOwor
ICAgIEFTU0VSVChtX3N0YXR1cyA9PSBTY2hlZHVsZWQgfHwgbV9zdGF0dXMgPT0gRGlzcGF0Y2hp
bmcpOworICAgIG1fc3RhdHVzID0gRGlzcGF0Y2hpbmc7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K3ZvaWQgR01haW5Mb29wU291cmNlOjpmaW5pc2hCb29sQ2FsbGJhY2soYm9vbCByZXR2YWwsIENv
bnRleHQmIGNvbnRleHQpCit7CisgICAgLy8gbV9zdGF0dXMgc2hvdWxkIHJlZmxlY3Qgd2hldGhl
ciB0aGUgR01haW5Mb29wU291cmNlIGhhcyBiZWVuIHJlc2NoZWR1bGVkIGR1cmluZyBkaXNwYXRj
aC4KKyAgICBBU1NFUlQoKCFtX2NvbnRleHQuc291cmNlICYmIG1fc3RhdHVzID09IERpc3BhdGNo
aW5nKSB8fCBtX3N0YXR1cyA9PSBTY2hlZHVsZWQpOworICAgIGlmIChyZXR2YWwgJiYgIW1fY29u
dGV4dC5zb3VyY2UpCisgICAgICAgIG1fY29udGV4dCA9IFdURjo6bW92ZShjb250ZXh0KTsKKyAg
ICBlbHNlIGlmICghcmV0dmFsKQorICAgICAgICBtX3N0YXR1cyA9IFJlYWR5OworfQorCitib29s
IEdNYWluTG9vcFNvdXJjZTo6Ym9vbENhbGxiYWNrKCkKK3sKKyAgICBDb250ZXh0IGNvbnRleHQ7
CisgICAgaWYgKCFwcmVwYXJlQm9vbENhbGxiYWNrKGNvbnRleHQpKQorICAgICAgICByZXR1cm4g
U3RvcDsKKworICAgIGJvb2wgcmV0dmFsID0gY29udGV4dC5ib29sQ2FsbGJhY2soKTsKKyAgICBp
ZiAobV9zdGF0dXMgIT0gUmVhZHkgJiYgIW1fY29udGV4dC5zb3VyY2UpIHsKKyAgICAgICAgLy8g
UHJlcGFyZSBmb3IgYSBuZXcgaXRlcmF0aW9uIG9yIHN3aXRjaCB0byBSZWFkeSBpZiBpdCBoYXNu
J3QgYmVlbiByZS1zY2hlZHVsZWQgb3IgY2FuY2VsbGVkLgorICAgICAgICBmaW5pc2hCb29sQ2Fs
bGJhY2socmV0dmFsLCBjb250ZXh0KTsKKyAgICB9CisKKyAgICBpZiAoY29udGV4dC5zb3VyY2Up
IHsKKyAgICAgICAgY29udGV4dC5kZXN0cm95U291cmNlKCk7CisgICAgICAgIGlmIChtX2RlbGV0
ZU9uRGVzdHJveSA9PSBEZWxldGVPbkRlc3Ryb3kpCisgICAgICAgICAgICBkZWxldGUgdGhpczsK
KyAgICB9CisKKyAgICByZXR1cm4gcmV0dmFsOworfQorCitib29sIEdNYWluTG9vcFNvdXJjZTo6
c29ja2V0Q2FsbGJhY2soR0lPQ29uZGl0aW9uIGNvbmRpdGlvbikKK3sKKyAgICBpZiAoIW1fY29u
dGV4dC5zb3VyY2UpCisgICAgICAgIHJldHVybiBTdG9wOworCisgICAgQ29udGV4dCBjb250ZXh0
OworICAgIGNvbnRleHQgPSBXVEY6Om1vdmUobV9jb250ZXh0KTsKKworICAgIEFTU0VSVChjb250
ZXh0LnNvY2tldENhbGxiYWNrKTsKKyAgICBBU1NFUlQobV9zdGF0dXMgPT0gU2NoZWR1bGVkIHx8
IG1fc3RhdHVzID09IERpc3BhdGNoaW5nKTsKKyAgICBtX3N0YXR1cyA9IERpc3BhdGNoaW5nOwor
CisgICAgaWYgKGdfY2FuY2VsbGFibGVfaXNfY2FuY2VsbGVkKGNvbnRleHQuc29ja2V0Q2FuY2Vs
bGFibGUuZ2V0KCkpKSB7CisgICAgICAgIGNvbnRleHQuZGVzdHJveVNvdXJjZSgpOworICAgICAg
ICByZXR1cm4gU3RvcDsKKyAgICB9CisKKyAgICBib29sIHJldHZhbCA9IGNvbnRleHQuc29ja2V0
Q2FsbGJhY2soY29uZGl0aW9uKTsKKworICAgIGlmIChtX3N0YXR1cyAhPSBSZWFkeSAmJiAhbV9j
b250ZXh0LnNvdXJjZSkgeworICAgICAgICAvLyBtX3N0YXR1cyBzaG91bGQgcmVmbGVjdCB3aGV0
aGVyIHRoZSBHTWFpbkxvb3BTb3VyY2UgaGFzIGJlZW4gcmVzY2hlZHVsZWQgZHVyaW5nIGRpc3Bh
dGNoLgorICAgICAgICBBU1NFUlQoKCFtX2NvbnRleHQuc291cmNlICYmIG1fc3RhdHVzID09IERp
c3BhdGNoaW5nKSB8fCBtX3N0YXR1cyA9PSBTY2hlZHVsZWQpOworICAgICAgICBpZiAocmV0dmFs
ICYmICFtX2NvbnRleHQuc291cmNlKQorICAgICAgICAgICAgbV9jb250ZXh0ID0gV1RGOjptb3Zl
KGNvbnRleHQpOworICAgICAgICBlbHNlIGlmICghcmV0dmFsKQorICAgICAgICAgICAgbV9zdGF0
dXMgPSBSZWFkeTsKKyAgICB9CisKKyAgICBpZiAoY29udGV4dC5zb3VyY2UpCisgICAgICAgIGNv
bnRleHQuZGVzdHJveVNvdXJjZSgpOworCisgICAgcmV0dXJuIHJldHZhbDsKK30KKworZ2Jvb2xl
YW4gR01haW5Mb29wU291cmNlOjp2b2lkU291cmNlQ2FsbGJhY2soR01haW5Mb29wU291cmNlKiBz
b3VyY2UpCit7CisgICAgc291cmNlLT52b2lkQ2FsbGJhY2soKTsKKyAgICByZXR1cm4gR19TT1VS
Q0VfUkVNT1ZFOworfQorCitnYm9vbGVhbiBHTWFpbkxvb3BTb3VyY2U6OmJvb2xTb3VyY2VDYWxs
YmFjayhHTWFpbkxvb3BTb3VyY2UqIHNvdXJjZSkKK3sKKyAgICByZXR1cm4gc291cmNlLT5ib29s
Q2FsbGJhY2soKSA9PSBDb250aW51ZTsKK30KKworZ2Jvb2xlYW4gR01haW5Mb29wU291cmNlOjpz
b2NrZXRTb3VyY2VDYWxsYmFjayhHU29ja2V0KiwgR0lPQ29uZGl0aW9uIGNvbmRpdGlvbiwgR01h
aW5Mb29wU291cmNlKiBzb3VyY2UpCit7CisgICAgcmV0dXJuIHNvdXJjZS0+c29ja2V0Q2FsbGJh
Y2soY29uZGl0aW9uKSA9PSBDb250aW51ZTsKK30KKwordm9pZCBHTWFpbkxvb3BTb3VyY2U6OkNv
bnRleHQ6OmRlc3Ryb3lTb3VyY2UoKQoreworICAgIGdfc291cmNlX2Rlc3Ryb3koc291cmNlLmdl
dCgpKTsKKyAgICBpZiAoZGVzdHJveUNhbGxiYWNrKQorICAgICAgICBkZXN0cm95Q2FsbGJhY2so
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBVU0UoR0xJQikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR01haW5Mb29wU291cmNlLmggYi9Tb3VyY2UvV1RG
L3d0Zi9nbGliL0dNYWluTG9vcFNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzYzExMDhiZWU1OTU3YmFj
YzUxNGE1Njc3NzM5MWIwZjRlOWYwMzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9nbGliL0dNYWluTG9vcFNvdXJjZS5oCkBAIC0wLDAgKzEsMTM3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR01haW5Mb29wU291
cmNlX2gKKyNkZWZpbmUgR01haW5Mb29wU291cmNlX2gKKworI2lmIFVTRShHTElCKQorCisjaW5j
bHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorCit0eXBlZGVmIHN0cnVj
dCBfR1NvY2tldCBHU29ja2V0OworCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgR01haW5Mb29w
U291cmNlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTWFpbkxvb3BTb3VyY2UpOworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBHTWFpbkxvb3BTb3VyY2UoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB+R01h
aW5Mb29wU291cmNlKCk7CisKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBTdG9wID0gZmFsc2U7Cisg
ICAgc3RhdGljIGNvbnN0IGJvb2wgQ29udGludWUgPSB0cnVlOworCisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIGJvb2wgaXNTY2hlZHVsZWQoKSBjb25zdDsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
Ym9vbCBpc0FjdGl2ZSgpIGNvbnN0OworCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4sIGlu
dCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRl
c3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKTsKKyAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHNjaGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUs
IHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPiwgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxU
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5D
b250ZXh0KiA9IG51bGxwdHIpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQg
c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgp
Piwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9E
RUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwg
R01haW5Db250ZXh0KiA9IG51bGxwdHIpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248
Ym9vbCgpPiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklP
UklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVs
bHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2
aXJ0dWFsIHZvaWQgc2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVu
Y3Rpb248dm9pZCgpPiwgc3RkOjpjaHJvbm86OnNlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJ
T1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51
bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
dmlydHVhbCB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1
bmN0aW9uPGJvb2woKT4sIHN0ZDo6Y2hyb25vOjpzZWNvbmRzLCBpbnQgcHJpb3JpdHkgPSBHX1BS
SU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBu
dWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+LCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzLCBpbnQgcHJpb3JpdHkg
PSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rp
b24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7CisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwg
c3RkOjpmdW5jdGlvbjxib29sKCk+LCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzLCBpbnQgcHJp
b3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95
RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7CisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBjYW5jZWwoKTsKKworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIHNjaGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbChH
SU9Db25kaXRpb24pPiwgR1NvY2tldCosIEdJT0NvbmRpdGlvbiwgc3RkOjpmdW5jdGlvbjx2b2lk
KCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKTsK
KworICAgIHN0YXRpYyB2b2lkIHNjaGVkdWxlQW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIq
IG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9E
RUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwg
R01haW5Db250ZXh0KiA9IG51bGxwdHIpOworICAgIHN0YXRpYyB2b2lkIHNjaGVkdWxlQW5kRGVs
ZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPiwgaW50
IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVz
dHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIpOworICAgIHN0
YXRpYyB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJveShjb25zdCBjaGFy
KiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMs
IGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+
IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKTsKKyAg
ICBzdGF0aWMgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRlc3Ryb3koY29uc3Qg
Y2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzLCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7
CisgICAgc3RhdGljIHZvaWQgc2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KGNv
bnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgc3RkOjpjaHJvbm86OnNlY29u
ZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lk
KCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKTsK
KyAgICBzdGF0aWMgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRlc3Ryb3koY29u
c3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+LCBzdGQ6OmNocm9ubzo6c2Vjb25k
cywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQo
KT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIpOwor
ICAgIHN0YXRpYyB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJveShjb25z
dCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4sIHN0ZDo6Y2hyb25vOjptaWNyb3Nl
Y29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2
b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRy
KTsKKyAgICBzdGF0aWMgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRlc3Ryb3ko
Y29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+LCBzdGQ6OmNocm9ubzo6bWlj
cm9zZWNvbmRzLCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rp
b248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVs
bHB0cik7CisKK3Byb3RlY3RlZDoKKyAgICBlbnVtIFN0YXR1cyB7IFJlYWR5LCBTY2hlZHVsZWQs
IERpc3BhdGNoaW5nIH07CisKKyAgICBzdHJ1Y3QgQ29udGV4dCB7CisgICAgICAgIENvbnRleHQo
KSA9IGRlZmF1bHQ7CisgICAgICAgIENvbnRleHQmIG9wZXJhdG9yPShDb250ZXh0JiYgYykKKyAg
ICAgICAgeworICAgICAgICAgICAgc291cmNlID0gV1RGOjptb3ZlKGMuc291cmNlKTsKKyAgICAg
ICAgICAgIGNhbmNlbGxhYmxlID0gV1RGOjptb3ZlKGMuY2FuY2VsbGFibGUpOworICAgICAgICAg
ICAgc29ja2V0Q2FuY2VsbGFibGUgPSBXVEY6Om1vdmUoYy5zb2NrZXRDYW5jZWxsYWJsZSk7Cisg
ICAgICAgICAgICB2b2lkQ2FsbGJhY2sgPSBXVEY6Om1vdmUoYy52b2lkQ2FsbGJhY2spOworICAg
ICAgICAgICAgYm9vbENhbGxiYWNrID0gV1RGOjptb3ZlKGMuYm9vbENhbGxiYWNrKTsKKyAgICAg
ICAgICAgIHNvY2tldENhbGxiYWNrID0gV1RGOjptb3ZlKGMuc29ja2V0Q2FsbGJhY2spOworICAg
ICAgICAgICAgZGVzdHJveUNhbGxiYWNrID0gV1RGOjptb3ZlKGMuZGVzdHJveUNhbGxiYWNrKTsK
KyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGVz
dHJveVNvdXJjZSgpOworCisgICAgICAgIEdSZWZQdHI8R1NvdXJjZT4gc291cmNlOworICAgICAg
ICBHUmVmUHRyPEdDYW5jZWxsYWJsZT4gY2FuY2VsbGFibGU7CisgICAgICAgIEdSZWZQdHI8R0Nh
bmNlbGxhYmxlPiBzb2NrZXRDYW5jZWxsYWJsZTsKKyAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lk
ICgpPiB2b2lkQ2FsbGJhY2s7CisgICAgICAgIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4gYm9vbENh
bGxiYWNrOworICAgICAgICBzdGQ6OmZ1bmN0aW9uPGJvb2wgKEdJT0NvbmRpdGlvbik+IHNvY2tl
dENhbGxiYWNrOworICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGRlc3Ryb3lDYWxsYmFj
azsKKyAgICB9OworCisgICAgdmlydHVhbCB2b2lkIHZvaWRDYWxsYmFjaygpOworICAgIHZpcnR1
YWwgYm9vbCBib29sQ2FsbGJhY2soKTsKKworICAgIHZpcnR1YWwgYm9vbCBwcmVwYXJlVm9pZENh
bGxiYWNrKENvbnRleHQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoVm9pZENhbGxiYWNrKCk7
CisgICAgdmlydHVhbCBib29sIHByZXBhcmVCb29sQ2FsbGJhY2soQ29udGV4dCYpOworICAgIHZp
cnR1YWwgdm9pZCBmaW5pc2hCb29sQ2FsbGJhY2soYm9vbCByZXR2YWwsIENvbnRleHQmKTsKKwor
cHJpdmF0ZToKKyAgICBzdGF0aWMgR01haW5Mb29wU291cmNlJiBjcmVhdGUoKTsKKworICAgIGVu
dW0gRGVsZXRlT25EZXN0cm95VHlwZSB7IERlbGV0ZU9uRGVzdHJveSwgRG9Ob3REZWxldGVPbkRl
c3Ryb3kgfTsKKyAgICBHTWFpbkxvb3BTb3VyY2UoRGVsZXRlT25EZXN0cm95VHlwZSk7CisKKyAg
ICB2b2lkIHNjaGVkdWxlSWRsZVNvdXJjZShjb25zdCBjaGFyKiBuYW1lLCBHU291cmNlRnVuYywg
aW50IHByaW9yaXR5LCBHTWFpbkNvbnRleHQqKTsKKyAgICB2b2lkIHNjaGVkdWxlVGltZW91dFNv
dXJjZShjb25zdCBjaGFyKiBuYW1lLCBHU291cmNlRnVuYywgaW50IHByaW9yaXR5LCBHTWFpbkNv
bnRleHQqKTsKKyAgICBib29sIHNvY2tldENhbGxiYWNrKEdJT0NvbmRpdGlvbik7CisKKyAgICBz
dGF0aWMgZ2Jvb2xlYW4gdm9pZFNvdXJjZUNhbGxiYWNrKEdNYWluTG9vcFNvdXJjZSopOworICAg
IHN0YXRpYyBnYm9vbGVhbiBib29sU291cmNlQ2FsbGJhY2soR01haW5Mb29wU291cmNlKik7Cisg
ICAgc3RhdGljIGdib29sZWFuIHNvY2tldFNvdXJjZUNhbGxiYWNrKEdTb2NrZXQqLCBHSU9Db25k
aXRpb24sIEdNYWluTG9vcFNvdXJjZSopOworCisgICAgRGVsZXRlT25EZXN0cm95VHlwZSBtX2Rl
bGV0ZU9uRGVzdHJveTsKKworcHJvdGVjdGVkOgorICAgIENvbnRleHQgbV9jb250ZXh0OworICAg
IFN0YXR1cyBtX3N0YXR1czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6
OkdNYWluTG9vcFNvdXJjZTsKKworI2VuZGlmIC8vIFVTRShHTElCKQorCisjZW5kaWYgLy8gR01h
aW5Mb29wU291cmNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR011dGV4TG9j
a2VyLmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dNdXRleExvY2tlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVl
ZmJmZjAwMDA4OTFiNGJlMjRjNWRiNWZmODIxMTEwNmVjNmNjZjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dNdXRleExvY2tlci5oCkBAIC0wLDAgKzEsMTAyIEBACisv
KgorICogIENvcHlyaWdodCAoQykgMjAxMyBDb2xsYWJvcmEgTHRkLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZu
ZGVmIEdNdXRleExvY2tlcl9oCisjZGVmaW5lIEdNdXRleExvY2tlcl9oCisKKyNpZiBVU0UoR0xJ
QikKKworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgTXV0ZXhXcmFw
cGVyOworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTXV0ZXhXcmFwcGVyPEdNdXRleD4geworICAgIHN0
YXRpYyB2b2lkIGxvY2soR011dGV4KiBtdXRleCkKKyAgICB7CisgICAgICAgIGdfbXV0ZXhfbG9j
ayhtdXRleCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgdW5sb2NrKEdNdXRleCogbXV0ZXgp
CisgICAgeworICAgICAgICBnX211dGV4X3VubG9jayhtdXRleCk7CisgICAgfQorfTsKKwordGVt
cGxhdGU8Pgorc3RydWN0IE11dGV4V3JhcHBlcjxHUmVjTXV0ZXg+IHsKKyAgICBzdGF0aWMgdm9p
ZCBsb2NrKEdSZWNNdXRleCogbXV0ZXgpCisgICAgeworICAgICAgICBnX3JlY19tdXRleF9sb2Nr
KG11dGV4KTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCB1bmxvY2soR1JlY011dGV4KiBtdXRl
eCkKKyAgICB7CisgICAgICAgIGdfcmVjX211dGV4X3VubG9jayhtdXRleCk7CisgICAgfQorfTsK
KwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIEdNdXRleExvY2tlciB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoR011dGV4TG9ja2VyKTsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBHTXV0
ZXhMb2NrZXIoVCYgbXV0ZXgpCisgICAgICAgIDogbV9tdXRleChtdXRleCkKKyAgICAgICAgLCBt
X2xvY2tlZChmYWxzZSkKKyAgICB7CisgICAgICAgIGxvY2soKTsKKyAgICB9CisKKyAgICB+R011
dGV4TG9ja2VyKCkKKyAgICB7CisgICAgICAgIHVubG9jaygpOworICAgIH0KKworICAgIHZvaWQg
bG9jaygpCisgICAgeworICAgICAgICBpZiAobV9sb2NrZWQpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgTXV0ZXhXcmFwcGVyPFQ+Ojpsb2NrKCZtX211dGV4KTsKKyAgICAgICAgbV9s
b2NrZWQgPSB0cnVlOworICAgIH0KKworICAgIHZvaWQgdW5sb2NrKCkKKyAgICB7CisgICAgICAg
IGlmICghbV9sb2NrZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9sb2NrZWQg
PSBmYWxzZTsKKyAgICAgICAgTXV0ZXhXcmFwcGVyPFQ+Ojp1bmxvY2soJm1fbXV0ZXgpOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBUJiBtX211dGV4OworICAgIGJvb2wgbV9sb2NrZWQ7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFVTRShHTElCKQorCisjZW5kaWYgLy8g
R011dGV4TG9ja2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dSZWZQdHIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1MjIwOTVh
ZjM2NThmOTMxZDA0Nzk5YTUxYWM3MDgxMzMxMjFiOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9nbGliL0dSZWZQdHIuY3BwCkBAIC0wLDAgKzEsMTYxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA5IE1hcnRpbiBSb2JpbnNvbgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNB
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdSZWZQdHIuaCIKKworI2lm
IFVTRShHTElCKQorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDxnbGliLmg+
CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZSA8PiBHSGFzaFRhYmxlKiByZWZHUHRyKEdI
YXNoVGFibGUqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX2hhc2hfdGFibGVfcmVm
KHB0cik7CisgICAgcmV0dXJuIHB0cjsKK30KKwordGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIo
R0hhc2hUYWJsZSogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdfaGFzaF90YWJsZV91
bnJlZihwdHIpOworfQorCit0ZW1wbGF0ZSA8PiBHTWFpbkNvbnRleHQqIHJlZkdQdHIoR01haW5D
b250ZXh0KiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgZ19tYWluX2NvbnRleHRfcmVm
KHB0cik7CisgICAgcmV0dXJuIHB0cjsKK30KKwordGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIo
R01haW5Db250ZXh0KiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgZ19tYWluX2NvbnRl
eHRfdW5yZWYocHRyKTsKK30KKwordGVtcGxhdGUgPD4gR01haW5Mb29wKiByZWZHUHRyKEdNYWlu
TG9vcCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdfbWFpbl9sb29wX3JlZihwdHIp
OworICAgIHJldHVybiBwdHI7Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdNYWlu
TG9vcCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdfbWFpbl9sb29wX3VucmVmKHB0
cik7Cit9CisKK3RlbXBsYXRlIDw+IEdCeXRlcyogcmVmR1B0cihHQnl0ZXMqIHB0cikKK3sKKyAg
ICBpZiAocHRyKQorICAgICAgICBnX2J5dGVzX3JlZihwdHIpOworICAgIHJldHVybiBwdHI7Cit9
CisKK3RlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdCeXRlcyogcHRyKQoreworICAgIGlmIChw
dHIpCisgICAgICAgIGdfYnl0ZXNfdW5yZWYocHRyKTsKK30KKwordGVtcGxhdGUgPD4gR1Zhcmlh
bnQqIHJlZkdQdHIoR1ZhcmlhbnQqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX3Zh
cmlhbnRfcmVmX3NpbmsocHRyKTsKKyAgICByZXR1cm4gcHRyOworfQorCit0ZW1wbGF0ZSA8PiB2
b2lkIGRlcmVmR1B0cihHVmFyaWFudCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdf
dmFyaWFudF91bnJlZihwdHIpOworfQorCit0ZW1wbGF0ZSA8PiBHVmFyaWFudEJ1aWxkZXIqIHJl
ZkdQdHIoR1ZhcmlhbnRCdWlsZGVyKiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgZ192
YXJpYW50X2J1aWxkZXJfcmVmKHB0cik7CisgICAgcmV0dXJuIHB0cjsKK30KKwordGVtcGxhdGUg
PD4gdm9pZCBkZXJlZkdQdHIoR1ZhcmlhbnRCdWlsZGVyKiBwdHIpCit7CisgICAgaWYgKHB0cikK
KyAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfdW5yZWYocHRyKTsKK30KKwordGVtcGxhdGUgPD4g
R1NvdXJjZSogcmVmR1B0cihHU291cmNlKiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAg
Z19zb3VyY2VfcmVmKHB0cik7CisgICAgcmV0dXJuIHB0cjsKK30KKwordGVtcGxhdGUgPD4gdm9p
ZCBkZXJlZkdQdHIoR1NvdXJjZSogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdfc291
cmNlX3VucmVmKHB0cik7Cit9CisKK3RlbXBsYXRlIDw+IEdQdHJBcnJheSogcmVmR1B0cihHUHRy
QXJyYXkqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX3B0cl9hcnJheV9yZWYocHRy
KTsKKyAgICByZXR1cm4gcHRyOworfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHUHRy
QXJyYXkqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX3B0cl9hcnJheV91bnJlZihw
dHIpOworfQorCit0ZW1wbGF0ZSA8PiBHQnl0ZUFycmF5KiByZWZHUHRyKEdCeXRlQXJyYXkqIHB0
cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX2J5dGVfYXJyYXlfcmVmKHB0cik7CisgICAg
cmV0dXJuIHB0cjsKK30KKwordGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR0J5dGVBcnJheSog
cHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdfYnl0ZV9hcnJheV91bnJlZihwdHIpOwor
fQorCit0ZW1wbGF0ZSA8PiBHQ2xvc3VyZSogcmVmR1B0cihHQ2xvc3VyZSogcHRyKQoreworICAg
IGlmIChwdHIpCisgICAgICAgIGdfY2xvc3VyZV9yZWYocHRyKTsKKyAgICByZXR1cm4gcHRyOwor
fQorCit0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHQ2xvc3VyZSogcHRyKQoreworICAgIGlm
IChwdHIpCisgICAgICAgIGdfY2xvc3VyZV91bnJlZihwdHIpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXVEYKKworI2VuZGlmIC8vIFVTRShHTElCKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Z2xpYi9HUmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dSZWZQdHIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iZWU2OTc1OWZlNDVmNWYxMDQ5ZTcxNmViNTgwMTRkYWJmNTFjNmI2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9HUmVmUHRyLmgKQEAgLTAsMCArMSwyNjEgQEAKKy8q
CisgKiAgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4K
KyAqICBDb3B5cmlnaHQgKEMpIDIwMDkgTWFydGluIFJvYmluc29uCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisj
aWZuZGVmIFdURl9HUmVmUHRyX2gKKyNkZWZpbmUgV1RGX0dSZWZQdHJfaAorCisjaWYgVVNFKEdM
SUIpCisKKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPGFsZ29yaXRobT4KKworZXh0ZXJuICJDIiB2b2lkIGdfb2JqZWN0X3VucmVmKGdw
b2ludGVyKTsKK2V4dGVybiAiQyIgZ3BvaW50ZXIgZ19vYmplY3RfcmVmX3NpbmsoZ3BvaW50ZXIp
OworCituYW1lc3BhY2UgV1RGIHsKKworZW51bSBHUmVmUHRyQWRvcHRUeXBlIHsgR1JlZlB0ckFk
b3B0IH07Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFQqIHJlZkdQdHIoVCopOwordGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIGRlcmVmR1B0cihUKik7Cit0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gY2xhc3MgR1JlZlB0cjsKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBHUmVmUHRy
PFQ+IGFkb3B0R1JlZihUKik7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBHUmVmUHRy
IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIFQgVmFsdWVUeXBlOworICAgIHR5cGVkZWYgVmFsdWVU
eXBlKiBQdHJUeXBlOworCisgICAgR1JlZlB0cigpIDogbV9wdHIoMCkgeyB9CisKKyAgICBHUmVm
UHRyKFQqIHB0cikKKyAgICAgICAgOiBtX3B0cihwdHIpCisgICAgeworICAgICAgICBpZiAocHRy
KQorICAgICAgICAgICAgcmVmR1B0cihwdHIpOworICAgIH0KKworICAgIEdSZWZQdHIoY29uc3Qg
R1JlZlB0ciYgbykKKyAgICAgICAgOiBtX3B0cihvLm1fcHRyKQorICAgIHsKKyAgICAgICAgaWYg
KFQqIHB0ciA9IG1fcHRyKQorICAgICAgICAgICAgcmVmR1B0cihwdHIpOworICAgIH0KKworICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBHUmVmUHRyKGNvbnN0IEdSZWZQdHI8VT4mIG8pCisgICAg
ICAgIDogbV9wdHIoby5nZXQoKSkKKyAgICB7CisgICAgICAgIGlmIChUKiBwdHIgPSBtX3B0cikK
KyAgICAgICAgICAgIHJlZkdQdHIocHRyKTsKKyAgICB9CisKKyAgICBHUmVmUHRyKEdSZWZQdHIm
JiBvKSA6IG1fcHRyKG8ubGVha1JlZigpKSB7IH0KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4g
R1JlZlB0cihHUmVmUHRyPFU+JiYgbykgOiBtX3B0cihvLmxlYWtSZWYoKSkgeyB9CisKKyAgICB+
R1JlZlB0cigpCisgICAgeworICAgICAgICBpZiAoVCogcHRyID0gbV9wdHIpCisgICAgICAgICAg
ICBkZXJlZkdQdHIocHRyKTsKKyAgICB9CisKKyAgICB2b2lkIGNsZWFyKCkKKyAgICB7CisgICAg
ICAgIFQqIHB0ciA9IG1fcHRyOworICAgICAgICBtX3B0ciA9IDA7CisgICAgICAgIGlmIChwdHIp
CisgICAgICAgICAgICBkZXJlZkdQdHIocHRyKTsKKyAgICB9CisKKyAgICBUKiBsZWFrUmVmKCkg
V0FSTl9VTlVTRURfUkVUVVJOCisgICAgeworICAgICAgICBUKiBwdHIgPSBtX3B0cjsKKyAgICAg
ICAgbV9wdHIgPSAwOworICAgICAgICByZXR1cm4gcHRyOworICAgIH0KKworICAgIFQqJiBvdXRQ
dHIoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFtX3B0cik7CisgICAgICAgIHJldHVybiBtX3B0
cjsKKyAgICB9CisKKyAgICAvLyBIYXNoIHRhYmxlIGRlbGV0ZWQgdmFsdWVzLCB3aGljaCBhcmUg
b25seSBjb25zdHJ1Y3RlZCBhbmQgbmV2ZXIgY29waWVkIG9yIGRlc3Ryb3llZC4KKyAgICBHUmVm
UHRyKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpIDogbV9wdHIoaGFzaFRhYmxlRGVsZXRlZFZh
bHVlKCkpIHsgfQorICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX3B0ciA9PSBoYXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQorCisgICAgVCogZ2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9wdHI7IH0KKyAgICBUJiBvcGVyYXRvciooKSBjb25zdCB7IHJldHVy
biAqbV9wdHI7IH0KKyAgICBBTFdBWVNfSU5MSU5FIFQqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJl
dHVybiBtX3B0cjsgfQorCisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhbV9w
dHI7IH0KKworICAgIC8vIFRoaXMgY29udmVyc2lvbiBvcGVyYXRvciBhbGxvd3MgaW1wbGljaXQg
Y29udmVyc2lvbiB0byBib29sIGJ1dCBub3QgdG8gb3RoZXIgaW50ZWdlciB0eXBlcy4KKyAgICB0
eXBlZGVmIFQqIEdSZWZQdHI6OipVbnNwZWNpZmllZEJvb2xUeXBlOworICAgIG9wZXJhdG9yIFVu
c3BlY2lmaWVkQm9vbFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3B0ciA/ICZHUmVmUHRyOjptX3B0
ciA6IDA7IH0KKworICAgIEdSZWZQdHImIG9wZXJhdG9yPShjb25zdCBHUmVmUHRyJik7CisgICAg
R1JlZlB0ciYgb3BlcmF0b3I9KEdSZWZQdHImJik7CisgICAgR1JlZlB0ciYgb3BlcmF0b3I9KFQq
KTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gR1JlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IEdS
ZWZQdHI8VT4mKTsKKworICAgIHZvaWQgc3dhcChHUmVmUHRyJik7CisgICAgZnJpZW5kIEdSZWZQ
dHIgYWRvcHRHUmVmPFQ+KFQqKTsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgVCogaGFzaFRhYmxl
RGVsZXRlZFZhbHVlKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUKj4oLTEpOyB9CisgICAg
Ly8gQWRvcHRpbmcgY29uc3RydWN0b3IuCisgICAgR1JlZlB0cihUKiBwdHIsIEdSZWZQdHJBZG9w
dFR5cGUpIDogbV9wdHIocHRyKSB7fQorCisgICAgVCogbV9wdHI7Cit9OworCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gaW5saW5lIEdSZWZQdHI8VD4mIEdSZWZQdHI8VD46Om9wZXJhdG9yPShjb25z
dCBHUmVmUHRyPFQ+JiBvKQoreworICAgIFQqIG9wdHIgPSBvLmdldCgpOworICAgIGlmIChvcHRy
KQorICAgICAgICByZWZHUHRyKG9wdHIpOworICAgIFQqIHB0ciA9IG1fcHRyOworICAgIG1fcHRy
ID0gb3B0cjsKKyAgICBpZiAocHRyKQorICAgICAgICBkZXJlZkdQdHIocHRyKTsKKyAgICByZXR1
cm4gKnRoaXM7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgR1JlZlB0cjxUPiYg
R1JlZlB0cjxUPjo6b3BlcmF0b3I9KEdSZWZQdHI8VD4mJiBvKQoreworICAgIEdSZWZQdHIgcHRy
ID0gV1RGOjptb3ZlKG8pOworICAgIHN3YXAocHRyKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisK
K3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgR1JlZlB0cjxUPiYgR1JlZlB0cjxUPjo6b3Bl
cmF0b3I9KFQqIG9wdHIpCit7CisgICAgVCogcHRyID0gbV9wdHI7CisgICAgaWYgKG9wdHIpCisg
ICAgICAgIHJlZkdQdHIob3B0cik7CisgICAgbV9wdHIgPSBvcHRyOworICAgIGlmIChwdHIpCisg
ICAgICAgIGRlcmVmR1B0cihwdHIpOworICAgIHJldHVybiAqdGhpczsKK30KKwordGVtcGxhdGUg
PGNsYXNzIFQ+IGlubGluZSB2b2lkIEdSZWZQdHI8VD46OnN3YXAoR1JlZlB0cjxUPiYgbykKK3sK
KyAgICBzdGQ6OnN3YXAobV9wdHIsIG8ubV9wdHIpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4g
aW5saW5lIHZvaWQgc3dhcChHUmVmUHRyPFQ+JiBhLCBHUmVmUHRyPFQ+JiBiKQoreworICAgIGEu
c3dhcChiKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBi
b29sIG9wZXJhdG9yPT0oY29uc3QgR1JlZlB0cjxUPiYgYSwgY29uc3QgR1JlZlB0cjxVPiYgYikK
K3sKKyAgICByZXR1cm4gYS5nZXQoKSA9PSBiLmdldCgpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHUmVmUHRyPFQ+
JiBhLCBVKiBiKQoreworICAgIHJldHVybiBhLmdldCgpID09IGI7Cit9CisKK3RlbXBsYXRlIDx0
eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KFQqIGEsIGNvbnN0
IEdSZWZQdHI8VT4mIGIpCit7CisgICAgcmV0dXJuIGEgPT0gYi5nZXQoKTsKK30KKwordGVtcGxh
dGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3Qg
R1JlZlB0cjxUPiYgYSwgY29uc3QgR1JlZlB0cjxVPiYgYikKK3sKKyAgICByZXR1cm4gYS5nZXQo
KSAhPSBiLmdldCgpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5s
aW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBHUmVmUHRyPFQ+JiBhLCBVKiBiKQoreworICAgIHJl
dHVybiBhLmdldCgpICE9IGI7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBV
PiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KFQqIGEsIGNvbnN0IEdSZWZQdHI8VT4mIGIpCit7Cisg
ICAgcmV0dXJuIGEgIT0gYi5nZXQoKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFU+IGlubGluZSBHUmVmUHRyPFQ+IHN0YXRpY19wb2ludGVyX2Nhc3QoY29uc3QgR1JlZlB0
cjxVPiYgcCkKK3sKKyAgICByZXR1cm4gR1JlZlB0cjxUPihzdGF0aWNfY2FzdDxUKj4ocC5nZXQo
KSkpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIEdSZWZQ
dHI8VD4gY29uc3RfcG9pbnRlcl9jYXN0KGNvbnN0IEdSZWZQdHI8VT4mIHApCit7CisgICAgcmV0
dXJuIEdSZWZQdHI8VD4oY29uc3RfY2FzdDxUKj4ocC5nZXQoKSkpOworfQorCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gc3RydWN0IElzU21hcnRQdHI8R1JlZlB0cjxUPj4geworICAgIHN0YXRpYyBj
b25zdCBib29sIHZhbHVlID0gdHJ1ZTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBHUmVm
UHRyPFQ+IGFkb3B0R1JlZihUKiBwKQoreworICAgIHJldHVybiBHUmVmUHRyPFQ+KHAsIEdSZWZQ
dHJBZG9wdCk7Cit9CisKK3RlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSBHSGFzaFRhYmxl
KiByZWZHUHRyKEdIYXNoVGFibGUqIHB0cik7Cit0ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBkZXJlZkdQdHIoR0hhc2hUYWJsZSogcHRyKTsKK3RlbXBsYXRlIDw+IFdURl9FWFBP
UlRfUFJJVkFURSBHTWFpbkNvbnRleHQqIHJlZkdQdHIoR01haW5Db250ZXh0KiBwdHIpOwordGVt
cGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVyZWZHUHRyKEdNYWluQ29udGV4dCog
cHRyKTsKK3RlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSBHTWFpbkxvb3AqIHJlZkdQdHIo
R01haW5Mb29wKiBwdHIpOwordGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVy
ZWZHUHRyKEdNYWluTG9vcCogcHRyKTsKK3RlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSBH
VmFyaWFudCogcmVmR1B0cihHVmFyaWFudCogcHRyKTsKK3RlbXBsYXRlIDw+IFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGRlcmVmR1B0cihHVmFyaWFudCogcHRyKTsKK3RlbXBsYXRlIDw+IFdURl9F
WFBPUlRfUFJJVkFURSBHVmFyaWFudEJ1aWxkZXIqIHJlZkdQdHIoR1ZhcmlhbnRCdWlsZGVyKiBw
dHIpOwordGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVyZWZHUHRyKEdWYXJp
YW50QnVpbGRlciogcHRyKTsKK3RlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSBHU291cmNl
KiByZWZHUHRyKEdTb3VyY2UqIHB0cik7Cit0ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBkZXJlZkdQdHIoR1NvdXJjZSogcHRyKTsKK3RlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJ
VkFURSBHUHRyQXJyYXkqIHJlZkdQdHIoR1B0ckFycmF5Kik7Cit0ZW1wbGF0ZSA8PiBXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBkZXJlZkdQdHIoR1B0ckFycmF5Kik7Cit0ZW1wbGF0ZSA8PiBXVEZf
RVhQT1JUX1BSSVZBVEUgR0J5dGVBcnJheSogcmVmR1B0cihHQnl0ZUFycmF5Kik7Cit0ZW1wbGF0
ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXJlZkdQdHIoR0J5dGVBcnJheSopOwordGVt
cGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIEdCeXRlcyogcmVmR1B0cihHQnl0ZXMqKTsKK3Rl
bXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRlcmVmR1B0cihHQnl0ZXMqKTsKK3Rl
bXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSBHQ2xvc3VyZSogcmVmR1B0cihHQ2xvc3VyZSop
OwordGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVyZWZHUHRyKEdDbG9zdXJl
Kik7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgVCogcmVmR1B0cihUKiBwdHIpCit7
CisgICAgaWYgKHB0cikKKyAgICAgICAgZ19vYmplY3RfcmVmX3NpbmsocHRyKTsKKyAgICByZXR1
cm4gcHRyOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgZGVyZWZHUHRy
KFQqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX29iamVjdF91bnJlZihwdHIpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpHUmVmUHRyOwordXNpbmcgV1RG
OjphZG9wdEdSZWY7CisKKyNlbmRpZiAvLyBVU0UoR0xJQikKKworI2VuZGlmIC8vIFdURl9HUmVm
UHRyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1RocmVhZFNhZmVNYWluTG9v
cFNvdXJjZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dUaHJlYWRTYWZlTWFpbkxvb3BTb3Vy
Y2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI2ODMwNTQ5NjcwMDUyNGE4MDM1YTQ0ZjQ5NDI1ODc0ZTA5MWMy
MmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dUaHJlYWRTYWZlTWFp
bkxvb3BTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMTczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmgiCisKKyNpZiBVU0UoR0xJQikKKworI2luY2x1
ZGUgPGdpby9naW8uaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTXV0ZXhMb2NrZXIuaD4KKworbmFt
ZXNwYWNlIFdURiB7CisKK0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OkdUaHJlYWRTYWZlTWFp
bkxvb3BTb3VyY2UoKQoreworICAgIGdfcmVjX211dGV4X2luaXQoJm1fbXV0ZXgpOworfQorCitH
VGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjp+R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSgpCit7
CisgICAgY2FuY2VsKCk7CisgICAgZ19yZWNfbXV0ZXhfY2xlYXIoJm1fbXV0ZXgpOworfQorCit2
b2lkIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OmNhbmNlbCgpCit7CisgICAgR011dGV4TG9j
a2VyPEdSZWNNdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworCisgICAgLy8gVGhlIGdlbmVyYWwgY2Fu
Y2VsbGFibGUgb2JqZWN0IHNob3VsZCBvbmx5IGJlIHByZXNlbnQgaWYgd2UncmUgY3VycmVudGx5
IGRpc3BhdGNoaW5nIHRoaXMgR01haW5Mb29wU291cmNlLgorICAgIEFTU0VSVCghbV9jYW5jZWxs
YWJsZSB8fCBtX3N0YXR1cyA9PSBEaXNwYXRjaGluZyk7CisKKyAgICAvLyBUaGUgc291cmNlIGlz
IHBlcmhhcHMgYmVpbmcgY2FuY2VsbGVkIGluIHRoZSBtaWRkbGUgb2YgYSBjYWxsYmFjayBkaXNw
YXRjaC4KKyAgICAvLyBDYW5jZWxsaW5nIHRoaXMgR0NhbmNlbGxhYmxlIG9iamVjdCB3aWxsIGNv
bnZleSB0aGlzIGluZm9ybWF0aW9uIHRvIHRoZQorICAgIC8vIGN1cnJlbnQgZXhlY3V0aW9uIGNv
bnRleHQgd2hlbiB0aGUgY2FsbGJhY2sgZGlzcGF0Y2ggaXMgZmluaXNoZWQuCisgICAgZ19jYW5j
ZWxsYWJsZV9jYW5jZWwobV9jYW5jZWxsYWJsZS5nZXQoKSk7CisgICAgbV9jYW5jZWxsYWJsZSA9
IG51bGxwdHI7CisKKyAgICBHTWFpbkxvb3BTb3VyY2U6OmNhbmNlbCgpOworfQorCit2b2lkIEdU
aHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6
ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb24sIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2
b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBH
TXV0ZXhMb2NrZXI8R1JlY011dGV4PiBsb2NrZXIobV9tdXRleCk7CisgICAgR01haW5Mb29wU291
cmNlOjpzY2hlZHVsZShuYW1lLCBmdW5jdGlvbiwgcHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwg
Y29udGV4dCk7CisgICAgbV9jb250ZXh0LmNhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdfY2FuY2Vs
bGFibGVfbmV3KCkpOworfQorCit2b2lkIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OnNjaGVk
dWxlKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4gZnVuY3Rpb24sIGlu
dCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWlu
Q29udGV4dCogY29udGV4dCkKK3sKKyAgICBHTXV0ZXhMb2NrZXI8R1JlY011dGV4PiBsb2NrZXIo
bV9tdXRleCk7CisgICAgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZShuYW1lLCBmdW5jdGlvbiwg
cHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwgY29udGV4dCk7CisgICAgbV9jb250ZXh0LmNhbmNl
bGxhYmxlID0gYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOworfQorCit2b2lkIEdUaHJl
YWRTYWZlTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1l
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZGVzdHJveUZ1
bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgR011dGV4TG9ja2VyPEdSZWNN
dXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAgIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRl
ckRlbGF5KG5hbWUsIGZ1bmN0aW9uLCBkZWxheSwgcHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwg
Y29udGV4dCk7CisgICAgbV9jb250ZXh0LmNhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdfY2FuY2Vs
bGFibGVfbmV3KCkpOworfQorCit2b2lkIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OnNjaGVk
dWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKCk+IGZ1
bmN0aW9uLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0
ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRl
eHQpCit7CisgICAgR011dGV4TG9ja2VyPEdSZWNNdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAg
IEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KG5hbWUsIGZ1bmN0aW9uLCBkZWxh
eSwgcHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwgY29udGV4dCk7CisgICAgbV9jb250ZXh0LmNh
bmNlbGxhYmxlID0gYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOworfQorCit2b2lkIEdU
aHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBu
YW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6c2Vjb25k
cyBkZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGRlc3Ryb3lGdW5j
dGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAgIEdNdXRleExvY2tlcjxHUmVjTXV0
ZXg+IGxvY2tlcihtX211dGV4KTsKKyAgICBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJE
ZWxheShuYW1lLCBmdW5jdGlvbiwgZGVsYXksIHByaW9yaXR5LCBkZXN0cm95RnVuY3Rpb24sIGNv
bnRleHQpOworICAgIG1fY29udGV4dC5jYW5jZWxsYWJsZSA9IGFkb3B0R1JlZihnX2NhbmNlbGxh
YmxlX25ldygpKTsKK30KKwordm9pZCBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpzY2hlZHVs
ZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sICgpPiBmdW5j
dGlvbiwgc3RkOjpjaHJvbm86OnNlY29uZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5j
dGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKK3sK
KyAgICBHTXV0ZXhMb2NrZXI8R1JlY011dGV4PiBsb2NrZXIobV9tdXRleCk7CisgICAgR01haW5M
b29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkobmFtZSwgZnVuY3Rpb24sIGRlbGF5LCBwcmlv
cml0eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKKyAgICBtX2NvbnRleHQuY2FuY2VsbGFi
bGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7Cit9CisKK2Jvb2wgR1RocmVhZFNh
ZmVNYWluTG9vcFNvdXJjZTo6cHJlcGFyZVZvaWRDYWxsYmFjayhDb250ZXh0JiBjb250ZXh0KQor
eworICAgIEdNdXRleExvY2tlcjxHUmVjTXV0ZXg+IGxvY2tlcihtX211dGV4KTsKKyAgICBib29s
IHJldHZhbCA9IEdNYWluTG9vcFNvdXJjZTo6cHJlcGFyZVZvaWRDYWxsYmFjayhjb250ZXh0KTsK
KyAgICBtX2NhbmNlbGxhYmxlID0gY29udGV4dC5jYW5jZWxsYWJsZTsKKyAgICByZXR1cm4gcmV0
dmFsOworfQorCit2b2lkIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OmZpbmlzaFZvaWRDYWxs
YmFjaygpCit7CisgICAgR011dGV4TG9ja2VyPEdSZWNNdXRleD4gbG9ja2VyKG1fbXV0ZXgpOwor
ICAgIEdNYWluTG9vcFNvdXJjZTo6ZmluaXNoVm9pZENhbGxiYWNrKCk7CisgICAgbV9jYW5jZWxs
YWJsZSA9IG51bGxwdHI7Cit9CisKK3ZvaWQgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6dm9p
ZENhbGxiYWNrKCkKK3sKKyAgICBDb250ZXh0IGNvbnRleHQ7CisgICAgaWYgKCFwcmVwYXJlVm9p
ZENhbGxiYWNrKGNvbnRleHQpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0LnZvaWRD
YWxsYmFjaygpOworCisgICAgaWYgKGdfY2FuY2VsbGFibGVfaXNfY2FuY2VsbGVkKGNvbnRleHQu
Y2FuY2VsbGFibGUuZ2V0KCkpKSB7CisgICAgICAgIGNvbnRleHQuZGVzdHJveVNvdXJjZSgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZmluaXNoVm9pZENhbGxiYWNrKCk7CisgICAg
Y29udGV4dC5kZXN0cm95U291cmNlKCk7Cit9CisKK2Jvb2wgR1RocmVhZFNhZmVNYWluTG9vcFNv
dXJjZTo6cHJlcGFyZUJvb2xDYWxsYmFjayhDb250ZXh0JiBjb250ZXh0KQoreworICAgIEdNdXRl
eExvY2tlcjxHUmVjTXV0ZXg+IGxvY2tlcihtX211dGV4KTsKKyAgICBib29sIHJldHZhbCA9IEdN
YWluTG9vcFNvdXJjZTo6cHJlcGFyZUJvb2xDYWxsYmFjayhjb250ZXh0KTsKKyAgICBtX2NhbmNl
bGxhYmxlID0gY29udGV4dC5jYW5jZWxsYWJsZTsKKyAgICByZXR1cm4gcmV0dmFsOworfQorCit2
b2lkIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OmZpbmlzaEJvb2xDYWxsYmFjayhib29sIHJl
dHZhbCwgQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBHTXV0ZXhMb2NrZXI8R1JlY011dGV4PiBs
b2NrZXIobV9tdXRleCk7CisgICAgR01haW5Mb29wU291cmNlOjpmaW5pc2hCb29sQ2FsbGJhY2so
cmV0dmFsLCBjb250ZXh0KTsKKyAgICBtX2NhbmNlbGxhYmxlID0gbnVsbHB0cjsKK30KKworYm9v
bCBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpib29sQ2FsbGJhY2soKQoreworICAgIENvbnRl
eHQgY29udGV4dDsKKyAgICBpZiAoIXByZXBhcmVCb29sQ2FsbGJhY2soY29udGV4dCkpCisgICAg
ICAgIHJldHVybiBTdG9wOworCisgICAgYm9vbCByZXR2YWwgPSBjb250ZXh0LmJvb2xDYWxsYmFj
aygpOworCisgICAgaWYgKGdfY2FuY2VsbGFibGVfaXNfY2FuY2VsbGVkKGNvbnRleHQuY2FuY2Vs
bGFibGUuZ2V0KCkpKSB7CisgICAgICAgIGNvbnRleHQuZGVzdHJveVNvdXJjZSgpOworICAgICAg
ICByZXR1cm4gU3RvcDsKKyAgICB9CisKKyAgICBmaW5pc2hCb29sQ2FsbGJhY2socmV0dmFsLCBj
b250ZXh0KTsKKyAgICBpZiAoY29udGV4dC5zb3VyY2UpCisgICAgICAgIGNvbnRleHQuZGVzdHJv
eVNvdXJjZSgpOworICAgIHJldHVybiByZXR2YWw7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgor
CisjZW5kaWYgLy8gVVNFKEdMSUIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dU
aHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuaCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1RocmVhZFNh
ZmVNYWluTG9vcFNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwMDY5MWE4YzQ4N2IyMmIyYjQwMzA3ZmU4
ODNmY2JhYWJhNTA0MTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dU
aHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR1RocmVhZFNhZmVN
YWluTG9vcFNvdXJjZV9oCisjZGVmaW5lIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2VfaAorCisj
aWYgVVNFKEdMSUIpCisKKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTWFpbkxvb3BTb3VyY2UuaD4KKwor
dHlwZWRlZiBzdHJ1Y3QgX0dSZWNNdXRleCBHUmVjTXV0ZXg7CisKK25hbWVzcGFjZSBXVEYgewor
CitjbGFzcyBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlIGZpbmFsIDogcHVibGljIEdNYWluTG9v
cFNvdXJjZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR1RocmVhZFNhZmVNYWluTG9vcFNv
dXJjZSk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UoKTsKKyAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdmlydHVhbCB+R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSgpOworCisgICAgV1RG
X0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBzY2hlZHVsZShjb25zdCBjaGFyKiBuYW1lLCBz
dGQ6OmZ1bmN0aW9uPHZvaWQoKT4sIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29u
dGV4dCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVh
bCB2b2lkIHNjaGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPiwg
aW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4g
ZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIpIG92ZXJy
aWRlOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBZnRlckRl
bGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgc3RkOjpjaHJvbm86
Om1pbGxpc2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9
IG51bGxwdHIpIG92ZXJyaWRlOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQg
c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCgp
Piwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9E
RUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwg
R01haW5Db250ZXh0KiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6
ZnVuY3Rpb248dm9pZCgpPiwgc3RkOjpjaHJvbm86OnNlY29uZHMsIGludCBwcmlvcml0eSA9IEdf
UFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9
IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBu
YW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4sIHN0ZDo6Y2hyb25vOjpzZWNvbmRzLCBpbnQgcHJp
b3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95
RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Cisg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBjYW5jZWwoKSBvdmVycmlkZTsKKwor
cHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgdm9pZENhbGxiYWNrKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIGJvb2xDYWxsYmFjaygpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBib29s
IHByZXBhcmVWb2lkQ2FsbGJhY2soQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBmaW5pc2hWb2lkQ2FsbGJhY2soKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcHJlcGFy
ZUJvb2xDYWxsYmFjayhDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGZpbmlz
aEJvb2xDYWxsYmFjayhib29sIHJldHZhbCwgQ29udGV4dCYpIG92ZXJyaWRlOworCisgICAgR1Jl
Y011dGV4IG1fbXV0ZXg7CisgICAgR1JlZlB0cjxHQ2FuY2VsbGFibGU+IG1fY2FuY2VsbGFibGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpHVGhyZWFkU2FmZU1haW5M
b29wU291cmNlOworCisjZW5kaWYgLy8gVVNFKEdMSUIpCisKKyNlbmRpZiAvLyBHVGhyZWFkU2Fm
ZU1haW5Mb29wU291cmNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1R5cGVk
ZWZzLmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dUeXBlZGVmcy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0NTkz
NzRkODM3ZGZkZTY0NWQ5NTZlNjM1MzEyMzI4MWE2YjhjMDYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9nbGliL0dUeXBlZGVmcy5oCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdURl9H
VHlwZWRlZnNfaAorI2RlZmluZSBXVEZfR1R5cGVkZWZzX2gKKworLyogVmFuaWxsYSBDIGNvZGUg
ZG9lcyBub3Qgc2VlbSB0byBiZSBhYmxlIHRvIGhhbmRsZSBmb3J3YXJkLWRlY2xhcmF0aW9uIHR5
cGVkZWZzLiAqLworI2lmZGVmICBfX2NwbHVzcGx1cworCit0eXBlZGVmIGNoYXIgZ2NoYXI7Cit0
eXBlZGVmIGRvdWJsZSBnZG91YmxlOwordHlwZWRlZiBmbG9hdCBnZmxvYXQ7Cit0eXBlZGVmIGlu
dCBnaW50OwordHlwZWRlZiBnaW50IGdib29sZWFuOwordHlwZWRlZiBsb25nIGdsb25nOwordHlw
ZWRlZiBzaG9ydCBnc2hvcnQ7Cit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgZ3VjaGFyOwordHlwZWRl
ZiB1bnNpZ25lZCBpbnQgZ3VpbnQ7Cit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgZ3Vsb25nOwordHlw
ZWRlZiB1bnNpZ25lZCBzaG9ydCBndXNob3J0OwordHlwZWRlZiB2b2lkKiBncG9pbnRlcjsKKwor
dHlwZWRlZiBzdHJ1Y3QgX0dBc3luY1Jlc3VsdCBHQXN5bmNSZXN1bHQ7Cit0eXBlZGVmIHN0cnVj
dCBfR0NhbmNlbGxhYmxlIEdDYW5jZWxsYWJsZTsKK3R5cGVkZWYgc3RydWN0IF9HQ2hhcnNldENv
bnZlcnRlciBHQ2hhcnNldENvbnZlcnRlcjsKK3R5cGVkZWYgc3RydWN0IF9HRGlyIEdEaXI7Cit0
eXBlZGVmIHN0cnVjdCBfR2RrQXRvbSogR2RrQXRvbTsKK3R5cGVkZWYgc3RydWN0IF9HZGtDdXJz
b3IgR2RrQ3Vyc29yOwordHlwZWRlZiBzdHJ1Y3QgX0dka0RyYWdDb250ZXh0IEdka0RyYWdDb250
ZXh0OwordHlwZWRlZiBzdHJ1Y3QgX0dka0V2ZW50Q29uZmlndXJlIEdka0V2ZW50Q29uZmlndXJl
OwordHlwZWRlZiBzdHJ1Y3QgX0dka0V2ZW50RXhwb3NlIEdka0V2ZW50RXhwb3NlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dka1BpeGJ1ZiBHZGtQaXhidWY7Cit0eXBlZGVmIHN0cnVjdCBfR0Vycm9yIEdF
cnJvcjsKK3R5cGVkZWYgc3RydWN0IF9HRmlsZSBHRmlsZTsKK3R5cGVkZWYgc3RydWN0IF9HSGFz
aFRhYmxlIEdIYXNoVGFibGU7Cit0eXBlZGVmIHN0cnVjdCBfR0lucHV0U3RyZWFtIEdJbnB1dFN0
cmVhbTsKK3R5cGVkZWYgc3RydWN0IF9HTGlzdCBHTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HTWFp
bkNvbnRleHQgR01haW5Db250ZXh0OwordHlwZWRlZiBzdHJ1Y3QgX0dNYWluTG9vcCBHTWFpbkxv
b3A7Cit0eXBlZGVmIHN0cnVjdCBfR1BhdHRlcm5TcGVjIEdQYXR0ZXJuU3BlYzsKK3R5cGVkZWYg
c3RydWN0IF9HUG9sbGFibGVPdXRwdXRTdHJlYW0gR1BvbGxhYmxlT3V0cHV0U3RyZWFtOwordHlw
ZWRlZiBzdHJ1Y3QgX0dTTGlzdCBHU0xpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR1NvY2tldENsaWVu
dCBHU29ja2V0Q2xpZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dTb2NrZXRDb25uZWN0aW9uIEdTb2Nr
ZXRDb25uZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dTb3VyY2UgR1NvdXJjZTsKK3R5cGVkZWYg
c3RydWN0IF9HVmFyaWFudCBHVmFyaWFudDsKK3R5cGVkZWYgc3RydWN0IF9HVmFyaWFudEJ1aWxk
ZXIgR1ZhcmlhbnRCdWlsZGVyOwordHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7Cit0
eXBlZGVmIHN0cnVjdCBfR1RpbWVyIEdUaW1lcjsKK3R5cGVkZWYgc3RydWN0IF9HS2V5RmlsZSBH
S2V5RmlsZTsKK3R5cGVkZWYgc3RydWN0IF9HUHRyQXJyYXkgR1B0ckFycmF5OwordHlwZWRlZiBz
dHJ1Y3QgX0dCeXRlQXJyYXkgR0J5dGVBcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HQnl0ZXMgR0J5
dGVzOwordHlwZWRlZiBzdHJ1Y3QgX0dDbG9zdXJlIEdDbG9zdXJlOworCisjaWYgVVNFKENBSVJP
KQordHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3N1cmZhY2UgY2Fpcm9fc3VyZmFjZV90OwordHlwZWRl
ZiBzdHJ1Y3QgX2NhaXJvX3JlY3RhbmdsZV9pbnQgY2Fpcm9fcmVjdGFuZ2xlX2ludF90OworI2Vu
ZGlmCisKKyNpZiBVU0UoQ0xVVFRFUikKK3R5cGVkZWYgc3RydWN0IF9DbHV0dGVyQWN0b3IgQ2x1
dHRlckFjdG9yOwordHlwZWRlZiBzdHJ1Y3QgX0dyYXBoaWNzTGF5ZXJBY3RvciBHcmFwaGljc0xh
eWVyQWN0b3I7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykKK3R5cGVkZWYgc3RydWN0IF9H
dGtBY3Rpb24gR3RrQWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0d0a0FkanVzdG1lbnQgR3RrQWRq
dXN0bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HdGtCb3JkZXIgR3RrQm9yZGVyOwordHlwZWRlZiBz
dHJ1Y3QgX0d0a0NsaXBib2FyZCBHdGtDbGlwYm9hcmQ7Cit0eXBlZGVmIHN0cnVjdCBfR3RrQ29u
dGFpbmVyIEd0a0NvbnRhaW5lcjsKK3R5cGVkZWYgc3RydWN0IF9HdGtJY29uSW5mbyBHdGtJY29u
SW5mbzsKK3R5cGVkZWYgc3RydWN0IF9HdGtNZW51IEd0a01lbnU7Cit0eXBlZGVmIHN0cnVjdCBf
R3RrTWVudUl0ZW0gR3RrTWVudUl0ZW07Cit0eXBlZGVmIHN0cnVjdCBfR3RrT2JqZWN0IEd0a09i
amVjdDsKK3R5cGVkZWYgc3RydWN0IF9HdGtTZWxlY3Rpb25EYXRhIEd0a1NlbGVjdGlvbkRhdGE7
Cit0eXBlZGVmIHN0cnVjdCBfR3RrU3R5bGUgR3RrU3R5bGU7Cit0eXBlZGVmIHN0cnVjdCBfR3Rr
VGFyZ2V0TGlzdCBHdGtUYXJnZXRMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0d0a1RoZW1lUGFydHMg
R3RrVGhlbWVQYXJ0czsKK3R5cGVkZWYgc3RydWN0IF9HdGtXaWRnZXQgR3RrV2lkZ2V0OwordHlw
ZWRlZiBzdHJ1Y3QgX0d0a1dpbmRvdyBHdGtXaW5kb3c7CisKKyNpZmRlZiBHVEtfQVBJX1ZFUlNJ
T05fMgordHlwZWRlZiBzdHJ1Y3QgX0dka1JlY3RhbmdsZSBHZGtSZWN0YW5nbGU7Cit0eXBlZGVm
IHN0cnVjdCBfR2RrRHJhd2FibGUgR2RrV2luZG93OworI2Vsc2UKK3R5cGVkZWYgc3RydWN0IF9H
ZGtXaW5kb3cgR2RrV2luZG93OwordHlwZWRlZiBzdHJ1Y3QgX0d0a1N0eWxlQ29udGV4dCBHdGtT
dHlsZUNvbnRleHQ7CisjZW5kaWYKKworI2VuZGlmCisKKyNlbmRpZgorI2VuZGlmIC8vIFdURl9H
VHlwZWRlZnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9HVW5pcXVlUHRyLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dVbmlxdWVQdHIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZGE0ODhhODgz
MDdlNGE4MDNiNjBmMWRiNjYxZGE2YTE3M2UxNWUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvZ2xpYi9HVW5pcXVlUHRyLmgKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiAgQ29w
eXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIEdVbmlx
dWVQdHJfaAorI2RlZmluZSBHVW5pcXVlUHRyX2gKKworI2lmIFVTRShHTElCKQorCisjaW5jbHVk
ZSA8Z2lvL2dpby5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0cnVjdCBHUHRyRGVsZXRlciB7CisgICAg
dm9pZCBvcGVyYXRvcigpKFQqIHB0cikgY29uc3QgeyBnX2ZyZWUocHRyKTsgfQorfTsKKwordGVt
cGxhdGU8dHlwZW5hbWUgVD4KK3VzaW5nIEdVbmlxdWVQdHIgPSBzdGQ6OnVuaXF1ZV9wdHI8VCwg
R1B0ckRlbGV0ZXI8VD4+OworCisjZGVmaW5lIEZPUl9FQUNIX0dMSUJfREVMRVRFUihtYWNybykg
XAorICAgIG1hY3JvKEdFcnJvciwgZ19lcnJvcl9mcmVlKSBcCisgICAgbWFjcm8oR0xpc3QsIGdf
bGlzdF9mcmVlKSBcCisgICAgbWFjcm8oR1NMaXN0LCBnX3NsaXN0X2ZyZWUpIFwKKyAgICBtYWNy
byhHUGF0dGVyblNwZWMsIGdfcGF0dGVybl9zcGVjX2ZyZWUpIFwKKyAgICBtYWNybyhHRGlyLCBn
X2Rpcl9jbG9zZSkgXAorICAgIG1hY3JvKEdUaW1lciwgZ190aW1lcl9kZXN0cm95KSBcCisgICAg
bWFjcm8oR0tleUZpbGUsIGdfa2V5X2ZpbGVfZnJlZSkgXAorICAgIG1hY3JvKGNoYXIqLCBnX3N0
cmZyZWV2KQorCisjZGVmaW5lIFdURl9ERUZJTkVfR1BUUl9ERUxFVEVSKHR5cGVOYW1lLCBkZWxl
dGVyRnVuYykgXAorICAgIHRlbXBsYXRlPD4gc3RydWN0IEdQdHJEZWxldGVyPHR5cGVOYW1lPiBc
CisgICAgeyBcCisgICAgICAgIHZvaWQgb3BlcmF0b3IoKSAodHlwZU5hbWUqIHB0cikgY29uc3Qg
XAorICAgICAgICB7IFwKKyAgICAgICAgICAgIGlmIChwdHIpIFwKKyAgICAgICAgICAgICAgICBk
ZWxldGVyRnVuYyhwdHIpOyBcCisgICAgICAgIH0gXAorICAgIH07CisKK0ZPUl9FQUNIX0dMSUJf
REVMRVRFUihXVEZfREVGSU5FX0dQVFJfREVMRVRFUikKKyN1bmRlZiBGT1JfRUFDSF9HTElCX0RF
TEVURVIKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEdVbmlxdWVPdXRQdHIgeworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEdVbmlxdWVPdXRQdHIpOworcHVibGljOgorICAgIEdVbmlx
dWVPdXRQdHIoKQorICAgICAgICA6IG1fcHRyKG51bGxwdHIpCisgICAgeworICAgIH0KKworICAg
IH5HVW5pcXVlT3V0UHRyKCkKKyAgICB7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorCisgICAg
VComIG91dFB0cigpCisgICAgeworICAgICAgICByZXNldCgpOworICAgICAgICByZXR1cm4gbV9w
dHI7CisgICAgfQorCisgICAgR1VuaXF1ZVB0cjxUPiByZWxlYXNlKCkKKyAgICB7CisgICAgICAg
IEdVbmlxdWVQdHI8VD4gcHRyKG1fcHRyKTsKKyAgICAgICAgbV9wdHIgPSBudWxscHRyOworICAg
ICAgICByZXR1cm4gcHRyOworICAgIH0KKworICAgIFQmIG9wZXJhdG9yKigpIGNvbnN0CisgICAg
eworICAgICAgICBBU1NFUlQobV9wdHIpOworICAgICAgICByZXR1cm4gKm1fcHRyOworICAgIH0K
KworICAgIFQqIG9wZXJhdG9yLT4oKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fcHRy
KTsKKyAgICAgICAgcmV0dXJuIG1fcHRyOworICAgIH0KKworICAgIFQqIGdldCgpIGNvbnN0IHsg
cmV0dXJuIG1fcHRyOyB9CisKKyAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFt
X3B0cjsgfQorCisgICAgLy8gVGhpcyBjb252ZXJzaW9uIG9wZXJhdG9yIGFsbG93cyBpbXBsaWNp
dCBjb252ZXJzaW9uIHRvIGJvb2wgYnV0IG5vdCB0byBvdGhlciBpbnRlZ2VyIHR5cGVzLgorICAg
IHR5cGVkZWYgVCogR1VuaXF1ZU91dFB0cjo6KlVuc3BlY2lmaWVkQm9vbFR5cGU7CisgICAgb3Bl
cmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyID8gJkdVbmlx
dWVPdXRQdHI6Om1fcHRyIDogMDsgfQorCitwcml2YXRlOgorICAgIHZvaWQgcmVzZXQoKQorICAg
IHsKKyAgICAgICAgaWYgKG1fcHRyKSB7CisgICAgICAgICAgICBHVW5pcXVlUHRyPFQ+IGRlbGV0
ZVB0cihtX3B0cik7CisgICAgICAgICAgICBtX3B0ciA9IG51bGxwdHI7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBUKiBtX3B0cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBX
VEY6OkdVbmlxdWVQdHI7Cit1c2luZyBXVEY6OkdVbmlxdWVPdXRQdHI7CisKKyNlbmRpZiAvLyBV
U0UoR0xJQikKKworI2VuZGlmIC8vIEdVbmlxdWVQdHJfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL01haW5UaHJlYWRHTGliLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvTWFp
blRocmVhZEdMaWIuY3BwCmluZGV4IDU5ODEyOWFmOGRjMjI0N2RlNjJiMjI0NTYzYTAyZDUyODIz
MzVlNzkuLjY0OWE5YTUwMmJlZDY0NzQ2OTZhNjAwMzFiNmZmNGI2YzliNDNhN2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvTWFpblRocmVhZEdMaWIuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL2dsaWIvTWFpblRocmVhZEdMaWIuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTWFpblRocmVhZC5oIgogCi0jaW5jbHVkZSA8d3RmL2dv
YmplY3QvR01haW5Mb29wU291cmNlLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR01haW5Mb29wU291
cmNlLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9n
b2JqZWN0L0dNYWluTG9vcFNvdXJjZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dNYWlu
TG9vcFNvdXJjZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjNzg0MDkwYjFi
ZmY5NDVkOTQ3Y2RiOGYwMjgwNjVjZDk0NGU1ZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvZ29iamVjdC9HTWFpbkxvb3BTb3Vy
Y2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDc5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTQgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkdNYWluTG9vcFNvdXJjZS5oIgotCi0jaWYgVVNFKEdMSUIpCi0KLSNpbmNsdWRlIDxn
aW8vZ2lvLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1HTWFpbkxvb3BTb3VyY2UmIEdNYWluTG9v
cFNvdXJjZTo6Y3JlYXRlKCkKLXsKLSAgICByZXR1cm4gKm5ldyBHTWFpbkxvb3BTb3VyY2UoRGVs
ZXRlT25EZXN0cm95KTsKLX0KLQotR01haW5Mb29wU291cmNlOjpHTWFpbkxvb3BTb3VyY2UoKQot
ICAgIDogbV9kZWxldGVPbkRlc3Ryb3koRG9Ob3REZWxldGVPbkRlc3Ryb3kpCi0gICAgLCBtX3N0
YXR1cyhSZWFkeSkKLXsKLX0KLQotR01haW5Mb29wU291cmNlOjpHTWFpbkxvb3BTb3VyY2UoRGVs
ZXRlT25EZXN0cm95VHlwZSBkZWxldGVPbkRlc3Ryb3kpCi0gICAgOiBtX2RlbGV0ZU9uRGVzdHJv
eShkZWxldGVPbkRlc3Ryb3kpCi0gICAgLCBtX3N0YXR1cyhSZWFkeSkKLXsKLX0KLQotR01haW5M
b29wU291cmNlOjp+R01haW5Mb29wU291cmNlKCkKLXsKLSAgICBjYW5jZWwoKTsKLX0KLQotYm9v
bCBHTWFpbkxvb3BTb3VyY2U6OmlzU2NoZWR1bGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9z
dGF0dXMgPT0gU2NoZWR1bGVkOwotfQotCi1ib29sIEdNYWluTG9vcFNvdXJjZTo6aXNBY3RpdmUo
KSBjb25zdAotewotICAgIHJldHVybiBtX3N0YXR1cyAhPSBSZWFkeTsKLX0KLQotdm9pZCBHTWFp
bkxvb3BTb3VyY2U6OmNhbmNlbCgpCi17Ci0gICAgLy8gRGVsZXRlLW9uLWRlc3Ryb3kgR01haW5M
b29wU291cmNlIG9iamVjdHMgY2FuJ3QgYmUgY2FuY2VsbGVkLgotICAgIGlmIChtX2RlbGV0ZU9u
RGVzdHJveSA9PSBEZWxldGVPbkRlc3Ryb3kpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEEg
dmFsaWQgY29udGV4dCBzaG91bGQgb25seSBiZSBwcmVzZW50IGlmIEdNYWluTG9vcFNvdXJjZSBp
cyBpbiB0aGUgU2NoZWR1bGVkIG9yIERpc3BhdGNoaW5nIHN0YXRlLgotICAgIEFTU0VSVCghbV9j
b250ZXh0LnNvdXJjZSB8fCBtX3N0YXR1cyA9PSBTY2hlZHVsZWQgfHwgbV9zdGF0dXMgPT0gRGlz
cGF0Y2hpbmcpOwotCi0gICAgbV9zdGF0dXMgPSBSZWFkeTsKLQotICAgIGdfY2FuY2VsbGFibGVf
Y2FuY2VsKG1fY29udGV4dC5zb2NrZXRDYW5jZWxsYWJsZS5nZXQoKSk7Ci0KLSAgICBpZiAoIW1f
Y29udGV4dC5zb3VyY2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIENvbnRleHQgY29udGV4dDsK
LSAgICBjb250ZXh0ID0gV1RGOjptb3ZlKG1fY29udGV4dCk7Ci0gICAgY29udGV4dC5kZXN0cm95
U291cmNlKCk7Ci19Ci0KLXZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUlkbGVTb3VyY2Uo
Y29uc3QgY2hhciogbmFtZSwgR1NvdXJjZUZ1bmMgc291cmNlRnVuY3Rpb24sIGludCBwcmlvcml0
eSwgR01haW5Db250ZXh0KiBjb250ZXh0KQotewotICAgIEFTU0VSVChtX3N0YXR1cyA9PSBSZWFk
eSk7Ci0gICAgbV9zdGF0dXMgPSBTY2hlZHVsZWQ7Ci0KLSAgICBnX3NvdXJjZV9zZXRfbmFtZSht
X2NvbnRleHQuc291cmNlLmdldCgpLCBuYW1lKTsKLSAgICBpZiAocHJpb3JpdHkgIT0gR19QUklP
UklUWV9ERUZBVUxUX0lETEUpCi0gICAgICAgIGdfc291cmNlX3NldF9wcmlvcml0eShtX2NvbnRl
eHQuc291cmNlLmdldCgpLCBwcmlvcml0eSk7Ci0gICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1f
Y29udGV4dC5zb3VyY2UuZ2V0KCksIHNvdXJjZUZ1bmN0aW9uLCB0aGlzLCBudWxscHRyKTsKLSAg
ICBnX3NvdXJjZV9hdHRhY2gobV9jb250ZXh0LnNvdXJjZS5nZXQoKSwgY29udGV4dCk7Ci19Ci0K
LXZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1
bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uLCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgY2Fu
Y2VsKCk7Ci0KLSAgICBBU1NFUlQoIW1fY29udGV4dC5zb3VyY2UpOwotICAgIG1fY29udGV4dCA9
IHsKLSAgICAgICAgYWRvcHRHUmVmKGdfaWRsZV9zb3VyY2VfbmV3KCkpLAotICAgICAgICBudWxs
cHRyLCAvLyBjYW5jZWxsYWJsZQotICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYW5jZWxsYWJs
ZQotICAgICAgICBXVEY6Om1vdmUoZnVuY3Rpb24pLAotICAgICAgICBudWxscHRyLCAvLyBib29s
Q2FsbGJhY2sKLSAgICAgICAgbnVsbHB0ciwgLy8gc29ja2V0Q2FsbGJhY2sKLSAgICAgICAgV1RG
Ojptb3ZlKGRlc3Ryb3lGdW5jdGlvbikKLSAgICB9OwotICAgIHNjaGVkdWxlSWRsZVNvdXJjZShu
YW1lLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPih2b2lkU291cmNlQ2FsbGJhY2spLCBw
cmlvcml0eSwgY29udGV4dCk7Ci19Ci0KLXZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZShj
b25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKCk+IGZ1bmN0aW9uLCBpbnQgcHJp
b3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRl
eHQqIGNvbnRleHQpCi17Ci0gICAgY2FuY2VsKCk7Ci0KLSAgICBBU1NFUlQoIW1fY29udGV4dC5z
b3VyY2UpOwotICAgIG1fY29udGV4dCA9IHsKLSAgICAgICAgYWRvcHRHUmVmKGdfaWRsZV9zb3Vy
Y2VfbmV3KCkpLAotICAgICAgICBudWxscHRyLCAvLyBjYW5jZWxsYWJsZQotICAgICAgICBudWxs
cHRyLCAvLyBzb2NrZXRDYW5jZWxsYWJsZQotICAgICAgICBudWxscHRyLCAvLyB2b2lkQ2FsbGJh
Y2sKLSAgICAgICAgV1RGOjptb3ZlKGZ1bmN0aW9uKSwKLSAgICAgICAgbnVsbHB0ciwgLy8gc29j
a2V0Q2FsbGJhY2sKLSAgICAgICAgV1RGOjptb3ZlKGRlc3Ryb3lGdW5jdGlvbikKLSAgICB9Owot
ICAgIHNjaGVkdWxlSWRsZVNvdXJjZShuYW1lLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5j
Pihib29sU291cmNlQ2FsbGJhY2spLCBwcmlvcml0eSwgY29udGV4dCk7Ci19Ci0KLXZvaWQgR01h
aW5Mb29wU291cmNlOjpzY2hlZHVsZShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJv
b2wgKEdJT0NvbmRpdGlvbik+IGZ1bmN0aW9uLCBHU29ja2V0KiBzb2NrZXQsIEdJT0NvbmRpdGlv
biBjb25kaXRpb24sIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFp
bkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgY2FuY2VsKCk7Ci0KLSAgICBBU1NFUlQoIW1fY29u
dGV4dC5zb3VyY2UpOwotICAgIEdDYW5jZWxsYWJsZSogc29ja2V0Q2FuY2VsbGFibGUgPSBnX2Nh
bmNlbGxhYmxlX25ldygpOwotICAgIG1fY29udGV4dCA9IHsKLSAgICAgICAgYWRvcHRHUmVmKGdf
c29ja2V0X2NyZWF0ZV9zb3VyY2Uoc29ja2V0LCBjb25kaXRpb24sIHNvY2tldENhbmNlbGxhYmxl
KSksCi0gICAgICAgIG51bGxwdHIsIC8vIGNhbmNlbGxhYmxlCi0gICAgICAgIGFkb3B0R1JlZihz
b2NrZXRDYW5jZWxsYWJsZSksCi0gICAgICAgIG51bGxwdHIsIC8vIHZvaWRDYWxsYmFjawotICAg
ICAgICBudWxscHRyLCAvLyBib29sQ2FsbGJhY2sKLSAgICAgICAgV1RGOjptb3ZlKGZ1bmN0aW9u
KSwKLSAgICAgICAgV1RGOjptb3ZlKGRlc3Ryb3lGdW5jdGlvbikKLSAgICB9OwotCi0gICAgQVNT
RVJUKG1fc3RhdHVzID09IFJlYWR5KTsKLSAgICBtX3N0YXR1cyA9IFNjaGVkdWxlZDsKLSAgICBn
X3NvdXJjZV9zZXRfbmFtZShtX2NvbnRleHQuc291cmNlLmdldCgpLCBuYW1lKTsKLSAgICBnX3Nv
dXJjZV9zZXRfY2FsbGJhY2sobV9jb250ZXh0LnNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2Fz
dDxHU291cmNlRnVuYz4oc29ja2V0U291cmNlQ2FsbGJhY2spLCB0aGlzLCBudWxscHRyKTsKLSAg
ICBnX3NvdXJjZV9hdHRhY2gobV9jb250ZXh0LnNvdXJjZS5nZXQoKSwgY29udGV4dCk7Ci19Ci0K
LXZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZVRpbWVvdXRTb3VyY2UoY29uc3QgY2hhciog
bmFtZSwgR1NvdXJjZUZ1bmMgc291cmNlRnVuY3Rpb24sIGludCBwcmlvcml0eSwgR01haW5Db250
ZXh0KiBjb250ZXh0KQotewotICAgIEFTU0VSVChtX3N0YXR1cyA9PSBSZWFkeSk7Ci0gICAgbV9z
dGF0dXMgPSBTY2hlZHVsZWQ7Ci0KLSAgICBnX3NvdXJjZV9zZXRfbmFtZShtX2NvbnRleHQuc291
cmNlLmdldCgpLCBuYW1lKTsKLSAgICBpZiAocHJpb3JpdHkgIT0gR19QUklPUklUWV9ERUZBVUxU
KQotICAgICAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkobV9jb250ZXh0LnNvdXJjZS5nZXQoKSwg
cHJpb3JpdHkpOwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX2NvbnRleHQuc291cmNlLmdl
dCgpLCBzb3VyY2VGdW5jdGlvbiwgdGhpcywgbnVsbHB0cik7Ci0gICAgZ19zb3VyY2VfYXR0YWNo
KG1fY29udGV4dC5zb3VyY2UuZ2V0KCksIGNvbnRleHQpOwotfQotCi12b2lkIEdNYWluTG9vcFNv
dXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248
dm9pZCAoKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsYXksIGludCBw
cmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29u
dGV4dCogY29udGV4dCkKLXsKLSAgICBjYW5jZWwoKTsKLQotICAgIEFTU0VSVCghbV9jb250ZXh0
LnNvdXJjZSk7Ci0gICAgbV9jb250ZXh0ID0gewotICAgICAgICBhZG9wdEdSZWYoZ190aW1lb3V0
X3NvdXJjZV9uZXcoZGVsYXkuY291bnQoKSkpLAotICAgICAgICBudWxscHRyLCAvLyBjYW5jZWxs
YWJsZQotICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYW5jZWxsYWJsZQotICAgICAgICBXVEY6
Om1vdmUoZnVuY3Rpb24pLAotICAgICAgICBudWxscHRyLCAvLyBib29sQ2FsbGJhY2sKLSAgICAg
ICAgbnVsbHB0ciwgLy8gc29ja2V0Q2FsbGJhY2sKLSAgICAgICAgV1RGOjptb3ZlKGRlc3Ryb3lG
dW5jdGlvbikKLSAgICB9OwotICAgIHNjaGVkdWxlVGltZW91dFNvdXJjZShuYW1lLCByZWludGVy
cHJldF9jYXN0PEdTb3VyY2VGdW5jPih2b2lkU291cmNlQ2FsbGJhY2spLCBwcmlvcml0eSwgY29u
dGV4dCk7Ci19Ci0KLXZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkoY29u
c3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sICgpPiBmdW5jdGlvbiwgc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyBkZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQotewotICAgIGNhbmNl
bCgpOwotCi0gICAgQVNTRVJUKCFtX2NvbnRleHQuc291cmNlKTsKLSAgICBtX2NvbnRleHQgPSB7
Ci0gICAgICAgIGFkb3B0R1JlZihnX3RpbWVvdXRfc291cmNlX25ldyhkZWxheS5jb3VudCgpKSks
Ci0gICAgICAgIG51bGxwdHIsIC8vIGNhbmNlbGxhYmxlCi0gICAgICAgIG51bGxwdHIsIC8vIHNv
Y2tldENhbmNlbGxhYmxlCi0gICAgICAgIG51bGxwdHIsIC8vIHZvaWRDYWxsYmFjawotICAgICAg
ICBXVEY6Om1vdmUoZnVuY3Rpb24pLAotICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYWxsYmFj
awotICAgICAgICBXVEY6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKQotICAgIH07Ci0gICAgc2NoZWR1
bGVUaW1lb3V0U291cmNlKG5hbWUsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KGJvb2xT
b3VyY2VDYWxsYmFjayksIHByaW9yaXR5LCBjb250ZXh0KTsKLX0KLQotdm9pZCBHTWFpbkxvb3BT
b3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQgKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6c2Vjb25kcyBkZWxheSwgaW50IHByaW9y
aXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0
KiBjb250ZXh0KQotewotICAgIGNhbmNlbCgpOwotCi0gICAgQVNTRVJUKCFtX2NvbnRleHQuc291
cmNlKTsKLSAgICBtX2NvbnRleHQgPSB7Ci0gICAgICAgIGFkb3B0R1JlZihnX3RpbWVvdXRfc291
cmNlX25ld19zZWNvbmRzKGRlbGF5LmNvdW50KCkpKSwKLSAgICAgICAgbnVsbHB0ciwgLy8gY2Fu
Y2VsbGFibGUKLSAgICAgICAgbnVsbHB0ciwgLy8gc29ja2V0Q2FuY2VsbGFibGUKLSAgICAgICAg
V1RGOjptb3ZlKGZ1bmN0aW9uKSwKLSAgICAgICAgbnVsbHB0ciwgLy8gYm9vbENhbGxiYWNrCi0g
ICAgICAgIG51bGxwdHIsIC8vIHNvY2tldENhbGxiYWNrCi0gICAgICAgIFdURjo6bW92ZShkZXN0
cm95RnVuY3Rpb24pCi0gICAgfTsKLSAgICBzY2hlZHVsZVRpbWVvdXRTb3VyY2UobmFtZSwgcmVp
bnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4odm9pZFNvdXJjZUNhbGxiYWNrKSwgcHJpb3JpdHks
IGNvbnRleHQpOwotfQotCi12b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5
KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4gZnVuY3Rpb24sIHN0ZDo6
Y2hyb25vOjpzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCAo
KT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgY2FuY2Vs
KCk7Ci0KLSAgICBBU1NFUlQoIW1fY29udGV4dC5zb3VyY2UpOwotICAgIG1fY29udGV4dCA9IHsK
LSAgICAgICAgYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3X3NlY29uZHMoZGVsYXkuY291
bnQoKSkpLAotICAgICAgICBudWxscHRyLCAvLyBjYW5jZWxsYWJsZQotICAgICAgICBudWxscHRy
LCAvLyBzb2NrZXRDYW5jZWxsYWJsZQotICAgICAgICBudWxscHRyLCAvLyB2b2lkQ2FsbGJhY2sK
LSAgICAgICAgV1RGOjptb3ZlKGZ1bmN0aW9uKSwKLSAgICAgICAgbnVsbHB0ciwgLy8gc29ja2V0
Q2FsbGJhY2sKLSAgICAgICAgV1RGOjptb3ZlKGRlc3Ryb3lGdW5jdGlvbikKLSAgICB9OwotICAg
IHNjaGVkdWxlVGltZW91dFNvdXJjZShuYW1lLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5j
Pihib29sU291cmNlQ2FsbGJhY2spLCBwcmlvcml0eSwgY29udGV4dCk7Ci19Ci0KLXN0cnVjdCBN
aWNyb3NlY29uZHNUaW1lb3V0U291cmNlIHsKLSAgICBHU291cmNlIHNvdXJjZTsKLSAgICB1aW50
NjRfdCBkZWxheTsKLX07Ci0KLXN0YXRpYyBHU291cmNlRnVuY3MgbWljcm9zZWNvbmRzVGltZW91
dFNvdXJjZUZ1bmN0aW9ucyA9IHsKLSAgICBudWxscHRyLCAvLyBwcmVwYXJlCi0gICAgbnVsbHB0
ciwgLy8gY2hlY2sKLSAgICAvLyBkaXNwYXRjaAotICAgIFtdKEdTb3VyY2UqIHNvdXJjZSwgR1Nv
dXJjZUZ1bmMgY2FsbGJhY2ssIGdwb2ludGVyIHVzZXJEYXRhKSAtPiBnYm9vbGVhbgotICAgIHsK
LSAgICAgICAgYm9vbCByZXBlYXQgPSBjYWxsYmFjayh1c2VyRGF0YSk7Ci0gICAgICAgIGlmIChy
ZXBlYXQpCi0gICAgICAgICAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShzb3VyY2UsIGdfc291
cmNlX2dldF90aW1lKHNvdXJjZSkgKyByZWludGVycHJldF9jYXN0PE1pY3Jvc2Vjb25kc1RpbWVv
dXRTb3VyY2UqPihzb3VyY2UpLT5kZWxheSk7Ci0gICAgICAgIHJldHVybiByZXBlYXQ7Ci0gICAg
fSwKLSAgICBudWxscHRyLCAvLyBmaW5hbGl6ZQotICAgIG51bGxwdHIsIC8vIGNsb3N1cmVfY2Fs
bGJhY2sKLSAgICBudWxscHRyIC8vIGNsb3N1cmVfbWFyc2hhbGwKLX07Ci0KLXN0YXRpYyBHU291
cmNlKiBjcmVhdGVNaWNyb3NlY29uZHNUaW1lb3V0U291cmNlKHVpbnQ2NF90IGRlbGF5KQotewot
ICAgIEdTb3VyY2UqIHNvdXJjZSA9IGdfc291cmNlX25ldygmbWljcm9zZWNvbmRzVGltZW91dFNv
dXJjZUZ1bmN0aW9ucywgc2l6ZW9mKE1pY3Jvc2Vjb25kc1RpbWVvdXRTb3VyY2UpKTsKLSAgICBy
ZWludGVycHJldF9jYXN0PE1pY3Jvc2Vjb25kc1RpbWVvdXRTb3VyY2UqPihzb3VyY2UpLT5kZWxh
eSA9IGRlbGF5OwotICAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lKHNvdXJjZSwgZ19nZXRfbW9u
b3RvbmljX3RpbWUoKSArIGRlbGF5KTsKLSAgICByZXR1cm4gc291cmNlOwotfQotCi12b2lkIEdN
YWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6
ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgZGVs
YXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24s
IEdNYWluQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBjYW5jZWwoKTsKLQotICAgIEFTU0VSVCgh
bV9jb250ZXh0LnNvdXJjZSk7Ci0gICAgbV9jb250ZXh0ID0gewotICAgICAgICBhZG9wdEdSZWYo
Y3JlYXRlTWljcm9zZWNvbmRzVGltZW91dFNvdXJjZShkZWxheS5jb3VudCgpKSksCi0gICAgICAg
IG51bGxwdHIsIC8vIGNhbmNlbGxhYmxlCi0gICAgICAgIG51bGxwdHIsIC8vIHNvY2tldENhbmNl
bGxhYmxlCi0gICAgICAgIFdURjo6bW92ZShmdW5jdGlvbiksCi0gICAgICAgIG51bGxwdHIsIC8v
IGJvb2xDYWxsYmFjawotICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYWxsYmFjawotICAgICAg
ICBXVEY6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKQotICAgIH07Ci0gICAgc2NoZWR1bGVUaW1lb3V0
U291cmNlKG5hbWUsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KHZvaWRTb3VyY2VDYWxs
YmFjayksIHByaW9yaXR5LCBjb250ZXh0KTsKLX0KLQotdm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNj
aGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKCk+
IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHks
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNv
bnRleHQpCi17Ci0gICAgY2FuY2VsKCk7Ci0KLSAgICBBU1NFUlQoIW1fY29udGV4dC5zb3VyY2Up
OwotICAgIG1fY29udGV4dCA9IHsKLSAgICAgICAgYWRvcHRHUmVmKGNyZWF0ZU1pY3Jvc2Vjb25k
c1RpbWVvdXRTb3VyY2UoZGVsYXkuY291bnQoKSkpLAotICAgICAgICBudWxscHRyLCAvLyBjYW5j
ZWxsYWJsZQotICAgICAgICBudWxscHRyLCAvLyBzb2NrZXRDYW5jZWxsYWJsZQotICAgICAgICBu
dWxscHRyLCAvLyB2b2lkQ2FsbGJhY2sKLSAgICAgICAgV1RGOjptb3ZlKGZ1bmN0aW9uKSwKLSAg
ICAgICAgbnVsbHB0ciwgLy8gc29ja2V0Q2FsbGJhY2sKLSAgICAgICAgV1RGOjptb3ZlKGRlc3Ry
b3lGdW5jdGlvbikKLSAgICB9OwotICAgIHNjaGVkdWxlVGltZW91dFNvdXJjZShuYW1lLCByZWlu
dGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPihib29sU291cmNlQ2FsbGJhY2spLCBwcmlvcml0eSwg
Y29udGV4dCk7Ci19Ci0KLXZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFuZERlbGV0ZU9u
RGVzdHJveShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24s
IGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01h
aW5Db250ZXh0KiBjb250ZXh0KQotewotICAgIGNyZWF0ZSgpLnNjaGVkdWxlKG5hbWUsIGZ1bmN0
aW9uLCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKLX0KLQotdm9pZCBHTWFp
bkxvb3BTb3VyY2U6OnNjaGVkdWxlQW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUs
IHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPiBmdW5jdGlvbiwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCi17Ci0g
ICAgY3JlYXRlKCkuc2NoZWR1bGUobmFtZSwgZnVuY3Rpb24sIHByaW9yaXR5LCBkZXN0cm95RnVu
Y3Rpb24sIGNvbnRleHQpOwotfQotCi12b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRl
ckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBkZWxheSwgaW50IHBy
aW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRl
eHQqIGNvbnRleHQpCi17Ci0gICAgY3JlYXRlKCkuc2NoZWR1bGVBZnRlckRlbGF5KG5hbWUsIGZ1
bmN0aW9uLCBkZWxheSwgcHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwgY29udGV4dCk7Ci19Ci0K
LXZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRlc3Ry
b3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+IGZ1bmN0aW9uLCBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBj
cmVhdGUoKS5zY2hlZHVsZUFmdGVyRGVsYXkobmFtZSwgZnVuY3Rpb24sIGRlbGF5LCBwcmlvcml0
eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKLX0KLQotdm9pZCBHTWFpbkxvb3BTb3VyY2U6
OnNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJveShjb25zdCBjaGFyKiBuYW1lLCBz
dGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGRlbGF5
LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24sIEdN
YWluQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBjcmVhdGUoKS5zY2hlZHVsZUFmdGVyRGVsYXko
bmFtZSwgZnVuY3Rpb24sIGRlbGF5LCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0
KTsKLX0KLQotdm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0
ZU9uRGVzdHJveShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4gZnVuY3Rp
b24sIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rp
b248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKLXsKLSAg
ICBjcmVhdGUoKS5zY2hlZHVsZUFmdGVyRGVsYXkobmFtZSwgZnVuY3Rpb24sIGRlbGF5LCBwcmlv
cml0eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKLX0KLQotdm9pZCBHTWFpbkxvb3BTb3Vy
Y2U6OnNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJveShjb25zdCBjaGFyKiBuYW1l
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29u
ZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5j
dGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQotewotICAgIGNyZWF0ZSgpLnNjaGVkdWxlQWZ0
ZXJEZWxheShuYW1lLCBmdW5jdGlvbiwgZGVsYXksIHByaW9yaXR5LCBkZXN0cm95RnVuY3Rpb24s
IGNvbnRleHQpOwotfQotCi12b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5
QW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCgp
PiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBkZWxheSwgaW50IHByaW9yaXR5
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNv
bnRleHQpCi17Ci0gICAgY3JlYXRlKCkuc2NoZWR1bGVBZnRlckRlbGF5KG5hbWUsIGZ1bmN0aW9u
LCBkZWxheSwgcHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwgY29udGV4dCk7Ci19Ci0KLWJvb2wg
R01haW5Mb29wU291cmNlOjpwcmVwYXJlVm9pZENhbGxiYWNrKENvbnRleHQmIGNvbnRleHQpCi17
Ci0gICAgaWYgKCFtX2NvbnRleHQuc291cmNlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICBjb250ZXh0ID0gV1RGOjptb3ZlKG1fY29udGV4dCk7Ci0KLSAgICBBU1NFUlQoY29udGV4dC52
b2lkQ2FsbGJhY2spOwotICAgIEFTU0VSVChtX3N0YXR1cyA9PSBTY2hlZHVsZWQpOwotICAgIG1f
c3RhdHVzID0gRGlzcGF0Y2hpbmc7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBHTWFp
bkxvb3BTb3VyY2U6OmZpbmlzaFZvaWRDYWxsYmFjaygpCi17Ci0gICAgbV9zdGF0dXMgPSBSZWFk
eTsKLX0KLQotdm9pZCBHTWFpbkxvb3BTb3VyY2U6OnZvaWRDYWxsYmFjaygpCi17Ci0gICAgQ29u
dGV4dCBjb250ZXh0OwotICAgIGlmICghcHJlcGFyZVZvaWRDYWxsYmFjayhjb250ZXh0KSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgY29udGV4dC52b2lkQ2FsbGJhY2soKTsKLSAgICBpZiAobV9z
dGF0dXMgIT0gUmVhZHkgJiYgIW1fY29udGV4dC5zb3VyY2UpIHsKLSAgICAgICAgLy8gU3dpdGNo
IHRvIFJlYWR5IGlmIGl0IGhhc24ndCBiZWVuIHJlLXNjaGVkdWxlZCBvciBjYW5jZWxsZWQuCi0g
ICAgICAgIGZpbmlzaFZvaWRDYWxsYmFjaygpOwotICAgIH0KLQotICAgIGNvbnRleHQuZGVzdHJv
eVNvdXJjZSgpOwotICAgIGlmIChtX2RlbGV0ZU9uRGVzdHJveSA9PSBEZWxldGVPbkRlc3Ryb3kp
Ci0gICAgICAgIGRlbGV0ZSB0aGlzOwotfQotCi1ib29sIEdNYWluTG9vcFNvdXJjZTo6cHJlcGFy
ZUJvb2xDYWxsYmFjayhDb250ZXh0JiBjb250ZXh0KQotewotICAgIGlmICghbV9jb250ZXh0LnNv
dXJjZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgY29udGV4dCA9IFdURjo6bW92ZSht
X2NvbnRleHQpOwotCi0gICAgQVNTRVJUKGNvbnRleHQuYm9vbENhbGxiYWNrKTsKLSAgICBBU1NF
UlQobV9zdGF0dXMgPT0gU2NoZWR1bGVkIHx8IG1fc3RhdHVzID09IERpc3BhdGNoaW5nKTsKLSAg
ICBtX3N0YXR1cyA9IERpc3BhdGNoaW5nOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIEdN
YWluTG9vcFNvdXJjZTo6ZmluaXNoQm9vbENhbGxiYWNrKGJvb2wgcmV0dmFsLCBDb250ZXh0JiBj
b250ZXh0KQotewotICAgIC8vIG1fc3RhdHVzIHNob3VsZCByZWZsZWN0IHdoZXRoZXIgdGhlIEdN
YWluTG9vcFNvdXJjZSBoYXMgYmVlbiByZXNjaGVkdWxlZCBkdXJpbmcgZGlzcGF0Y2guCi0gICAg
QVNTRVJUKCghbV9jb250ZXh0LnNvdXJjZSAmJiBtX3N0YXR1cyA9PSBEaXNwYXRjaGluZykgfHwg
bV9zdGF0dXMgPT0gU2NoZWR1bGVkKTsKLSAgICBpZiAocmV0dmFsICYmICFtX2NvbnRleHQuc291
cmNlKQotICAgICAgICBtX2NvbnRleHQgPSBXVEY6Om1vdmUoY29udGV4dCk7Ci0gICAgZWxzZSBp
ZiAoIXJldHZhbCkKLSAgICAgICAgbV9zdGF0dXMgPSBSZWFkeTsKLX0KLQotYm9vbCBHTWFpbkxv
b3BTb3VyY2U6OmJvb2xDYWxsYmFjaygpCi17Ci0gICAgQ29udGV4dCBjb250ZXh0OwotICAgIGlm
ICghcHJlcGFyZUJvb2xDYWxsYmFjayhjb250ZXh0KSkKLSAgICAgICAgcmV0dXJuIFN0b3A7Ci0K
LSAgICBib29sIHJldHZhbCA9IGNvbnRleHQuYm9vbENhbGxiYWNrKCk7Ci0gICAgaWYgKG1fc3Rh
dHVzICE9IFJlYWR5ICYmICFtX2NvbnRleHQuc291cmNlKSB7Ci0gICAgICAgIC8vIFByZXBhcmUg
Zm9yIGEgbmV3IGl0ZXJhdGlvbiBvciBzd2l0Y2ggdG8gUmVhZHkgaWYgaXQgaGFzbid0IGJlZW4g
cmUtc2NoZWR1bGVkIG9yIGNhbmNlbGxlZC4KLSAgICAgICAgZmluaXNoQm9vbENhbGxiYWNrKHJl
dHZhbCwgY29udGV4dCk7Ci0gICAgfQotCi0gICAgaWYgKGNvbnRleHQuc291cmNlKSB7Ci0gICAg
ICAgIGNvbnRleHQuZGVzdHJveVNvdXJjZSgpOwotICAgICAgICBpZiAobV9kZWxldGVPbkRlc3Ry
b3kgPT0gRGVsZXRlT25EZXN0cm95KQotICAgICAgICAgICAgZGVsZXRlIHRoaXM7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIHJldHZhbDsKLX0KLQotYm9vbCBHTWFpbkxvb3BTb3VyY2U6OnNvY2tldENh
bGxiYWNrKEdJT0NvbmRpdGlvbiBjb25kaXRpb24pCi17Ci0gICAgaWYgKCFtX2NvbnRleHQuc291
cmNlKQotICAgICAgICByZXR1cm4gU3RvcDsKLQotICAgIENvbnRleHQgY29udGV4dDsKLSAgICBj
b250ZXh0ID0gV1RGOjptb3ZlKG1fY29udGV4dCk7Ci0KLSAgICBBU1NFUlQoY29udGV4dC5zb2Nr
ZXRDYWxsYmFjayk7Ci0gICAgQVNTRVJUKG1fc3RhdHVzID09IFNjaGVkdWxlZCB8fCBtX3N0YXR1
cyA9PSBEaXNwYXRjaGluZyk7Ci0gICAgbV9zdGF0dXMgPSBEaXNwYXRjaGluZzsKLQotICAgIGlm
IChnX2NhbmNlbGxhYmxlX2lzX2NhbmNlbGxlZChjb250ZXh0LnNvY2tldENhbmNlbGxhYmxlLmdl
dCgpKSkgewotICAgICAgICBjb250ZXh0LmRlc3Ryb3lTb3VyY2UoKTsKLSAgICAgICAgcmV0dXJu
IFN0b3A7Ci0gICAgfQotCi0gICAgYm9vbCByZXR2YWwgPSBjb250ZXh0LnNvY2tldENhbGxiYWNr
KGNvbmRpdGlvbik7Ci0KLSAgICBpZiAobV9zdGF0dXMgIT0gUmVhZHkgJiYgIW1fY29udGV4dC5z
b3VyY2UpIHsKLSAgICAgICAgLy8gbV9zdGF0dXMgc2hvdWxkIHJlZmxlY3Qgd2hldGhlciB0aGUg
R01haW5Mb29wU291cmNlIGhhcyBiZWVuIHJlc2NoZWR1bGVkIGR1cmluZyBkaXNwYXRjaC4KLSAg
ICAgICAgQVNTRVJUKCghbV9jb250ZXh0LnNvdXJjZSAmJiBtX3N0YXR1cyA9PSBEaXNwYXRjaGlu
ZykgfHwgbV9zdGF0dXMgPT0gU2NoZWR1bGVkKTsKLSAgICAgICAgaWYgKHJldHZhbCAmJiAhbV9j
b250ZXh0LnNvdXJjZSkKLSAgICAgICAgICAgIG1fY29udGV4dCA9IFdURjo6bW92ZShjb250ZXh0
KTsKLSAgICAgICAgZWxzZSBpZiAoIXJldHZhbCkKLSAgICAgICAgICAgIG1fc3RhdHVzID0gUmVh
ZHk7Ci0gICAgfQotCi0gICAgaWYgKGNvbnRleHQuc291cmNlKQotICAgICAgICBjb250ZXh0LmRl
c3Ryb3lTb3VyY2UoKTsKLQotICAgIHJldHVybiByZXR2YWw7Ci19Ci0KLWdib29sZWFuIEdNYWlu
TG9vcFNvdXJjZTo6dm9pZFNvdXJjZUNhbGxiYWNrKEdNYWluTG9vcFNvdXJjZSogc291cmNlKQot
ewotICAgIHNvdXJjZS0+dm9pZENhbGxiYWNrKCk7Ci0gICAgcmV0dXJuIEdfU09VUkNFX1JFTU9W
RTsKLX0KLQotZ2Jvb2xlYW4gR01haW5Mb29wU291cmNlOjpib29sU291cmNlQ2FsbGJhY2soR01h
aW5Mb29wU291cmNlKiBzb3VyY2UpCi17Ci0gICAgcmV0dXJuIHNvdXJjZS0+Ym9vbENhbGxiYWNr
KCkgPT0gQ29udGludWU7Ci19Ci0KLWdib29sZWFuIEdNYWluTG9vcFNvdXJjZTo6c29ja2V0U291
cmNlQ2FsbGJhY2soR1NvY2tldCosIEdJT0NvbmRpdGlvbiBjb25kaXRpb24sIEdNYWluTG9vcFNv
dXJjZSogc291cmNlKQotewotICAgIHJldHVybiBzb3VyY2UtPnNvY2tldENhbGxiYWNrKGNvbmRp
dGlvbikgPT0gQ29udGludWU7Ci19Ci0KLXZvaWQgR01haW5Mb29wU291cmNlOjpDb250ZXh0Ojpk
ZXN0cm95U291cmNlKCkKLXsKLSAgICBnX3NvdXJjZV9kZXN0cm95KHNvdXJjZS5nZXQoKSk7Ci0g
ICAgaWYgKGRlc3Ryb3lDYWxsYmFjaykKLSAgICAgICAgZGVzdHJveUNhbGxiYWNrKCk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdURgotCi0jZW5kaWYgLy8gVVNFKEdMSUIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oIGIvU291cmNlL1dURi93dGYv
Z29iamVjdC9HTWFpbkxvb3BTb3VyY2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzEyNTg3MDRhZDIzODcyMWY1OGVkNzFlMWI4MzY3NzQyNmI2MTFkNS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dN
YWluTG9vcFNvdXJjZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTM3ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBHTWFpbkxv
b3BTb3VyY2VfaAotI2RlZmluZSBHTWFpbkxvb3BTb3VyY2VfaAotCi0jaWYgVVNFKEdMSUIpCi0K
LSNpbmNsdWRlIDxmdW5jdGlvbmFsPgotI2luY2x1ZGUgPGdsaWIuaD4KLSNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0KLXR5cGVk
ZWYgc3RydWN0IF9HU29ja2V0IEdTb2NrZXQ7Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1jbGFzcyBH
TWFpbkxvb3BTb3VyY2UgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdNYWluTG9vcFNvdXJj
ZSk7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgV1RGX0VYUE9S
VF9QUklWQVRFIEdNYWluTG9vcFNvdXJjZSgpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0
dWFsIH5HTWFpbkxvb3BTb3VyY2UoKTsKLQotICAgIHN0YXRpYyBjb25zdCBib29sIFN0b3AgPSBm
YWxzZTsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBDb250aW51ZSA9IHRydWU7Ci0KLSAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgYm9vbCBpc1NjaGVkdWxlZCgpIGNvbnN0OwotICAgIFdURl9FWFBPUlRf
UFJJVkFURSBib29sIGlzQWN0aXZlKCkgY29uc3Q7Ci0KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
dmlydHVhbCB2b2lkIHNjaGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPiwgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZv
aWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIp
OwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgc2NoZWR1bGUoY29uc3QgY2hh
ciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+LCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZ
X0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRy
LCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1
YWwgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlv
bjx2b2lkKCk+LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzLCBpbnQgcHJpb3JpdHkgPSBHX1BS
SU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBu
dWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRF
IHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpm
dW5jdGlvbjxib29sKCk+LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzLCBpbnQgcHJpb3JpdHkg
PSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rp
b24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7Ci0gICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+LCBzdGQ6OmNocm9ubzo6c2Vjb25kcywgaW50IHByaW9yaXR5
ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0
aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIpOwotICAgIFdURl9FWFBPUlRf
UFJJVkFURSB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUs
IHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPiwgc3RkOjpjaHJvbm86OnNlY29uZHMsIGludCBwcmlvcml0
eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5j
dGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKTsKLSAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdmlydHVhbCB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1l
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4sIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMsIGludCBw
cmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ry
b3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKTsKLSAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFy
KiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4sIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMs
IGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+
IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKTsKLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIGNhbmNlbCgpOwotCi0gICAgV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgc2NoZWR1bGUoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlv
bjxib29sKEdJT0NvbmRpdGlvbik+LCBHU29ja2V0KiwgR0lPQ29uZGl0aW9uLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51
bGxwdHIpOwotCi0gICAgc3RhdGljIHZvaWQgc2NoZWR1bGVBbmREZWxldGVPbkRlc3Ryb3koY29u
c3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+LCBpbnQgcHJpb3JpdHkgPSBHX1BS
SU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBu
dWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7Ci0gICAgc3RhdGljIHZvaWQgc2NoZWR1
bGVBbmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29s
KCk+LCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7
Ci0gICAgc3RhdGljIHZvaWQgc2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KGNv
bnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgc3RkOjpjaHJvbm86Om1pbGxp
c2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxw
dHIpOwotICAgIHN0YXRpYyB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJv
eShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4sIHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5j
dGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBu
dWxscHRyKTsKLSAgICBzdGF0aWMgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRl
c3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+LCBzdGQ6OmNocm9u
bzo6c2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51
bGxwdHIpOwotICAgIHN0YXRpYyB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVz
dHJveShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4sIHN0ZDo6Y2hyb25v
OjpzZWNvbmRzLCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rp
b248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVs
bHB0cik7Ci0gICAgc3RhdGljIHZvaWQgc2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRlT25EZXN0
cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgc3RkOjpjaHJvbm86
Om1pY3Jvc2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9
IG51bGxwdHIpOwotICAgIHN0YXRpYyB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9u
RGVzdHJveShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4sIHN0ZDo6Y2hy
b25vOjptaWNyb3NlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3Rk
OjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4
dCogPSBudWxscHRyKTsKLQotcHJvdGVjdGVkOgotICAgIGVudW0gU3RhdHVzIHsgUmVhZHksIFNj
aGVkdWxlZCwgRGlzcGF0Y2hpbmcgfTsKLQotICAgIHN0cnVjdCBDb250ZXh0IHsKLSAgICAgICAg
Q29udGV4dCgpID0gZGVmYXVsdDsKLSAgICAgICAgQ29udGV4dCYgb3BlcmF0b3I9KENvbnRleHQm
JiBjKQotICAgICAgICB7Ci0gICAgICAgICAgICBzb3VyY2UgPSBXVEY6Om1vdmUoYy5zb3VyY2Up
OwotICAgICAgICAgICAgY2FuY2VsbGFibGUgPSBXVEY6Om1vdmUoYy5jYW5jZWxsYWJsZSk7Ci0g
ICAgICAgICAgICBzb2NrZXRDYW5jZWxsYWJsZSA9IFdURjo6bW92ZShjLnNvY2tldENhbmNlbGxh
YmxlKTsKLSAgICAgICAgICAgIHZvaWRDYWxsYmFjayA9IFdURjo6bW92ZShjLnZvaWRDYWxsYmFj
ayk7Ci0gICAgICAgICAgICBib29sQ2FsbGJhY2sgPSBXVEY6Om1vdmUoYy5ib29sQ2FsbGJhY2sp
OwotICAgICAgICAgICAgc29ja2V0Q2FsbGJhY2sgPSBXVEY6Om1vdmUoYy5zb2NrZXRDYWxsYmFj
ayk7Ci0gICAgICAgICAgICBkZXN0cm95Q2FsbGJhY2sgPSBXVEY6Om1vdmUoYy5kZXN0cm95Q2Fs
bGJhY2spOwotICAgICAgICAgICAgcmV0dXJuICp0aGlzOwotICAgICAgICB9Ci0KLSAgICAgICAg
dm9pZCBkZXN0cm95U291cmNlKCk7Ci0KLSAgICAgICAgR1JlZlB0cjxHU291cmNlPiBzb3VyY2U7
Ci0gICAgICAgIEdSZWZQdHI8R0NhbmNlbGxhYmxlPiBjYW5jZWxsYWJsZTsKLSAgICAgICAgR1Jl
ZlB0cjxHQ2FuY2VsbGFibGU+IHNvY2tldENhbmNlbGxhYmxlOwotICAgICAgICBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKCk+IHZvaWRDYWxsYmFjazsKLSAgICAgICAgc3RkOjpmdW5jdGlvbjxib29sICgp
PiBib29sQ2FsbGJhY2s7Ci0gICAgICAgIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoR0lPQ29uZGl0aW9u
KT4gc29ja2V0Q2FsbGJhY2s7Ci0gICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZGVzdHJv
eUNhbGxiYWNrOwotICAgIH07Ci0KLSAgICB2aXJ0dWFsIHZvaWQgdm9pZENhbGxiYWNrKCk7Ci0g
ICAgdmlydHVhbCBib29sIGJvb2xDYWxsYmFjaygpOwotCi0gICAgdmlydHVhbCBib29sIHByZXBh
cmVWb2lkQ2FsbGJhY2soQ29udGV4dCYpOwotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hWb2lkQ2Fs
bGJhY2soKTsKLSAgICB2aXJ0dWFsIGJvb2wgcHJlcGFyZUJvb2xDYWxsYmFjayhDb250ZXh0Jik7
Ci0gICAgdmlydHVhbCB2b2lkIGZpbmlzaEJvb2xDYWxsYmFjayhib29sIHJldHZhbCwgQ29udGV4
dCYpOwotCi1wcml2YXRlOgotICAgIHN0YXRpYyBHTWFpbkxvb3BTb3VyY2UmIGNyZWF0ZSgpOwot
Ci0gICAgZW51bSBEZWxldGVPbkRlc3Ryb3lUeXBlIHsgRGVsZXRlT25EZXN0cm95LCBEb05vdERl
bGV0ZU9uRGVzdHJveSB9OwotICAgIEdNYWluTG9vcFNvdXJjZShEZWxldGVPbkRlc3Ryb3lUeXBl
KTsKLQotICAgIHZvaWQgc2NoZWR1bGVJZGxlU291cmNlKGNvbnN0IGNoYXIqIG5hbWUsIEdTb3Vy
Y2VGdW5jLCBpbnQgcHJpb3JpdHksIEdNYWluQ29udGV4dCopOwotICAgIHZvaWQgc2NoZWR1bGVU
aW1lb3V0U291cmNlKGNvbnN0IGNoYXIqIG5hbWUsIEdTb3VyY2VGdW5jLCBpbnQgcHJpb3JpdHks
IEdNYWluQ29udGV4dCopOwotICAgIGJvb2wgc29ja2V0Q2FsbGJhY2soR0lPQ29uZGl0aW9uKTsK
LQotICAgIHN0YXRpYyBnYm9vbGVhbiB2b2lkU291cmNlQ2FsbGJhY2soR01haW5Mb29wU291cmNl
Kik7Ci0gICAgc3RhdGljIGdib29sZWFuIGJvb2xTb3VyY2VDYWxsYmFjayhHTWFpbkxvb3BTb3Vy
Y2UqKTsKLSAgICBzdGF0aWMgZ2Jvb2xlYW4gc29ja2V0U291cmNlQ2FsbGJhY2soR1NvY2tldCos
IEdJT0NvbmRpdGlvbiwgR01haW5Mb29wU291cmNlKik7Ci0KLSAgICBEZWxldGVPbkRlc3Ryb3lU
eXBlIG1fZGVsZXRlT25EZXN0cm95OwotCi1wcm90ZWN0ZWQ6Ci0gICAgQ29udGV4dCBtX2NvbnRl
eHQ7Ci0gICAgU3RhdHVzIG1fc3RhdHVzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVz
aW5nIFdURjo6R01haW5Mb29wU291cmNlOwotCi0jZW5kaWYgLy8gVVNFKEdMSUIpCi0KLSNlbmRp
ZiAvLyBHTWFpbkxvb3BTb3VyY2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ29iamVj
dC9HTXV0ZXhMb2NrZXIuaCBiL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR011dGV4TG9ja2VyLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlZmJmZjAwMDA4OTFiNGJlMjRjNWRiNWZm
ODIxMTEwNmVjNmNjZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dURi93dGYvZ29iamVjdC9HTXV0ZXhMb2NrZXIuaAorKysgL2Rldi9udWxs
CkBAIC0xLDEwMiArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAxMyBDb2xsYWJvcmEg
THRkLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot
ICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqICBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIEdNdXRleExvY2tlcl9oCi0jZGVmaW5lIEdNdXRleExv
Y2tlcl9oCi0KLSNpZiBVU0UoR0xJQikKLQotI2luY2x1ZGUgPGdsaWIuaD4KLSNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRlPHR5cGVuYW1l
IFQ+Ci1zdHJ1Y3QgTXV0ZXhXcmFwcGVyOwotCi10ZW1wbGF0ZTw+Ci1zdHJ1Y3QgTXV0ZXhXcmFw
cGVyPEdNdXRleD4gewotICAgIHN0YXRpYyB2b2lkIGxvY2soR011dGV4KiBtdXRleCkKLSAgICB7
Ci0gICAgICAgIGdfbXV0ZXhfbG9jayhtdXRleCk7Ci0gICAgfQotCi0gICAgc3RhdGljIHZvaWQg
dW5sb2NrKEdNdXRleCogbXV0ZXgpCi0gICAgewotICAgICAgICBnX211dGV4X3VubG9jayhtdXRl
eCk7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8Pgotc3RydWN0IE11dGV4V3JhcHBlcjxHUmVjTXV0
ZXg+IHsKLSAgICBzdGF0aWMgdm9pZCBsb2NrKEdSZWNNdXRleCogbXV0ZXgpCi0gICAgewotICAg
ICAgICBnX3JlY19tdXRleF9sb2NrKG11dGV4KTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgdm9pZCB1
bmxvY2soR1JlY011dGV4KiBtdXRleCkKLSAgICB7Ci0gICAgICAgIGdfcmVjX211dGV4X3VubG9j
ayhtdXRleCk7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWNsYXNzIEdNdXRl
eExvY2tlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR011dGV4TG9ja2VyKTsKLXB1Ymxp
YzoKLSAgICBleHBsaWNpdCBHTXV0ZXhMb2NrZXIoVCYgbXV0ZXgpCi0gICAgICAgIDogbV9tdXRl
eChtdXRleCkKLSAgICAgICAgLCBtX2xvY2tlZChmYWxzZSkKLSAgICB7Ci0gICAgICAgIGxvY2so
KTsKLSAgICB9Ci0KLSAgICB+R011dGV4TG9ja2VyKCkKLSAgICB7Ci0gICAgICAgIHVubG9jaygp
OwotICAgIH0KLQotICAgIHZvaWQgbG9jaygpCi0gICAgewotICAgICAgICBpZiAobV9sb2NrZWQp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgTXV0ZXhXcmFwcGVyPFQ+Ojpsb2NrKCZt
X211dGV4KTsKLSAgICAgICAgbV9sb2NrZWQgPSB0cnVlOwotICAgIH0KLQotICAgIHZvaWQgdW5s
b2NrKCkKLSAgICB7Ci0gICAgICAgIGlmICghbV9sb2NrZWQpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgbV9sb2NrZWQgPSBmYWxzZTsKLSAgICAgICAgTXV0ZXhXcmFwcGVyPFQ+Ojp1
bmxvY2soJm1fbXV0ZXgpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBUJiBtX211dGV4OwotICAg
IGJvb2wgbV9sb2NrZWQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotI2VuZGlmIC8vIFVT
RShHTElCKQotCi0jZW5kaWYgLy8gR011dGV4TG9ja2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL2dvYmplY3QvR1JlZlB0ci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dSZWZQ
dHIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNTIyMDk1YWYzNjU4ZjkzMWQw
NDc5OWE1MWFjNzA4MTMzMTIxYjk2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR1JlZlB0ci5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSwxNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBNYXJ0aW4g
Um9iaW5zb24KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJHUmVmUHRyLmgiCi0KLSNpZiBVU0UoR0xJQikKLQotI2luY2x1ZGUg
PGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8Z2xpYi5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQot
dGVtcGxhdGUgPD4gR0hhc2hUYWJsZSogcmVmR1B0cihHSGFzaFRhYmxlKiBwdHIpCi17Ci0gICAg
aWYgKHB0cikKLSAgICAgICAgZ19oYXNoX3RhYmxlX3JlZihwdHIpOwotICAgIHJldHVybiBwdHI7
Ci19Ci0KLXRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdIYXNoVGFibGUqIHB0cikKLXsKLSAg
ICBpZiAocHRyKQotICAgICAgICBnX2hhc2hfdGFibGVfdW5yZWYocHRyKTsKLX0KLQotdGVtcGxh
dGUgPD4gR01haW5Db250ZXh0KiByZWZHUHRyKEdNYWluQ29udGV4dCogcHRyKQotewotICAgIGlm
IChwdHIpCi0gICAgICAgIGdfbWFpbl9jb250ZXh0X3JlZihwdHIpOwotICAgIHJldHVybiBwdHI7
Ci19Ci0KLXRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdNYWluQ29udGV4dCogcHRyKQotewot
ICAgIGlmIChwdHIpCi0gICAgICAgIGdfbWFpbl9jb250ZXh0X3VucmVmKHB0cik7Ci19Ci0KLXRl
bXBsYXRlIDw+IEdNYWluTG9vcCogcmVmR1B0cihHTWFpbkxvb3AqIHB0cikKLXsKLSAgICBpZiAo
cHRyKQotICAgICAgICBnX21haW5fbG9vcF9yZWYocHRyKTsKLSAgICByZXR1cm4gcHRyOwotfQot
Ci10ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHTWFpbkxvb3AqIHB0cikKLXsKLSAgICBpZiAo
cHRyKQotICAgICAgICBnX21haW5fbG9vcF91bnJlZihwdHIpOwotfQotCi10ZW1wbGF0ZSA8PiBH
Qnl0ZXMqIHJlZkdQdHIoR0J5dGVzKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZ19i
eXRlc19yZWYocHRyKTsKLSAgICByZXR1cm4gcHRyOwotfQotCi10ZW1wbGF0ZSA8PiB2b2lkIGRl
cmVmR1B0cihHQnl0ZXMqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBnX2J5dGVzX3Vu
cmVmKHB0cik7Ci19Ci0KLXRlbXBsYXRlIDw+IEdWYXJpYW50KiByZWZHUHRyKEdWYXJpYW50KiBw
dHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZ192YXJpYW50X3JlZl9zaW5rKHB0cik7Ci0g
ICAgcmV0dXJuIHB0cjsKLX0KLQotdGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR1ZhcmlhbnQq
IHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBnX3ZhcmlhbnRfdW5yZWYocHRyKTsKLX0K
LQotdGVtcGxhdGUgPD4gR1ZhcmlhbnRCdWlsZGVyKiByZWZHUHRyKEdWYXJpYW50QnVpbGRlciog
cHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIGdfdmFyaWFudF9idWlsZGVyX3JlZihwdHIp
OwotICAgIHJldHVybiBwdHI7Ci19Ci0KLXRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdWYXJp
YW50QnVpbGRlciogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIGdfdmFyaWFudF9idWls
ZGVyX3VucmVmKHB0cik7Ci19Ci0KLXRlbXBsYXRlIDw+IEdTb3VyY2UqIHJlZkdQdHIoR1NvdXJj
ZSogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIGdfc291cmNlX3JlZihwdHIpOwotICAg
IHJldHVybiBwdHI7Ci19Ci0KLXRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdTb3VyY2UqIHB0
cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBnX3NvdXJjZV91bnJlZihwdHIpOwotfQotCi10
ZW1wbGF0ZSA8PiBHUHRyQXJyYXkqIHJlZkdQdHIoR1B0ckFycmF5KiBwdHIpCi17Ci0gICAgaWYg
KHB0cikKLSAgICAgICAgZ19wdHJfYXJyYXlfcmVmKHB0cik7Ci0gICAgcmV0dXJuIHB0cjsKLX0K
LQotdGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR1B0ckFycmF5KiBwdHIpCi17Ci0gICAgaWYg
KHB0cikKLSAgICAgICAgZ19wdHJfYXJyYXlfdW5yZWYocHRyKTsKLX0KLQotdGVtcGxhdGUgPD4g
R0J5dGVBcnJheSogcmVmR1B0cihHQnl0ZUFycmF5KiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAg
ICAgICAgZ19ieXRlX2FycmF5X3JlZihwdHIpOwotICAgIHJldHVybiBwdHI7Ci19Ci0KLXRlbXBs
YXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdCeXRlQXJyYXkqIHB0cikKLXsKLSAgICBpZiAocHRyKQot
ICAgICAgICBnX2J5dGVfYXJyYXlfdW5yZWYocHRyKTsKLX0KLQotdGVtcGxhdGUgPD4gR0Nsb3N1
cmUqIHJlZkdQdHIoR0Nsb3N1cmUqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBnX2Ns
b3N1cmVfcmVmKHB0cik7Ci0gICAgcmV0dXJuIHB0cjsKLX0KLQotdGVtcGxhdGUgPD4gdm9pZCBk
ZXJlZkdQdHIoR0Nsb3N1cmUqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBnX2Nsb3N1
cmVfdW5yZWYocHRyKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLSNlbmRpZiAvLyBVU0Uo
R0xJQikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR1JlZlB0ci5oIGIvU291
cmNlL1dURi93dGYvZ29iamVjdC9HUmVmUHRyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGJlZTY5NzU5ZmU0NWY1ZjEwNDllNzE2ZWI1ODAxNGRhYmY1MWM2YjYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvZ29iamVj
dC9HUmVmUHRyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNjEgKzAsMCBAQAotLyoKLSAqICBDb3B5
cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICogIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICogIENvcHly
aWdodCAoQykgMjAwOSBNYXJ0aW4gUm9iaW5zb24KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
Ci0gKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgV1RG
X0dSZWZQdHJfaAotI2RlZmluZSBXVEZfR1JlZlB0cl9oCi0KLSNpZiBVU0UoR0xJQikKLQotI2lu
Y2x1ZGUgPHd0Zi9HZXRQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8
YWxnb3JpdGhtPgotCi1leHRlcm4gIkMiIHZvaWQgZ19vYmplY3RfdW5yZWYoZ3BvaW50ZXIpOwot
ZXh0ZXJuICJDIiBncG9pbnRlciBnX29iamVjdF9yZWZfc2luayhncG9pbnRlcik7Ci0KLW5hbWVz
cGFjZSBXVEYgewotCi1lbnVtIEdSZWZQdHJBZG9wdFR5cGUgeyBHUmVmUHRyQWRvcHQgfTsKLXRl
bXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgVCogcmVmR1B0cihUKik7Ci10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4gaW5saW5lIHZvaWQgZGVyZWZHUHRyKFQqKTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
PiBjbGFzcyBHUmVmUHRyOwotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IEdSZWZQdHI8VD4gYWRvcHRH
UmVmKFQqKTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEdSZWZQdHIgewotcHVibGlj
OgotICAgIHR5cGVkZWYgVCBWYWx1ZVR5cGU7Ci0gICAgdHlwZWRlZiBWYWx1ZVR5cGUqIFB0clR5
cGU7Ci0KLSAgICBHUmVmUHRyKCkgOiBtX3B0cigwKSB7IH0KLQotICAgIEdSZWZQdHIoVCogcHRy
KQotICAgICAgICA6IG1fcHRyKHB0cikKLSAgICB7Ci0gICAgICAgIGlmIChwdHIpCi0gICAgICAg
ICAgICByZWZHUHRyKHB0cik7Ci0gICAgfQotCi0gICAgR1JlZlB0cihjb25zdCBHUmVmUHRyJiBv
KQotICAgICAgICA6IG1fcHRyKG8ubV9wdHIpCi0gICAgewotICAgICAgICBpZiAoVCogcHRyID0g
bV9wdHIpCi0gICAgICAgICAgICByZWZHUHRyKHB0cik7Ci0gICAgfQotCi0gICAgdGVtcGxhdGUg
PHR5cGVuYW1lIFU+IEdSZWZQdHIoY29uc3QgR1JlZlB0cjxVPiYgbykKLSAgICAgICAgOiBtX3B0
cihvLmdldCgpKQotICAgIHsKLSAgICAgICAgaWYgKFQqIHB0ciA9IG1fcHRyKQotICAgICAgICAg
ICAgcmVmR1B0cihwdHIpOwotICAgIH0KLQotICAgIEdSZWZQdHIoR1JlZlB0ciYmIG8pIDogbV9w
dHIoby5sZWFrUmVmKCkpIHsgfQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBHUmVmUHRyKEdS
ZWZQdHI8VT4mJiBvKSA6IG1fcHRyKG8ubGVha1JlZigpKSB7IH0KLQotICAgIH5HUmVmUHRyKCkK
LSAgICB7Ci0gICAgICAgIGlmIChUKiBwdHIgPSBtX3B0cikKLSAgICAgICAgICAgIGRlcmVmR1B0
cihwdHIpOwotICAgIH0KLQotICAgIHZvaWQgY2xlYXIoKQotICAgIHsKLSAgICAgICAgVCogcHRy
ID0gbV9wdHI7Ci0gICAgICAgIG1fcHRyID0gMDsKLSAgICAgICAgaWYgKHB0cikKLSAgICAgICAg
ICAgIGRlcmVmR1B0cihwdHIpOwotICAgIH0KLQotICAgIFQqIGxlYWtSZWYoKSBXQVJOX1VOVVNF
RF9SRVRVUk4KLSAgICB7Ci0gICAgICAgIFQqIHB0ciA9IG1fcHRyOwotICAgICAgICBtX3B0ciA9
IDA7Ci0gICAgICAgIHJldHVybiBwdHI7Ci0gICAgfQotCi0gICAgVComIG91dFB0cigpCi0gICAg
ewotICAgICAgICBBU1NFUlQoIW1fcHRyKTsKLSAgICAgICAgcmV0dXJuIG1fcHRyOwotICAgIH0K
LQotICAgIC8vIEhhc2ggdGFibGUgZGVsZXRlZCB2YWx1ZXMsIHdoaWNoIGFyZSBvbmx5IGNvbnN0
cnVjdGVkIGFuZCBuZXZlciBjb3BpZWQgb3IgZGVzdHJveWVkLgotICAgIEdSZWZQdHIoSGFzaFRh
YmxlRGVsZXRlZFZhbHVlVHlwZSkgOiBtX3B0cihoYXNoVGFibGVEZWxldGVkVmFsdWUoKSkgeyB9
Ci0gICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHRy
ID09IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Ci0KLSAgICBUKiBnZXQoKSBjb25zdCB7IHJl
dHVybiBtX3B0cjsgfQotICAgIFQmIG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuICptX3B0cjsg
fQotICAgIEFMV0FZU19JTkxJTkUgVCogb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuIG1fcHRy
OyB9Ci0KLSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX3B0cjsgfQotCi0g
ICAgLy8gVGhpcyBjb252ZXJzaW9uIG9wZXJhdG9yIGFsbG93cyBpbXBsaWNpdCBjb252ZXJzaW9u
IHRvIGJvb2wgYnV0IG5vdCB0byBvdGhlciBpbnRlZ2VyIHR5cGVzLgotICAgIHR5cGVkZWYgVCog
R1JlZlB0cjo6KlVuc3BlY2lmaWVkQm9vbFR5cGU7Ci0gICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRC
b29sVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyID8gJkdSZWZQdHI6Om1fcHRyIDogMDsgfQot
Ci0gICAgR1JlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IEdSZWZQdHImKTsKLSAgICBHUmVmUHRyJiBv
cGVyYXRvcj0oR1JlZlB0ciYmKTsKLSAgICBHUmVmUHRyJiBvcGVyYXRvcj0oVCopOwotICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBVPiBHUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgR1JlZlB0cjxVPiYp
OwotCi0gICAgdm9pZCBzd2FwKEdSZWZQdHImKTsKLSAgICBmcmllbmQgR1JlZlB0ciBhZG9wdEdS
ZWY8VD4oVCopOwotCi1wcml2YXRlOgotICAgIHN0YXRpYyBUKiBoYXNoVGFibGVEZWxldGVkVmFs
dWUoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PFQqPigtMSk7IH0KLSAgICAvLyBBZG9wdGlu
ZyBjb25zdHJ1Y3Rvci4KLSAgICBHUmVmUHRyKFQqIHB0ciwgR1JlZlB0ckFkb3B0VHlwZSkgOiBt
X3B0cihwdHIpIHt9Ci0KLSAgICBUKiBtX3B0cjsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
PiBpbmxpbmUgR1JlZlB0cjxUPiYgR1JlZlB0cjxUPjo6b3BlcmF0b3I9KGNvbnN0IEdSZWZQdHI8
VD4mIG8pCi17Ci0gICAgVCogb3B0ciA9IG8uZ2V0KCk7Ci0gICAgaWYgKG9wdHIpCi0gICAgICAg
IHJlZkdQdHIob3B0cik7Ci0gICAgVCogcHRyID0gbV9wdHI7Ci0gICAgbV9wdHIgPSBvcHRyOwot
ICAgIGlmIChwdHIpCi0gICAgICAgIGRlcmVmR1B0cihwdHIpOwotICAgIHJldHVybiAqdGhpczsK
LX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBHUmVmUHRyPFQ+JiBHUmVmUHRyPFQ+
OjpvcGVyYXRvcj0oR1JlZlB0cjxUPiYmIG8pCi17Ci0gICAgR1JlZlB0ciBwdHIgPSBXVEY6Om1v
dmUobyk7Ci0gICAgc3dhcChwdHIpOwotICAgIHJldHVybiAqdGhpczsKLX0KLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+IGlubGluZSBHUmVmUHRyPFQ+JiBHUmVmUHRyPFQ+OjpvcGVyYXRvcj0oVCog
b3B0cikKLXsKLSAgICBUKiBwdHIgPSBtX3B0cjsKLSAgICBpZiAob3B0cikKLSAgICAgICAgcmVm
R1B0cihvcHRyKTsKLSAgICBtX3B0ciA9IG9wdHI7Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZGVy
ZWZHUHRyKHB0cik7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi10ZW1wbGF0ZSA8Y2xhc3MgVD4g
aW5saW5lIHZvaWQgR1JlZlB0cjxUPjo6c3dhcChHUmVmUHRyPFQ+JiBvKQotewotICAgIHN0ZDo6
c3dhcChtX3B0ciwgby5tX3B0cik7Ci19Ci0KLXRlbXBsYXRlIDxjbGFzcyBUPiBpbmxpbmUgdm9p
ZCBzd2FwKEdSZWZQdHI8VD4mIGEsIEdSZWZQdHI8VD4mIGIpCi17Ci0gICAgYS5zd2FwKGIpOwot
fQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBHUmVmUHRyPFQ+JiBhLCBjb25zdCBHUmVmUHRyPFU+JiBiKQotewotICAgIHJl
dHVybiBhLmdldCgpID09IGIuZ2V0KCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBl
bmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdSZWZQdHI8VD4mIGEsIFUqIGIp
Ci17Ci0gICAgcmV0dXJuIGEuZ2V0KCkgPT0gYjsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oVCogYSwgY29uc3QgR1JlZlB0cjxV
PiYgYikKLXsKLSAgICByZXR1cm4gYSA9PSBiLmdldCgpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBHUmVmUHRyPFQ+
JiBhLCBjb25zdCBHUmVmUHRyPFU+JiBiKQotewotICAgIHJldHVybiBhLmdldCgpICE9IGIuZ2V0
KCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBv
cGVyYXRvciE9KGNvbnN0IEdSZWZQdHI8VD4mIGEsIFUqIGIpCi17Ci0gICAgcmV0dXJuIGEuZ2V0
KCkgIT0gYjsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBi
b29sIG9wZXJhdG9yIT0oVCogYSwgY29uc3QgR1JlZlB0cjxVPiYgYikKLXsKLSAgICByZXR1cm4g
YSAhPSBiLmdldCgpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5s
aW5lIEdSZWZQdHI8VD4gc3RhdGljX3BvaW50ZXJfY2FzdChjb25zdCBHUmVmUHRyPFU+JiBwKQot
ewotICAgIHJldHVybiBHUmVmUHRyPFQ+KHN0YXRpY19jYXN0PFQqPihwLmdldCgpKSk7Ci19Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgR1JlZlB0cjxUPiBjb25z
dF9wb2ludGVyX2Nhc3QoY29uc3QgR1JlZlB0cjxVPiYgcCkKLXsKLSAgICByZXR1cm4gR1JlZlB0
cjxUPihjb25zdF9jYXN0PFQqPihwLmdldCgpKSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
PiBzdHJ1Y3QgSXNTbWFydFB0cjxHUmVmUHRyPFQ+PiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wg
dmFsdWUgPSB0cnVlOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IEdSZWZQdHI8VD4gYWRv
cHRHUmVmKFQqIHApCi17Ci0gICAgcmV0dXJuIEdSZWZQdHI8VD4ocCwgR1JlZlB0ckFkb3B0KTsK
LX0KLQotdGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIEdIYXNoVGFibGUqIHJlZkdQdHIo
R0hhc2hUYWJsZSogcHRyKTsKLXRlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRl
cmVmR1B0cihHSGFzaFRhYmxlKiBwdHIpOwotdGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRF
IEdNYWluQ29udGV4dCogcmVmR1B0cihHTWFpbkNvbnRleHQqIHB0cik7Ci10ZW1wbGF0ZSA8PiBX
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXJlZkdQdHIoR01haW5Db250ZXh0KiBwdHIpOwotdGVt
cGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIEdNYWluTG9vcCogcmVmR1B0cihHTWFpbkxvb3Aq
IHB0cik7Ci10ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXJlZkdQdHIoR01h
aW5Mb29wKiBwdHIpOwotdGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIEdWYXJpYW50KiBy
ZWZHUHRyKEdWYXJpYW50KiBwdHIpOwotdGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgZGVyZWZHUHRyKEdWYXJpYW50KiBwdHIpOwotdGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklW
QVRFIEdWYXJpYW50QnVpbGRlciogcmVmR1B0cihHVmFyaWFudEJ1aWxkZXIqIHB0cik7Ci10ZW1w
bGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXJlZkdQdHIoR1ZhcmlhbnRCdWlsZGVy
KiBwdHIpOwotdGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIEdTb3VyY2UqIHJlZkdQdHIo
R1NvdXJjZSogcHRyKTsKLXRlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRlcmVm
R1B0cihHU291cmNlKiBwdHIpOwotdGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIEdQdHJB
cnJheSogcmVmR1B0cihHUHRyQXJyYXkqKTsKLXRlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIGRlcmVmR1B0cihHUHRyQXJyYXkqKTsKLXRlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJ
VkFURSBHQnl0ZUFycmF5KiByZWZHUHRyKEdCeXRlQXJyYXkqKTsKLXRlbXBsYXRlIDw+IFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIGRlcmVmR1B0cihHQnl0ZUFycmF5Kik7Ci10ZW1wbGF0ZSA8PiBX
VEZfRVhQT1JUX1BSSVZBVEUgR0J5dGVzKiByZWZHUHRyKEdCeXRlcyopOwotdGVtcGxhdGUgPD4g
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVyZWZHUHRyKEdCeXRlcyopOwotdGVtcGxhdGUgPD4g
V1RGX0VYUE9SVF9QUklWQVRFIEdDbG9zdXJlKiByZWZHUHRyKEdDbG9zdXJlKik7Ci10ZW1wbGF0
ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXJlZkdQdHIoR0Nsb3N1cmUqKTsKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBUKiByZWZHUHRyKFQqIHB0cikKLXsKLSAgICBpZiAo
cHRyKQotICAgICAgICBnX29iamVjdF9yZWZfc2luayhwdHIpOwotICAgIHJldHVybiBwdHI7Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBkZXJlZkdQdHIoVCogcHRyKQot
ewotICAgIGlmIChwdHIpCi0gICAgICAgIGdfb2JqZWN0X3VucmVmKHB0cik7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OkdSZWZQdHI7Ci11c2luZyBXVEY6OmFkb3B0R1Jl
ZjsKLQotI2VuZGlmIC8vIFVTRShHTElCKQotCi0jZW5kaWYgLy8gV1RGX0dSZWZQdHJfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ29iamVjdC9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNl
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhYzJiM2JkYTNhY2Q4MmNmNjJlMTdj
MjVjZjM0NTk2ZjhjNjQzN2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dURi93dGYvZ29iamVjdC9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNl
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE3MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmgiCi0KLSNpZiBVU0UoR0xJQikKLQotI2lu
Y2x1ZGUgPGdpby9naW8uaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HTXV0ZXhMb2NrZXIuaD4K
LQotbmFtZXNwYWNlIFdURiB7Ci0KLUdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OkdUaHJlYWRT
YWZlTWFpbkxvb3BTb3VyY2UoKQotewotICAgIGdfcmVjX211dGV4X2luaXQoJm1fbXV0ZXgpOwot
fQotCi1HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjp+R1RocmVhZFNhZmVNYWluTG9vcFNvdXJj
ZSgpCi17Ci0gICAgY2FuY2VsKCk7Ci0gICAgZ19yZWNfbXV0ZXhfY2xlYXIoJm1fbXV0ZXgpOwot
fQotCi12b2lkIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OmNhbmNlbCgpCi17Ci0gICAgR011
dGV4TG9ja2VyPEdSZWNNdXRleD4gbG9ja2VyKG1fbXV0ZXgpOwotCi0gICAgLy8gVGhlIGdlbmVy
YWwgY2FuY2VsbGFibGUgb2JqZWN0IHNob3VsZCBvbmx5IGJlIHByZXNlbnQgaWYgd2UncmUgY3Vy
cmVudGx5IGRpc3BhdGNoaW5nIHRoaXMgR01haW5Mb29wU291cmNlLgotICAgIEFTU0VSVCghbV9j
YW5jZWxsYWJsZSB8fCBtX3N0YXR1cyA9PSBEaXNwYXRjaGluZyk7Ci0KLSAgICAvLyBUaGUgc291
cmNlIGlzIHBlcmhhcHMgYmVpbmcgY2FuY2VsbGVkIGluIHRoZSBtaWRkbGUgb2YgYSBjYWxsYmFj
ayBkaXNwYXRjaC4KLSAgICAvLyBDYW5jZWxsaW5nIHRoaXMgR0NhbmNlbGxhYmxlIG9iamVjdCB3
aWxsIGNvbnZleSB0aGlzIGluZm9ybWF0aW9uIHRvIHRoZQotICAgIC8vIGN1cnJlbnQgZXhlY3V0
aW9uIGNvbnRleHQgd2hlbiB0aGUgY2FsbGJhY2sgZGlzcGF0Y2ggaXMgZmluaXNoZWQuCi0gICAg
Z19jYW5jZWxsYWJsZV9jYW5jZWwobV9jYW5jZWxsYWJsZS5nZXQoKSk7Ci0gICAgbV9jYW5jZWxs
YWJsZSA9IG51bGxwdHI7Ci0KLSAgICBHTWFpbkxvb3BTb3VyY2U6OmNhbmNlbCgpOwotfQotCi12
b2lkIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUs
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb24sIGludCBwcmlvcml0eSwgc3RkOjpmdW5j
dGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKLXsK
LSAgICBHTXV0ZXhMb2NrZXI8R1JlY011dGV4PiBsb2NrZXIobV9tdXRleCk7Ci0gICAgR01haW5M
b29wU291cmNlOjpzY2hlZHVsZShuYW1lLCBmdW5jdGlvbiwgcHJpb3JpdHksIGRlc3Ryb3lGdW5j
dGlvbiwgY29udGV4dCk7Ci0gICAgbV9jb250ZXh0LmNhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdf
Y2FuY2VsbGFibGVfbmV3KCkpOwotfQotCi12b2lkIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6
OnNjaGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4gZnVuY3Rp
b24sIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24s
IEdNYWluQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBHTXV0ZXhMb2NrZXI8R1JlY011dGV4PiBs
b2NrZXIobV9tdXRleCk7Ci0gICAgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZShuYW1lLCBmdW5j
dGlvbiwgcHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwgY29udGV4dCk7Ci0gICAgbV9jb250ZXh0
LmNhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOwotfQotCi12b2lk
IEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFy
KiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZGVz
dHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgR011dGV4TG9ja2Vy
PEdSZWNNdXRleD4gbG9ja2VyKG1fbXV0ZXgpOwotICAgIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1
bGVBZnRlckRlbGF5KG5hbWUsIGZ1bmN0aW9uLCBkZWxheSwgcHJpb3JpdHksIGRlc3Ryb3lGdW5j
dGlvbiwgY29udGV4dCk7Ci0gICAgbV9jb250ZXh0LmNhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdf
Y2FuY2VsbGFibGVfbmV3KCkpOwotfQotCi12b2lkIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6
OnNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2wg
KCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3Jp
dHksIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQq
IGNvbnRleHQpCi17Ci0gICAgR011dGV4TG9ja2VyPEdSZWNNdXRleD4gbG9ja2VyKG1fbXV0ZXgp
OwotICAgIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KG5hbWUsIGZ1bmN0aW9u
LCBkZWxheSwgcHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwgY29udGV4dCk7Ci0gICAgbV9jb250
ZXh0LmNhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOwotfQotCi12
b2lkIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBj
aGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6
c2Vjb25kcyBkZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGRlc3Ry
b3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQotewotICAgIEdNdXRleExvY2tlcjxH
UmVjTXV0ZXg+IGxvY2tlcihtX211dGV4KTsKLSAgICBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxl
QWZ0ZXJEZWxheShuYW1lLCBmdW5jdGlvbiwgZGVsYXksIHByaW9yaXR5LCBkZXN0cm95RnVuY3Rp
b24sIGNvbnRleHQpOwotICAgIG1fY29udGV4dC5jYW5jZWxsYWJsZSA9IGFkb3B0R1JlZihnX2Nh
bmNlbGxhYmxlX25ldygpKTsKLX0KLQotdm9pZCBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpz
Y2hlZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sICgp
PiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86OnNlY29uZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3Rk
OjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4
dCkKLXsKLSAgICBHTXV0ZXhMb2NrZXI8R1JlY011dGV4PiBsb2NrZXIobV9tdXRleCk7Ci0gICAg
R01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkobmFtZSwgZnVuY3Rpb24sIGRlbGF5
LCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKLSAgICBtX2NvbnRleHQuY2Fu
Y2VsbGFibGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7Ci19Ci0KLWJvb2wgR1Ro
cmVhZFNhZmVNYWluTG9vcFNvdXJjZTo6cHJlcGFyZVZvaWRDYWxsYmFjayhDb250ZXh0JiBjb250
ZXh0KQotewotICAgIEdNdXRleExvY2tlcjxHUmVjTXV0ZXg+IGxvY2tlcihtX211dGV4KTsKLSAg
ICBib29sIHJldHZhbCA9IEdNYWluTG9vcFNvdXJjZTo6cHJlcGFyZVZvaWRDYWxsYmFjayhjb250
ZXh0KTsKLSAgICBtX2NhbmNlbGxhYmxlID0gY29udGV4dC5jYW5jZWxsYWJsZTsKLSAgICByZXR1
cm4gcmV0dmFsOwotfQotCi12b2lkIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OmZpbmlzaFZv
aWRDYWxsYmFjaygpCi17Ci0gICAgR011dGV4TG9ja2VyPEdSZWNNdXRleD4gbG9ja2VyKG1fbXV0
ZXgpOwotICAgIEdNYWluTG9vcFNvdXJjZTo6ZmluaXNoVm9pZENhbGxiYWNrKCk7Ci0gICAgbV9j
YW5jZWxsYWJsZSA9IG51bGxwdHI7Ci19Ci0KLXZvaWQgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJj
ZTo6dm9pZENhbGxiYWNrKCkKLXsKLSAgICBDb250ZXh0IGNvbnRleHQ7Ci0gICAgaWYgKCFwcmVw
YXJlVm9pZENhbGxiYWNrKGNvbnRleHQpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb250ZXh0
LnZvaWRDYWxsYmFjaygpOwotCi0gICAgaWYgKGdfY2FuY2VsbGFibGVfaXNfY2FuY2VsbGVkKGNv
bnRleHQuY2FuY2VsbGFibGUuZ2V0KCkpKSB7Ci0gICAgICAgIGNvbnRleHQuZGVzdHJveVNvdXJj
ZSgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZmluaXNoVm9pZENhbGxiYWNrKCk7
Ci0gICAgY29udGV4dC5kZXN0cm95U291cmNlKCk7Ci19Ci0KLWJvb2wgR1RocmVhZFNhZmVNYWlu
TG9vcFNvdXJjZTo6cHJlcGFyZUJvb2xDYWxsYmFjayhDb250ZXh0JiBjb250ZXh0KQotewotICAg
IEdNdXRleExvY2tlcjxHUmVjTXV0ZXg+IGxvY2tlcihtX211dGV4KTsKLSAgICBib29sIHJldHZh
bCA9IEdNYWluTG9vcFNvdXJjZTo6cHJlcGFyZUJvb2xDYWxsYmFjayhjb250ZXh0KTsKLSAgICBt
X2NhbmNlbGxhYmxlID0gY29udGV4dC5jYW5jZWxsYWJsZTsKLSAgICByZXR1cm4gcmV0dmFsOwot
fQotCi12b2lkIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U6OmZpbmlzaEJvb2xDYWxsYmFjayhi
b29sIHJldHZhbCwgQ29udGV4dCYgY29udGV4dCkKLXsKLSAgICBHTXV0ZXhMb2NrZXI8R1JlY011
dGV4PiBsb2NrZXIobV9tdXRleCk7Ci0gICAgR01haW5Mb29wU291cmNlOjpmaW5pc2hCb29sQ2Fs
bGJhY2socmV0dmFsLCBjb250ZXh0KTsKLSAgICBtX2NhbmNlbGxhYmxlID0gbnVsbHB0cjsKLX0K
LQotYm9vbCBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlOjpib29sQ2FsbGJhY2soKQotewotICAg
IENvbnRleHQgY29udGV4dDsKLSAgICBpZiAoIXByZXBhcmVCb29sQ2FsbGJhY2soY29udGV4dCkp
Ci0gICAgICAgIHJldHVybiBTdG9wOwotCi0gICAgYm9vbCByZXR2YWwgPSBjb250ZXh0LmJvb2xD
YWxsYmFjaygpOwotCi0gICAgaWYgKGdfY2FuY2VsbGFibGVfaXNfY2FuY2VsbGVkKGNvbnRleHQu
Y2FuY2VsbGFibGUuZ2V0KCkpKSB7Ci0gICAgICAgIGNvbnRleHQuZGVzdHJveVNvdXJjZSgpOwot
ICAgICAgICByZXR1cm4gU3RvcDsKLSAgICB9Ci0KLSAgICBmaW5pc2hCb29sQ2FsbGJhY2socmV0
dmFsLCBjb250ZXh0KTsKLSAgICBpZiAoY29udGV4dC5zb3VyY2UpCi0gICAgICAgIGNvbnRleHQu
ZGVzdHJveVNvdXJjZSgpOwotICAgIHJldHVybiByZXR2YWw7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdURgotCi0jZW5kaWYgLy8gVVNFKEdMSUIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9n
b2JqZWN0L0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuaCBiL1NvdXJjZS9XVEYvd3RmL2dvYmpl
Y3QvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4NzdlODRhMjAyOTg1NTlhMjdhYzc4OGI1YWQ5MWVjMjM3OTJmYTFkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL2dvYmpl
Y3QvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2VfaAotI2RlZmluZSBHVGhyZWFkU2FmZU1h
aW5Mb29wU291cmNlX2gKLQotI2lmIFVTRShHTElCKQotCi0jaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R01haW5Mb29wU291cmNlLmg+Ci0KLXR5cGVkZWYgc3RydWN0IF9HUmVjTXV0ZXggR1JlY011dGV4
OwotCi1uYW1lc3BhY2UgV1RGIHsKLQotY2xhc3MgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSBm
aW5hbCA6IHB1YmxpYyBHTWFpbkxvb3BTb3VyY2UgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UpOwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotcHVibGljOgotICAgIFdURl9FWFBPUlRfUFJJVkFURSBHVGhyZWFkU2FmZU1haW5Mb29wU291
cmNlKCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgfkdUaHJlYWRTYWZlTWFpbkxv
b3BTb3VyY2UoKTsKLQotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGUoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+LCBpbnQgcHJpb3JpdHkg
PSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rp
b24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Ci0gICAgV1RG
X0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBzY2hlZHVsZShjb25zdCBjaGFyKiBuYW1lLCBz
dGQ6OmZ1bmN0aW9uPGJvb2woKT4sIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29u
dGV4dCogPSBudWxscHRyKSBvdmVycmlkZTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVh
bCB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJ
T1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51
bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKSBvdmVycmlkZTsKLSAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdmlydHVhbCB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1l
LCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMsIGludCBw
cmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ry
b3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKSBvdmVycmlkZTsK
LSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheShj
b25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4sIHN0ZDo6Y2hyb25vOjpzZWNv
bmRzLCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFm
dGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+LCBzdGQ6OmNo
cm9ubzo6c2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9
IG51bGxwdHIpIG92ZXJyaWRlOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQg
Y2FuY2VsKCkgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHZvaWRDYWxs
YmFjaygpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCBib29sQ2FsbGJhY2soKSBvdmVycmlk
ZTsKLQotICAgIHZpcnR1YWwgYm9vbCBwcmVwYXJlVm9pZENhbGxiYWNrKENvbnRleHQmKSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZmluaXNoVm9pZENhbGxiYWNrKCkgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCBib29sIHByZXBhcmVCb29sQ2FsbGJhY2soQ29udGV4dCYpIG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hCb29sQ2FsbGJhY2soYm9vbCByZXR2YWwsIENvbnRleHQm
KSBvdmVycmlkZTsKLQotICAgIEdSZWNNdXRleCBtX211dGV4OwotICAgIEdSZWZQdHI8R0NhbmNl
bGxhYmxlPiBtX2NhbmNlbGxhYmxlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5n
IFdURjo6R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZTsKLQotI2VuZGlmIC8vIFVTRShHTElCKQot
Ci0jZW5kaWYgLy8gR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oIGIvU291cmNlL1dURi93dGYvZ29iamVjdC9H
VHlwZWRlZnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzIyOThkNTA1YWFiOTJj
MGMyY2EwOGVjY2Y2Mjc2YmJkNGM1NDY3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oCisrKyAv
ZGV2L251bGwKQEAgLTEsMTEwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdh
bGlhLCBTLkwuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAq
Ci0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCi0gKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgR3RrVHlwZWRlZnNfaAotI2RlZmluZSBHdGtU
eXBlZGVmc19oCi0KLS8qIFZhbmlsbGEgQyBjb2RlIGRvZXMgbm90IHNlZW0gdG8gYmUgYWJsZSB0
byBoYW5kbGUgZm9yd2FyZC1kZWNsYXJhdGlvbiB0eXBlZGVmcy4gKi8KLSNpZmRlZiAgX19jcGx1
c3BsdXMKLQotdHlwZWRlZiBjaGFyIGdjaGFyOwotdHlwZWRlZiBkb3VibGUgZ2RvdWJsZTsKLXR5
cGVkZWYgZmxvYXQgZ2Zsb2F0OwotdHlwZWRlZiBpbnQgZ2ludDsKLXR5cGVkZWYgZ2ludCBnYm9v
bGVhbjsKLXR5cGVkZWYgbG9uZyBnbG9uZzsKLXR5cGVkZWYgc2hvcnQgZ3Nob3J0OwotdHlwZWRl
ZiB1bnNpZ25lZCBjaGFyIGd1Y2hhcjsKLXR5cGVkZWYgdW5zaWduZWQgaW50IGd1aW50OwotdHlw
ZWRlZiB1bnNpZ25lZCBsb25nIGd1bG9uZzsKLXR5cGVkZWYgdW5zaWduZWQgc2hvcnQgZ3VzaG9y
dDsKLXR5cGVkZWYgdm9pZCogZ3BvaW50ZXI7Ci0KLXR5cGVkZWYgc3RydWN0IF9HQXN5bmNSZXN1
bHQgR0FzeW5jUmVzdWx0OwotdHlwZWRlZiBzdHJ1Y3QgX0dDYW5jZWxsYWJsZSBHQ2FuY2VsbGFi
bGU7Ci10eXBlZGVmIHN0cnVjdCBfR0NoYXJzZXRDb252ZXJ0ZXIgR0NoYXJzZXRDb252ZXJ0ZXI7
Ci10eXBlZGVmIHN0cnVjdCBfR0RpciBHRGlyOwotdHlwZWRlZiBzdHJ1Y3QgX0dka0F0b20qIEdk
a0F0b207Ci10eXBlZGVmIHN0cnVjdCBfR2RrQ3Vyc29yIEdka0N1cnNvcjsKLXR5cGVkZWYgc3Ry
dWN0IF9HZGtEcmFnQ29udGV4dCBHZGtEcmFnQ29udGV4dDsKLXR5cGVkZWYgc3RydWN0IF9HZGtF
dmVudENvbmZpZ3VyZSBHZGtFdmVudENvbmZpZ3VyZTsKLXR5cGVkZWYgc3RydWN0IF9HZGtFdmVu
dEV4cG9zZSBHZGtFdmVudEV4cG9zZTsKLXR5cGVkZWYgc3RydWN0IF9HZGtQaXhidWYgR2RrUGl4
YnVmOwotdHlwZWRlZiBzdHJ1Y3QgX0dFcnJvciBHRXJyb3I7Ci10eXBlZGVmIHN0cnVjdCBfR0Zp
bGUgR0ZpbGU7Ci10eXBlZGVmIHN0cnVjdCBfR0hhc2hUYWJsZSBHSGFzaFRhYmxlOwotdHlwZWRl
ZiBzdHJ1Y3QgX0dJbnB1dFN0cmVhbSBHSW5wdXRTdHJlYW07Ci10eXBlZGVmIHN0cnVjdCBfR0xp
c3QgR0xpc3Q7Ci10eXBlZGVmIHN0cnVjdCBfR01haW5Db250ZXh0IEdNYWluQ29udGV4dDsKLXR5
cGVkZWYgc3RydWN0IF9HTWFpbkxvb3AgR01haW5Mb29wOwotdHlwZWRlZiBzdHJ1Y3QgX0dQYXR0
ZXJuU3BlYyBHUGF0dGVyblNwZWM7Ci10eXBlZGVmIHN0cnVjdCBfR1BvbGxhYmxlT3V0cHV0U3Ry
ZWFtIEdQb2xsYWJsZU91dHB1dFN0cmVhbTsKLXR5cGVkZWYgc3RydWN0IF9HU0xpc3QgR1NMaXN0
OwotdHlwZWRlZiBzdHJ1Y3QgX0dTb2NrZXRDbGllbnQgR1NvY2tldENsaWVudDsKLXR5cGVkZWYg
c3RydWN0IF9HU29ja2V0Q29ubmVjdGlvbiBHU29ja2V0Q29ubmVjdGlvbjsKLXR5cGVkZWYgc3Ry
dWN0IF9HU291cmNlIEdTb3VyY2U7Ci10eXBlZGVmIHN0cnVjdCBfR1ZhcmlhbnQgR1ZhcmlhbnQ7
Ci10eXBlZGVmIHN0cnVjdCBfR1ZhcmlhbnRCdWlsZGVyIEdWYXJpYW50QnVpbGRlcjsKLXR5cGVk
ZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwotdHlwZWRlZiBzdHJ1Y3QgX0dUaW1lciBHVGlt
ZXI7Ci10eXBlZGVmIHN0cnVjdCBfR0tleUZpbGUgR0tleUZpbGU7Ci10eXBlZGVmIHN0cnVjdCBf
R1B0ckFycmF5IEdQdHJBcnJheTsKLXR5cGVkZWYgc3RydWN0IF9HQnl0ZUFycmF5IEdCeXRlQXJy
YXk7Ci10eXBlZGVmIHN0cnVjdCBfR0J5dGVzIEdCeXRlczsKLXR5cGVkZWYgc3RydWN0IF9HQ2xv
c3VyZSBHQ2xvc3VyZTsKLQotI2lmIFVTRShDQUlSTykKLXR5cGVkZWYgc3RydWN0IF9jYWlyb19z
dXJmYWNlIGNhaXJvX3N1cmZhY2VfdDsKLXR5cGVkZWYgc3RydWN0IF9jYWlyb19yZWN0YW5nbGVf
aW50IGNhaXJvX3JlY3RhbmdsZV9pbnRfdDsKLSNlbmRpZgotCi0jaWYgVVNFKENMVVRURVIpCi10
eXBlZGVmIHN0cnVjdCBfQ2x1dHRlckFjdG9yIENsdXR0ZXJBY3RvcjsKLXR5cGVkZWYgc3RydWN0
IF9HcmFwaGljc0xheWVyQWN0b3IgR3JhcGhpY3NMYXllckFjdG9yOwotI2VuZGlmCi0KLSNpZiBQ
TEFURk9STShHVEspCi10eXBlZGVmIHN0cnVjdCBfR3RrQWN0aW9uIEd0a0FjdGlvbjsKLXR5cGVk
ZWYgc3RydWN0IF9HdGtBZGp1c3RtZW50IEd0a0FkanVzdG1lbnQ7Ci10eXBlZGVmIHN0cnVjdCBf
R3RrQm9yZGVyIEd0a0JvcmRlcjsKLXR5cGVkZWYgc3RydWN0IF9HdGtDbGlwYm9hcmQgR3RrQ2xp
cGJvYXJkOwotdHlwZWRlZiBzdHJ1Y3QgX0d0a0NvbnRhaW5lciBHdGtDb250YWluZXI7Ci10eXBl
ZGVmIHN0cnVjdCBfR3RrSWNvbkluZm8gR3RrSWNvbkluZm87Ci10eXBlZGVmIHN0cnVjdCBfR3Rr
TWVudSBHdGtNZW51OwotdHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnVJdGVtIEd0a01lbnVJdGVtOwot
dHlwZWRlZiBzdHJ1Y3QgX0d0a09iamVjdCBHdGtPYmplY3Q7Ci10eXBlZGVmIHN0cnVjdCBfR3Rr
U2VsZWN0aW9uRGF0YSBHdGtTZWxlY3Rpb25EYXRhOwotdHlwZWRlZiBzdHJ1Y3QgX0d0a1N0eWxl
IEd0a1N0eWxlOwotdHlwZWRlZiBzdHJ1Y3QgX0d0a1RhcmdldExpc3QgR3RrVGFyZ2V0TGlzdDsK
LXR5cGVkZWYgc3RydWN0IF9HdGtUaGVtZVBhcnRzIEd0a1RoZW1lUGFydHM7Ci10eXBlZGVmIHN0
cnVjdCBfR3RrV2lkZ2V0IEd0a1dpZGdldDsKLXR5cGVkZWYgc3RydWN0IF9HdGtXaW5kb3cgR3Rr
V2luZG93OwotCi0jaWZkZWYgR1RLX0FQSV9WRVJTSU9OXzIKLXR5cGVkZWYgc3RydWN0IF9HZGtS
ZWN0YW5nbGUgR2RrUmVjdGFuZ2xlOwotdHlwZWRlZiBzdHJ1Y3QgX0dka0RyYXdhYmxlIEdka1dp
bmRvdzsKLSNlbHNlCi10eXBlZGVmIHN0cnVjdCBfR2RrV2luZG93IEdka1dpbmRvdzsKLXR5cGVk
ZWYgc3RydWN0IF9HdGtTdHlsZUNvbnRleHQgR3RrU3R5bGVDb250ZXh0OwotI2VuZGlmCi0KLSNl
bmRpZgotCi0jZW5kaWYKLSNlbmRpZiAvKiBHdGtUeXBlZGVmc19oICovCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL2dvYmpl
Y3QvR1VuaXF1ZVB0ci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZGE0ODhhODgz
MDdlNGE4MDNiNjBmMWRiNjYxZGE2YTE3M2UxNWUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5o
CisrKyAvZGV2L251bGwKQEAgLTEsMTI4ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCi0gKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIEdVbmlxdWVQdHJfaAotI2Rl
ZmluZSBHVW5pcXVlUHRyX2gKLQotI2lmIFVTRShHTElCKQotCi0jaW5jbHVkZSA8Z2lvL2dpby5o
PgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotdGVt
cGxhdGU8dHlwZW5hbWUgVD4KLXN0cnVjdCBHUHRyRGVsZXRlciB7Ci0gICAgdm9pZCBvcGVyYXRv
cigpKFQqIHB0cikgY29uc3QgeyBnX2ZyZWUocHRyKTsgfQotfTsKLQotdGVtcGxhdGU8dHlwZW5h
bWUgVD4KLXVzaW5nIEdVbmlxdWVQdHIgPSBzdGQ6OnVuaXF1ZV9wdHI8VCwgR1B0ckRlbGV0ZXI8
VD4+OwotCi0jZGVmaW5lIEZPUl9FQUNIX0dMSUJfREVMRVRFUihtYWNybykgXAotICAgIG1hY3Jv
KEdFcnJvciwgZ19lcnJvcl9mcmVlKSBcCi0gICAgbWFjcm8oR0xpc3QsIGdfbGlzdF9mcmVlKSBc
Ci0gICAgbWFjcm8oR1NMaXN0LCBnX3NsaXN0X2ZyZWUpIFwKLSAgICBtYWNybyhHUGF0dGVyblNw
ZWMsIGdfcGF0dGVybl9zcGVjX2ZyZWUpIFwKLSAgICBtYWNybyhHRGlyLCBnX2Rpcl9jbG9zZSkg
XAotICAgIG1hY3JvKEdUaW1lciwgZ190aW1lcl9kZXN0cm95KSBcCi0gICAgbWFjcm8oR0tleUZp
bGUsIGdfa2V5X2ZpbGVfZnJlZSkgXAotICAgIG1hY3JvKGNoYXIqLCBnX3N0cmZyZWV2KQotCi0j
ZGVmaW5lIFdURl9ERUZJTkVfR1BUUl9ERUxFVEVSKHR5cGVOYW1lLCBkZWxldGVyRnVuYykgXAot
ICAgIHRlbXBsYXRlPD4gc3RydWN0IEdQdHJEZWxldGVyPHR5cGVOYW1lPiBcCi0gICAgeyBcCi0g
ICAgICAgIHZvaWQgb3BlcmF0b3IoKSAodHlwZU5hbWUqIHB0cikgY29uc3QgXAotICAgICAgICB7
IFwKLSAgICAgICAgICAgIGlmIChwdHIpIFwKLSAgICAgICAgICAgICAgICBkZWxldGVyRnVuYyhw
dHIpOyBcCi0gICAgICAgIH0gXAotICAgIH07Ci0KLUZPUl9FQUNIX0dMSUJfREVMRVRFUihXVEZf
REVGSU5FX0dQVFJfREVMRVRFUikKLSN1bmRlZiBGT1JfRUFDSF9HTElCX0RFTEVURVIKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEdVbmlxdWVPdXRQdHIgewotICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEdVbmlxdWVPdXRQdHIpOwotcHVibGljOgotICAgIEdVbmlxdWVPdXRQdHIoKQot
ICAgICAgICA6IG1fcHRyKG51bGxwdHIpCi0gICAgewotICAgIH0KLQotICAgIH5HVW5pcXVlT3V0
UHRyKCkKLSAgICB7Ci0gICAgICAgIHJlc2V0KCk7Ci0gICAgfQotCi0gICAgVComIG91dFB0cigp
Ci0gICAgewotICAgICAgICByZXNldCgpOwotICAgICAgICByZXR1cm4gbV9wdHI7Ci0gICAgfQot
Ci0gICAgR1VuaXF1ZVB0cjxUPiByZWxlYXNlKCkKLSAgICB7Ci0gICAgICAgIEdVbmlxdWVQdHI8
VD4gcHRyKG1fcHRyKTsKLSAgICAgICAgbV9wdHIgPSBudWxscHRyOwotICAgICAgICByZXR1cm4g
cHRyOwotICAgIH0KLQotICAgIFQmIG9wZXJhdG9yKigpIGNvbnN0Ci0gICAgewotICAgICAgICBB
U1NFUlQobV9wdHIpOwotICAgICAgICByZXR1cm4gKm1fcHRyOwotICAgIH0KLQotICAgIFQqIG9w
ZXJhdG9yLT4oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fcHRyKTsKLSAgICAgICAg
cmV0dXJuIG1fcHRyOwotICAgIH0KLQotICAgIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJuIG1fcHRy
OyB9Ci0KLSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX3B0cjsgfQotCi0g
ICAgLy8gVGhpcyBjb252ZXJzaW9uIG9wZXJhdG9yIGFsbG93cyBpbXBsaWNpdCBjb252ZXJzaW9u
IHRvIGJvb2wgYnV0IG5vdCB0byBvdGhlciBpbnRlZ2VyIHR5cGVzLgotICAgIHR5cGVkZWYgVCog
R1VuaXF1ZU91dFB0cjo6KlVuc3BlY2lmaWVkQm9vbFR5cGU7Ci0gICAgb3BlcmF0b3IgVW5zcGVj
aWZpZWRCb29sVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyID8gJkdVbmlxdWVPdXRQdHI6Om1f
cHRyIDogMDsgfQotCi1wcml2YXRlOgotICAgIHZvaWQgcmVzZXQoKQotICAgIHsKLSAgICAgICAg
aWYgKG1fcHRyKSB7Ci0gICAgICAgICAgICBHVW5pcXVlUHRyPFQ+IGRlbGV0ZVB0cihtX3B0cik7
Ci0gICAgICAgICAgICBtX3B0ciA9IG51bGxwdHI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBU
KiBtX3B0cjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OkdVbmlxdWVQ
dHI7Ci11c2luZyBXVEY6OkdVbmlxdWVPdXRQdHI7Ci0KLSNlbmRpZiAvLyBVU0UoR0xJQikKLQot
I2VuZGlmIC8vIEdVbmlxdWVQdHJfaAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nb2Jq
ZWN0L0dsaWJVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dURi93dGYvZ29iamVjdC9HbGliVXRpbGl0
aWVzLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjA4ZTMzMzQ1NTQ3ZGU4ZDU4
Yjg2OTE2ZTU5MThkNDc5OWE1N2U5Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dsaWJVdGlsaXRpZXMuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBJ
Z2FsaWEsIFMuTC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKLSAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkds
aWJVdGlsaXRpZXMuaCIKLQotI2lmIE9TKFdJTkRPV1MpCi0jaW5jbHVkZSA8d2luZG93cy5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotI2Vsc2UKLSNpbmNsdWRlIDxsaW1pdHMu
aD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNlbmRpZgotCi0jaWYgT1MoTElOVVgpCi1DU3RyaW5n
IGdldEN1cnJlbnRFeGVjdXRhYmxlUGF0aCgpCi17Ci0gICAgc3RhdGljIGNoYXIgcmVhZExpbmtC
dWZmZXJbUEFUSF9NQVhdOwotICAgIHNzaXplX3QgcmVzdWx0ID0gcmVhZGxpbmsoIi9wcm9jL3Nl
bGYvZXhlIiwgcmVhZExpbmtCdWZmZXIsIFBBVEhfTUFYKTsKLSAgICBpZiAocmVzdWx0ID09IC0x
KQotICAgICAgICByZXR1cm4gQ1N0cmluZygpOwotICAgIHJldHVybiBDU3RyaW5nKHJlYWRMaW5r
QnVmZmVyLCByZXN1bHQpOwotfQotI2VsaWYgT1MoSFVSRCkKLUNTdHJpbmcgZ2V0Q3VycmVudEV4
ZWN1dGFibGVQYXRoKCkKLXsKLSAgICByZXR1cm4gQ1N0cmluZygpOwotfQotI2VsaWYgT1MoVU5J
WCkKLUNTdHJpbmcgZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKCkKLXsKLSAgICBzdGF0aWMgY2hh
ciByZWFkTGlua0J1ZmZlcltQQVRIX01BWF07Ci0gICAgc3NpemVfdCByZXN1bHQgPSByZWFkbGlu
aygiL3Byb2MvY3VycHJvYy9maWxlIiwgcmVhZExpbmtCdWZmZXIsIFBBVEhfTUFYKTsKLSAgICBp
ZiAocmVzdWx0ID09IC0xKQotICAgICAgICByZXR1cm4gQ1N0cmluZygpOwotICAgIHJldHVybiBD
U3RyaW5nKHJlYWRMaW5rQnVmZmVyLCByZXN1bHQpOwotfQotI2VsaWYgT1MoV0lORE9XUykKLUNT
dHJpbmcgZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKCkKLXsKLSAgICBzdGF0aWMgV0NIQVIgYnVm
ZmVyW01BWF9QQVRIXTsKLSAgICBEV09SRCBsZW5ndGggPSBHZXRNb2R1bGVGaWxlTmFtZVcoMCwg
YnVmZmVyLCBNQVhfUEFUSCk7Ci0gICAgaWYgKCFsZW5ndGggfHwgKGxlbmd0aCA9PSBNQVhfUEFU
SCAmJiBHZXRMYXN0RXJyb3IoKSA9PSBFUlJPUl9JTlNVRkZJQ0lFTlRfQlVGRkVSKSkKLSAgICAg
ICAgcmV0dXJuIENTdHJpbmcoKTsKLQotICAgIFN0cmluZyBwYXRoKGJ1ZmZlciwgbGVuZ3RoKTsK
LSAgICByZXR1cm4gcGF0aC51dGY4KCk7Ci19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL2dvYmplY3QvR2xpYlV0aWxpdGllcy5oIGIvU291cmNlL1dURi93dGYvZ29iamVjdC9H
bGliVXRpbGl0aWVzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlMTBhMDVjODkz
ZmE2N2RjNzE3OGRiYjY0ZGZhMDgyMWIwNjhjZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvZ29iamVjdC9HbGliVXRpbGl0aWVz
LmgKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIElnYWxpYSwgUy5MLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQotICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIEdsaWJVdGlsaXRpZXNfaAotI2Rl
ZmluZSBHbGliVXRpbGl0aWVzX2gKLQotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi1DU3RyaW5nIGdldEN1cnJlbnRFeGVjdXRhYmxl
UGF0aCgpOwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAKaW5kZXggYjg0NTExNWU2ZjI5ODg1YTI4NzcxZmMy
MjJmYTFlYWRhMWE3ZTc1OS4uMmYzNWY3NDA5NzhlNzgzNTc1MjE0YzQ5NWU0M2ViNDU1YzkyNzRh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RD
YWNoZUF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmpl
Y3RDYWNoZUF0ay5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJUZXh0SXRlcmF0b3Iu
aCIKICNpbmNsdWRlICJXZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5oIgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5j
cHAKaW5kZXggNGI5N2RlOTQ1MzhjYjAwMDMxMGZkZjM0YjY1MTE0YTgxNGRhZWI5NS4uZWE2OGIw
MzBlNDU4MjM3OTgxOGQwM2JlZGY0NGNmM2Q2ZTA1YTU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJ
bnRlcmZhY2VUZXh0LmNwcApAQCAtNTEsNyArNTEsNyBAQAogI2luY2x1ZGUgIldlYktpdEFjY2Vz
c2libGVVdGlsLmgiCiAjaW5jbHVkZSAiV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuaCIKICNp
bmNsdWRlICJodG1sZWRpdGluZy5oIgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvRE9NT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvZ29iamVjdC9ET01PYmplY3RDYWNoZS5jcHAKaW5kZXggYWNiNmY2ODgy
ZDZmZGZmMTkxYjQ1NTc5YjY5NWM0ZjhiODA5OWVlMy4uNmYzNDdiYjY5ODk3NGYzYzg3ODExMDA4
ZjlkYWZmNDEwYTI1NTViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29i
amVjdC9ET01PYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29i
amVjdC9ET01PYmplY3RDYWNoZS5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL2dsaWIvR1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0RXZlbnRMaXN0ZW5lci5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0RXZlbnRMaXN0ZW5lci5oCmlu
ZGV4IDU4NDM2ZmQ4YWY1Yzg1NzljZDUwOTIwZDFmZDU3Nzc0NDMwMzc4YjMuLmUxMTdmNDBkNmVj
ZTVkNGY2NjhjMDk5YjgwOTU2YTczYjBmYzZjODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2dvYmplY3QvR09iamVjdEV2ZW50TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3RFdmVudExpc3RlbmVyLmgKQEAgLTIyLDcgKzIy
LDcgQEAKICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQu
aCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKIHR5cGVkZWYgc3RydWN0IF9HT2JqZWN0IEdPYmplY3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVy
Q29uZGl0aW9uLmgKaW5kZXggOTExZWQ3M2UzYmY2M2VkYTMzMmU0OTNhMjhhMzQ4YjE3YWNiMTU1
ZS4uNjkyNzY0ZDI1MGZlNzMyMzdiYzNkMjA1MTE1MzkwYWVjN2IwYTkxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0
ZXJDb25kaXRpb24uaApAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIldlYktpdERPTU5vZGVG
aWx0ZXIuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBOb2RlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0WFBhdGhOU1Jl
c29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3RYUGF0aE5T
UmVzb2x2ZXIuaAppbmRleCBlYWEzNWY5ZGUzNzkzMzllMmNmMDFmYjZiZTgxMDUwMDEzYjc2MDE1
Li4zNjlhZDA1MjEwMzkzMmNkNDgzOGFiNzA5YTkyN2E0YzY2NWVmNDAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3RYUGF0aE5TUmVzb2x2
ZXIuaApAQCAtMjIsNyArMjIsNyBAQAogI2luY2x1ZGUgIldlYktpdERPTVhQYXRoTlNSZXNvbHZl
ci5oIgogI2luY2x1ZGUgIlhQYXRoTlNSZXNvbHZlci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTUV2ZW50VGFyZ2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NRXZlbnRUYXJnZXQuY3BwCmlu
ZGV4IGFkOGIyMjQyYTZlMDA4OTlhODJjM2M5NDJjMGMxN2ZjNWMwZmVlYWEuLjllM2IxMmI5ZWZm
OWFkMGNmMjU5ZjI1ZTU1Mjg5Y2Y4OTRiODFhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NRXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NRXZlbnRUYXJnZXQuY3BwCkBAIC0zNiw3
ICszNiw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RE9NRXZlbnQuaCIKICNpbmNsdWRlICJXZWJLaXRE
T01FdmVudFRhcmdldFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRlLmgiCi0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQ
dHIuaD4KIAogdHlwZWRlZiBXZWJLaXRET01FdmVudFRhcmdldElmYWNlIFdlYktpdERPTUV2ZW50
VGFyZ2V0SW50ZXJmYWNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXgg
ZmExMmQyYTgxMzUyYjdhOGY2ZWExYmVkNjk3NzVlZDBhOWZiMjhkYy4uNzJiMDI1NDRlOTUzZjky
MmRiMjZjYzdjMDQzYTQwMjY0Yzc3ZTk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9h
cmQuaApAQCAtMzQsNyArMzQsNyBAQAogCiAjaWYgUExBVEZPUk0oR1RLKQogdHlwZWRlZiBzdHJ1
Y3QgX0d0a0NsaXBib2FyZCBHdGtDbGlwYm9hcmQ7Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0
cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCmluZGV4
IDUwYzk3ZWQxNjNmZjM4MTZiNmJlNjYyZGQ5YzFlNjMxODI0NTVhZjIuLmU1MDk2Yzg5OThkMDhm
ZTMwZGM1NzA4YWU4ZTNhMjg0YjhkMjcwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlv
bkdTdHJlYW1lci5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuaCIKICNpbmNsdWRlIDxnc3Qv
Z3N0Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVy
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IDQ5NzVlNmZkYzJlNDg2MmM5MTgxZjAw
MThmNDIyMWVjMjY4ODJhZTcuLjhiMmUyOGVmYjRhODcyNzYwOWZmZWVjZGE0MzcxNmM1N2Y0MzE1
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCkBAIC0zMCw5ICsz
MCw5IEBACiAjaW5jbHVkZSA8Z3N0L2F1ZGlvL2F1ZGlvLWluZm8uaD4KICNpbmNsdWRlIDxnc3Qv
Z3N0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmpl
Y3QvR1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dUaHJlYWRTYWZlTWFpbkxvb3BT
b3VyY2UuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8
d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dUaHJlYWRTYWZlTWFpbkxv
b3BTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIu
Y3BwCmluZGV4IDA2MmZhYzI3MWVlMjk3YzhhMjdkYjIwMzBhNTMyZjMwMDExOWUxY2QuLjE5Zjgy
ZmI0MGNhMmQ2NDU0NWRlNzNhNmIzODdmYWQ2NWQ3Y2E5NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRl
IDxnc3QvYXBwL2dzdGFwcHNpbmsuaD4KICNpbmNsdWRlIDxnc3QvYXVkaW8vYXVkaW8taW5mby5o
PgogI2luY2x1ZGUgPGdzdC9iYXNlL2dzdGFkYXB0ZXIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HTXV0ZXhMb2NrZXIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTXV0ZXhMb2NrZXIuaD4KIAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNl
R1N0cmVhbWVyLmNwcAppbmRleCA2ZWJiMDllNzAxZTY4ZmQxMGQxZmQzMGVmZjk5YzhkNWY5OTkz
NTFlLi40ZDkyYzExYTNiZGE2M2IwNWFjYjFiNTc4YTAxZTlmMGM4MGQ5NmM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9T
b3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTMwLDcgKzMwLDcg
QEAKICNpbmNsdWRlIDxnc3QvYXBwL2dzdGFwcHNyYy5oPgogI2luY2x1ZGUgPGdzdC9hdWRpby9h
dWRpby1pbmZvLmg+CiAjaW5jbHVkZSA8Z3N0L3BidXRpbHMvbWlzc2luZy1wbHVnaW5zLmg+Ci0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dV
bmlxdWVQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2d0ay9BdWRpb0J1c0d0ay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9ndGsvQXVkaW9CdXNHdGsuY3BwCmluZGV4IDdhN2U3OGQ5
NjQ5NDU3ZmJkY2YzZmMxMDA3MzE2ZTM4NGE4YTFjNDIuLjc5MWJmYTM5NjM2MDE1YzZhOTk4ZWI3
ODM4ZTk4ZDA0ZTNjMjYwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2d0ay9BdWRpb0J1c0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3RrL0F1ZGlvQnVzR3RrLmNwcApAQCAtMjQsOCArMjQsOCBAQAogCiAjaW5jbHVkZSAiQXVk
aW9GaWxlUmVhZGVyLmgiCiAjaW5jbHVkZSA8Z2lvL2dpby5oPgotI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5j
bHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nZW9jbHVlL0dlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nZW9jbHVlL0dlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlLmgKaW5kZXgg
NjU0Y2VlNTg0ZjJlMDExNzNmNjc2NTE0YThjZWZlNzkwNGM3ZmY0ZS4uN2MzMjU5MzliODYyOTNj
OTBlZmE1MTBkYTFiYjRkMzJiMjg2ZjgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ2VvY2x1ZS9HZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dlb2NsdWUvR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWUuaApAQCAt
MjQsNyArMjQsNyBAQAogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKIAogI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uUHJvdmlkZXJHZW9jbHVlQ2xpZW50LmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogI2lmIFVTRShHRU9DTFVF
MikKICNpbmNsdWRlICJHZW9jbHVlMkludGVyZmFjZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ2VvY2x1ZS9HZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZTIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VvY2x1ZS9HZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1
ZTIuY3BwCmluZGV4IGNlYTQ4ZjNiNmVjYmM4ZDg3NmMyOWM1ZGM2MzMwYjFlYmU2ZDUxMTkuLjUw
YjAwOTVkNDEwOTdhZDYwMzY4NmMzZGNkZmIxZmZkMGFkYmYyN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dlb2NsdWUvR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWUyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW9jbHVlL0dlb2xvY2F0aW9uUHJvdmlk
ZXJHZW9jbHVlMi5jcHAKQEAgLTI4LDggKzI4LDggQEAKIAogI2lmIEVOQUJMRShHRU9MT0NBVElP
TikgJiYgVVNFKEdFT0NMVUUyKQogCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5o
PgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dsaWJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYv
Z2xpYi9HTGliVXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogY29uc3QgY2hhciogZ0dlb2NsdWVCdXNO
YW1lID0gIm9yZy5mcmVlZGVza3RvcC5HZW9DbHVlMiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nbGliL0JhdHRlcnlQcm92aWRlclVQb3dlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nbGliL0JhdHRlcnlQcm92aWRlclVQb3dlci5jcHAKaW5kZXggZWZjODAw
MGVkMTIyOWUxZWJiNjZlMmZmMzQxYzZkZTUyMDcyMWZhNi4uOWZhNGVmNjRjYThjOTZjNTIwY2Ji
MDg1MWRiYzRkMmU5NjMwNTZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z2xpYi9CYXR0ZXJ5UHJvdmlkZXJVUG93ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dsaWIvQmF0dGVyeVByb3ZpZGVyVVBvd2VyLmNwcApAQCAtMjUsNyArMjUsNyBAQAogI2lu
Y2x1ZGUgIkJhdHRlcnlQcm92aWRlclVQb3dlckNsaWVudC5oIgogI2luY2x1ZGUgPGNtYXRoPgog
I2luY2x1ZGUgPGxpbWl0cz4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9CYXR0ZXJ5UHJv
dmlkZXJVUG93ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvQmF0dGVyeVByb3Zp
ZGVyVVBvd2VyLmgKaW5kZXggZDE2MDliYjY1YThjNTJlODgxNTE4ZDk1ZmRlZmY0YzVjNjE4N2Qx
NC4uNmU3M2U0ZmEwM2U0NDdjYjk3YmM4MmEyYWY1MjMzNmFmMDRlZmI4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9CYXR0ZXJ5UHJvdmlkZXJVUG93ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0JhdHRlcnlQcm92aWRlclVQb3dlci5oCkBA
IC0yMyw3ICsyMyw3IEBACiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQogCiAjaW5jbHVkZSA8
bGlidXBvd2VyLWdsaWIvdXBvd2VyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1JlZlB0ckdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuaAppbmRleCAyY2UwYTFkODA4YWUyMjQ1NmVhYjMzOGY1
NDA1NTI1NWQzYWMxOThiLi40YmE1MzNhZmE2ZTAwMTczYTNjOWFiZmFmMzcxN2VkYmExMmYzODI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1JlZlB0ckdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmgKQEAgLTIxLDcgKzIxLDcgQEAKICNkZWZpbmUg
R1JlZlB0ckdTdHJlYW1lcl9oCiAjaWYgVVNFKEdTVFJFQU1FUikKIAotI2luY2x1ZGUgPHd0Zi9n
b2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIHR5cGVk
ZWYgc3RydWN0IF9Hc3RFbGVtZW50IEdzdEVsZW1lbnQ7CiB0eXBlZGVmIHN0cnVjdCBfR3N0UGFk
IEdzdFBhZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHAKaW5kZXggMjc5YmRkZWQ3
NmIzMjQxYjUxMWQ0NWE3MmU4OTdhYThlMTk2OTNlYy4uOGM1NTk1NTZkZDY3Y2U1YzA3Y2E5OTc3
ZDQ0MWFkNTUxZmYyZTY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHAKQEAg
LTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CiAjaW5jbHVkZSA8Z3N0L3ZpZGVv
L3ZpZGVvLWluZm8uaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+
CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIFVTRShHU1RSRUFNRVJfTVBFR1RTKQogI2Rl
ZmluZSBHU1RfVVNFX1VOU1RBQkxFX0FQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dVbmlxdWVQdHJHU3RyZWFtZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HVW5pcXVlUHRyR1N0cmVhbWVyLmgK
aW5kZXggYzRkMTJiNWI2OWFhMGZiOWU4YmQwMzAwODJmOTU0N2QwYTQ1OTNlNS4uOWJkZDI2Njk5
NGVkNDE4MmZhZGZiNDg2MTMwMmRiZjllNmM5ZTdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dVbmlxdWVQdHJHU3RyZWFtZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1VuaXF1ZVB0ckdT
dHJlYW1lci5oCkBAIC0yMiw3ICsyMiw3IEBACiAjaWYgVVNFKEdTVFJFQU1FUikKIAogI2luY2x1
ZGUgPGdzdC9nc3RzdHJ1Y3R1cmUuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBuYW1lc3BhY2UgV1RGIHsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgK
aW5kZXggNjIyMmE2ODQ4MjdiY2NlMjQwZjAzMDJhOWNhMmU2MmUwNDA5Zjk0OC4uYjdkZmZhNzZl
YzA3YTYzN2E3ZjJlZDI1MTg4M2IwOTM2ODA0MDZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3Ry
ZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0zMSw3ICszMSw3IEBACiAjaW5j
bHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZh
dGUuaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgiCi0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4
IDI3ODEyMjE1NjllNmE1ZTIzMTgxYzg4YThkODQ0YTg1NTc0M2RmNjMuLmEyNTUzMzM1NDNhNGE5
NDUzYTlmMGYyMzYwOTY1Yzk5OGQyOTU1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC00MCw3ICs0MCw3IEBACiAjaW5jbHVkZSA8bGlt
aXRzPgogI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1l
Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmgKaW5kZXggNGMyNmYwZDc4ZTJkZWI0NmE2YzE2OWYxYTQzMTY0M2M4M2VmZmQ0Ni4u
MjYwMjY0Yzk1MzNlNzM5ZGRjNjViZWY5YmIxODE4OTk5NDEyZTZlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMzMsNyArMzMsNyBAQAogI2lu
Y2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9pbnN0YWxsLXBsdWdpbnMu
aD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dUaHJl
YWRTYWZlTWFpbkxvb3BTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVGhyZWFkU2FmZU1h
aW5Mb29wU291cmNlLmg+CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIFVTRShHU1RSRUFN
RVJfTVBFR1RTKQogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAppbmRl
eCAzMThhNGY1ZTRlOTA5ZGQyYjUwZjc3ZjRlZDllYTAyZDNkOWQ4ZTk0Li42NGEyM2QxZjJkOTNh
YmZlN2NjMmRhYTg3NjUxZjg1NDY2M2Y0NWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC0zOCw3ICszOCw3IEBACiAjaW5j
bHVkZSAiVmlkZW9TaW5rR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViU291cmNlR1N0
cmVhbWVyLmgiCiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dN
dXRleExvY2tlci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dNdXRleExvY2tlci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2luY2x1ZGUgPGdzdC9hdWRpby9zdHJlYW12b2x1
bWUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZS5oCmluZGV4IDg5ZWFhNzlhMTFhZmVhNzI5YjI0NTA5Yjk1NzA3NWQ1ZTQwMjAzN2UuLjMxMzU3
MzNkMWIxOThlNjVhZjViMzgyNGU1YzJkODY3MWZiNmYyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaApAQCAtMzAsNyArMzAsNyBAQAog
I2luY2x1ZGUgPGdsaWIuaD4KIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuaD4KIAogI2lmIFVTRShURVhUVVJFX01BUFBF
Ul9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICNpbmNsdWRlICJUZXh0dXJlTWFw
cGVyUGxhdGZvcm1MYXllci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAK
aW5kZXggOGQzM2EyMGQ0YTEyY2U0MmRlZTk4MGNkNmRmNzVhNTIxYTk1ZTRkYy4uM2EyZjg1OWNm
MzEwODFkMGQ5NWZjMTg4MmFiNzAxNDJkMjVjYmZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3Vy
Y2VHU3RyZWFtZXIuY3BwCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSAiU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgIldlYktpdE1lZGlhU291cmNlR1N0cmVhbWVy
LmgiCiAKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2ds
aWIvR1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0
cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9U
cmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAppbmRleCA1YzkwNDNjM2ZiYjYyMmNmNTcxNjdm
ZjVmOTg5NTI4NzczMTIyOWMzLi5kOTFmZDFlYjZlZGQzMzkxM2M0MzQyNzY2MzQyMDNkNGZkN2Mw
MTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCkBA
IC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDxnc3Qv
Z3N0Lmg+CiAjaW5jbHVkZSA8Z3N0L3RhZy90YWcuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9H
VW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogR1NUX0RFQlVHX0NBVEVHT1JZX0VYVEVSTih3ZWJraXRf
bWVkaWFfcGxheWVyX2RlYnVnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJl
YW1lci5oCmluZGV4IDllNjgwOTE4OGVhZmFjYzJlMGUxMTI1Y2QyNGIxYTVhZDFjODA5MDAuLmUz
ZDZmNDFlYjgxYjk1YmVlODM2MDNjZjUxYmM4MjkzZDc1OTE2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0
cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVk
ZSAiR1JlZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVz
Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZS5oPgor
I2luY2x1ZGUgPHd0Zi9nbGliL0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
VmlkZW9TaW5rR1N0cmVhbWVyLmNwcAppbmRleCBjOTcyYzRkODE0YTQzNWEwYmFiZmJhOWY1YTky
MTgwYzM0NDA5MDJiLi4xODcwNGY4ZTFiOTA0OWFjYTViNjM1MDYwYzg0YmM5YmM2YWY0NWJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlk
ZW9TaW5rR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcApAQCAtMzUsOCArMzUsOCBAQAogI2lu
Y2x1ZGUgPGdsaWIuaD4KICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CiAjaW5jbHVkZSA8Z3N0L3ZpZGVv
L2dzdHZpZGVvbWV0YS5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNdXRleExvY2tlci5oPgot
I2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HTXV0ZXhMb2NrZXIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVGhyZWFk
U2FmZU1haW5Mb29wU291cmNlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0
TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA2MWNmZWI4
NzEwNmY5YTcyZGIwNDdkOTU4ZmE0OWU2NGYyODZlZTFmLi4zMTI1MGVhMzE3Mjk4NDA3NjMwOGE5
NzQzM2JhMzIyYmE2ODVmOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRNZWRpYVNvdXJj
ZUdTdHJlYW1lci5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlIDxnc3QvYXBwL2dzdGFw
cHNyYy5oPgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9taXNz
aW5nLXBsdWdpbnMuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5j
bHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogdHlwZWRlZiBzdHJ1Y3QgX1NvdXJjZSBTb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDMyZTNjMTQ1YWY2OTJkODhkOGQ0YjA0Nzkx
ZmE1MTVlYjgzMDM0OTcuLjkzNGRhZjhjYjZkNTk4YzdlZWI2YTdkMjZjNzRmNDIxYWY2Nzk0YTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC00MCwx
MCArNDAsMTAgQEAKICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9taXNzaW5nLXBsdWdpbnMuaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgot
I2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNdXRleExvY2tlci5oPgotI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVGhyZWFkU2FmZU1haW5Mb29w
U291cmNlLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9nbGliL0dNdXRleExvY2tlci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvZ2xpYi9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmg+CisjaW5jbHVk
ZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ndGsvSW1hZ2VCdWZmZXJHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ltYWdlQnVmZmVyR3RrLmNwcAppbmRleCA3OGE2MGMxZWZj
MDEzZmFhMTlmZGVmZGU4NDM4MzJmNDA3Yjc5MzM0Li4zMTZjZDFjM2ExZjhiY2FmODBlNmRiN2Jj
OTEyOWFkNzkwMDJjZjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ndGsvSW1hZ2VCdWZmZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9JbWFnZUJ1ZmZlckd0ay5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNs
dWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSA8Y2Fpcm8uaD4KICNpbmNsdWRlIDxn
dGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvSW1h
Z2VHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ltYWdlR3Rr
LmNwcAppbmRleCBlMWIyYmJjNDZhYTRhMTcxNzhlOTQ4ZTgxZDdmNWI1NTc3MmViNTI0Li40OWNj
YzkxMThmNGY1NzA1Y2E0MWNjZjAzM2IzOTVjODdlYmJlNWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvSW1hZ2VHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9JbWFnZUd0ay5jcHAKQEAgLTMxLDggKzMxLDgg
QEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDxjYWlyby5oPgogI2luY2x1
ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVk
ZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51
R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUd0ay5jcHAK
aW5kZXggOTZjZDI2OGViOGE1NzM2ZDM0MTZiYTVkNThjZjM5ZmI3OWU1YzI5OS4uYTE5MDg1NTk3
ZTVjMzhjYzMyMWQ4OWE4ZWMyZDI3MTNjMTU0OGFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVHdGsuY3BwCkBAIC0yNCw4ICsyNCw4IEBACiAjaW5jbHVk
ZSAiQ29udGV4dE1lbnUuaCIKIAogI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3dGYv
Z29iamVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVl
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3RrLmNwcAppbmRleCBjNDBiMzcxNzJkZTA5NmE1
ZTg5ZGE2YzdmYzBjNTNlYThlNzFjOTAwLi5kMDhhZmViMGMyZjA1YTEyNWJiYjM0YWFkOWM2ZjE3
M2IyNGNlOGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4
dE1lbnVJdGVtR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4
dE1lbnVJdGVtR3RrLmNwcApAQCAtMjYsOCArMjYsOCBAQAogCiAjaW5jbHVkZSAiQ29udGV4dE1l
bnUuaCIKICNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
Z2xpYi9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2RlZmluZSBXRUJLSVRfQ09OVEVYVF9NRU5VX0FD
VElPTiAid2Via2l0LWNvbnRleHQtbWVudSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9EYXRhT2JqZWN0R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9EYXRhT2JqZWN0R3RrLmNwcAppbmRleCBmNjAwMTc2ODdjNjNjZDM0OWE5OWI1NzIwODIxYmVk
Yzc2ZjhmYWMwLi4xY2Q0MWI5ZDRkY2Q3YzMzZTgzZDc2YzFjNGU3M2UxNzk4M2YzNjMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRGF0YU9iamVjdEd0ay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RhdGFPYmplY3RHdGsuY3BwCkBAIC0yMCw3
ICsyMCw3IEBACiAjaW5jbHVkZSAiRGF0YU9iamVjdEd0ay5oIgogCiAjaW5jbHVkZSA8Z3RrL2d0
ay5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
Z2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0RhdGFPYmplY3RHdGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9EYXRhT2JqZWN0R3RrLmgKaW5kZXggODUwZDI4MGZmNGI5MzY0Y2I4NDQ2NzE3YzUzNDdj
MGZlZjU0YjRmNS4uZGNlNTM3Nzc5ZGJmOTE2OGY4MzE1M2RhNjMyZWQzOTEyM2YzMDAyOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RhdGFPYmplY3RHdGsuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRGF0YU9iamVjdEd0ay5oCkBAIC0yMiw3ICsy
Miw3IEBACiAjaW5jbHVkZSAiRmlsZUxpc3QuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFz
aC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvRmlsZVN5c3RlbUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvRmlsZVN5c3RlbUd0ay5jcHAKaW5kZXggYjhlYjI5ZDM4MzNjYjA5YWNlZWM0OWRhODA1NGE3
OWM5NjY0MDU1Ni4uOTE1ZWE2OWJiMTcwOTg2MTBjYzlmOGRkMjM5YjU4Mzc3Yzk1OGNiMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcApAQCAtMjks
OSArMjksOSBAQAogI2luY2x1ZGUgPGdpby9naW8uaD4KICNpbmNsdWRlIDxnbGliLmg+CiAjaW5j
bHVkZSA8Z2xpYi9nc3RkaW8uaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dsaWJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9H
UmVmUHRyR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5oCmlu
ZGV4IGNkYzdiN2ViNDBhYWE5ZjE3ZmNlMWMyOTdmZDI2YTI3ZjY4Y2U5YjcuLjhmMDQyNmRiNTFl
ZDY4ODdlMjRlYTM5YzEzMmI0Nzc4ZmZiODYyYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0dSZWZQdHJHdGsuaApAQCAtMjEsNyArMjEsNyBAQAogI2lmbmRlZiBHUmVmUHRyR3RrX2gK
ICNkZWZpbmUgR1JlZlB0ckd0a19oCiAKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCiB0eXBlZGVmIHN0cnVjdCBfU2VjcmV0
VmFsdWUgU2VjcmV0VmFsdWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9HVW5pcXVlUHRyR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1VuaXF1
ZVB0ckd0ay5oCmluZGV4IGE3YzdjNDQ0M2E0YjQ3ZWM0ZjJiNjIwYzViMDc5YzkyOWVhYzEyMTku
LjY0MzA3ZGFlNTI2OTM5NDdjNGVhYmQxZWYzNWQyMDI2YmQyZTNhMzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HVW5pcXVlUHRyR3RrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0dVbmlxdWVQdHJHdGsuaApAQCAtMjEsNyArMjEsNyBAQAogI2Rl
ZmluZSBHVW5pcXVlUHRyR3RrX2gKIAogI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3
dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5o
PgogCiBuYW1lc3BhY2UgV1RGIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0dhbWVwYWRzR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1l
cGFkc0d0ay5jcHAKaW5kZXggZjc2ZDkyZjA1YzExZGU4NjU1NTNkY2UwOWVjMGEyMGVjODAwNmRi
Ny4uMjZmOWJlNjJjNzY0NjNjNmUwODFmY2VmZTc5NmIyZWFmMTc1OTU4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwCkBAIC0zNCw4ICszNCw4IEBACiAj
aW5jbHVkZSA8Z2lvL2d1bml4aW5wdXRzdHJlYW0uaD4KICNpbmNsdWRlIDxndWRldi9ndWRldi5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
Z2xpYi9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAKaW5kZXgg
YWNkYWY0ZWQ2YjJkODQ1YWU0ZGZlMGU3NWU4YTJhNTc4ZDI5NGUzNy4uOWY0ZTE3YTVjM2EyZjA5
ZTQwOTkwZmY2ZjkxZGZlMmE2MWE3NDk2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0d0a1V0aWxpdGllcy5jcHAKQEAgLTIxLDggKzIxLDggQEAKIAogI2luY2x1ZGUgIkludFBv
aW50LmgiCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlx
dWVQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HbGliVXRpbGl0aWVzLmg+CisjaW5jbHVk
ZSA8d3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQ
dHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvTGFuZ3VhZ2VHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0xhbmd1YWdlR3RrLmNwcAppbmRleCA1OGQzYTkxYmM2MjBkZTAzZmRmNjVhNTMwOTJlNDA4
NDdlZDEyNGU5Li41MTVjODJkOTYxY2I4NzQ3ZWQ2M2FkMDYzODA0NGY4NzNiZjUyZWFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTGFuZ3VhZ2VHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9MYW5ndWFnZUd0ay5jcHAKQEAgLTIxLDcgKzIx
LDcgQEAKICNpbmNsdWRlICJMYW5ndWFnZS5oIgogCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgot
I2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9H
VW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKaW5kZXggNDY0Yzk0NzdkOWJmNzdmMWFlMDIzMWU3
NjE1MDUwYjA2Yzc5OWE0NS4uM2NiNzEyNjU4NWEwMzA4M2FmOGJlNTRiNWMwM2JhM2Y1YmRiMTFk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmlu
Z3NHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJp
bmdzR3RrLmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+
CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0jaW5j
bHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlx
dWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9QYXN0ZWJvYXJkSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0
ZWJvYXJkSGVscGVyLmNwcAppbmRleCA2ODQ0YTgwZDgwM2UwZDMyODVlNjQyYTRiNjcwM2U1YTU0
MjE4NjlhLi40OGRhZWIzOWE4ZDBmYzAyNTMzNTg0ZGE1NDYxMjBkYmY0NzI1OWZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCkBAIC0y
OSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogI2luY2x1ZGUgIlRleHRSZXNv
dXJjZURlY29kZXIuaCIKICNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmpl
Y3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCmluZGV4IDlj
NTYyNThmMTA2ZTcwZGQ3OThjNzE1OTk5NDMzMmE5ZDRlY2UxYmUuLjhmY2JiMzJkMjMyZmNiNzE2
ZjQ1NzZjZWUzZDBlZTBkYTQyYjUyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUg
IlNjcm9sbGJhci5oIgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL2dsaWIvR1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFyZWRCdWZmZXJHdGsuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJlZEJ1ZmZlckd0ay5jcHAKaW5kZXggOWY2YjZjNGEw
YzRjMjFhYjhhOGQwYzY0MmFiNjMzYTE3OTM4YzNmYS4uZTE1MjJmNmZhYzEwOWZhNDk2MjgxOWIw
MTFhMGY4NzVjOTJjMDg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1NoYXJlZEJ1ZmZlckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1No
YXJlZEJ1ZmZlckd0ay5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICNpbmNsdWRlICJTaGFyZWRCdWZm
ZXIuaCIKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9H
VW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2luY2x1ZGUgPGdsaWIuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFyZWRUaW1lckd0ay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkVGltZXJHdGsuY3BwCmluZGV4IDEzM2U5MDZmYTBmMDU4
MDliNmE1MGEwMGU5OTE4YmRjMWQ2ODAzOTguLmNmZjdkNzMzMTFmNDEwNGFjMTNlM2ZhYjA1YTli
NzIyZjRlYTE4NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFy
ZWRUaW1lckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJlZFRp
bWVyR3RrLmNwcApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlNoYXJlZFRpbWVyLmgiCiAKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HTWFpbkxvb3BTb3Vy
Y2UuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTWFpbkxvb3BTb3VyY2UuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyT3dyLmNwcAppbmRleCBlYzI1NzMxYWVhOWY1Y2UxYzNiMTY1ZmMwNGMyMThkZjBi
ZTdhMTM1Li44ZWJkNDI5ZWVmMTk4MzUyMDc5MzQyOGY2NDRjZTFjODI0ZWQyYzRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5jcHAK
QEAgLTQ5LDcgKzQ5LDcgQEAKICNpbmNsdWRlIDxvd3Ivb3dyX21lZGlhX3NvdXJjZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGli
L0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDZiY2Q1MzYyMTY5
ZGJiZDlkZjZlZjQxZTY3NWE2NTBlYmUzODRiMzguLjQ0OGVhNzY5OGU4YzM5MTYzOWEzODc1M2Uw
NmYwNGYwMDJmNzVlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC01MSw4ICs1MSw4IEBACiAjaWYg
VVNFKFNPVVApCiAjaW5jbHVkZSAiR1VuaXF1ZVB0clNvdXAuaCIKICNpbmNsdWRlIDxsaWJzb3Vw
L3NvdXAuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuaD4KLSNpbmNs
dWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR01haW5Mb29w
U291cmNlLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvZ3RrL0NyZWRlbnRpYWxCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9ndGsvQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5jcHAKaW5kZXggODUxMzdmMDVk
MmM0NDhjZGNjZDhjMmQ5M2U3OTAwNDk5NjRkYTQ3Yi4uZWYyZDM5MTVhNjQyMWQxMjI4NDA0Zjk4
NDg2YTNjYTNjMDFkMjJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ndGsvQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9ndGsvQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5jcHAKQEAgLTM0LDcg
KzM0LDcgQEAKICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgogI2luY2x1ZGUgPGxpYnNlY3Jl
dC9zZWNyZXQuaD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KLSNpbmNsdWRlIDx3dGYvZ29i
amVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmgKaW5kZXggNzFk
YzI4OGExM2ZiNzZhOWUzMzU5NmQ3ZTJkZjA5MjIxMzM4YmQ2Yi4uMjA2Y2RlZjY4NzRmNjI3Mjhj
M2Y1MTIyNTRjOWJmZjQ4YjJjYzIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL0NlcnRpZmljYXRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9DZXJ0aWZpY2F0ZUluZm8uaApAQCAtMjksNyArMjksNyBAQAog
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4K
LSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1Jl
ZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcAppbmRleCAxMzAxYjU3
Njg5NmQ4NjIxYjVmMDBlMTgzZjJiNTZhZGUwODE4OWNiLi5mZGEyNDRjY2IxNjM4MGU0MzU2ZDFm
YjBlNWJkNTE4ZjFiZmE0ZmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5j
bHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNvb2tpZUphci5o
IgogI2luY2x1ZGUgIlNvdXBOZXR3b3JrU2Vzc2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvRE5TU291cC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvRE5TU291cC5jcHAKaW5kZXggMWRmZGRhNzQwNjc2
NjJlNmQ4NGQyYzY2ODk0ODhmMDliZTBkYmQ4YS4uNGNmZGJhNWYxZWJlMWY3NmE2ZDM0YTI5ZTA0
ZDlmYWM4MzRmMDQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL0ROU1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9ETlNTb3VwLmNwcApAQCAtMzMsOCArMzMsOCBAQAogI2luY2x1ZGUgIlNvdXBOZXR3b3Jr
U2Vzc2lvbi5oIgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL0dSZWZQdHJTb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvR1JlZlB0clNvdXAuaAppbmRleCA2OWZkYjI1N2FiMTdlYTIyMDg1
MmMxMzAxN2MwOWI1OTVhN2UyZWM1Li5hNTk4OGUyZmI5N2RhZGJhZjdhYmNhMjczNWY1NzMxZWQ2
OWRkNmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
R1JlZlB0clNvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
R1JlZlB0clNvdXAuaApAQCAtMjMsNyArMjMsNyBAQAogI2lmIFVTRShTT1VQKQogCiAjaW5jbHVk
ZSA8bGlic291cC9zb3VwLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9HVW5pcXVlUHRyU291cC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0dVbmlxdWVQdHJTb3VwLmgK
aW5kZXggMzI3NzVmYjQ2YThmNDQ4MzE3MmEwMzlkMTRlN2NhYWU4YWU4YTI2Yy4uODZkYzYzNzQx
MmUxOGJhNzI1Zjc0ODNlYzMyNmUxMjQ5YTg4YTE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0dVbmlxdWVQdHJTb3VwLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0dVbmlxdWVQdHJTb3VwLmgKQEAgLTIxLDcgKzIx
LDcgQEAKICNkZWZpbmUgR1VuaXF1ZVB0clNvdXBfaAogCiAjaW5jbHVkZSA8bGlic291cC9zb3Vw
Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dVbmlxdWVQdHIuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvci5oCmluZGV4IDY4ZWZl
YTk0ZGQ1ZWNjZjBhMDVhMWYwNDc0ODM5YTI3NTRjYmEzYmEuLmU1MDI5N2E3ZmU5ZDRjODk0OTM4
MTBkNTZiYjgwZjhhNzVmNGI4ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3IuaApAQCAtMzAsNyArMzAsNyBAQAogCiAjaWYg
VVNFKFNPVVApCiAKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL2dsaWIvR1JlZlB0ci5oPgogCiB0eXBlZGVmIHN0cnVjdCBfR1Rsc0NlcnRpZmljYXRlIEdU
bHNDZXJ0aWZpY2F0ZTsKIHR5cGVkZWYgc3RydWN0IF9Tb3VwUmVxdWVzdCBTb3VwUmVxdWVzdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUVycm9yU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VFcnJvclNvdXAuY3BwCmluZGV4IDFjOTNlNmVmNmFlNTRkNWIxNGY4N2NhZjM5N2JjNjkz
MjZmZjExZjEuLmIyNWI1YTBiODY1MWUxYTBjZjVmNjE5NjBkNTdhMjI0YWE1MzU4M2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9y
U291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlRXJyb3JTb3VwLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiTG9jYWxpemVk
U3RyaW5ncy5oIgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgotI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwCmluZGV4IGI3ZThjNzgxYjc1ZWQ5Y2VhOTE5MTc2MWJiNmFmYTFjMjFlNGUx
MGEuLmNjZmFmNjlhNTNlYzQxNjQ4ZDU0YTQ3ODE0NmYwZjhkNTIwODdmODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwCkBAIC01OSw3ICs1OSw3IEBACiAjZW5kaWYKICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvU0hBMS5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQmFzZTY0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25z
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9u
c2UuaAppbmRleCAzOTdlMWExMjg4MGQ0MzkzZGU0NGZhZDk4YjdkNDQ4NGI5NThlYzUyLi5mZjhi
ZTJhZDkzNTE5OGU0YzZmNjQyYjgwNzZlNTM3ZDhmMTFmMDg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlLmgKQEAg
LTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlQmFzZS5oIgogCiAjaW5j
bHVkZSA8bGlic291cC9zb3VwLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3Ry
ZWFtSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0
U3RyZWFtSGFuZGxlLmgKaW5kZXggNWZmMzdlYTBmOGIxZTc2ZjIzZWQxNTY1ZGM1YTI0NTRjMjZk
Y2UyMi4uNWU3N2QyYzA0YzRjMWQ2MjZiNTkzYjRiMTAxZGUyMGU3NzE3NDBjMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRs
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJl
YW1IYW5kbGUuaApAQCAtMzksNyArMzksNyBAQAogCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1NvY2tldFN0cmVhbUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZVNvdXAuY3BwCmluZGV4IGY4Y2NkZTQxNjhmZWFj
OGZjYTkwYjUwZWUzNTBlNTY5YzI5YzFmZDIuLjUzNThjNjljNDQ1NTBjYzA3MmU2MGIzZjU2NDE2
MmVhNjdhNTcxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9Tb2NrZXRTdHJlYW1IYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlU291cC5jcHAKQEAgLTQ0LDcgKzQ0
LDcgQEAKICNpbmNsdWRlIDxnbGliLmg+CiAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5j
bHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlx
dWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNkZWZpbmUgUkVBRF9C
VUZGRVJfU0laRSAxMDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmgKaW5kZXggODkzNDU1YTZjMmVhZDA2ZWNl
ZDEzMjE2OWYyNzQyMjJlZDgzOWJlZi4uOWM4Y2ZhYTYxNmE3NGJjNGUwNzM3N2NlY2FiYTgyNTA1
NGRiM2Q4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1NvdXBOZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24uaApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIHR5cGVkZWYgc3RydWN0IF9Tb3VwQ2Fj
aGUgU291cENhY2hlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9n
dGsvSHlwaGVuYXRpb25MaWJIeXBoZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9ndGsvSHlwaGVuYXRpb25MaWJIeXBoZW4uY3BwCmluZGV4IDAyMzQyOTE3YjU4NDQyMGM5Zjc5
NjEwOTA2N2JhZGZhMmI2N2Q3ZDIuLjU5ZjIzZGU3NzE3MWZlNDA2ODllMDE5M2UzNjhlNjhkNmU1
ZDIyMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3RrL0h5cGhl
bmF0aW9uTGliSHlwaGVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2d0
ay9IeXBoZW5hdGlvbkxpYkh5cGhlbi5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlIDxo
eXBoZW4uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
SGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdWaWV3Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3Rr
LmNwcAppbmRleCBiN2YwYjRiNzE4OWI1ZWEyZWY3NGY1OWNhMTBhYzk5NTJkNjQwN2M0Li4yYTU1
NzU3N2M1NmFlNTNjYTk5ZDAyMzQ3YjQ2ZWZkZTg1MjlkNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAKQEAgLTUzLDggKzUzLDggQEAKICNpbmNsdWRl
IDxnbGliLmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYv
Z29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVGaWxlU3lzdGVt
UG9zaXguaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZUZpbGVTeXN0ZW1Qb3NpeC5oCmluZGV4IDg3NTAyMmNiZGI0MDAxZjRiYzg0ODJiNDBhYTVmNzAz
ZDA2MjJkZmEuLjg1NGQ0Mzk0MTRiZmE2OWYzNTE5NGEzYzFjYzIwZjkxMjFjYTVjYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZp
bGVTeXN0ZW1Qb3NpeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZUZpbGVTeXN0ZW1Qb3NpeC5oCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYgVVNFKFNPVVApCi0jaW5jbHVkZSA8d3RmL2dv
YmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNlbmRpZgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsLmgKaW5kZXggN2MwNDIxM2M3
M2ZlZTkzMTA1OTVmNWNiOTM3OTA3YzlmZDg1NmI4Zi4uMjllODRiMmMwYjY4MGYyOWQzZThiMDQ5
NWVmY2EwMDI0ODFmYjY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsLmgKQEAgLTM1LDcgKzM1LDcg
QEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFVTRShTT1VQKQotI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRy
Lmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5l
bFNvdXAuY3BwCmluZGV4IDUwYWQzMDJkY2MwY2UwOGQ5MTUxM2QxNDMzNjI2MDg4NGIzOTIzZjMu
LmQyMGRiOTRmOTFlZDNmM2FlYTMwMzI3MWVjNmRiNmEwZDM0NGQyY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNv
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZUlPQ2hhbm5lbFNvdXAuY3BwCkBAIC0zMCw5ICszMCw5IEBACiAKICNpbmNsdWRlICJOZXR3
b3JrQ2FjaGVGaWxlU3lzdGVtUG9zaXguaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgot
I2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oPgotI2luY2x1ZGUgPHd0Zi9n
b2JqZWN0L0dNdXRleExvY2tlci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTWFpbkxvb3BTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYv
Z2xpYi9HTXV0ZXhMb2NrZXIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291
cC5jcHAKaW5kZXggYmE1MTg4MTcwMTYwNDNmNjY4ZmE0ZDhlZjk1MmQ0ZGU0OWM1MTllMy4uYzg2
Y2VkMDFiMjNjMDY5NDI0MmUyM2M1NDFmMGNmNGFjYzRmZjYzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNw
cApAQCAtMzksOCArMzksOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtTZXNzaW9u
Lmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAjaW5jbHVkZSA8d3RmL1JBTVNpemUuaD4K
LSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDhkZmZlMWQyNzE3Y2JiYTFiY2ZkMTk2MDNmNTE1YWY2
Mzg1M2VmMzIuLjE5YzM3NTEyMGE0MDcyMjU5Nzk4MDhhMzJiOGNhMmRhZWEzMDg4ZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0yNTYsOCArMjU2LDggQEAgbGlzdChBUFBFTkQgV2Vi
S2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvZWZsIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L3NvdXAiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzIgotICAgICIke1dURl9ESVJ9L3d0Zi9lZmwvIgotICAgICIke1dU
Rl9ESVJ9L3d0Zi9nb2JqZWN0IgorICAgICIke1dURl9ESVJ9L3d0Zi9lZmwiCisgICAgIiR7V1RG
X0RJUn0vd3RmL2dsaWIiCiApCiAKIGxpc3QoQVBQRU5EIFdlYktpdDJfU1lTVEVNX0lOQ0xVREVf
RElSRUNUT1JJRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtl
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggMzVhNTU3NDUyMTcwMGRi
ZDQ0OWZhOTQzMTk2MWQ2MGQxYWMzZDUwNi4uOGQwZDA5OTc4ZTIxZjUwYmRjM2Y3MTRkZTAwNjIz
ZDUwYjlhZTFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UK
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTQ4NCw4ICs0ODQsOCBA
QCBsaXN0KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwIgogICAgICIke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRrIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrIgotICAgICIke1dURl9ESVJ9L3d0Zi9ndGsvIgotICAgICIke1dURl9ESVJ9
L3d0Zi9nb2JqZWN0IgorICAgICIke1dURl9ESVJ9L3d0Zi9ndGsiCisgICAgIiR7V1RGX0RJUn0v
d3RmL2dsaWIiCiAgICAgIiR7V1RGX0RJUn0iCiApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAKaW5kZXggM2ZmMjgyYzcx
YTAxZDNhNTM1M2YxNzkyMDkyMjYwZmVkYzFlMWMyYS4uM2M1Nzk3YWNjMGUwMzY0NWI5ZTI0ZGVi
YjE0MTFlYTY4MzIzODU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25s
b2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rv
d25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAKQEAgLTMyLDkgKzMyLDkgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhh
bmRsZUludGVybmFsLmg+CiAjaW5jbHVkZSA8Z2lvL2dpby5oPgotI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dNYWluTG9vcFNvdXJjZS5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4K
LSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIv
R01haW5Mb29wU291cmNlLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKICNpZiBQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9DdXN0
b21Qcm90b2NvbE1hbmFnZXJJbXBsLmgKaW5kZXggZTY1ZmQxMjUyMWM3MjE5ZDMxNjA2NmQwNzg2
NDM4ZTViOWRmMmNhNi4uODU4Njc1YTAxNGFjZmE5OTU2NmU4NjFmNTFmMzNjYTgyZGIxZTlmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xz
L3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlcklt
cGwuaApAQCAtMjEsNyArMjEsNyBAQAogI2RlZmluZSBDdXN0b21Qcm90b2NvbE1hbmFnZXJJbXBs
X2gKIAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX0dUYXNrIEdUYXNrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1ByaW50SW5mby5oCmluZGV4IDhiZTlmOGQxZjhmOTljMDEyMmYxY2I2M2EyYmNiZmEzMzQz
NTY1YzUuLmJjYjJiZTE4Y2QxMjMzZDA4NDc0NTMzNjU1ZmIzZTY2Mzg3YjMzNGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QcmludEluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvUHJpbnRJbmZvLmgKQEAgLTMxLDcgKzMxLDcgQEAgT0JKQ19DTEFTUyBOU1ByaW50
SW5mbzsKICNlbGlmIFBMQVRGT1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9HdGtQcmludFNldHRp
bmdzIEd0a1ByaW50U2V0dGluZ3M7CiB0eXBlZGVmIHN0cnVjdCBfR3RrUGFnZVNldHVwIEd0a1Bh
Z2VTZXR1cDsKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1JlZlB0ci5oPgogI2Vsc2UKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgdGhlIHdp
bmRvd3MgZXF1aXZhbGVudC4KIGNsYXNzIE5TUHJpbnRJbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmNwcAppbmRleCBlZjFjYjFhY2MyMmQzYTU4
NjBiZTYzN2E3YzBlNmIzYzA1YzY1NWNiLi41MDFkNmYxMzcwOTBjOTM0NmEyZmU0ZDExOWYwNDAx
YTU0MjQzY2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50
Q29kZXJzR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29k
ZXJzR3RrLmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3ND
b250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtWZXJzaW9uaW5nLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QbGF0Zm9ybUNvbnRleHRDYWlyby5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dV
bmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuaAppbmRleCA0YWE1NWRlNzQwMTEyNGIx
NmI1YjJhNGI4MjgyZDBkMTNlNzI3ZDg5Li44MGE1ZGMxZWRlYmVhMGQzZDY1MzUyODAzNDhiNTRk
ODUwZjFkZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50
Q29kZXJzR3RrLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVy
c0d0ay5oCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIEFyZ3VtZW50Q29kZXJzR3RrX2gKIAog
I2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX0d0
a1ByaW50U2V0dGluZ3MgR3RrUHJpbnRTZXR0aW5nczsKIHR5cGVkZWYgc3RydWN0IF9HdGtQYWdl
U2V0dXAgR3RrUGFnZVNldHVwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0
ay9LZXllZERlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvS2V5ZWREZWNvZGVy
LmgKaW5kZXggMDgzYTdhY2M2ZDJhYTgyYzNkZWQxNjAwZDAxNjA0YmQyMjFjMmIyZi4uOGViMWM2
MTMyYzg2ZWU0YmIyN2MwMDNiZTAyM2Y5ZmEzOGZiMTg0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL2d0ay9LZXllZERlY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvZ3RrL0tleWVkRGVjb2Rlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9LZXllZENvZGluZy5oPgogI2luY2x1ZGUgPGdsaWIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvZ3RrL0tleWVkRW5jb2Rlci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9LZXllZEVu
Y29kZXIuaAppbmRleCA3ZWEzM2ZkOTMyMTdiN2QxMWEyYmQ5ZmI1NWRhYTM2OGU0MWNjMWNkLi5h
Y2JiNzZiMmZiODE5MTAyNDJkMmFiOTNkYjNmMzEwOTQyMGE2YmJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0tleWVkRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9ndGsvS2V5ZWRFbmNvZGVyLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0tleWVkQ29kaW5nLmg+CiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvUHJv
Y2Vzc0V4ZWN1dGFibGVQYXRoR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvUHJv
Y2Vzc0V4ZWN1dGFibGVQYXRoR3RrLmNwcAppbmRleCAzZmU4MGY0NGEzNTk0ZmI0YTJkYzhiOWIy
Nzc1YmEyOTczNDU2NTkxLi5kZDFkMTNjNDQ4MDBhNzVhZDM5NjczMTI4YTNlYzE3YjJkN2JlMmMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL1Byb2Nlc3NFeGVjdXRhYmxl
UGF0aEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Qcm9jZXNzRXhlY3V0
YWJsZVBhdGhHdGsuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8Z2xpYi5oPgogCiAj
aWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKQotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dsaWJVdGls
aXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmg+CiAjZW5kaWYKIAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3QuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0LmNwcAppbmRleCAyYzhmODll
NmYyNTc2OTA0YmUxNmRmZTUxODJlZDk2MzhiNGU5NmY2Li4wMWUyODEwMDJjMDliZDJkMjllMGNk
MWU1YzgwMjhhMTEyZjMxZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5jcHAKQEAgLTIzLDcgKzIzLDcg
QEAKICNpbmNsdWRlICJXZWJLaXRCYWNrRm9yd2FyZExpc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAi
V2ViS2l0TWFyc2hhbC5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKLSNpbmNsdWRlIDx3
dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCiAv
KioKICAqIFNFQ1RJT046IFdlYktpdEJhY2tGb3J3YXJkTGlzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3RJ
dGVtLmNwcAppbmRleCBiMDNjNmE2OTY1OTNmY2MzNWIzMDg1YmVhZDkxMmRkYTc0OTZjZGE4Li5i
Mjk1Yzk5MDQxZGMyNzYyMTlhYjI2NjliN2U2Mjg2OTk2YzczZGY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2Fy
ZExpc3RJdGVtLmNwcApAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIldlYktpdFByaXZhdGUu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0Q29sb3JDaG9vc2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRDb2xvckNob29zZXIuaAppbmRleCBhODgzYmIxMGNlODQ1NjhmZjQ3ZDAzNjdjY2Zl
MTVkZWE2NTMxMmMwLi4yNGE5NDFhNTc1NjBjMWFlZGFkNGE0NjQwNDY5MjY0ZjZmMGYzOTIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb2xvckNo
b29zZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb2xv
ckNob29zZXIuaApAQCAtMjIsNyArMjIsNyBAQAogCiAjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJH
dGsuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogdHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdENvbG9yQ2hvb3NlclJlcXVlc3QgV2ViS2l0Q29sb3JDaG9vc2VyUmVxdWVzdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29u
dGV4dE1lbnUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29u
dGV4dE1lbnUuY3BwCmluZGV4IGJmZjhjZmVmM2QyNmMzMzhkMjZmOTRhNDU0Y2MxNzlhZGI5Yzky
NTIuLmU0ZjZjZjBhMjA5ZDlkMzY3M2M2OTVkNGFiNGQ0MDVkYmQ3ZThhNGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudS5j
cHAKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudUl0ZW0uaCIKICNp
bmNsdWRlICJXZWJLaXRDb250ZXh0TWVudUl0ZW1Qcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
Q29udGV4dE1lbnVQcml2YXRlLmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5jcHAKaW5kZXggNjhhODRh
OWVjNWViZWMzNjkyYWZjOTNhYzc1MjRkNDcwNjVhYzE0OS4uNmU3YTI3Y2FhYmVlODZhNWExNjIw
MjBmMTA1NzVhMjZiZjdiNzhkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uY3BwCkBAIC0zMCw4ICszMCw4
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZXh0TWVudUl0ZW0uaD4KICNpbmNsdWRlIDxndGsv
Z3RrLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIu
aD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2ds
aWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29va2llTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5hZ2VyLmNw
cAppbmRleCAxZTljNTI4MDQ5OWQzNzlmYmU5NTQ2OWFhNjQyMWY4NmUzNTlmM2QzLi42ZjQ3ZjYw
ZTc3MzkzMWQ5Mjc5YWExZTU4MDE5NTg3MWFlYTg2OGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcApAQCAt
MjUsNyArMjUsNyBAQAogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1
ZGUgIldlYktpdENvb2tpZU1hbmFnZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RW51bVR5
cGVzLmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXREb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXREb3dubG9hZC5jcHAKaW5kZXggN2Q1YWY2M2U1NWYwODExNDM4NTE2OGZlNTg0Y2Ex
MDFmNmFlMDIwZi4uNGI0ZTM3NGZkYjNlMjFkYzQ0YmVjOTAwYzc0MDY5Yzk3MzlhYzAyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2Fk
LmNwcApAQCAtMjksOCArMjksOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzR3RrLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4
bi1saWIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkQ2xpZW50LmNwcAppbmRleCBkZjdjNDdm
Y2VkNWRlZjIyMTg0NmNhODgwODI3Mzg3OTExZDU0ZGNhLi5jYzcyMDgxNzJiNTRhZDJlMTk1NzFh
NDBiN2RmZTI1NzQ5ZTQyMjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXREb3dubG9hZENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWRDbGllbnQuY3BwCkBAIC0yNiw3ICsyNiw3IEBA
CiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUG9vbC5oIgogI2luY2x1ZGUgPFdlYktpdC9XS1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi9n
b2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZhdmljb25EYXRh
YmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGYXZpY29u
RGF0YWJhc2UuY3BwCmluZGV4IGY0NWZlODQ3ZjZmMjU4ZGQ5YzRlOGY1MDRhYjJjMDBiNmQ4Mjg1
MDMuLjgwYWMxNWE3MmU1MzQ1M2NkMjI3NzhjY2NlY2VjYjg5OTkyMDJiZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZhdmljb25EYXRhYmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmF2aWNvbkRh
dGFiYXNlLmNwcApAQCAtMjksOCArMjksOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVmUHRyQ2Fp
cm8uaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QuY3BwCmluZGV4
IDBhMDJmYmVmZWMwY2M5ZjkyODUzNjYzYzk4MWY4ZmExYWQ0MDQzNGMuLmIyMzU5NzY2MDAyNGYy
MDg4NmRjY2Y5ZDViYWJmMWJkZGI3MjMyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0LmNwcApA
QCAtMjcsOCArMjcsOCBAQAogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJv
eHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDxnbGliL2dp
MThuLWxpYi5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5jcHAKaW5kZXgg
MTdiMWQ1ZDJiN2VlODBmMTIwMDZlYjU4MTAyYzk5OGRlOTg5MTlhZC4uMDgzMGJjY2FmNzZmZDQy
MDllOTZiMTIxYWVkNDVkMjE4MTJjYzBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0RmluZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmNwcApAQCAtMjUsNyAr
MjUsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlZpZXcuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJW
aWV3QmFzZVByaXZhdGUuaCIKICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybUNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtQ2xp
ZW50LmNwcAppbmRleCAxODlkMzVkMjcxN2M3MjEwYzg0MWJkY2VkMjg5NDEzNmE1NjkzYzNkLi4x
MmVjOTI3YThjMGE1ZjZkODExNmU0YTlhNzU1YjAwNzNkODRhZDM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtQ2xpZW50LmNwcApAQCAt
MjYsNyArMjYsNyBAQAogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJL
aXRXZWJWaWV3QmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5o
IgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9H
UmVmUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lv
blJlcXVlc3QuY3BwCmluZGV4IDg0ZmQ4MGM1MzM5ZWIwNzliZjlhMGVhOWJiNTVhYmZhZjcwNmYy
OGYuLmQyZDVlNjgyMThmYTI2MTM0ZDhkNmNiMzM4OGY0NWZjY2VhZWZhMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVx
dWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9y
bVN1Ym1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkFQSVN0
cmluZy5oIgogI2luY2x1ZGUgIldlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKLSNpbmNsdWRlIDx3
dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVk
QnVuZGxlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcAppbmRleCBiMjEzNGViZWU1NDA2Y2MxZDM1YmNiYzIx
NGY4MDU1NWU4ZjQ0Y2M0Li43MjA1ZjBhZTAzOTc5MDFkNmMyYTY5MDBjYzA3ZGVkNDFlY2U2NmE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmpl
Y3RlZEJ1bmRsZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5j
bHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJSZXNv
dXJjZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgotI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVl
UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEph
dmFzY3JpcHRSZXN1bHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0SmF2YXNjcmlwdFJlc3VsdC5jcHAKaW5kZXggMmU2NGYwMTU2MjRiZDg3Mzc1YmMxZDNmZTgz
Y2ZhMDg3ODgyNzNhNy4uMjIxZWFjN2NiNDg2M2IyYmUwYTVlNzQ0MzAxMDMxMjJjMWFhZDIyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SmF2YXNj
cmlwdFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0SmF2YXNjcmlwdFJlc3VsdC5jcHAKQEAgLTIyLDcgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkFQ
SVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIldlYktpdEphdmFzY3JpcHRSZXN1
bHRQcml2YXRlLmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVu
dC5jcHAKaW5kZXggMzIwMzA5MDk2MzdkZTI5OGQwNGRkODFmNWI3N2NmMGNiZDNjNGI5YS4uZTQ2
ZmExYzZkMzY4OTk3MGFkMjhjMTA2MmU5M2NkNzJjYTZmZjg0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCkBA
IC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiV2ViS2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAj
aW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2Vi
Vmlld1ByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5j
bHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1pbWVJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1pbWVJbmZvLmNwcAppbmRleCAyMjgyZWRlMzc1MjEzMTA4
MTIwMGU0YTc2ODFmNGQ2MmZmYzc1ZjA3Li45OTU0Y2ZiMGFlMjM1YjA3YjE5ZGJhYjFmYWE1Y2Mw
MDRjMjgzZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRNaW1lSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0TWltZUluZm8uY3BwCkBAIC0yMSw3ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0TWlt
ZUluZm8uaCIKIAogI2luY2x1ZGUgIldlYktpdE1pbWVJbmZvUHJpdmF0ZS5oIgotI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBzdHJ1Y3QgX1dlYktpdE1pbWVJbmZvIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmln
YXRpb25BY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
TmF2aWdhdGlvbkFjdGlvbi5jcHAKaW5kZXggNDNjNzBhNjA2MjY2MzJkMjEwNWU5YTkzMjQ0ZTRj
NGJhMzNmZWRhMC4uYWZmNjI4MzFiOTJkOGVkNjM5MzQxOWM4NTljYzgwZTA1ZDViYTdhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlv
bkFjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
TmF2aWdhdGlvbkFjdGlvbi5jcHAKQEAgLTIyLDcgKzIyLDcgQEAKIAogI2luY2x1ZGUgIldlYktp
dE5hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgotI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb24uY3BwCmluZGV4IDAwYmQ4YWMxNzQzZDJhYzI0ODUwZmNjYjRlNDAwYjU2NWE4YmQ5NTAu
LmU1NzY5NzIzY2JkY2VhMjYzNDQ3OTE4Y2I4NmMwY2E1Yzk1Y2JhYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2
aWdhdGlvblBvbGljeURlY2lzaW9uLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgIldl
YktpdFBvbGljeURlY2lzaW9uUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQ
cml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KLSNpbmNsdWRlIDx3dGYvZ29i
amVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvbGljeUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQu
Y3BwCmluZGV4IDAzNTY2MTc2NmNlYzY2NDcxYzk5ODM2NDU2YzhmMmI4MTJhZWNkNjEuLjJkNGVh
YzViM2Y4NzcwY2MwOTM1ZjExMGRlNDQwMjIwMWNmODQ1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvbGljeUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9saWN5Q2xpZW50LmNwcApAQCAt
MjUsNyArMjUsNyBAQAogI2luY2x1ZGUgIldlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb25Qcml2
YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAi
V2ViS2l0V2ViVmlld1ByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmNwcAppbmRleCA2
NTkxMWI0NTA3ZWM0Mzg1MDUzMGFhNzhkODU3ZmI4YjRmYjYyZjBiLi5hNmU1MjRiNDM4ODFmZjk2
NGQzMTMzM2YyYjRmNmU5NTkwNWZiNDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24uY3BwCkBAIC0yNyw4ICsy
Nyw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KLSNpbmNs
dWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1
ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYgSEFW
RShHVEtfVU5JWF9QUklOVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24uY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbi5jcHAKaW5k
ZXggNzZjM2I5Mjc0ZWYxOWQyZWE5N2E0YjEzYTgwOGEyOGMyMTZhNmRiMi4uNjliMjQxZjg1M2Fm
OWEwMTJjNzI2MTgwNTE4YTRjMjI1YTBjMDQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNp
c2lvbi5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlICJXZWJLaXRVUklSZXF1ZXN0UHJp
dmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlc3BvbnNlUHJpdmF0ZS5oIgogI2luY2x1ZGUg
PGdsaWIvZ2kxOG4tbGliLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAKaW5kZXggZWQzODRjYmRlYjI4MTAxNTA0
ZDBhOTE5MmU5ZTIxNzg2ODFhNWMzMi4uNTViY2RmNGQ4MTRlNTQ4NWExNDZkNWVhMjczYzNlODNl
YThiYWIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVJQ2xpZW50LmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIldlYktpdFdpbmRv
d1Byb3BlcnRpZXNQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9HdGtVdGlsaXRpZXMuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCmluZGV4IGY3NTFhMTBjMGIyOTU3MGJiMmQ0YWJm
ODJhMzFhMTlhNmI4YTc3MzIuLmQ2NmNiM2FjNzg0NTQyMDNkOTc0MDA4NzQzYzljNjkzNmExZWM5
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVS
SVNjaGVtZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9HVW5pcXVlUHRyU291cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJv
ci5oPgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50TWFu
YWdlci5jcHAKaW5kZXggMjc1OTk0OWU0MmRlYmY0ZDM2ZjRkNzQ0NzIxYzUwOGM3OWI4NjYyZi4u
MTk4NTMxYTJkNGU4OWI1M2U2YTAxYjgwMGZmZmQ0MGJhNjEzZDFjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVu
dE1hbmFnZXIuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiV2ViS2l0VXNlckNvbnRl
bnRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaCIKICNpbmNs
dWRlICJXZWJTY3JpcHRNZXNzYWdlSGFuZGxlci5oIgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggNWE1ZWQx
NmVlNWJhMzQ0ZDFjNGY2OGMwZDNiYjJlNzViN2VkNjMxOC4uZGQ2ODg0MzI1MGNkNmRlMzMzYTM2
ZGYyZjI5MWQ0OGVlNzJhMzAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKQEAgLTU5LDggKzU5LDggQEAKICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
Z2xpYi9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJJbnNwZWN0
b3IuY3BwCmluZGV4IDVkNmE5YmU1NjU3YjZiYzc2YWVjMWMyZDM1NGQ1MGQwMzIwZmQ5YzEuLjdi
NDZkNTI3ZjdlYjM3YzJiYWE3OWEwZjkyNzkxMGNjYjA3MjFhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViSW5zcGVjdG9yLmNwcApA
QCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIldlYktpdE1hcnNoYWwuaCIKICNpbmNsdWRlICJX
ZWJLaXRXZWJJbnNwZWN0b3JQcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4K
LSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlJlc291cmNlLmNwcAppbmRleCBiZGU2NGI5ZGI1ZDcyZDZkYjYxOTg3NzdmMmI3OWFk
N2Q2ZmM0MTExLi5kYmE3ZjcwMDBhMjRkNmFhNGU2MDM0MTY5MjNlZjI5MjY3MjM3Nzc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJSZXNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViUmVz
b3VyY2UuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiV2ViS2l0VVJJUmVxdWVzdC5o
IgogI2luY2x1ZGUgIldlYktpdFdlYlJlc291cmNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIv
Z2kxOG4tbGliLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IDUzZThhNjBjMzZmZjhkYzYyZGE4YWUzMDE4
N2JhNTk2Zjk3OTY4ZmIuLmNmZTgxZTE3YmMzOTk4ZGJkZDRlMjU1NjkzN2EzMTE5NGMxMzMzNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXcuY3BwCkBAIC02Nyw3ICs2Nyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRpZXMu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZlB0ckNhaXJvLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4
bi1saWIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIFVT
RShMSUJOT1RJRlkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5kZXggMWQ3MzAxZmUwNzNlZTkyYmQ4MzA4MTE1NTY2
NzU3NjQ1OTE1OTQ2MS4uZTQyOThhYjU0OTlhZGZkYTU2ZjNkOTAzODRhZTU5Mjg0NjhiYTI0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
d0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdCYXNlLmNwcApAQCAtNjEsNyArNjEsNyBAQAogI2luY2x1ZGUgPGdkay9nZGtrZXlzeW1z
Lmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVk
ZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVy
L1dlYlNvY2tldFNlcnZlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNl
cnZlci9XZWJTb2NrZXRTZXJ2ZXIuaAppbmRleCA2ZDViMzg4NGEyZTU1Nzg1ZDhjY2EwMzE0OGU1
ZmQ4MGVmYTkwZWM4Li4yZTIyN2VmMDAyNjgxZTlmNTQxNTZlOTc1ZGI4YWE3NThkODA4MzExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNv
Y2tldFNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2
ZXIvV2ViU29ja2V0U2VydmVyLmgKQEAgLTM1LDcgKzM1LDcgQEAKIAogI2lmIFVTRShTT1VQKQog
I2luY2x1ZGUgPGdpby9naW8uaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIv
Z3RrL1dlYkluc3BlY3RvclNlcnZlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
SW5zcGVjdG9yU2VydmVyL2d0ay9XZWJJbnNwZWN0b3JTZXJ2ZXJHdGsuY3BwCmluZGV4IDU5ZDcy
MDMyN2U1NGQ2NzM4MDExYTkzY2FkZmQ2OTU5YjM1NTYzZTguLmM1MzkzYTQ3ZGU0NzRiZDcwOTEx
NDViOTg4YWFhNjI1MTdkMmFjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9JbnNwZWN0b3JTZXJ2ZXIvZ3RrL1dlYkluc3BlY3RvclNlcnZlckd0ay5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9ndGsvV2ViSW5zcGVjdG9yU2Vy
dmVyR3RrLmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVS
ZWdpc3RyeS5oPgogI2luY2x1ZGUgPGdpby9naW8uaD4KICNpbmNsdWRlIDxnbGliLmg+Ci0jaW5j
bHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlx
dWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRl
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVy
L3NvdXAvV2ViU29ja2V0U2VydmVyU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
SW5zcGVjdG9yU2VydmVyL3NvdXAvV2ViU29ja2V0U2VydmVyU291cC5jcHAKaW5kZXggZDAzMDU1
ODhkZjYzZGQ4YjQ5OTY5MWY1MTlmMzRhN2ZmNjRlNGJhMy4uNDFlMjZiZTg5YjEzNzUyYzM4N2Vi
NzhhYTQyNWU2MjkwMzI5MjE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0luc3BlY3RvclNlcnZlci9zb3VwL1dlYlNvY2tldFNlcnZlclNvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvc291cC9XZWJTb2NrZXRTZXJ2ZXJT
b3VwLmNwcApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU29ja2V0U3RyZWFt
SGFuZGxlLmg+CiAjaW5jbHVkZSA8Z2lvL2dpby5oPgogI2luY2x1ZGUgPGdsaWIuaD4KLSNpbmNs
dWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1
ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIv
Z3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAKaW5kZXggOGU2ZWUwMmExNGRiOTZhZTlm
MDNhZWJmMTg1NjY2MzI4YTgzMzYyNS4uOWQ0MTZhOGY3ZWIxZDMxOTM3YWZmNmUxNTExOWRiMjQz
MDA3ZGYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0
ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcApAQCAtMzgsMTAgKzM4LDEwIEBACiAj
aW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPGxvY2FsZS5oPgogI2luY2x1ZGUgPHd0Zi9SdW5M
b29wLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0
Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1
ZVB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dsaWJVdGlsaXRpZXMuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL2d0ay9QbHVnaW5JbmZvQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL2d0ay9QbHVnaW5JbmZvQ2FjaGUuaAppbmRleCBjYWIxZTBmOWI2NDE0N2IyZmY3
YWY0ZTViMWM3NjZhNTQ3MDNmYjRkLi5kMzg2ZDQ5OTMxNWIxMWI5ZGQyNDIwYmM2MmExODA1Mzdh
NDk1ZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9ndGsv
UGx1Z2luSW5mb0NhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
Z3RrL1BsdWdpbkluZm9DYWNoZS5oCkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSAiUGx1Z2lu
TW9kdWxlSW5mby5oIgogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oPgotI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTWFpbkxv
b3BTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lu
cy91bml4L1BsdWdpblByb2Nlc3NQcm94eVVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5Qcm9jZXNzUHJveHlVbml4LmNwcAppbmRleCA3MGQ4NzNk
YmEzZGQ5ZDhiM2ViNTkyOTUzMWI2ZTk4ODk0ZTY5ODcxLi5mZDI1ZTc0NTdmNWU4ZGQ1MzVjMWM4
MTdlNzYwNmNkYjU4ZmU4NjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy91bml4L1BsdWdpblByb2Nlc3NQcm94eVVuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAKQEAg
LTM5LDcgKzM5LDcgQEAKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKQogI2lu
Y2x1ZGUgPGdsaWIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5j
bHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEsp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0RyYWdBbmREcm9wSGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0RyYWdBbmREcm9wSGFuZGxl
ci5jcHAKaW5kZXggOGE2YWRiOTNmMjZhZGRkM2Q2MjJkYmMyMjgzNTZkNGUzNzQyNGZhZS4uY2Nm
NmYzMDU0ZTlkOGMwMDM0MmI2OGZjNDljZDM2NTkwNDQyYTA5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2d0ay9EcmFnQW5kRHJvcEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvRHJhZ0FuZERyb3BIYW5kbGVyLmNwcApAQCAtMzUsOCAr
MzUsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR3RrVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYXN0ZWJvYXJkSGVscGVyLmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dV
bmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTWFpbkxvb3BTb3VyY2UuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0dlc3R1cmVDb250cm9s
bGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0dlc3R1cmVDb250cm9sbGVyLmgK
aW5kZXggNjNlZDdiZDk4MTkyOTcxZTAwNmY4MjRjOThhODYwNDU0MjY1MjNkOS4uNzhmYzJjYjMx
Y2IwNjg2MmZmY2MzZjNiODYyMmUxMzYwNjgyOWFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2d0ay9HZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9ndGsvR2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtMzAsOCArMzAsOCBAQAogCiAj
aW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmg+Ci0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dNYWluTG9vcFNvdXJj
ZS5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogdHlwZWRlZiB1bmlvbiBfR2Rr
RXZlbnQgR2RrRXZlbnQ7CiB0eXBlZGVmIHN0cnVjdCBfR2RrRXZlbnRTZXF1ZW5jZSBHZGtFdmVu
dFNlcXVlbmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9JbnB1
dE1ldGhvZEZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0lucHV0TWV0
aG9kRmlsdGVyLmNwcAppbmRleCA2OTZiODY0NGVjYWQyOGJjYzgwZWY4NjA1N2E0NTQ0MTA1MzM0
OGE5Li5hOWZkM2Q1NmMxNDA3MDgzYjU0MjQyZDE5ZjM0Y2Y1OGJmNjdjNDE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0lucHV0TWV0aG9kRmlsdGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0lucHV0TWV0aG9kRmlsdGVyLmNwcApAQCAt
MzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPGdkay9nZGtrZXlzeW1zLmg+CiAjaW5jbHVkZSA8Z3Rr
L2d0ay5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9H
VW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2d0ay9JbnB1dE1ldGhvZEZpbHRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9J
bnB1dE1ldGhvZEZpbHRlci5oCmluZGV4IDM3ZGU4M2U2ZjA0YTM4M2NmMGQ1NTJlOTU2YTJjN2Ey
MmUwNGIzODkuLjE1MmU2YTFhMTcxZTI1NmM3Njc3NmE5MzE1ZDNjNzNmNWNkYzQwZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvSW5wdXRNZXRob2RGaWx0ZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0lucHV0TWV0aG9kRmlsdGVyLmgKQEAg
LTIyLDcgKzIyLDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KICNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiB0eXBlZGVmIHN0cnVjdCBfR2RrRXZlbnRLZXkgR2RrRXZlbnRLZXk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvclByb3h5R3RrLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3Bw
CmluZGV4IGQ2OGVkYzE3YzI2OTM1YWJlZWQ3NDgyZjAwN2QwMjMwY2ZjZWIwMTUuLmUwMWFkMWJm
NWFkMmI0OGIzYmY4ZGI3N2VjMjg1ZmUxNjRjZjkyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCkBAIC0zNyw3ICsz
Nyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPGds
aWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVu
dVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51
UHJveHlHdGsuY3BwCmluZGV4IGNjZTlmMzZhMzlhYjc5NzgxYmU2MTNlYjk0ZGQ1NGI3YzIzN2M5
NjkuLjQ2ODFjNzFmZDQzOTU0MDNiZTAxOTc5MDViNTBjMmUzZWFjZDYxZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3Bw
CkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRpZXMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVk
ZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQb3B1
cE1lbnVQcm94eUd0ay5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1l
bnVQcm94eUd0ay5oCmluZGV4IGE1ZTdkOWNhZmVjNTE0M2NkNTkxOWNkZTEzMThlOGY2YTQ0ZjZi
NWYuLmQ5MjAwMzk1OTdmYzA5ZWM5YTFhNzY5ZWU5MGNhOTU4MWNiNzU0NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmgKQEAg
LTIxLDcgKzIxLDcgQEAKICNkZWZpbmUgV2ViUG9wdXBNZW51UHJveHlHdGtfaAogCiAjaW5jbHVk
ZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiB0eXBlZGVmIHN0cnVjdCBfR01haW5Mb29wIEdNYWluTG9vcDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc1Bvb2xHdGsuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQcm9jZXNzUG9vbEd0ay5jcHAKaW5kZXgg
ZjQwYzMxZmMwZmRjMTU3MmU4OGVkOWZhMzRmMWVjMDZlMmJlMDVlZi4uNjIzMDQzZDJhOGRlNTBi
MGY0OWJkMDQyM2M0NWNiYzEzNTAwZThhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2d0ay9XZWJQcm9jZXNzUG9vbEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2d0ay9XZWJQcm9jZXNzUG9vbEd0ay5jcHAKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgotI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9zb3Vw
L1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29v
a2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAppbmRleCAzZTdiNDZhMDk3NDE0MjJj
ZWFiYjJkYTdiYTBlMTg1N2Y2OThkY2Y0Li5lZmY0ODc0OTk0OGFkYTJlZGY4NzMzMGE2MjY3MmIy
ZTQyYTQ3YzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMv
c291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCkBAIC0zMiw3ICszMiw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVKYXJTb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Tb3VwTmV0d29ya1Nlc3Npb24uaD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KLSNpbmNs
dWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24uY3BwCmluZGV4IGY0
YTJhYmM3MWZmYmNiYTZlM2RjYmFjNDllYzU3NDFjODU2NTA1YTcuLmNmMjY5NmYzNjJkNmFjNzVi
ZGE3Mzk2MWIxYjE2NWM1NWFmMDhmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRX
ZWJFeHRlbnNpb24uY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0V2ViUGFn
ZVByaXZhdGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ROUy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dSZWZQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdl
YkhpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkhpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDU1NjI0NmRjZjZj
MDA0Y2M4YmM4MmRkNGNiZGVhMzUyZjI2ZTgwOWQuLmZjMjA5NjlhNmE2NTRkODI1NDRmMDY1ODhk
OTA0NTliNWUyZDU1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViSGl0
VGVzdFJlc3VsdC5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlICJXZWJLaXRQcml2YXRl
LmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViSGl0VGVzdFJlc3VsdFByaXZhdGUuaCIKICNpbmNsdWRl
IDxnbGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRWRpdG9yQ2xpZW50R3RrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVu
dEd0ay5jcHAKaW5kZXggNzY5ZDc4YzZkNDIzNWExMmM1NTU4ZTFlMDM0OWFlYTg5ZDUyMWM5MS4u
MmYxMDhhZmM3MjMzNzI4YmQzNDU4MzkyNzU1YzM5ZmUzZDM4ZTBlZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRWRpdG9yQ2xpZW50
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0
ay9XZWJFZGl0b3JDbGllbnRHdGsuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dzS2V5Ym9hcmRDb2Rl
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvbWFya3VwLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IDZjYjcwOWUyMjQwMzBlOTExMDhhMDMxNjQzYjlkMzNmMDFkMzE3NDIuLjgzMzZm
OTc2NjE1NTMxODJiOWU1ZTVkMDRiNGM5MTg1ODVhZDMyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNzQsNyArNzQsNyBAQAogCiAjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lu
Y2x1ZGUgIldlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCi0jaW5jbHVkZSA8d3RmL2dvYmpl
Y3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaAppbmRleCA2OTRjMzQ1Y2I0ZDhlZjMxYTNk
ODVmNWEwNzQ3MzAxMzk4ZDFiMDA3Li5kMGFjZDg0ZmY4ZDhjMDM4MWE1Y2Q4NmE3NmU1OGJlNzQy
ZTY2MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L0xheWVyVHJlZUhvc3RHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIlRl
eHR1cmVNYXBwZXJMYXllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR0xDb250ZXh0Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmpl
Y3QvR01haW5Mb29wU291cmNlLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR01haW5Mb29wU291cmNl
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1ByaW50ZXJMaXN0R3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1ByaW50ZXJMaXN0R3RrLmgKaW5kZXggYjkxOGRlZTQwYmI1
NDE3MGQzY2U4MzYwYjI4MzY3ODljODhlMGY5Ny4uZTEzY2IyOTk1OGNiYTlkMzNkNTdkMDNlNGQ2
NjYyYjAwMzY5Mzg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2d0ay9QcmludGVyTGlzdEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9ndGsvUHJpbnRlckxpc3RHdGsuaApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAog
dHlwZWRlZiBzdHJ1Y3QgX0d0a1ByaW50ZXIgR3RrUHJpbnRlcjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKaW5kZXggZWM5
OTBlY2Q2MWIxZTg1NzdmOGVkYjhlOTcyZjVhOGZjMmNmYTUzNS4uYjdlN2QxYjQ2YmNiNGE3MDgw
NjYyZmQwMjgzZDEzYzU4MmJjOWQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCkBAIC00NSw3ICs0NSw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQWdlbnRHdGsuaD4KLSNpbmNsdWRl
IDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0
ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3Rr
LmNwcAppbmRleCA2YzNjODJjZWQ0MmViMzRlYWRlYWYyZDY2NzM2MTk4MmY1YTFhZmJhLi41NWVj
ZGIyYjQ2ZTYzYWJjOGRmMWExMmE4MTFkNWE3NTViNzNhMDhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0
aW9uR3RrLmNwcApAQCAtNDIsNyArNDIsNyBAQAogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNs
dWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKICNp
ZiBIQVZFKEdUS19VTklYX1BSSU5USU5HKQogI2luY2x1ZGUgIlByaW50ZXJMaXN0R3RrLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50
T3BlcmF0aW9uR3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dl
YlByaW50T3BlcmF0aW9uR3RrLmgKaW5kZXggYzIwMWEyZWY5NzUwZTA5M2Q5NThlYTQ4MzcwN2Rh
ODJiMmNiMGE4ZC4uZjVmZWMxMDZjYTI3OTRiNTY3NTYxODUzZmE4MzExNDYxOTA1MWM0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9w
ZXJhdGlvbkd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsv
V2ViUHJpbnRPcGVyYXRpb25HdGsuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvUmVmUHRyQ2Fpcm8uaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX0d0a1ByaW50U2V0
dGluZ3MgR3RrUHJpbnRTZXR0aW5nczsKIHR5cGVkZWYgc3RydWN0IF9HdGtQYWdlU2V0dXAgR3Rr
UGFnZVNldHVwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2Vi
R3RrRXh0ZW5zaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2Vi
R3RrRXh0ZW5zaW9uTWFuYWdlci5oCmluZGV4IDM3YzVlNjY3NjU5MWRlMzUyNjBjYWYzMGE1OWUz
YTQ0MTIwM2VkYTYuLjg4NGNhMzlmNDI0NDJkNzZkNGRmZjUxZDQxZTY3NDQ4ODM2Yjk1MzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYkd0a0V4dGVuc2lvbk1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJHdGtFeHRlbnNp
b25NYW5hZ2VyLmgKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGli
L0dSZWZQdHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkV4dGVuc2lvbiBXZWJLaXRX
ZWJFeHRlbnNpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291
cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAppbmRleCBkZDVkNThh
ZDVjODc5YTU4ODM4YTNmZGRhMjUzNWM2NWQyMzk4NDNhLi43OTRhNGJkNjVjNjdhMjU3YjFmOTRj
MGVkODAzZGI3NDViZjBlYzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCkBAIC0y
MSw3ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5oIgog
CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIHN0cnVjdCBBc3luY1JlYWRE
YXRhIHsKICAgICBBc3luY1JlYWREYXRhKEdTaW1wbGVBc3luY1Jlc3VsdCogcmVzdWx0LCB2b2lk
KiBidWZmZXIsIGdzaXplIGNvdW50LCBHQ2FuY2VsbGFibGUqIGNhbmNlbGxhYmxlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKaW5kZXgg
MDdjOWE4ZjdhMGNkMGVjMGZmMTRmNWQ2Yzk3Njk4MDRmMzE4OGEwNi4uZmUyYTNjNmNmODAwMmE5
OGRlYmMwMDM3MGFiZTYyMzZkY2Y4NDcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCkBAIC00Miw4ICs0Miw4IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9Tb3VwTmV0d29ya1Nlc3Npb24uaD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAu
aD4KICNpbmNsdWRlIDx3dGYvUkFNU2l6ZS5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQ
dHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
c291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
c291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuaAppbmRleCA3MTA5ODkzZmYzZjE4MGRkYjRmNWU0
ZDU1Yzc5OWVjZGFiNzJhZWQ4Li4xZDZlOWEzMTQ4ZjM4ZTIzYmQ0MmZkNDU1ZjNmOWVmZTBlN2Nl
OTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJl
cXVlc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlNv
dXBSZXF1ZXN0TWFuYWdlci5oCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSA8bWVtb3J5Pgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogdHlwZWRlZiBzdHJ1Y3Qg
X0dJbnB1dFN0cmVhbSBHSW5wdXRTdHJlYW07CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjcxZDZhY2VkMGFiNzhiMDJkOTAwYmYwMTdmNGI2MDZi
YWVlMjFhYy4uM2E2YmQzZmRlMTMzOWU1NzNiNTIxMTJhOGY2ZjI0MzM1YTQ1OTE5OSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEw
MSBAQAorMjAxNS0wNi0xMCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0dMaWJdIE1vdmUgZmlsZXMgdW5kZXIgU291cmNlL1dURi93dGYvZ29iamVjdCB0
byBTb3VyY2UvV1RGL3d0Zi9nbGliCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDU3OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVcGRhdGUgaGVhZGVyIGluY2x1c2lvbnMgZm9yIGhlYWRlcnMgdGhhdCBo
YXZlIGJlZW4gbW92ZWQKKyAgICAgICAgdG8gU291cmNlL1dURi93dGYvZ2xpYi8uCisKKyAgICAg
ICAgQWxzbyBtb3ZlIHRoZSB1bml0IHRlc3RzIHVuZGVyIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L2dvYmplY3QvCisgICAgICAgIHRvIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvIGFuZCB1
cGRhdGUgdGhlIGJ1aWxkIHJ1bGVzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9QbGF0Zm9y
bUdUSy5jbWFrZToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL0dNYWlu
TG9vcFNvdXJjZS5jcHA6IFJlbmFtZWQgZnJvbSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5jcHAuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpH
TWFpbkxvb3BTb3VyY2VUZXN0OjpHTWFpbkxvb3BTb3VyY2VUZXN0KToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OkdNYWluTG9vcFNvdXJjZVRlc3Q6On5HTWFpbkxvb3BTb3VyY2VUZXN0KToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OkdNYWluTG9vcFNvdXJjZVRlc3Q6OnJ1bkxvb3ApOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6R01haW5Mb29wU291cmNlVGVzdDo6ZGVsYXllZEZpbmlzaCk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpHTWFpbkxvb3BTb3VyY2VUZXN0OjpmaW5pc2gpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6R01haW5Mb29wU291cmNlVGVzdDo6c291cmNlKToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OmJhc2ljUmVzY2hlZHVsaW5nKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6cmVlbnRyYW50UmVzY2hl
ZHVsaW5nKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNhbmNlbFJlcGVhdGluZ1NvdXJjZUR1
cmluZ0Rpc3BhdGNoKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmJhc2ljRGVzdHJveUNhbGxi
YWNrcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkZXN0cm95Q2FsbGJhY2tzQWZ0ZXJDYW5j
ZWxsaW5nRHVyaW5nRGlzcGF0Y2gpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGVzdHJveUNh
bGxiYWNrc0FmdGVyUmVzY2hlZHVsaW5nRHVyaW5nRGlzcGF0Y2gpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvR1VuaXF1ZVB0ci5jcHA6IFJlbmFtZWQgZnJvbSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nb2JqZWN0L0dVbmlxdWVQdHIuY3BwLgorICAgICAg
ICAobG9nKToKKyAgICAgICAgKHRha2VMb2dTdHIpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpyZXR1cm5PdXRDaGFyKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dvYmplY3QvR01haW5Mb29wU291cmNlLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkdNYWluTG9vcFNvdXJjZVRlc3Q6OkdNYWluTG9vcFNv
dXJjZVRlc3QpOiBEZWxldGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R01haW5Mb29wU291
cmNlVGVzdDo6fkdNYWluTG9vcFNvdXJjZVRlc3QpOiBEZWxldGVkLgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6R01haW5Mb29wU291cmNlVGVzdDo6cnVuTG9vcCk6IERlbGV0ZWQuCisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpHTWFpbkxvb3BTb3VyY2VUZXN0OjpkZWxheWVkRmluaXNoKTogRGVs
ZXRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkdNYWluTG9vcFNvdXJjZVRlc3Q6OmZpbmlz
aCk6IERlbGV0ZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpHTWFpbkxvb3BTb3VyY2VUZXN0
Ojpzb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6YmFzaWNSZXNjaGVk
dWxpbmcpOiBEZWxldGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6IERlbGV0ZWQu
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpyZWVudHJhbnRSZXNjaGVkdWxpbmcpOiBEZWxldGVk
LgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y2FuY2VsUmVwZWF0aW5nU291cmNlRHVyaW5nRGlz
cGF0Y2gpOiBEZWxldGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6YmFzaWNEZXN0cm95Q2Fs
bGJhY2tzKTogRGVsZXRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRlc3Ryb3lDYWxsYmFj
a3NBZnRlckNhbmNlbGxpbmdEdXJpbmdEaXNwYXRjaCk6IERlbGV0ZWQuCisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpkZXN0cm95Q2FsbGJhY2tzQWZ0ZXJSZXNjaGVkdWxpbmdEdXJpbmdEaXNwYXRj
aCk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ29iamVjdC9H
VW5pcXVlUHRyLmNwcDoKKyAgICAgICAgKGxvZyk6IERlbGV0ZWQuCisgICAgICAgICh0YWtlTG9n
U3RyKTogRGVsZXRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOiBEZWxldGVkLgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6cmV0dXJuT3V0Q2hhcik6IERlbGV0ZWQuCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2d0ay9JbnB1dE1ldGhvZEZpbHRlci5jcHA6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTU5vZGVGaWx0ZXJU
ZXN0LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NTm9k
ZVRlc3QuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01Y
UGF0aE5TUmVzb2x2ZXJUZXN0LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvVGVzdEF1dGhlbnRpY2F0aW9uLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJHdGsvVGVzdENvbnRleHRNZW51LmNwcDoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdERvd25sb2Fkcy5jcHA6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RJbnNwZWN0b3IuY3BwOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0SW5zcGVjdG9yU2VydmVyLmNwcDoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFByaW50aW5nLmNw
cDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFJlc291cmNl
cy5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RVSUNs
aWVudC5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RX
ZWJFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0RmF2aWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdEZpbmRDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktp
dFBvbGljeUNsaWVudC5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
R3RrL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHA6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRXZWJW
aWV3LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdl
YlZpZXdFZGl0b3IuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0
ay9XZWJFeHRlbnNpb25UZXN0LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3QuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
Z3RrL1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0
ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1dl
YktpdDJHdGsvVGVzdE1haW4uaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQy
R3RrL1dlYktpdFRlc3RCdXMuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1dlYktp
dDJHdGsvV2ViS2l0VGVzdEJ1cy5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1dlYktp
dDJHdGsvV2ViS2l0VGVzdFNlcnZlci5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9ndGsv
V2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJB
dGsuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0Fj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyQXRrLmNwcDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlckF0ay5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRr
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL0FjdGl2YXRlRm9udHNHdGsuY3BwOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL0luamVjdGVkQnVuZGxlVXRpbGl0aWVz
LmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2d0ay9UZXN0
UnVubmVyR3RrLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtR1RLLmNt
YWtlOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsu
Y3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNw
cDoKKwogMjAxNS0wNi0xMCAgSHl1bmd3b29rIExlZSAgPGh5dW5nd29vay5sZWVAbmF2ZXJjb3Jw
LmNvbT4KIAogICAgICAgICBbRUZMXSBFeGVjdXRlIEphdmFzY3JpcHQgbWV0aG9kIGluIG1pbmkg
YnJvd3NlciBhZGRyZXNzIGJhci4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxh
dGZvcm1HVEsuY21ha2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlCmlu
ZGV4IDdiZjA1ZDVkZDJjYWM4MTZkOGQxZWJmNjUxMGYxNzYyNDQ1YjNkZGEuLjYyYmZlYjM0YmU0
ZDE1OWMxMDllYWI1YTU4ODA0OWVjZDhhMmZlZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9y
bUdUSy5jbWFrZQpAQCAtMTM2LDcgKzEzNiw3IEBAIHNldF90ZXN0c19wcm9wZXJ0aWVzKFRlc3RX
ZWJDb3JlIFBST1BFUlRJRVMgVElNRU9VVCA2MCkKIHNldF90YXJnZXRfcHJvcGVydGllcyhUZXN0
V2ViQ29yZSBQUk9QRVJUSUVTIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke1RFU1RXRUJLSVRB
UElfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9XZWJDb3JlKQogCiBsaXN0KEFQUEVORCBUZXN0
V1RGX1NPVVJDRVMKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvZ2xpYi9HTWFp
bkxvb3BTb3VyY2UuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL2dsaWIv
R1VuaXF1ZVB0ci5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvZ2xpYi9X
b3JrUXVldWVHTGliLmNwcAotICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9nb2Jq
ZWN0L0dNYWluTG9vcFNvdXJjZS5jcHAKLSAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9X
VEYvZ29iamVjdC9HVW5pcXVlUHRyLmNwcAogKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvZ2xpYi9HTWFpbkxvb3BTb3VyY2UuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvZ2xpYi9HTWFpbkxvb3BTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0OTkx
ZWVlYjYzOTA0ZmE3OTZlNzhiN2RjNWRkYzEwN2YzMWYzODgKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL0dNYWluTG9vcFNvdXJjZS5jcHAKQEAg
LTAsMCArMSw1NDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8d3RmL2dsaWIvR1RocmVhZFNhZmVNYWluTG9v
cFNvdXJjZS5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBHTWFpbkxvb3BTb3VyY2VUZXN0IHsK
K3B1YmxpYzoKKyAgICBHTWFpbkxvb3BTb3VyY2VUZXN0KCkKKyAgICAgICAgOiBtX21haW5Mb29w
KGdfbWFpbl9sb29wX25ldyhudWxscHRyLCBUUlVFKSkKKyAgICB7CisgICAgfQorCisgICAgfkdN
YWluTG9vcFNvdXJjZVRlc3QoKQorICAgIHsKKyAgICAgICAgZ19tYWluX2xvb3BfdW5yZWYobV9t
YWluTG9vcCk7CisgICAgfQorCisgICAgdm9pZCBydW5Mb29wKCkKKyAgICB7CisgICAgICAgIGdf
bWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKKyAgICB9CisKKyAgICB2b2lkIGRlbGF5ZWRGaW5p
c2goKQorICAgIHsKKyAgICAgICAgZ190aW1lb3V0X2FkZCgyNTAsCisgICAgICAgICAgICBbXShn
cG9pbnRlciBkYXRhKSB7CisgICAgICAgICAgICAgICAgR01haW5Mb29wU291cmNlVGVzdCYgdGVz
dCA9ICpzdGF0aWNfY2FzdDxHTWFpbkxvb3BTb3VyY2VUZXN0Kj4oZGF0YSk7CisgICAgICAgICAg
ICAgICAgdGVzdC5maW5pc2goKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gR19TT1VSQ0VfUkVN
T1ZFOworICAgICAgICAgICAgfSwgdGhpcyk7CisgICAgfQorCisgICAgdm9pZCBmaW5pc2goKQor
ICAgIHsKKyAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX21haW5Mb29wKTsKKyAgICB9CisKKyAg
ICBUJiBzb3VyY2UoKSB7IHJldHVybiBtX3NvdXJjZTsgfQorCitwcml2YXRlOgorICAgIEdNYWlu
TG9vcCogbV9tYWluTG9vcDsKKyAgICBUIG1fc291cmNlOworfTsKKwordGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CitzdGF0aWMgdm9pZCBiYXNpY1Jlc2NoZWR1bGluZyhUJiBjb250ZXh0KQoreworICAg
IEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7CisKKyAgICBj
b250ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBGaXJzdFRhc2siLCBbJl0gewor
ICAgICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBiZSBjYWxsZWQuIFRoYXQncyB3aHkgd2UgYXNz
ZXJ0CisgICAgICAgIC8vIHRoYXQgdGhlIHZhcmlhYmxlIGlzIGZhbHNlIGEgZmV3IGxpbmVzIGxh
dGVyLgorICAgICAgICBjb250ZXh0LmZpbmlzaGVkRmlyc3RUYXNrID0gdHJ1ZTsKKyAgICB9KTsK
KyAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisK
KyAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBTZWNvbmRUYXNrIiwg
WyZdIHsKKyAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZl
KCkgJiYgIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKKyAgICAgICAgY29u
dGV4dC5maW5pc2hlZFNlY29uZFRhc2sgPSB0cnVlOworICAgICAgICBjb250ZXh0LnRlc3QuZmlu
aXNoKCk7CisgICAgfSk7CisgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlz
U2NoZWR1bGVkKCkpOworCisgICAgY29udGV4dC50ZXN0LnJ1bkxvb3AoKTsKKworICAgIEVYUEVD
VF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7CisgICAgRVhQRUNUX0ZB
TFNFKGNvbnRleHQuZmluaXNoZWRGaXJzdFRhc2spOworICAgIEVYUEVDVF9UUlVFKGNvbnRleHQu
ZmluaXNoZWRTZWNvbmRUYXNrKTsKK30KKworVEVTVChXVEZfR01haW5Mb29wU291cmNlLCBCYXNp
Y1Jlc2NoZWR1bGluZykKK3sKKyAgICBzdHJ1Y3QgVGVzdGluZ0NvbnRleHQgeworICAgICAgICBH
TWFpbkxvb3BTb3VyY2VUZXN0PEdNYWluTG9vcFNvdXJjZT4gdGVzdDsKKyAgICAgICAgYm9vbCBm
aW5pc2hlZEZpcnN0VGFzayA9IGZhbHNlOworICAgICAgICBib29sIGZpbmlzaGVkU2Vjb25kVGFz
ayA9IGZhbHNlOworICAgIH0gY29udGV4dDsKKyAgICBiYXNpY1Jlc2NoZWR1bGluZzxUZXN0aW5n
Q29udGV4dD4oY29udGV4dCk7CisKKyAgICBzdHJ1Y3QgVGhyZWFkU2FmZVRlc3RpbmdDb250ZXh0
IHsKKyAgICAgICAgR01haW5Mb29wU291cmNlVGVzdDxHVGhyZWFkU2FmZU1haW5Mb29wU291cmNl
PiB0ZXN0OworICAgICAgICBib29sIGZpbmlzaGVkRmlyc3RUYXNrID0gZmFsc2U7CisgICAgICAg
IGJvb2wgZmluaXNoZWRTZWNvbmRUYXNrID0gZmFsc2U7CisgICAgfSB0aHJlYWRTYWZlQ29udGV4
dDsKKyAgICBiYXNpY1Jlc2NoZWR1bGluZzxUaHJlYWRTYWZlVGVzdGluZ0NvbnRleHQ+KHRocmVh
ZFNhZmVDb250ZXh0KTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdGF0aWMgdm9pZCBy
ZWVudHJhbnRSZXNjaGVkdWxpbmcoVCYgY29udGV4dCkKK3sKKyAgICBFWFBFQ1RfVFJVRSghY29u
dGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOworCisgICAgY29udGV4dC50ZXN0LnNvdXJj
ZSgpLnNjaGVkdWxlKCJbVGVzdF0gRmlyc3RUYXNrIiwgWyZdIHsKKyAgICAgICAgRVhQRUNUX1RS
VUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkgJiYgIWNvbnRleHQudGVzdC5zb3Vy
Y2UoKS5pc1NjaGVkdWxlZCgpKTsKKworICAgICAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuc2No
ZWR1bGUoIltUZXN0XSBTZWNvbmRUYXNrIiwgWyZdIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVF
KGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpICYmICFjb250ZXh0LnRlc3Quc291cmNl
KCkuaXNTY2hlZHVsZWQoKSk7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LmZpbmlz
aGVkRmlyc3RUYXNrKTsKKworICAgICAgICAgICAgY29udGV4dC5maW5pc2hlZFNlY29uZFRhc2sg
PSB0cnVlOworICAgICAgICAgICAgY29udGV4dC50ZXN0LmZpbmlzaCgpOworICAgICAgICB9KTsK
KyAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkp
OworCisgICAgICAgIGNvbnRleHQuZmluaXNoZWRGaXJzdFRhc2sgPSB0cnVlOworICAgIH0pOwor
ICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKKwor
ICAgIGNvbnRleHQudGVzdC5ydW5Mb29wKCk7CisKKyAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50
ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOworICAgIEVYUEVDVF9UUlVFKGNvbnRleHQuZmluaXNo
ZWRGaXJzdFRhc2spOworICAgIEVYUEVDVF9UUlVFKGNvbnRleHQuZmluaXNoZWRTZWNvbmRUYXNr
KTsKK30KKworVEVTVChXVEZfR01haW5Mb29wU291cmNlLCBSZWVudHJhbnRSZXNjaGVkdWxpbmcp
Cit7CisgICAgc3RydWN0IFRlc3RpbmdDb250ZXh0IHsKKyAgICAgICAgR01haW5Mb29wU291cmNl
VGVzdDxHTWFpbkxvb3BTb3VyY2U+IHRlc3Q7CisgICAgICAgIGJvb2wgZmluaXNoZWRGaXJzdFRh
c2sgPSBmYWxzZTsKKyAgICAgICAgYm9vbCBmaW5pc2hlZFNlY29uZFRhc2sgPSBmYWxzZTsKKyAg
ICB9IGNvbnRleHQ7CisgICAgcmVlbnRyYW50UmVzY2hlZHVsaW5nPFRlc3RpbmdDb250ZXh0Pihj
b250ZXh0KTsKKworICAgIHN0cnVjdCBUaHJlYWRTYWZlVGVzdGluZ0NvbnRleHQgeworICAgICAg
ICBHTWFpbkxvb3BTb3VyY2VUZXN0PEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U+IHRlc3Q7Cisg
ICAgICAgIGJvb2wgZmluaXNoZWRGaXJzdFRhc2sgPSBmYWxzZTsKKyAgICAgICAgYm9vbCBmaW5p
c2hlZFNlY29uZFRhc2sgPSBmYWxzZTsKKyAgICB9IHRocmVhZFNhZmVDb250ZXh0OworICAgIHJl
ZW50cmFudFJlc2NoZWR1bGluZzxUaHJlYWRTYWZlVGVzdGluZ0NvbnRleHQ+KHRocmVhZFNhZmVD
b250ZXh0KTsKK30KKworVEVTVChXVEZfR01haW5Mb29wU291cmNlLCBSZXNjaGVkdWxpbmdGcm9t
RGlmZmVyZW50VGhyZWFkKQoreworICAgIHN0cnVjdCBUZXN0aW5nQ29udGV4dCB7CisgICAgICAg
IEdNYWluTG9vcFNvdXJjZVRlc3Q8R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZT4gdGVzdDsKKyAg
ICAgICAgYm9vbCBmaW5pc2hlZEZpcnN0VGFzazsKKyAgICAgICAgYm9vbCBmaW5pc2hlZFNlY29u
ZFRhc2s7CisgICAgfSBjb250ZXh0OworCisgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5z
b3VyY2UoKS5pc0FjdGl2ZSgpKTsKKworICAgIGNvbnRleHQudGVzdC5zb3VyY2UoKS5zY2hlZHVs
ZSgiW1Rlc3RdIEZpcnN0VGFzayIsIFsmXSB7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQu
dGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpICYmICFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hl
ZHVsZWQoKSk7CisKKyAgICAgICAgZ191c2xlZXAoMSAqIEdfVVNFQ19QRVJfU0VDKTsKKyAgICAg
ICAgY29udGV4dC5maW5pc2hlZEZpcnN0VGFzayA9IHRydWU7CisgICAgfSk7CisgICAgRVhQRUNU
X1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOworCisgICAgR1RocmVh
ZCogaGVscGVyVGhyZWFkID0gZ190aHJlYWRfbmV3KG51bGxwdHIsIFtdKGdwb2ludGVyIGRhdGEp
IC0+IGdwb2ludGVyIHsKKyAgICAgICAgZ191c2xlZXAoMC4yNSAqIEdfVVNFQ19QRVJfU0VDKTsK
KworICAgICAgICBUZXN0aW5nQ29udGV4dCYgY29udGV4dCA9ICpzdGF0aWNfY2FzdDxUZXN0aW5n
Q29udGV4dCo+KGRhdGEpOworICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNl
KCkuaXNBY3RpdmUoKSAmJiAhY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOwor
ICAgICAgICBFWFBFQ1RfRkFMU0UoY29udGV4dC5maW5pc2hlZEZpcnN0VGFzayk7CisKKyAgICAg
ICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLnNjaGVkdWxlKCJbVGVzdF0gU2Vjb25kVGFzayIsIFsm
XSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LmZpbmlzaGVkRmlyc3RUYXNrKTsK
KworICAgICAgICAgICAgY29udGV4dC5maW5pc2hlZFNlY29uZFRhc2sgPSB0cnVlOworICAgICAg
ICAgICAgY29udGV4dC50ZXN0LmZpbmlzaCgpOworICAgICAgICB9KTsKKyAgICAgICAgRVhQRUNU
X1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOworCisgICAgICAgIGdf
dGhyZWFkX2V4aXQobnVsbHB0cik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0sICZj
b250ZXh0KTsKKworICAgIGNvbnRleHQudGVzdC5ydW5Mb29wKCk7CisgICAgZ190aHJlYWRfdW5y
ZWYoaGVscGVyVGhyZWFkKTsKKworICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNl
KCkuaXNBY3RpdmUoKSk7CisgICAgRVhQRUNUX1RSVUUoY29udGV4dC5maW5pc2hlZEZpcnN0VGFz
ayk7CisgICAgRVhQRUNUX1RSVUUoY29udGV4dC5maW5pc2hlZFNlY29uZFRhc2spOworfQorCitU
RVNUKFdURl9HTWFpbkxvb3BTb3VyY2UsIERlc3RydWN0aW9uRHVyaW5nRGlzcGF0Y2gpCit7Cisg
ICAgLy8gVGhpcyBpcyBqdXN0IGEgcmF3IHRlc3QgdGhhdCBlbnN1cmVzIGRlbGV0aW5nIHRoZSBH
TWFpbkxvb3BTb3VyY2Ugb2JqZWN0IGR1cmluZworICAgIC8vIGRpc3BhdGNoIGRvZXMgbm90IGNh
dXNlIHByb2JsZW1zLiBUaGlzIHRlc3Qgc3VjY2VlZHMgaWYgaXQgZG9lc24ndCBjcmFzaC4KKwor
ICAgIEdNYWluTG9vcFNvdXJjZSogc291cmNlOworICAgIEdNYWluTG9vcCogbG9vcCA9IGdfbWFp
bl9sb29wX25ldyhudWxscHRyLCBUUlVFKTsKKworICAgIHNvdXJjZSA9IG5ldyBHTWFpbkxvb3BT
b3VyY2U7CisgICAgc291cmNlLT5zY2hlZHVsZSgiW1Rlc3RdIERlc3Ryb3lTb3VyY2VUYXNrIiwg
WyZdIHsKKyAgICAgICAgZGVsZXRlIHNvdXJjZTsKKyAgICAgICAgZ19tYWluX2xvb3BfcXVpdChs
b29wKTsKKyAgICB9KTsKKyAgICBnX21haW5fbG9vcF9ydW4obG9vcCk7CisKKyAgICBzb3VyY2Ug
PSBuZXcgR01haW5Mb29wU291cmNlOworICAgIHNvdXJjZS0+c2NoZWR1bGUoIltUZXN0XSBEZXN0
cm95U291cmNlVGFzayIsIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4oWyZdIHsKKyAgICAgICAgZGVs
ZXRlIHNvdXJjZTsKKyAgICAgICAgZ19tYWluX2xvb3BfcXVpdChsb29wKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0pKTsKKyAgICBnX21haW5fbG9vcF9ydW4obG9vcCk7CisKKyAgICBn
X21haW5fbG9vcF91bnJlZihsb29wKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdGF0
aWMgdm9pZCBjYW5jZWxSZXBlYXRpbmdTb3VyY2VEdXJpbmdEaXNwYXRjaChUJiBjb250ZXh0KQor
eworICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7CisK
KyAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBSZXBlYXRpbmdUYXNr
IiwKKyAgICAgICAgc3RkOjpmdW5jdGlvbjxib29sICgpPihbJl0geworICAgICAgICAgICAgRVhQ
RUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkgJiYgIWNvbnRleHQudGVz
dC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKKworICAgICAgICAgICAgY29udGV4dC5jYWxsQ291
bnQrKzsKKyAgICAgICAgICAgIGlmIChjb250ZXh0LmNhbGxDb3VudCA9PSAzKQorICAgICAgICAg
ICAgICAgIGNvbnRleHQudGVzdC5zb3VyY2UoKS5jYW5jZWwoKTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9KSk7CisgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJj
ZSgpLmlzU2NoZWR1bGVkKCkpOworCisgICAgY29udGV4dC50ZXN0LmRlbGF5ZWRGaW5pc2goKTsK
KyAgICBjb250ZXh0LnRlc3QucnVuTG9vcCgpOworCisgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQu
dGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKKyAgICBFWFBFQ1RfRVEoMywgY29udGV4dC5jYWxs
Q291bnQpOworfQorCitURVNUKFdURl9HTWFpbkxvb3BTb3VyY2UsIENhbmNlbFJlcGVhdGluZ1Nv
dXJjZUR1cmluZ0Rpc3BhdGNoKQoreworICAgIHN0cnVjdCBUZXN0aW5nQ29udGV4dCB7CisgICAg
ICAgIEdNYWluTG9vcFNvdXJjZVRlc3Q8R01haW5Mb29wU291cmNlPiB0ZXN0OworICAgICAgICB1
bnNpZ25lZCBjYWxsQ291bnQgPSAwOworICAgIH0gY29udGV4dDsKKyAgICBjYW5jZWxSZXBlYXRp
bmdTb3VyY2VEdXJpbmdEaXNwYXRjaDxUZXN0aW5nQ29udGV4dD4oY29udGV4dCk7CisKKyAgICBz
dHJ1Y3QgVGhyZWFkU2FmZVRlc3RpbmdDb250ZXh0IHsKKyAgICAgICAgR01haW5Mb29wU291cmNl
VGVzdDxHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlPiB0ZXN0OworICAgICAgICB1bnNpZ25lZCBj
YWxsQ291bnQgPSAwOworICAgIH0gdGhyZWFkU2FmZUNvbnRleHQ7CisgICAgY2FuY2VsUmVwZWF0
aW5nU291cmNlRHVyaW5nRGlzcGF0Y2g8VGhyZWFkU2FmZVRlc3RpbmdDb250ZXh0Pih0aHJlYWRT
YWZlQ29udGV4dCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RhdGljIHZvaWQgYmFz
aWNEZXN0cm95Q2FsbGJhY2tzKCkKK3sKKyAgICB7CisgICAgICAgIFQgY29udGV4dDsKKyAgICAg
ICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKKyAgICAg
ICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLnNjaGVkdWxlKCJbVGVzdF0gRGVzdHJveUNhbGxiYWNr
IiwKKyAgICAgICAgICAgIFsmXSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4
dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkgJiYgIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1Nj
aGVkdWxlZCgpKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LmNhbGxiYWNrQ2FsbGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgIH0sIEdfUFJJT1JJVFlfREVGQVVMVCwKKyAgICAgICAgICAgIFsmXSB7
CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0Fj
dGl2ZSgpKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LmRlc3Ryb3lDYWxsYmFja0NhbGxlZCA9
IHRydWU7CisgICAgICAgICAgICAgICAgY29udGV4dC50ZXN0LmZpbmlzaCgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVk
dWxlZCgpKTsKKworICAgICAgICBjb250ZXh0LnRlc3QucnVuTG9vcCgpOworCisgICAgICAgIEVY
UEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7CisgICAgICAgIEVY
UEVDVF9UUlVFKGNvbnRleHQuY2FsbGJhY2tDYWxsZWQpOworICAgICAgICBFWFBFQ1RfVFJVRShj
b250ZXh0LmRlc3Ryb3lDYWxsYmFja0NhbGxlZCk7CisgICAgfQorCisgICAgeworICAgICAgICBU
IGNvbnRleHQ7CisgICAgICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNB
Y3RpdmUoKSk7CisgICAgICAgIGNvbnRleHQudGVzdC5zb3VyY2UoKS5zY2hlZHVsZSgiW1Rlc3Rd
IERlc3Ryb3lDYWxsYmFjayIsCisgICAgICAgICAgICBzdGQ6OmZ1bmN0aW9uPGJvb2wgKCk+KFsm
XSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlz
QWN0aXZlKCkgJiYgIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKKyAgICAg
ICAgICAgICAgICBjb250ZXh0LmNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9KSwgR19QUklPUklUWV9ERUZBVUxULAorICAg
ICAgICAgICAgWyZdIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0
LnNvdXJjZSgpLmlzQWN0aXZlKCkpOworICAgICAgICAgICAgICAgIGNvbnRleHQuZGVzdHJveUNh
bGxiYWNrQ2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LnRlc3QuZmluaXNo
KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNv
dXJjZSgpLmlzU2NoZWR1bGVkKCkpOworCisgICAgICAgIGNvbnRleHQudGVzdC5ydW5Mb29wKCk7
CisKKyAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgp
KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC5jYWxsYmFja0NhbGxlZCk7CisgICAgICAg
IEVYUEVDVF9UUlVFKGNvbnRleHQuZGVzdHJveUNhbGxiYWNrQ2FsbGVkKTsKKyAgICB9Cit9CisK
K1RFU1QoV1RGX0dNYWluTG9vcFNvdXJjZSwgQmFzaWNEZXN0cm95Q2FsbGJhY2tzKQoreworICAg
IHN0cnVjdCBUZXN0aW5nQ29udGV4dCB7CisgICAgICAgIEdNYWluTG9vcFNvdXJjZVRlc3Q8R01h
aW5Mb29wU291cmNlPiB0ZXN0OworICAgICAgICBib29sIGNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7
CisgICAgICAgIGJvb2wgZGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7CisgICAgfTsKKyAg
ICBiYXNpY0Rlc3Ryb3lDYWxsYmFja3M8VGVzdGluZ0NvbnRleHQ+KCk7CisKKyAgICBzdHJ1Y3Qg
VGhyZWFkU2FmZVRlc3RpbmdDb250ZXh0IHsKKyAgICAgICAgR01haW5Mb29wU291cmNlVGVzdDxH
VGhyZWFkU2FmZU1haW5Mb29wU291cmNlPiB0ZXN0OworICAgICAgICBib29sIGNhbGxiYWNrQ2Fs
bGVkID0gZmFsc2U7CisgICAgICAgIGJvb2wgZGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7
CisgICAgfTsKKyAgICBiYXNpY0Rlc3Ryb3lDYWxsYmFja3M8VGhyZWFkU2FmZVRlc3RpbmdDb250
ZXh0PigpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0YXRpYyB2b2lkIGRlc3Ryb3lD
YWxsYmFja3NBZnRlckNhbmNlbGxpbmdEdXJpbmdEaXNwYXRjaCgpCit7CisgICAgeworICAgICAg
ICBUIGNvbnRleHQ7CisgICAgICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCku
aXNBY3RpdmUoKSk7CisgICAgICAgIGNvbnRleHQudGVzdC5zb3VyY2UoKS5zY2hlZHVsZSgiW1Rl
c3RdIERlc3Ryb3lDYWxsYmFjayIsCisgICAgICAgICAgICBbJl0geworICAgICAgICAgICAgICAg
IEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpICYmICFjb250ZXh0
LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisgICAgICAgICAgICAgICAgY29udGV4dC5j
YWxsYmFja0NhbGxDb3VudCsrOworICAgICAgICAgICAgICAgIGNvbnRleHQudGVzdC5zb3VyY2Uo
KS5jYW5jZWwoKTsKKyAgICAgICAgICAgIH0sIEdfUFJJT1JJVFlfREVGQVVMVCwKKyAgICAgICAg
ICAgIFsmXSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3Vy
Y2UoKS5pc0FjdGl2ZSgpKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LmRlc3Ryb3lDYWxsYmFj
a0NhbGxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgY29udGV4dC50ZXN0LmZpbmlzaCgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2Uo
KS5pc1NjaGVkdWxlZCgpKTsKKworICAgICAgICBjb250ZXh0LnRlc3QuZGVsYXllZEZpbmlzaCgp
OworICAgICAgICBjb250ZXh0LnRlc3QucnVuTG9vcCgpOworCisgICAgICAgIEVYUEVDVF9UUlVF
KCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7CisgICAgICAgIEVYUEVDVF9FUSgx
LCBjb250ZXh0LmNhbGxiYWNrQ2FsbENvdW50KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4
dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQpOworICAgIH0KKworICAgIHsKKyAgICAgICAgVCBjb250
ZXh0OworICAgICAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZl
KCkpOworICAgICAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBEZXN0
cm95Q2FsbGJhY2siLAorICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjxib29sICgpPihbJl0gewor
ICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2
ZSgpICYmICFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisgICAgICAgICAg
ICAgICAgY29udGV4dC5jYWxsYmFja0NhbGxDb3VudCsrOworICAgICAgICAgICAgICAgIGlmIChj
b250ZXh0LmNhbGxiYWNrQ2FsbENvdW50ID09IDMpCisgICAgICAgICAgICAgICAgICAgIGNvbnRl
eHQudGVzdC5zb3VyY2UoKS5jYW5jZWwoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgICAgIH0pLCBHX1BSSU9SSVRZX0RFRkFVTFQsCisgICAgICAgICAgICBbJl0gewor
ICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3Rp
dmUoKSk7CisgICAgICAgICAgICAgICAgY29udGV4dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSB0
cnVlOworICAgICAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5z
b3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKKworICAgICAgICBjb250ZXh0LnRlc3QuZGVsYXllZEZp
bmlzaCgpOworICAgICAgICBjb250ZXh0LnRlc3QucnVuTG9vcCgpOworCisgICAgICAgIEVYUEVD
VF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7CisgICAgICAgIEVYUEVD
VF9FUSgzLCBjb250ZXh0LmNhbGxiYWNrQ2FsbENvdW50KTsKKyAgICAgICAgRVhQRUNUX1RSVUUo
Y29udGV4dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQpOworICAgIH0KK30KKworVEVTVChXVEZfR01h
aW5Mb29wU291cmNlLCBEZXN0cm95Q2FsbGJhY2tzQWZ0ZXJDYW5jZWxsaW5nRHVyaW5nRGlzcGF0
Y2gpCit7CisgICAgc3RydWN0IFRlc3RpbmdDb250ZXh0IHsKKyAgICAgICAgR01haW5Mb29wU291
cmNlVGVzdDxHTWFpbkxvb3BTb3VyY2U+IHRlc3Q7CisgICAgICAgIHVuc2lnbmVkIGNhbGxiYWNr
Q2FsbENvdW50PSAwOworICAgICAgICBib29sIGRlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IGZhbHNl
OworICAgIH07CisgICAgZGVzdHJveUNhbGxiYWNrc0FmdGVyQ2FuY2VsbGluZ0R1cmluZ0Rpc3Bh
dGNoPFRlc3RpbmdDb250ZXh0PigpOworCisgICAgc3RydWN0IFRocmVhZFNhZmVUZXN0aW5nQ29u
dGV4dCB7CisgICAgICAgIEdNYWluTG9vcFNvdXJjZVRlc3Q8R1RocmVhZFNhZmVNYWluTG9vcFNv
dXJjZT4gdGVzdDsKKyAgICAgICAgdW5zaWduZWQgY2FsbGJhY2tDYWxsQ291bnQ9IDA7CisgICAg
ICAgIGJvb2wgZGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7CisgICAgfTsKKyAgICBkZXN0
cm95Q2FsbGJhY2tzQWZ0ZXJDYW5jZWxsaW5nRHVyaW5nRGlzcGF0Y2g8VGhyZWFkU2FmZVRlc3Rp
bmdDb250ZXh0PigpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0YXRpYyB2b2lkIGRl
c3Ryb3lDYWxsYmFja3NBZnRlclJlc2NoZWR1bGluZ0R1cmluZ0Rpc3BhdGNoKCkKK3sKKyAgICB7
CisgICAgICAgIFQgY29udGV4dDsKKyAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5z
b3VyY2UoKS5pc0FjdGl2ZSgpKTsKKyAgICAgICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLnNjaGVk
dWxlKCJbVGVzdF0gQmFzZUNhbGxiYWNrIiwKKyAgICAgICAgICAgIFsmXSB7CisgICAgICAgICAg
ICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkgJiYgIWNv
bnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKKyAgICAgICAgICAgICAgICBjb250
ZXh0LmZpcnN0Q2FsbGJhY2tDYWxsQ291bnQrKzsKKyAgICAgICAgICAgICAgICBjb250ZXh0LnRl
c3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBSZXNjaGVkdWxpbmdDYWxsYmFjayIsCisgICAg
ICAgICAgICAgICAgICAgIFsmXSB7CisgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJV
RShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSAmJiAhY29udGV4dC50ZXN0LnNvdXJj
ZSgpLmlzU2NoZWR1bGVkKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zZWNv
bmRDYWxsYmFja0NhbGxDb3VudCsrOworICAgICAgICAgICAgICAgICAgICB9LCBHX1BSSU9SSVRZ
X0RFRkFVTFQsCisgICAgICAgICAgICAgICAgICAgIFsmXSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zZWNvbmREZXN0cm95Q2FsbGJhY2tDYWxsZWQg
PSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBFWFBFQ1Rf
VFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisgICAgICAgICAgICB9
LCBHX1BSSU9SSVRZX0RFRkFVTFQsCisgICAgICAgICAgICBbJl0geworICAgICAgICAgICAgICAg
IC8vIEF0IHRoaXMgcG9pbnQgdGhlIEdNYWluTG9vcFNvdXJjZSBoYXMgYmVlbiByZXNjaGVkdWxl
ZCwgZXJnbyB0aGUgU2NoZWR1bGVkIHN0YXR1cy4KKyAgICAgICAgICAgICAgICBFWFBFQ1RfVFJV
RShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisgICAgICAgICAgICAgICAg
Y29udGV4dC5maXJzdERlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IHRydWU7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVk
KCkpOworCisgICAgICAgIGNvbnRleHQudGVzdC5kZWxheWVkRmluaXNoKCk7CisgICAgICAgIGNv
bnRleHQudGVzdC5ydW5Mb29wKCk7CisKKyAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVz
dC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKKyAgICAgICAgRVhQRUNUX0VRKDEsIGNvbnRleHQuZmly
c3RDYWxsYmFja0NhbGxDb3VudCk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQuZmlyc3RE
ZXN0cm95Q2FsbGJhY2tDYWxsZWQpOworICAgICAgICBFWFBFQ1RfRVEoMSwgY29udGV4dC5zZWNv
bmRDYWxsYmFja0NhbGxDb3VudCk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQuc2Vjb25k
RGVzdHJveUNhbGxiYWNrQ2FsbGVkKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIFQgY29udGV4
dDsKKyAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgp
KTsKKyAgICAgICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLnNjaGVkdWxlKCJbVGVzdF0gQmFzZUNh
bGxiYWNrIiwKKyAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4oWyZdIHsKKyAgICAg
ICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSAm
JiAhY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOworICAgICAgICAgICAgICAg
IGNvbnRleHQuZmlyc3RDYWxsYmFja0NhbGxDb3VudCsrOworICAgICAgICAgICAgICAgIGNvbnRl
eHQudGVzdC5zb3VyY2UoKS5zY2hlZHVsZSgiW1Rlc3RdIFJlc2NoZWR1bGluZ0NhbGxiYWNrIiwK
KyAgICAgICAgICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjxib29sICgpPihbJl0geworICAgICAg
ICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0
aXZlKCkgJiYgIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRleHQuc2Vjb25kQ2FsbGJhY2tDYWxsQ291bnQrKzsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0LnNlY29uZENhbGxiYWNrQ2FsbENvdW50
ICE9IDM7CisgICAgICAgICAgICAgICAgICAgIH0pLCBHX1BSSU9SSVRZX0RFRkFVTFQsCisgICAg
ICAgICAgICAgICAgICAgIFsmXSB7CisgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJV
RSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgY29udGV4dC5zZWNvbmREZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSB0cnVlOworICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRl
c3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgICAgICB9KSwgR19QUklPUklUWV9ERUZBVUxULAorICAgICAgICAgICAgWyZdIHsK
KyAgICAgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBHTWFpbkxvb3BTb3VyY2UgaGFz
IGJlZW4gcmVzY2hlZHVsZWQsIGVyZ28gdGhlIFNjaGVkdWxlZCBzdGF0dXMuCisgICAgICAgICAg
ICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOwor
ICAgICAgICAgICAgICAgIGNvbnRleHQuZmlyc3REZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSB0cnVl
OworICAgICAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3Vy
Y2UoKS5pc1NjaGVkdWxlZCgpKTsKKworICAgICAgICBjb250ZXh0LnRlc3QuZGVsYXllZEZpbmlz
aCgpOworICAgICAgICBjb250ZXh0LnRlc3QucnVuTG9vcCgpOworCisgICAgICAgIEVYUEVDVF9U
UlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7CisgICAgICAgIEVYUEVDVF9F
USgxLCBjb250ZXh0LmZpcnN0Q2FsbGJhY2tDYWxsQ291bnQpOworICAgICAgICBFWFBFQ1RfVFJV
RShjb250ZXh0LmZpcnN0RGVzdHJveUNhbGxiYWNrQ2FsbGVkKTsKKyAgICAgICAgRVhQRUNUX0VR
KDMsIGNvbnRleHQuc2Vjb25kQ2FsbGJhY2tDYWxsQ291bnQpOworICAgICAgICBFWFBFQ1RfVFJV
RShjb250ZXh0LnNlY29uZERlc3Ryb3lDYWxsYmFja0NhbGxlZCk7CisgICAgfQorfQorCitURVNU
KFdURl9HTWFpbkxvb3BTb3VyY2UsIERlc3Ryb3lDYWxsYmFja3NBZnRlclJlc2NoZWR1bGluZ0R1
cmluZ0Rpc3BhdGNoKQoreworICAgIHN0cnVjdCBUZXN0aW5nQ29udGV4dCB7CisgICAgICAgIEdN
YWluTG9vcFNvdXJjZVRlc3Q8R01haW5Mb29wU291cmNlPiB0ZXN0OworICAgICAgICB1bnNpZ25l
ZCBmaXJzdENhbGxiYWNrQ2FsbENvdW50ID0gMDsKKyAgICAgICAgYm9vbCBmaXJzdERlc3Ryb3lD
YWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgICAgICB1bnNpZ25lZCBzZWNvbmRDYWxsYmFja0Nh
bGxDb3VudCA9IDA7CisgICAgICAgIGJvb2wgc2Vjb25kRGVzdHJveUNhbGxiYWNrQ2FsbGVkID0g
ZmFsc2U7CisgICAgfTsKKyAgICBkZXN0cm95Q2FsbGJhY2tzQWZ0ZXJSZXNjaGVkdWxpbmdEdXJp
bmdEaXNwYXRjaDxUZXN0aW5nQ29udGV4dD4oKTsKKworICAgIHN0cnVjdCBUaHJlYWRTYWZlVGVz
dGluZ0NvbnRleHQgeworICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0PEdUaHJlYWRTYWZlTWFp
bkxvb3BTb3VyY2U+IHRlc3Q7CisgICAgICAgIHVuc2lnbmVkIGZpcnN0Q2FsbGJhY2tDYWxsQ291
bnQgPSAwOworICAgICAgICBib29sIGZpcnN0RGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7
CisgICAgICAgIHVuc2lnbmVkIHNlY29uZENhbGxiYWNrQ2FsbENvdW50ID0gMDsKKyAgICAgICAg
Ym9vbCBzZWNvbmREZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICB9OworICAgIGRl
c3Ryb3lDYWxsYmFja3NBZnRlclJlc2NoZWR1bGluZ0R1cmluZ0Rpc3BhdGNoPFRocmVhZFNhZmVU
ZXN0aW5nQ29udGV4dD4oKTsKK30KKworVEVTVChXVEZfR01haW5Mb29wU291cmNlLCBEZWxldGVP
bkRlc3Ryb3lTb3VyY2VzKQoreworICAgIC8vIFRlc3RpbmcgdGhlIGRlbGV0ZS1vbi1kZXN0cm95
IHNvdXJjZXMgaXMgdmVyeSBsaW1pdGVkLiBUaGVyZSdzIG5vIGdvb2Qgd2F5CisgICAgLy8gb2Yg
dGVzdGluZyB0aGF0IHRoZSBHTWFpbkxvb3BTb3VyY2Ugb2JqZWN0cyBhcmUgZGVsZXRlZCB3aGVu
IHRoZWlyIEdTb3VyY2UKKyAgICAvLyBpcyBkZXN0cm95ZWQuCisKKyAgICBzdHJ1Y3QgVGVzdGlu
Z0NvbnRleHQgeworICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0PEdNYWluTG9vcFNvdXJjZT4g
dGVzdDsKKyAgICAgICAgdW5zaWduZWQgY2FsbGJhY2tDYWxsQ291bnQgPSAwOworICAgICAgICBi
b29sIGRlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIH0gY29udGV4dDsKKworICAg
IHsKKyAgICAgICAgVGVzdGluZ0NvbnRleHQgY29udGV4dDsKKworICAgICAgICBHTWFpbkxvb3BT
b3VyY2U6OnNjaGVkdWxlQW5kRGVsZXRlT25EZXN0cm95KCJbVGVzdF0gRGVsZXRlT25EZXN0cm95
IiwKKyAgICAgICAgICAgIFsmXSB7CisgICAgICAgICAgICAgICAgY29udGV4dC5jYWxsYmFja0Nh
bGxDb3VudCsrOworICAgICAgICAgICAgfSwgR19QUklPUklUWV9ERUZBVUxULAorICAgICAgICAg
ICAgWyZdIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRkFMU0UoY29udGV4dC5kZXN0cm95Q2Fs
bGJhY2tDYWxsZWQpOworICAgICAgICAgICAgICAgIGNvbnRleHQuZGVzdHJveUNhbGxiYWNrQ2Fs
bGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgIGNvbnRleHQudGVzdC5kZWxh
eWVkRmluaXNoKCk7CisgICAgICAgIGNvbnRleHQudGVzdC5ydW5Mb29wKCk7CisgICAgICAgIEVY
UEVDVF9FUSgxLCBjb250ZXh0LmNhbGxiYWNrQ2FsbENvdW50KTsKKyAgICAgICAgRVhQRUNUX1RS
VUUoY29udGV4dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQpOworICAgIH0KKworICAgIHsKKyAgICAg
ICAgVGVzdGluZ0NvbnRleHQgY29udGV4dDsKKworICAgICAgICBHTWFpbkxvb3BTb3VyY2U6OnNj
aGVkdWxlQW5kRGVsZXRlT25EZXN0cm95KCJbVGVzdF0gRGVsZXRlT25EZXN0cm95IiwKKyAgICAg
ICAgICAgIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4oWyZdIHsKKyAgICAgICAgICAgICAgICBjb250
ZXh0LmNhbGxiYWNrQ2FsbENvdW50Kys7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQu
Y2FsbGJhY2tDYWxsQ291bnQgIT0gMzsKKyAgICAgICAgICAgIH0pLCBHX1BSSU9SSVRZX0RFRkFV
TFQsCisgICAgICAgICAgICBbJl0geworICAgICAgICAgICAgICAgIEVYUEVDVF9GQUxTRShjb250
ZXh0LmRlc3Ryb3lDYWxsYmFja0NhbGxlZCk7CisgICAgICAgICAgICAgICAgY29udGV4dC5kZXN0
cm95Q2FsbGJhY2tDYWxsZWQgPSB0cnVlOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgY29u
dGV4dC50ZXN0LmRlbGF5ZWRGaW5pc2goKTsKKyAgICAgICAgY29udGV4dC50ZXN0LnJ1bkxvb3Ao
KTsKKyAgICAgICAgRVhQRUNUX0VRKDMsIGNvbnRleHQuY2FsbGJhY2tDYWxsQ291bnQpOworICAg
ICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LmRlc3Ryb3lDYWxsYmFja0NhbGxlZCk7CisgICAgfQor
fQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL0dVbmlxdWVQdHIuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvZ2xpYi9HVW5pcXVlUHRyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWYwMmM3YjBm
N2ZkNzBkODNmNjA3MWQ3MWFlMjQ2ODM2MmNiN2E4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9HVW5pcXVlUHRyLmNwcApAQCAtMCwwICsxLDE5
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDxnaW8vZ2lvLmg+CisKK2lubGluZSBzdGQ6
Om9zdHJpbmdzdHJlYW0mIGxvZygpCit7CisgICAgc3RhdGljIHN0ZDo6b3N0cmluZ3N0cmVhbSBs
b2c7CisgICAgcmV0dXJuIGxvZzsKK30KKworaW5saW5lIHN0ZDo6c3RyaW5nIHRha2VMb2dTdHIo
KQoreworICAgIHN0ZDo6c3RyaW5nIHN0cmluZyA9IGxvZygpLnN0cigpOworICAgIGxvZygpLnN0
cigiIik7CisgICAgcmV0dXJuIHN0cmluZzsKK30KKworc3RhdGljIHZvaWQgKCogX2dfZnJlZSko
dm9pZCopID0gZ19mcmVlOworI2RlZmluZSBnX2ZyZWUoeCkgXAorICAgIGxvZygpIDw8ICJnX2Zy
ZWUoIiA8PCBwdHIgPDwgIik7IjsgXAorICAgIF9nX2ZyZWUoeCk7CisKK3N0YXRpYyB2b2lkICgq
IF9nX2Vycm9yX2ZyZWUpKEdFcnJvciopID0gZ19lcnJvcl9mcmVlOworI2RlZmluZSBnX2Vycm9y
X2ZyZWUoeCkgXAorICAgIGxvZygpIDw8ICJnX2Vycm9yX2ZyZWUoIiA8PCBwdHIgPDwgIik7Ijsg
XAorICAgIF9nX2Vycm9yX2ZyZWUoeCk7CisKK3N0YXRpYyB2b2lkICgqIF9nX2xpc3RfZnJlZSko
R0xpc3QqKSA9IGdfbGlzdF9mcmVlOworI2RlZmluZSBnX2xpc3RfZnJlZSh4KSBcCisgICAgbG9n
KCkgPDwgImdfbGlzdF9mcmVlKCIgPDwgcHRyIDw8ICIpOyI7IFwKKyAgICBfZ19saXN0X2ZyZWUo
eCk7CisKK3N0YXRpYyB2b2lkICgqIF9nX3NsaXN0X2ZyZWUpKEdTTGlzdCopID0gZ19zbGlzdF9m
cmVlOworI2RlZmluZSBnX3NsaXN0X2ZyZWUoeCkgXAorICAgIGxvZygpIDw8ICJnX3NsaXN0X2Zy
ZWUoIiA8PCBwdHIgPDwgIik7IjsgXAorICAgIF9nX3NsaXN0X2ZyZWUoeCk7CisKK3N0YXRpYyB2
b2lkICgqIF9nX3BhdHRlcm5fc3BlY19mcmVlKShHUGF0dGVyblNwZWMqKSA9IGdfcGF0dGVybl9z
cGVjX2ZyZWU7CisjZGVmaW5lIGdfcGF0dGVybl9zcGVjX2ZyZWUoeCkgXAorICAgIGxvZygpIDw8
ICJnX3BhdHRlcm5fc3BlY19mcmVlKCIgPDwgcHRyIDw8ICIpOyI7IFwKKyAgICBfZ19wYXR0ZXJu
X3NwZWNfZnJlZSh4KTsKKworc3RhdGljIHZvaWQgKCogX2dfZGlyX2Nsb3NlKShHRGlyKikgPSBn
X2Rpcl9jbG9zZTsKKyNkZWZpbmUgZ19kaXJfY2xvc2UoeCkgXAorICAgIGxvZygpIDw8ICJnX2Rp
cl9jbG9zZSgiIDw8IHB0ciA8PCAiKTsiOyBcCisgICAgX2dfZGlyX2Nsb3NlKHgpOworCitzdGF0
aWMgdm9pZCAoKiBfZ190aW1lcl9kZXN0cm95KShHVGltZXIqKSA9IGdfdGltZXJfZGVzdHJveTsK
KyNkZWZpbmUgZ190aW1lcl9kZXN0cm95KHgpIFwKKyAgICBsb2coKSA8PCAiZ190aW1lcl9kZXN0
cm95KCIgPDwgcHRyIDw8ICIpOyI7IFwKKyAgICBfZ190aW1lcl9kZXN0cm95KHgpOworCitzdGF0
aWMgdm9pZCAoKiBfZ19rZXlfZmlsZV9mcmVlKShHS2V5RmlsZSopID0gZ19rZXlfZmlsZV9mcmVl
OworI2RlZmluZSBnX2tleV9maWxlX2ZyZWUoeCkgXAorICAgIGxvZygpIDw8ICJnX2tleV9maWxl
X2ZyZWUoIiA8PCBwdHIgPDwgIik7IjsgXAorICAgIF9nX2tleV9maWxlX2ZyZWUoeCk7CisKKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKKworVEVTVChXVEZfR1VuaXF1ZVB0ciwgQmFzaWMpCit7CisgICAgc3RkOjpvc3RyaW5nc3Ry
ZWFtIGFjdHVhbDsKKworICAgIHsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBhKGdfc3RyZHVw
KCJhIikpOworICAgICAgICBhY3R1YWwgPDwgImdfZnJlZSgiIDw8IGEuZ2V0KCkgPDwgIik7IjsK
KyAgICB9CisgICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIoKS5jX3N0cigpLCB0YWtlTG9nU3Ry
KCkuY19zdHIoKSk7CisgICAgYWN0dWFsLnN0cigiIik7CisKKyAgICB7CisgICAgICAgIEdVbmlx
dWVQdHI8R0Vycm9yPiBhKGdfZXJyb3JfbmV3X2xpdGVyYWwoR19JT19FUlJPUiwgR19JT19FUlJP
Ul9OT1RfRk9VTkQsICJhIikpOworICAgICAgICBhY3R1YWwgPDwgImdfZXJyb3JfZnJlZSgiIDw8
IGEuZ2V0KCkgPDwgIik7IjsKKyAgICB9CisgICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIoKS5j
X3N0cigpLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgYWN0dWFsLnN0cigiIik7CisKKyAg
ICB7CisgICAgICAgIEdVbmlxdWVQdHI8R0xpc3Q+IGEoZ19saXN0X3ByZXBlbmQobnVsbHB0ciwg
Z19zdHJkdXAoImEiKSkpOworICAgICAgICBhY3R1YWwgPDwgImdfbGlzdF9mcmVlKCIgPDwgYS5n
ZXQoKSA8PCAiKTsiOworICAgIH0KKyAgICBBU1NFUlRfU1RSRVEoYWN0dWFsLnN0cigpLmNfc3Ry
KCksIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBhY3R1YWwuc3RyKCIiKTsKKworICAgIHsK
KyAgICAgICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGEoZ19zbGlzdF9wcmVwZW5kKG51bGxwdHIsIGdf
c3RyZHVwKCJhIikpKTsKKyAgICAgICAgYWN0dWFsIDw8ICJnX3NsaXN0X2ZyZWUoIiA8PCBhLmdl
dCgpIDw8ICIpOyI7CisgICAgfQorICAgIEFTU0VSVF9TVFJFUShhY3R1YWwuc3RyKCkuY19zdHIo
KSwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIGFjdHVhbC5zdHIoIiIpOworCisgICAgewor
ICAgICAgICBHVW5pcXVlUHRyPEdQYXR0ZXJuU3BlYz4gYShnX3BhdHRlcm5fc3BlY19uZXcoImEi
KSk7CisgICAgICAgIGFjdHVhbCA8PCAiZ19wYXR0ZXJuX3NwZWNfZnJlZSgiIDw8IGEuZ2V0KCkg
PDwgIik7IjsKKyAgICB9CisgICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIoKS5jX3N0cigpLCB0
YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgYWN0dWFsLnN0cigiIik7CisKKyAgICB7CisgICAg
ICAgIEdVbmlxdWVQdHI8R0Rpcj4gYShnX2Rpcl9vcGVuKCIvdG1wIiwgMCwgbnVsbHB0cikpOwor
ICAgICAgICBhY3R1YWwgPDwgImdfZGlyX2Nsb3NlKCIgPDwgYS5nZXQoKSA8PCAiKTsiOworICAg
IH0KKyAgICBBU1NFUlRfU1RSRVEoYWN0dWFsLnN0cigpLmNfc3RyKCksIHRha2VMb2dTdHIoKS5j
X3N0cigpKTsKKyAgICBhY3R1YWwuc3RyKCIiKTsKKworICAgIHsKKyAgICAgICAgR1VuaXF1ZVB0
cjxHVGltZXI+IGEoZ190aW1lcl9uZXcoKSk7CisgICAgICAgIGFjdHVhbCA8PCAiZ190aW1lcl9k
ZXN0cm95KCIgPDwgYS5nZXQoKSA8PCAiKTsiOworICAgIH0KKyAgICBBU1NFUlRfU1RSRVEoYWN0
dWFsLnN0cigpLmNfc3RyKCksIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBhY3R1YWwuc3Ry
KCIiKTsKKworICAgIHsKKyAgICAgICAgR1VuaXF1ZVB0cjxHS2V5RmlsZT4gYShnX2tleV9maWxl
X25ldygpKTsKKyAgICAgICAgYWN0dWFsIDw8ICJnX2tleV9maWxlX2ZyZWUoIiA8PCBhLmdldCgp
IDw8ICIpOyI7CisgICAgfQorICAgIEFTU0VSVF9TVFJFUShhY3R1YWwuc3RyKCkuY19zdHIoKSwg
dGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIGFjdHVhbC5zdHIoIiIpOworfQorCitzdGF0aWMg
dm9pZCByZXR1cm5PdXRDaGFyKGNoYXIqKiBvdXRDaGFyKQoreworICAgICpvdXRDaGFyID0gZ19z
dHJkdXAoImEiKTsKK30KKworVEVTVChXVEZfR1VuaXF1ZVB0ciwgT3V0UHRyKQoreworICAgIHN0
ZDo6b3N0cmluZ3N0cmVhbSBhY3R1YWw7CisKKyAgICB7CisgICAgICAgIEdVbmlxdWVPdXRQdHI8
Y2hhcj4gYTsKKyAgICAgICAgQVNTRVJUX0VRKG51bGxwdHIsIGEuZ2V0KCkpOworICAgIH0KKyAg
ICBBU1NFUlRfU1RSRVEoYWN0dWFsLnN0cigpLmNfc3RyKCksIHRha2VMb2dTdHIoKS5jX3N0cigp
KTsKKyAgICBhY3R1YWwuc3RyKCIiKTsKKworICAgIHsKKyAgICAgICAgR1VuaXF1ZU91dFB0cjxj
aGFyPiBhOworICAgICAgICByZXR1cm5PdXRDaGFyKCZhLm91dFB0cigpKTsKKyAgICAgICAgYWN0
dWFsIDw8ICJnX2ZyZWUoIiA8PCBhLmdldCgpIDw8ICIpOyI7CisgICAgfQorICAgIEFTU0VSVF9T
VFJFUShhY3R1YWwuc3RyKCkuY19zdHIoKSwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIGFj
dHVhbC5zdHIoIiIpOworCisgICAgeworICAgICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IGE7Cisg
ICAgICAgIHJldHVybk91dENoYXIoJmEub3V0UHRyKCkpOworICAgICAgICBhY3R1YWwgPDwgImdf
ZnJlZSgiIDw8IGEuZ2V0KCkgPDwgIik7IjsKKyAgICAgICAgcmV0dXJuT3V0Q2hhcigmYS5vdXRQ
dHIoKSk7CisgICAgICAgIEFTU0VSVF9TVFJFUShhY3R1YWwuc3RyKCkuY19zdHIoKSwgdGFrZUxv
Z1N0cigpLmNfc3RyKCkpOworICAgICAgICBhY3R1YWwuc3RyKCIiKTsKKyAgICAgICAgYWN0dWFs
IDw8ICJnX2ZyZWUoIiA8PCBhLmdldCgpIDw8ICIpOyI7CisgICAgfQorICAgIEFTU0VSVF9TVFJF
UShhY3R1YWwuc3RyKCkuY19zdHIoKSwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIGFjdHVh
bC5zdHIoIiIpOworCisgICAgeworICAgICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IGE7CisgICAg
ICAgIHJldHVybk91dENoYXIoJmEub3V0UHRyKCkpOworICAgICAgICBHVW5pcXVlUHRyPGNoYXI+
IGIgPSBhLnJlbGVhc2UoKTsKKyAgICAgICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIoKS5jX3N0
cigpLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgICAgIGFjdHVhbCA8PCAiZ19mcmVlKCIg
PDwgYi5nZXQoKSA8PCAiKTsiOworICAgIH0KKyAgICBBU1NFUlRfU1RSRVEoYWN0dWFsLnN0cigp
LmNfc3RyKCksIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBhY3R1YWwuc3RyKCIiKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAKaW5kZXggOTkzMmI0N2JiODQ5
NzQzZjgyOWMxZjFmMGI4MjU4NGQ5NzQ2MTYzYS4uMjhjOTExMjdkOWUxYTMyZTRiYWZmZjkzYTg2
YTE1M2JiYjBlYTM3ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Z2xpYi9Xb3JrUXVldWVHTGliLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwCkBAIC0yOSw4ICsyOSw4IEBACiAjaW5jbHVkZSA8Z2lv
L2dpby5oPgogI2luY2x1ZGUgPHRocmVhZD4KICNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+Ci0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dV
bmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dvYmplY3QvR01haW5Mb29wU291
cmNlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dvYmplY3QvR01haW5Mb29w
U291cmNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGNkZTk4ZDJhMTY5NzQ5
YzEwNTJhYzIzODAyNzdkMjBiNTcxNGExNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nb2JqZWN0L0dN
YWluTG9vcFNvdXJjZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NDcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNp
bmNsdWRlIDx3dGYvZ29iamVjdC9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmg+Ci0jaW5jbHVk
ZSA8c3RkaW8uaD4KLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KLWNsYXNzIEdNYWluTG9vcFNvdXJjZVRlc3QgewotcHVibGljOgotICAgIEdNYWlu
TG9vcFNvdXJjZVRlc3QoKQotICAgICAgICA6IG1fbWFpbkxvb3AoZ19tYWluX2xvb3BfbmV3KG51
bGxwdHIsIFRSVUUpKQotICAgIHsKLSAgICB9Ci0KLSAgICB+R01haW5Mb29wU291cmNlVGVzdCgp
Ci0gICAgewotICAgICAgICBnX21haW5fbG9vcF91bnJlZihtX21haW5Mb29wKTsKLSAgICB9Ci0K
LSAgICB2b2lkIHJ1bkxvb3AoKQotICAgIHsKLSAgICAgICAgZ19tYWluX2xvb3BfcnVuKG1fbWFp
bkxvb3ApOwotICAgIH0KLQotICAgIHZvaWQgZGVsYXllZEZpbmlzaCgpCi0gICAgewotICAgICAg
ICBnX3RpbWVvdXRfYWRkKDI1MCwKLSAgICAgICAgICAgIFtdKGdwb2ludGVyIGRhdGEpIHsKLSAg
ICAgICAgICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0JiB0ZXN0ID0gKnN0YXRpY19jYXN0PEdN
YWluTG9vcFNvdXJjZVRlc3QqPihkYXRhKTsKLSAgICAgICAgICAgICAgICB0ZXN0LmZpbmlzaCgp
OwotICAgICAgICAgICAgICAgIHJldHVybiBHX1NPVVJDRV9SRU1PVkU7Ci0gICAgICAgICAgICB9
LCB0aGlzKTsKLSAgICB9Ci0KLSAgICB2b2lkIGZpbmlzaCgpCi0gICAgewotICAgICAgICBnX21h
aW5fbG9vcF9xdWl0KG1fbWFpbkxvb3ApOwotICAgIH0KLQotICAgIFQmIHNvdXJjZSgpIHsgcmV0
dXJuIG1fc291cmNlOyB9Ci0KLXByaXZhdGU6Ci0gICAgR01haW5Mb29wKiBtX21haW5Mb29wOwot
ICAgIFQgbV9zb3VyY2U7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0YXRpYyB2b2lk
IGJhc2ljUmVzY2hlZHVsaW5nKFQmIGNvbnRleHQpCi17Ci0gICAgRVhQRUNUX1RSVUUoIWNvbnRl
eHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLQotICAgIGNvbnRleHQudGVzdC5zb3VyY2Uo
KS5zY2hlZHVsZSgiW1Rlc3RdIEZpcnN0VGFzayIsIFsmXSB7Ci0gICAgICAgIC8vIFRoaXMgc2hv
dWxkIG5ldmVyIGJlIGNhbGxlZC4gVGhhdCdzIHdoeSB3ZSBhc3NlcnQKLSAgICAgICAgLy8gdGhh
dCB0aGUgdmFyaWFibGUgaXMgZmFsc2UgYSBmZXcgbGluZXMgbGF0ZXIuCi0gICAgICAgIGNvbnRl
eHQuZmluaXNoZWRGaXJzdFRhc2sgPSB0cnVlOwotICAgIH0pOwotICAgIEVYUEVDVF9UUlVFKGNv
bnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKLQotICAgIGNvbnRleHQudGVzdC5z
b3VyY2UoKS5zY2hlZHVsZSgiW1Rlc3RdIFNlY29uZFRhc2siLCBbJl0gewotICAgICAgICBFWFBF
Q1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSAmJiAhY29udGV4dC50ZXN0
LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOwotICAgICAgICBjb250ZXh0LmZpbmlzaGVkU2Vjb25k
VGFzayA9IHRydWU7Ci0gICAgICAgIGNvbnRleHQudGVzdC5maW5pc2goKTsKLSAgICB9KTsKLSAg
ICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7Ci0KLSAg
ICBjb250ZXh0LnRlc3QucnVuTG9vcCgpOwotCi0gICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVz
dC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLSAgICBFWFBFQ1RfRkFMU0UoY29udGV4dC5maW5pc2hl
ZEZpcnN0VGFzayk7Ci0gICAgRVhQRUNUX1RSVUUoY29udGV4dC5maW5pc2hlZFNlY29uZFRhc2sp
OwotfQotCi1URVNUKFdURl9HTWFpbkxvb3BTb3VyY2UsIEJhc2ljUmVzY2hlZHVsaW5nKQotewot
ICAgIHN0cnVjdCBUZXN0aW5nQ29udGV4dCB7Ci0gICAgICAgIEdNYWluTG9vcFNvdXJjZVRlc3Q8
R01haW5Mb29wU291cmNlPiB0ZXN0OwotICAgICAgICBib29sIGZpbmlzaGVkRmlyc3RUYXNrID0g
ZmFsc2U7Ci0gICAgICAgIGJvb2wgZmluaXNoZWRTZWNvbmRUYXNrID0gZmFsc2U7Ci0gICAgfSBj
b250ZXh0OwotICAgIGJhc2ljUmVzY2hlZHVsaW5nPFRlc3RpbmdDb250ZXh0Pihjb250ZXh0KTsK
LQotICAgIHN0cnVjdCBUaHJlYWRTYWZlVGVzdGluZ0NvbnRleHQgewotICAgICAgICBHTWFpbkxv
b3BTb3VyY2VUZXN0PEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2U+IHRlc3Q7Ci0gICAgICAgIGJv
b2wgZmluaXNoZWRGaXJzdFRhc2sgPSBmYWxzZTsKLSAgICAgICAgYm9vbCBmaW5pc2hlZFNlY29u
ZFRhc2sgPSBmYWxzZTsKLSAgICB9IHRocmVhZFNhZmVDb250ZXh0OwotICAgIGJhc2ljUmVzY2hl
ZHVsaW5nPFRocmVhZFNhZmVUZXN0aW5nQ29udGV4dD4odGhyZWFkU2FmZUNvbnRleHQpOwotfQot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0YXRpYyB2b2lkIHJlZW50cmFudFJlc2NoZWR1bGlu
ZyhUJiBjb250ZXh0KQotewotICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCku
aXNBY3RpdmUoKSk7Ci0KLSAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0
XSBGaXJzdFRhc2siLCBbJl0gewotICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291
cmNlKCkuaXNBY3RpdmUoKSAmJiAhY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkp
OwotCi0gICAgICAgIGNvbnRleHQudGVzdC5zb3VyY2UoKS5zY2hlZHVsZSgiW1Rlc3RdIFNlY29u
ZFRhc2siLCBbJl0gewotICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJj
ZSgpLmlzQWN0aXZlKCkgJiYgIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsK
LSAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQuZmluaXNoZWRGaXJzdFRhc2spOwotCi0g
ICAgICAgICAgICBjb250ZXh0LmZpbmlzaGVkU2Vjb25kVGFzayA9IHRydWU7Ci0gICAgICAgICAg
ICBjb250ZXh0LnRlc3QuZmluaXNoKCk7Ci0gICAgICAgIH0pOwotICAgICAgICBFWFBFQ1RfVFJV
RShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7Ci0KLSAgICAgICAgY29udGV4
dC5maW5pc2hlZEZpcnN0VGFzayA9IHRydWU7Ci0gICAgfSk7Ci0gICAgRVhQRUNUX1RSVUUoY29u
dGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOwotCi0gICAgY29udGV4dC50ZXN0LnJ1
bkxvb3AoKTsKLQotICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3Rp
dmUoKSk7Ci0gICAgRVhQRUNUX1RSVUUoY29udGV4dC5maW5pc2hlZEZpcnN0VGFzayk7Ci0gICAg
RVhQRUNUX1RSVUUoY29udGV4dC5maW5pc2hlZFNlY29uZFRhc2spOwotfQotCi1URVNUKFdURl9H
TWFpbkxvb3BTb3VyY2UsIFJlZW50cmFudFJlc2NoZWR1bGluZykKLXsKLSAgICBzdHJ1Y3QgVGVz
dGluZ0NvbnRleHQgewotICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0PEdNYWluTG9vcFNvdXJj
ZT4gdGVzdDsKLSAgICAgICAgYm9vbCBmaW5pc2hlZEZpcnN0VGFzayA9IGZhbHNlOwotICAgICAg
ICBib29sIGZpbmlzaGVkU2Vjb25kVGFzayA9IGZhbHNlOwotICAgIH0gY29udGV4dDsKLSAgICBy
ZWVudHJhbnRSZXNjaGVkdWxpbmc8VGVzdGluZ0NvbnRleHQ+KGNvbnRleHQpOwotCi0gICAgc3Ry
dWN0IFRocmVhZFNhZmVUZXN0aW5nQ29udGV4dCB7Ci0gICAgICAgIEdNYWluTG9vcFNvdXJjZVRl
c3Q8R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZT4gdGVzdDsKLSAgICAgICAgYm9vbCBmaW5pc2hl
ZEZpcnN0VGFzayA9IGZhbHNlOwotICAgICAgICBib29sIGZpbmlzaGVkU2Vjb25kVGFzayA9IGZh
bHNlOwotICAgIH0gdGhyZWFkU2FmZUNvbnRleHQ7Ci0gICAgcmVlbnRyYW50UmVzY2hlZHVsaW5n
PFRocmVhZFNhZmVUZXN0aW5nQ29udGV4dD4odGhyZWFkU2FmZUNvbnRleHQpOwotfQotCi1URVNU
KFdURl9HTWFpbkxvb3BTb3VyY2UsIFJlc2NoZWR1bGluZ0Zyb21EaWZmZXJlbnRUaHJlYWQpCi17
Ci0gICAgc3RydWN0IFRlc3RpbmdDb250ZXh0IHsKLSAgICAgICAgR01haW5Mb29wU291cmNlVGVz
dDxHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlPiB0ZXN0OwotICAgICAgICBib29sIGZpbmlzaGVk
Rmlyc3RUYXNrOwotICAgICAgICBib29sIGZpbmlzaGVkU2Vjb25kVGFzazsKLSAgICB9IGNvbnRl
eHQ7Ci0KLSAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkp
OwotCi0gICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLnNjaGVkdWxlKCJbVGVzdF0gRmlyc3RUYXNr
IiwgWyZdIHsKLSAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0
aXZlKCkgJiYgIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKLQotICAgICAg
ICBnX3VzbGVlcCgxICogR19VU0VDX1BFUl9TRUMpOwotICAgICAgICBjb250ZXh0LmZpbmlzaGVk
Rmlyc3RUYXNrID0gdHJ1ZTsKLSAgICB9KTsKLSAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Qu
c291cmNlKCkuaXNTY2hlZHVsZWQoKSk7Ci0KLSAgICBHVGhyZWFkKiBoZWxwZXJUaHJlYWQgPSBn
X3RocmVhZF9uZXcobnVsbHB0ciwgW10oZ3BvaW50ZXIgZGF0YSkgLT4gZ3BvaW50ZXIgewotICAg
ICAgICBnX3VzbGVlcCgwLjI1ICogR19VU0VDX1BFUl9TRUMpOwotCi0gICAgICAgIFRlc3RpbmdD
b250ZXh0JiBjb250ZXh0ID0gKnN0YXRpY19jYXN0PFRlc3RpbmdDb250ZXh0Kj4oZGF0YSk7Ci0g
ICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpICYmICFj
b250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7Ci0gICAgICAgIEVYUEVDVF9GQUxT
RShjb250ZXh0LmZpbmlzaGVkRmlyc3RUYXNrKTsKLQotICAgICAgICBjb250ZXh0LnRlc3Quc291
cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBTZWNvbmRUYXNrIiwgWyZdIHsKLSAgICAgICAgICAgIEVY
UEVDVF9UUlVFKGNvbnRleHQuZmluaXNoZWRGaXJzdFRhc2spOwotCi0gICAgICAgICAgICBjb250
ZXh0LmZpbmlzaGVkU2Vjb25kVGFzayA9IHRydWU7Ci0gICAgICAgICAgICBjb250ZXh0LnRlc3Qu
ZmluaXNoKCk7Ci0gICAgICAgIH0pOwotICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Qu
c291cmNlKCkuaXNTY2hlZHVsZWQoKSk7Ci0KLSAgICAgICAgZ190aHJlYWRfZXhpdChudWxscHRy
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfSwgJmNvbnRleHQpOwotCi0gICAgY29u
dGV4dC50ZXN0LnJ1bkxvb3AoKTsKLSAgICBnX3RocmVhZF91bnJlZihoZWxwZXJUaHJlYWQpOwot
Ci0gICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLSAg
ICBFWFBFQ1RfVFJVRShjb250ZXh0LmZpbmlzaGVkRmlyc3RUYXNrKTsKLSAgICBFWFBFQ1RfVFJV
RShjb250ZXh0LmZpbmlzaGVkU2Vjb25kVGFzayk7Ci19Ci0KLVRFU1QoV1RGX0dNYWluTG9vcFNv
dXJjZSwgRGVzdHJ1Y3Rpb25EdXJpbmdEaXNwYXRjaCkKLXsKLSAgICAvLyBUaGlzIGlzIGp1c3Qg
YSByYXcgdGVzdCB0aGF0IGVuc3VyZXMgZGVsZXRpbmcgdGhlIEdNYWluTG9vcFNvdXJjZSBvYmpl
Y3QgZHVyaW5nCi0gICAgLy8gZGlzcGF0Y2ggZG9lcyBub3QgY2F1c2UgcHJvYmxlbXMuIFRoaXMg
dGVzdCBzdWNjZWVkcyBpZiBpdCBkb2Vzbid0IGNyYXNoLgotCi0gICAgR01haW5Mb29wU291cmNl
KiBzb3VyY2U7Ci0gICAgR01haW5Mb29wKiBsb29wID0gZ19tYWluX2xvb3BfbmV3KG51bGxwdHIs
IFRSVUUpOwotCi0gICAgc291cmNlID0gbmV3IEdNYWluTG9vcFNvdXJjZTsKLSAgICBzb3VyY2Ut
PnNjaGVkdWxlKCJbVGVzdF0gRGVzdHJveVNvdXJjZVRhc2siLCBbJl0gewotICAgICAgICBkZWxl
dGUgc291cmNlOwotICAgICAgICBnX21haW5fbG9vcF9xdWl0KGxvb3ApOwotICAgIH0pOwotICAg
IGdfbWFpbl9sb29wX3J1bihsb29wKTsKLQotICAgIHNvdXJjZSA9IG5ldyBHTWFpbkxvb3BTb3Vy
Y2U7Ci0gICAgc291cmNlLT5zY2hlZHVsZSgiW1Rlc3RdIERlc3Ryb3lTb3VyY2VUYXNrIiwgc3Rk
OjpmdW5jdGlvbjxib29sICgpPihbJl0gewotICAgICAgICBkZWxldGUgc291cmNlOwotICAgICAg
ICBnX21haW5fbG9vcF9xdWl0KGxvb3ApOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSkp
OwotICAgIGdfbWFpbl9sb29wX3J1bihsb29wKTsKLQotICAgIGdfbWFpbl9sb29wX3VucmVmKGxv
b3ApOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0YXRpYyB2b2lkIGNhbmNlbFJlcGVh
dGluZ1NvdXJjZUR1cmluZ0Rpc3BhdGNoKFQmIGNvbnRleHQpCi17Ci0gICAgRVhQRUNUX1RSVUUo
IWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLQotICAgIGNvbnRleHQudGVzdC5z
b3VyY2UoKS5zY2hlZHVsZSgiW1Rlc3RdIFJlcGVhdGluZ1Rhc2siLAotICAgICAgICBzdGQ6OmZ1
bmN0aW9uPGJvb2wgKCk+KFsmXSB7Ci0gICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRl
c3Quc291cmNlKCkuaXNBY3RpdmUoKSAmJiAhY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1
bGVkKCkpOwotCi0gICAgICAgICAgICBjb250ZXh0LmNhbGxDb3VudCsrOwotICAgICAgICAgICAg
aWYgKGNvbnRleHQuY2FsbENvdW50ID09IDMpCi0gICAgICAgICAgICAgICAgY29udGV4dC50ZXN0
LnNvdXJjZSgpLmNhbmNlbCgpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0p
KTsKLSAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7
Ci0KLSAgICBjb250ZXh0LnRlc3QuZGVsYXllZEZpbmlzaCgpOwotICAgIGNvbnRleHQudGVzdC5y
dW5Mb29wKCk7Ci0KLSAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0
aXZlKCkpOwotICAgIEVYUEVDVF9FUSgzLCBjb250ZXh0LmNhbGxDb3VudCk7Ci19Ci0KLVRFU1Qo
V1RGX0dNYWluTG9vcFNvdXJjZSwgQ2FuY2VsUmVwZWF0aW5nU291cmNlRHVyaW5nRGlzcGF0Y2gp
Ci17Ci0gICAgc3RydWN0IFRlc3RpbmdDb250ZXh0IHsKLSAgICAgICAgR01haW5Mb29wU291cmNl
VGVzdDxHTWFpbkxvb3BTb3VyY2U+IHRlc3Q7Ci0gICAgICAgIHVuc2lnbmVkIGNhbGxDb3VudCA9
IDA7Ci0gICAgfSBjb250ZXh0OwotICAgIGNhbmNlbFJlcGVhdGluZ1NvdXJjZUR1cmluZ0Rpc3Bh
dGNoPFRlc3RpbmdDb250ZXh0Pihjb250ZXh0KTsKLQotICAgIHN0cnVjdCBUaHJlYWRTYWZlVGVz
dGluZ0NvbnRleHQgewotICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0PEdUaHJlYWRTYWZlTWFp
bkxvb3BTb3VyY2U+IHRlc3Q7Ci0gICAgICAgIHVuc2lnbmVkIGNhbGxDb3VudCA9IDA7Ci0gICAg
fSB0aHJlYWRTYWZlQ29udGV4dDsKLSAgICBjYW5jZWxSZXBlYXRpbmdTb3VyY2VEdXJpbmdEaXNw
YXRjaDxUaHJlYWRTYWZlVGVzdGluZ0NvbnRleHQ+KHRocmVhZFNhZmVDb250ZXh0KTsKLX0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdGF0aWMgdm9pZCBiYXNpY0Rlc3Ryb3lDYWxsYmFja3Mo
KQotewotICAgIHsKLSAgICAgICAgVCBjb250ZXh0OwotICAgICAgICBFWFBFQ1RfVFJVRSghY29u
dGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOwotICAgICAgICBjb250ZXh0LnRlc3Quc291
cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBEZXN0cm95Q2FsbGJhY2siLAotICAgICAgICAgICAgWyZd
IHsKLSAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNB
Y3RpdmUoKSAmJiAhY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOwotICAgICAg
ICAgICAgICAgIGNvbnRleHQuY2FsbGJhY2tDYWxsZWQgPSB0cnVlOwotICAgICAgICAgICAgfSwg
R19QUklPUklUWV9ERUZBVUxULAotICAgICAgICAgICAgWyZdIHsKLSAgICAgICAgICAgICAgICBF
WFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOwotICAgICAgICAg
ICAgICAgIGNvbnRleHQuZGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICBjb250ZXh0LnRlc3QuZmluaXNoKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgRVhQ
RUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOwotCi0gICAgICAg
IGNvbnRleHQudGVzdC5ydW5Mb29wKCk7Ci0KLSAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQu
dGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLSAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC5j
YWxsYmFja0NhbGxlZCk7Ci0gICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQuZGVzdHJveUNhbGxi
YWNrQ2FsbGVkKTsKLSAgICB9Ci0KLSAgICB7Ci0gICAgICAgIFQgY29udGV4dDsKLSAgICAgICAg
RVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLSAgICAgICAg
Y29udGV4dC50ZXN0LnNvdXJjZSgpLnNjaGVkdWxlKCJbVGVzdF0gRGVzdHJveUNhbGxiYWNrIiwK
LSAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248Ym9vbCAoKT4oWyZdIHsKLSAgICAgICAgICAgICAg
ICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSAmJiAhY29udGV4
dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOwotICAgICAgICAgICAgICAgIGNvbnRleHQu
Y2FsbGJhY2tDYWxsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgICAgIH0pLCBHX1BSSU9SSVRZX0RFRkFVTFQsCi0gICAgICAgICAgICBbJl0gewotICAg
ICAgICAgICAgICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUo
KSk7Ci0gICAgICAgICAgICAgICAgY29udGV4dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSB0cnVl
OwotICAgICAgICAgICAgICAgIGNvbnRleHQudGVzdC5maW5pc2goKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQo
KSk7Ci0KLSAgICAgICAgY29udGV4dC50ZXN0LnJ1bkxvb3AoKTsKLQotICAgICAgICBFWFBFQ1Rf
VFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOwotICAgICAgICBFWFBFQ1Rf
VFJVRShjb250ZXh0LmNhbGxiYWNrQ2FsbGVkKTsKLSAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4
dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQpOwotICAgIH0KLX0KLQotVEVTVChXVEZfR01haW5Mb29w
U291cmNlLCBCYXNpY0Rlc3Ryb3lDYWxsYmFja3MpCi17Ci0gICAgc3RydWN0IFRlc3RpbmdDb250
ZXh0IHsKLSAgICAgICAgR01haW5Mb29wU291cmNlVGVzdDxHTWFpbkxvb3BTb3VyY2U+IHRlc3Q7
Ci0gICAgICAgIGJvb2wgY2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKLSAgICAgICAgYm9vbCBkZXN0
cm95Q2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKLSAgICB9OwotICAgIGJhc2ljRGVzdHJveUNhbGxi
YWNrczxUZXN0aW5nQ29udGV4dD4oKTsKLQotICAgIHN0cnVjdCBUaHJlYWRTYWZlVGVzdGluZ0Nv
bnRleHQgewotICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0PEdUaHJlYWRTYWZlTWFpbkxvb3BT
b3VyY2U+IHRlc3Q7Ci0gICAgICAgIGJvb2wgY2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKLSAgICAg
ICAgYm9vbCBkZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKLSAgICB9OwotICAgIGJhc2lj
RGVzdHJveUNhbGxiYWNrczxUaHJlYWRTYWZlVGVzdGluZ0NvbnRleHQ+KCk7Ci19Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotc3RhdGljIHZvaWQgZGVzdHJveUNhbGxiYWNrc0FmdGVyQ2FuY2Vs
bGluZ0R1cmluZ0Rpc3BhdGNoKCkKLXsKLSAgICB7Ci0gICAgICAgIFQgY29udGV4dDsKLSAgICAg
ICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLSAgICAg
ICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLnNjaGVkdWxlKCJbVGVzdF0gRGVzdHJveUNhbGxiYWNr
IiwKLSAgICAgICAgICAgIFsmXSB7Ci0gICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4
dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkgJiYgIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1Nj
aGVkdWxlZCgpKTsKLSAgICAgICAgICAgICAgICBjb250ZXh0LmNhbGxiYWNrQ2FsbENvdW50Kys7
Ci0gICAgICAgICAgICAgICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLmNhbmNlbCgpOwotICAgICAg
ICAgICAgfSwgR19QUklPUklUWV9ERUZBVUxULAotICAgICAgICAgICAgWyZdIHsKLSAgICAgICAg
ICAgICAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOwot
ICAgICAgICAgICAgICAgIGNvbnRleHQuZGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICBjb250ZXh0LnRlc3QuZmluaXNoKCk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOwot
Ci0gICAgICAgIGNvbnRleHQudGVzdC5kZWxheWVkRmluaXNoKCk7Ci0gICAgICAgIGNvbnRleHQu
dGVzdC5ydW5Mb29wKCk7Ci0KLSAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3Vy
Y2UoKS5pc0FjdGl2ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VRKDEsIGNvbnRleHQuY2FsbGJhY2tD
YWxsQ291bnQpOwotICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LmRlc3Ryb3lDYWxsYmFja0Nh
bGxlZCk7Ci0gICAgfQotCi0gICAgewotICAgICAgICBUIGNvbnRleHQ7Ci0gICAgICAgIEVYUEVD
VF9UUlVFKCFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7Ci0gICAgICAgIGNvbnRl
eHQudGVzdC5zb3VyY2UoKS5zY2hlZHVsZSgiW1Rlc3RdIERlc3Ryb3lDYWxsYmFjayIsCi0gICAg
ICAgICAgICBzdGQ6OmZ1bmN0aW9uPGJvb2wgKCk+KFsmXSB7Ci0gICAgICAgICAgICAgICAgRVhQ
RUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkgJiYgIWNvbnRleHQudGVz
dC5zb3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKLSAgICAgICAgICAgICAgICBjb250ZXh0LmNhbGxi
YWNrQ2FsbENvdW50Kys7Ci0gICAgICAgICAgICAgICAgaWYgKGNvbnRleHQuY2FsbGJhY2tDYWxs
Q291bnQgPT0gMykKLSAgICAgICAgICAgICAgICAgICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLmNh
bmNlbCgpOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfSksIEdf
UFJJT1JJVFlfREVGQVVMVCwKLSAgICAgICAgICAgIFsmXSB7Ci0gICAgICAgICAgICAgICAgRVhQ
RUNUX1RSVUUoIWNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLSAgICAgICAgICAg
ICAgICBjb250ZXh0LmRlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9
KTsKLSAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVk
KCkpOwotCi0gICAgICAgIGNvbnRleHQudGVzdC5kZWxheWVkRmluaXNoKCk7Ci0gICAgICAgIGNv
bnRleHQudGVzdC5ydW5Mb29wKCk7Ci0KLSAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVz
dC5zb3VyY2UoKS5pc0FjdGl2ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VRKDMsIGNvbnRleHQuY2Fs
bGJhY2tDYWxsQ291bnQpOwotICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LmRlc3Ryb3lDYWxs
YmFja0NhbGxlZCk7Ci0gICAgfQotfQotCi1URVNUKFdURl9HTWFpbkxvb3BTb3VyY2UsIERlc3Ry
b3lDYWxsYmFja3NBZnRlckNhbmNlbGxpbmdEdXJpbmdEaXNwYXRjaCkKLXsKLSAgICBzdHJ1Y3Qg
VGVzdGluZ0NvbnRleHQgewotICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0PEdNYWluTG9vcFNv
dXJjZT4gdGVzdDsKLSAgICAgICAgdW5zaWduZWQgY2FsbGJhY2tDYWxsQ291bnQ9IDA7Ci0gICAg
ICAgIGJvb2wgZGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7Ci0gICAgfTsKLSAgICBkZXN0
cm95Q2FsbGJhY2tzQWZ0ZXJDYW5jZWxsaW5nRHVyaW5nRGlzcGF0Y2g8VGVzdGluZ0NvbnRleHQ+
KCk7Ci0KLSAgICBzdHJ1Y3QgVGhyZWFkU2FmZVRlc3RpbmdDb250ZXh0IHsKLSAgICAgICAgR01h
aW5Mb29wU291cmNlVGVzdDxHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlPiB0ZXN0OwotICAgICAg
ICB1bnNpZ25lZCBjYWxsYmFja0NhbGxDb3VudD0gMDsKLSAgICAgICAgYm9vbCBkZXN0cm95Q2Fs
bGJhY2tDYWxsZWQgPSBmYWxzZTsKLSAgICB9OwotICAgIGRlc3Ryb3lDYWxsYmFja3NBZnRlckNh
bmNlbGxpbmdEdXJpbmdEaXNwYXRjaDxUaHJlYWRTYWZlVGVzdGluZ0NvbnRleHQ+KCk7Ci19Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RhdGljIHZvaWQgZGVzdHJveUNhbGxiYWNrc0FmdGVy
UmVzY2hlZHVsaW5nRHVyaW5nRGlzcGF0Y2goKQotewotICAgIHsKLSAgICAgICAgVCBjb250ZXh0
OwotICAgICAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkp
OwotICAgICAgICBjb250ZXh0LnRlc3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBCYXNlQ2Fs
bGJhY2siLAotICAgICAgICAgICAgWyZdIHsKLSAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShj
b250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSAmJiAhY29udGV4dC50ZXN0LnNvdXJjZSgp
LmlzU2NoZWR1bGVkKCkpOwotICAgICAgICAgICAgICAgIGNvbnRleHQuZmlyc3RDYWxsYmFja0Nh
bGxDb3VudCsrOwotICAgICAgICAgICAgICAgIGNvbnRleHQudGVzdC5zb3VyY2UoKS5zY2hlZHVs
ZSgiW1Rlc3RdIFJlc2NoZWR1bGluZ0NhbGxiYWNrIiwKLSAgICAgICAgICAgICAgICAgICAgWyZd
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3Vy
Y2UoKS5pc0FjdGl2ZSgpICYmICFjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnNlY29uZENhbGxiYWNrQ2FsbENvdW50
Kys7Ci0gICAgICAgICAgICAgICAgICAgIH0sIEdfUFJJT1JJVFlfREVGQVVMVCwKLSAgICAgICAg
ICAgICAgICAgICAgWyZdIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKCFj
b250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBjb250ZXh0LnNlY29uZERlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IHRydWU7Ci0gICAgICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5z
b3VyY2UoKS5pc1NjaGVkdWxlZCgpKTsKLSAgICAgICAgICAgIH0sIEdfUFJJT1JJVFlfREVGQVVM
VCwKLSAgICAgICAgICAgIFsmXSB7Ci0gICAgICAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB0
aGUgR01haW5Mb29wU291cmNlIGhhcyBiZWVuIHJlc2NoZWR1bGVkLCBlcmdvIHRoZSBTY2hlZHVs
ZWQgc3RhdHVzLgotICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3Vy
Y2UoKS5pc1NjaGVkdWxlZCgpKTsKLSAgICAgICAgICAgICAgICBjb250ZXh0LmZpcnN0RGVzdHJv
eUNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICBFWFBFQ1Rf
VFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7Ci0KLSAgICAgICAgY29u
dGV4dC50ZXN0LmRlbGF5ZWRGaW5pc2goKTsKLSAgICAgICAgY29udGV4dC50ZXN0LnJ1bkxvb3Ao
KTsKLQotICAgICAgICBFWFBFQ1RfVFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZl
KCkpOwotICAgICAgICBFWFBFQ1RfRVEoMSwgY29udGV4dC5maXJzdENhbGxiYWNrQ2FsbENvdW50
KTsKLSAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC5maXJzdERlc3Ryb3lDYWxsYmFja0NhbGxl
ZCk7Ci0gICAgICAgIEVYUEVDVF9FUSgxLCBjb250ZXh0LnNlY29uZENhbGxiYWNrQ2FsbENvdW50
KTsKLSAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC5zZWNvbmREZXN0cm95Q2FsbGJhY2tDYWxs
ZWQpOwotICAgIH0KLQotICAgIHsKLSAgICAgICAgVCBjb250ZXh0OwotICAgICAgICBFWFBFQ1Rf
VFJVRSghY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzQWN0aXZlKCkpOwotICAgICAgICBjb250ZXh0
LnRlc3Quc291cmNlKCkuc2NoZWR1bGUoIltUZXN0XSBCYXNlQ2FsbGJhY2siLAotICAgICAgICAg
ICAgc3RkOjpmdW5jdGlvbjxib29sICgpPihbJl0gewotICAgICAgICAgICAgICAgIEVYUEVDVF9U
UlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc0FjdGl2ZSgpICYmICFjb250ZXh0LnRlc3Quc291
cmNlKCkuaXNTY2hlZHVsZWQoKSk7Ci0gICAgICAgICAgICAgICAgY29udGV4dC5maXJzdENhbGxi
YWNrQ2FsbENvdW50Kys7Ci0gICAgICAgICAgICAgICAgY29udGV4dC50ZXN0LnNvdXJjZSgpLnNj
aGVkdWxlKCJbVGVzdF0gUmVzY2hlZHVsaW5nQ2FsbGJhY2siLAotICAgICAgICAgICAgICAgICAg
ICBzdGQ6OmZ1bmN0aW9uPGJvb2wgKCk+KFsmXSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBF
WFBFQ1RfVFJVRShjb250ZXh0LnRlc3Quc291cmNlKCkuaXNBY3RpdmUoKSAmJiAhY29udGV4dC50
ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGV4dC5zZWNvbmRDYWxsYmFja0NhbGxDb3VudCsrOwotICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGNvbnRleHQuc2Vjb25kQ2FsbGJhY2tDYWxsQ291bnQgIT0gMzsKLSAgICAgICAgICAg
ICAgICAgICAgfSksIEdfUFJJT1JJVFlfREVGQVVMVCwKLSAgICAgICAgICAgICAgICAgICAgWyZd
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKCFjb250ZXh0LnRlc3Quc291
cmNlKCkuaXNBY3RpdmUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnNlY29u
ZERlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQudGVzdC5zb3VyY2UoKS5pc1NjaGVk
dWxlZCgpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0pLCBH
X1BSSU9SSVRZX0RFRkFVTFQsCi0gICAgICAgICAgICBbJl0gewotICAgICAgICAgICAgICAgIC8v
IEF0IHRoaXMgcG9pbnQgdGhlIEdNYWluTG9vcFNvdXJjZSBoYXMgYmVlbiByZXNjaGVkdWxlZCwg
ZXJnbyB0aGUgU2NoZWR1bGVkIHN0YXR1cy4KLSAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShj
b250ZXh0LnRlc3Quc291cmNlKCkuaXNTY2hlZHVsZWQoKSk7Ci0gICAgICAgICAgICAgICAgY29u
dGV4dC5maXJzdERlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgRVhQRUNUX1RSVUUoY29udGV4dC50ZXN0LnNvdXJjZSgpLmlzU2NoZWR1bGVkKCkp
OwotCi0gICAgICAgIGNvbnRleHQudGVzdC5kZWxheWVkRmluaXNoKCk7Ci0gICAgICAgIGNvbnRl
eHQudGVzdC5ydW5Mb29wKCk7Ci0KLSAgICAgICAgRVhQRUNUX1RSVUUoIWNvbnRleHQudGVzdC5z
b3VyY2UoKS5pc0FjdGl2ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VRKDEsIGNvbnRleHQuZmlyc3RD
YWxsYmFja0NhbGxDb3VudCk7Ci0gICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQuZmlyc3REZXN0
cm95Q2FsbGJhY2tDYWxsZWQpOwotICAgICAgICBFWFBFQ1RfRVEoMywgY29udGV4dC5zZWNvbmRD
YWxsYmFja0NhbGxDb3VudCk7Ci0gICAgICAgIEVYUEVDVF9UUlVFKGNvbnRleHQuc2Vjb25kRGVz
dHJveUNhbGxiYWNrQ2FsbGVkKTsKLSAgICB9Ci19Ci0KLVRFU1QoV1RGX0dNYWluTG9vcFNvdXJj
ZSwgRGVzdHJveUNhbGxiYWNrc0FmdGVyUmVzY2hlZHVsaW5nRHVyaW5nRGlzcGF0Y2gpCi17Ci0g
ICAgc3RydWN0IFRlc3RpbmdDb250ZXh0IHsKLSAgICAgICAgR01haW5Mb29wU291cmNlVGVzdDxH
TWFpbkxvb3BTb3VyY2U+IHRlc3Q7Ci0gICAgICAgIHVuc2lnbmVkIGZpcnN0Q2FsbGJhY2tDYWxs
Q291bnQgPSAwOwotICAgICAgICBib29sIGZpcnN0RGVzdHJveUNhbGxiYWNrQ2FsbGVkID0gZmFs
c2U7Ci0gICAgICAgIHVuc2lnbmVkIHNlY29uZENhbGxiYWNrQ2FsbENvdW50ID0gMDsKLSAgICAg
ICAgYm9vbCBzZWNvbmREZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKLSAgICB9OwotICAg
IGRlc3Ryb3lDYWxsYmFja3NBZnRlclJlc2NoZWR1bGluZ0R1cmluZ0Rpc3BhdGNoPFRlc3RpbmdD
b250ZXh0PigpOwotCi0gICAgc3RydWN0IFRocmVhZFNhZmVUZXN0aW5nQ29udGV4dCB7Ci0gICAg
ICAgIEdNYWluTG9vcFNvdXJjZVRlc3Q8R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZT4gdGVzdDsK
LSAgICAgICAgdW5zaWduZWQgZmlyc3RDYWxsYmFja0NhbGxDb3VudCA9IDA7Ci0gICAgICAgIGJv
b2wgZmlyc3REZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKLSAgICAgICAgdW5zaWduZWQg
c2Vjb25kQ2FsbGJhY2tDYWxsQ291bnQgPSAwOwotICAgICAgICBib29sIHNlY29uZERlc3Ryb3lD
YWxsYmFja0NhbGxlZCA9IGZhbHNlOwotICAgIH07Ci0gICAgZGVzdHJveUNhbGxiYWNrc0FmdGVy
UmVzY2hlZHVsaW5nRHVyaW5nRGlzcGF0Y2g8VGhyZWFkU2FmZVRlc3RpbmdDb250ZXh0PigpOwot
fQotCi1URVNUKFdURl9HTWFpbkxvb3BTb3VyY2UsIERlbGV0ZU9uRGVzdHJveVNvdXJjZXMpCi17
Ci0gICAgLy8gVGVzdGluZyB0aGUgZGVsZXRlLW9uLWRlc3Ryb3kgc291cmNlcyBpcyB2ZXJ5IGxp
bWl0ZWQuIFRoZXJlJ3Mgbm8gZ29vZCB3YXkKLSAgICAvLyBvZiB0ZXN0aW5nIHRoYXQgdGhlIEdN
YWluTG9vcFNvdXJjZSBvYmplY3RzIGFyZSBkZWxldGVkIHdoZW4gdGhlaXIgR1NvdXJjZQotICAg
IC8vIGlzIGRlc3Ryb3llZC4KLQotICAgIHN0cnVjdCBUZXN0aW5nQ29udGV4dCB7Ci0gICAgICAg
IEdNYWluTG9vcFNvdXJjZVRlc3Q8R01haW5Mb29wU291cmNlPiB0ZXN0OwotICAgICAgICB1bnNp
Z25lZCBjYWxsYmFja0NhbGxDb3VudCA9IDA7Ci0gICAgICAgIGJvb2wgZGVzdHJveUNhbGxiYWNr
Q2FsbGVkID0gZmFsc2U7Ci0gICAgfSBjb250ZXh0OwotCi0gICAgewotICAgICAgICBUZXN0aW5n
Q29udGV4dCBjb250ZXh0OwotCi0gICAgICAgIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBbmRE
ZWxldGVPbkRlc3Ryb3koIltUZXN0XSBEZWxldGVPbkRlc3Ryb3kiLAotICAgICAgICAgICAgWyZd
IHsKLSAgICAgICAgICAgICAgICBjb250ZXh0LmNhbGxiYWNrQ2FsbENvdW50Kys7Ci0gICAgICAg
ICAgICB9LCBHX1BSSU9SSVRZX0RFRkFVTFQsCi0gICAgICAgICAgICBbJl0gewotICAgICAgICAg
ICAgICAgIEVYUEVDVF9GQUxTRShjb250ZXh0LmRlc3Ryb3lDYWxsYmFja0NhbGxlZCk7Ci0gICAg
ICAgICAgICAgICAgY29udGV4dC5kZXN0cm95Q2FsbGJhY2tDYWxsZWQgPSB0cnVlOwotICAgICAg
ICAgICAgfSk7Ci0KLSAgICAgICAgY29udGV4dC50ZXN0LmRlbGF5ZWRGaW5pc2goKTsKLSAgICAg
ICAgY29udGV4dC50ZXN0LnJ1bkxvb3AoKTsKLSAgICAgICAgRVhQRUNUX0VRKDEsIGNvbnRleHQu
Y2FsbGJhY2tDYWxsQ291bnQpOwotICAgICAgICBFWFBFQ1RfVFJVRShjb250ZXh0LmRlc3Ryb3lD
YWxsYmFja0NhbGxlZCk7Ci0gICAgfQotCi0gICAgewotICAgICAgICBUZXN0aW5nQ29udGV4dCBj
b250ZXh0OwotCi0gICAgICAgIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBbmREZWxldGVPbkRl
c3Ryb3koIltUZXN0XSBEZWxldGVPbkRlc3Ryb3kiLAotICAgICAgICAgICAgc3RkOjpmdW5jdGlv
bjxib29sICgpPihbJl0gewotICAgICAgICAgICAgICAgIGNvbnRleHQuY2FsbGJhY2tDYWxsQ291
bnQrKzsKLSAgICAgICAgICAgICAgICByZXR1cm4gY29udGV4dC5jYWxsYmFja0NhbGxDb3VudCAh
PSAzOwotICAgICAgICAgICAgfSksIEdfUFJJT1JJVFlfREVGQVVMVCwKLSAgICAgICAgICAgIFsm
XSB7Ci0gICAgICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGNvbnRleHQuZGVzdHJveUNhbGxiYWNr
Q2FsbGVkKTsKLSAgICAgICAgICAgICAgICBjb250ZXh0LmRlc3Ryb3lDYWxsYmFja0NhbGxlZCA9
IHRydWU7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICBjb250ZXh0LnRlc3QuZGVsYXllZEZp
bmlzaCgpOwotICAgICAgICBjb250ZXh0LnRlc3QucnVuTG9vcCgpOwotICAgICAgICBFWFBFQ1Rf
RVEoMywgY29udGV4dC5jYWxsYmFja0NhbGxDb3VudCk7Ci0gICAgICAgIEVYUEVDVF9UUlVFKGNv
bnRleHQuZGVzdHJveUNhbGxiYWNrQ2FsbGVkKTsKLSAgICB9Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L2dvYmplY3QvR1VuaXF1ZVB0ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9n
b2JqZWN0L0dVbmlxdWVQdHIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OTQy
Zjg2NTcyYmRkY2RlYmJhOTdkMjg1MjlhOWQ1NmExMjJlNDNhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L2dvYmplY3QvR1VuaXF1ZVB0ci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxOTUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlIDxnaW8vZ2lvLmg+Ci0KLWlubGluZSBzdGQ6Om9zdHJp
bmdzdHJlYW0mIGxvZygpCi17Ci0gICAgc3RhdGljIHN0ZDo6b3N0cmluZ3N0cmVhbSBsb2c7Ci0g
ICAgcmV0dXJuIGxvZzsKLX0KLQotaW5saW5lIHN0ZDo6c3RyaW5nIHRha2VMb2dTdHIoKQotewot
ICAgIHN0ZDo6c3RyaW5nIHN0cmluZyA9IGxvZygpLnN0cigpOwotICAgIGxvZygpLnN0cigiIik7
Ci0gICAgcmV0dXJuIHN0cmluZzsKLX0KLQotc3RhdGljIHZvaWQgKCogX2dfZnJlZSkodm9pZCop
ID0gZ19mcmVlOwotI2RlZmluZSBnX2ZyZWUoeCkgXAotICAgIGxvZygpIDw8ICJnX2ZyZWUoIiA8
PCBwdHIgPDwgIik7IjsgXAotICAgIF9nX2ZyZWUoeCk7Ci0KLXN0YXRpYyB2b2lkICgqIF9nX2Vy
cm9yX2ZyZWUpKEdFcnJvciopID0gZ19lcnJvcl9mcmVlOwotI2RlZmluZSBnX2Vycm9yX2ZyZWUo
eCkgXAotICAgIGxvZygpIDw8ICJnX2Vycm9yX2ZyZWUoIiA8PCBwdHIgPDwgIik7IjsgXAotICAg
IF9nX2Vycm9yX2ZyZWUoeCk7Ci0KLXN0YXRpYyB2b2lkICgqIF9nX2xpc3RfZnJlZSkoR0xpc3Qq
KSA9IGdfbGlzdF9mcmVlOwotI2RlZmluZSBnX2xpc3RfZnJlZSh4KSBcCi0gICAgbG9nKCkgPDwg
ImdfbGlzdF9mcmVlKCIgPDwgcHRyIDw8ICIpOyI7IFwKLSAgICBfZ19saXN0X2ZyZWUoeCk7Ci0K
LXN0YXRpYyB2b2lkICgqIF9nX3NsaXN0X2ZyZWUpKEdTTGlzdCopID0gZ19zbGlzdF9mcmVlOwot
I2RlZmluZSBnX3NsaXN0X2ZyZWUoeCkgXAotICAgIGxvZygpIDw8ICJnX3NsaXN0X2ZyZWUoIiA8
PCBwdHIgPDwgIik7IjsgXAotICAgIF9nX3NsaXN0X2ZyZWUoeCk7Ci0KLXN0YXRpYyB2b2lkICgq
IF9nX3BhdHRlcm5fc3BlY19mcmVlKShHUGF0dGVyblNwZWMqKSA9IGdfcGF0dGVybl9zcGVjX2Zy
ZWU7Ci0jZGVmaW5lIGdfcGF0dGVybl9zcGVjX2ZyZWUoeCkgXAotICAgIGxvZygpIDw8ICJnX3Bh
dHRlcm5fc3BlY19mcmVlKCIgPDwgcHRyIDw8ICIpOyI7IFwKLSAgICBfZ19wYXR0ZXJuX3NwZWNf
ZnJlZSh4KTsKLQotc3RhdGljIHZvaWQgKCogX2dfZGlyX2Nsb3NlKShHRGlyKikgPSBnX2Rpcl9j
bG9zZTsKLSNkZWZpbmUgZ19kaXJfY2xvc2UoeCkgXAotICAgIGxvZygpIDw8ICJnX2Rpcl9jbG9z
ZSgiIDw8IHB0ciA8PCAiKTsiOyBcCi0gICAgX2dfZGlyX2Nsb3NlKHgpOwotCi1zdGF0aWMgdm9p
ZCAoKiBfZ190aW1lcl9kZXN0cm95KShHVGltZXIqKSA9IGdfdGltZXJfZGVzdHJveTsKLSNkZWZp
bmUgZ190aW1lcl9kZXN0cm95KHgpIFwKLSAgICBsb2coKSA8PCAiZ190aW1lcl9kZXN0cm95KCIg
PDwgcHRyIDw8ICIpOyI7IFwKLSAgICBfZ190aW1lcl9kZXN0cm95KHgpOwotCi1zdGF0aWMgdm9p
ZCAoKiBfZ19rZXlfZmlsZV9mcmVlKShHS2V5RmlsZSopID0gZ19rZXlfZmlsZV9mcmVlOwotI2Rl
ZmluZSBnX2tleV9maWxlX2ZyZWUoeCkgXAotICAgIGxvZygpIDw8ICJnX2tleV9maWxlX2ZyZWUo
IiA8PCBwdHIgPDwgIik7IjsgXAotICAgIF9nX2tleV9maWxlX2ZyZWUoeCk7Ci0KLSNpbmNsdWRl
IDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+Ci0KLW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
LQotVEVTVChXVEZfR1VuaXF1ZVB0ciwgQmFzaWMpCi17Ci0gICAgc3RkOjpvc3RyaW5nc3RyZWFt
IGFjdHVhbDsKLQotICAgIHsKLSAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBhKGdfc3RyZHVwKCJh
IikpOwotICAgICAgICBhY3R1YWwgPDwgImdfZnJlZSgiIDw8IGEuZ2V0KCkgPDwgIik7IjsKLSAg
ICB9Ci0gICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIoKS5jX3N0cigpLCB0YWtlTG9nU3RyKCku
Y19zdHIoKSk7Ci0gICAgYWN0dWFsLnN0cigiIik7Ci0KLSAgICB7Ci0gICAgICAgIEdVbmlxdWVQ
dHI8R0Vycm9yPiBhKGdfZXJyb3JfbmV3X2xpdGVyYWwoR19JT19FUlJPUiwgR19JT19FUlJPUl9O
T1RfRk9VTkQsICJhIikpOwotICAgICAgICBhY3R1YWwgPDwgImdfZXJyb3JfZnJlZSgiIDw8IGEu
Z2V0KCkgPDwgIik7IjsKLSAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIoKS5jX3N0
cigpLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Ci0gICAgYWN0dWFsLnN0cigiIik7Ci0KLSAgICB7
Ci0gICAgICAgIEdVbmlxdWVQdHI8R0xpc3Q+IGEoZ19saXN0X3ByZXBlbmQobnVsbHB0ciwgZ19z
dHJkdXAoImEiKSkpOwotICAgICAgICBhY3R1YWwgPDwgImdfbGlzdF9mcmVlKCIgPDwgYS5nZXQo
KSA8PCAiKTsiOwotICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoYWN0dWFsLnN0cigpLmNfc3RyKCks
IHRha2VMb2dTdHIoKS5jX3N0cigpKTsKLSAgICBhY3R1YWwuc3RyKCIiKTsKLQotICAgIHsKLSAg
ICAgICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGEoZ19zbGlzdF9wcmVwZW5kKG51bGxwdHIsIGdfc3Ry
ZHVwKCJhIikpKTsKLSAgICAgICAgYWN0dWFsIDw8ICJnX3NsaXN0X2ZyZWUoIiA8PCBhLmdldCgp
IDw8ICIpOyI7Ci0gICAgfQotICAgIEFTU0VSVF9TVFJFUShhY3R1YWwuc3RyKCkuY19zdHIoKSwg
dGFrZUxvZ1N0cigpLmNfc3RyKCkpOwotICAgIGFjdHVhbC5zdHIoIiIpOwotCi0gICAgewotICAg
ICAgICBHVW5pcXVlUHRyPEdQYXR0ZXJuU3BlYz4gYShnX3BhdHRlcm5fc3BlY19uZXcoImEiKSk7
Ci0gICAgICAgIGFjdHVhbCA8PCAiZ19wYXR0ZXJuX3NwZWNfZnJlZSgiIDw8IGEuZ2V0KCkgPDwg
Iik7IjsKLSAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIoKS5jX3N0cigpLCB0YWtl
TG9nU3RyKCkuY19zdHIoKSk7Ci0gICAgYWN0dWFsLnN0cigiIik7Ci0KLSAgICB7Ci0gICAgICAg
IEdVbmlxdWVQdHI8R0Rpcj4gYShnX2Rpcl9vcGVuKCIvdG1wIiwgMCwgbnVsbHB0cikpOwotICAg
ICAgICBhY3R1YWwgPDwgImdfZGlyX2Nsb3NlKCIgPDwgYS5nZXQoKSA8PCAiKTsiOwotICAgIH0K
LSAgICBBU1NFUlRfU1RSRVEoYWN0dWFsLnN0cigpLmNfc3RyKCksIHRha2VMb2dTdHIoKS5jX3N0
cigpKTsKLSAgICBhY3R1YWwuc3RyKCIiKTsKLQotICAgIHsKLSAgICAgICAgR1VuaXF1ZVB0cjxH
VGltZXI+IGEoZ190aW1lcl9uZXcoKSk7Ci0gICAgICAgIGFjdHVhbCA8PCAiZ190aW1lcl9kZXN0
cm95KCIgPDwgYS5nZXQoKSA8PCAiKTsiOwotICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoYWN0dWFs
LnN0cigpLmNfc3RyKCksIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKLSAgICBhY3R1YWwuc3RyKCIi
KTsKLQotICAgIHsKLSAgICAgICAgR1VuaXF1ZVB0cjxHS2V5RmlsZT4gYShnX2tleV9maWxlX25l
dygpKTsKLSAgICAgICAgYWN0dWFsIDw8ICJnX2tleV9maWxlX2ZyZWUoIiA8PCBhLmdldCgpIDw8
ICIpOyI7Ci0gICAgfQotICAgIEFTU0VSVF9TVFJFUShhY3R1YWwuc3RyKCkuY19zdHIoKSwgdGFr
ZUxvZ1N0cigpLmNfc3RyKCkpOwotICAgIGFjdHVhbC5zdHIoIiIpOwotfQotCi1zdGF0aWMgdm9p
ZCByZXR1cm5PdXRDaGFyKGNoYXIqKiBvdXRDaGFyKQotewotICAgICpvdXRDaGFyID0gZ19zdHJk
dXAoImEiKTsKLX0KLQotVEVTVChXVEZfR1VuaXF1ZVB0ciwgT3V0UHRyKQotewotICAgIHN0ZDo6
b3N0cmluZ3N0cmVhbSBhY3R1YWw7Ci0KLSAgICB7Ci0gICAgICAgIEdVbmlxdWVPdXRQdHI8Y2hh
cj4gYTsKLSAgICAgICAgQVNTRVJUX0VRKG51bGxwdHIsIGEuZ2V0KCkpOwotICAgIH0KLSAgICBB
U1NFUlRfU1RSRVEoYWN0dWFsLnN0cigpLmNfc3RyKCksIHRha2VMb2dTdHIoKS5jX3N0cigpKTsK
LSAgICBhY3R1YWwuc3RyKCIiKTsKLQotICAgIHsKLSAgICAgICAgR1VuaXF1ZU91dFB0cjxjaGFy
PiBhOwotICAgICAgICByZXR1cm5PdXRDaGFyKCZhLm91dFB0cigpKTsKLSAgICAgICAgYWN0dWFs
IDw8ICJnX2ZyZWUoIiA8PCBhLmdldCgpIDw8ICIpOyI7Ci0gICAgfQotICAgIEFTU0VSVF9TVFJF
UShhY3R1YWwuc3RyKCkuY19zdHIoKSwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwotICAgIGFjdHVh
bC5zdHIoIiIpOwotCi0gICAgewotICAgICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IGE7Ci0gICAg
ICAgIHJldHVybk91dENoYXIoJmEub3V0UHRyKCkpOwotICAgICAgICBhY3R1YWwgPDwgImdfZnJl
ZSgiIDw8IGEuZ2V0KCkgPDwgIik7IjsKLSAgICAgICAgcmV0dXJuT3V0Q2hhcigmYS5vdXRQdHIo
KSk7Ci0gICAgICAgIEFTU0VSVF9TVFJFUShhY3R1YWwuc3RyKCkuY19zdHIoKSwgdGFrZUxvZ1N0
cigpLmNfc3RyKCkpOwotICAgICAgICBhY3R1YWwuc3RyKCIiKTsKLSAgICAgICAgYWN0dWFsIDw8
ICJnX2ZyZWUoIiA8PCBhLmdldCgpIDw8ICIpOyI7Ci0gICAgfQotICAgIEFTU0VSVF9TVFJFUShh
Y3R1YWwuc3RyKCkuY19zdHIoKSwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwotICAgIGFjdHVhbC5z
dHIoIiIpOwotCi0gICAgewotICAgICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IGE7Ci0gICAgICAg
IHJldHVybk91dENoYXIoJmEub3V0UHRyKCkpOwotICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IGIg
PSBhLnJlbGVhc2UoKTsKLSAgICAgICAgQVNTRVJUX1NUUkVRKGFjdHVhbC5zdHIoKS5jX3N0cigp
LCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Ci0gICAgICAgIGFjdHVhbCA8PCAiZ19mcmVlKCIgPDwg
Yi5nZXQoKSA8PCAiKTsiOwotICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoYWN0dWFsLnN0cigpLmNf
c3RyKCksIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKLSAgICBhY3R1YWwuc3RyKCIiKTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL2d0ay9JbnB1dE1ldGhvZEZpbHRlci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ3RrL0lucHV0TWV0aG9kRmlsdGVyLmNwcAppbmRleCA0
ODgxYTQ0Y2FjOGU2ZDQyNTY3YzQyODA1NjdhOWQ4NTYzMmNiMTQ0Li43MmNhOWUyNjA5NWE2MDQ5
N2UxMzAyMjZhMWViODRiNGE4NjczODRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvZ3RrL0lucHV0TWV0aG9kRmlsdGVyLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ3RrL0lucHV0TWV0aG9kRmlsdGVyLmNwcApAQCAtMjks
OCArMjksOCBAQAogI2luY2x1ZGUgPFdlYktpdC9JbnB1dE1ldGhvZEZpbHRlci5oPgogI2luY2x1
ZGUgPGdkay9nZGtrZXlzeW1zLmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlx
dWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvRE9NTm9kZUZpbHRlclRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyR3RrL0RPTU5vZGVGaWx0ZXJUZXN0LmNwcAppbmRleCBlZTVlMGUzYWM1YThkMjQ2Nzg3NzU0
MjExZTA4OWRkOGUzZGRlODM1Li4wZjE4ZDFmMzE4NGVjNGM0YTc2MDk2ZmMyYTEyYmE2ZGYzNDVh
YzI2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9N
Tm9kZUZpbHRlclRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mkd0ay9ET01Ob2RlRmlsdGVyVGVzdC5jcHAKQEAgLTIyLDcgKzIyLDcgQEAKICNpbmNsdWRlICJX
ZWJQcm9jZXNzVGVzdC5oIgogI2luY2x1ZGUgPGdpby9naW8uaD4KICNpbmNsdWRlIDx3ZWJraXQy
L3dlYmtpdC13ZWItZXh0ZW5zaW9uLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdE5vZGVGaWx0ZXIgewogICAgIEdPYmplY3QgcGFyZW50OwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTU5vZGVUZXN0LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01Ob2RlVGVzdC5jcHAKaW5kZXggYzgz
MzljNTE0NGM5NTRmYjY2MmVlMTlkNTM1NmNiMjEwMGRjYzUzNi4uMzM0Mzg0ZjY3YTQ3OWJkODNm
ZGNhMmUzY2M5MGMwMzlmZGNkZmNlMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyR3RrL0RPTU5vZGVUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJHdGsvRE9NTm9kZVRlc3QuY3BwCkBAIC0yMiw3ICsyMiw3IEBACiAjaW5j
bHVkZSAiV2ViUHJvY2Vzc1Rlc3QuaCIKICNpbmNsdWRlIDxnaW8vZ2lvLmg+CiAjaW5jbHVkZSA8
d2Via2l0Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dV
bmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIGNsYXNzIFdl
YktpdERPTU5vZGVUZXN0IDogcHVibGljIFdlYlByb2Nlc3NUZXN0IHsKIHB1YmxpYzoKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01YUGF0aE5TUmVz
b2x2ZXJUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01Y
UGF0aE5TUmVzb2x2ZXJUZXN0LmNwcAppbmRleCAyMGU0ZGEwYmIxNTdmN2JhNThlMDU1OGFkOTk4
NGE5YjdkYzBkMzdjLi4xMTA2NzdlNDE0MjA3ODhmNTQ5M2VmYjBiNTMzYWNiYTVmNmJhMjMxIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NWFBhdGhO
U1Jlc29sdmVyVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
R3RrL0RPTVhQYXRoTlNSZXNvbHZlclRlc3QuY3BwCkBAIC0yMiw3ICsyMiw3IEBACiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Rlc3QuaCIKICNpbmNsdWRlIDxnaW8vZ2lvLmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlx
dWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIHR5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRYUGF0aE5TUmVzb2x2ZXIgewogICAgIEdPYmplY3QgcGFyZW50OwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RBdXRoZW50aWNh
dGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEF1dGhl
bnRpY2F0aW9uLmNwcAppbmRleCBlZDA1NjljNWQzNTRjZjMxMmUyYmVkNTRjYmEwZTVkOGIzM2Nh
OGEwLi5kYWM1ZTRlYmFkZDk0Y2RkZmI3ODAyMDEwYzc4YmRiOWU5YTIyNDg0IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEF1dGhlbnRpY2F0aW9u
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEF1dGhl
bnRpY2F0aW9uLmNwcApAQCAtMjAsNyArMjAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkxvYWRUcmFja2luZ1Rlc3QuaCIKICNpbmNsdWRlICJXZWJLaXRUZXN0U2VydmVyLmgi
Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dS
ZWZQdHIuaD4KIAogc3RhdGljIFdlYktpdFRlc3RTZXJ2ZXIqIGtTZXJ2ZXI7CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0Q29udGV4dE1lbnUu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RDb250ZXh0TWVu
dS5jcHAKaW5kZXggZGNkZmU2MjRmNTU3ZWZjNWY0NDM2OTBiYTVjNTRjZmUxNTZmMGJkMy4uZjJm
MGQ2YTU3N2NiNTc3NzM4MDI5NjE4ZTQ5ZWUwMmViMzViYzIyYSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RDb250ZXh0TWVudS5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RDb250ZXh0TWVudS5jcHAK
QEAgLTIwLDcgKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJWaWV3
VGVzdC5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9H
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCiBjbGFzcyBDb250ZXh0
TWVudVRlc3Q6IHB1YmxpYyBXZWJWaWV3VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdERvd25sb2Fkcy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdERvd25sb2Fkcy5jcHAKaW5kZXgg
Y2U3Y2EzNzNiODQ4ODczMmUzOTBjYzkyNjk2OWY3ZDMxMGVmMGI1OC4uYjRmMjFhMTMwYTEyNGZj
ODZkYmFjMWViYTQwNTA2ZDNjNjg4NWQ0YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3REb3dubG9hZHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0RG93bmxvYWRzLmNwcApAQCAtMjcsOCArMjcsOCBA
QAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0Mi5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCiBjbGFzcyBEb3dubG9hZFRlc3Q6IHB1YmxpYyBUZXN0IHsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0SW5zcGVj
dG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0SW5zcGVj
dG9yLmNwcAppbmRleCAwYWIyNmZkYzJkM2IwYTY5YWZhNjcwMTU0ZDRkZTVhYjAxOTgyYzU3Li4z
ZDk5M2UyNGYxYjQ4ZTc3ZWY3OWY2ZjllODBhMjJiZWI5MGUyN2EwIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEluc3BlY3Rvci5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RJbnNwZWN0b3IuY3BwCkBA
IC0yMSw3ICsyMSw3IEBACiAKICNpbmNsdWRlICJXZWJWaWV3VGVzdC5oIgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL2dsaWIvR1JlZlB0ci5oPgogCiBjbGFzcyBJbnNwZWN0b3JUZXN0OiBwdWJsaWMgV2ViVmll
d1Rlc3QgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyR3RrL1Rlc3RJbnNwZWN0b3JTZXJ2ZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyR3RrL1Rlc3RJbnNwZWN0b3JTZXJ2ZXIuY3BwCmluZGV4IGYwYmZiMDY4NmJi
OGY4YjNiN2U5ZTI2MWQ3MjYzZGE2MmJlNDhiZDYuLjQzZjRkNDgxNzA2YTQ4YjFjM2YyYTIxYjYx
ZDYyZDUyM2E5OTdmMjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mkd0ay9UZXN0SW5zcGVjdG9yU2VydmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJHdGsvVGVzdEluc3BlY3RvclNlcnZlci5jcHAKQEAgLTI1LDcgKzI1LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgIldlYlZpZXdUZXN0LmgiCi0jaW5j
bHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogLy8gTmFtZSBvZiB0aGUgdGVz
dCBzZXJ2ZXIgYXBwbGljYXRpb24gY3JlYXRpbmcgdGhlIHdlYlZpZXcgb2JqZWN0LgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RQcmludGluZy5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFByaW50aW5nLmNw
cAppbmRleCBhMTU1ZWQzOTlkODgwMWY0YTBmYWM0OTBjNTdlMWY3OWMzM2Q2ZjUzLi5jMTMxODU0
Mjc1NWNkZDM1OWMzYjgwOTYwOTgzZWJhZDQwN2MyYTIwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFByaW50aW5nLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFByaW50aW5nLmNwcApAQCAtMjAsNyAr
MjAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYlZpZXdUZXN0LmgiCiAj
aW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCiAjaWZkZWYgSEFWRV9HVEtfVU5JWF9Q
UklOVElORwogI2luY2x1ZGUgPGd0ay9ndGt1bml4cHJpbnQuaD4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0UmVzb3VyY2VzLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0UmVzb3VyY2VzLmNwcAppbmRleCAy
NmY5Y2M5MzdjYzdkNDgwYjZjOTEwNmQzNDU5MTIxOGMwYzgyNDdlLi40N2Y2NjZhOWRjMTljY2Uw
Njc3ODlkMjNmOTU4NGVmMjUxYzdkY2RhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJHdGsvVGVzdFJlc291cmNlcy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RSZXNvdXJjZXMuY3BwCkBAIC0yMiw5ICsyMiw5IEBA
CiAjaW5jbHVkZSAiV2ViS2l0VGVzdFNlcnZlci5oIgogI2luY2x1ZGUgIldlYlZpZXdUZXN0Lmgi
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNYWluTG9v
cFNvdXJjZS5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNdXRleExvY2tlci5oPgotI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTWFpbkxvb3BT
b3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTXV0ZXhMb2NrZXIuaD4KKyNpbmNsdWRlIDx3
dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIHN0YXRpYyBXZWJLaXRUZXN0U2VydmVyKiBrU2VydmVyOwog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFVJ
Q2xpZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0VUlD
bGllbnQuY3BwCmluZGV4IGUyMTA2M2Q0NzQ0ZWZiMDBkZjMxYjc4ZjgzMGFjYWQyMTVhYjg4ZjEu
LmFlODliZTE4YzFhN2JjZmNiYjNlNjFmYWEyZjNmNWM0NTFmNjNlMDkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0VUlDbGllbnQuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0VUlDbGllbnQuY3BwCkBA
IC0yMCw3ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViVmlld1Rl
c3QuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCiBzdGF0aWMgY29uc3QgY2hhcioga0FsZXJ0RGlhbG9nTWVzc2Fn
ZSA9ICJXZWJLaXRHVEsrIGFsZXJ0IGRpYWxvZyBtZXNzYWdlIjsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYkV4dGVuc2lvbnMuY3Bw
CmluZGV4IDRhMDk0ZDA0YjA2ZmZkOGMyOTc5NTNkYzBiMTE0NTdlNjY5YTVhMzAuLjgyZDNlYzM2
NDRkNWU4ZjkxNGQ3MTdlNmFlYjViNzlkNDQ1NWVmOGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJFeHRlbnNpb25zLmNwcApA
QCAtMjEsNyArMjEsNyBAQAogCiAjaW5jbHVkZSAiV2ViS2l0VGVzdEJ1cy5oIgogI2luY2x1ZGUg
IldlYlZpZXdUZXN0LmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogc3RhdGljIGNvbnN0IGNoYXIqIHdlYkV4dGVuc2lv
bnNVc2VyRGF0YSA9ICJXZWIgRXh0ZW5zaW9ucyB1c2VyIGRhdGEiOwogc3RhdGljIFdlYktpdFRl
c3RCdXMqIGJ1czsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mkd0ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwCmluZGV4IGE1ZDhkZjlk
ZTY3MWI4NjVkZTQ4ZDY3ODg2ODBkYzZhZTgyZWU5MDAuLmVhNGE4MTI1Zjk2YWU3ODk2ZTA0YzVm
YzE1Y2Y3YjczZGIxZTdiZTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mkd0ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRBY2Nlc3NpYmlsaXR5LmNwcApAQCAt
MzMsOCArMzMsOCBAQCBleHRlcm4gIkMiIHsKICNpbmNsdWRlIDxzaWduYWwuaD4KICNpbmNsdWRl
IDx1bmlzdGQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9n
b2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQ
dHIuaD4KIAogLy8gTmFtZSBvZiB0aGUgdGVzdCBzZXJ2ZXIgYXBwbGljYXRpb24gY3JlYXRpbmcg
dGhlIHdlYlZpZXcgb2JqZWN0Lgogc3RhdGljIGNvbnN0IGNoYXIqIGtUZXN0U2VydmVyQXBwTmFt
ZSA9ICJBY2Nlc3NpYmlsaXR5VGVzdFNlcnZlciI7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdEZhdmljb25EYXRhYmFzZS5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdEZhdmljb25EYXRh
YmFzZS5jcHAKaW5kZXggZTZiNTU4Y2FkNzcwYWU1MzBhNWFmN2JhOWJjMzQzZTkxY2Y3NmI0Zi4u
OGQ1YmU5MjUwNTg1MTRjODhmYzc3YmFjN2MyNDkwNDE5MzQxNWI5NCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRGYXZpY29uRGF0YWJh
c2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2Vi
S2l0RmF2aWNvbkRhdGFiYXNlLmNwcApAQCAtMjMsNyArMjMsNyBAQAogI2luY2x1ZGUgIldlYlZp
ZXdUZXN0LmgiCiAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KICNpbmNsdWRlIDxsaWJzb3VwL3Nv
dXAuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBzdGF0aWMgV2ViS2l0VGVzdFNlcnZlcioga1NlcnZlcjsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RX
ZWJLaXRGaW5kQ29udHJvbGxlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJHdGsvVGVzdFdlYktpdEZpbmRDb250cm9sbGVyLmNwcAppbmRleCBkMmVlZjRjYTQ4NjNlOWMx
YTJjMzZlNDMxNTdlYzZkNTRiNWQ3MWQzLi43Mjg5ZmQzN2Y5NzI5ODhmNjdlMGRiZTMzZjVhZmY1
OTNhODYwODVhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvVGVzdFdlYktpdEZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdEZpbmRDb250cm9sbGVyLmNwcApAQCAtMjIsNyAr
MjIsNyBAQAogI2luY2x1ZGUgIkxvYWRUcmFja2luZ1Rlc3QuaCIKICNpbmNsdWRlIDxndGsvZ3Rr
Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAogc3RhdGljIGNvbnN0
IGNoYXIqIHRlc3RTdHJpbmcgPSAiPGh0bWw+PGJvZHk+Zmlyc3QgdGVzdGluZyBzZWNvbmQgdGVz
dGluZyBzZWNvbmRIYWxmPC9ib2R5PjwvaHRtbD4iOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFBvbGljeUNsaWVudC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFBvbGljeUNsaWVu
dC5jcHAKaW5kZXggODUxNDBmY2RmZjJhYTI4ODQ5Zjg5MWYzYWQyNmU0NDhmZDdhMWZhYS4uOWY5
NTE1MTIzYzM5ODlkMTkyNWY5NDUwZWQzNzVmN2RlMzcxZGE1ZiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRQb2xpY3lDbGllbnQuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0UG9s
aWN5Q2xpZW50LmNwcApAQCAtMjEsNyArMjEsNyBAQAogCiAjaW5jbHVkZSAiTG9hZFRyYWNraW5n
VGVzdC5oIgogI2luY2x1ZGUgIldlYktpdFRlc3RTZXJ2ZXIuaCIKLSNpbmNsdWRlIDx3dGYvZ29i
amVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogc3RhdGljIFdlYktpdFRlc3RTZXJ2ZXIqIGtTZXJ2ZXI7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdl
YktpdFNldHRpbmdzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9U
ZXN0V2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDcwN2NmNzgyZWU3NGYwMjE0NGEwZjYzMjhjM2Rl
NjUyZGUyMjY0ZGYuLmIzYTM3NzI3MGQ1MjJlOWMzNjUyMTU5ZmE1NWM2M2YyMjE4ZmM0ZWEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0
U2V0dGluZ3MuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9U
ZXN0V2ViS2l0U2V0dGluZ3MuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0
VGVzdFNlcnZlci5oIgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3ZWJraXQyL3dl
YmtpdDIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1JlZlB0ci5oPgogCiBzdGF0aWMgV2ViS2l0VGVzdFNlcnZlciogZ1NlcnZlcjsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJL
aXRVc2VyQ29udGVudE1hbmFnZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyR3RrL1Rlc3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCmluZGV4IDlmNDlkMWQxZmEz
ZTExMjVjM2I1MjRiNzI1OGEwZjJiNDlmMGE2MjAuLjU4Mzk2ZmYzMWFhMDQzODRmN2Q4NTEwMWU2
MDk2ZWE2MzU2ZDFhZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mkd0ay9UZXN0V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFVzZXJDb250ZW50TWFuYWdlci5j
cHAKQEAgLTI0LDggKzI0LDggQEAKICNpbmNsdWRlIDxjc3RkYXJnPgogI2luY2x1ZGUgPGd0ay9n
dGsuaD4KICNpbmNsdWRlIDx3ZWJraXQyL3dlYmtpdDIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+
CiAKIGNsYXNzIFVzZXJDb250ZW50TWFuYWdlclRlc3QgOiBwdWJsaWMgV2ViVmlld1Rlc3Qgewog
cHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3Rr
L1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mkd0ay9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggZjVlM2IzOWRlNzYwNzQxNWEw
ZTc2NmFlZjY0M2Y3MzYxZGVhMTc2MC4uOTkxOTMxMzg2NjMxMjkxZTI2ZTg0NzZiNmU5MWJlNTYw
MjY5NmY1NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3Rr
L1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJHdGsvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0yNCw4ICsyNCw4IEBACiAj
aW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0Mi5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0hhc2guaD4KIAogc3RhdGljIFdlYktpdFRlc3RTZXJ2ZXIqIGtTZXJ2ZXI7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktp
dFdlYlZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RX
ZWJLaXRXZWJWaWV3LmNwcAppbmRleCAyYjc0MmI0ZWEwZDFjNTIwNGYwNzBhYTM1ZThkODU3OGI4
NmQ0NGYwLi40MzFlNzAwZjYwYzBiYTAzMzU0MjE3ODM5M2E2YzYxN2M5ZmYxYmU2IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFdlYlZp
ZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2Vi
S2l0V2ViVmlldy5jcHAKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU1N0cmluZ1JlZi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTVmFsdWVSZWYuaD4K
ICNpbmNsdWRlIDxnbGliL2dzdGRpby5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIGNsYXNzIElzUGxheWluZ0F1ZGlv
V2ViVmlld1Rlc3QgOiBwdWJsaWMgV2ViVmlld1Rlc3QgewogcHVibGljOgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRv
ci5jcHAKaW5kZXggMjNjZmQxOWRlZjkyM2RmMzU0YmNkYWI3OTgxYTYxOTI4OWM1ZGU1Zi4uMWNj
ZjE5NjgyN2ZjMzUyNjA5MDg2MGJiZmE0MGNhMTQ5MzBmYTlmMCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3Iu
Y3BwCkBAIC0xOSw3ICsxOSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
ZWJWaWV3VGVzdC5oIgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIGNsYXNzIEVkaXRvclRlc3Q6IHB1YmxpYyBXZWJWaWV3
VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKaW5kZXggNzY1YTQyZjE0YjEyZDNjZGM4
NGY4ZjNmMTMzNTEyODZjYzgzZDRhMS4uNTFiZDYzNzZhMTIwYTJmZGJjYmQzYWY4MWQ4OGYxYmQ2
MzU2MDk4NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3Rr
L1dlYkV4dGVuc2lvblRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mkd0ay9XZWJFeHRlbnNpb25UZXN0LmNwcApAQCAtMjcsOCArMjcsOCBAQAogI2luY2x1ZGUg
PHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
ICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
Z2xpYi9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2RlZmluZSBXRUJLSVRfRE9NX1VTRV9VTlNUQUJM
RV9BUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9X
ZWJQcm9jZXNzVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsv
V2ViUHJvY2Vzc1Rlc3QuY3BwCmluZGV4IDgyZjExMTJkYzQ1NmQ2Mjc3NTcxODljOWNiZWY1N2Rl
Mjg3MjU3NjcuLmNjZDZmMTc5YWY5ZjE3ODY3MTkwYTU4OTNjZDBmZTc2ZmE1NzhlZTAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJQcm9jZXNzVGVz
dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1dlYlByb2Nl
c3NUZXN0LmNwcApAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGdpby9naW8uaD4KICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5p
cXVlUHRyLmg+CiAKIHN0YXRpYyBIYXNoU2V0PEdPYmplY3QqPiBzX3dhdGNoZWRPYmplY3RzOwog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViUHJv
Y2Vzc1Rlc3QuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJQcm9j
ZXNzVGVzdC5oCmluZGV4IGU3MmVlZDkyZDlmMjRlM2ZlMGU4MDU3ZjljM2M1Y2Y3OGFmNTA1ZmQu
LjM3MTVlYjkxZTA5MDA3NmY4NDI5MjI0ZTUwMmI0MDBhM2NmOGE4ZmUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5oCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5oCkBA
IC0xOSw3ICsxOSw3IEBACiAKICNpbmNsdWRlIDx3ZWJraXQyL3dlYmtpdC13ZWItZXh0ZW5zaW9u
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1VdGlsaXRpZXNHdGsuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1VdGlsaXRpZXNHdGsuY3BwCmluZGV4IDk0
Yzc4OWVmNzA0MDA5Y2Y5NDI2NWU2MTFmNDY4ZDliOWFjZTRmNmQuLmY3YjIzMWZjYzJkNGE5ZGY4
ZDI4NmY4ZDQ0YzE5NTZmNGE1OWFmNjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Z3RrL1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0
ay9QbGF0Zm9ybVV0aWxpdGllc0d0ay5jcHAKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlICJQ
bGF0Zm9ybVV0aWxpdGllcy5oIgogCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlx
dWVQdHIuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogbmFtZXNwYWNlIFV0aWwgewpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKaW5kZXgg
MWQ2MGI2Mzk0MDgxNWM1NzdlNTM1ZmI1NmM0NWMzZTc1OTYwNTZmMi4uNWYwZWI0MDQwMjNkOTU2
OGVjZjBiZDJmMTM1ZTQ4Yjk4NTZlNmRmNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0
ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlIDxX
ZWJDb3JlL0dVbmlxdWVQdHJHdGsuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIu
aD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1Rlc3RNYWluLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2d0ay9XZWJLaXQyR3RrL1Rlc3RNYWluLmgKaW5kZXggYzc3YzE5YTNjYWY3N2Q0MTI2YmU0NWQx
OWE3NTE5ZTdlMjQ2NGE3YS4uOGVhZjhlMDJmN2YyODM0YmQzMzcyZWY3ZWE5ZDY5NTQ1ZDIyODE2
OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9UZXN0TWFp
bi5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvVGVzdE1haW4uaApA
QCAtMjQsOCArMjQsOCBAQAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi93ZWJraXQyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYv
Z29iamVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVl
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjZGVmaW5lIE1BS0VfR0xJ
Ql9URVNUX0ZJWFRVUkUoQ2xhc3NOYW1lKSBcCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RCdXMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0QnVzLmNwcAppbmRleCAzNWJjZjFiZDY4N2MzMTZl
ZDEwMWI2NDQ5MGE0MDViN2I4OGFkMGFmLi4xY2YyNDE0NjEwMTA4NzJjZDg3Yzc3YzQ4ZDM3YTQz
OGMxZTMzMDUxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3Rr
L1dlYktpdFRlc3RCdXMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJH
dGsvV2ViS2l0VGVzdEJ1cy5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJXZWJLaXRUZXN0QnVzLmgiCiAKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9H
VW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBXZWJLaXRUZXN0QnVzOjpXZWJLaXRUZXN0QnVzKCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVz
dEJ1cy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0QnVz
LmgKaW5kZXggYjlmODU2YjI3NTNlZjJmY2ViNDZkMWZjMDQxZTlkZDQ1MTVmNjQ1NC4uMDNiY2Mz
YWU1MjliOGYzZTJkODYxMWEzMmQ2MTliNDcwMTlkOGYwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0QnVzLmgKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0QnVzLmgKQEAgLTIxLDcgKzIxLDcg
QEAKICNkZWZpbmUgV2ViS2l0VGVzdEJ1c19oCiAKICNpbmNsdWRlIDxnaW8vZ2lvLmg+Ci0jaW5j
bHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIGNsYXNzIFdlYktpdFRlc3RCdXMg
ewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRU
ZXN0U2VydmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0
VGVzdFNlcnZlci5jcHAKaW5kZXggODczNjc3MWZhNzQ2ZGMwMzY2ZWE5YTNmMThkYzc5MjhhODRk
ZmJiMi4uNWM3NTE0M2NhMDBmNDMxMmFkYjI3ZDJhMjRkNzBhYzk2MDUxZmEzZSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RTZXJ2
ZXIuY3BwCkBAIC0yMSw3ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0VGVzdFNlcnZlci5oIgog
CiAjaW5jbHVkZSAiVGVzdE1haW4uaCIKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBXZWJLaXRUZXN0U2VydmVy
OjpXZWJLaXRUZXN0U2VydmVyKFNlcnZlclR5cGUgdHlwZSkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZlci5oIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmgKaW5kZXggNTAy
ZjdmYWQwNDgzNDhiZDc2MjFkYmFiOTJkM2NlOTA0YTg3MmI0ZC4uMjM1ZDZjOTNhNTA0YTJiYmIz
NjQwZTgwYmYyNTU5ZDMxM2VhMThjNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9n
dGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmgKQEAgLTIyLDcgKzIyLDcgQEAKIAog
I2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0Mi5oPgot
I2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBjbGFzcyBXZWJLaXRUZXN0
U2VydmVyIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKaW5kZXggMGVkZWZjYjhhNjdkNzli
MzliNDVlMzI4MjJlMDliOWJmZGE0NGNhYi4uOThlZDQ1YjkxYjBkMjM0YjM0MmJkOTI4YjI4N2E5
MjRmYjEwMzJiNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKQEAgLTQ0LDcgKzQ0LDcg
QEAgdHlwZWRlZiBzdHJ1Y3Qgb2JqY19vYmplY3QqIFBsYXRmb3JtVUlFbGVtZW50OwogI2VsaWYg
SEFWRShBQ0NFU1NJQklMSVRZKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQog
I2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyQXRrLmgiCiAjaW5jbHVk
ZSA8YXRrL2F0ay5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiB0eXBlZGVmIEdSZWZQdHI8QXRrT2JqZWN0PiBQbGF0Zm9y
bVVJRWxlbWVudDsKICNlbHNlCiB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtVUlFbGVtZW50OwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApp
bmRleCBhZGVlMzM3YmNiZjc3NTgxZDNhZWZmZWY2Y2I3OGZhZmJiZDM5ZGQyLi4wNjZjNGIwNGRj
ZDlmYmIwMDhmZDI0OTQ3YjIxZjIwMWFlYmUxMjI3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMzgsNyArMzgsNyBAQAog
I2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NGUnVuTG9vcC5oPgogdHlwZWRlZiBSZXRhaW5QdHI8
Q0ZSdW5Mb29wVGltZXJSZWY+IFBsYXRmb3JtVGltZXJSZWY7CiAjZWxpZiBQTEFURk9STShHVEsp
Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR01haW5Mb29wU291cmNlLmg+CiB0eXBlZGVmIEdNYWluTG9vcFNvdXJjZSBQbGF0Zm9y
bVRpbWVyUmVmOwogI2VsaWYgUExBVEZPUk0oRUZMKQogdHlwZWRlZiBFY29yZV9UaW1lciogUGxh
dGZvcm1UaW1lclJlZjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRr
LmNwcAppbmRleCA0YjU0MWY1YjNkZjVkMzE2Y2Q1ODI1NzE3MjE1ODVmODViMDg3ZDJkLi5jMWNi
MzQ5NTE2NDJkZDc4MTc2YjFjODE5ODc4ZWUxMTA4MTZiMmZiIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ckF0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVk
ZSA8V2ViS2l0L1dLQnVuZGxlUGFnZVByaXZhdGUuaD4KICNpbmNsdWRlIDxhdGsvYXRrLmg+CiAj
aW5jbHVkZSA8Y3N0ZGlvPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV1RSIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5k
bGVyQXRrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0Fj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyQXRrLmNwcAppbmRleCA4MjFiMTUwNzMwMzU3
NWM0MTA5ZmVlY2YxZmFiZGU1MmIxMWZlYWViLi45NWNmOGFlNGI3OGIyNzFlMmQ0MzIzY2EwNWZl
ZWQ2YWI1ZTYzYmU1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlckF0ay5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXJBdGsuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSA8V2Vi
S2l0L1dLQnVuZGxlUGFnZVByaXZhdGUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXJBdGsuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyQXRrLmgKaW5kZXggYzg0
ZTRkY2NmNTU2OTZmM2MwM2VjZTExNzAxMDdjYWE0NmQwMDc0OS4uYmIzODY5ZWNkYzY1NmI2OGFh
Y2ZhOTUwZWQ0NzkyZWI0MGQ1NTczNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXJBdGsu
aAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlckF0ay5oCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVk
ZSA8YXRrL2F0a29iamVjdC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV1RSIHsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudEF0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAppbmRleCAzODIyYzZkM2FjNjI2
Zjg5ZmYxNjNkMTA2M2JjNTJkNGEwNjg0NTFjLi4yOWNkM2E4NDhiNjZiZjM2YjI4MzlhOWQ3ODhh
NzU5ZWRlYmI4Zjg0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRr
LmNwcApAQCAtNDAsOCArNDAsOCBAQAogI2VuZGlmCiAjaW5jbHVkZSA8YXRrL2F0ay5oPgogI2lu
Y2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5o
PgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2d0ay9BY3RpdmF0ZUZvbnRzR3RrLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL0FjdGl2YXRlRm9udHNHdGsu
Y3BwCmluZGV4IDc0ZjNhYjBkNzEyZTZiOTQ3YWMzODE1YTdhYzU5MzY1MzAyNGM3YjkuLjQ5NmMx
YmNiZjU4MjgyYzYyYjdiNjJiMDkyM2I2NmYzZmVhODQwMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL0FjdGl2YXRlRm9udHNHdGsuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL0FjdGl2YXRlRm9u
dHNHdGsuY3BwCkBAIC0zNCw4ICszNCw4IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVdGls
aXRpZXMuaCIKICNpbmNsdWRlIDxmb250Y29uZmlnL2ZvbnRjb25maWcuaD4KICNpbmNsdWRlIDxn
dGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dsaWJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTGliVXRp
bGl0aWVzLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBuYW1lc3BhY2Ug
V1RSIHsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9ndGsvSW5qZWN0ZWRCdW5kbGVVdGlsaXRpZXMuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9ndGsvSW5qZWN0ZWRCdW5kbGVVdGlsaXRpZXMuY3BwCmluZGV4IDAy
ZGY3ZGYwNGJhNjMzNTQxMjZiZWFlNDZkMDgxM2UzZTQwNjQ0YWYuLmFmYmQzZjc0YTFkNjBkNzMx
OGQ0Yjc5OGQwOTQzMjBkOWNhNjkyZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL0luamVjdGVkQnVuZGxlVXRpbGl0aWVzLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2d0ay9JbmplY3RlZEJ1bmRsZVV0
aWxpdGllcy5jcHAKQEAgLTMwLDggKzMwLDggQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVV0
aWxpdGllcy5oIgogCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dVbmlxdWVQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HbGliVXRpbGl0aWVzLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dV
bmlxdWVQdHIuaD4KIAogbmFtZXNwYWNlIFdUUiB7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKaW5k
ZXggZmQyN2E1OGRkZTcwNDRjMmQ0YzQzNGUyZWU0NWQxYTYyYTE0ZWI1NS4uNmEzNmVlNzU4OTA2
ODJhYmQyMTgxOTBiYjY0YjI2NGZmOTU1ODM3YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKQEAg
LTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgogI2luY2x1ZGUgIklu
amVjdGVkQnVuZGxlVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8Z2xpYi5oPgotI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+
CiAKIG5hbWVzcGFjZSBXVFIgewogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1BsYXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUdUSy5j
bWFrZQppbmRleCBjOTM0YThiMTEzOThmOWUxZDM4NGU2Mjg5YzAwNTdjZWRkZjg2NGQ2Li5mMTE3
NTQ1NThhMzA2OTM1MWUwZjRmYmFkZTlkMDNjMDBlZTIwOTk2IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTE5LDcgKzE5LDcgQEAgbGlzdChBUFBFTkQgV2Vi
S2l0VGVzdFJ1bm5lcl9TT1VSQ0VTCiAKIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfSU5D
TFVERV9ESVJFQ1RPUklFUwogICAgICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0KLSAgICAke1dU
Rl9ESVJ9L3d0Zi9nb2JqZWN0CisgICAgJHtXVEZfRElSfS93dGYvZ2xpYgogICAgICR7QVRLX0lO
Q0xVREVfRElSU30KICAgICAke0NBSVJPX0lOQ0xVREVfRElSU30KICAgICAke0dUSzNfSU5DTFVE
RV9ESVJTfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5k
ZXJQcm94eUd0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclBy
b3h5R3RrLmNwcAppbmRleCBlMGE3ZDhkNWY4NjU5Nzk5NDkxN2ZhNWI0MjYyMTlkNGMyMDEyMmZl
Li5iOGY1Y2JlZjRhODhjYWM2OGYzMmU0MTRhMmI2M2U1ODI4MGVjOGRmIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcApAQCAtMzks
NyArMzksNyBAQAogI2luY2x1ZGUgPGdkay9nZGtrZXlzeW1zLmg+CiAjaW5jbHVkZSA8Z3RrL2d0
ay5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV1RSIHsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCA4MGY2YzIy
NDQ0ZDg1N2Y0NTg3NTExMDE5ZTgzMzJmN2Y4YzM4YTlkLi41MGZiZmE5MGNiYjdhYzBjNTk5MWU3
ZDA1ZDM2OTUyOTYxZGM3NjNhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0
ay9UZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsv
VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC0zMCw4ICszMCw4IEBACiAjaW5jbHVkZSAiUGxhdGZv
cm1XZWJWaWV3LmgiCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9y
bS5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oPgotI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTWFpbkxvb3BT
b3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXVFIgewo=
</data>
<flag name="review"
          id="279630"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
    <flag name="commit-queue"
          id="279793"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>