<?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>109748</bug_id>
          
          <creation_ts>2013-02-13 14:07:21 -0800</creation_ts>
          <short_desc>Consolidate main functions in WebKit2 now that they are all identical</short_desc>
          <delta_ts>2013-02-13 14:47:35 -0800</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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>832328</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-02-13 14:07:21 -0800</bug_when>
    <thetext>Consolidate main functions in WebKit2 now that they are all identical</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832335</commentid>
    <comment_count>1</comment_count>
      <attachid>188181</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-02-13 14:14:20 -0800</bug_when>
    <thetext>Created attachment 188181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832341</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 14:20:07 -0800</bug_when>
    <thetext>Attachment 188181 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/Configurations/BaseLegacyProcess.xcconfig&apos;, u&apos;Source/WebKit2/Configurations/BaseXPCService.xcconfig&apos;, u&apos;Source/WebKit2/Configurations/NetworkProcess.xcconfig&apos;, u&apos;Source/WebKit2/Configurations/OfflineStorageProcess.xcconfig&apos;, u&apos;Source/WebKit2/Configurations/PluginProcess.xcconfig&apos;, u&apos;Source/WebKit2/Configurations/SharedWorkerProcess.xcconfig&apos;, u&apos;Source/WebKit2/Configurations/WebContentProcess.xcconfig&apos;, u&apos;Source/WebKit2/Configurations/WebProcess.xcconfig&apos;, u&apos;Source/WebKit2/NetworkProcess/EntryPoint/mac/LegacyProcess/Info.plist&apos;, u&apos;Source/WebKit2/NetworkProcess/EntryPoint/mac/LegacyProcess/NetworkProcessMain.mm&apos;, u&apos;Source/WebKit2/NetworkProcess/EntryPoint/mac/LegacyProcess/NetworkProcessMainBootstrapper.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/NetworkServiceMain.Development.mm&apos;, u&apos;Source/WebKit2/NetworkProcess/EntryPoint/mac/XPCService/NetworkService/NetworkServiceMain.mm&apos;, u&apos;Source/WebKit2/OfflineStorageProcess/EntryPoint/mac/LegacyProcess/Info.plist&apos;, u&apos;Source/WebKit2/OfflineStorageProcess/EntryPoint/mac/LegacyProcess/OfflineStorageProcessMain.mm&apos;, u&apos;Source/WebKit2/OfflineStorageProcess/EntryPoint/mac/LegacyProcess/OfflineStorageProcessMainBootstrapper.cpp&apos;, u&apos;Source/WebKit2/OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService.Development/OfflineStorageServiceMain.Development.mm&apos;, u&apos;Source/WebKit2/OfflineStorageProcess/EntryPoint/mac/XPCService/OfflineStorageService/OfflineStorageServiceMain.mm&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/Info.plist&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMainBootstrapper.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.64/PluginService.64.Main.mm&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/PluginService.Development.Main.mm&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.mm&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.h&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.mm&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMainBootstrapper.h&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.Development.h&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.h&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm&apos;, u&apos;Source/WebKit2/SharedWorkerProcess/EntryPoint/mac/LegacyProcess/Info.plist&apos;, u&apos;Source/WebKit2/SharedWorkerProcess/EntryPoint/mac/LegacyProcess/SharedWorkerProcessMain.mm&apos;, u&apos;Source/WebKit2/SharedWorkerProcess/EntryPoint/mac/LegacyProcess/SharedWorkerProcessMainBootstrapper.cpp&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/Info.plist&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMainBootstrapper.cpp&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/WebContentServiceMain.Development.mm&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService/WebContentServiceMain.mm&apos;]&quot; exit_code: 1
Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h:50:  The parameter name &quot;identifier&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 23 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>832373</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-02-13 14:47:35 -0800</bug_when>
    <thetext>Committed r142806: &lt;http://trac.webkit.org/changeset/142806&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188181</attachid>
            <date>2013-02-13 14:14:20 -0800</date>
            <delta_ts>2013-02-13 14:14:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109748-20130213141048.patch</filename>
            <type>text/plain</type>
            <size>138836</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Mjc5NikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDEzLTAyLTEzICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgbWFpbiBmdW5jdGlv
bnMgaW4gV2ViS2l0MiBub3cgdGhhdCB0aGV5IGFyZSBhbGwgaWRlbnRpY2FsCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk3NDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIENvbnNvbGlkYXRlcyBhbGwg
dGhlIExlZ2FjeVByb2Nlc3MgbWFpbiBmdW5jdGlvbnMgaW50byBDaGlsZFByb2Nlc3NNYWluLm1t
CisgICAgICAgIC0gQ29uc29saWRhdGVzIGFsbCB0aGUgWFBDU2VydmljZSBtYWluIGZ1bmN0aW9u
cyBpbnRvIFhQQ1NlcnZpY2VNYWluLm1tIGFuZCBYUENTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5t
bQorICAgICAgICAtIFJlbmFtZSBleGlzdGluZyBDaGlsZFByb2Nlc3NNYWluLmgvbW0gdG8gQ2hp
bGRQcm9jZXNzRW50cnlQb2ludC5oL21tIHRvIG1hdGNoIHRoZSBYUENTZXJ2aWNlIG9uZXMuCisg
ICAgICAgIC0gU3dpdGNoIExlZ2FjeVByb2Nlc3MgdG8gdXNlIHRoZSAiZW50cnkgcG9pbnQgaW4g
dGhlIHBsaXN0IiBpZGlvbSwgaW5zdGVhZCBvZiBoYXJkIGNvZGluZyBlYWNoIG9uZSwgYWdhaW4K
KyAgICAgICAgICBtYXRjaGluZyB0aGUgWFBDU2VydmljZS4KKworICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL0Jhc2VMZWdhY3lQcm9jZXNzLnhjY29uZmlnOiBBZGQgYmFzZSBjb25maWd1cmF0aW9u
IHRvIGhvbGQgY29tbW9uIGxlZ2FjeSBwcm9jZXNzIG9wdGlvbnMuCisgICAgICAgICogQ29uZmln
dXJhdGlvbnMvQmFzZVhQQ1NlcnZpY2UueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlv
bnMvTmV0d29ya1Byb2Nlc3MueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvT2Zm
bGluZVN0b3JhZ2VQcm9jZXNzLnhjY29uZmlnOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1Bs
dWdpblByb2Nlc3MueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvU2hhcmVkV29y
a2VyUHJvY2Vzcy54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJDb250ZW50
UHJvY2Vzcy54Y2NvbmZpZzogUmVuYW1lZCBmb3JtICBXZWJQcm9jZXNzLnhjY29uZmlnLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5w
bGlzdDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzTWFpbi5tbToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBD
U2VydmljZS9OZXR3b3JrU2VydmljZS5EZXZlbG9wbWVudC9OZXR3b3JrU2VydmljZU1haW4uRGV2
ZWxvcG1lbnQubW06IFJlbW92ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRW50cnlQb2lu
dC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZS9OZXR3b3JrU2VydmljZU1haW4ubW06IFJl
bW92ZWQuCisgICAgICAgICogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xl
Z2FjeVByb2Nlc3MvSW5mby5wbGlzdDoKKyAgICAgICAgKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3Mv
RW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9PZmZsaW5lU3RvcmFnZVByb2Nlc3NNYWluLm1t
OgorICAgICAgICAqIE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQ
cm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2
aWNlL09mZmxpbmVTdG9yYWdlU2VydmljZS5EZXZlbG9wbWVudC9PZmZsaW5lU3RvcmFnZVNlcnZp
Y2VNYWluLkRldmVsb3BtZW50Lm1tOiBSZW1vdmVkLgorICAgICAgICAqIE9mZmxpbmVTdG9yYWdl
UHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL09mZmxpbmVTdG9yYWdlU2VydmljZS9P
ZmZsaW5lU3RvcmFnZVNlcnZpY2VNYWluLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFBsdWdpblBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9JbmZvLnBsaXN0OgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
TWFpbi5tbToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVBy
b2Nlc3MvUGx1Z2luUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIFBsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNl
LjY0L1BsdWdpblNlcnZpY2UuNjQuTWFpbi5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBQbHVnaW5Q
cm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS5EZXZlbG9wbWVu
dC9QbHVnaW5TZXJ2aWNlLkRldmVsb3BtZW50Lk1haW4ubW06IFJlbW92ZWQuCisgICAgICAgICog
U2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNz
RW50cnlQb2ludC5oOiAKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMv
TGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50Lm1tOiAKKyAgICAgICAgKiBTaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NNYWlu
Lmg6IFJlbW92ZWQuCisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xl
Z2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzTWFpbi5tbTogUmVwbGFjZWQuCisgICAgICAgICogU2hh
cmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzTWFp
bkJvb3RzdHJhcHBlci5oOiBSZW1vdmVkLgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRp
bGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VCb290c3RyYXBwZXIuRGV2ZWxvcG1lbnQu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBD
U2VydmljZS9YUENTZXJ2aWNlQm9vdHN0cmFwcGVyLmg6IFJlbW92ZWQuCisgICAgICAgICogU2hh
cmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4uRGV2
ZWxvcG1lbnQubW06CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQ
Q1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW06CisgICAgICAgICogU2hhcmVkV29ya2VyUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3Q6CisgICAgICAgICogU2hh
cmVkV29ya2VyUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1NoYXJlZFdvcmtl
clByb2Nlc3NNYWluLm1tOgorICAgICAgICAqIFNoYXJlZFdvcmtlclByb2Nlc3MvRW50cnlQb2lu
dC9tYWMvTGVnYWN5UHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQ
cm9jZXNzL0luZm8ucGxpc3Q6CisgICAgICAgICogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9M
ZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluQm9v
dHN0cmFwcGVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UuRGV2ZWxvcG1lbnQvV2ViQ29udGVudFNl
cnZpY2VNYWluLkRldmVsb3BtZW50Lm1tOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
RW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9XZWJDb250ZW50U2Vy
dmljZU1haW4ubW06IFJlbW92ZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDEzLTAyLTEzICBDaHJpc3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2lz
YS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIFN0b3AgdXNpbmcgV2ViU3RyaW5n
IGluIGV3a19jb29raWVfbWFuYWdlciwgZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0IGFuZCBl
d2tfdGV4dF9jaGVja2VyCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9CYXNl
TGVnYWN5UHJvY2Vzcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25m
aWd1cmF0aW9ucy9CYXNlTGVnYWN5UHJvY2Vzcy54Y2NvbmZpZwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0Jhc2VMZWdhY3lQcm9jZXNzLnhjY29uZmlnCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisvLyBhcmUgbWV0OgorLy8gMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisv
LyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisvLyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorLy8gRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
Ky8vIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorLy8gUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKy8vIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorLy8gRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorLy8gUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisvLyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisvLyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisKKyNpbmNsdWRlICJCYXNlVGFyZ2V0LnhjY29uZmlnIgorCitHQ0NfRU5BQkxFX09C
SkNfR0MgPSBOTzsKK0lOU1RBTExfUEFUSCA9ICQoV0VCS0lUMl9GUkFNRVdPUktTX0RJUikvV2Vi
S2l0Mi5mcmFtZXdvcms7CisKK0FQUF9JQ09OID0gJChBUFBfSUNPTl8kKENPTkZJR1VSQVRJT04p
KTsKK0FQUF9JQ09OX0RlYnVnID0gV2ViS2l0LmljbnM7CitBUFBfSUNPTl9SZWxlYXNlID0gV2Vi
S2l0LmljbnM7CitBUFBfSUNPTl9Qcm9kdWN0aW9uID0gOworCitFWENMVURFRF9TT1VSQ0VfRklM
RV9OQU1FUyA9ICQoRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNfJChDT05GSUdVUkFUSU9OKSk7
CitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19Qcm9kdWN0aW9uID0gV2ViS2l0LmljbnM7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9CYXNlWFBDU2VydmljZS54Y2NvbmZp
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9CYXNlWFBDU2Vy
dmljZS54Y2NvbmZpZwkocmV2aXNpb24gMTQyNzEwKQorKysgU291cmNlL1dlYktpdDIvQ29uZmln
dXJhdGlvbnMvQmFzZVhQQ1NlcnZpY2UueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcg
KzI0LDYgQEAKICNpbmNsdWRlICJCYXNlVGFyZ2V0LnhjY29uZmlnIgogCiBHQ0NfRU5BQkxFX09C
SkNfR0MgPSBOTzsKLVBST0RVQ1RfTkFNRSA9IGNvbS5hcHBsZS5XZWJLaXQuJChUQVJHRVRfTkFN
RTpyZmMxMDM0aWRlbnRpZmllcik7CiBJTlNUQUxMX1BBVEggPSAkKFdFQktJVDJfRlJBTUVXT1JL
U19ESVIpL1dlYktpdDIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvWFBDU2VydmljZXM7CiAKIEFQUF9J
Q09OID0gJChBUFBfSUNPTl8kKENPTkZJR1VSQVRJT04pKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL05ldHdvcmtQcm9jZXNzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL05ldHdvcmtQcm9jZXNzLnhjY29uZmlnCShyZXZp
c2lvbiAxNDI3MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9OZXR3b3JrUHJv
Y2Vzcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdo
dCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQg
KEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogLy8KIC8vIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMSwxNyArMjEsNyBAQAogLy8gKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CiAvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKIAotI2luY2x1ZGUgIkJhc2VUYXJnZXQueGNjb25maWciCisjaW5j
bHVkZSAiQmFzZUxlZ2FjeVByb2Nlc3MueGNjb25maWciCiAKLUdDQ19FTkFCTEVfT0JKQ19HQyA9
IE5POwogUFJPRFVDVF9OQU1FID0gTmV0d29ya1Byb2Nlc3M7CiBJTkZPUExJU1RfRklMRSA9IE5l
dHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdDsKLUlO
U1RBTExfUEFUSCA9ICQoV0VCS0lUMl9GUkFNRVdPUktTX0RJUikvV2ViS2l0Mi5mcmFtZXdvcms7
Ci0KLUFQUF9JQ09OID0gJChBUFBfSUNPTl8kKENPTkZJR1VSQVRJT04pKTsKLUFQUF9JQ09OX0Rl
YnVnID0gV2ViS2l0LmljbnM7Ci1BUFBfSUNPTl9SZWxlYXNlID0gV2ViS2l0LmljbnM7Ci1BUFBf
SUNPTl9Qcm9kdWN0aW9uID0gOwotCi1FWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FUyA9ICQoRVhD
TFVERURfU09VUkNFX0ZJTEVfTkFNRVNfJChDT05GSUdVUkFUSU9OKSk7Ci1FWENMVURFRF9TT1VS
Q0VfRklMRV9OQU1FU19Qcm9kdWN0aW9uID0gV2ViS2l0LmljbnM7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9Db25maWd1cmF0aW9ucy9PZmZsaW5lU3RvcmFnZVByb2Nlc3MueGNjb25maWcKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvT2ZmbGluZVN0b3JhZ2VQcm9j
ZXNzLnhjY29uZmlnCShyZXZpc2lvbiAxNDI3MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9PZmZsaW5lU3RvcmFnZVByb2Nlc3MueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAg
LTIxLDE3ICsyMSw3IEBACiAvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIC8vIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogCi0jaW5j
bHVkZSAiQmFzZVRhcmdldC54Y2NvbmZpZyIKKyNpbmNsdWRlICJCYXNlTGVnYWN5UHJvY2Vzcy54
Y2NvbmZpZyIKIAotR0NDX0VOQUJMRV9PQkpDX0dDID0gTk87CiBQUk9EVUNUX05BTUUgPSBPZmZs
aW5lU3RvcmFnZVByb2Nlc3M7CiBJTkZPUExJU1RfRklMRSA9IE9mZmxpbmVTdG9yYWdlUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3Q7Ci1JTlNUQUxMX1BBVEgg
PSAkKFdFQktJVDJfRlJBTUVXT1JLU19ESVIpL1dlYktpdDIuZnJhbWV3b3JrOwotCi1BUFBfSUNP
TiA9ICQoQVBQX0lDT05fJChDT05GSUdVUkFUSU9OKSk7Ci1BUFBfSUNPTl9EZWJ1ZyA9IFdlYktp
dC5pY25zOwotQVBQX0lDT05fUmVsZWFzZSA9IFdlYktpdC5pY25zOwotQVBQX0lDT05fUHJvZHVj
dGlvbiA9IDsKLQotRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVMgPSAkKEVYQ0xVREVEX1NPVVJD
RV9GSUxFX05BTUVTXyQoQ09ORklHVVJBVElPTikpOwotRVhDTFVERURfU09VUkNFX0ZJTEVfTkFN
RVNfUHJvZHVjdGlvbiA9IFdlYktpdC5pY25zOwpJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmln
dXJhdGlvbnMvUGx1Z2luUHJvY2Vzcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9Db25maWd1cmF0aW9ucy9QbHVnaW5Qcm9jZXNzLnhjY29uZmlnCShyZXZpc2lvbiAxNDI3
MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9QbHVnaW5Qcm9jZXNzLnhjY29u
ZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw5ICsyMSw3IEBACiAvLyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIC8v
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAogCi0jaW5jbHVkZSAiQmFzZVRhcmdldC54Y2NvbmZpZyIKKyNpbmNsdWRl
ICJCYXNlTGVnYWN5UHJvY2Vzcy54Y2NvbmZpZyIKIAotR0NDX0VOQUJMRV9PQkpDX0dDID0gTk87
CiBQUk9EVUNUX05BTUUgPSBQbHVnaW5Qcm9jZXNzOwogSU5GT1BMSVNUX0ZJTEUgPSBQbHVnaW5Q
cm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdDsKLUlOU1RBTExf
UEFUSCA9ICQoV0VCS0lUMl9GUkFNRVdPUktTX0RJUikvV2ViS2l0Mi5mcmFtZXdvcms7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9TaGFyZWRXb3JrZXJQcm9jZXNzLnhjY29u
ZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1NoYXJlZFdv
cmtlclByb2Nlc3MueGNjb25maWcJKHJldmlzaW9uIDE0MjcxMCkKKysrIFNvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL1NoYXJlZFdvcmtlclByb2Nlc3MueGNjb25maWcJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KIC8vCiAvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIC8vIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjEsOSArMjEsNyBAQAogLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKIAotI2luY2x1
ZGUgIkJhc2VUYXJnZXQueGNjb25maWciCisjaW5jbHVkZSAiQmFzZUxlZ2FjeVByb2Nlc3MueGNj
b25maWciCiAKLUdDQ19FTkFCTEVfT0JKQ19HQyA9IE5POwogUFJPRFVDVF9OQU1FID0gU2hhcmVk
V29ya2VyUHJvY2VzczsKIElORk9QTElTVF9GSUxFID0gU2hhcmVkV29ya2VyUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3Q7Ci1JTlNUQUxMX1BBVEggPSAkKFdF
QktJVDJfRlJBTUVXT1JLU19ESVIpL1dlYktpdDIuZnJhbWV3b3JrOwpJbmRleDogU291cmNlL1dl
YktpdDIvQ29uZmlndXJhdGlvbnMvV2ViQ29udGVudFByb2Nlc3MueGNjb25maWcKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvV2ViQ29udGVudFByb2Nlc3MueGNj
b25maWcJKHJldmlzaW9uIDE0MjcxMCkJKGZyb20gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlv
bnMvV2ViUHJvY2Vzcy54Y2NvbmZpZzoxNDI3MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9XZWJDb250ZW50UHJvY2Vzcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDM3IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisvLyBhcmUgbWV0OgorLy8g
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisv
LyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorLy8gRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy8vIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorLy8g
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
Ky8vIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorLy8gRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorLy8gUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisvLyBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisvLyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisKKyNpbmNsdWRl
ICJCYXNlVGFyZ2V0LnhjY29uZmlnIgorCitHQ0NfRU5BQkxFX09CSkNfR0MgPSBOTzsKK1BST0RV
Q1RfTkFNRSA9IFdlYlByb2Nlc3M7CitJTkZPUExJU1RfRklMRSA9IFdlYlByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9JbmZvLnBsaXN0OworSU5TVEFMTF9QQVRIID0gJChXRUJL
SVQyX0ZSQU1FV09SS1NfRElSKS9XZWJLaXQyLmZyYW1ld29yazsKKworQVBQX0lDT04gPSAkKEFQ
UF9JQ09OXyQoQ09ORklHVVJBVElPTikpOworQVBQX0lDT05fRGVidWcgPSBXZWJLaXQuaWNuczsK
K0FQUF9JQ09OX1JlbGVhc2UgPSBXZWJLaXQuaWNuczsKK0FQUF9JQ09OX1Byb2R1Y3Rpb24gPSA7
CisKK0VYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTID0gJChFWENMVURFRF9TT1VSQ0VfRklMRV9O
QU1FU18kKENPTkZJR1VSQVRJT04pKTsKK0VYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTX1Byb2R1
Y3Rpb24gPSBXZWJLaXQuaWNuczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25z
L1dlYkNvbnRlbnRQcm9jZXNzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL1dlYkNvbnRlbnRQcm9jZXNzLnhjY29uZmlnCShyZXZpc2lvbiAxNDI3
MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9XZWJDb250ZW50UHJvY2Vzcy54
Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIw
MTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogLy8KIC8vIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yMSwxNyArMjEsNyBAQAogLy8gKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAvLyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKIAotI2luY2x1ZGUgIkJhc2VUYXJnZXQueGNjb25maWciCisjaW5jbHVkZSAi
QmFzZUxlZ2FjeVByb2Nlc3MueGNjb25maWciCiAKLUdDQ19FTkFCTEVfT0JKQ19HQyA9IE5POwog
UFJPRFVDVF9OQU1FID0gV2ViUHJvY2VzczsKIElORk9QTElTVF9GSUxFID0gV2ViUHJvY2Vzcy9F
bnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3Q7Ci1JTlNUQUxMX1BBVEggPSAk
KFdFQktJVDJfRlJBTUVXT1JLU19ESVIpL1dlYktpdDIuZnJhbWV3b3JrOwotCi1BUFBfSUNPTiA9
ICQoQVBQX0lDT05fJChDT05GSUdVUkFUSU9OKSk7Ci1BUFBfSUNPTl9EZWJ1ZyA9IFdlYktpdC5p
Y25zOwotQVBQX0lDT05fUmVsZWFzZSA9IFdlYktpdC5pY25zOwotQVBQX0lDT05fUHJvZHVjdGlv
biA9IDsKLQotRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVMgPSAkKEVYQ0xVREVEX1NPVVJDRV9G
SUxFX05BTUVTXyQoQ09ORklHVVJBVElPTikpOwotRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNf
UHJvZHVjdGlvbiA9IFdlYktpdC5pY25zOwpJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvV2ViUHJvY2Vzcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9D
b25maWd1cmF0aW9ucy9XZWJQcm9jZXNzLnhjY29uZmlnCShyZXZpc2lvbiAxNDI3MTApCisrKyBT
b3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9XZWJQcm9jZXNzLnhjY29uZmlnCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDM3ICswLDAgQEAKLS8vIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLS8v
IGFyZSBtZXQ6Ci0vLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLS8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0vLyBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotLy8g
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0vLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0vLyBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0vLyBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLS8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLS8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLQotI2luY2x1ZGUgIkJhc2VUYXJnZXQueGNjb25maWciCi0KLUdDQ19FTkFCTEVfT0JKQ19H
QyA9IE5POwotUFJPRFVDVF9OQU1FID0gV2ViUHJvY2VzczsKLUlORk9QTElTVF9GSUxFID0gV2Vi
UHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3Q7Ci1JTlNUQUxM
X1BBVEggPSAkKFdFQktJVDJfRlJBTUVXT1JLU19ESVIpL1dlYktpdDIuZnJhbWV3b3JrOwotCi1B
UFBfSUNPTiA9ICQoQVBQX0lDT05fJChDT05GSUdVUkFUSU9OKSk7Ci1BUFBfSUNPTl9EZWJ1ZyA9
IFdlYktpdC5pY25zOwotQVBQX0lDT05fUmVsZWFzZSA9IFdlYktpdC5pY25zOwotQVBQX0lDT05f
UHJvZHVjdGlvbiA9IDsKLQotRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVMgPSAkKEVYQ0xVREVE
X1NPVVJDRV9GSUxFX05BTUVTXyQoQ09ORklHVVJBVElPTikpOwotRVhDTFVERURfU09VUkNFX0ZJ
TEVfTkFNRVNfUHJvZHVjdGlvbiA9IFdlYktpdC5pY25zOwpJbmRleDogU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9JbmZvLnBsaXN0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdAkocmV2aXNpb24gMTQyNzEwKQorKysgU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9JbmZvLnBs
aXN0CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw1ICsyOCw3IEBACiAJPHN0cmluZz5OU0FwcGxpY2F0
aW9uPC9zdHJpbmc+CiAJPGtleT5DRkJ1bmRsZUljb25GaWxlPC9rZXk+CiAJPHN0cmluZz4ke0FQ
UF9JQ09OfTwvc3RyaW5nPgorCTxrZXk+V2ViS2l0RW50cnlQb2ludDwva2V5PgorCTxzdHJpbmc+
TmV0d29ya1Byb2Nlc3NNYWluPC9zdHJpbmc+CiA8L2RpY3Q+CiA8L3BsaXN0PgpJbmRleDogU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzc01haW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc01haW4u
bW0JKHJldmlzaW9uIDE0MjcxMCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQog
Ci0jaW1wb3J0ICJDaGlsZFByb2Nlc3NNYWluLmgiCisjaW1wb3J0ICJDaGlsZFByb2Nlc3NFbnRy
eVBvaW50LmgiCiAjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzcy5oIgogI2ltcG9ydCAiV0tCYXNlLmgi
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xl
Z2FjeVByb2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAJKHJldmlzaW9uIDE0Mjcx
MCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2Fj
eVByb2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSwzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc01h
aW5Cb290c3RyYXBwZXIuaCIKLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewot
ICAgIFdlYktpdE1haW5GdW5jdGlvbiBtYWluRnVuY3Rpb24gPSBnZXRCb290c3RyYXBNYWluRnVu
Y3Rpb24oYXJnYywgYXJndiwgIk5ldHdvcmtQcm9jZXNzTWFpbiIpOwotICAgIHJldHVybiBtYWlu
RnVuY3Rpb24oYXJnYywgYXJndik7Ci19CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlLkRldmVsb3BtZW50
L05ldHdvcmtTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtT
ZXJ2aWNlLkRldmVsb3BtZW50L05ldHdvcmtTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbQkocmV2
aXNpb24gMTQyNzEwKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2lu
dC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZS5EZXZlbG9wbWVudC9OZXR3b3JrU2Vydmlj
ZU1haW4uRGV2ZWxvcG1lbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsMzQgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJYUENTZXJ2aWNlQm9vdHN0cmFwcGVyLkRldmVsb3BtZW50Lmgi
Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyKiog
YXJndikKLXsKLSAgICB4cGNfbWFpbihYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKTsKLSAgICByZXR1
cm4gMDsKLX0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvTmV0d29ya1NlcnZpY2VNYWluLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQ
Q1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvTmV0d29ya1NlcnZpY2VNYWluLm1tCShyZXZpc2lvbiAx
NDI3MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9Y
UENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlTWFpbi5tbQkod29ya2luZyBj
b3B5KQpAQCAtMSwzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIlhQQ1NlcnZpY2VC
b290c3RyYXBwZXIuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotaW50IG1haW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotICAgIHhwY19tYWluKFhQQ1NlcnZpY2VFdmVudEhhbmRs
ZXIpOwotICAgIHJldHVybiAwOwotfQpJbmRleDogU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3Jh
Z2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50cnlQb2ludC9t
YWMvTGVnYWN5UHJvY2Vzcy9JbmZvLnBsaXN0CShyZXZpc2lvbiAxNDI3MTApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vz
cy9JbmZvLnBsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw1ICsyOCw3IEBACiAJPHN0cmluZz5O
U0FwcGxpY2F0aW9uPC9zdHJpbmc+CiAJPGtleT5DRkJ1bmRsZUljb25GaWxlPC9rZXk+CiAJPHN0
cmluZz4ke0FQUF9JQ09OfTwvc3RyaW5nPgorCTxrZXk+V2ViS2l0RW50cnlQb2ludDwva2V5Pgor
CTxzdHJpbmc+T2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFpbjwvc3RyaW5nPgogPC9kaWN0PgogPC9w
bGlzdD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9MZWdhY3lQcm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzc01haW4ubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL0xlZ2FjeVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFpbi5tbQkocmV2aXNpb24g
MTQyNzEwKQorKysgU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL0xlZ2FjeVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFpbi5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAogCiAjaW1wb3J0ICJjb25maWcuaCIKIAotI2ltcG9y
dCAiQ2hpbGRQcm9jZXNzTWFpbi5oIgorI2ltcG9ydCAiQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5o
IgogI2ltcG9ydCAiT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmgiCiAjaW1wb3J0ICJXS0Jhc2UuaCIK
IApJbmRleDogU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL0xlZ2FjeVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFpbkJvb3Rz
dHJhcHBlci5jcHAJKHJldmlzaW9uIDE0MjcxMCkKKysrIFNvdXJjZS9XZWJLaXQyL09mZmxpbmVT
dG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL09mZmxpbmVTdG9yYWdl
UHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMyICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5o
IgotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCi17Ci0gICAgV2ViS2l0TWFpbkZ1
bmN0aW9uIG1haW5GdW5jdGlvbiA9IGdldEJvb3RzdHJhcE1haW5GdW5jdGlvbihhcmdjLCBhcmd2
LCAiT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFpbiIpOwotICAgIHJldHVybiBtYWluRnVuY3Rpb24o
YXJnYywgYXJndik7Ci19CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nl
c3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9PZmZsaW5lU3RvcmFnZVNlcnZpY2UuRGV2ZWxv
cG1lbnQvT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWMv
WFBDU2VydmljZS9PZmZsaW5lU3RvcmFnZVNlcnZpY2UuRGV2ZWxvcG1lbnQvT2ZmbGluZVN0b3Jh
Z2VTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbQkocmV2aXNpb24gMTQyNzEwKQorKysgU291cmNl
L1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2Uv
T2ZmbGluZVN0b3JhZ2VTZXJ2aWNlLkRldmVsb3BtZW50L09mZmxpbmVTdG9yYWdlU2VydmljZU1h
aW4uRGV2ZWxvcG1lbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsMzQgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJYUENTZXJ2aWNlQm9vdHN0cmFwcGVyLkRldmVsb3BtZW50LmgiCi0K
LXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJn
dikKLXsKLSAgICB4cGNfbWFpbihYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKTsKLSAgICByZXR1cm4g
MDsKLX0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9YUENTZXJ2aWNlL09mZmxpbmVTdG9yYWdlU2VydmljZS9PZmZsaW5lU3RvcmFnZVNl
cnZpY2VNYWluLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdl
UHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL09mZmxpbmVTdG9yYWdlU2VydmljZS9P
ZmZsaW5lU3RvcmFnZVNlcnZpY2VNYWluLm1tCShyZXZpc2lvbiAxNDI3MTApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9P
ZmZsaW5lU3RvcmFnZVNlcnZpY2UvT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlTWFpbi5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIlhQQ1NlcnZp
Y2VCb290c3RyYXBwZXIuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotICAgIHhwY19tYWluKFhQQ1NlcnZpY2VFdmVudEhh
bmRsZXIpOwotICAgIHJldHVybiAwOwotfQpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3QKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9j
ZXNzL0luZm8ucGxpc3QJKHJldmlzaW9uIDE0MjcxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9JbmZvLnBsaXN0CSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw1ICsyNiw3IEBACiAJPHRydWUvPgogCTxrZXk+TlNQcmluY2lwYWxDbGFz
czwva2V5PgogCTxzdHJpbmc+TlNBcHBsaWNhdGlvbjwvc3RyaW5nPgorCTxrZXk+V2ViS2l0RW50
cnlQb2ludDwva2V5PgorCTxzdHJpbmc+UGx1Z2luUHJvY2Vzc01haW48L3N0cmluZz4KIDwvZGlj
dD4KIDwvcGxpc3Q+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4ubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNz
L1BsdWdpblByb2Nlc3NNYWluLm1tCShyZXZpc2lvbiAxNDI3MTApCisrKyBTb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vz
c01haW4ubW0JKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShQ
TFVHSU5fUFJPQ0VTUykKIAotI2ltcG9ydCAiQ2hpbGRQcm9jZXNzTWFpbi5oIgorI2ltcG9ydCAi
Q2hpbGRQcm9jZXNzRW50cnlQb2ludC5oIgogI2ltcG9ydCAiRW52aXJvbm1lbnRVdGlsaXRpZXMu
aCIKICNpbXBvcnQgIk5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCiAjaW1wb3J0ICJQbHVnaW5Qcm9j
ZXNzLmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5
UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAJKHJldmlzaW9uIDE0Mjcx
MCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5
UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsMzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJDaGlsZFByb2Nlc3NNYWlu
Qm9vdHN0cmFwcGVyLmgiCi0KLWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKLXsKLSAg
ICBXZWJLaXRNYWluRnVuY3Rpb24gbWFpbkZ1bmN0aW9uID0gZ2V0Qm9vdHN0cmFwTWFpbkZ1bmN0
aW9uKGFyZ2MsIGFyZ3YsICJQbHVnaW5Qcm9jZXNzTWFpbiIpOwotICAgIHJldHVybiBtYWluRnVu
Y3Rpb24oYXJnYywgYXJndik7Ci19CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS42NC9QbHVnaW5TZXJ2aWNl
LjY0Lk1haW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9F
bnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2UuNjQvUGx1Z2luU2VydmljZS42
NC5NYWluLm1tCShyZXZpc2lvbiAxNDI3MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS42NC9QbHVnaW5TZXJ2
aWNlLjY0Lk1haW4ubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsMzQgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJYUENTZXJ2aWNlQm9vdHN0cmFwcGVyLmgiCi0KLXVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKLXsKLSAgICB4cGNf
bWFpbihYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKTsKLSAgICByZXR1cm4gMDsKLX0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVn
aW5TZXJ2aWNlLkRldmVsb3BtZW50L1BsdWdpblNlcnZpY2UuRGV2ZWxvcG1lbnQuTWFpbi5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS5EZXZlbG9wbWVudC9QbHVnaW5TZXJ2aWNlLkRldmVs
b3BtZW50Lk1haW4ubW0JKHJldmlzaW9uIDE0MjcxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlLkRldmVsb3Bt
ZW50L1BsdWdpblNlcnZpY2UuRGV2ZWxvcG1lbnQuTWFpbi5tbQkod29ya2luZyBjb3B5KQpAQCAt
MSwzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIlhQQ1NlcnZpY2VCb290c3RyYXBw
ZXIuRGV2ZWxvcG1lbnQuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotICAgIHhwY19tYWluKFhQQ1NlcnZpY2VFdmVudEhh
bmRsZXIpOwotICAgIHJldHVybiAwOwotfQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0Vu
dHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2lu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0
aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQuaAkocmV2aXNpb24g
MTQyNzEwKQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9t
YWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NNYWluLmg6MTQyNzEwKQorKysgU291cmNlL1dl
YktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQ
cm9jZXNzRW50cnlQb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBDaGlsZFByb2Nlc3NNYWluX2gKKyNkZWZpbmUgQ2hpbGRQcm9jZXNz
TWFpbl9oCisKKyNpbXBvcnQgIkNoaWxkUHJvY2Vzcy5oIgorI2ltcG9ydCAiQ29tbWFuZExpbmUu
aCIKKyNpbXBvcnQgIldlYktpdDJJbml0aWFsaXplLmgiCisjaW1wb3J0IDxXZWJDb3JlL1J1bkxv
b3AuaD4KKyNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8c3lzZXhp
dHMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENoaWxkUHJvY2Vzc01haW5EZWxl
Z2F0ZSB7CitwdWJsaWM6CisgICAgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlKGNvbnN0IENvbW1h
bmRMaW5lJiBjb21tYW5kTGluZSkKKyAgICAgICAgOiBtX2NvbW1hbmRMaW5lKGNvbW1hbmRMaW5l
KQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5DaGlsZFByb2Nlc3NNYWluRGVsZWdhdGUo
KTsKKworICAgIHZpcnR1YWwgdm9pZCBpbnN0YWxsU2lnbmFsSGFuZGxlcnMoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZG9QcmVJbml0aWFsaXphdGlvbldvcmsoKTsKKworICAgIHZpcnR1YWwgYm9vbCBn
ZXRDb25uZWN0aW9uSWRlbnRpZmllcihDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyJiBp
ZGVudGlmaWVyKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50SWRlbnRpZmllcihTdHJpbmcm
IGNsaWVudElkZW50aWZpZXIpOworICAgIHZpcnR1YWwgYm9vbCBnZXRDbGllbnRQcm9jZXNzTmFt
ZShTdHJpbmcmIGNsaWVudFByb2Nlc3NOYW1lKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0RXh0cmFJ
bml0aWFsaXphdGlvbkRhdGEoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGV4dHJhSW5pdGlhbGl6
YXRpb25EYXRhKTsKKworICAgIHZpcnR1YWwgdm9pZCBkb1Bvc3RSdW5Xb3JrKCk7CisKK3Byb3Rl
Y3RlZDoKKyAgICBjb25zdCBDb21tYW5kTGluZSYgbV9jb21tYW5kTGluZTsKK307CisKK3RlbXBs
YXRlPHR5cGVuYW1lIENoaWxkUHJvY2Vzc1R5cGUsIHR5cGVuYW1lIENoaWxkUHJvY2Vzc01haW5E
ZWxlZ2F0ZVR5cGU+CitpbnQgQ2hpbGRQcm9jZXNzTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3Yp
Cit7CisgICAgQ29tbWFuZExpbmUgY29tbWFuZExpbmU7CisgICAgaWYgKCFjb21tYW5kTGluZS5w
YXJzZShhcmdjLCBhcmd2KSkKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKworICAgIENo
aWxkUHJvY2Vzc01haW5EZWxlZ2F0ZVR5cGUgZGVsZWdhdGUoY29tbWFuZExpbmUpOworCisgICAg
QGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgIGRlbGVnYXRlLmluc3RhbGxTaWduYWxIYW5kbGVy
cygpOworICAgICAgICBkZWxlZ2F0ZS5kb1ByZUluaXRpYWxpemF0aW9uV29yaygpOworCisgICAg
ICAgIEluaXRpYWxpemVXZWJLaXQyKCk7CisKKyAgICAgICAgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgICAgIGlmICghZGVsZWdhdGUuZ2V0Q29u
bmVjdGlvbklkZW50aWZpZXIocGFyYW1ldGVycy5jb25uZWN0aW9uSWRlbnRpZmllcikpCisgICAg
ICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworCisgICAgICAgIGlmICghZGVsZWdhdGUuZ2V0
Q2xpZW50SWRlbnRpZmllcihwYXJhbWV0ZXJzLmNsaWVudElkZW50aWZpZXIpKQorICAgICAgICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKworICAgICAgICBpZiAoIWRlbGVnYXRlLmdldENsaWVu
dFByb2Nlc3NOYW1lKHBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZSkpCisgICAgICAgICAgICByZXR1
cm4gRVhJVF9GQUlMVVJFOworCisgICAgICAgIGlmICghZGVsZWdhdGUuZ2V0RXh0cmFJbml0aWFs
aXphdGlvbkRhdGEocGFyYW1ldGVycy5leHRyYUluaXRpYWxpemF0aW9uRGF0YSkpCisgICAgICAg
ICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBiZSBtb3ZlZCB0byBDaGlsZFByb2Nlc3NNYWMgaWYgaXQgaXMgc3RpbGwgbmVjZXNzYXJ5Lgor
ICAgICAgICBTdHJpbmcgbG9jYWxpemF0aW9uID0gY29tbWFuZExpbmVbImxvY2FsaXphdGlvbiJd
OworICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNmTG9jYWxpemF0aW9uKEFkb3B0Q0Ys
IENGU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBV
bmlDaGFyKj4obG9jYWxpemF0aW9uLmNoYXJhY3RlcnMoKSksIGxvY2FsaXphdGlvbi5sZW5ndGgo
KSkpOworICAgICAgICBpZiAoY2ZMb2NhbGl6YXRpb24pCisgICAgICAgICAgICBXS1NldERlZmF1
bHRMb2NhbGl6YXRpb24oY2ZMb2NhbGl6YXRpb24uZ2V0KCkpOworCisgICAgICAgIENoaWxkUHJv
Y2Vzc1R5cGU6OnNoYXJlZCgpLmluaXRpYWxpemUocGFyYW1ldGVycyk7CisgICAgfQorCisgICAg
V2ViQ29yZTo6UnVuTG9vcDo6cnVuKCk7CisKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAg
ICAgZGVsZWdhdGUuZG9Qb3N0UnVuV29yaygpOworICAgIH0KKworICAgIHJldHVybiAwOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIENoaWxkUHJvY2Vzc01haW5faApJ
bmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2Fj
eVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxk
UHJvY2Vzc0VudHJ5UG9pbnQuaAkocmV2aXNpb24gMTQyNzEwKQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNz
RW50cnlQb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw4IEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBDaGlsZFByb2Nlc3NNYWlu
X2gKLSNkZWZpbmUgQ2hpbGRQcm9jZXNzTWFpbl9oCisjaWZuZGVmIENoaWxkUHJvY2Vzc0VudHJ5
UG9pbnRfaAorI2RlZmluZSBDaGlsZFByb2Nlc3NFbnRyeVBvaW50X2gKIAogI2ltcG9ydCAiQ2hp
bGRQcm9jZXNzLmgiCiAjaW1wb3J0ICJDb21tYW5kTGluZS5oIgpAQCAtMTA2LDQgKzEwNiw0IEBA
IGludCBDaGlsZFByb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiogYXIKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBDaGlsZFByb2Nlc3NNYWluX2gKKyNlbmRpZiAvLyBDaGls
ZFByb2Nlc3NFbnRyeVBvaW50X2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
bWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5tbQkocmV2aXNpb24gMTQy
NzEwKQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMv
TGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NNYWluLm1tOjE0MjcxMCkKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJv
Y2Vzc0VudHJ5UG9pbnQubW0JKHdvcmtpbmcgY29weSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0Vu
dHJ5UG9pbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9p
bnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5tbQko
cmV2aXNpb24gMTQyNzEwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGls
aXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjMsOCArMjMsOCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDaGlsZFByb2Nlc3NN
YWluLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkNoaWxkUHJvY2Vzc0VudHJ5UG9p
bnQuaCIKIAogI2ltcG9ydCA8bWFjaC9tYWNoX2Vycm9yLmg+CiAjaW1wb3J0IDxzZXJ2ZXJzL2Jv
b3RzdHJhcC5oPgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRp
ZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzTWFpbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNz
L0NoaWxkUHJvY2Vzc01haW4uaAkocmV2aXNpb24gMTQyNzEwKQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNz
TWFpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBDaGlsZFByb2Nlc3NNYWluX2gKLSNkZWZpbmUgQ2hpbGRQcm9jZXNzTWFpbl9oCi0KLSNp
bXBvcnQgIkNoaWxkUHJvY2Vzcy5oIgotI2ltcG9ydCAiQ29tbWFuZExpbmUuaCIKLSNpbXBvcnQg
IldlYktpdDJJbml0aWFsaXplLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KLSNpbXBv
cnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgotI2ltcG9ydCA8c3lzZXhpdHMuaD4KLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZSB7Ci1wdWJs
aWM6Ci0gICAgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlKGNvbnN0IENvbW1hbmRMaW5lJiBjb21t
YW5kTGluZSkKLSAgICAgICAgOiBtX2NvbW1hbmRMaW5lKGNvbW1hbmRMaW5lKQotICAgIHsKLSAg
ICB9Ci0KLSAgICB2aXJ0dWFsIH5DaGlsZFByb2Nlc3NNYWluRGVsZWdhdGUoKTsKLQotICAgIHZp
cnR1YWwgdm9pZCBpbnN0YWxsU2lnbmFsSGFuZGxlcnMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZG9Q
cmVJbml0aWFsaXphdGlvbldvcmsoKTsKLQotICAgIHZpcnR1YWwgYm9vbCBnZXRDb25uZWN0aW9u
SWRlbnRpZmllcihDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyJiBpZGVudGlmaWVyKTsK
LSAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50SWRlbnRpZmllcihTdHJpbmcmIGNsaWVudElkZW50
aWZpZXIpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRDbGllbnRQcm9jZXNzTmFtZShTdHJpbmcmIGNs
aWVudFByb2Nlc3NOYW1lKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0RXh0cmFJbml0aWFsaXphdGlv
bkRhdGEoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhKTsK
LQotICAgIHZpcnR1YWwgdm9pZCBkb1Bvc3RSdW5Xb3JrKCk7Ci0KLXByb3RlY3RlZDoKLSAgICBj
b25zdCBDb21tYW5kTGluZSYgbV9jb21tYW5kTGluZTsKLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1l
IENoaWxkUHJvY2Vzc1R5cGUsIHR5cGVuYW1lIENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZVR5cGU+
Ci1pbnQgQ2hpbGRQcm9jZXNzTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCi17Ci0gICAgQ29t
bWFuZExpbmUgY29tbWFuZExpbmU7Ci0gICAgaWYgKCFjb21tYW5kTGluZS5wYXJzZShhcmdjLCBh
cmd2KSkKLSAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLQotICAgIENoaWxkUHJvY2Vzc01h
aW5EZWxlZ2F0ZVR5cGUgZGVsZWdhdGUoY29tbWFuZExpbmUpOwotCi0gICAgQGF1dG9yZWxlYXNl
cG9vbCB7Ci0gICAgICAgIGRlbGVnYXRlLmluc3RhbGxTaWduYWxIYW5kbGVycygpOwotICAgICAg
ICBkZWxlZ2F0ZS5kb1ByZUluaXRpYWxpemF0aW9uV29yaygpOwotCi0gICAgICAgIEluaXRpYWxp
emVXZWJLaXQyKCk7Ci0KLSAgICAgICAgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzIHBhcmFtZXRlcnM7Ci0gICAgICAgIGlmICghZGVsZWdhdGUuZ2V0Q29ubmVjdGlvbklkZW50
aWZpZXIocGFyYW1ldGVycy5jb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgICAgICByZXR1
cm4gRVhJVF9GQUlMVVJFOwotCi0gICAgICAgIGlmICghZGVsZWdhdGUuZ2V0Q2xpZW50SWRlbnRp
ZmllcihwYXJhbWV0ZXJzLmNsaWVudElkZW50aWZpZXIpKQotICAgICAgICAgICAgcmV0dXJuIEVY
SVRfRkFJTFVSRTsKLQotICAgICAgICBpZiAoIWRlbGVnYXRlLmdldENsaWVudFByb2Nlc3NOYW1l
KHBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZSkpCi0gICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlM
VVJFOwotCi0gICAgICAgIGlmICghZGVsZWdhdGUuZ2V0RXh0cmFJbml0aWFsaXphdGlvbkRhdGEo
cGFyYW1ldGVycy5leHRyYUluaXRpYWxpemF0aW9uRGF0YSkpCi0gICAgICAgICAgICByZXR1cm4g
RVhJVF9GQUlMVVJFOwotCi0gICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBtb3ZlZCB0
byBDaGlsZFByb2Nlc3NNYWMgaWYgaXQgaXMgc3RpbGwgbmVjZXNzYXJ5LgotICAgICAgICBTdHJp
bmcgbG9jYWxpemF0aW9uID0gY29tbWFuZExpbmVbImxvY2FsaXphdGlvbiJdOwotICAgICAgICBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNmTG9jYWxpemF0aW9uKEFkb3B0Q0YsIENGU3RyaW5nQ3Jl
YXRlV2l0aENoYXJhY3RlcnMoMCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBVbmlDaGFyKj4obG9j
YWxpemF0aW9uLmNoYXJhY3RlcnMoKSksIGxvY2FsaXphdGlvbi5sZW5ndGgoKSkpOwotICAgICAg
ICBpZiAoY2ZMb2NhbGl6YXRpb24pCi0gICAgICAgICAgICBXS1NldERlZmF1bHRMb2NhbGl6YXRp
b24oY2ZMb2NhbGl6YXRpb24uZ2V0KCkpOwotCi0gICAgICAgIENoaWxkUHJvY2Vzc1R5cGU6OnNo
YXJlZCgpLmluaXRpYWxpemUocGFyYW1ldGVycyk7Ci0gICAgfQotCi0gICAgV2ViQ29yZTo6UnVu
TG9vcDo6cnVuKCk7Ci0KLSAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAgICAgICAgZGVsZWdhdGUu
ZG9Qb3N0UnVuV29yaygpOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIENoaWxkUHJvY2Vzc01haW5faApJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hp
bGRQcm9jZXNzTWFpbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NNYWluLm1tCShy
ZXZpc2lvbiAxNDI3MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxp
dGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NNYWluLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw3OCArMjMsNTkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWFpbi5o
IgotCi0jaW1wb3J0IDxtYWNoL21hY2hfZXJyb3IuaD4KLSNpbXBvcnQgPHNlcnZlcnMvYm9vdHN0
cmFwLmg+CisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPGRsZmNu
Lmg+CiAjaW1wb3J0IDxzdGRpby5oPgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotI2ltcG9y
dCA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi0jZGVmaW5lIFNIT1dfQ1JBU0hfUkVQT1JURVIgMQor
I2ltcG9ydCA8c3RkbGliLmg+CisjaW1wb3J0IDxzeXMvZXZlbnQuaD4KKyNpbXBvcnQgPHVuaXN0
ZC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjp+
Q2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlKCkKK3N0YXRpYyB2b2lkIGNsb3NlVW51c2VkRmlsZURl
c2NyaXB0b3JzKCkKIHsKLX0KKyAgICBpbnQgbnVtRkRzID0gZ2V0ZHRhYmxlc2l6ZSgpOwogCi12
b2lkIENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZTo6aW5zdGFsbFNpZ25hbEhhbmRsZXJzKCkKLXsK
LSNpZiAhU0hPV19DUkFTSF9SRVBPUlRFUgotICAgIC8vIEluc3RhbGxzIHNpZ25hbCBoYW5kbGVy
cyB0aGF0IGV4aXQgb24gYSBjcmFzaCBzbyB0aGF0IENyYXNoUmVwb3J0ZXIgZG9lcyBub3Qgc2hv
dyB1cC4KLSAgICBzaWduYWwoU0lHSUxMLCBfZXhpdCk7Ci0gICAgc2lnbmFsKFNJR0ZQRSwgX2V4
aXQpOwotICAgIHNpZ25hbChTSUdCVVMsIF9leGl0KTsKLSAgICBzaWduYWwoU0lHU0VHViwgX2V4
aXQpOwotI2VuZGlmCi19CisgICAgLy8gQ2xvc2UgYWxsIGZpbGUgZGVzY3JpcHRvcnMgZXhjZXB0
IHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyci4KKyAgICBmb3IgKGludCBmZCA9IDM7IGZkIDwgbnVt
RkRzOyArK2ZkKSB7CisgICAgICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgYSBrcXVldWUgZmlsZSBk
ZXNjcmlwdG9yLiBJZiBpdCBpcywgd2UgZG9uJ3Qgd2FudCB0byBjbG9zZSBpdCBiZWNhdXNlIGl0
IGhhcworICAgICAgICAvLyBiZWVuIGNyZWF0ZWQgYnkgaW5pdGlhbGl6aW5nIGxpYmRpc3BhdGNo
IGZyb20gYSBnbG9iYWwgaW5pdGlhbGl6ZXIuIFNlZSA8cmRhcjovL3Byb2JsZW0vOTgyODQ3Nj4g
Zm9yIG1vcmUgZGV0YWlscy4KKyAgICAgICAgc3RydWN0IHRpbWVzcGVjIHRpbWVTcGVjID0geyAw
LCAwIH07CisgICAgICAgIGlmICgha2V2ZW50KGZkLCAwLCAwLCAwLCAwLCAmdGltZVNwZWMpKQor
ICAgICAgICAgICAgY29udGludWU7CiAKLXZvaWQgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjpk
b1ByZUluaXRpYWxpemF0aW9uV29yaygpCi17CisgICAgICAgIGNsb3NlKGZkKTsKKyAgICB9CiB9
CiAKLWJvb2wgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjpnZXRDb25uZWN0aW9uSWRlbnRpZmll
cihDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyJiBpZGVudGlmaWVyKQordHlwZWRlZiBp
bnQgKCpCb290c3RyYXBNYWluRnVuY3Rpb24pKGludCBhcmdjLCBjaGFyKiogYXJndik7CisKK3N0
YXRpYyBpbnQgQm9vdHN0cmFwTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiB7Ci0gICAgU3Ry
aW5nIHNlcnZpY2VOYW1lID0gbV9jb21tYW5kTGluZVsic2VydmljZW5hbWUiXTsKLSAgICBpZiAo
c2VydmljZU5hbWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAg
bWFjaF9wb3J0X3Qgc2VydmVyUG9ydDsKLSAgICBrZXJuX3JldHVybl90IGtyID0gYm9vdHN0cmFw
X2xvb2tfdXAoYm9vdHN0cmFwX3BvcnQsIHNlcnZpY2VOYW1lLnV0ZjgoKS5kYXRhKCksICZzZXJ2
ZXJQb3J0KTsKLSAgICBpZiAoa3IpIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJib290c3RyYXBf
bG9va191cCByZXN1bHQ6ICVzICgleClcbiIsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwga3IpOwot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQorICAgIGNsb3NlVW51c2VkRmlsZURlc2NyaXB0
b3JzKCk7CiAKLSAgICBpZGVudGlmaWVyID0gc2VydmVyUG9ydDsKLSAgICByZXR1cm4gdHJ1ZTsK
LX0KKyAgICBpZiAoYXJnYyA8IDIpCisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAKLWJv
b2wgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjpnZXRDbGllbnRJZGVudGlmaWVyKFN0cmluZyYg
Y2xpZW50SWRlbnRpZmllcikKLXsKLSAgICBjbGllbnRJZGVudGlmaWVyID0gbV9jb21tYW5kTGlu
ZVsiY2xpZW50LWlkZW50aWZpZXIiXTsKLSAgICBpZiAoY2xpZW50SWRlbnRpZmllci5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KKyAgICBzdGF0
aWMgdm9pZCogZnJhbWV3b3JrTGlicmFyeSA9IGRsb3Blbihhcmd2WzFdLCBSVExEX05PVyk7Cisg
ICAgaWYgKCFmcmFtZXdvcmtMaWJyYXJ5KSB7CisgICAgICAgIE5TTG9nKEAiVW5hYmxlIHRvIGxv
YWQgV2ViS2l0Mi5mcmFtZXdvcms6ICVzXG4iLCBkbGVycm9yKCkpOworICAgICAgICByZXR1cm4g
RVhJVF9GQUlMVVJFOworICAgIH0KIAotYm9vbCBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU6Omdl
dENsaWVudFByb2Nlc3NOYW1lKFN0cmluZyYgY2xpZW50UHJvY2Vzc05hbWUpCi17Ci0gICAgY2xp
ZW50UHJvY2Vzc05hbWUgPSBtX2NvbW1hbmRMaW5lWyJ1aS1wcm9jZXNzLW5hbWUiXTsKLSAgICBp
ZiAoY2xpZW50UHJvY2Vzc05hbWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgcmV0dXJuIHRydWU7Ci19CisgICAgTlNTdHJpbmcgKmVudHJ5UG9pbnRGdW5jdGlvbk5hbWUg
PSAoTlNTdHJpbmcgKilDRkJ1bmRsZUdldFZhbHVlRm9ySW5mb0RpY3Rpb25hcnlLZXkoQ0ZCdW5k
bGVHZXRNYWluQnVuZGxlKCksIENGU1RSKCJXZWJLaXRFbnRyeVBvaW50IikpOworICAgIEJvb3Rz
dHJhcE1haW5GdW5jdGlvbiBib290c3RyYXBNYWluRnVuY3Rpb24gPSByZWludGVycHJldF9jYXN0
PEJvb3RzdHJhcE1haW5GdW5jdGlvbj4oZGxzeW0oZnJhbWV3b3JrTGlicmFyeSwgW2VudHJ5UG9p
bnRGdW5jdGlvbk5hbWUgVVRGOFN0cmluZ10pKTsKKyAgICBpZiAoIWJvb3RzdHJhcE1haW5GdW5j
dGlvbikgeworICAgICAgICBOU0xvZyhAIlVuYWJsZSB0byBmaW5kIGVudHJ5IHBvaW50ICclcycg
aW4gV2ViS2l0Mi5mcmFtZXdvcms6ICVzXG4iLCBbZW50cnlQb2ludEZ1bmN0aW9uTmFtZSBVVEY4
U3RyaW5nXSwgZGxlcnJvcigpKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9
CiAKLWJvb2wgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjpnZXRFeHRyYUluaXRpYWxpemF0aW9u
RGF0YShIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYpCi17Ci0gICAgcmV0dXJuIHRydWU7CisgICAg
cmV0dXJuIGJvb3RzdHJhcE1haW5GdW5jdGlvbihhcmdjLCBhcmd2KTsKIH0KIAotdm9pZCBDaGls
ZFByb2Nlc3NNYWluRGVsZWdhdGU6OmRvUG9zdFJ1bldvcmsoKQorfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKKyAgICByZXR1cm4gV2Vi
S2l0OjpCb290c3RyYXBNYWluKGFyZ2MsIGFyZ3YpOwogfQotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9M
ZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJv
Y2Vzcy9DaGlsZFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmgJKHJldmlzaW9uIDE0MjcxMCkKKysr
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9j
ZXNzL0NoaWxkUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw3
NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDaGlsZFByb2Nlc3NNYWluQm9vdHN0cmFw
cGVyX2gKLSNkZWZpbmUgQ2hpbGRQcm9jZXNzTWFpbkJvb3RzdHJhcHBlcl9oCi0KLSNpbmNsdWRl
IDxkbGZjbi5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5j
bHVkZSA8c3lzL2V2ZW50Lmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0KLXN0YXRpYyB2b2lkIGNs
b3NlVW51c2VkRmlsZURlc2NyaXB0b3JzKCkKLXsKLSAgICBpbnQgbnVtRkRzID0gZ2V0ZHRhYmxl
c2l6ZSgpOwotCi0gICAgLy8gQ2xvc2UgYWxsIGZpbGUgZGVzY3JpcHRvcnMgZXhjZXB0IHN0ZGlu
LCBzdGRvdXQgYW5kIHN0ZGVyci4KLSAgICBmb3IgKGludCBmZCA9IDM7IGZkIDwgbnVtRkRzOyAr
K2ZkKSB7Ci0gICAgICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgYSBrcXVldWUgZmlsZSBkZXNjcmlw
dG9yLiBJZiBpdCBpcywgd2UgZG9uJ3Qgd2FudCB0byBjbG9zZSBpdCBiZWNhdXNlIGl0IGhhcwot
ICAgICAgICAvLyBiZWVuIGNyZWF0ZWQgYnkgaW5pdGlhbGl6aW5nIGxpYmRpc3BhdGNoIGZyb20g
YSBnbG9iYWwgaW5pdGlhbGl6ZXIuIFNlZSA8cmRhcjovL3Byb2JsZW0vOTgyODQ3Nj4gZm9yIG1v
cmUgZGV0YWlscy4KLSAgICAgICAgc3RydWN0IHRpbWVzcGVjIHRpbWVTcGVjID0geyAwLCAwIH07
Ci0gICAgICAgIGlmICgha2V2ZW50KGZkLCAwLCAwLCAwLCAwLCAmdGltZVNwZWMpKQotICAgICAg
ICAgICAgY29udGludWU7Ci0KLSAgICAgICAgY2xvc2UoZmQpOwotICAgIH0KLX0KLQotdHlwZWRl
ZiBpbnQgKCpXZWJLaXRNYWluRnVuY3Rpb24pKGludCBhcmdjLCBjaGFyKiogYXJndik7Ci0KLXN0
YXRpYyBXZWJLaXRNYWluRnVuY3Rpb24gZ2V0Qm9vdHN0cmFwTWFpbkZ1bmN0aW9uKGludCBhcmdj
LCBjaGFyKiogYXJndiwgY29uc3QgY2hhciogcHJvY2Vzc01haW5OYW1lKQotewotICAgIGNsb3Nl
VW51c2VkRmlsZURlc2NyaXB0b3JzKCk7Ci0KLSAgICBpZiAoYXJnYyA8IDIpCi0gICAgICAgIGV4
aXQoRVhJVF9GQUlMVVJFKTsKLQotICAgIHN0YXRpYyB2b2lkKiBmcmFtZXdvcmtMaWJyYXJ5ID0g
ZGxvcGVuKGFyZ3ZbMV0sIFJUTERfTk9XKTsKLSAgICBpZiAoIWZyYW1ld29ya0xpYnJhcnkpIHsK
LSAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gbG9hZCBXZWJLaXQyLmZyYW1ld29y
azogJXNcbiIsIGRsZXJyb3IoKSk7Ci0gICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKLSAgICB9
Ci0KLSAgICBXZWJLaXRNYWluRnVuY3Rpb24gd2ViS2l0TWFpbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViS2l0TWFpbkZ1bmN0aW9uPihkbHN5bShmcmFtZXdvcmtMaWJyYXJ5LCBwcm9jZXNzTWFpbk5h
bWUpKTsKLSAgICBpZiAoIXdlYktpdE1haW4pIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJV
bmFibGUgdG8gZmluZCBlbnRyeSBwb2ludCAnJXMnIGluIFdlYktpdDIuZnJhbWV3b3JrOiAlc1xu
IiwgcHJvY2Vzc01haW5OYW1lLCBkbGVycm9yKCkpOwotICAgICAgICBleGl0KEVYSVRfRkFJTFVS
RSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHdlYktpdE1haW47Ci19Ci0KLSNlbmRpZiAvLyBDaGls
ZFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VCb290c3RyYXBwZXIu
RGV2ZWxvcG1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlQm9vdHN0cmFwcGVyLkRldmVs
b3BtZW50LmgJKHJldmlzaW9uIDE0MjcxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VCb290c3RyYXBwZXIuRGV2
ZWxvcG1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMSwxMzggKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgWFBDU2VydmljZUJvb3RzdHJhcHBlcl9EZXZlbG9wbWVudF9oCi0jZGVmaW5lIFhQ
Q1NlcnZpY2VCb290c3RyYXBwZXJfRGV2ZWxvcG1lbnRfaAotCi0jaW1wb3J0IDxjcnRfZXh0ZXJu
cy5oPgotI2ltcG9ydCA8ZGxmY24uaD4KLSNpbXBvcnQgPG1hY2gtby9keWxkLmg+Ci0jaW1wb3J0
IDxzcGF3bi5oPiAKLSNpbXBvcnQgPHN0ZGlvLmg+Ci0jaW1wb3J0IDxzdGRsaWIuaD4KLSNpbXBv
cnQgPHhwYy94cGMuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0YXRpYyB2b2lkIFhQQ1Nl
cnZpY2VFdmVudEhhbmRsZXIoeHBjX2Nvbm5lY3Rpb25fdCBwZWVyKQotewotICAgIHhwY19jb25u
ZWN0aW9uX3NldF90YXJnZXRfcXVldWUocGVlciwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7
Ci0gICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIocGVlciwgXih4cGNfb2JqZWN0
X3QgZXZlbnQpIHsKLSAgICAgICAgeHBjX3R5cGVfdCB0eXBlID0geHBjX2dldF90eXBlKGV2ZW50
KTsKLSAgICAgICAgaWYgKHR5cGUgPT0gWFBDX1RZUEVfRVJST1IpIHsKLSAgICAgICAgICAgIGlm
IChldmVudCA9PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlZBTElEIHx8IGV2ZW50ID09IFhQQ19F
UlJPUl9URVJNSU5BVElPTl9JTU1JTkVOVCkgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBI
YW5kbGUgdGhpcyBjYXNlIG1vcmUgZ3JhY2VmdWxseS4KLSAgICAgICAgICAgICAgICBleGl0KEVY
SVRfRkFJTFVSRSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBhc3NlcnQodHlwZSA9PSBYUENfVFlQRV9ESUNUSU9OQVJZKTsKLQotICAgICAgICAgICAgaWYg
KCFzdHJjbXAoeHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhldmVudCwgIm1lc3NhZ2UtbmFtZSIp
LCAicmUtZXhlYyIpKSB7Ci0gICAgICAgICAgICAgICAgcG9zaXhfc3Bhd25hdHRyX3QgYXR0cjsK
LSAgICAgICAgICAgICAgICBwb3NpeF9zcGF3bmF0dHJfaW5pdCgmYXR0cik7Ci0KLSAgICAgICAg
ICAgICAgICBzaG9ydCBmbGFncyA9IDA7Ci0KLSAgICAgICAgICAgICAgICAvLyBXZSBqdXN0IHdh
bnQgdG8gc2V0IHRoZSBwcm9jZXNzIHN0YXRlLCBub3QgYWN0dWFsbHkgbGF1bmNoIGEgbmV3IHBy
b2Nlc3MsCi0gICAgICAgICAgICAgICAgLy8gc28gd2UgYXJlIGdvaW5nIHRvIHVzZSB0aGUgZGFy
d2luIGV4dGVuc2lvbiB0byBwb3NpeF9zcGF3biBQT1NJWF9TUEFXTl9TRVRFWEVDCi0gICAgICAg
ICAgICAgICAgLy8gdG8gYWN0IGxpa2UgYSBtb3JlIGZ1bGwgZmVhdHVyZWQgZXhlYy4KLSAgICAg
ICAgICAgICAgICBmbGFncyB8PSBQT1NJWF9TUEFXTl9TRVRFWEVDOwotCi0gICAgICAgICAgICAg
ICAgc2lnc2V0X3Qgc2lnbmFsTWFza1NldDsKLSAgICAgICAgICAgICAgICBzaWdlbXB0eXNldCgm
c2lnbmFsTWFza1NldCk7Ci0gICAgICAgICAgICAgICAgcG9zaXhfc3Bhd25hdHRyX3NldHNpZ21h
c2soJmF0dHIsICZzaWduYWxNYXNrU2V0KTsKLSAgICAgICAgICAgICAgICBmbGFncyB8PSBQT1NJ
WF9TUEFXTl9TRVRTSUdNQVNLOwotCi0gICAgICAgICAgICAgICAgc3RhdGljIGNvbnN0IGludCBh
bGxvd0V4ZWN1dGFibGVIZWFwRmxhZyA9IDB4MjAwMDsKLSAgICAgICAgICAgICAgICBpZiAoeHBj
X2RpY3Rpb25hcnlfZ2V0X2Jvb2woZXZlbnQsICJleGVjdXRhYmxlLWhlYXAiKSkKLSAgICAgICAg
ICAgICAgICAgICAgZmxhZ3MgfD0gYWxsb3dFeGVjdXRhYmxlSGVhcEZsYWc7Ci0KLSAgICAgICAg
ICAgICAgICBwb3NpeF9zcGF3bmF0dHJfc2V0ZmxhZ3MoJmF0dHIsIGZsYWdzKTsKLQotICAgICAg
ICAgICAgICAgIGNwdV90eXBlX3QgY3B1VHlwZXNbXSA9IHsgKGNwdV90eXBlX3QpeHBjX2RpY3Rp
b25hcnlfZ2V0X3VpbnQ2NChldmVudCwgImFyY2hpdGVjdHVyZSIpIH07Ci0gICAgICAgICAgICAg
ICAgc2l6ZV90IG91dENvdW50ID0gMDsKLSAgICAgICAgICAgICAgICBwb3NpeF9zcGF3bmF0dHJf
c2V0YmlucHJlZl9ucCgmYXR0ciwgMSwgY3B1VHlwZXMsICZvdXRDb3VudCk7Ci0KLSAgICAgICAg
ICAgICAgICBjaGFyIHBhdGhbNCAqIFBBVEhfTUFYXTsKLSAgICAgICAgICAgICAgICB1aW50MzJf
dCBwYXRoTGVuZ3RoID0gc2l6ZW9mKHBhdGgpOwotICAgICAgICAgICAgICAgIF9OU0dldEV4ZWN1
dGFibGVQYXRoKHBhdGgsICZwYXRoTGVuZ3RoKTsKLQotICAgICAgICAgICAgICAgIGNoYXIqKiBh
cmd2ID0gKl9OU0dldEFyZ3YoKTsKLSAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBwcm9ncmFt
TmFtZSA9IGFyZ3ZbMF07Ci0gICAgICAgICAgICAgICAgY29uc3QgY2hhciogYXJnc1tdID0geyBw
cm9ncmFtTmFtZSwgMCB9OwotCi0gICAgICAgICAgICAgICAgeHBjX29iamVjdF90IGVudmlyb25t
ZW50QXJyYXkgPSB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUoZXZlbnQsICJlbnZpcm9ubWVudCIp
OwotICAgICAgICAgICAgICAgIHNpemVfdCBudW1iZXJPZkVudmlyb25tZW50VmFyaWFibGVzID0g
eHBjX2FycmF5X2dldF9jb3VudChlbnZpcm9ubWVudEFycmF5KTsKLQotICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIqKiBlbnZpcm9ubWVudCA9IChjb25zdCBjaGFyKiopbWFsbG9jKG51bWJlck9m
RW52aXJvbm1lbnRWYXJpYWJsZXMgKiBzaXplb2YoY2hhciopICsgMSk7Ci0gICAgICAgICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1iZXJPZkVudmlyb25tZW50VmFyaWFibGVzOyAr
K2kpCi0gICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50W2ldID0geHBjX2FycmF5X2dldF9z
dHJpbmcoZW52aXJvbm1lbnRBcnJheSwgaSk7Ci0gICAgICAgICAgICAgICAgZW52aXJvbm1lbnRb
bnVtYmVyT2ZFbnZpcm9ubWVudFZhcmlhYmxlc10gPSAwOwotCi0gICAgICAgICAgICAgICAgcGlk
X3QgcHJvY2Vzc0lkZW50aWZpZXIgPSAwOwotICAgICAgICAgICAgICAgIHBvc2l4X3NwYXduKCZw
cm9jZXNzSWRlbnRpZmllciwgcGF0aCwgMCwgJmF0dHIsIGNvbnN0X2Nhc3Q8Y2hhcioqPihhcmdz
KSwgY29uc3RfY2FzdDxjaGFyKio+KGVudmlyb25tZW50KSk7Ci0KLSAgICAgICAgICAgICAgICBw
b3NpeF9zcGF3bmF0dHJfZGVzdHJveSgmYXR0cik7Ci0KLSAgICAgICAgICAgICAgICBOU0xvZyhA
IlVuYWJsZSB0byByZS1leGVjIGZvciBwYXRoOiAlcyIsIHBhdGgpOwotICAgICAgICAgICAgICAg
IGV4aXQoRVhJVF9GQUlMVVJFKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFz
dHJjbXAoeHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhldmVudCwgIm1lc3NhZ2UtbmFtZSIpLCAi
Ym9vdHN0cmFwIikpIHsKLSAgICAgICAgICAgICAgICBzdGF0aWMgdm9pZCogZnJhbWV3b3JrTGli
cmFyeSA9IGRsb3Blbih4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKGV2ZW50LCAiZnJhbWV3b3Jr
LWV4ZWN1dGFibGUtcGF0aCIpLCBSVExEX05PVyk7Ci0gICAgICAgICAgICAgICAgaWYgKCFmcmFt
ZXdvcmtMaWJyYXJ5KSB7Ci0gICAgICAgICAgICAgICAgICAgIE5TTG9nKEAiVW5hYmxlIHRvIGxv
YWQgV2ViS2l0Mi5mcmFtZXdvcmsgYXQgcGF0aDogJXMgKEVycm9yOiAlcykiLCB4cGNfZGljdGlv
bmFyeV9nZXRfc3RyaW5nKGV2ZW50LCAiZnJhbWV3b3JrLWV4ZWN1dGFibGUtcGF0aCIpLCBkbGVy
cm9yKCkpOwotICAgICAgICAgICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7Ci0gICAgICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgQ0ZCdW5kbGVSZWYgd2ViS2l0MkJ1bmRsZSA9
IENGQnVuZGxlR2V0QnVuZGxlV2l0aElkZW50aWZpZXIoQ0ZTVFIoImNvbS5hcHBsZS5XZWJLaXQy
IikpOwotICAgICAgICAgICAgICAgIENGU3RyaW5nUmVmIGVudHJ5UG9pbnRGdW5jdGlvbk5hbWUg
PSAoQ0ZTdHJpbmdSZWYpQ0ZCdW5kbGVHZXRWYWx1ZUZvckluZm9EaWN0aW9uYXJ5S2V5KENGQnVu
ZGxlR2V0TWFpbkJ1bmRsZSgpLCBDRlNUUigiV2ViS2l0RW50cnlQb2ludCIpKTsKLQotICAgICAg
ICAgICAgICAgIHR5cGVkZWYgdm9pZCAoKkluaXRpYWxpemVyRnVuY3Rpb24pKHhwY19jb25uZWN0
aW9uX3QsIHhwY19vYmplY3RfdCk7Ci0gICAgICAgICAgICAgICAgSW5pdGlhbGl6ZXJGdW5jdGlv
biBpbml0aWFsaXplckZ1bmN0aW9uUHRyID0gcmVpbnRlcnByZXRfY2FzdDxJbml0aWFsaXplckZ1
bmN0aW9uPihDRkJ1bmRsZUdldEZ1bmN0aW9uUG9pbnRlckZvck5hbWUod2ViS2l0MkJ1bmRsZSwg
ZW50cnlQb2ludEZ1bmN0aW9uTmFtZSkpOwotICAgICAgICAgICAgICAgIGlmICghaW5pdGlhbGl6
ZXJGdW5jdGlvblB0cikgewotICAgICAgICAgICAgICAgICAgICBOU0xvZyhAIlVuYWJsZSB0byBm
aW5kIGVudHJ5IHBvaW50IGluIFdlYktpdDIuZnJhbWV3b3JrIHdpdGggbmFtZTogJUAiLCAoTlNT
dHJpbmcgKillbnRyeVBvaW50RnVuY3Rpb25OYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgZXhp
dChFWElUX0ZBSUxVUkUpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHhw
Y19vYmplY3RfdCByZXBseSA9IHhwY19kaWN0aW9uYXJ5X2NyZWF0ZV9yZXBseShldmVudCk7Ci0g
ICAgICAgICAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhyZXBseSwgIm1lc3NhZ2Ut
bmFtZSIsICJwcm9jZXNzLWZpbmlzaGVkLWxhdW5jaGluZyIpOwotICAgICAgICAgICAgICAgIHhw
Y19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZSh4cGNfZGljdGlvbmFyeV9nZXRfcmVtb3RlX2Nvbm5l
Y3Rpb24oZXZlbnQpLCByZXBseSk7Ci0gICAgICAgICAgICAgICAgeHBjX3JlbGVhc2UocmVwbHkp
OwotCi0gICAgICAgICAgICAgICAgZHVwMih4cGNfZGljdGlvbmFyeV9kdXBfZmQoZXZlbnQsICJz
dGRvdXQiKSwgU1RET1VUX0ZJTEVOTyk7Ci0gICAgICAgICAgICAgICAgZHVwMih4cGNfZGljdGlv
bmFyeV9kdXBfZmQoZXZlbnQsICJzdGRlcnIiKSwgU1RERVJSX0ZJTEVOTyk7Ci0KLSAgICAgICAg
ICAgICAgICBpbml0aWFsaXplckZ1bmN0aW9uUHRyKHBlZXIsIGV2ZW50KTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKHBlZXIp
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLSNlbmRpZiAvLyBYUENTZXJ2aWNlQm9v
dHN0cmFwcGVyX0RldmVsb3BtZW50X2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VCb290c3RyYXBwZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9t
YWMvWFBDU2VydmljZS9YUENTZXJ2aWNlQm9vdHN0cmFwcGVyLmgJKHJldmlzaW9uIDE0MjcxMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2
aWNlL1hQQ1NlcnZpY2VCb290c3RyYXBwZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw3MyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBYUENTZXJ2aWNlQm9vdHN0cmFwcGVyX2gKLSNkZWZp
bmUgWFBDU2VydmljZUJvb3RzdHJhcHBlcl9oCi0KLSNpbXBvcnQgPENvcmVGb3VuZGF0aW9uL0Nv
cmVGb3VuZGF0aW9uLmg+Ci0jaW1wb3J0IDx4cGMveHBjLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1zdGF0aWMgdm9pZCBYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKHhwY19jb25uZWN0aW9uX3Qg
cGVlcikKLXsKLSAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKHBlZXIsIGRpc3Bh
dGNoX2dldF9tYWluX3F1ZXVlKCkpOwotICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5k
bGVyKHBlZXIsIF4oeHBjX29iamVjdF90IGV2ZW50KSB7Ci0gICAgICAgIHhwY190eXBlX3QgdHlw
ZSA9IHhwY19nZXRfdHlwZShldmVudCk7Ci0gICAgICAgIGlmICh0eXBlID09IFhQQ19UWVBFX0VS
Uk9SKSB7Ci0gICAgICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5W
QUxJRCB8fCBldmVudCA9PSBYUENfRVJST1JfVEVSTUlOQVRJT05fSU1NSU5FTlQpIHsKLSAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRoaXMgY2FzZSBtb3JlIGdyYWNlZnVsbHkuCi0g
ICAgICAgICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgYXNzZXJ0KHR5cGUgPT0gWFBDX1RZUEVfRElDVElPTkFS
WSk7Ci0KLSAgICAgICAgICAgIGlmICghc3RyY21wKHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmco
ZXZlbnQsICJtZXNzYWdlLW5hbWUiKSwgImJvb3RzdHJhcCIpKSB7Ci0gICAgICAgICAgICAgICAg
Q0ZCdW5kbGVSZWYgd2ViS2l0MkJ1bmRsZSA9IENGQnVuZGxlR2V0QnVuZGxlV2l0aElkZW50aWZp
ZXIoQ0ZTVFIoImNvbS5hcHBsZS5XZWJLaXQyIikpOwotICAgICAgICAgICAgICAgIENGU3RyaW5n
UmVmIGVudHJ5UG9pbnRGdW5jdGlvbk5hbWUgPSAoQ0ZTdHJpbmdSZWYpQ0ZCdW5kbGVHZXRWYWx1
ZUZvckluZm9EaWN0aW9uYXJ5S2V5KENGQnVuZGxlR2V0TWFpbkJ1bmRsZSgpLCBDRlNUUigiV2Vi
S2l0RW50cnlQb2ludCIpKTsKLQotICAgICAgICAgICAgICAgIHR5cGVkZWYgdm9pZCAoKkluaXRp
YWxpemVyRnVuY3Rpb24pKHhwY19jb25uZWN0aW9uX3QsIHhwY19vYmplY3RfdCk7Ci0gICAgICAg
ICAgICAgICAgSW5pdGlhbGl6ZXJGdW5jdGlvbiBpbml0aWFsaXplckZ1bmN0aW9uUHRyID0gcmVp
bnRlcnByZXRfY2FzdDxJbml0aWFsaXplckZ1bmN0aW9uPihDRkJ1bmRsZUdldEZ1bmN0aW9uUG9p
bnRlckZvck5hbWUod2ViS2l0MkJ1bmRsZSwgZW50cnlQb2ludEZ1bmN0aW9uTmFtZSkpOwotICAg
ICAgICAgICAgICAgIGlmICghaW5pdGlhbGl6ZXJGdW5jdGlvblB0cikgewotICAgICAgICAgICAg
ICAgICAgICBOU0xvZyhAIlVuYWJsZSB0byBmaW5kIGVudHJ5IHBvaW50IGluIFdlYktpdDIuZnJh
bWV3b3JrIHdpdGggbmFtZTogJUAiLCAoTlNTdHJpbmcgKillbnRyeVBvaW50RnVuY3Rpb25OYW1l
KTsKLSAgICAgICAgICAgICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwotICAgICAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgICAgIHhwY19vYmplY3RfdCByZXBseSA9IHhwY19kaWN0aW9u
YXJ5X2NyZWF0ZV9yZXBseShldmVudCk7Ci0gICAgICAgICAgICAgICAgeHBjX2RpY3Rpb25hcnlf
c2V0X3N0cmluZyhyZXBseSwgIm1lc3NhZ2UtbmFtZSIsICJwcm9jZXNzLWZpbmlzaGVkLWxhdW5j
aGluZyIpOwotICAgICAgICAgICAgICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZSh4cGNf
ZGljdGlvbmFyeV9nZXRfcmVtb3RlX2Nvbm5lY3Rpb24oZXZlbnQpLCByZXBseSk7Ci0gICAgICAg
ICAgICAgICAgeHBjX3JlbGVhc2UocmVwbHkpOwotCi0gICAgICAgICAgICAgICAgaW5pdGlhbGl6
ZXJGdW5jdGlvblB0cihwZWVyLCBldmVudCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICB9KTsKLQotICAgIHhwY19jb25uZWN0aW9uX3Jlc3VtZShwZWVyKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBYUENTZXJ2aWNlQm9vdHN0cmFwcGVyX2gKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNl
L1hQQ1NlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VN
YWluLkRldmVsb3BtZW50Lm1tCShyZXZpc2lvbiAxNDI3MTApCShmcm9tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VCb290
c3RyYXBwZXIuRGV2ZWxvcG1lbnQuaDoxNDI3MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5EZXZlbG9w
bWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgWFBDU2VydmljZUJvb3RzdHJhcHBlcl9EZXZlbG9wbWVudF9oCisjZGVmaW5lIFhQQ1Nl
cnZpY2VCb290c3RyYXBwZXJfRGV2ZWxvcG1lbnRfaAorCisjaW1wb3J0IDxjcnRfZXh0ZXJucy5o
PgorI2ltcG9ydCA8ZGxmY24uaD4KKyNpbXBvcnQgPG1hY2gtby9keWxkLmg+CisjaW1wb3J0IDxz
cGF3bi5oPiAKKyNpbXBvcnQgPHN0ZGlvLmg+CisjaW1wb3J0IDxzdGRsaWIuaD4KKyNpbXBvcnQg
PHhwYy94cGMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB2b2lkIFhQQ1NlcnZp
Y2VFdmVudEhhbmRsZXIoeHBjX2Nvbm5lY3Rpb25fdCBwZWVyKQoreworICAgIHhwY19jb25uZWN0
aW9uX3NldF90YXJnZXRfcXVldWUocGVlciwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7Cisg
ICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIocGVlciwgXih4cGNfb2JqZWN0X3Qg
ZXZlbnQpIHsKKyAgICAgICAgeHBjX3R5cGVfdCB0eXBlID0geHBjX2dldF90eXBlKGV2ZW50KTsK
KyAgICAgICAgaWYgKHR5cGUgPT0gWFBDX1RZUEVfRVJST1IpIHsKKyAgICAgICAgICAgIGlmIChl
dmVudCA9PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlZBTElEIHx8IGV2ZW50ID09IFhQQ19FUlJP
Ul9URVJNSU5BVElPTl9JTU1JTkVOVCkgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5k
bGUgdGhpcyBjYXNlIG1vcmUgZ3JhY2VmdWxseS4KKyAgICAgICAgICAgICAgICBleGl0KEVYSVRf
RkFJTFVSRSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBh
c3NlcnQodHlwZSA9PSBYUENfVFlQRV9ESUNUSU9OQVJZKTsKKworICAgICAgICAgICAgaWYgKCFz
dHJjbXAoeHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhldmVudCwgIm1lc3NhZ2UtbmFtZSIpLCAi
cmUtZXhlYyIpKSB7CisgICAgICAgICAgICAgICAgcG9zaXhfc3Bhd25hdHRyX3QgYXR0cjsKKyAg
ICAgICAgICAgICAgICBwb3NpeF9zcGF3bmF0dHJfaW5pdCgmYXR0cik7CisKKyAgICAgICAgICAg
ICAgICBzaG9ydCBmbGFncyA9IDA7CisKKyAgICAgICAgICAgICAgICAvLyBXZSBqdXN0IHdhbnQg
dG8gc2V0IHRoZSBwcm9jZXNzIHN0YXRlLCBub3QgYWN0dWFsbHkgbGF1bmNoIGEgbmV3IHByb2Nl
c3MsCisgICAgICAgICAgICAgICAgLy8gc28gd2UgYXJlIGdvaW5nIHRvIHVzZSB0aGUgZGFyd2lu
IGV4dGVuc2lvbiB0byBwb3NpeF9zcGF3biBQT1NJWF9TUEFXTl9TRVRFWEVDCisgICAgICAgICAg
ICAgICAgLy8gdG8gYWN0IGxpa2UgYSBtb3JlIGZ1bGwgZmVhdHVyZWQgZXhlYy4KKyAgICAgICAg
ICAgICAgICBmbGFncyB8PSBQT1NJWF9TUEFXTl9TRVRFWEVDOworCisgICAgICAgICAgICAgICAg
c2lnc2V0X3Qgc2lnbmFsTWFza1NldDsKKyAgICAgICAgICAgICAgICBzaWdlbXB0eXNldCgmc2ln
bmFsTWFza1NldCk7CisgICAgICAgICAgICAgICAgcG9zaXhfc3Bhd25hdHRyX3NldHNpZ21hc2so
JmF0dHIsICZzaWduYWxNYXNrU2V0KTsKKyAgICAgICAgICAgICAgICBmbGFncyB8PSBQT1NJWF9T
UEFXTl9TRVRTSUdNQVNLOworCisgICAgICAgICAgICAgICAgc3RhdGljIGNvbnN0IGludCBhbGxv
d0V4ZWN1dGFibGVIZWFwRmxhZyA9IDB4MjAwMDsKKyAgICAgICAgICAgICAgICBpZiAoeHBjX2Rp
Y3Rpb25hcnlfZ2V0X2Jvb2woZXZlbnQsICJleGVjdXRhYmxlLWhlYXAiKSkKKyAgICAgICAgICAg
ICAgICAgICAgZmxhZ3MgfD0gYWxsb3dFeGVjdXRhYmxlSGVhcEZsYWc7CisKKyAgICAgICAgICAg
ICAgICBwb3NpeF9zcGF3bmF0dHJfc2V0ZmxhZ3MoJmF0dHIsIGZsYWdzKTsKKworICAgICAgICAg
ICAgICAgIGNwdV90eXBlX3QgY3B1VHlwZXNbXSA9IHsgKGNwdV90eXBlX3QpeHBjX2RpY3Rpb25h
cnlfZ2V0X3VpbnQ2NChldmVudCwgImFyY2hpdGVjdHVyZSIpIH07CisgICAgICAgICAgICAgICAg
c2l6ZV90IG91dENvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBwb3NpeF9zcGF3bmF0dHJfc2V0
YmlucHJlZl9ucCgmYXR0ciwgMSwgY3B1VHlwZXMsICZvdXRDb3VudCk7CisKKyAgICAgICAgICAg
ICAgICBjaGFyIHBhdGhbNCAqIFBBVEhfTUFYXTsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBw
YXRoTGVuZ3RoID0gc2l6ZW9mKHBhdGgpOworICAgICAgICAgICAgICAgIF9OU0dldEV4ZWN1dGFi
bGVQYXRoKHBhdGgsICZwYXRoTGVuZ3RoKTsKKworICAgICAgICAgICAgICAgIGNoYXIqKiBhcmd2
ID0gKl9OU0dldEFyZ3YoKTsKKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBwcm9ncmFtTmFt
ZSA9IGFyZ3ZbMF07CisgICAgICAgICAgICAgICAgY29uc3QgY2hhciogYXJnc1tdID0geyBwcm9n
cmFtTmFtZSwgMCB9OworCisgICAgICAgICAgICAgICAgeHBjX29iamVjdF90IGVudmlyb25tZW50
QXJyYXkgPSB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUoZXZlbnQsICJlbnZpcm9ubWVudCIpOwor
ICAgICAgICAgICAgICAgIHNpemVfdCBudW1iZXJPZkVudmlyb25tZW50VmFyaWFibGVzID0geHBj
X2FycmF5X2dldF9jb3VudChlbnZpcm9ubWVudEFycmF5KTsKKworICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIqKiBlbnZpcm9ubWVudCA9IChjb25zdCBjaGFyKiopbWFsbG9jKG51bWJlck9mRW52
aXJvbm1lbnRWYXJpYWJsZXMgKiBzaXplb2YoY2hhciopICsgMSk7CisgICAgICAgICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1iZXJPZkVudmlyb25tZW50VmFyaWFibGVzOyArK2kp
CisgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50W2ldID0geHBjX2FycmF5X2dldF9zdHJp
bmcoZW52aXJvbm1lbnRBcnJheSwgaSk7CisgICAgICAgICAgICAgICAgZW52aXJvbm1lbnRbbnVt
YmVyT2ZFbnZpcm9ubWVudFZhcmlhYmxlc10gPSAwOworCisgICAgICAgICAgICAgICAgcGlkX3Qg
cHJvY2Vzc0lkZW50aWZpZXIgPSAwOworICAgICAgICAgICAgICAgIHBvc2l4X3NwYXduKCZwcm9j
ZXNzSWRlbnRpZmllciwgcGF0aCwgMCwgJmF0dHIsIGNvbnN0X2Nhc3Q8Y2hhcioqPihhcmdzKSwg
Y29uc3RfY2FzdDxjaGFyKio+KGVudmlyb25tZW50KSk7CisKKyAgICAgICAgICAgICAgICBwb3Np
eF9zcGF3bmF0dHJfZGVzdHJveSgmYXR0cik7CisKKyAgICAgICAgICAgICAgICBOU0xvZyhAIlVu
YWJsZSB0byByZS1leGVjIGZvciBwYXRoOiAlcyIsIHBhdGgpOworICAgICAgICAgICAgICAgIGV4
aXQoRVhJVF9GQUlMVVJFKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFzdHJj
bXAoeHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhldmVudCwgIm1lc3NhZ2UtbmFtZSIpLCAiYm9v
dHN0cmFwIikpIHsKKyAgICAgICAgICAgICAgICBzdGF0aWMgdm9pZCogZnJhbWV3b3JrTGlicmFy
eSA9IGRsb3Blbih4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKGV2ZW50LCAiZnJhbWV3b3JrLWV4
ZWN1dGFibGUtcGF0aCIpLCBSVExEX05PVyk7CisgICAgICAgICAgICAgICAgaWYgKCFmcmFtZXdv
cmtMaWJyYXJ5KSB7CisgICAgICAgICAgICAgICAgICAgIE5TTG9nKEAiVW5hYmxlIHRvIGxvYWQg
V2ViS2l0Mi5mcmFtZXdvcmsgYXQgcGF0aDogJXMgKEVycm9yOiAlcykiLCB4cGNfZGljdGlvbmFy
eV9nZXRfc3RyaW5nKGV2ZW50LCAiZnJhbWV3b3JrLWV4ZWN1dGFibGUtcGF0aCIpLCBkbGVycm9y
KCkpOworICAgICAgICAgICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgQ0ZCdW5kbGVSZWYgd2ViS2l0MkJ1bmRsZSA9IENG
QnVuZGxlR2V0QnVuZGxlV2l0aElkZW50aWZpZXIoQ0ZTVFIoImNvbS5hcHBsZS5XZWJLaXQyIikp
OworICAgICAgICAgICAgICAgIENGU3RyaW5nUmVmIGVudHJ5UG9pbnRGdW5jdGlvbk5hbWUgPSAo
Q0ZTdHJpbmdSZWYpQ0ZCdW5kbGVHZXRWYWx1ZUZvckluZm9EaWN0aW9uYXJ5S2V5KENGQnVuZGxl
R2V0TWFpbkJ1bmRsZSgpLCBDRlNUUigiV2ViS2l0RW50cnlQb2ludCIpKTsKKworICAgICAgICAg
ICAgICAgIHR5cGVkZWYgdm9pZCAoKkluaXRpYWxpemVyRnVuY3Rpb24pKHhwY19jb25uZWN0aW9u
X3QsIHhwY19vYmplY3RfdCk7CisgICAgICAgICAgICAgICAgSW5pdGlhbGl6ZXJGdW5jdGlvbiBp
bml0aWFsaXplckZ1bmN0aW9uUHRyID0gcmVpbnRlcnByZXRfY2FzdDxJbml0aWFsaXplckZ1bmN0
aW9uPihDRkJ1bmRsZUdldEZ1bmN0aW9uUG9pbnRlckZvck5hbWUod2ViS2l0MkJ1bmRsZSwgZW50
cnlQb2ludEZ1bmN0aW9uTmFtZSkpOworICAgICAgICAgICAgICAgIGlmICghaW5pdGlhbGl6ZXJG
dW5jdGlvblB0cikgeworICAgICAgICAgICAgICAgICAgICBOU0xvZyhAIlVuYWJsZSB0byBmaW5k
IGVudHJ5IHBvaW50IGluIFdlYktpdDIuZnJhbWV3b3JrIHdpdGggbmFtZTogJUAiLCAoTlNTdHJp
bmcgKillbnRyeVBvaW50RnVuY3Rpb25OYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgZXhpdChF
WElUX0ZBSUxVUkUpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHhwY19v
YmplY3RfdCByZXBseSA9IHhwY19kaWN0aW9uYXJ5X2NyZWF0ZV9yZXBseShldmVudCk7CisgICAg
ICAgICAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhyZXBseSwgIm1lc3NhZ2UtbmFt
ZSIsICJwcm9jZXNzLWZpbmlzaGVkLWxhdW5jaGluZyIpOworICAgICAgICAgICAgICAgIHhwY19j
b25uZWN0aW9uX3NlbmRfbWVzc2FnZSh4cGNfZGljdGlvbmFyeV9nZXRfcmVtb3RlX2Nvbm5lY3Rp
b24oZXZlbnQpLCByZXBseSk7CisgICAgICAgICAgICAgICAgeHBjX3JlbGVhc2UocmVwbHkpOwor
CisgICAgICAgICAgICAgICAgZHVwMih4cGNfZGljdGlvbmFyeV9kdXBfZmQoZXZlbnQsICJzdGRv
dXQiKSwgU1RET1VUX0ZJTEVOTyk7CisgICAgICAgICAgICAgICAgZHVwMih4cGNfZGljdGlvbmFy
eV9kdXBfZmQoZXZlbnQsICJzdGRlcnIiKSwgU1RERVJSX0ZJTEVOTyk7CisKKyAgICAgICAgICAg
ICAgICBpbml0aWFsaXplckZ1bmN0aW9uUHRyKHBlZXIsIGV2ZW50KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgIH0pOworCisgICAgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKHBlZXIpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ7CisKKyNlbmRpZiAvLyBYUENTZXJ2aWNlQm9vdHN0
cmFwcGVyX0RldmVsb3BtZW50X2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1tCShyZXZpc2lvbiAx
NDI3MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMv
WFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjMsOSArMjMsNiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLSNpZm5kZWYgWFBDU2VydmljZUJvb3RzdHJhcHBlcl9EZXZlbG9wbWVudF9oCi0jZGVmaW5l
IFhQQ1NlcnZpY2VCb290c3RyYXBwZXJfRGV2ZWxvcG1lbnRfaAotCiAjaW1wb3J0IDxjcnRfZXh0
ZXJucy5oPgogI2ltcG9ydCA8ZGxmY24uaD4KICNpbXBvcnQgPG1hY2gtby9keWxkLmg+CkBAIC0x
MzUsNCArMTMyLDEwIEBAIHN0YXRpYyB2b2lkIFhQQ1NlcnZpY2VFdmVudEhhbmRsZXIoeHBjX2MK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OwogCi0jZW5kaWYgLy8gWFBDU2VydmljZUJvb3RzdHJh
cHBlcl9EZXZlbG9wbWVudF9oCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitpbnQgbWFpbihp
bnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgeHBjX21haW4oWFBDU2VydmljZUV2ZW50SGFu
ZGxlcik7CisgICAgcmV0dXJuIDA7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBD
U2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQkocmV2aXNpb24gMTQyNzEwKQkoZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2
aWNlQm9vdHN0cmFwcGVyLmg6MTQyNzEwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5
UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgWFBDU2VydmljZUJv
b3RzdHJhcHBlcl9oCisjZGVmaW5lIFhQQ1NlcnZpY2VCb290c3RyYXBwZXJfaAorCisjaW1wb3J0
IDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2ltcG9ydCA8eHBjL3hwYy5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHZvaWQgWFBDU2VydmljZUV2ZW50SGFuZGxl
cih4cGNfY29ubmVjdGlvbl90IHBlZXIpCit7CisgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X3Rhcmdl
dF9xdWV1ZShwZWVyLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKTsKKyAgICB4cGNfY29ubmVj
dGlvbl9zZXRfZXZlbnRfaGFuZGxlcihwZWVyLCBeKHhwY19vYmplY3RfdCBldmVudCkgeworICAg
ICAgICB4cGNfdHlwZV90IHR5cGUgPSB4cGNfZ2V0X3R5cGUoZXZlbnQpOworICAgICAgICBpZiAo
dHlwZSA9PSBYUENfVFlQRV9FUlJPUikgeworICAgICAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19F
UlJPUl9DT05ORUNUSU9OX0lOVkFMSUQgfHwgZXZlbnQgPT0gWFBDX0VSUk9SX1RFUk1JTkFUSU9O
X0lNTUlORU5UKSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSB0aGlzIGNhc2Ug
bW9yZSBncmFjZWZ1bGx5LgorICAgICAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydCh0eXBlID09
IFhQQ19UWVBFX0RJQ1RJT05BUlkpOworCisgICAgICAgICAgICBpZiAoIXN0cmNtcCh4cGNfZGlj
dGlvbmFyeV9nZXRfc3RyaW5nKGV2ZW50LCAibWVzc2FnZS1uYW1lIiksICJib290c3RyYXAiKSkg
eworICAgICAgICAgICAgICAgIENGQnVuZGxlUmVmIHdlYktpdDJCdW5kbGUgPSBDRkJ1bmRsZUdl
dEJ1bmRsZVdpdGhJZGVudGlmaWVyKENGU1RSKCJjb20uYXBwbGUuV2ViS2l0MiIpKTsKKyAgICAg
ICAgICAgICAgICBDRlN0cmluZ1JlZiBlbnRyeVBvaW50RnVuY3Rpb25OYW1lID0gKENGU3RyaW5n
UmVmKUNGQnVuZGxlR2V0VmFsdWVGb3JJbmZvRGljdGlvbmFyeUtleShDRkJ1bmRsZUdldE1haW5C
dW5kbGUoKSwgQ0ZTVFIoIldlYktpdEVudHJ5UG9pbnQiKSk7CisKKyAgICAgICAgICAgICAgICB0
eXBlZGVmIHZvaWQgKCpJbml0aWFsaXplckZ1bmN0aW9uKSh4cGNfY29ubmVjdGlvbl90LCB4cGNf
b2JqZWN0X3QpOworICAgICAgICAgICAgICAgIEluaXRpYWxpemVyRnVuY3Rpb24gaW5pdGlhbGl6
ZXJGdW5jdGlvblB0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8SW5pdGlhbGl6ZXJGdW5jdGlvbj4oQ0ZC
dW5kbGVHZXRGdW5jdGlvblBvaW50ZXJGb3JOYW1lKHdlYktpdDJCdW5kbGUsIGVudHJ5UG9pbnRG
dW5jdGlvbk5hbWUpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWluaXRpYWxpemVyRnVuY3Rpb25Q
dHIpIHsKKyAgICAgICAgICAgICAgICAgICAgTlNMb2coQCJVbmFibGUgdG8gZmluZCBlbnRyeSBw
b2ludCBpbiBXZWJLaXQyLmZyYW1ld29yayB3aXRoIG5hbWU6ICVAIiwgKE5TU3RyaW5nICopZW50
cnlQb2ludEZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlM
VVJFKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB4cGNfb2JqZWN0X3Qg
cmVwbHkgPSB4cGNfZGljdGlvbmFyeV9jcmVhdGVfcmVwbHkoZXZlbnQpOworICAgICAgICAgICAg
ICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcocmVwbHksICJtZXNzYWdlLW5hbWUiLCAicHJv
Y2Vzcy1maW5pc2hlZC1sYXVuY2hpbmciKTsKKyAgICAgICAgICAgICAgICB4cGNfY29ubmVjdGlv
bl9zZW5kX21lc3NhZ2UoeHBjX2RpY3Rpb25hcnlfZ2V0X3JlbW90ZV9jb25uZWN0aW9uKGV2ZW50
KSwgcmVwbHkpOworICAgICAgICAgICAgICAgIHhwY19yZWxlYXNlKHJlcGx5KTsKKworICAgICAg
ICAgICAgICAgIGluaXRpYWxpemVyRnVuY3Rpb25QdHIocGVlciwgZXZlbnQpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfSk7CisKKyAgICB4cGNfY29ubmVjdGlvbl9yZXN1bWUocGVl
cik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gWFBDU2VydmljZUJv
b3RzdHJhcHBlcl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxp
dGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENT
ZXJ2aWNlTWFpbi5tbQkocmV2aXNpb24gMTQyNzEwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVk
L0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0JKHdv
cmtpbmcgY29weSkKQEAgLTIzLDkgKzIzLDYgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFhQQ1NlcnZpY2VCb290c3RyYXBwZXJfaAotI2RlZmlu
ZSBYUENTZXJ2aWNlQm9vdHN0cmFwcGVyX2gKLQogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24vQ29y
ZUZvdW5kYXRpb24uaD4KICNpbXBvcnQgPHhwYy94cGMuaD4KIApAQCAtNzAsNCArNjcsMTAgQEAg
c3RhdGljIHZvaWQgWFBDU2VydmljZUV2ZW50SGFuZGxlcih4cGNfYwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAotI2VuZGlmIC8vIFhQQ1NlcnZpY2VCb290c3RyYXBwZXJfaAordXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAg
IHhwY19tYWluKFhQQ1NlcnZpY2VFdmVudEhhbmRsZXIpOworICAgIHJldHVybiAwOworfQpJbmRl
eDogU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdh
Y3lQcm9jZXNzL0luZm8ucGxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVk
V29ya2VyUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3QJKHJl
dmlzaW9uIDE0MjcxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvRW50
cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9JbmZvLnBsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw1ICsyNiw3IEBACiAJPHRydWUvPgogCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5PgogCTxz
dHJpbmc+TlNBcHBsaWNhdGlvbjwvc3RyaW5nPgorCTxrZXk+V2ViS2l0RW50cnlQb2ludDwva2V5
PgorCTxzdHJpbmc+U2hhcmVkV29ya2VyUHJvY2Vzc01haW48L3N0cmluZz4KIDwvZGljdD4KIDwv
cGxpc3Q+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL0xlZ2FjeVByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzc01haW4ubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9M
ZWdhY3lQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3NNYWluLm1tCShyZXZpc2lvbiAxNDI3MTAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xl
Z2FjeVByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzc01haW4ubW0JKHdvcmtpbmcgY29weSkKQEAg
LTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShTSEFSRURfV09SS0VSX1BST0NFU1MpCiAKLSNp
bXBvcnQgIkNoaWxkUHJvY2Vzc01haW4uaCIKKyNpbXBvcnQgIkNoaWxkUHJvY2Vzc0VudHJ5UG9p
bnQuaCIKICNpbXBvcnQgIlNoYXJlZFdvcmtlclByb2Nlc3MuaCIKICNpbXBvcnQgIldLQmFzZS5o
IgogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL0xlZ2FjeVByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFpbkJvb3RzdHJhcHBl
ci5jcHAJKHJldmlzaW9uIDE0MjcxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFp
bkJvb3RzdHJhcHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMzIgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJDaGlsZFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmgiCi0KLWludCBt
YWluKGludCBhcmdjLCBjaGFyKiogYXJndikKLXsKLSAgICBXZWJLaXRNYWluRnVuY3Rpb24gbWFp
bkZ1bmN0aW9uID0gZ2V0Qm9vdHN0cmFwTWFpbkZ1bmN0aW9uKGFyZ2MsIGFyZ3YsICJTaGFyZWRX
b3JrZXJQcm9jZXNzTWFpbiIpOwotICAgIHJldHVybiBtYWluRnVuY3Rpb24oYXJnYywgYXJndik7
Ci19CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAxNDI3MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTc3NCw2ICs3NzQsMjUg
QEAKIAkJQkM1OTU0ODkxNUM3ODY4NTAwRkQxRTNFIC8qIFdlYktpdDIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTk1NDg4MTVDNzg2ODUwMEZEMUUz
RSAvKiBXZWJLaXQyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9
OyB9OwogCQlCQzU5NzA3NTExNjU5MUQwMDA1NTFGQ0EgLyogUHJvY2Vzc01vZGVsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU5NzA3NDExNjU5MUQw
MDA1NTFGQ0EgLyogUHJvY2Vzc01vZGVsLmggKi87IH07CiAJCUJDNUM3NUM4MTQ5NTREQTYwMEJD
NDc3NSAvKiBXS0Nvbm5lY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1Qzc1QzYxNDk1NERBNjAwQkM0Nzc1IC8qIFdLQ29ubmVj
dGlvbkludGVybmFsLmggKi87IH07CisJCUJDNUQyNEExMTZDQzNCOUUwMDdENTQ2MSAvKiBDaGls
ZFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM1RDI0OUYxNkNDM0I5RTAwN0Q1NDYxIC8qIENoaWxkUHJvY2Vzc01haW4ubW0gKi87
IH07CisJCUJDNUQyNEEyMTZDQzNCOUUwMDdENTQ2MSAvKiBDaGlsZFByb2Nlc3NNYWluLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1RDI0OUYxNkND
M0I5RTAwN0Q1NDYxIC8qIENoaWxkUHJvY2Vzc01haW4ubW0gKi87IH07CisJCUJDNUQyNEEzMTZD
QzNCOUUwMDdENTQ2MSAvKiBDaGlsZFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1RDI0OUYxNkNDM0I5RTAwN0Q1NDYxIC8qIENo
aWxkUHJvY2Vzc01haW4ubW0gKi87IH07CisJCUJDNUQyNEE0MTZDQzNCOUUwMDdENTQ2MSAvKiBD
aGlsZFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM1RDI0OUYxNkNDM0I5RTAwN0Q1NDYxIC8qIENoaWxkUHJvY2Vzc01haW4ubW0g
Ki87IH07CisJCUJDNUQyNEE1MTZDQzNCOUUwMDdENTQ2MSAvKiBDaGlsZFByb2Nlc3NNYWluLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1RDI0OUYx
NkNDM0I5RTAwN0Q1NDYxIC8qIENoaWxkUHJvY2Vzc01haW4ubW0gKi87IH07CisJCUJDNUQyNEE3
MTZDQzNENUQwMDdENTQ2MSAvKiBYUENTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzk3MTZCNDgwRjYw
MEEyNzhGRSAvKiBYUENTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbSAqLzsgfTsKKwkJQkM1RDI0
QTgxNkNDM0Q1RTAwN0Q1NDYxIC8qIFhQQ1NlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzOTcxNkI0ODBG
NjAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1tICovOyB9OworCQlCQzVE
MjRBOTE2Q0MzRDVGMDA3RDU0NjEgLyogWFBDU2VydmljZU1haW4uRGV2ZWxvcG1lbnQubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM5NzE2QjQ4
MEY2MDBBMjc4RkUgLyogWFBDU2VydmljZU1haW4uRGV2ZWxvcG1lbnQubW0gKi87IH07CisJCUJD
NUQyNEFBMTZDQzNENUYwMDdENTQ2MSAvKiBYUENTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzk3MTZC
NDgwRjYwMEEyNzhGRSAvKiBYUENTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbSAqLzsgfTsKKwkJ
QkM1RDI0QUIxNkNDM0Q2MjAwN0Q1NDYxIC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzOTYxNkI0N0VDNDAwQTI3
OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1tICovOyB9OworCQlCQzVEMjRBQzE2Q0MzRDYzMDA3RDU0
NjEgLyogWFBDU2VydmljZU1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzgyODM5NjE2QjQ3RUM0MDBBMjc4RkUgLyogWFBDU2VydmljZU1haW4u
bW0gKi87IH07CisJCUJDNUQyNEFEMTZDQzNENjQwMDdENTQ2MSAvKiBYUENTZXJ2aWNlTWFpbi5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzk2
MTZCNDdFQzQwMEEyNzhGRSAvKiBYUENTZXJ2aWNlTWFpbi5tbSAqLzsgfTsKKwkJQkM1RDI0QUUx
NkNDM0Q2NTAwN0Q1NDYxIC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzOTYxNkI0N0VDNDAwQTI3OEZFIC8qIFhQ
Q1NlcnZpY2VNYWluLm1tICovOyB9OworCQlCQzVEMjRBRjE2Q0MzRDY2MDA3RDU0NjEgLyogWFBD
U2VydmljZU1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzgyODM5NjE2QjQ3RUM0MDBBMjc4RkUgLyogWFBDU2VydmljZU1haW4ubW0gKi87IH07
CisJCUJDNUQyNEIxMTZDQzNGMzYwMDdENTQ2MSAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBG
cmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0RFNDY4MTVB
OTE3NjMwMDhEMjZGQyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKKwkJQkM1RDI0QjMx
NkNDM0YzRjAwN0Q1NDYxIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzREU0NjgxNUE5MTc2MzAwOEQyNkZD
IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OworCQlCQzVEMjRCNTE2Q0MzRjQ2MDA3RDU0
NjEgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNERTQ2ODE1QTkxNzYzMDA4RDI2RkMgLyogRm91bmRhdGlv
bi5mcmFtZXdvcmsgKi87IH07CisJCUJDNUQyNEI2MTZDQzNGNEQwMDdENTQ2MSAvKiBGb3VuZGF0
aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDM0RFNDY4MTVBOTE3NjMwMDhEMjZGQyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAq
LzsgfTsKKwkJQkM1RDI0QjcxNkNDM0Y1RDAwN0Q1NDYxIC8qIEZvdW5kYXRpb24uZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzREU0
NjgxNUE5MTc2MzAwOEQyNkZDIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OwogCQlCQzYw
QzU3OTEyNDBBNTQ2MDA4QzVFMjkgLyogV0tCdW5kbGVSYW5nZUhhbmRsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM2MEM1NzcxMjQwQTU0NjAwOEM1
RTI5IC8qIFdLQnVuZGxlUmFuZ2VIYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzYwQzU3QTEyNDBBNTQ2MDA4QzVFMjkgLyogV0tCdW5k
bGVSYW5nZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzYwQzU3ODEyNDBBNTQ2MDA4QzVFMjkgLyogV0tCdW5kbGVSYW5nZUhhbmRsZS5j
cHAgKi87IH07CiAJCUJDNjQ2OTZGMTFEQkU2MDMwMDY0NTVCMCAvKiBJbW11dGFibGVBcnJheS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzY0Njk2
RDExREJFNjAzMDA2NDU1QjAgLyogSW1tdXRhYmxlQXJyYXkuY3BwICovOyB9OwpAQCAtODA0LDIy
ICs4MjMsMTUgQEAKIAkJQkM4MTQ3RDUxMkY2NkQzMTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxl
TmF2aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM4MTQ3RDMxMkY2NkQzMTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxlTmF2aWdh
dGlvbkFjdGlvbi5oICovOyB9OwogCQlCQzgxNDdENjEyRjY2RDMxMDA3QjJDMzIgLyogSW5qZWN0
ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDODE0N0Q0MTJGNjZEMzEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1
bmRsZU5hdmlnYXRpb25BY3Rpb24uY3BwICovOyB9OwogCQlCQzgyODM2NTE2QjM1NEY2MDBBMjc4
RkUgLyogV2ViQ29udGVudFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzNjQxNkIzNTRGNjAwQTI3OEZFIC8qIFdlYkNvbnRl
bnRQcm9jZXNzTWFpbi5tbSAqLzsgfTsKLQkJQkM4MjgzNzYxNkIzNjc0QjAwQTI3OEZFIC8qIFdl
YkNvbnRlbnRQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM3NDE2QjM2NzRCMDBBMjc4RkUgLyogV2Vi
Q29udGVudFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCAqLzsgfTsKLQkJQkM4MjgzN0ExNkIz
NkE0RjAwQTI3OEZFIC8qIENoaWxkUHJvY2Vzc01haW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzc4MTZCMzZBNEYwMEEyNzhGRSAvKiBDaGls
ZFByb2Nlc3NNYWluLmggKi87IH07Ci0JCUJDODI4MzdCMTZCMzZBNEYwMEEyNzhGRSAvKiBDaGls
ZFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM4MjgzNzkxNkIzNkE0RjAwQTI3OEZFIC8qIENoaWxkUHJvY2Vzc01haW4ubW0gKi87
IH07CisJCUJDODI4MzdBMTZCMzZBNEYwMEEyNzhGRSAvKiBDaGlsZFByb2Nlc3NFbnRyeVBvaW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM3
ODE2QjM2QTRGMDBBMjc4RkUgLyogQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5oICovOyB9OworCQlC
QzgyODM3QjE2QjM2QTRGMDBBMjc4RkUgLyogQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzc5MTZCMzZB
NEYwMEEyNzhGRSAvKiBDaGlsZFByb2Nlc3NFbnRyeVBvaW50Lm1tICovOyB9OwogCQlCQzgyODM4
NDE2QjQ1REE1MDBBMjc4RkUgLyogTmV0d29ya1Byb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzODExNkI0NURBNTAwQTI3OEZF
IC8qIE5ldHdvcmtQcm9jZXNzTWFpbi5tbSAqLzsgfTsKLQkJQkM4MjgzODUxNkI0NURCNzAwQTI3
OEZFIC8qIE5ldHdvcmtQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM4MDE2QjQ1REE1MDBBMjc4RkUg
LyogTmV0d29ya1Byb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCAqLzsgfTsKLQkJQkM4MjgzOEIx
NkI0NUVGRjAwQTI3OEZFIC8qIFBsdWdpblByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzg5MTZCNDVF
RjIwMEEyNzhGRSAvKiBQbHVnaW5Qcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAgKi87IH07CiAJ
CUJDODI4MzhDMTZCNDVGMDcwMEEyNzhGRSAvKiBQbHVnaW5Qcm9jZXNzTWFpbi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4MzhBMTZCNDVFRjIw
MEEyNzhGRSAvKiBQbHVnaW5Qcm9jZXNzTWFpbi5tbSAqLzsgfTsKLQkJQkM4MjgzOTQxNkI0NjA4
MDAwQTI3OEZFIC8qIFNoYXJlZFdvcmtlclByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4MzkyMTZCNDYw
N0IwMEEyNzhGRSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAgKi87
IH07CiAJCUJDODI4Mzk1MTZCNDYwODMwMEEyNzhGRSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFp
bi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4
MzkzMTZCNDYwN0IwMEEyNzhGRSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbi5tbSAqLzsgfTsK
IAkJQkM4MjgzOTkxNkI0OERDMDAwQTI3OEZFIC8qIFdlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2lu
dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4
Mzk4MTZCNDhEQzAwMEEyNzhGRSAvKiBXZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0gKi87
IH07CiAJCUJDODI4M0FDMTZCNEJGM0YwMEEyNzhGRSAvKiBOZXR3b3JrU2VydmljZUVudHJ5UG9p
bnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgy
ODNBODE2QjRCRDkxMDBBMjc4RkUgLyogTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tICovOyB9
OwotCQlCQzgyODNEODE2QjREQjJBMDBBMjc4RkUgLyogTmV0d29ya1NlcnZpY2VNYWluLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzQTQxNkI0
QkQ5MTAwQTI3OEZFIC8qIE5ldHdvcmtTZXJ2aWNlTWFpbi5tbSAqLzsgfTsKLQkJQkM4MjgzRDkx
NkI0REIyRTAwQTI3OEZFIC8qIE5ldHdvcmtTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4M0E3MTZCNEJE
OTEwMEEyNzhGRSAvKiBOZXR3b3JrU2VydmljZU1haW4uRGV2ZWxvcG1lbnQubW0gKi87IH07CiAJ
CUJDODI4M0RBMTZCNERCOTMwMEEyNzhGRSAvKiBXZWJLaXQyLmZyYW1ld29yayBpbiBGcmFtZXdv
cmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhEQzJFRjVCMDQ4NkE2OTQw
MDk4QjIxNiAvKiBXZWJLaXQyLmZyYW1ld29yayAqLzsgfTsKIAkJQkM4Mjg0NDkxNkI1MDA0MjAw
QTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuMzIuTWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4M0U1MTZCNEY4RTIwMEEyNzhGRSAvKiBQbHVn
aW5TZXJ2aWNlLjMyLk1haW4ubW0gKi87IH07Ci0JCUJDODI4NDRCMTZCNTAwNEQwMEEyNzhGRSAv
KiBQbHVnaW5TZXJ2aWNlLjY0Lk1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzgyODNFQjE2QjRGOEUyMDBBMjc4RkUgLyogUGx1Z2luU2Vydmlj
ZS42NC5NYWluLm1tICovOyB9OwogCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4RkUgLyogUGx1Z2lu
U2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzgyODNFRjE2QjRGOEUyMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZUVudHJ5
UG9pbnQubW0gKi87IH07CiAJCUJDODI4NDRFMTZCNTA4OTQwMEEyNzhGRSAvKiBXZWJLaXQyLmZy
YW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhEQzJFRjVCMDQ4NkE2OTQwMDk4QjIxNiAvKiBXZWJLaXQyLmZyYW1ld29yayAqLzsgfTsKIAkJ
QkM4Mjg0NEYxNkI1MDg5ODAwQTI3OEZFIC8qIFdlYktpdDIuZnJhbWV3b3JrIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOERDMkVGNUIwNDg2QTY5NDAw
OThCMjE2IC8qIFdlYktpdDIuZnJhbWV3b3JrICovOyB9OwpAQCAtODc5LDExICs4OTEsOCBAQAog
CQlCQ0E4QzZCMDExRTNDMDg3MDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQThDNkFF
MTFFM0MwODcwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oICovOyB9Owog
CQlCQ0FDMTExRjEyQzkyQzFGMDBCMDhFRUUgLyogV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQUMx
MTFEMTJDOTJDMUYwMEIwOEVFRSAvKiBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eUNsaWVudC5oICov
OyB9OwogCQlCQ0FDMTEyMDEyQzkyQzFGMDBCMDhFRUUgLyogV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNBQzExMUUxMkM5MkMxRjAwQjA4RUVFIC8qIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5Q2xp
ZW50LmNwcCAqLzsgfTsKLQkJQkNBQ0M0NDkxNkIyNEQzMjAwQjZFMDkyIC8qIFdlYkNvbnRlbnRT
ZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDQUNDNDQxMTZCMjRDQUEwMEI2RTA5MiAvKiBXZWJDb250ZW50U2VydmljZU1haW4ubW0g
Ki87IH07Ci0JCUJDQUNDNDRBMTZCMjREMzYwMEI2RTA5MiAvKiBXZWJDb250ZW50U2VydmljZU1h
aW4uRGV2ZWxvcG1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0FDQzQ0NDE2QjI0Q0FBMDBCNkUwOTIgLyogV2ViQ29udGVudFNlcnZpY2VNYWlu
LkRldmVsb3BtZW50Lm1tICovOyB9OwogCQlCQ0FFOUUwODE2MEMxQzA3MDBBMzMyMTcgLyogV2Vi
S2l0Mi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4REMyRUY1QjA0ODZBNjk0MDA5OEIyMTYgLyogV2ViS2l0Mi5mcmFtZXdvcmsgKi87
IH07CiAJCUJDQUU5RTA5MTYwQzIzM0IwMEEzMzIxNyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0RFNDY4
MTVBOTE3NjMwMDhEMjZGQyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKLQkJQkNBRjM1
QkMxNkNBMUUyNDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01haW5Cb290c3RyYXBw
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNB
RjM1QjkxNkNBMUUyNDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01haW5Cb290c3Ry
YXBwZXIuY3BwICovOyB9OwogCQlCQ0FGMzVENTE2Q0EyMTI0MDBENEU5RkMgLyogT2ZmbGluZVN0
b3JhZ2VQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkNBRjM1RDExNkNBMjEyNDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vz
c01hYy5tbSAqLzsgfTsKIAkJQkNBRjM1RDcxNkNBMjEyNDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9y
YWdlUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0FGMzVEMjE2Q0EyMTI0MDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmNw
cCAqLzsgfTsKIAkJQkNBRjM1RDkxNkNBMjEyNDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJv
Y2Vzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNB
RjM1RDMxNkNBMjEyNDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy5oICovOyB9OwpA
QCAtODkzLDggKzkwMiw2IEBACiAJCUJDQUYzNUU4MTZDQTI1M0IwMEQ0RTlGQyAvKiBPZmZsaW5l
U3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBRjM1RTYxNkNBMjUzQjAwRDRFOUZDIC8qIE9m
ZmxpbmVTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi87IH07CiAJCUJDQUYz
NUU5MTZDQTI1M0IwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNBRjM1RTYxNkNBMjUzQjAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAgKi87IH07CiAJCUJDQUYzNUVBMTZDQTI1M0IwMEQ0RTlGQyAvKiBPZmZs
aW5lU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQUYzNUU3MTZDQTI1M0IwMEQ0RTlGQyAvKiBP
ZmZsaW5lU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLzsgfTsKLQkJQkNBRjM2
MTMxNkNBMjZCODAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlU2VydmljZU1haW4ubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0FGMzVDMDE2Q0ExRjlE
MDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlTWFpbi5tbSAqLzsgfTsKLQkJQkNBRjM2
MTQxNkNBMjZCQjAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlU2VydmljZU1haW4uRGV2ZWxvcG1l
bnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0FG
MzVDMzE2Q0ExRjlEMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlTWFpbi5EZXZlbG9w
bWVudC5tbSAqLzsgfTsKIAkJQkNBRjM2MUIxNkNBMjg1NDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9y
YWdlUHJvY2Vzcy5hcHAgaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDQUYzNTlBMTZDQTFENTcwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3Mu
YXBwICovOyB9OwogCQlCQ0FGMzYxQzE2Q0EyODY3MDBENEU5RkMgLyogY29tLmFwcGxlLldlYktp
dC5PZmZsaW5lU3RvcmFnZS5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNBRjM2MTUxNkNBMjc0MDAwRDRFOUZDIC8qIGNvbS5hcHBsZS5XZWJLaXQu
T2ZmbGluZVN0b3JhZ2Uuc2IgKi87IH07CiAJCUJDQUYzNjFEMTZDQTI4QzEwMEQ0RTlGQyAvKiBG
b3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDM0RFNDY4MTVBOTE3NjMwMDhEMjZGQyAvKiBGb3VuZGF0aW9uLmZyYW1l
d29yayAqLzsgfTsKQEAgLTk0MCw3ICs5NDcsNiBAQAogCQlCQ0JEMzkxNDEyNUJCMUE4MDBEMkMy
OUYgLyogV2ViUGFnZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkQzOTEyMTI1QkIxQTgwMEQyQzI5RiAvKiBX
ZWJQYWdlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlCQ0JEMzkxNTEyNUJCMUE4
MDBEMkMyOUYgLyogV2ViUGFnZVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkQzOTEzMTI1QkIxQTgwMEQyQzI5RiAvKiBXZWJQ
YWdlUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQlCQ0JEM0MzQjEyNUJGQTdBMDBEMkMyOUYgLyog
U3RyaW5nUGFpclZlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkNCRDNDM0ExMjVCRkE3QTAwRDJDMjlGIC8qIFN0cmluZ1BhaXJWZWN0b3IuaCAq
LzsgfTsKLQkJQkNCRUNEQzMxNkI1Q0VCMTAwMDQ3QTFBIC8qIFBsdWdpblNlcnZpY2UuRGV2ZWxv
cG1lbnQuTWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDQkVDREMxMTZCNUNFMEQwMDA0N0ExQSAvKiBQbHVnaW5TZXJ2aWNlLkRldmVsb3BtZW50
Lk1haW4ubW0gKi87IH07CiAJCUJDQkVDREU3MTZCNjQxNjgwMDA0N0ExQSAvKiBYUENTZXJ2aWNl
RW50cnlQb2ludC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDQkVDREU1MTZCNjQxNjcwMDA0N0ExQSAvKiBYUENTZXJ2aWNlRW50cnlQb2ludC5tbSAq
LzsgfTsKIAkJQkNCRUNERTgxNkI2NDE2ODAwMDQ3QTFBIC8qIFhQQ1NlcnZpY2VFbnRyeVBvaW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JFQ0RF
NjE2QjY0MTY3MDAwNDdBMUEgLyogWFBDU2VydmljZUVudHJ5UG9pbnQuaCAqLzsgfTsKIAkJQkND
NDNBQkExMjdCOTVEQzAwMzE3RjE2IC8qIFBsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M0M0FCODEyN0I5NURD
MDAzMTdGMTYgLyogUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcCAqLzsgfTsKQEAgLTEyNjMsMTMg
KzEyNjksNiBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA4REMyRUY0RjA0ODZBNjk0MDA5
OEIyMTY7CiAJCQlyZW1vdGVJbmZvID0gV2ViS2l0MjsKIAkJfTsKLQkJQkNDREUyRDUxNkM4OERB
QTAwRDkwMzEwIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKLQkJCWlzYSA9IFBCWENv
bnRhaW5lckl0ZW1Qcm94eTsKLQkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZD
MDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKLQkJCXByb3h5VHlwZSA9IDE7Ci0JCQlyZW1v
dGVHbG9iYWxJRFN0cmluZyA9IEJDODI4M0Y4MTZCNEZEREUwMEEyNzhGRTsKLQkJCXJlbW90ZUlu
Zm8gPSBQbHVnaW4uMzI7Ci0JCX07CiAJCUJDREUwOTM1MTMyNzI0OTYwMDEyNTlGQiAvKiBQQlhD
b250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7
CiAJCQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVj
dCBvYmplY3QgKi87CkBAIC0xNTExLDggKzE1MTAsOCBAQAogCQkxQTZGQkQyNjExRTY5QkMyMDBE
QjEzNzEgLyogTmV0c2NhcGVQbHVnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTmV0c2NhcGVQbHVnaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE2RkJE
MjcxMUU2OUJDMjAwREIxMzcxIC8qIE5ldHNjYXBlUGx1Z2luLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHNjYXBlUGx1Z2luLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUE3ODY1QjYxNkNBQzZGRDAwQUNFODNBIC8qIFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBNzg2
NUI3MTZDQUM3MTUwMEFDRTgzQSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBNzg2NUI4MTZDQUM3MTUwMEFDRTgzQSAvKiBQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdlcy5oOyBwYXRo
ID0gUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUE3ODY1QjcxNkNBQzcxNTAwQUNFODNBIC8qIFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQTc4NjVCODE2Q0FD
NzE1MDBBQ0U4M0EgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyTWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE3QzZDRDgx
Mzc4OTUwODAwQjlDMDREIC8qIEVudmlyb25tZW50VmFyaWFibGVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVudmlyb25tZW50VmFyaWFibGVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE3QzZDRDkxMzc4OTUwODAwQjlDMDREIC8qIEVudmly
b25tZW50VmFyaWFibGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVudmly
b25tZW50VmFyaWFibGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBOEVGNEM5
MTI1MjQwMzcwMEY3MDY3RiAvKiBQbHVnaW5Db250cm9sbGVyUHJveHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luQ29udHJvbGxlclByb3h5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNTg1LDkgKzE1ODQsNiBAQAogCQkxQUIzMUE5MzE2QkM2NUFC
MDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3RvcmFnZU1hbmFn
ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQjMxQTk0MTZC
QzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQjMxQTk1MTZCQzY4ODEw
MEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMUFCNzc5QzkxNkM5OUU2NDAwRTJDRTQxIC8qIFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1h
bmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBQjc3OUNB
MTZDOUExMjYwMEUyQ0U0MSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMUFCNzc5Q0IxNkM5QTEyNjAwRTJDRTQxIC8qIFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQjdENEM4MTI4OEFBQTcwMENGRDA4QyAvKiBEb3dubG9h
ZFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvd25sb2FkUHJveHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFCN0Q0QzkxMjg4QUFBNzAwQ0ZEMDhD
IC8qIERvd25sb2FkUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRG93bmxvYWRQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQjdE
NUU5MTI4OEI4QzAwMENGRDA4QyAvKiBEb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IERvd25sb2FkUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xOTQxLDcgKzE5MzcsNyBAQAogCQk1RDUxODQ1NDEzQkNGOUNDMDBD
N0ZGNEEgLyogQVBJQ2xpZW50VHJhaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFQSUNsaWVudFRyYWl0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REE2
RUQwODE0OTA2MDY5MDBCNDFEMTIgLyogRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IER5bmFtaWNMaW5rZXJFbnZpcm9u
bWVudEV4dHJhY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REE2RUQwOTE0
OTA2MDY5MDBCNDFEMTIgLyogRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHluYW1pY0xpbmtlckVudmly
b25tZW50RXh0cmFjdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1REFENzI5
NDExNkZGNzBCMDBFRTUzOTYgLyogV2ViUHJvY2Vzcy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
eGNjb25maWc7IHBhdGggPSBXZWJQcm9jZXNzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1REFENzI5NDExNkZGNzBCMDBFRTUzOTYgLyogV2ViQ29udGVudFByb2Nlc3Mu
eGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViQ29udGVudFByb2Nl
c3MueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEQUQ3M0YxMTE2RkY5
MEMwMEVFNTM5NiAvKiBCYXNlVGFyZ2V0LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZp
ZzsgcGF0aCA9IEJhc2VUYXJnZXQueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTY1NDZBODI5MTMwMDAxNjQwMDBDRUIxQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJj
ZUxvYWRDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5q
ZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNjU0NkE4MkExMzAwMDE2NDAwMENFQjFDIC8qIEluamVjdGVkQnVuZGxlUGFn
ZVJlc291cmNlTG9hZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIxODgsNiArMjE4NCw4IEBACiAJCUJDNTk1NDg4MTVDNzg2ODUwMEZEMUUz
RSAvKiBXZWJLaXQyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdDIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1OTcwNzQxMTY1OTFEMDAwNTUxRkNB
IC8qIFByb2Nlc3NNb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9j
ZXNzTW9kZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1Qzc1QzYxNDk1NERB
NjAwQkM0Nzc1IC8qIFdLQ29ubmVjdGlvbkludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLQ29ubmVjdGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUJDNUQyNDlGMTZDQzNCOUUwMDdENTQ2MSAvKiBDaGlsZFByb2Nlc3NNYWluLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2hpbGRQcm9jZXNzTWFp
bi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM1RDI0QjgxNkNDNDBCQjAwN0Q1
NDYxIC8qIEJhc2VMZWdhY3lQcm9jZXNzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2VMZWdh
Y3lQcm9jZXNzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzYwQzU3
NzEyNDBBNTQ2MDA4QzVFMjkgLyogV0tCdW5kbGVSYW5nZUhhbmRsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZVJhbmdlSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDNjBDNTc4MTI0MEE1NDYwMDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdl
SGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxl
UmFuZ2VIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzY0Njk2RDEx
REJFNjAzMDA2NDU1QjAgLyogSW1tdXRhYmxlQXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW1tdXRhYmxlQXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjIxOSwyNiArMjIxNywxOSBAQAogCQlCQzgxNDdENDEyRjY2RDMxMDA3QjJD
MzIgLyogSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDODI4MzY0MTZCMzU0RjYwMEEyNzhGRSAv
KiBXZWJDb250ZW50UHJvY2Vzc01haW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJDb250ZW50UHJvY2Vzc01haW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDODI4MzczMTZCMzVBRjkwMEEyNzhGRSAvKiBJbmZvLnBsaXN0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7
IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzgyODM3
NDE2QjM2NzRCMDBBMjc4RkUgLyogV2ViQ29udGVudFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbnRlbnRQcm9jZXNz
TWFpbkJvb3RzdHJhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDODI4
Mzc3MTZCMzY3RjgwMEEyNzhGRSAvKiBDaGlsZFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoaWxkUHJvY2Vzc01haW5Cb290c3RyYXBw
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM4MjgzNzgxNkIzNkE0RjAwQTI3
OEZFIC8qIENoaWxkUHJvY2Vzc01haW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ2hpbGRQcm9jZXNzTWFpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzgy
ODM3OTE2QjM2QTRGMDBBMjc4RkUgLyogQ2hpbGRQcm9jZXNzTWFpbi5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENoaWxkUHJvY2Vzc01haW4ubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDODI4Mzc4MTZCMzZBNEYwMEEyNzhGRSAvKiBDaGlsZFBy
b2Nlc3NFbnRyeVBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoaWxk
UHJvY2Vzc0VudHJ5UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM4Mjgz
NzkxNkIzNkE0RjAwQTI3OEZFIC8qIENoaWxkUHJvY2Vzc0VudHJ5UG9pbnQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDaGlsZFByb2Nlc3NFbnRyeVBvaW50Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzgyODM3RjE2QjQ1REE1MDBBMjc4RkUg
LyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gSW5mby5wbGlz
dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM4MjgzODAxNkI0NURBNTAwQTI3OEZF
IC8qIE5ldHdvcmtQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzgyODM4MTE2QjQ1REE1MDBBMjc4RkUgLyog
TmV0d29ya1Byb2Nlc3NNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gTmV0d29ya1Byb2Nlc3NNYWluLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCQzgyODM4OTE2QjQ1RUYyMDBBMjc4RkUgLyogUGx1Z2luUHJvY2Vzc01haW5Cb290c3RyYXBw
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGx1Z2luUHJvY2Vzc01haW5Cb290c3RyYXBwZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzgyODM4QTE2QjQ1RUYyMDBBMjc4
RkUgLyogUGx1Z2luUHJvY2Vzc01haW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbHVnaW5Q
cm9jZXNzTWFpbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM4MjgzOEQxNkI0
NUZBNjAwQTI3OEZFIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDODI4MzkxMTZCNDYwMEQwMEEyNzhGRSAvKiBJ
bmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlCQzgyODM5MjE2QjQ2MDdCMDBBMjc4RkUgLyogU2hhcmVkV29ya2VyUHJvY2Vz
c01haW5Cb290c3RyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkV29ya2VyUHJv
Y2Vzc01haW5Cb290c3RyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
QzgyODM5MzE2QjQ2MDdCMDBBMjc4RkUgLyogU2hhcmVkV29ya2VyUHJvY2Vzc01haW4ubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbi5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM4MjgzOTYxNkI0N0VDNDAwQTI3OEZFIC8qIFhQQ1NlcnZp
Y2VCb290c3RyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBDU2VydmljZUJvb3RzdHJhcHBlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzgyODM5NzE2QjQ4MEY2MDBBMjc4RkUg
LyogWFBDU2VydmljZUJvb3RzdHJhcHBlci5EZXZlbG9wbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBY
UENTZXJ2aWNlQm9vdHN0cmFwcGVyLkRldmVsb3BtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUJDODI4Mzk2MTZCNDdFQzQwMEEyNzhGRSAvKiBYUENTZXJ2aWNlTWFpbi5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFhQQ1NlcnZpY2VNYWluLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlCQzgyODM5NzE2QjQ4MEY2MDBBMjc4RkUgLyogWFBDU2VydmljZU1haW4u
RGV2ZWxvcG1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBYUENTZXJ2aWNlTWFpbi5EZXZl
bG9wbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM4MjgzOTgxNkI0OERD
MDAwQTI3OEZFIC8qIFdlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM4MjgzQTMxNkI0QkQ5MTAwQTI3OEZF
IC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUJDODI4M0E0MTZCNEJEOTEwMEEyNzhGRSAvKiBOZXR3b3JrU2Vydmlj
ZU1haW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrU2VydmljZU1haW4ubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDODI4M0E2MTZCNEJEOTEwMEEyNzhGRSAvKiBJ
bmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlCQzgyODNBNzE2QjRCRDkxMDBBMjc4RkUgLyogTmV0d29ya1NlcnZpY2VNYWlu
LkRldmVsb3BtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1NlcnZpY2VNYWlu
LkRldmVsb3BtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzgyODNBODE2
QjRCRDkxMDBBMjc4RkUgLyogTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzgyODNBQTE2QjRCRUFEMDBBMjc4RkUgLyogTmV0d29ya1NlcnZpY2Uu
RGV2ZWxvcG1lbnQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gTmV0d29ya1NlcnZpY2UuRGV2ZWxv
cG1lbnQueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDODI4M0FCMTZC
NEJFQUQwMEEyNzhGRSAvKiBOZXR3b3JrU2VydmljZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBO
ZXR3b3JrU2VydmljZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIy
NDcsNyArMjIzOCw2IEBACiAJCUJDODI4M0U0MTZCNEY4RTIwMEEyNzhGRSAvKiBJbmZvLnBsaXN0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5w
bGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzgyODNFNTE2QjRGOEUyMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS4zMi5NYWluLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gUGx1Z2luU2VydmljZS4zMi5NYWluLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzgyODNFQTE2QjRGOEUyMDBBMjc4RkUgLyogSW5mby5wbGlz
dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
cGxpc3QueG1sOyBwYXRoID0gSW5mby5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQkM4MjgzRUIxNkI0RjhFMjAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuNjQuTWFpbi5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsdWdpblNlcnZpY2UuNjQuTWFpbi5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM4MjgzRUYxNkI0RjhFMjAwQTI3OEZFIC8qIFBsdWdpblNl
cnZpY2VFbnRyeVBvaW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGx1Z2luU2VydmljZUVu
dHJ5UG9pbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDODI4M0YyMTZCNEZD
NTMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjMyLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFBs
dWdpblNlcnZpY2UuMzIueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
ODI4M0Y0MTZCNEZDNTMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjY0LnhjY29uZmlnICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZp
ZzsgcGF0aCA9IFBsdWdpblNlcnZpY2UuNjQueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMzEyLDE4ICsyMzAyLDEzIEBACiAJCUJDQUNDNDBFMTZCMEI4QTgwMEI2RTA5
MiAvKiBXZWJDb250ZW50U2VydmljZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBXZWJDb250ZW50
U2VydmljZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBQ0M0MEYx
NkIwQjhBODAwQjZFMDkyIC8qIFdlYkNvbnRlbnRTZXJ2aWNlLkRldmVsb3BtZW50LnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54
Y2NvbmZpZzsgcGF0aCA9IFdlYkNvbnRlbnRTZXJ2aWNlLkRldmVsb3BtZW50LnhjY29uZmlnOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0FDQzQ0MDE2QjI0Q0FBMDBCNkUwOTIgLyog
SW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gSW5mby5wbGlzdDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNBQ0M0NDExNkIyNENBQTAwQjZFMDkyIC8q
IFdlYkNvbnRlbnRTZXJ2aWNlTWFpbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdlYkNvbnRlbnRTZXJ2aWNlTWFpbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkNBQ0M0NDMxNkIyNENBQTAwQjZFMDkyIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUJDQUNDNDQ0MTZCMjRDQUEwMEI2RTA5MiAvKiBXZWJDb250ZW50U2VydmljZU1h
aW4uRGV2ZWxvcG1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJDb250ZW50U2VydmljZU1haW4uRGV2ZWxvcG1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDQUU5REU5MTYwQzA5NzQwMEEzMzIxNyAvKiBjb20uYXBwbGUuV2ViS2l0
LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQueHBjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmNmYnVuZGxlOyBpbmNsdWRlSW5JbmRleCA9IDA7
IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQueHBjOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlCQ0FGMzU5QTE2Q0ExRDU3MDBENEU5
RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmFwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5hcHBsaWNhdGlvbjsgaW5jbHVkZUluSW5k
ZXggPSAwOyBwYXRoID0gT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmFwcDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJQkNBRjM1QjcxNkNBMUUyNDAwRDRFOUZDIC8qIEluZm8u
cGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQUYzNUI4MTZDQTFFMjQwMEQ0RTlGQyAvKiBPZmZs
aW5lU3RvcmFnZVByb2Nlc3NNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFpbi5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkNBRjM1QjkxNkNBMUUyNDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJv
Y2Vzc01haW5Cb290c3RyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQUYzNUJGMTZDQTFGOUQwMEQ0RTlGQyAvKiBJbmZvLnBs
aXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0FGMzVDMDE2Q0ExRjlEMDBENEU5RkMgLyogT2ZmbGlu
ZVN0b3JhZ2VTZXJ2aWNlTWFpbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IE9mZmxpbmVTdG9yYWdlU2VydmljZU1haW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDQUYzNUMyMTZDQTFGOUQwMEQ0RTlGQyAvKiBJbmZvLnBsaXN0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlCQ0FGMzVDMzE2Q0ExRjlEMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VTZXJ2
aWNlTWFpbi5EZXZlbG9wbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IE9mZmxpbmVTdG9yYWdlU2VydmljZU1haW4uRGV2ZWxvcG1lbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQUYzNUM0MTZDQTFGOUQwMEQ0RTlGQyAvKiBPZmZsaW5l
U3RvcmFnZVNlcnZpY2VFbnRyeVBvaW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlRW50cnlQb2ludC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBRjM1Q0ExNkNBMjA0MzAwRDRFOUZDIC8qIE9mZmxpbmVT
dG9yYWdlUHJvY2Vzcy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBP
ZmZsaW5lU3RvcmFnZVByb2Nlc3MueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDQUYzNUNCMTZDQTIwNDMwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVNlcnZpY2UuRGV2
ZWxvcG1lbnQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gT2ZmbGlu
ZVN0b3JhZ2VTZXJ2aWNlLkRldmVsb3BtZW50LnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjM3NCw3ICsyMzU5LDYgQEAKIAkJQkNCRDM5MTMxMjVCQjFBODAwRDJDMjlG
IC8qIFdlYlBhZ2VQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYlBhZ2VQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDQkQzQzNBMTI1QkZBN0EwMEQyQzI5RiAvKiBTdHJpbmdQYWlyVmVjdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ1BhaXJWZWN0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNCRUNEQzAxNkI1Q0UwRDAwMDQ3QTFBIC8qIEluZm8ucGxpc3Qg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBs
aXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUJDQkVDREMxMTZCNUNFMEQwMDA0N0ExQSAvKiBQbHVnaW5TZXJ2aWNlLkRldmVsb3BtZW50Lk1h
aW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbHVnaW5TZXJ2aWNlLkRldmVsb3BtZW50Lk1h
aW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkVDREMyMTZCNUNFMkEwMDA0
N0ExQSAvKiBQbHVnaW5TZXJ2aWNlLkRldmVsb3BtZW50LnhjY29uZmlnICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9
IFBsdWdpblNlcnZpY2UuRGV2ZWxvcG1lbnQueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDQkVDREU1MTZCNjQxNjcwMDA0N0ExQSAvKiBYUENTZXJ2aWNlRW50cnlQb2lu
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFhQQ1NlcnZpY2VF
bnRyeVBvaW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0JFQ0RFNjE2QjY0
MTY3MDAwNDdBMUEgLyogWFBDU2VydmljZUVudHJ5UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gWFBDU2VydmljZUVudHJ5UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI2MzgsNiArMjYyMiwzMCBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQlCQzVEMjRCMDE2Q0MzRjI4MDA3RDU0
NjEgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNl
OworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCUJD
NUQyNEIxMTZDQzNGMzYwMDdENTQ2MSAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdv
cmtzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OworCQl9OworCQlCQzVEMjRCMjE2Q0MzRjNCMDA3RDU0NjEgLyogRnJhbWV3b3JrcyAqLyA9IHsK
KwkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCUJDNUQyNEIzMTZDQzNGM0YwMDdENTQ2MSAv
KiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAorCQkJKTsKKwkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OworCQlCQzVEMjRCNDE2Q0Mz
RjQzMDA3RDU0NjEgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NC
dWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0g
KAorCQkJCUJDNUQyNEI1MTZDQzNGNDYwMDdENTQ2MSAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOworCQl9OwogCQlCQzgyODNBRTE2QjRCRjc3MDBBMjc4RkUgLyogRnJhbWV3b3Jr
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTI2NTksNyArMjY2Nyw2IEBACiAJCQlpc2EgPSBQQlhG
cmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJ
CQlmaWxlcyA9ICgKLQkJCQlCQzgyODNGQTE2QjRGRERFMDBBMjc4RkUgLyogRm91bmRhdGlvbi5m
cmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQlCQzgyODQ0RTE2QjUwODk0MDBBMjc4RkUg
LyogV2ViS2l0Mi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTI2NjgsNyArMjY3NSw2IEBACiAJ
CQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIx
NDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQlCQzgyODQyMDE2QjRGREY2MDBBMjc4RkUgLyog
Rm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQlCQzgyODQ0RjE2QjUw
ODk4MDBBMjc4RkUgLyogV2ViS2l0Mi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTI2OTMsNiAr
MjY5OSw3IEBACiAJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQlCQzVEMjRCNzE2Q0MzRjVE
MDA3RDU0NjEgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI3
MjYsNiArMjczMyw3IEBACiAJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1
aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQlCQzVEMjRCNjE2
Q0MzRjREMDA3RDU0NjEgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTI5MDAsNiArMjkwOCw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTFBNEY5NzZBMTAwRTdCNjYwMDYzN0ExOCAvKiBCYXNlLnhjY29uZmlnICovLAorCQkJ
CUJDNUQyNEI4MTZDQzQwQkIwMDdENTQ2MSAvKiBCYXNlTGVnYWN5UHJvY2Vzcy54Y2NvbmZpZyAq
LywKIAkJCQk1REFENzNGMTExNkZGOTBDMDBFRTUzOTYgLyogQmFzZVRhcmdldC54Y2NvbmZpZyAq
LywKIAkJCQlCQ0FDQzQwRDE2QjBCN0JFMDBCNkUwOTIgLyogQmFzZVhQQ1NlcnZpY2UueGNjb25m
aWcgKi8sCiAJCQkJMUE0Rjk3NkIxMDBFN0I2NjAwNjM3QTE4IC8qIERlYnVnUmVsZWFzZS54Y2Nv
bmZpZyAqLywKQEAgLTI5MTcsMTAgKzI5MjYsMTAgQEAKIAkJCQlFMTNBOEE0QjE2Mjg3QTFCMDAz
OTI5MjkgLyogU2hhcmVkV29ya2VyUHJvY2Vzcy54Y2NvbmZpZyAqLywKIAkJCQk1MTgzQjM5MzEz
NzlGODVDMDBFODc1NEUgLyogU2hpbS54Y2NvbmZpZyAqLywKIAkJCQkxQTRGOTc2RTEwMEU3QjY2
MDA2MzdBMTggLyogVmVyc2lvbi54Y2NvbmZpZyAqLywKKwkJCQk1REFENzI5NDExNkZGNzBCMDBF
RTUzOTYgLyogV2ViQ29udGVudFByb2Nlc3MueGNjb25maWcgKi8sCiAJCQkJQkNBQ0M0MEYxNkIw
QjhBODAwQjZFMDkyIC8qIFdlYkNvbnRlbnRTZXJ2aWNlLkRldmVsb3BtZW50LnhjY29uZmlnICov
LAogCQkJCUJDQUNDNDBFMTZCMEI4QTgwMEI2RTA5MiAvKiBXZWJDb250ZW50U2VydmljZS54Y2Nv
bmZpZyAqLywKIAkJCQlCQ0I4NkY0QjExNkFBQUNEMDBDRTIwQjcgLyogV2ViS2l0Mi54Y2NvbmZp
ZyAqLywKLQkJCQk1REFENzI5NDExNkZGNzBCMDBFRTUzOTYgLyogV2ViUHJvY2Vzcy54Y2NvbmZp
ZyAqLywKIAkJCSk7CiAJCQlwYXRoID0gQ29uZmlndXJhdGlvbnM7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtNDMyMCw5ICs0MzI5LDkgQEAKIAkJQkM4MjgzNkExNkIzNTg3OTAwQTI3
OEZFIC8qIExlZ2FjeVByb2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAotCQkJCUJDODI4Mzc4MTZCMzZBNEYwMEEyNzhGRSAvKiBDaGlsZFByb2Nlc3NNYWlu
LmggKi8sCi0JCQkJQkM4MjgzNzkxNkIzNkE0RjAwQTI3OEZFIC8qIENoaWxkUHJvY2Vzc01haW4u
bW0gKi8sCi0JCQkJQkM4MjgzNzcxNkIzNjdGODAwQTI3OEZFIC8qIENoaWxkUHJvY2Vzc01haW5C
b290c3RyYXBwZXIuaCAqLywKKwkJCQlCQzgyODM3ODE2QjM2QTRGMDBBMjc4RkUgLyogQ2hpbGRQ
cm9jZXNzRW50cnlQb2ludC5oICovLAorCQkJCUJDODI4Mzc5MTZCMzZBNEYwMEEyNzhGRSAvKiBD
aGlsZFByb2Nlc3NFbnRyeVBvaW50Lm1tICovLAorCQkJCUJDNUQyNDlGMTZDQzNCOUUwMDdENTQ2
MSAvKiBDaGlsZFByb2Nlc3NNYWluLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBMZWdhY3lQcm9j
ZXNzOwogCQkJcGF0aCA9IG1hYy9MZWdhY3lQcm9jZXNzOwpAQCAtNDMzMSw4ICs0MzQwLDggQEAK
IAkJQkM4MjgzNkIxNkIzNTg3OTAwQTI3OEZFIC8qIFhQQ1NlcnZpY2UgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUJDODI4Mzk3MTZCNDgwRjYwMEEyNzhG
RSAvKiBYUENTZXJ2aWNlQm9vdHN0cmFwcGVyLkRldmVsb3BtZW50LmggKi8sCi0JCQkJQkM4Mjgz
OTYxNkI0N0VDNDAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VCb290c3RyYXBwZXIuaCAqLywKKwkJCQlC
QzgyODM5NzE2QjQ4MEY2MDBBMjc4RkUgLyogWFBDU2VydmljZU1haW4uRGV2ZWxvcG1lbnQubW0g
Ki8sCisJCQkJQkM4MjgzOTYxNkI0N0VDNDAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1tICov
LAogCQkJCUJDQkVDREU2MTZCNjQxNjcwMDA0N0ExQSAvKiBYUENTZXJ2aWNlRW50cnlQb2ludC5o
ICovLAogCQkJCUJDQkVDREU1MTZCNjQxNjcwMDA0N0ExQSAvKiBYUENTZXJ2aWNlRW50cnlQb2lu
dC5tbSAqLywKIAkJCSk7CkBAIC00MzU1LDcgKzQzNjQsNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJ
CQkJQkM4MjgzN0YxNkI0NURBNTAwQTI3OEZFIC8qIEluZm8ucGxpc3QgKi8sCiAJCQkJQkM4Mjgz
ODExNkI0NURBNTAwQTI3OEZFIC8qIE5ldHdvcmtQcm9jZXNzTWFpbi5tbSAqLywKLQkJCQlCQzgy
ODM4MDE2QjQ1REE1MDBBMjc4RkUgLyogTmV0d29ya1Byb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNw
cCAqLywKIAkJCSk7CiAJCQluYW1lID0gTGVnYWN5UHJvY2VzczsKIAkJCXBhdGggPSBtYWMvTGVn
YWN5UHJvY2VzczsKQEAgLTQzNzUsNyArNDM4Myw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlC
QzgyODM4RDE2QjQ1RkE2MDBBMjc4RkUgLyogSW5mby5wbGlzdCAqLywKIAkJCQlCQzgyODM4QTE2
QjQ1RUYyMDBBMjc4RkUgLyogUGx1Z2luUHJvY2Vzc01haW4ubW0gKi8sCi0JCQkJQkM4MjgzODkx
NkI0NUVGMjAwQTI3OEZFIC8qIFBsdWdpblByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCAqLywK
IAkJCSk7CiAJCQluYW1lID0gTGVnYWN5UHJvY2VzczsKIAkJCXBhdGggPSBtYWMvTGVnYWN5UHJv
Y2VzczsKQEAgLTQzOTQsNyArNDQwMSw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlCQzgyODM5
MTE2QjQ2MDBEMDBBMjc4RkUgLyogSW5mby5wbGlzdCAqLywKIAkJCQlCQzgyODM5MzE2QjQ2MDdC
MDBBMjc4RkUgLyogU2hhcmVkV29ya2VyUHJvY2Vzc01haW4ubW0gKi8sCi0JCQkJQkM4MjgzOTIx
NkI0NjA3QjAwQTI3OEZFIC8qIFNoYXJlZFdvcmtlclByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNw
cCAqLywKIAkJCSk7CiAJCQluYW1lID0gTGVnYWN5UHJvY2VzczsKIAkJCXBhdGggPSBtYWMvTGVn
YWN5UHJvY2VzczsKQEAgLTQ0MTUsNyArNDQyMSw2IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCUJDODI4M0EzMTZCNEJEOTEwMEEyNzhGRSAvKiBJbmZvLnBsaXN0
ICovLAotCQkJCUJDODI4M0E0MTZCNEJEOTEwMEEyNzhGRSAvKiBOZXR3b3JrU2VydmljZU1haW4u
bW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IE5ldHdvcmtTZXJ2aWNlOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTQ0MjQsNyArNDQyOSw2IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCUJDODI4M0E2MTZCNEJEOTEwMEEyNzhGRSAvKiBJbmZvLnBsaXN0
ICovLAotCQkJCUJDODI4M0E3MTZCNEJEOTEwMEEyNzhGRSAvKiBOZXR3b3JrU2VydmljZU1haW4u
RGV2ZWxvcG1lbnQubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IE5ldHdvcmtTZXJ2aWNlLkRldmVs
b3BtZW50OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ0NTQsNyArNDQ1OCw2IEBA
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUJDODI4M0VBMTZCNEY4
RTIwMEEyNzhGRSAvKiBJbmZvLnBsaXN0ICovLAotCQkJCUJDODI4M0VCMTZCNEY4RTIwMEEyNzhG
RSAvKiBQbHVnaW5TZXJ2aWNlLjY0Lk1haW4ubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IFBsdWdp
blNlcnZpY2UuNjQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNDUxNyw3ICs0NTIw
LDYgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUJDODI4MzczMTZCMzVBRjkwMEEyNzhGRSAvKiBJ
bmZvLnBsaXN0ICovLAogCQkJCUJDODI4MzY0MTZCMzU0RjYwMEEyNzhGRSAvKiBXZWJDb250ZW50
UHJvY2Vzc01haW4ubW0gKi8sCi0JCQkJQkM4MjgzNzQxNkIzNjc0QjAwQTI3OEZFIC8qIFdlYkNv
bnRlbnRQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAgKi8sCiAJCQkpOwogCQkJbmFtZSA9IExl
Z2FjeVByb2Nlc3M7CiAJCQlwYXRoID0gbWFjL0xlZ2FjeVByb2Nlc3M7CkBAIC00NTM4LDcgKzQ1
NDAsNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlCQ0FDQzQ0
MDE2QjI0Q0FBMDBCNkUwOTIgLyogSW5mby5wbGlzdCAqLywKLQkJCQlCQ0FDQzQ0MTE2QjI0Q0FB
MDBCNkUwOTIgLyogV2ViQ29udGVudFNlcnZpY2VNYWluLm1tICovLAogCQkJKTsKIAkJCXBhdGgg
PSBXZWJDb250ZW50U2VydmljZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00NTQ3
LDcgKzQ1NDgsNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlC
Q0FDQzQ0MzE2QjI0Q0FBMDBCNkUwOTIgLyogSW5mby5wbGlzdCAqLywKLQkJCQlCQ0FDQzQ0NDE2
QjI0Q0FBMDBCNkUwOTIgLyogV2ViQ29udGVudFNlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1tICov
LAogCQkJKTsKIAkJCXBhdGggPSBXZWJDb250ZW50U2VydmljZS5EZXZlbG9wbWVudDsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00NTc4LDcgKzQ1NzgsNiBAQAogCQkJY2hpbGRyZW4g
PSAoCiAJCQkJQkNBRjM1QjcxNkNBMUUyNDAwRDRFOUZDIC8qIEluZm8ucGxpc3QgKi8sCiAJCQkJ
QkNBRjM1QjgxNkNBMUUyNDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01haW4ubW0g
Ki8sCi0JCQkJQkNBRjM1QjkxNkNBMUUyNDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vz
c01haW5Cb290c3RyYXBwZXIuY3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSBMZWdhY3lQcm9jZXNz
OwogCQkJcGF0aCA9IG1hYy9MZWdhY3lQcm9jZXNzOwpAQCAtNDU5OSw3ICs0NTk4LDYgQEAKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQkNBRjM1QkYxNkNBMUY5RDAw
RDRFOUZDIC8qIEluZm8ucGxpc3QgKi8sCi0JCQkJQkNBRjM1QzAxNkNBMUY5RDAwRDRFOUZDIC8q
IE9mZmxpbmVTdG9yYWdlU2VydmljZU1haW4ubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IE9mZmxp
bmVTdG9yYWdlU2VydmljZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00NjA4LDcg
KzQ2MDYsNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlCQ0FG
MzVDMjE2Q0ExRjlEMDBENEU5RkMgLyogSW5mby5wbGlzdCAqLywKLQkJCQlCQ0FGMzVDMzE2Q0Ex
RjlEMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbSAq
LywKIAkJCSk7CiAJCQlwYXRoID0gT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlLkRldmVsb3BtZW50Owog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ2NTIsNyArNDY0OSw2IEBACiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUJDQkVDREMwMTZCNUNFMEQwMDA0N0Ex
QSAvKiBJbmZvLnBsaXN0ICovLAotCQkJCUJDQkVDREMxMTZCNUNFMEQwMDA0N0ExQSAvKiBQbHVn
aW5TZXJ2aWNlLkRldmVsb3BtZW50Lk1haW4ubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IFBsdWdp
blNlcnZpY2UuRGV2ZWxvcG1lbnQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTA1
NCw3ICs1MDUwLDcgQEAKIAkJCQlCQzMwNjVGQTEyNTkzNDRFMDBFNzEyNzggLyogQ2FjaGVNb2Rl
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBMkU1MUQxMkU0QzA1RTAwQkM0OTY2IC8qIENHVXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTJEOTU2RjEyODQ4NTY0MDAxRUI5NjIgLyog
Q2hpbGRQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzgyODM3QTE2QjM2QTRGMDBBMjc4
RkUgLyogQ2hpbGRQcm9jZXNzTWFpbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM4MjgzN0ExNkIz
NkE0RjAwQTI3OEZFIC8qIENoaWxkUHJvY2Vzc0VudHJ5UG9pbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUUxNTEzQzY3MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUE2RjlGOTAxMUUxM0VGQzAwREIxMzcxIC8qIENvbW1hbmRMaW5lLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzN0M0RTlGNjEzMUM2RTdFMDAyOUJENUEgLyogY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKQEAgLTU1NjYsNiArNTU2Miw3IEBACiAJCQkJMUE1MERCMUExMTBBM0JE
QzAwMEQzRkU1IC8qIFJlc291cmNlcyAqLywKIAkJCQkxQTUwREIxQjExMEEzQkRDMDAwRDNGRTUg
LyogU291cmNlcyAqLywKIAkJCQk1MTgzQjM4RjEzNzlGNTY4MDBFODc1NEUgLyogQ29weSBTZWMg
SXRlbSBTaGltICovLAorCQkJCUJDNUQyNEIwMTZDQzNGMjgwMDdENTQ2MSAvKiBGcmFtZXdvcmtz
ICovLAogCQkJKTsKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwpAQCAtNTYxOSw2ICs1NjE2LDcg
QEAKIAkJCQk1MTBDQzgwQTE2MTNDNzk5MDBEMDNFRDMgLyogU291cmNlcyAqLywKIAkJCQk1MTBD
QzgwQzE2MTNDNzk5MDBEMDNFRDMgLyogUmVzb3VyY2VzICovLAogCQkJCUUxNzkwOTAwMTY5QkI0
RDMwMDY5MDRDNyAvKiBDb3B5IFNlYyBJdGVtIFNoaW0gKi8sCisJCQkJQkM1RDI0QjQxNkNDM0Y0
MzAwN0Q1NDYxIC8qIEZyYW1ld29ya3MgKi8sCiAJCQkpOwogCQkJYnVpbGRSdWxlcyA9ICgKIAkJ
CSk7CkBAIC01ODM2LDYgKzU4MzQsNyBAQAogCQkJCUJDREUwOTNBMTMyNzI0OTYwMDEyNTlGQiAv
KiBTb3VyY2VzICovLAogCQkJCUJDREUwOTNDMTMyNzI0OTYwMDEyNTlGQiAvKiBDb3B5IFBsdWct
aW4gUHJvY2VzcyBTaGltICovLAogCQkJCUUxNEU5OUZBMTREODc5REIwMDFEMjIxRiAvKiBBZGQg
RW50aXRsZW1lbnRzICovLAorCQkJCUJDNUQyNEIyMTZDQzNGM0IwMDdENTQ2MSAvKiBGcmFtZXdv
cmtzICovLAogCQkJKTsKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwpAQCAtNjIwNCw3ICs2MjAz
LDcgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCUJDODI4Mzc2MTZCMzY3NEIwMEEyNzhG
RSAvKiBXZWJDb250ZW50UHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQkM1RDI0QTExNkNDM0I5RTAwN0Q1NDYxIC8qIENoaWxkUHJvY2Vzc01haW4ubW0gaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTYyMjgsNyArNjIyNyw3IEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVp
bGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgK
LQkJCQlCQzgyODM4NTE2QjQ1REI3MDBBMjc4RkUgLyogTmV0d29ya1Byb2Nlc3NNYWluQm9vdHN0
cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDNUQyNEEzMTZDQzNCOUUwMDdENTQ2MSAv
KiBDaGlsZFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC02MjU3LDcgKzYyNTYsNyBA
QAogCQkJCTFBQTJFNTFFMTJFNEMwNUUwMEJDNDk2NiAvKiBDR1V0aWxpdGllcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQTJEOTU3MDEyODQ4NTY0MDAxRUI5NjIgLyogQ2hpbGRQcm9jZXNzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTlGNTRGODhGMTY0ODhFODcwMDdERjgxQSAvKiBDaGlsZFBy
b2Nlc3NNYWMubW0gaW4gU291cmNlcyAqLywKLQkJCQlCQzgyODM3QjE2QjM2QTRGMDBBMjc4RkUg
LyogQ2hpbGRQcm9jZXNzTWFpbi5tbSBpbiBTb3VyY2VzICovLAorCQkJCUJDODI4MzdCMTZCMzZB
NEYwMEEyNzhGRSAvKiBDaGlsZFByb2Nlc3NFbnRyeVBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTE1MTNDNjYxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBMkE0QjBFMTU4NkEyMjQwMDkwQzlFOSAvKiBDb2xvclNwYWNlRGF0
YS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNkY5RkI3MTFFMTQwODUwMERCMTM3MSAvKiBDb21t
YW5kTGluZU1hYy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTY3NzMsNyArNjc3Miw3IEBACiAJCQlp
c2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQlCQ0FDQzQ0OTE2QjI0RDMyMDBCNkUwOTIgLyogV2ViQ29u
dGVudFNlcnZpY2VNYWluLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQkM1RDI0QUYxNkNDM0Q2NjAw
N0Q1NDYxIC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC02NzgxLDcgKzY3
ODAsNyBAQAogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1h
c2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJQkM4MjgzRDgxNkI0REIyQTAwQTI3
OEZFIC8qIE5ldHdvcmtTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovLAorCQkJCUJDNUQyNEFF
MTZDQzNENjUwMDdENTQ2MSAvKiBYUENTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
Njc4OSw3ICs2Nzg4LDcgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVp
bGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCUJDODI4M0Q5MTZC
NERCMkUwMEEyNzhGRSAvKiBOZXR3b3JrU2VydmljZU1haW4uRGV2ZWxvcG1lbnQubW0gaW4gU291
cmNlcyAqLywKKwkJCQlCQzVEMjRBODE2Q0MzRDVFMDA3RDU0NjEgLyogWFBDU2VydmljZU1haW4u
RGV2ZWxvcG1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTY3OTgsNiArNjc5Nyw3IEBACiAJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQkM4Mjg0NDkx
NkI1MDA0MjAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuMzIuTWFpbi5tbSBpbiBTb3VyY2VzICov
LAorCQkJCUJDNUQyNEFDMTZDQzNENjMwMDdENTQ2MSAvKiBYUENTZXJ2aWNlTWFpbi5tbSBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpAQCAtNjgwNSw3ICs2ODA1LDcgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWls
ZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAot
CQkJCUJDODI4NDRCMTZCNTAwNEQwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjY0Lk1haW4ubW0g
aW4gU291cmNlcyAqLywKKwkJCQlCQzVEMjRBQjE2Q0MzRDYyMDA3RDU0NjEgLyogWFBDU2Vydmlj
ZU1haW4ubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTY4MTMsNyArNjgxMyw3IEBACiAJCQlpc2EgPSBQ
QlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJ
CQlmaWxlcyA9ICgKLQkJCQlCQ0JFQ0RDMzE2QjVDRUIxMDAwNDdBMUEgLyogUGx1Z2luU2Vydmlj
ZS5EZXZlbG9wbWVudC5NYWluLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQkM1RDI0QUExNkNDM0Q1
RjAwN0Q1NDYxIC8qIFhQQ1NlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC02ODIxLDcgKzY4MjEsNyBAQAogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJQkNBQ0M0
NEExNkIyNEQzNjAwQjZFMDkyIC8qIFdlYkNvbnRlbnRTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5t
bSBpbiBTb3VyY2VzICovLAorCQkJCUJDNUQyNEE3MTZDQzNENUQwMDdENTQ2MSAvKiBYUENTZXJ2
aWNlTWFpbi5EZXZlbG9wbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNjgyOSw4ICs2ODI5LDgg
QEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCUJDQUYzNUJDMTZDQTFFMjQwMEQ0RTlGQyAv
KiBPZmZsaW5lU3RvcmFnZVByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDQUYzNUU5MTZDQTI1M0IwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM1RDI0QTUxNkNDM0I5
RTAwN0Q1NDYxIC8qIENoaWxkUHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTY4Mzgs
NyArNjgzOCw3IEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQlCQ0FGMzYxMzE2Q0EyNkI4
MDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovLAor
CQkJCUJDNUQyNEFEMTZDQzNENjQwMDdENTQ2MSAvKiBYUENTZXJ2aWNlTWFpbi5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtNjg0Niw3ICs2ODQ2LDcgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBo
YXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJ
CUJDQUYzNjE0MTZDQTI2QkIwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVNlcnZpY2VNYWluLkRl
dmVsb3BtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQkM1RDI0QTkxNkNDM0Q1RjAwN0Q1NDYx
IC8qIFhQQ1NlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC02ODU0
LDcgKzY4NTQsNyBAQAogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJQkM4MjgzOEIxNkI0NUVG
RjAwQTI3OEZFIC8qIFBsdWdpblByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUJDNUQyNEEyMTZDQzNCOUUwMDdENTQ2MSAvKiBDaGlsZFByb2Nlc3NNYWluLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC02ODYyLDcgKzY4NjIsNyBAQAogCQkJaXNhID0gUEJYU291cmNl
c0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMg
PSAoCi0JCQkJQkM4MjgzOTQxNkI0NjA4MDAwQTI3OEZFIC8qIFNoYXJlZFdvcmtlclByb2Nlc3NN
YWluQm9vdHN0cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDNUQyNEE0MTZDQzNCOUUw
MDdENTQ2MSAvKiBDaGlsZFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC02OTQ5LDEx
ICs2OTQ5LDYgQEAKIAkJCXRhcmdldCA9IDhEQzJFRjRGMDQ4NkE2OTQwMDk4QjIxNiAvKiBXZWJL
aXQyICovOwogCQkJdGFyZ2V0UHJveHkgPSBCQ0FGMzYyMzE2Q0EyOTVGMDBENEU5RkMgLyogUEJY
Q29udGFpbmVySXRlbVByb3h5ICovOwogCQl9OwotCQlCQ0NERTJENjE2Qzg4REFBMDBEOTAzMTAg
LyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKLQkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVu
Y3k7Ci0JCQl0YXJnZXQgPSBCQzgyODNGODE2QjRGRERFMDBBMjc4RkUgLyogUGx1Z2luLjMyICov
OwotCQkJdGFyZ2V0UHJveHkgPSBCQ0NERTJENTE2Qzg4REFBMDBEOTAzMTAgLyogUEJYQ29udGFp
bmVySXRlbVByb3h5ICovOwotCQl9OwogCQlCQ0RFMDkzNDEzMjcyNDk2MDAxMjU5RkIgLyogUEJY
VGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJ
CQl0YXJnZXQgPSAxQUMyNUZBRjEyQTQ4RUE3MDBCRDI2NzEgLyogUGx1Z2luUHJvY2Vzc1NoaW0g
Ki87CkBAIC02OTk1LDE0ICs2OTkwLDE0IEBACiAvKiBCZWdpbiBYQ0J1aWxkQ29uZmlndXJhdGlv
biBzZWN0aW9uICovCiAJCTFBNTBEQjIxMTEwQTNCREQwMDBEM0ZFNSAvKiBEZWJ1ZyAqLyA9IHsK
IAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZl
cmVuY2UgPSA1REFENzI5NDExNkZGNzBCMDBFRTUzOTYgLyogV2ViUHJvY2Vzcy54Y2NvbmZpZyAq
LzsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNURBRDcyOTQxMTZGRjcwQjAwRUU1
Mzk2IC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhjY29uZmlnICovOwogCQkJYnVpbGRTZXR0aW5ncyA9
IHsKIAkJCX07CiAJCQluYW1lID0gRGVidWc7CiAJCX07CiAJCTFBNTBEQjIyMTEwQTNCREQwMDBE
M0ZFNSAvKiBSZWxlYXNlICovID0gewogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0J
CQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEQUQ3Mjk0MTE2RkY3MEIwMEVFNTM5NiAv
KiBXZWJQcm9jZXNzLnhjY29uZmlnICovOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2Ug
PSA1REFENzI5NDExNkZGNzBCMDBFRTUzOTYgLyogV2ViQ29udGVudFByb2Nlc3MueGNjb25maWcg
Ki87CiAJCQlidWlsZFNldHRpbmdzID0gewogCQkJfTsKIAkJCW5hbWUgPSBSZWxlYXNlOwpAQCAt
NzE2OSw3ICs3MTY0LDcgQEAKIAkJfTsKIAkJNUQyMkQ2OUUxMUE3NTM0NjAwQkYzMEU1IC8qIFBy
b2R1Y3Rpb24gKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJhc2VD
b25maWd1cmF0aW9uUmVmZXJlbmNlID0gNURBRDcyOTQxMTZGRjcwQjAwRUU1Mzk2IC8qIFdlYlBy
b2Nlc3MueGNjb25maWcgKi87CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEQUQ3
Mjk0MTE2RkY3MEIwMEVFNTM5NiAvKiBXZWJDb250ZW50UHJvY2Vzcy54Y2NvbmZpZyAqLzsKIAkJ
CWJ1aWxkU2V0dGluZ3MgPSB7CiAJCQl9OwogCQkJbmFtZSA9IFByb2R1Y3Rpb247CkBAIC03NjA2
LDYgKzc2MDEsNyBAQAogCQkJCUJDQUYzNUIxMTZDQTFENTcwMEQ0RTlGQyAvKiBQcm9kdWN0aW9u
ICovLAogCQkJKTsKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRl
ZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CiAJCUJDQUYzNUZDMTZD
QTI2MzgwMEQ0RTlGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRh
cmdldCAiT2ZmbGluZVN0b3JhZ2UiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlz
dDsKQEAgLTc2MTUsNiArNzYxMSw3IEBACiAJCQkJQkNBRjM1RkYxNkNBMjYzODAwRDRFOUZDIC8q
IFByb2R1Y3Rpb24gKi8sCiAJCQkpOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUg
PSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKIAkJ
QkNBRjM2MEYxNkNBMjY2OTAwRDRFOUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYTmF0aXZlVGFyZ2V0ICJPZmZsaW5lU3RvcmFnZS5EZXZlbG9wbWVudCIgKi8gPSB7CiAJCQlp
c2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwpAQCAtNzYyNCw2ICs3NjIxLDcgQEAKIAkJCQlCQ0FG
MzYxMjE2Q0EyNjY5MDBENEU5RkMgLyogUHJvZHVjdGlvbiAqLywKIAkJCSk7CiAJCQlkZWZhdWx0
Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUg
PSBQcm9kdWN0aW9uOwogCQl9OwogCQlCQ0RFMDkzRTEzMjcyNDk2MDAxMjU5RkIgLyogQnVpbGQg
Y29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIlBsdWdpblByb2Nlc3MiICov
ID0gewogCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9JbmZvLnBsaXN0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5
UHJvY2Vzcy9JbmZvLnBsaXN0CShyZXZpc2lvbiAxNDI3MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNSArMjgsNyBAQAogCTx0cnVlLz4KIAk8a2V5Pk5TUHJpbmNpcGFsQ2xh
c3M8L2tleT4KIAk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KKwk8a2V5PldlYktpdEVu
dHJ5UG9pbnQ8L2tleT4KKwk8c3RyaW5nPldlYkNvbnRlbnRQcm9jZXNzTWFpbjwvc3RyaW5nPgog
PC9kaWN0PgogPC9wbGlzdD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9j
ZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbQkocmV2aXNpb24gMTQyNzEwKQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRl
bnRQcm9jZXNzTWFpbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAogCiAjaW1w
b3J0ICJjb25maWcuaCIKIAotI2ltcG9ydCAiQ2hpbGRQcm9jZXNzTWFpbi5oIgorI2ltcG9ydCAi
Q2hpbGRQcm9jZXNzRW50cnlQb2ludC5oIgogI2ltcG9ydCAiRW52aXJvbm1lbnRVdGlsaXRpZXMu
aCIKICNpbXBvcnQgIkVudmlyb25tZW50VmFyaWFibGVzLmgiCiAjaW1wb3J0ICJTdHJpbmdVdGls
aXRpZXMuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMv
TGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5
UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwCShyZXZpc2lvbiAx
NDI3MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2Fj
eVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSwzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIkNoaWxkUHJvY2Vz
c01haW5Cb290c3RyYXBwZXIuaCIKLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQot
ewotICAgIFdlYktpdE1haW5GdW5jdGlvbiBtYWluRnVuY3Rpb24gPSBnZXRCb290c3RyYXBNYWlu
RnVuY3Rpb24oYXJnYywgYXJndiwgIldlYkNvbnRlbnRQcm9jZXNzTWFpbiIpOwotICAgIHJldHVy
biBtYWluRnVuY3Rpb24oYXJnYywgYXJndik7Ci19CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UuRGV2ZWxv
cG1lbnQvV2ViQ29udGVudFNlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJD
b250ZW50U2VydmljZS5EZXZlbG9wbWVudC9XZWJDb250ZW50U2VydmljZU1haW4uRGV2ZWxvcG1l
bnQubW0JKHJldmlzaW9uIDE0MjcxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50
cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS5EZXZlbG9wbWVudC9XZWJD
b250ZW50U2VydmljZU1haW4uRGV2ZWxvcG1lbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsMzQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJYUENTZXJ2aWNlQm9vdHN0cmFwcGVyLkRl
dmVsb3BtZW50LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLWludCBtYWluKGludCBh
cmdjLCBjaGFyKiogYXJndikKLXsKLSAgICB4cGNfbWFpbihYUENTZXJ2aWNlRXZlbnRIYW5kbGVy
KTsKLSAgICByZXR1cm4gMDsKLX0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50
cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9XZWJDb250ZW50U2Vydmlj
ZU1haW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlTWFp
bi5tbQkocmV2aXNpb24gMTQyNzEwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNl
TWFpbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMSwzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgIlhQQ1NlcnZpY2VCb290c3RyYXBwZXIuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotICAgIHhwY19tYWluKFhQ
Q1NlcnZpY2VFdmVudEhhbmRsZXIpOwotICAgIHJldHVybiAwOwotfQo=
</data>
<flag name="review"
          id="208222"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>