<?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>124150</bug_id>
          
          <creation_ts>2013-11-11 08:44:55 -0800</creation_ts>
          <short_desc>Rename PlatformCertificateInfo to CertificateInfo</short_desc>
          <delta_ts>2013-11-22 07:51:06 -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>
          
          <blocked>118520</blocked>
    
    <blocked>124724</blocked>
    
    <blocked>124720</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Csaba Osztrogonác">ossy</assigned_to>
          <cc>andersca</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>949306</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-11-11 08:44:55 -0800</bug_when>
    <thetext>Because Anders asked it in https://bugs.webkit.org/show_bug.cgi?id=118520#c37
and we want to separete renaming and moving thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949309</commentid>
    <comment_count>1</comment_count>
      <attachid>216576</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-11-11 08:56:18 -0800</bug_when>
    <thetext>Created attachment 216576
Patch

WIP patch for EWS bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949312</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-11 08:58:14 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949313</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-11 08:58:26 -0800</bug_when>
    <thetext>Attachment 216576 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/GNUmakefile.list.am&apos;, u&apos;Source/WebKit2/NetworkProcess/AsynchronousNetworkLoaderClient.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.messages.in&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/mac/NetworkProcessMac.mm&apos;, u&apos;Source/WebKit2/NetworkProcess/soup/NetworkProcessSoup.cpp&apos;, u&apos;Source/WebKit2/PlatformEfl.cmake&apos;, u&apos;Source/WebKit2/PlatformGTK.cmake&apos;, u&apos;Source/WebKit2/Shared/API/c/mac/WKCertificateInfoMac.mm&apos;, u&apos;Source/WebKit2/Shared/Authentication/AuthenticationManager.cpp&apos;, u&apos;Source/WebKit2/Shared/Authentication/AuthenticationManager.h&apos;, u&apos;Source/WebKit2/Shared/Authentication/AuthenticationManager.messages.in&apos;, u&apos;Source/WebKit2/Shared/Authentication/mac/AuthenticationManager.mac.mm&apos;, u&apos;Source/WebKit2/Shared/UserMessageCoders.h&apos;, u&apos;Source/WebKit2/Shared/WebCertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/mac/CertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/mac/CertificateInfo.mm&apos;, u&apos;Source/WebKit2/Shared/mac/PlatformCertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/mac/PlatformCertificateInfo.mm&apos;, u&apos;Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm&apos;, u&apos;Source/WebKit2/Shared/soup/CertificateInfo.cpp&apos;, u&apos;Source/WebKit2/Shared/soup/CertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/soup/PlatformCertificateInfo.cpp&apos;, u&apos;Source/WebKit2/Shared/soup/PlatformCertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitCertificateInfo.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitCertificateInfoPrivate.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Authentication/AuthenticationChallengeProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebFrameProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebFrameProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.messages.in&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoader.h&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoader.messages.in&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.h&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.messages.in&apos;, u&apos;Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp&apos;]&quot; exit_code: 1
Source/WebKit2/Shared/soup/CertificateInfo.cpp:106:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebKit2/Shared/soup/CertificateInfo.cpp:106:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 41 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>949314</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-11-11 09:03:58 -0800</bug_when>
    <thetext>&gt; Source/WebKit2/Shared/soup/CertificateInfo.cpp:106:  Use 0 instead of NULL.  [readability/null] [5]
&gt; Source/WebKit2/Shared/soup/CertificateInfo.cpp:106:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
&gt; Total errors found: 2 in 41 files

I didn&apos;t touch this code, but NULL is necessary here, we can&apos;t use 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949324</commentid>
    <comment_count>5</comment_count>
      <attachid>216576</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-11 09:27:53 -0800</bug_when>
    <thetext>Comment on attachment 216576
Patch

Attachment 216576 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/22938181</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949325</commentid>
    <comment_count>6</comment_count>
      <attachid>216579</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-11-11 09:30:11 -0800</bug_when>
    <thetext>Created attachment 216579
Patch

with speculative Mac fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949333</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-11 09:33:37 -0800</bug_when>
    <thetext>Attachment 216579 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/GNUmakefile.list.am&apos;, u&apos;Source/WebKit2/NetworkProcess/AsynchronousNetworkLoaderClient.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.messages.in&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/mac/NetworkProcessMac.mm&apos;, u&apos;Source/WebKit2/NetworkProcess/soup/NetworkProcessSoup.cpp&apos;, u&apos;Source/WebKit2/PlatformEfl.cmake&apos;, u&apos;Source/WebKit2/PlatformGTK.cmake&apos;, u&apos;Source/WebKit2/Shared/API/c/mac/WKCertificateInfoMac.mm&apos;, u&apos;Source/WebKit2/Shared/Authentication/AuthenticationManager.cpp&apos;, u&apos;Source/WebKit2/Shared/Authentication/AuthenticationManager.h&apos;, u&apos;Source/WebKit2/Shared/Authentication/AuthenticationManager.messages.in&apos;, u&apos;Source/WebKit2/Shared/Authentication/mac/AuthenticationManager.mac.mm&apos;, u&apos;Source/WebKit2/Shared/UserMessageCoders.h&apos;, u&apos;Source/WebKit2/Shared/WebCertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/mac/CertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/mac/CertificateInfo.mm&apos;, u&apos;Source/WebKit2/Shared/mac/PlatformCertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/mac/PlatformCertificateInfo.mm&apos;, u&apos;Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm&apos;, u&apos;Source/WebKit2/Shared/soup/CertificateInfo.cpp&apos;, u&apos;Source/WebKit2/Shared/soup/CertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/soup/PlatformCertificateInfo.cpp&apos;, u&apos;Source/WebKit2/Shared/soup/PlatformCertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitCertificateInfo.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitCertificateInfoPrivate.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Authentication/AuthenticationChallengeProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebFrameProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebFrameProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.messages.in&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoader.h&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoader.messages.in&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.h&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.messages.in&apos;, u&apos;Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp&apos;]&quot; exit_code: 1
Source/WebKit2/Shared/soup/CertificateInfo.cpp:106:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebKit2/Shared/soup/CertificateInfo.cpp:106:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 41 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>949379</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-11-11 11:27:14 -0800</bug_when>
    <thetext>Is there any objection against this renaming?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952061</commentid>
    <comment_count>9</comment_count>
      <attachid>217298</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-11-19 07:10:52 -0800</bug_when>
    <thetext>Created attachment 217298
Patch

Updated to ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952062</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-19 07:13:15 -0800</bug_when>
    <thetext>Attachment 217298 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/GNUmakefile.list.am&apos;, u&apos;Source/WebKit2/NetworkProcess/AsynchronousNetworkLoaderClient.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.messages.in&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/mac/NetworkProcessMac.mm&apos;, u&apos;Source/WebKit2/NetworkProcess/soup/NetworkProcessSoup.cpp&apos;, u&apos;Source/WebKit2/PlatformEfl.cmake&apos;, u&apos;Source/WebKit2/PlatformGTK.cmake&apos;, u&apos;Source/WebKit2/Shared/API/c/mac/WKCertificateInfoMac.mm&apos;, u&apos;Source/WebKit2/Shared/Authentication/AuthenticationManager.cpp&apos;, u&apos;Source/WebKit2/Shared/Authentication/AuthenticationManager.h&apos;, u&apos;Source/WebKit2/Shared/Authentication/AuthenticationManager.messages.in&apos;, u&apos;Source/WebKit2/Shared/Authentication/mac/AuthenticationManager.mac.mm&apos;, u&apos;Source/WebKit2/Shared/UserMessageCoders.h&apos;, u&apos;Source/WebKit2/Shared/WebCertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/mac/CertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/mac/CertificateInfo.mm&apos;, u&apos;Source/WebKit2/Shared/mac/PlatformCertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/mac/PlatformCertificateInfo.mm&apos;, u&apos;Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm&apos;, u&apos;Source/WebKit2/Shared/soup/CertificateInfo.cpp&apos;, u&apos;Source/WebKit2/Shared/soup/CertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/soup/PlatformCertificateInfo.cpp&apos;, u&apos;Source/WebKit2/Shared/soup/PlatformCertificateInfo.h&apos;, u&apos;Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitCertificateInfo.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitCertificateInfoPrivate.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Authentication/AuthenticationChallengeProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebFrameProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebFrameProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.messages.in&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoader.h&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoader.messages.in&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.h&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.messages.in&apos;, u&apos;Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp&apos;]&quot; exit_code: 1
Source/WebKit2/Shared/soup/CertificateInfo.cpp:106:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebKit2/Shared/soup/CertificateInfo.cpp:106:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 41 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>952063</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-11-19 07:14:36 -0800</bug_when>
    <thetext>Please ignore the style alarm, it is still false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952111</commentid>
    <comment_count>12</comment_count>
      <attachid>217298</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-11-19 09:46:46 -0800</bug_when>
    <thetext>Comment on attachment 217298
Patch

r=me, but please address the two style complaints. I know you are being unfairly tagged for code you are simply renaming, but these are so simple it would be nice to get a full green build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952116</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-11-19 09:58:55 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 217298 [details])
&gt; r=me, but please address the two style complaints. I know you are being unfairly tagged for code you are simply renaming, but these are so simple it would be nice to get a full green build.

Ossy, I think you can fix the NULL being used as sentinel by using nullptr instead, because you can&apos;t use 0 in that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953104</commentid>
    <comment_count>14</comment_count>
      <attachid>217571</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-11-21 08:07:45 -0800</bug_when>
    <thetext>Created attachment 217571
Patch

Style issues fixed. Brent, thanks for the informal review. Can we get the final review from a WK2 owner?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953110</commentid>
    <comment_count>15</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-11-21 08:26:37 -0800</bug_when>
    <thetext>Additional info: I tested on Safari and certificates still works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953303</commentid>
    <comment_count>16</comment_count>
      <attachid>217571</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-11-21 14:28:52 -0800</bug_when>
    <thetext>Comment on attachment 217571
Patch

Clearing flags on attachment: 217571

Committed r159647: &lt;http://trac.webkit.org/changeset/159647&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953304</commentid>
    <comment_count>17</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-11-21 14:29:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953537</commentid>
    <comment_count>18</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-11-22 07:51:06 -0800</bug_when>
    <thetext>comment from #webkit IRC:
&lt;dino_&gt;	Ossy_night: I think http://trac.webkit.org/changeset/159647 has caused a lot of WebSocket failures


I think you meant the failures on Mavericks Release WK1 tester:
http://build.webkit.org/builders/Apple%20Mavericks%20Release%20WK1%20%28Tests%29/builds/1085

I checked this issue, triggered 2 clean builds on this bot
- on 159647 - http://build.webkit.org/builders/Apple%20Mavericks%20Release%20WK1%20%28Tests%29/builds/1097
- on 159646 - http://build.webkit.org/builders/Apple%20Mavericks%20Release%20WK1%20%28Tests%29/builds/1098

And the failures were occured on r159646 too, before my patch.

And then I noticed it is a WK1 tester bot an my patch 
is WK2 only, so it was impossible that I broke this bot.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216576</attachid>
            <date>2013-11-11 08:56:18 -0800</date>
            <delta_ts>2013-11-11 09:30:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124150-20131111175614.patch</filename>
            <type>text/plain</type>
            <size>75721</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDI0NTY2ZmMzZmI2NzRk
YTU5ZmY3NDJkYzUzZmQ0NDFhMjE4N2Q4NS4uN2M4YTA2YmNjZjI2MDFiYWMwNmE3Y2JhZGI3NDFi
OWJiZTNlNjEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDEzLTExLTExICBDc2Fi
YSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuYW1lIFBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvIHRvIENlcnRpZmljYXRlSW5mbworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MTUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0FzeW5jaHJvbm91c05ldHdvcmtMb2FkZXJDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpBc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50OjpkaWRS
ZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW06CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZv
ckhvc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdCk6CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAg
ICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogU2hhcmVkL0FQSS9jL21hYy9XS0Nl
cnRpZmljYXRlSW5mb01hYy5tbToKKyAgICAgICAgKFdLQ2VydGlmaWNhdGVJbmZvQ3JlYXRlV2l0
aENlcnRmaWNhdGVDaGFpbik6CisgICAgICAgIChXS0NlcnRpZmljYXRlSW5mb0dldENlcnRpZmlj
YXRlQ2hhaW4pOgorICAgICAgICAqIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnRy
eVVzZUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhl
bnRpY2F0aW9uTWFuYWdlcjo6dXNlQ3JlZGVudGlhbEZvckNoYWxsZW5nZSk6CisgICAgICAgICog
U2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oOgorICAgICAgICAq
IFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW46
CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL21hYy9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIubWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnRyeVVz
ZUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZSk6CisgICAgICAgICogU2hhcmVkL1VzZXJNZXNz
YWdlQ29kZXJzLmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZXNzYWdlRW5jb2Rlcjo6YmFzZUVu
Y29kZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZXNzYWdlRGVjb2Rlcjo6YmFzZURlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNlcnRp
ZmljYXRlSW5mbzo6Y2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2VydGlm
aWNhdGVJbmZvOjpXZWJDZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ2Vy
dGlmaWNhdGVJbmZvLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Bs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvLmguCisgICAgICAgIChXZWJLaXQ6OkNlcnRpZmljYXRlSW5m
bzo6Y2VydGlmaWNhdGVDaGFpbik6CisgICAgICAgICogU2hhcmVkL21hYy9DZXJ0aWZpY2F0ZUlu
Zm8ubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvLm1tLgorICAgICAgICAoV2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm86OkNlcnRp
ZmljYXRlSW5mbyk6CisgICAgICAgIChXZWJLaXQ6OkNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpDZXJ0aWZpY2F0ZUluZm86OmR1bXApOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoQ29yZUlQQzo6OjplbmNvZGVQbGF0Zm9y
bURhdGEpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAg
ICAqIFNoYXJlZC9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAuCisgICAgICAg
IChXZWJLaXQ6OkNlcnRpZmljYXRlSW5mbzo6Q2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKFdl
YktpdDo6Q2VydGlmaWNhdGVJbmZvOjp+Q2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKFdlYktp
dDo6Q2VydGlmaWNhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpDZXJ0aWZpY2F0
ZUluZm86OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mby5oLgorICAgICAgICAoV2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm86OmNlcnRpZmljYXRl
KToKKyAgICAgICAgKFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvOjp0bHNFcnJvcnMpOgorICAgICAg
ICAqIFNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwOgorICAgICAgICAo
Q29yZUlQQzo6OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNv
ZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENlcnRp
ZmljYXRlSW5mby5jcHA6CisgICAgICAgICh3ZWJraXRDZXJ0aWZpY2F0ZUluZm9HZXRDZXJ0aWZp
Y2F0ZUluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENlcnRpZmljYXRl
SW5mb1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfdGxzX2luZm8pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTo6dXNlQ3Jl
ZGVudGlhbCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3Qp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVQcm94eTo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkZyYW1lUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVG
b3JIb3N0KToKKwogMjAxMy0xMS0xMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQ3Jhc2ggd2hlbiBwcmludGluZyB2aWEgamF2YXNj
cmlwdCBpbiBXZWJLaXQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBlOTU1NmJm
ZDI5MjRlZjIwMzAyOGZjZDhmMzg0MGI0ODBhZDUxZThkLi45ODYyNDAyZGQ0M2RiYTY0Yjk1YTkw
YTkwYWRkYTQwYWZhMzAxZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQ4
OCw4ICs0ODgsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TZXNzaW9uU3RhdGUuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRh
LmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmggXAotCVNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcCBcCi0JU291
cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCBcCisJU291
cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmNwcCBcCisJU291cmNlL1dl
YktpdDIvU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmggXAogCVNvdXJjZS9XZWJLaXQyL1No
YXJlZC9zb3VwL1NvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUuaCBcCiAJU291cmNlL1dl
YktpdDIvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAgXAogCVNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9UZXh0Q2hlY2tlclN0YXRlLmggXApAQCAtMTM3MCw4ICsxMzcwLDgg
QEAgd2Via2l0Ml9wbHVnaW5fcHJvY2Vzc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvZ3RrL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVk
L2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJvLmNwcCBcCi0JU291cmNlL1dlYktpdDIvU2hhcmVk
L3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvc291cC9DZXJ0aWZpY2F0ZUluZm8uY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291
cC9DZXJ0aWZpY2F0ZUluZm8uaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzU291cC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvQXN5bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Bc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50LmNw
cAppbmRleCAxYmFmNWIxOWFiMjAwM2U1NDhkMDNiYzJlNjU4MmIyMmE0M2ViN2E3Li44NjViNGMw
OTA3NDkxODE0YjdmNzBiNWYzNDVmYjY0MDFhYTg3NjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9Bc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Bc3luY2hyb25vdXNOZXR3b3JrTG9h
ZGVyQ2xpZW50LmNwcApAQCAtMjYsOSArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkFzeW5jaHJvbm91c05ldHdvcmtMb2FkZXJDbGllbnQuaCIKIAorI2luY2x1ZGUgIkNl
cnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUNlcnRpZmljYXRlSW5m
by5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlJl
c291cmNlTG9hZGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3Iu
aD4KQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBBc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50
OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKE5ldHcKIAogdm9pZCBBc3lu
Y2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoTmV0d29ya1Jl
c291cmNlTG9hZGVyKiBsb2FkZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQog
ewotICAgIGxvYWRlci0+c2VuZEFib3J0aW5nT25GYWlsdXJlKE1lc3NhZ2VzOjpXZWJSZXNvdXJj
ZUxvYWRlcjo6RGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyhyZXNwb25zZSwg
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ocmVzcG9uc2UpLCBsb2FkZXItPmlzTG9hZGluZ01haW5S
ZXNvdXJjZSgpKSk7CisgICAgbG9hZGVyLT5zZW5kQWJvcnRpbmdPbkZhaWx1cmUoTWVzc2FnZXM6
OldlYlJlc291cmNlTG9hZGVyOjpEaWRSZWNlaXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZv
KHJlc3BvbnNlLCBDZXJ0aWZpY2F0ZUluZm8ocmVzcG9uc2UpLCBsb2FkZXItPmlzTG9hZGluZ01h
aW5SZXNvdXJjZSgpKSk7CiB9CiAKIHZvaWQgQXN5bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVu
dDo6ZGlkUmVjZWl2ZUJ1ZmZlcihOZXR3b3JrUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgU2hhcmVk
QnVmZmVyKiBidWZmZXIsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGNhNmY4ZmJiNWYzODM1Y2Jh
YTRhMjA5NmUyNzVkOTM0OGI5OGU4ZjAuLjg1YjU2Zjg4MjgxZmMwOTgwMmY0ZjZjZGRhMmJkNTU5
NjFmNDY3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaApAQCAtMzgsOSArMzgsOSBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEF1
dGhlbnRpY2F0aW9uTWFuYWdlcjsKK2NsYXNzIENlcnRpZmljYXRlSW5mbzsKIGNsYXNzIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogY2xhc3MgTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50
OwotY2xhc3MgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm87CiBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzIDogcHVibGljIENoaWxk
UHJvY2VzcywgcHJpdmF0ZSBEb3dubG9hZE1hbmFnZXI6OkNsaWVudCB7CkBAIC0xMDQsNyArMTA0
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdCh1aW50NjRfdCBkb3dubG9h
ZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGNhbmNlbERv
d25sb2FkKHVpbnQ2NF90IGRvd25sb2FkSUQpOwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50
MzJfdCk7Ci0gICAgdm9pZCBhbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29u
c3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBTdHJpbmcmIGhvc3QpOworICAgIHZv
aWQgYWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IENlcnRpZmljYXRl
SW5mbyYsIGNvbnN0IFN0cmluZyYgaG9zdCk7CiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc1N0
YXRpc3RpY3ModWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBjbGVhckNhY2hlRm9yQWxs
T3JpZ2lucyh1aW50MzJfdCBjYWNoZXNUb0NsZWFyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBh
NWZjYmM3YmU5NDAyODA3YzFlNTU2MmEzZWU2OWZmNjA2OTg1ZGQ3Li5mOTY0YTdmZDQ2MTIxNmNj
YzY5YTgxYzc0YzI1YjQ2YTk0MTNjNzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzksNyArMzks
NyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0
UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29sIGZsYWcpCiAjZW5kaWYKIAotICAgIEFsbG93
U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChXZWJLaXQ6OlBsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvIGNlcnRpZmljYXRlLCBXVEY6OlN0cmluZyBob3N0KQorICAgIEFsbG93U3BlY2lmaWNI
VFRQU0NlcnRpZmljYXRlRm9ySG9zdChXZWJLaXQ6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0
ZSwgV1RGOjpTdHJpbmcgaG9zdCkKICAgICAKICAgICBHZXROZXR3b3JrUHJvY2Vzc1N0YXRpc3Rp
Y3ModWludDY0X3QgY2FsbGJhY2tJRCkKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDE2MzBhMmI0
N2ExM2ZjYWZmODE3OWE3YzQwYjRiMDk1YzYzMjYzOGEuLjQzMmVjNzZjZjNhZWY5Y2YzZjdiODgz
NjEwOWY0NjZmZmJkMWMyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAj
aW5jbHVkZSAiQXN5bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkF1
dGhlbnRpY2F0aW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIkNlcnRpZmljYXRlSW5mby5oIgogI2lu
Y2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
TmV0d29ya0Jsb2JSZWdpc3RyeS5oIgpAQCAtMzcsNyArMzgsNiBAQAogI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgotI2luY2x1ZGUg
IlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQuaCIKICNpbmNsdWRlICJTaGFyZWFibGVSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlNoYXJl
ZE1lbW9yeS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L05ldHdvcmtQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L05ldHdvcmtQcm9jZXNzTWFjLm1tCmluZGV4IGUxOTdmZjM5NmY3MGE3N2E5NTYyZDM1YWI1M2Qy
YzQ0NTM1Y2MwMmUuLmU2ZGMzYWMzZGYwMDM2MDdmMWQ5MDQzMDc5MDhkNTY4MTc4YzMwNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vz
c01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1By
b2Nlc3NNYWMubW0KQEAgLTMwLDcgKzMwLDcgQEAKIAogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgot
I2ltcG9ydCAiUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCIKKyNpbXBvcnQgIkNlcnRpZmljYXRl
SW5mby5oIgogI2ltcG9ydCAiUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmgiCiAjaW1wb3J0ICJTYW5k
Ym94RXh0ZW5zaW9uLmgiCiAjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
LmgiCkBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TZXRD
YWNoZU1vZGVsKENhY2hlTW9kZWwgY2FjaGVNb2RlbCkKICAgICBbbnN1cmxDYWNoZSBzZXREaXNr
Q2FwYWNpdHk6c3RkOjptYXg8dW5zaWduZWQgbG9uZz4odXJsQ2FjaGVEaXNrQ2FwYWNpdHksIFtu
c3VybENhY2hlIGRpc2tDYXBhY2l0eV0pXTsgLy8gRG9uJ3Qgc2hyaW5rIGEgYmlnIGRpc2sgY2Fj
aGUsIHNpbmNlIHRoYXQgd291bGQgY2F1c2UgY2h1cm4uCiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nl
c3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBQbGF0Zm9ybUNl
cnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBjb25zdCBTdHJpbmcmIGhvc3QpCit2b2lk
IE5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29u
c3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGNvbnN0IFN0cmluZyYgaG9zdCkK
IHsKICAgICBbTlNVUkxSZXF1ZXN0IHNldEFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZToo
TlNBcnJheSAqKWNlcnRpZmljYXRlSW5mby5jZXJ0aWZpY2F0ZUNoYWluKCkgZm9ySG9zdDooTlNT
dHJpbmcgKilob3N0XTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcAppbmRleCBkOGViYWNiZDBkN2Y0NTE1
Y2VkMTBjMTczNGJjNDE3Y2ViYmM5ZWY2Li5iZDRlNmMyOTcyYWQyMjI3YjQ1OWQ4YmMyNDA4OTJl
MTc1OWY1NzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtQcm9jZXNzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsKQogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYsIGNvbnN0
IFN0cmluZyYpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZp
Y2F0ZUZvckhvc3QoY29uc3QgQ2VydGlmaWNhdGVJbmZvJiwgY29uc3QgU3RyaW5nJikKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA2ZTZh
NTViOWY3NGFhMzQ1MjM0ODRkOTZmZDFiOGUzZDRmMzNjMWFhLi5hNWNkODVlZmRkY2IwNTgwODg0
OWYwYTM5NGE1YjJkNWJhOGFlMmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNDks
NyArNDksNyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvbGludXgv
U2VjY29tcEZpbHRlcnMvU3lzY2FsbC5jcHAKICAgICBTaGFyZWQvbGludXgvU2VjY29tcEZpbHRl
cnMvU3lzY2FsbFBvbGljeS5jcHAKIAotICAgIFNoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvLmNwcAorICAgIFNoYXJlZC9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHAKICAgICBTaGFy
ZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcAogCiAgICAgVUlQcm9jZXNzL0Rl
ZmF1bHRVbmRvQ29udHJvbGxlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZTZl
YzFiMzE4NzA3ZWIzMzE4ZmM1MDk4MjYwZWNkYTZlYzZkOGUxOS4uMWIxYzU1NDA1MDNjYjcyNzU5
ZGUyYTQ5MzFjMTg3YjRjNTc2ZWFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTYx
LDcgKzYxLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVkL2xpbnV4
L1NlY2NvbXBGaWx0ZXJzL1N5c2NhbGwuY3BwCiAgICAgU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0
ZXJzL1N5c2NhbGxQb2xpY3kuY3BwCiAKLSAgICBTaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mby5jcHAKKyAgICBTaGFyZWQvc291cC9DZXJ0aWZpY2F0ZUluZm8uY3BwCiAgICAgU2hh
cmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKIAogICAgIFVJUHJvY2Vzcy9E
ZWZhdWx0VW5kb0NvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvbWFjL1dLQ2VydGlmaWNhdGVJbmZvTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL21hYy9XS0NlcnRpZmljYXRlSW5mb01hYy5tbQppbmRleCAzNGRkNDMxNTE5YTM5
OWEzZGQ4M2UwZTgyM2Y0MzQ3NWMyZTNiZmFiLi4wMGYwMmZmNjRkYjRlNmZmY2FmYzY0MzIxZjQz
OGJmMmZlNjYwZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvbWFj
L1dLQ2VydGlmaWNhdGVJbmZvTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9tYWMvV0tDZXJ0aWZpY2F0ZUluZm9NYWMubW0KQEAgLTMzLDExICszMywxMSBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwogCiBXS0NlcnRpZmljYXRlSW5mb1JlZiBXS0NlcnRpZmljYXRlSW5m
b0NyZWF0ZVdpdGhDZXJ0ZmljYXRlQ2hhaW4oQ0ZBcnJheVJlZiBjZXJ0aWZpY2F0ZUNoYWluKQog
ewotICAgIFJlZlB0cjxXZWJDZXJ0aWZpY2F0ZUluZm8+IGNlcnRpZmljYXRlSW5mbyA9IFdlYkNl
cnRpZmljYXRlSW5mbzo6Y3JlYXRlKFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKGNlcnRpZmljYXRl
Q2hhaW4pKTsKKyAgICBSZWZQdHI8V2ViQ2VydGlmaWNhdGVJbmZvPiBjZXJ0aWZpY2F0ZUluZm8g
PSBXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZShDZXJ0aWZpY2F0ZUluZm8oY2VydGlmaWNhdGVD
aGFpbikpOwogICAgIHJldHVybiB0b0FQSShjZXJ0aWZpY2F0ZUluZm8ucmVsZWFzZSgpLmxlYWtS
ZWYoKSk7CiB9CiAKIENGQXJyYXlSZWYgV0tDZXJ0aWZpY2F0ZUluZm9HZXRDZXJ0aWZpY2F0ZUNo
YWluKFdLQ2VydGlmaWNhdGVJbmZvUmVmIGNlcnRpZmljYXRlSW5mb1JlZikKIHsKLSAgICByZXR1
cm4gdG9JbXBsKGNlcnRpZmljYXRlSW5mb1JlZiktPnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCku
Y2VydGlmaWNhdGVDaGFpbigpOworICAgIHJldHVybiB0b0ltcGwoY2VydGlmaWNhdGVJbmZvUmVm
KS0+Q2VydGlmaWNhdGVJbmZvKCkuY2VydGlmaWNhdGVDaGFpbigpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmNwcAppbmRleCA3ZjdkY2EyZGQyZTQyODI1ZmE1ODE3YjFkMmNmMGZjZTkxYjNm
Yjc4Li5lMmY0NTMyMjljYjdkYmRmZDMzYzNkNmM2YjYyYmEwMjZmYjcxNmMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRpb25NYW5hZ2VyLmNwcApAQCAtOTgsMjAgKzk4LDIwIEBAIHZvaWQgQXV0aGVudGljYXRp
b25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG93bmxvYWQqIGRv
d25sb2FkCiAKIC8vIEN1cnJlbnRseSwgb25seSBNYWMga25vd3MgaG93IHRvIHJlc3BvbmQgdG8g
YXV0aGVudGljYXRpb24gY2hhbGxlbmdlcyB3aXRoIGNlcnRpZmljYXRlIGluZm8uCiAjaWYgIVVT
RShTRUNVUklUWV9GUkFNRVdPUkspCi1ib29sIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6dHJ5VXNl
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9Gb3JDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYpCitib29s
IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6dHJ5VXNlQ2VydGlmaWNhdGVJbmZvRm9yQ2hhbGxlbmdl
KGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgQ2VydGlmaWNh
dGVJbmZvJikKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAjZW5kaWYKIAotdm9pZCBBdXRoZW50
aWNhdGlvbk1hbmFnZXI6OnVzZUNyZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxl
bmdlSUQsIGNvbnN0IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwsIGNvbnN0IFBsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCit2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6
dXNlQ3JlZGVudGlhbEZvckNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgY29uc3QgQ3Jl
ZGVudGlhbCYgY3JlZGVudGlhbCwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUlu
Zm8pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlIGNoYWxsZW5nZSA9IG1fY2hhbGxlbmdlcy50YWtlKGNoYWxsZW5nZUlEKTsKICAg
ICBBU1NFUlQoIWNoYWxsZW5nZS5pc051bGwoKSk7CiAgICAgCi0gICAgaWYgKHRyeVVzZVBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvRm9yQ2hhbGxlbmdlKGNoYWxsZW5nZSwgY2VydGlmaWNhdGVJbmZv
KSkKKyAgICBpZiAodHJ5VXNlQ2VydGlmaWNhdGVJbmZvRm9yQ2hhbGxlbmdlKGNoYWxsZW5nZSwg
Y2VydGlmaWNhdGVJbmZvKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIEF1dGhlbnRpY2F0
aW9uQ2xpZW50KiBjb3JlQ2xpZW50ID0gY2hhbGxlbmdlLmF1dGhlbnRpY2F0aW9uQ2xpZW50KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRpb25NYW5hZ2VyLmgKaW5kZXggNGM2ZjgxZTk1MzkwZmY3MGQzODE4MmJkYzli
NDI2YmE2ZTAxYTU5MS4uNGY2NWU5ZjY3ODk4N2QwNDc5NDMwOTk5MWVlODVmNGQxNTYzMzgwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaApAQCAtNDAsOSArNDAsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBj
bGFzcyBDaGlsZFByb2Nlc3M7CiBjbGFzcyBEb3dubG9hZDsKLWNsYXNzIFBsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvOwogY2xhc3MgV2ViRnJhbWU7CiAKIGNsYXNzIEF1dGhlbnRpY2F0aW9uTWFuYWdl
ciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIE5ldHdvcmtQcm9jZXNzU3Vw
cGxlbWVudCwgcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CkBAIC01OSw3ICs1OSw3
IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgZm9yIGRvd25sb2FkcyB3aXRoIG9yIHdpdGhvdXQg
dGhlIE5ldHdvcmtQcm9jZXNzCiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoRG93bmxvYWQqLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYp
OwogCi0gICAgdm9pZCB1c2VDcmVkZW50aWFsRm9yQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5n
ZUlELCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiwgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8mKTsKKyAgICB2b2lkIHVzZUNyZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWludDY0X3QgY2hh
bGxlbmdlSUQsIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmLCBjb25zdCBDZXJ0aWZpY2F0ZUlu
Zm8mKTsKICAgICB2b2lkIGNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWlu
dDY0X3QgY2hhbGxlbmdlSUQpOwogICAgIHZvaWQgY2FuY2VsQ2hhbGxlbmdlKHVpbnQ2NF90IGNo
YWxsZW5nZUlEKTsKICAgICAKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKICAgICAvLyBDb3Jl
SVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7
CiAKLSAgICBib29sIHRyeVVzZVBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvRm9yQ2hhbGxlbmdlKGNv
bnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8mKTsKKyAgICBib29sIHRyeVVzZUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5n
ZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIGNvbnN0IENlcnRpZmlj
YXRlSW5mbyYpOwogCiAgICAgdWludDY0X3QgZXN0YWJsaXNoSWRlbnRpZmllckZvckNoYWxsZW5n
ZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5h
Z2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBiYjFjYzMwY2E2YmM1OTFiZGVk
ZWQ0MWYwZjUxOTVlYzc2Yzk2MWRkLi5kYTEzZjM0MzVmYWZiZGUwN2U2MWU5ODgxNzg5YWUxYTM2
ZmEzYjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAg
LTIxLDcgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gQXV0aGVudGljYXRp
b25NYW5hZ2VyIHsKLSAgICB2b2lkIFVzZUNyZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWludDY0X3Qg
Y2hhbGxlbmdlSUQsIFdlYkNvcmU6OkNyZWRlbnRpYWwgY3JlZGVudGlhbCwgV2ViS2l0OjpQbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSk7CisgICAgdm9pZCBVc2VDcmVkZW50aWFs
Rm9yQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlELCBXZWJDb3JlOjpDcmVkZW50aWFsIGNy
ZWRlbnRpYWwsIFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlKTsKICAgICB2b2lk
IENvbnRpbnVlV2l0aG91dENyZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdl
SUQpOwogICAgIHZvaWQgQ2FuY2VsQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9tYWMvQXV0
aGVudGljYXRpb25NYW5hZ2VyLm1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9tYWMvQXV0aGVudGljYXRpb25NYW5hZ2VyLm1hYy5tbQppbmRleCBjMGI5MmYxMmI0
ZWYyZDQ4NDI1ZGQyYjdmZTM0MWU3NjljMjc2MDEzLi5hODYxOGNkYTY5ZTc5OWU2OTM3YTg0ZWI5
OTNkZWY3ZGI4ZThmMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVu
dGljYXRpb24vbWFjL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tYWMubW0KKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL21hYy9BdXRoZW50aWNhdGlvbk1hbmFnZXIubWFj
Lm1tCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBVU0UoU0VDVVJJVFlfRlJBTUVXT1JLKQogCi0j
aW5jbHVkZSAiUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCIKKyNpbmNsdWRlICJDZXJ0aWZpY2F0
ZUluZm8uaCIKICNpbmNsdWRlIDxTZWN1cml0eS9TZWNJZGVudGl0eS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KIApAQCAtMzYsNyArMzYsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWJvb2wgQXV0aGVu
dGljYXRpb25NYW5hZ2VyOjp0cnlVc2VQbGF0Zm9ybUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5n
ZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlLCBjb25zdCBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQorYm9vbCBBdXRoZW50aWNhdGlvbk1h
bmFnZXI6OnRyeVVzZUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmlj
YXRlSW5mbykKIHsKICAgICBDRkFycmF5UmVmIGNoYWluID0gY2VydGlmaWNhdGVJbmZvLmNlcnRp
ZmljYXRlQ2hhaW4oKTsKICAgICBpZiAoIWNoYWluKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNl
ck1lc3NhZ2VDb2RlcnMuaAppbmRleCAwMDIyZjMxMDU1ZTk0YzY4NTgwZmJhY2Q0NGRlMzZiMGY3
ZDA0ZThiLi5hOTZmZWNjOThlNDg3YmRlMjQwNWY2MjI0YzI0N2UyZWU0YTJlZGJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaApAQCAtMjE1LDcgKzIxNSw3IEBA
IHB1YmxpYzoKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZUNlcnRpZmlj
YXRlSW5mbzogewogICAgICAgICAgICAgV2ViQ2VydGlmaWNhdGVJbmZvKiBjZXJ0aWZpY2F0ZUlu
Zm8gPSBzdGF0aWNfY2FzdDxXZWJDZXJ0aWZpY2F0ZUluZm8qPihtX3Jvb3QpOwotICAgICAgICAg
ICAgZW5jb2RlciA8PCBjZXJ0aWZpY2F0ZUluZm8tPnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCk7
CisgICAgICAgICAgICBlbmNvZGVyIDw8IGNlcnRpZmljYXRlSW5mby0+Y2VydGlmaWNhdGVJbmZv
KCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQ
SU9iamVjdDo6VHlwZUVycm9yOiB7CkBAIC01MDQsMTAgKzUwNCwxMCBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZUNl
cnRpZmljYXRlSW5mbzogewotICAgICAgICAgICAgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8gcGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm87Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvKSkKKyAgICAgICAgICAgIENlcnRpZmljYXRlSW5mbyBjZXJ0
aWZpY2F0ZUluZm87CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNlcnRpZmljYXRl
SW5mbykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgY29kZXIu
bV9yb290ID0gV2ViQ2VydGlmaWNhdGVJbmZvOjpjcmVhdGUocGxhdGZvcm1DZXJ0aWZpY2F0ZUlu
Zm8pOworICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViQ2VydGlmaWNhdGVJbmZvOjpjcmVh
dGUoY2VydGlmaWNhdGVJbmZvKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlRXJyb3I6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDZXJ0aWZpY2F0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDZXJ0aWZpY2F0ZUluZm8uaAppbmRleCAwNjE4MmZjZTJmYzZkNTk3ZTlmNWY4YzAzOTU3NzE5
YTJhYTYyYWY1Li4xNzZjOTYxNzlhNTU2NzUzNWVkN2E1NzE2OWQwMzg3MjUwMjA2NmRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ2VydGlmaWNhdGVJbmZvLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oCkBAIC0yNywyNyArMjcs
MjcgQEAKICNkZWZpbmUgV2ViQ2VydGlmaWNhdGVJbmZvX2gKIAogI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCisjaW5jbHVkZSAiQ2Vy
dGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFdlYkNlcnRpZmljYXRlSW5mbyA6IHB1YmxpYyBUeXBlZEFQSU9i
amVjdDxBUElPYmplY3Q6OlR5cGVDZXJ0aWZpY2F0ZUluZm8+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxXZWJDZXJ0aWZpY2F0ZUluZm8+IGNyZWF0ZShjb25zdCBQbGF0Zm9ybUNl
cnRpZmljYXRlSW5mbyYgaW5mbykKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDZXJ0aWZpY2F0
ZUluZm8+IGNyZWF0ZShjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGluZm8pCiAgICAgewogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNlcnRpZmljYXRlSW5mbyhpbmZvKSk7CiAgICAgfQog
Ci0gICAgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIHBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzsgfQorICAgIGNv
bnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9j
ZXJ0aWZpY2F0ZUluZm87IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJDZXJ0aWZpY2F0
ZUluZm8oY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIGluZm8pCi0gICAgICAgIDogbV9w
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhpbmZvKQorICAgIGV4cGxpY2l0IFdlYkNlcnRpZmljYXRl
SW5mbyhjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGluZm8pCisgICAgICAgIDogbV9jZXJ0aWZpY2F0
ZUluZm8oaW5mbykKICAgICB7CiAgICAgfQogCi0gICAgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8g
bV9wbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzsKKyAgICBDZXJ0aWZpY2F0ZUluZm8gbV9jZXJ0aWZp
Y2F0ZUluZm87CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0NlcnRpZmljYXRlSW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkZGM3NTEyYzBiY2U2MmRh
OTU5OTBhNzUyYjNkMGY1OGM2OWM0NDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL0NlcnRpZmljYXRlSW5mby5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIENlcnRpZmljYXRlSW5mb19oCisjZGVmaW5lIENlcnRpZmljYXRlSW5mb19o
CisKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2Rl
cjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIENlcnRpZmljYXRlSW5mbyB7CitwdWJsaWM6CisgICAgQ2VydGlmaWNhdGVJbmZvKCk7Cisg
ICAgZXhwbGljaXQgQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmKTsKKyAgICBleHBsaWNpdCBDZXJ0aWZpY2F0ZUluZm8oQ0ZBcnJheVJlZiBjZXJ0aWZpY2F0
ZUNoYWluKTsKKworICAgIENGQXJyYXlSZWYgY2VydGlmaWNhdGVDaGFpbigpIGNvbnN0IHsgcmV0
dXJuIG1fY2VydGlmaWNhdGVDaGFpbi5nZXQoKTsgfQorCisgICAgdm9pZCBlbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciYsIENlcnRpZmljYXRlSW5mbyYpOworCisjaWZuZGVmIE5ERUJV
RworICAgIHZvaWQgZHVtcCgpIGNvbnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgUmV0YWlu
UHRyPENGQXJyYXlSZWY+IG1fY2VydGlmaWNhdGVDaGFpbjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gQ2VydGlmaWNhdGVJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2VydGlmaWNhdGVJbmZvLm1tIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9DZXJ0aWZpY2F0ZUluZm8ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjYwZWFiNmM2MzA0MWQ2
OTRlOGE1ZTMyNzYwNzBjNWM5NWU4MTlmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvQ2VydGlmaWNhdGVJbmZvLm1tCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkNlcnRpZmljYXRlSW5mby5oIgor
CisjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NGLmgiCisjaW1wb3J0ICJBcmd1bWVudERlY29kZXIu
aCIKKyNpbXBvcnQgIkFyZ3VtZW50RW5jb2Rlci5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0NlcnRpZmljYXRlSW5mbzo6Q2VydGlmaWNhdGVJ
bmZvKCkKK3sKK30KKworQ2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCisgICAgOiBtX2NlcnRpZmljYXRlQ2hhaW4ocmVzcG9u
c2UuY2VydGlmaWNhdGVDaGFpbigpKQoreworfQorCitDZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmlj
YXRlSW5mbyhDRkFycmF5UmVmIGNlcnRpZmljYXRlQ2hhaW4pCisgICAgOiBtX2NlcnRpZmljYXRl
Q2hhaW4oY2VydGlmaWNhdGVDaGFpbikKK3sKK30KKwordm9pZCBDZXJ0aWZpY2F0ZUluZm86OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgaWYg
KCFtX2NlcnRpZmljYXRlQ2hhaW4pIHsKKyAgICAgICAgZW5jb2RlciA8PCBmYWxzZTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGVuY29kZXIgPDwgdHJ1ZTsKKyAgICBDb3JlSVBDOjpl
bmNvZGUoZW5jb2RlciwgbV9jZXJ0aWZpY2F0ZUNoYWluLmdldCgpKTsKK30KKworYm9vbCBDZXJ0
aWZpY2F0ZUluZm86OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIENl
cnRpZmljYXRlSW5mbyYgYykKK3sKKyAgICBib29sIGhhc0NlcnRpZmljYXRlQ2hhaW47CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShoYXNDZXJ0aWZpY2F0ZUNoYWluKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKCFoYXNDZXJ0aWZpY2F0ZUNoYWluKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIGlmICghQ29yZUlQQzo6ZGVjb2RlKGRlY29kZXIsIGMubV9jZXJ0aWZpY2F0
ZUNoYWluKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisK
KyNpZm5kZWYgTkRFQlVHCit2b2lkIENlcnRpZmljYXRlSW5mbzo6ZHVtcCgpIGNvbnN0Cit7Cisg
ICAgdW5zaWduZWQgZW50cmllcyA9IG1fY2VydGlmaWNhdGVDaGFpbiA/IENGQXJyYXlHZXRDb3Vu
dChtX2NlcnRpZmljYXRlQ2hhaW4uZ2V0KCkpIDogMDsKKworICAgIE5TTG9nKEAiQ2VydGlmaWNh
dGVJbmZvXG4iKTsKKyAgICBOU0xvZyhAIiAgRW50cmllczogJWRcbiIsIGVudHJpZXMpOworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBlbnRyaWVzOyArK2kpIHsKKyAgICAgICAgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPiBzdW1tYXJ5ID0gYWRvcHRDRihTZWNDZXJ0aWZpY2F0ZUNvcHlTdWJq
ZWN0U3VtbWFyeSgoU2VjQ2VydGlmaWNhdGVSZWYpQ0ZBcnJheUdldFZhbHVlQXRJbmRleChtX2Nl
cnRpZmljYXRlQ2hhaW4uZ2V0KCksIGkpKSk7CisgICAgICAgIE5TTG9nKEAiICAlQCIsIChOU1N0
cmluZyAqKXN1bW1hcnkuZ2V0KCkpOworICAgIH0KK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWVhMWEyZjMzMTc5
ZjJkMTU0MGQ0OTFhZDA2ODNiOTUyNDBjY2NkNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mb19oCi0jZGVmaW5lIFBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvX2gKLQotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgot
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLQotbmFtZXNwYWNlIENvcmVJUEMgewotICAgIGNs
YXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBjbGFzcyBBcmd1bWVudEVuY29kZXI7Ci19Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyB7Ci1wdWJs
aWM6Ci0gICAgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKTsKLSAgICBleHBsaWNpdCBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAg
ZXhwbGljaXQgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oQ0ZBcnJheVJlZiBjZXJ0aWZpY2F0ZUNo
YWluKTsKLQotICAgIENGQXJyYXlSZWYgY2VydGlmaWNhdGVDaGFpbigpIGNvbnN0IHsgcmV0dXJu
IG1fY2VydGlmaWNhdGVDaGFpbi5nZXQoKTsgfQotCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciYsIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJik7Ci0KLSNpZm5kZWYg
TkRFQlVHCi0gICAgdm9pZCBkdW1wKCkgY29uc3Q7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBS
ZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbV9jZXJ0aWZpY2F0ZUNoYWluOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mb19oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5t
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzRhNzM1NDVjNWJkMTY4ZjZhYTkyNmQ5
NzQ2MzE4ZTRhNmNhOGUwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
Lm1tCisrKyAvZGV2L251bGwKQEAgLTEsOTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQg
ImNvbmZpZy5oIgotI2ltcG9ydCAiUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCIKLQotI2ltcG9y
dCAiQXJndW1lbnRDb2RlcnNDRi5oIgotI2ltcG9ydCAiQXJndW1lbnREZWNvZGVyLmgiCi0jaW1w
b3J0ICJBcmd1bWVudEVuY29kZXIuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1QbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6UGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8oKQotewotfQotCi1QbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6UGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi0gICAgOiBt
X2NlcnRpZmljYXRlQ2hhaW4ocmVzcG9uc2UuY2VydGlmaWNhdGVDaGFpbigpKQotewotfQotCi1Q
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oQ0ZBcnJheVJl
ZiBjZXJ0aWZpY2F0ZUNoYWluKQotICAgIDogbV9jZXJ0aWZpY2F0ZUNoYWluKGNlcnRpZmljYXRl
Q2hhaW4pCi17Ci19Ci0KLXZvaWQgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2NlcnRp
ZmljYXRlQ2hhaW4pIHsKLSAgICAgICAgZW5jb2RlciA8PCBmYWxzZTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGVuY29kZXIgPDwgdHJ1ZTsKLSAgICBDb3JlSVBDOjplbmNvZGUoZW5j
b2RlciwgbV9jZXJ0aWZpY2F0ZUNoYWluLmdldCgpKTsKLX0KLQotYm9vbCBQbGF0Zm9ybUNlcnRp
ZmljYXRlSW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8mIGMpCi17Ci0gICAgYm9vbCBoYXNDZXJ0aWZpY2F0ZUNoYWlu
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzQ2VydGlmaWNhdGVDaGFpbikpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGlmICghaGFzQ2VydGlmaWNhdGVDaGFpbikKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoIUNvcmVJUEM6OmRlY29kZShkZWNvZGVyLCBjLm1fY2Vy
dGlmaWNhdGVDaGFpbikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVl
OwotfQotCi0jaWZuZGVmIE5ERUJVRwotdm9pZCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZHVt
cCgpIGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgZW50cmllcyA9IG1fY2VydGlmaWNhdGVDaGFpbiA/
IENGQXJyYXlHZXRDb3VudChtX2NlcnRpZmljYXRlQ2hhaW4uZ2V0KCkpIDogMDsKLQotICAgIE5T
TG9nKEAiUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9cbiIpOwotICAgIE5TTG9nKEAiICBFbnRyaWVz
OiAlZFxuIiwgZW50cmllcyk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGVudHJpZXM7
ICsraSkgewotICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHN1bW1hcnkgPSBhZG9wdENG
KFNlY0NlcnRpZmljYXRlQ29weVN1YmplY3RTdW1tYXJ5KChTZWNDZXJ0aWZpY2F0ZVJlZilDRkFy
cmF5R2V0VmFsdWVBdEluZGV4KG1fY2VydGlmaWNhdGVDaGFpbi5nZXQoKSwgaSkpKTsKLSAgICAg
ICAgTlNMb2coQCIgICVAIiwgKE5TU3RyaW5nICopc3VtbWFyeS5nZXQoKSk7Ci0gICAgfQotfQot
I2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQppbmRleCBiYTRlODc5Njhh
OThiN2FhNjg3OWE5ZGQ4MTc5MWNkYmJkYmVjOTVkLi43MGZlMDJlNjVhY2JlZTNlYjNiOGY0MmYw
ZWQxODMxN2VmNzhhMTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dl
YkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaW1wb3J0
ICJBcmd1bWVudENvZGVyc0NGLmgiCiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgiCi0jaW1wb3J0
ICJQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIgorI2ltcG9ydCAiQ2VydGlmaWNhdGVJbmZvLmgi
CiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgPFdlYkNvcmUvS2V5
Ym9hcmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CkBAIC0yMTcs
NyArMjE3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGVQbGF0
Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLAogCiAgICAgaWQgcGVlckNlcnRpZmlj
YXRlQ2hhaW4gPSBbdXNlckluZm8gb2JqZWN0Rm9yS2V5OkAiTlNFcnJvclBlZXJDZXJ0aWZpY2F0
ZUNoYWluS2V5Il07CiAgICAgQVNTRVJUKCFwZWVyQ2VydGlmaWNhdGVDaGFpbiB8fCBbcGVlckNl
cnRpZmljYXRlQ2hhaW4gaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKTsKLSAgICBlbmNv
ZGVyIDw8IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKChDRkFycmF5UmVmKXBlZXJDZXJ0aWZpY2F0
ZUNoYWluKTsKKyAgICBlbmNvZGVyIDw8IENlcnRpZmljYXRlSW5mbygoQ0ZBcnJheVJlZilwZWVy
Q2VydGlmaWNhdGVDaGFpbik7CiB9CiAKIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9y
Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VF
cnJvciYgcmVzb3VyY2VFcnJvcikKQEAgLTI0Myw3ICsyNDMsNyBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdHJpbmdVc2VySW5mb01hcCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvIGNlcnRpZmlj
YXRlOworICAgIENlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZTsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGNlcnRpZmljYXRlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9DZXJ0aWZpY2F0ZUluZm8uY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGMw
ODFlNTMyNzhkMDcyM2UyMzFlYzQ0ZjlkMjI3ZWUxYTc1NzVkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmNwcApAQCAtMCwwICsx
LDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ2VydGlmaWNhdGVJbmZvLmgiCisKKyNp
bmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIK
KyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVy
cm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8
bGlic291cC9zb3VwLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworQ2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZUluZm8oKQorICAgIDogbV90
bHNFcnJvcnMoc3RhdGljX2Nhc3Q8R1Rsc0NlcnRpZmljYXRlRmxhZ3M+KDApKQoreworfQorCitD
ZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmljYXRlSW5mbyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKKyAgICA6IG1fY2VydGlmaWNhdGUocmVzcG9uc2Uuc291cE1lc3NhZ2VDZXJ0aWZp
Y2F0ZSgpKQorICAgICwgbV90bHNFcnJvcnMocmVzcG9uc2Uuc291cE1lc3NhZ2VUTFNFcnJvcnMo
KSkKK3sKK30KKworQ2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVzb3Vy
Y2VFcnJvciYgcmVzb3VyY2VFcnJvcikKKyAgICA6IG1fY2VydGlmaWNhdGUocmVzb3VyY2VFcnJv
ci5jZXJ0aWZpY2F0ZSgpKQorICAgICwgbV90bHNFcnJvcnMoc3RhdGljX2Nhc3Q8R1Rsc0NlcnRp
ZmljYXRlRmxhZ3M+KHJlc291cmNlRXJyb3IudGxzRXJyb3JzKCkpKQoreworfQorCitDZXJ0aWZp
Y2F0ZUluZm86OkNlcnRpZmljYXRlSW5mbyhHVGxzQ2VydGlmaWNhdGUqIGNlcnRpZmljYXRlLCBH
VGxzQ2VydGlmaWNhdGVGbGFncyB0bHNFcnJvcnMpCisgICAgOiBtX2NlcnRpZmljYXRlKGNlcnRp
ZmljYXRlKQorICAgICwgbV90bHNFcnJvcnModGxzRXJyb3JzKQoreworfQorCitDZXJ0aWZpY2F0
ZUluZm86On5DZXJ0aWZpY2F0ZUluZm8oKQoreworfQorCit2b2lkIENlcnRpZmljYXRlSW5mbzo6
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBp
ZiAoIW1fY2VydGlmaWNhdGUpIHsKKyAgICAgICAgZW5jb2RlciA8PCBmYWxzZTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIEdCeXRlQXJyYXkqIGNlcnRpZmljYXRlRGF0YSA9IDA7Cisg
ICAgZ19vYmplY3RfZ2V0KEdfT0JKRUNUKG1fY2VydGlmaWNhdGUuZ2V0KCkpLCAiY2VydGlmaWNh
dGUiLCAmY2VydGlmaWNhdGVEYXRhLCBOVUxMKTsKKyAgICBpZiAoIWNlcnRpZmljYXRlRGF0YSkg
eworICAgICAgICBlbmNvZGVyIDw8IGZhbHNlOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgZW5jb2RlciA8PCB0cnVlOworICAgIEdSZWZQdHI8R0J5dGVBcnJheT4gY2VydGlmaWNhdGUg
PSBhZG9wdEdSZWYoY2VydGlmaWNhdGVEYXRhKTsKKyAgICBlbmNvZGVyLmVuY29kZVZhcmlhYmxl
TGVuZ3RoQnl0ZUFycmF5KENvcmVJUEM6OkRhdGFSZWZlcmVuY2UoY2VydGlmaWNhdGUtPmRhdGEs
IGNlcnRpZmljYXRlLT5sZW4pKTsKKyAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90
PihtX3Rsc0Vycm9ycyk7Cit9CisKK2Jvb2wgQ2VydGlmaWNhdGVJbmZvOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRl
SW5mbykKK3sKKyAgICBib29sIGhhc0NlcnRpZmljYXRlOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaGFzQ2VydGlmaWNhdGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWhh
c0NlcnRpZmljYXRlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIENvcmVJUEM6OkRhdGFS
ZWZlcmVuY2UgY2VydGlmaWNhdGVEYXRhUmVmZXJlbmNlOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShjZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2UpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBHQnl0ZUFycmF5KiBjZXJ0aWZpY2F0ZURhdGEgPSBn
X2J5dGVfYXJyYXlfc2l6ZWRfbmV3KGNlcnRpZmljYXRlRGF0YVJlZmVyZW5jZS5zaXplKCkpOwor
ICAgIGNlcnRpZmljYXRlRGF0YSA9IGdfYnl0ZV9hcnJheV9hcHBlbmQoY2VydGlmaWNhdGVEYXRh
LCBjZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2UuZGF0YSgpLCBjZXJ0aWZpY2F0ZURhdGFSZWZlcmVu
Y2Uuc2l6ZSgpKTsKKyAgICBHUmVmUHRyPEdCeXRlQXJyYXk+IGNlcnRpZmljYXRlID0gYWRvcHRH
UmVmKGNlcnRpZmljYXRlRGF0YSk7CisKKyAgICBHVGxzQmFja2VuZCogYmFja2VuZCA9IGdfdGxz
X2JhY2tlbmRfZ2V0X2RlZmF1bHQoKTsKKyAgICBjZXJ0aWZpY2F0ZUluZm8ubV9jZXJ0aWZpY2F0
ZSA9IGFkb3B0R1JlZihHX1RMU19DRVJUSUZJQ0FURShnX2luaXRhYmxlX25ldyhnX3Rsc19iYWNr
ZW5kX2dldF9jZXJ0aWZpY2F0ZV90eXBlKGJhY2tlbmQpLCAwLCAwLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJjZXJ0aWZpY2F0ZSIsIGNlcnRpZmljYXRlLmdldCgpLCBOVUxMKSkpOworCisgICAg
dWludDMyX3QgdGxzRXJyb3JzOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGxzRXJyb3JzKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNlcnRpZmljYXRlSW5mby5tX3Rsc0Vycm9ycyA9
IHN0YXRpY19jYXN0PEdUbHNDZXJ0aWZpY2F0ZUZsYWdzPih0bHNFcnJvcnMpOworCisgICAgcmV0
dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvc291cC9DZXJ0aWZpY2F0ZUluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjU1OGFhMTgyMWU4MTgy
M2ZkYWQ5OTZmYzRkOWEyMTgyZGQwOGUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQ
b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ2VydGlmaWNhdGVJbmZvX2gKKyNk
ZWZpbmUgQ2VydGlmaWNhdGVJbmZvX2gKKworI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xh
c3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQXJndW1lbnRFbmNvZGVyOworfQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3VyY2VSZXNwb25z
ZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENlcnRpZmljYXRlSW5mbyB7Citw
dWJsaWM6CisgICAgQ2VydGlmaWNhdGVJbmZvKCk7CisgICAgZXhwbGljaXQgQ2VydGlmaWNhdGVJ
bmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICBleHBsaWNpdCBDZXJ0
aWZpY2F0ZUluZm8oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIGV4cGxpY2l0
IENlcnRpZmljYXRlSW5mbyhHVGxzQ2VydGlmaWNhdGUqLCBHVGxzQ2VydGlmaWNhdGVGbGFncyk7
CisgICAgfkNlcnRpZmljYXRlSW5mbygpOworCisgICAgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZp
Y2F0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2VydGlmaWNhdGUuZ2V0KCk7IH0KKyAgICBHVGxzQ2Vy
dGlmaWNhdGVGbGFncyB0bHNFcnJvcnMoKSBjb25zdCB7IHJldHVybiBtX3Rsc0Vycm9yczsgfQor
CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAg
c3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIENlcnRpZmljYXRl
SW5mbyYpOworCitwcml2YXRlOgorICAgIEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPiBtX2NlcnRp
ZmljYXRlOworICAgIEdUbHNDZXJ0aWZpY2F0ZUZsYWdzIG1fdGxzRXJyb3JzOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBDZXJ0aWZpY2F0ZUluZm9faApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8u
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8u
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNWNlNGVmZDVlZjBkMTM0YmEyNmRk
N2M4YzkxYjQ2NDg4YzE2N2IyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDExNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIgotCi0jaW5jbHVkZSAiQXJndW1lbnRE
ZWNvZGVyLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCi0jaW5jbHVkZSAiRGF0YVJl
ZmVyZW5jZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgotI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgot
Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvOjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpCi0gICAgOiBtX3Rs
c0Vycm9ycyhzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4oMCkpCi17Ci19Ci0KLVBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvOjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLSAgICA6IG1fY2VydGlmaWNhdGUocmVzcG9uc2Uuc291
cE1lc3NhZ2VDZXJ0aWZpY2F0ZSgpKQotICAgICwgbV90bHNFcnJvcnMocmVzcG9uc2Uuc291cE1l
c3NhZ2VUTFNFcnJvcnMoKSkKLXsKLX0KLQotUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OlBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCi0g
ICAgOiBtX2NlcnRpZmljYXRlKHJlc291cmNlRXJyb3IuY2VydGlmaWNhdGUoKSkKLSAgICAsIG1f
dGxzRXJyb3JzKHN0YXRpY19jYXN0PEdUbHNDZXJ0aWZpY2F0ZUZsYWdzPihyZXNvdXJjZUVycm9y
LnRsc0Vycm9ycygpKSkKLXsKLX0KLQotUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OlBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvKEdUbHNDZXJ0aWZpY2F0ZSogY2VydGlmaWNhdGUsIEdUbHNDZXJ0aWZp
Y2F0ZUZsYWdzIHRsc0Vycm9ycykKLSAgICA6IG1fY2VydGlmaWNhdGUoY2VydGlmaWNhdGUpCi0g
ICAgLCBtX3Rsc0Vycm9ycyh0bHNFcnJvcnMpCi17Ci19Ci0KLVBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvOjp+UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKQotewotfQotCi12b2lkIFBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAotewotICAgIGlmICghbV9jZXJ0aWZpY2F0ZSkgewotICAgICAgICBlbmNvZGVyIDw8IGZh
bHNlOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgR0J5dGVBcnJheSogY2VydGlmaWNh
dGVEYXRhID0gMDsKLSAgICBnX29iamVjdF9nZXQoR19PQkpFQ1QobV9jZXJ0aWZpY2F0ZS5nZXQo
KSksICJjZXJ0aWZpY2F0ZSIsICZjZXJ0aWZpY2F0ZURhdGEsIE5VTEwpOwotICAgIGlmICghY2Vy
dGlmaWNhdGVEYXRhKSB7Ci0gICAgICAgIGVuY29kZXIgPDwgZmFsc2U7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBlbmNvZGVyIDw8IHRydWU7Ci0gICAgR1JlZlB0cjxHQnl0ZUFycmF5
PiBjZXJ0aWZpY2F0ZSA9IGFkb3B0R1JlZihjZXJ0aWZpY2F0ZURhdGEpOwotICAgIGVuY29kZXIu
ZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZShjZXJ0
aWZpY2F0ZS0+ZGF0YSwgY2VydGlmaWNhdGUtPmxlbikpOwotICAgIGVuY29kZXIgPDwgc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KG1fdGxzRXJyb3JzKTsKLX0KLQotYm9vbCBQbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbykKLXsKLSAgICBib29sIGhhc0NlcnRp
ZmljYXRlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzQ2VydGlmaWNhdGUpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWhhc0NlcnRpZmljYXRlKQotICAgICAgICByZXR1
cm4gdHJ1ZTsKLQotICAgIENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgY2VydGlmaWNhdGVEYXRhUmVm
ZXJlbmNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShj
ZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2UpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBH
Qnl0ZUFycmF5KiBjZXJ0aWZpY2F0ZURhdGEgPSBnX2J5dGVfYXJyYXlfc2l6ZWRfbmV3KGNlcnRp
ZmljYXRlRGF0YVJlZmVyZW5jZS5zaXplKCkpOwotICAgIGNlcnRpZmljYXRlRGF0YSA9IGdfYnl0
ZV9hcnJheV9hcHBlbmQoY2VydGlmaWNhdGVEYXRhLCBjZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2Uu
ZGF0YSgpLCBjZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKLSAgICBHUmVmUHRyPEdC
eXRlQXJyYXk+IGNlcnRpZmljYXRlID0gYWRvcHRHUmVmKGNlcnRpZmljYXRlRGF0YSk7Ci0KLSAg
ICBHVGxzQmFja2VuZCogYmFja2VuZCA9IGdfdGxzX2JhY2tlbmRfZ2V0X2RlZmF1bHQoKTsKLSAg
ICBjZXJ0aWZpY2F0ZUluZm8ubV9jZXJ0aWZpY2F0ZSA9IGFkb3B0R1JlZihHX1RMU19DRVJUSUZJ
Q0FURShnX2luaXRhYmxlX25ldyhnX3Rsc19iYWNrZW5kX2dldF9jZXJ0aWZpY2F0ZV90eXBlKGJh
Y2tlbmQpLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjZXJ0aWZpY2F0ZSIsIGNlcnRp
ZmljYXRlLmdldCgpLCBOVUxMKSkpOwotCi0gICAgdWludDMyX3QgdGxzRXJyb3JzOwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodGxzRXJyb3JzKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGNlcnRpZmljYXRlSW5mby5tX3Rsc0Vycm9ycyA9IHN0YXRpY19jYXN0PEdUbHNDZXJ0aWZpY2F0
ZUZsYWdzPih0bHNFcnJvcnMpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmZjEyMGM3
YTIxZmU3OTQzMDQ1NWZkYzU4OTY4ZmZiNGExODlmMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8uaAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvX2gKLSNkZWZpbmUgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9faAotCi0jaW5jbHVkZSA8bGli
c291cC9zb3VwLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotCi1uYW1lc3Bh
Y2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBBcmd1bWVudEVuY29k
ZXI7Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFJlc291cmNlRXJyb3I7Ci1jbGFz
cyBSZXNvdXJjZVJlc3BvbnNlOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgUGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8gewotcHVibGljOgotICAgIFBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvKCk7Ci0gICAgZXhwbGljaXQgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIGV4cGxpY2l0IFBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKLSAgICBleHBsaWNpdCBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbyhHVGxzQ2VydGlmaWNhdGUqLCBHVGxzQ2VydGlmaWNhdGVGbGFncyk7
Ci0gICAgflBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCk7Ci0KLSAgICBHVGxzQ2VydGlmaWNhdGUq
IGNlcnRpZmljYXRlKCkgY29uc3QgeyByZXR1cm4gbV9jZXJ0aWZpY2F0ZS5nZXQoKTsgfQotICAg
IEdUbHNDZXJ0aWZpY2F0ZUZsYWdzIHRsc0Vycm9ycygpIGNvbnN0IHsgcmV0dXJuIG1fdGxzRXJy
b3JzOyB9Ci0KLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25z
dDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgUGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8mKTsKLQotcHJpdmF0ZToKLSAgICBHUmVmUHRyPEdUbHNDZXJ0
aWZpY2F0ZT4gbV9jZXJ0aWZpY2F0ZTsKLSAgICBHVGxzQ2VydGlmaWNhdGVGbGFncyBtX3Rsc0Vy
cm9yczsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm9faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291
cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcAppbmRleCBkYzRlMTE5MTc1N2VjZTE3NWFk
NDg1YTdhYTcyMjUyZmFmYWU4ODQ2Li41NGM5NWY1YjA0NTUyOGRlNGY1MzhjZjY5NGFhZDkxYmU4
NGNjZmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9XZWJD
b3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCi0jaW5jbHVkZSAi
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCIKKyNpbmNsdWRlICJDZXJ0aWZpY2F0ZUluZm8uaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgpA
QCAtNzAsMTIgKzcwLDEyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6
ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlCiAKIHZvaWQgQXJndW1l
bnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcikKIHsKLSAgICBl
bmNvZGVyIDw8IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKHJlc291cmNlRXJyb3IpOworICAgIGVu
Y29kZXIgPDwgQ2VydGlmaWNhdGVJbmZvKHJlc291cmNlRXJyb3IpOwogfQogCiBib29sIEFyZ3Vt
ZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7Ci0gICAgUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvOworICAgIENlcnRpZmljYXRlSW5mbyBj
ZXJ0aWZpY2F0ZUluZm87CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjZXJ0aWZpY2F0ZUluZm8p
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENlcnRpZmljYXRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDZXJ0aWZpY2F0ZUluZm8uY3BwCmluZGV4IDU0YjEw
NDA0NTliMGYwMDNhZTE2MDdjYmZkMmJmODMwYTRlZjk4MDAuLjEyZGYxYWFjYTgwMjU3OWZiODVh
NjNkMGYwMWE1ZjY5MDE1ZjBiODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdENlcnRpZmljYXRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q2VydGlmaWNhdGVJbmZvLmNwcApAQCAtNDIsNyArNDIs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogR19ERUZJTkVfQk9YRURfVFlQRShXZWJL
aXRDZXJ0aWZpY2F0ZUluZm8sIHdlYmtpdF9jZXJ0aWZpY2F0ZV9pbmZvLCB3ZWJraXRfY2VydGlm
aWNhdGVfaW5mb19jb3B5LCB3ZWJraXRfY2VydGlmaWNhdGVfaW5mb19mcmVlKQogCi1jb25zdCBQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgd2Via2l0Q2VydGlmaWNhdGVJbmZvR2V0Q2VydGlmaWNh
dGVJbmZvKFdlYktpdENlcnRpZmljYXRlSW5mbyogaW5mbykKK2NvbnN0IENlcnRpZmljYXRlSW5m
byYgd2Via2l0Q2VydGlmaWNhdGVJbmZvR2V0Q2VydGlmaWNhdGVJbmZvKFdlYktpdENlcnRpZmlj
YXRlSW5mbyogaW5mbykKIHsKICAgICBBU1NFUlQoaW5mbyk7CiAgICAgcmV0dXJuIGluZm8tPmNl
cnRpZmljYXRlSW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENlcnRpZmljYXRlSW5mb1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdENlcnRpZmljYXRlSW5mb1ByaXZhdGUuaAppbmRleCA2NmQyNmE0
MDExYjQxNTZhNjRhMGIwM2ZhNDJiYjhkY2I4NjQ4MjYyLi42ZmRiMjRmNjliZGU0OGUxMDkwZTI3
ZmUwOWZkNjY3NjAzODI3MTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRDZXJ0aWZpY2F0ZUluZm9Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q2VydGlmaWNhdGVJbmZvUHJpdmF0ZS5oCkBAIC0y
MCw3ICsyMCw3IEBACiAjaWZuZGVmIFdlYktpdENlcnRpZmljYXRlSW5mb1ByaXZhdGVfaAogI2Rl
ZmluZSBXZWJLaXRDZXJ0aWZpY2F0ZUluZm9Qcml2YXRlX2gKIAotI2luY2x1ZGUgIlBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvLmgiCisjaW5jbHVkZSAiQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0Q2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgog
CkBAIC0zNSw5ICszNSw5IEBAIHN0cnVjdCBfV2ViS2l0Q2VydGlmaWNhdGVJbmZvIHsKICAgICB7
CiAgICAgfQogCi0gICAgV2ViS2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0
ZUluZm87CisgICAgV2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvOwogfTsK
IAotY29uc3QgV2ViS2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgd2Via2l0Q2VydGlmaWNh
dGVJbmZvR2V0Q2VydGlmaWNhdGVJbmZvKFdlYktpdENlcnRpZmljYXRlSW5mbyopOworY29uc3Qg
V2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm8mIHdlYmtpdENlcnRpZmljYXRlSW5mb0dldENlcnRpZmlj
YXRlSW5mbyhXZWJLaXRDZXJ0aWZpY2F0ZUluZm8qKTsKIAogI2VuZGlmIC8vIFdlYktpdENlcnRp
ZmljYXRlSW5mb1ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCA1ZDUyYTlkZWRjMGZmNDFhZWI4MTM1MTYyMjVl
ZWZmNjNjMzVjNTAyLi5jOTg0NGY4NGY0NGU2NTE2NDU2OTNjZWQ3NmNhZjllNjFjOWEzMjNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
LmNwcApAQCAtMjEsOCArMjEsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldl
YktpdFdlYlZpZXcuaCIKIAorI2luY2x1ZGUgIkNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUg
IkltYWdlT3B0aW9ucy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCiAj
aW5jbHVkZSAiV2ViQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJ
dGVtLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIgpAQCAtMzAyOCw3ICsz
MDI4LDcgQEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2dldF90bHNfaW5mbyhXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBHVGxzQ2VydGlmaWNhdGUqKgogICAgIGlmICghbWFpbkZyYW1lKQogICAg
ICAgICByZXR1cm4gRkFMU0U7CiAKLSAgICBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYg
Y2VydGlmaWNhdGVJbmZvID0gbWFpbkZyYW1lLT5jZXJ0aWZpY2F0ZUluZm8oKS0+cGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oKTsKKyAgICBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRl
SW5mbyA9IG1haW5GcmFtZS0+Y2VydGlmaWNhdGVJbmZvKCktPmNlcnRpZmljYXRlSW5mbygpOwog
ICAgIGlmIChjZXJ0aWZpY2F0ZSkKICAgICAgICAgKmNlcnRpZmljYXRlID0gY2VydGlmaWNhdGVJ
bmZvLmNlcnRpZmljYXRlKCk7CiAgICAgaWYgKGVycm9ycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcAppbmRleCA5ZjY0ODg1YWU4ODQ4NGRjNzQxNTE1NzI5
ZjU1NGI5ZjUyNmE1ZGQ1Li44ZDIwYzc2NjhlMjVlNTVjYmM4ZTkxYWMxMDcxOWZlYzc2Mzc0N2Uz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuY3BwCkBAIC02
Niw3ICs2Niw3IEBAIHZvaWQgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTo6dXNlQ3JlZGVu
dGlhbChXZWJDcmVkZW50aWFsKiBjcmVkZW50aWFsKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Q29udGludWVXaXRob3V0Q3JlZGVu
dGlhbEZvckNoYWxsZW5nZShtX2NoYWxsZW5nZUlEKSwgMCk7CiAgICAgZWxzZSB7CiAgICAgICAg
IFdlYkNlcnRpZmljYXRlSW5mbyogY2VydGlmaWNhdGVJbmZvID0gY3JlZGVudGlhbC0+Y2VydGlm
aWNhdGVJbmZvKCk7Ci0gICAgICAgIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvIHBsYXRmb3JtSW5m
byA9IGNlcnRpZmljYXRlSW5mbyA/IGNlcnRpZmljYXRlSW5mby0+cGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8oKSA6IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCk7CisgICAgICAgIENlcnRpZmljYXRl
SW5mbyBwbGF0Zm9ybUluZm8gPSBjZXJ0aWZpY2F0ZUluZm8gPyBjZXJ0aWZpY2F0ZUluZm8tPmNl
cnRpZmljYXRlSW5mbygpIDogQ2VydGlmaWNhdGVJbmZvKCk7CiAgICAgICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpVc2VDcmVkZW50aWFsRm9y
Q2hhbGxlbmdlKG1fY2hhbGxlbmdlSUQsIGNyZWRlbnRpYWwtPmNvcmUoKSwgcGxhdGZvcm1JbmZv
KSwgMCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5k
ZXggZWQ2MjZhZGQ3ZTFlYzQ5NDIzNmU3Y2FhYzQ0N2M5OTlhM2MyZDY2Zi4uOGVjYzk5MzkzMDdl
MzkxNzU4MTM4NTVjODYyYWJkZThmNDA5YjMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcApAQCAtMTA5NiwxMiArMTA5NiwxMiBAQCB2b2lkIFdlYkNvbnRleHQ6OmFs
bG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDZXJ0aWZpY2F0ZUlu
Zm8qCiB7CiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBpZiAobV91c2VzTmV0d29y
a1Byb2Nlc3MgJiYgbV9uZXR3b3JrUHJvY2VzcykgewotICAgICAgICBtX25ldHdvcmtQcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlm
aWNhdGVGb3JIb3N0KGNlcnRpZmljYXRlLT5wbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpLCBob3N0
KSwgMCk7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY2VydGlmaWNhdGUt
PmNlcnRpZmljYXRlSW5mbygpLCBob3N0KSwgMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAj
ZWxzZQogI2lmIFVTRShTT1VQKQotICAgIG1fcHJvY2Vzc2VzWzBdLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzOjpBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY2VydGlmaWNh
dGUtPnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCksIGhvc3QpLCAwKTsKKyAgICBtX3Byb2Nlc3Nl
c1swXS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6QWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlm
aWNhdGVGb3JIb3N0KGNlcnRpZmljYXRlLT5jZXJ0aWZpY2F0ZUluZm8oKSwgaG9zdCksIDApOwog
ICAgIHJldHVybjsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGNlcnRpZmljYXRlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAppbmRleCBhNTcwODdjMWZkNGM4
ZGFjMjAyMjMwN2FkNDViNmExNTg5ZWFkMmYzLi4wOTMxOTZkOGQxM2JkNjhmMDQ5ZTk3YjQ2Zjdk
ODcyZTUyNjRmNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJh
bWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHku
Y3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBXZWJGcmFtZVByb3h5OjpkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkKCkKICAgICBtX3VucmVhY2hhYmxlVVJMID0gbV9sYXN0VW5yZWFjaGFibGVVUkw7
CiB9CiAKLXZvaWQgV2ViRnJhbWVQcm94eTo6ZGlkQ29tbWl0TG9hZChjb25zdCBTdHJpbmcmIGNv
bnRlbnRUeXBlLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZv
KQordm9pZCBXZWJGcmFtZVByb3h5OjpkaWRDb21taXRMb2FkKGNvbnN0IFN0cmluZyYgY29udGVu
dFR5cGUsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogewogICAgIEFT
U0VSVChtX2xvYWRTdGF0ZSA9PSBMb2FkU3RhdGVQcm92aXNpb25hbCk7CiAgICAgbV9sb2FkU3Rh
dGUgPSBMb2FkU3RhdGVDb21taXR0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRnJhbWVQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1l
UHJveHkuaAppbmRleCAwYmVlNjY2ZmZmZDRhZjJkMTFiNWZjN2RhZDI3NDhhMjY5NmI2YWQ1Li5k
ODA3YTlmYjYyNmY4ZDJhMDkxNmJmMTMzMjM4ZjQ1YzY3Nzc1MjIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKQEAgLTQyLDggKzQyLDggQEAgbmFtZXNwYWNlIENv
cmVJUEMgewogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwog
Y2xhc3MgSW1tdXRhYmxlQXJyYXk7Ci1jbGFzcyBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzsKIGNs
YXNzIFdlYkNlcnRpZmljYXRlSW5mbzsKIGNsYXNzIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQ
cm94eTsKIGNsYXNzIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTsKQEAgLTEwNiw3ICsxMDYs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZChjb25zdCBTdHJp
bmcmIHVybCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWQoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZCgpOwotICAgIHZvaWQgZGlkQ29tbWl0TG9hZChjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBj
b25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZChj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mKTsKICAgICB2
b2lkIGRpZEZpbmlzaExvYWQoKTsKICAgICB2b2lkIGRpZEZhaWxMb2FkKCk7CiAgICAgdm9pZCBk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uKGNvbnN0IFN0cmluZyYpOyAvLyBlZy4gYW5jaG9yIG5h
dmlnYXRpb24sIHNlc3Npb24gc3RhdGUgY2hhbmdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCA5MzhlMGY5N2MwMTdiYWZkOGY3MzBmNzg5OGM2ODEwNGI1
MzAwNWM4Li5jYTYyMGYxYjk4ZDAwMDYwOTQyOTgzMTkzYjNjY2QwNGYyMDdhMWRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjE5MSw3ICsyMTkxLDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyTG9hZERlcGVuZGVudENhbGxiYWNrcygpCiAgICAg
fQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IG9wYXF1ZUZyYW1lTG9h
ZFR5cGUsIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENv
bW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCB1aW50MzJfdCBvcGFxdWVGcmFtZUxvYWRUeXBlLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNl
cnRpZmljYXRlSW5mbywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAg
UmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVj
b2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAwYzQxNGQ5NGMzODRmYTMzZjFlMTlh
MGU3ZmM5MmMyN2ZmMzc0ZGJmLi45ZjJkZmE1ZmQ2Yzk2M2NmNGE2NGIwZDNkNWUzNmFiZmZkNjdh
YmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjMsMTEg
KzEyMywxMSBAQCB0eXBlZGVmIEd0a1dpZGdldCogUGxhdGZvcm1XaWRnZXQ7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCitjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBOYXRpdmVXZWJLZXli
b2FyZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViTW91c2VFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldo
ZWVsRXZlbnQ7CiBjbGFzcyBQYWdlQ2xpZW50OwotY2xhc3MgUGxhdGZvcm1DZXJ0aWZpY2F0ZUlu
Zm87CiBjbGFzcyBTdHJpbmdQYWlyVmVjdG9yOwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0Owog
Y2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKQEAgLTc3MSw3ICs3NzEsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB1bnJlYWNoYWJsZVVSTCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7Ci0gICAgdm9pZCBkaWRDb21taXRMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMy
X3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mLCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IGZyYW1lTG9hZFR5
cGUsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAg
ICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBk
aWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZDQ1YjVkMTc4MTcx
ZWU4OWNjNTk1YWFmZTBmYmQ5ZDQ1NjAzZjdlMy4uODk1NTFkMTE3ZjlhYzUwMTc5YjFhODI4MTQ0
ZWU2NzQzNmM5Yzc5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMTEsNyArMTExLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKICAgICBEaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogCiAgICAg
IyBGcmFtZSBsb2FkIG1lc3NhZ2VzCi0gICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIFdURjo6U3RyaW5nIG1pbWVUeXBlLCB1aW50MzJfdCBsb2FkVHlwZSwgV2ViS2l0
OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIFdlYktpdDo6SW5qZWN0
ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGljCisgICAgRGlkQ29t
bWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIG1pbWVUeXBlLCB1
aW50MzJfdCBsb2FkVHlwZSwgV2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZv
LCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSBWYXJp
YWRpYwogICAgIERpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5j
b2RlciB1c2VyRGF0YSkgVmFyaWFkaWMKICAgICBEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0
OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgVmFyaWFkaWMKICAg
ICBEaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6
OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSBWYXJpYWRpYwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDg1ZWIzM2VjODU0MzE2ZGVmZTRlMWJiZGMwZDBjZGYzNTBmMjhkYTUuLjBhM2Q0ZDMxNmVjODUz
MDQ2YzhmMzhhOWIxNGZmZmNhNjhkYTg0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMjksOCArMTEyOSw4IEBACiAJCUJD
RjE4NjM4MTY3RDA3MUUwMEExQTg1QSAvKiBDYWNoZU1vZGVsLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjE4NjM3MTY3RDA3MUUwMEExQTg1QSAv
KiBDYWNoZU1vZGVsLmNwcCAqLzsgfTsKIAkJQkNGNERFMjMxNjhFNEJENTAwQzk0QUZDIC8qIE5l
dHdvcmtQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNGNERFMjIxNjhFNEJENTAwQzk0QUZDIC8qIE5ldHdvcmtQcm9jZXNz
U3VwcGxlbWVudC5oICovOyB9OwogCQlCQ0Y0REUyNTE2OEZBNDQ4MDBDOTRBRkMgLyogV2ViQ29u
dGV4dFN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDRjRERTI0MTY4RkE0NDgwMEM5NEFGQyAvKiBXZWJDb250ZXh0U3VwcGxlbWVudC5o
ICovOyB9OwotCQlCQ0Y1MDVFNzEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RjUwNUU1MTI0MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oICovOyB9
OwotCQlCQ0Y1MDVFODEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8u
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y1MDVF
NjEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0gKi87IH07CisJ
CUJDRjUwNUU3MTI0MzA0N0IwMDU5NTVBRSAvKiBDZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjUwNUU1MTI0MzA0N0IwMDU5
NTVBRSAvKiBDZXJ0aWZpY2F0ZUluZm8uaCAqLzsgfTsKKwkJQkNGNTA1RTgxMjQzMDQ3QjAwNTk1
NUFFIC8qIENlcnRpZmljYXRlSW5mby5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDRjUwNUU2MTI0MzA0N0IwMDU5NTVBRSAvKiBDZXJ0aWZpY2F0ZUlu
Zm8ubW0gKi87IH07CiAJCUJDRjUwNzI4MTI0MzI5QUEwMDU5NTVBRSAvKiBXZWJDZXJ0aWZpY2F0
ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RjUwNzI2MTI0MzI5QUEwMDU5NTVBRSAvKiBXZWJDZXJ0aWZpY2F0ZUluZm8uaCAqLzsgfTsKIAkJ
QkNGNjlGODYxMTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3RvcnlDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjlGODQxMTc2Q0Q2RjAw
NDcxQTUyIC8qIFdlYkhpc3RvcnlDbGllbnQuY3BwICovOyB9OwogCQlCQ0Y2OUY4NzExNzZDRDZG
MDA0NzFBNTIgLyogV2ViSGlzdG9yeUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjlGODUxMTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3Rv
cnlDbGllbnQuaCAqLzsgfTsKQEAgLTI2OTIsOCArMjY5Miw4IEBACiAJCUJDRjE4NjM3MTY3RDA3
MUUwMEExQTg1QSAvKiBDYWNoZU1vZGVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENhY2hlTW9kZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Q0Y0REUyMjE2OEU0QkQ1MDBDOTRBRkMgLyogTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudC5o
OyBwYXRoID0gTmV0d29yay9OZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNGNERFMjQxNjhGQTQ0ODAwQzk0QUZDIC8qIFdlYkNvbnRleHRT
dXBwbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRT
dXBwbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDRjUwNUU1MTI0MzA0
N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlCQ0Y1MDVFNjEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QkNGNTA1RTUxMjQzMDQ3QjAwNTk1NUFFIC8qIENlcnRpZmljYXRlSW5mby5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDZXJ0aWZpY2F0ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQkNGNTA1RTYxMjQzMDQ3QjAwNTk1NUFFIC8qIENlcnRpZmljYXRlSW5m
by5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENlcnRpZmljYXRl
SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGNTA2ODQxMjQzMTg2MTAw
NTk1NUFFIC8qIFNlY3VyaXR5LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gU2VjdXJpdHku
ZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHkuZnJh
bWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQlCQ0Y1MDcyNjEyNDMyOUFB
MDA1OTU1QUUgLyogV2ViQ2VydGlmaWNhdGVJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkNlcnRpZmljYXRlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQ0Y2OUY4NDExNzZDRDZGMDA0NzFBNTIgLyogV2ViSGlzdG9yeUNsaWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJIaXN0b3J5Q2xpZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2MjgsOCArNDYyOCw4IEBACiAJCQkJQzU3
NEE1ODAxMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5tbSAqLywKIAkJCQlFMTk1
ODJEMjE1M0NCRkQ3MDBCNjA4NzUgLyogUERGS2l0SW1wb3J0cy5oICovLAogCQkJCUUxOTU4MkQ0
MTUzQ0MwNTMwMEI2MDg3NSAvKiBQREZLaXRJbXBvcnRzLm1tICovLAotCQkJCUJDRjUwNUU1MTI0
MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oICovLAotCQkJCUJDRjUw
NUU2MTI0MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbSAqLywKKwkJ
CQlCQ0Y1MDVFNTEyNDMwNDdCMDA1OTU1QUUgLyogQ2VydGlmaWNhdGVJbmZvLmggKi8sCisJCQkJ
QkNGNTA1RTYxMjQzMDQ3QjAwNTk1NUFFIC8qIENlcnRpZmljYXRlSW5mby5tbSAqLywKIAkJCQlF
MUNDMUI4RjEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvTWFjLm1tICovLAogCQkJCTJENDdC
NTZBMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSAqLywKIAkJ
CQkyRDQ3QjU2QjE4MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaCAq
LywKQEAgLTU2MjAsNyArNTYyMCw3IEBACiAJCQkJQzU3NEE1ODExMkU2NjY4MTAwMkRGRTk4IC8q
IFBhc3RlYm9hcmRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5NTgyRDMxNTNDQkZENzAw
QjYwODc1IC8qIFBERktpdEltcG9ydHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRkNCMTg5MTdC
QkZFMDMwMDM5NENEOCAvKiBTeW5jaHJvbm91c05ldHdvcmtMb2FkZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUJDRjUwNUU3MTI0MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkNGNTA1RTcxMjQzMDQ3QjAwNTk1NUFFIC8q
IENlcnRpZmljYXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFMDBENEYxODJENkY1MDAw
MDg3REQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDQzQzQUJCMTI3Qjk1REMwMDMxN0YxNiAvKiBQbGF0Zm9ybVBvcHVwTWVudURhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDODc4MEZDMTE2MUMyQjgwMENDMjc2OCAvKiBQbGF0Zm9y
bVByb2Nlc3NJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTY5MzQsNyArNjkzNCw3IEBA
CiAJCQkJMkQyQURGMTAxNjM2NEQ4MjAwMTk3RTQ3IC8qIFBERlBsdWdpbkNob2ljZUFubm90YXRp
b24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDQyOUJGRDE3MjFFMkM3MDBFQzY4MUYgLyogUERG
UGx1Z2luUGFzc3dvcmRGaWVsZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEMkFERjA5MTYzNjJE
RDUwMDE5N0U0NyAvKiBQREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbSBpbiBTb3VyY2VzICovLAot
CQkJCUJDRjUwNUU4MTI0MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5t
bSBpbiBTb3VyY2VzICovLAorCQkJCUJDRjUwNUU4MTI0MzA0N0IwMDU5NTVBRSAvKiBDZXJ0aWZp
Y2F0ZUluZm8ubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0M0M0FCQTEyN0I5NURDMDAzMTdGMTYg
LyogUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNkZCN0Qy
MTFFNjUxRTIwMERCMTM3MSAvKiBQbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFBNjdF
MEMxNjVCMkE5OTAwNkNCQTY2IC8qIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZDU3NTE3MzIxZjI2YzA4MzU3MGY4MmRhZTIwZTBl
ZTliOWJmZThiZi4uYTViODQ0OWM0NzcwNmRjZDU1ODY0MjVkNTAzY2QxN2IwZjRlM2RkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkZXIuY3BwCkBAIC0yOCwxMSArMjgsMTEgQEAKIAogI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCiAKKyNpbmNsdWRlICJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJEYXRhUmVm
ZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmgi
Ci0jaW5jbHVkZSAiUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFNl
bmREYXRhKHVpbnQ2NF90IGJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVTCiAgICAg
bV9jb3JlTG9hZGVyLT5kaWRTZW5kRGF0YShieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2VudCk7
CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0
aWZpY2F0ZUluZm8oY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgbmVlZHNDb250aW51ZURp
ZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCit2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBuZWVk
c0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKIHsKICAgICBMT0coTmV0d29yaywg
IihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENl
cnRpZmljYXRlSW5mbyBmb3IgJyVzJy4gU3RhdHVzICVkLiIsIG1fY29yZUxvYWRlci0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLmgKaW5kZXggMDgxMmM5OWFmNThkOGQ1YTY5MjQ0NWE5OWNkYjNmYmYwZTRiYzk5Yy4uZmQy
ZWZhMmE5OWU5OTYxZjVkYjU5MWMwZWMwOThjZTM4NTYyNzUzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKQEAgLTUw
LDcgKzUwLDcgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLWNsYXNzIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOworY2xhc3MgQ2VydGlmaWNhdGVJbmZv
OwogdHlwZWRlZiB1aW50NjRfdCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogCiBjbGFzcyBXZWJS
ZXNvdXJjZUxvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlJlc291cmNlTG9hZGVyPiwgcHVi
bGljIENvcmVJUEM6Ok1lc3NhZ2VTZW5kZXIgewpAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAg
ICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0
ZXNUb0JlU2VudCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJ
bmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBQbGF0Zm9ybUNlcnRp
ZmljYXRlSW5mbyYsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2Up
OworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyhjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiwgYm9vbCBu
ZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7CiAgICAgdm9pZCBkaWRSZWNl
aXZlRGF0YShjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0
YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRGaW5pc2hSZXNvdXJjZUxvYWQoZG91YmxlIGZpbmlzaFRp
bWUpOwogICAgIHZvaWQgZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KaW5kZXggN2I0MDQ1ZTY2OWE0
ZjllZmRkNTYyZGUxYTI5ODc0MmE4YWVmMjZhZi4uOThhODc4ZmRmMDE1ZTE2MDQ5YTYxMDg3Zjky
YzM2Y2M2MDJmMWFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgpAQCAtMjksNyAr
MjksNyBAQCBtZXNzYWdlcyAtPiBXZWJSZXNvdXJjZUxvYWRlciBMZWdhY3lSZWNlaXZlciB7CiAg
ICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogV2UnbGwgbmVlZCBtdWNoIG1vcmUgZ3JhbnVs
YXJpdHkgZm9yIHJlc3BvbnNlIG1lc3NhZ2VzLgogICAgIFdpbGxTZW5kUmVxdWVzdChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRp
cmVjdFJlc3BvbnNlKQogICAgIERpZFNlbmREYXRhKHVpbnQ2NF90IGJ5dGVzU2VudCwgdWludDY0
X3QgdG90YWxCeXRlc1RvQmVTZW50KQotICAgIERpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZp
Y2F0ZUluZm8oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViS2l0OjpQbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgbmVlZHNDb250aW51ZURp
ZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCisgICAgRGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRp
ZmljYXRlSW5mbyhXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJLaXQ6OkNl
cnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZU1lc3NhZ2UpCiAgICAgRGlkUmVjZWl2ZURhdGEoQ29yZUlQQzo6RGF0YVJlZmVy
ZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQogICAgIERpZEZpbmlzaFJlc291
cmNlTG9hZChkb3VibGUgZmluaXNoVGltZSkKICAgICBEaWRGYWlsUmVzb3VyY2VMb2FkKFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CmluZGV4IDA3MWMxYjA3NTljNWE1MTYzMzg5NjZjNGQ0OGFmYzc0ZGQwY2Y4YzQuLjEwZmNmNzNm
NzgxYmM5NzkzNTAxMDBiOTEyNjljYWRmNTk1YmM0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC0yNywxMyArMjcsMTMgQEAKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRl
ckNsaWVudC5oIgogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCisjaW5jbHVk
ZSAiQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1
ZGUgIkluamVjdGVkQnVuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2Fy
ZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24u
aCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uaCIKICNpbmNsdWRl
ICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVkZSAiV2Vi
QmFja0ZvcndhcmRMaXN0UHJveHkuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVzc2FnZXMuaCIK
QEAgLTQ0MSw3ICs0NDEsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZENvbW1pdExvYWQoKQogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCiAKLSAgICB3ZWJQ
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENvbW1pdExvYWRGb3JGcmFtZSht
X2ZyYW1lLT5mcmFtZUlEKCksIHJlc3BvbnNlLm1pbWVUeXBlKCksIG1fZnJhbWUtPmNvcmVGcmFt
ZSgpLT5sb2FkZXIoKS5sb2FkVHlwZSgpLCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhyZXNwb25z
ZSksIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkpOwor
ICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ29tbWl0TG9hZEZv
ckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgcmVzcG9uc2UubWltZVR5cGUoKSwgbV9mcmFtZS0+
Y29yZUZyYW1lKCktPmxvYWRlcigpLmxvYWRUeXBlKCksIENlcnRpZmljYXRlSW5mbyhyZXNwb25z
ZSksIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkpOwog
CiAgICAgd2ViUGFnZS0+ZGlkQ29tbWl0TG9hZChtX2ZyYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggOTZlNGVjOGIwZGViZTZjZGQzN2I2Zjc2OGY4ZTE1
ZmY3YjUzZTkwMy4uNDhmY2MzNTRjYWQ0MzdkNmMxMTUwMWRiMmE3NzkzYzgwY2NlYzJhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTc0LDcgKzc0LDcgQEAgY2xh
c3MgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOwogY2xhc3MgV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyOwogI2Vsc2UKICNpZiBVU0UoU09VUCkKLWNsYXNzIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
OworY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwogI2VuZGlmCiAjZW5kaWYKIApAQCAtMTc0LDcgKzE3
NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUFjdGl2ZVBhZ2VzKCk7CiAKICNpZiAhRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykgJiYgVVNFKFNPVVApCi0gICAgdm9pZCBhbGxvd1NwZWNpZmlj
SFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mLCBj
b25zdCBTdHJpbmcmIGhvc3QpOworICAgIHZvaWQgYWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNh
dGVGb3JIb3N0KGNvbnN0IENlcnRpZmljYXRlSW5mbyYsIGNvbnN0IFN0cmluZyYgaG9zdCk7CiAj
ZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgppbmRleCA1MzJiNGMyZjE1MTdhODA4NGJhMjdmMWYxNzI3ODcxOTJj
NDM5MDliLi5hMDlmZjU2MGM0ZGQxMDNlNjMxMDE0ZTgwNjE2ZDQxOTRiNmQ4MjJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC04
NCw2ICs4NCw2IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2Vu
ZGlmCiAKICNpZiAhRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykgJiYgVVNFKFNPVVApCi0gICAgQWxs
b3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZp
Y2F0ZUluZm8gY2VydGlmaWNhdGUsIFdURjo6U3RyaW5nIGhvc3QpCisgICAgQWxsb3dTcGVjaWZp
Y0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmlj
YXRlLCBXVEY6OlN0cmluZyBob3N0KQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcAppbmRleCA3OWNmOTdkYWU5MmVmM2Uy
MDIxYzQ4YmYzNjcyM2RmN2E5OTVhNTM3Li5jMGMyMDZjNTEyZjVlODZkNzY4ZjY3ZGNiN2YxNTE3
ZWE3ZTlmNjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2Vi
UHJvY2Vzc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQ
cm9jZXNzU291cC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJTZWNjb21wRmlsdGVy
c1dlYlByb2Nlc3NFZmwuaCIKICNlbmRpZgogCi0jaW5jbHVkZSAiUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8uaCIKKyNpbmNsdWRlICJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJXZWJDb29r
aWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgog
I2luY2x1ZGUgIldlYlNvdXBSZXF1ZXN0TWFuYWdlci5oIgpAQCAtMjEwLDcgKzIxMCw3IEBAIHZv
aWQgV2ViUHJvY2Vzczo6c2V0SWdub3JlVExTRXJyb3JzKGJvb2wgaWdub3JlVExTRXJyb3JzKQog
fQogCiAjaWYgIUVOQUJMRShORVRXT1JLX1BST0NFU1MpCi12b2lkIFdlYlByb2Nlc3M6OmFsbG93
U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRl
SW5mbyYgY2VydGlmaWNhdGVJbmZvLCBjb25zdCBTdHJpbmcmIGhvc3QpCit2b2lkIFdlYlByb2Nl
c3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBDZXJ0aWZpY2F0
ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgU3RyaW5nJiBob3N0KQogewogICAgIFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpzZXRDbGllbnRDZXJ0aWZpY2F0ZShob3N0LCBjZXJ0aWZpY2F0
ZUluZm8uY2VydGlmaWNhdGUoKSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216579</attachid>
            <date>2013-11-11 09:30:11 -0800</date>
            <delta_ts>2013-11-19 07:10:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124150-20131111183008.patch</filename>
            <type>text/plain</type>
            <size>75721</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5MDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDI0NTY2ZmMzZmI2NzRk
YTU5ZmY3NDJkYzUzZmQ0NDFhMjE4N2Q4NS4uN2M4YTA2YmNjZjI2MDFiYWMwNmE3Y2JhZGI3NDFi
OWJiZTNlNjEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDEzLTExLTExICBDc2Fi
YSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuYW1lIFBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvIHRvIENlcnRpZmljYXRlSW5mbworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MTUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0FzeW5jaHJvbm91c05ldHdvcmtMb2FkZXJDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpBc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50OjpkaWRS
ZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW06CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZv
ckhvc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdCk6CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAg
ICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogU2hhcmVkL0FQSS9jL21hYy9XS0Nl
cnRpZmljYXRlSW5mb01hYy5tbToKKyAgICAgICAgKFdLQ2VydGlmaWNhdGVJbmZvQ3JlYXRlV2l0
aENlcnRmaWNhdGVDaGFpbik6CisgICAgICAgIChXS0NlcnRpZmljYXRlSW5mb0dldENlcnRpZmlj
YXRlQ2hhaW4pOgorICAgICAgICAqIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnRy
eVVzZUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhl
bnRpY2F0aW9uTWFuYWdlcjo6dXNlQ3JlZGVudGlhbEZvckNoYWxsZW5nZSk6CisgICAgICAgICog
U2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oOgorICAgICAgICAq
IFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW46
CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL21hYy9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIubWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnRyeVVz
ZUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZSk6CisgICAgICAgICogU2hhcmVkL1VzZXJNZXNz
YWdlQ29kZXJzLmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZXNzYWdlRW5jb2Rlcjo6YmFzZUVu
Y29kZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZXNzYWdlRGVjb2Rlcjo6YmFzZURlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNlcnRp
ZmljYXRlSW5mbzo6Y2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2VydGlm
aWNhdGVJbmZvOjpXZWJDZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ2Vy
dGlmaWNhdGVJbmZvLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Bs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvLmguCisgICAgICAgIChXZWJLaXQ6OkNlcnRpZmljYXRlSW5m
bzo6Y2VydGlmaWNhdGVDaGFpbik6CisgICAgICAgICogU2hhcmVkL21hYy9DZXJ0aWZpY2F0ZUlu
Zm8ubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvLm1tLgorICAgICAgICAoV2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm86OkNlcnRp
ZmljYXRlSW5mbyk6CisgICAgICAgIChXZWJLaXQ6OkNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpDZXJ0aWZpY2F0ZUluZm86OmR1bXApOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoQ29yZUlQQzo6OjplbmNvZGVQbGF0Zm9y
bURhdGEpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAg
ICAqIFNoYXJlZC9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAuCisgICAgICAg
IChXZWJLaXQ6OkNlcnRpZmljYXRlSW5mbzo6Q2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKFdl
YktpdDo6Q2VydGlmaWNhdGVJbmZvOjp+Q2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKFdlYktp
dDo6Q2VydGlmaWNhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpDZXJ0aWZpY2F0
ZUluZm86OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mby5oLgorICAgICAgICAoV2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm86OmNlcnRpZmljYXRl
KToKKyAgICAgICAgKFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvOjp0bHNFcnJvcnMpOgorICAgICAg
ICAqIFNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwOgorICAgICAgICAo
Q29yZUlQQzo6OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNv
ZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENlcnRp
ZmljYXRlSW5mby5jcHA6CisgICAgICAgICh3ZWJraXRDZXJ0aWZpY2F0ZUluZm9HZXRDZXJ0aWZp
Y2F0ZUluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENlcnRpZmljYXRl
SW5mb1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfdGxzX2luZm8pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTo6dXNlQ3Jl
ZGVudGlhbCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3Qp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVQcm94eTo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkZyYW1lUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVG
b3JIb3N0KToKKwogMjAxMy0xMS0xMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQ3Jhc2ggd2hlbiBwcmludGluZyB2aWEgamF2YXNj
cmlwdCBpbiBXZWJLaXQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBlOTU1NmJm
ZDI5MjRlZjIwMzAyOGZjZDhmMzg0MGI0ODBhZDUxZThkLi45ODYyNDAyZGQ0M2RiYTY0Yjk1YTkw
YTkwYWRkYTQwYWZhMzAxZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQ4
OCw4ICs0ODgsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TZXNzaW9uU3RhdGUuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRh
LmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmggXAotCVNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcCBcCi0JU291
cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCBcCisJU291
cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmNwcCBcCisJU291cmNlL1dl
YktpdDIvU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmggXAogCVNvdXJjZS9XZWJLaXQyL1No
YXJlZC9zb3VwL1NvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUuaCBcCiAJU291cmNlL1dl
YktpdDIvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAgXAogCVNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9UZXh0Q2hlY2tlclN0YXRlLmggXApAQCAtMTM3MCw4ICsxMzcwLDgg
QEAgd2Via2l0Ml9wbHVnaW5fcHJvY2Vzc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvZ3RrL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVk
L2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJvLmNwcCBcCi0JU291cmNlL1dlYktpdDIvU2hhcmVk
L3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvc291cC9DZXJ0aWZpY2F0ZUluZm8uY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291
cC9DZXJ0aWZpY2F0ZUluZm8uaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzU291cC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvQXN5bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Bc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50LmNw
cAppbmRleCAxYmFmNWIxOWFiMjAwM2U1NDhkMDNiYzJlNjU4MmIyMmE0M2ViN2E3Li44NjViNGMw
OTA3NDkxODE0YjdmNzBiNWYzNDVmYjY0MDFhYTg3NjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9Bc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Bc3luY2hyb25vdXNOZXR3b3JrTG9h
ZGVyQ2xpZW50LmNwcApAQCAtMjYsOSArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkFzeW5jaHJvbm91c05ldHdvcmtMb2FkZXJDbGllbnQuaCIKIAorI2luY2x1ZGUgIkNl
cnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUNlcnRpZmljYXRlSW5m
by5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlJl
c291cmNlTG9hZGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3Iu
aD4KQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBBc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50
OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKE5ldHcKIAogdm9pZCBBc3lu
Y2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoTmV0d29ya1Jl
c291cmNlTG9hZGVyKiBsb2FkZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQog
ewotICAgIGxvYWRlci0+c2VuZEFib3J0aW5nT25GYWlsdXJlKE1lc3NhZ2VzOjpXZWJSZXNvdXJj
ZUxvYWRlcjo6RGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyhyZXNwb25zZSwg
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ocmVzcG9uc2UpLCBsb2FkZXItPmlzTG9hZGluZ01haW5S
ZXNvdXJjZSgpKSk7CisgICAgbG9hZGVyLT5zZW5kQWJvcnRpbmdPbkZhaWx1cmUoTWVzc2FnZXM6
OldlYlJlc291cmNlTG9hZGVyOjpEaWRSZWNlaXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZv
KHJlc3BvbnNlLCBDZXJ0aWZpY2F0ZUluZm8ocmVzcG9uc2UpLCBsb2FkZXItPmlzTG9hZGluZ01h
aW5SZXNvdXJjZSgpKSk7CiB9CiAKIHZvaWQgQXN5bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVu
dDo6ZGlkUmVjZWl2ZUJ1ZmZlcihOZXR3b3JrUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgU2hhcmVk
QnVmZmVyKiBidWZmZXIsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGNhNmY4ZmJiNWYzODM1Y2Jh
YTRhMjA5NmUyNzVkOTM0OGI5OGU4ZjAuLjg1YjU2Zjg4MjgxZmMwOTgwMmY0ZjZjZGRhMmJkNTU5
NjFmNDY3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaApAQCAtMzgsOSArMzgsOSBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEF1
dGhlbnRpY2F0aW9uTWFuYWdlcjsKK2NsYXNzIENlcnRpZmljYXRlSW5mbzsKIGNsYXNzIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogY2xhc3MgTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50
OwotY2xhc3MgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm87CiBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzIDogcHVibGljIENoaWxk
UHJvY2VzcywgcHJpdmF0ZSBEb3dubG9hZE1hbmFnZXI6OkNsaWVudCB7CkBAIC0xMDQsNyArMTA0
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdCh1aW50NjRfdCBkb3dubG9h
ZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGNhbmNlbERv
d25sb2FkKHVpbnQ2NF90IGRvd25sb2FkSUQpOwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50
MzJfdCk7Ci0gICAgdm9pZCBhbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29u
c3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBTdHJpbmcmIGhvc3QpOworICAgIHZv
aWQgYWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IENlcnRpZmljYXRl
SW5mbyYsIGNvbnN0IFN0cmluZyYgaG9zdCk7CiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc1N0
YXRpc3RpY3ModWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBjbGVhckNhY2hlRm9yQWxs
T3JpZ2lucyh1aW50MzJfdCBjYWNoZXNUb0NsZWFyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBh
NWZjYmM3YmU5NDAyODA3YzFlNTU2MmEzZWU2OWZmNjA2OTg1ZGQ3Li5mOTY0YTdmZDQ2MTIxNmNj
YzY5YTgxYzc0YzI1YjQ2YTk0MTNjNzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzksNyArMzks
NyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0
UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29sIGZsYWcpCiAjZW5kaWYKIAotICAgIEFsbG93
U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChXZWJLaXQ6OlBsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvIGNlcnRpZmljYXRlLCBXVEY6OlN0cmluZyBob3N0KQorICAgIEFsbG93U3BlY2lmaWNI
VFRQU0NlcnRpZmljYXRlRm9ySG9zdChXZWJLaXQ6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0
ZSwgV1RGOjpTdHJpbmcgaG9zdCkKICAgICAKICAgICBHZXROZXR3b3JrUHJvY2Vzc1N0YXRpc3Rp
Y3ModWludDY0X3QgY2FsbGJhY2tJRCkKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDE2MzBhMmI0
N2ExM2ZjYWZmODE3OWE3YzQwYjRiMDk1YzYzMjYzOGEuLjQzMmVjNzZjZjNhZWY5Y2YzZjdiODgz
NjEwOWY0NjZmZmJkMWMyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAj
aW5jbHVkZSAiQXN5bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkF1
dGhlbnRpY2F0aW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIkNlcnRpZmljYXRlSW5mby5oIgogI2lu
Y2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
TmV0d29ya0Jsb2JSZWdpc3RyeS5oIgpAQCAtMzcsNyArMzgsNiBAQAogI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgotI2luY2x1ZGUg
IlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQuaCIKICNpbmNsdWRlICJTaGFyZWFibGVSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlNoYXJl
ZE1lbW9yeS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L05ldHdvcmtQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L05ldHdvcmtQcm9jZXNzTWFjLm1tCmluZGV4IGUxOTdmZjM5NmY3MGE3N2E5NTYyZDM1YWI1M2Qy
YzQ0NTM1Y2MwMmUuLmU2ZGMzYWMzZGYwMDM2MDdmMWQ5MDQzMDc5MDhkNTY4MTc4YzMwNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vz
c01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1By
b2Nlc3NNYWMubW0KQEAgLTMwLDcgKzMwLDcgQEAKIAogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgot
I2ltcG9ydCAiUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCIKKyNpbXBvcnQgIkNlcnRpZmljYXRl
SW5mby5oIgogI2ltcG9ydCAiUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmgiCiAjaW1wb3J0ICJTYW5k
Ym94RXh0ZW5zaW9uLmgiCiAjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
LmgiCkBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TZXRD
YWNoZU1vZGVsKENhY2hlTW9kZWwgY2FjaGVNb2RlbCkKICAgICBbbnN1cmxDYWNoZSBzZXREaXNr
Q2FwYWNpdHk6c3RkOjptYXg8dW5zaWduZWQgbG9uZz4odXJsQ2FjaGVEaXNrQ2FwYWNpdHksIFtu
c3VybENhY2hlIGRpc2tDYXBhY2l0eV0pXTsgLy8gRG9uJ3Qgc2hyaW5rIGEgYmlnIGRpc2sgY2Fj
aGUsIHNpbmNlIHRoYXQgd291bGQgY2F1c2UgY2h1cm4uCiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nl
c3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBQbGF0Zm9ybUNl
cnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBjb25zdCBTdHJpbmcmIGhvc3QpCit2b2lk
IE5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29u
c3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGNvbnN0IFN0cmluZyYgaG9zdCkK
IHsKICAgICBbTlNVUkxSZXF1ZXN0IHNldEFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZToo
TlNBcnJheSAqKWNlcnRpZmljYXRlSW5mby5jZXJ0aWZpY2F0ZUNoYWluKCkgZm9ySG9zdDooTlNT
dHJpbmcgKilob3N0XTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcAppbmRleCBkOGViYWNiZDBkN2Y0NTE1
Y2VkMTBjMTczNGJjNDE3Y2ViYmM5ZWY2Li5iZDRlNmMyOTcyYWQyMjI3YjQ1OWQ4YmMyNDA4OTJl
MTc1OWY1NzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtQcm9jZXNzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsKQogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYsIGNvbnN0
IFN0cmluZyYpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZp
Y2F0ZUZvckhvc3QoY29uc3QgQ2VydGlmaWNhdGVJbmZvJiwgY29uc3QgU3RyaW5nJikKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA2ZTZh
NTViOWY3NGFhMzQ1MjM0ODRkOTZmZDFiOGUzZDRmMzNjMWFhLi5hNWNkODVlZmRkY2IwNTgwODg0
OWYwYTM5NGE1YjJkNWJhOGFlMmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNDks
NyArNDksNyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvbGludXgv
U2VjY29tcEZpbHRlcnMvU3lzY2FsbC5jcHAKICAgICBTaGFyZWQvbGludXgvU2VjY29tcEZpbHRl
cnMvU3lzY2FsbFBvbGljeS5jcHAKIAotICAgIFNoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvLmNwcAorICAgIFNoYXJlZC9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHAKICAgICBTaGFy
ZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcAogCiAgICAgVUlQcm9jZXNzL0Rl
ZmF1bHRVbmRvQ29udHJvbGxlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZTZl
YzFiMzE4NzA3ZWIzMzE4ZmM1MDk4MjYwZWNkYTZlYzZkOGUxOS4uMWIxYzU1NDA1MDNjYjcyNzU5
ZGUyYTQ5MzFjMTg3YjRjNTc2ZWFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTYx
LDcgKzYxLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVkL2xpbnV4
L1NlY2NvbXBGaWx0ZXJzL1N5c2NhbGwuY3BwCiAgICAgU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0
ZXJzL1N5c2NhbGxQb2xpY3kuY3BwCiAKLSAgICBTaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mby5jcHAKKyAgICBTaGFyZWQvc291cC9DZXJ0aWZpY2F0ZUluZm8uY3BwCiAgICAgU2hh
cmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKIAogICAgIFVJUHJvY2Vzcy9E
ZWZhdWx0VW5kb0NvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvbWFjL1dLQ2VydGlmaWNhdGVJbmZvTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL21hYy9XS0NlcnRpZmljYXRlSW5mb01hYy5tbQppbmRleCAzNGRkNDMxNTE5YTM5
OWEzZGQ4M2UwZTgyM2Y0MzQ3NWMyZTNiZmFiLi4zMmVjMGY0NmU5ZDBjY2UxMmY3N2QyNzhiMzg4
Yjc3ZmZmZjJmYTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvbWFj
L1dLQ2VydGlmaWNhdGVJbmZvTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9tYWMvV0tDZXJ0aWZpY2F0ZUluZm9NYWMubW0KQEAgLTMzLDExICszMywxMSBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwogCiBXS0NlcnRpZmljYXRlSW5mb1JlZiBXS0NlcnRpZmljYXRlSW5m
b0NyZWF0ZVdpdGhDZXJ0ZmljYXRlQ2hhaW4oQ0ZBcnJheVJlZiBjZXJ0aWZpY2F0ZUNoYWluKQog
ewotICAgIFJlZlB0cjxXZWJDZXJ0aWZpY2F0ZUluZm8+IGNlcnRpZmljYXRlSW5mbyA9IFdlYkNl
cnRpZmljYXRlSW5mbzo6Y3JlYXRlKFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKGNlcnRpZmljYXRl
Q2hhaW4pKTsKKyAgICBSZWZQdHI8V2ViQ2VydGlmaWNhdGVJbmZvPiBjZXJ0aWZpY2F0ZUluZm8g
PSBXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZShDZXJ0aWZpY2F0ZUluZm8oY2VydGlmaWNhdGVD
aGFpbikpOwogICAgIHJldHVybiB0b0FQSShjZXJ0aWZpY2F0ZUluZm8ucmVsZWFzZSgpLmxlYWtS
ZWYoKSk7CiB9CiAKIENGQXJyYXlSZWYgV0tDZXJ0aWZpY2F0ZUluZm9HZXRDZXJ0aWZpY2F0ZUNo
YWluKFdLQ2VydGlmaWNhdGVJbmZvUmVmIGNlcnRpZmljYXRlSW5mb1JlZikKIHsKLSAgICByZXR1
cm4gdG9JbXBsKGNlcnRpZmljYXRlSW5mb1JlZiktPnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCku
Y2VydGlmaWNhdGVDaGFpbigpOworICAgIHJldHVybiB0b0ltcGwoY2VydGlmaWNhdGVJbmZvUmVm
KS0+Y2VydGlmaWNhdGVJbmZvKCkuY2VydGlmaWNhdGVDaGFpbigpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmNwcAppbmRleCA3ZjdkY2EyZGQyZTQyODI1ZmE1ODE3YjFkMmNmMGZjZTkxYjNm
Yjc4Li5lMmY0NTMyMjljYjdkYmRmZDMzYzNkNmM2YjYyYmEwMjZmYjcxNmMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRpb25NYW5hZ2VyLmNwcApAQCAtOTgsMjAgKzk4LDIwIEBAIHZvaWQgQXV0aGVudGljYXRp
b25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG93bmxvYWQqIGRv
d25sb2FkCiAKIC8vIEN1cnJlbnRseSwgb25seSBNYWMga25vd3MgaG93IHRvIHJlc3BvbmQgdG8g
YXV0aGVudGljYXRpb24gY2hhbGxlbmdlcyB3aXRoIGNlcnRpZmljYXRlIGluZm8uCiAjaWYgIVVT
RShTRUNVUklUWV9GUkFNRVdPUkspCi1ib29sIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6dHJ5VXNl
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9Gb3JDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYpCitib29s
IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6dHJ5VXNlQ2VydGlmaWNhdGVJbmZvRm9yQ2hhbGxlbmdl
KGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgQ2VydGlmaWNh
dGVJbmZvJikKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAjZW5kaWYKIAotdm9pZCBBdXRoZW50
aWNhdGlvbk1hbmFnZXI6OnVzZUNyZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxl
bmdlSUQsIGNvbnN0IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwsIGNvbnN0IFBsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCit2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6
dXNlQ3JlZGVudGlhbEZvckNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgY29uc3QgQ3Jl
ZGVudGlhbCYgY3JlZGVudGlhbCwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUlu
Zm8pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlIGNoYWxsZW5nZSA9IG1fY2hhbGxlbmdlcy50YWtlKGNoYWxsZW5nZUlEKTsKICAg
ICBBU1NFUlQoIWNoYWxsZW5nZS5pc051bGwoKSk7CiAgICAgCi0gICAgaWYgKHRyeVVzZVBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvRm9yQ2hhbGxlbmdlKGNoYWxsZW5nZSwgY2VydGlmaWNhdGVJbmZv
KSkKKyAgICBpZiAodHJ5VXNlQ2VydGlmaWNhdGVJbmZvRm9yQ2hhbGxlbmdlKGNoYWxsZW5nZSwg
Y2VydGlmaWNhdGVJbmZvKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIEF1dGhlbnRpY2F0
aW9uQ2xpZW50KiBjb3JlQ2xpZW50ID0gY2hhbGxlbmdlLmF1dGhlbnRpY2F0aW9uQ2xpZW50KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRpb25NYW5hZ2VyLmgKaW5kZXggNGM2ZjgxZTk1MzkwZmY3MGQzODE4MmJkYzli
NDI2YmE2ZTAxYTU5MS4uNGY2NWU5ZjY3ODk4N2QwNDc5NDMwOTk5MWVlODVmNGQxNTYzMzgwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaApAQCAtNDAsOSArNDAsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBj
bGFzcyBDaGlsZFByb2Nlc3M7CiBjbGFzcyBEb3dubG9hZDsKLWNsYXNzIFBsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvOwogY2xhc3MgV2ViRnJhbWU7CiAKIGNsYXNzIEF1dGhlbnRpY2F0aW9uTWFuYWdl
ciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIE5ldHdvcmtQcm9jZXNzU3Vw
cGxlbWVudCwgcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CkBAIC01OSw3ICs1OSw3
IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgZm9yIGRvd25sb2FkcyB3aXRoIG9yIHdpdGhvdXQg
dGhlIE5ldHdvcmtQcm9jZXNzCiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoRG93bmxvYWQqLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYp
OwogCi0gICAgdm9pZCB1c2VDcmVkZW50aWFsRm9yQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5n
ZUlELCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiwgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8mKTsKKyAgICB2b2lkIHVzZUNyZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWludDY0X3QgY2hh
bGxlbmdlSUQsIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmLCBjb25zdCBDZXJ0aWZpY2F0ZUlu
Zm8mKTsKICAgICB2b2lkIGNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWlu
dDY0X3QgY2hhbGxlbmdlSUQpOwogICAgIHZvaWQgY2FuY2VsQ2hhbGxlbmdlKHVpbnQ2NF90IGNo
YWxsZW5nZUlEKTsKICAgICAKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKICAgICAvLyBDb3Jl
SVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7
CiAKLSAgICBib29sIHRyeVVzZVBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvRm9yQ2hhbGxlbmdlKGNv
bnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8mKTsKKyAgICBib29sIHRyeVVzZUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5n
ZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIGNvbnN0IENlcnRpZmlj
YXRlSW5mbyYpOwogCiAgICAgdWludDY0X3QgZXN0YWJsaXNoSWRlbnRpZmllckZvckNoYWxsZW5n
ZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5h
Z2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBiYjFjYzMwY2E2YmM1OTFiZGVk
ZWQ0MWYwZjUxOTVlYzc2Yzk2MWRkLi5kYTEzZjM0MzVmYWZiZGUwN2U2MWU5ODgxNzg5YWUxYTM2
ZmEzYjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAg
LTIxLDcgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gQXV0aGVudGljYXRp
b25NYW5hZ2VyIHsKLSAgICB2b2lkIFVzZUNyZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWludDY0X3Qg
Y2hhbGxlbmdlSUQsIFdlYkNvcmU6OkNyZWRlbnRpYWwgY3JlZGVudGlhbCwgV2ViS2l0OjpQbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSk7CisgICAgdm9pZCBVc2VDcmVkZW50aWFs
Rm9yQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlELCBXZWJDb3JlOjpDcmVkZW50aWFsIGNy
ZWRlbnRpYWwsIFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlKTsKICAgICB2b2lk
IENvbnRpbnVlV2l0aG91dENyZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdl
SUQpOwogICAgIHZvaWQgQ2FuY2VsQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9tYWMvQXV0
aGVudGljYXRpb25NYW5hZ2VyLm1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9tYWMvQXV0aGVudGljYXRpb25NYW5hZ2VyLm1hYy5tbQppbmRleCBjMGI5MmYxMmI0
ZWYyZDQ4NDI1ZGQyYjdmZTM0MWU3NjljMjc2MDEzLi5hODYxOGNkYTY5ZTc5OWU2OTM3YTg0ZWI5
OTNkZWY3ZGI4ZThmMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVu
dGljYXRpb24vbWFjL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tYWMubW0KKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL21hYy9BdXRoZW50aWNhdGlvbk1hbmFnZXIubWFj
Lm1tCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBVU0UoU0VDVVJJVFlfRlJBTUVXT1JLKQogCi0j
aW5jbHVkZSAiUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCIKKyNpbmNsdWRlICJDZXJ0aWZpY2F0
ZUluZm8uaCIKICNpbmNsdWRlIDxTZWN1cml0eS9TZWNJZGVudGl0eS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KIApAQCAtMzYsNyArMzYsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWJvb2wgQXV0aGVu
dGljYXRpb25NYW5hZ2VyOjp0cnlVc2VQbGF0Zm9ybUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5n
ZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlLCBjb25zdCBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQorYm9vbCBBdXRoZW50aWNhdGlvbk1h
bmFnZXI6OnRyeVVzZUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmlj
YXRlSW5mbykKIHsKICAgICBDRkFycmF5UmVmIGNoYWluID0gY2VydGlmaWNhdGVJbmZvLmNlcnRp
ZmljYXRlQ2hhaW4oKTsKICAgICBpZiAoIWNoYWluKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNl
ck1lc3NhZ2VDb2RlcnMuaAppbmRleCAwMDIyZjMxMDU1ZTk0YzY4NTgwZmJhY2Q0NGRlMzZiMGY3
ZDA0ZThiLi5hOTZmZWNjOThlNDg3YmRlMjQwNWY2MjI0YzI0N2UyZWU0YTJlZGJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaApAQCAtMjE1LDcgKzIxNSw3IEBA
IHB1YmxpYzoKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZUNlcnRpZmlj
YXRlSW5mbzogewogICAgICAgICAgICAgV2ViQ2VydGlmaWNhdGVJbmZvKiBjZXJ0aWZpY2F0ZUlu
Zm8gPSBzdGF0aWNfY2FzdDxXZWJDZXJ0aWZpY2F0ZUluZm8qPihtX3Jvb3QpOwotICAgICAgICAg
ICAgZW5jb2RlciA8PCBjZXJ0aWZpY2F0ZUluZm8tPnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCk7
CisgICAgICAgICAgICBlbmNvZGVyIDw8IGNlcnRpZmljYXRlSW5mby0+Y2VydGlmaWNhdGVJbmZv
KCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQ
SU9iamVjdDo6VHlwZUVycm9yOiB7CkBAIC01MDQsMTAgKzUwNCwxMCBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZUNl
cnRpZmljYXRlSW5mbzogewotICAgICAgICAgICAgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8gcGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm87Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvKSkKKyAgICAgICAgICAgIENlcnRpZmljYXRlSW5mbyBjZXJ0
aWZpY2F0ZUluZm87CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNlcnRpZmljYXRl
SW5mbykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgY29kZXIu
bV9yb290ID0gV2ViQ2VydGlmaWNhdGVJbmZvOjpjcmVhdGUocGxhdGZvcm1DZXJ0aWZpY2F0ZUlu
Zm8pOworICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViQ2VydGlmaWNhdGVJbmZvOjpjcmVh
dGUoY2VydGlmaWNhdGVJbmZvKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlRXJyb3I6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDZXJ0aWZpY2F0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDZXJ0aWZpY2F0ZUluZm8uaAppbmRleCAwNjE4MmZjZTJmYzZkNTk3ZTlmNWY4YzAzOTU3NzE5
YTJhYTYyYWY1Li4xNzZjOTYxNzlhNTU2NzUzNWVkN2E1NzE2OWQwMzg3MjUwMjA2NmRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ2VydGlmaWNhdGVJbmZvLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oCkBAIC0yNywyNyArMjcs
MjcgQEAKICNkZWZpbmUgV2ViQ2VydGlmaWNhdGVJbmZvX2gKIAogI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCisjaW5jbHVkZSAiQ2Vy
dGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFdlYkNlcnRpZmljYXRlSW5mbyA6IHB1YmxpYyBUeXBlZEFQSU9i
amVjdDxBUElPYmplY3Q6OlR5cGVDZXJ0aWZpY2F0ZUluZm8+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxXZWJDZXJ0aWZpY2F0ZUluZm8+IGNyZWF0ZShjb25zdCBQbGF0Zm9ybUNl
cnRpZmljYXRlSW5mbyYgaW5mbykKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDZXJ0aWZpY2F0
ZUluZm8+IGNyZWF0ZShjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGluZm8pCiAgICAgewogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNlcnRpZmljYXRlSW5mbyhpbmZvKSk7CiAgICAgfQog
Ci0gICAgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIHBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzsgfQorICAgIGNv
bnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9j
ZXJ0aWZpY2F0ZUluZm87IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJDZXJ0aWZpY2F0
ZUluZm8oY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIGluZm8pCi0gICAgICAgIDogbV9w
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhpbmZvKQorICAgIGV4cGxpY2l0IFdlYkNlcnRpZmljYXRl
SW5mbyhjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGluZm8pCisgICAgICAgIDogbV9jZXJ0aWZpY2F0
ZUluZm8oaW5mbykKICAgICB7CiAgICAgfQogCi0gICAgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8g
bV9wbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzsKKyAgICBDZXJ0aWZpY2F0ZUluZm8gbV9jZXJ0aWZp
Y2F0ZUluZm87CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0NlcnRpZmljYXRlSW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkZGM3NTEyYzBiY2U2MmRh
OTU5OTBhNzUyYjNkMGY1OGM2OWM0NDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL0NlcnRpZmljYXRlSW5mby5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIENlcnRpZmljYXRlSW5mb19oCisjZGVmaW5lIENlcnRpZmljYXRlSW5mb19o
CisKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2Rl
cjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIENlcnRpZmljYXRlSW5mbyB7CitwdWJsaWM6CisgICAgQ2VydGlmaWNhdGVJbmZvKCk7Cisg
ICAgZXhwbGljaXQgQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmKTsKKyAgICBleHBsaWNpdCBDZXJ0aWZpY2F0ZUluZm8oQ0ZBcnJheVJlZiBjZXJ0aWZpY2F0
ZUNoYWluKTsKKworICAgIENGQXJyYXlSZWYgY2VydGlmaWNhdGVDaGFpbigpIGNvbnN0IHsgcmV0
dXJuIG1fY2VydGlmaWNhdGVDaGFpbi5nZXQoKTsgfQorCisgICAgdm9pZCBlbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciYsIENlcnRpZmljYXRlSW5mbyYpOworCisjaWZuZGVmIE5ERUJV
RworICAgIHZvaWQgZHVtcCgpIGNvbnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgUmV0YWlu
UHRyPENGQXJyYXlSZWY+IG1fY2VydGlmaWNhdGVDaGFpbjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gQ2VydGlmaWNhdGVJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2VydGlmaWNhdGVJbmZvLm1tIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9DZXJ0aWZpY2F0ZUluZm8ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjYwZWFiNmM2MzA0MWQ2
OTRlOGE1ZTMyNzYwNzBjNWM5NWU4MTlmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvQ2VydGlmaWNhdGVJbmZvLm1tCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkNlcnRpZmljYXRlSW5mby5oIgor
CisjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NGLmgiCisjaW1wb3J0ICJBcmd1bWVudERlY29kZXIu
aCIKKyNpbXBvcnQgIkFyZ3VtZW50RW5jb2Rlci5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0NlcnRpZmljYXRlSW5mbzo6Q2VydGlmaWNhdGVJ
bmZvKCkKK3sKK30KKworQ2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCisgICAgOiBtX2NlcnRpZmljYXRlQ2hhaW4ocmVzcG9u
c2UuY2VydGlmaWNhdGVDaGFpbigpKQoreworfQorCitDZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmlj
YXRlSW5mbyhDRkFycmF5UmVmIGNlcnRpZmljYXRlQ2hhaW4pCisgICAgOiBtX2NlcnRpZmljYXRl
Q2hhaW4oY2VydGlmaWNhdGVDaGFpbikKK3sKK30KKwordm9pZCBDZXJ0aWZpY2F0ZUluZm86OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgaWYg
KCFtX2NlcnRpZmljYXRlQ2hhaW4pIHsKKyAgICAgICAgZW5jb2RlciA8PCBmYWxzZTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGVuY29kZXIgPDwgdHJ1ZTsKKyAgICBDb3JlSVBDOjpl
bmNvZGUoZW5jb2RlciwgbV9jZXJ0aWZpY2F0ZUNoYWluLmdldCgpKTsKK30KKworYm9vbCBDZXJ0
aWZpY2F0ZUluZm86OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIENl
cnRpZmljYXRlSW5mbyYgYykKK3sKKyAgICBib29sIGhhc0NlcnRpZmljYXRlQ2hhaW47CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShoYXNDZXJ0aWZpY2F0ZUNoYWluKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKCFoYXNDZXJ0aWZpY2F0ZUNoYWluKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIGlmICghQ29yZUlQQzo6ZGVjb2RlKGRlY29kZXIsIGMubV9jZXJ0aWZpY2F0
ZUNoYWluKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisK
KyNpZm5kZWYgTkRFQlVHCit2b2lkIENlcnRpZmljYXRlSW5mbzo6ZHVtcCgpIGNvbnN0Cit7Cisg
ICAgdW5zaWduZWQgZW50cmllcyA9IG1fY2VydGlmaWNhdGVDaGFpbiA/IENGQXJyYXlHZXRDb3Vu
dChtX2NlcnRpZmljYXRlQ2hhaW4uZ2V0KCkpIDogMDsKKworICAgIE5TTG9nKEAiQ2VydGlmaWNh
dGVJbmZvXG4iKTsKKyAgICBOU0xvZyhAIiAgRW50cmllczogJWRcbiIsIGVudHJpZXMpOworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBlbnRyaWVzOyArK2kpIHsKKyAgICAgICAgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPiBzdW1tYXJ5ID0gYWRvcHRDRihTZWNDZXJ0aWZpY2F0ZUNvcHlTdWJq
ZWN0U3VtbWFyeSgoU2VjQ2VydGlmaWNhdGVSZWYpQ0ZBcnJheUdldFZhbHVlQXRJbmRleChtX2Nl
cnRpZmljYXRlQ2hhaW4uZ2V0KCksIGkpKSk7CisgICAgICAgIE5TTG9nKEAiICAlQCIsIChOU1N0
cmluZyAqKXN1bW1hcnkuZ2V0KCkpOworICAgIH0KK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWVhMWEyZjMzMTc5
ZjJkMTU0MGQ0OTFhZDA2ODNiOTUyNDBjY2NkNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mb19oCi0jZGVmaW5lIFBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvX2gKLQotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgot
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLQotbmFtZXNwYWNlIENvcmVJUEMgewotICAgIGNs
YXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBjbGFzcyBBcmd1bWVudEVuY29kZXI7Ci19Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyB7Ci1wdWJs
aWM6Ci0gICAgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKTsKLSAgICBleHBsaWNpdCBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAg
ZXhwbGljaXQgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oQ0ZBcnJheVJlZiBjZXJ0aWZpY2F0ZUNo
YWluKTsKLQotICAgIENGQXJyYXlSZWYgY2VydGlmaWNhdGVDaGFpbigpIGNvbnN0IHsgcmV0dXJu
IG1fY2VydGlmaWNhdGVDaGFpbi5nZXQoKTsgfQotCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciYsIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJik7Ci0KLSNpZm5kZWYg
TkRFQlVHCi0gICAgdm9pZCBkdW1wKCkgY29uc3Q7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBS
ZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbV9jZXJ0aWZpY2F0ZUNoYWluOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mb19oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5t
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzRhNzM1NDVjNWJkMTY4ZjZhYTkyNmQ5
NzQ2MzE4ZTRhNmNhOGUwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
Lm1tCisrKyAvZGV2L251bGwKQEAgLTEsOTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQg
ImNvbmZpZy5oIgotI2ltcG9ydCAiUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCIKLQotI2ltcG9y
dCAiQXJndW1lbnRDb2RlcnNDRi5oIgotI2ltcG9ydCAiQXJndW1lbnREZWNvZGVyLmgiCi0jaW1w
b3J0ICJBcmd1bWVudEVuY29kZXIuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1QbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6UGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8oKQotewotfQotCi1QbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6UGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi0gICAgOiBt
X2NlcnRpZmljYXRlQ2hhaW4ocmVzcG9uc2UuY2VydGlmaWNhdGVDaGFpbigpKQotewotfQotCi1Q
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oQ0ZBcnJheVJl
ZiBjZXJ0aWZpY2F0ZUNoYWluKQotICAgIDogbV9jZXJ0aWZpY2F0ZUNoYWluKGNlcnRpZmljYXRl
Q2hhaW4pCi17Ci19Ci0KLXZvaWQgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2NlcnRp
ZmljYXRlQ2hhaW4pIHsKLSAgICAgICAgZW5jb2RlciA8PCBmYWxzZTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGVuY29kZXIgPDwgdHJ1ZTsKLSAgICBDb3JlSVBDOjplbmNvZGUoZW5j
b2RlciwgbV9jZXJ0aWZpY2F0ZUNoYWluLmdldCgpKTsKLX0KLQotYm9vbCBQbGF0Zm9ybUNlcnRp
ZmljYXRlSW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8mIGMpCi17Ci0gICAgYm9vbCBoYXNDZXJ0aWZpY2F0ZUNoYWlu
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzQ2VydGlmaWNhdGVDaGFpbikpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGlmICghaGFzQ2VydGlmaWNhdGVDaGFpbikKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoIUNvcmVJUEM6OmRlY29kZShkZWNvZGVyLCBjLm1fY2Vy
dGlmaWNhdGVDaGFpbikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVl
OwotfQotCi0jaWZuZGVmIE5ERUJVRwotdm9pZCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZHVt
cCgpIGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgZW50cmllcyA9IG1fY2VydGlmaWNhdGVDaGFpbiA/
IENGQXJyYXlHZXRDb3VudChtX2NlcnRpZmljYXRlQ2hhaW4uZ2V0KCkpIDogMDsKLQotICAgIE5T
TG9nKEAiUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9cbiIpOwotICAgIE5TTG9nKEAiICBFbnRyaWVz
OiAlZFxuIiwgZW50cmllcyk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGVudHJpZXM7
ICsraSkgewotICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHN1bW1hcnkgPSBhZG9wdENG
KFNlY0NlcnRpZmljYXRlQ29weVN1YmplY3RTdW1tYXJ5KChTZWNDZXJ0aWZpY2F0ZVJlZilDRkFy
cmF5R2V0VmFsdWVBdEluZGV4KG1fY2VydGlmaWNhdGVDaGFpbi5nZXQoKSwgaSkpKTsKLSAgICAg
ICAgTlNMb2coQCIgICVAIiwgKE5TU3RyaW5nICopc3VtbWFyeS5nZXQoKSk7Ci0gICAgfQotfQot
I2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQppbmRleCBiYTRlODc5Njhh
OThiN2FhNjg3OWE5ZGQ4MTc5MWNkYmJkYmVjOTVkLi43MGZlMDJlNjVhY2JlZTNlYjNiOGY0MmYw
ZWQxODMxN2VmNzhhMTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dl
YkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaW1wb3J0
ICJBcmd1bWVudENvZGVyc0NGLmgiCiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgiCi0jaW1wb3J0
ICJQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIgorI2ltcG9ydCAiQ2VydGlmaWNhdGVJbmZvLmgi
CiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgPFdlYkNvcmUvS2V5
Ym9hcmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CkBAIC0yMTcs
NyArMjE3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGVQbGF0
Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLAogCiAgICAgaWQgcGVlckNlcnRpZmlj
YXRlQ2hhaW4gPSBbdXNlckluZm8gb2JqZWN0Rm9yS2V5OkAiTlNFcnJvclBlZXJDZXJ0aWZpY2F0
ZUNoYWluS2V5Il07CiAgICAgQVNTRVJUKCFwZWVyQ2VydGlmaWNhdGVDaGFpbiB8fCBbcGVlckNl
cnRpZmljYXRlQ2hhaW4gaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKTsKLSAgICBlbmNv
ZGVyIDw8IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKChDRkFycmF5UmVmKXBlZXJDZXJ0aWZpY2F0
ZUNoYWluKTsKKyAgICBlbmNvZGVyIDw8IENlcnRpZmljYXRlSW5mbygoQ0ZBcnJheVJlZilwZWVy
Q2VydGlmaWNhdGVDaGFpbik7CiB9CiAKIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9y
Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VF
cnJvciYgcmVzb3VyY2VFcnJvcikKQEAgLTI0Myw3ICsyNDMsNyBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdHJpbmdVc2VySW5mb01hcCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvIGNlcnRpZmlj
YXRlOworICAgIENlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZTsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGNlcnRpZmljYXRlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9DZXJ0aWZpY2F0ZUluZm8uY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGMw
ODFlNTMyNzhkMDcyM2UyMzFlYzQ0ZjlkMjI3ZWUxYTc1NzVkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmNwcApAQCAtMCwwICsx
LDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ2VydGlmaWNhdGVJbmZvLmgiCisKKyNp
bmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIK
KyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVy
cm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8
bGlic291cC9zb3VwLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworQ2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZUluZm8oKQorICAgIDogbV90
bHNFcnJvcnMoc3RhdGljX2Nhc3Q8R1Rsc0NlcnRpZmljYXRlRmxhZ3M+KDApKQoreworfQorCitD
ZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmljYXRlSW5mbyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKKyAgICA6IG1fY2VydGlmaWNhdGUocmVzcG9uc2Uuc291cE1lc3NhZ2VDZXJ0aWZp
Y2F0ZSgpKQorICAgICwgbV90bHNFcnJvcnMocmVzcG9uc2Uuc291cE1lc3NhZ2VUTFNFcnJvcnMo
KSkKK3sKK30KKworQ2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVzb3Vy
Y2VFcnJvciYgcmVzb3VyY2VFcnJvcikKKyAgICA6IG1fY2VydGlmaWNhdGUocmVzb3VyY2VFcnJv
ci5jZXJ0aWZpY2F0ZSgpKQorICAgICwgbV90bHNFcnJvcnMoc3RhdGljX2Nhc3Q8R1Rsc0NlcnRp
ZmljYXRlRmxhZ3M+KHJlc291cmNlRXJyb3IudGxzRXJyb3JzKCkpKQoreworfQorCitDZXJ0aWZp
Y2F0ZUluZm86OkNlcnRpZmljYXRlSW5mbyhHVGxzQ2VydGlmaWNhdGUqIGNlcnRpZmljYXRlLCBH
VGxzQ2VydGlmaWNhdGVGbGFncyB0bHNFcnJvcnMpCisgICAgOiBtX2NlcnRpZmljYXRlKGNlcnRp
ZmljYXRlKQorICAgICwgbV90bHNFcnJvcnModGxzRXJyb3JzKQoreworfQorCitDZXJ0aWZpY2F0
ZUluZm86On5DZXJ0aWZpY2F0ZUluZm8oKQoreworfQorCit2b2lkIENlcnRpZmljYXRlSW5mbzo6
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBp
ZiAoIW1fY2VydGlmaWNhdGUpIHsKKyAgICAgICAgZW5jb2RlciA8PCBmYWxzZTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIEdCeXRlQXJyYXkqIGNlcnRpZmljYXRlRGF0YSA9IDA7Cisg
ICAgZ19vYmplY3RfZ2V0KEdfT0JKRUNUKG1fY2VydGlmaWNhdGUuZ2V0KCkpLCAiY2VydGlmaWNh
dGUiLCAmY2VydGlmaWNhdGVEYXRhLCBOVUxMKTsKKyAgICBpZiAoIWNlcnRpZmljYXRlRGF0YSkg
eworICAgICAgICBlbmNvZGVyIDw8IGZhbHNlOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgZW5jb2RlciA8PCB0cnVlOworICAgIEdSZWZQdHI8R0J5dGVBcnJheT4gY2VydGlmaWNhdGUg
PSBhZG9wdEdSZWYoY2VydGlmaWNhdGVEYXRhKTsKKyAgICBlbmNvZGVyLmVuY29kZVZhcmlhYmxl
TGVuZ3RoQnl0ZUFycmF5KENvcmVJUEM6OkRhdGFSZWZlcmVuY2UoY2VydGlmaWNhdGUtPmRhdGEs
IGNlcnRpZmljYXRlLT5sZW4pKTsKKyAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90
PihtX3Rsc0Vycm9ycyk7Cit9CisKK2Jvb2wgQ2VydGlmaWNhdGVJbmZvOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRl
SW5mbykKK3sKKyAgICBib29sIGhhc0NlcnRpZmljYXRlOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaGFzQ2VydGlmaWNhdGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWhh
c0NlcnRpZmljYXRlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIENvcmVJUEM6OkRhdGFS
ZWZlcmVuY2UgY2VydGlmaWNhdGVEYXRhUmVmZXJlbmNlOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShjZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2UpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBHQnl0ZUFycmF5KiBjZXJ0aWZpY2F0ZURhdGEgPSBn
X2J5dGVfYXJyYXlfc2l6ZWRfbmV3KGNlcnRpZmljYXRlRGF0YVJlZmVyZW5jZS5zaXplKCkpOwor
ICAgIGNlcnRpZmljYXRlRGF0YSA9IGdfYnl0ZV9hcnJheV9hcHBlbmQoY2VydGlmaWNhdGVEYXRh
LCBjZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2UuZGF0YSgpLCBjZXJ0aWZpY2F0ZURhdGFSZWZlcmVu
Y2Uuc2l6ZSgpKTsKKyAgICBHUmVmUHRyPEdCeXRlQXJyYXk+IGNlcnRpZmljYXRlID0gYWRvcHRH
UmVmKGNlcnRpZmljYXRlRGF0YSk7CisKKyAgICBHVGxzQmFja2VuZCogYmFja2VuZCA9IGdfdGxz
X2JhY2tlbmRfZ2V0X2RlZmF1bHQoKTsKKyAgICBjZXJ0aWZpY2F0ZUluZm8ubV9jZXJ0aWZpY2F0
ZSA9IGFkb3B0R1JlZihHX1RMU19DRVJUSUZJQ0FURShnX2luaXRhYmxlX25ldyhnX3Rsc19iYWNr
ZW5kX2dldF9jZXJ0aWZpY2F0ZV90eXBlKGJhY2tlbmQpLCAwLCAwLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJjZXJ0aWZpY2F0ZSIsIGNlcnRpZmljYXRlLmdldCgpLCBOVUxMKSkpOworCisgICAg
dWludDMyX3QgdGxzRXJyb3JzOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGxzRXJyb3JzKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNlcnRpZmljYXRlSW5mby5tX3Rsc0Vycm9ycyA9
IHN0YXRpY19jYXN0PEdUbHNDZXJ0aWZpY2F0ZUZsYWdzPih0bHNFcnJvcnMpOworCisgICAgcmV0
dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvc291cC9DZXJ0aWZpY2F0ZUluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjU1OGFhMTgyMWU4MTgy
M2ZkYWQ5OTZmYzRkOWEyMTgyZGQwOGUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQ
b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ2VydGlmaWNhdGVJbmZvX2gKKyNk
ZWZpbmUgQ2VydGlmaWNhdGVJbmZvX2gKKworI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xh
c3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQXJndW1lbnRFbmNvZGVyOworfQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3VyY2VSZXNwb25z
ZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENlcnRpZmljYXRlSW5mbyB7Citw
dWJsaWM6CisgICAgQ2VydGlmaWNhdGVJbmZvKCk7CisgICAgZXhwbGljaXQgQ2VydGlmaWNhdGVJ
bmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICBleHBsaWNpdCBDZXJ0
aWZpY2F0ZUluZm8oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIGV4cGxpY2l0
IENlcnRpZmljYXRlSW5mbyhHVGxzQ2VydGlmaWNhdGUqLCBHVGxzQ2VydGlmaWNhdGVGbGFncyk7
CisgICAgfkNlcnRpZmljYXRlSW5mbygpOworCisgICAgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZp
Y2F0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2VydGlmaWNhdGUuZ2V0KCk7IH0KKyAgICBHVGxzQ2Vy
dGlmaWNhdGVGbGFncyB0bHNFcnJvcnMoKSBjb25zdCB7IHJldHVybiBtX3Rsc0Vycm9yczsgfQor
CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAg
c3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIENlcnRpZmljYXRl
SW5mbyYpOworCitwcml2YXRlOgorICAgIEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPiBtX2NlcnRp
ZmljYXRlOworICAgIEdUbHNDZXJ0aWZpY2F0ZUZsYWdzIG1fdGxzRXJyb3JzOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBDZXJ0aWZpY2F0ZUluZm9faApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8u
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8u
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNWNlNGVmZDVlZjBkMTM0YmEyNmRk
N2M4YzkxYjQ2NDg4YzE2N2IyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDExNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIgotCi0jaW5jbHVkZSAiQXJndW1lbnRE
ZWNvZGVyLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCi0jaW5jbHVkZSAiRGF0YVJl
ZmVyZW5jZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgotI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgot
Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvOjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpCi0gICAgOiBtX3Rs
c0Vycm9ycyhzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4oMCkpCi17Ci19Ci0KLVBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvOjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLSAgICA6IG1fY2VydGlmaWNhdGUocmVzcG9uc2Uuc291
cE1lc3NhZ2VDZXJ0aWZpY2F0ZSgpKQotICAgICwgbV90bHNFcnJvcnMocmVzcG9uc2Uuc291cE1l
c3NhZ2VUTFNFcnJvcnMoKSkKLXsKLX0KLQotUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OlBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCi0g
ICAgOiBtX2NlcnRpZmljYXRlKHJlc291cmNlRXJyb3IuY2VydGlmaWNhdGUoKSkKLSAgICAsIG1f
dGxzRXJyb3JzKHN0YXRpY19jYXN0PEdUbHNDZXJ0aWZpY2F0ZUZsYWdzPihyZXNvdXJjZUVycm9y
LnRsc0Vycm9ycygpKSkKLXsKLX0KLQotUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OlBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvKEdUbHNDZXJ0aWZpY2F0ZSogY2VydGlmaWNhdGUsIEdUbHNDZXJ0aWZp
Y2F0ZUZsYWdzIHRsc0Vycm9ycykKLSAgICA6IG1fY2VydGlmaWNhdGUoY2VydGlmaWNhdGUpCi0g
ICAgLCBtX3Rsc0Vycm9ycyh0bHNFcnJvcnMpCi17Ci19Ci0KLVBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvOjp+UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKQotewotfQotCi12b2lkIFBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAotewotICAgIGlmICghbV9jZXJ0aWZpY2F0ZSkgewotICAgICAgICBlbmNvZGVyIDw8IGZh
bHNlOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgR0J5dGVBcnJheSogY2VydGlmaWNh
dGVEYXRhID0gMDsKLSAgICBnX29iamVjdF9nZXQoR19PQkpFQ1QobV9jZXJ0aWZpY2F0ZS5nZXQo
KSksICJjZXJ0aWZpY2F0ZSIsICZjZXJ0aWZpY2F0ZURhdGEsIE5VTEwpOwotICAgIGlmICghY2Vy
dGlmaWNhdGVEYXRhKSB7Ci0gICAgICAgIGVuY29kZXIgPDwgZmFsc2U7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBlbmNvZGVyIDw8IHRydWU7Ci0gICAgR1JlZlB0cjxHQnl0ZUFycmF5
PiBjZXJ0aWZpY2F0ZSA9IGFkb3B0R1JlZihjZXJ0aWZpY2F0ZURhdGEpOwotICAgIGVuY29kZXIu
ZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZShjZXJ0
aWZpY2F0ZS0+ZGF0YSwgY2VydGlmaWNhdGUtPmxlbikpOwotICAgIGVuY29kZXIgPDwgc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KG1fdGxzRXJyb3JzKTsKLX0KLQotYm9vbCBQbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbykKLXsKLSAgICBib29sIGhhc0NlcnRp
ZmljYXRlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzQ2VydGlmaWNhdGUpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWhhc0NlcnRpZmljYXRlKQotICAgICAgICByZXR1
cm4gdHJ1ZTsKLQotICAgIENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgY2VydGlmaWNhdGVEYXRhUmVm
ZXJlbmNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShj
ZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2UpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBH
Qnl0ZUFycmF5KiBjZXJ0aWZpY2F0ZURhdGEgPSBnX2J5dGVfYXJyYXlfc2l6ZWRfbmV3KGNlcnRp
ZmljYXRlRGF0YVJlZmVyZW5jZS5zaXplKCkpOwotICAgIGNlcnRpZmljYXRlRGF0YSA9IGdfYnl0
ZV9hcnJheV9hcHBlbmQoY2VydGlmaWNhdGVEYXRhLCBjZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2Uu
ZGF0YSgpLCBjZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKLSAgICBHUmVmUHRyPEdC
eXRlQXJyYXk+IGNlcnRpZmljYXRlID0gYWRvcHRHUmVmKGNlcnRpZmljYXRlRGF0YSk7Ci0KLSAg
ICBHVGxzQmFja2VuZCogYmFja2VuZCA9IGdfdGxzX2JhY2tlbmRfZ2V0X2RlZmF1bHQoKTsKLSAg
ICBjZXJ0aWZpY2F0ZUluZm8ubV9jZXJ0aWZpY2F0ZSA9IGFkb3B0R1JlZihHX1RMU19DRVJUSUZJ
Q0FURShnX2luaXRhYmxlX25ldyhnX3Rsc19iYWNrZW5kX2dldF9jZXJ0aWZpY2F0ZV90eXBlKGJh
Y2tlbmQpLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjZXJ0aWZpY2F0ZSIsIGNlcnRp
ZmljYXRlLmdldCgpLCBOVUxMKSkpOwotCi0gICAgdWludDMyX3QgdGxzRXJyb3JzOwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodGxzRXJyb3JzKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGNlcnRpZmljYXRlSW5mby5tX3Rsc0Vycm9ycyA9IHN0YXRpY19jYXN0PEdUbHNDZXJ0aWZpY2F0
ZUZsYWdzPih0bHNFcnJvcnMpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmZjEyMGM3
YTIxZmU3OTQzMDQ1NWZkYzU4OTY4ZmZiNGExODlmMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8uaAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvX2gKLSNkZWZpbmUgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9faAotCi0jaW5jbHVkZSA8bGli
c291cC9zb3VwLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotCi1uYW1lc3Bh
Y2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBBcmd1bWVudEVuY29k
ZXI7Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFJlc291cmNlRXJyb3I7Ci1jbGFz
cyBSZXNvdXJjZVJlc3BvbnNlOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgUGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8gewotcHVibGljOgotICAgIFBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvKCk7Ci0gICAgZXhwbGljaXQgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIGV4cGxpY2l0IFBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKLSAgICBleHBsaWNpdCBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbyhHVGxzQ2VydGlmaWNhdGUqLCBHVGxzQ2VydGlmaWNhdGVGbGFncyk7
Ci0gICAgflBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCk7Ci0KLSAgICBHVGxzQ2VydGlmaWNhdGUq
IGNlcnRpZmljYXRlKCkgY29uc3QgeyByZXR1cm4gbV9jZXJ0aWZpY2F0ZS5nZXQoKTsgfQotICAg
IEdUbHNDZXJ0aWZpY2F0ZUZsYWdzIHRsc0Vycm9ycygpIGNvbnN0IHsgcmV0dXJuIG1fdGxzRXJy
b3JzOyB9Ci0KLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25z
dDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgUGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8mKTsKLQotcHJpdmF0ZToKLSAgICBHUmVmUHRyPEdUbHNDZXJ0
aWZpY2F0ZT4gbV9jZXJ0aWZpY2F0ZTsKLSAgICBHVGxzQ2VydGlmaWNhdGVGbGFncyBtX3Rsc0Vy
cm9yczsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm9faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291
cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcAppbmRleCBkYzRlMTE5MTc1N2VjZTE3NWFk
NDg1YTdhYTcyMjUyZmFmYWU4ODQ2Li41NGM5NWY1YjA0NTUyOGRlNGY1MzhjZjY5NGFhZDkxYmU4
NGNjZmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9XZWJD
b3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCi0jaW5jbHVkZSAi
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCIKKyNpbmNsdWRlICJDZXJ0aWZpY2F0ZUluZm8uaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgpA
QCAtNzAsMTIgKzcwLDEyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6
ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlCiAKIHZvaWQgQXJndW1l
bnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcikKIHsKLSAgICBl
bmNvZGVyIDw8IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKHJlc291cmNlRXJyb3IpOworICAgIGVu
Y29kZXIgPDwgQ2VydGlmaWNhdGVJbmZvKHJlc291cmNlRXJyb3IpOwogfQogCiBib29sIEFyZ3Vt
ZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7Ci0gICAgUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvOworICAgIENlcnRpZmljYXRlSW5mbyBj
ZXJ0aWZpY2F0ZUluZm87CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjZXJ0aWZpY2F0ZUluZm8p
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENlcnRpZmljYXRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDZXJ0aWZpY2F0ZUluZm8uY3BwCmluZGV4IDU0YjEw
NDA0NTliMGYwMDNhZTE2MDdjYmZkMmJmODMwYTRlZjk4MDAuLjEyZGYxYWFjYTgwMjU3OWZiODVh
NjNkMGYwMWE1ZjY5MDE1ZjBiODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdENlcnRpZmljYXRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q2VydGlmaWNhdGVJbmZvLmNwcApAQCAtNDIsNyArNDIs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogR19ERUZJTkVfQk9YRURfVFlQRShXZWJL
aXRDZXJ0aWZpY2F0ZUluZm8sIHdlYmtpdF9jZXJ0aWZpY2F0ZV9pbmZvLCB3ZWJraXRfY2VydGlm
aWNhdGVfaW5mb19jb3B5LCB3ZWJraXRfY2VydGlmaWNhdGVfaW5mb19mcmVlKQogCi1jb25zdCBQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgd2Via2l0Q2VydGlmaWNhdGVJbmZvR2V0Q2VydGlmaWNh
dGVJbmZvKFdlYktpdENlcnRpZmljYXRlSW5mbyogaW5mbykKK2NvbnN0IENlcnRpZmljYXRlSW5m
byYgd2Via2l0Q2VydGlmaWNhdGVJbmZvR2V0Q2VydGlmaWNhdGVJbmZvKFdlYktpdENlcnRpZmlj
YXRlSW5mbyogaW5mbykKIHsKICAgICBBU1NFUlQoaW5mbyk7CiAgICAgcmV0dXJuIGluZm8tPmNl
cnRpZmljYXRlSW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENlcnRpZmljYXRlSW5mb1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdENlcnRpZmljYXRlSW5mb1ByaXZhdGUuaAppbmRleCA2NmQyNmE0
MDExYjQxNTZhNjRhMGIwM2ZhNDJiYjhkY2I4NjQ4MjYyLi42ZmRiMjRmNjliZGU0OGUxMDkwZTI3
ZmUwOWZkNjY3NjAzODI3MTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRDZXJ0aWZpY2F0ZUluZm9Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q2VydGlmaWNhdGVJbmZvUHJpdmF0ZS5oCkBAIC0y
MCw3ICsyMCw3IEBACiAjaWZuZGVmIFdlYktpdENlcnRpZmljYXRlSW5mb1ByaXZhdGVfaAogI2Rl
ZmluZSBXZWJLaXRDZXJ0aWZpY2F0ZUluZm9Qcml2YXRlX2gKIAotI2luY2x1ZGUgIlBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvLmgiCisjaW5jbHVkZSAiQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0Q2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgog
CkBAIC0zNSw5ICszNSw5IEBAIHN0cnVjdCBfV2ViS2l0Q2VydGlmaWNhdGVJbmZvIHsKICAgICB7
CiAgICAgfQogCi0gICAgV2ViS2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0
ZUluZm87CisgICAgV2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvOwogfTsK
IAotY29uc3QgV2ViS2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgd2Via2l0Q2VydGlmaWNh
dGVJbmZvR2V0Q2VydGlmaWNhdGVJbmZvKFdlYktpdENlcnRpZmljYXRlSW5mbyopOworY29uc3Qg
V2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm8mIHdlYmtpdENlcnRpZmljYXRlSW5mb0dldENlcnRpZmlj
YXRlSW5mbyhXZWJLaXRDZXJ0aWZpY2F0ZUluZm8qKTsKIAogI2VuZGlmIC8vIFdlYktpdENlcnRp
ZmljYXRlSW5mb1ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCA1ZDUyYTlkZWRjMGZmNDFhZWI4MTM1MTYyMjVl
ZWZmNjNjMzVjNTAyLi5jOTg0NGY4NGY0NGU2NTE2NDU2OTNjZWQ3NmNhZjllNjFjOWEzMjNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
LmNwcApAQCAtMjEsOCArMjEsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldl
YktpdFdlYlZpZXcuaCIKIAorI2luY2x1ZGUgIkNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUg
IkltYWdlT3B0aW9ucy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCiAj
aW5jbHVkZSAiV2ViQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJ
dGVtLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIgpAQCAtMzAyOCw3ICsz
MDI4LDcgQEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2dldF90bHNfaW5mbyhXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBHVGxzQ2VydGlmaWNhdGUqKgogICAgIGlmICghbWFpbkZyYW1lKQogICAg
ICAgICByZXR1cm4gRkFMU0U7CiAKLSAgICBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYg
Y2VydGlmaWNhdGVJbmZvID0gbWFpbkZyYW1lLT5jZXJ0aWZpY2F0ZUluZm8oKS0+cGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oKTsKKyAgICBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRl
SW5mbyA9IG1haW5GcmFtZS0+Y2VydGlmaWNhdGVJbmZvKCktPmNlcnRpZmljYXRlSW5mbygpOwog
ICAgIGlmIChjZXJ0aWZpY2F0ZSkKICAgICAgICAgKmNlcnRpZmljYXRlID0gY2VydGlmaWNhdGVJ
bmZvLmNlcnRpZmljYXRlKCk7CiAgICAgaWYgKGVycm9ycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcAppbmRleCA5ZjY0ODg1YWU4ODQ4NGRjNzQxNTE1NzI5
ZjU1NGI5ZjUyNmE1ZGQ1Li44ZDIwYzc2NjhlMjVlNTVjYmM4ZTkxYWMxMDcxOWZlYzc2Mzc0N2Uz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuY3BwCkBAIC02
Niw3ICs2Niw3IEBAIHZvaWQgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTo6dXNlQ3JlZGVu
dGlhbChXZWJDcmVkZW50aWFsKiBjcmVkZW50aWFsKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Q29udGludWVXaXRob3V0Q3JlZGVu
dGlhbEZvckNoYWxsZW5nZShtX2NoYWxsZW5nZUlEKSwgMCk7CiAgICAgZWxzZSB7CiAgICAgICAg
IFdlYkNlcnRpZmljYXRlSW5mbyogY2VydGlmaWNhdGVJbmZvID0gY3JlZGVudGlhbC0+Y2VydGlm
aWNhdGVJbmZvKCk7Ci0gICAgICAgIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvIHBsYXRmb3JtSW5m
byA9IGNlcnRpZmljYXRlSW5mbyA/IGNlcnRpZmljYXRlSW5mby0+cGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8oKSA6IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCk7CisgICAgICAgIENlcnRpZmljYXRl
SW5mbyBwbGF0Zm9ybUluZm8gPSBjZXJ0aWZpY2F0ZUluZm8gPyBjZXJ0aWZpY2F0ZUluZm8tPmNl
cnRpZmljYXRlSW5mbygpIDogQ2VydGlmaWNhdGVJbmZvKCk7CiAgICAgICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpVc2VDcmVkZW50aWFsRm9y
Q2hhbGxlbmdlKG1fY2hhbGxlbmdlSUQsIGNyZWRlbnRpYWwtPmNvcmUoKSwgcGxhdGZvcm1JbmZv
KSwgMCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5k
ZXggZWQ2MjZhZGQ3ZTFlYzQ5NDIzNmU3Y2FhYzQ0N2M5OTlhM2MyZDY2Zi4uOGVjYzk5MzkzMDdl
MzkxNzU4MTM4NTVjODYyYWJkZThmNDA5YjMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcApAQCAtMTA5NiwxMiArMTA5NiwxMiBAQCB2b2lkIFdlYkNvbnRleHQ6OmFs
bG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDZXJ0aWZpY2F0ZUlu
Zm8qCiB7CiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBpZiAobV91c2VzTmV0d29y
a1Byb2Nlc3MgJiYgbV9uZXR3b3JrUHJvY2VzcykgewotICAgICAgICBtX25ldHdvcmtQcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlm
aWNhdGVGb3JIb3N0KGNlcnRpZmljYXRlLT5wbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpLCBob3N0
KSwgMCk7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY2VydGlmaWNhdGUt
PmNlcnRpZmljYXRlSW5mbygpLCBob3N0KSwgMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAj
ZWxzZQogI2lmIFVTRShTT1VQKQotICAgIG1fcHJvY2Vzc2VzWzBdLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzOjpBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY2VydGlmaWNh
dGUtPnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCksIGhvc3QpLCAwKTsKKyAgICBtX3Byb2Nlc3Nl
c1swXS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6QWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlm
aWNhdGVGb3JIb3N0KGNlcnRpZmljYXRlLT5jZXJ0aWZpY2F0ZUluZm8oKSwgaG9zdCksIDApOwog
ICAgIHJldHVybjsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGNlcnRpZmljYXRlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAppbmRleCBhNTcwODdjMWZkNGM4
ZGFjMjAyMjMwN2FkNDViNmExNTg5ZWFkMmYzLi4wOTMxOTZkOGQxM2JkNjhmMDQ5ZTk3YjQ2Zjdk
ODcyZTUyNjRmNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJh
bWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHku
Y3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBXZWJGcmFtZVByb3h5OjpkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkKCkKICAgICBtX3VucmVhY2hhYmxlVVJMID0gbV9sYXN0VW5yZWFjaGFibGVVUkw7
CiB9CiAKLXZvaWQgV2ViRnJhbWVQcm94eTo6ZGlkQ29tbWl0TG9hZChjb25zdCBTdHJpbmcmIGNv
bnRlbnRUeXBlLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZv
KQordm9pZCBXZWJGcmFtZVByb3h5OjpkaWRDb21taXRMb2FkKGNvbnN0IFN0cmluZyYgY29udGVu
dFR5cGUsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogewogICAgIEFT
U0VSVChtX2xvYWRTdGF0ZSA9PSBMb2FkU3RhdGVQcm92aXNpb25hbCk7CiAgICAgbV9sb2FkU3Rh
dGUgPSBMb2FkU3RhdGVDb21taXR0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRnJhbWVQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1l
UHJveHkuaAppbmRleCAwYmVlNjY2ZmZmZDRhZjJkMTFiNWZjN2RhZDI3NDhhMjY5NmI2YWQ1Li5k
ODA3YTlmYjYyNmY4ZDJhMDkxNmJmMTMzMjM4ZjQ1YzY3Nzc1MjIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKQEAgLTQyLDggKzQyLDggQEAgbmFtZXNwYWNlIENv
cmVJUEMgewogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwog
Y2xhc3MgSW1tdXRhYmxlQXJyYXk7Ci1jbGFzcyBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzsKIGNs
YXNzIFdlYkNlcnRpZmljYXRlSW5mbzsKIGNsYXNzIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQ
cm94eTsKIGNsYXNzIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTsKQEAgLTEwNiw3ICsxMDYs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZChjb25zdCBTdHJp
bmcmIHVybCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWQoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZCgpOwotICAgIHZvaWQgZGlkQ29tbWl0TG9hZChjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBj
b25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZChj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mKTsKICAgICB2
b2lkIGRpZEZpbmlzaExvYWQoKTsKICAgICB2b2lkIGRpZEZhaWxMb2FkKCk7CiAgICAgdm9pZCBk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uKGNvbnN0IFN0cmluZyYpOyAvLyBlZy4gYW5jaG9yIG5h
dmlnYXRpb24sIHNlc3Npb24gc3RhdGUgY2hhbmdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCA5MzhlMGY5N2MwMTdiYWZkOGY3MzBmNzg5OGM2ODEwNGI1
MzAwNWM4Li5jYTYyMGYxYjk4ZDAwMDYwOTQyOTgzMTkzYjNjY2QwNGYyMDdhMWRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjE5MSw3ICsyMTkxLDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyTG9hZERlcGVuZGVudENhbGxiYWNrcygpCiAgICAg
fQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IG9wYXF1ZUZyYW1lTG9h
ZFR5cGUsIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENv
bW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCB1aW50MzJfdCBvcGFxdWVGcmFtZUxvYWRUeXBlLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNl
cnRpZmljYXRlSW5mbywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAg
UmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVj
b2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAwYzQxNGQ5NGMzODRmYTMzZjFlMTlh
MGU3ZmM5MmMyN2ZmMzc0ZGJmLi45ZjJkZmE1ZmQ2Yzk2M2NmNGE2NGIwZDNkNWUzNmFiZmZkNjdh
YmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjMsMTEg
KzEyMywxMSBAQCB0eXBlZGVmIEd0a1dpZGdldCogUGxhdGZvcm1XaWRnZXQ7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCitjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBOYXRpdmVXZWJLZXli
b2FyZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViTW91c2VFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldo
ZWVsRXZlbnQ7CiBjbGFzcyBQYWdlQ2xpZW50OwotY2xhc3MgUGxhdGZvcm1DZXJ0aWZpY2F0ZUlu
Zm87CiBjbGFzcyBTdHJpbmdQYWlyVmVjdG9yOwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0Owog
Y2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKQEAgLTc3MSw3ICs3NzEsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB1bnJlYWNoYWJsZVVSTCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7Ci0gICAgdm9pZCBkaWRDb21taXRMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMy
X3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mLCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IGZyYW1lTG9hZFR5
cGUsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAg
ICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBk
aWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZDQ1YjVkMTc4MTcx
ZWU4OWNjNTk1YWFmZTBmYmQ5ZDQ1NjAzZjdlMy4uODk1NTFkMTE3ZjlhYzUwMTc5YjFhODI4MTQ0
ZWU2NzQzNmM5Yzc5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMTEsNyArMTExLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKICAgICBEaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogCiAgICAg
IyBGcmFtZSBsb2FkIG1lc3NhZ2VzCi0gICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIFdURjo6U3RyaW5nIG1pbWVUeXBlLCB1aW50MzJfdCBsb2FkVHlwZSwgV2ViS2l0
OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIFdlYktpdDo6SW5qZWN0
ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGljCisgICAgRGlkQ29t
bWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIG1pbWVUeXBlLCB1
aW50MzJfdCBsb2FkVHlwZSwgV2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZv
LCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSBWYXJp
YWRpYwogICAgIERpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5j
b2RlciB1c2VyRGF0YSkgVmFyaWFkaWMKICAgICBEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0
OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgVmFyaWFkaWMKICAg
ICBEaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6
OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSBWYXJpYWRpYwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDg1ZWIzM2VjODU0MzE2ZGVmZTRlMWJiZGMwZDBjZGYzNTBmMjhkYTUuLjBhM2Q0ZDMxNmVjODUz
MDQ2YzhmMzhhOWIxNGZmZmNhNjhkYTg0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMjksOCArMTEyOSw4IEBACiAJCUJD
RjE4NjM4MTY3RDA3MUUwMEExQTg1QSAvKiBDYWNoZU1vZGVsLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjE4NjM3MTY3RDA3MUUwMEExQTg1QSAv
KiBDYWNoZU1vZGVsLmNwcCAqLzsgfTsKIAkJQkNGNERFMjMxNjhFNEJENTAwQzk0QUZDIC8qIE5l
dHdvcmtQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNGNERFMjIxNjhFNEJENTAwQzk0QUZDIC8qIE5ldHdvcmtQcm9jZXNz
U3VwcGxlbWVudC5oICovOyB9OwogCQlCQ0Y0REUyNTE2OEZBNDQ4MDBDOTRBRkMgLyogV2ViQ29u
dGV4dFN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDRjRERTI0MTY4RkE0NDgwMEM5NEFGQyAvKiBXZWJDb250ZXh0U3VwcGxlbWVudC5o
ICovOyB9OwotCQlCQ0Y1MDVFNzEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RjUwNUU1MTI0MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oICovOyB9
OwotCQlCQ0Y1MDVFODEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8u
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y1MDVF
NjEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0gKi87IH07CisJ
CUJDRjUwNUU3MTI0MzA0N0IwMDU5NTVBRSAvKiBDZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjUwNUU1MTI0MzA0N0IwMDU5
NTVBRSAvKiBDZXJ0aWZpY2F0ZUluZm8uaCAqLzsgfTsKKwkJQkNGNTA1RTgxMjQzMDQ3QjAwNTk1
NUFFIC8qIENlcnRpZmljYXRlSW5mby5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDRjUwNUU2MTI0MzA0N0IwMDU5NTVBRSAvKiBDZXJ0aWZpY2F0ZUlu
Zm8ubW0gKi87IH07CiAJCUJDRjUwNzI4MTI0MzI5QUEwMDU5NTVBRSAvKiBXZWJDZXJ0aWZpY2F0
ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RjUwNzI2MTI0MzI5QUEwMDU5NTVBRSAvKiBXZWJDZXJ0aWZpY2F0ZUluZm8uaCAqLzsgfTsKIAkJ
QkNGNjlGODYxMTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3RvcnlDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjlGODQxMTc2Q0Q2RjAw
NDcxQTUyIC8qIFdlYkhpc3RvcnlDbGllbnQuY3BwICovOyB9OwogCQlCQ0Y2OUY4NzExNzZDRDZG
MDA0NzFBNTIgLyogV2ViSGlzdG9yeUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjlGODUxMTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3Rv
cnlDbGllbnQuaCAqLzsgfTsKQEAgLTI2OTIsOCArMjY5Miw4IEBACiAJCUJDRjE4NjM3MTY3RDA3
MUUwMEExQTg1QSAvKiBDYWNoZU1vZGVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENhY2hlTW9kZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Q0Y0REUyMjE2OEU0QkQ1MDBDOTRBRkMgLyogTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudC5o
OyBwYXRoID0gTmV0d29yay9OZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNGNERFMjQxNjhGQTQ0ODAwQzk0QUZDIC8qIFdlYkNvbnRleHRT
dXBwbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRT
dXBwbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDRjUwNUU1MTI0MzA0
N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlCQ0Y1MDVFNjEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QkNGNTA1RTUxMjQzMDQ3QjAwNTk1NUFFIC8qIENlcnRpZmljYXRlSW5mby5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDZXJ0aWZpY2F0ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQkNGNTA1RTYxMjQzMDQ3QjAwNTk1NUFFIC8qIENlcnRpZmljYXRlSW5m
by5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENlcnRpZmljYXRl
SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGNTA2ODQxMjQzMTg2MTAw
NTk1NUFFIC8qIFNlY3VyaXR5LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gU2VjdXJpdHku
ZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHkuZnJh
bWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQlCQ0Y1MDcyNjEyNDMyOUFB
MDA1OTU1QUUgLyogV2ViQ2VydGlmaWNhdGVJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkNlcnRpZmljYXRlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQ0Y2OUY4NDExNzZDRDZGMDA0NzFBNTIgLyogV2ViSGlzdG9yeUNsaWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJIaXN0b3J5Q2xpZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2MjgsOCArNDYyOCw4IEBACiAJCQkJQzU3
NEE1ODAxMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5tbSAqLywKIAkJCQlFMTk1
ODJEMjE1M0NCRkQ3MDBCNjA4NzUgLyogUERGS2l0SW1wb3J0cy5oICovLAogCQkJCUUxOTU4MkQ0
MTUzQ0MwNTMwMEI2MDg3NSAvKiBQREZLaXRJbXBvcnRzLm1tICovLAotCQkJCUJDRjUwNUU1MTI0
MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oICovLAotCQkJCUJDRjUw
NUU2MTI0MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbSAqLywKKwkJ
CQlCQ0Y1MDVFNTEyNDMwNDdCMDA1OTU1QUUgLyogQ2VydGlmaWNhdGVJbmZvLmggKi8sCisJCQkJ
QkNGNTA1RTYxMjQzMDQ3QjAwNTk1NUFFIC8qIENlcnRpZmljYXRlSW5mby5tbSAqLywKIAkJCQlF
MUNDMUI4RjEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvTWFjLm1tICovLAogCQkJCTJENDdC
NTZBMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSAqLywKIAkJ
CQkyRDQ3QjU2QjE4MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaCAq
LywKQEAgLTU2MjAsNyArNTYyMCw3IEBACiAJCQkJQzU3NEE1ODExMkU2NjY4MTAwMkRGRTk4IC8q
IFBhc3RlYm9hcmRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5NTgyRDMxNTNDQkZENzAw
QjYwODc1IC8qIFBERktpdEltcG9ydHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRkNCMTg5MTdC
QkZFMDMwMDM5NENEOCAvKiBTeW5jaHJvbm91c05ldHdvcmtMb2FkZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUJDRjUwNUU3MTI0MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkNGNTA1RTcxMjQzMDQ3QjAwNTk1NUFFIC8q
IENlcnRpZmljYXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFMDBENEYxODJENkY1MDAw
MDg3REQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDQzQzQUJCMTI3Qjk1REMwMDMxN0YxNiAvKiBQbGF0Zm9ybVBvcHVwTWVudURhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDODc4MEZDMTE2MUMyQjgwMENDMjc2OCAvKiBQbGF0Zm9y
bVByb2Nlc3NJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTY5MzQsNyArNjkzNCw3IEBA
CiAJCQkJMkQyQURGMTAxNjM2NEQ4MjAwMTk3RTQ3IC8qIFBERlBsdWdpbkNob2ljZUFubm90YXRp
b24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDQyOUJGRDE3MjFFMkM3MDBFQzY4MUYgLyogUERG
UGx1Z2luUGFzc3dvcmRGaWVsZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEMkFERjA5MTYzNjJE
RDUwMDE5N0U0NyAvKiBQREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbSBpbiBTb3VyY2VzICovLAot
CQkJCUJDRjUwNUU4MTI0MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5t
bSBpbiBTb3VyY2VzICovLAorCQkJCUJDRjUwNUU4MTI0MzA0N0IwMDU5NTVBRSAvKiBDZXJ0aWZp
Y2F0ZUluZm8ubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0M0M0FCQTEyN0I5NURDMDAzMTdGMTYg
LyogUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNkZCN0Qy
MTFFNjUxRTIwMERCMTM3MSAvKiBQbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFBNjdF
MEMxNjVCMkE5OTAwNkNCQTY2IC8qIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZDU3NTE3MzIxZjI2YzA4MzU3MGY4MmRhZTIwZTBl
ZTliOWJmZThiZi4uYTViODQ0OWM0NzcwNmRjZDU1ODY0MjVkNTAzY2QxN2IwZjRlM2RkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkZXIuY3BwCkBAIC0yOCwxMSArMjgsMTEgQEAKIAogI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCiAKKyNpbmNsdWRlICJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJEYXRhUmVm
ZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmgi
Ci0jaW5jbHVkZSAiUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFNl
bmREYXRhKHVpbnQ2NF90IGJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVTCiAgICAg
bV9jb3JlTG9hZGVyLT5kaWRTZW5kRGF0YShieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2VudCk7
CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0
aWZpY2F0ZUluZm8oY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgbmVlZHNDb250aW51ZURp
ZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCit2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBuZWVk
c0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKIHsKICAgICBMT0coTmV0d29yaywg
IihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENl
cnRpZmljYXRlSW5mbyBmb3IgJyVzJy4gU3RhdHVzICVkLiIsIG1fY29yZUxvYWRlci0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLmgKaW5kZXggMDgxMmM5OWFmNThkOGQ1YTY5MjQ0NWE5OWNkYjNmYmYwZTRiYzk5Yy4uZmQy
ZWZhMmE5OWU5OTYxZjVkYjU5MWMwZWMwOThjZTM4NTYyNzUzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKQEAgLTUw
LDcgKzUwLDcgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLWNsYXNzIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOworY2xhc3MgQ2VydGlmaWNhdGVJbmZv
OwogdHlwZWRlZiB1aW50NjRfdCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogCiBjbGFzcyBXZWJS
ZXNvdXJjZUxvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlJlc291cmNlTG9hZGVyPiwgcHVi
bGljIENvcmVJUEM6Ok1lc3NhZ2VTZW5kZXIgewpAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAg
ICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0
ZXNUb0JlU2VudCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJ
bmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBQbGF0Zm9ybUNlcnRp
ZmljYXRlSW5mbyYsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2Up
OworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyhjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiwgYm9vbCBu
ZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7CiAgICAgdm9pZCBkaWRSZWNl
aXZlRGF0YShjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0
YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRGaW5pc2hSZXNvdXJjZUxvYWQoZG91YmxlIGZpbmlzaFRp
bWUpOwogICAgIHZvaWQgZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KaW5kZXggN2I0MDQ1ZTY2OWE0
ZjllZmRkNTYyZGUxYTI5ODc0MmE4YWVmMjZhZi4uOThhODc4ZmRmMDE1ZTE2MDQ5YTYxMDg3Zjky
YzM2Y2M2MDJmMWFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgpAQCAtMjksNyAr
MjksNyBAQCBtZXNzYWdlcyAtPiBXZWJSZXNvdXJjZUxvYWRlciBMZWdhY3lSZWNlaXZlciB7CiAg
ICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogV2UnbGwgbmVlZCBtdWNoIG1vcmUgZ3JhbnVs
YXJpdHkgZm9yIHJlc3BvbnNlIG1lc3NhZ2VzLgogICAgIFdpbGxTZW5kUmVxdWVzdChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRp
cmVjdFJlc3BvbnNlKQogICAgIERpZFNlbmREYXRhKHVpbnQ2NF90IGJ5dGVzU2VudCwgdWludDY0
X3QgdG90YWxCeXRlc1RvQmVTZW50KQotICAgIERpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZp
Y2F0ZUluZm8oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViS2l0OjpQbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgbmVlZHNDb250aW51ZURp
ZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCisgICAgRGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRp
ZmljYXRlSW5mbyhXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJLaXQ6OkNl
cnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZU1lc3NhZ2UpCiAgICAgRGlkUmVjZWl2ZURhdGEoQ29yZUlQQzo6RGF0YVJlZmVy
ZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQogICAgIERpZEZpbmlzaFJlc291
cmNlTG9hZChkb3VibGUgZmluaXNoVGltZSkKICAgICBEaWRGYWlsUmVzb3VyY2VMb2FkKFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CmluZGV4IDA3MWMxYjA3NTljNWE1MTYzMzg5NjZjNGQ0OGFmYzc0ZGQwY2Y4YzQuLjEwZmNmNzNm
NzgxYmM5NzkzNTAxMDBiOTEyNjljYWRmNTk1YmM0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC0yNywxMyArMjcsMTMgQEAKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRl
ckNsaWVudC5oIgogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCisjaW5jbHVk
ZSAiQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1
ZGUgIkluamVjdGVkQnVuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2Fy
ZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24u
aCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uaCIKICNpbmNsdWRl
ICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVkZSAiV2Vi
QmFja0ZvcndhcmRMaXN0UHJveHkuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVzc2FnZXMuaCIK
QEAgLTQ0MSw3ICs0NDEsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZENvbW1pdExvYWQoKQogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCiAKLSAgICB3ZWJQ
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENvbW1pdExvYWRGb3JGcmFtZSht
X2ZyYW1lLT5mcmFtZUlEKCksIHJlc3BvbnNlLm1pbWVUeXBlKCksIG1fZnJhbWUtPmNvcmVGcmFt
ZSgpLT5sb2FkZXIoKS5sb2FkVHlwZSgpLCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhyZXNwb25z
ZSksIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkpOwor
ICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ29tbWl0TG9hZEZv
ckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgcmVzcG9uc2UubWltZVR5cGUoKSwgbV9mcmFtZS0+
Y29yZUZyYW1lKCktPmxvYWRlcigpLmxvYWRUeXBlKCksIENlcnRpZmljYXRlSW5mbyhyZXNwb25z
ZSksIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkpOwog
CiAgICAgd2ViUGFnZS0+ZGlkQ29tbWl0TG9hZChtX2ZyYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggOTZlNGVjOGIwZGViZTZjZGQzN2I2Zjc2OGY4ZTE1
ZmY3YjUzZTkwMy4uNDhmY2MzNTRjYWQ0MzdkNmMxMTUwMWRiMmE3NzkzYzgwY2NlYzJhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTc0LDcgKzc0LDcgQEAgY2xh
c3MgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOwogY2xhc3MgV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyOwogI2Vsc2UKICNpZiBVU0UoU09VUCkKLWNsYXNzIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
OworY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwogI2VuZGlmCiAjZW5kaWYKIApAQCAtMTc0LDcgKzE3
NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUFjdGl2ZVBhZ2VzKCk7CiAKICNpZiAhRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykgJiYgVVNFKFNPVVApCi0gICAgdm9pZCBhbGxvd1NwZWNpZmlj
SFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mLCBj
b25zdCBTdHJpbmcmIGhvc3QpOworICAgIHZvaWQgYWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNh
dGVGb3JIb3N0KGNvbnN0IENlcnRpZmljYXRlSW5mbyYsIGNvbnN0IFN0cmluZyYgaG9zdCk7CiAj
ZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgppbmRleCA1MzJiNGMyZjE1MTdhODA4NGJhMjdmMWYxNzI3ODcxOTJj
NDM5MDliLi5hMDlmZjU2MGM0ZGQxMDNlNjMxMDE0ZTgwNjE2ZDQxOTRiNmQ4MjJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC04
NCw2ICs4NCw2IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2Vu
ZGlmCiAKICNpZiAhRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykgJiYgVVNFKFNPVVApCi0gICAgQWxs
b3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZp
Y2F0ZUluZm8gY2VydGlmaWNhdGUsIFdURjo6U3RyaW5nIGhvc3QpCisgICAgQWxsb3dTcGVjaWZp
Y0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmlj
YXRlLCBXVEY6OlN0cmluZyBob3N0KQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcAppbmRleCA3OWNmOTdkYWU5MmVmM2Uy
MDIxYzQ4YmYzNjcyM2RmN2E5OTVhNTM3Li5jMGMyMDZjNTEyZjVlODZkNzY4ZjY3ZGNiN2YxNTE3
ZWE3ZTlmNjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2Vi
UHJvY2Vzc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQ
cm9jZXNzU291cC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJTZWNjb21wRmlsdGVy
c1dlYlByb2Nlc3NFZmwuaCIKICNlbmRpZgogCi0jaW5jbHVkZSAiUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8uaCIKKyNpbmNsdWRlICJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJXZWJDb29r
aWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgog
I2luY2x1ZGUgIldlYlNvdXBSZXF1ZXN0TWFuYWdlci5oIgpAQCAtMjEwLDcgKzIxMCw3IEBAIHZv
aWQgV2ViUHJvY2Vzczo6c2V0SWdub3JlVExTRXJyb3JzKGJvb2wgaWdub3JlVExTRXJyb3JzKQog
fQogCiAjaWYgIUVOQUJMRShORVRXT1JLX1BST0NFU1MpCi12b2lkIFdlYlByb2Nlc3M6OmFsbG93
U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRl
SW5mbyYgY2VydGlmaWNhdGVJbmZvLCBjb25zdCBTdHJpbmcmIGhvc3QpCit2b2lkIFdlYlByb2Nl
c3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBDZXJ0aWZpY2F0
ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgU3RyaW5nJiBob3N0KQogewogICAgIFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpzZXRDbGllbnRDZXJ0aWZpY2F0ZShob3N0LCBjZXJ0aWZpY2F0
ZUluZm8uY2VydGlmaWNhdGUoKSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217298</attachid>
            <date>2013-11-19 07:10:52 -0800</date>
            <delta_ts>2013-11-21 08:07:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124150-20131119161050.patch</filename>
            <type>text/plain</type>
            <size>75698</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmUzNmIxY2M5ZTE5OTc1
ZTVjNjU0ZTQ3MGNlMzY2MTU1MWYwYjNhYy4uYWYxZGFjNzBhMDVjMjUzNTE5MzI3NWQ1ZmI1ODY4
MDFiZjYzZDY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDEzLTExLTExICBDc2Fi
YSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuYW1lIFBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvIHRvIENlcnRpZmljYXRlSW5mbworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MTUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0FzeW5jaHJvbm91c05ldHdvcmtMb2FkZXJDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpBc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50OjpkaWRS
ZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW06CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZv
ckhvc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdCk6CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAg
ICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogU2hhcmVkL0FQSS9jL21hYy9XS0Nl
cnRpZmljYXRlSW5mb01hYy5tbToKKyAgICAgICAgKFdLQ2VydGlmaWNhdGVJbmZvQ3JlYXRlV2l0
aENlcnRmaWNhdGVDaGFpbik6CisgICAgICAgIChXS0NlcnRpZmljYXRlSW5mb0dldENlcnRpZmlj
YXRlQ2hhaW4pOgorICAgICAgICAqIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnRy
eVVzZUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhl
bnRpY2F0aW9uTWFuYWdlcjo6dXNlQ3JlZGVudGlhbEZvckNoYWxsZW5nZSk6CisgICAgICAgICog
U2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oOgorICAgICAgICAq
IFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW46
CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL21hYy9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIubWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnRyeVVz
ZUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZSk6CisgICAgICAgICogU2hhcmVkL1VzZXJNZXNz
YWdlQ29kZXJzLmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZXNzYWdlRW5jb2Rlcjo6YmFzZUVu
Y29kZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZXNzYWdlRGVjb2Rlcjo6YmFzZURlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNlcnRp
ZmljYXRlSW5mbzo6Y2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2VydGlm
aWNhdGVJbmZvOjpXZWJDZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ2Vy
dGlmaWNhdGVJbmZvLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Bs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvLmguCisgICAgICAgIChXZWJLaXQ6OkNlcnRpZmljYXRlSW5m
bzo6Y2VydGlmaWNhdGVDaGFpbik6CisgICAgICAgICogU2hhcmVkL21hYy9DZXJ0aWZpY2F0ZUlu
Zm8ubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvLm1tLgorICAgICAgICAoV2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm86OkNlcnRp
ZmljYXRlSW5mbyk6CisgICAgICAgIChXZWJLaXQ6OkNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpDZXJ0aWZpY2F0ZUluZm86OmR1bXApOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoQ29yZUlQQzo6OjplbmNvZGVQbGF0Zm9y
bURhdGEpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAg
ICAqIFNoYXJlZC9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAuCisgICAgICAg
IChXZWJLaXQ6OkNlcnRpZmljYXRlSW5mbzo6Q2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKFdl
YktpdDo6Q2VydGlmaWNhdGVJbmZvOjp+Q2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKFdlYktp
dDo6Q2VydGlmaWNhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpDZXJ0aWZpY2F0
ZUluZm86OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mby5oLgorICAgICAgICAoV2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm86OmNlcnRpZmljYXRl
KToKKyAgICAgICAgKFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvOjp0bHNFcnJvcnMpOgorICAgICAg
ICAqIFNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwOgorICAgICAgICAo
Q29yZUlQQzo6OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNv
ZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENlcnRp
ZmljYXRlSW5mby5jcHA6CisgICAgICAgICh3ZWJraXRDZXJ0aWZpY2F0ZUluZm9HZXRDZXJ0aWZp
Y2F0ZUluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENlcnRpZmljYXRl
SW5mb1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfdGxzX2luZm8pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTo6dXNlQ3Jl
ZGVudGlhbCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3Qp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVQcm94eTo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkZyYW1lUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVG
b3JIb3N0KToKKwogMjAxMy0xMS0xOCAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgW0VGTF0gSW5pdGlhbGl6ZSBlZnJlZXQgYmVmb3JlIGdldHRpbmcgZGly
ZWN0b3JpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGI5MWFjYjM1MWEyM2Y5
MzdjYTg3ODMzMzVmMDhkNWI2NTY1MzJkMDkuLjZkZTQxMDAyMWYyYzYxZmRlN2FhMjQ2YjA3NTdl
OWFiZWEwYzdhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDgxLDggKzQ4
MSw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Np
b25TdGF0ZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuaCBcCi0JU291cmNlL1dlYktp
dDIvU2hhcmVkL3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uY3BwIFwKLQlTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIFwKKwlTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvc291cC9DZXJ0aWZpY2F0ZUluZm8uY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvc291cC9DZXJ0aWZpY2F0ZUluZm8uaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL3Nv
dXAvU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcCBcCiAJU291cmNlL1dlYktp
dDIvU2hhcmVkL1RleHRDaGVja2VyU3RhdGUuaCBcCkBAIC0xMzY1LDggKzEzNjUsOCBAQCB3ZWJr
aXQyX3BsdWdpbl9wcm9jZXNzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9n
dGsvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVk
L2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2Fpcm8v
U2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9Q
bGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3Vw
L1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3Vw
L0NlcnRpZmljYXRlSW5mby5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL0NlcnRp
ZmljYXRlSW5mby5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1l
bnRDb2RlcnNTb3VwLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1By
b2Nlc3NMYXVuY2hlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Q
cm9jZXNzTGF1bmNoZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9Bc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL0FzeW5jaHJvbm91c05ldHdvcmtMb2FkZXJDbGllbnQuY3BwCmluZGV4
IDFiYWY1YjE5YWIyMDAzZTU0OGQwM2JjMmU2NTgyYjIyYTQzZWI3YTcuLjg2NWI0YzA5MDc0OTE4
MTRiN2Y3MGI1ZjM0NWZiNjQwMWFhODc2ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL0FzeW5jaHJvbm91c05ldHdvcmtMb2FkZXJDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0FzeW5jaHJvbm91c05ldHdvcmtMb2FkZXJDbGll
bnQuY3BwCkBAIC0yNiw5ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
QXN5bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVudC5oIgogCisjaW5jbHVkZSAiQ2VydGlmaWNh
dGVJbmZvLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VM
b2FkZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgpAQCAt
NjMsNyArNjMsNyBAQCB2b2lkIEFzeW5jaHJvbm91c05ldHdvcmtMb2FkZXJDbGllbnQ6OmNhbkF1
dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoTmV0dwogCiB2b2lkIEFzeW5jaHJvbm91
c05ldHdvcmtMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZShOZXR3b3JrUmVzb3VyY2VM
b2FkZXIqIGxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAg
bG9hZGVyLT5zZW5kQWJvcnRpbmdPbkZhaWx1cmUoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZGVy
OjpEaWRSZWNlaXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvKHJlc3BvbnNlLCBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbyhyZXNwb25zZSksIGxvYWRlci0+aXNMb2FkaW5nTWFpblJlc291cmNl
KCkpKTsKKyAgICBsb2FkZXItPnNlbmRBYm9ydGluZ09uRmFpbHVyZShNZXNzYWdlczo6V2ViUmVz
b3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8ocmVzcG9u
c2UsIENlcnRpZmljYXRlSW5mbyhyZXNwb25zZSksIGxvYWRlci0+aXNMb2FkaW5nTWFpblJlc291
cmNlKCkpKTsKIH0KIAogdm9pZCBBc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50OjpkaWRS
ZWNlaXZlQnVmZmVyKE5ldHdvcmtSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBTaGFyZWRCdWZmZXIq
IGJ1ZmZlciwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggY2E2ZjhmYmI1ZjM4MzVjYmFhNGEyMDk2
ZTI3NWQ5MzQ4Yjk4ZThmMC4uODViNTZmODgyODFmYzA5ODAyZjRmNmNkZGEyYmQ1NTk2MWY0Njcw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CkBAIC0zOCw5ICszOCw5IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQXV0aGVudGlj
YXRpb25NYW5hZ2VyOworY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M7CiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQ7Ci1jbGFz
cyBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzsKIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNz
LCBwcml2YXRlIERvd25sb2FkTWFuYWdlcjo6Q2xpZW50IHsKQEAgLTEwNCw3ICsxMDQsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZG93bmxvYWRSZXF1ZXN0KHVpbnQ2NF90IGRvd25sb2FkSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgY2FuY2VsRG93bmxvYWQo
dWludDY0X3QgZG93bmxvYWRJRCk7CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsK
LSAgICB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBQbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbyYsIGNvbnN0IFN0cmluZyYgaG9zdCk7CisgICAgdm9pZCBhbGxv
d1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgQ2VydGlmaWNhdGVJbmZvJiwg
Y29uc3QgU3RyaW5nJiBob3N0KTsKICAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzU3RhdGlzdGlj
cyh1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGNsZWFyQ2FjaGVGb3JBbGxPcmlnaW5z
KHVpbnQzMl90IGNhY2hlc1RvQ2xlYXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGE1ZmNiYzdi
ZTk0MDI4MDdjMWU1NTYyYTNlZTY5ZmY2MDY5ODVkZDcuLmY5NjRhN2ZkNDYxMjE2Y2NjNjlhODFj
NzRjMjViNDZhOTQxM2M3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zOSw3ICszOSw3IEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRQcm9jZXNz
U3VwcHJlc3Npb25FbmFibGVkKGJvb2wgZmxhZykKICNlbmRpZgogCi0gICAgQWxsb3dTcGVjaWZp
Y0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8g
Y2VydGlmaWNhdGUsIFdURjo6U3RyaW5nIGhvc3QpCisgICAgQWxsb3dTcGVjaWZpY0hUVFBTQ2Vy
dGlmaWNhdGVGb3JIb3N0KFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlLCBXVEY6
OlN0cmluZyBob3N0KQogICAgIAogICAgIEdldE5ldHdvcmtQcm9jZXNzU3RhdGlzdGljcyh1aW50
NjRfdCBjYWxsYmFja0lEKQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMTYzMGEyYjQ3YTEzZmNh
ZmY4MTc5YTdjNDBiNGIwOTVjNjMyNjM4YS4uNDMyZWM3NmNmM2FlZjljZjNmN2I4ODM2MTA5ZjQ2
NmZmYmQxYzJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRl
ICJBc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiQXV0aGVudGlj
YXRpb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAi
RGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3Jr
QmxvYlJlZ2lzdHJ5LmgiCkBAIC0zNyw3ICszOCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSAiUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5o
IgogI2luY2x1ZGUgIlNoYXJlYWJsZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29y
a1Byb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29y
a1Byb2Nlc3NNYWMubW0KaW5kZXggZTE5N2ZmMzk2ZjcwYTc3YTk1NjJkMzVhYjUzZDJjNDQ1MzVj
YzAyZS4uMDk2NDZjOGM4NTFhMTlkODliNzA1YWZmYmE5MDA5OTI4ZDk2NGE2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vzc01h
Yy5tbQpAQCAtMjgsOSArMjgsOSBAQAogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIAor
I2ltcG9ydCAiQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIgogI2ltcG9ydCAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCi0jaW1w
b3J0ICJQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIgogI2ltcG9ydCAiUmVzb3VyY2VDYWNoZXNU
b0NsZWFyLmgiCiAjaW1wb3J0ICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW1wb3J0ICJTYW5kYm94
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCkBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwgY2FjaGVNb2RlbCkK
ICAgICBbbnN1cmxDYWNoZSBzZXREaXNrQ2FwYWNpdHk6c3RkOjptYXg8dW5zaWduZWQgbG9uZz4o
dXJsQ2FjaGVEaXNrQ2FwYWNpdHksIFtuc3VybENhY2hlIGRpc2tDYXBhY2l0eV0pXTsgLy8gRG9u
J3Qgc2hyaW5rIGEgYmlnIGRpc2sgY2FjaGUsIHNpbmNlIHRoYXQgd291bGQgY2F1c2UgY2h1cm4u
CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRl
Rm9ySG9zdChjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBj
b25zdCBTdHJpbmcmIGhvc3QpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRU
UFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUlu
Zm8sIGNvbnN0IFN0cmluZyYgaG9zdCkKIHsKICAgICBbTlNVUkxSZXF1ZXN0IHNldEFsbG93c1Nw
ZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRlSW5mby5jZXJ0aWZp
Y2F0ZUNoYWluKCkgZm9ySG9zdDooTlNTdHJpbmcgKilob3N0XTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNw
cAppbmRleCBkOGViYWNiZDBkN2Y0NTE1Y2VkMTBjMTczNGJjNDE3Y2ViYmM5ZWY2Li5iZDRlNmMy
OTcyYWQyMjI3YjQ1OWQ4YmMyNDA4OTJlMTc1OWY1NzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCkBA
IC00NCw3ICs0NCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2Rl
bChDYWNoZU1vZGVsKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgTmV0d29ya1By
b2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbyYsIGNvbnN0IFN0cmluZyYpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjph
bGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgQ2VydGlmaWNhdGVJbmZv
JiwgY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybUVmbC5jbWFrZQppbmRleCBiMDUyNTM4NzQ0NTdmMDM5ZjViMWY0ODNkMTlhMzAxNzNhNzZm
M2Y3Li42ZDNlNzEyYjFkN2QyMGM0N2M4ZjI2OTIyMmM0MDA0OGU2YjFjZTNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybUVmbC5jbWFrZQpAQCAtNDksNyArNDksNyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NP
VVJDRVMKICAgICBTaGFyZWQvbGludXgvU2VjY29tcEZpbHRlcnMvU3lzY2FsbC5jcHAKICAgICBT
aGFyZWQvbGludXgvU2VjY29tcEZpbHRlcnMvU3lzY2FsbFBvbGljeS5jcHAKIAotICAgIFNoYXJl
ZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcAorICAgIFNoYXJlZC9zb3VwL0NlcnRp
ZmljYXRlSW5mby5jcHAKICAgICBTaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3Vw
LmNwcAogCiAgICAgVUlQcm9jZXNzL0RlZmF1bHRVbmRvQ29udHJvbGxlci5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm1HVEsuY21ha2UKaW5kZXggZTZlYzFiMzE4NzA3ZWIzMzE4ZmM1MDk4MjYwZWNkYTZlYzZk
OGUxOS4uMWIxYzU1NDA1MDNjYjcyNzU5ZGUyYTQ5MzFjMTg3YjRjNTc2ZWFhNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1HVEsuY21ha2UKQEAgLTYxLDcgKzYxLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9T
T1VSQ0VTCiAgICAgU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1N5c2NhbGwuY3BwCiAgICAg
U2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1N5c2NhbGxQb2xpY3kuY3BwCiAKLSAgICBTaGFy
ZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAKKyAgICBTaGFyZWQvc291cC9DZXJ0
aWZpY2F0ZUluZm8uY3BwCiAgICAgU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291
cC5jcHAKIAogICAgIFVJUHJvY2Vzcy9EZWZhdWx0VW5kb0NvbnRyb2xsZXIuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvbWFjL1dLQ2VydGlmaWNhdGVJbmZvTWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL21hYy9XS0NlcnRpZmljYXRlSW5mb01h
Yy5tbQppbmRleCAzNGRkNDMxNTE5YTM5OWEzZGQ4M2UwZTgyM2Y0MzQ3NWMyZTNiZmFiLi4zMmVj
MGY0NmU5ZDBjY2UxMmY3N2QyNzhiMzg4Yjc3ZmZmZjJmYTYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvbWFjL1dLQ2VydGlmaWNhdGVJbmZvTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9tYWMvV0tDZXJ0aWZpY2F0ZUluZm9NYWMubW0KQEAg
LTMzLDExICszMywxMSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBXS0NlcnRpZmljYXRl
SW5mb1JlZiBXS0NlcnRpZmljYXRlSW5mb0NyZWF0ZVdpdGhDZXJ0ZmljYXRlQ2hhaW4oQ0ZBcnJh
eVJlZiBjZXJ0aWZpY2F0ZUNoYWluKQogewotICAgIFJlZlB0cjxXZWJDZXJ0aWZpY2F0ZUluZm8+
IGNlcnRpZmljYXRlSW5mbyA9IFdlYkNlcnRpZmljYXRlSW5mbzo6Y3JlYXRlKFBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvKGNlcnRpZmljYXRlQ2hhaW4pKTsKKyAgICBSZWZQdHI8V2ViQ2VydGlmaWNh
dGVJbmZvPiBjZXJ0aWZpY2F0ZUluZm8gPSBXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZShDZXJ0
aWZpY2F0ZUluZm8oY2VydGlmaWNhdGVDaGFpbikpOwogICAgIHJldHVybiB0b0FQSShjZXJ0aWZp
Y2F0ZUluZm8ucmVsZWFzZSgpLmxlYWtSZWYoKSk7CiB9CiAKIENGQXJyYXlSZWYgV0tDZXJ0aWZp
Y2F0ZUluZm9HZXRDZXJ0aWZpY2F0ZUNoYWluKFdLQ2VydGlmaWNhdGVJbmZvUmVmIGNlcnRpZmlj
YXRlSW5mb1JlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKGNlcnRpZmljYXRlSW5mb1JlZiktPnBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkuY2VydGlmaWNhdGVDaGFpbigpOworICAgIHJldHVybiB0
b0ltcGwoY2VydGlmaWNhdGVJbmZvUmVmKS0+Y2VydGlmaWNhdGVJbmZvKCkuY2VydGlmaWNhdGVD
aGFpbigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAppbmRleCA3ZjdkY2EyZGQyZTQy
ODI1ZmE1ODE3YjFkMmNmMGZjZTkxYjNmYjc4Li5lMmY0NTMyMjljYjdkYmRmZDMzYzNkNmM2YjYy
YmEwMjZmYjcxNmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcApAQCAtOTgsMjAgKzk4
LDIwIEBAIHZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoRG93bmxvYWQqIGRvd25sb2FkCiAKIC8vIEN1cnJlbnRseSwgb25seSBNYWMg
a25vd3MgaG93IHRvIHJlc3BvbmQgdG8gYXV0aGVudGljYXRpb24gY2hhbGxlbmdlcyB3aXRoIGNl
cnRpZmljYXRlIGluZm8uCiAjaWYgIVVTRShTRUNVUklUWV9GUkFNRVdPUkspCi1ib29sIEF1dGhl
bnRpY2F0aW9uTWFuYWdlcjo6dHJ5VXNlUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9Gb3JDaGFsbGVu
Z2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbyYpCitib29sIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6dHJ5VXNlQ2Vy
dGlmaWNhdGVJbmZvRm9yQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJikKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAjZW5kaWYKIAotdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnVzZUNyZWRlbnRpYWxGb3JD
aGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQsIGNvbnN0IENyZWRlbnRpYWwmIGNyZWRlbnRp
YWwsIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCit2b2lk
IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6dXNlQ3JlZGVudGlhbEZvckNoYWxsZW5nZSh1aW50NjRf
dCBjaGFsbGVuZ2VJRCwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCwgY29uc3QgQ2VydGlm
aWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKIAogICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSA9IG1fY2hhbGxlbmdl
cy50YWtlKGNoYWxsZW5nZUlEKTsKICAgICBBU1NFUlQoIWNoYWxsZW5nZS5pc051bGwoKSk7CiAg
ICAgCi0gICAgaWYgKHRyeVVzZVBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvRm9yQ2hhbGxlbmdlKGNo
YWxsZW5nZSwgY2VydGlmaWNhdGVJbmZvKSkKKyAgICBpZiAodHJ5VXNlQ2VydGlmaWNhdGVJbmZv
Rm9yQ2hhbGxlbmdlKGNoYWxsZW5nZSwgY2VydGlmaWNhdGVJbmZvKSkKICAgICAgICAgcmV0dXJu
OwogICAgIAogICAgIEF1dGhlbnRpY2F0aW9uQ2xpZW50KiBjb3JlQ2xpZW50ID0gY2hhbGxlbmdl
LmF1dGhlbnRpY2F0aW9uQ2xpZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKaW5kZXggNGM2
ZjgxZTk1MzkwZmY3MGQzODE4MmJkYzliNDI2YmE2ZTAxYTU5MS4uNGY2NWU5ZjY3ODk4N2QwNDc5
NDMwOTk5MWVlODVmNGQxNTYzMzgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaApAQCAtNDAs
OSArNDAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitj
bGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBDaGlsZFByb2Nlc3M7CiBjbGFzcyBEb3dubG9h
ZDsKLWNsYXNzIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgV2ViRnJhbWU7CiAKIGNs
YXNzIEF1dGhlbnRpY2F0aW9uTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwg
cHVibGljIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciB7CkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgZm9yIGRv
d25sb2FkcyB3aXRoIG9yIHdpdGhvdXQgdGhlIE5ldHdvcmtQcm9jZXNzCiAgICAgdm9pZCBkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG93bmxvYWQqLCBjb25zdCBXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogCi0gICAgdm9pZCB1c2VDcmVkZW50aWFsRm9yQ2hh
bGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlELCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiwg
Y29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mKTsKKyAgICB2b2lkIHVzZUNyZWRlbnRpYWxG
b3JDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQsIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRp
YWwmLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mKTsKICAgICB2b2lkIGNvbnRpbnVlV2l0aG91dENy
ZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQpOwogICAgIHZvaWQgY2Fu
Y2VsQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKICAgICAKQEAgLTY5LDcgKzY5LDcg
QEAgcHJpdmF0ZToKICAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CiAKLSAgICBib29sIHRyeVVzZVBsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvRm9yQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiwgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mKTsKKyAgICBib29sIHRyeVVzZUNl
cnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYpOwogCiAgICAgdWludDY0X3QgZXN0YWJs
aXNoSWRlbnRpZmllckZvckNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgpp
bmRleCBiYjFjYzMwY2E2YmM1OTFiZGVkZWQ0MWYwZjUxOTVlYzc2Yzk2MWRkLi5kYTEzZjM0MzVm
YWZiZGUwN2U2MWU5ODgxNzg5YWUxYTM2ZmEzYjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAog
bWVzc2FnZXMgLT4gQXV0aGVudGljYXRpb25NYW5hZ2VyIHsKLSAgICB2b2lkIFVzZUNyZWRlbnRp
YWxGb3JDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQsIFdlYkNvcmU6OkNyZWRlbnRpYWwg
Y3JlZGVudGlhbCwgV2ViS2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSk7
CisgICAgdm9pZCBVc2VDcmVkZW50aWFsRm9yQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlE
LCBXZWJDb3JlOjpDcmVkZW50aWFsIGNyZWRlbnRpYWwsIFdlYktpdDo6Q2VydGlmaWNhdGVJbmZv
IGNlcnRpZmljYXRlKTsKICAgICB2b2lkIENvbnRpbnVlV2l0aG91dENyZWRlbnRpYWxGb3JDaGFs
bGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQpOwogICAgIHZvaWQgQ2FuY2VsQ2hhbGxlbmdlKHVp
bnQ2NF90IGNoYWxsZW5nZUlEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BdXRoZW50aWNhdGlvbi9tYWMvQXV0aGVudGljYXRpb25NYW5hZ2VyLm1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9tYWMvQXV0aGVudGljYXRpb25NYW5hZ2Vy
Lm1hYy5tbQppbmRleCBjMGI5MmYxMmI0ZWYyZDQ4NDI1ZGQyYjdmZTM0MWU3NjljMjc2MDEzLi5h
ODYxOGNkYTY5ZTc5OWU2OTM3YTg0ZWI5OTNkZWY3ZGI4ZThmMDI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vbWFjL0F1dGhlbnRpY2F0aW9uTWFuYWdl
ci5tYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL21hYy9B
dXRoZW50aWNhdGlvbk1hbmFnZXIubWFjLm1tCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBVU0Uo
U0VDVVJJVFlfRlJBTUVXT1JLKQogCi0jaW5jbHVkZSAiUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8u
aCIKKyNpbmNsdWRlICJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlIDxTZWN1cml0eS9TZWNJ
ZGVudGl0eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4K
IApAQCAtMzYsNyArMzYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLWJvb2wgQXV0aGVudGljYXRpb25NYW5hZ2VyOjp0cnlVc2VQbGF0Zm9ybUNl
cnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYg
Y2hhbGxlbmdlLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZv
KQorYm9vbCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnRyeVVzZUNlcnRpZmljYXRlSW5mb0ZvckNo
YWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlLCBjb25zdCBD
ZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbykKIHsKICAgICBDRkFycmF5UmVmIGNoYWlu
ID0gY2VydGlmaWNhdGVJbmZvLmNlcnRpZmljYXRlQ2hhaW4oKTsKICAgICBpZiAoIWNoYWluKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAppbmRleCAyZDc5YTUyZDBj
MTE3YWYzNzI0ODVkNjM1YzY4YzU3ODlhYzJjMTVkLi41YmQzN2Y1MmM4ZjgzZWM5YjU4ZGEwOWVi
N2MzYTBlNmZkYTNiODEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1l
c3NhZ2VDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2Rl
cnMuaApAQCAtMjE1LDcgKzIxNSw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgICAgICBjYXNl
IEFQSTo6T2JqZWN0OjpUeXBlOjpDZXJ0aWZpY2F0ZUluZm86IHsKICAgICAgICAgICAgIFdlYkNl
cnRpZmljYXRlSW5mbyogY2VydGlmaWNhdGVJbmZvID0gc3RhdGljX2Nhc3Q8V2ViQ2VydGlmaWNh
dGVJbmZvKj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgY2VydGlmaWNhdGVJbmZv
LT5wbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpOworICAgICAgICAgICAgZW5jb2RlciA8PCBjZXJ0
aWZpY2F0ZUluZm8tPmNlcnRpZmljYXRlSW5mbygpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6RXJyb3I6IHsKQEAg
LTUwNCwxMCArNTA0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkNlcnRpZmljYXRlSW5mbzogewotICAg
ICAgICAgICAgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8gcGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm87
Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
KSkKKyAgICAgICAgICAgIENlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm87CisgICAgICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNlcnRpZmljYXRlSW5mbykpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViQ2VydGlmaWNh
dGVJbmZvOjpjcmVhdGUocGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8pOworICAgICAgICAgICAgY29k
ZXIubV9yb290ID0gV2ViQ2VydGlmaWNhdGVJbmZvOjpjcmVhdGUoY2VydGlmaWNhdGVJbmZvKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6
OlR5cGU6OkVycm9yOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ2Vy
dGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ2VydGlmaWNhdGVJbmZv
LmgKaW5kZXggZDNkMzVjNzRiOWY3NDFlZTEwN2ZlZTVhYWMxZWEzODZkZWM2MjQ1NS4uZTkwMWQz
MDlhZWQ0ZjA3OGJlYmIxNjlkNmQ4MDhhMzFjNjljZjk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDZXJ0aWZpY2F0ZUluZm8uaApAQCAtMjcsMjcgKzI3LDI3IEBACiAjZGVmaW5lIFdl
YkNlcnRpZmljYXRlSW5mb19oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIgorI2luY2x1ZGUgIkNlcnRpZmljYXRlSW5mby5oIgog
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBXZWJDZXJ0aWZpY2F0ZUluZm8gOiBwdWJsaWMgQVBJOjpUeXBlZE9iamVjdDxBUEk6Ok9iamVj
dDo6VHlwZTo6Q2VydGlmaWNhdGVJbmZvPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViQ2VydGlmaWNhdGVJbmZvPiBjcmVhdGUoY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUlu
Zm8mIGluZm8pCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ2VydGlmaWNhdGVJbmZvPiBjcmVh
dGUoY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBpbmZvKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJDZXJ0aWZpY2F0ZUluZm8oaW5mbykpOwogICAgIH0KIAotICAgIGNvbnN0
IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBwbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpIGNvbnN0
IHsgcmV0dXJuIG1fcGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm87IH0KKyAgICBjb25zdCBDZXJ0aWZp
Y2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbygpIGNvbnN0IHsgcmV0dXJuIG1fY2VydGlmaWNhdGVJ
bmZvOyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViQ2VydGlmaWNhdGVJbmZvKGNvbnN0
IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBpbmZvKQotICAgICAgICA6IG1fcGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8oaW5mbykKKyAgICBleHBsaWNpdCBXZWJDZXJ0aWZpY2F0ZUluZm8oY29uc3Qg
Q2VydGlmaWNhdGVJbmZvJiBpbmZvKQorICAgICAgICA6IG1fY2VydGlmaWNhdGVJbmZvKGluZm8p
CiAgICAgewogICAgIH0KIAotICAgIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvIG1fcGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm87CisgICAgQ2VydGlmaWNhdGVJbmZvIG1fY2VydGlmaWNhdGVJbmZvOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0NlcnRpZmljYXRlSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9D
ZXJ0aWZpY2F0ZUluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGRjNzUxMmMwYmNlNjJkYTk1OTkwYTc1MmIz
ZDBmNThjNjljNDQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9DZXJ0aWZpY2F0ZUluZm8uaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBDZXJ0aWZpY2F0ZUluZm9faAorI2RlZmluZSBDZXJ0aWZpY2F0ZUluZm9faAorCisjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgorCituYW1lc3BhY2UgQ29yZUlQQyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBB
cmd1bWVudEVuY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDZXJ0aWZp
Y2F0ZUluZm8geworcHVibGljOgorICAgIENlcnRpZmljYXRlSW5mbygpOworICAgIGV4cGxpY2l0
IENlcnRpZmljYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAg
ZXhwbGljaXQgQ2VydGlmaWNhdGVJbmZvKENGQXJyYXlSZWYgY2VydGlmaWNhdGVDaGFpbik7CisK
KyAgICBDRkFycmF5UmVmIGNlcnRpZmljYXRlQ2hhaW4oKSBjb25zdCB7IHJldHVybiBtX2NlcnRp
ZmljYXRlQ2hhaW4uZ2V0KCk7IH0KKworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXImLCBDZXJ0aWZpY2F0ZUluZm8mKTsKKworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lk
IGR1bXAoKSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFJldGFpblB0cjxDRkFycmF5
UmVmPiBtX2NlcnRpZmljYXRlQ2hhaW47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIENlcnRpZmljYXRlSW5mb19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0NlcnRpZmljYXRlSW5mby5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
Q2VydGlmaWNhdGVJbmZvLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2MGVhYjZjNjMwNDFkNjk0ZThhNWUzMjc2
MDcwYzVjOTVlODE5ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL0NlcnRpZmljYXRlSW5mby5tbQpAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJDZXJ0aWZpY2F0ZUluZm8uaCIKKworI2ltcG9ydCAi
QXJndW1lbnRDb2RlcnNDRi5oIgorI2ltcG9ydCAiQXJndW1lbnREZWNvZGVyLmgiCisjaW1wb3J0
ICJBcmd1bWVudEVuY29kZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitDZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmljYXRlSW5mbygpCit7Cit9
CisKK0NlcnRpZmljYXRlSW5mbzo6Q2VydGlmaWNhdGVJbmZvKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQorICAgIDogbV9jZXJ0aWZpY2F0ZUNoYWluKHJlc3BvbnNlLmNlcnRpZmlj
YXRlQ2hhaW4oKSkKK3sKK30KKworQ2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZUluZm8oQ0ZB
cnJheVJlZiBjZXJ0aWZpY2F0ZUNoYWluKQorICAgIDogbV9jZXJ0aWZpY2F0ZUNoYWluKGNlcnRp
ZmljYXRlQ2hhaW4pCit7Cit9CisKK3ZvaWQgQ2VydGlmaWNhdGVJbmZvOjplbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGlmICghbV9jZXJ0aWZp
Y2F0ZUNoYWluKSB7CisgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBlbmNvZGVyIDw8IHRydWU7CisgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29k
ZXIsIG1fY2VydGlmaWNhdGVDaGFpbi5nZXQoKSk7Cit9CisKK2Jvb2wgQ2VydGlmaWNhdGVJbmZv
OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDZXJ0aWZpY2F0ZUlu
Zm8mIGMpCit7CisgICAgYm9vbCBoYXNDZXJ0aWZpY2F0ZUNoYWluOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoaGFzQ2VydGlmaWNhdGVDaGFpbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGlmICghaGFzQ2VydGlmaWNhdGVDaGFpbikKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICBpZiAoIUNvcmVJUEM6OmRlY29kZShkZWNvZGVyLCBjLm1fY2VydGlmaWNhdGVDaGFpbikpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCisjaWZuZGVmIE5E
RUJVRwordm9pZCBDZXJ0aWZpY2F0ZUluZm86OmR1bXAoKSBjb25zdAoreworICAgIHVuc2lnbmVk
IGVudHJpZXMgPSBtX2NlcnRpZmljYXRlQ2hhaW4gPyBDRkFycmF5R2V0Q291bnQobV9jZXJ0aWZp
Y2F0ZUNoYWluLmdldCgpKSA6IDA7CisKKyAgICBOU0xvZyhAIkNlcnRpZmljYXRlSW5mb1xuIik7
CisgICAgTlNMb2coQCIgIEVudHJpZXM6ICVkXG4iLCBlbnRyaWVzKTsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgZW50cmllczsgKytpKSB7CisgICAgICAgIFJldGFpblB0cjxDRlN0cmlu
Z1JlZj4gc3VtbWFyeSA9IGFkb3B0Q0YoU2VjQ2VydGlmaWNhdGVDb3B5U3ViamVjdFN1bW1hcnko
KFNlY0NlcnRpZmljYXRlUmVmKUNGQXJyYXlHZXRWYWx1ZUF0SW5kZXgobV9jZXJ0aWZpY2F0ZUNo
YWluLmdldCgpLCBpKSkpOworICAgICAgICBOU0xvZyhAIiAgJUAiLCAoTlNTdHJpbmcgKilzdW1t
YXJ5LmdldCgpKTsKKyAgICB9Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllYTFhMmYzMzE3OWYyZDE1NDBkNDkx
YWQwNjgzYjk1MjQwY2NjZDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5m
by5oCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9faAotI2RlZmluZSBQbGF0Zm9ybUNlcnRpZmljYXRlSW5m
b19oCi0KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+Ci0KLW5hbWVzcGFjZSBDb3JlSVBDIHsKLSAgICBjbGFzcyBBcmd1bWVu
dERlY29kZXI7Ci0gICAgY2xhc3MgQXJndW1lbnRFbmNvZGVyOwotfQotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotY2xhc3MgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8gewotcHVibGljOgotICAgIFBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvKCk7Ci0gICAgZXhwbGljaXQgUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIGV4cGxpY2l0IFBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvKENGQXJyYXlSZWYgY2VydGlmaWNhdGVDaGFpbik7Ci0KLSAg
ICBDRkFycmF5UmVmIGNlcnRpZmljYXRlQ2hhaW4oKSBjb25zdCB7IHJldHVybiBtX2NlcnRpZmlj
YXRlQ2hhaW4uZ2V0KCk7IH0KLQotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXImLCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYpOwotCi0jaWZuZGVmIE5ERUJVRwotICAg
IHZvaWQgZHVtcCgpIGNvbnN0OwotI2VuZGlmCi0KLXByaXZhdGU6Ci0gICAgUmV0YWluUHRyPENG
QXJyYXlSZWY+IG1fY2VydGlmaWNhdGVDaGFpbjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYgLy8gUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9faApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0YTczNTQ1YzViZDE2OGY2YWE5MjZkOTc0NjMxOGU0YTZj
YThlMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbQorKysgL2Rl
di9udWxsCkBAIC0xLDkxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIK
LSNpbXBvcnQgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCi0KLSNpbXBvcnQgIkFyZ3VtZW50
Q29kZXJzQ0YuaCIKLSNpbXBvcnQgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2ltcG9ydCAiQXJndW1l
bnRFbmNvZGVyLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
KCkKLXsKLX0KLQotUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OlBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotICAgIDogbV9jZXJ0aWZpY2F0
ZUNoYWluKHJlc3BvbnNlLmNlcnRpZmljYXRlQ2hhaW4oKSkKLXsKLX0KLQotUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm86OlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKENGQXJyYXlSZWYgY2VydGlmaWNh
dGVDaGFpbikKLSAgICA6IG1fY2VydGlmaWNhdGVDaGFpbihjZXJ0aWZpY2F0ZUNoYWluKQotewot
fQotCi12b2lkIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIGlmICghbV9jZXJ0aWZpY2F0ZUNoYWlu
KSB7Ci0gICAgICAgIGVuY29kZXIgPDwgZmFsc2U7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBlbmNvZGVyIDw8IHRydWU7Ci0gICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fY2Vy
dGlmaWNhdGVDaGFpbi5nZXQoKSk7Ci19Ci0KLWJvb2wgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86
OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFBsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvJiBjKQotewotICAgIGJvb2wgaGFzQ2VydGlmaWNhdGVDaGFpbjsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGhhc0NlcnRpZmljYXRlQ2hhaW4pKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICBpZiAoIWhhc0NlcnRpZmljYXRlQ2hhaW4pCi0gICAgICAgIHJldHVybiB0cnVl
OwotCi0gICAgaWYgKCFDb3JlSVBDOjpkZWNvZGUoZGVjb2RlciwgYy5tX2NlcnRpZmljYXRlQ2hh
aW4pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotI2lm
bmRlZiBOREVCVUcKLXZvaWQgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmR1bXAoKSBjb25zdAot
ewotICAgIHVuc2lnbmVkIGVudHJpZXMgPSBtX2NlcnRpZmljYXRlQ2hhaW4gPyBDRkFycmF5R2V0
Q291bnQobV9jZXJ0aWZpY2F0ZUNoYWluLmdldCgpKSA6IDA7Ci0KLSAgICBOU0xvZyhAIlBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvXG4iKTsKLSAgICBOU0xvZyhAIiAgRW50cmllczogJWRcbiIsIGVu
dHJpZXMpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBlbnRyaWVzOyArK2kpIHsKLSAg
ICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzdW1tYXJ5ID0gYWRvcHRDRihTZWNDZXJ0aWZp
Y2F0ZUNvcHlTdWJqZWN0U3VtbWFyeSgoU2VjQ2VydGlmaWNhdGVSZWYpQ0ZBcnJheUdldFZhbHVl
QXRJbmRleChtX2NlcnRpZmljYXRlQ2hhaW4uZ2V0KCksIGkpKSk7Ci0gICAgICAgIE5TTG9nKEAi
ICAlQCIsIChOU1N0cmluZyAqKXN1bW1hcnkuZ2V0KCkpOwotICAgIH0KLX0KLSNlbmRpZgotCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KaW5kZXggNTYyYjViMTM0ZjNjZjVlNjQ5MzVk
Zjk2ZmRlY2I3MzA1ZTAzZmNjZS4uY2U5YzA2ZGU2M2FjNTYwZDU3ZjYwYmY3OTllYmI1MjRiZGVk
ZmMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1l
bnRDb2RlcnNNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNNYWMubW0KQEAgLTI4LDcgKzI4LDcgQEAKIAogI2ltcG9ydCAiQXJndW1lbnRD
b2RlcnNDRi5oIgogI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgotI2ltcG9ydCAiUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8uaCIKKyNpbXBvcnQgIkNlcnRpZmljYXRlSW5mby5oIgogI2ltcG9ydCAi
V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgpAQCAtMTcwLDcgKzE3MCw3IEBA
IHZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlciwKIAogICAgIGlkIHBlZXJDZXJ0aWZpY2F0ZUNoYWluID0g
W3VzZXJJbmZvIG9iamVjdEZvcktleTpAIk5TRXJyb3JQZWVyQ2VydGlmaWNhdGVDaGFpbktleSJd
OwogICAgIEFTU0VSVCghcGVlckNlcnRpZmljYXRlQ2hhaW4gfHwgW3BlZXJDZXJ0aWZpY2F0ZUNo
YWluIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSk7Ci0gICAgZW5jb2RlciA8PCBQbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbygoQ0ZBcnJheVJlZilwZWVyQ2VydGlmaWNhdGVDaGFpbik7Cisg
ICAgZW5jb2RlciA8PCBDZXJ0aWZpY2F0ZUluZm8oKENGQXJyYXlSZWYpcGVlckNlcnRpZmljYXRl
Q2hhaW4pOwogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBs
YXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlc291cmNlRXJyb3ImIHJlc291
cmNlRXJyb3IpCkBAIC0xOTYsNyArMTk2LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNl
RXJyb3I+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLAogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoc3RyaW5nVXNlckluZm9NYXApKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZTsKKyAgICBD
ZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjZXJ0
aWZpY2F0ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzBjMDgxZTUzMjc4ZDA3
MjNlMjMxZWM0NGY5ZDIyN2VlMWE3NTc1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkNlcnRpZmljYXRlSW5mby5oIgorCisjaW5jbHVkZSAiQXJn
dW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSAi
RGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorI2luY2x1ZGUgPGxpYnNvdXAvc291
cC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K0NlcnRpZmljYXRlSW5mbzo6Q2VydGlmaWNhdGVJbmZvKCkKKyAgICA6IG1fdGxzRXJyb3JzKHN0
YXRpY19jYXN0PEdUbHNDZXJ0aWZpY2F0ZUZsYWdzPigwKSkKK3sKK30KKworQ2VydGlmaWNhdGVJ
bmZvOjpDZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCisg
ICAgOiBtX2NlcnRpZmljYXRlKHJlc3BvbnNlLnNvdXBNZXNzYWdlQ2VydGlmaWNhdGUoKSkKKyAg
ICAsIG1fdGxzRXJyb3JzKHJlc3BvbnNlLnNvdXBNZXNzYWdlVExTRXJyb3JzKCkpCit7Cit9CisK
K0NlcnRpZmljYXRlSW5mbzo6Q2VydGlmaWNhdGVJbmZvKGNvbnN0IFJlc291cmNlRXJyb3ImIHJl
c291cmNlRXJyb3IpCisgICAgOiBtX2NlcnRpZmljYXRlKHJlc291cmNlRXJyb3IuY2VydGlmaWNh
dGUoKSkKKyAgICAsIG1fdGxzRXJyb3JzKHN0YXRpY19jYXN0PEdUbHNDZXJ0aWZpY2F0ZUZsYWdz
PihyZXNvdXJjZUVycm9yLnRsc0Vycm9ycygpKSkKK3sKK30KKworQ2VydGlmaWNhdGVJbmZvOjpD
ZXJ0aWZpY2F0ZUluZm8oR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSwgR1Rsc0NlcnRpZmlj
YXRlRmxhZ3MgdGxzRXJyb3JzKQorICAgIDogbV9jZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSkKKyAg
ICAsIG1fdGxzRXJyb3JzKHRsc0Vycm9ycykKK3sKK30KKworQ2VydGlmaWNhdGVJbmZvOjp+Q2Vy
dGlmaWNhdGVJbmZvKCkKK3sKK30KKwordm9pZCBDZXJ0aWZpY2F0ZUluZm86OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgaWYgKCFtX2NlcnRp
ZmljYXRlKSB7CisgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBHQnl0ZUFycmF5KiBjZXJ0aWZpY2F0ZURhdGEgPSAwOworICAgIGdfb2JqZWN0
X2dldChHX09CSkVDVChtX2NlcnRpZmljYXRlLmdldCgpKSwgImNlcnRpZmljYXRlIiwgJmNlcnRp
ZmljYXRlRGF0YSwgTlVMTCk7CisgICAgaWYgKCFjZXJ0aWZpY2F0ZURhdGEpIHsKKyAgICAgICAg
ZW5jb2RlciA8PCBmYWxzZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGVuY29kZXIg
PDwgdHJ1ZTsKKyAgICBHUmVmUHRyPEdCeXRlQXJyYXk+IGNlcnRpZmljYXRlID0gYWRvcHRHUmVm
KGNlcnRpZmljYXRlRGF0YSk7CisgICAgZW5jb2Rlci5lbmNvZGVWYXJpYWJsZUxlbmd0aEJ5dGVB
cnJheShDb3JlSVBDOjpEYXRhUmVmZXJlbmNlKGNlcnRpZmljYXRlLT5kYXRhLCBjZXJ0aWZpY2F0
ZS0+bGVuKSk7CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4obV90bHNFcnJv
cnMpOworfQorCitib29sIENlcnRpZmljYXRlSW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCit7Cisg
ICAgYm9vbCBoYXNDZXJ0aWZpY2F0ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc0NlcnRp
ZmljYXRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFoYXNDZXJ0aWZpY2F0
ZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlIGNl
cnRpZmljYXRlRGF0YVJlZmVyZW5jZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlVmFyaWFibGVM
ZW5ndGhCeXRlQXJyYXkoY2VydGlmaWNhdGVEYXRhUmVmZXJlbmNlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgR0J5dGVBcnJheSogY2VydGlmaWNhdGVEYXRhID0gZ19ieXRlX2FycmF5
X3NpemVkX25ldyhjZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKKyAgICBjZXJ0aWZp
Y2F0ZURhdGEgPSBnX2J5dGVfYXJyYXlfYXBwZW5kKGNlcnRpZmljYXRlRGF0YSwgY2VydGlmaWNh
dGVEYXRhUmVmZXJlbmNlLmRhdGEoKSwgY2VydGlmaWNhdGVEYXRhUmVmZXJlbmNlLnNpemUoKSk7
CisgICAgR1JlZlB0cjxHQnl0ZUFycmF5PiBjZXJ0aWZpY2F0ZSA9IGFkb3B0R1JlZihjZXJ0aWZp
Y2F0ZURhdGEpOworCisgICAgR1Rsc0JhY2tlbmQqIGJhY2tlbmQgPSBnX3Rsc19iYWNrZW5kX2dl
dF9kZWZhdWx0KCk7CisgICAgY2VydGlmaWNhdGVJbmZvLm1fY2VydGlmaWNhdGUgPSBhZG9wdEdS
ZWYoR19UTFNfQ0VSVElGSUNBVEUoZ19pbml0YWJsZV9uZXcoZ190bHNfYmFja2VuZF9nZXRfY2Vy
dGlmaWNhdGVfdHlwZShiYWNrZW5kKSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2Vy
dGlmaWNhdGUiLCBjZXJ0aWZpY2F0ZS5nZXQoKSwgTlVMTCkpKTsKKworICAgIHVpbnQzMl90IHRs
c0Vycm9yczsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRsc0Vycm9ycykpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBjZXJ0aWZpY2F0ZUluZm8ubV90bHNFcnJvcnMgPSBzdGF0aWNfY2Fz
dDxHVGxzQ2VydGlmaWNhdGVGbGFncz4odGxzRXJyb3JzKTsKKworICAgIHJldHVybiB0cnVlOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9zb3VwL0NlcnRpZmljYXRlSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAv
Q2VydGlmaWNhdGVJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI1NThhYTE4MjFlODE4MjNmZGFkOTk2ZmM0
ZDlhMjE4MmRkMDhlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9z
b3VwL0NlcnRpZmljYXRlSW5mby5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29w
eXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIENlcnRpZmljYXRlSW5mb19oCisjZGVmaW5lIENlcnRp
ZmljYXRlSW5mb19oCisKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNpbmNsdWRlIDx3dGYv
Z29iamVjdC9HUmVmUHRyLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50
RGVjb2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDZXJ0aWZpY2F0ZUluZm8geworcHVibGljOgorICAg
IENlcnRpZmljYXRlSW5mbygpOworICAgIGV4cGxpY2l0IENlcnRpZmljYXRlSW5mbyhjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgZXhwbGljaXQgQ2VydGlmaWNhdGVJbmZv
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKyAgICBleHBsaWNpdCBDZXJ0aWZpY2F0
ZUluZm8oR1Rsc0NlcnRpZmljYXRlKiwgR1Rsc0NlcnRpZmljYXRlRmxhZ3MpOworICAgIH5DZXJ0
aWZpY2F0ZUluZm8oKTsKKworICAgIEdUbHNDZXJ0aWZpY2F0ZSogY2VydGlmaWNhdGUoKSBjb25z
dCB7IHJldHVybiBtX2NlcnRpZmljYXRlLmdldCgpOyB9CisgICAgR1Rsc0NlcnRpZmljYXRlRmxh
Z3MgdGxzRXJyb3JzKCkgY29uc3QgeyByZXR1cm4gbV90bHNFcnJvcnM7IH0KKworICAgIHZvaWQg
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBib29s
IGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBDZXJ0aWZpY2F0ZUluZm8mKTsKKwor
cHJpdmF0ZToKKyAgICBHUmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4gbV9jZXJ0aWZpY2F0ZTsKKyAg
ICBHVGxzQ2VydGlmaWNhdGVGbGFncyBtX3Rsc0Vycm9yczsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gQ2VydGlmaWNhdGVJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjVjZTRlZmQ1ZWYwZDEzNGJhMjZkZDdjOGM5MWI0NjQ4
OGMxNjdiMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSwxMTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJ
Z2FsaWEgUy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCIKLQotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgot
I2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgotI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIK
LSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KLQotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1QbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mbzo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKQotICAgIDogbV90bHNFcnJvcnMoc3Rh
dGljX2Nhc3Q8R1Rsc0NlcnRpZmljYXRlRmxhZ3M+KDApKQotewotfQotCi1QbGF0Zm9ybUNlcnRp
ZmljYXRlSW5mbzo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCi0gICAgOiBtX2NlcnRpZmljYXRlKHJlc3BvbnNlLnNvdXBNZXNzYWdlQ2Vy
dGlmaWNhdGUoKSkKLSAgICAsIG1fdGxzRXJyb3JzKHJlc3BvbnNlLnNvdXBNZXNzYWdlVExTRXJy
b3JzKCkpCi17Ci19Ci0KLVBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOjpQbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mbyhjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQotICAgIDogbV9jZXJ0
aWZpY2F0ZShyZXNvdXJjZUVycm9yLmNlcnRpZmljYXRlKCkpCi0gICAgLCBtX3Rsc0Vycm9ycyhz
dGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4ocmVzb3VyY2VFcnJvci50bHNFcnJvcnMo
KSkpCi17Ci19Ci0KLVBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOjpQbGF0Zm9ybUNlcnRpZmljYXRl
SW5mbyhHVGxzQ2VydGlmaWNhdGUqIGNlcnRpZmljYXRlLCBHVGxzQ2VydGlmaWNhdGVGbGFncyB0
bHNFcnJvcnMpCi0gICAgOiBtX2NlcnRpZmljYXRlKGNlcnRpZmljYXRlKQotICAgICwgbV90bHNF
cnJvcnModGxzRXJyb3JzKQotewotfQotCi1QbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6flBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvKCkKLXsKLX0KLQotdm9pZCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5m
bzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAg
ICBpZiAoIW1fY2VydGlmaWNhdGUpIHsKLSAgICAgICAgZW5jb2RlciA8PCBmYWxzZTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIEdCeXRlQXJyYXkqIGNlcnRpZmljYXRlRGF0YSA9IDA7
Ci0gICAgZ19vYmplY3RfZ2V0KEdfT0JKRUNUKG1fY2VydGlmaWNhdGUuZ2V0KCkpLCAiY2VydGlm
aWNhdGUiLCAmY2VydGlmaWNhdGVEYXRhLCBOVUxMKTsKLSAgICBpZiAoIWNlcnRpZmljYXRlRGF0
YSkgewotICAgICAgICBlbmNvZGVyIDw8IGZhbHNlOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgZW5jb2RlciA8PCB0cnVlOwotICAgIEdSZWZQdHI8R0J5dGVBcnJheT4gY2VydGlmaWNh
dGUgPSBhZG9wdEdSZWYoY2VydGlmaWNhdGVEYXRhKTsKLSAgICBlbmNvZGVyLmVuY29kZVZhcmlh
YmxlTGVuZ3RoQnl0ZUFycmF5KENvcmVJUEM6OkRhdGFSZWZlcmVuY2UoY2VydGlmaWNhdGUtPmRh
dGEsIGNlcnRpZmljYXRlLT5sZW4pKTsKLSAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQz
Ml90PihtX3Rsc0Vycm9ycyk7Ci19Ci0KLWJvb2wgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFBsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCi17Ci0gICAgYm9vbCBoYXNDZXJ0aWZpY2F0ZTsKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc0NlcnRpZmljYXRlKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgaWYgKCFoYXNDZXJ0aWZpY2F0ZSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0K
LSAgICBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlIGNlcnRpZmljYXRlRGF0YVJlZmVyZW5jZTsKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoY2VydGlmaWNhdGVE
YXRhUmVmZXJlbmNlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgR0J5dGVBcnJheSog
Y2VydGlmaWNhdGVEYXRhID0gZ19ieXRlX2FycmF5X3NpemVkX25ldyhjZXJ0aWZpY2F0ZURhdGFS
ZWZlcmVuY2Uuc2l6ZSgpKTsKLSAgICBjZXJ0aWZpY2F0ZURhdGEgPSBnX2J5dGVfYXJyYXlfYXBw
ZW5kKGNlcnRpZmljYXRlRGF0YSwgY2VydGlmaWNhdGVEYXRhUmVmZXJlbmNlLmRhdGEoKSwgY2Vy
dGlmaWNhdGVEYXRhUmVmZXJlbmNlLnNpemUoKSk7Ci0gICAgR1JlZlB0cjxHQnl0ZUFycmF5PiBj
ZXJ0aWZpY2F0ZSA9IGFkb3B0R1JlZihjZXJ0aWZpY2F0ZURhdGEpOwotCi0gICAgR1Rsc0JhY2tl
bmQqIGJhY2tlbmQgPSBnX3Rsc19iYWNrZW5kX2dldF9kZWZhdWx0KCk7Ci0gICAgY2VydGlmaWNh
dGVJbmZvLm1fY2VydGlmaWNhdGUgPSBhZG9wdEdSZWYoR19UTFNfQ0VSVElGSUNBVEUoZ19pbml0
YWJsZV9uZXcoZ190bHNfYmFja2VuZF9nZXRfY2VydGlmaWNhdGVfdHlwZShiYWNrZW5kKSwgMCwg
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiY2VydGlmaWNhdGUiLCBjZXJ0aWZpY2F0ZS5nZXQo
KSwgTlVMTCkpKTsKLQotICAgIHVpbnQzMl90IHRsc0Vycm9yczsKLSAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHRsc0Vycm9ycykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjZXJ0aWZpY2F0
ZUluZm8ubV90bHNFcnJvcnMgPSBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4odGxz
RXJyb3JzKTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRl
SW5mby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmYxMjBjN2EyMWZlNzk0MzA0
NTVmZGM1ODk2OGZmYjRhMTg5ZjAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFBvcnRpb25zIENv
cHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mb19oCi0jZGVm
aW5lIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvX2gKLQotI2luY2x1ZGUgPGxpYnNvdXAvc291cC5o
PgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLQotbmFtZXNwYWNlIENvcmVJUEMg
ewotY2xhc3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3MgQXJndW1lbnRFbmNvZGVyOwotfQotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBSZXNvdXJjZUVycm9yOwotY2xhc3MgUmVzb3VyY2VS
ZXNwb25zZTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFBsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvIHsKLXB1YmxpYzoKLSAgICBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpOwotICAg
IGV4cGxpY2l0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmKTsKLSAgICBleHBsaWNpdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7Ci0gICAgZXhwbGljaXQgUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8oR1Rsc0NlcnRpZmljYXRlKiwgR1Rsc0NlcnRpZmljYXRlRmxhZ3MpOwotICAgIH5QbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbygpOwotCi0gICAgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2VydGlmaWNhdGUuZ2V0KCk7IH0KLSAgICBHVGxzQ2VydGlm
aWNhdGVGbGFncyB0bHNFcnJvcnMoKSBjb25zdCB7IHJldHVybiBtX3Rsc0Vycm9yczsgfQotCi0g
ICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3Rh
dGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFBsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvJik7Ci0KLXByaXZhdGU6Ci0gICAgR1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+IG1f
Y2VydGlmaWNhdGU7Ci0gICAgR1Rsc0NlcnRpZmljYXRlRmxhZ3MgbV90bHNFcnJvcnM7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1
bWVudENvZGVyc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzU291cC5jcHAKaW5kZXggZGM0ZTExOTE3NTdlY2UxNzVhZDQ4NWE3YWE3MjI1
MmZhZmFlODg0Ni4uNTRjOTVmNWIwNDU1MjhkZTRmNTM4Y2Y2OTRhYWQ5MWJlODRjY2ZjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
U291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzU291cC5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKIAotI2luY2x1ZGUgIlBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvLmgiCisjaW5jbHVkZSAiQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVl
c3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KQEAgLTcwLDEyICs3
MCwxMiBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRlY29kZVBsYXRm
b3JtRGF0YShBcmd1bWVudERlY29kZXImIGRlY29kZQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVz
b3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7Ci0gICAgZW5jb2RlciA8PCBQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhyZXNvdXJjZUVycm9yKTsKKyAgICBlbmNvZGVyIDw8IENl
cnRpZmljYXRlSW5mbyhyZXNvdXJjZUVycm9yKTsKIH0KIAogYm9vbCBBcmd1bWVudENvZGVyPFJl
c291cmNlRXJyb3I+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQogewotICAgIFBsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvIGNlcnRpZmljYXRlSW5mbzsKKyAgICBDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJ
bmZvOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY2VydGlmaWNhdGVJbmZvKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRDZXJ0aWZpY2F0ZUluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0Q2VydGlmaWNhdGVJbmZvLmNwcAppbmRleCA1NGIxMDQwNDU5YjBmMDAz
YWUxNjA3Y2JmZDJiZjgzMGE0ZWY5ODAwLi4xMmRmMWFhY2E4MDI1NzlmYjg1YTYzZDBmMDFhNWY2
OTAxNWYwYjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRDZXJ0aWZpY2F0ZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdENlcnRpZmljYXRlSW5mby5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIEdfREVGSU5FX0JPWEVEX1RZUEUoV2ViS2l0Q2VydGlmaWNh
dGVJbmZvLCB3ZWJraXRfY2VydGlmaWNhdGVfaW5mbywgd2Via2l0X2NlcnRpZmljYXRlX2luZm9f
Y29weSwgd2Via2l0X2NlcnRpZmljYXRlX2luZm9fZnJlZSkKIAotY29uc3QgUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8mIHdlYmtpdENlcnRpZmljYXRlSW5mb0dldENlcnRpZmljYXRlSW5mbyhXZWJL
aXRDZXJ0aWZpY2F0ZUluZm8qIGluZm8pCitjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIHdlYmtpdENl
cnRpZmljYXRlSW5mb0dldENlcnRpZmljYXRlSW5mbyhXZWJLaXRDZXJ0aWZpY2F0ZUluZm8qIGlu
Zm8pCiB7CiAgICAgQVNTRVJUKGluZm8pOwogICAgIHJldHVybiBpbmZvLT5jZXJ0aWZpY2F0ZUlu
Zm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRD
ZXJ0aWZpY2F0ZUluZm9Qcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRDZXJ0aWZpY2F0ZUluZm9Qcml2YXRlLmgKaW5kZXggNjZkMjZhNDAxMWI0MTU2YTY0
YTBiMDNmYTQyYmI4ZGNiODY0ODI2Mi4uNmZkYjI0ZjY5YmRlNDhlMTA5MGUyN2ZlMDlmZDY2NzYw
MzgyNzE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0Q2VydGlmaWNhdGVJbmZvUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdENlcnRpZmljYXRlSW5mb1ByaXZhdGUuaApAQCAtMjAsNyArMjAsNyBA
QAogI2lmbmRlZiBXZWJLaXRDZXJ0aWZpY2F0ZUluZm9Qcml2YXRlX2gKICNkZWZpbmUgV2ViS2l0
Q2VydGlmaWNhdGVJbmZvUHJpdmF0ZV9oCiAKLSNpbmNsdWRlICJQbGF0Zm9ybUNlcnRpZmljYXRl
SW5mby5oIgorI2luY2x1ZGUgIkNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIldlYktpdENl
cnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKIApAQCAtMzUsOSAr
MzUsOSBAQCBzdHJ1Y3QgX1dlYktpdENlcnRpZmljYXRlSW5mbyB7CiAgICAgewogICAgIH0KIAot
ICAgIFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvOworICAg
IFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlSW5mbzsKIH07CiAKLWNvbnN0IFdl
YktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIHdlYmtpdENlcnRpZmljYXRlSW5mb0dldENl
cnRpZmljYXRlSW5mbyhXZWJLaXRDZXJ0aWZpY2F0ZUluZm8qKTsKK2NvbnN0IFdlYktpdDo6Q2Vy
dGlmaWNhdGVJbmZvJiB3ZWJraXRDZXJ0aWZpY2F0ZUluZm9HZXRDZXJ0aWZpY2F0ZUluZm8oV2Vi
S2l0Q2VydGlmaWNhdGVJbmZvKik7CiAKICNlbmRpZiAvLyBXZWJLaXRDZXJ0aWZpY2F0ZUluZm9Q
cml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlldy5jcHAKaW5kZXggOTgxMGQ4NzExYzE0OGFjMjA2MDE0ZWQ5MjkyZmZiNzAwZjU1NTRl
Ni4uYjU4ODA0MGY4MDk1MDdlMDc5Njk1YmNhYjZlNzcwMjNiZjA5NWE0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTIx
LDggKzIxLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3
LmgiCiAKKyNpbmNsdWRlICJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJJbWFnZU9wdGlv
bnMuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIldl
YkNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51SXRlbS5oIgogI2lu
Y2x1ZGUgIldlYkNvbnRleHRNZW51SXRlbURhdGEuaCIKQEAgLTMwMjgsNyArMzAyOCw3IEBAIGdi
b29sZWFuIHdlYmtpdF93ZWJfdmlld19nZXRfdGxzX2luZm8oV2ViS2l0V2ViVmlldyogd2ViVmll
dywgR1Rsc0NlcnRpZmljYXRlKioKICAgICBpZiAoIW1haW5GcmFtZSkKICAgICAgICAgcmV0dXJu
IEZBTFNFOwogCi0gICAgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRl
SW5mbyA9IG1haW5GcmFtZS0+Y2VydGlmaWNhdGVJbmZvKCktPnBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvKCk7CisgICAgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8gPSBtYWlu
RnJhbWUtPmNlcnRpZmljYXRlSW5mbygpLT5jZXJ0aWZpY2F0ZUluZm8oKTsKICAgICBpZiAoY2Vy
dGlmaWNhdGUpCiAgICAgICAgICpjZXJ0aWZpY2F0ZSA9IGNlcnRpZmljYXRlSW5mby5jZXJ0aWZp
Y2F0ZSgpOwogICAgIGlmIChlcnJvcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VQcm94eS5jcHAKaW5kZXggOWY2NDg4NWFlODg0ODRkYzc0MTUxNTcyOWY1NTRiOWY1MjZh
NWRkNS4uOGQyMGM3NjY4ZTI1ZTU1Y2JjOGU5MWFjMTA3MTlmZWM3NjM3NDdlMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcApAQCAtNjYsNyArNjYsNyBA
QCB2b2lkIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk6OnVzZUNyZWRlbnRpYWwoV2ViQ3Jl
ZGVudGlhbCogY3JlZGVudGlhbCkKICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OkNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWxGb3JDaGFs
bGVuZ2UobV9jaGFsbGVuZ2VJRCksIDApOwogICAgIGVsc2UgewogICAgICAgICBXZWJDZXJ0aWZp
Y2F0ZUluZm8qIGNlcnRpZmljYXRlSW5mbyA9IGNyZWRlbnRpYWwtPmNlcnRpZmljYXRlSW5mbygp
OwotICAgICAgICBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyBwbGF0Zm9ybUluZm8gPSBjZXJ0aWZp
Y2F0ZUluZm8gPyBjZXJ0aWZpY2F0ZUluZm8tPnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgOiBQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpOworICAgICAgICBDZXJ0aWZpY2F0ZUluZm8gcGxhdGZv
cm1JbmZvID0gY2VydGlmaWNhdGVJbmZvID8gY2VydGlmaWNhdGVJbmZvLT5jZXJ0aWZpY2F0ZUlu
Zm8oKSA6IENlcnRpZmljYXRlSW5mbygpOwogICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6VXNlQ3JlZGVudGlhbEZvckNoYWxsZW5nZSht
X2NoYWxsZW5nZUlELCBjcmVkZW50aWFsLT5jb3JlKCksIHBsYXRmb3JtSW5mbyksIDApOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IGRjZDdhMTYy
ZjMwOThmNTA3OTI2OWZiZDg4NWMzNjYxZjYyMWYwZDAuLmJiY2EyOTVjYTU5MWExNzMzNDliMWQz
NDZjMjFmMzU1Mzg5NDMwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAKQEAgLTEwOTYsMTIgKzEwOTYsMTIgQEAgdm9pZCBXZWJDb250ZXh0OjphbGxvd1NwZWNpZmlj
SFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ2VydGlmaWNhdGVJbmZvKgogewogI2lm
IEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKG1fdXNlc05ldHdvcmtQcm9jZXNzICYm
IG1fbmV0d29ya1Byb2Nlc3MpIHsKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9z
dChjZXJ0aWZpY2F0ZS0+cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSwgaG9zdCksIDApOworICAg
ICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QWxs
b3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNlcnRpZmljYXRlLT5jZXJ0aWZpY2F0
ZUluZm8oKSwgaG9zdCksIDApOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2Vsc2UKICNpZiBV
U0UoU09VUCkKLSAgICBtX3Byb2Nlc3Nlc1swXS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6
QWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNlcnRpZmljYXRlLT5wbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbygpLCBob3N0KSwgMCk7CisgICAgbV9wcm9jZXNzZXNbMF0tPnNlbmQo
TWVzc2FnZXM6OldlYlByb2Nlc3M6OkFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9z
dChjZXJ0aWZpY2F0ZS0+Y2VydGlmaWNhdGVJbmZvKCksIGhvc3QpLCAwKTsKICAgICByZXR1cm47
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShjZXJ0aWZpY2F0ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKaW5kZXggNDcyNjZlNTcxNDQ3Y2JiYzA1NzM3YTRh
ZWQyNjViMzQyYzE4Zjc0MC4uNjczZTdlYzk4YTA0NDUwNDcwMjQwNDVhNmViMmJmZjc0NjkwZGRj
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcApAQCAtMTMx
LDcgKzEzMSw3IEBAIHZvaWQgV2ViRnJhbWVQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZCgp
CiAgICAgbV9mcmFtZUxvYWRTdGF0ZS5kaWRGYWlsUHJvdmlzaW9uYWxMb2FkKCk7CiB9CiAKLXZv
aWQgV2ViRnJhbWVQcm94eTo6ZGlkQ29tbWl0TG9hZChjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBl
LCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQordm9pZCBX
ZWJGcmFtZVByb3h5OjpkaWRDb21taXRMb2FkKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNv
bnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogewogICAgIG1fZnJhbWVMb2Fk
U3RhdGUuZGlkQ29tbWl0TG9hZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRnJhbWVQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1l
UHJveHkuaAppbmRleCAwODg1MGU4NjFiOWQ3Y2I0ZTg4N2UxN2Q5YzA4NWQ3NDJkNTJmM2UyLi43
Yjg1ZmYyMDM2MDJjYjVhY2IzMTQ2YTNmNzlhNTIzZDQ3MGQwOTg4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIENv
cmVJUEMgewogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm87CitjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBXZWJDZXJ0aWZpY2F0ZUluZm87
CiBjbGFzcyBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHk7CiBjbGFzcyBXZWJGcmFtZVBv
bGljeUxpc3RlbmVyUHJveHk7CkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIGRpZFJl
Y2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZChjb25zdCBTdHJpbmcmIHVybCk7
CiAgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkKCk7Ci0gICAgdm9pZCBkaWRDb21taXRM
b2FkKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvJik7CisgICAgdm9pZCBkaWRDb21taXRMb2FkKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUs
IGNvbnN0IENlcnRpZmljYXRlSW5mbyYpOwogICAgIHZvaWQgZGlkRmluaXNoTG9hZCgpOwogICAg
IHZvaWQgZGlkRmFpbExvYWQoKTsKICAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb24o
Y29uc3QgU3RyaW5nJik7IC8vIGVnLiBhbmNob3IgbmF2aWdhdGlvbiwgc2Vzc2lvbiBzdGF0ZSBj
aGFuZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDZl
NDdlY2M2YTEzODgxYmM0NTRmZjUzOGUyZTRmODg4Y2M1MDMzYTcuLjgyZWNhMDlkNTY1MjU3MDdm
NjcyNDg5ZGVlZjA3ZWU1ZjIxMzE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC0yMjA1LDcgKzIyMDUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xl
YXJMb2FkRGVwZW5kZW50Q2FsbGJhY2tzKCkKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgdWludDMyX3Qgb3BhcXVlRnJhbWVMb2FkVHlwZSwgY29uc3QgUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IG9wYXF1ZUZyYW1lTG9h
ZFR5cGUsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJE
YXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNl
ckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggZTI0N2JmN2NjMDA5ZDNmMWU3NWM1ZDhkZTUzYWQzMmRjMmFkMmM0My4uMzVk
MGJlOGNkOTVkNTNjYmVjMGMyMmViZjhlYjM5MmVlNGMxMmQyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTI0LDExICsxMjQsMTEgQEAgdHlwZWRlZiBHdGtX
aWRnZXQqIFBsYXRmb3JtV2lkZ2V0OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgQ2Vy
dGlmaWNhdGVJbmZvOwogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2
ZVdlYk1vdXNlRXZlbnQ7CiBjbGFzcyBOYXRpdmVXZWJXaGVlbEV2ZW50OwogY2xhc3MgUGFnZUNs
aWVudDsKLWNsYXNzIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgU3RyaW5nUGFpclZl
Y3RvcjsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW07CkBAIC03NzIsNyArNzcyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmws
IGNvbnN0IFN0cmluZyYgdW5yZWFjaGFibGVVUkwsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CiAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOwogICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOwotICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0
IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAg
ICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBDZXJ0aWZpY2F0ZUlu
Zm8mLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkRmluaXNoRG9jdW1l
bnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
KTsKICAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDJkZDViOTcxZTlhMDhkMzRiNDU1N2NkYjU3MjI0MTVmYjky
NjA4MGMuLmFjYWY3MWFlZWJhZThiMTY4YmEzM2Q0YzFjYzAxMjZmMDU2MGJiZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MTExLDcgKzExMSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkQ3JlYXRl
U3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCkKIAogICAgICMgRnJhbWUgbG9hZCBtZXNzYWdlcwot
ICAgIERpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBt
aW1lVHlwZSwgdWludDMyX3QgbG9hZFR5cGUsIFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUlu
Zm8gY2VydGlmaWNhdGVJbmZvLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNv
ZGVyIHVzZXJEYXRhKSBWYXJpYWRpYworICAgIERpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBXVEY6OlN0cmluZyBtaW1lVHlwZSwgdWludDMyX3QgbG9hZFR5cGUsIFdlYktp
dDo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlSW5mbywgV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgVmFyaWFkaWMKICAgICBEaWRGYWlsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdl
YktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGlj
CiAgICAgRGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdl
YkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVz
c2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGljCiAgICAgRGlkRmluaXNoRG9jdW1lbnRMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNz
YWdlRW5jb2RlciB1c2VyRGF0YSkgVmFyaWFkaWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxNGJlM2FkYjY4MDkzOGEzNWRmOTQ5
MmQ5ODRjMWY1YTI3MDQ2NmU2Li42NGE0ZmZhZDI1NDNhZTc0NDc4M2RiN2FiYTJhZDAyMmZmOWIw
YmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xMTI4LDggKzExMjgsOCBAQAogCQlCQ0YxODYzODE2N0QwNzFFMDBBMUE4NUEg
LyogQ2FjaGVNb2RlbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0YxODYzNzE2N0QwNzFFMDBBMUE4NUEgLyogQ2FjaGVNb2RlbC5jcHAgKi87IH07
CiAJCUJDRjRERTIzMTY4RTRCRDUwMEM5NEFGQyAvKiBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjRERTIy
MTY4RTRCRDUwMEM5NEFGQyAvKiBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaCAqLzsgfTsKIAkJ
QkNGNERFMjUxNjhGQTQ0ODAwQzk0QUZDIC8qIFdlYkNvbnRleHRTdXBwbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y0REUyNDE2OEZBNDQ4
MDBDOTRBRkMgLyogV2ViQ29udGV4dFN1cHBsZW1lbnQuaCAqLzsgfTsKLQkJQkNGNTA1RTcxMjQz
MDQ3QjAwNTk1NUFFIC8qIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y1MDVFNTEyNDMwNDdCMDA1OTU1QUUg
LyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCAqLzsgfTsKLQkJQkNGNTA1RTgxMjQzMDQ3QjAw
NTk1NUFFIC8qIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNTA1RTYxMjQzMDQ3QjAwNTk1NUFFIC8qIFBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1tICovOyB9OworCQlCQ0Y1MDVFNzEyNDMwNDdCMDA1OTU1
QUUgLyogQ2VydGlmaWNhdGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0Y1MDVFNTEyNDMwNDdCMDA1OTU1QUUgLyogQ2VydGlmaWNhdGVJbmZv
LmggKi87IH07CisJCUJDRjUwNUU4MTI0MzA0N0IwMDU5NTVBRSAvKiBDZXJ0aWZpY2F0ZUluZm8u
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y1MDVF
NjEyNDMwNDdCMDA1OTU1QUUgLyogQ2VydGlmaWNhdGVJbmZvLm1tICovOyB9OwogCQlCQ0Y1MDcy
ODEyNDMyOUFBMDA1OTU1QUUgLyogV2ViQ2VydGlmaWNhdGVJbmZvLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y1MDcyNjEyNDMyOUFBMDA1OTU1QUUg
LyogV2ViQ2VydGlmaWNhdGVJbmZvLmggKi87IH07CiAJCUJDRjY5Rjg2MTE3NkNENkYwMDQ3MUE1
MiAvKiBXZWJIaXN0b3J5Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDRjY5Rjg0MTE3NkNENkYwMDQ3MUE1MiAvKiBXZWJIaXN0b3J5Q2xp
ZW50LmNwcCAqLzsgfTsKIAkJQkNGNjlGODcxMTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3RvcnlD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RjY5Rjg1MTE3NkNENkYwMDQ3MUE1MiAvKiBXZWJIaXN0b3J5Q2xpZW50LmggKi87IH07CkBAIC0y
NjkwLDggKzI2OTAsOCBAQAogCQlCQ0YxODYzNzE2N0QwNzFFMDBBMUE4NUEgLyogQ2FjaGVNb2Rl
bC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZU1vZGVsLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGNERFMjIxNjhFNEJENTAwQzk0QUZD
IC8qIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaDsgcGF0aCA9IE5ldHdvcmsvTmV0d29y
a1Byb2Nlc3NTdXBwbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRjRE
RTI0MTY4RkE0NDgwMEM5NEFGQyAvKiBXZWJDb250ZXh0U3VwcGxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0U3VwcGxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlCQ0Y1MDVFNTEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNGNTA1
RTYxMjQzMDQ3QjAwNTk1NUFFIC8qIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDRjUwNUU1MTI0MzA0N0IwMDU5NTVB
RSAvKiBDZXJ0aWZpY2F0ZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q2VydGlmaWNhdGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDRjUwNUU2
MTI0MzA0N0IwMDU5NTVBRSAvKiBDZXJ0aWZpY2F0ZUluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDZXJ0aWZpY2F0ZUluZm8ubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDRjUwNjg0MTI0MzE4NjEwMDU5NTVBRSAvKiBTZWN1cml0eS5mcmFt
ZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3
cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IFNlY3VyaXR5LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1NlY3VyaXR5LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8
YWJzb2x1dGU+IjsgfTsKIAkJQkNGNTA3MjYxMjQzMjlBQTAwNTk1NUFFIC8qIFdlYkNlcnRpZmlj
YXRlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDZXJ0aWZpY2F0
ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGNjlGODQxMTc2Q0Q2RjAw
NDcxQTUyIC8qIFdlYkhpc3RvcnlDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViSGlzdG9yeUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC00NjM1LDggKzQ2MzUsOCBAQAogCQkJCUM1NzRBNTgwMTJFNjY2ODEwMDJERkU5OCAv
KiBQYXN0ZWJvYXJkVHlwZXMubW0gKi8sCiAJCQkJRTE5NTgyRDIxNTNDQkZENzAwQjYwODc1IC8q
IFBERktpdEltcG9ydHMuaCAqLywKIAkJCQlFMTk1ODJENDE1M0NDMDUzMDBCNjA4NzUgLyogUERG
S2l0SW1wb3J0cy5tbSAqLywKLQkJCQlCQ0Y1MDVFNTEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8uaCAqLywKLQkJCQlCQ0Y1MDVFNjEyNDMwNDdCMDA1OTU1QUUgLyog
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0gKi8sCisJCQkJQkNGNTA1RTUxMjQzMDQ3QjAwNTk1
NUFFIC8qIENlcnRpZmljYXRlSW5mby5oICovLAorCQkJCUJDRjUwNUU2MTI0MzA0N0IwMDU5NTVB
RSAvKiBDZXJ0aWZpY2F0ZUluZm8ubW0gKi8sCiAJCQkJRTFDQzFCOEYxMkQ3RUFERjAwNjI1ODM4
IC8qIFByaW50SW5mb01hYy5tbSAqLywKIAkJCQkyRDQ3QjU2QTE4MTA3MTRFMDAzQTNBRUUgLyog
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gKi8sCiAJCQkJMkQ0N0I1NkIxODEwNzE0RTAwM0Ez
QUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggKi8sCkBAIC01NjI1LDcgKzU2MjUsNyBA
QAogCQkJCUM1NzRBNTgxMTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxOTU4MkQzMTUzQ0JGRDcwMEI2MDg3NSAvKiBQREZLaXRJbXBvcnRz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUZDQjE4OTE3QkJGRTAzMDAzOTRDRDggLyogU3luY2hy
b25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlCQ0Y1MDVFNzEy
NDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJzICov
LAorCQkJCUJDRjUwNUU3MTI0MzA0N0IwMDU5NTVBRSAvKiBDZXJ0aWZpY2F0ZUluZm8uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBRTAwRDRGMTgyRDZGNTAwMDA4N0RENyAvKiBXS0Jyb3dzaW5nQ29u
dGV4dEhhbmRsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0M0M0FCQjEyN0I5NURD
MDAzMTdGMTYgLyogUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Qzg3ODBGQzExNjFDMkI4MDBDQzI3NjggLyogUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIGlu
IEhlYWRlcnMgKi8sCkBAIC02OTM4LDcgKzY5MzgsNyBAQAogCQkJCTJEMkFERjEwMTYzNjREODIw
MDE5N0U0NyAvKiBQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQ0MjlCRkQxNzIxRTJDNzAwRUM2ODFGIC8qIFBERlBsdWdpblBhc3N3b3JkRmllbGQubW0g
aW4gU291cmNlcyAqLywKIAkJCQkyRDJBREYwOTE2MzYyREQ1MDAxOTdFNDcgLyogUERGUGx1Z2lu
VGV4dEFubm90YXRpb24ubW0gaW4gU291cmNlcyAqLywKLQkJCQlCQ0Y1MDVFODEyNDMwNDdCMDA1
OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0gaW4gU291cmNlcyAqLywKKwkJCQlC
Q0Y1MDVFODEyNDMwNDdCMDA1OTU1QUUgLyogQ2VydGlmaWNhdGVJbmZvLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkNDNDNBQkExMjdCOTVEQzAwMzE3RjE2IC8qIFBsYXRmb3JtUG9wdXBNZW51RGF0
YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTZGQjdEMjExRTY1MUUyMDBEQjEzNzEgLyogUGx1
Z2luLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTY3RTBDMTY1QjJBOTkwMDZDQkE2NiAvKiBQ
bHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IGQ1NzUxNzMyMWYyNmMwODM1NzBmODJkYWUyMGUwZWU5YjliZmU4YmYuLmE1Yjg0NDljNDc3
MDZkY2Q1NTg2NDI1ZDUwM2NkMTdiMGY0ZTNkZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtMjgsMTEg
KzI4LDExIEBACiAKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogCisjaW5jbHVkZSAiQ2Vy
dGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRl
ICJOZXR3b3JrUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5j
bHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgpAQCAtOTksNyArOTks
NyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRTZW5kRGF0YSh1aW50NjRfdCBieXRlc1Nl
bnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlUwogICAgIG1fY29yZUxvYWRlci0+ZGlkU2VuZERh
dGEoYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpOwogfQogCi12b2lkIFdlYlJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgY2Vy
dGlmaWNhdGVJbmZvLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdl
KQordm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmlj
YXRlSW5mbyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgQ2VydGlmaWNh
dGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZU1lc3NhZ2UpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8gZm9yICclcycu
IFN0YXR1cyAlZC4iLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCks
IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCmluZGV4IDA4MTJjOTlhZjU4
ZDhkNWE2OTI0NDVhOTljZGIzZmJmMGU0YmM5OWMuLmZkMmVmYTJhOTllOTk2MWY1ZGI1OTFjMGVj
MDk4Y2UzODU2Mjc1MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFJlc291
cmNlUmVzcG9uc2U7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBQbGF0Zm9ybUNlcnRp
ZmljYXRlSW5mbzsKK2NsYXNzIENlcnRpZmljYXRlSW5mbzsKIHR5cGVkZWYgdWludDY0X3QgUmVz
b3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xhc3MgV2ViUmVzb3VyY2VMb2FkZXIgOiBwdWJsaWMg
UmVmQ291bnRlZDxXZWJSZXNvdXJjZUxvYWRlcj4sIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdlU2Vu
ZGVyIHsKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgd2lsbFNlbmRSZXF1
ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgZGlkU2VuZERhdGEodWlu
dDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpOwotICAgIHZvaWQg
ZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mLCBib29sIG5lZWRz
Q29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVS
ZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZU1lc3NhZ2UpOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgQ29yZUlQQzo6
RGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOwogICAgIHZvaWQgZGlk
RmluaXNoUmVzb3VyY2VMb2FkKGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICB2b2lkIGRpZEZhaWxS
ZXNvdXJjZUxvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLm1lc3NhZ2VzLmluCmluZGV4IDdiNDA0NWU2NjlhNGY5ZWZkZDU2MmRlMWEyOTg3NDJhOGFl
ZjI2YWYuLjk4YTg3OGZkZjAxNWUxNjA0OWE2MTA4N2Y5MmMzNmNjNjAyZjFhZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KQEAgLTI5LDcgKzI5LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UmVzb3VyY2VMb2FkZXIgTGVnYWN5UmVjZWl2ZXIgewogICAgIC8vIEZJWE1FIChOZXR3b3JrUHJv
Y2Vzcyk6IFdlJ2xsIG5lZWQgbXVjaCBtb3JlIGdyYW51bGFyaXR5IGZvciByZXNwb25zZSBtZXNz
YWdlcy4KICAgICBXaWxsU2VuZFJlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSkKICAgICBEaWRT
ZW5kRGF0YSh1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2VudCkK
LSAgICBEaWRSZWNlaXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8gY2Vy
dGlmaWNhdGVJbmZvLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdl
KQorICAgIERpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8oV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNh
dGVJbmZvLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQogICAg
IERpZFJlY2VpdmVEYXRhKENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNv
ZGVkRGF0YUxlbmd0aCkKICAgICBEaWRGaW5pc2hSZXNvdXJjZUxvYWQoZG91YmxlIGZpbmlzaFRp
bWUpCiAgICAgRGlkRmFpbFJlc291cmNlTG9hZChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9y
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBmOTdkNTgyNjQyMDNmYmQ2
YzdhMDlmNTdkNzQ2ZDg0NTM3MzIxYTIxLi41OWZmOGQ4OTQwZWFmYTE5NGMwZjcxOGQ5YzkxNmY2
ODg1MTIyMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMjcsMTMg
KzI3LDEzIEBACiAjaW5jbHVkZSAiV2ViRnJhbWVMb2FkZXJDbGllbnQuaCIKIAogI2luY2x1ZGUg
IkF1dGhlbnRpY2F0aW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIkNlcnRpZmljYXRlSW5mby5oIgog
I2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgog
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUg
IkluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRC
dW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVz
c2FnZUNvZGVycy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5j
bHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdFByb3h5Lmgi
CiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lc3NhZ2VzLmgiCkBAIC00NDEsNyArNDQxLDcgQEAgdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKCkKIAogICAgIC8v
IE5vdGlmeSB0aGUgVUlQcm9jZXNzLgogCi0gICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWRDb21taXRMb2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCByZXNw
b25zZS5taW1lVHlwZSgpLCBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkubG9hZFR5cGUo
KSwgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ocmVzcG9uc2UpLCBJbmplY3RlZEJ1bmRsZVVzZXJN
ZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpKTsKKyAgICB3ZWJQYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkRpZENvbW1pdExvYWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlE
KCksIHJlc3BvbnNlLm1pbWVUeXBlKCksIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5s
b2FkVHlwZSgpLCBDZXJ0aWZpY2F0ZUluZm8ocmVzcG9uc2UpLCBJbmplY3RlZEJ1bmRsZVVzZXJN
ZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpKTsKIAogICAgIHdlYlBhZ2UtPmRpZENvbW1p
dExvYWQobV9mcmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmlu
ZGV4IDk2ZTRlYzhiMGRlYmU2Y2RkMzdiNmY3NjhmOGUxNWZmN2I1M2U5MDMuLjQ4ZmNjMzU0Y2Fk
NDM3ZDZjMTE1MDFkYjJhNzc5M2M4MGNjZWMyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCkBAIC03NCw3ICs3NCw3IEBAIGNsYXNzIE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbjsKIGNsYXNzIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjsKICNlbHNlCiAjaWYgVVNFKFNP
VVApCi1jbGFzcyBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzsKK2NsYXNzIENlcnRpZmljYXRlSW5m
bzsKICNlbmRpZgogI2VuZGlmCiAKQEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB1cGRhdGVBY3RpdmVQYWdlcygpOwogCiAjaWYgIUVOQUJMRShORVRXT1JLX1BST0NFU1MpICYm
IFVTRShTT1VQKQotICAgIHZvaWQgYWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0
KGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiwgY29uc3QgU3RyaW5nJiBob3N0KTsKKyAg
ICB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBDZXJ0aWZp
Y2F0ZUluZm8mLCBjb25zdCBTdHJpbmcmIGhvc3QpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
NTMyYjRjMmYxNTE3YTgwODRiYTI3ZjFmMTcyNzg3MTkyYzQzOTA5Yi4uYTA5ZmY1NjBjNGRkMTAz
ZTYzMTAxNGU4MDYxNmQ0MTk0YjZkODIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtODQsNiArODQsNiBAQCBtZXNzYWdlcyAt
PiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogCiAjaWYgIUVOQUJMRShORVRX
T1JLX1BST0NFU1MpICYmIFVTRShTT1VQKQotICAgIEFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmlj
YXRlRm9ySG9zdChXZWJLaXQ6OlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlLCBX
VEY6OlN0cmluZyBob3N0KQorICAgIEFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9z
dChXZWJLaXQ6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSwgV1RGOjpTdHJpbmcgaG9zdCkK
ICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dl
YlByb2Nlc3NTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQcm9j
ZXNzU291cC5jcHAKaW5kZXggNzljZjk3ZGFlOTJlZjNlMjAyMWM0OGJmMzY3MjNkZjdhOTk1YTUz
Ny4uYzBjMjA2YzUxMmY1ZTg2ZDc2OGY2N2RjYjdmMTUxN2VhN2U5ZjYxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCkBAIC0zMSw3
ICszMSw3IEBACiAjaW5jbHVkZSAiU2VjY29tcEZpbHRlcnNXZWJQcm9jZXNzRWZsLmgiCiAjZW5k
aWYKIAotI2luY2x1ZGUgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCisjaW5jbHVkZSAiQ2Vy
dGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJTb3VwUmVxdWVz
dE1hbmFnZXIuaCIKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldElnbm9y
ZVRMU0Vycm9ycyhib29sIGlnbm9yZVRMU0Vycm9ycykKIH0KIAogI2lmICFFTkFCTEUoTkVUV09S
S19QUk9DRVNTKQotdm9pZCBXZWJQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0
ZUZvckhvc3QoY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywg
Y29uc3QgU3RyaW5nJiBob3N0KQordm9pZCBXZWJQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFND
ZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8s
IGNvbnN0IFN0cmluZyYgaG9zdCkKIHsKICAgICBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c2V0
Q2xpZW50Q2VydGlmaWNhdGUoaG9zdCwgY2VydGlmaWNhdGVJbmZvLmNlcnRpZmljYXRlKCkpOwog
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217571</attachid>
            <date>2013-11-21 08:07:45 -0800</date>
            <delta_ts>2013-11-21 14:28:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124150-20131121080844.patch</filename>
            <type>text/plain</type>
            <size>75671</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTZjMDE0ZjJmNWY1NGE2
MTU3ODk3N2RhZjBmMjMyNTRmMThmNWFkMi4uZjM4OWYxZTQ0OGU5NjExY2EyOWIxNTQ4Zjc2NGQx
Njc1YTY2NmE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDEzLTExLTIxICBDc2Fi
YSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuYW1lIFBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvIHRvIENlcnRpZmljYXRlSW5mbworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MTUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0FzeW5jaHJvbm91c05ldHdvcmtMb2FkZXJDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpBc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50OjpkaWRS
ZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW06CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZv
ckhvc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdCk6CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAg
ICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogU2hhcmVkL0FQSS9jL21hYy9XS0Nl
cnRpZmljYXRlSW5mb01hYy5tbToKKyAgICAgICAgKFdLQ2VydGlmaWNhdGVJbmZvQ3JlYXRlV2l0
aENlcnRmaWNhdGVDaGFpbik6CisgICAgICAgIChXS0NlcnRpZmljYXRlSW5mb0dldENlcnRpZmlj
YXRlQ2hhaW4pOgorICAgICAgICAqIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnRy
eVVzZUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhl
bnRpY2F0aW9uTWFuYWdlcjo6dXNlQ3JlZGVudGlhbEZvckNoYWxsZW5nZSk6CisgICAgICAgICog
U2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oOgorICAgICAgICAq
IFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW46
CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL21hYy9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIubWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnRyeVVz
ZUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZSk6CisgICAgICAgICogU2hhcmVkL1VzZXJNZXNz
YWdlQ29kZXJzLmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZXNzYWdlRW5jb2Rlcjo6YmFzZUVu
Y29kZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZXNzYWdlRGVjb2Rlcjo6YmFzZURlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNlcnRp
ZmljYXRlSW5mbzo6Y2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2VydGlm
aWNhdGVJbmZvOjpXZWJDZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ2Vy
dGlmaWNhdGVJbmZvLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Bs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvLmguCisgICAgICAgIChXZWJLaXQ6OkNlcnRpZmljYXRlSW5m
bzo6Y2VydGlmaWNhdGVDaGFpbik6CisgICAgICAgICogU2hhcmVkL21hYy9DZXJ0aWZpY2F0ZUlu
Zm8ubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvLm1tLgorICAgICAgICAoV2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm86OkNlcnRp
ZmljYXRlSW5mbyk6CisgICAgICAgIChXZWJLaXQ6OkNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpDZXJ0aWZpY2F0ZUluZm86OmR1bXApOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoQ29yZUlQQzo6OjplbmNvZGVQbGF0Zm9y
bURhdGEpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAg
ICAqIFNoYXJlZC9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAuCisgICAgICAg
IChXZWJLaXQ6OkNlcnRpZmljYXRlSW5mbzo6Q2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKFdl
YktpdDo6Q2VydGlmaWNhdGVJbmZvOjp+Q2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKFdlYktp
dDo6Q2VydGlmaWNhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpDZXJ0aWZpY2F0
ZUluZm86OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mby5oLgorICAgICAgICAoV2ViS2l0OjpDZXJ0aWZpY2F0ZUluZm86OmNlcnRpZmljYXRl
KToKKyAgICAgICAgKFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvOjp0bHNFcnJvcnMpOgorICAgICAg
ICAqIFNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwOgorICAgICAgICAo
Q29yZUlQQzo6OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNv
ZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENlcnRp
ZmljYXRlSW5mby5jcHA6CisgICAgICAgICh3ZWJraXRDZXJ0aWZpY2F0ZUluZm9HZXRDZXJ0aWZp
Y2F0ZUluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENlcnRpZmljYXRl
SW5mb1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfdGxzX2luZm8pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTo6dXNlQ3Jl
ZGVudGlhbCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3Qp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVQcm94eTo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkZyYW1lUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVG
b3JIb3N0KToKKwogMjAxMy0xMS0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIG1vcmUgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNlcnZlckNvbm5lY3Rpb24g
Y29tbXVuaWNhdGlvbiBiZXR3ZWVuIFdlYiBhbmQgRGF0YWJhc2UgcHJvY2Vzc2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5ZGY5NGM3MWFhZjExOGJhMWQyZDk2MTljYTdkOWU3
NTYxMDBmNjJjLi45ZDE1ODVlYmMwZDFlOTI4MTU1MGI3ODM3OGIzNTQ0ZTA1NDdmOTY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQ4MSw4ICs0ODEsOCBAQCB3ZWJraXQyX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuaCBcCiAJU291
cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcCBcCiAJU291cmNlL1dlYktpdDIv
U2hhcmVkL1N0YXRpc3RpY3NEYXRhLmggXAotCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1Bs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcCBcCi0JU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAv
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAv
Q2VydGlmaWNhdGVJbmZvLmNwcCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvQ2VydGlm
aWNhdGVJbmZvLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1NvdXBDb29raWVQZXJz
aXN0ZW50U3RvcmFnZVR5cGUuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzU291cC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9UZXh0Q2hl
Y2tlclN0YXRlLmggXApAQCAtMTM2NSw4ICsxMzY1LDggQEAgd2Via2l0Ml9wbHVnaW5fcHJvY2Vz
c19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL1Byb2Nlc3NFeGVjdXRh
YmxlUGF0aEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0
b3J5LmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJpdG1hcENh
aXJvLmNwcCBcCi0JU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8uY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mby5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9DZXJ0aWZpY2F0ZUluZm8u
Y3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9DZXJ0aWZpY2F0ZUluZm8uaCBcCiAJ
U291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvQXN5bmNocm9ub3Vz
TmV0d29ya0xvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9B
c3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50LmNwcAppbmRleCAxYmFmNWIxOWFiMjAwM2U1
NDhkMDNiYzJlNjU4MmIyMmE0M2ViN2E3Li44NjViNGMwOTA3NDkxODE0YjdmNzBiNWYzNDVmYjY0
MDFhYTg3NjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Bc3lu
Y2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9Bc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50LmNwcApAQCAtMjYsOSAr
MjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFzeW5jaHJvbm91c05ldHdv
cmtMb2FkZXJDbGllbnQuaCIKIAorI2luY2x1ZGUgIkNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1
ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIK
LSNpbmNsdWRlICJQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KQEAgLTYzLDcgKzYzLDcgQEAgdm9p
ZCBBc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0
UHJvdGVjdGlvblNwYWNlKE5ldHcKIAogdm9pZCBBc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xp
ZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoTmV0d29ya1Jlc291cmNlTG9hZGVyKiBsb2FkZXIsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIGxvYWRlci0+c2VuZEFib3J0
aW5nT25GYWlsdXJlKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRlcjo6RGlkUmVjZWl2ZVJlc3Bv
bnNlV2l0aENlcnRpZmljYXRlSW5mbyhyZXNwb25zZSwgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8o
cmVzcG9uc2UpLCBsb2FkZXItPmlzTG9hZGluZ01haW5SZXNvdXJjZSgpKSk7CisgICAgbG9hZGVy
LT5zZW5kQWJvcnRpbmdPbkZhaWx1cmUoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZGVyOjpEaWRS
ZWNlaXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvKHJlc3BvbnNlLCBDZXJ0aWZpY2F0ZUlu
Zm8ocmVzcG9uc2UpLCBsb2FkZXItPmlzTG9hZGluZ01haW5SZXNvdXJjZSgpKSk7CiB9CiAKIHZv
aWQgQXN5bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZUJ1ZmZlcihOZXR3
b3JrUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgU2hhcmVkQnVmZmVyKiBidWZmZXIsIGludCBlbmNv
ZGVkRGF0YUxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCmluZGV4IGNhNmY4ZmJiNWYzODM1Y2JhYTRhMjA5NmUyNzVkOTM0OGI5OGU4ZjAu
Ljg1YjU2Zjg4MjgxZmMwOTgwMmY0ZjZjZGRhMmJkNTU5NjFmNDY3MGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzgsOSArMzgsOSBA
QAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjsKK2Ns
YXNzIENlcnRpZmljYXRlSW5mbzsKIGNsYXNzIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OwogY2xhc3MgTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50OwotY2xhc3MgUGxhdGZvcm1DZXJ0aWZp
Y2F0ZUluZm87CiBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiAKIGNs
YXNzIE5ldHdvcmtQcm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcywgcHJpdmF0ZSBEb3dubG9h
ZE1hbmFnZXI6OkNsaWVudCB7CkBAIC0xMDQsNyArMTA0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRvd25sb2FkUmVxdWVzdCh1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGNhbmNlbERvd25sb2FkKHVpbnQ2NF90IGRvd25sb2Fk
SUQpOwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7Ci0gICAgdm9pZCBhbGxvd1Nw
ZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUlu
Zm8mLCBjb25zdCBTdHJpbmcmIGhvc3QpOworICAgIHZvaWQgYWxsb3dTcGVjaWZpY0hUVFBTQ2Vy
dGlmaWNhdGVGb3JIb3N0KGNvbnN0IENlcnRpZmljYXRlSW5mbyYsIGNvbnN0IFN0cmluZyYgaG9z
dCk7CiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc1N0YXRpc3RpY3ModWludDY0X3QgY2FsbGJh
Y2tJRCk7CiAgICAgdm9pZCBjbGVhckNhY2hlRm9yQWxsT3JpZ2lucyh1aW50MzJfdCBjYWNoZXNU
b0NsZWFyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhNWZjYmM3YmU5NDAyODA3YzFlNTU2MmEz
ZWU2OWZmNjA2OTg1ZGQ3Li5mOTY0YTdmZDQ2MTIxNmNjYzY5YTgxYzc0YzI1YjQ2YTk0MTNjNzA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzksNyArMzksNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3Jr
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxl
ZChib29sIGZsYWcpCiAjZW5kaWYKIAotICAgIEFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRl
Rm9ySG9zdChXZWJLaXQ6OlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlLCBXVEY6
OlN0cmluZyBob3N0KQorICAgIEFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChX
ZWJLaXQ6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSwgV1RGOjpTdHJpbmcgaG9zdCkKICAg
ICAKICAgICBHZXROZXR3b3JrUHJvY2Vzc1N0YXRpc3RpY3ModWludDY0X3QgY2FsbGJhY2tJRCkK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDE2MzBhMmI0N2ExM2ZjYWZmODE3OWE3YzQwYjRiMDk1
YzYzMjYzOGEuLjQzMmVjNzZjZjNhZWY5Y2YzZjdiODgzNjEwOWY0NjZmZmJkMWMyZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQXN5bmNocm9ub3VzTmV0
d29ya0xvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uTWFuYWdlci5oIgor
I2luY2x1ZGUgIkNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Jsb2JSZWdpc3RyeS5oIgpA
QCAtMzcsNyArMzgsNiBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
LmgiCiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJTaGFy
ZWFibGVSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCmlu
ZGV4IGUxOTdmZjM5NmY3MGE3N2E5NTYyZDM1YWI1M2QyYzQ0NTM1Y2MwMmUuLjA5NjQ2YzhjODUx
YTE5ZDg5YjcwNWFmZmJhOTAwOTkyOGQ5NjRhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KQEAgLTI4LDkgKzI4
LDkgQEAKIAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAKKyNpbXBvcnQgIkNlcnRpZmlj
YXRlSW5mby5oIgogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIK
ICNpbXBvcnQgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgotI2ltcG9ydCAiUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8uaCIKICNpbXBvcnQgIlJlc291cmNlQ2FjaGVzVG9DbGVhci5oIgogI2ltcG9y
dCAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFy
YW1ldGVycy5oIgpAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRm
b3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgW25zdXJsQ2FjaGUg
c2V0RGlza0NhcGFjaXR5OnN0ZDo6bWF4PHVuc2lnbmVkIGxvbmc+KHVybENhY2hlRGlza0NhcGFj
aXR5LCBbbnN1cmxDYWNoZSBkaXNrQ2FwYWNpdHldKV07IC8vIERvbid0IHNocmluayBhIGJpZyBk
aXNrIGNhY2hlLCBzaW5jZSB0aGF0IHdvdWxkIGNhdXNlIGNodXJuLgogfQogCi12b2lkIE5ldHdv
cmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgUGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgU3RyaW5nJiBob3N0
KQordm9pZCBOZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JI
b3N0KGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBjb25zdCBTdHJpbmcm
IGhvc3QpCiB7CiAgICAgW05TVVJMUmVxdWVzdCBzZXRBbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlm
aWNhdGU6KE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUluZm8uY2VydGlmaWNhdGVDaGFpbigpIGZvckhv
c3Q6KE5TU3RyaW5nICopaG9zdF07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAKaW5kZXggZDhlYmFjYmQw
ZDdmNDUxNWNlZDEwYzE3MzRiYzQxN2NlYmJjOWVmNi4uYmQ0ZTZjMjk3MmFkMjIyN2I0NTlkOGJj
MjQwODkyZTE3NTlmNTc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCkKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNp
ZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8m
LCBjb25zdCBTdHJpbmcmKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBT
Q2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IENlcnRpZmljYXRlSW5mbyYsIGNvbnN0IFN0cmluZyYp
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5k
ZXggYjA1MjUzODc0NDU3ZjAzOWY1YjFmNDgzZDE5YTMwMTczYTc2ZjNmNy4uNmQzZTcxMmIxZDdk
MjBjNDdjOGYyNjkyMjJjNDAwNDhlNmIxY2UzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UK
QEAgLTQ5LDcgKzQ5LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVk
L2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1N5c2NhbGwuY3BwCiAgICAgU2hhcmVkL2xpbnV4L1NlY2Nv
bXBGaWx0ZXJzL1N5c2NhbGxQb2xpY3kuY3BwCiAKLSAgICBTaGFyZWQvc291cC9QbGF0Zm9ybUNl
cnRpZmljYXRlSW5mby5jcHAKKyAgICBTaGFyZWQvc291cC9DZXJ0aWZpY2F0ZUluZm8uY3BwCiAg
ICAgU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKIAogICAgIFVJUHJv
Y2Vzcy9EZWZhdWx0VW5kb0NvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmlu
ZGV4IGU2ZWMxYjMxODcwN2ViMzMxOGZjNTA5ODI2MGVjZGE2ZWM2ZDhlMTkuLjFiMWM1NTQwNTAz
Y2I3Mjc1OWRlMmE0OTMxYzE4N2I0YzU3NmVhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtl
CkBAIC02MSw3ICs2MSw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJl
ZC9saW51eC9TZWNjb21wRmlsdGVycy9TeXNjYWxsLmNwcAogICAgIFNoYXJlZC9saW51eC9TZWNj
b21wRmlsdGVycy9TeXNjYWxsUG9saWN5LmNwcAogCi0gICAgU2hhcmVkL3NvdXAvUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8uY3BwCisgICAgU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmNwcAog
ICAgIFNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCiAKICAgICBVSVBy
b2Nlc3MvRGVmYXVsdFVuZG9Db250cm9sbGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL21hYy9XS0NlcnRpZmljYXRlSW5mb01hYy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9tYWMvV0tDZXJ0aWZpY2F0ZUluZm9NYWMubW0KaW5kZXggMzRkZDQz
MTUxOWEzOTlhM2RkODNlMGU4MjNmNDM0NzVjMmUzYmZhYi4uMzJlYzBmNDZlOWQwY2NlMTJmNzdk
Mjc4YjM4OGI3N2ZmZmYyZmE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL21hYy9XS0NlcnRpZmljYXRlSW5mb01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvbWFjL1dLQ2VydGlmaWNhdGVJbmZvTWFjLm1tCkBAIC0zMywxMSArMzMsMTEgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogV0tDZXJ0aWZpY2F0ZUluZm9SZWYgV0tDZXJ0aWZp
Y2F0ZUluZm9DcmVhdGVXaXRoQ2VydGZpY2F0ZUNoYWluKENGQXJyYXlSZWYgY2VydGlmaWNhdGVD
aGFpbikKIHsKLSAgICBSZWZQdHI8V2ViQ2VydGlmaWNhdGVJbmZvPiBjZXJ0aWZpY2F0ZUluZm8g
PSBXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZShQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhjZXJ0
aWZpY2F0ZUNoYWluKSk7CisgICAgUmVmUHRyPFdlYkNlcnRpZmljYXRlSW5mbz4gY2VydGlmaWNh
dGVJbmZvID0gV2ViQ2VydGlmaWNhdGVJbmZvOjpjcmVhdGUoQ2VydGlmaWNhdGVJbmZvKGNlcnRp
ZmljYXRlQ2hhaW4pKTsKICAgICByZXR1cm4gdG9BUEkoY2VydGlmaWNhdGVJbmZvLnJlbGVhc2Uo
KS5sZWFrUmVmKCkpOwogfQogCiBDRkFycmF5UmVmIFdLQ2VydGlmaWNhdGVJbmZvR2V0Q2VydGlm
aWNhdGVDaGFpbihXS0NlcnRpZmljYXRlSW5mb1JlZiBjZXJ0aWZpY2F0ZUluZm9SZWYpCiB7Ci0g
ICAgcmV0dXJuIHRvSW1wbChjZXJ0aWZpY2F0ZUluZm9SZWYpLT5wbGF0Zm9ybUNlcnRpZmljYXRl
SW5mbygpLmNlcnRpZmljYXRlQ2hhaW4oKTsKKyAgICByZXR1cm4gdG9JbXBsKGNlcnRpZmljYXRl
SW5mb1JlZiktPmNlcnRpZmljYXRlSW5mbygpLmNlcnRpZmljYXRlQ2hhaW4oKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggN2Y3ZGNhMmRkMmU0MjgyNWZhNTgxN2IxZDJjZjBm
Y2U5MWIzZmI3OC4uZTJmNDUzMjI5Y2I3ZGJkZmQzM2MzZDZjNmI2MmJhMDI2ZmI3MTZjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTk4LDIwICs5OCwyMCBAQCB2b2lkIEF1dGhl
bnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvd25s
b2FkKiBkb3dubG9hZAogCiAvLyBDdXJyZW50bHksIG9ubHkgTWFjIGtub3dzIGhvdyB0byByZXNw
b25kIHRvIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZXMgd2l0aCBjZXJ0aWZpY2F0ZSBpbmZvLgog
I2lmICFVU0UoU0VDVVJJVFlfRlJBTUVXT1JLKQotYm9vbCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6
OnRyeVVzZVBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvRm9yQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8m
KQorYm9vbCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnRyeVVzZUNlcnRpZmljYXRlSW5mb0ZvckNo
YWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIGNvbnN0IENl
cnRpZmljYXRlSW5mbyYpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogI2VuZGlmCiAKLXZvaWQg
QXV0aGVudGljYXRpb25NYW5hZ2VyOjp1c2VDcmVkZW50aWFsRm9yQ2hhbGxlbmdlKHVpbnQ2NF90
IGNoYWxsZW5nZUlELCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsLCBjb25zdCBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQordm9pZCBBdXRoZW50aWNhdGlvbk1h
bmFnZXI6OnVzZUNyZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQsIGNv
bnN0IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlm
aWNhdGVJbmZvKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UgPSBtX2NoYWxsZW5nZXMudGFrZShjaGFsbGVuZ2VJ
RCk7CiAgICAgQVNTRVJUKCFjaGFsbGVuZ2UuaXNOdWxsKCkpOwogICAgIAotICAgIGlmICh0cnlV
c2VQbGF0Zm9ybUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZShjaGFsbGVuZ2UsIGNlcnRpZmlj
YXRlSW5mbykpCisgICAgaWYgKHRyeVVzZUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZShjaGFs
bGVuZ2UsIGNlcnRpZmljYXRlSW5mbykpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBBdXRo
ZW50aWNhdGlvbkNsaWVudCogY29yZUNsaWVudCA9IGNoYWxsZW5nZS5hdXRoZW50aWNhdGlvbkNs
aWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCmluZGV4IDRjNmY4MWU5NTM5MGZmNzBkMzgx
ODJiZGM5YjQyNmJhNmUwMWE1OTEuLjRmNjVlOWY2Nzg5ODdkMDQ3OTQzMDk5OTFlZTg1ZjRkMTU2
MzM4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTQwLDkgKzQwLDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgQ2VydGlmaWNhdGVJ
bmZvOwogY2xhc3MgQ2hpbGRQcm9jZXNzOwogY2xhc3MgRG93bmxvYWQ7Ci1jbGFzcyBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbzsKIGNsYXNzIFdlYkZyYW1lOwogCiBjbGFzcyBBdXRoZW50aWNhdGlv
bk1hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBOZXR3b3JrUHJv
Y2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewpAQCAtNTks
NyArNTksNyBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGVkIGZvciBkb3dubG9hZHMgd2l0aCBvciB3
aXRob3V0IHRoZSBOZXR3b3JrUHJvY2VzcwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKERvd25sb2FkKiwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKTsKIAotICAgIHZvaWQgdXNlQ3JlZGVudGlhbEZvckNoYWxsZW5nZSh1aW50NjRfdCBj
aGFsbGVuZ2VJRCwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYsIGNvbnN0IFBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvJik7CisgICAgdm9pZCB1c2VDcmVkZW50aWFsRm9yQ2hhbGxlbmdlKHVpbnQ2
NF90IGNoYWxsZW5nZUlELCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiwgY29uc3QgQ2VydGlm
aWNhdGVJbmZvJik7CiAgICAgdm9pZCBjb250aW51ZVdpdGhvdXRDcmVkZW50aWFsRm9yQ2hhbGxl
bmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKICAgICB2b2lkIGNhbmNlbENoYWxsZW5nZSh1aW50
NjRfdCBjaGFsbGVuZ2VJRCk7CiAgICAgCkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAgICAg
Ly8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9W
RVJSSURFOwogCi0gICAgYm9vbCB0cnlVc2VQbGF0Zm9ybUNlcnRpZmljYXRlSW5mb0ZvckNoYWxs
ZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIGNvbnN0IFBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvJik7CisgICAgYm9vbCB0cnlVc2VDZXJ0aWZpY2F0ZUluZm9Gb3JD
aGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBD
ZXJ0aWZpY2F0ZUluZm8mKTsKIAogICAgIHVpbnQ2NF90IGVzdGFibGlzaElkZW50aWZpZXJGb3JD
aGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYmIxY2MzMGNhNmJj
NTkxYmRlZGVkNDFmMGY1MTk1ZWM3NmM5NjFkZC4uZGExM2YzNDM1ZmFmYmRlMDdlNjFlOTg4MTc4
OWFlMWEzNmZhM2I1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2Vz
LmluCkBAIC0yMSw3ICsyMSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IEF1dGhl
bnRpY2F0aW9uTWFuYWdlciB7Ci0gICAgdm9pZCBVc2VDcmVkZW50aWFsRm9yQ2hhbGxlbmdlKHVp
bnQ2NF90IGNoYWxsZW5nZUlELCBXZWJDb3JlOjpDcmVkZW50aWFsIGNyZWRlbnRpYWwsIFdlYktp
dDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGUpOworICAgIHZvaWQgVXNlQ3Jl
ZGVudGlhbEZvckNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgV2ViQ29yZTo6Q3JlZGVu
dGlhbCBjcmVkZW50aWFsLCBXZWJLaXQ6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSk7CiAg
ICAgdm9pZCBDb250aW51ZVdpdGhvdXRDcmVkZW50aWFsRm9yQ2hhbGxlbmdlKHVpbnQ2NF90IGNo
YWxsZW5nZUlEKTsKICAgICB2b2lkIENhbmNlbENoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJ
RCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24v
bWFjL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QXV0aGVudGljYXRpb24vbWFjL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tYWMubW0KaW5kZXggYzBi
OTJmMTJiNGVmMmQ0ODQyNWRkMmI3ZmUzNDFlNzY5YzI3NjAxMy4uYTg2MThjZGE2OWU3OTllNjkz
N2E4NGViOTkzZGVmN2RiOGU4ZjAyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0F1dGhlbnRpY2F0aW9uL21hYy9BdXRoZW50aWNhdGlvbk1hbmFnZXIubWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9tYWMvQXV0aGVudGljYXRpb25NYW5h
Z2VyLm1hYy5tbQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09S
SykKIAotI2luY2x1ZGUgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCisjaW5jbHVkZSAiQ2Vy
dGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSA8U2VjdXJpdHkvU2VjSWRlbnRpdHkuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CiAKQEAgLTM2LDcgKzM2LDcg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1ib29s
IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6dHJ5VXNlUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9Gb3JD
aGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSwgY29uc3Qg
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbykKK2Jvb2wgQXV0aGVudGlj
YXRpb25NYW5hZ2VyOjp0cnlVc2VDZXJ0aWZpY2F0ZUluZm9Gb3JDaGFsbGVuZ2UoY29uc3QgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBj
ZXJ0aWZpY2F0ZUluZm8pCiB7CiAgICAgQ0ZBcnJheVJlZiBjaGFpbiA9IGNlcnRpZmljYXRlSW5m
by5jZXJ0aWZpY2F0ZUNoYWluKCk7CiAgICAgaWYgKCFjaGFpbikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKaW5kZXggNTcwZjE4ZWJiMWJmMDQyYjRlNGYxMTgwNzYz
MjBjNTU5ZjA2YWFkNi4uYmFmOTc1YjI4ODMyNTk1NGVjZTUyNWFlY2RjZGFmMTBhYzFmMzk0NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKQEAgLTIxNSw3ICsy
MTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlw
ZTo6Q2VydGlmaWNhdGVJbmZvOiB7CiAgICAgICAgICAgICBXZWJDZXJ0aWZpY2F0ZUluZm8qIGNl
cnRpZmljYXRlSW5mbyA9IHN0YXRpY19jYXN0PFdlYkNlcnRpZmljYXRlSW5mbyo+KG1fcm9vdCk7
Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IGNlcnRpZmljYXRlSW5mby0+cGxhdGZvcm1DZXJ0aWZp
Y2F0ZUluZm8oKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgY2VydGlmaWNhdGVJbmZvLT5jZXJ0
aWZpY2F0ZUluZm8oKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkVycm9yOiB7CkBAIC01MDQsMTAgKzUwNCwxMCBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQ
STo6T2JqZWN0OjpUeXBlOjpDZXJ0aWZpY2F0ZUluZm86IHsKLSAgICAgICAgICAgIFBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvIHBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOwotICAgICAgICAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwbGF0Zm9ybUNlcnRpZmljYXRlSW5mbykpCisgICAgICAgICAgICBD
ZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvOworICAgICAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShjZXJ0aWZpY2F0ZUluZm8pKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgICAgIGNvZGVyLm1fcm9vdCA9IFdlYkNlcnRpZmljYXRlSW5mbzo6Y3JlYXRlKHBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvKTsKKyAgICAgICAgICAgIGNvZGVyLm1fcm9vdCA9IFdlYkNl
cnRpZmljYXRlSW5mbzo6Y3JlYXRlKGNlcnRpZmljYXRlSW5mbyk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpFcnJvcjogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oCmluZGV4IGQzZDM1Yzc0
YjlmNzQxZWUxMDdmZWU1YWFjMWVhMzg2ZGVjNjI0NTUuLmU5MDFkMzA5YWVkNGYwNzhiZWJiMTY5
ZDZkODA4YTMxYzY5Y2Y5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
ZXJ0aWZpY2F0ZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ2VydGlmaWNh
dGVJbmZvLmgKQEAgLTI3LDI3ICsyNywyNyBAQAogI2RlZmluZSBXZWJDZXJ0aWZpY2F0ZUluZm9f
aAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8uaCIKKyNpbmNsdWRlICJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ2VydGlmaWNhdGVJ
bmZvIDogcHVibGljIEFQSTo6VHlwZWRPYmplY3Q8QVBJOjpPYmplY3Q6OlR5cGU6OkNlcnRpZmlj
YXRlSW5mbz4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNlcnRpZmljYXRl
SW5mbz4gY3JlYXRlKGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBpbmZvKQorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYkNlcnRpZmljYXRlSW5mbz4gY3JlYXRlKGNvbnN0IENlcnRpZmlj
YXRlSW5mbyYgaW5mbykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ2Vy
dGlmaWNhdGVJbmZvKGluZm8pKTsKICAgICB9CiAKLSAgICBjb25zdCBQbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mbyYgcGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSBjb25zdCB7IHJldHVybiBtX3BsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvOyB9CisgICAgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZp
Y2F0ZUluZm8oKSBjb25zdCB7IHJldHVybiBtX2NlcnRpZmljYXRlSW5mbzsgfQogCiBwcml2YXRl
OgotICAgIGV4cGxpY2l0IFdlYkNlcnRpZmljYXRlSW5mbyhjb25zdCBQbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mbyYgaW5mbykKLSAgICAgICAgOiBtX3BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKGluZm8p
CisgICAgZXhwbGljaXQgV2ViQ2VydGlmaWNhdGVJbmZvKGNvbnN0IENlcnRpZmljYXRlSW5mbyYg
aW5mbykKKyAgICAgICAgOiBtX2NlcnRpZmljYXRlSW5mbyhpbmZvKQogICAgIHsKICAgICB9CiAK
LSAgICBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyBtX3BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOwor
ICAgIENlcnRpZmljYXRlSW5mbyBtX2NlcnRpZmljYXRlSW5mbzsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DZXJ0aWZp
Y2F0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2VydGlmaWNhdGVJbmZvLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGRkYzc1MTJjMGJjZTYyZGE5NTk5MGE3NTJiM2QwZjU4YzY5YzQ0MwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2VydGlmaWNhdGVJbmZv
LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ2VydGlmaWNhdGVJbmZv
X2gKKyNkZWZpbmUgQ2VydGlmaWNhdGVJbmZvX2gKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VSZXNwb25zZS5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIENv
cmVJUEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQXJndW1lbnRFbmNvZGVyOwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ2VydGlmaWNhdGVJbmZvIHsKK3B1Ymxp
YzoKKyAgICBDZXJ0aWZpY2F0ZUluZm8oKTsKKyAgICBleHBsaWNpdCBDZXJ0aWZpY2F0ZUluZm8o
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworICAgIGV4cGxpY2l0IENlcnRpZmlj
YXRlSW5mbyhDRkFycmF5UmVmIGNlcnRpZmljYXRlQ2hhaW4pOworCisgICAgQ0ZBcnJheVJlZiBj
ZXJ0aWZpY2F0ZUNoYWluKCkgY29uc3QgeyByZXR1cm4gbV9jZXJ0aWZpY2F0ZUNoYWluLmdldCgp
OyB9CisKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsK
KyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgQ2VydGlm
aWNhdGVJbmZvJik7CisKKyNpZm5kZWYgTkRFQlVHCisgICAgdm9pZCBkdW1wKCkgY29uc3Q7Cisj
ZW5kaWYKKworcHJpdmF0ZToKKyAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbV9jZXJ0aWZpY2F0
ZUNoYWluOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBDZXJ0aWZp
Y2F0ZUluZm9faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DZXJ0aWZp
Y2F0ZUluZm8ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NlcnRpZmljYXRlSW5mby5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yNjBlYWI2YzYzMDQxZDY5NGU4YTVlMzI3NjA3MGM1Yzk1ZTgxOWY0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DZXJ0aWZpY2F0ZUlu
Zm8ubW0KQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiQ2VydGlmaWNhdGVJbmZvLmgiCisKKyNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ0Yu
aCIKKyNpbXBvcnQgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2ltcG9ydCAiQXJndW1lbnRFbmNvZGVy
LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Q2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZUluZm8oKQoreworfQorCitDZXJ0aWZpY2F0ZUlu
Zm86OkNlcnRpZmljYXRlSW5mbyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKKyAg
ICA6IG1fY2VydGlmaWNhdGVDaGFpbihyZXNwb25zZS5jZXJ0aWZpY2F0ZUNoYWluKCkpCit7Cit9
CisKK0NlcnRpZmljYXRlSW5mbzo6Q2VydGlmaWNhdGVJbmZvKENGQXJyYXlSZWYgY2VydGlmaWNh
dGVDaGFpbikKKyAgICA6IG1fY2VydGlmaWNhdGVDaGFpbihjZXJ0aWZpY2F0ZUNoYWluKQorewor
fQorCit2b2lkIENlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBpZiAoIW1fY2VydGlmaWNhdGVDaGFpbikgeworICAg
ICAgICBlbmNvZGVyIDw8IGZhbHNlOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZW5j
b2RlciA8PCB0cnVlOworICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX2NlcnRpZmljYXRl
Q2hhaW4uZ2V0KCkpOworfQorCitib29sIENlcnRpZmljYXRlSW5mbzo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQ2VydGlmaWNhdGVJbmZvJiBjKQoreworICAgIGJv
b2wgaGFzQ2VydGlmaWNhdGVDaGFpbjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc0NlcnRp
ZmljYXRlQ2hhaW4pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWhhc0NlcnRp
ZmljYXRlQ2hhaW4pCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCFDb3JlSVBDOjpk
ZWNvZGUoZGVjb2RlciwgYy5tX2NlcnRpZmljYXRlQ2hhaW4pKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworI2lmbmRlZiBOREVCVUcKK3ZvaWQgQ2VydGlm
aWNhdGVJbmZvOjpkdW1wKCkgY29uc3QKK3sKKyAgICB1bnNpZ25lZCBlbnRyaWVzID0gbV9jZXJ0
aWZpY2F0ZUNoYWluID8gQ0ZBcnJheUdldENvdW50KG1fY2VydGlmaWNhdGVDaGFpbi5nZXQoKSkg
OiAwOworCisgICAgTlNMb2coQCJDZXJ0aWZpY2F0ZUluZm9cbiIpOworICAgIE5TTG9nKEAiICBF
bnRyaWVzOiAlZFxuIiwgZW50cmllcyk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGVu
dHJpZXM7ICsraSkgeworICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHN1bW1hcnkgPSBh
ZG9wdENGKFNlY0NlcnRpZmljYXRlQ29weVN1YmplY3RTdW1tYXJ5KChTZWNDZXJ0aWZpY2F0ZVJl
ZilDRkFycmF5R2V0VmFsdWVBdEluZGV4KG1fY2VydGlmaWNhdGVDaGFpbi5nZXQoKSwgaSkpKTsK
KyAgICAgICAgTlNMb2coQCIgICVAIiwgKE5TU3RyaW5nICopc3VtbWFyeS5nZXQoKSk7CisgICAg
fQorfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5ZWExYTJmMzMxNzlmMmQxNTQwZDQ5MWFkMDY4M2I5NTI0MGNjY2Q2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaAorKysgL2Rldi9udWxs
CkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFBsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvX2gKLSNkZWZpbmUgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9faAotCi0jaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgot
Ci1uYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwotICAgIGNs
YXNzIEFyZ3VtZW50RW5jb2RlcjsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvIHsKLXB1YmxpYzoKLSAgICBQbGF0Zm9ybUNlcnRpZmljYXRl
SW5mbygpOwotICAgIGV4cGxpY2l0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICBleHBsaWNpdCBQbGF0Zm9ybUNlcnRpZmljYXRl
SW5mbyhDRkFycmF5UmVmIGNlcnRpZmljYXRlQ2hhaW4pOwotCi0gICAgQ0ZBcnJheVJlZiBjZXJ0
aWZpY2F0ZUNoYWluKCkgY29uc3QgeyByZXR1cm4gbV9jZXJ0aWZpY2F0ZUNoYWluLmdldCgpOyB9
Ci0KLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8mKTsKLQotI2lmbmRlZiBOREVCVUcKLSAgICB2b2lkIGR1bXAoKSBjb25z
dDsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBtX2NlcnRp
ZmljYXRlQ2hhaW47Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjNGE3MzU0NWM1YmQxNjhmNmFhOTI2ZDk3NDYzMThlNGE2Y2E4ZTAyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0KKysrIC9kZXYvbnVsbApAQCAtMSw5MSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mby5oIgotCi0jaW1wb3J0ICJBcmd1bWVudENvZGVyc0NGLmgiCi0jaW1w
b3J0ICJBcmd1bWVudERlY29kZXIuaCIKLSNpbXBvcnQgIkFyZ3VtZW50RW5jb2Rlci5oIgotCi11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvOjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpCi17Ci19Ci0KLVBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvOjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKLSAgICA6IG1fY2VydGlmaWNhdGVDaGFpbihyZXNwb25zZS5j
ZXJ0aWZpY2F0ZUNoYWluKCkpCi17Ci19Ci0KLVBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOjpQbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbyhDRkFycmF5UmVmIGNlcnRpZmljYXRlQ2hhaW4pCi0gICAgOiBt
X2NlcnRpZmljYXRlQ2hhaW4oY2VydGlmaWNhdGVDaGFpbikKLXsKLX0KLQotdm9pZCBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKLXsKLSAgICBpZiAoIW1fY2VydGlmaWNhdGVDaGFpbikgewotICAgICAgICBlbmNv
ZGVyIDw8IGZhbHNlOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZW5jb2RlciA8PCB0
cnVlOwotICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX2NlcnRpZmljYXRlQ2hhaW4uZ2V0
KCkpOwotfQotCi1ib29sIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOjpkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgYykKLXsK
LSAgICBib29sIGhhc0NlcnRpZmljYXRlQ2hhaW47Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSho
YXNDZXJ0aWZpY2F0ZUNoYWluKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFo
YXNDZXJ0aWZpY2F0ZUNoYWluKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmICghQ29y
ZUlQQzo6ZGVjb2RlKGRlY29kZXIsIGMubV9jZXJ0aWZpY2F0ZUNoYWluKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLSNpZm5kZWYgTkRFQlVHCi12b2lk
IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOjpkdW1wKCkgY29uc3QKLXsKLSAgICB1bnNpZ25lZCBl
bnRyaWVzID0gbV9jZXJ0aWZpY2F0ZUNoYWluID8gQ0ZBcnJheUdldENvdW50KG1fY2VydGlmaWNh
dGVDaGFpbi5nZXQoKSkgOiAwOwotCi0gICAgTlNMb2coQCJQbGF0Zm9ybUNlcnRpZmljYXRlSW5m
b1xuIik7Ci0gICAgTlNMb2coQCIgIEVudHJpZXM6ICVkXG4iLCBlbnRyaWVzKTsKLSAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgZW50cmllczsgKytpKSB7Ci0gICAgICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gc3VtbWFyeSA9IGFkb3B0Q0YoU2VjQ2VydGlmaWNhdGVDb3B5U3ViamVjdFN1
bW1hcnkoKFNlY0NlcnRpZmljYXRlUmVmKUNGQXJyYXlHZXRWYWx1ZUF0SW5kZXgobV9jZXJ0aWZp
Y2F0ZUNoYWluLmdldCgpLCBpKSkpOwotICAgICAgICBOU0xvZyhAIiAgJUAiLCAoTlNTdHJpbmcg
KilzdW1tYXJ5LmdldCgpKTsKLSAgICB9Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVu
dENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzTWFjLm1tCmluZGV4IDU2MmI1YjEzNGYzY2Y1ZTY0OTM1ZGY5NmZkZWNiNzMwNWUwM2Zj
Y2UuLmNlOWMwNmRlNjNhYzU2MGQ1N2Y2MGJmNzk5ZWJiNTI0YmRlZGZjMjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1t
CkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ0YuaCIKICNpbXBv
cnQgIkRhdGFSZWZlcmVuY2UuaCIKLSNpbXBvcnQgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgi
CisjaW1wb3J0ICJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVy
ZmFjZS5oIgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1Jlc291cmNlRXJyb3IuaD4KQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIEFyZ3VtZW50Q29k
ZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIsCiAKICAgICBpZCBwZWVyQ2VydGlmaWNhdGVDaGFpbiA9IFt1c2VySW5mbyBvYmplY3RG
b3JLZXk6QCJOU0Vycm9yUGVlckNlcnRpZmljYXRlQ2hhaW5LZXkiXTsKICAgICBBU1NFUlQoIXBl
ZXJDZXJ0aWZpY2F0ZUNoYWluIHx8IFtwZWVyQ2VydGlmaWNhdGVDaGFpbiBpc0tpbmRPZkNsYXNz
OltOU0FycmF5IGNsYXNzXV0pOwotICAgIGVuY29kZXIgPDwgUGxhdGZvcm1DZXJ0aWZpY2F0ZUlu
Zm8oKENGQXJyYXlSZWYpcGVlckNlcnRpZmljYXRlQ2hhaW4pOworICAgIGVuY29kZXIgPDwgQ2Vy
dGlmaWNhdGVJbmZvKChDRkFycmF5UmVmKXBlZXJDZXJ0aWZpY2F0ZUNoYWluKTsKIH0KIAogYm9v
bCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQpAQCAtMTk2
LDcgKzE5Niw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZGVjb2RlUGxh
dGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHN0cmluZ1VzZXJJbmZvTWFwKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGU7CisgICAgQ2VydGlmaWNhdGVJbmZvIGNl
cnRpZmljYXRlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY2VydGlmaWNhdGUpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3Vw
L0NlcnRpZmljYXRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9DZXJ0aWZp
Y2F0ZUluZm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllOTI1MTgyMmRmNGEzNmY5MWE0ZTlhNjA5MzRlNmQx
Mjk4NjUxZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9D
ZXJ0aWZpY2F0ZUluZm8uY3BwCkBAIC0wLDAgKzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJDZXJ0aWZpY2F0ZUluZm8uaCIKKworI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgor
I2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitDZXJ0aWZpY2F0ZUluZm86
OkNlcnRpZmljYXRlSW5mbygpCisgICAgOiBtX3Rsc0Vycm9ycyhzdGF0aWNfY2FzdDxHVGxzQ2Vy
dGlmaWNhdGVGbGFncz4oMCkpCit7Cit9CisKK0NlcnRpZmljYXRlSW5mbzo6Q2VydGlmaWNhdGVJ
bmZvKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQorICAgIDogbV9jZXJ0aWZpY2F0
ZShyZXNwb25zZS5zb3VwTWVzc2FnZUNlcnRpZmljYXRlKCkpCisgICAgLCBtX3Rsc0Vycm9ycyhy
ZXNwb25zZS5zb3VwTWVzc2FnZVRMU0Vycm9ycygpKQoreworfQorCitDZXJ0aWZpY2F0ZUluZm86
OkNlcnRpZmljYXRlSW5mbyhjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQorICAg
IDogbV9jZXJ0aWZpY2F0ZShyZXNvdXJjZUVycm9yLmNlcnRpZmljYXRlKCkpCisgICAgLCBtX3Rs
c0Vycm9ycyhzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4ocmVzb3VyY2VFcnJvci50
bHNFcnJvcnMoKSkpCit7Cit9CisKK0NlcnRpZmljYXRlSW5mbzo6Q2VydGlmaWNhdGVJbmZvKEdU
bHNDZXJ0aWZpY2F0ZSogY2VydGlmaWNhdGUsIEdUbHNDZXJ0aWZpY2F0ZUZsYWdzIHRsc0Vycm9y
cykKKyAgICA6IG1fY2VydGlmaWNhdGUoY2VydGlmaWNhdGUpCisgICAgLCBtX3Rsc0Vycm9ycyh0
bHNFcnJvcnMpCit7Cit9CisKK0NlcnRpZmljYXRlSW5mbzo6fkNlcnRpZmljYXRlSW5mbygpCit7
Cit9CisKK3ZvaWQgQ2VydGlmaWNhdGVJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGlmICghbV9jZXJ0aWZpY2F0ZSkgeworICAgICAg
ICBlbmNvZGVyIDw8IGZhbHNlOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgR0J5dGVB
cnJheSogY2VydGlmaWNhdGVEYXRhID0gMDsKKyAgICBnX29iamVjdF9nZXQoR19PQkpFQ1QobV9j
ZXJ0aWZpY2F0ZS5nZXQoKSksICJjZXJ0aWZpY2F0ZSIsICZjZXJ0aWZpY2F0ZURhdGEsIE5VTEwp
OworICAgIGlmICghY2VydGlmaWNhdGVEYXRhKSB7CisgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBlbmNvZGVyIDw8IHRydWU7CisgICAgR1Jl
ZlB0cjxHQnl0ZUFycmF5PiBjZXJ0aWZpY2F0ZSA9IGFkb3B0R1JlZihjZXJ0aWZpY2F0ZURhdGEp
OworICAgIGVuY29kZXIuZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoQ29yZUlQQzo6RGF0
YVJlZmVyZW5jZShjZXJ0aWZpY2F0ZS0+ZGF0YSwgY2VydGlmaWNhdGUtPmxlbikpOworICAgIGVu
Y29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdGxzRXJyb3JzKTsKK30KKworYm9vbCBD
ZXJ0aWZpY2F0ZUluZm86OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQoreworICAgIGJvb2wgaGFzQ2VydGlm
aWNhdGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNDZXJ0aWZpY2F0ZSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmICghaGFzQ2VydGlmaWNhdGUpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSBjZXJ0aWZpY2F0ZURhdGFSZWZl
cmVuY2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KGNl
cnRpZmljYXRlRGF0YVJlZmVyZW5jZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEdC
eXRlQXJyYXkqIGNlcnRpZmljYXRlRGF0YSA9IGdfYnl0ZV9hcnJheV9zaXplZF9uZXcoY2VydGlm
aWNhdGVEYXRhUmVmZXJlbmNlLnNpemUoKSk7CisgICAgY2VydGlmaWNhdGVEYXRhID0gZ19ieXRl
X2FycmF5X2FwcGVuZChjZXJ0aWZpY2F0ZURhdGEsIGNlcnRpZmljYXRlRGF0YVJlZmVyZW5jZS5k
YXRhKCksIGNlcnRpZmljYXRlRGF0YVJlZmVyZW5jZS5zaXplKCkpOworICAgIEdSZWZQdHI8R0J5
dGVBcnJheT4gY2VydGlmaWNhdGUgPSBhZG9wdEdSZWYoY2VydGlmaWNhdGVEYXRhKTsKKworICAg
IEdUbHNCYWNrZW5kKiBiYWNrZW5kID0gZ190bHNfYmFja2VuZF9nZXRfZGVmYXVsdCgpOworICAg
IGNlcnRpZmljYXRlSW5mby5tX2NlcnRpZmljYXRlID0gYWRvcHRHUmVmKEdfVExTX0NFUlRJRklD
QVRFKGdfaW5pdGFibGVfbmV3KAorICAgICAgICBnX3Rsc19iYWNrZW5kX2dldF9jZXJ0aWZpY2F0
ZV90eXBlKGJhY2tlbmQpLCAwLCAwLCAiY2VydGlmaWNhdGUiLCBjZXJ0aWZpY2F0ZS5nZXQoKSwg
bnVsbHB0cikpKTsKKworICAgIHVpbnQzMl90IHRsc0Vycm9yczsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHRsc0Vycm9ycykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjZXJ0aWZpY2F0
ZUluZm8ubV90bHNFcnJvcnMgPSBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4odGxz
RXJyb3JzKTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL0NlcnRpZmljYXRlSW5mby5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWI1NThhYTE4MjFlODE4MjNmZGFkOTk2ZmM0ZDlhMjE4MmRkMDhlMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL0NlcnRpZmljYXRlSW5mby5oCkBAIC0w
LDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1v
YmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENl
cnRpZmljYXRlSW5mb19oCisjZGVmaW5lIENlcnRpZmljYXRlSW5mb19oCisKKyNpbmNsdWRlIDxs
aWJzb3VwL3NvdXAuaD4KKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisKK25hbWVz
cGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5j
b2RlcjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2Ns
YXNzIFJlc291cmNlUmVzcG9uc2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBD
ZXJ0aWZpY2F0ZUluZm8geworcHVibGljOgorICAgIENlcnRpZmljYXRlSW5mbygpOworICAgIGV4
cGxpY2l0IENlcnRpZmljYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7
CisgICAgZXhwbGljaXQgQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImKTsKKyAgICBleHBsaWNpdCBDZXJ0aWZpY2F0ZUluZm8oR1Rsc0NlcnRpZmljYXRlKiwgR1Rs
c0NlcnRpZmljYXRlRmxhZ3MpOworICAgIH5DZXJ0aWZpY2F0ZUluZm8oKTsKKworICAgIEdUbHND
ZXJ0aWZpY2F0ZSogY2VydGlmaWNhdGUoKSBjb25zdCB7IHJldHVybiBtX2NlcnRpZmljYXRlLmdl
dCgpOyB9CisgICAgR1Rsc0NlcnRpZmljYXRlRmxhZ3MgdGxzRXJyb3JzKCkgY29uc3QgeyByZXR1
cm4gbV90bHNFcnJvcnM7IH0KKworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXImLCBDZXJ0aWZpY2F0ZUluZm8mKTsKKworcHJpdmF0ZToKKyAgICBHUmVmUHRyPEdUbHND
ZXJ0aWZpY2F0ZT4gbV9jZXJ0aWZpY2F0ZTsKKyAgICBHVGxzQ2VydGlmaWNhdGVGbGFncyBtX3Rs
c0Vycm9yczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gQ2VydGlm
aWNhdGVJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjVj
ZTRlZmQ1ZWYwZDEzNGJhMjZkZDdjOGM5MWI0NjQ4OGMxNjdiMi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9Q
bGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMTYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCIKLQot
I2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5o
IgotI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
RXJyb3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRl
IDxsaWJzb3VwL3NvdXAuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1QbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6UGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8oKQotICAgIDogbV90bHNFcnJvcnMoc3RhdGljX2Nhc3Q8R1Rsc0NlcnRpZmljYXRlRmxh
Z3M+KDApKQotewotfQotCi1QbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6UGxhdGZvcm1DZXJ0aWZp
Y2F0ZUluZm8oY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi0gICAgOiBtX2NlcnRp
ZmljYXRlKHJlc3BvbnNlLnNvdXBNZXNzYWdlQ2VydGlmaWNhdGUoKSkKLSAgICAsIG1fdGxzRXJy
b3JzKHJlc3BvbnNlLnNvdXBNZXNzYWdlVExTRXJyb3JzKCkpCi17Ci19Ci0KLVBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvOjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhjb25zdCBSZXNvdXJjZUVycm9y
JiByZXNvdXJjZUVycm9yKQotICAgIDogbV9jZXJ0aWZpY2F0ZShyZXNvdXJjZUVycm9yLmNlcnRp
ZmljYXRlKCkpCi0gICAgLCBtX3Rsc0Vycm9ycyhzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVG
bGFncz4ocmVzb3VyY2VFcnJvci50bHNFcnJvcnMoKSkpCi17Ci19Ci0KLVBsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvOjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhHVGxzQ2VydGlmaWNhdGUqIGNlcnRp
ZmljYXRlLCBHVGxzQ2VydGlmaWNhdGVGbGFncyB0bHNFcnJvcnMpCi0gICAgOiBtX2NlcnRpZmlj
YXRlKGNlcnRpZmljYXRlKQotICAgICwgbV90bHNFcnJvcnModGxzRXJyb3JzKQotewotfQotCi1Q
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6flBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkKLXsKLX0K
LQotdm9pZCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBpZiAoIW1fY2VydGlmaWNhdGUpIHsKLSAg
ICAgICAgZW5jb2RlciA8PCBmYWxzZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEdC
eXRlQXJyYXkqIGNlcnRpZmljYXRlRGF0YSA9IDA7Ci0gICAgZ19vYmplY3RfZ2V0KEdfT0JKRUNU
KG1fY2VydGlmaWNhdGUuZ2V0KCkpLCAiY2VydGlmaWNhdGUiLCAmY2VydGlmaWNhdGVEYXRhLCBO
VUxMKTsKLSAgICBpZiAoIWNlcnRpZmljYXRlRGF0YSkgewotICAgICAgICBlbmNvZGVyIDw8IGZh
bHNlOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZW5jb2RlciA8PCB0cnVlOwotICAg
IEdSZWZQdHI8R0J5dGVBcnJheT4gY2VydGlmaWNhdGUgPSBhZG9wdEdSZWYoY2VydGlmaWNhdGVE
YXRhKTsKLSAgICBlbmNvZGVyLmVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KENvcmVJUEM6
OkRhdGFSZWZlcmVuY2UoY2VydGlmaWNhdGUtPmRhdGEsIGNlcnRpZmljYXRlLT5sZW4pKTsKLSAg
ICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PihtX3Rsc0Vycm9ycyk7Ci19Ci0KLWJv
b2wgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCi17
Ci0gICAgYm9vbCBoYXNDZXJ0aWZpY2F0ZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc0Nl
cnRpZmljYXRlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFoYXNDZXJ0aWZp
Y2F0ZSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBDb3JlSVBDOjpEYXRhUmVmZXJlbmNl
IGNlcnRpZmljYXRlRGF0YVJlZmVyZW5jZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlVmFyaWFi
bGVMZW5ndGhCeXRlQXJyYXkoY2VydGlmaWNhdGVEYXRhUmVmZXJlbmNlKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgR0J5dGVBcnJheSogY2VydGlmaWNhdGVEYXRhID0gZ19ieXRlX2Fy
cmF5X3NpemVkX25ldyhjZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKLSAgICBjZXJ0
aWZpY2F0ZURhdGEgPSBnX2J5dGVfYXJyYXlfYXBwZW5kKGNlcnRpZmljYXRlRGF0YSwgY2VydGlm
aWNhdGVEYXRhUmVmZXJlbmNlLmRhdGEoKSwgY2VydGlmaWNhdGVEYXRhUmVmZXJlbmNlLnNpemUo
KSk7Ci0gICAgR1JlZlB0cjxHQnl0ZUFycmF5PiBjZXJ0aWZpY2F0ZSA9IGFkb3B0R1JlZihjZXJ0
aWZpY2F0ZURhdGEpOwotCi0gICAgR1Rsc0JhY2tlbmQqIGJhY2tlbmQgPSBnX3Rsc19iYWNrZW5k
X2dldF9kZWZhdWx0KCk7Ci0gICAgY2VydGlmaWNhdGVJbmZvLm1fY2VydGlmaWNhdGUgPSBhZG9w
dEdSZWYoR19UTFNfQ0VSVElGSUNBVEUoZ19pbml0YWJsZV9uZXcoZ190bHNfYmFja2VuZF9nZXRf
Y2VydGlmaWNhdGVfdHlwZShiYWNrZW5kKSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Y2VydGlmaWNhdGUiLCBjZXJ0aWZpY2F0ZS5nZXQoKSwgTlVMTCkpKTsKLQotICAgIHVpbnQzMl90
IHRsc0Vycm9yczsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRsc0Vycm9ycykpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBjZXJ0aWZpY2F0ZUluZm8ubV90bHNFcnJvcnMgPSBzdGF0aWNf
Y2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4odGxzRXJyb3JzKTsKLQotICAgIHJldHVybiB0cnVl
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA4ZmYxMjBjN2EyMWZlNzk0MzA0NTVmZGM1ODk2OGZmYjRhMTg5ZjAyLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBN
b2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mb19oCi0jZGVmaW5lIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
X2gKLQotI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dS
ZWZQdHIuaD4KLQotbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOwot
Y2xhc3MgQXJndW1lbnRFbmNvZGVyOwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBS
ZXNvdXJjZUVycm9yOwotY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLX0KLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLWNsYXNzIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvIHsKLXB1YmxpYzoKLSAgICBQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpOwotICAgIGV4cGxpY2l0IFBsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICBleHBsaWNpdCBQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7Ci0g
ICAgZXhwbGljaXQgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oR1Rsc0NlcnRpZmljYXRlKiwgR1Rs
c0NlcnRpZmljYXRlRmxhZ3MpOwotICAgIH5QbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpOwotCi0g
ICAgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2VydGlm
aWNhdGUuZ2V0KCk7IH0KLSAgICBHVGxzQ2VydGlmaWNhdGVGbGFncyB0bHNFcnJvcnMoKSBjb25z
dCB7IHJldHVybiBtX3Rsc0Vycm9yczsgfQotCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciYsIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJik7Ci0KLXByaXZhdGU6Ci0g
ICAgR1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+IG1fY2VydGlmaWNhdGU7Ci0gICAgR1Rsc0NlcnRp
ZmljYXRlRmxhZ3MgbV90bHNFcnJvcnM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQot
I2VuZGlmIC8vIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKaW5kZXgg
ZGM0ZTExOTE3NTdlY2UxNzVhZDQ4NWE3YWE3MjI1MmZhZmFlODg0Ni4uNTRjOTVmNWIwNDU1Mjhk
ZTRmNTM4Y2Y2OTRhYWQ5MWJlODRjY2ZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKQEAgLTI3LDcgKzI3
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKIAotI2luY2x1ZGUgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCisjaW5jbHVkZSAi
Q2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVzcG9uc2UuaD4KQEAgLTcwLDEyICs3MCwxMiBAQCBib29sIEFyZ3VtZW50Q29kZXI8
UmVzb3VyY2VSZXNwb25zZT46OmRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImIGRl
Y29kZQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3Jt
RGF0YShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291
cmNlRXJyb3IpCiB7Ci0gICAgZW5jb2RlciA8PCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhyZXNv
dXJjZUVycm9yKTsKKyAgICBlbmNvZGVyIDw8IENlcnRpZmljYXRlSW5mbyhyZXNvdXJjZUVycm9y
KTsKIH0KIAogYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjpkZWNvZGVQbGF0Zm9y
bURhdGEoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVy
cm9yKQogewotICAgIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlSW5mbzsKKyAg
ICBDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvOwogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoY2VydGlmaWNhdGVJbmZvKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDZXJ0aWZpY2F0ZUluZm8u
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q2VydGlmaWNhdGVJ
bmZvLmNwcAppbmRleCA1NGIxMDQwNDU5YjBmMDAzYWUxNjA3Y2JmZDJiZjgzMGE0ZWY5ODAwLi4x
MmRmMWFhY2E4MDI1NzlmYjg1YTYzZDBmMDFhNWY2OTAxNWYwYjg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDZXJ0aWZpY2F0ZUluZm8uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENlcnRpZmljYXRlSW5m
by5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEdfREVG
SU5FX0JPWEVEX1RZUEUoV2ViS2l0Q2VydGlmaWNhdGVJbmZvLCB3ZWJraXRfY2VydGlmaWNhdGVf
aW5mbywgd2Via2l0X2NlcnRpZmljYXRlX2luZm9fY29weSwgd2Via2l0X2NlcnRpZmljYXRlX2lu
Zm9fZnJlZSkKIAotY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIHdlYmtpdENlcnRpZmlj
YXRlSW5mb0dldENlcnRpZmljYXRlSW5mbyhXZWJLaXRDZXJ0aWZpY2F0ZUluZm8qIGluZm8pCitj
b25zdCBDZXJ0aWZpY2F0ZUluZm8mIHdlYmtpdENlcnRpZmljYXRlSW5mb0dldENlcnRpZmljYXRl
SW5mbyhXZWJLaXRDZXJ0aWZpY2F0ZUluZm8qIGluZm8pCiB7CiAgICAgQVNTRVJUKGluZm8pOwog
ICAgIHJldHVybiBpbmZvLT5jZXJ0aWZpY2F0ZUluZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDZXJ0aWZpY2F0ZUluZm9Qcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDZXJ0aWZpY2F0ZUluZm9Qcml2
YXRlLmgKaW5kZXggNjZkMjZhNDAxMWI0MTU2YTY0YTBiMDNmYTQyYmI4ZGNiODY0ODI2Mi4uNmZk
YjI0ZjY5YmRlNDhlMTA5MGUyN2ZlMDlmZDY2NzYwMzgyNzE2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q2VydGlmaWNhdGVJbmZvUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENlcnRpZmljYXRl
SW5mb1ByaXZhdGUuaApAQCAtMjAsNyArMjAsNyBAQAogI2lmbmRlZiBXZWJLaXRDZXJ0aWZpY2F0
ZUluZm9Qcml2YXRlX2gKICNkZWZpbmUgV2ViS2l0Q2VydGlmaWNhdGVJbmZvUHJpdmF0ZV9oCiAK
LSNpbmNsdWRlICJQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIgorI2luY2x1ZGUgIkNlcnRpZmlj
YXRlSW5mby5oIgogI2luY2x1ZGUgIldlYktpdENlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUg
IldlYktpdFByaXZhdGUuaCIKIApAQCAtMzUsOSArMzUsOSBAQCBzdHJ1Y3QgX1dlYktpdENlcnRp
ZmljYXRlSW5mbyB7CiAgICAgewogICAgIH0KIAotICAgIFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZp
Y2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvOworICAgIFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvIGNl
cnRpZmljYXRlSW5mbzsKIH07CiAKLWNvbnN0IFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUlu
Zm8mIHdlYmtpdENlcnRpZmljYXRlSW5mb0dldENlcnRpZmljYXRlSW5mbyhXZWJLaXRDZXJ0aWZp
Y2F0ZUluZm8qKTsKK2NvbnN0IFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvJiB3ZWJraXRDZXJ0aWZp
Y2F0ZUluZm9HZXRDZXJ0aWZpY2F0ZUluZm8oV2ViS2l0Q2VydGlmaWNhdGVJbmZvKik7CiAKICNl
bmRpZiAvLyBXZWJLaXRDZXJ0aWZpY2F0ZUluZm9Qcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggOTgxMGQ4NzEx
YzE0OGFjMjA2MDE0ZWQ5MjkyZmZiNzAwZjU1NTRlNi4uYjU4ODA0MGY4MDk1MDdlMDc5Njk1YmNh
YjZlNzcwMjNiZjA5NWE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTIxLDggKzIxLDggQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3LmgiCiAKKyNpbmNsdWRlICJDZXJ0aWZpY2F0
ZUluZm8uaCIKICNpbmNsdWRlICJJbWFnZU9wdGlvbnMuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUNl
cnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIldlYkNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1
ZGUgIldlYkNvbnRleHRNZW51SXRlbS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51SXRlbURh
dGEuaCIKQEAgLTMwMjgsNyArMzAyOCw3IEBAIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19nZXRf
dGxzX2luZm8oV2ViS2l0V2ViVmlldyogd2ViVmlldywgR1Rsc0NlcnRpZmljYXRlKioKICAgICBp
ZiAoIW1haW5GcmFtZSkKICAgICAgICAgcmV0dXJuIEZBTFNFOwogCi0gICAgY29uc3QgUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbyA9IG1haW5GcmFtZS0+Y2VydGlmaWNh
dGVJbmZvKCktPnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCk7CisgICAgY29uc3QgQ2VydGlmaWNh
dGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8gPSBtYWluRnJhbWUtPmNlcnRpZmljYXRlSW5mbygpLT5j
ZXJ0aWZpY2F0ZUluZm8oKTsKICAgICBpZiAoY2VydGlmaWNhdGUpCiAgICAgICAgICpjZXJ0aWZp
Y2F0ZSA9IGNlcnRpZmljYXRlSW5mby5jZXJ0aWZpY2F0ZSgpOwogICAgIGlmIChlcnJvcnMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAKaW5kZXggOWY2NDg4
NWFlODg0ODRkYzc0MTUxNTcyOWY1NTRiOWY1MjZhNWRkNS4uOGQyMGM3NjY4ZTI1ZTU1Y2JjOGU5
MWFjMTA3MTlmZWM3NjM3NDdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVByb3h5LmNwcApAQCAtNjYsNyArNjYsNyBAQCB2b2lkIEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHk6OnVzZUNyZWRlbnRpYWwoV2ViQ3JlZGVudGlhbCogY3JlZGVudGlhbCkKICAgICAg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OkNv
bnRpbnVlV2l0aG91dENyZWRlbnRpYWxGb3JDaGFsbGVuZ2UobV9jaGFsbGVuZ2VJRCksIDApOwog
ICAgIGVsc2UgewogICAgICAgICBXZWJDZXJ0aWZpY2F0ZUluZm8qIGNlcnRpZmljYXRlSW5mbyA9
IGNyZWRlbnRpYWwtPmNlcnRpZmljYXRlSW5mbygpOwotICAgICAgICBQbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mbyBwbGF0Zm9ybUluZm8gPSBjZXJ0aWZpY2F0ZUluZm8gPyBjZXJ0aWZpY2F0ZUluZm8t
PnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgOiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpOwor
ICAgICAgICBDZXJ0aWZpY2F0ZUluZm8gcGxhdGZvcm1JbmZvID0gY2VydGlmaWNhdGVJbmZvID8g
Y2VydGlmaWNhdGVJbmZvLT5jZXJ0aWZpY2F0ZUluZm8oKSA6IENlcnRpZmljYXRlSW5mbygpOwog
ICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkF1dGhlbnRpY2F0aW9uTWFuYWdl
cjo6VXNlQ3JlZGVudGlhbEZvckNoYWxsZW5nZShtX2NoYWxsZW5nZUlELCBjcmVkZW50aWFsLT5j
b3JlKCksIHBsYXRmb3JtSW5mbyksIDApOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCmluZGV4IGM2YzljN2NkZmEyY2ZlODNhYWVhMjUyYzJhNDkzYzRlMmIz
ODcxMmUuLmI4OGY3MWM5ZGFlNDg5NjY5ZThiMmZjM2I3OTkxYThlMzgzZDdmYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTEwOTcsMTIgKzEwOTcsMTIgQEAg
dm9pZCBXZWJDb250ZXh0OjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29u
c3QgV2ViQ2VydGlmaWNhdGVJbmZvKgogewogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAg
ICAgaWYgKG1fdXNlc05ldHdvcmtQcm9jZXNzICYmIG1fbmV0d29ya1Byb2Nlc3MpIHsKLSAgICAg
ICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFsbG93
U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjZXJ0aWZpY2F0ZS0+cGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8oKSwgaG9zdCksIDApOworICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVG
b3JIb3N0KGNlcnRpZmljYXRlLT5jZXJ0aWZpY2F0ZUluZm8oKSwgaG9zdCksIDApOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogI2Vsc2UKICNpZiBVU0UoU09VUCkKLSAgICBtX3Byb2Nlc3Nlc1sw
XS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6QWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNh
dGVGb3JIb3N0KGNlcnRpZmljYXRlLT5wbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpLCBob3N0KSwg
MCk7CisgICAgbV9wcm9jZXNzZXNbMF0tPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkFsbG93
U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjZXJ0aWZpY2F0ZS0+Y2VydGlmaWNhdGVJ
bmZvKCksIGhvc3QpLCAwKTsKICAgICByZXR1cm47CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShj
ZXJ0aWZpY2F0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJh
bWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAK
aW5kZXggNDcyNjZlNTcxNDQ3Y2JiYzA1NzM3YTRhZWQyNjViMzQyYzE4Zjc0MC4uNjczZTdlYzk4
YTA0NDUwNDcwMjQwNDVhNmViMmJmZjc0NjkwZGRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJGcmFtZVByb3h5LmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgV2ViRnJhbWVQ
cm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgbV9mcmFtZUxvYWRTdGF0ZS5kaWRG
YWlsUHJvdmlzaW9uYWxMb2FkKCk7CiB9CiAKLXZvaWQgV2ViRnJhbWVQcm94eTo6ZGlkQ29tbWl0
TG9hZChjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRl
SW5mbyYgY2VydGlmaWNhdGVJbmZvKQordm9pZCBXZWJGcmFtZVByb3h5OjpkaWRDb21taXRMb2Fk
KGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlm
aWNhdGVJbmZvKQogewogICAgIG1fZnJhbWVMb2FkU3RhdGUuZGlkQ29tbWl0TG9hZCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAppbmRleCAwODg1MGU4NjFiOWQ3
Y2I0ZTg4N2UxN2Q5YzA4NWQ3NDJkNTJmM2UyLi43Yjg1ZmYyMDM2MDJjYjVhY2IzMTQ2YTNmNzlh
NTIzZDQ3MGQwOTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJh
bWVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgK
QEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIENvcmVJUEMgewogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotY2xhc3MgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm87CitjbGFzcyBDZXJ0aWZpY2F0ZUlu
Zm87CiBjbGFzcyBXZWJDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBXZWJGb3JtU3VibWlzc2lvbkxp
c3RlbmVyUHJveHk7CiBjbGFzcyBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk7CkBAIC05OSw3
ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKGNvbnN0
IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZChjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkKCk7Ci0gICAgdm9pZCBkaWRDb21taXRMb2FkKGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUsIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJik7CisgICAgdm9pZCBkaWRDb21taXRM
b2FkKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYpOwog
ICAgIHZvaWQgZGlkRmluaXNoTG9hZCgpOwogICAgIHZvaWQgZGlkRmFpbExvYWQoKTsKICAgICB2
b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb24oY29uc3QgU3RyaW5nJik7IC8vIGVnLiBhbmNo
b3IgbmF2aWdhdGlvbiwgc2Vzc2lvbiBzdGF0ZSBjaGFuZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDI0NGZhOWFiOTAxMjY1OGMyNDJmMWI1OTNiYmM1
OGMxMTAxNzAyOWQuLmRlZmExZTU3ZTRmMGEzNDQ5OTY2YWFlNzdmNTI2NGQyZTY3OTU1ZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMjEyLDcgKzIy
MTIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJMb2FkRGVwZW5kZW50Q2FsbGJhY2tzKCkK
ICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMyX3Qgb3BhcXVlRnJh
bWVMb2FkVHlwZSwgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5m
bywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIHVpbnQzMl90IG9wYXF1ZUZyYW1lTG9hZFR5cGUsIGNvbnN0IENlcnRpZmljYXRlSW5m
byYgY2VydGlmaWNhdGVJbmZvLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsK
ICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVz
c2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNmJmMGNkMDQzZDVjMWFk
ODdiNGFjNDk0ZGU2NTRjNGNhNzc3MjQzYS4uM2VkYzhhODZhMDk2NGM2NmI4NjJiM2ViNzY4MDI5
ZGY4ZmEzMmJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MTI0LDExICsxMjQsMTEgQEAgdHlwZWRlZiBHdGtXaWRnZXQqIFBsYXRmb3JtV2lkZ2V0OwogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYk1vdXNlRXZlbnQ7CiBjbGFzcyBOYXRp
dmVXZWJXaGVlbEV2ZW50OwogY2xhc3MgUGFnZUNsaWVudDsKLWNsYXNzIFBsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvOwogY2xhc3MgU3RyaW5nUGFpclZlY3RvcjsKIGNsYXNzIFdlYkJhY2tGb3J3YXJk
TGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CkBAIC03NzIsNyArNzcyLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdW5yZWFjaGFibGVV
UkwsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwotICAgIHZvaWQgZGlkQ29t
bWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1aW50MzJfdCBmcmFt
ZUxvYWRUeXBlLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOwogICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGRpZEZpbmlzaExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAg
IHZvaWQgZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDJkZDVi
OTcxZTlhMDhkMzRiNDU1N2NkYjU3MjI0MTVmYjkyNjA4MGMuLmFjYWY3MWFlZWJhZThiMTY4YmEz
M2Q0YzFjYzAxMjZmMDU2MGJiZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTExLDcgKzExMSw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkQ3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCkK
IAogICAgICMgRnJhbWUgbG9hZCBtZXNzYWdlcwotICAgIERpZENvbW1pdExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBtaW1lVHlwZSwgdWludDMyX3QgbG9hZFR5cGUs
IFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvLCBXZWJLaXQ6
OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSBWYXJpYWRpYworICAg
IERpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBtaW1l
VHlwZSwgdWludDMyX3QgbG9hZFR5cGUsIFdlYktpdDo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmlj
YXRlSW5mbywgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0
YSkgVmFyaWFkaWMKICAgICBEaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdl
YkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVz
c2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGljCiAgICAgRGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3Is
IFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlh
ZGljCiAgICAgRGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgVmFyaWFk
aWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBjZGIyNjkyNzliNDk2N2FkMmFhYjI1MTY5NTc5MjcxYjI5ZDRhNWY3Li4zMDVhNmQ4
YWU3MzgwZDFiOGZkMGE0MTMyOWFhNGQwYzFkNjE5ZDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTMwLDggKzExMzAsOCBA
QAogCQlCQ0YxODYzODE2N0QwNzFFMDBBMUE4NUEgLyogQ2FjaGVNb2RlbC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0YxODYzNzE2N0QwNzFFMDBB
MUE4NUEgLyogQ2FjaGVNb2RlbC5jcHAgKi87IH07CiAJCUJDRjRERTIzMTY4RTRCRDUwMEM5NEFG
QyAvKiBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjRERTIyMTY4RTRCRDUwMEM5NEFGQyAvKiBOZXR3b3Jr
UHJvY2Vzc1N1cHBsZW1lbnQuaCAqLzsgfTsKIAkJQkNGNERFMjUxNjhGQTQ0ODAwQzk0QUZDIC8q
IFdlYkNvbnRleHRTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0Y0REUyNDE2OEZBNDQ4MDBDOTRBRkMgLyogV2ViQ29udGV4dFN1cHBs
ZW1lbnQuaCAqLzsgfTsKLQkJQkNGNTA1RTcxMjQzMDQ3QjAwNTk1NUFFIC8qIFBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0Y1MDVFNTEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8u
aCAqLzsgfTsKLQkJQkNGNTA1RTgxMjQzMDQ3QjAwNTk1NUFFIC8qIFBsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNGNTA1RTYxMjQzMDQ3QjAwNTk1NUFFIC8qIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1tICov
OyB9OworCQlCQ0Y1MDVFNzEyNDMwNDdCMDA1OTU1QUUgLyogQ2VydGlmaWNhdGVJbmZvLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y1MDVFNTEyNDMw
NDdCMDA1OTU1QUUgLyogQ2VydGlmaWNhdGVJbmZvLmggKi87IH07CisJCUJDRjUwNUU4MTI0MzA0
N0IwMDU5NTVBRSAvKiBDZXJ0aWZpY2F0ZUluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y1MDVFNjEyNDMwNDdCMDA1OTU1QUUgLyogQ2VydGlm
aWNhdGVJbmZvLm1tICovOyB9OwogCQlCQ0Y1MDcyODEyNDMyOUFBMDA1OTU1QUUgLyogV2ViQ2Vy
dGlmaWNhdGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0Y1MDcyNjEyNDMyOUFBMDA1OTU1QUUgLyogV2ViQ2VydGlmaWNhdGVJbmZvLmggKi87
IH07CiAJCUJDRjY5Rjg2MTE3NkNENkYwMDQ3MUE1MiAvKiBXZWJIaXN0b3J5Q2xpZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjY5Rjg0MTE3
NkNENkYwMDQ3MUE1MiAvKiBXZWJIaXN0b3J5Q2xpZW50LmNwcCAqLzsgfTsKIAkJQkNGNjlGODcx
MTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3RvcnlDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjY5Rjg1MTE3NkNENkYwMDQ3MUE1MiAvKiBX
ZWJIaXN0b3J5Q2xpZW50LmggKi87IH07CkBAIC0yNjk1LDggKzI2OTUsOCBAQAogCQlCQ0YxODYz
NzE2N0QwNzFFMDBBMUE4NUEgLyogQ2FjaGVNb2RlbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDYWNoZU1vZGVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkNGNERFMjIxNjhFNEJENTAwQzk0QUZDIC8qIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc1N1cHBs
ZW1lbnQuaDsgcGF0aCA9IE5ldHdvcmsvTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRjRERTI0MTY4RkE0NDgwMEM5NEFGQyAvKiBXZWJD
b250ZXh0U3VwcGxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJD
b250ZXh0U3VwcGxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0Y1MDVF
NTEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNGNTA1RTYxMjQzMDQ3QjAwNTk1NUFFIC8qIFBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUJDRjUwNUU1MTI0MzA0N0IwMDU5NTVBRSAvKiBDZXJ0aWZpY2F0ZUluZm8uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2VydGlmaWNhdGVJbmZvLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDRjUwNUU2MTI0MzA0N0IwMDU5NTVBRSAvKiBDZXJ0aWZp
Y2F0ZUluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDZXJ0
aWZpY2F0ZUluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRjUwNjg0MTI0
MzE4NjEwMDU5NTVBRSAvKiBTZWN1cml0eS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IFNl
Y3VyaXR5LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1NlY3Vy
aXR5LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJQkNGNTA3MjYx
MjQzMjlBQTAwNTk1NUFFIC8qIFdlYkNlcnRpZmljYXRlSW5mby5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDZXJ0aWZpY2F0ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkNGNjlGODQxMTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3RvcnlDbGllbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSGlzdG9yeUNsaWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NjQxLDggKzQ2NDEsOCBAQAog
CQkJCUM1NzRBNTgwMTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMubW0gKi8sCiAJ
CQkJRTE5NTgyRDIxNTNDQkZENzAwQjYwODc1IC8qIFBERktpdEltcG9ydHMuaCAqLywKIAkJCQlF
MTk1ODJENDE1M0NDMDUzMDBCNjA4NzUgLyogUERGS2l0SW1wb3J0cy5tbSAqLywKLQkJCQlCQ0Y1
MDVFNTEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCAqLywKLQkJ
CQlCQ0Y1MDVFNjEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0g
Ki8sCisJCQkJQkNGNTA1RTUxMjQzMDQ3QjAwNTk1NUFFIC8qIENlcnRpZmljYXRlSW5mby5oICov
LAorCQkJCUJDRjUwNUU2MTI0MzA0N0IwMDU5NTVBRSAvKiBDZXJ0aWZpY2F0ZUluZm8ubW0gKi8s
CiAJCQkJRTFDQzFCOEYxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mb01hYy5tbSAqLywKIAkJ
CQkyRDQ3QjU2QTE4MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0g
Ki8sCiAJCQkJMkQ0N0I1NkIxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0
b3JlLmggKi8sCkBAIC01NjMyLDcgKzU2MzIsNyBAQAogCQkJCUM1NzRBNTgxMTJFNjY2ODEwMDJE
RkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOTU4MkQzMTUz
Q0JGRDcwMEI2MDg3NSAvKiBQREZLaXRJbXBvcnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUZD
QjE4OTE3QkJGRTAzMDAzOTRDRDggLyogU3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQlCQ0Y1MDVFNzEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCUJDRjUwNUU3MTI0MzA0N0IwMDU5
NTVBRSAvKiBDZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTAwRDRGMTgy
RDZGNTAwMDA4N0RENyAvKiBXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZUludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0M0M0FCQjEyN0I5NURDMDAzMTdGMTYgLyogUGxhdGZvcm1Qb3B1cE1l
bnVEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg3ODBGQzExNjFDMkI4MDBDQzI3NjggLyog
UGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCkBAIC02OTQ1LDcgKzY5
NDUsNyBAQAogCQkJCTJEMkFERjEwMTYzNjREODIwMDE5N0U0NyAvKiBQREZQbHVnaW5DaG9pY2VB
bm5vdGF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ0MjlCRkQxNzIxRTJDNzAwRUM2ODFG
IC8qIFBERlBsdWdpblBhc3N3b3JkRmllbGQubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDJBREYw
OTE2MzYyREQ1MDAxOTdFNDcgLyogUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0gaW4gU291cmNl
cyAqLywKLQkJCQlCQ0Y1MDVFODEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8ubW0gaW4gU291cmNlcyAqLywKKwkJCQlCQ0Y1MDVFODEyNDMwNDdCMDA1OTU1QUUgLyog
Q2VydGlmaWNhdGVJbmZvLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDNDNBQkExMjdCOTVEQzAw
MzE3RjE2IC8qIFBsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QTZGQjdEMjExRTY1MUUyMDBEQjEzNzEgLyogUGx1Z2luLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTMxQTY3RTBDMTY1QjJBOTkwMDZDQkE2NiAvKiBQbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGQ1NzUxNzMyMWYyNmMwODM1NzBmODJk
YWUyMGUwZWU5YjliZmU4YmYuLmE1Yjg0NDljNDc3MDZkY2Q1NTg2NDI1ZDUwM2NkMTdiMGY0ZTNk
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmNwcApAQCAtMjgsMTEgKzI4LDExIEBACiAKICNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQogCisjaW5jbHVkZSAiQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAi
RGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXJNZXNz
YWdlcy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgpAQCAtOTksNyArOTksNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVy
OjpkaWRTZW5kRGF0YSh1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0Jl
UwogICAgIG1fY29yZUxvYWRlci0+ZGlkU2VuZERhdGEoYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9C
ZVNlbnQpOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2VX
aXRoQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25z
dCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIG5lZWRzQ29u
dGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQordm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyhjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJv
b2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCiB7CiAgICAgTE9HKE5l
dHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25z
ZVdpdGhDZXJ0aWZpY2F0ZUluZm8gZm9yICclcycuIFN0YXR1cyAlZC4iLCBtX2NvcmVMb2FkZXIt
PnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlci5oCmluZGV4IDA4MTJjOTlhZjU4ZDhkNWE2OTI0NDVhOTljZGIzZmJmMGU0YmM5
OWMuLmZkMmVmYTJhOTllOTk2MWY1ZGI1OTFjMGVjMDk4Y2UzODU2Mjc1MzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5o
CkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi1jbGFzcyBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzsKK2NsYXNzIENlcnRpZmlj
YXRlSW5mbzsKIHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xh
c3MgV2ViUmVzb3VyY2VMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJSZXNvdXJjZUxvYWRl
cj4sIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdlU2VuZGVyIHsKQEAgLTc2LDcgKzc2LDcgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9u
c2UpOwogICAgIHZvaWQgZGlkU2VuZERhdGEodWludDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0
b3RhbEJ5dGVzVG9CZVNlbnQpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRp
ZmljYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8mLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VN
ZXNzYWdlKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8o
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYs
IGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpOwogICAgIHZvaWQg
ZGlkUmVjZWl2ZURhdGEoY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5j
b2RlZERhdGFMZW5ndGgpOwogICAgIHZvaWQgZGlkRmluaXNoUmVzb3VyY2VMb2FkKGRvdWJsZSBm
aW5pc2hUaW1lKTsKICAgICB2b2lkIGRpZEZhaWxSZXNvdXJjZUxvYWQoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCmluZGV4IDdiNDA0
NWU2NjlhNGY5ZWZkZDU2MmRlMWEyOTg3NDJhOGFlZjI2YWYuLjk4YTg3OGZkZjAxNWUxNjA0OWE2
MTA4N2Y5MmMzNmNjNjAyZjFhZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KQEAg
LTI5LDcgKzI5LDcgQEAgbWVzc2FnZXMgLT4gV2ViUmVzb3VyY2VMb2FkZXIgTGVnYWN5UmVjZWl2
ZXIgewogICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFdlJ2xsIG5lZWQgbXVjaCBtb3Jl
IGdyYW51bGFyaXR5IGZvciByZXNwb25zZSBtZXNzYWdlcy4KICAgICBXaWxsU2VuZFJlcXVlc3Qo
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgcmVkaXJlY3RSZXNwb25zZSkKICAgICBEaWRTZW5kRGF0YSh1aW50NjRfdCBieXRlc1NlbnQs
IHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2VudCkKLSAgICBEaWRSZWNlaXZlUmVzcG9uc2VXaXRo
Q2VydGlmaWNhdGVJbmZvKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYktp
dDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvLCBib29sIG5lZWRzQ29u
dGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQorICAgIERpZFJlY2VpdmVSZXNwb25zZVdp
dGhDZXJ0aWZpY2F0ZUluZm8oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2Vi
S2l0OjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvLCBib29sIG5lZWRzQ29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQogICAgIERpZFJlY2VpdmVEYXRhKENvcmVJUEM6OkRh
dGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKICAgICBEaWRGaW5p
c2hSZXNvdXJjZUxvYWQoZG91YmxlIGZpbmlzaFRpbWUpCiAgICAgRGlkRmFpbFJlc291cmNlTG9h
ZChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAppbmRleCBmOTdkNTgyNjQyMDNmYmQ2YzdhMDlmNTdkNzQ2ZDg0NTM3MzIxYTIxLi41
OWZmOGQ4OTQwZWFmYTE5NGMwZjcxOGQ5YzkxNmY2ODg1MTIyMGZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMjcsMTMgKzI3LDEzIEBACiAjaW5jbHVkZSAiV2ViRnJh
bWVMb2FkZXJDbGllbnQuaCIKIAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uTWFuYWdlci5oIgor
I2luY2x1ZGUgIkNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIK
ICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0
ZW5zaW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgiCiAj
aW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgotI2luY2x1ZGUgIlBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1
ZGUgIldlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lc3Nh
Z2VzLmgiCkBAIC00NDEsNyArNDQxLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRDb21taXRMb2FkKCkKIAogICAgIC8vIE5vdGlmeSB0aGUgVUlQcm9jZXNzLgogCi0g
ICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDb21taXRMb2FkRm9y
RnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCByZXNwb25zZS5taW1lVHlwZSgpLCBtX2ZyYW1lLT5j
b3JlRnJhbWUoKS0+bG9hZGVyKCkubG9hZFR5cGUoKSwgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8o
cmVzcG9uc2UpLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQo
KSkpKTsKKyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENvbW1p
dExvYWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIHJlc3BvbnNlLm1pbWVUeXBlKCksIG1f
ZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkVHlwZSgpLCBDZXJ0aWZpY2F0ZUluZm8o
cmVzcG9uc2UpLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQo
KSkpKTsKIAogICAgIHdlYlBhZ2UtPmRpZENvbW1pdExvYWQobV9mcmFtZSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGY4M2FkNDQyZDE4NmQwZmUxN2JiZWY2
MWU5ZjMzZWRlNDZjZGVhN2EuLmU4MDk5OWZkZDU3ZDU2ZmMyNWFjZGMzNGE5MDIyYWU0ZGQwYmJl
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC03NCw3ICs3NCw3
IEBAIGNsYXNzIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjsKIGNsYXNzIFdlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcjsKICNlbHNlCiAjaWYgVVNFKFNPVVApCi1jbGFzcyBQbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mbzsKK2NsYXNzIENlcnRpZmljYXRlSW5mbzsKICNlbmRpZgogI2VuZGlmCiAKQEAgLTE3
NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVBY3RpdmVQYWdlcygpOwogCiAj
aWYgIUVOQUJMRShORVRXT1JLX1BST0NFU1MpICYmIFVTRShTT1VQKQotICAgIHZvaWQgYWxsb3dT
cGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvJiwgY29uc3QgU3RyaW5nJiBob3N0KTsKKyAgICB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0Nl
cnRpZmljYXRlRm9ySG9zdChjb25zdCBDZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBTdHJpbmcmIGhv
c3QpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMTEyN2QwMTFiYmQ1NjhmZjIzMDQ4NjAyMThi
MDFmNGJiZGI5MDc3My4uZDJjNGFjMDViMzg5MjcxYTlkMmU2MzU1NGZmZWFiNzI4NTZlOWZlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
bgpAQCAtODcsNiArODcsNiBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKICNlbmRpZgogCiAjaWYgIUVOQUJMRShORVRXT1JLX1BST0NFU1MpICYmIFVTRShTT1VQKQot
ICAgIEFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChXZWJLaXQ6OlBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlLCBXVEY6OlN0cmluZyBob3N0KQorICAgIEFsbG93
U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChXZWJLaXQ6OkNlcnRpZmljYXRlSW5mbyBj
ZXJ0aWZpY2F0ZSwgV1RGOjpTdHJpbmcgaG9zdCkKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKaW5kZXggNzljZjk3ZGFl
OTJlZjNlMjAyMWM0OGJmMzY3MjNkZjdhOTk1YTUzNy4uYzBjMjA2YzUxMmY1ZTg2ZDc2OGY2N2Rj
YjdmMTUxN2VhN2U5ZjYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9z
b3VwL1dlYlByb2Nlc3NTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3Nv
dXAvV2ViUHJvY2Vzc1NvdXAuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiU2VjY29t
cEZpbHRlcnNXZWJQcm9jZXNzRWZsLmgiCiAjZW5kaWYKIAotI2luY2x1ZGUgIlBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvLmgiCisjaW5jbHVkZSAiQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAi
V2ViQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCIKICNpbmNsdWRlICJXZWJTb3VwUmVxdWVzdE1hbmFnZXIuaCIKQEAgLTIxMCw3ICsyMTAs
NyBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldElnbm9yZVRMU0Vycm9ycyhib29sIGlnbm9yZVRMU0Vy
cm9ycykKIH0KIAogI2lmICFFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotdm9pZCBXZWJQcm9jZXNz
OjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgU3RyaW5nJiBob3N0KQordm9pZCBX
ZWJQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgQ2Vy
dGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGNvbnN0IFN0cmluZyYgaG9zdCkKIHsKICAg
ICBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c2V0Q2xpZW50Q2VydGlmaWNhdGUoaG9zdCwgY2Vy
dGlmaWNhdGVJbmZvLmNlcnRpZmljYXRlKCkpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>