<?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>123158</bug_id>
          
          <creation_ts>2013-10-22 06:09:26 -0700</creation_ts>
          <short_desc>[WK2] UserMediaClient support</short_desc>
          <delta_ts>2014-11-12 00:38:15 -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>WebKit2</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>79203</blocked>
    
    <blocked>124288</blocked>
    
    <blocked>136449</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>agouaillard</cc>
    
    <cc>berto</cc>
    
    <cc>buildbot</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>isair</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kaisers</cc>
    
    <cc>lauro.neto</cc>
    
    <cc>mrobinson</cc>
    
    <cc>nick.diego</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>praveen.j</cc>
    
    <cc>rakuco</cc>
    
    <cc>rego+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>vjaquez</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>942267</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-22 06:09:26 -0700</bug_when>
    <thetext>We need a UserMediaClient in WK2, to ask the user access to audio/video devices. It would be similar to the GeolocationPermission client, I think.

In the GTK API I propose to integrate it via the permission-request signal.

I started a patch, not nearly ready yet though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943614</commentid>
    <comment_count>1</comment_count>
      <attachid>215183</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-25 09:27:52 -0700</bug_when>
    <thetext>Created attachment 215183
[wk2] usermediaclient

First shot for EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943617</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-25 09:29:54 -0700</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>943618</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-25 09:30:07 -0700</bug_when>
    <thetext>Attachment 215183 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/Modules/mediastream/UserMediaRequest.cpp&apos;, u&apos;Source/WebCore/Modules/mediastream/UserMediaRequest.h&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/GNUmakefile.am&apos;, u&apos;Source/WebKit2/GNUmakefile.list.am&apos;, u&apos;Source/WebKit2/Shared/API/c/WKBase.h&apos;, u&apos;Source/WebKit2/Shared/APIObject.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKAPICast.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKPage.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequestPrivate.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/webkit2.h&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.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/UIProcess/WebUIClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebUIClient.h&apos;, u&apos;Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp&apos;, u&apos;Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebUserMediaClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebUserMediaClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.messages.in&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/MiniBrowser/gtk/BrowserWindow.c&apos;, u&apos;Tools/WebKitTestRunner/TestController.cpp&apos;]&quot; exit_code: 1
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h&quot;
Tools/MiniBrowser/gtk/BrowserWindow.c:417:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/MiniBrowser/gtk/BrowserWindow.c:418:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/MiniBrowser/gtk/BrowserWindow.c:419:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/MiniBrowser/gtk/BrowserWindow.c:420:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/webkit2.h&quot;
Total errors found: 4 in 37 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>943624</commentid>
    <comment_count>4</comment_count>
      <attachid>215183</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-25 09:35:52 -0700</bug_when>
    <thetext>Comment on attachment 215183
[wk2] usermediaclient

Attachment 215183 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/10658006</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943629</commentid>
    <comment_count>5</comment_count>
      <attachid>215183</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-25 09:43:19 -0700</bug_when>
    <thetext>Comment on attachment 215183
[wk2] usermediaclient

Attachment 215183 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/12508008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943639</commentid>
    <comment_count>6</comment_count>
      <attachid>215183</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-25 10:11:15 -0700</bug_when>
    <thetext>Comment on attachment 215183
[wk2] usermediaclient

Attachment 215183 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/10918081</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943707</commentid>
    <comment_count>7</comment_count>
      <attachid>215183</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-25 13:00:17 -0700</bug_when>
    <thetext>Comment on attachment 215183
[wk2] usermediaclient

View in context: https://bugs.webkit.org/attachment.cgi?id=215183&amp;action=review

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:111
&gt; +    return document() ? document()-&gt;frame() : 0;

nullptr please, not 0

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.h:63
&gt; +    Document* document() const;

Can this be null? If not, then please use Document&amp; instead of Document*.

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp:39
&gt; +    m_manager = 0;

Please add nullptr.

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp:48
&gt; +    m_manager = 0;

Please add nullptr.

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp:53
&gt; +    m_manager = 0;

Please add nullptr.

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.h:32
&gt; +    static PassRefPtr&lt;UserMediaPermissionRequestProxy&gt; create(UserMediaPermissionRequestManagerProxy* manager, uint64_t userMediaPermissionRequestID)

Argument type should be UserMediaPermissionRequestManagerProxy&amp;.

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.h:43
&gt; +    UserMediaPermissionRequestProxy(UserMediaPermissionRequestManagerProxy*, uint64_t userMediaPermissionRequestID);

Argument type should be UserMediaPermissionRequestManagerProxy&amp;.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:57
&gt; +    Frame* frame = request-&gt;frame();

What guarantees this won’t be null?

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:61
&gt; +    WebFrameLoaderClient* webFrameLoaderClient = toWebFrameLoaderClient(frame-&gt;loader().client());
&gt; +    WebFrame* webFrame = webFrameLoaderClient ? webFrameLoaderClient-&gt;webFrame() : 0;
&gt; +    ASSERT(webFrame);

Doesn’t make sense to check for null and then assert that it’s not null. Either remove the null checks, or make them something more than an assertion.

Also, please use nullptr, not 0.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:63
&gt; +    SecurityOrigin* origin = frame-&gt;document()-&gt;securityOrigin();

Since this can’t be null, if you want to use a local variable, please use a reference, not a pointer.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:65
&gt; +

Stray blank line.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h:36
&gt; +    explicit UserMediaRequestManager(WebPage*);

This should take WebPage&amp; instead of WebPage*.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h:38
&gt; +    void requestPermission(PassRefPtr&lt;WebCore::UserMediaRequest&gt;);

This should take WebCore::UserMediaRequest&amp; instead of PassRefPtr.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h:39
&gt; +    void cancelRequest(WebCore::UserMediaRequest*);

This should take WebCore::UserMediaRequest&amp; instead of WebCore::UserMediaRequest*.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h:45
&gt; +    typedef HashMap&lt;uint64_t, WebCore::UserMediaRequest*&gt; IDToUserMediaRequestMap;
&gt; +    typedef HashMap&lt;WebCore::UserMediaRequest*, uint64_t&gt; UserMediaRequestToIDMap;

These should not be typedef&apos;d. You should just use the types explicitly below.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h:49
&gt; +    WebPage* m_page;

This should be WebPage&amp; instead of WebPage*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943865</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-26 02:33:58 -0700</bug_when>
    <thetext>Thanks for the review, Darin! I will upload new versions of the patch to make EWS happy and address your comments as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943866</commentid>
    <comment_count>9</comment_count>
      <attachid>215243</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-26 03:03:10 -0700</bug_when>
    <thetext>Created attachment 215243
[wk2] usermediaclient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943867</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-26 03:05:36 -0700</bug_when>
    <thetext>Attachment 215243 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/Modules/mediastream/UserMediaRequest.cpp&apos;, u&apos;Source/WebCore/Modules/mediastream/UserMediaRequest.h&apos;, u&apos;Source/WebKit2/CMakeLists.txt&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/GNUmakefile.am&apos;, u&apos;Source/WebKit2/GNUmakefile.list.am&apos;, u&apos;Source/WebKit2/Shared/API/c/WKBase.h&apos;, u&apos;Source/WebKit2/Shared/APIObject.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKAPICast.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKPage.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequestPrivate.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/webkit2.h&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.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/UIProcess/WebUIClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebUIClient.h&apos;, u&apos;Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp&apos;, u&apos;Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebUserMediaClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebUserMediaClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.messages.in&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/MiniBrowser/gtk/BrowserWindow.c&apos;, u&apos;Tools/WebKitTestRunner/TestController.cpp&apos;]&quot; exit_code: 1
Source/WebKit2/CMakeLists.txt:437:  Alphabetical sorting problem. &quot;UIProcess/UserMediaPermissionRequestManagerProxy.cpp&quot; should be before &quot;UIProcess/Storage/LocalStorageDatabaseTracker.cpp&quot;.  [list/order] [5]
Source/WebKit2/CMakeLists.txt:533:  Alphabetical sorting problem. &quot;WebProcess/MediaStream/UserMediaRequestManager.cpp&quot; should be before &quot;WebProcess/Storage/StorageNamespaceImpl.cpp&quot;.  [list/order] [5]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h&quot;
Tools/MiniBrowser/gtk/BrowserWindow.c:417:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/MiniBrowser/gtk/BrowserWindow.c:418:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/MiniBrowser/gtk/BrowserWindow.c:419:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/MiniBrowser/gtk/BrowserWindow.c:420:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/webkit2.h&quot;
Total errors found: 6 in 38 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>943868</commentid>
    <comment_count>11</comment_count>
      <attachid>215244</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-26 03:21:19 -0700</bug_when>
    <thetext>Created attachment 215244
[wk2] usermediaclient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943869</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-26 03:24:47 -0700</bug_when>
    <thetext>Attachment 215244 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/Modules/mediastream/UserMediaRequest.cpp&apos;, u&apos;Source/WebCore/Modules/mediastream/UserMediaRequest.h&apos;, u&apos;Source/WebKit2/CMakeLists.txt&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/GNUmakefile.am&apos;, u&apos;Source/WebKit2/GNUmakefile.list.am&apos;, u&apos;Source/WebKit2/Shared/API/c/WKBase.h&apos;, u&apos;Source/WebKit2/Shared/APIObject.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKAPICast.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKPage.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequestPrivate.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/webkit2.h&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.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/UIProcess/WebUIClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebUIClient.h&apos;, u&apos;Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp&apos;, u&apos;Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebUserMediaClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebUserMediaClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.messages.in&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/MiniBrowser/gtk/BrowserWindow.c&apos;, u&apos;Tools/WebKitTestRunner/TestController.cpp&apos;]&quot; exit_code: 1
Source/WebKit2/CMakeLists.txt:428:  Alphabetical sorting problem. &quot;UIProcess/UserMediaPermissionRequestManagerProxy.cpp&quot; should be before &quot;UIProcess/Notifications/WebNotificationProvider.cpp&quot;.  [list/order] [5]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h&quot;
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/webkit2.h&quot;
Total errors found: 1 in 38 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>943870</commentid>
    <comment_count>13</comment_count>
      <attachid>215244</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-26 03:55:18 -0700</bug_when>
    <thetext>Comment on attachment 215244
[wk2] usermediaclient

Attachment 215244 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/11958008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943871</commentid>
    <comment_count>14</comment_count>
      <attachid>215244</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-10-26 03:58:49 -0700</bug_when>
    <thetext>Comment on attachment 215244
[wk2] usermediaclient

View in context: https://bugs.webkit.org/attachment.cgi?id=215244&amp;action=review

&gt; Source/WebKit2/UIProcess/API/C/WKPage.h:288
&gt; +    WKPageDecidePolicyForUserMediaPermissionRequestCallback             decidePolicyForUserMediaPermissionRequest;
&gt; +

I think you need to add a new interface version here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943873</commentid>
    <comment_count>15</comment_count>
      <attachid>215244</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-26 04:02:52 -0700</bug_when>
    <thetext>Comment on attachment 215244
[wk2] usermediaclient

Attachment 215244 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/11878102</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943894</commentid>
    <comment_count>16</comment_count>
      <attachid>215252</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-26 09:44:08 -0700</bug_when>
    <thetext>Created attachment 215252
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943895</commentid>
    <comment_count>17</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-26 09:46:07 -0700</bug_when>
    <thetext>This should make EWS happy but not addressing review comments yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944152</commentid>
    <comment_count>18</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-28 10:49:49 -0700</bug_when>
    <thetext>Replying to Darin&apos;s comments, I made most of the requested changes :)

(In reply to comment #7)
&gt; (From update of attachment 215183 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=215183&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:111
&gt; &gt; +    return document() ? document()-&gt;frame() : 0;
&gt; 
&gt; nullptr please, not 0
&gt; 

Ok.

&gt; &gt; Source/WebCore/Modules/mediastream/UserMediaRequest.h:63
&gt; &gt; +    Document* document() const;
&gt; 
&gt; Can this be null? If not, then please use Document&amp; instead of Document*.
&gt; 

Well, I don&apos;t see how to make it return a reference anyway, toDocument() won&apos;t cast its result to a reference because m_scriptExecutionContext is a raw pointer (non-const).

&gt; &gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp:39
&gt; &gt; +    m_manager = 0;
&gt; 
&gt; Please add nullptr.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp:48
&gt; &gt; +    m_manager = 0;
&gt; 
&gt; Please add nullptr.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp:53
&gt; &gt; +    m_manager = 0;
&gt; 
&gt; Please add nullptr.
&gt; 

Well, if the variable becomes a reference I think there&apos;s no need anymore to reset it, right?

&gt; &gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.h:32
&gt; &gt; +    static PassRefPtr&lt;UserMediaPermissionRequestProxy&gt; create(UserMediaPermissionRequestManagerProxy* manager, uint64_t userMediaPermissionRequestID)
&gt; 
&gt; Argument type should be UserMediaPermissionRequestManagerProxy&amp;.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.h:43
&gt; &gt; +    UserMediaPermissionRequestProxy(UserMediaPermissionRequestManagerProxy*, uint64_t userMediaPermissionRequestID);
&gt; 
&gt; Argument type should be UserMediaPermissionRequestManagerProxy&amp;.
&gt; 

Ok!

&gt; &gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:57
&gt; &gt; +    Frame* frame = request-&gt;frame();
&gt; 
&gt; What guarantees this won’t be null?
&gt; 

Good point, an ASSERT here wouldn&apos;t hurt I think.

&gt; &gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:61
&gt; &gt; +    WebFrameLoaderClient* webFrameLoaderClient = toWebFrameLoaderClient(frame-&gt;loader().client());
&gt; &gt; +    WebFrame* webFrame = webFrameLoaderClient ? webFrameLoaderClient-&gt;webFrame() : 0;
&gt; &gt; +    ASSERT(webFrame);
&gt; 
&gt; Doesn’t make sense to check for null and then assert that it’s not null. Either remove the null checks, or make them something more than an assertion.
&gt; 
&gt; Also, please use nullptr, not 0.
&gt; 

Ok.

&gt; &gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:63
&gt; &gt; +    SecurityOrigin* origin = frame-&gt;document()-&gt;securityOrigin();
&gt; 
&gt; Since this can’t be null, if you want to use a local variable, please use a reference, not a pointer.
&gt; 

Ok.

&gt; &gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:65
&gt; &gt; +
&gt; 
&gt; Stray blank line.
&gt; 

Removed.

&gt; &gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h:36
&gt; &gt; +    explicit UserMediaRequestManager(WebPage*);
&gt; 
&gt; This should take WebPage&amp; instead of WebPage*.
&gt; 

Right!

&gt; &gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h:38
&gt; &gt; +    void requestPermission(PassRefPtr&lt;WebCore::UserMediaRequest&gt;);
&gt; 
&gt; This should take WebCore::UserMediaRequest&amp; instead of PassRefPtr.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h:39
&gt; &gt; +    void cancelRequest(WebCore::UserMediaRequest*);
&gt; 
&gt; This should take WebCore::UserMediaRequest&amp; instead of WebCore::UserMediaRequest*.
&gt; 

Hum I&apos;m not sure because otherwise the ownership of the request is not guaranteed. The manager should keep track of the requests in its hash tables.

&gt; &gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h:45
&gt; &gt; +    typedef HashMap&lt;uint64_t, WebCore::UserMediaRequest*&gt; IDToUserMediaRequestMap;
&gt; &gt; +    typedef HashMap&lt;WebCore::UserMediaRequest*, uint64_t&gt; UserMediaRequestToIDMap;
&gt; 
&gt; These should not be typedef&apos;d. You should just use the types explicitly below.
&gt; 

Oh, ok. I&apos;ve seen this kind of typedefs in other places in WebKit2, may I ask why this is a bad practice?

&gt; &gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h:49
&gt; &gt; +    WebPage* m_page;
&gt; 
&gt; This should be WebPage&amp; instead of WebPage*.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944154</commentid>
    <comment_count>19</comment_count>
      <attachid>215252</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-28 10:51:37 -0700</bug_when>
    <thetext>Comment on attachment 215252
Patch

I&apos;ll upload the new version soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944371</commentid>
    <comment_count>20</comment_count>
      <attachid>215373</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-29 03:22:43 -0700</bug_when>
    <thetext>Created attachment 215373
wk2 usermediaclient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944373</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-29 03:25:14 -0700</bug_when>
    <thetext>Attachment 215373 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/Modules/mediastream/UserMediaRequest.cpp&apos;, u&apos;Source/WebCore/Modules/mediastream/UserMediaRequest.h&apos;, u&apos;Source/WebKit2/CMakeLists.txt&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/GNUmakefile.am&apos;, u&apos;Source/WebKit2/GNUmakefile.list.am&apos;, u&apos;Source/WebKit2/Shared/API/c/WKBase.h&apos;, u&apos;Source/WebKit2/Shared/APIClientTraits.cpp&apos;, u&apos;Source/WebKit2/Shared/APIClientTraits.h&apos;, u&apos;Source/WebKit2/Shared/APIObject.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKAPICast.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKPage.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequestPrivate.h&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/webkit2.h&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.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/UIProcess/WebUIClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebUIClient.h&apos;, u&apos;Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp&apos;, u&apos;Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebUserMediaClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebUserMediaClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.messages.in&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/MiniBrowser/gtk/BrowserWindow.c&apos;, u&apos;Tools/MiniBrowser/mac/WK2BrowserWindowController.m&apos;, u&apos;Tools/WebKitTestRunner/TestController.cpp&apos;]&quot; exit_code: 1
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/webkit2.h&quot;
Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.h:24:  Alphabetical sorting problem.  [build/include_order] [4]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h&quot;
Total errors found: 1 in 43 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>944374</commentid>
    <comment_count>22</comment_count>
      <attachid>215375</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-29 03:29:01 -0700</bug_when>
    <thetext>Created attachment 215375
wk2 usermediaclient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944382</commentid>
    <comment_count>23</comment_count>
      <attachid>215375</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-29 03:58:31 -0700</bug_when>
    <thetext>Comment on attachment 215375
wk2 usermediaclient

Attachment 215375 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/17048056</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944383</commentid>
    <comment_count>24</comment_count>
      <attachid>215375</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-29 04:13:36 -0700</bug_when>
    <thetext>Comment on attachment 215375
wk2 usermediaclient

Attachment 215375 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/17148046</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944394</commentid>
    <comment_count>25</comment_count>
      <attachid>215378</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-29 05:25:27 -0700</bug_when>
    <thetext>Created attachment 215378
wk2 usermediaclient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947389</commentid>
    <comment_count>26</comment_count>
      <attachid>215378</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-11-05 15:42:46 -0800</bug_when>
    <thetext>Comment on attachment 215378
wk2 usermediaclient

View in context: https://bugs.webkit.org/attachment.cgi?id=215378&amp;action=review

I think your code is in great shape. For me the biggest road block with this iterations are:
-Generic API tests.
-You should have helpers for WebKitTestRunner to use this from LayoutTest (+ some layout tests). See TestController::setGeolocationPermission() for an example.

I was originally against the public API, but I start to think it will be a useful addition to everyone. What you need to do though is cross-platform tests.

&gt; Source/WebKit2/UIProcess/API/C/WKPage.h:224
&gt; +typedef void (*WKPageDecidePolicyForUserMediaPermissionRequestCallback)(WKPageRef page, WKFrameRef frame, WKSecurityOriginRef origin, WKUserMediaPermissionRequestRef permissionRequest, const void* clientInfo);

Maybe WKPageDecidePolicyForUserMediaCapturePermissionRequestCallback?

Ok, tell me if I am misunderstanding...but:
From the spec of getUserMedia (http://www.w3.org/TR/mediacapture-streams/#methods-5), it looks to me that the JS API can request either audio, video, or both. The API can also request specific hardware like the front facing camera (&quot;facingMode&quot;).
It seem to me that the UIClient interface should, at a minimum, expose the device type. The message presented to the user should be different if the page request access to the microphone, the camera or both.

&gt; Source/WebKit2/UIProcess/API/C/WKPage.h:290
&gt; +

Extra line here.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp:160
&gt; +    GRefPtr&lt;WebKitUserMediaPermissionRequest&gt; userMediaPermissionRequest = adoptGRef(webkitUserMediaPermissionRequestCreate(toImpl(request)));
&gt; +    webkitWebViewMakePermissionRequest(WEBKIT_WEB_VIEW(clientInfo), WEBKIT_PERMISSION_REQUEST(userMediaPermissionRequest.get()));

I am a little concerned you do not use the security origin here.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:59
&gt; +    // Only one decision at a time.
&gt; +    if (priv-&gt;madeDecision)
&gt; +        return;

This is smart, I got into a but like this once. :)

But do you initialize &quot;madeDecision&quot; to false anywhere?

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:62
&gt; +    priv-&gt;madeDecision = true;

I think you should do this before priv-&gt;request-&gt;allow() since it is impossible to ensure no side effect from allow() will re-enter this path.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:76
&gt; +    priv-&gt;request-&gt;deny();
&gt; +    priv-&gt;madeDecision = true;

Ditto.

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:66
&gt; +#if ENABLE(MEDIA_STREAM)
&gt; +    m_page-&gt;process()-&gt;send(Messages::WebPage::DidReceiveUserMediaPermissionDecision(userMediaRequestID, allowed), m_page-&gt;pageID());
&gt; +#else
&gt; +    UNUSED_PARAM(allowed);
&gt; +#endif
&gt; +
&gt; +    m_pendingRequests.remove(it);

You should take a new ref of UserMediaPermissionRequestProxy, and remove it immediately from the HashMap, then call send on the process.

That way you avoid the risk of holding an iterator after the ADT was modified.

&gt; Source/WebKit2/WebKit2.xcodeproj/project.pbxproj:4106
&gt; +				4A2020A0181C15DE00E17834 /* MediaStream */,
&gt;  				755422C518064FFC0046F6A8 /* OriginData */,
&gt;  				512E352A130B559900ABD19A /* ApplicationCache */,

Build sections should be sorted alphabetically. Same for the the ones bellow.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:48
&gt; +

Extra blank line.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:49
&gt; +void UserMediaRequestManager::requestPermission(PassRefPtr&lt;WebCore::UserMediaRequest&gt; prpRequest)

prp?

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:62
&gt; +    WebFrameLoaderClient* webFrameLoaderClient = toWebFrameLoaderClient(frame-&gt;loader().client());
&gt; +    WebFrame* webFrame = webFrameLoaderClient ? webFrameLoaderClient-&gt;webFrame() : nullptr;
&gt; +    ASSERT(webFrame);

Seriously? That is the only way to get the WebFrame? :(

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:77
&gt; +    for (UserMediaRequestToIDMap::const_iterator it = m_userMediaRequestToIDMap.begin(), end = m_userMediaRequestToIDMap.end(); it != end; ++it) {
&gt; +        RefPtr&lt;WebCore::UserMediaRequest&gt; storedRequest = it-&gt;key;
&gt; +        if (storedRequest.get() == request) {
&gt; +            m_idToUserMediaRequestMap.remove(it-&gt;value);
&gt; +            m_userMediaRequestToIDMap.remove(it-&gt;key);
&gt; +            return;
&gt; +        }
&gt; +    }

I don&apos;t think that is what this is intended to do.

The idea behind the cancelRequests APIs is you can dismiss a dialog if it was never shown to the user. For example, if you make your dialog tab-modal, and the tab that shows the dialog is not visible, you can dismiss the dialog without the user ever knowing.

The reason this is not implemented in managers is simply that OS X does not do Tab Modal.

I don&apos;t mind this code. You can keep it as it is if it is enough for GTK. But if you expose a frame-based API for request, you may want to expose this so that your browser/apps can do a better job at presenting the information to the user.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebUserMediaClient.cpp:36
&gt; +WebUserMediaClient::~WebUserMediaClient()
&gt; +{
&gt; +}

This is unnecessary.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebUserMediaClient.h:34
&gt; +    WebUserMediaClient(WebPage* page)
&gt; +        : m_page(page)

You should use references instead of pointers for page and m_page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947576</commentid>
    <comment_count>27</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-11-05 23:43:37 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:59
&gt; &gt; +    // Only one decision at a time.
&gt; &gt; +    if (priv-&gt;madeDecision)
&gt; &gt; +        return;
&gt; 
&gt; This is smart, I got into a but like this once. :)
&gt; 
&gt; But do you initialize &quot;madeDecision&quot; to false anywhere?

GObjects are filled with 0 when allocated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947725</commentid>
    <comment_count>28</comment_count>
      <attachid>215378</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-11-06 09:01:09 -0800</bug_when>
    <thetext>Comment on attachment 215378
wk2 usermediaclient

View in context: https://bugs.webkit.org/attachment.cgi?id=215378&amp;action=review

Thanks for the review! I started updating the patch but haven&apos;t had time yet to complete it.

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKPage.h:224
&gt;&gt; +typedef void (*WKPageDecidePolicyForUserMediaPermissionRequestCallback)(WKPageRef page, WKFrameRef frame, WKSecurityOriginRef origin, WKUserMediaPermissionRequestRef permissionRequest, const void* clientInfo);
&gt; 
&gt; Maybe WKPageDecidePolicyForUserMediaCapturePermissionRequestCallback?
&gt; 
&gt; Ok, tell me if I am misunderstanding...but:
&gt; From the spec of getUserMedia (http://www.w3.org/TR/mediacapture-streams/#methods-5), it looks to me that the JS API can request either audio, video, or both. The API can also request specific hardware like the front facing camera (&quot;facingMode&quot;).
&gt; It seem to me that the UIClient interface should, at a minimum, expose the device type. The message presented to the user should be different if the page request access to the microphone, the camera or both.

Right, good point! I started adding MediaConstraints support in the WK2 messages (the webprocess would need to pass those to the UI process) but I&apos;m having some issues integrating this in the build :(

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKPage.h:290
&gt;&gt; +
&gt; 
&gt; Extra line here.

Removed

&gt;&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp:160
&gt;&gt; +    webkitWebViewMakePermissionRequest(WEBKIT_WEB_VIEW(clientInfo), WEBKIT_PERMISSION_REQUEST(userMediaPermissionRequest.get()));
&gt; 
&gt; I am a little concerned you do not use the security origin here.

Hum yes, I should do something with it indeed :) Thanks for pointing that out

&gt;&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:62
&gt;&gt; +    priv-&gt;madeDecision = true;
&gt; 
&gt; I think you should do this before priv-&gt;request-&gt;allow() since it is impossible to ensure no side effect from allow() will re-enter this path.

Right.

&gt;&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:66
&gt;&gt; +    m_pendingRequests.remove(it);
&gt; 
&gt; You should take a new ref of UserMediaPermissionRequestProxy, and remove it immediately from the HashMap, then call send on the process.
&gt; 
&gt; That way you avoid the risk of holding an iterator after the ADT was modified.

Ok I&apos;ll look into this!

&gt;&gt; Source/WebKit2/WebKit2.xcodeproj/project.pbxproj:4106
&gt;&gt;  				512E352A130B559900ABD19A /* ApplicationCache */,
&gt; 
&gt; Build sections should be sorted alphabetically. Same for the the ones bellow.

I only added the files using Xcode... Perhaps this ordering issue belongs to a future patch as I see other ordering issues in the project file.

&gt;&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:49
&gt;&gt; +void UserMediaRequestManager::requestPermission(PassRefPtr&lt;WebCore::UserMediaRequest&gt; prpRequest)
&gt; 
&gt; prp?

PassRefPtr, that&apos;s used else where (and in the smart pointer docs of webkit.org), but I can rename it.

&gt;&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:62
&gt;&gt; +    ASSERT(webFrame);
&gt; 
&gt; Seriously? That is the only way to get the WebFrame? :(

I&apos;ll try to improve this.

&gt;&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:77
&gt;&gt; +    }
&gt; 
&gt; I don&apos;t think that is what this is intended to do.
&gt; 
&gt; The idea behind the cancelRequests APIs is you can dismiss a dialog if it was never shown to the user. For example, if you make your dialog tab-modal, and the tab that shows the dialog is not visible, you can dismiss the dialog without the user ever knowing.
&gt; 
&gt; The reason this is not implemented in managers is simply that OS X does not do Tab Modal.
&gt; 
&gt; I don&apos;t mind this code. You can keep it as it is if it is enough for GTK. But if you expose a frame-based API for request, you may want to expose this so that your browser/apps can do a better job at presenting the information to the user.

Oh ok, thanks for the explanation. I&apos;m not sure yet this is really needed for GTK, I&apos;ll talk with the other port maintainers :)

&gt;&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebUserMediaClient.h:34
&gt;&gt; +        : m_page(page)
&gt; 
&gt; You should use references instead of pointers for page and m_page.

Yes I think I did it in other places of the patch but forgot to do it here indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947772</commentid>
    <comment_count>29</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-11-06 10:33:06 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 215378 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=215378&amp;action=review
&gt; &gt;&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaRequestManager.cpp:49
&gt; &gt;&gt; +void UserMediaRequestManager::requestPermission(PassRefPtr&lt;WebCore::UserMediaRequest&gt; prpRequest)
&gt; &gt; 
&gt; &gt; prp?
&gt; 
&gt; PassRefPtr, that&apos;s used else where (and in the smart pointer docs of webkit.org), but I can rename it.
&gt; 

  Indeed, our &quot;RefPtr and PassRefPtr Basics&quot; docs say [1]:

    If a function does take ownership of an object, the argument should be a PassRefPtr. This
    includes most setter functions. Unless the use of the argument is very simple, the argument
    should be transferred to a RefPtr at the start of the function; the argument can be named
    with a “prp” prefix in such cases.

[1] http://www.webkit.org/coding/RefPtr.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005790</commentid>
    <comment_count>30</comment_count>
      <attachid>230597</attachid>
    <who name="Seongjun Kim">isair</who>
    <bug_when>2014-05-01 11:35:10 -0700</bug_when>
    <thetext>Created attachment 230597
Patch

Patch based on work previously done by Philippe Normand

Commit log is not yet..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005792</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-01 11:37:29 -0700</bug_when>
    <thetext>Attachment 230597 did not pass style-queue:


WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/webkit2.h&quot;
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h&quot;
ERROR: Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:42:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 35 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>1005797</commentid>
    <comment_count>32</comment_count>
      <attachid>230599</attachid>
    <who name="Seongjun Kim">isair</who>
    <bug_when>2014-05-01 11:48:17 -0700</bug_when>
    <thetext>Created attachment 230599
Fix style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007968</commentid>
    <comment_count>33</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-05-09 06:42:34 -0700</bug_when>
    <thetext>I wanted to try the patch but it seems like it already got bitrotten, would you mind rebasing it if possible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008470</commentid>
    <comment_count>34</comment_count>
    <who name="Seongjun Kim">isair</who>
    <bug_when>2014-05-11 19:13:05 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; I wanted to try the patch but it seems like it already got bitrotten, would you mind rebasing it if possible?

No, not at all.
I will update in today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008530</commentid>
    <comment_count>35</comment_count>
      <attachid>231286</attachid>
    <who name="Seongjun Kim">isair</who>
    <bug_when>2014-05-12 04:53:07 -0700</bug_when>
    <thetext>Created attachment 231286
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013757</commentid>
    <comment_count>36</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-06-06 00:06:53 -0700</bug_when>
    <thetext>It&apos;d be nice to have green EWS so we can ping Benjamin about a review. Can you please rebase the patch against ToT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013779</commentid>
    <comment_count>37</comment_count>
    <who name="Seongjun Kim">isair</who>
    <bug_when>2014-06-06 05:33:15 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; It&apos;d be nice to have green EWS so we can ping Benjamin about a review. Can you please rebase the patch against ToT?

Yes, I can do that in Monday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014081</commentid>
    <comment_count>38</comment_count>
      <attachid>232699</attachid>
    <who name="Seongjun Kim">isair</who>
    <bug_when>2014-06-09 02:01:47 -0700</bug_when>
    <thetext>Created attachment 232699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014384</commentid>
    <comment_count>39</comment_count>
      <attachid>232699</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-06-10 03:45:38 -0700</bug_when>
    <thetext>Comment on attachment 232699
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=232699&amp;action=review

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:48
&gt; +#include &quot;UserMediaPermissionRequestManager.h&quot;

Missing ENABLE(MEDIA_STREAM) guards</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017473</commentid>
    <comment_count>40</comment_count>
    <who name="Praveen Jadhav">praveen.j</who>
    <bug_when>2014-06-22 20:19:29 -0700</bug_when>
    <thetext>*** Bug 132855 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017526</commentid>
    <comment_count>41</comment_count>
      <attachid>233596</attachid>
    <who name="Seongjun Kim">isair</who>
    <bug_when>2014-06-23 04:26:40 -0700</bug_when>
    <thetext>Created attachment 233596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017527</commentid>
    <comment_count>42</comment_count>
    <who name="Seongjun Kim">isair</who>
    <bug_when>2014-06-23 04:35:19 -0700</bug_when>
    <thetext>I rebased the patch and applied Philippe&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017567</commentid>
    <comment_count>43</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-06-23 08:42:08 -0700</bug_when>
    <thetext>/Volumes/Data/EWS/WebKit/Source/WebKit2/UIProcess/WebPageProxy.cpp:263:15: error: constructor for &apos;WebKit::WebPageProxy&apos; must explicitly initialize the member &apos;m_userMediaPermissionRequestManager&apos; which does not have a default constructor
WebPageProxy::WebPageProxy(PageClient&amp; pageClient, WebProcessProxy&amp; process, uint64_t pageID, const WebPageConfiguration&amp; configuration)
              ^
In file included from /Volumes/Data/EWS/WebKit/Source/WebKit2/UIProcess/WebPageProxy.cpp:28:
/Volumes/Data/EWS/WebKit/Source/WebKit2/UIProcess/WebPageProxy.h:1325:44: note: member is declared here
    UserMediaPermissionRequestManagerProxy m_userMediaPermissionRequestManager;
                                           ^
In file included from /Volumes/Data/EWS/WebKit/Source/WebKit2/UIProcess/WebPageProxy.cpp:28:
In file included from /Volumes/Data/EWS/WebKit/Source/WebKit2/UIProcess/WebPageProxy.h:48:
/Volumes/Data/EWS/WebKit/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h:30:7: note: &apos;WebKit::UserMediaPermissionRequestManagerProxy&apos; declared here
class UserMediaPermissionRequestManagerProxy {
      ^
1 error generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017822</commentid>
    <comment_count>44</comment_count>
      <attachid>233672</attachid>
    <who name="Seongjun Kim">isair</who>
    <bug_when>2014-06-23 20:06:45 -0700</bug_when>
    <thetext>Created attachment 233672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017823</commentid>
    <comment_count>45</comment_count>
    <who name="Seongjun Kim">isair</who>
    <bug_when>2014-06-23 20:08:26 -0700</bug_when>
    <thetext>(In reply to comment #44)
&gt; Created an attachment (id=233672) [details]
&gt; Patch

Patch updated to resolve --no-media-stream build errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017931</commentid>
    <comment_count>46</comment_count>
      <attachid>233672</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-06-24 07:01:55 -0700</bug_when>
    <thetext>Comment on attachment 233672
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=233672&amp;action=review

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:41
&gt; +    static uint64_t uniqueRequestID = 1;
&gt; +    return uniqueRequestID++;

First, it is possible for this to wrap around. While that will take a long time, and it is unlikely that an existing request will still be pending when it does wrap around, it is can happen. Do we care?

Second, both requestPermission and UserMediaPermissionRequestManagerProxy::createRequest will use this ID as the key in a HashMap. I believe a standard HashMap won&apos;t allow 0 to be use for a key value, so you should never return 0 (when it does wrap around).

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:41
&gt; +    void startRequest(PassRefPtr&lt;WebCore::UserMediaRequest&gt;);

Nit: &quot;requestPermission&quot; might be a better name.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:44
&gt; +    void didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed);

Nit: these parameter names aren&apos;t necessary.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:1192
&gt; +    UserMediaPermissionRequestManager m_userMediaPermissionRequestManager;

This will be unused in most clients, why not have a std::unique_ptr&lt;&gt; that is allocated the first time it is used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031099</commentid>
    <comment_count>47</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-08-25 03:58:27 -0700</bug_when>
    <thetext>(In reply to comment #46)
&gt; (From update of attachment 233672 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=233672&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:41
&gt; &gt; +    static uint64_t uniqueRequestID = 1;
&gt; &gt; +    return uniqueRequestID++;
&gt; 
&gt; First, it is possible for this to wrap around. While that will take a long time, and it is unlikely that an existing request will still be pending when it does wrap around, it is can happen. Do we care?
&gt; 

I think that so far we haven&apos;t paid attention to this issue, this pattern is used elsewhere in WebKit2 (WebFrame, Geolocation, Notifications and others).

&gt; Second, both requestPermission and UserMediaPermissionRequestManagerProxy::createRequest will use this ID as the key in a HashMap. I believe a standard HashMap won&apos;t allow 0 to be use for a key value, so you should never return 0 (when it does wrap around).
&gt; 

Well, would it be acceptable to add an ASSERT?

&gt; &gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:41
&gt; &gt; +    void startRequest(PassRefPtr&lt;WebCore::UserMediaRequest&gt;);
&gt; 
&gt; Nit: &quot;requestPermission&quot; might be a better name.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:44
&gt; &gt; +    void didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed);
&gt; 
&gt; Nit: these parameter names aren&apos;t necessary.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:1192
&gt; &gt; +    UserMediaPermissionRequestManager m_userMediaPermissionRequestManager;
&gt; 
&gt; This will be unused in most clients, why not have a std::unique_ptr&lt;&gt; that is allocated the first time it is used.

Fair points, thanks for the review, I&apos;ll update the patch :) And also have a look at writing tests as Benjamin suggested in a previous review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031403</commentid>
    <comment_count>48</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-08-26 10:42:08 -0700</bug_when>
    <thetext>(In reply to comment #47)
&gt; (In reply to comment #46)
&gt; &gt; (From update of attachment 233672 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=233672&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:41
&gt; &gt; &gt; +    static uint64_t uniqueRequestID = 1;
&gt; &gt; &gt; +    return uniqueRequestID++;
&gt; &gt; 
&gt; &gt; First, it is possible for this to wrap around. While that will take a long time, and it is unlikely that an existing request will still be pending when it does wrap around, it is can happen. Do we care?
&gt; &gt; 
&gt; 
&gt; I think that so far we haven&apos;t paid attention to this issue, this pattern is used elsewhere in WebKit2 (WebFrame, Geolocation, Notifications and others).
&gt; 
&gt; &gt; Second, both requestPermission and UserMediaPermissionRequestManagerProxy::createRequest will use this ID as the key in a HashMap. I believe a standard HashMap won&apos;t allow 0 to be use for a key value, so you should never return 0 (when it does wrap around).
&gt; &gt; 
&gt; 
&gt; Well, would it be acceptable to add an ASSERT?
&gt; 

Or just don&apos;t return 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032575</commentid>
    <comment_count>49</comment_count>
      <attachid>237479</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-09-02 00:48:12 -0700</bug_when>
    <thetext>Created attachment 237479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032576</commentid>
    <comment_count>50</comment_count>
      <attachid>237480</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-09-02 01:07:19 -0700</bug_when>
    <thetext>Created attachment 237480
Patch

Rebased againtst ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032587</commentid>
    <comment_count>51</comment_count>
      <attachid>237480</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-09-02 02:43:04 -0700</bug_when>
    <thetext>Comment on attachment 237480
Patch

I&apos;ll split out the GTK bits in a separate patch...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032589</commentid>
    <comment_count>52</comment_count>
      <attachid>237482</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-09-02 03:09:41 -0700</bug_when>
    <thetext>Created attachment 237482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032593</commentid>
    <comment_count>53</comment_count>
      <attachid>237480</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-02 03:21:17 -0700</bug_when>
    <thetext>Comment on attachment 237480
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=237480&amp;action=review

We need also unit tests for the new GTK+ API.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:42
&gt; + */

Remember to add Since: 2.8 everywhere in the API docs.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:56
&gt; +    gchar* origin;

This should be a CString or GUniquePtr&lt;char&gt;

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:101
&gt; +    g_free(request-&gt;priv-&gt;origin);

This shouldn&apos;t be needed if you use CString or GUniquePtr&lt;char&gt;, also note that dispose can be called multiple times, so you should reset the pointer if you use g_free directly

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:108
&gt; +guint32 webkit_user_media_permission_get_parameters(WebKitUserMediaPermissionRequest* request)

This should be documented.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:120
&gt; + * requesting the permission to accec media device(s).

accec?

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:122
&gt; + * Returns: the security origin URI or an empty string.

We usually return NULL instead of empty strings in public API methods.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:124
&gt; +const gchar* webkit_user_media_permission_get_origin(WebKitUserMediaPermissionRequest* request)

Is a string enough to represent a security origin?

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:161
&gt; +            0, WEBKIT_PARAM_READABLE));

Use nullptr instead of 0 here.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:189
&gt; +    if (audio-&gt;value())
&gt; +        mediaParameters |= WEBKIT_USER_MEDIA_PARAMETERS_AUDIO;
&gt; +    if (video-&gt;value())
&gt; +        mediaParameters |= WEBKIT_USER_MEDIA_PARAMETERS_VIDEO;

So parameters is the media type?

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:195
&gt; +    if (!origin)

This is not a pointer, I guess you should use origin.isEmpty()

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:197
&gt; +    String origin = securityOrigin-&gt;securityOrigin().toString();
&gt; +    if (!origin)
&gt; +        origin = &quot;&quot;;
&gt; +    usermediaPermissionRequest-&gt;priv-&gt;origin = g_strdup(origin.utf8().data());

Using a CString all this would be just:

usermediaPermissionRequest-&gt;priv-&gt;origin = securityOrigin-&gt;securityOrigin().toString().utf8().

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h:44
&gt; + * @WEBKIT_USER_MEDIA_PARAMETERS_NONE: no media. Shouldn&apos;t happen.

If this shouldn&apos;t happen we should not expose it in the API.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h:54
&gt; +  WEBKIT_USER_MEDIA_PARAMETERS_AUDIO = 1 &lt;&lt; 0,
&gt; +  WEBKIT_USER_MEDIA_PARAMETERS_VIDEO = 1 &lt;&lt; 1

So the media can be audio and video at the same time?

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h:55
&gt; +} WebKitUserMediaParameters;

I find it a bit confusing, using Parameters for the media type, or will this be expanded eventually with more &quot;parameters&quot;?

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h:77
&gt; +guint32 webkit_user_media_permission_get_parameters(WebKitUserMediaPermissionRequest* request);
&gt; +const gchar* webkit_user_media_permission_get_origin(WebKitUserMediaPermissionRequest* request);

You should use WEBKIT_API and format it correctly, moving the * to the right please, etc.

&gt; Tools/MiniBrowser/gtk/BrowserWindow.c:411
&gt; +    gchar *dialog_message = NULL;
&gt; +    gchar *dialog_message_format = NULL;

These should be const.

&gt; Tools/MiniBrowser/gtk/BrowserWindow.c:422
&gt; +        dialog_title = g_strdup_printf(&quot;UserMedia request from %s&quot;, origin);

This is leaked, you can use this as const char* for geolocation request and char* for user media. You should use g_strdup() for geolocation and free the string after the gtk_message_dialog_new()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032627</commentid>
    <comment_count>54</comment_count>
      <attachid>237482</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-09-02 08:33:01 -0700</bug_when>
    <thetext>Comment on attachment 237482
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=237482&amp;action=review

This looks good to me modulo the minor nits noted, but I am not a WK2 reviewer.

&gt; LayoutTests/fast/mediastream/error.html:7
&gt; +&lt;script src=&quot;script-tests/error.js&quot;&gt;&lt;/script&gt;

Do you plan to use &quot;error.js&quot; in more than one test? If not, I think it would be much clearer to include the code rather than loading it.

&gt; LayoutTests/fast/mediastream/success.html:7
&gt; +&lt;script src=&quot;script-tests/success.js&quot;&gt;&lt;/script&gt;

Do you plan to use &quot;success.js&quot; in more than one test? If not, I think it would be much clearer to include the code rather than loading it.

&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.h:31
&gt; +WK_EXPORT void WKUserMediaPermissionRequestAllow(WKUserMediaPermissionRequestRef userMediaPermissionRequest);
&gt; +WK_EXPORT void WKUserMediaPermissionRequestDeny(WKUserMediaPermissionRequestRef userMediaPermissionRequest);

Nit: the parameter names aren&apos;t necessary.

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h:36
&gt; +    PassRefPtr&lt;UserMediaPermissionRequestProxy&gt; createRequest(uint64_t userMediaID, bool audio, bool video);

Nit: &quot;userMediaID&quot; is unnecessary.

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h:39
&gt; +    void didReceiveUserMediaPermissionDecision(uint64_t, bool allow);

Nit: &quot;allow&quot; is unnecessary.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:43
&gt; +    void didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed);

Nit: &quot;userMediaID&quot; and &quot;allowed&quot; are unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032640</commentid>
    <comment_count>55</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-09-02 09:00:30 -0700</bug_when>
    <thetext>Thanks Eric for the review! I&apos;ll move the js files content to their html pendant :)

About un-needed names, our coding style guide has this recommendation:

&quot;Leave meaningless variable names out of function declarations. A good rule of thumb is if the parameter type name contains the parameter name (without trailing numbers or pluralization), then the parameter name isn&apos;t needed. Usually, there should be a parameter name for bools, strings, and numerical types.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032651</commentid>
    <comment_count>56</comment_count>
      <attachid>237494</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-09-02 09:22:24 -0700</bug_when>
    <thetext>Created attachment 237494
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032652</commentid>
    <comment_count>57</comment_count>
      <attachid>237495</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-09-02 09:24:53 -0700</bug_when>
    <thetext>Created attachment 237495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033195</commentid>
    <comment_count>58</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-09-04 06:55:49 -0700</bug_when>
    <thetext>Benjamin, would you have time to review this patch again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035614</commentid>
    <comment_count>59</comment_count>
      <attachid>237495</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-09-16 15:52:27 -0700</bug_when>
    <thetext>Comment on attachment 237495
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=237495&amp;action=review

&gt; LayoutTests/ChangeLog:16
&gt; +        * fast/mediastream/error-expected.txt: Added.
&gt; +        * fast/mediastream/error.html: Added.
&gt; +        * fast/mediastream/script-tests/error.js: Added.
&gt; +        * fast/mediastream/script-tests/success.js: Added.
&gt; +        * fast/mediastream/success-expected.txt: Added.
&gt; +        * fast/mediastream/success.html: Added.

It looks to me like you need one a few more tests:

First, two for &quot;pending permission&quot;. For example:
-query for UserMedia.
-wait a small amount of time (say 25ms).
-check that it is not granted nor denied.
-grant/deny the permission.

The other kind you need is permission reset. You grant/deny the permission, then reset the permission. For example:
-grand permission for user media
-query userMedia
-reset the permission
--&gt; I am not familiar with mediaStream, but I guess there is a way to handle this and it should be tested.

For Geolocation, only iOS has/tests reset.


It would also be useful to have tests with iframes. E.g.:
-request from an iFrame-&gt;pending-&gt;grand-&gt;request from a second iFrame-&gt;no pending, immediately granted if same security origin.
-request from an iFrame-&gt;pending-&gt;kill the iframe-&gt;grant or deny permission-&gt;no crash.
-request from different security origins if possible.

&gt; LayoutTests/fast/mediastream/error.html:1
&gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;

Let&apos;s use the HTML5 doctype.

&gt; LayoutTests/fast/mediastream/error.html:26
&gt; +window.jsTestIsAsync = true;

Move this after description(), easier to follow IMHO.

&gt; LayoutTests/fast/mediastream/success.html:1
&gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;

Same for doctype.

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.h:74
&gt; +    bool audio() const { return m_audioConstraints; }
&gt; +    bool video() const { return m_videoConstraints; }

Weird names, maybe requiresAudio()/wantsAudio() or something like that?

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp:34
&gt; +    parametersMap.set(&quot;audio&quot;, API::Boolean::create(audio));
&gt; +    parametersMap.set(&quot;video&quot;, API::Boolean::create(video));

ASCIILiteral() for the strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035699</commentid>
    <comment_count>60</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-09-17 04:41:19 -0700</bug_when>
    <thetext>(In reply to comment #59)
&gt; (From update of attachment 237495 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=237495&amp;action=review
&gt; 
&gt; &gt; LayoutTests/ChangeLog:16
&gt; &gt; +        * fast/mediastream/error-expected.txt: Added.
&gt; &gt; +        * fast/mediastream/error.html: Added.
&gt; &gt; +        * fast/mediastream/script-tests/error.js: Added.
&gt; &gt; +        * fast/mediastream/script-tests/success.js: Added.
&gt; &gt; +        * fast/mediastream/success-expected.txt: Added.
&gt; &gt; +        * fast/mediastream/success.html: Added.
&gt; 
&gt; It looks to me like you need one a few more tests:
&gt; 
&gt; First, two for &quot;pending permission&quot;. For example:
&gt; -query for UserMedia.
&gt; -wait a small amount of time (say 25ms).
&gt; -check that it is not granted nor denied.
&gt; -grant/deny the permission.
&gt; 

Ok.

&gt; The other kind you need is permission reset. You grant/deny the permission, then reset the permission. For example:
&gt; -grand permission for user media
&gt; -query userMedia
&gt; -reset the permission

Does the testRunner needs an API for permission cancellation too? I&apos;m not sure how to proceed about this kind of test.

&gt; --&gt; I am not familiar with mediaStream, but I guess there is a way to handle this and it should be tested.
&gt; 

I need to check the spec about this kind of use-case...

&gt; For Geolocation, only iOS has/tests reset.
&gt; 
&gt; 
&gt; It would also be useful to have tests with iframes. E.g.:
&gt; -request from an iFrame-&gt;pending-&gt;grand-&gt;request from a second iFrame-&gt;no pending, immediately granted if same security origin.
&gt; -request from an iFrame-&gt;pending-&gt;kill the iframe-&gt;grant or deny permission-&gt;no crash.
&gt; -request from different security origins if possible.
&gt; 

I started working on that but having some issues with CORS :(

Thanks for the quick review, I aknowledged your other comments in the next iteration of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037914</commentid>
    <comment_count>61</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-09-29 04:09:46 -0700</bug_when>
    <thetext>(In reply to comment #59)
&gt; 
&gt; The other kind you need is permission reset. You grant/deny the permission, then reset the permission. For example:
&gt; -grand permission for user media
&gt; -query userMedia
&gt; -reset the permission
&gt; --&gt; I am not familiar with mediaStream, but I guess there is a way to handle this and it should be tested.
&gt; 
&gt; For Geolocation, only iOS has/tests reset.
&gt; 

Well after checking the spec again and the UserMediaRequest code in WebCore, cancelRequest() is only invoked when the ScriptExecutionContext is destroyed. Moreover the spec doesn&apos;t mention that the permission request can be reset by the user. If the user denies the permission the errback is invoked and if the user grants the permission the callback is invoked.

&gt; 
&gt; It would also be useful to have tests with iframes. E.g.:
&gt; -request from an iFrame-&gt;pending-&gt;grand-&gt;request from a second iFrame-&gt;no pending, immediately granted if same security origin.
&gt; -request from an iFrame-&gt;pending-&gt;kill the iframe-&gt;grant or deny permission-&gt;no crash.
&gt; -request from different security origins if possible.
&gt; 

I need to get back to these tests :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038160</commentid>
    <comment_count>62</comment_count>
      <attachid>238912</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-09-30 00:08:48 -0700</bug_when>
    <thetext>Created attachment 238912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038170</commentid>
    <comment_count>63</comment_count>
      <attachid>238912</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-09-30 01:16:31 -0700</bug_when>
    <thetext>Comment on attachment 238912
Patch

Attachment 238912 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/5212932023517184

New failing tests:
http/tests/media/media-stream/disconnected-frame-already.html
http/tests/media/media-stream/disconnected-frame.html
http/tests/media/media-stream/disconnected-frame-permission-denied.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038171</commentid>
    <comment_count>64</comment_count>
      <attachid>238916</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-09-30 01:16:41 -0700</bug_when>
    <thetext>Created attachment 238916
Archive of layout-test-results from webkit-ews-15 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-15  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038172</commentid>
    <comment_count>65</comment_count>
      <attachid>238917</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-09-30 01:17:21 -0700</bug_when>
    <thetext>Created attachment 238917
Patch

Rebased on ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038178</commentid>
    <comment_count>66</comment_count>
      <attachid>238918</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-09-30 02:43:27 -0700</bug_when>
    <thetext>Created attachment 238918
Patch

Fix all the EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040307</commentid>
    <comment_count>67</comment_count>
      <attachid>239478</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-10-08 09:17:32 -0700</bug_when>
    <thetext>Created attachment 239478
Patch

Rebased on top of ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040369</commentid>
    <comment_count>68</comment_count>
      <attachid>239478</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-08 12:01:29 -0700</bug_when>
    <thetext>Comment on attachment 239478
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=239478&amp;action=review

Enough suggested changes that I think I’m going to say review- for now, but it looks like some steps in the right direction.

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:107
&gt; +    return downcast&lt;Document&gt;(m_scriptExecutionContext);

What makes this cast safe? Is there some guarantee this script execution context is a document? If we have that guarantee, why do we store it as a ScriptExecutionContext* instead of a Document*?

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.h:67
&gt; +    Document* document() const;
&gt; +    Frame* frame() const;

Do we really need to add these helper functions? Mapping from script execution context to Document and Frame seems like something a caller can do on its own.

I think UserMediaPermissionRequestManager::startRequest could do it.

&gt; Source/WebKit2/UIProcess/API/APIUIClient.h:126
&gt; +    virtual bool decidePolicyForUserMediaPermissionRequest(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, WebKit::WebSecurityOrigin*, WebKit::UserMediaPermissionRequestProxy*) { return false; }

I know the old functions use pointers, but for this new function I suggest we use references for any non-optional arguments.

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:44
&gt; +    m_pendingRequests.add(userMediaID, request.get());

This line of code will be a no-op if there is already a request with this ID in the hash map. What guarantees there is not one? What behavior do we want if there is a number conflict?

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp:34
&gt; +    parametersMap.set(ASCIILiteral(&quot;audio&quot;), API::Boolean::create(audio));
&gt; +    parametersMap.set(ASCIILiteral(&quot;video&quot;), API::Boolean::create(video));

Should use add here instead of set.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:60
&gt; +    m_idToRequestMap.set(requestID, request);
&gt; +    m_requestToIDMap.set(request, requestID);

These should be add rather than set. Might want to assert there is no conflict with what’s already in the map, or if there is a conflict, consider what behavior we want when there is.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:40
&gt; +    void startRequest(PassRefPtr&lt;WebCore::UserMediaRequest&gt;);

This should take a PassRef rather than a PassRefPtr.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:41
&gt; +    void cancelRequest(WebCore::UserMediaRequest*);

This should take a reference, not a pointer.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:47
&gt; +    typedef HashMap&lt;uint64_t, RefPtr&lt;WebCore::UserMediaRequest&gt;&gt; IDToRequestMap;
&gt; +    typedef HashMap&lt;RefPtr&lt;WebCore::UserMediaRequest&gt;, uint64_t&gt; RequestToIDMap;

I don’t think we need typedefs here.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:49
&gt; +    IDToRequestMap m_idToRequestMap;
&gt; +    RequestToIDMap m_requestToIDMap;

I suggest putting these after the m_page data member.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebUserMediaClient.h:21
&gt; +#define WebUserMediaClient_h
&gt; +#if ENABLE(MEDIA_STREAM)

Should have a blank line here between these two lines.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebUserMediaClient.h:25
&gt; +#include &lt;wtf/PassRefPtr.h&gt;
&gt; +namespace WebKit {

Should have a blank line here between these two lines.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebUserMediaClient.h:36
&gt; +    virtual void pageDestroyed();
&gt; +    virtual void requestPermission(PassRefPtr&lt;WebCore::UserMediaRequest&gt;);
&gt; +    virtual void cancelRequest(WebCore::UserMediaRequest*);

Need to use the override keyword here.

&gt; Tools/TestWebKitAPI/Tests/WebKit2/UserMedia.cpp:29
&gt; +using namespace std;

We normally don’t use this.

&gt; Tools/TestWebKitAPI/Tests/WebKit2/UserMedia.cpp:35
&gt; +void decidePolicyForUserMediaPermissionRequestCallBack(WKPageRef page, WKFrameRef frame, WKSecurityOriginRef origin, WKUserMediaPermissionRequestRef permissionRequest, const void* clientInfo)

Should leave out the names of the unused arguments for platforms that compile with that warning on.

&gt; Tools/TestWebKitAPI/Tests/WebKit2/UserMedia.cpp:43
&gt; +    WKRetainPtr&lt;WKContextRef&gt; context(AdoptWK, WKContextCreate());

Please use the adoptWK function rather than the AdoptWK constructor argument:

    auto context = adoptWK(WKContextCreate());

&gt; Tools/TestWebKitAPI/Tests/WebKit2/UserMedia.cpp:53
&gt; +    WKRetainPtr&lt;WKURLRef&gt; url(AdoptWK, Util::createURLForResource(&quot;getUserMedia&quot;, &quot;html&quot;));

Please use the adoptWK function rather than the AdoptWK constructor argument:

    auto url = adoptWK(Util::createURLForResource(&quot;getUserMedia&quot;, &quot;html&quot;));

Later, maybe we should change that Util function to return a WKRetainPtr.

&gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:465
&gt; +    WKRetainPtr&lt;WKStringRef&gt; messageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;SetUserMediaPermission&quot;));
&gt; +    WKRetainPtr&lt;WKBooleanRef&gt; messageBody(AdoptWK, WKBooleanCreate(enabled));
&gt; +    WKBundlePostMessage(m_bundle, messageName.get(), messageBody.get());

Please use the adoptWK function rather than the AdoptWK constructor argument. Could even consider doing this as a one-liner:

    WKBundlePostMessage(m_bundle, adoptWK(WKStringCreateWithUTF8CString(&quot;SetUserMediaPermission&quot;)).get(), adoptWK(WKBooleanCreate(enabled)));

But it’s OK to use multiple lines. I also suggest using auto for the type rather than WKRetainPtr&lt;WKStringRef&gt; once you are using the adoptWK function.

&gt; Tools/WebKitTestRunner/TestController.cpp:1402
&gt; +    for (size_t i = 0; i &lt; m_userMediaPermissionRequests.size(); ++i) {
&gt; +        WKUserMediaPermissionRequestRef permissionRequest = m_userMediaPermissionRequests[i].get();

Should use a modern for loop:

    for (auto&amp; request : m_userMediaPermissionRequests) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041256</commentid>
    <comment_count>69</comment_count>
      <attachid>239719</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-10-13 02:22:40 -0700</bug_when>
    <thetext>Created attachment 239719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041257</commentid>
    <comment_count>70</comment_count>
      <attachid>239478</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-10-13 02:24:31 -0700</bug_when>
    <thetext>Comment on attachment 239478
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=239478&amp;action=review

Thanks for the review Darin. I updated the patch and here are answers to your questions.

&gt;&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:44
&gt;&gt; +    m_pendingRequests.add(userMediaID, request.get());
&gt; 
&gt; This line of code will be a no-op if there is already a request with this ID in the hash map. What guarantees there is not one? What behavior do we want if there is a number conflict?

The userMediaID is unique, generated from the WebProcess, by the UserMediaPermissionRequestManager (generateRequestID()).

&gt;&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:60
&gt;&gt; +    m_requestToIDMap.set(request, requestID);
&gt; 
&gt; These should be add rather than set. Might want to assert there is no conflict with what’s already in the map, or if there is a conflict, consider what behavior we want when there is.

Well I don&apos;t see how there would be a conflict there since the request ID is unique, see the generateRequestID() function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045487</commentid>
    <comment_count>71</comment_count>
      <attachid>239719</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-31 21:40:31 -0700</bug_when>
    <thetext>Comment on attachment 239719
Patch

I did not get a chance to review this today. I&apos;ll try to have a look this weekend.

Did you use those license header intentionally? Those are the old headers without the redistribution parts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045502</commentid>
    <comment_count>72</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-01 02:03:50 -0700</bug_when>
    <thetext>I used the LGPL headers but they&apos;re from last year, I&apos;d be totally fine with using the newer version :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045937</commentid>
    <comment_count>73</comment_count>
      <attachid>239719</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-11-03 18:30:00 -0800</bug_when>
    <thetext>Comment on attachment 239719
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=239719&amp;action=review

Great work.

&gt; LayoutTests/ChangeLog:9
&gt; +        Simple UserMedia permission request tests inspired from the
&gt; +        Geolocation test suite.

I am a fan of your tests.

&gt; LayoutTests/http/tests/media/media-stream/disconnected-frame-already-expected.txt:1
&gt; +CONSOLE MESSAGE: line 24: NotSupportedError: DOM Exception 9: The implementation did not support the requested type of object or operation.

Is this expected?

&gt; LayoutTests/http/tests/media/media-stream/disconnected-frame-already.html:22
&gt; +    setTimeout(finishTest, 500);

500 seems a bit long, can it be made shorter?

&gt; Source/WebCore/ChangeLog:14
&gt; +        Tests: fast/mediastream/error.html
&gt; +               fast/mediastream/success.html

Need update.

&gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:54
&gt; +    ASSERT(frame);

When you have an assertion followed by a if() branch checking the same thing, it is good to document why the assertion is there.

You should use ASSERT_WITH_MESSAGE(frame, &quot;Explanation about why frame should always be valid here.&quot;)

That way, if someone runs into the assertion, she/he can evaluate if the caller is incorrect, or the assertion is invalid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047524</commentid>
    <comment_count>74</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-10 05:29:03 -0800</bug_when>
    <thetext>Thanks for the review Benjamin! I need to investigate an ASSERT that triggers in the UserMediaClient before landing this. Sorry I&apos;ve just spotted it today :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047820</commentid>
    <comment_count>75</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-11 02:55:41 -0800</bug_when>
    <thetext>(In reply to comment #73)
&gt; Comment on attachment 239719 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=239719&amp;action=review
&gt; 
&gt; 
&gt; &gt; LayoutTests/http/tests/media/media-stream/disconnected-frame-already-expected.txt:1
&gt; &gt; +CONSOLE MESSAGE: line 24: NotSupportedError: DOM Exception 9: The implementation did not support the requested type of object or operation.
&gt; 
&gt; Is this expected?
&gt; 

Well this message appears because getUserMedia is invoked for a null frame, after it&apos;s been unloaded.

&gt; &gt; LayoutTests/http/tests/media/media-stream/disconnected-frame-already.html:22
&gt; &gt; +    setTimeout(finishTest, 500);
&gt; 
&gt; 500 seems a bit long, can it be made shorter?
&gt; 

100 still works :)

&gt; &gt; Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:54
&gt; &gt; +    ASSERT(frame);
&gt; 
&gt; When you have an assertion followed by a if() branch checking the same
&gt; thing, it is good to document why the assertion is there.
&gt; 
&gt; You should use ASSERT_WITH_MESSAGE(frame, &quot;Explanation about why frame
&gt; should always be valid here.&quot;)
&gt; 

This ASSERT hits on debug builds for some of the mediastream tests though. This is because getUserMedia is called on a disconnected frame, I&apos;m not sure it&apos;s right to ASSERT in this case. A console message is emitted and the permission request is denied in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047827</commentid>
    <comment_count>76</comment_count>
      <attachid>241348</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-11 04:00:31 -0800</bug_when>
    <thetext>Created attachment 241348
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048116</commentid>
    <comment_count>77</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-12 00:26:10 -0800</bug_when>
    <thetext>Committed r176011: &lt;http://trac.webkit.org/changeset/176011&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048118</commentid>
    <comment_count>78</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-12 00:38:15 -0800</bug_when>
    <thetext>(In reply to comment #77)
&gt; Committed r176011: &lt;http://trac.webkit.org/changeset/176011&gt;

Badly screwed up commit message :( Sorry about that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215183</attachid>
            <date>2013-10-25 09:27:52 -0700</date>
            <delta_ts>2013-10-26 03:03:10 -0700</delta_ts>
            <desc>[wk2] usermediaclient</desc>
            <filename>wk2-usermediaclient.patch</filename>
            <type>text/plain</type>
            <size>68839</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAyM2YyNzM0OTQxOTZiMzk3NWI0ODM1MWFhN2UwZjcyMTE0M2E2Y2MxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDIyIE9jdCAyMDEzIDE5OjIxOjI3ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
W3drMl0gdXNlcm1lZGlhY2xpZW50CgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgIDEzICsrKwogLi4uL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAgICAgICAgfCAgMTEgKysrCiAuLi4vV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCB8ICAgNCArCiBTb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKysrKysrKysrKysrKysr
KysrCiBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICB8
ICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtICAgICAgICAgICAgICAg
ICB8ICAxMyArKysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCAgICAgICAg
ICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCAgICAgICAg
ICAgICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaCAgICAgICAgIHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuaCAgICAgICAgICAgIHwgICAzICsKIC4uLi9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmNwcCAgICAgICAgIHwgIDQxICsrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9DL1dL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCB8ICAzOCArKysrKysrKwogLi4uL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwICAgfCAgIDggKysKIC4uLi9BUEkv
Z3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAgIHwgMTAzICsrKysrKysr
KysrKysrKysrKysrKwogLi4uL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuaCAgICAgfCAgNjQgKysrKysrKysrKysrKwogLi4uL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUuaCAgfCAgMjggKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCB8ICAxOCArKysrCiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggICAgICAgICB8ICAgMSArCiAuLi4vVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICAgICB8ICA2OSArKysrKysrKysr
KysrKwogLi4uL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggICAgICAg
fCAgNTAgKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmNwcCAgfCAgNTYgKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5oICAgIHwgIDUxICsrKysrKysrKysKIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgIDEzICsrKwogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oICAgICAgICAgICAgfCAgIDQgKwogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiAgfCAgIDUgKy0KIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAgICAgICAgICAgIHwgIDEwICsr
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaCAgICAgICAgICAgICB8ICAg
MiArCiAuLi4vTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwICAgICAgICB8
ICA5MSArKysrKysrKysrKysrKysrKysKIC4uLi9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
TWFuYWdlci5oICAgICAgICAgIHwgIDU0ICsrKysrKysrKysrCiAuLi4vV2ViQ29yZVN1cHBvcnQv
V2ViVXNlck1lZGlhQ2xpZW50LmNwcCAgICAgICAgICB8ICA1NSArKysrKysrKysrKwogLi4uL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmggfCAgNDkgKysrKysr
KysrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwICAgICAg
fCAgMTUgKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oICAg
ICAgICB8ICAxNSArKysKIC4uLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluIHwgICA1ICsKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgIDE4ICsrKysKIFRvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2lu
ZG93LmMgICAgICAgICAgICAgIHwgIDM1ICsrKysrLS0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwICAgICAgICAgIHwgICAyICsKIDM3IGZpbGVzIGNoYW5nZWQsIDEw
MzkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5j
cHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
Y3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVk
aWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFu
YWdlci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
aAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBjOWI0YTNkLi42MWEwMDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTMtMTAtMjUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHA6IEFkZGVkIGRvY3VtZW50IGFuZAorICAgICAgICBmcmFtZSBh
Y2Nlc3NvcnMsIG5lZWRlZCBieSB0aGUgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIgb2YgdGhlIFdl
YlByb2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojpkb2N1bWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpmcmFtZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisKIDIwMTMtMTAtMjIgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXSzJdW0dU
S10gZW5hYmxlLW1lZGlhLXN0cmVhbSBTZXR0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCBkYzBiNTIw
Li5jY2FmN2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJE
aWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25D
b2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzSW1w
bC5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50
ZXIuaCIKQEAgLTEwMCw2ICsxMDEsMTYgQEAgVXNlck1lZGlhUmVxdWVzdDo6flVzZXJNZWRpYVJl
cXVlc3QoKQogewogfQogCitEb2N1bWVudCogVXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1lbnQoKSBj
b25zdAoreworICAgIHJldHVybiB0b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
Cit9CisKK0ZyYW1lKiBVc2VyTWVkaWFSZXF1ZXN0OjpmcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5mcmFtZSgpIDogMDsKK30KKwogU2VjdXJpdHlP
cmlnaW4qIFVzZXJNZWRpYVJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKCkgY29uc3QKIHsKICAgICBp
ZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAzY2ZlZWY3Li5mZjJk
NmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuaApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIERpY3Rpb25hcnk7CiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEZyYW1lOwogY2xhc3Mg
TWVkaWFDb25zdHJhaW50czsKIGNsYXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIGNsYXNzIFVz
ZXJNZWRpYUNvbnRyb2xsZXI7CkBAIC01OSw2ICs2MCw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIqLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zLCBQYXNz
UmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TmF2
aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB+VXNl
ck1lZGlhUmVxdWVzdCgpOwogCisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CisgICAg
RnJhbWUqIGZyYW1lKCkgY29uc3Q7CisKICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmln
aW4oKSBjb25zdDsKIAogICAgIHZvaWQgc3RhcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4YWYxZWE1Li5l
MzZkMTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTkgQEAKKzIwMTMtMTAtMjUgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRp
YUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTdXBwb3J0IGZvciBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCBpbiBXZWJLaXQy
LiBJdCdzCisgICAgICAgIGltcGxlbWVudGVkIHNpbWlsYXJpbHkgdG8gdGhlIEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QKKyAgICAgICAgc3VwcG9ydC4gV2hlbiB0aGUgV2ViUGFnZSByZXF1
aXJlcyB0aGlzIHBlcm1pc3Npb24gaXQgc2VuZHMgYQorICAgICAgICBtZXNzYWdlIHRvIHRoZSBV
SSBwcm9jZXNzIHdoaWNoIGF0IHNvbWUgcG9pbnQgZ3JhbnRzIG9yIGRlbmllcyB0aGUKKyAgICAg
ICAgcGVybWlzc2lvbiBhbmQgc2VuZCB0aGUgcmVzdWx0IHRvIHRoZSBXZWJQcm9jZXNzLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUuYW06IE5ldyBNZWRpYVN0cmVhbSBkaXJlY3RvcnkuCisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogTmV3IGZpbGVzIGluIHRoZSBidWlsZCEKKyAgICAg
ICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6IE5ldyB0eXBlIGZvciBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC4KKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IERpdHRvLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDogRm9yd2FyZC1kZWNsYXJlIHRoZSBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuaDogTmV3IERlY2lkZVBvbGljeSBoYW5kbGVyIGZvciBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5jcHA6IEFkZGVkLCBDIEFQSQorICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiB0aGUg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0R2V0VHlwZUlEKToKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RBbGxvdyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwOiBE
ZWNpZGVQb2xpY3kgaGFuZGxlcgorICAgICAgICBpbXBsZW1lbnRhdGlvbiBmb3IgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgIChkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChhdHRhY2hVSUNsaWVudFRvVmlldyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
OiBBZGRlZCwKKyAgICAgICAgV2ViS2l0R1RLIEFQSSBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QsIHZlcnkgc2ltaWxhciB0byB0aGUKKyAgICAgICAgb25lIHVzZWQgZm9yIEdlb2xvY2F0
aW9uLAorICAgICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6Cisg
ICAgICAgICh3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkpOgorICAgICAgICAo
d2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5pdCk6CisgICAgICAgICh3ZWJr
aXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERpc3Bvc2UpOgorICAgICAgICAod2Via2l0X3Vz
ZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJp
dmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJn
dGstc2VjdGlvbnMudHh0OiBFeHBvc2UgbmV3IEFQSQorICAgICAgICBpbiBkb2N1bWVudGF0aW9u
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaDogRXhwb3NlIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0IEFQSS4KKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOiBBZGRlZCwKKyAgICAgICAgbWFuYWdlciBz
dG9yaW5nIHBlbmRpbmcgVXNlck1lZGlhUGVybWlzc2lvbiByZXF1ZXN0cy4KKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1ZXN0cyk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVh
dGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5jcHA6IEFkZGVkLCBwcm94eQorICAgICAgICBvYmplY3QgZm9yIHRoZSBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFR5cGUuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOiBEZWZl
cgorICAgICAgICBVc2VyUGVybWlzc2lvblJlcXVlc3QgdG8gdGhlIFVJQ2xpZW50LgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluOiBOZXcgbWVzc2FnZSB0byBoYW5kbGUgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RzLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCk6CisgICAgICAgIERlZmVyIHBlcm1pc3Npb24gcmVxdWVzdCB0byBBUElDbGll
bnQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHA6IEFkZGVkLAorICAg
ICAgICBXZWJQcm9jZXNzIHNpZGUgb2YgdGhlIFVzZXJSZXF1ZXN0TWFuYWdlciwga2VlcGluZyB0
cmFjayBvZiBlYWNoCisgICAgICAgIHBlcm1pc3Npb24gcmVxdWVzdC4KKyAgICAgICAgKFdlYktp
dDo6Z2VuZXJhdGVVc2VyTWVkaWFSZXF1ZXN0SUQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFSZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcjo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsUmVxdWVzdCk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlVXNlck1lZGlh
UGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcDogQWRkZWQsCisgICAgICAgIFdlYlBy
b2Nlc3MgaW1wbGVtZW50YXRpb24gb2YgdGhlIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50Ojp+V2ViVXNlck1lZGlhQ2xpZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVkKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsUmVxdWVzdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6V2ViVXNlck1lZGlhQ2xp
ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOiBDcmVhdGUgdGhlCisgICAgICAgIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciBhbmQgcmVnaXN0ZXIgdGhlIFVzZXJNZWRpYUNsaWVu
dAorICAgICAgICB0byB0aGUgcGFnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVj
ZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6IERpc3BhdGNoCisgICAgICAgIGRlY2lz
aW9uIHRvIG1hbmFnZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXNlck1lZGlhUmVxdWVzdE1hbmFnZXIpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBOZXcgTWVzc2Fn
ZSB0byBoYW5kbGUKKyAgICAgICAgcGVybWlzc2lvbiBkZWNpc2lvbiByZXN1bHQgZnJvbSB0aGUg
VUkgcHJvY2Vzcy4KKwogMjAxMy0xMC0yMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGln
YWxpYS5jb20+CiAKICAgICAgICAgW1dLMl1bR1RLXSBlbmFibGUtbWVkaWEtc3RyZWFtIFNldHRp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUuYW0KaW5kZXggMzkxN2FjNC4uNDM4ZjgzOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFr
ZWZpbGUuYW0KQEAgLTE0NSw2ICsxNDUsNyBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJ
X01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0NQUAogCS1J
JChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQiBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuIFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKKwktSSQo
c3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtIFwKIAktSSQoc3Jj
ZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ayBcCiAJLUkkKHNyY2RpcikvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUgXApAQCAtMzgzLDYgKzM4NCw3IEBAIHZw
YXRoICUubWVzc2FnZXMuaW4gPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0Nvb2tpZXMgXAog
CSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24gXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSBcCiAJ
JChXZWJLaXQyKS9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZSBcCiAJJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL01lZGlhQ2FjaGUgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0
Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDkzNmI0NzguLjM0NzhkMDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNjY4LDYgKzY2OCw4IEBAIHdlYmtpdDJfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFn
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5o
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5jcHAgXAor
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVmli
cmF0aW9uLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVmlicmF0aW9u
LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvY3BwL1dLUmV0YWluUHRyLmggXApA
QCAtNzkxLDYgKzc5Myw5IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAgXAogCVNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZh
dGUuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUu
aCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VmVyc2lvbi5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuaCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAg
XApAQCAtOTExLDYgKzkxNiwxMCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VGV4dENoZWNrZXJDb21wbGV0aW9uLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0
Q2hlY2tlckNvbXBsZXRpb24uY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBcCisJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3Bw
IFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5j
cHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmggXAog
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
LmggXApAQCAtMTE0OCw2ICsxMTU3LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlVXNlck1lc3Nh
Z2VDb2RlcnMuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1l
ZGlhQ2FjaGVNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNh
Y2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmggXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmggXAogCVNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9NYW5hZ2Vy
LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3Jr
SW5mb01hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgXApAQCAtMTI0Miw2ICsx
MjUzLDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAgXAogCVNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmggXAorCVNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50
LmNwcCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2Vy
TWVkaWFDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJWaWJyYXRpb25DbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlZpYnJhdGlvbkNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRGVjb2RlckFkYXB0ZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS0Jhc2UuaAppbmRleCAxOTdhZDlmLi4xNTI2OWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCkBAIC0xMjYsNiArMTI2LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmOwog
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcmVmZXJlbmNlcyogV0tQcmVmZXJlbmNlc1Jl
ZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJvdGVjdGlvblNwYWNlKiBXS1Byb3Rl
Y3Rpb25TcGFjZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVGV4dENoZWNrZXIq
IFdLVGV4dENoZWNrZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmOwogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWJyYXRpb24qIFdLVmlicmF0aW9uUmVmOwogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWV3cG9ydEF0dHJpYnV0ZXMqIFdLVmlld3BvcnRB
dHRyaWJ1dGVzUmVmOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggNzAzMjFiOS4u
N2I4N2MzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtMTA5LDYgKzEwOSw3IEBA
IHB1YmxpYzoKICAgICAgICAgVHlwZVBsdWdpblNpdGVEYXRhTWFuYWdlciwKICAgICAgICAgVHlw
ZVByZWZlcmVuY2VzLAogICAgICAgICBUeXBlVGV4dENoZWNrZXIsCisgICAgICAgIFR5cGVVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKICAgICAgICAgVHlwZVZpYnJhdGlvbiwKICAgICAgICAg
VHlwZVZpZXdwb3J0QXR0cmlidXRlcywKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oCmluZGV4IGRkODhkN2EuLjczMmRlZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTU3LDYgKzU3LDcgQEAgY2xhc3MgQXV0aGVu
dGljYXRpb25EZWNpc2lvbkxpc3RlbmVyOwogY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIEdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0OworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNs
YXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2Fy
ZExpc3Q7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOwpAQCAtMTQzLDYgKzE0NCw3IEBA
IFdLX0FERF9BUElfTUFQUElORyhXS1Byb3RlY3Rpb25TcGFjZVJlZiwgV2ViUHJvdGVjdGlvblNw
YWNlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVuZGVyTGF5ZXJSZWYsIFdlYlJlbmRlckxheWVy
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVuZGVyT2JqZWN0UmVmLCBXZWJSZW5kZXJPYmplY3Qp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tUZXh0Q2hlY2tlclJlZiwgV2ViVGV4dENoZWNrZXIpCitX
S19BRERfQVBJX01BUFBJTkcoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiwgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1ZpYnJhdGlv
blJlZiwgV2ViVmlicmF0aW9uUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tWaWV3cG9ydEF0
dHJpYnV0ZXNSZWYsIFdlYlZpZXdwb3J0QXR0cmlidXRlcykKIFdLX0FERF9BUElfTUFQUElORyhX
S0luc3BlY3RvclJlZiwgV2ViSW5zcGVjdG9yUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmgKaW5kZXggODU2MTFlZC4uYmNhODliMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaApAQCAtMjIxLDYgKzIyMSw3IEBAIHR5cGVkZWYgdm9pZCAo
KldLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJh
Y2spKFdLUGFnCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjayko
V0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGluaXRpYWxDb2xvciwgV0tDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVk
ZWYgdm9pZCAoKldLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VVbmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIFdLRGljdGlvbmFy
eVJlZiBwbHVnaW5JbmZvRGljdGlvbmFyeSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBl
ZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9y
aWdpblJlZiBvcmlnaW4sIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lv
blJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiAvLyBEZXByZWNhdGVkICAgIAog
dHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywg
V0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRv
biwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0yODMsNiArMjg0LDggQEAgc3RydWN0IFdL
UGFnZVVJQ2xpZW50IHsKICAgICBXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dDb2xvclBpY2tlcjsKICAgICBXS1Bh
Z2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhpZGVDb2xvclBpY2tlcjsKICAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0OworCiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgV0tQ
YWdlVUlDbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGEwZDNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
CkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTAor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWludCB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmgiCisKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5j
bHVkZSAiV0tBUElDYXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlE
IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0
b0FQSShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpBUElUeXBlKTsKK30KKwordm9p
ZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikKK3sKKyAgICByZXR1cm4g
dG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+YWxsb3coKTsKK30KKwordm9p
ZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQoreworICAgIHJldHVybiB0
b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5kZW55KCk7Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Nzhj
MzNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RfaAorI2RlZmluZSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gKKworI2luY2x1
ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7
CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dERlbnkoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCAwODk5Yjg1Li43NDNm
MjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
SUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VUlDbGllbnQuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RmlsZUNob29z
ZXJSZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgorI2luY2x1ZGUg
IldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldl
YktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdQcml2YXRl
LmgiCiAjaW5jbHVkZSAiV2ViS2l0V2luZG93UHJvcGVydGllc1ByaXZhdGUuaCIKQEAgLTE1Myw2
ICsxNTQsMTIgQEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFcKICAgICB3ZWJraXRXZWJWaWV3TWFr
ZVBlcm1pc3Npb25SZXF1ZXN0KFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSwgV0VCS0lUX1BF
Uk1JU1NJT05fUkVRVUVTVChnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CiB9
CiAKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorewor
ICAgIEdSZWZQdHI8V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0Q3JlYXRlKHRvSW1wbChyZXF1ZXN0KSkpOworICAgIHdlYmtpdFdlYlZpZXdNYWtlUGVybWlz
c2lvblJlcXVlc3QoV0VCS0lUX1dFQl9WSUVXKGNsaWVudEluZm8pLCBXRUJLSVRfUEVSTUlTU0lP
Tl9SRVFVRVNUKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7Cit9CisKIHN0YXRp
YyB2b2lkIHJ1bk1vZGFsKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQog
ewogICAgIHdlYmtpdFdlYlZpZXdSdW5Bc01vZGFsKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZv
KSk7CkBAIC0yMDksNiArMjE2LDcgQEAgdm9pZCBhdHRhY2hVSUNsaWVudFRvVmlldyhXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3KQogICAgICAgICAwLCAvLyBzaG93Q29sb3JQaWNrZXIKICAgICAgICAg
MCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIHBsdWdpbkxvYWRQb2xpY3kKKyAg
ICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKICAgICB9Owog
ICAgIFdLUGFnZVJlZiB3a1BhZ2UgPSB0b0FQSSh3ZWJraXRXZWJWaWV3QmFzZUdldFBhZ2UoV0VC
S0lUX1dFQl9WSUVXX0JBU0Uod2ViVmlldykpKTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQo
d2tQYWdlLCAmd2tVSUNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQzYmNhYwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCIKKworI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlICJXZWJLaXRQZXJtaXNzaW9uUmVx
dWVzdC5oIgorI2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCisvKioKKyAqIFNFQ1RJT046IFdlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0CisgKiBAU2hvcnRfZGVzY3JpcHRpb246IEEgcGVy
bWlzc2lvbiByZXF1ZXN0IGZvciBhY2Nlc3NpbmcgdXNlcidzIGF1ZGlvL3ZpZGVvIGRldmljZXMu
CisgKiBAVGl0bGU6IFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0CisgKiBAU2VlX2Fs
c286ICNXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCwgI1dlYktpdFdlYlZpZXcKKyAqCisgKiBXZWJL
aXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCByZXByZXNlbnRzIGEgcmVxdWVzdCBmb3IKKyAq
IHBlcm1pc3Npb24gdG8gZGVjaWRlIHdoZXRoZXIgV2ViS2l0IHNob3VsZCBiZSBhbGxvd2VkIHRv
IGFjY2VzcyB0aGUgdXNlcidzCisgKiBhdWRpbyBhbmQgdmlkZW8gc291cmNlIGRldmljZXMgd2hl
biByZXF1ZXN0ZWQgdGhyb3VnaHQgdGhlIGdldFVzZXJNZWRpYSBBUEkuCisgKi8KKworc3RhdGlj
IHZvaWQgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5pdChXZWJLaXRQZXJt
aXNzaW9uUmVxdWVzdElmYWNlKik7CisKK3N0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcml2YXRlIHsKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eT4gcmVxdWVzdDsKKyAgICBib29sIG1hZGVEZWNpc2lvbjsKK307CisKK1dFQktJVF9ERUZJ
TkVfVFlQRV9XSVRIX0NPREUoCisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qs
IHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdCwgR19UWVBFX09CSkVDVCwKKyAg
ICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX1RZUEVfUEVSTUlTU0lPTl9SRVFVRVNULCB3
ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KSkKKworc3RhdGljIHZvaWQg
d2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXZWJLaXRQZXJtaXNzaW9uUmVx
dWVzdCogcmVxdWVzdCkKK3sKKyAgICBBU1NFUlQoV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlT
U0lPTl9SRVFVRVNUKHJlcXVlc3QpKTsKKworICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVT
VChyZXF1ZXN0KS0+cHJpdjsKKworICAgIC8vIE9ubHkgb25lIGRlY2lzaW9uIGF0IGEgdGltZS4K
KyAgICBpZiAocHJpdi0+bWFkZURlY2lzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBwcml2
LT5yZXF1ZXN0LT5hbGxvdygpOworICAgIHByaXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7Cit9CisK
K3N0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXZWJLaXRQ
ZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBBU1NFUlQoV0VCS0lUX0lTX1VTRVJf
TUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKTsKKworICAgIFdlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9VU0VSX01FRElBX1BFUk1J
U1NJT05fUkVRVUVTVChyZXF1ZXN0KS0+cHJpdjsKKworICAgIC8vIE9ubHkgb25lIGRlY2lzaW9u
IGF0IGEgdGltZS4KKyAgICBpZiAocHJpdi0+bWFkZURlY2lzaW9uKQorICAgICAgICByZXR1cm47
CisKKyAgICBwcml2LT5yZXF1ZXN0LT5kZW55KCk7CisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0g
dHJ1ZTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZh
Y2VfaW5pdChXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdElmYWNlKiBpZmFjZSkKK3sKKyAgICBpZmFj
ZS0+YWxsb3cgPSB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93OworICAgIGlm
YWNlLT5kZW55ID0gd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55OworfQorCitz
dGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERpc3Bvc2UoR09iamVj
dCogb2JqZWN0KQoreworICAgIC8vIERlZmF1bHQgYmVoYXZpb3VyIHdoZW4gbm8gZGVjaXNpb24g
aGFzIGJlZW4gbWFkZSBpcyBkZW55aW5nIHRoZSByZXF1ZXN0LgorICAgIHdlYmtpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0RGVueShXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNUKG9iamVjdCkp
OworICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVz
dF9wYXJlbnRfY2xhc3MpLT5kaXNwb3NlKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtp
dF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9jbGFzc19pbml0KFdlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MqIGtsYXNzKQoreworICAgIEdPYmplY3RDbGFzcyogb2Jq
ZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7CisgICAgb2JqZWN0Q2xhc3MtPmRpc3Bv
c2UgPSB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERpc3Bvc2U7Cit9CisKK1dlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdENyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiByZXF1ZXN0KQorewor
ICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCA9IFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChnX29iamVjdF9u
ZXcoV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIE5VTEwpKTsKKyAg
ICB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC0+cHJpdi0+cmVxdWVzdCA9IHJlcXVlc3Q7Cisg
ICAgcmV0dXJuIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MDVjODA3YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTAsMCArMSw2NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJL
SVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3Ig
Ik9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2Vu
ZGlmCisKKyNpZm5kZWYgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaAorI2RlZmlu
ZSBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9i
amVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RF
Q0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1Qg
ICAgICAgICAgICAod2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBl
KCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChvYmopICAg
ICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9V
U0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xB
U1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZ
UEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9O
X1JFUVVFU1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwg
V0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJL
SVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNT
SU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVF
U1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VC
S0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QgICAgICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3Mg
ICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSBXZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiov
CisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlICpwcml2OworfTsK
Kworc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzIHsKKyAgICBH
T2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQw
KSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9p
ZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2
ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfdXNlcl9tZWRpYV9w
ZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUgKHZvaWQpOworCitHX0VORF9ERUNMUworCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk5YWQyZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZS5oCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByaXZhdGVfaAorI2RlZmluZSBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGVfaAorCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgiCisKK1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KiB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqKTsKKworI2VuZGlmIC8vIFdlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApp
bmRleCA1YTZjYjQzLi45NDM3MTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKQEAgLTUx
NSw2ICs1MTUsMjQgQEAgd2Via2l0X2dlb2xvY2F0aW9uX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRf
dHlwZQogPC9TRUNUSU9OPgogCiA8U0VDVElPTj4KKzxGSUxFPldlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0PC9GSUxFPgorV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKKwor
PFNVQlNFQ1RJT04gU3RhbmRhcmQ+CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENs
YXNzCitXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX1VT
RVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNT
SU9OX1JFUVVFU1QKK1dFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUwor
V0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfVVNF
Ul9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9OIFByaXZh
dGU+CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUKK3dlYmtpdF91c2Vy
X21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQorPC9TRUNUSU9OPgorCis8U0VDVElP
Tj4KIDxGSUxFPldlYktpdFBvbGljeURlY2lzaW9uPC9GSUxFPgogV2ViS2l0UG9saWN5RGVjaXNp
b24KIHdlYmtpdF9wb2xpY3lfZGVjaXNpb25fZG93bmxvYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAppbmRleCA4ZDgyMTk5Li42MjAxNTc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCkBAIC01Niw2ICs1Niw3IEBACiAj
aW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9X
ZWJLaXRVUklSZXNwb25zZS5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFZlcnNpb24uaD4KICNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdFdlYkNvbnRleHQuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYkluc3Bl
Y3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE5MmRlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEg
Uy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSog
cGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMoKQoreworICAgIFBlbmRp
bmdSZXF1ZXN0TWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGVuZGluZ1JlcXVlc3RzLmJlZ2lu
KCk7CisgICAgUGVuZGluZ1JlcXVlc3RNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcGVuZGlu
Z1JlcXVlc3RzLmVuZCgpOworICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgIGl0
LT52YWx1ZS0+aW52YWxpZGF0ZSgpOworCisgICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKTsK
K30KKworUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1
c2VyTWVkaWFSZXF1ZXN0SUQpCit7CisgICAgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk+IHJlcXVlc3QgPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpjcmVh
dGUodGhpcywgdXNlck1lZGlhUmVxdWVzdElEKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQo
dXNlck1lZGlhUmVxdWVzdElELCByZXF1ZXN0LmdldCgpKTsKKyAgICByZXR1cm4gcmVxdWVzdC5y
ZWxlYXNlKCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1l
ZGlhUmVxdWVzdElELCBib29sIGFsbG93ZWQpCit7CisgICAgaWYgKCFtX3BhZ2UtPmlzVmFsaWQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGVuZGluZ1JlcXVlc3RNYXA6Oml0ZXJhdG9yIGl0
ID0gbV9wZW5kaW5nUmVxdWVzdHMuZmluZCh1c2VyTWVkaWFSZXF1ZXN0SUQpOworICAgIGlmIChp
dCA9PSBtX3BlbmRpbmdSZXF1ZXN0cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1c2VyTWVkaWFS
ZXF1ZXN0SUQsIGFsbG93ZWQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKGFsbG93ZWQpOworI2VuZGlmCisKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUo
aXQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJiZGFmZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5X2gKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIK
KyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViUGFnZVByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Kik7CisKKyAgICB2b2lkIGludmFsaWRhdGVSZXF1ZXN0
cygpOworCisgICAgLy8gQ3JlYXRlIGEgcmVxdWVzdCB0byBiZSBwcmVzZW50ZWQgdG8gdGhlIHVz
ZXIuCisgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVh
dGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYVJlcXVlc3RJRCk7CisKKyAgICAvLyBDYWxsZWQg
YnkgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSB3aGVuIGEgZGVjaXNpb24gaXMgbWFk
ZSBieSB0aGUgdXNlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworCitwcml2YXRlOgorICAgIHR5cGVkZWYgSGFz
aE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBQ
ZW5kaW5nUmVxdWVzdE1hcDsKKyAgICBQZW5kaW5nUmVxdWVzdE1hcCBtX3BlbmRpbmdSZXF1ZXN0
czsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmEzNjA2OWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorCisjaW5jbHVkZSAiVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1h
bmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SUQpCisgICAgOiBtX21h
bmFnZXIobWFuYWdlcikKKyAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJRCh1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdElEKQoreworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OmFsbG93KCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9tYW5hZ2VyLT5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRl
Y2lzaW9uKG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJRCwgdHJ1ZSk7CisgICAgbV9tYW5h
Z2VyID0gMDsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55
KCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYW5h
Z2VyLT5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RJRCwgZmFsc2UpOworICAgIG1fbWFuYWdlciA9IDA7Cit9CisKK3ZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSgpCit7CisgICAgbV9t
YW5hZ2VyID0gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDIwNDZiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEln
YWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICovCisKKyNpZm5kZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eV9oCisjZGVm
aW5lIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaAorCisjaW5jbHVkZSAiQVBJT2Jq
ZWN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OworCitjbGFz
cyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIFR5cGVkQVBJT2JqZWN0
PEFQSU9iamVjdDo6VHlwZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3Jl
YXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBtYW5hZ2VyLCB1aW50
NjRfdCB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElEKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SUQpKTsKKyAgICB9CisKKyAgICB2b2lkIGFsbG93KCk7
CisgICAgdm9pZCBkZW55KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKworcHJpdmF0ZToK
KyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5KiwgdWludDY0X3QgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJ
RCk7CisKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbV9tYW5h
Z2VyOworICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJRDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IGNmNjlhYjcuLjFlNWQ0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC0yMzYsNiArMjM2LDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHko
UGFnZUNsaWVudCogcGFnZUNsaWVudCwgUGFzc1JlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHAKICAg
ICAsIG1fbWFpbkZyYW1lKDApCiAgICAgLCBtX3VzZXJBZ2VudChzdGFuZGFyZFVzZXJBZ2VudCgp
KQogICAgICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQorICAg
ICwgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIodGhpcykKICAgICAsIG1fbm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKHRoaXMpCiAgICAgLCBtX2VzdGltYXRl
ZFByb2dyZXNzKDApCiAgICAgLCBtX2lzSW5XaW5kb3cobV9wYWdlQ2xpZW50LT5pc1ZpZXdJbldp
bmRvdygpKQpAQCAtMzk2Nyw2ICszOTY4LDE4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwKICAg
ICAgICAgcmVxdWVzdC0+ZGVueSgpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCit7CisgICAgV2ViRnJhbWVQcm94eSog
ZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAgIE1FU1NBR0VfQ0hFQ0so
ZnJhbWUpOworCisgICAgUmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBXZWJTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW5JZGVudGlmaWVyKTsKKyAgICBSZWZQ
dHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gcmVxdWVzdCA9IG1fdXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNyZWF0ZVJlcXVlc3QodXNlck1lZGlhSUQpOworCisg
ICAgaWYgKCFtX3VpQ2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0KHRoaXMsIGZyYW1lLCBvcmlnaW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpKQorICAgICAgICBy
ZXF1ZXN0LT5kZW55KCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0
aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3Ry
aW5nKQogewogICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDhlMzdjNTIuLmRkODM0ODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4
dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgi
CiAjaW5jbHVkZSAiV0tQYWdlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyLmgi
CkBAIC04NTMsNiArODU0LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9j
ZXNzKCk7CiAgICAgdm9pZCByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0qKTsKIAorICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdp
bklkZW50aWZpZXIpOworCiAgICAgdm9pZCByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1
aW50NjRfdCBub3RpZmljYXRpb25JRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpOwogICAg
IHZvaWQgc2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcm
IGJvZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0
cmluZyYgbGFuZywgY29uc3QgU3RyaW5nJiBkaXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5n
LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CiAgICAgdm9pZCBjYW5jZWxOb3RpZmljYXRpb24o
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwpAQCAtMTA4OCw2ICsxMDkxLDcgQEAgcHJpdmF0ZToK
ICAgICBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhIG1fYWN0aXZlQ29udGV4dE1lbnVIaXRUZXN0UmVz
dWx0RGF0YTsKICAgICBSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eT4gbV9v
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5IG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisgICAg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV91c2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI7CiAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAKICAgICBk
b3VibGUgbV9lc3RpbWF0ZWRQcm9ncmVzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGE5ODUzOGIuLjdlNDE4OTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMjAzLDcgKzIwMywxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgIyBH
ZW9sb2NhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JG
cmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmlu
ZyBvcmlnaW5JZGVudGlmaWVyKQotICAgIAorCisgICAgIyBVc2VyIE1lZGlhIG1lc3NhZ2VzCisg
ICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgdWludDY0X3QgZnJhbWVJRCwgV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKKwogICAg
ICMgTm90aWZpY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Np
b24odWludDY0X3QgcmVxdWVzdElELCBXVEY6OlN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQogICAg
IFNob3dOb3RpZmljYXRpb24oV1RGOjpTdHJpbmcgdGl0bGUsIFdURjo6U3RyaW5nIGJvZHksIFdU
Rjo6U3RyaW5nIGljb25VUkwsIFdURjo6U3RyaW5nIHRhZywgV1RGOjpTdHJpbmcgbGFuZywgV1RG
OjpTdHJpbmcgZGlyLCBXVEY6OlN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCmluZGV4
IGJmYTRkOGUuLjk0ODJlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIK
ICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIlBs
dWdpbkluZm9ybWF0aW9uLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYk51bWJlci5oIgpAQCAtMzU2LDYg
KzM1NywxNSBAQCBib29sIFdlYlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFnZQogICAgIHJldHVybiB0cnVlOwogfQog
Citib29sIFdlYlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdChXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXZWJTZWN1cml0
eU9yaWdpbiogb3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBwZXJtaXNz
aW9uUmVxdWVzdCkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2NsaWVu
dC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0b0FQSShwYWdlKSwg
dG9BUEkoZnJhbWUpLCB0b0FQSShvcmlnaW4pLCB0b0FQSShwZXJtaXNzaW9uUmVxdWVzdCksIG1f
Y2xpZW50LmNsaWVudEluZm8pOworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIFdlYlVJQ2xp
ZW50OjpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdl
UHJveHkqIHBhZ2UsIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCkKIHsKICAgICBpZiAoIW1fY2xpZW50LmRl
Y2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViVUlDbGllbnQuaAppbmRleCA5ODEzZjU3Li42NzAyZmEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBJbW11
dGFibGVEaWN0aW9uYXJ5OwogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5h
dGl2ZVdlYldoZWVsRXZlbnQ7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsK
K2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJDb2xvclBp
Y2tlclJlc3VsdExpc3RlbmVyUHJveHk7CiBjbGFzcyBXZWJEYXRhOwogY2xhc3MgV2ViRnJhbWVQ
cm94eTsKQEAgLTEwMiw2ICsxMDMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHJ1bk9wZW5QYW5l
bChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViT3BlblBhbmVsUGFyYW1ldGVycyos
IFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKTsKICAgICBib29sIGRlY2lkZVBvbGlj
eUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQ
cm94eSosIFdlYlNlY3VyaXR5T3JpZ2luKiwgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5Kik7CisgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViU2VjdXJpdHlPcmlnaW4qLCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Kik7CiAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqLCBXZWJTZWN1cml0eU9y
aWdpbiosIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Kik7CiAKICAgICAvLyBQcmludGlu
Zy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRp
YVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZWMxMDRhMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0w
LDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmgiCisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJp
dHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYVJlcXVlc3QuaD4KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdWlu
dDY0X3QgZ2VuZXJhdGVVc2VyTWVkaWFSZXF1ZXN0SUQoKQoreworICAgIHN0YXRpYyB1aW50NjRf
dCB1bmlxdWVVc2VyTWVkaWFSZXF1ZXN0SUQgPSAxOworICAgIHJldHVybiB1bmlxdWVVc2VyTWVk
aWFSZXF1ZXN0SUQrKzsKK30KKworVXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OlVzZXJNZWRpYVJl
cXVlc3RNYW5hZ2VyKFdlYlBhZ2UqIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwor
Cit2b2lkIFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyOjpyZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVm
UHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QpCit7CisgICAgdWludDY0X3Qg
cmVxdWVzdElEID0gZ2VuZXJhdGVVc2VyTWVkaWFSZXF1ZXN0SUQoKTsKKworICAgIG1fdXNlck1l
ZGlhUmVxdWVzdFRvSURNYXAuc2V0KHJlcXVlc3QuZ2V0KCksIHJlcXVlc3RJRCk7CisgICAgbV9p
ZFRvVXNlck1lZGlhUmVxdWVzdE1hcC5zZXQocmVxdWVzdElELCByZXF1ZXN0LmdldCgpKTsKKwor
ICAgIEZyYW1lKiBmcmFtZSA9IHJlcXVlc3QtPmZyYW1lKCk7CisKKyAgICBXZWJGcmFtZUxvYWRl
ckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50KGZy
YW1lLT5sb2FkZXIoKS5jbGllbnQoKSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gd2ViRnJh
bWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2ViRnJhbWUoKSA6IDA7Cisg
ICAgQVNTRVJUKHdlYkZyYW1lKTsKKworICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSBmcmFt
ZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZShyZXF1
ZXN0SUQsIHdlYkZyYW1lLT5mcmFtZUlEKCksIG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCkp
KTsKKworfQorCit2b2lkIFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyOjpjYW5jZWxSZXF1ZXN0KFdl
YkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKQoreworCit9CisKK3ZvaWQgVXNlck1lZGlhUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qg
dXNlck1lZGlhUmVxdWVzdElELCBib29sIGFsbG93ZWQpCit7CisgICAgSURUb1VzZXJNZWRpYVJl
cXVlc3RNYXA6Oml0ZXJhdG9yIGl0ID0gbV9pZFRvVXNlck1lZGlhUmVxdWVzdE1hcC5maW5kKHVz
ZXJNZWRpYVJlcXVlc3RJRCk7CisgICAgaWYgKGl0ID09IG1faWRUb1VzZXJNZWRpYVJlcXVlc3RN
YXAuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVl
c3QqIHJlcXVlc3QgPSBpdC0+dmFsdWU7CisgICAgaWYgKGFsbG93ZWQpCisgICAgICAgIHJlcXVl
c3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBlbHNlCisgICAgICAgIHJlcXVlc3Qt
PnVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOworCisgICAgbV9pZFRvVXNlck1lZGlhUmVxdWVzdE1h
cC5yZW1vdmUoaXQpOworICAgIG1fdXNlck1lZGlhUmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVl
c3QpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L01lZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZGVlNWQzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaApAQCAt
MCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5k
ZWYgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXJfaAorI2RlZmluZSBVc2VyTWVkaWFSZXF1ZXN0TWFu
YWdlcl9oCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgVXNlck1lZGlhUmVxdWVzdDsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFVzZXJNZWRpYVJl
cXVlc3RNYW5hZ2VyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFSZXF1ZXN0TWFu
YWdlcihXZWJQYWdlKik7CisKKyAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8
V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4pOworICAgIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJD
b3JlOjpVc2VyTWVkaWFSZXF1ZXN0Kik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQ
ZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhUmVxdWVzdElELCBib29sIGFsbG93
ZWQpOworCitwcml2YXRlOgorICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgV2ViQ29yZTo6
VXNlck1lZGlhUmVxdWVzdCo+IElEVG9Vc2VyTWVkaWFSZXF1ZXN0TWFwOworICAgIHR5cGVkZWYg
SGFzaE1hcDxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0KiwgdWludDY0X3Q+IFVzZXJNZWRpYVJl
cXVlc3RUb0lETWFwOworICAgIElEVG9Vc2VyTWVkaWFSZXF1ZXN0TWFwIG1faWRUb1VzZXJNZWRp
YVJlcXVlc3RNYXA7CisgICAgVXNlck1lZGlhUmVxdWVzdFRvSURNYXAgbV91c2VyTWVkaWFSZXF1
ZXN0VG9JRE1hcDsKKworICAgIFdlYlBhZ2UqIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUmVxdWVzdE1hbmFnZXJfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJV
c2VyTWVkaWFDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5
Mzc0OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViVXNlck1lZGlhQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdl
LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlh
UmVxdWVzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1dlYlVzZXJNZWRpYUNsaWVudDo6fldlYlVzZXJNZWRpYUNsaWVudCgpCit7Cit9CisK
K3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKK3sKKyAgICBkZWxldGUg
dGhpczsKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFBh
c3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCkKK3sKKyAgICBtX3Bh
Z2UtPnVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKCkucmVxdWVzdFBlcm1pc3Npb24ocmVxdWVzdCk7
Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVz
ZXJNZWRpYVJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgbV9wYWdlLT51c2VyTWVkaWFSZXF1ZXN0
TWFuYWdlcigpLmNhbmNlbFJlcXVlc3QocmVxdWVzdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1NDc1ZWEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlVzZXJNZWRpYUNsaWVudC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXZWJVc2VyTWVkaWFDbGllbnRfaAorI2RlZmluZSBX
ZWJVc2VyTWVkaWFDbGllbnRfaAorCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFDbGllbnQu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYlVz
ZXJNZWRpYUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQgeworcHVibGlj
OgorICAgIFdlYlVzZXJNZWRpYUNsaWVudChXZWJQYWdlKiBwYWdlKQorICAgICAgICA6IG1fcGFn
ZShwYWdlKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5XZWJVc2VyTWVkaWFDbGllbnQo
KTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpIE9WRVJSSURF
OworCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6VXNlck1lZGlhUmVxdWVzdD4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxS
ZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKSBPVkVSUklERTsKKworICAgIFdlYlBh
Z2UqIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2Vi
VXNlck1lZGlhQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCA3N2FhMTQ4Li4wYjdjOGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC04NCw2ICs4NCw3IEBACiAjaW5jbHVk
ZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlVzZXJNZWRpYUNs
aWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2hyb21lLmg+CkBA
IC0yNzksNiArMjgwLDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgLCBtX21heGltdW1S
ZW5kZXJpbmdTdXBwcmVzc2lvblRva2VuKDApCiAgICAgLCBtX3Njcm9sbFBpbm5pbmdCZWhhdmlv
cihEb05vdFBpbikKICAgICAsIG1fdXNlVGhyZWFkZWRTY3JvbGxpbmcoZmFsc2UpCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKHRoaXMpCisjZW5kaWYKIHsKICAgICBBU1NFUlQobV9wYWdlSUQpOwogICAgIC8vIEZJWE1F
OiBUaGlzIGlzIGEgbm9uLWlkZWFsIGxvY2F0aW9uIGZvciB0aGlzIFNldHRpbmcgYW5kCkBAIC0z
MzgsNiArMzQyLDEwIEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIFdlYkNvcmU6OnByb3Zp
ZGVEZXZpY2VQcm94aW1pdHlUbyhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJEZXZpY2VQcm94aW1pdHlD
bGllbnQodGhpcykpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdl
YkNvcmU6OnByb3ZpZGVVc2VyTWVkaWFUbyhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJVc2VyTWVkaWFD
bGllbnQodGhpcykpOworI2VuZGlmCisKICAgICBtX3BhZ2UtPnNldENhblN0YXJ0TWVkaWEoZmFs
c2UpOwogICAgIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyA9IHBhcmFtZXRlcnMubWF5U3Rh
cnRNZWRpYVdoZW5JbldpbmRvdzsKIApAQCAtMjc4NCw2ICsyNzkyLDEzIEBAIHZvaWQgV2ViUGFn
ZTo6ZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xv
Y2F0aW9uSUQsIGJvCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCit2b2lk
IFdlYlBhZ2U6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qg
dXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJN
ZWRpYUlELCBhbGxvd2VkKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVO
b3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJv
b2wgYWxsb3dlZCkKIHsKICAgICBub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
KS0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihub3RpZmljYXRpb25J
RCwgYWxsb3dlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAppbmRleCAyZGYwMWU3Li4zYTI5YTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJQbHVnaW4uaCIK
ICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFw
LmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJV
bmRvU3RlcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGF0aW9uQWx0ZXJuYXRpdmUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+CkBAIC0zODAsNiArMzgxLDEwIEBAIHB1YmxpYzoK
ICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYgZ2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAg
VXNlck1lZGlhUmVxdWVzdE1hbmFnZXImIHVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKCkgeyByZXR1
cm4gbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0KKyNlbmRpZgorCiAgICAg
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKiBub3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIoKTsKIAogICAgIHZvaWQgcGFnZURpZFNjcm9sbCgpOwpAQCAtNzgz
LDcgKzc4OCwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZXh0ZW5kU2FuZGJveEZvckZpbGVGcm9t
T3BlblBhbmVsKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgdm9pZCBkaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2VvbG9jYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKKyNl
bmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2b2lkIGRpZFJlY2VpdmVVc2Vy
TWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dl
ZCk7CisjZW5kaWYKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25E
ZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKIApAQCAtOTkx
LDYgKzEwMDIsMTAgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpTY3JvbGxQaW5uaW5nQmVoYXZp
b3IgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3I7CiAKICAgICBib29sIG1fdXNlVGhyZWFkZWRTY3Jv
bGxpbmc7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFVzZXJNZWRpYVJlcXVlc3RN
YW5hZ2VyIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworI2VuZGlmCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggYTA2ZTRmZC4uY2IxYWU0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KQEAgLTIwMSw2ICsyMDEsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdh
Y3lSZWNlaXZlciB7CiAgICAgRGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKICNlbmRpZgogCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICAjIE1lZGlhU3RyZWFtCisgICAgRGlkUmVjZWl2ZVVzZXJN
ZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2Vk
KQorI2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRp
b25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dl
ZCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGZlOTcwYTguLmY3NDQyNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMy0xMC0yNSAgUGhpbGlwcGUgTm9ybWFu
ZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dLMl0gVXNlck1lZGlhQ2xpZW50
IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYzogU2hvdyBhIHBvcHVwIHdoZW4gdGhl
IHBhZ2UKKyAgICAgICAgcmVxdWlyZXMgdXNlciBwZXJtaXNzaW9uIHRvIGFjY2VzcyBhdWRpby92
aWRlbyBkZXZpY2VzLgorICAgICAgICAocGVybWlzc2lvblJlcXVlc3REaWFsb2dDYWxsYmFjayk6
CisgICAgICAgIChzaG93R2VvbG9jYXRpb25SZXF1ZXN0RGlhbG9nKToKKyAgICAgICAgKHNob3dV
c2VyTWVkaWFSZXF1ZXN0RGlhbG9nKToKKyAgICAgICAgKHdlYlZpZXdEZWNpZGVQZXJtaXNzaW9u
UmVxdWVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6
IG51bGwKKyAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgaGFuZGxlcnMuCisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UpOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKToKKwogMjAxMy0xMC0y
MiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S10gZW5hYmxlIG1lZGlhLXN0cmVhbSBpbiBidWlsZC13ZWJraXQKZGlmZiAtLWdpdCBhL1Rvb2xz
L01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsv
QnJvd3NlcldpbmRvdy5jCmluZGV4IDNlZmQzOTAuLjJhZjA4NmEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIv
Z3RrL0Jyb3dzZXJXaW5kb3cuYwpAQCAtMjQ0LDcgKzI0NCw3IEBAIHN0YXRpYyB2b2lkIGJhY2tG
b3J3YWRsaXN0Q2hhbmdlZChXZWJLaXRCYWNrRm9yd2FyZExpc3QgKmJhY2tGb3J3YWRsaXN0LCBX
ZWJLaXRCCiAgICAgYnJvd3NlcldpbmRvd1VwZGF0ZU5hdmlnYXRpb25BY3Rpb25zKHdpbmRvdywg
YmFja0ZvcndhZGxpc3QpOwogfQogCi1zdGF0aWMgdm9pZCBnZW9sb2NhdGlvblJlcXVlc3REaWFs
b2dDYWxsYmFjayhHdGtEaWFsb2cgKmRpYWxvZywgZ2ludCByZXNwb25zZSwgV2ViS2l0UGVybWlz
c2lvblJlcXVlc3QgKnJlcXVlc3QpCitzdGF0aWMgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdERpYWxv
Z0NhbGxiYWNrKEd0a0RpYWxvZyAqZGlhbG9nLCBnaW50IHJlc3BvbnNlLCBXZWJLaXRQZXJtaXNz
aW9uUmVxdWVzdCAqcmVxdWVzdCkKIHsKICAgICBzd2l0Y2ggKHJlc3BvbnNlKSB7CiAgICAgY2Fz
ZSBHVEtfUkVTUE9OU0VfWUVTOgpAQCAtMzk2LDExICszOTYsOCBAQCBzdGF0aWMgZ2Jvb2xlYW4g
d2ViVmlld0RlY2lkZVBvbGljeShXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBXZWJLaXRQb2xpY3lE
ZWNpc2lvbgogICAgIH0KIH0KIAotc3RhdGljIGdib29sZWFuIHdlYlZpZXdEZWNpZGVQZXJtaXNz
aW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBXZWJLaXRQZXJtaXNzaW9uUmVxdWVz
dCAqcmVxdWVzdCwgQnJvd3NlcldpbmRvdyAqd2luZG93KQorc3RhdGljIGdib29sZWFuIHNob3dH
ZW9sb2NhdGlvblJlcXVlc3REaWFsb2coV2ViS2l0UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3Qs
IEJyb3dzZXJXaW5kb3cgKndpbmRvdykKIHsKLSAgICBpZiAoIVdFQktJVF9JU19HRU9MT0NBVElP
Tl9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpCi0gICAgICAgIHJldHVybiBGQUxTRTsKLQog
ICAgIEd0a1dpZGdldCAqZGlhbG9nID0gZ3RrX21lc3NhZ2VfZGlhbG9nX25ldyhHVEtfV0lORE9X
KHdpbmRvdyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdUS19ESUFMT0dfTU9EQUwgfCBHVEtfRElBTE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19NRVNTQUdFX1FV
RVNUSU9OLApAQCAtNDA4LDEyICs0MDUsMzggQEAgc3RhdGljIGdib29sZWFuIHdlYlZpZXdEZWNp
ZGVQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBXZWJLaXRQZXIKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdlb2xvY2F0aW9u
IHJlcXVlc3QiKTsKIAogICAgIGd0a19tZXNzYWdlX2RpYWxvZ19mb3JtYXRfc2Vjb25kYXJ5X3Rl
eHQoR1RLX01FU1NBR0VfRElBTE9HKGRpYWxvZyksICJBbGxvdyBnZW9sb2NhdGlvbiByZXF1ZXN0
PyIpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoZGlhbG9nLCAicmVzcG9uc2UiLCBHX0NBTExCQUNL
KGdlb2xvY2F0aW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJlcXVlc3Qp
KTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGRpYWxvZywgInJlc3BvbnNlIiwgR19DQUxMQkFDSyhw
ZXJtaXNzaW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJlcXVlc3QpKTsK
ICAgICBndGtfd2lkZ2V0X3Nob3coZGlhbG9nKTsKIAogICAgIHJldHVybiBUUlVFOwogfQogCitz
dGF0aWMgZ2Jvb2xlYW4gc2hvd1VzZXJNZWRpYVJlcXVlc3REaWFsb2coV2ViS2l0UGVybWlzc2lv
blJlcXVlc3QgKnJlcXVlc3QsIEJyb3dzZXJXaW5kb3cgKndpbmRvdykKK3sKKyAgICBHdGtXaWRn
ZXQgKmRpYWxvZyA9IGd0a19tZXNzYWdlX2RpYWxvZ19uZXcoR1RLX1dJTkRPVyh3aW5kb3cpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfRElBTE9H
X01PREFMIHwgR1RLX0RJQUxPR19ERVNUUk9ZX1dJVEhfUEFSRU5ULAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfTUVTU0FHRV9RVUVTVElPTiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX0JVVFRPTlNf
WUVTX05PLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
VXNlck1lZGlhIHJlcXVlc3QiKTsKKworICAgIGd0a19tZXNzYWdlX2RpYWxvZ19mb3JtYXRfc2Vj
b25kYXJ5X3RleHQoR1RLX01FU1NBR0VfRElBTE9HKGRpYWxvZyksICJBbGxvdyB1c2VybWVkaWEg
cmVxdWVzdD8iKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGRpYWxvZywgInJlc3BvbnNlIiwgR19D
QUxMQkFDSyhwZXJtaXNzaW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJl
cXVlc3QpKTsKKyAgICBndGtfd2lkZ2V0X3Nob3coZGlhbG9nKTsKKworICAgIHJldHVybiBUUlVF
OworfQorCitzdGF0aWMgZ2Jvb2xlYW4gd2ViVmlld0RlY2lkZVBlcm1pc3Npb25SZXF1ZXN0KFdl
YktpdFdlYlZpZXcgKndlYlZpZXcsIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0LCBC
cm93c2VyV2luZG93ICp3aW5kb3cpCit7CisgICAgaWYgKFdFQktJVF9JU19HRU9MT0NBVElPTl9Q
RVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpCisgICAgICAgIHJldHVybiBzaG93R2VvbG9jYXRp
b25SZXF1ZXN0RGlhbG9nKHJlcXVlc3QsIHdpbmRvdyk7CisKKyAgICBpZiAoV0VCS0lUX0lTX1VT
RVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKQorICAgICAgICByZXR1cm4gc2hv
d1VzZXJNZWRpYVJlcXVlc3REaWFsb2cocmVxdWVzdCwgd2luZG93KTsKKworICAgIHJldHVybiBG
QUxTRTsKK30KKwogc3RhdGljIHZvaWQgd2ViVmlld01vdXNlVGFyZ2V0Q2hhbmdlZChXZWJLaXRX
ZWJWaWV3ICp3ZWJWaWV3LCBXZWJLaXRIaXRUZXN0UmVzdWx0ICpoaXRUZXN0UmVzdWx0LCBndWlu
dCBtb3VzZU1vZGlmaWVycywgQnJvd3NlcldpbmRvdyAqd2luZG93KQogewogICAgIGlmICghd2Vi
a2l0X2hpdF90ZXN0X3Jlc3VsdF9jb250ZXh0X2lzX2xpbmsoaGl0VGVzdFJlc3VsdCkpIHsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNTNmNjIwZi4uMWU4
ZDZlNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTI1
Miw2ICsyNTIsNyBAQCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShX
S1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXSwogICAgICAgICAwLCAvLyBzaG93
Q29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAsIC8v
IHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZAorICAgICAgICAwLCAvLyBkZWNpZGVQb2xp
Y3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFn
ZVVJQ2xpZW50KG5ld1BhZ2UsICZvdGhlclBhZ2VVSUNsaWVudCk7CiAKQEAgLTQ1NCw2ICs0NTUs
NyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoV0tEaWN0
aW9uYXJ5UmVmIG9wdGlvbnMpCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBpY2tlcgogICAgICAg
ICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25D
bGlja2VkLAorICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXct
PnBhZ2UoKSwgJnBhZ2VVSUNsaWVudCk7CiAKLS0gCjEuOC40LnJjMw==
</data>
<flag name="commit-queue"
          id="237860"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215243</attachid>
            <date>2013-10-26 03:03:10 -0700</date>
            <delta_ts>2013-10-26 03:21:19 -0700</delta_ts>
            <desc>[wk2] usermediaclient</desc>
            <filename>wk2-usermediaclient.patch</filename>
            <type>text/plain</type>
            <size>71099</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA3YWJmM2ExYWI3NjM3MjBhZjEyMjliNDFhMDQ4NWRmZGU2YzMwZmNjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDIyIE9jdCAyMDEzIDE5OjIxOjI3ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
W3drMl0gdXNlcm1lZGlhY2xpZW50CgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgIDEzICsrKwogLi4uL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAgICAgICAgfCAgMTEgKysrCiAuLi4vV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCB8ICAgNCArCiBTb3VyY2UvV2ViS2l0Mi9D
TWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICB8ICAxMyArKysKIFNvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDk2ICsrKysrKysrKysr
KysrKysrKysKIFNvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAg
ICAgIHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gICAgICAgICAg
ICAgICAgIHwgIDEzICsrKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oICAg
ICAgICAgICAgICAgfCAgIDEgKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oICAg
ICAgICAgICAgICAgICAgfCAgIDEgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oICAgICAgICAgfCAgIDIgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5oICAgICAgICAgICAgfCAgIDMgKwogLi4uL0FQSS9DL1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuY3BwICAgICAgICAgfCAgNDEgKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJ
L0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIHwgIDM4ICsrKysrKysrCiAuLi4vV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAgICB8ICAgOCArKwogLi4u
L0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwICAgfCAxMDMgKysr
KysrKysrKysrKysrKysrKysrCiAuLi4vQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5oICAgICB8ICA2NCArKysrKysrKysrKysrCiAuLi4vZ3RrL1dlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oICB8ICAyOCArKysrKysKIC4uLi9VSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IHwgIDE4ICsrKysKIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaCAgICAgICAgIHwgICAxICsKIC4uLi9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgICAgIHwgIDY5ICsrKysr
KysrKysrKysrCiAuLi4vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAg
ICAgICB8ICA1MCArKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwICB8ICA1NiArKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggICAgfCAgNTEgKysrKysrKysrKwogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgICAgICAgICAgfCAgMTMgKysrCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggICAgICAgICAgICB8ICAgNCArCiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluICB8ICAgNSAr
LQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCAgICAgICAgICAgfCAg
MTAgKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oICAgICAgICAgICAg
IHwgICAyICsKIC4uLi9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAgICAg
ICAgIHwgIDkxICsrKysrKysrKysrKysrKysrKwogLi4uL01lZGlhU3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3RNYW5hZ2VyLmggICAgICAgICAgfCAgNTQgKysrKysrKysrKysKIC4uLi9XZWJDb3JlU3Vw
cG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwICAgICAgICAgIHwgIDU1ICsrKysrKysrKysrCiAu
Li4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaCB8ICA1MyAr
KysrKysrKysrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
ICAgICAgfCAgMTUgKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oICAgICAgICB8ICAxNSArKysKIC4uLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluIHwgICA1ICsKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgIDE4ICsrKysKIFRvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93
c2VyV2luZG93LmMgICAgICAgICAgICAgIHwgIDM1ICsrKysrLS0KIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwICAgICAgICAgIHwgICAyICsKIDM4IGZpbGVzIGNoYW5n
ZWQsIDEwNTYgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0TWFuYWdlci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFD
bGllbnQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNzkzZDU2Li45MzkyMmZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTMtMTAtMjUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6IEFkZGVkIGRvY3VtZW50IGFuZAorICAgICAgICBm
cmFtZSBhY2Nlc3NvcnMsIG5lZWRlZCBieSB0aGUgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIgb2Yg
dGhlIFdlYlByb2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojpkb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpmcmFtZSk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisKIDIwMTMtMTAt
MjIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtX
SzJdW0dUS10gZW5hYmxlLW1lZGlhLXN0cmVhbSBTZXR0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCBk
YzBiNTIwLi5jY2FmN2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNs
dWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJNZWRpYUNvbnN0cmFp
bnRzSW1wbC5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJl
YW1DZW50ZXIuaCIKQEAgLTEwMCw2ICsxMDEsMTYgQEAgVXNlck1lZGlhUmVxdWVzdDo6flVzZXJN
ZWRpYVJlcXVlc3QoKQogewogfQogCitEb2N1bWVudCogVXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1l
bnQoKSBjb25zdAoreworICAgIHJldHVybiB0b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCk7Cit9CisKK0ZyYW1lKiBVc2VyTWVkaWFSZXF1ZXN0OjpmcmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5mcmFtZSgpIDogMDsKK30KKwogU2Vj
dXJpdHlPcmlnaW4qIFVzZXJNZWRpYVJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKCkgY29uc3QKIHsK
ICAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAzY2ZlZWY3
Li5mZjJkNmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERpY3Rpb25hcnk7CiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEZyYW1lOwog
Y2xhc3MgTWVkaWFDb25zdHJhaW50czsKIGNsYXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIGNs
YXNzIFVzZXJNZWRpYUNvbnRyb2xsZXI7CkBAIC01OSw2ICs2MCw5IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIqLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25z
LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4sIFBhc3NSZWZQ
dHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4sIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICB+VXNlck1lZGlhUmVxdWVzdCgpOwogCisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7
CisgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CisKICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJp
dHlPcmlnaW4oKSBjb25zdDsKIAogICAgIHZvaWQgc3RhcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQK
aW5kZXggMjg2NTIzZC4uNmQ2NDM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTQzLDYgKzQz
LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL0ZpbGVBUEkiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvRnVs
bFNjcmVlbiIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiIKKyAg
ICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSIKICAgICAiJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJv
Y2Vzcy9JY29uRGF0YWJhc2UiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUiCkBAIC0zOTAsNiArMzkxLDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFjZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hl
Y2tlci5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5o
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlicmF0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5jcHAKIApAQCAtNDMxLDYgKzQzNCwxMSBAQCBzZXQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1N0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2Uu
Y3BwCiAgICAgVUlQcm9jZXNzL1N0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmNw
cAogCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcAorICAgIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisg
ICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAorCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAogCkBAIC01MjIsNiArNTMwLDkgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAg
IFdlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKICAgICBXZWJQcm9jZXNzL1N0
b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCiAKKyAgICBXZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmNwcAorICAgIFdlYlByb2Nlc3MvTWVkaWFTdHJl
YW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaAorCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJCYXR0ZXJ5Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29s
b3JDaG9vc2VyLmNwcApAQCAtNTQwLDYgKzU1MSw4IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5jcHAKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKICAgICBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJWaWJyYXRpb25DbGllbnQuY3BwCiAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvRGVjb2Rl
ckFkYXB0ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNGMwMDU2YS4uZjk1NTRmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDk5IEBACisyMDEzLTEwLTI1ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRA
aWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3Ig
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgaW4gV2ViS2l0Mi4gSXQncworICAgICAgICBpbXBs
ZW1lbnRlZCBzaW1pbGFyaWx5IHRvIHRoZSBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Cisg
ICAgICAgIHN1cHBvcnQuIFdoZW4gdGhlIFdlYlBhZ2UgcmVxdWlyZXMgdGhpcyBwZXJtaXNzaW9u
IGl0IHNlbmRzIGEKKyAgICAgICAgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2VzcyB3aGljaCBhdCBz
b21lIHBvaW50IGdyYW50cyBvciBkZW5pZXMgdGhlCisgICAgICAgIHBlcm1pc3Npb24gYW5kIHNl
bmQgdGhlIHJlc3VsdCB0byB0aGUgV2ViUHJvY2Vzcy4KKworICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOiBOZXcgTWVkaWFTdHJlYW0gZGlyZWN0b3J5LgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06IE5ldyBmaWxlcyBpbiB0aGUgYnVpbGQhCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dL
QmFzZS5oOiBOZXcgdHlwZSBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisgICAgICAg
ICogU2hhcmVkL0FQSU9iamVjdC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0Lmg6IEZvcndhcmQtZGVjbGFyZSB0aGUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6IE5ldyBEZWNpZGVQ
b2xpY3kgaGFuZGxlciBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZCwg
QyBBUEkKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgdGhlIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LgorICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCk6
CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cpOgorICAgICAgICAo
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcDogRGVjaWRlUG9saWN5IGhhbmRsZXIK
KyAgICAgICAgaW1wbGVtZW50YXRpb24gZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lgor
ICAgICAgICAoZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAg
ICAgICAoYXR0YWNoVUlDbGllbnRUb1ZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQsCisgICAgICAgIFdl
YktpdEdUSyBBUEkgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCB2ZXJ5IHNpbWlsYXIg
dG8gdGhlCisgICAgICAgIG9uZSB1c2VkIGZvciBHZW9sb2NhdGlvbiwKKyAgICAgICAgKHdlYmtp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cpOgorICAgICAgICAod2Via2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3REZW55KToKKyAgICAgICAgKHdlYmtpdF9wZXJtaXNzaW9uX3Jl
cXVlc3RfaW50ZXJmYWNlX2luaXQpOgorICAgICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3REaXNwb3NlKToKKyAgICAgICAgKHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25f
cmVxdWVzdF9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0Q3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dDogRXhw
b3NlIG5ldyBBUEkKKyAgICAgICAgaW4gZG9jdW1lbnRhdGlvbi4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay93ZWJraXQyLmg6IEV4cG9zZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCBB
UEkuCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcDogQWRkZWQsCisgICAgICAgIG1hbmFnZXIgc3RvcmluZyBwZW5kaW5nIFVzZXJN
ZWRpYVBlcm1pc3Npb24gcmVxdWVzdHMuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdCk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNl
aXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOiBBZGRlZCwgcHJv
eHkKKyAgICAgICAgb2JqZWN0IGZvciB0aGUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RUeXBl
LgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3cpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1
ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKTogRGVmZXIKKyAgICAgICAgVXNlclBlcm1p
c3Npb25SZXF1ZXN0IHRvIHRoZSBVSUNsaWVudC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjog
TmV3IG1lc3NhZ2UgdG8gaGFuZGxlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVSUNs
aWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAg
ICBEZWZlciBwZXJtaXNzaW9uIHJlcXVlc3QgdG8gQVBJQ2xpZW50LgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJVSUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZCwKKyAgICAgICAgV2ViUHJvY2VzcyBzaWRl
IG9mIHRoZSBVc2VyUmVxdWVzdE1hbmFnZXIsIGtlZXBpbmcgdHJhY2sgb2YgZWFjaAorICAgICAg
ICBwZXJtaXNzaW9uIHJlcXVlc3QuCisgICAgICAgIChXZWJLaXQ6OmdlbmVyYXRlVXNlck1lZGlh
UmVxdWVzdElEKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OlVz
ZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUmVxdWVz
dE1hbmFnZXI6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
UmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFSZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdl
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJN
ZWRpYUNsaWVudC5jcHA6IEFkZGVkLAorICAgICAgICBXZWJQcm9jZXNzIGltcGxlbWVudGF0aW9u
IG9mIHRoZSBXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQuCisgICAgICAgIChXZWJLaXQ6OldlYlVz
ZXJNZWRpYUNsaWVudDo6fldlYlVzZXJNZWRpYUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlVzZXJNZWRpYUNsaWVudDo6cGFnZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVz
ZXJNZWRpYUNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJV
c2VyTWVkaWFDbGllbnQ6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVzZXJNZWRpYUNsaWVudCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpX
ZWJQYWdlKTogQ3JlYXRlIHRoZQorICAgICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIgYW5kIHJlZ2lzdGVyIHRoZSBVc2VyTWVkaWFDbGllbnQKKyAgICAgICAgdG8gdGhlIHBh
Z2UuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNz
aW9uRGVjaXNpb24pOiBEaXNwYXRjaAorICAgICAgICBkZWNpc2lvbiB0byBtYW5hZ2VyLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogTmV3IE1lc3NhZ2UgdG8gaGFuZGxlCisgICAgICAg
IHBlcm1pc3Npb24gZGVjaXNpb24gcmVzdWx0IGZyb20gdGhlIFVJIHByb2Nlc3MuCisKIDIwMTMt
MTAtMjIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtXSzJdW0dUS10gZW5hYmxlLW1lZGlhLXN0cmVhbSBTZXR0aW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFt
CmluZGV4IDM5MTdhYzQuLjQzOGY4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCkBAIC0xNDUsNiAr
MTQ1LDcgQEAgbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VC
S0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9DUFAKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIgXAogCS1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbiBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCisJLUkkKHNyY2RpcikvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9ndGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SWNvbkRhdGFiYXNlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlIFwKQEAgLTM4Myw2ICszODQsNyBAQCB2cGF0aCAlLm1lc3NhZ2VzLmluID0g
XAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Db29raWVzIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nl
c3MvRnVsbFNjcmVlbiBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKKwkk
KFdlYktpdDIpL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0gXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9JY29uRGF0YWJhc2UgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIFwKIAkk
KFdlYktpdDIpL1dlYlByb2Nlc3MvTmV0d29yayBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCA1NzJmMTIyLi5jMWZmYmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTY2OSw2ICs2NjksOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIuaCBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgXAorCVNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggXAog
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpYnJhdGlvbi5jcHAgXAogCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpYnJhdGlvbi5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2NwcC9XS1JldGFpblB0ci5oIFwKQEAgLTc5Miw2ICs3OTQsOSBAQCB3
ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmggXAorCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNw
cCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmggXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFZlcnNpb24uY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwIFwKQEAgLTkxMiw2ICs5MTcsMTAg
QEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENo
ZWNrZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlv
bi5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNw
cCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBcCisJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBcCiAJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIFwKQEAgLTExNDksNiArMTE1
OCw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmggXAogCVNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFu
YWdlci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3RNYW5hZ2VyLmNwcCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9NYW5hZ2VyLmggXAogCVNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuY3BwIFwKQEAgLTEyNDMsNiArMTI1NCw4IEBAIHdlYmtpdDJfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
b3B1cE1lbnUuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJTZWFyY2hQb3B1cE1lbnUuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgXAorCVNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmggXAogCVNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVmlicmF0aW9uQ2xpZW50
LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJy
YXRpb25DbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RlY29k
ZXJBZGFwdGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggMTk3
YWQ5Zi4uMTUyNjljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtMTI2
LDYgKzEyNiw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGx1Z2luU2l0ZURhdGFN
YW5hZ2VyKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLUHJlZmVyZW5jZXMqIFdLUHJlZmVyZW5jZXNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS1Byb3RlY3Rpb25TcGFjZSogV0tQcm90ZWN0aW9uU3BhY2VSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1RleHRDaGVja2VyKiBXS1RleHRDaGVja2VyUmVmOwor
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCog
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLVmlicmF0aW9uKiBXS1ZpYnJhdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLVmlld3BvcnRBdHRyaWJ1dGVzKiBXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4IDcwMzIxYjkuLjdiODdjMzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJT2JqZWN0LmgKQEAgLTEwOSw2ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5
cGVQbHVnaW5TaXRlRGF0YU1hbmFnZXIsCiAgICAgICAgIFR5cGVQcmVmZXJlbmNlcywKICAgICAg
ICAgVHlwZVRleHRDaGVja2VyLAorICAgICAgICBUeXBlVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QsCiAgICAgICAgIFR5cGVWaWJyYXRpb24sCiAgICAgICAgIFR5cGVWaWV3cG9ydEF0dHJpYnV0
ZXMsCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCBk
ZDg4ZDdhLi43MzJkZWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oCkBAIC01Nyw2ICs1Nyw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0
ZW5lcjsKIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKK2NsYXNz
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbTsKQEAgLTE0Myw2ICsxNDQsNyBAQCBXS19BRERfQVBJX01BUFBJTkco
V0tQcm90ZWN0aW9uU3BhY2VSZWYsIFdlYlByb3RlY3Rpb25TcGFjZSkKIFdLX0FERF9BUElfTUFQ
UElORyhXS1JlbmRlckxheWVyUmVmLCBXZWJSZW5kZXJMYXllcikKIFdLX0FERF9BUElfTUFQUElO
RyhXS1JlbmRlck9iamVjdFJlZiwgV2ViUmVuZGVyT2JqZWN0KQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLVGV4dENoZWNrZXJSZWYsIFdlYlRleHRDaGVja2VyKQorV0tfQUREX0FQSV9NQVBQSU5HKFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tWaWJyYXRpb25SZWYsIFdlYlZpYnJhdGlvblBy
b3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmLCBXZWJWaWV3
cG9ydEF0dHJpYnV0ZXMpCiBXS19BRERfQVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYsIFdlYklu
c3BlY3RvclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4
IDg1NjExZWQuLmJjYTg5YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmgKQEAgLTIyMSw2ICsyMjEsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lG
b3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1BhZwogdHlwZWRlZiB2
b2lkICgqV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBpbml0aWFsQ29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0
ZW5lciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VIaWRl
Q29sb3JQaWNrZXJDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2Vk
Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBs
dWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBXS0RpY3Rpb25hcnlSZWYgcGx1Z2luSW5mb0RpY3Rp
b25hcnksIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlRGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWdlUmVm
IHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKIAogLy8gRGVwcmVjYXRlZCAgICAKIHR5cGVkZWYgV0tQYWdlUmVmICgq
V0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFn
ZVJlZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9k
aWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwpAQCAtMjgzLDYgKzI4NCw4IEBAIHN0cnVjdCBXS1BhZ2VVSUNsaWVudCB7CiAgICAg
V0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaG93Q29sb3JQaWNrZXI7CiAgICAgV0tQYWdlSGlkZUNvbG9yUGlja2VyQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlQ29sb3JQaWNr
ZXI7CiAgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQ7CisgICAg
V0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAg
ICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsKKwog
fTsKIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50IFdLUGFnZVVJQ2xpZW50OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZjRhMGQzZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDQxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwKKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0R2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbCh1c2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFJlZiktPmFsbG93KCk7Cit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdERlbnkoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmKS0+ZGVueSgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc4YzMzZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2Fs
aWEgUy5MCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
Ki8KKworI2lmbmRlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5o
PgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9S
VCBXS1R5cGVJRCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CisKK1dL
X0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTsKK1dLX0VY
UE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOworCisjaWZkZWYg
X19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRVSUNsaWVudC5jcHAKaW5kZXggMDg5OWI4NS4uNzQzZjIxYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcApAQCAtMjMs
NiArMjMsNyBAQAogI2luY2x1ZGUgIldlYktpdEZpbGVDaG9vc2VyUmVxdWVzdFByaXZhdGUuaCIK
ICNpbmNsdWRlICJXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVByaXZh
dGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktp
dFdpbmRvd1Byb3BlcnRpZXNQcml2YXRlLmgiCkBAIC0xNTMsNiArMTU0LDEyIEBAIHN0YXRpYyB2
b2lkIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVm
LCBXS0ZyYW1lUmVmLCBXCiAgICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNzaW9uUmVxdWVzdChX
RUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbyksIFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1QoZ2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkpOwogfQogCitzdGF0aWMgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVS
ZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYg
cmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBHUmVmUHRyPFdlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCA9IGFk
b3B0R1JlZih3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENyZWF0ZSh0b0ltcGwocmVx
dWVzdCkpKTsKKyAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KFdFQktJVF9X
RUJfVklFVyhjbGllbnRJbmZvKSwgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVCh1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkpOworfQorCiBzdGF0aWMgdm9pZCBydW5Nb2RhbChXS1Bh
Z2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB3ZWJraXRXZWJWaWV3
UnVuQXNNb2RhbChXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbykpOwpAQCAtMjA5LDYgKzIxNiw3
IEBAIHZvaWQgYXR0YWNoVUlDbGllbnRUb1ZpZXcoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAg
ICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIGhpZGVDb2xvclBpY2tl
cgogICAgICAgICAwLCAvLyBwbHVnaW5Mb2FkUG9saWN5CisgICAgICAgIGRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VSZWYgd2tQYWdl
ID0gdG9BUEkod2Via2l0V2ViVmlld0Jhc2VHZXRQYWdlKFdFQktJVF9XRUJfVklFV19CQVNFKHdl
YlZpZXcpKSk7CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdrUGFnZSwgJndrVUlDbGllbnQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkM2JjYWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5jcHAKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlh
IFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmgiCisjaW5jbHVkZSAiV2ViS2l0UGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJX
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKKwordXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKKworLyoqCisgKiBTRUNUSU9OOiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdAorICogQFNob3J0X2Rlc2NyaXB0aW9uOiBBIHBlcm1pc3Npb24gcmVxdWVzdCBmb3Ig
YWNjZXNzaW5nIHVzZXIncyBhdWRpby92aWRlbyBkZXZpY2VzLgorICogQFRpdGxlOiBXZWJLaXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAorICogQFNlZV9hbHNvOiAjV2ViS2l0UGVybWlzc2lv
blJlcXVlc3QsICNXZWJLaXRXZWJWaWV3CisgKgorICogV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QgcmVwcmVzZW50cyBhIHJlcXVlc3QgZm9yCisgKiBwZXJtaXNzaW9uIHRvIGRlY2lk
ZSB3aGV0aGVyIFdlYktpdCBzaG91bGQgYmUgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIHVzZXIncwor
ICogYXVkaW8gYW5kIHZpZGVvIHNvdXJjZSBkZXZpY2VzIHdoZW4gcmVxdWVzdGVkIHRocm91Z2h0
IHRoZSBnZXRVc2VyTWVkaWEgQVBJLgorICovCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9wZXJtaXNz
aW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQoV2ViS2l0UGVybWlzc2lvblJlcXVlc3RJZmFjZSop
OworCitzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSB7Cisg
ICAgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJlcXVlc3Q7CisgICAg
Ym9vbCBtYWRlRGVjaXNpb247Cit9OworCitXRUJLSVRfREVGSU5FX1RZUEVfV0lUSF9DT0RFKAor
ICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCB3ZWJraXRfdXNlcl9tZWRpYV9w
ZXJtaXNzaW9uX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QsCisgICAgR19JTVBMRU1FTlRfSU5URVJG
QUNFKFdFQktJVF9UWVBFX1BFUk1JU1NJT05fUkVRVUVTVCwgd2Via2l0X3Blcm1pc3Npb25fcmVx
dWVzdF9pbnRlcmZhY2VfaW5pdCkpCisKK3N0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0QWxsb3coV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7Cisg
ICAgQVNTRVJUKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0
KSk7CisKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUqIHByaXYg
PSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisK
KyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBhIHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVE
ZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpdi0+cmVxdWVzdC0+YWxsb3coKTsK
KyAgICBwcml2LT5tYWRlRGVjaXNpb24gPSB0cnVlOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJl
cXVlc3QpCit7CisgICAgQVNTRVJUKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVR
VUVTVChyZXF1ZXN0KSk7CisKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGUqIHByaXYgPSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVz
dCktPnByaXY7CisKKyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBhIHRpbWUuCisgICAgaWYg
KHByaXYtPm1hZGVEZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpdi0+cmVxdWVz
dC0+ZGVueSgpOworICAgIHByaXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7Cit9CisKK3N0YXRpYyB2
b2lkIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQoV2ViS2l0UGVybWlz
c2lvblJlcXVlc3RJZmFjZSogaWZhY2UpCit7CisgICAgaWZhY2UtPmFsbG93ID0gd2Via2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdzsKKyAgICBpZmFjZS0+ZGVueSA9IHdlYmtpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3REaXNwb3NlKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAv
LyBEZWZhdWx0IGJlaGF2aW91ciB3aGVuIG5vIGRlY2lzaW9uIGhhcyBiZWVuIG1hZGUgaXMgZGVu
eWluZyB0aGUgcmVxdWVzdC4KKyAgICB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERl
bnkoV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChvYmplY3QpKTsKKyAgICBHX09CSkVDVF9DTEFT
Uyh3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfcGFyZW50X2NsYXNzKS0+ZGlz
cG9zZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNz
aW9uX3JlcXVlc3RfY2xhc3NfaW5pdChXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENs
YXNzKiBrbGFzcykKK3sKKyAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1Rf
Q0xBU1Moa2xhc3MpOworICAgIG9iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3REaXNwb3NlOworfQorCitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCogd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSogcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdCogdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBXRUJLSVRfVVNF
Ul9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1VTRVJf
TUVESUFfUEVSTUlTU0lPTl9SRVFVRVNULCBOVUxMKSk7CisgICAgdXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QtPnByaXYtPnJlcXVlc3QgPSByZXF1ZXN0OworICAgIHJldHVybiB1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1YzgwN2IKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAh
ZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtp
dDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJ
VF9UWVBFX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUICAgICAgICAgICAgKHdlYmtpdF91
c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRf
VVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9O
X1JFUVVFU1QsIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KSkKKyNkZWZpbmUgV0VC
S0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBF
X0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1VTRVJfTUVESUFfUEVSTUlT
U0lPTl9SRVFVRVNULCBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzKSkKKyNk
ZWZpbmUgV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKG9iaikgICAgICAg
ICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1VTRVJfTUVE
SUFfUEVSTUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVS
TUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGts
YXNzKSwgIFdFQktJVF9UWVBFX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZp
bmUgV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUX0dFVF9DTEFTUyhvYmopICAo
R19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1VTRVJfTUVESUFf
UEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNz
KSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0ICAg
ICAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzICAgV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2
YXRlOworCitzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IHsKKyAgICBH
T2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIFdlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9j
bGFzczsKKworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQg
KCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVk
MikgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKwor
V0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dl
dF90eXBlICh2b2lkKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjY5OWFkMmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUu
aApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwu
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZm5kZWYgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKKyNkZWZp
bmUgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKKworI2luY2x1ZGUg
IldlYktpdFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5oIgorCitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogd2Via2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5Kik7CisKKyNlbmRpZiAvLyBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
ZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggNWE2Y2I0My4uOTQzNzE5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJr
aXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC01MTUsNiArNTE1LDI0IEBAIHdlYmtp
dF9nZW9sb2NhdGlvbl9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKIDwvU0VDVElPTj4KIAog
PFNFQ1RJT04+Cis8RklMRT5XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDwvRklMRT4K
K1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0CisKKzxTVUJTRUNUSU9OIFN0YW5kYXJk
PgorV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFzcworV0VCS0lUX1RZUEVfVVNF
Ul9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05f
UkVRVUVTVAorV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRf
VVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1MKK1dFQktJVF9JU19VU0VSX01FRElB
X1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUworV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9S
RVFVRVNUX0dFVF9DTEFTUworCis8U1VCU0VDVElPTiBQcml2YXRlPgorV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlCit3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3Jl
cXVlc3RfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKworPFNFQ1RJT04+CiA8RklMRT5XZWJLaXRQb2xp
Y3lEZWNpc2lvbjwvRklMRT4KIFdlYktpdFBvbGljeURlY2lzaW9uCiB3ZWJraXRfcG9saWN5X2Rl
Y2lzaW9uX2Rvd25sb2FkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay93ZWJraXQyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQy
LmgKaW5kZXggOGQ4MjE5OS4uNjIwMTU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL3dlYmtpdDIuaApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgPHdlYmtpdDIvV2Vi
S2l0VVJJUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJUmVzcG9uc2UuaD4K
ICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRWZXJzaW9uLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJDb250ZXh0
Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJJbnNwZWN0b3IuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjYxOTJkZWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsNjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgi
CisKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHku
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkqIHBhZ2UpCisgICAgOiBtX3BhZ2Uo
cGFnZSkKK3sKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6aW52YWxpZGF0ZVJlcXVlc3RzKCkKK3sKKyAgICBQZW5kaW5nUmVxdWVzdE1hcDo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBtX3BlbmRpbmdSZXF1ZXN0cy5iZWdpbigpOworICAgIFBlbmRpbmdSZXF1
ZXN0TWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3BlbmRpbmdSZXF1ZXN0cy5lbmQoKTsKKyAg
ICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICBpdC0+dmFsdWUtPmludmFsaWRhdGUo
KTsKKworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmNsZWFyKCk7Cit9CisKK1Bhc3NSZWZQdHI8VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhUmVxdWVzdElEKQor
eworICAgIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiByZXF1ZXN0ID0g
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKHRoaXMsIHVzZXJNZWRpYVJl
cXVlc3RJRCk7CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuYWRkKHVzZXJNZWRpYVJlcXVlc3RJRCwg
cmVxdWVzdC5nZXQoKSk7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCit2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1l
ZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYVJlcXVlc3RJRCwgYm9vbCBh
bGxvd2VkKQoreworICAgIGlmICghbV9wYWdlLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIFBlbmRpbmdSZXF1ZXN0TWFwOjppdGVyYXRvciBpdCA9IG1fcGVuZGluZ1JlcXVlc3Rz
LmZpbmQodXNlck1lZGlhUmVxdWVzdElEKTsKKyAgICBpZiAoaXQgPT0gbV9wZW5kaW5nUmVxdWVz
dHMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgbV9wYWdlLT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVV
c2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNlck1lZGlhUmVxdWVzdElELCBhbGxvd2VkKSwg
bV9wYWdlLT5wYWdlSUQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKKyNl
bmRpZgorCisgICAgbV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGl0KTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYmRhZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBT
LkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKyNpZm5kZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaAorI2Rl
ZmluZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRl
ICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xh
c3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgeworcHVibGljOgorICAg
IGV4cGxpY2l0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQ
cm94eSopOworCisgICAgdm9pZCBpbnZhbGlkYXRlUmVxdWVzdHMoKTsKKworICAgIC8vIENyZWF0
ZSBhIHJlcXVlc3QgdG8gYmUgcHJlc2VudGVkIHRvIHRoZSB1c2VyLgorICAgIFBhc3NSZWZQdHI8
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1
c2VyTWVkaWFSZXF1ZXN0SUQpOworCisgICAgLy8gQ2FsbGVkIGJ5IFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkgd2hlbiBhIGRlY2lzaW9uIGlzIG1hZGUgYnkgdGhlIHVzZXIuCisgICAg
dm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90LCBib29s
IGFsbG93KTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0
cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gUGVuZGluZ1JlcXVlc3RNYXA7Cisg
ICAgUGVuZGluZ1JlcXVlc3RNYXAgbV9wZW5kaW5nUmVxdWVzdHM7CisgICAgV2ViUGFnZVByb3h5
KiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzYwNjllCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
SWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaCIKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBtYW5hZ2VyLCB1aW50NjRfdCB1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdElEKQorICAgIDogbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAg
LCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SUQodXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RJRCkKK3sKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxv
dygpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWFu
YWdlci0+ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0SUQsIHRydWUpOworICAgIG1fbWFuYWdlciA9IDA7Cit9CisKK3ZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSgpCit7CisgICAgaWYgKCFtX21h
bmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWFuYWdlci0+ZGlkUmVjZWl2ZVVzZXJN
ZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SUQsIGZh
bHNlKTsKKyAgICBtX21hbmFnZXIgPSAwOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OmludmFsaWRhdGUoKQoreworICAgIG1fbWFuYWdlciA9IDA7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMzAyMDQ2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTAsMCAr
MSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RJRCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCB1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdElEKSk7CisgICAgfQorCisgICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgZGVueSgpOwor
CisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisKK3ByaXZhdGU6CisgICAgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSos
IHVpbnQ2NF90IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SUQpOworCisgICAgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKKyAgICB1aW50NjRfdCBt
X3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SUQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAyZGMxODYyLi4yMTEwMTIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjM2LDYg
KzIzNiw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQqIHBhZ2VDbGll
bnQsIFBhc3NSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBwCiAgICAgLCBtX21haW5GcmFtZSgwKQog
ICAgICwgbV91c2VyQWdlbnQoc3RhbmRhcmRVc2VyQWdlbnQoKSkKICAgICAsIG1fZ2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIodGhpcykKKyAgICAsIG1fdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKHRoaXMpCiAgICAgLCBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcih0aGlzKQogICAgICwgbV9lc3RpbWF0ZWRQcm9ncmVzcygwKQogICAgICwg
bV9pc0luV2luZG93KG1fcGFnZUNsaWVudC0+aXNWaWV3SW5XaW5kb3coKSkKQEAgLTM5NjMsNiAr
Mzk2NCwxOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lv
bkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsCiAgICAgICAgIHJlcXVlc3QtPmRlbnko
KTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmln
aW5JZGVudGlmaWVyKQoreworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53
ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBNRVNTQUdFX0NIRUNLKGZyYW1lKTsKKworICAgIFJlZlB0
cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZy
b21TdHJpbmcob3JpZ2luSWRlbnRpZmllcik7CisgICAgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk+IHJlcXVlc3QgPSBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcmVhdGVSZXF1ZXN0KHVzZXJNZWRpYUlEKTsKKworICAgIGlmICghbV91aUNsaWVudC5k
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0aGlzLCBmcmFtZSwgb3Jp
Z2luLmdldCgpLCByZXF1ZXN0LmdldCgpKSkKKyAgICAgICAgcmVxdWVzdC0+ZGVueSgpOworfQor
CiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0
X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBpZiAoIWlz
UmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCBmZTdmY2ZmLi5hNDM2MjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9j
ZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRl
ICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlZpZXdTdGF0ZS5oIgogI2luY2x1ZGUgIldLQmFz
ZS5oIgogI2luY2x1ZGUgIldLUGFnZVByaXZhdGUuaCIKQEAgLTg0NSw2ICs4NDYsOCBAQCBwcml2
YXRlOgogICAgIHZvaWQgcmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsKICAgICB2b2lkIHJlYXR0YWNo
VG9XZWJQcm9jZXNzV2l0aEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSopOwogCisgICAgdm9p
ZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CisKICAgICB2b2lk
IHJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBj
b25zdCBTdHJpbmcmIG9yaWdpblN0cmluZyk7CiAgICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKGNv
bnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29u
VVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5nLCBjb25zdCBTdHJpbmcm
IGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKICAgICB2b2lkIGNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7
CkBAIC0xMDgwLDYgKzEwODMsNyBAQCBwcml2YXRlOgogICAgIFdlYkhpdFRlc3RSZXN1bHQ6OkRh
dGEgbV9hY3RpdmVDb250ZXh0TWVudUhpdFRlc3RSZXN1bHREYXRhOwogICAgIFJlZlB0cjxXZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5PiBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwog
ICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9nZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eSBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICAgICBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX25vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIAogICAgIGRvdWJsZSBtX2VzdGltYXRlZFByb2dyZXNz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggYTk4NTM4Yi4uN2U0MTg5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMDMsNyArMjAzLDEwIEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICAjIEdlb2xvY2F0aW9uIG1lc3NhZ2VzCiAgICAg
UmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9u
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCi0gICAg
CisKKyAgICAjIFVzZXIgTWVkaWEgbWVzc2FnZXMKKyAgICBSZXF1ZXN0VXNlck1lZGlhUGVybWlz
c2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBXVEY6
OlN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQorCiAgICAgIyBOb3RpZmljYXRpb24gbWVzc2FnZXMK
ICAgICBSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIFdU
Rjo6U3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiAgICAgU2hvd05vdGlmaWNhdGlvbihXVEY6OlN0
cmluZyB0aXRsZSwgV1RGOjpTdHJpbmcgYm9keSwgV1RGOjpTdHJpbmcgaWNvblVSTCwgV1RGOjpT
dHJpbmcgdGFnLCBXVEY6OlN0cmluZyBsYW5nLCBXVEY6OlN0cmluZyBkaXIsIFdURjo6U3RyaW5n
IG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKaW5kZXggYmZhNGQ4ZS4uOTQ4MmUyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb3JtYXRpb24uaCIKKyNpbmNs
dWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW5jbHVkZSAiV0tBUElD
YXN0LmgiCiAjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgiCiAj
aW5jbHVkZSAiV2ViTnVtYmVyLmgiCkBAIC0zNTYsNiArMzU3LDE1IEBAIGJvb2wgV2ViVUlDbGll
bnQ6OmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVBy
b3h5KiBwYWdlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgV2ViVUlDbGllbnQ6OmRlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFnZSwg
V2ViRnJhbWVQcm94eSogZnJhbWUsIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIHBlcm1pc3Npb25SZXF1ZXN0KQoreworICAgIGlmICgh
bV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJKG9yaWdp
biksIHRvQVBJKHBlcm1pc3Npb25SZXF1ZXN0KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKIGJvb2wgV2ViVUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViU2VjdXJpdHlP
cmlnaW4qIG9yaWdpbiwgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QqIHBlcm1pc3Npb25S
ZXF1ZXN0KQogewogICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCmlu
ZGV4IDk4MTNmNTcuLjY3MDJmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVu
dC5oCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEltbXV0YWJsZURpY3Rpb25hcnk7CiBjbGFzcyBO
YXRpdmVXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViV2hlZWxFdmVudDsKIGNsYXNz
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eTsKIGNsYXNzIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTsK
IGNsYXNzIFdlYkRhdGE7CiBjbGFzcyBXZWJGcmFtZVByb3h5OwpAQCAtMTAyLDYgKzEwMyw3IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1l
UHJveHkqLCBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXJQcm94eSopOwogICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViU2VjdXJpdHlPcmlnaW4q
LCBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkqKTsKKyAgICBib29sIGRlY2lkZVBv
bGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1l
UHJveHkqLCBXZWJTZWN1cml0eU9yaWdpbiosIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkqKTsKICAgICBib29sIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0KFdlYlBhZ2VQcm94eSosIFdlYlNlY3VyaXR5T3JpZ2luKiwgTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QqKTsKIAogICAgIC8vIFByaW50aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RN
YW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzEwNGEyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJGcmFtZS5o
IgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9h
ZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVVzZXJNZWRpYVJl
cXVlc3RJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVVzZXJNZWRpYVJlcXVlc3RJ
RCA9IDE7CisgICAgcmV0dXJuIHVuaXF1ZVVzZXJNZWRpYVJlcXVlc3RJRCsrOworfQorCitVc2Vy
TWVkaWFSZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSogcGFn
ZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCisKK3ZvaWQgVXNlck1lZGlhUmVxdWVzdE1h
bmFnZXI6OnJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVx
dWVzdD4gcmVxdWVzdCkKK3sKKyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVVzZXJN
ZWRpYVJlcXVlc3RJRCgpOworCisgICAgbV91c2VyTWVkaWFSZXF1ZXN0VG9JRE1hcC5zZXQocmVx
dWVzdC5nZXQoKSwgcmVxdWVzdElEKTsKKyAgICBtX2lkVG9Vc2VyTWVkaWFSZXF1ZXN0TWFwLnNl
dChyZXF1ZXN0SUQsIHJlcXVlc3QuZ2V0KCkpOworCisgICAgRnJhbWUqIGZyYW1lID0gcmVxdWVz
dC0+ZnJhbWUoKTsKKworICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNs
aWVudCA9IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpKTsK
KyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1l
TG9hZGVyQ2xpZW50LT53ZWJGcmFtZSgpIDogMDsKKyAgICBBU1NFUlQod2ViRnJhbWUpOworCisg
ICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0
VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHJlcXVlc3RJRCwgd2ViRnJhbWUtPmZyYW1lSUQo
KSwgb3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKSkpOworCit9CisKK3ZvaWQgVXNlck1lZGlh
UmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCop
Cit7CisKK30KKwordm9pZCBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJN
ZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFSZXF1ZXN0SUQsIGJvb2wg
YWxsb3dlZCkKK3sKKyAgICBJRFRvVXNlck1lZGlhUmVxdWVzdE1hcDo6aXRlcmF0b3IgaXQgPSBt
X2lkVG9Vc2VyTWVkaWFSZXF1ZXN0TWFwLmZpbmQodXNlck1lZGlhUmVxdWVzdElEKTsKKyAgICBp
ZiAoaXQgPT0gbV9pZFRvVXNlck1lZGlhUmVxdWVzdE1hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCogcmVxdWVzdCA9IGl0LT52YWx1ZTsK
KyAgICBpZiAoYWxsb3dlZCkKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRl
ZCgpOworICAgIGVsc2UKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7
CisKKyAgICBtX2lkVG9Vc2VyTWVkaWFSZXF1ZXN0TWFwLnJlbW92ZShpdCk7CisgICAgbV91c2Vy
TWVkaWFSZXF1ZXN0VG9JRE1hcC5yZW1vdmUocmVxdWVzdCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVx
dWVzdE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZWU1ZDM0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdl
cl9oCisjZGVmaW5lIFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyX2gKKworI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBVc2VyTWVkaWFSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViUGFnZTsKKworY2xhc3MgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIgeworcHVibGljOgor
ICAgIGV4cGxpY2l0IFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UqKTsKKworICAgIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0
Pik7CisgICAgdm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKTsK
KworICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRf
dCB1c2VyTWVkaWFSZXF1ZXN0SUQsIGJvb2wgYWxsb3dlZCk7CisKK3ByaXZhdGU6CisgICAgdHlw
ZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Kj4gSURUb1Vz
ZXJNZWRpYVJlcXVlc3RNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OlVzZXJNZWRp
YVJlcXVlc3QqLCB1aW50NjRfdD4gVXNlck1lZGlhUmVxdWVzdFRvSURNYXA7CisgICAgSURUb1Vz
ZXJNZWRpYVJlcXVlc3RNYXAgbV9pZFRvVXNlck1lZGlhUmVxdWVzdE1hcDsKKyAgICBVc2VyTWVk
aWFSZXF1ZXN0VG9JRE1hcCBtX3VzZXJNZWRpYVJlcXVlc3RUb0lETWFwOworCisgICAgV2ViUGFn
ZSogbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVc2Vy
TWVkaWFSZXF1ZXN0TWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODkzNzQ5YwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xp
ZW50LmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxp
YSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQu
aCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJVc2VyTWVkaWFSZXF1
ZXN0TWFuYWdlci5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVXNlck1lZGlhQ2xpZW50
Ojp+V2ViVXNlck1lZGlhQ2xpZW50KCkKK3sKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6
OnBhZ2VEZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIFdlYlVzZXJN
ZWRpYUNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxXZWJDb3JlOjpVc2VyTWVk
aWFSZXF1ZXN0PiByZXF1ZXN0KQoreworICAgIG1fcGFnZS0+dXNlck1lZGlhUmVxdWVzdE1hbmFn
ZXIoKS5yZXF1ZXN0UGVybWlzc2lvbihyZXF1ZXN0KTsKK30KKwordm9pZCBXZWJVc2VyTWVkaWFD
bGllbnQ6OmNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCogcmVxdWVzdCkK
K3sKKyAgICBtX3BhZ2UtPnVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsUmVxdWVzdChy
ZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNTFmYmFjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgKQEAgLTAs
MCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVm
IFdlYlVzZXJNZWRpYUNsaWVudF9oCisjZGVmaW5lIFdlYlVzZXJNZWRpYUNsaWVudF9oCisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFDbGll
bnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdl
YlVzZXJNZWRpYUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQgeworcHVi
bGljOgorICAgIFdlYlVzZXJNZWRpYUNsaWVudChXZWJQYWdlKiBwYWdlKQorICAgICAgICA6IG1f
cGFnZShwYWdlKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5XZWJVc2VyTWVkaWFDbGll
bnQoKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpIE9WRVJS
SURFOworCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8V2Vi
Q29yZTo6VXNlck1lZGlhUmVxdWVzdD4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjYW5j
ZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKSBPVkVSUklERTsKKworICAgIFdl
YlBhZ2UqIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFdlYlVzZXJNZWRpYUNsaWVudF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTZh
YzNhMC4uNzY1YzE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtODQsNiArODQsNyBAQAogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3Rv
cmUuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcmNoaXZlUmVzb3Vy
Y2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgpAQCAtMjc5LDYgKzI4MCw5IEBAIFdl
YlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgICwgbV9tYXhpbXVtUmVuZGVyaW5nU3VwcHJlc3Npb25U
b2tlbigwKQogICAgICwgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3IoRG9Ob3RQaW4pCiAgICAgLCBt
X3VzZVRocmVhZGVkU2Nyb2xsaW5nKGZhbHNlKQorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQorI2VuZGlmCiB7
CiAgICAgQVNTRVJUKG1fcGFnZUlEKTsKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIG5vbi1pZGVh
bCBsb2NhdGlvbiBmb3IgdGhpcyBTZXR0aW5nIGFuZApAQCAtMzM4LDYgKzM0MiwxMCBAQCBXZWJQ
YWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyYgcGFyYW1ldGVycykKICAgICBXZWJDb3JlOjpwcm92aWRlRGV2aWNlUHJveGltaXR5VG8o
bV9wYWdlLmdldCgpLCBuZXcgV2ViRGV2aWNlUHJveGltaXR5Q2xpZW50KHRoaXMpKTsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJDb3JlOjpwcm92aWRlVXNlck1l
ZGlhVG8obV9wYWdlLmdldCgpLCBuZXcgV2ViVXNlck1lZGlhQ2xpZW50KHRoaXMpKTsKKyNlbmRp
ZgorCiAgICAgbV9wYWdlLT5zZXRDYW5TdGFydE1lZGlhKGZhbHNlKTsKICAgICBtX21heVN0YXJ0
TWVkaWFXaGVuSW5XaW5kb3cgPSBwYXJhbWV0ZXJzLm1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7
CiAKQEAgLTI3ODQsNiArMjc5MiwxMyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVHZW9sb2Nh
dGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBnZW9sb2NhdGlvbklELCBibwogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZl
VXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFs
bG93ZWQpCit7CisgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuZGlkUmVj
ZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1c2VyTWVkaWFJRCwgYWxsb3dlZCk7Cit9
CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiB7CiAgICAg
bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPmRpZFJlY2VpdmVOb3RpZmlj
YXRpb25QZXJtaXNzaW9uRGVjaXNpb24obm90aWZpY2F0aW9uSUQsIGFsbG93ZWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMmRmMDFlNy4uM2Ey
OWE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4
dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVzZXJN
ZWRpYVJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViVW5kb1N0ZXAuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0RpY3RhdGlvbkFsdGVybmF0aXZlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFn
RGF0YS5oPgpAQCAtMzgwLDYgKzM4MSwxMCBAQCBwdWJsaWM6CiAgICAgR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXImIGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KCkgeyByZXR1cm4gbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsgfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFVzZXJNZWRpYVJlcXVlc3RNYW5h
Z2VyJiB1c2VyTWVkaWFSZXF1ZXN0TWFuYWdlcigpIHsgcmV0dXJuIG1fdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOyB9CisjZW5kaWYKKwogICAgIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlciogbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCk7
CiAKICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoKTsKQEAgLTc4Myw3ICs3ODgsMTMgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGV4dGVuZFNhbmRib3hGb3JGaWxlRnJvbU9wZW5QYW5lbChjb25zdCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9O
KQogICAgIHZvaWQgZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2
NF90IGdlb2xvY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7CisjZW5kaWYKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lz
aW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpOworI2VuZGlmCiAKICAgICB2
b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90
aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7CiAKQEAgLTk5MSw2ICsxMDAyLDEwIEBAIHByaXZh
dGU6CiAgICAgV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yIG1fc2Nyb2xsUGlubmluZ0Jl
aGF2aW9yOwogCiAgICAgYm9vbCBtX3VzZVRocmVhZGVkU2Nyb2xsaW5nOworCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyAgICBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlciBtX3VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCmluZGV4IGEwNmU0ZmQuLmNiMWFlNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yMDEs
NiArMjAxLDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIERp
ZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBnZW9sb2NhdGlv
bklELCBib29sIGFsbG93ZWQpCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgIyBNZWRpYVN0cmVhbQorICAgIERpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNp
b24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCkKKyNlbmRpZgorCiAgICAgIyBO
b3RpZmljYXRpb24KICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmZTk3MGE4Li5mNzQ0MjVjIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTMtMTAtMjUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9C
cm93c2VyV2luZG93LmM6IFNob3cgYSBwb3B1cCB3aGVuIHRoZSBwYWdlCisgICAgICAgIHJlcXVp
cmVzIHVzZXIgcGVybWlzc2lvbiB0byBhY2Nlc3MgYXVkaW8vdmlkZW8gZGV2aWNlcy4KKyAgICAg
ICAgKHBlcm1pc3Npb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2spOgorICAgICAgICAoc2hvd0dlb2xv
Y2F0aW9uUmVxdWVzdERpYWxvZyk6CisgICAgICAgIChzaG93VXNlck1lZGlhUmVxdWVzdERpYWxv
Zyk6CisgICAgICAgICh3ZWJWaWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOiBudWxsCisgICAgICAgIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0IGhhbmRsZXJzLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6Y3JlYXRlT3RoZXJQYWdlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNy
ZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisKIDIwMTMtMTAtMjIgIFBoaWxpcHBlIE5vcm1hbmQg
IDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIGVuYWJsZSBtZWRpYS1zdHJl
YW0gaW4gYnVpbGQtd2Via2l0CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJv
d3NlcldpbmRvdy5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYwppbmRl
eCAzZWZkMzkwLi4yYWYwODZhIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJv
d3NlcldpbmRvdy5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMK
QEAgLTI0NCw3ICsyNDQsNyBAQCBzdGF0aWMgdm9pZCBiYWNrRm9yd2FkbGlzdENoYW5nZWQoV2Vi
S2l0QmFja0ZvcndhcmRMaXN0ICpiYWNrRm9yd2FkbGlzdCwgV2ViS2l0QgogICAgIGJyb3dzZXJX
aW5kb3dVcGRhdGVOYXZpZ2F0aW9uQWN0aW9ucyh3aW5kb3csIGJhY2tGb3J3YWRsaXN0KTsKIH0K
IAotc3RhdGljIHZvaWQgZ2VvbG9jYXRpb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2soR3RrRGlhbG9n
ICpkaWFsb2csIGdpbnQgcmVzcG9uc2UsIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0
KQorc3RhdGljIHZvaWQgcGVybWlzc2lvblJlcXVlc3REaWFsb2dDYWxsYmFjayhHdGtEaWFsb2cg
KmRpYWxvZywgZ2ludCByZXNwb25zZSwgV2ViS2l0UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3Qp
CiB7CiAgICAgc3dpdGNoIChyZXNwb25zZSkgewogICAgIGNhc2UgR1RLX1JFU1BPTlNFX1lFUzoK
QEAgLTM5NiwxMSArMzk2LDggQEAgc3RhdGljIGdib29sZWFuIHdlYlZpZXdEZWNpZGVQb2xpY3ko
V2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0UG9saWN5RGVjaXNpb24KICAgICB9CiB9CiAK
LXN0YXRpYyBnYm9vbGVhbiB3ZWJWaWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0V2Vi
VmlldyAqd2ViVmlldywgV2ViS2l0UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3QsIEJyb3dzZXJX
aW5kb3cgKndpbmRvdykKK3N0YXRpYyBnYm9vbGVhbiBzaG93R2VvbG9jYXRpb25SZXF1ZXN0RGlh
bG9nKFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0LCBCcm93c2VyV2luZG93ICp3aW5k
b3cpCiB7Ci0gICAgaWYgKCFXRUJLSVRfSVNfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNU
KHJlcXVlc3QpKQotICAgICAgICByZXR1cm4gRkFMU0U7Ci0KICAgICBHdGtXaWRnZXQgKmRpYWxv
ZyA9IGd0a19tZXNzYWdlX2RpYWxvZ19uZXcoR1RLX1dJTkRPVyh3aW5kb3cpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfRElBTE9HX01PREFMIHwg
R1RLX0RJQUxPR19ERVNUUk9ZX1dJVEhfUEFSRU5ULAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHVEtfTUVTU0FHRV9RVUVTVElPTiwKQEAgLTQwOCwxMiAr
NDA1LDM4IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJWaWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3Qo
V2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0UGVyCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJHZW9sb2NhdGlvbiByZXF1ZXN0Iik7CiAKICAgICBn
dGtfbWVzc2FnZV9kaWFsb2dfZm9ybWF0X3NlY29uZGFyeV90ZXh0KEdUS19NRVNTQUdFX0RJQUxP
RyhkaWFsb2cpLCAiQWxsb3cgZ2VvbG9jYXRpb24gcmVxdWVzdD8iKTsKLSAgICBnX3NpZ25hbF9j
b25uZWN0KGRpYWxvZywgInJlc3BvbnNlIiwgR19DQUxMQkFDSyhnZW9sb2NhdGlvblJlcXVlc3RE
aWFsb2dDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CisgICAgZ19zaWduYWxfY29u
bmVjdChkaWFsb2csICJyZXNwb25zZSIsIEdfQ0FMTEJBQ0socGVybWlzc2lvblJlcXVlc3REaWFs
b2dDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CiAgICAgZ3RrX3dpZGdldF9zaG93
KGRpYWxvZyk7CiAKICAgICByZXR1cm4gVFJVRTsKIH0KIAorc3RhdGljIGdib29sZWFuIHNob3dV
c2VyTWVkaWFSZXF1ZXN0RGlhbG9nKFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0LCBC
cm93c2VyV2luZG93ICp3aW5kb3cpCit7CisgICAgR3RrV2lkZ2V0ICpkaWFsb2cgPSBndGtfbWVz
c2FnZV9kaWFsb2dfbmV3KEdUS19XSU5ET1cod2luZG93KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX0RJQUxPR19NT0RBTCB8IEdUS19ESUFMT0df
REVTVFJPWV9XSVRIX1BBUkVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR1RLX01FU1NBR0VfUVVFU1RJT04sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19CVVRUT05TX1lFU19OTywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVzZXJNZWRpYSByZXF1ZXN0Iik7
CisKKyAgICBndGtfbWVzc2FnZV9kaWFsb2dfZm9ybWF0X3NlY29uZGFyeV90ZXh0KEdUS19NRVNT
QUdFX0RJQUxPRyhkaWFsb2cpLCAiQWxsb3cgdXNlcm1lZGlhIHJlcXVlc3Q/Iik7CisgICAgZ19z
aWduYWxfY29ubmVjdChkaWFsb2csICJyZXNwb25zZSIsIEdfQ0FMTEJBQ0socGVybWlzc2lvblJl
cXVlc3REaWFsb2dDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CisgICAgZ3RrX3dp
ZGdldF9zaG93KGRpYWxvZyk7CisKKyAgICByZXR1cm4gVFJVRTsKK30KKworc3RhdGljIGdib29s
ZWFuIHdlYlZpZXdEZWNpZGVQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3
LCBXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCwgQnJvd3NlcldpbmRvdyAqd2luZG93
KQoreworICAgIGlmIChXRUJLSVRfSVNfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNUKHJl
cXVlc3QpKQorICAgICAgICByZXR1cm4gc2hvd0dlb2xvY2F0aW9uUmVxdWVzdERpYWxvZyhyZXF1
ZXN0LCB3aW5kb3cpOworCisgICAgaWYgKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05f
UkVRVUVTVChyZXF1ZXN0KSkKKyAgICAgICAgcmV0dXJuIHNob3dVc2VyTWVkaWFSZXF1ZXN0RGlh
bG9nKHJlcXVlc3QsIHdpbmRvdyk7CisKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKIHN0YXRpYyB2
b2lkIHdlYlZpZXdNb3VzZVRhcmdldENoYW5nZWQoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2Vi
S2l0SGl0VGVzdFJlc3VsdCAqaGl0VGVzdFJlc3VsdCwgZ3VpbnQgbW91c2VNb2RpZmllcnMsIEJy
b3dzZXJXaW5kb3cgKndpbmRvdykKIHsKICAgICBpZiAoIXdlYmtpdF9oaXRfdGVzdF9yZXN1bHRf
Y29udGV4dF9pc19saW5rKGhpdFRlc3RSZXN1bHQpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDUzZjYyMGYuLjFlOGQ2ZTYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yNTIsNiArMjUyLDcgQEAgV0tQYWdl
UmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdL
VVJMUmVxdWVzdFJlZiwgV0sKICAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAg
IDAsIC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAgICAwLCAvLyB1bmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWQKKyAgICAgICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChuZXdQYWdlLCAm
b3RoZXJQYWdlVUlDbGllbnQpOwogCkBAIC00NTQsNiArNDU1LDcgQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKFdLRGljdGlvbmFyeVJlZiBvcHRpb25zKQog
ICAgICAgICAwLCAvLyBzaG93Q29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlj
a2VyCiAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCwKKyAgICAgICAgMCwg
Ly8gZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKICAgICB9OwogICAg
IFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGll
bnQpOwogCi0tIAoxLjguNC5yYzM=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215244</attachid>
            <date>2013-10-26 03:21:19 -0700</date>
            <delta_ts>2013-10-26 09:43:46 -0700</delta_ts>
            <desc>[wk2] usermediaclient</desc>
            <filename>wk2-usermediaclient.patch</filename>
            <type>text/plain</type>
            <size>70982</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBiODQ0YWY0YzgwMmZhN2ZiZWUzMDMxMjY2NTA2NDM4YTQyNGIwZDRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDIyIE9jdCAyMDEzIDE5OjIxOjI3ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
W3drMl0gdXNlcm1lZGlhY2xpZW50CgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgIDEzICsrKwogLi4uL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAgICAgICAgfCAgMTEgKysrCiAuLi4vV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCB8ICAgNCArCiBTb3VyY2UvV2ViS2l0Mi9D
TWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICB8ICAxMyArKysKIFNvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDk2ICsrKysrKysrKysr
KysrKysrKysKIFNvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAg
ICAgIHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gICAgICAgICAg
ICAgICAgIHwgIDEzICsrKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oICAg
ICAgICAgICAgICAgfCAgIDEgKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oICAg
ICAgICAgICAgICAgICAgfCAgIDEgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oICAgICAgICAgfCAgIDIgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5oICAgICAgICAgICAgfCAgIDMgKwogLi4uL0FQSS9DL1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuY3BwICAgICAgICAgfCAgNDEgKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJ
L0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIHwgIDM4ICsrKysrKysrCiAuLi4vV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAgICB8ICAgOCArKwogLi4u
L0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwICAgfCAxMDMgKysr
KysrKysrKysrKysrKysrKysrCiAuLi4vQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5oICAgICB8ICA2NCArKysrKysrKysrKysrCiAuLi4vZ3RrL1dlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oICB8ICAyOCArKysrKysKIC4uLi9VSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IHwgIDE4ICsrKysKIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaCAgICAgICAgIHwgICAxICsKIC4uLi9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgICAgIHwgIDY5ICsrKysr
KysrKysrKysrCiAuLi4vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAg
ICAgICB8ICA1MCArKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwICB8ICA1NiArKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggICAgfCAgNTEgKysrKysrKysrKwogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgICAgICAgICAgfCAgMTMgKysrCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggICAgICAgICAgICB8ICAgNCArCiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluICB8ICAgNSAr
LQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCAgICAgICAgICAgfCAg
MTAgKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oICAgICAgICAgICAg
IHwgICAyICsKIC4uLi9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAgICAg
ICAgIHwgIDkxICsrKysrKysrKysrKysrKysrKwogLi4uL01lZGlhU3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3RNYW5hZ2VyLmggICAgICAgICAgfCAgNTQgKysrKysrKysrKysKIC4uLi9XZWJDb3JlU3Vw
cG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwICAgICAgICAgIHwgIDU1ICsrKysrKysrKysrCiAu
Li4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaCB8ICA1MyAr
KysrKysrKysrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
ICAgICAgfCAgMTUgKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oICAgICAgICB8ICAxNSArKysKIC4uLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluIHwgICA1ICsKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgIDE4ICsrKysKIFRvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93
c2VyV2luZG93LmMgICAgICAgICAgICAgIHwgIDM1ICsrKysrLS0KIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwICAgICAgICAgIHwgICAyICsKIDM4IGZpbGVzIGNoYW5n
ZWQsIDEwNTYgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0TWFuYWdlci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFD
bGllbnQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNzkzZDU2Li45MzkyMmZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTMtMTAtMjUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6IEFkZGVkIGRvY3VtZW50IGFuZAorICAgICAgICBm
cmFtZSBhY2Nlc3NvcnMsIG5lZWRlZCBieSB0aGUgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIgb2Yg
dGhlIFdlYlByb2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojpkb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpmcmFtZSk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisKIDIwMTMtMTAt
MjIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtX
SzJdW0dUS10gZW5hYmxlLW1lZGlhLXN0cmVhbSBTZXR0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCBk
YzBiNTIwLi5jY2FmN2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNs
dWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJNZWRpYUNvbnN0cmFp
bnRzSW1wbC5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJl
YW1DZW50ZXIuaCIKQEAgLTEwMCw2ICsxMDEsMTYgQEAgVXNlck1lZGlhUmVxdWVzdDo6flVzZXJN
ZWRpYVJlcXVlc3QoKQogewogfQogCitEb2N1bWVudCogVXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1l
bnQoKSBjb25zdAoreworICAgIHJldHVybiB0b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCk7Cit9CisKK0ZyYW1lKiBVc2VyTWVkaWFSZXF1ZXN0OjpmcmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5mcmFtZSgpIDogMDsKK30KKwogU2Vj
dXJpdHlPcmlnaW4qIFVzZXJNZWRpYVJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKCkgY29uc3QKIHsK
ICAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAzY2ZlZWY3
Li5mZjJkNmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERpY3Rpb25hcnk7CiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEZyYW1lOwog
Y2xhc3MgTWVkaWFDb25zdHJhaW50czsKIGNsYXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIGNs
YXNzIFVzZXJNZWRpYUNvbnRyb2xsZXI7CkBAIC01OSw2ICs2MCw5IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIqLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25z
LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4sIFBhc3NSZWZQ
dHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4sIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICB+VXNlck1lZGlhUmVxdWVzdCgpOwogCisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7
CisgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CisKICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJp
dHlPcmlnaW4oKSBjb25zdDsKIAogICAgIHZvaWQgc3RhcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQK
aW5kZXggMjg2NTIzZC4uMjE3MGE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTQzLDYgKzQz
LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL0ZpbGVBUEkiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvRnVs
bFNjcmVlbiIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiIKKyAg
ICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSIKICAgICAiJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJv
Y2Vzcy9JY29uRGF0YWJhc2UiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUiCkBAIC0zOTAsNiArMzkxLDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFjZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hl
Y2tlci5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5o
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlicmF0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5jcHAKIApAQCAtNDIyLDYgKzQyNSwxMSBAQCBzZXQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmNwcAogCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuY3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaAorCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3Bw
CiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmNwcAogICAgIFVJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcApAQCAtNDg5LDYgKzQ5Nyw5IEBAIHNl
dChXZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNh
Y2hlTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVx
dWVzdE1hbmFnZXIuY3BwCisgICAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0TWFuYWdlci5oCisKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcAogICAgIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAt
NTQwLDYgKzU1MSw4IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBvcHVwTWVudS5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNl
YXJjaFBvcHVwTWVudS5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJN
ZWRpYUNsaWVudC5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRp
YUNsaWVudC5oCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGll
bnQuY3BwCiAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvRGVjb2RlckFkYXB0ZXIuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggNGMwMDU2YS4uZjk1NTRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisy
MDEzLTEwLTI1ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbV0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QgaW4gV2ViS2l0Mi4gSXQncworICAgICAgICBpbXBsZW1lbnRlZCBzaW1pbGFyaWx5
IHRvIHRoZSBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0CisgICAgICAgIHN1cHBvcnQuIFdo
ZW4gdGhlIFdlYlBhZ2UgcmVxdWlyZXMgdGhpcyBwZXJtaXNzaW9uIGl0IHNlbmRzIGEKKyAgICAg
ICAgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2VzcyB3aGljaCBhdCBzb21lIHBvaW50IGdyYW50cyBv
ciBkZW5pZXMgdGhlCisgICAgICAgIHBlcm1pc3Npb24gYW5kIHNlbmQgdGhlIHJlc3VsdCB0byB0
aGUgV2ViUHJvY2Vzcy4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBOZXcgTWVkaWFTdHJl
YW0gZGlyZWN0b3J5LgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IE5ldyBmaWxlcyBp
biB0aGUgYnVpbGQhCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOiBOZXcgdHlwZSBm
b3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgICogU2hhcmVkL0FQSU9iamVj
dC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6IEZvcndh
cmQtZGVjbGFyZSB0aGUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6IE5ldyBEZWNpZGVQb2xpY3kgaGFuZGxlciBmb3Ig
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZCwgQyBBUEkKKyAgICAgICAgaW1w
bGVtZW50YXRpb24gb2YgdGhlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LgorICAgICAgICAo
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCk6CisgICAgICAgIChXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cpOgorICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdERlbnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVJQ2xpZW50LmNwcDogRGVjaWRlUG9saWN5IGhhbmRsZXIKKyAgICAgICAgaW1wbGVtZW50
YXRpb24gZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LgorICAgICAgICAoZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoYXR0YWNoVUlDbGll
bnRUb1ZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQsCisgICAgICAgIFdlYktpdEdUSyBBUEkgZm9yIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCB2ZXJ5IHNpbWlsYXIgdG8gdGhlCisgICAgICAgIG9u
ZSB1c2VkIGZvciBHZW9sb2NhdGlvbiwKKyAgICAgICAgKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0QWxsb3cpOgorICAgICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3REZW55KToKKyAgICAgICAgKHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2lu
aXQpOgorICAgICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REaXNwb3NlKToK
KyAgICAgICAgKHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9jbGFzc19pbml0
KToKKyAgICAgICAgKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dDogRXhwb3NlIG5ldyBBUEkKKyAgICAg
ICAgaW4gZG9jdW1lbnRhdGlvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQy
Lmg6IEV4cG9zZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCBBUEkuCisgICAgICAgICogVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDogQWRkZWQs
CisgICAgICAgIG1hbmFnZXIgc3RvcmluZyBwZW5kaW5nIFVzZXJNZWRpYVBlcm1pc3Npb24gcmVx
dWVzdHMuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlk
YXRlUmVxdWVzdHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlz
c2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOiBBZGRlZCwgcHJveHkKKyAgICAgICAgb2JqZWN0
IGZvciB0aGUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RUeXBlLgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6YWxsb3cpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpkZW55KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlz
c2lvbkZvckZyYW1lKTogRGVmZXIKKyAgICAgICAgVXNlclBlcm1pc3Npb25SZXF1ZXN0IHRvIHRo
ZSBVSUNsaWVudC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjogTmV3IG1lc3NhZ2UgdG8gaGFu
ZGxlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
VUlDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVSUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICBEZWZlciBwZXJtaXNzaW9u
IHJlcXVlc3QgdG8gQVBJQ2xpZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFn
ZXIuY3BwOiBBZGRlZCwKKyAgICAgICAgV2ViUHJvY2VzcyBzaWRlIG9mIHRoZSBVc2VyUmVxdWVz
dE1hbmFnZXIsIGtlZXBpbmcgdHJhY2sgb2YgZWFjaAorICAgICAgICBwZXJtaXNzaW9uIHJlcXVl
c3QuCisgICAgICAgIChXZWJLaXQ6OmdlbmVyYXRlVXNlck1lZGlhUmVxdWVzdElEKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OlVzZXJNZWRpYVJlcXVlc3RNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OnJlcXVlc3RQ
ZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OmNh
bmNlbFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcjo6
ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHA6IEFk
ZGVkLAorICAgICAgICBXZWJQcm9jZXNzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBXZWJDb3JlOjpV
c2VyTWVkaWFDbGllbnQuCisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6fldl
YlVzZXJNZWRpYUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6
cGFnZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6cmVx
dWVzdFBlcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OmNh
bmNlbFJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGll
bnQ6OldlYlVzZXJNZWRpYUNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKTogQ3JlYXRlIHRo
ZQorICAgICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgYW5kIHJlZ2lzdGVy
IHRoZSBVc2VyTWVkaWFDbGllbnQKKyAgICAgICAgdG8gdGhlIHBhZ2UuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOiBEaXNw
YXRjaAorICAgICAgICBkZWNpc2lvbiB0byBtYW5hZ2VyLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVzZXJNZWRpYVJl
cXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbjogTmV3IE1lc3NhZ2UgdG8gaGFuZGxlCisgICAgICAgIHBlcm1pc3Npb24gZGVjaXNp
b24gcmVzdWx0IGZyb20gdGhlIFVJIHByb2Nlc3MuCisKIDIwMTMtMTAtMjIgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXSzJdW0dUS10gZW5hYmxl
LW1lZGlhLXN0cmVhbSBTZXR0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCmluZGV4IDM5MTdhYzQuLjQz
OGY4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCkBAIC0xNDUsNiArMTQ1LDcgQEAgbGlid2Via2l0
Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQSV9NSU5PUl9W
RVJTSU9OQF9sYV9DUFAKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRnVsbFNjcmVlbiBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbiBcCisJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRp
YVN0cmVhbSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsgXAog
CS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlIFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlIFwKQEAg
LTM4Myw2ICszODQsNyBAQCB2cGF0aCAlLm1lc3NhZ2VzLmluID0gXAogCSQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9Db29raWVzIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvRnVsbFNjcmVlbiBcCiAJ
JChXZWJLaXQyKS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKKwkkKFdlYktpdDIpL1dlYlByb2Nl
c3MvTWVkaWFTdHJlYW0gXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UgXAog
CSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nl
c3MvTmV0d29yayBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0
LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA1NzJmMTIyLi5j
MWZmYmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTY2OSw2ICs2NjksOCBA
QCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLVGV4dENoZWNrZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
VGV4dENoZWNrZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ZpYnJhdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1ZpYnJhdGlvbi5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Nw
cC9XS1JldGFpblB0ci5oIFwKQEAgLTc5Miw2ICs3OTQsOSBAQCB3ZWJraXQyX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hl
bWVSZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVS
SVNjaGVtZVJlcXVlc3RQcml2YXRlLmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBcCisJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBc
CisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcml2YXRlLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFZlcnNpb24uY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJDb250ZXh0LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYkNvbnRleHQuY3BwIFwKQEAgLTkxMiw2ICs5MTcsMTAgQEAgd2Via2l0Ml9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXIuaCBcCiAJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlvbi5oIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCBcCisJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBc
CisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zp
c2l0ZWRMaW5rUHJvdmlkZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRl
ZExpbmtQcm92aWRlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eS5oIFwKQEAgLTExNDksNiArMTE1OCw4IEBAIHdlYmtpdDJfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5oIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmNw
cCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dl
Yk5ldHdvcmtJbmZvTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29ya0luZm8vV2ViTmV0d29ya0luZm9NYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwIFwKQEAgLTEyNDMsNiArMTI1NCw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaCBcCiAJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUu
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJj
aFBvcHVwTWVudS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVmlicmF0aW9uQ2xpZW50LmNwcCBcCiAJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGllbnQuaCBcCiAJ
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RlY29kZXJBZGFwdGVyLmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggMTk3YWQ5Zi4uMTUyNjljMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtMTI2LDYgKzEyNiw3IEBAIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKiBXS1BsdWdpblNp
dGVEYXRhTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJlZmVyZW5j
ZXMqIFdLUHJlZmVyZW5jZXNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Byb3Rl
Y3Rpb25TcGFjZSogV0tQcm90ZWN0aW9uU3BhY2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS1RleHRDaGVja2VyKiBXS1RleHRDaGVja2VyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlicmF0aW9uKiBX
S1ZpYnJhdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlld3BvcnRBdHRy
aWJ1dGVzKiBXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVj
dC5oCmluZGV4IDcwMzIxYjkuLjdiODdjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgK
QEAgLTEwOSw2ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVQbHVnaW5TaXRlRGF0YU1h
bmFnZXIsCiAgICAgICAgIFR5cGVQcmVmZXJlbmNlcywKICAgICAgICAgVHlwZVRleHRDaGVja2Vy
LAorICAgICAgICBUeXBlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsCiAgICAgICAgIFR5cGVW
aWJyYXRpb24sCiAgICAgICAgIFR5cGVWaWV3cG9ydEF0dHJpYnV0ZXMsCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCBkZDg4ZDdhLi43MzJkZWRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC01Nyw2ICs1
Nyw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcjsKIGNsYXNzIERvd25s
b2FkUHJveHk7CiBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFz
cyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Owog
Y2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsK
QEAgLTE0Myw2ICsxNDQsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tQcm90ZWN0aW9uU3BhY2VS
ZWYsIFdlYlByb3RlY3Rpb25TcGFjZSkKIFdLX0FERF9BUElfTUFQUElORyhXS1JlbmRlckxheWVy
UmVmLCBXZWJSZW5kZXJMYXllcikKIFdLX0FERF9BUElfTUFQUElORyhXS1JlbmRlck9iamVjdFJl
ZiwgV2ViUmVuZGVyT2JqZWN0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVGV4dENoZWNrZXJSZWYs
IFdlYlRleHRDaGVja2VyKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RSZWYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tWaWJyYXRpb25SZWYsIFdlYlZpYnJhdGlvblByb3h5KQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmLCBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMpCiBX
S19BRERfQVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYsIFdlYkluc3BlY3RvclByb3h5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4IDg1NjExZWQuLmJjYTg5YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTIyMSw2ICsyMjEs
NyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1BhZwogdHlwZWRlZiB2b2lkICgqV0tQYWdlU2hvd0Nv
bG9yUGlja2VyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBpbml0aWFsQ29s
b3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFj
aykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lk
ICgqV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uLCBXS0RpY3Rpb25hcnlSZWYgcGx1Z2luSW5mb0RpY3Rpb25hcnksIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYg
ZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAog
Ly8gRGVwcmVjYXRlZCAgICAKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFn
ZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rp
b25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91
c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMjgzLDYg
KzI4NCw4IEBAIHN0cnVjdCBXS1BhZ2VVSUNsaWVudCB7CiAgICAgV0tQYWdlU2hvd0NvbG9yUGlj
a2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93Q29s
b3JQaWNrZXI7CiAgICAgV0tQYWdlSGlkZUNvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlQ29sb3JQaWNrZXI7CiAgICAgV0tQYWdlVW5h
dmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQ7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICBkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsKKwogfTsKIHR5cGVkZWYgc3RydWN0
IFdLUGFnZVVJQ2xpZW50IFdLUGFnZVVJQ2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRhMGQzZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIElnYWxpYSBTLkwKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OworCitXS1R5cGVJRCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlE
KCkKK3sKKyAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RS
ZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikt
PmFsbG93KCk7Cit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+
ZGVueSgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uODc4YzMzZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTAsMCAr
MSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdF9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1
c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCB2b2lkIFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTsKK1dLX0VYUE9SVCB2b2lkIFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYg
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNl
bmRpZgorCisjZW5kaWYgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oICovCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAK
aW5kZXggMDg5OWI4NS4uNzQzZjIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1
ZGUgIldlYktpdEZpbGVDaG9vc2VyUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFBy
aXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJX
ZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdpbmRvd1Byb3BlcnRpZXNQ
cml2YXRlLmgiCkBAIC0xNTMsNiArMTU0LDEyIEBAIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZv
ckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXCiAg
ICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNzaW9uUmVxdWVzdChXRUJLSVRfV0VCX1ZJRVcoY2xp
ZW50SW5mbyksIFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1QoZ2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5nZXQoKSkpOwogfQogCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLU2VjdXJpdHlPcmln
aW5SZWYsIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3sKKyAgICBHUmVmUHRyPFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0PiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdENyZWF0ZSh0b0ltcGwocmVxdWVzdCkpKTsKKyAgICB3ZWJr
aXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZv
KSwgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5n
ZXQoKSkpOworfQorCiBzdGF0aWMgdm9pZCBydW5Nb2RhbChXS1BhZ2VSZWYgcGFnZSwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKIHsKICAgICB3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChXRUJLSVRf
V0VCX1ZJRVcoY2xpZW50SW5mbykpOwpAQCAtMjA5LDYgKzIxNiw3IEBAIHZvaWQgYXR0YWNoVUlD
bGllbnRUb1ZpZXcoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICAgICAgMCwgLy8gc2hvd0Nv
bG9yUGlja2VyCiAgICAgICAgIDAsIC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAgICAwLCAvLyBw
bHVnaW5Mb2FkUG9saWN5CisgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VSZWYgd2tQYWdlID0gdG9BUEkod2Via2l0V2Vi
Vmlld0Jhc2VHZXRQYWdlKFdFQktJVF9XRUJfVklFV19CQVNFKHdlYlZpZXcpKSk7CiAgICAgV0tQ
YWdlU2V0UGFnZVVJQ2xpZW50KHdrUGFnZSwgJndrVUlDbGllbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjBkM2JjYWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSwx
MDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgiCisK
KyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSAi
V2ViS2l0UGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworLyoq
CisgKiBTRUNUSU9OOiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAorICogQFNob3J0
X2Rlc2NyaXB0aW9uOiBBIHBlcm1pc3Npb24gcmVxdWVzdCBmb3IgYWNjZXNzaW5nIHVzZXIncyBh
dWRpby92aWRlbyBkZXZpY2VzLgorICogQFRpdGxlOiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdAorICogQFNlZV9hbHNvOiAjV2ViS2l0UGVybWlzc2lvblJlcXVlc3QsICNXZWJLaXRX
ZWJWaWV3CisgKgorICogV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgcmVwcmVzZW50
cyBhIHJlcXVlc3QgZm9yCisgKiBwZXJtaXNzaW9uIHRvIGRlY2lkZSB3aGV0aGVyIFdlYktpdCBz
aG91bGQgYmUgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIHVzZXIncworICogYXVkaW8gYW5kIHZpZGVv
IHNvdXJjZSBkZXZpY2VzIHdoZW4gcmVxdWVzdGVkIHRocm91Z2h0IHRoZSBnZXRVc2VyTWVkaWEg
QVBJLgorICovCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJm
YWNlX2luaXQoV2ViS2l0UGVybWlzc2lvblJlcXVlc3RJZmFjZSopOworCitzdHJ1Y3QgX1dlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSB7CisgICAgUmVmUHRyPFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJlcXVlc3Q7CisgICAgYm9vbCBtYWRlRGVjaXNpb247
Cit9OworCitXRUJLSVRfREVGSU5FX1RZUEVfV0lUSF9DT0RFKAorICAgIFdlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LCB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3Qs
IEdfVFlQRV9PQkpFQ1QsCisgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKFdFQktJVF9UWVBFX1BF
Uk1JU1NJT05fUkVRVUVTVCwgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5p
dCkpCisKK3N0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3co
V2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgQVNTRVJUKFdFQktJVF9J
U19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSk7CisKKyAgICBXZWJLaXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfVVNFUl9NRURJ
QV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisKKyAgICAvLyBPbmx5IG9uZSBk
ZWNpc2lvbiBhdCBhIHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVEZWNpc2lvbikKKyAgICAgICAg
cmV0dXJuOworCisgICAgcHJpdi0+cmVxdWVzdC0+YWxsb3coKTsKKyAgICBwcml2LT5tYWRlRGVj
aXNpb24gPSB0cnVlOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdERlbnkoV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgQVNT
RVJUKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSk7CisK
KyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUqIHByaXYgPSBXRUJL
SVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisKKyAgICAv
LyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBhIHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVEZWNpc2lv
bikKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpdi0+cmVxdWVzdC0+ZGVueSgpOworICAgIHBy
aXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9wZXJtaXNz
aW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQoV2ViS2l0UGVybWlzc2lvblJlcXVlc3RJZmFjZSog
aWZhY2UpCit7CisgICAgaWZhY2UtPmFsbG93ID0gd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdzsKKyAgICBpZmFjZS0+ZGVueSA9IHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0RGVueTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3REaXNwb3NlKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvLyBEZWZhdWx0IGJlaGF2aW91
ciB3aGVuIG5vIGRlY2lzaW9uIGhhcyBiZWVuIG1hZGUgaXMgZGVueWluZyB0aGUgcmVxdWVzdC4K
KyAgICB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0VCS0lUX1BFUk1JU1NJ
T05fUkVRVUVTVChvYmplY3QpKTsKKyAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfdXNlcl9tZWRp
YV9wZXJtaXNzaW9uX3JlcXVlc3RfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZShvYmplY3QpOworfQor
CitzdGF0aWMgdm9pZCB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfY2xhc3Nf
aW5pdChXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzKiBrbGFzcykKK3sKKyAg
ICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Moa2xhc3MpOworICAg
IG9iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RE
aXNwb3NlOworfQorCitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogd2Via2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eSogcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCog
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9O
X1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9S
RVFVRVNULCBOVUxMKSk7CisgICAgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QtPnByaXYtPnJl
cXVlc3QgPSByZXF1ZXN0OworICAgIHJldHVybiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjA1YzgwN2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5o
CkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NP
TVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1
ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0X2gKKyNkZWZpbmUgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaAor
CisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmlu
ZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX1VTRVJfTUVESUFf
UEVSTUlTU0lPTl9SRVFVRVNUICAgICAgICAgICAgKHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Np
b25fcmVxdWVzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNT
SU9OX1JFUVVFU1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgo
b2JqKSwgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KSkKKyNkZWZpbmUgV0VCS0lUX1VTRVJfTUVESUFfUEVS
TUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1Qo
KGtsYXNzKSwgIFdFQktJVF9UWVBFX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJL
aXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VT
RVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFV
RVNUKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUX0NM
QVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBF
X1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX1VTRVJfTUVE
SUFfUEVSTUlTU0lPTl9SRVFVRVNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dF
VF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNU
LCBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzKSkKKwordHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0ICAgICAgICBXZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdENsYXNzICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGUgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOworCitzdHJ1Y3QgX1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKwor
ICAgIC8qPCBwcml2YXRlID4qLworICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKKworICAgIHZvaWQg
KCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVk
MSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAgIHZv
aWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQor
d2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlICh2b2lkKTsKKwor
R19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5OWFk
MmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaApAQCAtMCwwICsxLDI4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKKyNkZWZpbmUgV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKKworI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIK
KyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIgorCitXZWJLaXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RDcmVhdGUoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Kik7CisKKyNl
bmRpZiAvLyBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGVfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNl
Y3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggNWE2Y2I0My4uOTQzNzE5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
c2VjdGlvbnMudHh0CkBAIC01MTUsNiArNTE1LDI0IEBAIHdlYmtpdF9nZW9sb2NhdGlvbl9wZXJt
aXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKIDwvU0VDVElPTj4KIAogPFNFQ1RJT04+Cis8RklMRT5X
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDwvRklMRT4KK1dlYktpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0CisKKzxTVUJTRUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RDbGFzcworV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9O
X1JFUVVFU1QKK1dFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX0lT
X1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNT
SU9OX1JFUVVFU1RfQ0xBU1MKK1dFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVT
VF9DTEFTUworV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUX0dFVF9DTEFTUwor
Cis8U1VCU0VDVElPTiBQcml2YXRlPgorV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cml2YXRlCit3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKKzwv
U0VDVElPTj4KKworPFNFQ1RJT04+CiA8RklMRT5XZWJLaXRQb2xpY3lEZWNpc2lvbjwvRklMRT4K
IFdlYktpdFBvbGljeURlY2lzaW9uCiB3ZWJraXRfcG9saWN5X2RlY2lzaW9uX2Rvd25sb2FkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKaW5kZXggOGQ4MjE5OS4u
NjIwMTU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Vi
a2l0Mi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaApA
QCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJUmVxdWVzdC5oPgog
I2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJUmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3ZWJraXQy
L1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRWZXJzaW9u
Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJDb250ZXh0Lmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRXZWJJbnNwZWN0b3IuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxOTJkZWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJXZWJQ
YWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQ
cm9jZXNzUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eShXZWJQYWdlUHJveHkqIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9p
ZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVl
c3RzKCkKK3sKKyAgICBQZW5kaW5nUmVxdWVzdE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3Bl
bmRpbmdSZXF1ZXN0cy5iZWdpbigpOworICAgIFBlbmRpbmdSZXF1ZXN0TWFwOjpjb25zdF9pdGVy
YXRvciBlbmQgPSBtX3BlbmRpbmdSZXF1ZXN0cy5lbmQoKTsKKyAgICBmb3IgKDsgaXQgIT0gZW5k
OyArK2l0KQorICAgICAgICBpdC0+dmFsdWUtPmludmFsaWRhdGUoKTsKKworICAgIG1fcGVuZGlu
Z1JlcXVlc3RzLmNsZWFyKCk7Cit9CisKK1Bhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0
ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhUmVxdWVzdElEKQoreworICAgIFJlZlB0cjxVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiByZXF1ZXN0ID0gVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6Y3JlYXRlKHRoaXMsIHVzZXJNZWRpYVJlcXVlc3RJRCk7CisgICAgbV9w
ZW5kaW5nUmVxdWVzdHMuYWRkKHVzZXJNZWRpYVJlcXVlc3RJRCwgcmVxdWVzdC5nZXQoKSk7Cisg
ICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lz
aW9uKHVpbnQ2NF90IHVzZXJNZWRpYVJlcXVlc3RJRCwgYm9vbCBhbGxvd2VkKQoreworICAgIGlm
ICghbV9wYWdlLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFBlbmRpbmdSZXF1
ZXN0TWFwOjppdGVyYXRvciBpdCA9IG1fcGVuZGluZ1JlcXVlc3RzLmZpbmQodXNlck1lZGlhUmVx
dWVzdElEKTsKKyAgICBpZiAoaXQgPT0gbV9wZW5kaW5nUmVxdWVzdHMuZW5kKCkpCisgICAgICAg
IHJldHVybjsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgbV9wYWdlLT5wcm9jZXNz
KCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9u
RGVjaXNpb24odXNlck1lZGlhUmVxdWVzdElELCBhbGxvd2VkKSwgbV9wYWdlLT5wYWdlSUQoKSk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKKyNlbmRpZgorCisgICAgbV9wZW5k
aW5nUmVxdWVzdHMucmVtb3ZlKGl0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjhiYmRhZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDUw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgeworcHVibGljOgorICAgIGV4cGxpY2l0IFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSopOworCisgICAgdm9p
ZCBpbnZhbGlkYXRlUmVxdWVzdHMoKTsKKworICAgIC8vIENyZWF0ZSBhIHJlcXVlc3QgdG8gYmUg
cHJlc2VudGVkIHRvIHRoZSB1c2VyLgorICAgIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFSZXF1ZXN0SUQp
OworCisgICAgLy8gQ2FsbGVkIGJ5IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgd2hl
biBhIGRlY2lzaW9uIGlzIG1hZGUgYnkgdGhlIHVzZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlVXNl
ck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90LCBib29sIGFsbG93KTsKKworcHJpdmF0
ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5Pj4gUGVuZGluZ1JlcXVlc3RNYXA7CisgICAgUGVuZGluZ1JlcXVlc3RN
YXAgbV9wZW5kaW5nUmVxdWVzdHM7CisgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hMzYwNjllCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCkBAIC0w
LDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
aCIKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5KiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdElEKQorICAgIDogbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgLCBtX3VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0SUQodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJRCkKK3sKK30KKwordm9p
ZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdygpCit7CisgICAgaWYgKCFt
X21hbmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWFuYWdlci0+ZGlkUmVjZWl2ZVVz
ZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SUQs
IHRydWUpOworICAgIG1fbWFuYWdlciA9IDA7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6ZGVueSgpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fbWFuYWdlci0+ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbihtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SUQsIGZhbHNlKTsKKyAgICBtX21hbmFn
ZXIgPSAwOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFs
aWRhdGUoKQoreworICAgIG1fbWFuYWdlciA9IDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzAyMDQ2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHlfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gK
KworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSA6IHB1
YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSogbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJRCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eShtYW5hZ2VyLCB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElEKSk7CisgICAgfQor
CisgICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgZGVueSgpOworCisgICAgdm9pZCBpbnZhbGlk
YXRlKCk7CisKK3ByaXZhdGU6CisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSosIHVpbnQ2NF90IHVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0SUQpOworCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKKyAgICB1aW50NjRfdCBtX3VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0SUQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCAyZGMxODYyLi4yMTEwMTIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjM2LDYgKzIzNiw3IEBAIFdlYlBhZ2VQ
cm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFBhc3NSZWZQdHI8V2Vi
UHJvY2Vzc1Byb3h5PiBwCiAgICAgLCBtX21haW5GcmFtZSgwKQogICAgICwgbV91c2VyQWdlbnQo
c3RhbmRhcmRVc2VyQWdlbnQoKSkKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIodGhpcykKKyAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KHRoaXMpCiAgICAgLCBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlz
KQogICAgICwgbV9lc3RpbWF0ZWRQcm9ncmVzcygwKQogICAgICwgbV9pc0luV2luZG93KG1fcGFn
ZUNsaWVudC0+aXNWaWV3SW5XaW5kb3coKSkKQEAgLTM5NjMsNiArMzk2NCwxOCBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90
IGdlb2xvY2F0aW9uSUQsCiAgICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKIH0KIAordm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNl
ck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQorewor
ICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsK
KyAgICBNRVNTQUdFX0NIRUNLKGZyYW1lKTsKKworICAgIFJlZlB0cjxXZWJTZWN1cml0eU9yaWdp
bj4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luSWRl
bnRpZmllcik7CisgICAgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJl
cXVlc3QgPSBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcmVhdGVSZXF1ZXN0
KHVzZXJNZWRpYUlEKTsKKworICAgIGlmICghbV91aUNsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0aGlzLCBmcmFtZSwgb3JpZ2luLmdldCgpLCByZXF1ZXN0
LmdldCgpKSkKKyAgICAgICAgcmVxdWVzdC0+ZGVueSgpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25z
dCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVx
dWVzdElEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBmZTdm
Y2ZmLi5hNDM2MjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAu
aCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgog
I2luY2x1ZGUgIlZpZXdTdGF0ZS5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgIldL
UGFnZVByaXZhdGUuaCIKQEAgLTg0NSw2ICs4NDYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVh
dHRhY2hUb1dlYlByb2Nlc3MoKTsKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0
ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSopOwogCisgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlh
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlE
LCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CisKICAgICB2b2lkIHJlcXVlc3ROb3RpZmljYXRp
b25QZXJtaXNzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBjb25zdCBTdHJpbmcmIG9yaWdp
blN0cmluZyk7CiAgICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUs
IGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcm
IHRhZywgY29uc3QgU3RyaW5nJiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3QgU3RyaW5n
JiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKICAgICB2b2lkIGNhbmNl
bE5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CkBAIC0xMDgwLDYgKzEwODMs
NyBAQCBwcml2YXRlOgogICAgIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEgbV9hY3RpdmVDb250ZXh0
TWVudUhpdFRlc3RSZXN1bHREYXRhOwogICAgIFJlZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lclByb3h5PiBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwogICAgIEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjsKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX3Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICAgICBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjsKIAogICAgIGRvdWJsZSBtX2VzdGltYXRlZFByb2dyZXNzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYTk4NTM4Yi4u
N2U0MTg5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCkBAIC0yMDMsNyArMjAzLDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94
eSB7CiAKICAgICAjIEdlb2xvY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdEdlb2xvY2F0aW9u
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCi0gICAgCisKKyAgICAjIFVzZXIgTWVk
aWEgbWVzc2FnZXMKKyAgICBSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBvcmlnaW5JZGVu
dGlmaWVyKQorCiAgICAgIyBOb3RpZmljYXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0Tm90aWZp
Y2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIFdURjo6U3RyaW5nIG9yaWdpbklk
ZW50aWZpZXIpCiAgICAgU2hvd05vdGlmaWNhdGlvbihXVEY6OlN0cmluZyB0aXRsZSwgV1RGOjpT
dHJpbmcgYm9keSwgV1RGOjpTdHJpbmcgaWNvblVSTCwgV1RGOjpTdHJpbmcgdGFnLCBXVEY6OlN0
cmluZyBsYW5nLCBXVEY6OlN0cmluZyBkaXIsIFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZpZXIs
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNs
aWVudC5jcHAKaW5kZXggYmZhNGQ4ZS4uOTQ4MmUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViVUlDbGllbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTmF0aXZlV2Vi
V2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiUGx1Z2luSW5mb3JtYXRpb24uaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAi
V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViTnVtYmVy
LmgiCkBAIC0zNTYsNiArMzU3LDE1IEBAIGJvb2wgV2ViVUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
ckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKK2Jvb2wgV2ViVUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJh
bWUsIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkqIHBlcm1pc3Npb25SZXF1ZXN0KQoreworICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
KHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJKG9yaWdpbiksIHRvQVBJKHBlcm1pc3Np
b25SZXF1ZXN0KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
IGJvb2wgV2ViVUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QqIHBlcm1pc3Npb25SZXF1ZXN0KQogewogICAgIGlm
ICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCmluZGV4IDk4MTNmNTcuLjY3MDJm
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCkBAIC00OSw2ICs0OSw3
IEBAIGNsYXNzIEltbXV0YWJsZURpY3Rpb25hcnk7CiBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50OwogY2xhc3MgTmF0aXZlV2ViV2hlZWxFdmVudDsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0OworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNs
YXNzIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYkRhdGE7CiBj
bGFzcyBXZWJGcmFtZVByb3h5OwpAQCAtMTAyLDYgKzEwMyw3IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBXZWJPcGVuUGFu
ZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopOwogICAgIGJv
b2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJv
eHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViU2VjdXJpdHlPcmlnaW4qLCBHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0UHJveHkqKTsKKyAgICBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBXZWJTZWN1cml0
eU9yaWdpbiosIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqKTsKICAgICBib29sIGRl
Y2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSos
IFdlYlNlY3VyaXR5T3JpZ2luKiwgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QqKTsKIAog
ICAgIC8vIFByaW50aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9N
ZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzEwNGEyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFu
YWdlci5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2Fs
aWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdE1h
bmFnZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYlBh
Z2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVx
dWVzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVVzZXJNZWRpYVJlcXVlc3RJRCgpCit7CisgICAg
c3RhdGljIHVpbnQ2NF90IHVuaXF1ZVVzZXJNZWRpYVJlcXVlc3RJRCA9IDE7CisgICAgcmV0dXJu
IHVuaXF1ZVVzZXJNZWRpYVJlcXVlc3RJRCsrOworfQorCitVc2VyTWVkaWFSZXF1ZXN0TWFuYWdl
cjo6VXNlck1lZGlhUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSogcGFnZSkKKyAgICA6IG1fcGFnZShw
YWdlKQoreworfQorCisKK3ZvaWQgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OnJlcXVlc3RQZXJt
aXNzaW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCkKK3sK
KyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVVzZXJNZWRpYVJlcXVlc3RJRCgpOwor
CisgICAgbV91c2VyTWVkaWFSZXF1ZXN0VG9JRE1hcC5zZXQocmVxdWVzdC5nZXQoKSwgcmVxdWVz
dElEKTsKKyAgICBtX2lkVG9Vc2VyTWVkaWFSZXF1ZXN0TWFwLnNldChyZXF1ZXN0SUQsIHJlcXVl
c3QuZ2V0KCkpOworCisgICAgRnJhbWUqIGZyYW1lID0gcmVxdWVzdC0+ZnJhbWUoKTsKKworICAg
IFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVM
b2FkZXJDbGllbnQoZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpKTsKKyAgICBXZWJGcmFtZSogd2Vi
RnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJG
cmFtZSgpIDogMDsKKyAgICBBU1NFUlQod2ViRnJhbWUpOworCisgICAgU2VjdXJpdHlPcmlnaW4q
IG9yaWdpbiA9IGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpOworICAgIG1fcGFn
ZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lv
bkZvckZyYW1lKHJlcXVlc3RJRCwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgb3JpZ2luLT5kYXRhYmFz
ZUlkZW50aWZpZXIoKSkpOworCit9CisKK3ZvaWQgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OmNh
bmNlbFJlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCopCit7CisKK30KKwordm9pZCBV
c2VyTWVkaWFSZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbih1aW50NjRfdCB1c2VyTWVkaWFSZXF1ZXN0SUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBJ
RFRvVXNlck1lZGlhUmVxdWVzdE1hcDo6aXRlcmF0b3IgaXQgPSBtX2lkVG9Vc2VyTWVkaWFSZXF1
ZXN0TWFwLmZpbmQodXNlck1lZGlhUmVxdWVzdElEKTsKKyAgICBpZiAoaXQgPT0gbV9pZFRvVXNl
ck1lZGlhUmVxdWVzdE1hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViQ29yZTo6
VXNlck1lZGlhUmVxdWVzdCogcmVxdWVzdCA9IGl0LT52YWx1ZTsKKyAgICBpZiAoYWxsb3dlZCkK
KyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgIGVsc2UKKyAg
ICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CisKKyAgICBtX2lkVG9Vc2Vy
TWVkaWFSZXF1ZXN0TWFwLnJlbW92ZShpdCk7CisgICAgbV91c2VyTWVkaWFSZXF1ZXN0VG9JRE1h
cC5yZW1vdmUocmVxdWVzdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZWU1ZDM0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
TWFuYWdlci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdh
bGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcl9oCisjZGVmaW5lIFVzZXJN
ZWRpYVJlcXVlc3RNYW5hZ2VyX2gKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBVc2VyTWVkaWFS
ZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xh
c3MgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IFVzZXJN
ZWRpYVJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UqKTsKKworICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Np
b24oUGFzc1JlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pik7CisgICAgdm9pZCBjYW5j
ZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFSZXF1ZXN0
SUQsIGJvb2wgYWxsb3dlZCk7CisKK3ByaXZhdGU6CisgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2
NF90LCBXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Kj4gSURUb1VzZXJNZWRpYVJlcXVlc3RNYXA7
CisgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqLCB1aW50NjRf
dD4gVXNlck1lZGlhUmVxdWVzdFRvSURNYXA7CisgICAgSURUb1VzZXJNZWRpYVJlcXVlc3RNYXAg
bV9pZFRvVXNlck1lZGlhUmVxdWVzdE1hcDsKKyAgICBVc2VyTWVkaWFSZXF1ZXN0VG9JRE1hcCBt
X3VzZXJNZWRpYVJlcXVlc3RUb0lETWFwOworCisgICAgV2ViUGFnZSogbV9wYWdlOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdl
cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uODkzNzQ5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcApAQCAtMCwwICsx
LDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQuaCIKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oIgorI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVXNlck1lZGlhQ2xpZW50Ojp+V2ViVXNlck1lZGlhQ2xp
ZW50KCkKK3sKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQor
eworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6cmVxdWVz
dFBlcm1pc3Npb24oUGFzc1JlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0
KQoreworICAgIG1fcGFnZS0+dXNlck1lZGlhUmVxdWVzdE1hbmFnZXIoKS5yZXF1ZXN0UGVybWlz
c2lvbihyZXF1ZXN0KTsKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbFJlcXVl
c3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBtX3BhZ2UtPnVz
ZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2Vy
TWVkaWFDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViVXNlck1lZGlhQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NTFmYmFjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdlYlVzZXJNZWRpYUNsaWVu
dF9oCisjZGVmaW5lIFdlYlVzZXJNZWRpYUNsaWVudF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFDbGllbnQuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYlVzZXJNZWRpYUNsaWVudCA6
IHB1YmxpYyBXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQgeworcHVibGljOgorICAgIFdlYlVzZXJN
ZWRpYUNsaWVudChXZWJQYWdlKiBwYWdlKQorICAgICAgICA6IG1fcGFnZShwYWdlKQorICAgIHsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIH5XZWJVc2VyTWVkaWFDbGllbnQoKTsKKworcHJpdmF0ZToK
KyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpIE9WRVJSSURFOworCisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVx
dWVzdD4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6
OlVzZXJNZWRpYVJlcXVlc3QqKSBPVkVSUklERTsKKworICAgIFdlYlBhZ2UqIG1fcGFnZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworI2VuZGlmIC8vIFdlYlVzZXJNZWRpYUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTZhYzNhMC4uNzY1YzE0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtODQs
NiArODQsNyBAQAogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJXZWJVc2VyTWVkaWFDbGllbnQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElD
YXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcmNoaXZlUmVzb3VyY2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0Nocm9tZS5oPgpAQCAtMjc5LDYgKzI4MCw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWlu
dDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQogICAgICwgbV9tYXhpbXVtUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbigwKQogICAgICwgbV9z
Y3JvbGxQaW5uaW5nQmVoYXZpb3IoRG9Ob3RQaW4pCiAgICAgLCBtX3VzZVRocmVhZGVkU2Nyb2xs
aW5nKGZhbHNlKQorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgLCBtX3VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQorI2VuZGlmCiB7CiAgICAgQVNTRVJUKG1fcGFn
ZUlEKTsKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIG5vbi1pZGVhbCBsb2NhdGlvbiBmb3IgdGhp
cyBTZXR0aW5nIGFuZApAQCAtMzM4LDYgKzM0MiwxMCBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2
NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
ICAgICBXZWJDb3JlOjpwcm92aWRlRGV2aWNlUHJveGltaXR5VG8obV9wYWdlLmdldCgpLCBuZXcg
V2ViRGV2aWNlUHJveGltaXR5Q2xpZW50KHRoaXMpKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyAgICBXZWJDb3JlOjpwcm92aWRlVXNlck1lZGlhVG8obV9wYWdlLmdldCgp
LCBuZXcgV2ViVXNlck1lZGlhQ2xpZW50KHRoaXMpKTsKKyNlbmRpZgorCiAgICAgbV9wYWdlLT5z
ZXRDYW5TdGFydE1lZGlhKGZhbHNlKTsKICAgICBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3cg
PSBwYXJhbWV0ZXJzLm1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7CiAKQEAgLTI3ODQsNiArMjc5
MiwxMyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNp
c2lvbih1aW50NjRfdCBnZW9sb2NhdGlvbklELCBibwogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lv
bkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpCit7CisgICAgbV91
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbih1c2VyTWVkaWFJRCwgYWxsb3dlZCk7Cit9CisjZW5kaWYKKwogdm9pZCBX
ZWJQYWdlOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90
IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiB7CiAgICAgbm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKCktPmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVj
aXNpb24obm90aWZpY2F0aW9uSUQsIGFsbG93ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMmRmMDFlNy4uM2EyOWE3MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00OSw2ICs0OSw3IEBACiAj
aW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1
ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVJlcXVlc3RNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiV2ViVW5kb1N0ZXAuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RpY3RhdGlv
bkFsdGVybmF0aXZlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgpAQCAtMzgwLDYg
KzM4MSwxMCBAQCBwdWJsaWM6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXImIGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgeyByZXR1cm4gbV9nZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgIFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyJiB1c2VyTWVkaWFSZXF1
ZXN0TWFuYWdlcigpIHsgcmV0dXJuIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OyB9CisjZW5kaWYKKwogICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciog
bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCk7CiAKICAgICB2b2lkIHBhZ2VE
aWRTY3JvbGwoKTsKQEAgLTc4Myw3ICs3ODgsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGV4dGVu
ZFNhbmRib3hGb3JGaWxlRnJvbU9wZW5QYW5lbChjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIHZvaWQgZGlkUmVj
ZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQs
IGJvb2wgYWxsb3dlZCk7CisjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAg
dm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBib29sIGFsbG93ZWQpOworI2VuZGlmCiAKICAgICB2b2lkIGRpZFJlY2VpdmVOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wg
YWxsb3dlZCk7CiAKQEAgLTk5MSw2ICsxMDAyLDEwIEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6
U2Nyb2xsUGlubmluZ0JlaGF2aW9yIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yOwogCiAgICAgYm9v
bCBtX3VzZVRocmVhZGVkU2Nyb2xsaW5nOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAg
ICBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlciBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4
IGEwNmU0ZmQuLmNiMWFlNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yMDEsNiArMjAxLDExIEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIERpZFJlY2VpdmVHZW9sb2NhdGlv
blBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBnZW9sb2NhdGlvbklELCBib29sIGFsbG93ZWQp
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgIyBNZWRpYVN0cmVhbQor
ICAgIERpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1l
ZGlhSUQsIGJvb2wgYWxsb3dlZCkKKyNlbmRpZgorCiAgICAgIyBOb3RpZmljYXRpb24KICAgICBE
aWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklELCBib29sIGFsbG93ZWQpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBmZTk3MGE4Li5mNzQ0MjVjIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMTAt
MjUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtX
SzJdIFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmM6IFNo
b3cgYSBwb3B1cCB3aGVuIHRoZSBwYWdlCisgICAgICAgIHJlcXVpcmVzIHVzZXIgcGVybWlzc2lv
biB0byBhY2Nlc3MgYXVkaW8vdmlkZW8gZGV2aWNlcy4KKyAgICAgICAgKHBlcm1pc3Npb25SZXF1
ZXN0RGlhbG9nQ2FsbGJhY2spOgorICAgICAgICAoc2hvd0dlb2xvY2F0aW9uUmVxdWVzdERpYWxv
Zyk6CisgICAgICAgIChzaG93VXNlck1lZGlhUmVxdWVzdERpYWxvZyk6CisgICAgICAgICh3ZWJW
aWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOiBudWxsCisgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0IGhhbmRsZXJzLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQ
YWdlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0
aW9ucyk6CisKIDIwMTMtMTAtMjIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdIGVuYWJsZSBtZWRpYS1zdHJlYW0gaW4gYnVpbGQtd2Via2l0
CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jIGIvVG9v
bHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYwppbmRleCAzZWZkMzkwLi40MmViZjky
IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCisrKyBi
L1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKQEAgLTI0NCw3ICsyNDQsNyBA
QCBzdGF0aWMgdm9pZCBiYWNrRm9yd2FkbGlzdENoYW5nZWQoV2ViS2l0QmFja0ZvcndhcmRMaXN0
ICpiYWNrRm9yd2FkbGlzdCwgV2ViS2l0QgogICAgIGJyb3dzZXJXaW5kb3dVcGRhdGVOYXZpZ2F0
aW9uQWN0aW9ucyh3aW5kb3csIGJhY2tGb3J3YWRsaXN0KTsKIH0KIAotc3RhdGljIHZvaWQgZ2Vv
bG9jYXRpb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2soR3RrRGlhbG9nICpkaWFsb2csIGdpbnQgcmVz
cG9uc2UsIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KQorc3RhdGljIHZvaWQgcGVy
bWlzc2lvblJlcXVlc3REaWFsb2dDYWxsYmFjayhHdGtEaWFsb2cgKmRpYWxvZywgZ2ludCByZXNw
b25zZSwgV2ViS2l0UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3QpCiB7CiAgICAgc3dpdGNoIChy
ZXNwb25zZSkgewogICAgIGNhc2UgR1RLX1JFU1BPTlNFX1lFUzoKQEAgLTM5NiwxMSArMzk2LDgg
QEAgc3RhdGljIGdib29sZWFuIHdlYlZpZXdEZWNpZGVQb2xpY3koV2ViS2l0V2ViVmlldyAqd2Vi
VmlldywgV2ViS2l0UG9saWN5RGVjaXNpb24KICAgICB9CiB9CiAKLXN0YXRpYyBnYm9vbGVhbiB3
ZWJWaWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2Vi
S2l0UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3QsIEJyb3dzZXJXaW5kb3cgKndpbmRvdykKK3N0
YXRpYyBnYm9vbGVhbiBzaG93R2VvbG9jYXRpb25SZXF1ZXN0RGlhbG9nKFdlYktpdFBlcm1pc3Np
b25SZXF1ZXN0ICpyZXF1ZXN0LCBCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7Ci0gICAgaWYgKCFX
RUJLSVRfSVNfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKQotICAgICAg
ICByZXR1cm4gRkFMU0U7Ci0KICAgICBHdGtXaWRnZXQgKmRpYWxvZyA9IGd0a19tZXNzYWdlX2Rp
YWxvZ19uZXcoR1RLX1dJTkRPVyh3aW5kb3cpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHVEtfRElBTE9HX01PREFMIHwgR1RLX0RJQUxPR19ERVNUUk9Z
X1dJVEhfUEFSRU5ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHVEtfTUVTU0FHRV9RVUVTVElPTiwKQEAgLTQwOCwxMiArNDA1LDM4IEBAIHN0YXRpYyBn
Ym9vbGVhbiB3ZWJWaWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0V2ViVmlldyAqd2Vi
VmlldywgV2ViS2l0UGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJHZW9sb2NhdGlvbiByZXF1ZXN0Iik7CiAKICAgICBndGtfbWVzc2FnZV9kaWFsb2df
Zm9ybWF0X3NlY29uZGFyeV90ZXh0KEdUS19NRVNTQUdFX0RJQUxPRyhkaWFsb2cpLCAiQWxsb3cg
Z2VvbG9jYXRpb24gcmVxdWVzdD8iKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGRpYWxvZywgInJl
c3BvbnNlIiwgR19DQUxMQkFDSyhnZW9sb2NhdGlvblJlcXVlc3REaWFsb2dDYWxsYmFjayksIGdf
b2JqZWN0X3JlZihyZXF1ZXN0KSk7CisgICAgZ19zaWduYWxfY29ubmVjdChkaWFsb2csICJyZXNw
b25zZSIsIEdfQ0FMTEJBQ0socGVybWlzc2lvblJlcXVlc3REaWFsb2dDYWxsYmFjayksIGdfb2Jq
ZWN0X3JlZihyZXF1ZXN0KSk7CisgICAgZ3RrX3dpZGdldF9zaG93KGRpYWxvZyk7CisKKyAgICBy
ZXR1cm4gVFJVRTsKK30KKworc3RhdGljIGdib29sZWFuIHNob3dVc2VyTWVkaWFSZXF1ZXN0RGlh
bG9nKFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0LCBCcm93c2VyV2luZG93ICp3aW5k
b3cpCit7CisgICAgR3RrV2lkZ2V0ICpkaWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3KEdU
S19XSU5ET1cod2luZG93KSwKKyAgICAgICAgR1RLX0RJQUxPR19NT0RBTCB8IEdUS19ESUFMT0df
REVTVFJPWV9XSVRIX1BBUkVOVCwKKyAgICAgICAgR1RLX01FU1NBR0VfUVVFU1RJT04sCisgICAg
ICAgIEdUS19CVVRUT05TX1lFU19OTywKKyAgICAgICAgIlVzZXJNZWRpYSByZXF1ZXN0Iik7CisK
KyAgICBndGtfbWVzc2FnZV9kaWFsb2dfZm9ybWF0X3NlY29uZGFyeV90ZXh0KEdUS19NRVNTQUdF
X0RJQUxPRyhkaWFsb2cpLCAiQWxsb3cgdXNlcm1lZGlhIHJlcXVlc3Q/Iik7CisgICAgZ19zaWdu
YWxfY29ubmVjdChkaWFsb2csICJyZXNwb25zZSIsIEdfQ0FMTEJBQ0socGVybWlzc2lvblJlcXVl
c3REaWFsb2dDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CiAgICAgZ3RrX3dpZGdl
dF9zaG93KGRpYWxvZyk7CiAKICAgICByZXR1cm4gVFJVRTsKIH0KIAorc3RhdGljIGdib29sZWFu
IHdlYlZpZXdEZWNpZGVQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBX
ZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCwgQnJvd3NlcldpbmRvdyAqd2luZG93KQor
eworICAgIGlmIChXRUJLSVRfSVNfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVl
c3QpKQorICAgICAgICByZXR1cm4gc2hvd0dlb2xvY2F0aW9uUmVxdWVzdERpYWxvZyhyZXF1ZXN0
LCB3aW5kb3cpOworCisgICAgaWYgKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVR
VUVTVChyZXF1ZXN0KSkKKyAgICAgICAgcmV0dXJuIHNob3dVc2VyTWVkaWFSZXF1ZXN0RGlhbG9n
KHJlcXVlc3QsIHdpbmRvdyk7CisKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKIHN0YXRpYyB2b2lk
IHdlYlZpZXdNb3VzZVRhcmdldENoYW5nZWQoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0
SGl0VGVzdFJlc3VsdCAqaGl0VGVzdFJlc3VsdCwgZ3VpbnQgbW91c2VNb2RpZmllcnMsIEJyb3dz
ZXJXaW5kb3cgKndpbmRvdykKIHsKICAgICBpZiAoIXdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY29u
dGV4dF9pc19saW5rKGhpdFRlc3RSZXN1bHQpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCmluZGV4IDUzZjYyMGYuLjFlOGQ2ZTYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yNTIsNiArMjUyLDcgQEAgV0tQYWdlUmVm
IFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJM
UmVxdWVzdFJlZiwgV0sKICAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAs
IC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAgICAwLCAvLyB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQKKyAgICAgICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChuZXdQYWdlLCAmb3Ro
ZXJQYWdlVUlDbGllbnQpOwogCkBAIC00NTQsNiArNDU1LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKFdLRGljdGlvbmFyeVJlZiBvcHRpb25zKQogICAg
ICAgICAwLCAvLyBzaG93Q29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2Vy
CiAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCwKKyAgICAgICAgMCwgLy8g
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKICAgICB9OwogICAgIFdL
UGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQp
OwogCi0tIAoxLjguNC5yYzM=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215252</attachid>
            <date>2013-10-26 09:44:08 -0700</date>
            <delta_ts>2013-10-29 03:22:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123158-20131026184403.patch</filename>
            <type>text/plain</type>
            <size>83229</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4MDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg2ZDZmNTYzNWI0YWJj
NTEzOGQ0NzkzMDIyZjgyZmU2ZDJkNGU0Ny4uNmY1YWRhMDExMTU3NTExODEyMTJiM2FiZjJlZjRl
NmNjOWQ4MWIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTEwLTI2ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2Vy
TWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOiBB
ZGRlZCBkb2N1bWVudCBhbmQKKyAgICAgICAgZnJhbWUgYWNjZXNzb3JzLCBuZWVkZWQgYnkgdGhl
IFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyIG9mIHRoZSBXZWJQcm9jZXNzLgorICAgICAgICAoV2Vi
Q29yZTo6VXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6VXNl
ck1lZGlhUmVxdWVzdDo6ZnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5oOgorCiAyMDEzLTEwLTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBEZXByZWNhdGUgcHVibGljIGRpc3Bh
dGNoX2V2ZW50IG1ldGhvZCBpbiBvYmplY3RzIGltcGxlbWVudGluZyBFdmVudFRhcmdldCBpbnRl
cmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCBkNWU2YTIzNjAxM2FkNzA2OTY0NTQzNjk2M2Y3ODQxNjM4NTQ0
OWNiLi4xYWM2YmZlMjhiM2E2YmQ3MzE0YjdkNTViMDlhY2M4ZGY0NTI2NTdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsOTkgQEAKKzIwMTMtMTAtMjYgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFu
ZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGZv
ciBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCBpbiBXZWJLaXQyLiBJdCdzCisgICAgICAgIGlt
cGxlbWVudGVkIHNpbWlsYXJpbHkgdG8gdGhlIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QK
KyAgICAgICAgc3VwcG9ydC4gV2hlbiB0aGUgV2ViUGFnZSByZXF1aXJlcyB0aGlzIHBlcm1pc3Np
b24gaXQgc2VuZHMgYQorICAgICAgICBtZXNzYWdlIHRvIHRoZSBVSSBwcm9jZXNzIHdoaWNoIGF0
IHNvbWUgcG9pbnQgZ3JhbnRzIG9yIGRlbmllcyB0aGUKKyAgICAgICAgcGVybWlzc2lvbiBhbmQg
c2VuZCB0aGUgcmVzdWx0IHRvIHRoZSBXZWJQcm9jZXNzLgorCisgICAgICAgICogR05VbWFrZWZp
bGUuYW06IE5ldyBNZWRpYVN0cmVhbSBkaXJlY3RvcnkuCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbTogTmV3IGZpbGVzIGluIHRoZSBidWlsZCEKKyAgICAgICAgKiBTaGFyZWQvQVBJL2Mv
V0tCYXNlLmg6IE5ldyB0eXBlIGZvciBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAg
ICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaDogRm9yd2FyZC1kZWNsYXJlIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDogTmV3IERlY2lk
ZVBvbGljeSBoYW5kbGVyIGZvciBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHA6IEFkZGVk
LCBDIEFQSQorICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuCisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlE
KToKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAg
IChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwOiBEZWNpZGVQb2xpY3kgaGFuZGxl
cgorICAgICAgICBpbXBsZW1lbnRhdGlvbiBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
CisgICAgICAgIChkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6Cisg
ICAgICAgIChhdHRhY2hVSUNsaWVudFRvVmlldyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZCwKKyAgICAgICAg
V2ViS2l0R1RLIEFQSSBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsIHZlcnkgc2ltaWxh
ciB0byB0aGUKKyAgICAgICAgb25lIHVzZWQgZm9yIEdlb2xvY2F0aW9uLAorICAgICAgICAod2Vi
a2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAgICh3ZWJraXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkpOgorICAgICAgICAod2Via2l0X3Blcm1pc3Npb25f
cmVxdWVzdF9pbnRlcmZhY2VfaW5pdCk6CisgICAgICAgICh3ZWJraXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdERpc3Bvc2UpOgorICAgICAgICAod2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lv
bl9yZXF1ZXN0X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RDcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBF
eHBvc2UgbmV3IEFQSQorICAgICAgICBpbiBkb2N1bWVudGF0aW9uLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaDogRXhwb3NlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
IEFQSS4KKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwOiBBZGRlZCwKKyAgICAgICAgbWFuYWdlciBzdG9yaW5nIHBlbmRpbmcgVXNl
ck1lZGlhUGVybWlzc2lvbiByZXF1ZXN0cy4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1ZXN0cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJl
Y2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHA6IEFkZGVkLCBw
cm94eQorICAgICAgICBvYmplY3QgZm9yIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFR5
cGUuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJl
cXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOiBEZWZlcgorICAgICAgICBVc2VyUGVy
bWlzc2lvblJlcXVlc3QgdG8gdGhlIFVJQ2xpZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
OiBOZXcgbWVzc2FnZSB0byBoYW5kbGUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVJ
Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAg
ICAgIERlZmVyIHBlcm1pc3Npb24gcmVxdWVzdCB0byBBUElDbGllbnQuCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlVJQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHA6IEFkZGVkLAorICAgICAgICBXZWJQcm9jZXNzIHNp
ZGUgb2YgdGhlIFVzZXJSZXF1ZXN0TWFuYWdlciwga2VlcGluZyB0cmFjayBvZiBlYWNoCisgICAg
ICAgIHBlcm1pc3Npb24gcmVxdWVzdC4KKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVVc2VyTWVk
aWFSZXF1ZXN0SUQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcjo6
VXNlck1lZGlhUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFSZXF1
ZXN0TWFuYWdlcjo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFSZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5h
Z2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50LmNwcDogQWRkZWQsCisgICAgICAgIFdlYlByb2Nlc3MgaW1wbGVtZW50YXRp
b24gb2YgdGhlIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
VXNlck1lZGlhQ2xpZW50Ojp+V2ViVXNlck1lZGlhQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VXNlck1lZGlhQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsUmVxdWVzdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6V2ViVXNlck1lZGlhQ2xpZW50KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OldlYlBhZ2UpOiBDcmVhdGUgdGhlCisgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlciBhbmQgcmVnaXN0ZXIgdGhlIFVzZXJNZWRpYUNsaWVudAorICAgICAgICB0byB0aGUg
cGFnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbik6IERpc3BhdGNoCisgICAgICAgIGRlY2lzaW9uIHRvIG1hbmFnZXIuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6dXNlck1lZGlhUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBOZXcgTWVzc2FnZSB0byBoYW5kbGUKKyAgICAg
ICAgcGVybWlzc2lvbiBkZWNpc2lvbiByZXN1bHQgZnJvbSB0aGUgVUkgcHJvY2Vzcy4KKwogMjAx
My0xMC0yNiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2Nv
YV0gY2xhbmcgc3RhdGljIGFuYWx5emVyIHdhcm5zIGFib3V0IG9iamVjdCBiZWluZyBhdXRvcmVs
ZWFzZWQgdG9vIG1hbnkgdGltZXMgaW4gK1tXS05TQXJyYXkgd2ViX2FycmF5V2l0aEltbXV0YWJs
ZUFycmF5Ol0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IGRjMGI1MjA4OWYwNGMyYWIyNDM4Y2JkMWRhNzkz
M2MyZTAwNGNhZTYuLmNjYWY3ZjdmYzNjMDQzNDM2YjkxZjVhNTdjMjA3NDYzNWEzMWM5ODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBsLmgiCiAjaW5jbHVk
ZSAiTWVkaWFTdHJlYW0uaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbUNlbnRlci5oIgpAQCAtMTAw
LDYgKzEwMSwxNiBAQCBVc2VyTWVkaWFSZXF1ZXN0Ojp+VXNlck1lZGlhUmVxdWVzdCgpCiB7CiB9
CiAKK0RvY3VtZW50KiBVc2VyTWVkaWFSZXF1ZXN0Ojpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHRvRG9jdW1lbnQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKK30KKworRnJhbWUq
IFVzZXJNZWRpYVJlcXVlc3Q6OmZyYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQo
KSA/IGRvY3VtZW50KCktPmZyYW1lKCkgOiAwOworfQorCiBTZWN1cml0eU9yaWdpbiogVXNlck1l
ZGlhUmVxdWVzdDo6c2VjdXJpdHlPcmlnaW4oKSBjb25zdAogewogICAgIGlmIChtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCmluZGV4IDNjZmVlZjc5MDhlYTI1NjAyYzFmMWUyMGM0
MzM1NWRhYWIzOWU5MTUuLmZmMmQ2ZWI3Y2EwMjQ3YWI0ZDk5YzgyMTRlYjRhMTRlYjdmNGNhYzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1l
ZGlhUmVxdWVzdC5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRGljdGlvbmFyeTsKIGNsYXNzIERvY3VtZW50OworY2xhc3MgRnJhbWU7CiBjbGFzcyBNZWRp
YUNvbnN0cmFpbnRzOwogY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwogY2xhc3MgVXNlck1l
ZGlhQ29udHJvbGxlcjsKQEAgLTU5LDYgKzYwLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
VXNlck1lZGlhQ29udHJvbGxlciosIGNvbnN0IERpY3Rpb25hcnkmIG9wdGlvbnMsIFBhc3NSZWZQ
dHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrPiwgUGFzc1JlZlB0cjxOYXZpZ2F0
b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIH5Vc2VyTWVk
aWFSZXF1ZXN0KCk7CiAKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKKyAgICBGcmFt
ZSogZnJhbWUoKSBjb25zdDsKKwogICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigp
IGNvbnN0OwogCiAgICAgdm9pZCBzdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCAyODY1
MjNkZmIyYzM3YjBhOWFjZmI0MDI3YmY1YTk1YWQ5NmZmYTkxLi40NjE1ZWNmYzVkZmY5MDAxZWVi
Yzg0Yjc5OGUwMzkzNjJlMTFiOWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtNDMsNiArNDMs
NyBAQCBzZXQoV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9
L1dlYlByb2Nlc3MvRmlsZUFQSSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9GdWxs
U2NyZWVuIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIgorICAg
ICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL01lZGlhU3RyZWFtIgogICAgICIke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL05ldHdvcmtJbmZvIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL0ljb25EYXRhYmFzZSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZSIKQEAgLTI5Myw2ICsyOTQsMTAgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJ
UHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAogICAgIFVJUHJvY2Vzcy9TdGF0aXN0aWNz
UmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcAorICAg
IFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKyAg
ICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorICAg
IFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAorICAgIFVJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKICAgICBVSVByb2Nlc3MvVmlz
aXRlZExpbmtQcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcApAQCAt
MzUyLDggKzM1Nyw4IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNh
dGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwCi0gICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFja0Zvcndh
cmRMaXN0UmVmLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1S
ZWYuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0UmVmLmNwcAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS0JhdHRlcnlTdGF0dXMuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJS
ZXN1bHRMaXN0ZW5lci5jcHAKQEAgLTM5MCw2ICszOTUsOCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlvblNwYWNlLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S1RleHRDaGVja2VyLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0LmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcAogCkBAIC00ODksNiArNDk2LDkgQEAg
c2V0KFdlYktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlh
Q2FjaGVNYW5hZ2VyLmNwcAogCisgICAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0TWFuYWdlci5jcHAKKyAgICBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3RNYW5hZ2VyLmgKKwogICAgIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5jcHAKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCkBA
IC01NDAsNiArNTUwLDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUG9wdXBNZW51LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2VhcmNoUG9wdXBNZW51LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1l
ZGlhQ2xpZW50LmgKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlZpYnJhdGlvbkNs
aWVudC5jcHAKIAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9EZWNvZGVyQWRhcHRlci5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUuYW0KaW5kZXggMzkxN2FjNGQ3OWYwNjE3YWQ5MDM2ZjYzNWJiY2JkMzg0MWQ3
YzE2MS4uNDM4ZjgzOTFkZmYwMWM2YzJkNDE1OWNlZWQ5NWRmYmJjYmU5MmM1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUuYW0KQEAgLTE0NSw2ICsxNDUsNyBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtf
QVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0NQUAog
CS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
QiBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuIFwK
IAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKKwkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtIFwKIAktSSQo
c3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ayBcCiAJLUkkKHNyY2RpcikvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UgXAogCS1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUgXApAQCAtMzgzLDYgKzM4NCw3IEBA
IHZwYXRoICUubWVzc2FnZXMuaW4gPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0Nvb2tpZXMg
XAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuIFwKIAkkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvR2VvbG9jYXRpb24gXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSBc
CiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZSBcCiAJJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL01lZGlhQ2FjaGUgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDU3MmYxMjIyOThkYTFkOGY0MTNmYzI0M2U2
MjhiN2I0N2RiMTI1MzEuLmMxZmZiZjUzOGMwYTljZWU2ZDgwYTEzYmY2ZjIxODVkNzVjYmRlNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNjY5LDYgKzY2OSw4IEBAIHdlYmtp
dDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3Vy
Y2VDYWNoZU1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tU
ZXh0Q2hlY2tlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hl
Y2tlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLVmlicmF0aW9uLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLVmlicmF0aW9uLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvY3BwL1dLUmV0
YWluUHRyLmggXApAQCAtNzkyLDYgKzc5NCw5IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdFByaXZhdGUuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIFwKKwlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByaXZhdGUuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VmVyc2lvbi5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YkNvbnRleHQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Q29udGV4dC5jcHAgXApAQCAtOTEyLDYgKzkxNywxMCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIFwKKwlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExp
bmtQcm92aWRlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1By
b3ZpZGVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5LmggXApAQCAtMTE0OSw2ICsxMTU4LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRp
YUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmggXAorCVNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwIFwKKwlT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5h
Z2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29y
a0luZm9NYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5m
by9XZWJOZXR3b3JrSW5mb01hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgXApA
QCAtMTI0Myw2ICsxMjU0LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAgXAog
CVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBN
ZW51LmggXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50LmNwcCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlZpYnJhdGlvbkNsaWVudC5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRGVjb2RlckFkYXB0ZXIuY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCAxOTdhZDlmZjdkMjU5NWE2YjFlM2Y4YmFmNjU5
MjBiMDRmYTk3YWY5Li4xNTI2OWMxOWIxNmZjMTc3Y2FlOGZhMGViZGZhNDRiYzE5ZjY3NWY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xMjYsNiArMTI2LDcgQEAgdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIFdLUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcmVmZXJl
bmNlcyogV0tQcmVmZXJlbmNlc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJv
dGVjdGlvblNwYWNlKiBXS1Byb3RlY3Rpb25TcGFjZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLVGV4dENoZWNrZXIqIFdLVGV4dENoZWNrZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiBXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWJyYXRpb24q
IFdLVmlicmF0aW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWV3cG9ydEF0
dHJpYnV0ZXMqIFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2Jq
ZWN0LmgKaW5kZXggNzAzMjFiOTA5YTQ4ZGJlN2RjYWJkOGU3ZDA2NDY0YWEyZjY2OTYzNC4uN2I4
N2MzNTU3NzJlZjc5YjhjODIwNTIzZmZmZmYzOWMyYjNmYWQwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElPYmplY3QuaApAQCAtMTA5LDYgKzEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZVBsdWdp
blNpdGVEYXRhTWFuYWdlciwKICAgICAgICAgVHlwZVByZWZlcmVuY2VzLAogICAgICAgICBUeXBl
VGV4dENoZWNrZXIsCisgICAgICAgIFR5cGVVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKICAg
ICAgICAgVHlwZVZpYnJhdGlvbiwKICAgICAgICAgVHlwZVZpZXdwb3J0QXR0cmlidXRlcywKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IGRkODhkN2E0
ZTVkODQ1Y2M1Y2E3OGU3ZmE3ZThiYjc1MDVkMTYzNWIuLjczMmRlZGY2MmE1M2MzMzM1YTI4ZjU5
NjM2ODU3NmMwMzljNmFhMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
UElDYXN0LmgKQEAgLTU3LDYgKzU3LDcgQEAgY2xhc3MgQXV0aGVudGljYXRpb25EZWNpc2lvbkxp
c3RlbmVyOwogY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RQcm94eTsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworY2xh
c3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNsYXNzIFdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtOwpAQCAtMTQzLDYgKzE0NCw3IEBAIFdLX0FERF9BUElfTUFQUElO
RyhXS1Byb3RlY3Rpb25TcGFjZVJlZiwgV2ViUHJvdGVjdGlvblNwYWNlKQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLUmVuZGVyTGF5ZXJSZWYsIFdlYlJlbmRlckxheWVyKQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLUmVuZGVyT2JqZWN0UmVmLCBXZWJSZW5kZXJPYmplY3QpCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tUZXh0Q2hlY2tlclJlZiwgV2ViVGV4dENoZWNrZXIpCitXS19BRERfQVBJX01BUFBJTkco
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1ZpYnJhdGlvblJlZiwgV2ViVmlicmF0aW9u
UHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYsIFdlYlZp
ZXdwb3J0QXR0cmlidXRlcykKIFdLX0FERF9BUElfTUFQUElORyhXS0luc3BlY3RvclJlZiwgV2Vi
SW5zcGVjdG9yUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKaW5k
ZXggODU2MTFlZDVjM2M4MzcyY2JlMjg1ZTFhMDIxZGUxYzZmOWFlMmY5Ny4uYmNhODliMDA3MWI5
NzIyNDYyNWQ3MTFkYmZkNmI3NzkyZjRiYmU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuaApAQCAtMjIxLDYgKzIyMSw3IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZURl
Y2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFn
CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjaykoV0tQYWdlUmVm
IHBhZ2UsIFdLU3RyaW5nUmVmIGluaXRpYWxDb2xvciwgV0tDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAo
KldLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIFdLRGljdGlvbmFyeVJlZiBwbHVn
aW5JbmZvRGljdGlvbmFyeSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNr
KShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiBv
cmlnaW4sIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3Qs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiAvLyBEZXByZWNhdGVkICAgIAogdHlwZWRlZiBX
S1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qg
dm9pZCAqY2xpZW50SW5mbyk7CkBAIC0yODMsNiArMjg0LDggQEAgc3RydWN0IFdLUGFnZVVJQ2xp
ZW50IHsKICAgICBXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNob3dDb2xvclBpY2tlcjsKICAgICBXS1BhZ2VIaWRlQ29s
b3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhp
ZGVDb2xvclBpY2tlcjsKICAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dENhbGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0OworCiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgV0tQYWdlVUlDbGll
bnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNGEwZDNmMTI0
NTIwYzZhOGMzMmRiZjcyM2NhYWQ3NDc4YWU0MWVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
CkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTAor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWludCB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmgiCisKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5j
bHVkZSAiV0tBUElDYXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlE
IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0
b0FQSShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpBUElUeXBlKTsKK30KKwordm9p
ZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikKK3sKKyAgICByZXR1cm4g
dG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+YWxsb3coKTsKK30KKwordm9p
ZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQoreworICAgIHJldHVybiB0
b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5kZW55KCk7Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzhjMzNmMzkwNzVjMWU5NzY5NzMwNTdiNTRi
ZDFkMWI4ZjM0ZmY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDM4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwKKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gK
KworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0
ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdERlbnkoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNl
bmRpZiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2ggKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCAwODk5
Yjg1NjM4OTRhNDAwNWExMjgzMWY2NWUzZjllYjJiNjcyOGM4Li43NDNmMjFhZWRiMGFiNzhlZjY2
ODA2N2Q3ZDc1Njk0ZmY3MTRhMTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVk
ZSAiV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJp
dmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldl
YktpdFdlYlZpZXdQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2luZG93UHJvcGVydGllc1By
aXZhdGUuaCIKQEAgLTE1Myw2ICsxNTQsMTIgQEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9y
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFcKICAg
ICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KFdFQktJVF9XRUJfVklFVyhjbGll
bnRJbmZvKSwgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChnZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmdldCgpKSk7CiB9CiAKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0eU9yaWdp
blJlZiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0LCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIEdSZWZQdHI8V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3Q+IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKHRvSW1wbChyZXF1ZXN0KSkpOworICAgIHdlYmtp
dFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QoV0VCS0lUX1dFQl9WSUVXKGNsaWVudEluZm8p
LCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNUKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmdl
dCgpKSk7Cit9CisKIHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogewogICAgIHdlYmtpdFdlYlZpZXdSdW5Bc01vZGFsKFdFQktJVF9X
RUJfVklFVyhjbGllbnRJbmZvKSk7CkBAIC0yMDksNiArMjE2LDcgQEAgdm9pZCBhdHRhY2hVSUNs
aWVudFRvVmlldyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgICAgICAwLCAvLyBzaG93Q29s
b3JQaWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIHBs
dWdpbkxvYWRQb2xpY3kKKyAgICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QKICAgICB9OwogICAgIFdLUGFnZVJlZiB3a1BhZ2UgPSB0b0FQSSh3ZWJraXRXZWJW
aWV3QmFzZUdldFBhZ2UoV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2ViVmlldykpKTsKICAgICBXS1Bh
Z2VTZXRQYWdlVUlDbGllbnQod2tQYWdlLCAmd2tVSUNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGQzYmNhY2I4NTlkYzQ3ZTA0OTIy
ZjhiNTMxNmEyNjFhZmI1ZWY0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAt
MCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuaCIKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKyNp
bmNsdWRlICJXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OworCisvKioKKyAqIFNFQ1RJT046IFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Cisg
KiBAU2hvcnRfZGVzY3JpcHRpb246IEEgcGVybWlzc2lvbiByZXF1ZXN0IGZvciBhY2Nlc3Npbmcg
dXNlcidzIGF1ZGlvL3ZpZGVvIGRldmljZXMuCisgKiBAVGl0bGU6IFdlYktpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0CisgKiBAU2VlX2Fsc286ICNXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCwg
I1dlYktpdFdlYlZpZXcKKyAqCisgKiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCBy
ZXByZXNlbnRzIGEgcmVxdWVzdCBmb3IKKyAqIHBlcm1pc3Npb24gdG8gZGVjaWRlIHdoZXRoZXIg
V2ViS2l0IHNob3VsZCBiZSBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgdXNlcidzCisgKiBhdWRpbyBh
bmQgdmlkZW8gc291cmNlIGRldmljZXMgd2hlbiByZXF1ZXN0ZWQgdGhyb3VnaHQgdGhlIGdldFVz
ZXJNZWRpYSBBUEkuCisgKi8KKworc3RhdGljIHZvaWQgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVz
dF9pbnRlcmZhY2VfaW5pdChXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdElmYWNlKik7CisKK3N0cnVj
dCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlIHsKKyAgICBSZWZQdHI8
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gcmVxdWVzdDsKKyAgICBib29sIG1hZGVE
ZWNpc2lvbjsKK307CisKK1dFQktJVF9ERUZJTkVfVFlQRV9XSVRIX0NPREUoCisgICAgV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsIHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25f
cmVxdWVzdCwgR19UWVBFX09CSkVDVCwKKyAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lU
X1RZUEVfUEVSTUlTU0lPTl9SRVFVRVNULCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVy
ZmFjZV9pbml0KSkKKworc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RBbGxvdyhXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBBU1NFUlQo
V0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKTsKKworICAg
IFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9V
U0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KS0+cHJpdjsKKworICAgIC8vIE9u
bHkgb25lIGRlY2lzaW9uIGF0IGEgdGltZS4KKyAgICBpZiAocHJpdi0+bWFkZURlY2lzaW9uKQor
ICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT5yZXF1ZXN0LT5hbGxvdygpOworICAgIHByaXYt
Pm1hZGVEZWNpc2lvbiA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0RGVueShXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkKK3sK
KyAgICBBU1NFUlQoV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVl
c3QpKTsKKworICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSogcHJp
diA9IFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KS0+cHJpdjsK
KworICAgIC8vIE9ubHkgb25lIGRlY2lzaW9uIGF0IGEgdGltZS4KKyAgICBpZiAocHJpdi0+bWFk
ZURlY2lzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT5yZXF1ZXN0LT5kZW55KCk7
CisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0
X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5pdChXZWJLaXRQZXJtaXNzaW9uUmVxdWVz
dElmYWNlKiBpZmFjZSkKK3sKKyAgICBpZmFjZS0+YWxsb3cgPSB3ZWJraXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdEFsbG93OworICAgIGlmYWNlLT5kZW55ID0gd2Via2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3REZW55OworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdERpc3Bvc2UoR09iamVjdCogb2JqZWN0KQoreworICAgIC8vIERlZmF1bHQg
YmVoYXZpb3VyIHdoZW4gbm8gZGVjaXNpb24gaGFzIGJlZW4gbWFkZSBpcyBkZW55aW5nIHRoZSBy
ZXF1ZXN0LgorICAgIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXRUJLSVRf
UEVSTUlTU0lPTl9SRVFVRVNUKG9iamVjdCkpOworICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF91
c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9wYXJlbnRfY2xhc3MpLT5kaXNwb3NlKG9iamVj
dCk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVz
dF9jbGFzc19pbml0KFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MqIGtsYXNz
KQoreworICAgIEdPYmplY3RDbGFzcyogb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFz
cyk7CisgICAgb2JqZWN0Q2xhc3MtPmRpc3Bvc2UgPSB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdERpc3Bvc2U7Cit9CisKK1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiB3
ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5KiByZXF1ZXN0KQoreworICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCA9IFdFQktJVF9VU0VSX01FRElBX1BF
Uk1JU1NJT05fUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJN
SVNTSU9OX1JFUVVFU1QsIE5VTEwpKTsKKyAgICB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC0+
cHJpdi0+cmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgcmV0dXJuIHVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDVjODA3YjJhZDQ0YjgyNjE4ZDY0YzNlNGIwZjgwNjE4Mjg1ZjUzNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFk
ZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0
Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lU
X1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QgICAgICAgICAgICAod2Via2l0X3Vz
ZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9V
U0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVD
S19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05f
UkVRVUVTVCwgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpKQorI2RlZmluZSBXRUJL
SVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNT
SU9OX1JFUVVFU1QsIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorI2Rl
ZmluZSBXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfVVNFUl9NRURJ
QV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJN
SVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xh
c3MpLCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmlu
ZSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTKG9iaikgIChH
X1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9Q
RVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3Mp
KQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgICAg
ICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgICBXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZSBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGU7CisKK3N0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgeworICAgIEdP
YmplY3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2Ns
YXNzOworCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAo
Kl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQy
KSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitX
RUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0
X3R5cGUgKHZvaWQpOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjk5YWQyZWM4NTJj
YzExZmRmYzQ4OTRkYzJlMzU3ODU4NzhkOGQwYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZS5oCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdh
bGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKi8KKworI2lmbmRlZiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGVf
aAorI2RlZmluZSBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGVfaAorCisj
aW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0LmgiCisKK1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiB3ZWJr
aXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkqKTsKKworI2VuZGlmIC8vIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAppbmRleCA4MDU3NjNi
MWYyNDM4MjQ0ZGQzMmIyZjBlODQ3ZjY5Mzk3NTU2MDlhLi5kNjdjNzQwNGY3YjZiNjI0ODdlYzZi
MjQxNDQ1NTQ2YTA4ZTMyNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKQEAgLTUxMyw2
ICs1MTMsMjQgQEAgd2Via2l0X2dlb2xvY2F0aW9uX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlw
ZQogPC9TRUNUSU9OPgogCiA8U0VDVElPTj4KKzxGSUxFPldlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0PC9GSUxFPgorV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKKworPFNV
QlNFQ1RJT04gU3RhbmRhcmQ+CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNz
CitXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX1VTRVJf
TUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9O
X1JFUVVFU1QKK1dFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUworV0VC
S0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfVVNFUl9N
RURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9OIFByaXZhdGU+
CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUKK3dlYmtpdF91c2VyX21l
ZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQorPC9TRUNUSU9OPgorCis8U0VDVElPTj4K
IDxGSUxFPldlYktpdFBvbGljeURlY2lzaW9uPC9GSUxFPgogV2ViS2l0UG9saWN5RGVjaXNpb24K
IHdlYmtpdF9wb2xpY3lfZGVjaXNpb25fZG93bmxvYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL3dlYmtpdDIuaAppbmRleCA4ZDgyMTk5MDM5OThkOTVmM2U1OTllODE2ZDA5Y2M0
ODYwNjc1NjVjLi42MjAxNTc3MDBiYzY2ODUxZGI4YzJlODczNzVmYzY2N2U2NzdkMWI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCkBAIC01Niw2ICs1Niw3
IEBACiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRVUklSZXNwb25zZS5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFZlcnNpb24uaD4KICNpbmNsdWRl
IDx3ZWJraXQyL1dlYktpdFdlYkNvbnRleHQuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdl
Ykluc3BlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjE5MmRlZTU4ODlkNDczMWJmNGIxMTQzYWRlNWM1OTFiY2M2Yjk4YgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIldlYlBhZ2VN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
KFdlYlBhZ2VQcm94eSogcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMo
KQoreworICAgIFBlbmRpbmdSZXF1ZXN0TWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGVuZGlu
Z1JlcXVlc3RzLmJlZ2luKCk7CisgICAgUGVuZGluZ1JlcXVlc3RNYXA6OmNvbnN0X2l0ZXJhdG9y
IGVuZCA9IG1fcGVuZGluZ1JlcXVlc3RzLmVuZCgpOworICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsr
aXQpCisgICAgICAgIGl0LT52YWx1ZS0+aW52YWxpZGF0ZSgpOworCisgICAgbV9wZW5kaW5nUmVx
dWVzdHMuY2xlYXIoKTsKK30KKworUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVx
dWVzdCh1aW50NjRfdCB1c2VyTWVkaWFSZXF1ZXN0SUQpCit7CisgICAgUmVmUHRyPFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJlcXVlc3QgPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjpjcmVhdGUodGhpcywgdXNlck1lZGlhUmVxdWVzdElEKTsKKyAgICBtX3BlbmRp
bmdSZXF1ZXN0cy5hZGQodXNlck1lZGlhUmVxdWVzdElELCByZXF1ZXN0LmdldCgpKTsKKyAgICBy
ZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24o
dWludDY0X3QgdXNlck1lZGlhUmVxdWVzdElELCBib29sIGFsbG93ZWQpCit7CisgICAgaWYgKCFt
X3BhZ2UtPmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGVuZGluZ1JlcXVlc3RN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9wZW5kaW5nUmVxdWVzdHMuZmluZCh1c2VyTWVkaWFSZXF1ZXN0
SUQpOworICAgIGlmIChpdCA9PSBtX3BlbmRpbmdSZXF1ZXN0cy5lbmQoKSkKKyAgICAgICAgcmV0
dXJuOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbih1c2VyTWVkaWFSZXF1ZXN0SUQsIGFsbG93ZWQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOworI2VuZGlmCisKKyAgICBtX3BlbmRpbmdS
ZXF1ZXN0cy5yZW1vdmUoaXQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJiZGFmZjA2NmEwOGYzZTE1MTUy
OGQxZGE1NmYyODk0Y2M4MGEzMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0wLDAg
KzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Kik7CisKKyAg
ICB2b2lkIGludmFsaWRhdGVSZXF1ZXN0cygpOworCisgICAgLy8gQ3JlYXRlIGEgcmVxdWVzdCB0
byBiZSBwcmVzZW50ZWQgdG8gdGhlIHVzZXIuCisgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYVJlcXVl
c3RJRCk7CisKKyAgICAvLyBDYWxsZWQgYnkgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eSB3aGVuIGEgZGVjaXNpb24gaXMgbWFkZSBieSB0aGUgdXNlci4KKyAgICB2b2lkIGRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworCitw
cml2YXRlOgorICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk+PiBQZW5kaW5nUmVxdWVzdE1hcDsKKyAgICBQZW5kaW5nUmVx
dWVzdE1hcCBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEzNjA2OWVkNGRlY2U1Yzc3ODM3ZmVmZmJmZjcxZTM2MGY1YmI5ZjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2Fs
aWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5oIgorCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0SUQpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1f
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJRCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElE
KQoreworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KCkK
K3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYW5hZ2Vy
LT5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RJRCwgdHJ1ZSk7CisgICAgbV9tYW5hZ2VyID0gMDsKK30KKwordm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KCkKK3sKKyAgICBpZiAoIW1fbWFuYWdl
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYW5hZ2VyLT5kaWRSZWNlaXZlVXNlck1lZGlh
UGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJRCwgZmFsc2Up
OworICAgIG1fbWFuYWdlciA9IDA7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6aW52YWxpZGF0ZSgpCit7CisgICAgbV9tYW5hZ2VyID0gMDsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDIwNDZiMjIy
NGU4M2IyOTkyMzhjOTVjZjU3MTcxMTAyZDFlZjlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApAQCAt
MCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5k
ZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eV9oCisjZGVmaW5lIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHlfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlw
ZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlKFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdElEKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0SUQpKTsKKyAgICB9CisKKyAgICB2b2lkIGFsbG93KCk7CisgICAgdm9pZCBkZW55
KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKworcHJpdmF0ZToKKyAgICBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5KiwgdWludDY0X3QgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJRCk7CisKKyAgICBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbV9tYW5hZ2VyOworICAgIHVpbnQ2
NF90IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJRDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDJkYzE4NjJiYTI5
MTc2NWQ5MjdiYWMxZjEyOWE4MWM3MmVhNmM5NDEuLjIxMTAxMjEzZTgzNWU5ZWRmZmE5ZTEwODFl
MzM3MWY1NmEzM2ZhZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC0yMzYsNiArMjM2LDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNs
aWVudCogcGFnZUNsaWVudCwgUGFzc1JlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHAKICAgICAsIG1f
bWFpbkZyYW1lKDApCiAgICAgLCBtX3VzZXJBZ2VudChzdGFuZGFyZFVzZXJBZ2VudCgpKQogICAg
ICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQorICAgICwgbV91
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIodGhpcykKICAgICAsIG1fbm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKHRoaXMpCiAgICAgLCBtX2VzdGltYXRlZFByb2dy
ZXNzKDApCiAgICAgLCBtX2lzSW5XaW5kb3cobV9wYWdlQ2xpZW50LT5pc1ZpZXdJbldpbmRvdygp
KQpAQCAtMzk2Myw2ICszOTY0LDE4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwKICAgICAgICAg
cmVxdWVzdC0+ZGVueSgpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRp
YVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJ
RCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCit7CisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUg
PSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUp
OworCisgICAgUmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBXZWJTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW5JZGVudGlmaWVyKTsKKyAgICBSZWZQdHI8VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gcmVxdWVzdCA9IG1fdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNyZWF0ZVJlcXVlc3QodXNlck1lZGlhSUQpOworCisgICAgaWYg
KCFtX3VpQ2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHRo
aXMsIGZyYW1lLCBvcmlnaW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpKQorICAgICAgICByZXF1ZXN0
LT5kZW55KCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVy
bWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQog
ewogICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGZlN2ZjZmY4NmZjOWYzOGIyNTc4NmE1MGU3YjE0
MTVmNDU0ZWQ2YzYuLmE0MzYyNmMxMDg2MTZjYjM0MTE1NzdmYmM5YmZhY2I3MjcyNWRhYjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2FuZGJv
eEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiVmlld1N0
YXRlLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSAiV0tQYWdlUHJpdmF0ZS5oIgpA
QCAtODQ1LDYgKzg0Niw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWF0dGFjaFRvV2ViUHJvY2Vz
cygpOwogICAgIHZvaWQgcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShXZWJCYWNrRm9yd2Fy
ZExpc3RJdGVtKik7CiAKKyAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJh
bWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyKTsKKwogICAgIHZvaWQgcmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKTsKICAgICB2
b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBi
b2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJp
bmcmIGxhbmcsIGNvbnN0IFN0cmluZyYgZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywg
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwogICAgIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKHVp
bnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKQEAgLTEwODAsNiArMTA4Myw3IEBAIHByaXZhdGU6CiAg
ICAgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSBtX2FjdGl2ZUNvbnRleHRNZW51SGl0VGVzdFJlc3Vs
dERhdGE7CiAgICAgUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk+IG1fb3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXI7CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworICAgIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fdXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOwogICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogCiAgICAgZG91
YmxlIG1fZXN0aW1hdGVkUHJvZ3Jlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBhOTg1MzhiZTEyNDM5Y2U3MjJjZTQ5YzNk
NzU1ODQyNmM0NjdiN2NkLi43ZTQxODk5N2U1ODUyMjQwNGNhODM1ZWU0ZGRjODE0ZTFhNzM5ZTA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTIwMyw3ICsyMDMsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAog
ICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNz
aW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgV1RG
OjpTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKLSAgICAKKworICAgICMgVXNlciBNZWRpYSBtZXNz
YWdlcworICAgIFJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNl
ck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZpZXIp
CisKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3ROb3RpZmljYXRpb25Q
ZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRpZmll
cikKICAgICBTaG93Tm90aWZpY2F0aW9uKFdURjo6U3RyaW5nIHRpdGxlLCBXVEY6OlN0cmluZyBi
b2R5LCBXVEY6OlN0cmluZyBpY29uVVJMLCBXVEY6OlN0cmluZyB0YWcsIFdURjo6U3RyaW5nIGxh
bmcsIFdURjo6U3RyaW5nIGRpciwgV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgdWludDY0
X3Qgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNw
cAppbmRleCBiZmE0ZDhlNDNlN2ViNGZmNjc1M2FjYjNlYmZjN2MzODFmYjI0MTFjLi45NDgyZTI0
MTE4ZTY0NjY5ZTY3MjRjYTRiZmZkMjkxM2ZiMjk2YzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJVSUNsaWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJOYXRpdmVX
ZWJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
aCIKICNpbmNsdWRlICJQbHVnaW5JbmZvcm1hdGlvbi5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRl
ICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJOdW1i
ZXIuaCIKQEAgLTM1Niw2ICszNTcsMTUgQEAgYm9vbCBXZWJVSUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZ2UKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBXZWJVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBm
cmFtZSwgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSogcGVybWlzc2lvblJlcXVlc3QpCit7CisgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkob3JpZ2luKSwgdG9BUEkocGVybWlz
c2lvblJlcXVlc3QpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KwogYm9vbCBXZWJVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvblJlcXVlc3QpCiB7CiAgICAg
aWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKaW5kZXggOTgxM2Y1NzU0Yzgx
M2JmMTY5YzZiM2M5MjhiOGU1YWE1ZmJhNDNiNy4uNjcwMmZhMmQ5ZTRhNjMzNjI5NzI4MTJkMWY0
YmU2ODQ5ODU2MmQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJ
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKQEAg
LTQ5LDYgKzQ5LDcgQEAgY2xhc3MgSW1tdXRhYmxlRGljdGlvbmFyeTsKIGNsYXNzIE5hdGl2ZVdl
YktleWJvYXJkRXZlbnQ7CiBjbGFzcyBOYXRpdmVXZWJXaGVlbEV2ZW50OwogY2xhc3MgTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OwogY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OwogY2xhc3Mg
V2ViRGF0YTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CkBAIC0xMDIsNiArMTAzLDcgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSos
IFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5
Kik7CiAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBXZWJTZWN1cml0eU9yaWdpbiosIEdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eSopOworICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSos
IFdlYlNlY3VyaXR5T3JpZ2luKiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSopOwog
ICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2Vi
UGFnZVByb3h5KiwgV2ViU2VjdXJpdHlPcmlnaW4qLCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdCopOwogCiAgICAgLy8gUHJpbnRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCAzMTg3NzI1ZGU1ZWMwMDFl
NTY3NGFiNGM3ZjhiNjYyMmY3ODViZTZhLi4yNmQ3NDljZDgwOWNiOWMzM2E0NjBjMWNmZjgxNDZm
NjcwZjI1ZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYklu
c3BlY3RvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
SW5zcGVjdG9yUHJveHlNYWMubW0KQEAgLTQ0OCw2ICs0NDgsNyBAQCBXZWJQYWdlUHJveHkqIFdl
Ykluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UoKQogICAgICAgICAw
LCAvLyBzaG93Q29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAg
ICAgIDAsIC8vIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZAorICAgICAgICAwLCAvLyBk
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAogICAgIH07CiAKICAgICBp
bnNwZWN0b3JQYWdlLT5pbml0aWFsaXplVUlDbGllbnQoJnVpQ2xpZW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMzZkOTIy
MjU4MTQ4MDc2NDMzNzUxMGZmNjRjM2Q3OTkwMjI1ZmJjLi43MjE3NjNiOTNmNGM0YzNmMjM5OGM4
NTI1ZDY5MDM1NDY2NGRkZDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MTUsNiArNDE1LDE0IEBACiAJCTNGODdCOUJEMTU4
OTQwMTIwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkExNTg5M0Y2MzAwOTBGRjYyIC8qIFdl
YkNvbG9yQ2hvb3Nlci5jcHAgKi87IH07CiAJCTNGODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBX
ZWJDb2xvckNob29zZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDNGODdCOUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLzsg
fTsKIAkJM0Y4N0I5QzAxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yUGlja2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCRjE1ODk0MEQ4
MDA5MEZGNjIgLyogV2ViQ29sb3JQaWNrZXIuaCAqLzsgfTsKKwkJNEEyMDIwOTUxODFDMTU2RjAw
RTE3ODM0IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMjAyMDkxMTgxQzE1
NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAg
Ki87IH07CisJCTRBMjAyMDk2MTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNEEyMDIwOTIxODFDMTU2RjAwRTE3ODM0IC8qIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi87IH07CisJCTRBMjAyMDk3MTgxQzE1NkYwMEUxNzgz
NCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMjAyMDkzMTgxQzE1NkYwMEUxNzgzNCAv
KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCAqLzsgfTsKKwkJNEEyMDIwOTgx
ODFDMTU2RjAwRTE3ODM0IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMjAyMDk0MTgxQzE1
NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi87IH07CisJ
CTRBMjAyMDlCMTgxQzE1QTAwMEUxNzgzNCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMjAy
MDk5MTgxQzE1QTAwMEUxNzgzNCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAq
LzsgfTsKKwkJNEEyMDIwOUMxODFDMTVBMDAwRTE3ODM0IC8qIFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRBMjAyMDlBMTgxQzE1QTAwMEUxNzgzNCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmggKi87IH07CisJCTRBMjAyMDlGMTgxQzE1QzgwMEUxNzgzNCAvKiBXZWJVc2VyTWVkaWFDbGll
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEEy
MDIwOUQxODFDMTVDODAwRTE3ODM0IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgKi87IH07CisJ
CTRBMjAyMEEzMTgxQzE1REUwMEUxNzgzNCAvKiBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTIwMjBBMTE4
MUMxNURFMDBFMTc4MzQgLyogVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwICovOyB9OwogCQk0
RjYwMTQzMjE1NUM1QUEyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY2MDE0MzAxNTVDNUEzMjAw
MUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLzsgfTsKIAkJNTEwMjFFOUMxMkIxNjc4
ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8q
IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovOyB9OwogCQk1MTAzMkYxODE4MEY3M0JCMDA5
NjFCQjcgLyogV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDMyRjE2MTgwRjczQkIwMDk2MUJC
NyAvKiBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovOyB9OwpAQCAtMTg4OSw2
ICsxODk3LDE2IEBACiAJCTNGODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29z
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JDaG9v
c2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkIxNTg5M0Y2MzAw
OTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJDb2xvckNob29zZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4
N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yUGlja2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTRBMjAyMDkxMTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBMjAyMDkyMTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTIwMjA5MzE4MUMxNTZGMDBFMTc4MzQgLyogVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEEyMDIwOTQxODFDMTU2RjAwRTE3ODM0IC8qIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0QTIwMjA5OTE4MUMxNUEwMDBFMTc4MzQgLyogV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNEEyMDIwOUExODFDMTVBMDAwRTE3ODM0IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTIwMjA5RDE4
MUMxNUM4MDBFMTc4MzQgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVzZXJNZWRpYUNsaWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTRBMjAyMDlFMTgxQzE1QzgwMEUxNzgzNCAvKiBXZWJVc2VyTWVk
aWFDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVXNlck1lZGlh
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBMjAyMEExMTgxQzE1REUw
MEUxNzgzNCAvKiBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBMjAyMEEyMTgxQzE1REUwMEUxNzgzNCAvKiBVc2VyTWVk
aWFSZXF1ZXN0TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2Vy
TWVkaWFSZXF1ZXN0TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjYw
MTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja2luZ1Jlc3BvbnNlTWFwLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVtU2hp
bS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0g
ImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFNlY0l0
ZW1TaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTAy
MUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVudE1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM2NjYsNiArMzY4NCwxNSBAQAog
CQkJcGF0aCA9IENvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNEEy
MDIwQTAxODFDMTVERTAwRTE3ODM0IC8qIE1lZGlhU3RyZWFtICovID0geworCQkJaXNhID0gUEJY
R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTIwMjBBMTE4MUMxNURFMDBFMTc4MzQgLyog
VXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwICovLAorCQkJCTRBMjAyMEEyMTgxQzE1REUwMEUx
NzgzNCAvKiBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oICovLAorCQkJKTsKKwkJCXBhdGggPSBN
ZWRpYVN0cmVhbTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxMDVCMEQy
MTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKQEAgLTQwNzQsNiArNDEwMSw3IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUw
MDU4QzE1QSAvKiBXZWJQcm9jZXNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQk0QTIwMjBBMDE4MUMxNURFMDBFMTc4MzQgLyogTWVkaWFTdHJlYW0gKi8s
CiAJCQkJNzU1NDIyQzUxODA2NEZGQzAwNDZGNkE4IC8qIE9yaWdpbkRhdGEgKi8sCiAJCQkJNTEy
RTM1MkExMzBCNTU5OTAwQUJEMTlBIC8qIEFwcGxpY2F0aW9uQ2FjaGUgKi8sCiAJCQkJMzMwOTM0
NEIxMzE1QjkzQTAwOTdBN0JDIC8qIENvb2tpZXMgKi8sCkBAIC00MTA4LDYgKzQxMzYsOCBAQAog
CQlCQzAzMkQ1RDEwRjQzNzIyMDA1OEMxNUEgLyogV2ViQ29yZVN1cHBvcnQgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRBMjAyMDlEMTgxQzE1QzgwMEUx
NzgzNCAvKiBXZWJVc2VyTWVkaWFDbGllbnQuY3BwICovLAorCQkJCTRBMjAyMDlFMTgxQzE1Qzgw
MEUxNzgzNCAvKiBXZWJVc2VyTWVkaWFDbGllbnQuaCAqLywKIAkJCQlCQzExMUFERTExMkY1QjlB
MDAzMzdCQUIgLyogbWFjICovLAogCQkJCUNFREExMkRFMTUyQ0NBRTgwMEQ5RTA4RCAvKiBXZWJB
bHRlcm5hdGl2ZVRleHRDbGllbnQuaCAqLywKIAkJCQlCQzExMUE1MzExMkY0RkJCMDAzMzdCQUIg
LyogV2ViQ2hyb21lQ2xpZW50LmNwcCAqLywKQEAgLTQxOTQsNiArNDIyNCwxMCBAQAogCQlCQzAz
MkRDMzEwRjQzODI2MDA1OEMxNUEgLyogVUlQcm9jZXNzICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTIwMjA5MTE4MUMxNTZGMDBFMTc4MzQgLyogVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTRBMjAyMDky
MTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oICovLAorCQkJCTRBMjAyMDkzMTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmNwcCAqLywKKwkJCQk0QTIwMjA5NDE4MUMxNTZGMDBFMTc4MzQgLyog
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICovLAogCQkJCUJDMDMyREM0MTBGNDM4
N0MwMDU4QzE1QSAvKiBBUEkgKi8sCiAJCQkJNTEyRjU4OEQxMkE4ODM2RjAwNjI5NTMwIC8qIEF1
dGhlbnRpY2F0aW9uICovLAogCQkJCTUxQjMwMDREMTI1MjlDRjUwMDBCNUNBMCAvKiBjZiAqLywK
QEAgLTQzNTAsNiArNDM4NCw4IEBACiAJCUJDMEMzNzY2MTBGODA3NjYwMDc2RDdDQiAvKiBDICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTIwMjA5OTE4
MUMxNUEwMDBFMTc4MzQgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8sCisJ
CQkJNEEyMDIwOUExODFDMTVBMDAwRTE3ODM0IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuaCAqLywKIAkJCQk1MTIzQ0YxODEzM0QyNUU2MDA1NkY4MDAgLyogY2cgKi8sCiAJCQkJNkVF
ODQ5QzQxMzY4RDkwNDAwMzhENDgxIC8qIG1hYyAqLywKIAkJCQlCQ0I2MzQ3NzExNkJGMTA2MDA2
MDMyMTUgLyogV2ViS2l0Ml9DLmggKi8sCkBAIC01NjM2LDYgKzU2NzIsNyBAQAogCQkJCUJDRUU3
RDBFMTI4NDZGNjkwMDk4MjdEQSAvKiBXZWJDb250ZXh0TWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDRjRERTI1MTY4RkE0NDgwMEM5NEFGQyAvKiBXZWJDb250ZXh0U3VwcGxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMEIwREMxMjMwNUEyNTAwQjEzNDFFIC8qIFdlYkNvbnRl
eHRVc2VyTWVzc2FnZUNvZGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEEyMDIwOTgxODFDMTU2
RjAwRTE3ODM0IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMzMDkzNDUwMTMxNUI5NEQwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMzA5MzQ0ODEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2ll
TWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzA5MzQ1NjEzMTVCOTc1MDA5
N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTU3NDMs
NiArNTc4MCw3IEBACiAJCQkJNTEwMzJGMTkxODBGNzNCQjAwOTYxQkI3IC8qIFdlYlRvRGF0YWJh
c2VQcm9jZXNzQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFRTdBRDExMjgxNzk4
ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0UwRTQyNTE2OEI3QTI4MDA1N0U2NkEgLyogV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTRBMjAyMDlDMTgxQzE1QTAwMEUxNzgzNCAvKiBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJGNTg5RDEyQTg4Mzg4MDA2
Mjk1MzAgLyogV2ViUHJvdGVjdGlvblNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzk0ODQw
NDE1MEMzNTA2MDBFNTJDRTkgLyogV2ViUmVuZGVyTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxRTM1MUY2MTgwRjVDNzUwMEU1M0JFOSAvKiBXZWJJREJGYWN0b3J5QmFja2VuZC5oIGluIEhl
YWRlcnMgKi8sCkBAIC01ODI1LDYgKzU4NjMsNyBAQAogCQkJCUY2MkE3NjYyMTJCMUFCRUQwMDA1
RjFCNiAvKiBXS0RhdGFiYXNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc1RkEx
MjRGRjAyNzAwNjhGMjBBIC8qIFdLRGljdGlvbmFyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMw
MTdEMDcxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTRBMjAyMDk2MTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMTdEMDkxNjI2MEZGNDAwNzA1
NEY1IC8qIFdLRE9NRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMTdEMEIxNjI2MEZG
NDAwNzA1NEY1IC8qIFdLRE9NSW50ZXJuYWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAxN0Qw
RDE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01Ob2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTY1OTEs
NiArNjYzMCw4IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMg
PSAoCiAJCQkJQkM1RDI0QTExNkNDM0I5RTAwN0Q1NDYxIC8qIENoaWxkUHJvY2Vzc01haW4ubW0g
aW4gU291cmNlcyAqLywKKwkJCQk0QTIwMjA5RjE4MUMxNUM4MDBFMTc4MzQgLyogV2ViVXNlck1l
ZGlhQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBMjAyMEEzMTgxQzE1REUwMEUxNzgz
NCAvKiBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTY2NzIs
NiArNjcxMyw3IEBACiAJCQkJRTE1MTNDNjYxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vz
c1Byb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkE0QjBFMTU4NkEyMjQwMDkwQzlFOSAv
KiBDb2xvclNwYWNlRGF0YS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNkY5RkI3MTFFMTQwODUw
MERCMTM3MSAvKiBDb21tYW5kTGluZU1hYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0QTIwMjA5
NzE4MUMxNTZGMDBFMTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzAzMkRBQTEwRjQzN0QxMDA1OEMxNUEgLyogQ29ubmVjdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTMwRUFDNjExNUQ3REEzMDA1M0U5MzcgLyogQ29u
bmVjdGlvbk1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTM2MTgzRDE2MzEyNkRBMDBBOTlE
REUgLyogQ29ubmVjdGlvblN0YWNrLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNzAwNSw2ICs3MDQ3
LDcgQEAKIAkJCQkxQzhFMjgzNTEyNzVENzM4MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUNBOEI5MzYxMjdDNzc0RTAwNTc2QzJCIC8qIFdlYklu
c3BlY3RvclByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUNBOEI5NDUxMjdDODgyQTAw
NTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTRBMjAyMDlCMTgxQzE1QTAwMEUxNzgzNCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMwMzM3REQzMTI3QTJBMEUwMDhGRjRG
NCAvKiBXZWJLZXlib2FyZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlFMTA1MTMx
NUNDRkMwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDOUJBNTA0MTY5N0M0NTMwMEU0NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTcwNzEsNiArNzExNCw3IEBACiAJCQkJMzNGOUQ1QjkxMzEy
RjFFRTAwMEQ2ODNGIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyQ0ZOZXQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzMzNjc2NTUxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMzY3NjM1MTMw
Qzk5QjIwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTRBMjAyMDk1MTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzM2NzY1NzEz
MEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTBBRkZCOTE2NTQyMDQ4MDAxQkEwNUUgLyog
V2ViUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4
NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L01lZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzEw
NGEyM2RhZTdmZWE2NGZhMzRjNjVhZThiNjFkOGI5M2IxMjZkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFu
YWdlci5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2Fs
aWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdE1h
bmFnZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYlBh
Z2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVx
dWVzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVVzZXJNZWRpYVJlcXVlc3RJRCgpCit7CisgICAg
c3RhdGljIHVpbnQ2NF90IHVuaXF1ZVVzZXJNZWRpYVJlcXVlc3RJRCA9IDE7CisgICAgcmV0dXJu
IHVuaXF1ZVVzZXJNZWRpYVJlcXVlc3RJRCsrOworfQorCitVc2VyTWVkaWFSZXF1ZXN0TWFuYWdl
cjo6VXNlck1lZGlhUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSogcGFnZSkKKyAgICA6IG1fcGFnZShw
YWdlKQoreworfQorCisKK3ZvaWQgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OnJlcXVlc3RQZXJt
aXNzaW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCkKK3sK
KyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVVzZXJNZWRpYVJlcXVlc3RJRCgpOwor
CisgICAgbV91c2VyTWVkaWFSZXF1ZXN0VG9JRE1hcC5zZXQocmVxdWVzdC5nZXQoKSwgcmVxdWVz
dElEKTsKKyAgICBtX2lkVG9Vc2VyTWVkaWFSZXF1ZXN0TWFwLnNldChyZXF1ZXN0SUQsIHJlcXVl
c3QuZ2V0KCkpOworCisgICAgRnJhbWUqIGZyYW1lID0gcmVxdWVzdC0+ZnJhbWUoKTsKKworICAg
IFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVM
b2FkZXJDbGllbnQoZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpKTsKKyAgICBXZWJGcmFtZSogd2Vi
RnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJG
cmFtZSgpIDogMDsKKyAgICBBU1NFUlQod2ViRnJhbWUpOworCisgICAgU2VjdXJpdHlPcmlnaW4q
IG9yaWdpbiA9IGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpOworICAgIG1fcGFn
ZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lv
bkZvckZyYW1lKHJlcXVlc3RJRCwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgb3JpZ2luLT5kYXRhYmFz
ZUlkZW50aWZpZXIoKSkpOworCit9CisKK3ZvaWQgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OmNh
bmNlbFJlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCopCit7CisKK30KKwordm9pZCBV
c2VyTWVkaWFSZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbih1aW50NjRfdCB1c2VyTWVkaWFSZXF1ZXN0SUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBJ
RFRvVXNlck1lZGlhUmVxdWVzdE1hcDo6aXRlcmF0b3IgaXQgPSBtX2lkVG9Vc2VyTWVkaWFSZXF1
ZXN0TWFwLmZpbmQodXNlck1lZGlhUmVxdWVzdElEKTsKKyAgICBpZiAoaXQgPT0gbV9pZFRvVXNl
ck1lZGlhUmVxdWVzdE1hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViQ29yZTo6
VXNlck1lZGlhUmVxdWVzdCogcmVxdWVzdCA9IGl0LT52YWx1ZTsKKyAgICBpZiAoYWxsb3dlZCkK
KyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgIGVsc2UKKyAg
ICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CisKKyAgICBtX2lkVG9Vc2Vy
TWVkaWFSZXF1ZXN0TWFwLnJlbW92ZShpdCk7CisgICAgbV91c2VyTWVkaWFSZXF1ZXN0VG9JRE1h
cC5yZW1vdmUocmVxdWVzdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kZWU1ZDM0M2VmYzlkYjkxZTk1YjNlYWZlNzgxNjE0NTVjYTlmMGYyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0TWFuYWdlci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcl9oCisjZGVm
aW5lIFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyX2gKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBV
c2VyTWVkaWFSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFn
ZTsKKworY2xhc3MgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIgeworcHVibGljOgorICAgIGV4cGxp
Y2l0IFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UqKTsKKworICAgIHZvaWQgcmVxdWVz
dFBlcm1pc3Npb24oUGFzc1JlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pik7CisgICAg
dm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKTsKKworICAgIHZv
aWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVk
aWFSZXF1ZXN0SUQsIGJvb2wgYWxsb3dlZCk7CisKK3ByaXZhdGU6CisgICAgdHlwZWRlZiBIYXNo
TWFwPHVpbnQ2NF90LCBXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Kj4gSURUb1VzZXJNZWRpYVJl
cXVlc3RNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Qq
LCB1aW50NjRfdD4gVXNlck1lZGlhUmVxdWVzdFRvSURNYXA7CisgICAgSURUb1VzZXJNZWRpYVJl
cXVlc3RNYXAgbV9pZFRvVXNlck1lZGlhUmVxdWVzdE1hcDsKKyAgICBVc2VyTWVkaWFSZXF1ZXN0
VG9JRE1hcCBtX3VzZXJNZWRpYVJlcXVlc3RUb0lETWFwOworCisgICAgV2ViUGFnZSogbV9wYWdl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVc2VyTWVkaWFSZXF1
ZXN0TWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODkz
NzQ5YzI4NzQ1MjNhY2U1OGU3NzI0YWViNTZjM2QxNzE4NGNlOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xp
ZW50LmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxp
YSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQu
aCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJVc2VyTWVkaWFSZXF1
ZXN0TWFuYWdlci5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVXNlck1lZGlhQ2xpZW50
Ojp+V2ViVXNlck1lZGlhQ2xpZW50KCkKK3sKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6
OnBhZ2VEZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIFdlYlVzZXJN
ZWRpYUNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxXZWJDb3JlOjpVc2VyTWVk
aWFSZXF1ZXN0PiByZXF1ZXN0KQoreworICAgIG1fcGFnZS0+dXNlck1lZGlhUmVxdWVzdE1hbmFn
ZXIoKS5yZXF1ZXN0UGVybWlzc2lvbihyZXF1ZXN0KTsKK30KKwordm9pZCBXZWJVc2VyTWVkaWFD
bGllbnQ6OmNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCogcmVxdWVzdCkK
K3sKKyAgICBtX3BhZ2UtPnVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsUmVxdWVzdChy
ZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTFmYmFj
MTk4ZDBjZGM3YTI5ZWY0MDliOTA4YTIxYjhkZmY3NGRmMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50
LmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5M
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaWZuZGVmIFdlYlVzZXJNZWRpYUNsaWVudF9oCisjZGVmaW5lIFdlYlVzZXJNZWRpYUNsaWVu
dF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
TWVkaWFDbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisK
K2NsYXNzIFdlYlVzZXJNZWRpYUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpVc2VyTWVkaWFDbGll
bnQgeworcHVibGljOgorICAgIFdlYlVzZXJNZWRpYUNsaWVudChXZWJQYWdlKiBwYWdlKQorICAg
ICAgICA6IG1fcGFnZShwYWdlKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5XZWJVc2Vy
TWVkaWFDbGllbnQoKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3ll
ZCgpIE9WRVJSSURFOworCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFBhc3NS
ZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4pIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKSBPVkVSUklERTsK
KworICAgIFdlYlBhZ2UqIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFdlYlVzZXJNZWRpYUNs
aWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggNGZhNzY3OTU5MWIzOTA2YzA4ZTZmNWQwMTNmYzZhMWRmM2EwMDcwMS4uYWY3NDMzMmQw
ZjgyYWE3OGI5NzBjYTEzNTMwNTNlYzQwN2I3ZGYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtODQsNiArODQsNyBAQAogI2luY2x1ZGUg
IldlYlByZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJVc2VyTWVkaWFDbGll
bnQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9BcmNoaXZlUmVzb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgpAQCAt
Mjc5LDYgKzI4MCw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgICwgbV9tYXhpbXVtUmVu
ZGVyaW5nU3VwcHJlc3Npb25Ub2tlbigwKQogICAgICwgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3Io
RG9Ob3RQaW4pCiAgICAgLCBtX3VzZVRocmVhZGVkU2Nyb2xsaW5nKGZhbHNlKQorI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cih0aGlzKQorI2VuZGlmCiB7CiAgICAgQVNTRVJUKG1fcGFnZUlEKTsKICAgICAvLyBGSVhNRTog
VGhpcyBpcyBhIG5vbi1pZGVhbCBsb2NhdGlvbiBmb3IgdGhpcyBTZXR0aW5nIGFuZApAQCAtMzM4
LDYgKzM0MiwxMCBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICBXZWJDb3JlOjpwcm92aWRl
RGV2aWNlUHJveGltaXR5VG8obV9wYWdlLmdldCgpLCBuZXcgV2ViRGV2aWNlUHJveGltaXR5Q2xp
ZW50KHRoaXMpKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJD
b3JlOjpwcm92aWRlVXNlck1lZGlhVG8obV9wYWdlLmdldCgpLCBuZXcgV2ViVXNlck1lZGlhQ2xp
ZW50KHRoaXMpKTsKKyNlbmRpZgorCiAgICAgbV9wYWdlLT5zZXRDYW5TdGFydE1lZGlhKGZhbHNl
KTsKICAgICBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3cgPSBwYXJhbWV0ZXJzLm1heVN0YXJ0
TWVkaWFXaGVuSW5XaW5kb3c7CiAKQEAgLTI3ODAsNiArMjc4OCwxMyBAQCB2b2lkIFdlYlBhZ2U6
OmRpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBnZW9sb2Nh
dGlvbklELCBibwogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQordm9pZCBX
ZWJQYWdlOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCBib29sIGFsbG93ZWQpCit7CisgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1c2VyTWVk
aWFJRCwgYWxsb3dlZCk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTm90
aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29s
IGFsbG93ZWQpCiB7CiAgICAgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkt
PmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24obm90aWZpY2F0aW9uSUQs
IGFsbG93ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggMmRmMDFlN2I3MTJhYWUxNjBmMzA5YzRmYzQzN2U3MzQ4MGMzMThhZS4uM2EyOWE3M2Zl
OTU2YzMzNjI2OTc2MDA1MzViMGFiMTYxYThjZDA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiUGx1
Z2luLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJs
ZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiV2ViVW5kb1N0ZXAuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RpY3RhdGlvbkFsdGVybmF0aXZl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgpAQCAtMzgwLDYgKzM4MSwxMCBAQCBw
dWJsaWM6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXImIGdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgeyByZXR1cm4gbV9nZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgIFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyJiB1c2VyTWVkaWFSZXF1ZXN0TWFuYWdlcigp
IHsgcmV0dXJuIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CisjZW5kaWYK
KwogICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciogbm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCk7CiAKICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoKTsK
QEAgLTc4Myw3ICs3ODgsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGV4dGVuZFNhbmRib3hGb3JG
aWxlRnJvbU9wZW5QYW5lbChjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIHZvaWQgZGlkUmVjZWl2ZUdlb2xvY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvb2wgYWxsb3dl
ZCk7CisjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdm9pZCBkaWRSZWNl
aXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29s
IGFsbG93ZWQpOworI2VuZGlmCiAKICAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7CiAK
QEAgLTk5MSw2ICsxMDAyLDEwIEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6U2Nyb2xsUGlubmlu
Z0JlaGF2aW9yIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yOwogCiAgICAgYm9vbCBtX3VzZVRocmVh
ZGVkU2Nyb2xsaW5nOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBVc2VyTWVkaWFS
ZXF1ZXN0TWFuYWdlciBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKyNlbmRp
ZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGEwNmU0ZmQ4OTFk
Mjc4NDcyNDc0ZmJkY2E4M2UwM2M3MDgxZDA5NjQuLmNiMWFlNGI0NGU0NWYzY2YwZDhmNzhkYTli
ZDNhZDY2NTk2YTYyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yMDEsNiArMjAxLDExIEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIERpZFJlY2VpdmVHZW9sb2NhdGlvblBl
cm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBnZW9sb2NhdGlvbklELCBib29sIGFsbG93ZWQpCiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgIyBNZWRpYVN0cmVhbQorICAg
IERpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlh
SUQsIGJvb2wgYWxsb3dlZCkKKyNlbmRpZgorCiAgICAgIyBOb3RpZmljYXRpb24KICAgICBEaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklELCBib29sIGFsbG93ZWQpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCAwNDc2MTU4NjI0Y2M1NDExZjhjMTI4MDE1Y2ZhMWNiMzk3NmY1ZjY4
Li5lMTZmMmQ2MWY0YmIyOWUzYmVkYjRmNjQyYmQxYzJkMjQ3MmRhYmVhIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTMtMTAtMjYgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtXSzJdIFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93
LmM6IFNob3cgYSBwb3B1cCB3aGVuIHRoZSBwYWdlCisgICAgICAgIHJlcXVpcmVzIHVzZXIgcGVy
bWlzc2lvbiB0byBhY2Nlc3MgYXVkaW8vdmlkZW8gZGV2aWNlcy4KKyAgICAgICAgKHBlcm1pc3Np
b25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2spOgorICAgICAgICAoc2hvd0dlb2xvY2F0aW9uUmVxdWVz
dERpYWxvZyk6CisgICAgICAgIChzaG93VXNlck1lZGlhUmVxdWVzdERpYWxvZyk6CisgICAgICAg
ICh3ZWJWaWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOiBudWxsCisgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0IGhhbmRsZXJzLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRl
T3RoZXJQYWdlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdX
aXRoT3B0aW9ucyk6CisKIDIwMTMtMTAtMjUgIEFudG9uIE9iemhpcm92ICA8YS5vYnpoaXJvdkBz
YW1zdW5nLmNvbT4KIAogICAgICAgICBbR1RLXSBbV2ViS2l0Ml0gQ2FuSGFuZGxlUmVxdWVzdCBB
UEkgdGVzdCBmYWlscwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJX
aW5kb3cuYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKaW5kZXggM2Vm
ZDM5MGMyYzk3YTRlMzhlYzY3NWRmODVkNDVkNGFlNmNiOGZkYi4uNDJlYmY5MjNlY2ZhMjI3Yzky
NTg5ZmJlZTQzYmNiNTkyMWFjNDlmOSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3Rr
L0Jyb3dzZXJXaW5kb3cuYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRv
dy5jCkBAIC0yNDQsNyArMjQ0LDcgQEAgc3RhdGljIHZvaWQgYmFja0ZvcndhZGxpc3RDaGFuZ2Vk
KFdlYktpdEJhY2tGb3J3YXJkTGlzdCAqYmFja0ZvcndhZGxpc3QsIFdlYktpdEIKICAgICBicm93
c2VyV2luZG93VXBkYXRlTmF2aWdhdGlvbkFjdGlvbnMod2luZG93LCBiYWNrRm9yd2FkbGlzdCk7
CiB9CiAKLXN0YXRpYyB2b2lkIGdlb2xvY2F0aW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKEd0a0Rp
YWxvZyAqZGlhbG9nLCBnaW50IHJlc3BvbnNlLCBXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCAqcmVx
dWVzdCkKK3N0YXRpYyB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2soR3RrRGlh
bG9nICpkaWFsb2csIGdpbnQgcmVzcG9uc2UsIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1
ZXN0KQogewogICAgIHN3aXRjaCAocmVzcG9uc2UpIHsKICAgICBjYXNlIEdUS19SRVNQT05TRV9Z
RVM6CkBAIC0zOTYsMTEgKzM5Niw4IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJWaWV3RGVjaWRlUG9s
aWN5KFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIFdlYktpdFBvbGljeURlY2lzaW9uCiAgICAgfQog
fQogCi1zdGF0aWMgZ2Jvb2xlYW4gd2ViVmlld0RlY2lkZVBlcm1pc3Npb25SZXF1ZXN0KFdlYktp
dFdlYlZpZXcgKndlYlZpZXcsIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0LCBCcm93
c2VyV2luZG93ICp3aW5kb3cpCitzdGF0aWMgZ2Jvb2xlYW4gc2hvd0dlb2xvY2F0aW9uUmVxdWVz
dERpYWxvZyhXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCwgQnJvd3NlcldpbmRvdyAq
d2luZG93KQogewotICAgIGlmICghV0VCS0lUX0lTX0dFT0xPQ0FUSU9OX1BFUk1JU1NJT05fUkVR
VUVTVChyZXF1ZXN0KSkKLSAgICAgICAgcmV0dXJuIEZBTFNFOwotCiAgICAgR3RrV2lkZ2V0ICpk
aWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3KEdUS19XSU5ET1cod2luZG93KSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX0RJQUxPR19NT0RB
TCB8IEdUS19ESUFMT0dfREVTVFJPWV9XSVRIX1BBUkVOVCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX01FU1NBR0VfUVVFU1RJT04sCkBAIC00MDgs
MTIgKzQwNSwzOCBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViVmlld0RlY2lkZVBlcm1pc3Npb25SZXF1
ZXN0KFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIFdlYktpdFBlcgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR2VvbG9jYXRpb24gcmVxdWVzdCIpOwogCiAg
ICAgZ3RrX21lc3NhZ2VfZGlhbG9nX2Zvcm1hdF9zZWNvbmRhcnlfdGV4dChHVEtfTUVTU0FHRV9E
SUFMT0coZGlhbG9nKSwgIkFsbG93IGdlb2xvY2F0aW9uIHJlcXVlc3Q/Iik7Ci0gICAgZ19zaWdu
YWxfY29ubmVjdChkaWFsb2csICJyZXNwb25zZSIsIEdfQ0FMTEJBQ0soZ2VvbG9jYXRpb25SZXF1
ZXN0RGlhbG9nQ2FsbGJhY2spLCBnX29iamVjdF9yZWYocmVxdWVzdCkpOworICAgIGdfc2lnbmFs
X2Nvbm5lY3QoZGlhbG9nLCAicmVzcG9uc2UiLCBHX0NBTExCQUNLKHBlcm1pc3Npb25SZXF1ZXN0
RGlhbG9nQ2FsbGJhY2spLCBnX29iamVjdF9yZWYocmVxdWVzdCkpOworICAgIGd0a193aWRnZXRf
c2hvdyhkaWFsb2cpOworCisgICAgcmV0dXJuIFRSVUU7Cit9CisKK3N0YXRpYyBnYm9vbGVhbiBz
aG93VXNlck1lZGlhUmVxdWVzdERpYWxvZyhXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVz
dCwgQnJvd3NlcldpbmRvdyAqd2luZG93KQoreworICAgIEd0a1dpZGdldCAqZGlhbG9nID0gZ3Rr
X21lc3NhZ2VfZGlhbG9nX25ldyhHVEtfV0lORE9XKHdpbmRvdyksCisgICAgICAgIEdUS19ESUFM
T0dfTU9EQUwgfCBHVEtfRElBTE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsCisgICAgICAgIEdUS19N
RVNTQUdFX1FVRVNUSU9OLAorICAgICAgICBHVEtfQlVUVE9OU19ZRVNfTk8sCisgICAgICAgICJV
c2VyTWVkaWEgcmVxdWVzdCIpOworCisgICAgZ3RrX21lc3NhZ2VfZGlhbG9nX2Zvcm1hdF9zZWNv
bmRhcnlfdGV4dChHVEtfTUVTU0FHRV9ESUFMT0coZGlhbG9nKSwgIkFsbG93IHVzZXJtZWRpYSBy
ZXF1ZXN0PyIpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoZGlhbG9nLCAicmVzcG9uc2UiLCBHX0NB
TExCQUNLKHBlcm1pc3Npb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2spLCBnX29iamVjdF9yZWYocmVx
dWVzdCkpOwogICAgIGd0a193aWRnZXRfc2hvdyhkaWFsb2cpOwogCiAgICAgcmV0dXJuIFRSVUU7
CiB9CiAKK3N0YXRpYyBnYm9vbGVhbiB3ZWJWaWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3QoV2Vi
S2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3QsIEJy
b3dzZXJXaW5kb3cgKndpbmRvdykKK3sKKyAgICBpZiAoV0VCS0lUX0lTX0dFT0xPQ0FUSU9OX1BF
Uk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSkKKyAgICAgICAgcmV0dXJuIHNob3dHZW9sb2NhdGlv
blJlcXVlc3REaWFsb2cocmVxdWVzdCwgd2luZG93KTsKKworICAgIGlmIChXRUJLSVRfSVNfVVNF
Ul9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpCisgICAgICAgIHJldHVybiBzaG93
VXNlck1lZGlhUmVxdWVzdERpYWxvZyhyZXF1ZXN0LCB3aW5kb3cpOworCisgICAgcmV0dXJuIEZB
TFNFOworfQorCiBzdGF0aWMgdm9pZCB3ZWJWaWV3TW91c2VUYXJnZXRDaGFuZ2VkKFdlYktpdFdl
YlZpZXcgKndlYlZpZXcsIFdlYktpdEhpdFRlc3RSZXN1bHQgKmhpdFRlc3RSZXN1bHQsIGd1aW50
IG1vdXNlTW9kaWZpZXJzLCBCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7CiAgICAgaWYgKCF3ZWJr
aXRfaGl0X3Rlc3RfcmVzdWx0X2NvbnRleHRfaXNfbGluayhoaXRUZXN0UmVzdWx0KSkgewpkaWZm
IC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVy
Lm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpp
bmRleCA3ZTMwMDg2YTNhZmM1OWM0NzNkMDFhNmY2N2Y4ZmYwOTkwYTQyMGM2Li40ZjVlOWFiMjhj
Nzk4YjVlYWZlZjI1YTdlMDVmNDEzNTNhNWJjYTU0IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJv
d3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5pQnJv
d3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtNzI1LDYgKzcyNSw3IEBA
IC0gKHZvaWQpYXdha2VGcm9tTmliCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBpY2tlcgogICAg
ICAgICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gdW5hdmFpbGFibGVQbHVn
aW5CdXR0b25DbGlja2VkCisgICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoX3dlYlZp
ZXcucGFnZVJlZiwgJnVpQ2xpZW50KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggNTNmNjIwZjExN2ZhNjMxZjdlNmIwMzMxM2IyYTkxYTU5OTllOTRm
NC4uMWU4ZDZlNjhjNWM3M2VmMTY4OTY0OTQ3YmM2NzcyNWFhMjQxOTMzYiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTI1Miw2ICsyNTIsNyBAQCBXS1Bh
Z2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwg
V0tVUkxSZXF1ZXN0UmVmLCBXSwogICAgICAgICAwLCAvLyBzaG93Q29sb3JQaWNrZXIKICAgICAg
ICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIHVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZAorICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG5ld1BhZ2Us
ICZvdGhlclBhZ2VVSUNsaWVudCk7CiAKQEAgLTQ1NCw2ICs0NTUsNyBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoV0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMp
CiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBpY2tlcgogICAgICAgICAwLCAvLyBoaWRlQ29sb3JQ
aWNrZXIKICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkLAorICAgICAgICAw
LCAvLyBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAogICAgIH07CiAg
ICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNs
aWVudCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215373</attachid>
            <date>2013-10-29 03:22:43 -0700</date>
            <delta_ts>2013-10-29 03:29:01 -0700</delta_ts>
            <desc>wk2 usermediaclient</desc>
            <filename>wk2-usermediaclient.patch</filename>
            <type>text/plain</type>
            <size>86334</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBmY2U0YzQ3MzMzYWIyNDMyZWI3NDAwZjI4YTI0ZGM3Y2E0MzRjZjY4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDI4IE9jdCAyMDEzIDA5OjI4OjMxICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
d2syIHVzZXJtZWRpYWNsaWVudAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAxMyArKysKIC4uLi9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwICAgICAgIHwgIDExICsrKwogLi4uL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggfCAgIDQgKwogU291cmNlL1dlYktpdDIvQ01h
a2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKystCiBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKysrKysrKysrKysr
KysrKysrCiBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtICAgICAgICAgICAg
ICAgICB8ICAxMyArKysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCAgICAg
ICAgICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMu
Y3BwICAgICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFp
dHMuaCAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmggICAgICAgICAgICAgICAgICB8ICAgMSArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0LmggICAgICAgICB8ICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmggICAgICAgICAgICB8ICAgNyArLQogLi4uL0FQSS9DL1dLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuY3BwICAgICAgICAgfCAgNDEgKysrKysrKysKIC4uLi9VSVByb2Nl
c3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIHwgIDM4ICsrKysrKysrCiAu
Li4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAgICB8ICAgOCAr
KwogLi4uL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwICAgfCAx
MDMgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oICAgICB8ICA2NCArKysrKysrKysrKysrCiAuLi4vZ3RrL1dlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oICB8ICAyOCArKysrKysKIC4uLi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IHwgIDE4ICsrKysKIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaCAgICAgICAgIHwgICAxICsK
IC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgICAgIHwgIDY5
ICsrKysrKysrKysrKysrCiAuLi4vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaCAgICAgICB8ICA1MCArKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwICB8ICA0OCArKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAgICB8ICA1MSArKysrKysrKysrCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCAgICAgICAgICB8ICAxMyArKysK
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAgICAgIHwgICA0
ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gIHwg
ICA1ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwICAgICAgICAg
ICB8ICAxMCArKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmggICAgICAg
ICAgICAgfCAgIDIgKwogLi4uL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94
eU1hYy5tbSAgfCAgIDEgKwogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qICAgfCAgNDQgKysrKysrKysrCiAuLi4vTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVx
dWVzdE1hbmFnZXIuY3BwICAgICAgICB8ICA5OCArKysrKysrKysrKysrKysrKysrKwogLi4uL01l
ZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmggICAgICAgICAgfCAgNTEgKysrKysr
KysrKwogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgICAgICAgICAg
fCAgNTUgKysrKysrKysrKysKIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJN
ZWRpYUNsaWVudC5oIHwgIDUzICsrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgICAgICB8ICAxNSArKysKIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggICAgICAgIHwgIDE1ICsrKwogLi4uL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gfCAgIDUgKwogVG9vbHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTggKysrKwogVG9vbHMv
TWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYyAgICAgICAgICAgICAgfCAgMzUgKysrKyst
LQogVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gfCAg
IDEgKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgICAgICAgICAg
fCAgIDIgKwogNDMgZmlsZXMgY2hhbmdlZCwgMTEwMyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlv
bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5o
CiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1h
bmFnZXIuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9N
ZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGll
bnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNDMwYWFmLi5l
M2FiZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMTAtMjggIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRp
YUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6IEFkZGVk
IGRvY3VtZW50IGFuZAorICAgICAgICBmcmFtZSBhY2Nlc3NvcnMsIG5lZWRlZCBieSB0aGUgVXNl
ck1lZGlhUmVxdWVzdE1hbmFnZXIgb2YgdGhlIFdlYlByb2Nlc3MuCisgICAgICAgIChXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0Ojpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVk
aWFSZXF1ZXN0OjpmcmFtZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0Lmg6CisKIDIwMTMtMTAtMjIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtXSzJdW0dUS10gZW5hYmxlLW1lZGlhLXN0cmVhbSBTZXR0
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmNwcAppbmRleCBkYzBiNTIwLi5iNGIxZTE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAK
QEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzSW1wbC5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFt
LmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50ZXIuaCIKQEAgLTEwMCw2ICsxMDEsMTYgQEAg
VXNlck1lZGlhUmVxdWVzdDo6flVzZXJNZWRpYVJlcXVlc3QoKQogewogfQogCitEb2N1bWVudCog
VXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiB0b0RvY3Vt
ZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Cit9CisKK0ZyYW1lKiBVc2VyTWVkaWFSZXF1
ZXN0OjpmcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgp
LT5mcmFtZSgpIDogbnVsbHB0cjsKK30KKwogU2VjdXJpdHlPcmlnaW4qIFVzZXJNZWRpYVJlcXVl
c3Q6OnNlY3VyaXR5T3JpZ2luKCkgY29uc3QKIHsKICAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuaAppbmRleCAzY2ZlZWY3Li5mZjJkNmViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAt
NDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERpY3Rpb25hcnk7CiBj
bGFzcyBEb2N1bWVudDsKK2NsYXNzIEZyYW1lOwogY2xhc3MgTWVkaWFDb25zdHJhaW50czsKIGNs
YXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIGNsYXNzIFVzZXJNZWRpYUNvbnRyb2xsZXI7CkBA
IC01OSw2ICs2MCw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxVc2VyTWVkaWFS
ZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFVzZXJNZWRpYUNvbnRyb2xs
ZXIqLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJN
ZWRpYVN1Y2Nlc3NDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JD
YWxsYmFjaz4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB+VXNlck1lZGlhUmVxdWVzdCgpOwogCisg
ICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CisgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7
CisKICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKIAogICAgIHZv
aWQgc3RhcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggMjg2NTIzZC4uNDYxNWVjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKQEAgLTQzLDYgKzQzLDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9E
SVJFQ1RPUklFUwogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0ZpbGVBUEkiCiAgICAg
IiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvRnVsbFNjcmVlbiIKICAgICAiJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9NZWRpYVN0cmVhbSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9OZXR3b3JrSW5m
byIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UiCiAgICAgIiR7
V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUiCkBAIC0yOTMsNiArMjk0LDEw
IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1l
ci5jcHAKICAgICBVSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNz
L1RleHRDaGVja2VyQ29tcGxldGlvbi5jcHAKKyAgICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKyAgICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwCiAgICAg
VUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCiAgICAgVUlQcm9j
ZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAKQEAgLTM1Miw4ICszNTcsOCBAQCBzZXQoV2ViS2l0
Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIu
Y3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcAot
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdFJlZi5jcHAKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS0JhY2tGb3J3YXJkTGlzdFJlZi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5
TWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5U3RhdHVzLmNwcAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwCkBAIC0zOTAs
NiArMzk1LDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1By
b3RlY3Rpb25TcGFjZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFu
YWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5jcHAKKyAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKyAgICBVSVByb2Nl
c3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLVmlicmF0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmli
dXRlcy5jcHAKIApAQCAtNDg5LDYgKzQ5Niw5IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKIAogICAg
IFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5jcHAKIAorICAgIFdl
YlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwCisgICAgV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oCisKICAgICBXZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogICAgIFdlYlByb2Nl
c3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtNTQwLDYgKzU1MCw4IEBAIHNldChXZWJL
aXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVu
dC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKKyAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKKyAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCiAgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGllbnQuY3BwCiAKICAgICBXZWJQcm9jZXNz
L1dlYlBhZ2UvRGVjb2RlckFkYXB0ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2E5ZWMzOC4uNTIzOTA3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEzLTEwLTI4ICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2VyTWVkaWFDbGll
bnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3VwcG9ydCBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgaW4gV2ViS2l0Mi4gSXQn
cworICAgICAgICBpbXBsZW1lbnRlZCBzaW1pbGFyaWx5IHRvIHRoZSBHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0CisgICAgICAgIHN1cHBvcnQuIFdoZW4gdGhlIFdlYlBhZ2UgcmVxdWlyZXMg
dGhpcyBwZXJtaXNzaW9uIGl0IHNlbmRzIGEKKyAgICAgICAgbWVzc2FnZSB0byB0aGUgVUkgcHJv
Y2VzcyB3aGljaCBhdCBzb21lIHBvaW50IGdyYW50cyBvciBkZW5pZXMgdGhlCisgICAgICAgIHBl
cm1pc3Npb24gYW5kIHNlbmQgdGhlIHJlc3VsdCB0byB0aGUgV2ViUHJvY2Vzcy4KKworICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOiBOZXcgTWVkaWFTdHJlYW0gZGlyZWN0b3J5LgorICAgICAgICAq
IEdOVW1ha2VmaWxlLmxpc3QuYW06IE5ldyBmaWxlcyBpbiB0aGUgYnVpbGQhCisgICAgICAgICog
U2hhcmVkL0FQSS9jL1dLQmFzZS5oOiBOZXcgdHlwZSBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuCisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOiBEaXR0by4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6IEZvcndhcmQtZGVjbGFyZSB0aGUgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
Lmg6IE5ldyBEZWNpZGVQb2xpY3kgaGFuZGxlciBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuY3BwOiBBZGRlZCwgQyBBUEkKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgdGhlIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LgorICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdEdldFR5cGVJRCk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxs
b3cpOgorICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcDogRGVjaWRl
UG9saWN5IGhhbmRsZXIKKyAgICAgICAgaW1wbGVtZW50YXRpb24gZm9yIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0LgorICAgICAgICAoZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QpOgorICAgICAgICAoYXR0YWNoVUlDbGllbnRUb1ZpZXcpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRk
ZWQsCisgICAgICAgIFdlYktpdEdUSyBBUEkgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LCB2ZXJ5IHNpbWlsYXIgdG8gdGhlCisgICAgICAgIG9uZSB1c2VkIGZvciBHZW9sb2NhdGlvbiwK
KyAgICAgICAgKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cpOgorICAgICAg
ICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KToKKyAgICAgICAgKHdlYmtp
dF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQpOgorICAgICAgICAod2Via2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3REaXNwb3NlKToKKyAgICAgICAgKHdlYmtpdF91c2VyX21l
ZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUu
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNl
Y3Rpb25zLnR4dDogRXhwb3NlIG5ldyBBUEkKKyAgICAgICAgaW4gZG9jdW1lbnRhdGlvbi4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmg6IEV4cG9zZSBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCBBUEkuCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDogQWRkZWQsCisgICAgICAgIG1hbmFnZXIgc3Rvcmlu
ZyBwZW5kaW5nIFVzZXJNZWRpYVBlcm1pc3Npb24gcmVxdWVzdHMuCisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVx
dWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
Y3BwOiBBZGRlZCwgcHJveHkKKyAgICAgICAgb2JqZWN0IGZvciB0aGUgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RUeXBlLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3cpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNy
ZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKTogRGVmZXIKKyAg
ICAgICAgVXNlclBlcm1pc3Npb25SZXF1ZXN0IHRvIHRoZSBVSUNsaWVudC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbjogTmV3IG1lc3NhZ2UgdG8gaGFuZGxlIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0cy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QpOgorICAgICAgICBEZWZlciBwZXJtaXNzaW9uIHJlcXVlc3QgdG8gQVBJQ2xpZW50Lgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZCwKKyAgICAgICAg
V2ViUHJvY2VzcyBzaWRlIG9mIHRoZSBVc2VyUmVxdWVzdE1hbmFnZXIsIGtlZXBpbmcgdHJhY2sg
b2YgZWFjaAorICAgICAgICBwZXJtaXNzaW9uIHJlcXVlc3QuCisgICAgICAgIChXZWJLaXQ6Omdl
bmVyYXRlVXNlck1lZGlhUmVxdWVzdElEKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUmVx
dWVzdE1hbmFnZXI6OlVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0TWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHA6IEFkZGVkLAorICAgICAgICBXZWJQcm9jZXNz
IGltcGxlbWVudGF0aW9uIG9mIHRoZSBXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQuCisgICAgICAg
IChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6fldlYlVzZXJNZWRpYUNsaWVudCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6cGFnZURlc3Ryb3llZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVzZXJNZWRpYUNsaWVudCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpXZWJQYWdlKTogQ3JlYXRlIHRoZQorICAgICAgICBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIgYW5kIHJlZ2lzdGVyIHRoZSBVc2VyTWVkaWFDbGllbnQKKyAg
ICAgICAgdG8gdGhlIHBhZ2UuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVV
c2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOiBEaXNwYXRjaAorICAgICAgICBkZWNpc2lvbiB0
byBtYW5hZ2VyLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogTmV3IE1lc3NhZ2UgdG8g
aGFuZGxlCisgICAgICAgIHBlcm1pc3Npb24gZGVjaXNpb24gcmVzdWx0IGZyb20gdGhlIFVJIHBy
b2Nlc3MuCisKIDIwMTMtMTAtMjIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtXSzJdW0dUS10gZW5hYmxlLW1lZGlhLXN0cmVhbSBTZXR0aW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQy
L0dOVW1ha2VmaWxlLmFtCmluZGV4IGI3ZTA2NmQuLjg0ZGJlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
LmFtCkBAIC0xNDUsNiArMTQ1LDcgQEAgbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpP
Ul9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9DUFAKIAktSSQoc3Jj
ZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIgXAogCS1J
JChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbiBcCiAJLUkkKHNy
Y2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCisJLUkkKHNyY2Rp
cikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSBcCiAJLUkkKHNyY2Rpcikv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlIFwKQEAgLTM4Myw2ICszODQsNyBAQCB2cGF0aCAl
Lm1lc3NhZ2VzLmluID0gXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Db29raWVzIFwKIAkkKFdl
YktpdDIpL1dlYlByb2Nlc3MvRnVsbFNjcmVlbiBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0dl
b2xvY2F0aW9uIFwKKwkkKFdlYktpdDIpL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0gXAogCSQoV2Vi
S2l0MikvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9N
ZWRpYUNhY2hlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvTmV0d29yayBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCAxNjRiZWIwLi45MjY2ZWY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTY2OSw2ICs2NjksOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNw
cCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIuaCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIuY3BwIFwKKwlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5j
cHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpYnJhdGlv
bi5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpYnJhdGlvbi5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9XS1JldGFpblB0ci5oIFwKQEAgLTc5
Miw2ICs3OTQsOSBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmggXAogCVNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmgg
XAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmggXAog
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFZlcnNpb24uY3BwIFwKIAlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmggXAogCVNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwIFwKQEAg
LTkxMiw2ICs5MTcsMTAgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVGV4dENoZWNrZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRD
aGVja2VyQ29tcGxldGlvbi5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNr
ZXJDb21wbGV0aW9uLmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggXAorCVNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBcCisJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
aCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIFwK
QEAgLTExNDgsNiArMTE1Nyw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29k
ZXJzLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNh
Y2hlTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9X
ZWJNZWRpYUNhY2hlTWFuYWdlci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlh
U3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmNwcCBcCisJU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9N
YW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIFwKQEAgLTEyNDIsNiArMTI1Myw4
IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5oIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAg
XAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlh
Q2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
VmlicmF0aW9uQ2xpZW50LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJWaWJyYXRpb25DbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RlY29kZXJBZGFwdGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tC
YXNlLmgKaW5kZXggMTk3YWQ5Zi4uMTUyNjljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S0Jhc2UuaApAQCAtMTI2LDYgKzEyNiw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJlZmVyZW5jZXMqIFdLUHJlZmVyZW5jZXNSZWY7CiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Byb3RlY3Rpb25TcGFjZSogV0tQcm90ZWN0aW9u
U3BhY2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1RleHRDaGVja2VyKiBXS1Rl
eHRDaGVja2VyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlicmF0aW9uKiBXS1ZpYnJhdGlvblJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlld3BvcnRBdHRyaWJ1dGVzKiBXS1ZpZXdwb3J0QXR0cmli
dXRlc1JlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRy
YWl0cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcAppbmRl
eCA5NTJhZDI2Li4xNzc0ODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
Q2xpZW50VHJhaXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJh
aXRzLmNwcApAQCAtNzQsNiArNzQsNyBAQCBjb25zdCBzaXplX3QgQVBJQ2xpZW50VHJhaXRzPFdL
UGFnZUxvYWRlckNsaWVudD46OmludGVyZmFjZVNpemVzQnlWZXJzaW9uW10gPSB7CiBjb25zdCBz
aXplX3QgQVBJQ2xpZW50VHJhaXRzPFdLUGFnZVVJQ2xpZW50Pjo6aW50ZXJmYWNlU2l6ZXNCeVZl
cnNpb25bXSA9IHsKICAgICBvZmZzZXRvZihXS1BhZ2VVSUNsaWVudCwgY3JlYXRlTmV3UGFnZSks
CiAgICAgb2Zmc2V0b2YoV0tQYWdlVUlDbGllbnQsIHNob3dDb2xvclBpY2tlciksCisgICAgb2Zm
c2V0b2YoV0tQYWdlVUlDbGllbnQsIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KSwKICAgICBzaXplb2YoV0tQYWdlVUlDbGllbnQpCiB9OwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oCmluZGV4IGRmM2FhYmIuLjBmMDZhZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmgKQEAgLTY4LDcgKzY4LDcgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLUGFnZUxvYWRlckNsaWVudD4gewogfTsK
IAogdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLUGFnZVVJQ2xpZW50PiB7Ci0g
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbnRlcmZhY2VTaXplc0J5VmVyc2lvblszXTsKKyAgICBz
dGF0aWMgY29uc3Qgc2l6ZV90IGludGVyZmFjZVNpemVzQnlWZXJzaW9uWzRdOwogfTsKIAogdGVt
cGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFnZUZvcm1DbGllbnQ+IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCA3MDMyMWI5Li43Yjg3YzM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC0xMDksNiArMTA5LDcgQEAgcHVibGljOgogICAgICAg
ICBUeXBlUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLAogICAgICAgICBUeXBlUHJlZmVyZW5jZXMsCiAg
ICAgICAgIFR5cGVUZXh0Q2hlY2tlciwKKyAgICAgICAgVHlwZVVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LAogICAgICAgICBUeXBlVmlicmF0aW9uLAogICAgICAgICBUeXBlVmlld3BvcnRBdHRy
aWJ1dGVzLAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
UElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5k
ZXggZGQ4OGQ3YS4uNzMyZGVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaApAQCAtNTcsNiArNTcsNyBAQCBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXI7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdFByb3h5OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7Citj
bGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW07CkBAIC0xNDMsNiArMTQ0LDcgQEAgV0tfQUREX0FQSV9NQVBQ
SU5HKFdLUHJvdGVjdGlvblNwYWNlUmVmLCBXZWJQcm90ZWN0aW9uU3BhY2UpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tSZW5kZXJMYXllclJlZiwgV2ViUmVuZGVyTGF5ZXIpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tSZW5kZXJPYmplY3RSZWYsIFdlYlJlbmRlck9iamVjdCkKIFdLX0FERF9BUElfTUFQ
UElORyhXS1RleHRDaGVja2VyUmVmLCBXZWJUZXh0Q2hlY2tlcikKK1dLX0FERF9BUElfTUFQUElO
RyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlicmF0aW9uUmVmLCBXZWJWaWJyYXRp
b25Qcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiwgV2Vi
Vmlld3BvcnRBdHRyaWJ1dGVzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSW5zcGVjdG9yUmVmLCBX
ZWJJbnNwZWN0b3JQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaApp
bmRleCA4NTYxMWVkLi5hYWZkMDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5oCkBAIC0yMjEsNiArMjIxLDcgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9s
aWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWcKIHR5cGVk
ZWYgdm9pZCAoKldLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwg
V0tTdHJpbmdSZWYgaW5pdGlhbENvbG9yLCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYg
bGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdl
SGlkZUNvbG9yUGlja2VyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNv
biBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9E
aWN0aW9uYXJ5LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFn
ZURlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFn
ZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwg
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbyk7CiAKIC8vIERlcHJlY2F0ZWQgICAgCiB0eXBlZGVmIFdLUGFnZVJl
ZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShX
S1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJz
IG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKTsKQEAgLTI4MywxMCArMjg0LDE0IEBAIHN0cnVjdCBXS1BhZ2VVSUNsaWVudCB7
CiAgICAgV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaG93Q29sb3JQaWNrZXI7CiAgICAgV0tQYWdlSGlkZUNvbG9yUGlj
a2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlQ29s
b3JQaWNrZXI7CiAgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQ7
CisKKyAgICAvLyBWZXJzaW9uIDMKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworCiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGll
bnQgV0tQYWdlVUlDbGllbnQ7CiAKLWVudW0geyBrV0tQYWdlVUlDbGllbnRDdXJyZW50VmVyc2lv
biA9IDIgfTsKK2VudW0geyBrV0tQYWdlVUlDbGllbnRDdXJyZW50VmVyc2lvbiA9IDMgfTsKIAog
Ly8gRmluZCBjbGllbnQuCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRGaW5kU3RyaW5nQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBzdHJpbmcsIHVuc2lnbmVkIG1hdGNoQ291
bnQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0YTBkM2YKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBJZ2FsaWEgUy5MCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuaCIKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKKworV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpCit7
CisgICAgcmV0dXJuIHRvQVBJKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OkFQSVR5
cGUpOworfQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQor
eworICAgIHJldHVybiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5hbGxv
dygpOworfQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit7
CisgICAgcmV0dXJuIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmRlbnko
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjg3OGMzM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsMzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTAorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVz
CitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpOworCitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk7CitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYK
KworI2VuZGlmIC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaCAqLwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwCmluZGV4
IDA4OTliODUuLjc0M2YyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJX
ZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0R2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRl
LmgiCisjaW5jbHVkZSAiV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2ViVmlld1ByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzUHJpdmF0
ZS5oIgpAQCAtMTUzLDYgKzE1NCwxMiBAQCBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgVwogICAgIHdl
YmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QoV0VCS0lUX1dFQl9WSUVXKGNsaWVudElu
Zm8pLCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNUKGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuZ2V0KCkpKTsKIH0KIAorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVm
LCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCit7CisgICAgR1JlZlB0cjxXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dD4gdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RDcmVhdGUodG9JbXBsKHJlcXVlc3QpKSk7CisgICAgd2Via2l0V2Vi
Vmlld01ha2VQZXJtaXNzaW9uUmVxdWVzdChXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbyksIFdF
QktJVF9QRVJNSVNTSU9OX1JFUVVFU1QodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuZ2V0KCkp
KTsKK30KKwogc3RhdGljIHZvaWQgcnVuTW9kYWwoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCiB7CiAgICAgd2Via2l0V2ViVmlld1J1bkFzTW9kYWwoV0VCS0lUX1dFQl9W
SUVXKGNsaWVudEluZm8pKTsKQEAgLTIwOSw2ICsyMTYsNyBAQCB2b2lkIGF0dGFjaFVJQ2xpZW50
VG9WaWV3KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBp
Y2tlcgogICAgICAgICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gcGx1Z2lu
TG9hZFBvbGljeQorICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdAogICAgIH07CiAgICAgV0tQYWdlUmVmIHdrUGFnZSA9IHRvQVBJKHdlYmtpdFdlYlZpZXdC
YXNlR2V0UGFnZShXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3ZWJWaWV3KSkpOwogICAgIFdLUGFnZVNl
dFBhZ2VVSUNsaWVudCh3a1BhZ2UsICZ3a1VJQ2xpZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
ZDNiY2FjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsMTAzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5j
bHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorI2luY2x1ZGUgIldlYktp
dFBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcml2YXRlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKKy8qKgorICog
U0VDVElPTjogV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKKyAqIEBTaG9ydF9kZXNj
cmlwdGlvbjogQSBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIGFjY2Vzc2luZyB1c2VyJ3MgYXVkaW8v
dmlkZW8gZGV2aWNlcy4KKyAqIEBUaXRsZTogV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QKKyAqIEBTZWVfYWxzbzogI1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0LCAjV2ViS2l0V2ViVmll
dworICoKKyAqIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IHJlcHJlc2VudHMgYSBy
ZXF1ZXN0IGZvcgorICogcGVybWlzc2lvbiB0byBkZWNpZGUgd2hldGhlciBXZWJLaXQgc2hvdWxk
IGJlIGFsbG93ZWQgdG8gYWNjZXNzIHRoZSB1c2VyJ3MKKyAqIGF1ZGlvIGFuZCB2aWRlbyBzb3Vy
Y2UgZGV2aWNlcyB3aGVuIHJlcXVlc3RlZCB0aHJvdWdodCB0aGUgZ2V0VXNlck1lZGlhIEFQSS4K
KyAqLworCitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9p
bml0KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2UqKTsKKworc3RydWN0IF9XZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgeworICAgIFJlZlB0cjxVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5PiByZXF1ZXN0OworICAgIGJvb2wgbWFkZURlY2lzaW9uOworfTsK
KworV0VCS0lUX0RFRklORV9UWVBFX1dJVEhfQ09ERSgKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCwgd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0LCBHX1RZ
UEVfT0JKRUNULAorICAgIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShXRUJLSVRfVFlQRV9QRVJNSVNT
SU9OX1JFUVVFU1QsIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQpKQor
CitzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdlYktp
dFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIEFTU0VSVChXRUJLSVRfSVNfVVNF
Ul9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX1VTRVJfTUVESUFfUEVS
TUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpLT5wcml2OworCisgICAgLy8gT25seSBvbmUgZGVjaXNp
b24gYXQgYSB0aW1lLgorICAgIGlmIChwcml2LT5tYWRlRGVjaXNpb24pCisgICAgICAgIHJldHVy
bjsKKworICAgIHByaXYtPnJlcXVlc3QtPmFsbG93KCk7CisgICAgcHJpdi0+bWFkZURlY2lzaW9u
ID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3REZW55KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIEFTU0VSVChX
RUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisgICAg
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX1VT
RVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpLT5wcml2OworCisgICAgLy8gT25s
eSBvbmUgZGVjaXNpb24gYXQgYSB0aW1lLgorICAgIGlmIChwcml2LT5tYWRlRGVjaXNpb24pCisg
ICAgICAgIHJldHVybjsKKworICAgIHByaXYtPnJlcXVlc3QtPmRlbnkoKTsKKyAgICBwcml2LT5t
YWRlRGVjaXNpb24gPSB0cnVlOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlzc2lvbl9y
ZXF1ZXN0X2ludGVyZmFjZV9pbml0KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2UqIGlmYWNl
KQoreworICAgIGlmYWNlLT5hbGxvdyA9IHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
QWxsb3c7CisgICAgaWZhY2UtPmRlbnkgPSB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dERlbnk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGlzcG9zZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLy8gRGVmYXVsdCBiZWhhdmlvdXIgd2hl
biBubyBkZWNpc2lvbiBoYXMgYmVlbiBtYWRlIGlzIGRlbnlpbmcgdGhlIHJlcXVlc3QuCisgICAg
d2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdFQktJVF9QRVJNSVNTSU9OX1JF
UVVFU1Qob2JqZWN0KSk7CisgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X3VzZXJfbWVkaWFfcGVy
bWlzc2lvbl9yZXF1ZXN0X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKK30KKworc3Rh
dGljIHZvaWQgd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2NsYXNzX2luaXQo
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFzcyoga2xhc3MpCit7CisgICAgR09i
amVjdENsYXNzKiBvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKyAgICBvYmpl
Y3RDbGFzcy0+ZGlzcG9zZSA9IHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGlzcG9z
ZTsKK30KKworV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QqIHdlYmtpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkq
IHJlcXVlc3QpCit7CisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QqIHVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFV
RVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVT
VCwgTlVMTCkpOworICAgIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LT5wcml2LT5yZXF1ZXN0
ID0gcmVxdWVzdDsKKyAgICByZXR1cm4gdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4wNWM4MDdiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApAQCAt
MCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAh
ZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxB
VElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBk
aXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdF9oCisjZGVmaW5lIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gKKworI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+
CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1J
U1NJT05fUkVRVUVTVCAgICAgICAgICAgICh3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3Jl
cXVlc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9S
RVFVRVNUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiks
IFdFQktJVF9UWVBFX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJ
T05fUkVRVUVTVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFz
cyksICBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19VU0VSX01F
RElBX1BFUk1JU1NJT05fUkVRVUVTVChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5D
RV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCkp
CisjZGVmaW5lIFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUyhr
bGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9VU0VS
X01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BF
Uk1JU1NJT05fUkVRVUVTVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xB
U1MoKG9iaiksICBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCAgICAgICAgV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3Q7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RDbGFzcyAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlIFdl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAv
KjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2
b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgq
X3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtp
dF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisKK0dfRU5E
X0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTlhZDJlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgKQEAgLTAsMCArMSwyOCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZV9oCisjZGVmaW5lIFdlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZV9oCisKKyNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCisjaW5j
bHVkZSAiV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCIKKworV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QqIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3Jl
YXRlKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSopOworCisjZW5kaWYg
Ly8gV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9u
cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
c2VjdGlvbnMudHh0CmluZGV4IDVhNmNiNDMuLjk0MzcxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rp
b25zLnR4dApAQCAtNTE1LDYgKzUxNSwyNCBAQCB3ZWJraXRfZ2VvbG9jYXRpb25fcGVybWlzc2lv
bl9yZXF1ZXN0X2dldF90eXBlCiA8L1NFQ1RJT04+CiAKIDxTRUNUSU9OPgorPEZJTEU+V2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q8L0ZJTEU+CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdAorCis8U1VCU0VDVElPTiBTdGFuZGFyZD4KK1dlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0Q2xhc3MKK1dFQktJVF9UWVBFX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFV
RVNUCitXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9JU19VU0VS
X01FRElBX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9S
RVFVRVNUX0NMQVNTCitXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xB
U1MKK1dFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9HRVRfQ0xBU1MKKworPFNV
QlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZQord2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCis8L1NFQ1RJ
T04+CisKKzxTRUNUSU9OPgogPEZJTEU+V2ViS2l0UG9saWN5RGVjaXNpb248L0ZJTEU+CiBXZWJL
aXRQb2xpY3lEZWNpc2lvbgogd2Via2l0X3BvbGljeV9kZWNpc2lvbl9kb3dubG9hZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCmluZGV4IDhkODIxOTkuLjYyMDE1
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKQEAgLTU2
LDYgKzU2LDcgQEAKICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlcXVlc3QuaD4KICNpbmNs
dWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJL
aXRVUklTY2hlbWVSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VmVyc2lvbi5oPgog
I2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViQ29udGV4dC5oPgogI2luY2x1ZGUgPHdlYmtpdDIv
V2ViS2l0V2ViSW5zcGVjdG9yLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODNiYWRlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiV2ViUGFnZU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Byb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHko
V2ViUGFnZVByb3h5KiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1ZXN0cygp
Cit7CisgICAgUGVuZGluZ1JlcXVlc3RNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wZW5kaW5n
UmVxdWVzdHMuYmVnaW4oKTsKKyAgICBQZW5kaW5nUmVxdWVzdE1hcDo6Y29uc3RfaXRlcmF0b3Ig
ZW5kID0gbV9wZW5kaW5nUmVxdWVzdHMuZW5kKCk7CisgICAgZm9yICg7IGl0ICE9IGVuZDsgKytp
dCkKKyAgICAgICAgaXQtPnZhbHVlLT5pbnZhbGlkYXRlKCk7CisKKyAgICBtX3BlbmRpbmdSZXF1
ZXN0cy5jbGVhcigpOworfQorCitQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1
ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYVJlcXVlc3RJRCkKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eT4gcmVxdWVzdCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6OmNyZWF0ZSgqdGhpcywgdXNlck1lZGlhUmVxdWVzdElEKTsKKyAgICBtX3BlbmRp
bmdSZXF1ZXN0cy5hZGQodXNlck1lZGlhUmVxdWVzdElELCByZXF1ZXN0LmdldCgpKTsKKyAgICBy
ZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24o
dWludDY0X3QgdXNlck1lZGlhUmVxdWVzdElELCBib29sIGFsbG93ZWQpCit7CisgICAgaWYgKCFt
X3BhZ2UtPmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGVuZGluZ1JlcXVlc3RN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9wZW5kaW5nUmVxdWVzdHMuZmluZCh1c2VyTWVkaWFSZXF1ZXN0
SUQpOworICAgIGlmIChpdCA9PSBtX3BlbmRpbmdSZXF1ZXN0cy5lbmQoKSkKKyAgICAgICAgcmV0
dXJuOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbih1c2VyTWVkaWFSZXF1ZXN0SUQsIGFsbG93ZWQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOworI2VuZGlmCisKKyAgICBtX3BlbmRpbmdS
ZXF1ZXN0cy5yZW1vdmUoaXQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOGJiZGFmZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsNTAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Kik7CisKKyAgICB2b2lkIGlu
dmFsaWRhdGVSZXF1ZXN0cygpOworCisgICAgLy8gQ3JlYXRlIGEgcmVxdWVzdCB0byBiZSBwcmVz
ZW50ZWQgdG8gdGhlIHVzZXIuCisgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYVJlcXVlc3RJRCk7CisK
KyAgICAvLyBDYWxsZWQgYnkgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSB3aGVuIGEg
ZGVjaXNpb24gaXMgbWFkZSBieSB0aGUgdXNlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVk
aWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworCitwcml2YXRlOgor
ICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk+PiBQZW5kaW5nUmVxdWVzdE1hcDsKKyAgICBQZW5kaW5nUmVxdWVzdE1hcCBt
X3BlbmRpbmdSZXF1ZXN0czsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmUxYTg5MDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKQEAgLTAsMCAr
MSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgor
CisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
SUQpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RJRCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElEKQoreworfQorCit2b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KCkKK3sKKyAgICBtX21hbmFnZXIu
ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0SUQsIHRydWUpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OmRlbnkoKQoreworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlz
c2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJRCwgZmFsc2UpOworfQor
Cit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUoKQorewor
ICAgIG1fbWFuYWdlci5pbnZhbGlkYXRlUmVxdWVzdHMoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi40NmY2NDM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApAQCAtMCwwICsxLDUxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eV9oCisjZGVmaW5lIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHlfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZVVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElE
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SUQpKTsKKyAg
ICB9CisKKyAgICB2b2lkIGFsbG93KCk7CisgICAgdm9pZCBkZW55KCk7CisKKyAgICB2b2lkIGlu
dmFsaWRhdGUoKTsKKworcHJpdmF0ZToKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RJRCk7CisKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgbV9tYW5hZ2VyOworICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RJRDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDJkYzE4NjIuLjIxMTAxMjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMzYsNiArMjM2LDcgQEAgV2Vi
UGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCogcGFnZUNsaWVudCwgUGFzc1JlZlB0
cjxXZWJQcm9jZXNzUHJveHk+IHAKICAgICAsIG1fbWFpbkZyYW1lKDApCiAgICAgLCBtX3VzZXJB
Z2VudChzdGFuZGFyZFVzZXJBZ2VudCgpKQogICAgICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcih0aGlzKQorICAgICwgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIodGhpcykKICAgICAsIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KHRoaXMpCiAgICAgLCBtX2VzdGltYXRlZFByb2dyZXNzKDApCiAgICAgLCBtX2lzSW5XaW5kb3co
bV9wYWdlQ2xpZW50LT5pc1ZpZXdJbldpbmRvdygpKQpAQCAtMzk2Myw2ICszOTY0LDE4IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgZ2VvbG9jYXRpb25JRCwKICAgICAgICAgcmVxdWVzdC0+ZGVueSgpOwogfQogCit2b2lk
IFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIp
Cit7CisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1l
SUQpOworICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUpOworCisgICAgUmVmUHRyPFdlYlNlY3VyaXR5
T3JpZ2luPiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmln
aW5JZGVudGlmaWVyKTsKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eT4gcmVxdWVzdCA9IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNyZWF0ZVJl
cXVlc3QodXNlck1lZGlhSUQpOworCisgICAgaWYgKCFtX3VpQ2xpZW50LmRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHRoaXMsIGZyYW1lLCBvcmlnaW4uZ2V0KCksIHJl
cXVlc3QuZ2V0KCkpKQorICAgICAgICByZXF1ZXN0LT5kZW55KCk7Cit9CisKIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogewogICAgIGlmICghaXNSZXF1ZXN0SURWYWxp
ZChyZXF1ZXN0SUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IGZlN2ZjZmYuLmE0MzYyNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJp
dG1hcC5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmgiCiAjaW5jbHVkZSAiVmlld1N0YXRlLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVk
ZSAiV0tQYWdlUHJpdmF0ZS5oIgpAQCAtODQ1LDYgKzg0Niw4IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByZWF0dGFjaFRvV2ViUHJvY2VzcygpOwogICAgIHZvaWQgcmVhdHRhY2hUb1dlYlByb2Nlc3NX
aXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKik7CiAKKyAgICB2b2lkIHJlcXVlc3RVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKTsKKwogICAgIHZvaWQgcmVxdWVzdE5vdGlm
aWNhdGlvblBlcm1pc3Npb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGNvbnN0IFN0cmluZyYg
b3JpZ2luU3RyaW5nKTsKICAgICB2b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0
aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0
cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0IFN0cmluZyYgZGlyLCBjb25zdCBT
dHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwogICAgIHZvaWQg
Y2FuY2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKQEAgLTEwODAsNiAr
MTA4Myw3IEBAIHByaXZhdGU6CiAgICAgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSBtX2FjdGl2ZUNv
bnRleHRNZW51SGl0VGVzdFJlc3VsdERhdGE7CiAgICAgUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyUHJveHk+IG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiAgICAgR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOworICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogICAgIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOwogCiAgICAgZG91YmxlIG1fZXN0aW1hdGVkUHJvZ3Jlc3M7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBhOTg1
MzhiLi43ZTQxODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTIwMyw3ICsyMDMsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKIAogICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3Qg
ZnJhbWVJRCwgV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKLSAgICAKKworICAgICMgVXNl
ciBNZWRpYSBtZXNzYWdlcworICAgIFJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUo
dWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIG9yaWdp
bklkZW50aWZpZXIpCisKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3RO
b3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgV1RGOjpTdHJpbmcgb3Jp
Z2luSWRlbnRpZmllcikKICAgICBTaG93Tm90aWZpY2F0aW9uKFdURjo6U3RyaW5nIHRpdGxlLCBX
VEY6OlN0cmluZyBib2R5LCBXVEY6OlN0cmluZyBpY29uVVJMLCBXVEY6OlN0cmluZyB0YWcsIFdU
Rjo6U3RyaW5nIGxhbmcsIFdURjo6U3RyaW5nIGRpciwgV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRp
ZmllciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlVJQ2xpZW50LmNwcAppbmRleCBiZmE0ZDhlLi45NDgyZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJOYXRp
dmVXZWJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuaCIKICNpbmNsdWRlICJQbHVnaW5JbmZvcm1hdGlvbi5oIgorI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNs
dWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJO
dW1iZXIuaCIKQEAgLTM1Niw2ICszNTcsMTUgQEAgYm9vbCBXZWJVSUNsaWVudDo6ZGVjaWRlUG9s
aWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZ2UKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBXZWJVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5
KiBmcmFtZSwgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSogcGVybWlzc2lvblJlcXVlc3QpCit7CisgICAgaWYgKCFtX2NsaWVudC5kZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkob3JpZ2luKSwgdG9BUEkocGVy
bWlzc2lvblJlcXVlc3QpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwogYm9vbCBXZWJVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2lu
LCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvblJlcXVlc3QpCiB7CiAg
ICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKaW5kZXggOTgxM2Y1Ny4u
NjcwMmZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKQEAgLTQ5LDYg
KzQ5LDcgQEAgY2xhc3MgSW1tdXRhYmxlRGljdGlvbmFyeTsKIGNsYXNzIE5hdGl2ZVdlYktleWJv
YXJkRXZlbnQ7CiBjbGFzcyBOYXRpdmVXZWJXaGVlbEV2ZW50OwogY2xhc3MgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3Q7CitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OwogY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViRGF0
YTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CkBAIC0xMDIsNiArMTAzLDcgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIFdlYk9w
ZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5Kik7CiAg
ICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBh
Z2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBXZWJTZWN1cml0eU9yaWdpbiosIEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RQcm94eSopOworICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIFdlYlNl
Y3VyaXR5T3JpZ2luKiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSopOwogICAgIGJv
b2wgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVBy
b3h5KiwgV2ViU2VjdXJpdHlPcmlnaW4qLCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCop
OwogCiAgICAgLy8gUHJpbnRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCAzMTg3NzI1Li4yNmQ3NDljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlN
YWMubW0KQEAgLTQ0OCw2ICs0NDgsNyBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UoKQogICAgICAgICAwLCAvLyBzaG93Q29sb3JQ
aWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIHVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZAorICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAogICAgIH07CiAKICAgICBpbnNwZWN0b3JQYWdlLT5p
bml0aWFsaXplVUlDbGllbnQoJnVpQ2xpZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMzZkOTIyLi43MjE3NjNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC00MTUsNiArNDE1LDE0IEBACiAJCTNGODdCOUJEMTU4OTQwMTIwMDkwRkY2MiAvKiBXZWJDb2xv
ckNob29zZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gM0Y4N0I5QkExNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi87IH07
CiAJCTNGODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdCOUJCMTU4OTNGNjMw
MDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLzsgfTsKIAkJM0Y4N0I5QzAxNTg5NDBEODAw
OTBGRjYyIC8qIFdlYkNvbG9yUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCRjE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JQaWNr
ZXIuaCAqLzsgfTsKKwkJNEEyMDIwOTUxODFDMTU2RjAwRTE3ODM0IC8qIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRBMjAyMDkxMTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJCTRBMjAyMDk2MTgxQzE1
NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEEyMDIwOTIxODFD
MTU2RjAwRTE3ODM0IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgg
Ki87IH07CisJCTRBMjAyMDk3MTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRBMjAyMDkzMTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmNwcCAqLzsgfTsKKwkJNEEyMDIwOTgxODFDMTU2RjAwRTE3ODM0IC8qIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRBMjAyMDk0MTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi87IH07CisJCTRBMjAyMDlCMTgxQzE1QTAwMEUxNzgz
NCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMjAyMDk5MTgxQzE1QTAwMEUxNzgzNCAvKiBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLzsgfTsKKwkJNEEyMDIwOUMxODFDMTVB
MDAwRTE3ODM0IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMjAyMDlBMTgxQzE1QTAwMEUxNzgz
NCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggKi87IH07CisJCTRBMjAyMDlGMTgx
QzE1QzgwMEUxNzgzNCAvKiBXZWJVc2VyTWVkaWFDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEEyMDIwOUQxODFDMTVDODAwRTE3ODM0IC8q
IFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgKi87IH07CisJCTRBMjAyMEEzMTgxQzE1REUwMEUxNzgz
NCAvKiBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTIwMjBBMTE4MUMxNURFMDBFMTc4MzQgLyogVXNlck1l
ZGlhUmVxdWVzdE1hbmFnZXIuY3BwICovOyB9OwogCQk0RjYwMTQzMjE1NUM1QUEyMDAxRkJERTAg
LyogQmxvY2tpbmdSZXNwb25zZU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9u
c2VNYXAuaCAqLzsgfTsKIAkJNTEwMjFFOUMxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRN
ZW51Q2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFj
Lm1tICovOyB9OwogCQk1MTAzMkYxODE4MEY3M0JCMDA5NjFCQjcgLyogV2ViVG9EYXRhYmFzZVBy
b2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMDMyRjE2MTgwRjczQkIwMDk2MUJCNyAvKiBXZWJUb0RhdGFiYXNlUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwICovOyB9OwpAQCAtMTg4OSw2ICsxODk3LDE2IEBACiAJCTNGODdCOUJB
MTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvckNob29zZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8q
IFdlYkNvbG9yUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
bG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBMjAyMDkxMTgxQzE1
NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRB
MjAyMDkyMTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0QTIwMjA5MzE4MUMxNTZGMDBFMTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NEEyMDIwOTQxODFDMTU2RjAwRTE3ODM0IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTIwMjA5OTE4
MUMxNUEwMDBFMTc4MzQgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEEyMDIwOUExODFDMTVBMDAw
RTE3ODM0IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0QTIwMjA5RDE4MUMxNUM4MDBFMTc4MzQgLyogV2ViVXNl
ck1lZGlhQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YlVzZXJNZWRpYUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBMjAy
MDlFMTgxQzE1QzgwMEUxNzgzNCAvKiBXZWJVc2VyTWVkaWFDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVXNlck1lZGlhQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTRBMjAyMEExMTgxQzE1REUwMEUxNzgzNCAvKiBVc2VyTWVkaWFSZXF1
ZXN0TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2Vy
TWVkaWFSZXF1ZXN0TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRB
MjAyMEEyMTgxQzE1REUwMEUxNzgzNCAvKiBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyog
QmxvY2tpbmdSZXNwb25zZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBC
bG9ja2luZ1Jlc3BvbnNlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDAz
MUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVtU2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7
IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFNlY0l0ZW1TaGltLmR5bGliOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyog
V2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTM2NjYsNiArMzY4NCwxNSBAQAogCQkJcGF0aCA9IENvY29hOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNEEyMDIwQTAxODFDMTVERTAwRTE3ODM0IC8q
IE1lZGlhU3RyZWFtICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCQk0QTIwMjBBMTE4MUMxNURFMDBFMTc4MzQgLyogVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIu
Y3BwICovLAorCQkJCTRBMjAyMEEyMTgxQzE1REUwMEUxNzgzNCAvKiBVc2VyTWVkaWFSZXF1ZXN0
TWFuYWdlci5oICovLAorCQkJKTsKKwkJCXBhdGggPSBNZWRpYVN0cmVhbTsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3
b3JrICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTQwNzQs
NiArNDEwMSw3IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTIwMjBBMDE4
MUMxNURFMDBFMTc4MzQgLyogTWVkaWFTdHJlYW0gKi8sCiAJCQkJNzU1NDIyQzUxODA2NEZGQzAw
NDZGNkE4IC8qIE9yaWdpbkRhdGEgKi8sCiAJCQkJNTEyRTM1MkExMzBCNTU5OTAwQUJEMTlBIC8q
IEFwcGxpY2F0aW9uQ2FjaGUgKi8sCiAJCQkJMzMwOTM0NEIxMzE1QjkzQTAwOTdBN0JDIC8qIENv
b2tpZXMgKi8sCkBAIC00MTA4LDYgKzQxMzYsOCBAQAogCQlCQzAzMkQ1RDEwRjQzNzIyMDA1OEMx
NUEgLyogV2ViQ29yZVN1cHBvcnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTRBMjAyMDlEMTgxQzE1QzgwMEUxNzgzNCAvKiBXZWJVc2VyTWVkaWFDbGll
bnQuY3BwICovLAorCQkJCTRBMjAyMDlFMTgxQzE1QzgwMEUxNzgzNCAvKiBXZWJVc2VyTWVkaWFD
bGllbnQuaCAqLywKIAkJCQlCQzExMUFERTExMkY1QjlBMDAzMzdCQUIgLyogbWFjICovLAogCQkJ
CUNFREExMkRFMTUyQ0NBRTgwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCAq
LywKIAkJCQlCQzExMUE1MzExMkY0RkJCMDAzMzdCQUIgLyogV2ViQ2hyb21lQ2xpZW50LmNwcCAq
LywKQEAgLTQxOTQsNiArNDIyNCwxMCBAQAogCQlCQzAzMkRDMzEwRjQzODI2MDA1OEMxNUEgLyog
VUlQcm9jZXNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQk0QTIwMjA5MTE4MUMxNTZGMDBFMTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTRBMjAyMDkyMTgxQzE1NkYwMEUxNzgzNCAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovLAorCQkJCTRBMjAyMDkzMTgx
QzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCAqLywK
KwkJCQk0QTIwMjA5NDE4MUMxNTZGMDBFMTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5oICovLAogCQkJCUJDMDMyREM0MTBGNDM4N0MwMDU4QzE1QSAvKiBBUEkgKi8sCiAJ
CQkJNTEyRjU4OEQxMkE4ODM2RjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uICovLAogCQkJCTUx
QjMwMDREMTI1MjlDRjUwMDBCNUNBMCAvKiBjZiAqLywKQEAgLTQzNTAsNiArNDM4NCw4IEBACiAJ
CUJDMEMzNzY2MTBGODA3NjYwMDc2RDdDQiAvKiBDICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTIwMjA5OTE4MUMxNUEwMDBFMTc4MzQgLyogV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJNEEyMDIwOUExODFDMTVBMDAwRTE3
ODM0IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCAqLywKIAkJCQk1MTIzQ0YxODEz
M0QyNUU2MDA1NkY4MDAgLyogY2cgKi8sCiAJCQkJNkVFODQ5QzQxMzY4RDkwNDAwMzhENDgxIC8q
IG1hYyAqLywKIAkJCQlCQ0I2MzQ3NzExNkJGMTA2MDA2MDMyMTUgLyogV2ViS2l0Ml9DLmggKi8s
CkBAIC01NjM2LDYgKzU2NzIsNyBAQAogCQkJCUJDRUU3RDBFMTI4NDZGNjkwMDk4MjdEQSAvKiBX
ZWJDb250ZXh0TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjRERTI1MTY4RkE0NDgw
MEM5NEFGQyAvKiBXZWJDb250ZXh0U3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNC
MEIwREMxMjMwNUEyNTAwQjEzNDFFIC8qIFdlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNEEyMDIwOTgxODFDMTU2RjAwRTE3ODM0IC8qIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzMDkzNDUwMTMxNUI5
NEQwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzA5
MzQ0ODEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMzA5MzQ1NjEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdl
clByb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTU3NDMsNiArNTc4MCw3IEBACiAJCQkJNTEwMzJG
MTkxODBGNzNCQjAwOTYxQkI3IC8qIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNFRTdBRDExMjgxNzk4ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0UwRTQyNTE2OEI3QTI4MDA1N0U2
NkEgLyogV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTRBMjAyMDlD
MTgxQzE1QTAwMEUxNzgzNCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTJGNTg5RDEyQTg4Mzg4MDA2Mjk1MzAgLyogV2ViUHJvdGVjdGlvblNw
YWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzk0ODQwNDE1MEMzNTA2MDBFNTJDRTkgLyogV2Vi
UmVuZGVyTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTM1MUY2MTgwRjVDNzUwMEU1M0JF
OSAvKiBXZWJJREJGYWN0b3J5QmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCkBAIC01ODI1LDYgKzU4
NjMsNyBAQAogCQkJCUY2MkE3NjYyMTJCMUFCRUQwMDA1RjFCNiAvKiBXS0RhdGFiYXNlTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc1RkExMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGlj
dGlvbmFyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMTdEMDcxNjI2MEZGNDAwNzA1NEY1IC8q
IFdLRE9NRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTRBMjAyMDk2MTgxQzE1NkYwMEUx
NzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMwMTdEMDkxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkMwMTdEMEIxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NSW50ZXJu
YWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAxN0QwRDE2MjYwRkY0MDA3MDU0RjUgLyogV0tE
T01Ob2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTY1OTEsNiArNjYzMCw4IEBACiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQkM1RDI0QTExNkNDM0I5
RTAwN0Q1NDYxIC8qIENoaWxkUHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLywKKwkJCQk0QTIw
MjA5RjE4MUMxNUM4MDBFMTc4MzQgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTRBMjAyMEEzMTgxQzE1REUwMEUxNzgzNCAvKiBVc2VyTWVkaWFSZXF1ZXN0TWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTY2NzIsNiArNjcxMyw3IEBACiAJCQkJRTE1MTND
NjYxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBMkE0QjBFMTU4NkEyMjQwMDkwQzlFOSAvKiBDb2xvclNwYWNlRGF0YS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBNkY5RkI3MTFFMTQwODUwMERCMTM3MSAvKiBDb21tYW5kTGluZU1h
Yy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0QTIwMjA5NzE4MUMxNTZGMDBFMTc4MzQgLyogVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzAz
MkRBQTEwRjQzN0QxMDA1OEMxNUEgLyogQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTMwRUFDNjExNUQ3REEzMDA1M0U5MzcgLyogQ29ubmVjdGlvbk1hYy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MTM2MTgzRDE2MzEyNkRBMDBBOTlEREUgLyogQ29ubmVjdGlvblN0YWNrLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtNzAwNSw2ICs3MDQ3LDcgQEAKIAkJCQkxQzhFMjgzNTEyNzVE
NzM4MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUNBOEI5MzYxMjdDNzc0RTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUNBOEI5NDUxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBMjAyMDlCMTgxQzE1
QTAwMEUxNzgzNCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUMwMzM3REQzMTI3QTJBMEUwMDhGRjRGNCAvKiBXZWJLZXlib2FyZEV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlFMTA1MTMxNUNDRkMwMDlFNzAzMSAvKiBXZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOUJBNTA0MTY5N0M0
NTMwMEU0NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTcw
NzEsNiArNzExNCw3IEBACiAJCQkJMzNGOUQ1QjkxMzEyRjFFRTAwMEQ2ODNGIC8qIFdlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzMzNjc2NTUxMzBD
OUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTMzMzY3NjM1MTMwQzk5QjIwMDZDOURFMiAvKiBXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBMjAyMDk1MTgx
QzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzM2NzY1NzEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MTBBRkZCOTE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFCIC8qIFdlYlJlc291cmNl
TG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3RNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWNh
YzRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJG
cmFtZS5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zy
YW1lTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB1aW50
NjRfdCBnZW5lcmF0ZVVzZXJNZWRpYVJlcXVlc3RJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90
IHVuaXF1ZVVzZXJNZWRpYVJlcXVlc3RJRCA9IDE7CisgICAgcmV0dXJuIHVuaXF1ZVVzZXJNZWRp
YVJlcXVlc3RJRCsrOworfQorCitVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUmVx
dWVzdE1hbmFnZXIoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCisK
K3ZvaWQgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OnJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQ
dHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4gcHJwUmVxdWVzdCkKK3sKKyAgICBSZWZQdHI8
V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCA9IHBycFJlcXVlc3Q7CisgICAgdWlu
dDY0X3QgcmVxdWVzdElEID0gZ2VuZXJhdGVVc2VyTWVkaWFSZXF1ZXN0SUQoKTsKKworICAgIG1f
dXNlck1lZGlhUmVxdWVzdFRvSURNYXAuc2V0KHJlcXVlc3QsIHJlcXVlc3RJRCk7CisgICAgbV9p
ZFRvVXNlck1lZGlhUmVxdWVzdE1hcC5zZXQocmVxdWVzdElELCByZXF1ZXN0KTsKKworICAgIEZy
YW1lKiBmcmFtZSA9IHJlcXVlc3QtPmZyYW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsKKworICAg
IFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVM
b2FkZXJDbGllbnQoZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpKTsKKyAgICBXZWJGcmFtZSogd2Vi
RnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJG
cmFtZSgpIDogbnVsbHB0cjsKKyAgICBBU1NFUlQod2ViRnJhbWUpOworCisgICAgUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VXNlck1l
ZGlhUGVybWlzc2lvbkZvckZyYW1lKHJlcXVlc3RJRCwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgb3Jp
Z2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKSkpOworfQorCit2b2lkIFVzZXJNZWRpYVJlcXVlc3RN
YW5hZ2VyOjpjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqIHJlcXVlc3Qp
Cit7CisgICAgZm9yIChVc2VyTWVkaWFSZXF1ZXN0VG9JRE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQg
PSBtX3VzZXJNZWRpYVJlcXVlc3RUb0lETWFwLmJlZ2luKCksIGVuZCA9IG1fdXNlck1lZGlhUmVx
dWVzdFRvSURNYXAuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBSZWZQdHI8V2Vi
Q29yZTo6VXNlck1lZGlhUmVxdWVzdD4gc3RvcmVkUmVxdWVzdCA9IGl0LT5rZXk7CisgICAgICAg
IGlmIChzdG9yZWRSZXF1ZXN0LmdldCgpID09IHJlcXVlc3QpIHsKKyAgICAgICAgICAgIG1faWRU
b1VzZXJNZWRpYVJlcXVlc3RNYXAucmVtb3ZlKGl0LT52YWx1ZSk7CisgICAgICAgICAgICBtX3Vz
ZXJNZWRpYVJlcXVlc3RUb0lETWFwLnJlbW92ZShpdC0+a2V5KTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcjo6
ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFS
ZXF1ZXN0SUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBJRFRvVXNlck1lZGlhUmVxdWVzdE1hcDo6
aXRlcmF0b3IgaXQgPSBtX2lkVG9Vc2VyTWVkaWFSZXF1ZXN0TWFwLmZpbmQodXNlck1lZGlhUmVx
dWVzdElEKTsKKyAgICBpZiAoaXQgPT0gbV9pZFRvVXNlck1lZGlhUmVxdWVzdE1hcC5lbmQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+
IHJlcXVlc3QgPSBpdC0+dmFsdWU7CisgICAgaWYgKGFsbG93ZWQpCisgICAgICAgIHJlcXVlc3Qt
PnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBlbHNlCisgICAgICAgIHJlcXVlc3QtPnVz
ZXJNZWRpYUFjY2Vzc0RlbmllZCgpOworCisgICAgbV9pZFRvVXNlck1lZGlhUmVxdWVzdE1hcC5y
ZW1vdmUoaXQpOworICAgIG1fdXNlck1lZGlhUmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3Qp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01l
ZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNTY2MDcyNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaApAQCAtMCww
ICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYg
VXNlck1lZGlhUmVxdWVzdE1hbmFnZXJfaAorI2RlZmluZSBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdl
cl9oCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYVJlcXVlc3QuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyIHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcihXZWJQYWdlJik7
CisKKyAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1l
ZGlhUmVxdWVzdD4pOworICAgIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpVc2VyTWVkaWFS
ZXF1ZXN0Kik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNp
b24odWludDY0X3QgdXNlck1lZGlhUmVxdWVzdElELCBib29sIGFsbG93ZWQpOworCitwcml2YXRl
OgorICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpSZWZQdHI8V2ViQ29yZTo6VXNl
ck1lZGlhUmVxdWVzdD4+IElEVG9Vc2VyTWVkaWFSZXF1ZXN0TWFwOworICAgIHR5cGVkZWYgSGFz
aE1hcDxXVEY6OlJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0PiwgdWludDY0X3Q+IFVz
ZXJNZWRpYVJlcXVlc3RUb0lETWFwOworICAgIElEVG9Vc2VyTWVkaWFSZXF1ZXN0TWFwIG1faWRU
b1VzZXJNZWRpYVJlcXVlc3RNYXA7CisgICAgVXNlck1lZGlhUmVxdWVzdFRvSURNYXAgbV91c2Vy
TWVkaWFSZXF1ZXN0VG9JRE1hcDsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUmVxdWVzdE1hbmFnZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJV
c2VyTWVkaWFDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjg5Mzc0OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKQEAgLTAsMCArMSw1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViVXNlck1lZGlhQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaCIKKyNpbmNsdWRl
ICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
VXNlck1lZGlhUmVxdWVzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1dlYlVzZXJNZWRpYUNsaWVudDo6fldlYlVzZXJNZWRpYUNsaWVudCgp
Cit7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKK3sKKyAg
ICBkZWxldGUgdGhpczsKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnJlcXVlc3RQZXJt
aXNzaW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCkKK3sK
KyAgICBtX3BhZ2UtPnVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKCkucmVxdWVzdFBlcm1pc3Npb24o
cmVxdWVzdCk7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFdl
YkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgbV9wYWdlLT51c2VyTWVk
aWFSZXF1ZXN0TWFuYWdlcigpLmNhbmNlbFJlcXVlc3QocmVxdWVzdCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlh
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVz
ZXJNZWRpYUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxZmJh
YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXZWJVc2VyTWVkaWFDbGllbnRfaAor
I2RlZmluZSBXZWJVc2VyTWVkaWFDbGllbnRfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJVc2VyTWVkaWFDbGllbnQgOiBwdWJs
aWMgV2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJVc2VyTWVkaWFD
bGllbnQoV2ViUGFnZSogcGFnZSkKKyAgICAgICAgOiBtX3BhZ2UocGFnZSkKKyAgICB7CisgICAg
fQorCisgICAgdmlydHVhbCB+V2ViVXNlck1lZGlhQ2xpZW50KCk7CisKK3ByaXZhdGU6CisgICAg
dmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKSBPVkVSUklERTsKKworICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpVc2Vy
TWVkaWFSZXF1ZXN0KikgT1ZFUlJJREU7CisKKyAgICBXZWJQYWdlKiBtX3BhZ2U7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNlbmRpZiAvLyBXZWJVc2VyTWVkaWFDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDFkZjg2NDEuLjVjYzAyMWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTg0LDYgKzg0
LDcgQEAKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
V2ViVXNlck1lZGlhQ2xpZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9DaHJvbWUuaD4KQEAgLTI3OSw2ICsyODAsOSBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90
IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAg
ICAsIG1fbWF4aW11bVJlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW4oMCkKICAgICAsIG1fc2Nyb2xs
UGlubmluZ0JlaGF2aW9yKERvTm90UGluKQogICAgICwgbV91c2VUaHJlYWRlZFNjcm9sbGluZyhm
YWxzZSkKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICwgbV91c2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCisjZW5kaWYKIHsKICAgICBBU1NFUlQobV9wYWdlSUQp
OwogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgbm9uLWlkZWFsIGxvY2F0aW9uIGZvciB0aGlzIFNl
dHRpbmcgYW5kCkBAIC0zMzgsNiArMzQyLDEwIEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3Qg
cGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAg
IFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VQcm94aW1pdHlUbyhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJE
ZXZpY2VQcm94aW1pdHlDbGllbnQodGhpcykpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgIFdlYkNvcmU6OnByb3ZpZGVVc2VyTWVkaWFUbyhtX3BhZ2UuZ2V0KCksIG5l
dyBXZWJVc2VyTWVkaWFDbGllbnQodGhpcykpOworI2VuZGlmCisKICAgICBtX3BhZ2UtPnNldENh
blN0YXJ0TWVkaWEoZmFsc2UpOwogICAgIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyA9IHBh
cmFtZXRlcnMubWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKIApAQCAtMjc4NCw2ICsyNzkyLDEz
IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBtX3VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lv
bkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBh
Z2U6OmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90
aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIHsKICAgICBub3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIoKS0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lv
bihub3RpZmljYXRpb25JRCwgYWxsb3dlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAyZGYwMWU3Li4zYTI5YTczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNs
dWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAi
U2hhcmVhYmxlQml0bWFwLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaCIK
ICNpbmNsdWRlICJXZWJVbmRvU3RlcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGF0aW9uQWx0
ZXJuYXRpdmUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+CkBAIC0zODAsNiArMzgx
LDEwIEBAIHB1YmxpYzoKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYg
Z2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisgICAgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXImIHVzZXJNZWRpYVJlcXVlc3RN
YW5hZ2VyKCkgeyByZXR1cm4gbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0K
KyNlbmRpZgorCiAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKiBub3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKIAogICAgIHZvaWQgcGFnZURpZFNj
cm9sbCgpOwpAQCAtNzgzLDcgKzc4OCwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZXh0ZW5kU2Fu
ZGJveEZvckZpbGVGcm9tT3BlblBhbmVsKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYp
OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgdm9pZCBkaWRSZWNlaXZl
R2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2VvbG9jYXRpb25JRCwgYm9v
bCBhbGxvd2VkKTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2b2lk
IGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlh
SUQsIGJvb2wgYWxsb3dlZCk7CisjZW5kaWYKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNh
dGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxv
d2VkKTsKIApAQCAtOTkxLDYgKzEwMDIsMTAgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpTY3Jv
bGxQaW5uaW5nQmVoYXZpb3IgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3I7CiAKICAgICBib29sIG1f
dXNlVGhyZWFkZWRTY3JvbGxpbmc7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFVz
ZXJNZWRpYVJlcXVlc3RNYW5hZ2VyIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggYTA2
ZTRmZC4uY2IxYWU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTIwMSw2ICsyMDEsMTEgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVy
bWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKICNl
bmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAjIE1lZGlhU3RyZWFtCisgICAg
RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgYm9vbCBhbGxvd2VkKQorI2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbgogICAgIERpZFJl
Y2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQsIGJvb2wgYWxsb3dlZCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDUyOWE3Y2MuLjFjOGRiOGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMyBAQAogMjAxMy0xMC0yOCAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW1dLMl0g
VXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYzogU2hvdyBh
IHBvcHVwIHdoZW4gdGhlIHBhZ2UKKyAgICAgICAgcmVxdWlyZXMgdXNlciBwZXJtaXNzaW9uIHRv
IGFjY2VzcyBhdWRpby92aWRlbyBkZXZpY2VzLgorICAgICAgICAocGVybWlzc2lvblJlcXVlc3RE
aWFsb2dDYWxsYmFjayk6CisgICAgICAgIChzaG93R2VvbG9jYXRpb25SZXF1ZXN0RGlhbG9nKToK
KyAgICAgICAgKHNob3dVc2VyTWVkaWFSZXF1ZXN0RGlhbG9nKToKKyAgICAgICAgKHdlYlZpZXdE
ZWNpZGVQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHA6IG51bGwKKyAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qg
aGFuZGxlcnMuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2Up
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25z
KToKKworMjAxMy0xMC0yOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
CisKICAgICAgICAgW0dUS10gZW5hYmxlIG1lZGlhLXN0cmVhbSBpbiBidWlsZC13ZWJraXQKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzE0NAogCmRp
ZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jIGIvVG9vbHMv
TWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYwppbmRleCAxZDNiNGZjLi44YWY0MDgzIDEw
MDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCisrKyBiL1Rv
b2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKQEAgLTI0Niw3ICsyNDYsNyBAQCBz
dGF0aWMgdm9pZCBiYWNrRm9yd2FkbGlzdENoYW5nZWQoV2ViS2l0QmFja0ZvcndhcmRMaXN0ICpi
YWNrRm9yd2FkbGlzdCwgV2ViS2l0QgogICAgIGJyb3dzZXJXaW5kb3dVcGRhdGVOYXZpZ2F0aW9u
QWN0aW9ucyh3aW5kb3csIGJhY2tGb3J3YWRsaXN0KTsKIH0KIAotc3RhdGljIHZvaWQgZ2VvbG9j
YXRpb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2soR3RrRGlhbG9nICpkaWFsb2csIGdpbnQgcmVzcG9u
c2UsIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KQorc3RhdGljIHZvaWQgcGVybWlz
c2lvblJlcXVlc3REaWFsb2dDYWxsYmFjayhHdGtEaWFsb2cgKmRpYWxvZywgZ2ludCByZXNwb25z
ZSwgV2ViS2l0UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3QpCiB7CiAgICAgc3dpdGNoIChyZXNw
b25zZSkgewogICAgIGNhc2UgR1RLX1JFU1BPTlNFX1lFUzoKQEAgLTM5OSwxMSArMzk5LDggQEAg
c3RhdGljIGdib29sZWFuIHdlYlZpZXdEZWNpZGVQb2xpY3koV2ViS2l0V2ViVmlldyAqd2ViVmll
dywgV2ViS2l0UG9saWN5RGVjaXNpb24KICAgICB9CiB9CiAKLXN0YXRpYyBnYm9vbGVhbiB3ZWJW
aWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0
UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3QsIEJyb3dzZXJXaW5kb3cgKndpbmRvdykKK3N0YXRp
YyBnYm9vbGVhbiBzaG93R2VvbG9jYXRpb25SZXF1ZXN0RGlhbG9nKFdlYktpdFBlcm1pc3Npb25S
ZXF1ZXN0ICpyZXF1ZXN0LCBCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7Ci0gICAgaWYgKCFXRUJL
SVRfSVNfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKQotICAgICAgICBy
ZXR1cm4gRkFMU0U7Ci0KICAgICBHdGtXaWRnZXQgKmRpYWxvZyA9IGd0a19tZXNzYWdlX2RpYWxv
Z19uZXcoR1RLX1dJTkRPVyh3aW5kb3cpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHVEtfRElBTE9HX01PREFMIHwgR1RLX0RJQUxPR19ERVNUUk9ZX1dJ
VEhfUEFSRU5ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHVEtfTUVTU0FHRV9RVUVTVElPTiwKQEAgLTQxMSwxMiArNDA4LDM4IEBAIHN0YXRpYyBnYm9v
bGVhbiB3ZWJWaWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0V2ViVmlldyAqd2ViVmll
dywgV2ViS2l0UGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJHZW9sb2NhdGlvbiByZXF1ZXN0Iik7CiAKICAgICBndGtfbWVzc2FnZV9kaWFsb2dfZm9y
bWF0X3NlY29uZGFyeV90ZXh0KEdUS19NRVNTQUdFX0RJQUxPRyhkaWFsb2cpLCAiQWxsb3cgZ2Vv
bG9jYXRpb24gcmVxdWVzdD8iKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGRpYWxvZywgInJlc3Bv
bnNlIiwgR19DQUxMQkFDSyhnZW9sb2NhdGlvblJlcXVlc3REaWFsb2dDYWxsYmFjayksIGdfb2Jq
ZWN0X3JlZihyZXF1ZXN0KSk7CisgICAgZ19zaWduYWxfY29ubmVjdChkaWFsb2csICJyZXNwb25z
ZSIsIEdfQ0FMTEJBQ0socGVybWlzc2lvblJlcXVlc3REaWFsb2dDYWxsYmFjayksIGdfb2JqZWN0
X3JlZihyZXF1ZXN0KSk7CisgICAgZ3RrX3dpZGdldF9zaG93KGRpYWxvZyk7CisKKyAgICByZXR1
cm4gVFJVRTsKK30KKworc3RhdGljIGdib29sZWFuIHNob3dVc2VyTWVkaWFSZXF1ZXN0RGlhbG9n
KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0LCBCcm93c2VyV2luZG93ICp3aW5kb3cp
Cit7CisgICAgR3RrV2lkZ2V0ICpkaWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3KEdUS19X
SU5ET1cod2luZG93KSwKKyAgICAgICAgR1RLX0RJQUxPR19NT0RBTCB8IEdUS19ESUFMT0dfREVT
VFJPWV9XSVRIX1BBUkVOVCwKKyAgICAgICAgR1RLX01FU1NBR0VfUVVFU1RJT04sCisgICAgICAg
IEdUS19CVVRUT05TX1lFU19OTywKKyAgICAgICAgIlVzZXJNZWRpYSByZXF1ZXN0Iik7CisKKyAg
ICBndGtfbWVzc2FnZV9kaWFsb2dfZm9ybWF0X3NlY29uZGFyeV90ZXh0KEdUS19NRVNTQUdFX0RJ
QUxPRyhkaWFsb2cpLCAiQWxsb3cgdXNlcm1lZGlhIHJlcXVlc3Q/Iik7CisgICAgZ19zaWduYWxf
Y29ubmVjdChkaWFsb2csICJyZXNwb25zZSIsIEdfQ0FMTEJBQ0socGVybWlzc2lvblJlcXVlc3RE
aWFsb2dDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CiAgICAgZ3RrX3dpZGdldF9z
aG93KGRpYWxvZyk7CiAKICAgICByZXR1cm4gVFJVRTsKIH0KIAorc3RhdGljIGdib29sZWFuIHdl
YlZpZXdEZWNpZGVQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBXZWJL
aXRQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCwgQnJvd3NlcldpbmRvdyAqd2luZG93KQorewor
ICAgIGlmIChXRUJLSVRfSVNfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3Qp
KQorICAgICAgICByZXR1cm4gc2hvd0dlb2xvY2F0aW9uUmVxdWVzdERpYWxvZyhyZXF1ZXN0LCB3
aW5kb3cpOworCisgICAgaWYgKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVT
VChyZXF1ZXN0KSkKKyAgICAgICAgcmV0dXJuIHNob3dVc2VyTWVkaWFSZXF1ZXN0RGlhbG9nKHJl
cXVlc3QsIHdpbmRvdyk7CisKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKIHN0YXRpYyB2b2lkIHdl
YlZpZXdNb3VzZVRhcmdldENoYW5nZWQoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0SGl0
VGVzdFJlc3VsdCAqaGl0VGVzdFJlc3VsdCwgZ3VpbnQgbW91c2VNb2RpZmllcnMsIEJyb3dzZXJX
aW5kb3cgKndpbmRvdykKIHsKICAgICBpZiAoIXdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY29udGV4
dF9pc19saW5rKGhpdFRlc3RSZXN1bHQpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nl
ci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBiL1Rvb2xzL01pbmlCcm93c2VyL21h
Yy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCmluZGV4IDdlMzAwODYuLjRmNWU5YWIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxl
ci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxl
ci5tCkBAIC03MjUsNiArNzI1LDcgQEAgLSAodm9pZClhd2FrZUZyb21OaWIKICAgICAgICAgMCwg
Ly8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAg
ICAwLCAvLyB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQKKyAgICAgICAgMCwgLy8gZGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKICAgICB9OwogICAgIFdLUGFn
ZVNldFBhZ2VVSUNsaWVudChfd2ViVmlldy5wYWdlUmVmLCAmdWlDbGllbnQpOwogfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA1M2Y2MjBmLi4xZThkNmU2
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMjUyLDYg
KzI1Miw3IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFn
ZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAsIC8vIHNob3dDb2xv
clBpY2tlcgogICAgICAgICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gdW5h
dmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkCisgICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlD
bGllbnQobmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xpZW50KTsKIApAQCAtNDU0LDYgKzQ1NSw3IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhXS0RpY3Rpb25h
cnlSZWYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAs
IC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNr
ZWQsCisgICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFn
ZSgpLCAmcGFnZVVJQ2xpZW50KTsKIAotLSAKMS44LjQucmMz
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215375</attachid>
            <date>2013-10-29 03:29:01 -0700</date>
            <delta_ts>2013-10-29 05:25:27 -0700</delta_ts>
            <desc>wk2 usermediaclient</desc>
            <filename>wk2-usermediaclient.patch</filename>
            <type>text/plain</type>
            <size>86334</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA4MTczMjZjMzNiMDZhOTc4YjI3OTg3ZWQyMDRiNjU5NjBiYjRiZmQ2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDI4IE9jdCAyMDEzIDA5OjI4OjMxICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
d2syIHVzZXJtZWRpYWNsaWVudAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAxMyArKysKIC4uLi9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwICAgICAgIHwgIDExICsrKwogLi4uL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggfCAgIDQgKwogU291cmNlL1dlYktpdDIvQ01h
a2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKystCiBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKysrKysrKysrKysr
KysrKysrCiBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtICAgICAgICAgICAg
ICAgICB8ICAxMyArKysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCAgICAg
ICAgICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMu
Y3BwICAgICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFp
dHMuaCAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmggICAgICAgICAgICAgICAgICB8ICAgMSArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0LmggICAgICAgICB8ICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmggICAgICAgICAgICB8ICAgNyArLQogLi4uL0FQSS9DL1dLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuY3BwICAgICAgICAgfCAgNDEgKysrKysrKysKIC4uLi9VSVByb2Nl
c3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIHwgIDM4ICsrKysrKysrCiAu
Li4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAgICB8ICAgOCAr
KwogLi4uL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwICAgfCAx
MDMgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oICAgICB8ICA2NCArKysrKysrKysrKysrCiAuLi4vZ3RrL1dlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oICB8ICAyOCArKysrKysKIC4uLi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IHwgIDE4ICsrKysKIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaCAgICAgICAgIHwgICAxICsK
IC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgICAgIHwgIDY5
ICsrKysrKysrKysrKysrCiAuLi4vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaCAgICAgICB8ICA1MCArKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwICB8ICA0OCArKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAgICB8ICA1MSArKysrKysrKysrCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCAgICAgICAgICB8ICAxMyArKysK
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAgICAgIHwgICA0
ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gIHwg
ICA1ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwICAgICAgICAg
ICB8ICAxMCArKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmggICAgICAg
ICAgICAgfCAgIDIgKwogLi4uL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94
eU1hYy5tbSAgfCAgIDEgKwogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qICAgfCAgNDQgKysrKysrKysrCiAuLi4vTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVx
dWVzdE1hbmFnZXIuY3BwICAgICAgICB8ICA5OCArKysrKysrKysrKysrKysrKysrKwogLi4uL01l
ZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmggICAgICAgICAgfCAgNTEgKysrKysr
KysrKwogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgICAgICAgICAg
fCAgNTUgKysrKysrKysrKysKIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJN
ZWRpYUNsaWVudC5oIHwgIDUzICsrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgICAgICB8ICAxNSArKysKIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggICAgICAgIHwgIDE1ICsrKwogLi4uL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gfCAgIDUgKwogVG9vbHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTggKysrKwogVG9vbHMv
TWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYyAgICAgICAgICAgICAgfCAgMzUgKysrKyst
LQogVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gfCAg
IDEgKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgICAgICAgICAg
fCAgIDIgKwogNDMgZmlsZXMgY2hhbmdlZCwgMTEwMyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlv
bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5o
CiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1h
bmFnZXIuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9N
ZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGll
bnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNDMwYWFmLi5l
M2FiZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMTAtMjggIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRp
YUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6IEFkZGVk
IGRvY3VtZW50IGFuZAorICAgICAgICBmcmFtZSBhY2Nlc3NvcnMsIG5lZWRlZCBieSB0aGUgVXNl
ck1lZGlhUmVxdWVzdE1hbmFnZXIgb2YgdGhlIFdlYlByb2Nlc3MuCisgICAgICAgIChXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0Ojpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVk
aWFSZXF1ZXN0OjpmcmFtZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0Lmg6CisKIDIwMTMtMTAtMjIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtXSzJdW0dUS10gZW5hYmxlLW1lZGlhLXN0cmVhbSBTZXR0
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmNwcAppbmRleCBkYzBiNTIwLi5iNGIxZTE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAK
QEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzSW1wbC5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFt
LmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50ZXIuaCIKQEAgLTEwMCw2ICsxMDEsMTYgQEAg
VXNlck1lZGlhUmVxdWVzdDo6flVzZXJNZWRpYVJlcXVlc3QoKQogewogfQogCitEb2N1bWVudCog
VXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiB0b0RvY3Vt
ZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Cit9CisKK0ZyYW1lKiBVc2VyTWVkaWFSZXF1
ZXN0OjpmcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgp
LT5mcmFtZSgpIDogbnVsbHB0cjsKK30KKwogU2VjdXJpdHlPcmlnaW4qIFVzZXJNZWRpYVJlcXVl
c3Q6OnNlY3VyaXR5T3JpZ2luKCkgY29uc3QKIHsKICAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuaAppbmRleCAzY2ZlZWY3Li5mZjJkNmViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAt
NDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERpY3Rpb25hcnk7CiBj
bGFzcyBEb2N1bWVudDsKK2NsYXNzIEZyYW1lOwogY2xhc3MgTWVkaWFDb25zdHJhaW50czsKIGNs
YXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIGNsYXNzIFVzZXJNZWRpYUNvbnRyb2xsZXI7CkBA
IC01OSw2ICs2MCw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxVc2VyTWVkaWFS
ZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFVzZXJNZWRpYUNvbnRyb2xs
ZXIqLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJN
ZWRpYVN1Y2Nlc3NDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JD
YWxsYmFjaz4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB+VXNlck1lZGlhUmVxdWVzdCgpOwogCisg
ICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CisgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7
CisKICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKIAogICAgIHZv
aWQgc3RhcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggMjg2NTIzZC4uNDYxNWVjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKQEAgLTQzLDYgKzQzLDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9E
SVJFQ1RPUklFUwogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0ZpbGVBUEkiCiAgICAg
IiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvRnVsbFNjcmVlbiIKICAgICAiJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9NZWRpYVN0cmVhbSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9OZXR3b3JrSW5m
byIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UiCiAgICAgIiR7
V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUiCkBAIC0yOTMsNiArMjk0LDEw
IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1l
ci5jcHAKICAgICBVSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNz
L1RleHRDaGVja2VyQ29tcGxldGlvbi5jcHAKKyAgICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKyAgICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwCiAgICAg
VUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCiAgICAgVUlQcm9j
ZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAKQEAgLTM1Miw4ICszNTcsOCBAQCBzZXQoV2ViS2l0
Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIu
Y3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcAot
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdFJlZi5jcHAKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS0JhY2tGb3J3YXJkTGlzdFJlZi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5
TWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5U3RhdHVzLmNwcAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwCkBAIC0zOTAs
NiArMzk1LDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1By
b3RlY3Rpb25TcGFjZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFu
YWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5jcHAKKyAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKyAgICBVSVByb2Nl
c3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLVmlicmF0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmli
dXRlcy5jcHAKIApAQCAtNDg5LDYgKzQ5Niw5IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKIAogICAg
IFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5jcHAKIAorICAgIFdl
YlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwCisgICAgV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oCisKICAgICBXZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogICAgIFdlYlByb2Nl
c3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtNTQwLDYgKzU1MCw4IEBAIHNldChXZWJL
aXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVu
dC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKKyAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKKyAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCiAgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGllbnQuY3BwCiAKICAgICBXZWJQcm9jZXNz
L1dlYlBhZ2UvRGVjb2RlckFkYXB0ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2E5ZWMzOC4uNTIzOTA3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEzLTEwLTI4ICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2VyTWVkaWFDbGll
bnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3VwcG9ydCBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgaW4gV2ViS2l0Mi4gSXQn
cworICAgICAgICBpbXBsZW1lbnRlZCBzaW1pbGFyaWx5IHRvIHRoZSBHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0CisgICAgICAgIHN1cHBvcnQuIFdoZW4gdGhlIFdlYlBhZ2UgcmVxdWlyZXMg
dGhpcyBwZXJtaXNzaW9uIGl0IHNlbmRzIGEKKyAgICAgICAgbWVzc2FnZSB0byB0aGUgVUkgcHJv
Y2VzcyB3aGljaCBhdCBzb21lIHBvaW50IGdyYW50cyBvciBkZW5pZXMgdGhlCisgICAgICAgIHBl
cm1pc3Npb24gYW5kIHNlbmQgdGhlIHJlc3VsdCB0byB0aGUgV2ViUHJvY2Vzcy4KKworICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOiBOZXcgTWVkaWFTdHJlYW0gZGlyZWN0b3J5LgorICAgICAgICAq
IEdOVW1ha2VmaWxlLmxpc3QuYW06IE5ldyBmaWxlcyBpbiB0aGUgYnVpbGQhCisgICAgICAgICog
U2hhcmVkL0FQSS9jL1dLQmFzZS5oOiBOZXcgdHlwZSBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuCisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOiBEaXR0by4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6IEZvcndhcmQtZGVjbGFyZSB0aGUgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
Lmg6IE5ldyBEZWNpZGVQb2xpY3kgaGFuZGxlciBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuY3BwOiBBZGRlZCwgQyBBUEkKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgdGhlIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LgorICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdEdldFR5cGVJRCk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxs
b3cpOgorICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcDogRGVjaWRl
UG9saWN5IGhhbmRsZXIKKyAgICAgICAgaW1wbGVtZW50YXRpb24gZm9yIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0LgorICAgICAgICAoZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QpOgorICAgICAgICAoYXR0YWNoVUlDbGllbnRUb1ZpZXcpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRk
ZWQsCisgICAgICAgIFdlYktpdEdUSyBBUEkgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LCB2ZXJ5IHNpbWlsYXIgdG8gdGhlCisgICAgICAgIG9uZSB1c2VkIGZvciBHZW9sb2NhdGlvbiwK
KyAgICAgICAgKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cpOgorICAgICAg
ICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KToKKyAgICAgICAgKHdlYmtp
dF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQpOgorICAgICAgICAod2Via2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3REaXNwb3NlKToKKyAgICAgICAgKHdlYmtpdF91c2VyX21l
ZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUu
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNl
Y3Rpb25zLnR4dDogRXhwb3NlIG5ldyBBUEkKKyAgICAgICAgaW4gZG9jdW1lbnRhdGlvbi4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmg6IEV4cG9zZSBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCBBUEkuCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDogQWRkZWQsCisgICAgICAgIG1hbmFnZXIgc3Rvcmlu
ZyBwZW5kaW5nIFVzZXJNZWRpYVBlcm1pc3Npb24gcmVxdWVzdHMuCisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVx
dWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
Y3BwOiBBZGRlZCwgcHJveHkKKyAgICAgICAgb2JqZWN0IGZvciB0aGUgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RUeXBlLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3cpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNy
ZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKTogRGVmZXIKKyAg
ICAgICAgVXNlclBlcm1pc3Npb25SZXF1ZXN0IHRvIHRoZSBVSUNsaWVudC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbjogTmV3IG1lc3NhZ2UgdG8gaGFuZGxlIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0cy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QpOgorICAgICAgICBEZWZlciBwZXJtaXNzaW9uIHJlcXVlc3QgdG8gQVBJQ2xpZW50Lgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZCwKKyAgICAgICAg
V2ViUHJvY2VzcyBzaWRlIG9mIHRoZSBVc2VyUmVxdWVzdE1hbmFnZXIsIGtlZXBpbmcgdHJhY2sg
b2YgZWFjaAorICAgICAgICBwZXJtaXNzaW9uIHJlcXVlc3QuCisgICAgICAgIChXZWJLaXQ6Omdl
bmVyYXRlVXNlck1lZGlhUmVxdWVzdElEKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUmVx
dWVzdE1hbmFnZXI6OlVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0TWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHA6IEFkZGVkLAorICAgICAgICBXZWJQcm9jZXNz
IGltcGxlbWVudGF0aW9uIG9mIHRoZSBXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQuCisgICAgICAg
IChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6fldlYlVzZXJNZWRpYUNsaWVudCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6cGFnZURlc3Ryb3llZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVzZXJNZWRpYUNsaWVudCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpXZWJQYWdlKTogQ3JlYXRlIHRoZQorICAgICAgICBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIgYW5kIHJlZ2lzdGVyIHRoZSBVc2VyTWVkaWFDbGllbnQKKyAg
ICAgICAgdG8gdGhlIHBhZ2UuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVV
c2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOiBEaXNwYXRjaAorICAgICAgICBkZWNpc2lvbiB0
byBtYW5hZ2VyLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogTmV3IE1lc3NhZ2UgdG8g
aGFuZGxlCisgICAgICAgIHBlcm1pc3Npb24gZGVjaXNpb24gcmVzdWx0IGZyb20gdGhlIFVJIHBy
b2Nlc3MuCisKIDIwMTMtMTAtMjIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtXSzJdW0dUS10gZW5hYmxlLW1lZGlhLXN0cmVhbSBTZXR0aW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQy
L0dOVW1ha2VmaWxlLmFtCmluZGV4IGI3ZTA2NmQuLjg0ZGJlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
LmFtCkBAIC0xNDUsNiArMTQ1LDcgQEAgbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpP
Ul9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9DUFAKIAktSSQoc3Jj
ZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIgXAogCS1J
JChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbiBcCiAJLUkkKHNy
Y2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCisJLUkkKHNyY2Rp
cikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSBcCiAJLUkkKHNyY2Rpcikv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlIFwKQEAgLTM4Myw2ICszODQsNyBAQCB2cGF0aCAl
Lm1lc3NhZ2VzLmluID0gXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Db29raWVzIFwKIAkkKFdl
YktpdDIpL1dlYlByb2Nlc3MvRnVsbFNjcmVlbiBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0dl
b2xvY2F0aW9uIFwKKwkkKFdlYktpdDIpL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0gXAogCSQoV2Vi
S2l0MikvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9N
ZWRpYUNhY2hlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvTmV0d29yayBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCAxNjRiZWIwLi45MjY2ZWY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTY2OSw2ICs2NjksOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNw
cCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIuaCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIuY3BwIFwKKwlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5j
cHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpYnJhdGlv
bi5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpYnJhdGlvbi5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9XS1JldGFpblB0ci5oIFwKQEAgLTc5
Miw2ICs3OTQsOSBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmggXAogCVNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmgg
XAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmggXAog
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFZlcnNpb24uY3BwIFwKIAlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmggXAogCVNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwIFwKQEAg
LTkxMiw2ICs5MTcsMTAgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVGV4dENoZWNrZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRD
aGVja2VyQ29tcGxldGlvbi5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNr
ZXJDb21wbGV0aW9uLmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggXAorCVNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBcCisJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
aCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIFwK
QEAgLTExNDgsNiArMTE1Nyw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29k
ZXJzLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNh
Y2hlTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9X
ZWJNZWRpYUNhY2hlTWFuYWdlci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlh
U3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmNwcCBcCisJU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9N
YW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIFwKQEAgLTEyNDIsNiArMTI1Myw4
IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5oIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAg
XAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlh
Q2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
VmlicmF0aW9uQ2xpZW50LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJWaWJyYXRpb25DbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RlY29kZXJBZGFwdGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tC
YXNlLmgKaW5kZXggMTk3YWQ5Zi4uMTUyNjljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S0Jhc2UuaApAQCAtMTI2LDYgKzEyNiw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJlZmVyZW5jZXMqIFdLUHJlZmVyZW5jZXNSZWY7CiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Byb3RlY3Rpb25TcGFjZSogV0tQcm90ZWN0aW9u
U3BhY2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1RleHRDaGVja2VyKiBXS1Rl
eHRDaGVja2VyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlicmF0aW9uKiBXS1ZpYnJhdGlvblJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlld3BvcnRBdHRyaWJ1dGVzKiBXS1ZpZXdwb3J0QXR0cmli
dXRlc1JlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRy
YWl0cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcAppbmRl
eCA5NTJhZDI2Li4xNzc0ODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
Q2xpZW50VHJhaXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJh
aXRzLmNwcApAQCAtNzQsNiArNzQsNyBAQCBjb25zdCBzaXplX3QgQVBJQ2xpZW50VHJhaXRzPFdL
UGFnZUxvYWRlckNsaWVudD46OmludGVyZmFjZVNpemVzQnlWZXJzaW9uW10gPSB7CiBjb25zdCBz
aXplX3QgQVBJQ2xpZW50VHJhaXRzPFdLUGFnZVVJQ2xpZW50Pjo6aW50ZXJmYWNlU2l6ZXNCeVZl
cnNpb25bXSA9IHsKICAgICBvZmZzZXRvZihXS1BhZ2VVSUNsaWVudCwgY3JlYXRlTmV3UGFnZSks
CiAgICAgb2Zmc2V0b2YoV0tQYWdlVUlDbGllbnQsIHNob3dDb2xvclBpY2tlciksCisgICAgb2Zm
c2V0b2YoV0tQYWdlVUlDbGllbnQsIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KSwKICAgICBzaXplb2YoV0tQYWdlVUlDbGllbnQpCiB9OwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oCmluZGV4IGRmM2FhYmIuLjBmMDZhZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmgKQEAgLTY4LDcgKzY4LDcgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLUGFnZUxvYWRlckNsaWVudD4gewogfTsK
IAogdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLUGFnZVVJQ2xpZW50PiB7Ci0g
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbnRlcmZhY2VTaXplc0J5VmVyc2lvblszXTsKKyAgICBz
dGF0aWMgY29uc3Qgc2l6ZV90IGludGVyZmFjZVNpemVzQnlWZXJzaW9uWzRdOwogfTsKIAogdGVt
cGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFnZUZvcm1DbGllbnQ+IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCA3MDMyMWI5Li43Yjg3YzM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC0xMDksNiArMTA5LDcgQEAgcHVibGljOgogICAgICAg
ICBUeXBlUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLAogICAgICAgICBUeXBlUHJlZmVyZW5jZXMsCiAg
ICAgICAgIFR5cGVUZXh0Q2hlY2tlciwKKyAgICAgICAgVHlwZVVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LAogICAgICAgICBUeXBlVmlicmF0aW9uLAogICAgICAgICBUeXBlVmlld3BvcnRBdHRy
aWJ1dGVzLAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
UElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5k
ZXggZGQ4OGQ3YS4uNzMyZGVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaApAQCAtNTcsNiArNTcsNyBAQCBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXI7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdFByb3h5OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7Citj
bGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW07CkBAIC0xNDMsNiArMTQ0LDcgQEAgV0tfQUREX0FQSV9NQVBQ
SU5HKFdLUHJvdGVjdGlvblNwYWNlUmVmLCBXZWJQcm90ZWN0aW9uU3BhY2UpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tSZW5kZXJMYXllclJlZiwgV2ViUmVuZGVyTGF5ZXIpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tSZW5kZXJPYmplY3RSZWYsIFdlYlJlbmRlck9iamVjdCkKIFdLX0FERF9BUElfTUFQ
UElORyhXS1RleHRDaGVja2VyUmVmLCBXZWJUZXh0Q2hlY2tlcikKK1dLX0FERF9BUElfTUFQUElO
RyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlicmF0aW9uUmVmLCBXZWJWaWJyYXRp
b25Qcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiwgV2Vi
Vmlld3BvcnRBdHRyaWJ1dGVzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSW5zcGVjdG9yUmVmLCBX
ZWJJbnNwZWN0b3JQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaApp
bmRleCA4NTYxMWVkLi5hYWZkMDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5oCkBAIC0yMjEsNiArMjIxLDcgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9s
aWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWcKIHR5cGVk
ZWYgdm9pZCAoKldLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwg
V0tTdHJpbmdSZWYgaW5pdGlhbENvbG9yLCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYg
bGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdl
SGlkZUNvbG9yUGlja2VyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNv
biBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9E
aWN0aW9uYXJ5LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFn
ZURlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFn
ZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwg
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbyk7CiAKIC8vIERlcHJlY2F0ZWQgICAgCiB0eXBlZGVmIFdLUGFnZVJl
ZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShX
S1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJz
IG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKTsKQEAgLTI4MywxMCArMjg0LDE0IEBAIHN0cnVjdCBXS1BhZ2VVSUNsaWVudCB7
CiAgICAgV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaG93Q29sb3JQaWNrZXI7CiAgICAgV0tQYWdlSGlkZUNvbG9yUGlj
a2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlQ29s
b3JQaWNrZXI7CiAgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQ7
CisKKyAgICAvLyBWZXJzaW9uIDMKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworCiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGll
bnQgV0tQYWdlVUlDbGllbnQ7CiAKLWVudW0geyBrV0tQYWdlVUlDbGllbnRDdXJyZW50VmVyc2lv
biA9IDIgfTsKK2VudW0geyBrV0tQYWdlVUlDbGllbnRDdXJyZW50VmVyc2lvbiA9IDMgfTsKIAog
Ly8gRmluZCBjbGllbnQuCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRGaW5kU3RyaW5nQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBzdHJpbmcsIHVuc2lnbmVkIG1hdGNoQ291
bnQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0YTBkM2YKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBJZ2FsaWEgUy5MCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuaCIKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKKworV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpCit7
CisgICAgcmV0dXJuIHRvQVBJKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OkFQSVR5
cGUpOworfQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQor
eworICAgIHJldHVybiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5hbGxv
dygpOworfQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit7
CisgICAgcmV0dXJuIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmRlbnko
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjg3OGMzM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsMzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTAorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVz
CitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpOworCitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk7CitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYK
KworI2VuZGlmIC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaCAqLwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwCmluZGV4
IDA4OTliODUuLjc0M2YyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJX
ZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0R2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRl
LmgiCisjaW5jbHVkZSAiV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2ViVmlld1ByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzUHJpdmF0
ZS5oIgpAQCAtMTUzLDYgKzE1NCwxMiBAQCBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgVwogICAgIHdl
YmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QoV0VCS0lUX1dFQl9WSUVXKGNsaWVudElu
Zm8pLCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNUKGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuZ2V0KCkpKTsKIH0KIAorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVm
LCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCit7CisgICAgR1JlZlB0cjxXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dD4gdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RDcmVhdGUodG9JbXBsKHJlcXVlc3QpKSk7CisgICAgd2Via2l0V2Vi
Vmlld01ha2VQZXJtaXNzaW9uUmVxdWVzdChXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbyksIFdF
QktJVF9QRVJNSVNTSU9OX1JFUVVFU1QodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuZ2V0KCkp
KTsKK30KKwogc3RhdGljIHZvaWQgcnVuTW9kYWwoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCiB7CiAgICAgd2Via2l0V2ViVmlld1J1bkFzTW9kYWwoV0VCS0lUX1dFQl9W
SUVXKGNsaWVudEluZm8pKTsKQEAgLTIwOSw2ICsyMTYsNyBAQCB2b2lkIGF0dGFjaFVJQ2xpZW50
VG9WaWV3KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBp
Y2tlcgogICAgICAgICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gcGx1Z2lu
TG9hZFBvbGljeQorICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdAogICAgIH07CiAgICAgV0tQYWdlUmVmIHdrUGFnZSA9IHRvQVBJKHdlYmtpdFdlYlZpZXdC
YXNlR2V0UGFnZShXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3ZWJWaWV3KSkpOwogICAgIFdLUGFnZVNl
dFBhZ2VVSUNsaWVudCh3a1BhZ2UsICZ3a1VJQ2xpZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
ZDNiY2FjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsMTAzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5j
bHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorI2luY2x1ZGUgIldlYktp
dFBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcml2YXRlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKKy8qKgorICog
U0VDVElPTjogV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKKyAqIEBTaG9ydF9kZXNj
cmlwdGlvbjogQSBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIGFjY2Vzc2luZyB1c2VyJ3MgYXVkaW8v
dmlkZW8gZGV2aWNlcy4KKyAqIEBUaXRsZTogV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QKKyAqIEBTZWVfYWxzbzogI1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0LCAjV2ViS2l0V2ViVmll
dworICoKKyAqIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IHJlcHJlc2VudHMgYSBy
ZXF1ZXN0IGZvcgorICogcGVybWlzc2lvbiB0byBkZWNpZGUgd2hldGhlciBXZWJLaXQgc2hvdWxk
IGJlIGFsbG93ZWQgdG8gYWNjZXNzIHRoZSB1c2VyJ3MKKyAqIGF1ZGlvIGFuZCB2aWRlbyBzb3Vy
Y2UgZGV2aWNlcyB3aGVuIHJlcXVlc3RlZCB0aHJvdWdodCB0aGUgZ2V0VXNlck1lZGlhIEFQSS4K
KyAqLworCitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9p
bml0KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2UqKTsKKworc3RydWN0IF9XZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgeworICAgIFJlZlB0cjxVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5PiByZXF1ZXN0OworICAgIGJvb2wgbWFkZURlY2lzaW9uOworfTsK
KworV0VCS0lUX0RFRklORV9UWVBFX1dJVEhfQ09ERSgKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCwgd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0LCBHX1RZ
UEVfT0JKRUNULAorICAgIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShXRUJLSVRfVFlQRV9QRVJNSVNT
SU9OX1JFUVVFU1QsIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQpKQor
CitzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdlYktp
dFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIEFTU0VSVChXRUJLSVRfSVNfVVNF
Ul9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX1VTRVJfTUVESUFfUEVS
TUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpLT5wcml2OworCisgICAgLy8gT25seSBvbmUgZGVjaXNp
b24gYXQgYSB0aW1lLgorICAgIGlmIChwcml2LT5tYWRlRGVjaXNpb24pCisgICAgICAgIHJldHVy
bjsKKworICAgIHByaXYtPnJlcXVlc3QtPmFsbG93KCk7CisgICAgcHJpdi0+bWFkZURlY2lzaW9u
ID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3REZW55KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIEFTU0VSVChX
RUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisgICAg
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX1VT
RVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpLT5wcml2OworCisgICAgLy8gT25s
eSBvbmUgZGVjaXNpb24gYXQgYSB0aW1lLgorICAgIGlmIChwcml2LT5tYWRlRGVjaXNpb24pCisg
ICAgICAgIHJldHVybjsKKworICAgIHByaXYtPnJlcXVlc3QtPmRlbnkoKTsKKyAgICBwcml2LT5t
YWRlRGVjaXNpb24gPSB0cnVlOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlzc2lvbl9y
ZXF1ZXN0X2ludGVyZmFjZV9pbml0KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2UqIGlmYWNl
KQoreworICAgIGlmYWNlLT5hbGxvdyA9IHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
QWxsb3c7CisgICAgaWZhY2UtPmRlbnkgPSB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dERlbnk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGlzcG9zZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLy8gRGVmYXVsdCBiZWhhdmlvdXIgd2hl
biBubyBkZWNpc2lvbiBoYXMgYmVlbiBtYWRlIGlzIGRlbnlpbmcgdGhlIHJlcXVlc3QuCisgICAg
d2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdFQktJVF9QRVJNSVNTSU9OX1JF
UVVFU1Qob2JqZWN0KSk7CisgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X3VzZXJfbWVkaWFfcGVy
bWlzc2lvbl9yZXF1ZXN0X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKK30KKworc3Rh
dGljIHZvaWQgd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2NsYXNzX2luaXQo
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFzcyoga2xhc3MpCit7CisgICAgR09i
amVjdENsYXNzKiBvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKyAgICBvYmpl
Y3RDbGFzcy0+ZGlzcG9zZSA9IHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGlzcG9z
ZTsKK30KKworV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QqIHdlYmtpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkq
IHJlcXVlc3QpCit7CisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QqIHVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFV
RVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVT
VCwgTlVMTCkpOworICAgIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LT5wcml2LT5yZXF1ZXN0
ID0gcmVxdWVzdDsKKyAgICByZXR1cm4gdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4wNWM4MDdiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApAQCAt
MCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAh
ZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxB
VElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBk
aXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdF9oCisjZGVmaW5lIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gKKworI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+
CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1J
U1NJT05fUkVRVUVTVCAgICAgICAgICAgICh3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3Jl
cXVlc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9S
RVFVRVNUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiks
IFdFQktJVF9UWVBFX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJ
T05fUkVRVUVTVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFz
cyksICBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19VU0VSX01F
RElBX1BFUk1JU1NJT05fUkVRVUVTVChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5D
RV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCkp
CisjZGVmaW5lIFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUyhr
bGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9VU0VS
X01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BF
Uk1JU1NJT05fUkVRVUVTVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xB
U1MoKG9iaiksICBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCAgICAgICAgV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3Q7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RDbGFzcyAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlIFdl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAv
KjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2
b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgq
X3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtp
dF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisKK0dfRU5E
X0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTlhZDJlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgKQEAgLTAsMCArMSwyOCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZV9oCisjZGVmaW5lIFdlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZV9oCisKKyNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCisjaW5j
bHVkZSAiV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCIKKworV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QqIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3Jl
YXRlKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSopOworCisjZW5kaWYg
Ly8gV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9u
cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
c2VjdGlvbnMudHh0CmluZGV4IDVhNmNiNDMuLjk0MzcxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rp
b25zLnR4dApAQCAtNTE1LDYgKzUxNSwyNCBAQCB3ZWJraXRfZ2VvbG9jYXRpb25fcGVybWlzc2lv
bl9yZXF1ZXN0X2dldF90eXBlCiA8L1NFQ1RJT04+CiAKIDxTRUNUSU9OPgorPEZJTEU+V2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q8L0ZJTEU+CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdAorCis8U1VCU0VDVElPTiBTdGFuZGFyZD4KK1dlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0Q2xhc3MKK1dFQktJVF9UWVBFX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFV
RVNUCitXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9JU19VU0VS
X01FRElBX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9S
RVFVRVNUX0NMQVNTCitXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xB
U1MKK1dFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9HRVRfQ0xBU1MKKworPFNV
QlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZQord2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCis8L1NFQ1RJ
T04+CisKKzxTRUNUSU9OPgogPEZJTEU+V2ViS2l0UG9saWN5RGVjaXNpb248L0ZJTEU+CiBXZWJL
aXRQb2xpY3lEZWNpc2lvbgogd2Via2l0X3BvbGljeV9kZWNpc2lvbl9kb3dubG9hZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCmluZGV4IDhkODIxOTkuLjYyMDE1
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKQEAgLTU2
LDYgKzU2LDcgQEAKICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlcXVlc3QuaD4KICNpbmNs
dWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJL
aXRVUklTY2hlbWVSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VmVyc2lvbi5oPgog
I2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViQ29udGV4dC5oPgogI2luY2x1ZGUgPHdlYmtpdDIv
V2ViS2l0V2ViSW5zcGVjdG9yLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODNiYWRlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiV2ViUGFnZU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Byb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHko
V2ViUGFnZVByb3h5KiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1ZXN0cygp
Cit7CisgICAgUGVuZGluZ1JlcXVlc3RNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wZW5kaW5n
UmVxdWVzdHMuYmVnaW4oKTsKKyAgICBQZW5kaW5nUmVxdWVzdE1hcDo6Y29uc3RfaXRlcmF0b3Ig
ZW5kID0gbV9wZW5kaW5nUmVxdWVzdHMuZW5kKCk7CisgICAgZm9yICg7IGl0ICE9IGVuZDsgKytp
dCkKKyAgICAgICAgaXQtPnZhbHVlLT5pbnZhbGlkYXRlKCk7CisKKyAgICBtX3BlbmRpbmdSZXF1
ZXN0cy5jbGVhcigpOworfQorCitQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1
ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYVJlcXVlc3RJRCkKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eT4gcmVxdWVzdCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6OmNyZWF0ZSgqdGhpcywgdXNlck1lZGlhUmVxdWVzdElEKTsKKyAgICBtX3BlbmRp
bmdSZXF1ZXN0cy5hZGQodXNlck1lZGlhUmVxdWVzdElELCByZXF1ZXN0LmdldCgpKTsKKyAgICBy
ZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24o
dWludDY0X3QgdXNlck1lZGlhUmVxdWVzdElELCBib29sIGFsbG93ZWQpCit7CisgICAgaWYgKCFt
X3BhZ2UtPmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGVuZGluZ1JlcXVlc3RN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9wZW5kaW5nUmVxdWVzdHMuZmluZCh1c2VyTWVkaWFSZXF1ZXN0
SUQpOworICAgIGlmIChpdCA9PSBtX3BlbmRpbmdSZXF1ZXN0cy5lbmQoKSkKKyAgICAgICAgcmV0
dXJuOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbih1c2VyTWVkaWFSZXF1ZXN0SUQsIGFsbG93ZWQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOworI2VuZGlmCisKKyAgICBtX3BlbmRpbmdS
ZXF1ZXN0cy5yZW1vdmUoaXQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOGJiZGFmZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsNTAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Kik7CisKKyAgICB2b2lkIGlu
dmFsaWRhdGVSZXF1ZXN0cygpOworCisgICAgLy8gQ3JlYXRlIGEgcmVxdWVzdCB0byBiZSBwcmVz
ZW50ZWQgdG8gdGhlIHVzZXIuCisgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYVJlcXVlc3RJRCk7CisK
KyAgICAvLyBDYWxsZWQgYnkgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSB3aGVuIGEg
ZGVjaXNpb24gaXMgbWFkZSBieSB0aGUgdXNlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVk
aWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworCitwcml2YXRlOgor
ICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk+PiBQZW5kaW5nUmVxdWVzdE1hcDsKKyAgICBQZW5kaW5nUmVxdWVzdE1hcCBt
X3BlbmRpbmdSZXF1ZXN0czsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmUxYTg5MDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKQEAgLTAsMCAr
MSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgor
CisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
SUQpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RJRCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElEKQoreworfQorCit2b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KCkKK3sKKyAgICBtX21hbmFnZXIu
ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0SUQsIHRydWUpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OmRlbnkoKQoreworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlz
c2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJRCwgZmFsc2UpOworfQor
Cit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUoKQorewor
ICAgIG1fbWFuYWdlci5pbnZhbGlkYXRlUmVxdWVzdHMoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi40NmY2NDM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApAQCAtMCwwICsxLDUxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eV9oCisjZGVmaW5lIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHlfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZVVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElE
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SUQpKTsKKyAg
ICB9CisKKyAgICB2b2lkIGFsbG93KCk7CisgICAgdm9pZCBkZW55KCk7CisKKyAgICB2b2lkIGlu
dmFsaWRhdGUoKTsKKworcHJpdmF0ZToKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RJRCk7CisKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgbV9tYW5hZ2VyOworICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RJRDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDJkYzE4NjIuLjIxMTAxMjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMzYsNiArMjM2LDcgQEAgV2Vi
UGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCogcGFnZUNsaWVudCwgUGFzc1JlZlB0
cjxXZWJQcm9jZXNzUHJveHk+IHAKICAgICAsIG1fbWFpbkZyYW1lKDApCiAgICAgLCBtX3VzZXJB
Z2VudChzdGFuZGFyZFVzZXJBZ2VudCgpKQogICAgICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcih0aGlzKQorICAgICwgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIodGhpcykKICAgICAsIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KHRoaXMpCiAgICAgLCBtX2VzdGltYXRlZFByb2dyZXNzKDApCiAgICAgLCBtX2lzSW5XaW5kb3co
bV9wYWdlQ2xpZW50LT5pc1ZpZXdJbldpbmRvdygpKQpAQCAtMzk2Myw2ICszOTY0LDE4IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgZ2VvbG9jYXRpb25JRCwKICAgICAgICAgcmVxdWVzdC0+ZGVueSgpOwogfQogCit2b2lk
IFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIp
Cit7CisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1l
SUQpOworICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUpOworCisgICAgUmVmUHRyPFdlYlNlY3VyaXR5
T3JpZ2luPiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmln
aW5JZGVudGlmaWVyKTsKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eT4gcmVxdWVzdCA9IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNyZWF0ZVJl
cXVlc3QodXNlck1lZGlhSUQpOworCisgICAgaWYgKCFtX3VpQ2xpZW50LmRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHRoaXMsIGZyYW1lLCBvcmlnaW4uZ2V0KCksIHJl
cXVlc3QuZ2V0KCkpKQorICAgICAgICByZXF1ZXN0LT5kZW55KCk7Cit9CisKIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogewogICAgIGlmICghaXNSZXF1ZXN0SURWYWxp
ZChyZXF1ZXN0SUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IGZlN2ZjZmYuLmE0MzYyNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJp
dG1hcC5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmgiCiAjaW5jbHVkZSAiVmlld1N0YXRlLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVk
ZSAiV0tQYWdlUHJpdmF0ZS5oIgpAQCAtODQ1LDYgKzg0Niw4IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByZWF0dGFjaFRvV2ViUHJvY2VzcygpOwogICAgIHZvaWQgcmVhdHRhY2hUb1dlYlByb2Nlc3NX
aXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKik7CiAKKyAgICB2b2lkIHJlcXVlc3RVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKTsKKwogICAgIHZvaWQgcmVxdWVzdE5vdGlm
aWNhdGlvblBlcm1pc3Npb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGNvbnN0IFN0cmluZyYg
b3JpZ2luU3RyaW5nKTsKICAgICB2b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0
aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0
cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0IFN0cmluZyYgZGlyLCBjb25zdCBT
dHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwogICAgIHZvaWQg
Y2FuY2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKQEAgLTEwODAsNiAr
MTA4Myw3IEBAIHByaXZhdGU6CiAgICAgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSBtX2FjdGl2ZUNv
bnRleHRNZW51SGl0VGVzdFJlc3VsdERhdGE7CiAgICAgUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyUHJveHk+IG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiAgICAgR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOworICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogICAgIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOwogCiAgICAgZG91YmxlIG1fZXN0aW1hdGVkUHJvZ3Jlc3M7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBhOTg1
MzhiLi43ZTQxODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTIwMyw3ICsyMDMsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKIAogICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3Qg
ZnJhbWVJRCwgV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKLSAgICAKKworICAgICMgVXNl
ciBNZWRpYSBtZXNzYWdlcworICAgIFJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUo
dWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIG9yaWdp
bklkZW50aWZpZXIpCisKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3RO
b3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgV1RGOjpTdHJpbmcgb3Jp
Z2luSWRlbnRpZmllcikKICAgICBTaG93Tm90aWZpY2F0aW9uKFdURjo6U3RyaW5nIHRpdGxlLCBX
VEY6OlN0cmluZyBib2R5LCBXVEY6OlN0cmluZyBpY29uVVJMLCBXVEY6OlN0cmluZyB0YWcsIFdU
Rjo6U3RyaW5nIGxhbmcsIFdURjo6U3RyaW5nIGRpciwgV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRp
ZmllciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlVJQ2xpZW50LmNwcAppbmRleCBiZmE0ZDhlLi45NDgyZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJOYXRp
dmVXZWJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuaCIKICNpbmNsdWRlICJQbHVnaW5JbmZvcm1hdGlvbi5oIgorI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNs
dWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJO
dW1iZXIuaCIKQEAgLTM1Niw2ICszNTcsMTUgQEAgYm9vbCBXZWJVSUNsaWVudDo6ZGVjaWRlUG9s
aWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZ2UKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBXZWJVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5
KiBmcmFtZSwgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSogcGVybWlzc2lvblJlcXVlc3QpCit7CisgICAgaWYgKCFtX2NsaWVudC5kZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkob3JpZ2luKSwgdG9BUEkocGVy
bWlzc2lvblJlcXVlc3QpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwogYm9vbCBXZWJVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2lu
LCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvblJlcXVlc3QpCiB7CiAg
ICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKaW5kZXggOTgxM2Y1Ny4u
NjcwMmZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKQEAgLTQ5LDYg
KzQ5LDcgQEAgY2xhc3MgSW1tdXRhYmxlRGljdGlvbmFyeTsKIGNsYXNzIE5hdGl2ZVdlYktleWJv
YXJkRXZlbnQ7CiBjbGFzcyBOYXRpdmVXZWJXaGVlbEV2ZW50OwogY2xhc3MgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3Q7CitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OwogY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViRGF0
YTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CkBAIC0xMDIsNiArMTAzLDcgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIFdlYk9w
ZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5Kik7CiAg
ICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBh
Z2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBXZWJTZWN1cml0eU9yaWdpbiosIEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RQcm94eSopOworICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIFdlYlNl
Y3VyaXR5T3JpZ2luKiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSopOwogICAgIGJv
b2wgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVBy
b3h5KiwgV2ViU2VjdXJpdHlPcmlnaW4qLCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCop
OwogCiAgICAgLy8gUHJpbnRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCAzMTg3NzI1Li4yNmQ3NDljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlN
YWMubW0KQEAgLTQ0OCw2ICs0NDgsNyBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UoKQogICAgICAgICAwLCAvLyBzaG93Q29sb3JQ
aWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIHVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZAorICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAogICAgIH07CiAKICAgICBpbnNwZWN0b3JQYWdlLT5p
bml0aWFsaXplVUlDbGllbnQoJnVpQ2xpZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMzZkOTIyLi43MjE3NjNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC00MTUsNiArNDE1LDE0IEBACiAJCTNGODdCOUJEMTU4OTQwMTIwMDkwRkY2MiAvKiBXZWJDb2xv
ckNob29zZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gM0Y4N0I5QkExNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi87IH07
CiAJCTNGODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdCOUJCMTU4OTNGNjMw
MDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLzsgfTsKIAkJM0Y4N0I5QzAxNTg5NDBEODAw
OTBGRjYyIC8qIFdlYkNvbG9yUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCRjE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JQaWNr
ZXIuaCAqLzsgfTsKKwkJNEEyMDIwOTUxODFDMTU2RjAwRTE3ODM0IC8qIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRBMjAyMDkxMTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJCTRBMjAyMDk2MTgxQzE1
NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEEyMDIwOTIxODFD
MTU2RjAwRTE3ODM0IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgg
Ki87IH07CisJCTRBMjAyMDk3MTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRBMjAyMDkzMTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmNwcCAqLzsgfTsKKwkJNEEyMDIwOTgxODFDMTU2RjAwRTE3ODM0IC8qIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRBMjAyMDk0MTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi87IH07CisJCTRBMjAyMDlCMTgxQzE1QTAwMEUxNzgz
NCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMjAyMDk5MTgxQzE1QTAwMEUxNzgzNCAvKiBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLzsgfTsKKwkJNEEyMDIwOUMxODFDMTVB
MDAwRTE3ODM0IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMjAyMDlBMTgxQzE1QTAwMEUxNzgz
NCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggKi87IH07CisJCTRBMjAyMDlGMTgx
QzE1QzgwMEUxNzgzNCAvKiBXZWJVc2VyTWVkaWFDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEEyMDIwOUQxODFDMTVDODAwRTE3ODM0IC8q
IFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgKi87IH07CisJCTRBMjAyMEEzMTgxQzE1REUwMEUxNzgz
NCAvKiBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTIwMjBBMTE4MUMxNURFMDBFMTc4MzQgLyogVXNlck1l
ZGlhUmVxdWVzdE1hbmFnZXIuY3BwICovOyB9OwogCQk0RjYwMTQzMjE1NUM1QUEyMDAxRkJERTAg
LyogQmxvY2tpbmdSZXNwb25zZU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9u
c2VNYXAuaCAqLzsgfTsKIAkJNTEwMjFFOUMxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRN
ZW51Q2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFj
Lm1tICovOyB9OwogCQk1MTAzMkYxODE4MEY3M0JCMDA5NjFCQjcgLyogV2ViVG9EYXRhYmFzZVBy
b2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMDMyRjE2MTgwRjczQkIwMDk2MUJCNyAvKiBXZWJUb0RhdGFiYXNlUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwICovOyB9OwpAQCAtMTg4OSw2ICsxODk3LDE2IEBACiAJCTNGODdCOUJB
MTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvckNob29zZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8q
IFdlYkNvbG9yUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
bG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBMjAyMDkxMTgxQzE1
NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRB
MjAyMDkyMTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0QTIwMjA5MzE4MUMxNTZGMDBFMTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NEEyMDIwOTQxODFDMTU2RjAwRTE3ODM0IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTIwMjA5OTE4
MUMxNUEwMDBFMTc4MzQgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEEyMDIwOUExODFDMTVBMDAw
RTE3ODM0IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0QTIwMjA5RDE4MUMxNUM4MDBFMTc4MzQgLyogV2ViVXNl
ck1lZGlhQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YlVzZXJNZWRpYUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBMjAy
MDlFMTgxQzE1QzgwMEUxNzgzNCAvKiBXZWJVc2VyTWVkaWFDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVXNlck1lZGlhQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTRBMjAyMEExMTgxQzE1REUwMEUxNzgzNCAvKiBVc2VyTWVkaWFSZXF1
ZXN0TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2Vy
TWVkaWFSZXF1ZXN0TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRB
MjAyMEEyMTgxQzE1REUwMEUxNzgzNCAvKiBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyog
QmxvY2tpbmdSZXNwb25zZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBC
bG9ja2luZ1Jlc3BvbnNlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDAz
MUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVtU2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7
IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFNlY0l0ZW1TaGltLmR5bGliOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyog
V2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTM2NjYsNiArMzY4NCwxNSBAQAogCQkJcGF0aCA9IENvY29hOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNEEyMDIwQTAxODFDMTVERTAwRTE3ODM0IC8q
IE1lZGlhU3RyZWFtICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCQk0QTIwMjBBMTE4MUMxNURFMDBFMTc4MzQgLyogVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIu
Y3BwICovLAorCQkJCTRBMjAyMEEyMTgxQzE1REUwMEUxNzgzNCAvKiBVc2VyTWVkaWFSZXF1ZXN0
TWFuYWdlci5oICovLAorCQkJKTsKKwkJCXBhdGggPSBNZWRpYVN0cmVhbTsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3
b3JrICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTQwNzQs
NiArNDEwMSw3IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTIwMjBBMDE4
MUMxNURFMDBFMTc4MzQgLyogTWVkaWFTdHJlYW0gKi8sCiAJCQkJNzU1NDIyQzUxODA2NEZGQzAw
NDZGNkE4IC8qIE9yaWdpbkRhdGEgKi8sCiAJCQkJNTEyRTM1MkExMzBCNTU5OTAwQUJEMTlBIC8q
IEFwcGxpY2F0aW9uQ2FjaGUgKi8sCiAJCQkJMzMwOTM0NEIxMzE1QjkzQTAwOTdBN0JDIC8qIENv
b2tpZXMgKi8sCkBAIC00MTA4LDYgKzQxMzYsOCBAQAogCQlCQzAzMkQ1RDEwRjQzNzIyMDA1OEMx
NUEgLyogV2ViQ29yZVN1cHBvcnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTRBMjAyMDlEMTgxQzE1QzgwMEUxNzgzNCAvKiBXZWJVc2VyTWVkaWFDbGll
bnQuY3BwICovLAorCQkJCTRBMjAyMDlFMTgxQzE1QzgwMEUxNzgzNCAvKiBXZWJVc2VyTWVkaWFD
bGllbnQuaCAqLywKIAkJCQlCQzExMUFERTExMkY1QjlBMDAzMzdCQUIgLyogbWFjICovLAogCQkJ
CUNFREExMkRFMTUyQ0NBRTgwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCAq
LywKIAkJCQlCQzExMUE1MzExMkY0RkJCMDAzMzdCQUIgLyogV2ViQ2hyb21lQ2xpZW50LmNwcCAq
LywKQEAgLTQxOTQsNiArNDIyNCwxMCBAQAogCQlCQzAzMkRDMzEwRjQzODI2MDA1OEMxNUEgLyog
VUlQcm9jZXNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQk0QTIwMjA5MTE4MUMxNTZGMDBFMTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTRBMjAyMDkyMTgxQzE1NkYwMEUxNzgzNCAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovLAorCQkJCTRBMjAyMDkzMTgx
QzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCAqLywK
KwkJCQk0QTIwMjA5NDE4MUMxNTZGMDBFMTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5oICovLAogCQkJCUJDMDMyREM0MTBGNDM4N0MwMDU4QzE1QSAvKiBBUEkgKi8sCiAJ
CQkJNTEyRjU4OEQxMkE4ODM2RjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uICovLAogCQkJCTUx
QjMwMDREMTI1MjlDRjUwMDBCNUNBMCAvKiBjZiAqLywKQEAgLTQzNTAsNiArNDM4NCw4IEBACiAJ
CUJDMEMzNzY2MTBGODA3NjYwMDc2RDdDQiAvKiBDICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTIwMjA5OTE4MUMxNUEwMDBFMTc4MzQgLyogV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJNEEyMDIwOUExODFDMTVBMDAwRTE3
ODM0IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCAqLywKIAkJCQk1MTIzQ0YxODEz
M0QyNUU2MDA1NkY4MDAgLyogY2cgKi8sCiAJCQkJNkVFODQ5QzQxMzY4RDkwNDAwMzhENDgxIC8q
IG1hYyAqLywKIAkJCQlCQ0I2MzQ3NzExNkJGMTA2MDA2MDMyMTUgLyogV2ViS2l0Ml9DLmggKi8s
CkBAIC01NjM2LDYgKzU2NzIsNyBAQAogCQkJCUJDRUU3RDBFMTI4NDZGNjkwMDk4MjdEQSAvKiBX
ZWJDb250ZXh0TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjRERTI1MTY4RkE0NDgw
MEM5NEFGQyAvKiBXZWJDb250ZXh0U3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNC
MEIwREMxMjMwNUEyNTAwQjEzNDFFIC8qIFdlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNEEyMDIwOTgxODFDMTU2RjAwRTE3ODM0IC8qIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzMDkzNDUwMTMxNUI5
NEQwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzA5
MzQ0ODEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMzA5MzQ1NjEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdl
clByb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTU3NDMsNiArNTc4MCw3IEBACiAJCQkJNTEwMzJG
MTkxODBGNzNCQjAwOTYxQkI3IC8qIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNFRTdBRDExMjgxNzk4ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0UwRTQyNTE2OEI3QTI4MDA1N0U2
NkEgLyogV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTRBMjAyMDlD
MTgxQzE1QTAwMEUxNzgzNCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTJGNTg5RDEyQTg4Mzg4MDA2Mjk1MzAgLyogV2ViUHJvdGVjdGlvblNw
YWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzk0ODQwNDE1MEMzNTA2MDBFNTJDRTkgLyogV2Vi
UmVuZGVyTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTM1MUY2MTgwRjVDNzUwMEU1M0JF
OSAvKiBXZWJJREJGYWN0b3J5QmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCkBAIC01ODI1LDYgKzU4
NjMsNyBAQAogCQkJCUY2MkE3NjYyMTJCMUFCRUQwMDA1RjFCNiAvKiBXS0RhdGFiYXNlTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc1RkExMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGlj
dGlvbmFyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMTdEMDcxNjI2MEZGNDAwNzA1NEY1IC8q
IFdLRE9NRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTRBMjAyMDk2MTgxQzE1NkYwMEUx
NzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMwMTdEMDkxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkMwMTdEMEIxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NSW50ZXJu
YWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAxN0QwRDE2MjYwRkY0MDA3MDU0RjUgLyogV0tE
T01Ob2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTY1OTEsNiArNjYzMCw4IEBACiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQkM1RDI0QTExNkNDM0I5
RTAwN0Q1NDYxIC8qIENoaWxkUHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLywKKwkJCQk0QTIw
MjA5RjE4MUMxNUM4MDBFMTc4MzQgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTRBMjAyMEEzMTgxQzE1REUwMEUxNzgzNCAvKiBVc2VyTWVkaWFSZXF1ZXN0TWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTY2NzIsNiArNjcxMyw3IEBACiAJCQkJRTE1MTND
NjYxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBMkE0QjBFMTU4NkEyMjQwMDkwQzlFOSAvKiBDb2xvclNwYWNlRGF0YS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBNkY5RkI3MTFFMTQwODUwMERCMTM3MSAvKiBDb21tYW5kTGluZU1h
Yy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0QTIwMjA5NzE4MUMxNTZGMDBFMTc4MzQgLyogVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzAz
MkRBQTEwRjQzN0QxMDA1OEMxNUEgLyogQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTMwRUFDNjExNUQ3REEzMDA1M0U5MzcgLyogQ29ubmVjdGlvbk1hYy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MTM2MTgzRDE2MzEyNkRBMDBBOTlEREUgLyogQ29ubmVjdGlvblN0YWNrLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtNzAwNSw2ICs3MDQ3LDcgQEAKIAkJCQkxQzhFMjgzNTEyNzVE
NzM4MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUNBOEI5MzYxMjdDNzc0RTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUNBOEI5NDUxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBMjAyMDlCMTgxQzE1
QTAwMEUxNzgzNCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUMwMzM3REQzMTI3QTJBMEUwMDhGRjRGNCAvKiBXZWJLZXlib2FyZEV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlFMTA1MTMxNUNDRkMwMDlFNzAzMSAvKiBXZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOUJBNTA0MTY5N0M0
NTMwMEU0NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTcw
NzEsNiArNzExNCw3IEBACiAJCQkJMzNGOUQ1QjkxMzEyRjFFRTAwMEQ2ODNGIC8qIFdlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzMzNjc2NTUxMzBD
OUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTMzMzY3NjM1MTMwQzk5QjIwMDZDOURFMiAvKiBXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBMjAyMDk1MTgx
QzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzM2NzY1NzEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MTBBRkZCOTE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFCIC8qIFdlYlJlc291cmNl
TG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3RNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWNh
YzRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJG
cmFtZS5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zy
YW1lTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB1aW50
NjRfdCBnZW5lcmF0ZVVzZXJNZWRpYVJlcXVlc3RJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90
IHVuaXF1ZVVzZXJNZWRpYVJlcXVlc3RJRCA9IDE7CisgICAgcmV0dXJuIHVuaXF1ZVVzZXJNZWRp
YVJlcXVlc3RJRCsrOworfQorCitVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUmVx
dWVzdE1hbmFnZXIoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCisK
K3ZvaWQgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OnJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQ
dHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4gcHJwUmVxdWVzdCkKK3sKKyAgICBSZWZQdHI8
V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCA9IHBycFJlcXVlc3Q7CisgICAgdWlu
dDY0X3QgcmVxdWVzdElEID0gZ2VuZXJhdGVVc2VyTWVkaWFSZXF1ZXN0SUQoKTsKKworICAgIG1f
dXNlck1lZGlhUmVxdWVzdFRvSURNYXAuc2V0KHJlcXVlc3QsIHJlcXVlc3RJRCk7CisgICAgbV9p
ZFRvVXNlck1lZGlhUmVxdWVzdE1hcC5zZXQocmVxdWVzdElELCByZXF1ZXN0KTsKKworICAgIEZy
YW1lKiBmcmFtZSA9IHJlcXVlc3QtPmZyYW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsKKworICAg
IFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVM
b2FkZXJDbGllbnQoZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpKTsKKyAgICBXZWJGcmFtZSogd2Vi
RnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJG
cmFtZSgpIDogbnVsbHB0cjsKKyAgICBBU1NFUlQod2ViRnJhbWUpOworCisgICAgUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VXNlck1l
ZGlhUGVybWlzc2lvbkZvckZyYW1lKHJlcXVlc3RJRCwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgb3Jp
Z2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKSkpOworfQorCit2b2lkIFVzZXJNZWRpYVJlcXVlc3RN
YW5hZ2VyOjpjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqIHJlcXVlc3Qp
Cit7CisgICAgZm9yIChVc2VyTWVkaWFSZXF1ZXN0VG9JRE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQg
PSBtX3VzZXJNZWRpYVJlcXVlc3RUb0lETWFwLmJlZ2luKCksIGVuZCA9IG1fdXNlck1lZGlhUmVx
dWVzdFRvSURNYXAuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBSZWZQdHI8V2Vi
Q29yZTo6VXNlck1lZGlhUmVxdWVzdD4gc3RvcmVkUmVxdWVzdCA9IGl0LT5rZXk7CisgICAgICAg
IGlmIChzdG9yZWRSZXF1ZXN0LmdldCgpID09IHJlcXVlc3QpIHsKKyAgICAgICAgICAgIG1faWRU
b1VzZXJNZWRpYVJlcXVlc3RNYXAucmVtb3ZlKGl0LT52YWx1ZSk7CisgICAgICAgICAgICBtX3Vz
ZXJNZWRpYVJlcXVlc3RUb0lETWFwLnJlbW92ZShpdC0+a2V5KTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcjo6
ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFS
ZXF1ZXN0SUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBJRFRvVXNlck1lZGlhUmVxdWVzdE1hcDo6
aXRlcmF0b3IgaXQgPSBtX2lkVG9Vc2VyTWVkaWFSZXF1ZXN0TWFwLmZpbmQodXNlck1lZGlhUmVx
dWVzdElEKTsKKyAgICBpZiAoaXQgPT0gbV9pZFRvVXNlck1lZGlhUmVxdWVzdE1hcC5lbmQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+
IHJlcXVlc3QgPSBpdC0+dmFsdWU7CisgICAgaWYgKGFsbG93ZWQpCisgICAgICAgIHJlcXVlc3Qt
PnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBlbHNlCisgICAgICAgIHJlcXVlc3QtPnVz
ZXJNZWRpYUFjY2Vzc0RlbmllZCgpOworCisgICAgbV9pZFRvVXNlck1lZGlhUmVxdWVzdE1hcC5y
ZW1vdmUoaXQpOworICAgIG1fdXNlck1lZGlhUmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3Qp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01l
ZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZTc5M2ZlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaApAQCAtMCww
ICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYg
VXNlck1lZGlhUmVxdWVzdE1hbmFnZXJfaAorI2RlZmluZSBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdl
cl9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyIHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcihXZWJQYWdlJik7
CisKKyAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1l
ZGlhUmVxdWVzdD4pOworICAgIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpVc2VyTWVkaWFS
ZXF1ZXN0Kik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNp
b24odWludDY0X3QgdXNlck1lZGlhUmVxdWVzdElELCBib29sIGFsbG93ZWQpOworCitwcml2YXRl
OgorICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpSZWZQdHI8V2ViQ29yZTo6VXNl
ck1lZGlhUmVxdWVzdD4+IElEVG9Vc2VyTWVkaWFSZXF1ZXN0TWFwOworICAgIHR5cGVkZWYgSGFz
aE1hcDxXVEY6OlJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0PiwgdWludDY0X3Q+IFVz
ZXJNZWRpYVJlcXVlc3RUb0lETWFwOworICAgIElEVG9Vc2VyTWVkaWFSZXF1ZXN0TWFwIG1faWRU
b1VzZXJNZWRpYVJlcXVlc3RNYXA7CisgICAgVXNlck1lZGlhUmVxdWVzdFRvSURNYXAgbV91c2Vy
TWVkaWFSZXF1ZXN0VG9JRE1hcDsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUmVxdWVzdE1hbmFnZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJV
c2VyTWVkaWFDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjg5Mzc0OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKQEAgLTAsMCArMSw1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViVXNlck1lZGlhQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaCIKKyNpbmNsdWRl
ICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
VXNlck1lZGlhUmVxdWVzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1dlYlVzZXJNZWRpYUNsaWVudDo6fldlYlVzZXJNZWRpYUNsaWVudCgp
Cit7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKK3sKKyAg
ICBkZWxldGUgdGhpczsKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnJlcXVlc3RQZXJt
aXNzaW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCkKK3sK
KyAgICBtX3BhZ2UtPnVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKCkucmVxdWVzdFBlcm1pc3Npb24o
cmVxdWVzdCk7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFdl
YkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgbV9wYWdlLT51c2VyTWVk
aWFSZXF1ZXN0TWFuYWdlcigpLmNhbmNlbFJlcXVlc3QocmVxdWVzdCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlh
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVz
ZXJNZWRpYUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxZmJh
YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXZWJVc2VyTWVkaWFDbGllbnRfaAor
I2RlZmluZSBXZWJVc2VyTWVkaWFDbGllbnRfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJVc2VyTWVkaWFDbGllbnQgOiBwdWJs
aWMgV2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJVc2VyTWVkaWFD
bGllbnQoV2ViUGFnZSogcGFnZSkKKyAgICAgICAgOiBtX3BhZ2UocGFnZSkKKyAgICB7CisgICAg
fQorCisgICAgdmlydHVhbCB+V2ViVXNlck1lZGlhQ2xpZW50KCk7CisKK3ByaXZhdGU6CisgICAg
dmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKSBPVkVSUklERTsKKworICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpVc2Vy
TWVkaWFSZXF1ZXN0KikgT1ZFUlJJREU7CisKKyAgICBXZWJQYWdlKiBtX3BhZ2U7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNlbmRpZiAvLyBXZWJVc2VyTWVkaWFDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDFkZjg2NDEuLjVjYzAyMWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTg0LDYgKzg0
LDcgQEAKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
V2ViVXNlck1lZGlhQ2xpZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9DaHJvbWUuaD4KQEAgLTI3OSw2ICsyODAsOSBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90
IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAg
ICAsIG1fbWF4aW11bVJlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW4oMCkKICAgICAsIG1fc2Nyb2xs
UGlubmluZ0JlaGF2aW9yKERvTm90UGluKQogICAgICwgbV91c2VUaHJlYWRlZFNjcm9sbGluZyhm
YWxzZSkKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICwgbV91c2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCisjZW5kaWYKIHsKICAgICBBU1NFUlQobV9wYWdlSUQp
OwogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgbm9uLWlkZWFsIGxvY2F0aW9uIGZvciB0aGlzIFNl
dHRpbmcgYW5kCkBAIC0zMzgsNiArMzQyLDEwIEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3Qg
cGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAg
IFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VQcm94aW1pdHlUbyhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJE
ZXZpY2VQcm94aW1pdHlDbGllbnQodGhpcykpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgIFdlYkNvcmU6OnByb3ZpZGVVc2VyTWVkaWFUbyhtX3BhZ2UuZ2V0KCksIG5l
dyBXZWJVc2VyTWVkaWFDbGllbnQodGhpcykpOworI2VuZGlmCisKICAgICBtX3BhZ2UtPnNldENh
blN0YXJ0TWVkaWEoZmFsc2UpOwogICAgIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyA9IHBh
cmFtZXRlcnMubWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKIApAQCAtMjc4NCw2ICsyNzkyLDEz
IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBtX3VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lv
bkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBh
Z2U6OmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90
aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIHsKICAgICBub3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIoKS0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lv
bihub3RpZmljYXRpb25JRCwgYWxsb3dlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAyZGYwMWU3Li4zYTI5YTczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNs
dWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAi
U2hhcmVhYmxlQml0bWFwLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaCIK
ICNpbmNsdWRlICJXZWJVbmRvU3RlcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGF0aW9uQWx0
ZXJuYXRpdmUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+CkBAIC0zODAsNiArMzgx
LDEwIEBAIHB1YmxpYzoKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYg
Z2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisgICAgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXImIHVzZXJNZWRpYVJlcXVlc3RN
YW5hZ2VyKCkgeyByZXR1cm4gbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0K
KyNlbmRpZgorCiAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKiBub3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKIAogICAgIHZvaWQgcGFnZURpZFNj
cm9sbCgpOwpAQCAtNzgzLDcgKzc4OCwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZXh0ZW5kU2Fu
ZGJveEZvckZpbGVGcm9tT3BlblBhbmVsKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYp
OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgdm9pZCBkaWRSZWNlaXZl
R2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2VvbG9jYXRpb25JRCwgYm9v
bCBhbGxvd2VkKTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2b2lk
IGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlh
SUQsIGJvb2wgYWxsb3dlZCk7CisjZW5kaWYKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNh
dGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxv
d2VkKTsKIApAQCAtOTkxLDYgKzEwMDIsMTAgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpTY3Jv
bGxQaW5uaW5nQmVoYXZpb3IgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3I7CiAKICAgICBib29sIG1f
dXNlVGhyZWFkZWRTY3JvbGxpbmc7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFVz
ZXJNZWRpYVJlcXVlc3RNYW5hZ2VyIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggYTA2
ZTRmZC4uY2IxYWU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTIwMSw2ICsyMDEsMTEgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVy
bWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKICNl
bmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAjIE1lZGlhU3RyZWFtCisgICAg
RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgYm9vbCBhbGxvd2VkKQorI2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbgogICAgIERpZFJl
Y2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQsIGJvb2wgYWxsb3dlZCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDUyOWE3Y2MuLjFjOGRiOGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMyBAQAogMjAxMy0xMC0yOCAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW1dLMl0g
VXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYzogU2hvdyBh
IHBvcHVwIHdoZW4gdGhlIHBhZ2UKKyAgICAgICAgcmVxdWlyZXMgdXNlciBwZXJtaXNzaW9uIHRv
IGFjY2VzcyBhdWRpby92aWRlbyBkZXZpY2VzLgorICAgICAgICAocGVybWlzc2lvblJlcXVlc3RE
aWFsb2dDYWxsYmFjayk6CisgICAgICAgIChzaG93R2VvbG9jYXRpb25SZXF1ZXN0RGlhbG9nKToK
KyAgICAgICAgKHNob3dVc2VyTWVkaWFSZXF1ZXN0RGlhbG9nKToKKyAgICAgICAgKHdlYlZpZXdE
ZWNpZGVQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHA6IG51bGwKKyAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qg
aGFuZGxlcnMuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2Up
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25z
KToKKworMjAxMy0xMC0yOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
CisKICAgICAgICAgW0dUS10gZW5hYmxlIG1lZGlhLXN0cmVhbSBpbiBidWlsZC13ZWJraXQKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzE0NAogCmRp
ZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jIGIvVG9vbHMv
TWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYwppbmRleCAxZDNiNGZjLi44YWY0MDgzIDEw
MDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCisrKyBiL1Rv
b2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKQEAgLTI0Niw3ICsyNDYsNyBAQCBz
dGF0aWMgdm9pZCBiYWNrRm9yd2FkbGlzdENoYW5nZWQoV2ViS2l0QmFja0ZvcndhcmRMaXN0ICpi
YWNrRm9yd2FkbGlzdCwgV2ViS2l0QgogICAgIGJyb3dzZXJXaW5kb3dVcGRhdGVOYXZpZ2F0aW9u
QWN0aW9ucyh3aW5kb3csIGJhY2tGb3J3YWRsaXN0KTsKIH0KIAotc3RhdGljIHZvaWQgZ2VvbG9j
YXRpb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2soR3RrRGlhbG9nICpkaWFsb2csIGdpbnQgcmVzcG9u
c2UsIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KQorc3RhdGljIHZvaWQgcGVybWlz
c2lvblJlcXVlc3REaWFsb2dDYWxsYmFjayhHdGtEaWFsb2cgKmRpYWxvZywgZ2ludCByZXNwb25z
ZSwgV2ViS2l0UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3QpCiB7CiAgICAgc3dpdGNoIChyZXNw
b25zZSkgewogICAgIGNhc2UgR1RLX1JFU1BPTlNFX1lFUzoKQEAgLTM5OSwxMSArMzk5LDggQEAg
c3RhdGljIGdib29sZWFuIHdlYlZpZXdEZWNpZGVQb2xpY3koV2ViS2l0V2ViVmlldyAqd2ViVmll
dywgV2ViS2l0UG9saWN5RGVjaXNpb24KICAgICB9CiB9CiAKLXN0YXRpYyBnYm9vbGVhbiB3ZWJW
aWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0
UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3QsIEJyb3dzZXJXaW5kb3cgKndpbmRvdykKK3N0YXRp
YyBnYm9vbGVhbiBzaG93R2VvbG9jYXRpb25SZXF1ZXN0RGlhbG9nKFdlYktpdFBlcm1pc3Npb25S
ZXF1ZXN0ICpyZXF1ZXN0LCBCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7Ci0gICAgaWYgKCFXRUJL
SVRfSVNfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKQotICAgICAgICBy
ZXR1cm4gRkFMU0U7Ci0KICAgICBHdGtXaWRnZXQgKmRpYWxvZyA9IGd0a19tZXNzYWdlX2RpYWxv
Z19uZXcoR1RLX1dJTkRPVyh3aW5kb3cpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHVEtfRElBTE9HX01PREFMIHwgR1RLX0RJQUxPR19ERVNUUk9ZX1dJ
VEhfUEFSRU5ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHVEtfTUVTU0FHRV9RVUVTVElPTiwKQEAgLTQxMSwxMiArNDA4LDM4IEBAIHN0YXRpYyBnYm9v
bGVhbiB3ZWJWaWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0V2ViVmlldyAqd2ViVmll
dywgV2ViS2l0UGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJHZW9sb2NhdGlvbiByZXF1ZXN0Iik7CiAKICAgICBndGtfbWVzc2FnZV9kaWFsb2dfZm9y
bWF0X3NlY29uZGFyeV90ZXh0KEdUS19NRVNTQUdFX0RJQUxPRyhkaWFsb2cpLCAiQWxsb3cgZ2Vv
bG9jYXRpb24gcmVxdWVzdD8iKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGRpYWxvZywgInJlc3Bv
bnNlIiwgR19DQUxMQkFDSyhnZW9sb2NhdGlvblJlcXVlc3REaWFsb2dDYWxsYmFjayksIGdfb2Jq
ZWN0X3JlZihyZXF1ZXN0KSk7CisgICAgZ19zaWduYWxfY29ubmVjdChkaWFsb2csICJyZXNwb25z
ZSIsIEdfQ0FMTEJBQ0socGVybWlzc2lvblJlcXVlc3REaWFsb2dDYWxsYmFjayksIGdfb2JqZWN0
X3JlZihyZXF1ZXN0KSk7CisgICAgZ3RrX3dpZGdldF9zaG93KGRpYWxvZyk7CisKKyAgICByZXR1
cm4gVFJVRTsKK30KKworc3RhdGljIGdib29sZWFuIHNob3dVc2VyTWVkaWFSZXF1ZXN0RGlhbG9n
KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0LCBCcm93c2VyV2luZG93ICp3aW5kb3cp
Cit7CisgICAgR3RrV2lkZ2V0ICpkaWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3KEdUS19X
SU5ET1cod2luZG93KSwKKyAgICAgICAgR1RLX0RJQUxPR19NT0RBTCB8IEdUS19ESUFMT0dfREVT
VFJPWV9XSVRIX1BBUkVOVCwKKyAgICAgICAgR1RLX01FU1NBR0VfUVVFU1RJT04sCisgICAgICAg
IEdUS19CVVRUT05TX1lFU19OTywKKyAgICAgICAgIlVzZXJNZWRpYSByZXF1ZXN0Iik7CisKKyAg
ICBndGtfbWVzc2FnZV9kaWFsb2dfZm9ybWF0X3NlY29uZGFyeV90ZXh0KEdUS19NRVNTQUdFX0RJ
QUxPRyhkaWFsb2cpLCAiQWxsb3cgdXNlcm1lZGlhIHJlcXVlc3Q/Iik7CisgICAgZ19zaWduYWxf
Y29ubmVjdChkaWFsb2csICJyZXNwb25zZSIsIEdfQ0FMTEJBQ0socGVybWlzc2lvblJlcXVlc3RE
aWFsb2dDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CiAgICAgZ3RrX3dpZGdldF9z
aG93KGRpYWxvZyk7CiAKICAgICByZXR1cm4gVFJVRTsKIH0KIAorc3RhdGljIGdib29sZWFuIHdl
YlZpZXdEZWNpZGVQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBXZWJL
aXRQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCwgQnJvd3NlcldpbmRvdyAqd2luZG93KQorewor
ICAgIGlmIChXRUJLSVRfSVNfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3Qp
KQorICAgICAgICByZXR1cm4gc2hvd0dlb2xvY2F0aW9uUmVxdWVzdERpYWxvZyhyZXF1ZXN0LCB3
aW5kb3cpOworCisgICAgaWYgKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVT
VChyZXF1ZXN0KSkKKyAgICAgICAgcmV0dXJuIHNob3dVc2VyTWVkaWFSZXF1ZXN0RGlhbG9nKHJl
cXVlc3QsIHdpbmRvdyk7CisKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKIHN0YXRpYyB2b2lkIHdl
YlZpZXdNb3VzZVRhcmdldENoYW5nZWQoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0SGl0
VGVzdFJlc3VsdCAqaGl0VGVzdFJlc3VsdCwgZ3VpbnQgbW91c2VNb2RpZmllcnMsIEJyb3dzZXJX
aW5kb3cgKndpbmRvdykKIHsKICAgICBpZiAoIXdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY29udGV4
dF9pc19saW5rKGhpdFRlc3RSZXN1bHQpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nl
ci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBiL1Rvb2xzL01pbmlCcm93c2VyL21h
Yy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCmluZGV4IDdlMzAwODYuLjRmNWU5YWIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxl
ci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxl
ci5tCkBAIC03MjUsNiArNzI1LDcgQEAgLSAodm9pZClhd2FrZUZyb21OaWIKICAgICAgICAgMCwg
Ly8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAg
ICAwLCAvLyB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQKKyAgICAgICAgMCwgLy8gZGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKICAgICB9OwogICAgIFdLUGFn
ZVNldFBhZ2VVSUNsaWVudChfd2ViVmlldy5wYWdlUmVmLCAmdWlDbGllbnQpOwogfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA1M2Y2MjBmLi4xZThkNmU2
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMjUyLDYg
KzI1Miw3IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFn
ZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAsIC8vIHNob3dDb2xv
clBpY2tlcgogICAgICAgICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gdW5h
dmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkCisgICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlD
bGllbnQobmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xpZW50KTsKIApAQCAtNDU0LDYgKzQ1NSw3IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhXS0RpY3Rpb25h
cnlSZWYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAs
IC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNr
ZWQsCisgICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFn
ZSgpLCAmcGFnZVVJQ2xpZW50KTsKIAotLSAKMS44LjQucmMz
</data>
<flag name="commit-queue"
          id="238083"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215378</attachid>
            <date>2013-10-29 05:25:27 -0700</date>
            <delta_ts>2014-09-02 00:48:12 -0700</delta_ts>
            <desc>wk2 usermediaclient</desc>
            <filename>wk2-usermediaclient.patch</filename>
            <type>text/plain</type>
            <size>86397</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA4OWE3MTJjZGY0MTlhNTI4YjFhMzgwMjA1MTdlMDdlYzAwYmU5OGMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDI4IE9jdCAyMDEzIDA5OjI4OjMxICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
d2syIHVzZXJtZWRpYWNsaWVudAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAxMyArKysKIC4uLi9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwICAgICAgIHwgIDExICsrKwogLi4uL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggfCAgIDQgKwogU291cmNlL1dlYktpdDIvQ01h
a2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKystCiBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKysrKysrKysrKysr
KysrKysrCiBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtICAgICAgICAgICAg
ICAgICB8ICAxMyArKysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCAgICAg
ICAgICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMu
Y3BwICAgICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFp
dHMuaCAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmggICAgICAgICAgICAgICAgICB8ICAgMSArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0LmggICAgICAgICB8ICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmggICAgICAgICAgICB8ICAgNyArLQogLi4uL0FQSS9DL1dLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuY3BwICAgICAgICAgfCAgNDEgKysrKysrKysKIC4uLi9VSVByb2Nl
c3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIHwgIDM4ICsrKysrKysrCiAu
Li4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAgICB8ICAgOCAr
KwogLi4uL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwICAgfCAx
MDMgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oICAgICB8ICA2NCArKysrKysrKysrKysrCiAuLi4vZ3RrL1dlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oICB8ICAyOCArKysrKysKIC4uLi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IHwgIDE4ICsrKysKIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaCAgICAgICAgIHwgICAxICsK
IC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgICAgIHwgIDY5
ICsrKysrKysrKysrKysrCiAuLi4vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaCAgICAgICB8ICA1MCArKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwICB8ICA0OCArKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAgICB8ICA1MSArKysrKysrKysrCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCAgICAgICAgICB8ICAxMyArKysK
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAgICAgIHwgICA0
ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gIHwg
ICA1ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwICAgICAgICAg
ICB8ICAxMCArKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmggICAgICAg
ICAgICAgfCAgIDIgKwogLi4uL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94
eU1hYy5tbSAgfCAgIDEgKwogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qICAgfCAgNDQgKysrKysrKysrCiAuLi4vTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVx
dWVzdE1hbmFnZXIuY3BwICAgICAgICB8ICA5OCArKysrKysrKysrKysrKysrKysrKwogLi4uL01l
ZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmggICAgICAgICAgfCAgNTUgKysrKysr
KysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwICAgICAgICAg
IHwgIDU1ICsrKysrKysrKysrCiAuLi4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2Vy
TWVkaWFDbGllbnQuaCB8ICA1MyArKysrKysrKysrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwICAgICAgfCAgMTUgKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oICAgICAgICB8ICAxNSArKysKIC4uLi9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIHwgICA1ICsKIFRvb2xzL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICsrKysKIFRvb2xz
L01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMgICAgICAgICAgICAgIHwgIDM1ICsrKysr
LS0KIFRvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tIHwg
ICAxICsKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwICAgICAgICAg
IHwgICAyICsKIDQzIGZpbGVzIGNoYW5nZWQsIDExMDcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRp
b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RN
YW5hZ2VyLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xp
ZW50LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRiYmRjOC4u
YmJkM2JiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTEwLTI4ICBQaGlsaXBw
ZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2VyTWVk
aWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOiBBZGRl
ZCBkb2N1bWVudCBhbmQKKyAgICAgICAgZnJhbWUgYWNjZXNzb3JzLCBuZWVkZWQgYnkgdGhlIFVz
ZXJNZWRpYVJlcXVlc3RNYW5hZ2VyIG9mIHRoZSBXZWJQcm9jZXNzLgorICAgICAgICAoV2ViQ29y
ZTo6VXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1l
ZGlhUmVxdWVzdDo6ZnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1l
ZGlhUmVxdWVzdC5oOgorCiAyMDEzLTEwLTIyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbV0syXVtHVEtdIGVuYWJsZS1tZWRpYS1zdHJlYW0gU2V0
dGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggZGMwYjUyMC4uYjRiMWUxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3Bw
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50c0ltcGwuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVh
bS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2VudGVyLmgiCkBAIC0xMDAsNiArMTAxLDE2IEBA
IFVzZXJNZWRpYVJlcXVlc3Q6On5Vc2VyTWVkaWFSZXF1ZXN0KCkKIHsKIH0KIAorRG9jdW1lbnQq
IFVzZXJNZWRpYVJlcXVlc3Q6OmRvY3VtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9Eb2N1
bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworfQorCitGcmFtZSogVXNlck1lZGlhUmVx
dWVzdDo6ZnJhbWUoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVudCgpID8gZG9jdW1lbnQo
KS0+ZnJhbWUoKSA6IG51bGxwdHI7Cit9CisKIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1
ZXN0OjpzZWN1cml0eU9yaWdpbigpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggM2NmZWVmNy4uZmYyZDZlYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAg
LTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaWN0aW9uYXJ5Owog
Y2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBGcmFtZTsKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBj
bGFzcyBNZWRpYVN0cmVhbURlc2NyaXB0b3I7CiBjbGFzcyBVc2VyTWVkaWFDb250cm9sbGVyOwpA
QCAtNTksNiArNjAsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VXNlck1lZGlh
UmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBVc2VyTWVkaWFDb250cm9s
bGVyKiwgY29uc3QgRGljdGlvbmFyeSYgb3B0aW9ucywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2Vy
TWVkaWFTdWNjZXNzQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9y
Q2FsbGJhY2s+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgflVzZXJNZWRpYVJlcXVlc3QoKTsKIAor
ICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OworICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0
OworCiAgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2
b2lkIHN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IDI4NjUyM2QuLjQ2MTVlY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NNYWtlTGlzdHMudHh0CkBAIC00Myw2ICs0Myw3IEBAIHNldChXZWJLaXQyX0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9GaWxlQVBJIgogICAg
ICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4iCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24iCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nl
c3MvTWVkaWFTdHJlYW0iCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTmV0d29ya0lu
Zm8iCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlIgogICAgICIk
e1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlIgpAQCAtMjkzLDYgKzI5NCwx
MCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGlt
ZXIuY3BwCiAgICAgVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vz
cy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcAogICAg
IFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAogICAgIFVJUHJv
Y2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCkBAIC0zNTIsOCArMzU3LDggQEAgc2V0KFdlYktp
dDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHAK
LSAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RSZWYuY3BwCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbVJlZi5jcHAKKyAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tCYWNrRm9yd2FyZExpc3RSZWYuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVy
eU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeVN0YXR1cy5jcHAKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcApAQCAtMzkw
LDYgKzM5NSw4IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQ
cm90ZWN0aW9uU3BhY2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1h
bmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIuY3BwCisgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCisgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaAogICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS1ZpYnJhdGlvbi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJp
YnV0ZXMuY3BwCiAKQEAgLTQ4OSw2ICs0OTYsOSBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAKICAg
ICBXZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1hbmFnZXIuY3BwCiAKKyAgICBX
ZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmNwcAorICAgIFdl
YlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaAorCiAgICAgV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKICAgICBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAogICAgIFdlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTU0MCw2ICs1NTAsOCBAQCBzZXQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5DbGll
bnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCiAg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCisgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCisgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaAogICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVmlicmF0aW9uQ2xpZW50LmNwcAogCiAgICAgV2ViUHJvY2Vz
cy9XZWJQYWdlL0RlY29kZXJBZGFwdGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGRkMzcwNGUuLjZlMGVk
YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OSBAQAorMjAxMy0xMC0yOCAgUGhpbGlwcGUgTm9y
bWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dLMl0gVXNlck1lZGlhQ2xp
ZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFN1cHBvcnQgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IGluIFdlYktpdDIuIEl0
J3MKKyAgICAgICAgaW1wbGVtZW50ZWQgc2ltaWxhcmlseSB0byB0aGUgR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdAorICAgICAgICBzdXBwb3J0LiBXaGVuIHRoZSBXZWJQYWdlIHJlcXVpcmVz
IHRoaXMgcGVybWlzc2lvbiBpdCBzZW5kcyBhCisgICAgICAgIG1lc3NhZ2UgdG8gdGhlIFVJIHBy
b2Nlc3Mgd2hpY2ggYXQgc29tZSBwb2ludCBncmFudHMgb3IgZGVuaWVzIHRoZQorICAgICAgICBw
ZXJtaXNzaW9uIGFuZCBzZW5kIHRoZSByZXN1bHQgdG8gdGhlIFdlYlByb2Nlc3MuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbTogTmV3IE1lZGlhU3RyZWFtIGRpcmVjdG9yeS4KKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOiBOZXcgZmlsZXMgaW4gdGhlIGJ1aWxkIQorICAgICAgICAq
IFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDogTmV3IHR5cGUgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDogRGl0dG8uCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOiBGb3J3YXJkLWRlY2xhcmUgdGhlIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5oOiBOZXcgRGVjaWRlUG9saWN5IGhhbmRsZXIgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmNwcDogQWRkZWQsIEMgQVBJCisgICAgICAgIGltcGxlbWVudGF0aW9uIG9mIHRoZSBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RHZXRUeXBlSUQpOgorICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFs
bG93KToKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHA6IERlY2lk
ZVBvbGljeSBoYW5kbGVyCisgICAgICAgIGltcGxlbWVudGF0aW9uIGZvciBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC4KKyAgICAgICAgKGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0KToKKyAgICAgICAgKGF0dGFjaFVJQ2xpZW50VG9WaWV3KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHA6IEFk
ZGVkLAorICAgICAgICBXZWJLaXRHVEsgQVBJIGZvciBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dCwgdmVyeSBzaW1pbGFyIHRvIHRoZQorICAgICAgICBvbmUgdXNlZCBmb3IgR2VvbG9jYXRpb24s
CisgICAgICAgICh3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KToKKyAgICAg
ICAgKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueSk6CisgICAgICAgICh3ZWJr
aXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KToKKyAgICAgICAgKHdlYmtpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGlzcG9zZSk6CisgICAgICAgICh3ZWJraXRfdXNlcl9t
ZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdENyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRl
Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1z
ZWN0aW9ucy50eHQ6IEV4cG9zZSBuZXcgQVBJCisgICAgICAgIGluIGRvY3VtZW50YXRpb24uCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oOiBFeHBvc2UgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QgQVBJLgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLAorICAgICAgICBtYW5hZ2VyIHN0b3Jp
bmcgcGVuZGluZyBVc2VyTWVkaWFQZXJtaXNzaW9uIHJlcXVlc3RzLgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVlc3RzKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJl
cXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDogQWRkZWQsIHByb3h5CisgICAgICAgIG9iamVjdCBmb3IgdGhlIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0VHlwZS4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojpj
cmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6IERlZmVyCisg
ICAgICAgIFVzZXJQZXJtaXNzaW9uUmVxdWVzdCB0byB0aGUgVUlDbGllbnQuCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW46IE5ldyBtZXNzYWdlIHRvIGhhbmRsZSBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdHMuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViVUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KToKKyAgICAgICAgRGVmZXIgcGVybWlzc2lvbiByZXF1ZXN0IHRvIEFQSUNsaWVudC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L01lZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmNwcDogQWRkZWQsCisgICAgICAg
IFdlYlByb2Nlc3Mgc2lkZSBvZiB0aGUgVXNlclJlcXVlc3RNYW5hZ2VyLCBrZWVwaW5nIHRyYWNr
IG9mIGVhY2gKKyAgICAgICAgcGVybWlzc2lvbiByZXF1ZXN0LgorICAgICAgICAoV2ViS2l0Ojpn
ZW5lcmF0ZVVzZXJNZWRpYVJlcXVlc3RJRCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVJl
cXVlc3RNYW5hZ2VyOjpVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyOjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyOjpjYW5jZWxSZXF1ZXN0KToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJt
aXNzaW9uRGVjaXNpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1l
ZGlhUmVxdWVzdE1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwOiBBZGRlZCwKKyAgICAgICAgV2ViUHJvY2Vz
cyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgV2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50LgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6On5XZWJVc2VyTWVkaWFDbGllbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6IENyZWF0ZSB0aGUKKyAgICAgICAgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyIGFuZCByZWdpc3RlciB0aGUgVXNlck1lZGlhQ2xpZW50Cisg
ICAgICAgIHRvIHRoZSBwYWdlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZl
VXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKTogRGlzcGF0Y2gKKyAgICAgICAgZGVjaXNpb24g
dG8gbWFuYWdlci4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1c2VyTWVkaWFSZXF1ZXN0TWFuYWdlcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46IE5ldyBNZXNzYWdlIHRv
IGhhbmRsZQorICAgICAgICBwZXJtaXNzaW9uIGRlY2lzaW9uIHJlc3VsdCBmcm9tIHRoZSBVSSBw
cm9jZXNzLgorCiAyMDEzLTEwLTIyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbV0syXVtHVEtdIGVuYWJsZS1tZWRpYS1zdHJlYW0gU2V0dGluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0
Mi9HTlVtYWtlZmlsZS5hbQppbmRleCBiN2UwNjZkLi44NGRiZWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5hbQpAQCAtMTQ1LDYgKzE0NSw3IEBAIGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFK
T1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfQ1BQCiAJLUkkKHNy
Y2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCIFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4gXAogCS1JJChz
cmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24gXAorCS1JJChzcmNk
aXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0gXAogCS1JJChzcmNkaXIp
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZSBcCkBAIC0zODMsNiArMzg0LDcgQEAgdnBhdGgg
JS5tZXNzYWdlcy5pbiA9IFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvQ29va2llcyBcCiAJJChX
ZWJLaXQyKS9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4gXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbiBcCisJJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhU3RyZWFtIFwKIAkkKFdl
YktpdDIpL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
TWVkaWFDYWNoZSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dO
VW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMTY0YmViMC4uOTI2NmVmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC02NjksNiArNjY5LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5j
cHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1RleHRDaGVja2VyLmggXAog
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1RleHRDaGVja2VyLmNwcCBcCisJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
Y3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRp
b24uY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uaCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvV0tSZXRhaW5QdHIuaCBcCkBAIC03
OTIsNiArNzk0LDkgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5o
IFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRWZXJzaW9uLmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcCBcCkBA
IC05MTIsNiArOTE3LDEwIEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1RleHRDaGVja2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0
Q2hlY2tlckNvbXBsZXRpb24uaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRDaGVj
a2VyQ29tcGxldGlvbi5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgXAor
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCBc
CkBAIC0xMTQ4LDYgKzExNTcsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNv
ZGVycy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFD
YWNoZU1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUv
V2ViTWVkaWFDYWNoZU1hbmFnZXIuaCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRp
YVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaCBcCiAJU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5mb01hbmFnZXIuY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZv
TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBcCkBAIC0xMjQyLDYgKzEyNTMs
OCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBcCiAJU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaCBcCisJU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3Bw
IFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRp
YUNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlZpYnJhdGlvbkNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViVmlicmF0aW9uQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EZWNvZGVyQWRhcHRlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
QmFzZS5oCmluZGV4IDE5N2FkOWYuLjE1MjY5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tCYXNlLmgKQEAgLTEyNiw2ICsxMjYsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S1BsdWdpblNpdGVEYXRhTWFuYWdlciogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVuY2VzKiBXS1ByZWZlcmVuY2VzUmVmOwog
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90ZWN0aW9uU3BhY2UqIFdLUHJvdGVjdGlv
blNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tUZXh0Q2hlY2tlciogV0tU
ZXh0Q2hlY2tlclJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QqIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWY7CiB0eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ZpYnJhdGlvbiogV0tWaWJyYXRpb25SZWY7CiB0eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ZpZXdwb3J0QXR0cmlidXRlcyogV0tWaWV3cG9ydEF0dHJp
YnV0ZXNSZWY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRU
cmFpdHMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAKaW5k
ZXggOTUyYWQyNi4uMTc3NDg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SUNsaWVudFRyYWl0cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRy
YWl0cy5jcHAKQEAgLTc0LDYgKzc0LDcgQEAgY29uc3Qgc2l6ZV90IEFQSUNsaWVudFRyYWl0czxX
S1BhZ2VMb2FkZXJDbGllbnQ+OjppbnRlcmZhY2VTaXplc0J5VmVyc2lvbltdID0gewogY29uc3Qg
c2l6ZV90IEFQSUNsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudD46OmludGVyZmFjZVNpemVzQnlW
ZXJzaW9uW10gPSB7CiAgICAgb2Zmc2V0b2YoV0tQYWdlVUlDbGllbnQsIGNyZWF0ZU5ld1BhZ2Up
LAogICAgIG9mZnNldG9mKFdLUGFnZVVJQ2xpZW50LCBzaG93Q29sb3JQaWNrZXIpLAorICAgIG9m
ZnNldG9mKFdLUGFnZVVJQ2xpZW50LCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCksCiAgICAgc2l6ZW9mKFdLUGFnZVVJQ2xpZW50KQogfTsKICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaAppbmRleCBkZjNhYWJiLi4wZjA2YWZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oCkBAIC02OCw3ICs2OCw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0czxXS1BhZ2VMb2FkZXJDbGllbnQ+IHsKIH07
CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudD4gewot
ICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW50ZXJmYWNlU2l6ZXNCeVZlcnNpb25bM107CisgICAg
c3RhdGljIGNvbnN0IHNpemVfdCBpbnRlcmZhY2VTaXplc0J5VmVyc2lvbls0XTsKIH07CiAKIHRl
bXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50PiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggNzAzMjFiOS4uN2I4N2MzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtMTA5LDYgKzEwOSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgVHlwZVBsdWdpblNpdGVEYXRhTWFuYWdlciwKICAgICAgICAgVHlwZVByZWZlcmVuY2VzLAog
ICAgICAgICBUeXBlVGV4dENoZWNrZXIsCisgICAgICAgIFR5cGVVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCwKICAgICAgICAgVHlwZVZpYnJhdGlvbiwKICAgICAgICAgVHlwZVZpZXdwb3J0QXR0
cmlidXRlcywKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmlu
ZGV4IGRkODhkN2EuLjczMmRlZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0LmgKQEAgLTU3LDYgKzU3LDcgQEAgY2xhc3MgQXV0aGVudGljYXRpb25EZWNpc2lv
bkxpc3RlbmVyOwogY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RQcm94eTsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Owor
Y2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNsYXNzIFdlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtOwpAQCAtMTQzLDYgKzE0NCw3IEBAIFdLX0FERF9BUElfTUFQ
UElORyhXS1Byb3RlY3Rpb25TcGFjZVJlZiwgV2ViUHJvdGVjdGlvblNwYWNlKQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLUmVuZGVyTGF5ZXJSZWYsIFdlYlJlbmRlckxheWVyKQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLUmVuZGVyT2JqZWN0UmVmLCBXZWJSZW5kZXJPYmplY3QpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tUZXh0Q2hlY2tlclJlZiwgV2ViVGV4dENoZWNrZXIpCitXS19BRERfQVBJX01BUFBJ
TkcoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiwgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1ZpYnJhdGlvblJlZiwgV2ViVmlicmF0
aW9uUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYsIFdl
YlZpZXdwb3J0QXR0cmlidXRlcykKIFdLX0FERF9BUElfTUFQUElORyhXS0luc3BlY3RvclJlZiwg
V2ViSW5zcGVjdG9yUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgK
aW5kZXggODU2MTFlZC4uYWFmZDA5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuaApAQCAtMjIxLDYgKzIyMSw3IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBv
bGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnCiB0eXBl
ZGVmIHZvaWQgKCpXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2Us
IFdLU3RyaW5nUmVmIGluaXRpYWxDb2xvciwgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVm
IGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFn
ZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNs
aWNrZWRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFz
b24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZv
RGljdGlvbmFyeSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1Bh
Z2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4s
IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwogCiAvLyBEZXByZWNhdGVkICAgIAogdHlwZWRlZiBXS1BhZ2VS
ZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCko
V0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVy
cyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbyk7CkBAIC0yODMsMTAgKzI4NCwxNCBAQCBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQg
ewogICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOwogICAgIFdLUGFnZUhpZGVDb2xvclBp
Y2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNv
bG9yUGlja2VyOwogICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2Vk
OworCisgICAgLy8gVmVyc2lvbiAzCisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsKKwogfTsKIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xp
ZW50IFdLUGFnZVVJQ2xpZW50OwogCi1lbnVtIHsga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNp
b24gPSAyIH07CitlbnVtIHsga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb24gPSAzIH07CiAK
IC8vIEZpbmQgY2xpZW50LgogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkRmluZFN0cmluZ0NhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RyaW5nLCB1bnNpZ25lZCBtYXRjaENv
dW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGEwZDNmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgSWdhbGlhIFMuTAorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CisKK1dLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKQor
eworICAgIHJldHVybiB0b0FQSShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpBUElU
eXBlKTsKK30KKwordm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikK
K3sKKyAgICByZXR1cm4gdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+YWxs
b3coKTsKK30KKwordm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQor
eworICAgIHJldHVybiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5kZW55
KCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44NzhjMzNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDM4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwKKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0X2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1
cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYg
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlm
CisKKyNlbmRpZiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2ggKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcAppbmRl
eCAwODk5Yjg1Li43NDNmMjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAi
V2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0
ZS5oIgorI2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktp
dFdlYlZpZXdQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2luZG93UHJvcGVydGllc1ByaXZh
dGUuaCIKQEAgLTE1Myw2ICsxNTQsMTIgQEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFcKICAgICB3
ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KFdFQktJVF9XRUJfVklFVyhjbGllbnRJ
bmZvKSwgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LmdldCgpKSk7CiB9CiAKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0eU9yaWdpblJl
ZiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0LCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQoreworICAgIEdSZWZQdHI8V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3Q+IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKHRvSW1wbChyZXF1ZXN0KSkpOworICAgIHdlYmtpdFdl
YlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QoV0VCS0lUX1dFQl9WSUVXKGNsaWVudEluZm8pLCBX
RUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNUKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmdldCgp
KSk7Cit9CisKIHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQogewogICAgIHdlYmtpdFdlYlZpZXdSdW5Bc01vZGFsKFdFQktJVF9XRUJf
VklFVyhjbGllbnRJbmZvKSk7CkBAIC0yMDksNiArMjE2LDcgQEAgdm9pZCBhdHRhY2hVSUNsaWVu
dFRvVmlldyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgICAgICAwLCAvLyBzaG93Q29sb3JQ
aWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIHBsdWdp
bkxvYWRQb2xpY3kKKyAgICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QKICAgICB9OwogICAgIFdLUGFnZVJlZiB3a1BhZ2UgPSB0b0FQSSh3ZWJraXRXZWJWaWV3
QmFzZUdldFBhZ2UoV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2ViVmlldykpKTsKICAgICBXS1BhZ2VT
ZXRQYWdlVUlDbGllbnQod2tQYWdlLCAmd2tVSUNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MGQzYmNhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEwMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCIKKworI2lu
Y2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlICJXZWJL
aXRQZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCisvKioKKyAq
IFNFQ1RJT046IFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0CisgKiBAU2hvcnRfZGVz
Y3JpcHRpb246IEEgcGVybWlzc2lvbiByZXF1ZXN0IGZvciBhY2Nlc3NpbmcgdXNlcidzIGF1ZGlv
L3ZpZGVvIGRldmljZXMuCisgKiBAVGl0bGU6IFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0CisgKiBAU2VlX2Fsc286ICNXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCwgI1dlYktpdFdlYlZp
ZXcKKyAqCisgKiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCByZXByZXNlbnRzIGEg
cmVxdWVzdCBmb3IKKyAqIHBlcm1pc3Npb24gdG8gZGVjaWRlIHdoZXRoZXIgV2ViS2l0IHNob3Vs
ZCBiZSBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgdXNlcidzCisgKiBhdWRpbyBhbmQgdmlkZW8gc291
cmNlIGRldmljZXMgd2hlbiByZXF1ZXN0ZWQgdGhyb3VnaHQgdGhlIGdldFVzZXJNZWRpYSBBUEku
CisgKi8KKworc3RhdGljIHZvaWQgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2Vf
aW5pdChXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdElmYWNlKik7CisKK3N0cnVjdCBfV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlIHsKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eT4gcmVxdWVzdDsKKyAgICBib29sIG1hZGVEZWNpc2lvbjsKK307
CisKK1dFQktJVF9ERUZJTkVfVFlQRV9XSVRIX0NPREUoCisgICAgV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QsIHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdCwgR19U
WVBFX09CSkVDVCwKKyAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX1RZUEVfUEVSTUlT
U0lPTl9SRVFVRVNULCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KSkK
Kworc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXZWJL
aXRQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBBU1NFUlQoV0VCS0lUX0lTX1VT
RVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKTsKKworICAgIFdlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9VU0VSX01FRElBX1BF
Uk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KS0+cHJpdjsKKworICAgIC8vIE9ubHkgb25lIGRlY2lz
aW9uIGF0IGEgdGltZS4KKyAgICBpZiAocHJpdi0+bWFkZURlY2lzaW9uKQorICAgICAgICByZXR1
cm47CisKKyAgICBwcml2LT5yZXF1ZXN0LT5hbGxvdygpOworICAgIHByaXYtPm1hZGVEZWNpc2lv
biA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0RGVueShXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBBU1NFUlQo
V0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKTsKKworICAg
IFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9V
U0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KS0+cHJpdjsKKworICAgIC8vIE9u
bHkgb25lIGRlY2lzaW9uIGF0IGEgdGltZS4KKyAgICBpZiAocHJpdi0+bWFkZURlY2lzaW9uKQor
ICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT5yZXF1ZXN0LT5kZW55KCk7CisgICAgcHJpdi0+
bWFkZURlY2lzaW9uID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X3Blcm1pc3Npb25f
cmVxdWVzdF9pbnRlcmZhY2VfaW5pdChXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdElmYWNlKiBpZmFj
ZSkKK3sKKyAgICBpZmFjZS0+YWxsb3cgPSB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dEFsbG93OworICAgIGlmYWNlLT5kZW55ID0gd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3REZW55OworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dERpc3Bvc2UoR09iamVjdCogb2JqZWN0KQoreworICAgIC8vIERlZmF1bHQgYmVoYXZpb3VyIHdo
ZW4gbm8gZGVjaXNpb24gaGFzIGJlZW4gbWFkZSBpcyBkZW55aW5nIHRoZSByZXF1ZXN0LgorICAg
IHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXRUJLSVRfUEVSTUlTU0lPTl9S
RVFVRVNUKG9iamVjdCkpOworICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF91c2VyX21lZGlhX3Bl
cm1pc3Npb25fcmVxdWVzdF9wYXJlbnRfY2xhc3MpLT5kaXNwb3NlKG9iamVjdCk7Cit9CisKK3N0
YXRpYyB2b2lkIHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9jbGFzc19pbml0
KFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MqIGtsYXNzKQoreworICAgIEdP
YmplY3RDbGFzcyogb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7CisgICAgb2Jq
ZWN0Q2xhc3MtPmRpc3Bvc2UgPSB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERpc3Bv
c2U7Cit9CisKK1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiB3ZWJraXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
KiByZXF1ZXN0KQoreworICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiB1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdCA9IFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVR
VUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVF
U1QsIE5VTEwpKTsKKyAgICB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC0+cHJpdi0+cmVxdWVz
dCA9IHJlcXVlc3Q7CisgICAgcmV0dXJuIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMDVjODA3YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKQEAg
LTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYg
IWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElM
QVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQg
ZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RfaAorI2RlZmluZSBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNp
bmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5o
PgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJN
SVNTSU9OX1JFUVVFU1QgICAgICAgICAgICAod2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9y
ZXF1ZXN0X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05f
UkVRVUVTVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmop
LCBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNT
SU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xh
c3MpLCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfVVNFUl9N
RURJQV9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFO
Q0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1Qp
KQorI2RlZmluZSBXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Mo
a2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVNF
Ul9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJQV9Q
RVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NM
QVNTKChvYmopLCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgICAgICAgIFdlYktpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0Q2xhc3MgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSBX
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAg
Lyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2
YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93
ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAo
dm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAo
Kl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJr
aXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUgKHZvaWQpOworCitHX0VO
RF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk5YWQyZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oCkBAIC0wLDAgKzEsMjggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGVfaAorI2RlZmluZSBXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGVfaAorCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgiCisKK1dlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENy
ZWF0ZShXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqKTsKKworI2VuZGlm
IC8vIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlv
bnMudHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LXNlY3Rpb25zLnR4dAppbmRleCA1YTZjYjQzLi45NDM3MTkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0
aW9ucy50eHQKQEAgLTUxNSw2ICs1MTUsMjQgQEAgd2Via2l0X2dlb2xvY2F0aW9uX3Blcm1pc3Np
b25fcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCiA8U0VDVElPTj4KKzxGSUxFPldlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PC9GSUxFPgorV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QKKworPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CitXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdENsYXNzCitXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVR
VUVTVAorV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfSVNfVVNF
Ul9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05f
UkVRVUVTVF9DTEFTUworV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUX0NM
QVNTCitXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTCisKKzxT
VUJTRUNUSU9OIFByaXZhdGU+CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGUKK3dlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQorPC9TRUNU
SU9OPgorCis8U0VDVElPTj4KIDxGSUxFPldlYktpdFBvbGljeURlY2lzaW9uPC9GSUxFPgogV2Vi
S2l0UG9saWN5RGVjaXNpb24KIHdlYmtpdF9wb2xpY3lfZGVjaXNpb25fZG93bmxvYWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAppbmRleCA4ZDgyMTk5Li42MjAx
NTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCkBAIC01
Niw2ICs1Niw3IEBACiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklSZXF1ZXN0Lmg+CiAjaW5j
bHVkZSA8d2Via2l0Mi9XZWJLaXRVUklSZXNwb25zZS5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFZlcnNpb24uaD4K
ICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYkNvbnRleHQuaD4KICNpbmNsdWRlIDx3ZWJraXQy
L1dlYktpdFdlYkluc3BlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjgzYmFkZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIldlYlBhZ2VN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
KFdlYlBhZ2VQcm94eSogcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMo
KQoreworICAgIFBlbmRpbmdSZXF1ZXN0TWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGVuZGlu
Z1JlcXVlc3RzLmJlZ2luKCk7CisgICAgUGVuZGluZ1JlcXVlc3RNYXA6OmNvbnN0X2l0ZXJhdG9y
IGVuZCA9IG1fcGVuZGluZ1JlcXVlc3RzLmVuZCgpOworICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsr
aXQpCisgICAgICAgIGl0LT52YWx1ZS0+aW52YWxpZGF0ZSgpOworCisgICAgbV9wZW5kaW5nUmVx
dWVzdHMuY2xlYXIoKTsKK30KKworUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVx
dWVzdCh1aW50NjRfdCB1c2VyTWVkaWFSZXF1ZXN0SUQpCit7CisgICAgUmVmUHRyPFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJlcXVlc3QgPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjpjcmVhdGUoKnRoaXMsIHVzZXJNZWRpYVJlcXVlc3RJRCk7CisgICAgbV9wZW5k
aW5nUmVxdWVzdHMuYWRkKHVzZXJNZWRpYVJlcXVlc3RJRCwgcmVxdWVzdC5nZXQoKSk7CisgICAg
cmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IHVzZXJNZWRpYVJlcXVlc3RJRCwgYm9vbCBhbGxvd2VkKQoreworICAgIGlmICgh
bV9wYWdlLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFBlbmRpbmdSZXF1ZXN0
TWFwOjppdGVyYXRvciBpdCA9IG1fcGVuZGluZ1JlcXVlc3RzLmZpbmQodXNlck1lZGlhUmVxdWVz
dElEKTsKKyAgICBpZiAoaXQgPT0gbV9wZW5kaW5nUmVxdWVzdHMuZW5kKCkpCisgICAgICAgIHJl
dHVybjsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgbV9wYWdlLT5wcm9jZXNzKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24odXNlck1lZGlhUmVxdWVzdElELCBhbGxvd2VkKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKKyNlbmRpZgorCisgICAgbV9wZW5kaW5n
UmVxdWVzdHMucmVtb3ZlKGl0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjhiYmRhZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkgeworcHVibGljOgorICAgIGV4cGxpY2l0IFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSopOworCisgICAgdm9pZCBp
bnZhbGlkYXRlUmVxdWVzdHMoKTsKKworICAgIC8vIENyZWF0ZSBhIHJlcXVlc3QgdG8gYmUgcHJl
c2VudGVkIHRvIHRoZSB1c2VyLgorICAgIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFSZXF1ZXN0SUQpOwor
CisgICAgLy8gQ2FsbGVkIGJ5IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgd2hlbiBh
IGRlY2lzaW9uIGlzIG1hZGUgYnkgdGhlIHVzZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlVXNlck1l
ZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90LCBib29sIGFsbG93KTsKKworcHJpdmF0ZToK
KyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5Pj4gUGVuZGluZ1JlcXVlc3RNYXA7CisgICAgUGVuZGluZ1JlcXVlc3RNYXAg
bV9wZW5kaW5nUmVxdWVzdHM7CisgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5lMWE4OTA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCkBAIC0wLDAg
KzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIK
KworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dElEKQorICAgIDogbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0SUQodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJRCkKK3sKK30KKwordm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdygpCit7CisgICAgbV9tYW5hZ2Vy
LmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdElELCB0cnVlKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpkZW55KCkKK3sKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SUQsIGZhbHNlKTsKK30K
Kwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkKK3sK
KyAgICBtX21hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNDZmNjQzOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTAsMCArMSw1MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHlfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eSA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJ
RCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eShtYW5hZ2VyLCB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElEKSk7Cisg
ICAgfQorCisgICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgZGVueSgpOworCisgICAgdm9pZCBp
bnZhbGlkYXRlKCk7CisKK3ByaXZhdGU6CisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2NF90IHVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SUQpOworCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkmIG1fbWFuYWdlcjsKKyAgICB1aW50NjRfdCBtX3VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0SUQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAyZGMxODYyLi4yMTEwMTIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjM2LDYgKzIzNiw3IEBAIFdl
YlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFBhc3NSZWZQ
dHI8V2ViUHJvY2Vzc1Byb3h5PiBwCiAgICAgLCBtX21haW5GcmFtZSgwKQogICAgICwgbV91c2Vy
QWdlbnQoc3RhbmRhcmRVc2VyQWdlbnQoKSkKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIodGhpcykKKyAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKHRoaXMpCiAgICAgLCBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cih0aGlzKQogICAgICwgbV9lc3RpbWF0ZWRQcm9ncmVzcygwKQogICAgICwgbV9pc0luV2luZG93
KG1fcGFnZUNsaWVudC0+aXNWaWV3SW5XaW5kb3coKSkKQEAgLTM5NjMsNiArMzk2NCwxOCBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVp
bnQ2NF90IGdlb2xvY2F0aW9uSUQsCiAgICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKIH0KIAordm9p
ZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0
X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVy
KQoreworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFt
ZUlEKTsKKyAgICBNRVNTQUdFX0NIRUNLKGZyYW1lKTsKKworICAgIFJlZlB0cjxXZWJTZWN1cml0
eU9yaWdpbj4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3Jp
Z2luSWRlbnRpZmllcik7CisgICAgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk+IHJlcXVlc3QgPSBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcmVhdGVS
ZXF1ZXN0KHVzZXJNZWRpYUlEKTsKKworICAgIGlmICghbV91aUNsaWVudC5kZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0aGlzLCBmcmFtZSwgb3JpZ2luLmdldCgpLCBy
ZXF1ZXN0LmdldCgpKSkKKyAgICAgICAgcmVxdWVzdC0+ZGVueSgpOworfQorCiB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElE
LCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBpZiAoIWlzUmVxdWVzdElEVmFs
aWQocmVxdWVzdElEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRl
eCBmZTdmY2ZmLi5hNDM2MjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTaGFyZWFibGVC
aXRtYXAuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oIgogI2luY2x1ZGUgIlZpZXdTdGF0ZS5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1
ZGUgIldLUGFnZVByaXZhdGUuaCIKQEAgLTg0NSw2ICs4NDYsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNz
V2l0aEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSopOwogCisgICAgdm9pZCByZXF1ZXN0VXNl
ck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBm
cmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CisKICAgICB2b2lkIHJlcXVlc3ROb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBjb25zdCBTdHJpbmcm
IG9yaWdpblN0cmluZyk7CiAgICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYg
dGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBT
dHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKICAgICB2b2lk
IGNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CkBAIC0xMDgwLDYg
KzEwODMsNyBAQCBwcml2YXRlOgogICAgIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEgbV9hY3RpdmVD
b250ZXh0TWVudUhpdFRlc3RSZXN1bHREYXRhOwogICAgIFJlZlB0cjxXZWJPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lclByb3h5PiBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwogICAgIEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcjsKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eSBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICAgICBOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjsKIAogICAgIGRvdWJsZSBtX2VzdGltYXRlZFByb2dyZXNzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYTk4
NTM4Yi4uN2U0MTg5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMDMsNyArMjAzLDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2VQcm94eSB7CiAKICAgICAjIEdlb2xvY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdEdlb2xv
Y2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCi0gICAgCisKKyAgICAjIFVz
ZXIgTWVkaWEgbWVzc2FnZXMKKyAgICBSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1l
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBvcmln
aW5JZGVudGlmaWVyKQorCiAgICAgIyBOb3RpZmljYXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0
Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIFdURjo6U3RyaW5nIG9y
aWdpbklkZW50aWZpZXIpCiAgICAgU2hvd05vdGlmaWNhdGlvbihXVEY6OlN0cmluZyB0aXRsZSwg
V1RGOjpTdHJpbmcgYm9keSwgV1RGOjpTdHJpbmcgaWNvblVSTCwgV1RGOjpTdHJpbmcgdGFnLCBX
VEY6OlN0cmluZyBsYW5nLCBXVEY6OlN0cmluZyBkaXIsIFdURjo6U3RyaW5nIG9yaWdpbklkZW50
aWZpZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJVSUNsaWVudC5jcHAKaW5kZXggYmZhNGQ4ZS4uOTQ4MmUyNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTmF0
aXZlV2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb3JtYXRpb24uaCIKKyNpbmNsdWRlICJVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5j
bHVkZSAiV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
TnVtYmVyLmgiCkBAIC0zNTYsNiArMzU3LDE1IEBAIGJvb2wgV2ViVUlDbGllbnQ6OmRlY2lkZVBv
bGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgV2ViVUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94
eSogZnJhbWUsIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkqIHBlcm1pc3Npb25SZXF1ZXN0KQoreworICAgIGlmICghbV9jbGllbnQuZGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJKG9yaWdpbiksIHRvQVBJKHBl
cm1pc3Npb25SZXF1ZXN0KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIGJvb2wgV2ViVUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdp
biwgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QqIHBlcm1pc3Npb25SZXF1ZXN0KQogewog
ICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCmluZGV4IDk4MTNmNTcu
LjY3MDJmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCkBAIC00OSw2
ICs0OSw3IEBAIGNsYXNzIEltbXV0YWJsZURpY3Rpb25hcnk7CiBjbGFzcyBOYXRpdmVXZWJLZXli
b2FyZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViV2hlZWxFdmVudDsKIGNsYXNzIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0OworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTsKIGNsYXNzIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYkRh
dGE7CiBjbGFzcyBXZWJGcmFtZVByb3h5OwpAQCAtMTAyLDYgKzEwMyw3IEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBXZWJP
cGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopOwog
ICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQ
YWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViU2VjdXJpdHlPcmlnaW4qLCBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UHJveHkqKTsKKyAgICBib29sIGRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBXZWJT
ZWN1cml0eU9yaWdpbiosIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqKTsKICAgICBi
b29sIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQ
cm94eSosIFdlYlNlY3VyaXR5T3JpZ2luKiwgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qq
KTsKIAogICAgIC8vIFByaW50aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KaW5kZXggMzE4NzcyNS4uMjZkNzQ5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5
TWFjLm1tCkBAIC00NDgsNiArNDQ4LDcgQEAgV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKCkKICAgICAgICAgMCwgLy8gc2hvd0NvbG9y
UGlja2VyCiAgICAgICAgIDAsIC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAgICAwLCAvLyB1bmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQKKyAgICAgICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKICAgICB9OwogCiAgICAgaW5zcGVjdG9yUGFnZS0+
aW5pdGlhbGl6ZVVJQ2xpZW50KCZ1aUNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjM2ZDkyMi4uNzIxNzYzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNDE1LDYgKzQxNSwxNCBAQAogCQkzRjg3QjlCRDE1ODk0MDEyMDA5MEZGNjIgLyogV2ViQ29s
b3JDaG9vc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDNGODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICovOyB9
OwogCQkzRjg3QjlCRTE1ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCQjE1ODkzRjYz
MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi87IH07CiAJCTNGODdCOUMwMTU4OTQwRDgw
MDkwRkY2MiAvKiBXZWJDb2xvclBpY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yUGlj
a2VyLmggKi87IH07CisJCTRBMjAyMDk1MTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0QTIwMjA5MTE4MUMxNTZGMDBFMTc4MzQgLyogVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICovOyB9OworCQk0QTIwMjA5NjE4MUMx
NTZGMDBFMTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMjAyMDkyMTgx
QzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5o
ICovOyB9OworCQk0QTIwMjA5NzE4MUMxNTZGMDBFMTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0QTIwMjA5MzE4MUMxNTZGMDBFMTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5jcHAgKi87IH07CisJCTRBMjAyMDk4MTgxQzE1NkYwMEUxNzgzNCAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0QTIwMjA5NDE4MUMxNTZGMDBFMTc4MzQgLyogVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5oICovOyB9OworCQk0QTIwMjA5QjE4MUMxNUEwMDBFMTc4
MzQgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTIwMjA5OTE4MUMxNUEwMDBFMTc4MzQgLyog
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi87IH07CisJCTRBMjAyMDlDMTgxQzE1
QTAwMEUxNzgzNCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTIwMjA5QTE4MUMxNUEwMDBFMTc4
MzQgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oICovOyB9OworCQk0QTIwMjA5RjE4
MUMxNUM4MDBFMTc4MzQgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMjAyMDlEMTgxQzE1QzgwMEUxNzgzNCAv
KiBXZWJVc2VyTWVkaWFDbGllbnQuY3BwICovOyB9OworCQk0QTIwMjBBMzE4MUMxNURFMDBFMTc4
MzQgLyogVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEEyMDIwQTExODFDMTVERTAwRTE3ODM0IC8qIFVzZXJN
ZWRpYVJlcXVlc3RNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJNEY2MDE0MzIxNTVDNUFBMjAwMUZCREUw
IC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3Bv
bnNlTWFwLmggKi87IH07CiAJCTUxMDIxRTlDMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0
TWVudUNsaWVudE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1h
Yy5tbSAqLzsgfTsKIAkJNTEwMzJGMTgxODBGNzNCQjAwOTYxQkI3IC8qIFdlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTAzMkYxNjE4MEY3M0JCMDA5NjFCQjcgLyogV2ViVG9EYXRhYmFzZVByb2Nl
c3NDb25uZWN0aW9uLmNwcCAqLzsgfTsKQEAgLTE4ODksNiArMTg5NywxNiBAQAogCQkzRjg3QjlC
QTE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTNGODdCOUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29z
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJGMTU4OTQwRDgwMDkwRkY2MiAv
KiBXZWJDb2xvclBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJD
b2xvclBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTIwMjA5MTE4MUMx
NTZGMDBFMTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
QTIwMjA5MjE4MUMxNTZGMDBFMTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNEEyMDIwOTMxODFDMTU2RjAwRTE3ODM0IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTRBMjAyMDk0MTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEEyMDIwOTkx
ODFDMTVBMDAwRTE3ODM0IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBMjAyMDlBMTgxQzE1QTAw
MEUxNzgzNCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEEyMDIwOUQxODFDMTVDODAwRTE3ODM0IC8qIFdlYlVz
ZXJNZWRpYUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJVc2VyTWVkaWFDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTIw
MjA5RTE4MUMxNUM4MDBFMTc4MzQgLyogV2ViVXNlck1lZGlhQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVzZXJNZWRpYUNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0QTIwMjBBMTE4MUMxNURFMDBFMTc4MzQgLyogVXNlck1lZGlhUmVx
dWVzdE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNl
ck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
QTIwMjBBMjE4MUMxNURFMDBFMTc4MzQgLyogVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8q
IEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QmxvY2tpbmdSZXNwb25zZU1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAw
MzFGNjEzNzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIi
OyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBTZWNJdGVtU2hpbS5keWxpYjsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8q
IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0zNjY2LDYgKzM2ODQsMTUgQEAKIAkJCXBhdGggPSBDb2NvYTsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTRBMjAyMEEwMTgxQzE1REUwMEUxNzgzNCAv
KiBNZWRpYVN0cmVhbSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJNEEyMDIwQTExODFDMTVERTAwRTE3ODM0IC8qIFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2Vy
LmNwcCAqLywKKwkJCQk0QTIwMjBBMjE4MUMxNURFMDBFMTc4MzQgLyogVXNlck1lZGlhUmVxdWVz
dE1hbmFnZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gTWVkaWFTdHJlYW07CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0
d29yayAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC00MDc0
LDYgKzQxMDEsNyBAQAogCQlCQzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEEyMDIwQTAx
ODFDMTVERTAwRTE3ODM0IC8qIE1lZGlhU3RyZWFtICovLAogCQkJCTc1NTQyMkM1MTgwNjRGRkMw
MDQ2RjZBOCAvKiBPcmlnaW5EYXRhICovLAogCQkJCTUxMkUzNTJBMTMwQjU1OTkwMEFCRDE5QSAv
KiBBcHBsaWNhdGlvbkNhY2hlICovLAogCQkJCTMzMDkzNDRCMTMxNUI5M0EwMDk3QTdCQyAvKiBD
b29raWVzICovLApAQCAtNDEwOCw2ICs0MTM2LDggQEAKIAkJQkMwMzJENUQxMEY0MzcyMjAwNThD
MTVBIC8qIFdlYkNvcmVTdXBwb3J0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQk0QTIwMjA5RDE4MUMxNUM4MDBFMTc4MzQgLyogV2ViVXNlck1lZGlhQ2xp
ZW50LmNwcCAqLywKKwkJCQk0QTIwMjA5RTE4MUMxNUM4MDBFMTc4MzQgLyogV2ViVXNlck1lZGlh
Q2xpZW50LmggKi8sCiAJCQkJQkMxMTFBREUxMTJGNUI5QTAwMzM3QkFCIC8qIG1hYyAqLywKIAkJ
CQlDRURBMTJERTE1MkNDQUU4MDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmgg
Ki8sCiAJCQkJQkMxMTFBNTMxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkNocm9tZUNsaWVudC5jcHAg
Ki8sCkBAIC00MTk0LDYgKzQyMjQsMTAgQEAKIAkJQkMwMzJEQzMxMEY0MzgyNjAwNThDMTVBIC8q
IFVJUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJNEEyMDIwOTExODFDMTU2RjAwRTE3ODM0IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQk0QTIwMjA5MjE4MUMxNTZGMDBFMTc4MzQgLyogVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLywKKwkJCQk0QTIwMjA5MzE4
MUMxNTZGMDBFMTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgKi8s
CisJCQkJNEEyMDIwOTQxODFDMTU2RjAwRTE3ODM0IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaCAqLywKIAkJCQlCQzAzMkRDNDEwRjQzODdDMDA1OEMxNUEgLyogQVBJICovLAog
CQkJCTUxMkY1ODhEMTJBODgzNkYwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbiAqLywKIAkJCQk1
MUIzMDA0RDEyNTI5Q0Y1MDAwQjVDQTAgLyogY2YgKi8sCkBAIC00MzUwLDYgKzQzODQsOCBAQAog
CQlCQzBDMzc2NjEwRjgwNzY2MDA3NkQ3Q0IgLyogQyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEEyMDIwOTkxODFDMTVBMDAwRTE3ODM0IC8qIFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwICovLAorCQkJCTRBMjAyMDlBMTgxQzE1QTAwMEUx
NzgzNCAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggKi8sCiAJCQkJNTEyM0NGMTgx
MzNEMjVFNjAwNTZGODAwIC8qIGNnICovLAogCQkJCTZFRTg0OUM0MTM2OEQ5MDQwMDM4RDQ4MSAv
KiBtYWMgKi8sCiAJCQkJQkNCNjM0NzcxMTZCRjEwNjAwNjAzMjE1IC8qIFdlYktpdDJfQy5oICov
LApAQCAtNTYzNiw2ICs1NjcyLDcgQEAKIAkJCQlCQ0VFN0QwRTEyODQ2RjY5MDA5ODI3REEgLyog
V2ViQ29udGV4dE1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Y0REUyNTE2OEZBNDQ4
MDBDOTRBRkMgLyogV2ViQ29udGV4dFN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
QjBCMERDMTIzMDVBMjUwMEIxMzQxRSAvKiBXZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaCBp
biBIZWFkZXJzICovLAorCQkJCTRBMjAyMDk4MTgxQzE1NkYwMEUxNzgzNCAvKiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzA5MzQ1MDEzMTVC
OTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMw
OTM0NDgxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzMwOTM0NTYxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC01NzQzLDYgKzU3ODAsNyBAQAogCQkJCTUxMDMy
RjE5MTgwRjczQkIwMDk2MUJCNyAvKiBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCUJDRUU3QUQxMTI4MTc5ODgwMDk4MjdEQSAvKiBXZWJQcm9jZXNz
UHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFMEU0MjUxNjhCN0EyODAwNTdF
NjZBIC8qIFdlYlByb2Nlc3NTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTIwMjA5
QzE4MUMxNUEwMDBFMTc4MzQgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTEyRjU4OUQxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYlByb3RlY3Rpb25T
cGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5NDg0MDQxNTBDMzUwNjAwRTUyQ0U5IC8qIFdl
YlJlbmRlckxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUzNTFGNjE4MEY1Qzc1MDBFNTNC
RTkgLyogV2ViSURCRmFjdG9yeUJhY2tlbmQuaCBpbiBIZWFkZXJzICovLApAQCAtNTgyNSw2ICs1
ODYzLDcgQEAKIAkJCQlGNjJBNzY2MjEyQjFBQkVEMDAwNUYxQjYgLyogV0tEYXRhYmFzZU1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NUZBMTI0RkYwMjcwMDY4RjIwQSAvKiBXS0Rp
Y3Rpb25hcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDE3RDA3MTYyNjBGRjQwMDcwNTRGNSAv
KiBXS0RPTURvY3VtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTIwMjA5NjE4MUMxNTZGMDBF
MTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMDE3RDA5MTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTUVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMDE3RDBCMTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTUludGVy
bmFscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMTdEMEQxNjI2MEZGNDAwNzA1NEY1IC8qIFdL
RE9NTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC02NTkxLDYgKzY2MzAsOCBAQAogCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUJDNUQyNEExMTZDQzNC
OUUwMDdENTQ2MSAvKiBDaGlsZFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNEEy
MDIwOUYxODFDMTVDODAwRTE3ODM0IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk0QTIwMjBBMzE4MUMxNURFMDBFMTc4MzQgLyogVXNlck1lZGlhUmVxdWVzdE1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC02NjcyLDYgKzY3MTMsNyBAQAogCQkJCUUxNTEz
QzY2MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTJBNEIwRTE1ODZBMjI0MDA5MEM5RTkgLyogQ29sb3JTcGFjZURhdGEubW0gaW4g
U291cmNlcyAqLywKIAkJCQkxQTZGOUZCNzExRTE0MDg1MDBEQjEzNzEgLyogQ29tbWFuZExpbmVN
YWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNEEyMDIwOTcxODFDMTU2RjAwRTE3ODM0IC8qIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMw
MzJEQUExMEY0MzdEMTAwNThDMTVBIC8qIENvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUEzMEVBQzYxMTVEN0RBMzAwNTNFOTM3IC8qIENvbm5lY3Rpb25NYWMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTEzNjE4M0QxNjMxMjZEQTAwQTk5RERFIC8qIENvbm5lY3Rpb25TdGFjay5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTcwMDUsNiArNzA0Nyw3IEBACiAJCQkJMUM4RTI4MzUxMjc1
RDczODAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFDQThCOTM2MTI3Qzc3NEUwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFDQThCOTQ1MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0QTIwMjA5QjE4MUMx
NUEwMDBFMTc4MzQgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDMDMzN0REMzEyN0EyQTBFMDA4RkY0RjQgLyogV2ViS2V5Ym9hcmRFdmVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUE5RTEwNTEzMTVDQ0ZDMDA5RTcwMzEgLyogV2ViS2V5
VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzlCQTUwNDE2OTdD
NDUzMDBFNDQ2MTYgLyogV2ViS2l0MkluaXRpYWxpemUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC03
MDcxLDYgKzcxMTQsNyBAQAogCQkJCTMzRjlENUI5MTMxMkYxRUUwMDBENjgzRiAvKiBXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlckNGTmV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMzY3NjU1MTMw
QzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzM2NzYzNTEzMEM5OUIyMDA2QzlERTIgLyogV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0QTIwMjA5NTE4
MUMxNTZGMDBFMTc4MzQgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzMzNjc2NTcxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTEwQUZGQjkxNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxQiAvKiBXZWJSZXNvdXJj
ZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODlj
YWM0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFT
dHJlYW0vVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsOTggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2Vi
RnJhbWUuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdWlu
dDY0X3QgZ2VuZXJhdGVVc2VyTWVkaWFSZXF1ZXN0SUQoKQoreworICAgIHN0YXRpYyB1aW50NjRf
dCB1bmlxdWVVc2VyTWVkaWFSZXF1ZXN0SUQgPSAxOworICAgIHJldHVybiB1bmlxdWVVc2VyTWVk
aWFSZXF1ZXN0SUQrKzsKK30KKworVXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6OlVzZXJNZWRpYVJl
cXVlc3RNYW5hZ2VyKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwor
Cit2b2lkIFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyOjpyZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVm
UHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+IHBycFJlcXVlc3QpCit7CisgICAgUmVmUHRy
PFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QgPSBwcnBSZXF1ZXN0OworICAgIHVp
bnQ2NF90IHJlcXVlc3RJRCA9IGdlbmVyYXRlVXNlck1lZGlhUmVxdWVzdElEKCk7CisKKyAgICBt
X3VzZXJNZWRpYVJlcXVlc3RUb0lETWFwLnNldChyZXF1ZXN0LCByZXF1ZXN0SUQpOworICAgIG1f
aWRUb1VzZXJNZWRpYVJlcXVlc3RNYXAuc2V0KHJlcXVlc3RJRCwgcmVxdWVzdCk7CisKKyAgICBG
cmFtZSogZnJhbWUgPSByZXF1ZXN0LT5mcmFtZSgpOworICAgIEFTU0VSVChmcmFtZSk7CisKKyAg
ICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1l
TG9hZGVyQ2xpZW50KGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSk7CisgICAgV2ViRnJhbWUqIHdl
YkZyYW1lID0gd2ViRnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2Vi
RnJhbWUoKSA6IG51bGxwdHI7CisgICAgQVNTRVJUKHdlYkZyYW1lKTsKKworICAgIFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdFVzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JGcmFtZShyZXF1ZXN0SUQsIHdlYkZyYW1lLT5mcmFtZUlEKCksIG9y
aWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCkpKTsKK30KKwordm9pZCBVc2VyTWVkaWFSZXF1ZXN0
TWFuYWdlcjo6Y2FuY2VsUmVxdWVzdChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0KiByZXF1ZXN0
KQoreworICAgIGZvciAoVXNlck1lZGlhUmVxdWVzdFRvSURNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gbV91c2VyTWVkaWFSZXF1ZXN0VG9JRE1hcC5iZWdpbigpLCBlbmQgPSBtX3VzZXJNZWRpYVJl
cXVlc3RUb0lETWFwLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgUmVmUHRyPFdl
YkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+IHN0b3JlZFJlcXVlc3QgPSBpdC0+a2V5OworICAgICAg
ICBpZiAoc3RvcmVkUmVxdWVzdC5nZXQoKSA9PSByZXF1ZXN0KSB7CisgICAgICAgICAgICBtX2lk
VG9Vc2VyTWVkaWFSZXF1ZXN0TWFwLnJlbW92ZShpdC0+dmFsdWUpOworICAgICAgICAgICAgbV91
c2VyTWVkaWFSZXF1ZXN0VG9JRE1hcC5yZW1vdmUoaXQtPmtleSk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXI6
OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlh
UmVxdWVzdElELCBib29sIGFsbG93ZWQpCit7CisgICAgSURUb1VzZXJNZWRpYVJlcXVlc3RNYXA6
Oml0ZXJhdG9yIGl0ID0gbV9pZFRvVXNlck1lZGlhUmVxdWVzdE1hcC5maW5kKHVzZXJNZWRpYVJl
cXVlc3RJRCk7CisgICAgaWYgKGl0ID09IG1faWRUb1VzZXJNZWRpYVJlcXVlc3RNYXAuZW5kKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0
PiByZXF1ZXN0ID0gaXQtPnZhbHVlOworICAgIGlmIChhbGxvd2VkKQorICAgICAgICByZXF1ZXN0
LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgZWxzZQorICAgICAgICByZXF1ZXN0LT51
c2VyTWVkaWFBY2Nlc3NEZW5pZWQoKTsKKworICAgIG1faWRUb1VzZXJNZWRpYVJlcXVlc3RNYXAu
cmVtb3ZlKGl0KTsKKyAgICBtX3VzZXJNZWRpYVJlcXVlc3RUb0lETWFwLnJlbW92ZShyZXF1ZXN0
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9N
ZWRpYVN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmUwODFhZWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyLmgKQEAgLTAs
MCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVm
IFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyX2gKKyNkZWZpbmUgVXNlck1lZGlhUmVxdWVzdE1hbmFn
ZXJfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvVXNl
ck1lZGlhUmVxdWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xh
c3MgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IFVzZXJN
ZWRpYVJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UmKTsKKworICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Np
b24oUGFzc1JlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pik7CisgICAgdm9pZCBjYW5j
ZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFSZXF1ZXN0
SUQsIGJvb2wgYWxsb3dlZCk7CisKK3ByaXZhdGU6CisgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2
NF90LCBXVEY6OlJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pj4gSURUb1VzZXJNZWRp
YVJlcXVlc3RNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPFdURjo6UmVmUHRyPFdlYkNvcmU6OlVz
ZXJNZWRpYVJlcXVlc3Q+LCB1aW50NjRfdD4gVXNlck1lZGlhUmVxdWVzdFRvSURNYXA7CisgICAg
SURUb1VzZXJNZWRpYVJlcXVlc3RNYXAgbV9pZFRvVXNlck1lZGlhUmVxdWVzdE1hcDsKKyAgICBV
c2VyTWVkaWFSZXF1ZXN0VG9JRE1hcCBtX3VzZXJNZWRpYVJlcXVlc3RUb0lETWFwOworCisgICAg
V2ViUGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gVXNlck1lZGlhUmVxdWVzdE1hbmFn
ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjg5Mzc0OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVXNlck1lZGlhQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIuaCIKKyNp
bmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlVzZXJNZWRpYUNsaWVudDo6fldlYlVzZXJNZWRpYUNs
aWVudCgpCit7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkK
K3sKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnJlcXVl
c3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVz
dCkKK3sKKyAgICBtX3BhZ2UtPnVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyKCkucmVxdWVzdFBlcm1p
c3Npb24ocmVxdWVzdCk7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1
ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgbV9wYWdlLT51
c2VyTWVkaWFSZXF1ZXN0TWFuYWdlcigpLmNhbmNlbFJlcXVlc3QocmVxdWVzdCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlVzZXJNZWRpYUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjUxZmJhYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXZWJVc2VyTWVkaWFDbGll
bnRfaAorI2RlZmluZSBXZWJVc2VyTWVkaWFDbGllbnRfaAorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhQ2xpZW50Lmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJVc2VyTWVkaWFDbGllbnQg
OiBwdWJsaWMgV2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJVc2Vy
TWVkaWFDbGllbnQoV2ViUGFnZSogcGFnZSkKKyAgICAgICAgOiBtX3BhZ2UocGFnZSkKKyAgICB7
CisgICAgfQorCisgICAgdmlydHVhbCB+V2ViVXNlck1lZGlhQ2xpZW50KCk7CisKK3ByaXZhdGU6
CisgICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKSBPVkVSUklERTsKKworICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJl
cXVlc3Q+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0KikgT1ZFUlJJREU7CisKKyAgICBXZWJQYWdlKiBtX3BhZ2U7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKKyNlbmRpZiAvLyBXZWJVc2VyTWVkaWFDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDFkZjg2NDEuLjVjYzAyMWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTg0
LDYgKzg0LDcgQEAKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViVXNlck1lZGlhQ2xpZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJ
Q2FzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9DaHJvbWUuaD4KQEAgLTI3OSw2ICsyODAsOSBAQCBXZWJQYWdlOjpXZWJQYWdlKHVp
bnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKICAgICAsIG1fbWF4aW11bVJlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW4oMCkKICAgICAsIG1f
c2Nyb2xsUGlubmluZ0JlaGF2aW9yKERvTm90UGluKQogICAgICwgbV91c2VUaHJlYWRlZFNjcm9s
bGluZyhmYWxzZSkKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICwgbV91c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCisjZW5kaWYKIHsKICAgICBBU1NFUlQobV9w
YWdlSUQpOwogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgbm9uLWlkZWFsIGxvY2F0aW9uIGZvciB0
aGlzIFNldHRpbmcgYW5kCkBAIC0zMzgsNiArMzQyLDEwIEBAIFdlYlBhZ2U6OldlYlBhZ2UodWlu
dDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQogICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VQcm94aW1pdHlUbyhtX3BhZ2UuZ2V0KCksIG5l
dyBXZWJEZXZpY2VQcm94aW1pdHlDbGllbnQodGhpcykpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgIFdlYkNvcmU6OnByb3ZpZGVVc2VyTWVkaWFUbyhtX3BhZ2UuZ2V0
KCksIG5ldyBXZWJVc2VyTWVkaWFDbGllbnQodGhpcykpOworI2VuZGlmCisKICAgICBtX3BhZ2Ut
PnNldENhblN0YXJ0TWVkaWEoZmFsc2UpOwogICAgIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRv
dyA9IHBhcmFtZXRlcnMubWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKIApAQCAtMjc4NCw2ICsy
NzkyLDEzIEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRl
Y2lzaW9uKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNz
aW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBt
X3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVy
bWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkKTsKK30KKyNlbmRpZgorCiB2b2lk
IFdlYlBhZ2U6OmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0
X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIHsKICAgICBub3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25E
ZWNpc2lvbihub3RpZmljYXRpb25JRCwgYWxsb3dlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAyZGYwMWU3Li4zYTI5YTczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAK
ICNpbmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5j
bHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdE1hbmFn
ZXIuaCIKICNpbmNsdWRlICJXZWJVbmRvU3RlcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGF0
aW9uQWx0ZXJuYXRpdmUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+CkBAIC0zODAs
NiArMzgxLDEwIEBAIHB1YmxpYzoKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlciYgZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX2dl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXImIHVzZXJNZWRpYVJl
cXVlc3RNYW5hZ2VyKCkgeyByZXR1cm4gbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI7IH0KKyNlbmRpZgorCiAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KiBub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKIAogICAgIHZvaWQgcGFn
ZURpZFNjcm9sbCgpOwpAQCAtNzgzLDcgKzc4OCwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZXh0
ZW5kU2FuZGJveEZvckZpbGVGcm9tT3BlblBhbmVsKGNvbnN0IFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSYpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgdm9pZCBkaWRS
ZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2VvbG9jYXRpb25J
RCwgYm9vbCBhbGxvd2VkKTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAg
ICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNl
ck1lZGlhSUQsIGJvb2wgYWxsb3dlZCk7CisjZW5kaWYKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU5v
dGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9v
bCBhbGxvd2VkKTsKIApAQCAtOTkxLDYgKzEwMDIsMTAgQEAgcHJpdmF0ZToKICAgICBXZWJDb3Jl
OjpTY3JvbGxQaW5uaW5nQmVoYXZpb3IgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3I7CiAKICAgICBi
b29sIG1fdXNlVGhyZWFkZWRTY3JvbGxpbmc7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5k
ZXggYTA2ZTRmZC4uY2IxYWU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTIwMSw2ICsyMDEsMTEgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkUmVjZWl2ZUdlb2xvY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvb2wgYWxsb3dl
ZCkKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAjIE1lZGlhU3RyZWFt
CisgICAgRGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2Vy
TWVkaWFJRCwgYm9vbCBhbGxvd2VkKQorI2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbgogICAg
IERpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDUyOWE3Y2MuLjFjOGRiOGYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMyBAQAogMjAxMy0x
MC0yOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKKyAgICAgICAg
W1dLMl0gVXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYzog
U2hvdyBhIHBvcHVwIHdoZW4gdGhlIHBhZ2UKKyAgICAgICAgcmVxdWlyZXMgdXNlciBwZXJtaXNz
aW9uIHRvIGFjY2VzcyBhdWRpby92aWRlbyBkZXZpY2VzLgorICAgICAgICAocGVybWlzc2lvblJl
cXVlc3REaWFsb2dDYWxsYmFjayk6CisgICAgICAgIChzaG93R2VvbG9jYXRpb25SZXF1ZXN0RGlh
bG9nKToKKyAgICAgICAgKHNob3dVc2VyTWVkaWFSZXF1ZXN0RGlhbG9nKToKKyAgICAgICAgKHdl
YlZpZXdEZWNpZGVQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHA6IG51bGwKKyAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QgaGFuZGxlcnMuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhl
clBhZ2UpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhP
cHRpb25zKToKKworMjAxMy0xMC0yOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxp
YS5jb20+CisKICAgICAgICAgW0dUS10gZW5hYmxlIG1lZGlhLXN0cmVhbSBpbiBidWlsZC13ZWJr
aXQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzE0
NAogCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jIGIv
VG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYwppbmRleCAxZDNiNGZjLi44YWY0
MDgzIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCisr
KyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKQEAgLTI0Niw3ICsyNDYs
NyBAQCBzdGF0aWMgdm9pZCBiYWNrRm9yd2FkbGlzdENoYW5nZWQoV2ViS2l0QmFja0ZvcndhcmRM
aXN0ICpiYWNrRm9yd2FkbGlzdCwgV2ViS2l0QgogICAgIGJyb3dzZXJXaW5kb3dVcGRhdGVOYXZp
Z2F0aW9uQWN0aW9ucyh3aW5kb3csIGJhY2tGb3J3YWRsaXN0KTsKIH0KIAotc3RhdGljIHZvaWQg
Z2VvbG9jYXRpb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2soR3RrRGlhbG9nICpkaWFsb2csIGdpbnQg
cmVzcG9uc2UsIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KQorc3RhdGljIHZvaWQg
cGVybWlzc2lvblJlcXVlc3REaWFsb2dDYWxsYmFjayhHdGtEaWFsb2cgKmRpYWxvZywgZ2ludCBy
ZXNwb25zZSwgV2ViS2l0UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3QpCiB7CiAgICAgc3dpdGNo
IChyZXNwb25zZSkgewogICAgIGNhc2UgR1RLX1JFU1BPTlNFX1lFUzoKQEAgLTM5OSwxMSArMzk5
LDggQEAgc3RhdGljIGdib29sZWFuIHdlYlZpZXdEZWNpZGVQb2xpY3koV2ViS2l0V2ViVmlldyAq
d2ViVmlldywgV2ViS2l0UG9saWN5RGVjaXNpb24KICAgICB9CiB9CiAKLXN0YXRpYyBnYm9vbGVh
biB3ZWJWaWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0V2ViVmlldyAqd2ViVmlldywg
V2ViS2l0UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3QsIEJyb3dzZXJXaW5kb3cgKndpbmRvdykK
K3N0YXRpYyBnYm9vbGVhbiBzaG93R2VvbG9jYXRpb25SZXF1ZXN0RGlhbG9nKFdlYktpdFBlcm1p
c3Npb25SZXF1ZXN0ICpyZXF1ZXN0LCBCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7Ci0gICAgaWYg
KCFXRUJLSVRfSVNfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKQotICAg
ICAgICByZXR1cm4gRkFMU0U7Ci0KICAgICBHdGtXaWRnZXQgKmRpYWxvZyA9IGd0a19tZXNzYWdl
X2RpYWxvZ19uZXcoR1RLX1dJTkRPVyh3aW5kb3cpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHVEtfRElBTE9HX01PREFMIHwgR1RLX0RJQUxPR19ERVNU
Uk9ZX1dJVEhfUEFSRU5ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHVEtfTUVTU0FHRV9RVUVTVElPTiwKQEAgLTQxMSwxMiArNDA4LDM4IEBAIHN0YXRp
YyBnYm9vbGVhbiB3ZWJWaWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0V2ViVmlldyAq
d2ViVmlldywgV2ViS2l0UGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJHZW9sb2NhdGlvbiByZXF1ZXN0Iik7CiAKICAgICBndGtfbWVzc2FnZV9kaWFs
b2dfZm9ybWF0X3NlY29uZGFyeV90ZXh0KEdUS19NRVNTQUdFX0RJQUxPRyhkaWFsb2cpLCAiQWxs
b3cgZ2VvbG9jYXRpb24gcmVxdWVzdD8iKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGRpYWxvZywg
InJlc3BvbnNlIiwgR19DQUxMQkFDSyhnZW9sb2NhdGlvblJlcXVlc3REaWFsb2dDYWxsYmFjayks
IGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CisgICAgZ19zaWduYWxfY29ubmVjdChkaWFsb2csICJy
ZXNwb25zZSIsIEdfQ0FMTEJBQ0socGVybWlzc2lvblJlcXVlc3REaWFsb2dDYWxsYmFjayksIGdf
b2JqZWN0X3JlZihyZXF1ZXN0KSk7CisgICAgZ3RrX3dpZGdldF9zaG93KGRpYWxvZyk7CisKKyAg
ICByZXR1cm4gVFJVRTsKK30KKworc3RhdGljIGdib29sZWFuIHNob3dVc2VyTWVkaWFSZXF1ZXN0
RGlhbG9nKFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0LCBCcm93c2VyV2luZG93ICp3
aW5kb3cpCit7CisgICAgR3RrV2lkZ2V0ICpkaWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3
KEdUS19XSU5ET1cod2luZG93KSwKKyAgICAgICAgR1RLX0RJQUxPR19NT0RBTCB8IEdUS19ESUFM
T0dfREVTVFJPWV9XSVRIX1BBUkVOVCwKKyAgICAgICAgR1RLX01FU1NBR0VfUVVFU1RJT04sCisg
ICAgICAgIEdUS19CVVRUT05TX1lFU19OTywKKyAgICAgICAgIlVzZXJNZWRpYSByZXF1ZXN0Iik7
CisKKyAgICBndGtfbWVzc2FnZV9kaWFsb2dfZm9ybWF0X3NlY29uZGFyeV90ZXh0KEdUS19NRVNT
QUdFX0RJQUxPRyhkaWFsb2cpLCAiQWxsb3cgdXNlcm1lZGlhIHJlcXVlc3Q/Iik7CisgICAgZ19z
aWduYWxfY29ubmVjdChkaWFsb2csICJyZXNwb25zZSIsIEdfQ0FMTEJBQ0socGVybWlzc2lvblJl
cXVlc3REaWFsb2dDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CiAgICAgZ3RrX3dp
ZGdldF9zaG93KGRpYWxvZyk7CiAKICAgICByZXR1cm4gVFJVRTsKIH0KIAorc3RhdGljIGdib29s
ZWFuIHdlYlZpZXdEZWNpZGVQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3
LCBXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCwgQnJvd3NlcldpbmRvdyAqd2luZG93
KQoreworICAgIGlmIChXRUJLSVRfSVNfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNUKHJl
cXVlc3QpKQorICAgICAgICByZXR1cm4gc2hvd0dlb2xvY2F0aW9uUmVxdWVzdERpYWxvZyhyZXF1
ZXN0LCB3aW5kb3cpOworCisgICAgaWYgKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05f
UkVRVUVTVChyZXF1ZXN0KSkKKyAgICAgICAgcmV0dXJuIHNob3dVc2VyTWVkaWFSZXF1ZXN0RGlh
bG9nKHJlcXVlc3QsIHdpbmRvdyk7CisKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKIHN0YXRpYyB2
b2lkIHdlYlZpZXdNb3VzZVRhcmdldENoYW5nZWQoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2Vi
S2l0SGl0VGVzdFJlc3VsdCAqaGl0VGVzdFJlc3VsdCwgZ3VpbnQgbW91c2VNb2RpZmllcnMsIEJy
b3dzZXJXaW5kb3cgKndpbmRvdykKIHsKICAgICBpZiAoIXdlYmtpdF9oaXRfdGVzdF9yZXN1bHRf
Y29udGV4dF9pc19saW5rKGhpdFRlc3RSZXN1bHQpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9NaW5p
QnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBiL1Rvb2xzL01pbmlCcm93
c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCmluZGV4IDdlMzAwODYuLjRmNWU5
YWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29u
dHJvbGxlci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29u
dHJvbGxlci5tCkBAIC03MjUsNiArNzI1LDcgQEAgLSAodm9pZClhd2FrZUZyb21OaWIKICAgICAg
ICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIGhpZGVDb2xvclBpY2tlcgog
ICAgICAgICAwLCAvLyB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQKKyAgICAgICAgMCwg
Ly8gZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKICAgICB9OwogICAg
IFdLUGFnZVNldFBhZ2VVSUNsaWVudChfd2ViVmlldy5wYWdlUmVmLCAmdWlDbGllbnQpOwogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA1M2Y2MjBmLi4x
ZThkNmU2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAt
MjUyLDYgKzI1Miw3IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdl
KFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAsIC8vIHNo
b3dDb2xvclBpY2tlcgogICAgICAgICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgMCwg
Ly8gdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkCisgICAgICAgIDAsIC8vIGRlY2lkZVBv
bGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQ
YWdlVUlDbGllbnQobmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xpZW50KTsKIApAQCAtNDU0LDYgKzQ1
NSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhXS0Rp
Y3Rpb25hcnlSZWYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAg
ICAgIDAsIC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQsCisgICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmll
dy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50KTsKIAotLSAKMS44LjQucmMz
</data>
<flag name="review"
          id="238087"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230597</attachid>
            <date>2014-05-01 11:35:10 -0700</date>
            <delta_ts>2014-05-12 04:52:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-WK2-UserMediaClient-support.patch</filename>
            <type>text/plain</type>
            <size>67066</size>
            <attacher name="Seongjun Kim">isair</attacher>
            
              <data encoding="base64">RnJvbSBhNWM0ZGU0MGM4NTk4YjI5YWRmMGFhODVlYmZiNGZlNDdmMjJhYTQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTZW9uZ2p1biBLaW0gPGlzQWlyQGNvbXBhbnkxMDAuY29tPgpE
YXRlOiBUdWUsIDI1IE1hciAyMDE0IDE1OjQ2OjUwICswOTAwClN1YmplY3Q6ID0/VVRGLTg/cT9b
V0syXT0yMFVzZXJNZWRpYUNsaWVudD0yMHN1cHBvcnQ9MEFodHRwczovL2J1Z3Mud2Via2l0Lm8/
PQogPT9VVEYtOD9xP3JnL3Nob3c9NUZidWcuY2dpPTNGaWQ9M0QxMjMxNTg/PQoKUmV2aWV3ZWQg
YnkgTk9CT0RZKE9PUFMhKS4KClN1cHBvcnQgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
IGluIFdlYktpdDIuIEl0J3MgaW1wbGVtZW50ZWQgc2ltaWxhcmlseQp0byB0aGUgR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdCBzdXBwb3J0LiBXaGVuIHRoZSBXZWJQYWdlIHJlcXVpcmVzIHRo
aXMKcGVybWlzc2lvbiBpdCBzZW5kcyBhIG1lc3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3Mgd2hpY2gg
YXQgc29tZSBwb2ludCBncmFudHMgb3IKZGVuaWVzIHRoZSBwZXJtaXNzaW9uIGFuZCBzZW5kIHRo
ZSByZXN1bHQgdG8gdGhlIFdlYlByb2Nlc3MuCgpQYXRjaCBiYXNlZCBvbiB3b3JrIHByZXZpb3Vz
bHkgZG9uZSBieSBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPi4KLS0tCiAu
Li4vTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCAgICAgICB8ICAgMTEg
KysrCiAuLi4vV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCB8
ICAgIDQgKwogLi4uL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAgICAg
ICAgfCAgIDE2ICsrLQogU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAg
ICAgICAgICAgfCAgICA3ICsrCiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSAgICAg
ICAgICAgICAgICAgICB8ICAgIDQgKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oICAgICAgICAgICAgICAgfCAgICAxICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmpl
Y3QuaCAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0FQSVVJQ2xpZW50LmggICAgICAgICB8ICAgIDIgKwogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwICAgICAgICAgIHwgICAxMSArKy0KIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oICAgIHwgICA2MCArKysrKysrKysr
KysKIC4uLi9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAgICAgICAgIHwg
ICA0MSArKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmggfCAgIDM4ICsrKysrKysrCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRVSUNsaWVudC5jcHAgICB8ICAgMTIgKystCiAuLi4vQVBJL2d0ay9XZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgICB8ICAxMDMgKysrKysrKysrKysrKysrKysrKysKIC4u
Li9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggICAgIHwgICA2NCAr
KysrKysrKysrKysKIC4uLi9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2
YXRlLmggIHwgICAyOCArKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJn
dGstZG9jcy5zZ21sICAgIHwgICAgMSArCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJr
aXQyZ3RrLXNlY3Rpb25zLnR4dCB8ICAgMTggKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvd2Via2l0Mi5oICAgICAgICAgfCAgICAxICsKIC4uLi9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgICAgIHwgICA2NyArKysrKysrKysrKysrCiAuLi4v
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAgICAgICB8ICAgNDkgKysr
KysrKysrKwogLi4uL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cCAgfCAgIDQ4ICsrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmggICAgfCAgIDUxICsrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgICAxNiArKysKIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAgICAgIHwgICAgNCArCiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluICB8ICAgIDMgKwogLi4uL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgICAgICAgICAgfCAgIDkxICsrKysrKysr
KysrKysrKysrCiAuLi4vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggICAgICAg
ICAgICB8ICAgNTkgKysrKysrKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFD
bGllbnQuY3BwICAgICAgICAgIHwgICA1OSArKysrKysrKysrKwogLi4uL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmggfCAgIDQ2ICsrKysrKysrKwogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwICAgICAgfCAgIDE0ICsrKwog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCAgICAgICAgfCAgIDEz
ICsrKwogLi4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4g
fCAgICA1ICsKIFRvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMgICAgICAgICAg
ICAgIHwgICAyNiArKystLQogMzUgZmlsZXMgY2hhbmdlZCwgOTU5IGluc2VydGlvbnMoKyksIDE3
IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50
LmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmNwcAppbmRleCBlNDM4ZDM1Li45NDMxODI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAK
QEAgLTM5LDYgKzM5LDcgQEAKIAogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgogI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBsLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJl
YW0uaCIKQEAgLTEwMSw2ICsxMDIsMTYgQEAgVXNlck1lZGlhUmVxdWVzdDo6flVzZXJNZWRpYVJl
cXVlc3QoKQogewogfQogCitEb2N1bWVudCogVXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1lbnQoKSBj
b25zdAoreworICAgIHJldHVybiB0b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
Cit9CisKK0ZyYW1lKiBVc2VyTWVkaWFSZXF1ZXN0OjpmcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5mcmFtZSgpIDogbnVsbHB0cjsKK30KKwogU2Vj
dXJpdHlPcmlnaW4qIFVzZXJNZWRpYVJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKCkgY29uc3QKIHsK
ICAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCA2YWQyMGZl
Li4zOTQyN2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtNDgsNiArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERpY3Rpb25hcnk7CiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEZyYW1lOwog
Y2xhc3MgTWVkaWFDb25zdHJhaW50czsKIGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKIGNsYXNz
IFVzZXJNZWRpYUNvbnRyb2xsZXI7CkBAIC02MCw2ICs2MSw5IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIqLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zLCBQ
YXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4sIFBhc3NSZWZQdHI8
TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB+
VXNlck1lZGlhUmVxdWVzdCgpOwogCisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7Cisg
ICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CisKICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlP
cmlnaW4oKSBjb25zdDsKIAogICAgIHZvaWQgc3RhcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwCmluZGV4IGNlZGIwMzkuLmY3Y2M3M2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNw
cApAQCAtNTksMTQgKzU5LDIwIEBAIE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyOjp+TWVkaWFT
dHJlYW1DZW50ZXJHU3RyZWFtZXIoKQogewogfQogCi12b2lkIE1lZGlhU3RyZWFtQ2VudGVyR1N0
cmVhbWVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
Q3JlYXRpb25DbGllbnQ+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+LCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+KQordm9pZCBNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6dmFs
aWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xp
ZW50PiBjbGllbnQsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4sIFBhc3NSZWZQdHI8TWVk
aWFDb25zdHJhaW50cz4pCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBBU1NFUlQoY2xp
ZW50KTsKKworICAgIC8vIEZJWE1FOiBWYWxpZGF0ZSB2aWRlbyBhbmQgYXVkaW8gY29uc3RyYWlu
dHMKKyAgICBjbGllbnQtPmNvbnN0cmFpbnRzVmFsaWRhdGVkKCk7CiB9Ci0gICAgCi12b2lkIE1l
ZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyOjpjcmVhdGVNZWRpYVN0cmVhbShQYXNzUmVmUHRyPE1l
ZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+LCBQ
YXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KQorCit2b2lkIE1lZGlhU3RyZWFtQ2VudGVyR1N0
cmVhbWVyOjpjcmVhdGVNZWRpYVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25D
bGllbnQ+IGNsaWVudCwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiwgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChj
bGllbnQpOworCisgICAgLy8gRklYTUU6IEFwcGx5IHZpZGVvIGFuZCBhdWRpbyBjb25zdHJhaW50
cworICAgIGNsaWVudC0+ZmFpbGVkVG9DcmVhdGVTdHJlYW1XaXRoUGVybWlzc2lvbkVycm9yKCk7
CiB9CiAKIGJvb2wgTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXI6OmdldE1lZGlhU3RyZWFtVHJh
Y2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50
PikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggNGNiZDA2ZS4uMDEyZmZhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VM
aXN0cy50eHQKQEAgLTQ4LDYgKzQ4LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTSIKICAg
ICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9MYXVuY2hpbmciCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvTWVkaWFDYWNoZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9NZWRpYVN0cmVhbSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9OZXR3b3JrIgog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMiCiAgICAgIiR7V0VC
S0lUMl9ESVJ9L1dlYlByb2Nlc3MvT3JpZ2luRGF0YSIKQEAgLTI5OCw2ICsyOTksOCBAQCBzZXQo
V2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCiAg
ICAgVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9UZXh0Q2hl
Y2tlckNvbXBsZXRpb24uY3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcAogICAg
IFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAogICAgIFVJUHJv
Y2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCkBAIC0zODMsNiArMzg2LDcgQEAgc2V0KFdlYktp
dDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFjZS5jcHAKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24u
Y3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcAogCkBAIC00
NzYsNiArNDgwLDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9NZWRp
YUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmNwcAogCisgICAgV2ViUHJvY2Vzcy9NZWRpYVN0
cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisKICAgICBXZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogICAgIFdlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtNTI1LDYgKzUzMSw3IEBAIHNldChXZWJLaXQy
X1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAK
ICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5j
cHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAK
KyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlZpYnJhdGlvbkNsaWVudC5jcHAKIAogICAg
IFdlYlByb2Nlc3MvV2ViUGFnZS9EZWNvZGVyQWRhcHRlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsu
Y21ha2UKaW5kZXggYmVhMWU0ZC4uNmNhMTc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UK
QEAgLTIwNCw2ICsyMDQsOSBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAogICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmgKKyAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCisgICAgVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgKICAgICBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRWZXJzaW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFZl
cnNpb24uaC5pbgogICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCkBA
IC0zNDYsNiArMzQ5LDcgQEAgc2V0KFdlYktpdDJHVEtfSU5TVEFMTEVEX0hFQURFUlMKICAgICAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmgKICAgICAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXNwb25zZS5oCiAgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5o
CisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuaAogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYkNvbnRleHQuaAogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYkluc3BlY3Rvci5oCiAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViUmVzb3VyY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4
IDc0OWM3NmQuLmY1OGZlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAg
LTEyNSw2ICsxMjUsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVuY2Vz
KiBXS1ByZWZlcmVuY2VzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90ZWN0
aW9uU3BhY2UqIFdLUHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tUZXh0Q2hlY2tlciogV0tUZXh0Q2hlY2tlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLU2Vzc2lvbiogV0tTZXNzaW9uUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlicmF0aW9uKiBXS1ZpYnJh
dGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlld3BvcnRBdHRyaWJ1dGVz
KiBXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmlu
ZGV4IDY0NDY3MWYuLmU3NzliZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAgLTEz
MCw2ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIFByZWZlcmVuY2VzLAogICAgICAgICBTZXNz
aW9uLAogICAgICAgICBUZXh0Q2hlY2tlciwKKyAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QsCiAgICAgICAgIFZpYnJhdGlvbiwKICAgICAgICAgVmlld3BvcnRBdHRyaWJ1dGVzLAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggYzNkNWM3
MC4uYTM4NzU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElV
SUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQu
aApAQCAtNTAsNiArNTAsNyBAQCBjbGFzcyBJbW11dGFibGVEaWN0aW9uYXJ5OwogY2xhc3MgTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQ7CiBjbGFzcyBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk7CiBj
bGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3MgV2ViT3BlblBhbmVsUGFyYW1ldGVyczsKQEAgLTEx
Nyw2ICsxMTgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgcnVuT3BlblBhbmVsKFdl
YktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgV2ViS2l0OjpXZWJP
cGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViS2l0OjpXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclBy
b3h5KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9y
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktp
dDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4qLCBXZWJLaXQ6Okdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdl
YktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgV2ViS2l0OjpXZWJT
ZWN1cml0eU9yaWdpbiosIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSop
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpX
ZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qq
KSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gUHJpbnRpbmcuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNzcyMWFmNS4uY2RhZjA5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtNjEsNiArNjEsNyBA
QCBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXI7CiBjbGFzcyBEb3dubG9hZFBy
b3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OwogY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNz
IFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CkBAIC0x
NDIsNiArMTQzLDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLUHJvdGVjdGlvblNwYWNlUmVmLCBX
ZWJQcm90ZWN0aW9uU3BhY2UpCiBXS19BRERfQVBJX01BUFBJTkcoV0tSZW5kZXJMYXllclJlZiwg
V2ViUmVuZGVyTGF5ZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tSZW5kZXJPYmplY3RSZWYsIFdl
YlJlbmRlck9iamVjdCkKIFdLX0FERF9BUElfTUFQUElORyhXS1RleHRDaGVja2VyUmVmLCBXZWJU
ZXh0Q2hlY2tlcikKK1dLX0FERF9BUElfTUFQUElORyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UmVmLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLVmlicmF0aW9uUmVmLCBXZWJWaWJyYXRpb25Qcm94eSkKIFdLX0FERF9BUElfTUFQUElO
RyhXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiwgV2ViVmlld3BvcnRBdHRyaWJ1dGVzKQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLSW5zcGVjdG9yUmVmLCBXZWJJbnNwZWN0b3JQcm94eSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYzg0MGU4Mi4uNDkxNzA1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTcxLDcgKzcx
LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJh
c2U+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVu
dEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdl
VUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMj4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6
OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50
VjIsIFdLUGFnZVVJQ2xpZW50VjM+IFZlcnNpb25zOwogfTsKIAogfQpAQCAtMTQ1NCw2ICsxNDU0
LDE1IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25z
dCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQogCisgICAgICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZy
YW1lLCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luLCAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSogcGVybWlzc2lvblJlcXVlc3QpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBtX2NsaWVu
dC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0b0FQSShwYWdlKSwg
dG9BUEkoZnJhbWUpLCB0b0FQSShvcmlnaW4pLCB0b0FQSShwZXJtaXNzaW9uUmVxdWVzdCksIG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQorCiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYlNlY3VyaXR5T3JpZ2luKiBv
cmlnaW4sIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCkg
b3ZlcnJpZGUKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xp
Y3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKaW5kZXggMWQ4NDE3MC4uODIxNDZmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgK
QEAgLTg1LDYgKzg1LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWcKIHR5cGVkZWYgdm9pZCAo
KldLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgaW5pdGlhbENvbG9yLCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlSGlkZUNvbG9y
UGlja2VyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
IHR5cGVkZWYgdm9pZCAoKldLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5V
bmF2YWlsYWJpbGl0eVJlYXNvbiwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9EaWN0aW9uYXJ5
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBv
bGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdl
LCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7CiAKIC8vIERlcHJlY2F0ZWQgICAgCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFn
ZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYg
cGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVy
cywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKQEAgLTI0OSw2ICsyNTAsNjUgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMiB7
CiAgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQ7CiB9IFdLUGFn
ZVVJQ2xpZW50VjI7CiAKK3R5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjMgeworICAgIFdL
UGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQ
YWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNyZWF0
ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdl
OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xvc2U7CisgICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlRm9jdXM7CisgICAg
V0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmb2N1czsKKyAgICBXS1BhZ2VVbmZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZm9jdXM7CisgICAgV0tQYWdlUnVu
SmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmly
bTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tQYWdlU2V0U3Rh
dHVzVGV4dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZXRTdGF0dXNUZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tl
ZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgIG1pc3NpbmdQbHVnaW5CdXR0b25D
bGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlS2V5
RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5k
bGVLZXlFdmVudDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2ZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ7CisgICAg
V0tQYWdlR2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlU2V0VG9vbGJhcnNBcmVW
aXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUb29sYmFy
c0FyZVZpc2libGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFn
ZVNldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRTdGF0dXNCYXJJc1Zpc2li
bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0JhcklzVmlz
aWJsZTsKKyAgICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VH
ZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlzUmVzaXphYmxlOworICAgIFdLUGFnZVNldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNSZXNpemFibGU7CisgICAgV0tQ
YWdlR2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VTZXRXaW5kb3dGcmFtZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdpbmRvd0ZyYW1lOwor
ICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOworICAgIFdLUGFnZVVJ
Q2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkRHJhdzsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEaWRTY3JvbGw7CisgICAgV0tQYWdlRXhj
ZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBleGNlZWRlZERhdGFiYXNlUXVvdGE7CisgICAgV0tQYWdlUnVuT3BlblBhbmVsQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5PcGVuUGFuZWw7Cisg
ICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxi
YWNrICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
OworICAgIFdLUGFnZUhlYWRlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0OworICAgIFdLUGFnZUZvb3RlckhlaWdodENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9vdGVySGVp
Z2h0OworICAgIFdLUGFnZURyYXdIZWFkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZHJhd0hlYWRlcjsKKyAgICBXS1BhZ2VEcmF3Rm9vdGVyQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdGb290
ZXI7CisgICAgV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcmludEZyYW1lOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuTW9kYWw7
CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2VkIHRvIGJlIGRpZENvbXBsZXRlUnViYmVy
QmFuZEZvck1haW5GcmFtZQorICAgIFdLUGFnZVNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xk
ZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fk
c0ZvbGRlcjsKKyAgICBXS1BhZ2VTaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQ7CisKKyAg
ICAvLyBWZXJzaW9uIDEuCisgICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlOworICAgIFdLUGFn
ZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9y
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNpZGVQb2xp
Y3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxIHVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworCisgICAg
Ly8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOworICAgIFdLUGFn
ZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGlkZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkOworCisgICAgLy8gVmVyc2lvbiAzLgorICAgIFdLUGFnZURlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgICAgZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q7Cit9IFdLUGFnZVVJQ2xpZW50VjM7
CisKIGVudW0geyBrV0tQYWdlVUlDbGllbnRDdXJyZW50VmVyc2lvbiBXS19FTlVNX0RFUFJFQ0FU
RUQoIlVzZSBhbiBleHBsaWNpdCB2ZXJzaW9uIG51bWJlciBpbnN0ZWFkIikgPSAyIH07CiB0eXBl
ZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmFlZTJmYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRv
IHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aCIKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKyNpbmNs
dWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQg
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRv
QVBJKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OkFQSVR5cGUpOworfQorCit2b2lk
IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQoreworICAgIHJldHVybiB0
b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5hbGxvdygpOworfQorCit2b2lk
IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit7CisgICAgcmV0dXJuIHRv
SW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmRlbnkoKTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlOTlj
MGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTAorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkg
MTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNw
bHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpOworCitXS19FWFBPUlQgdm9pZCBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk7CitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5k
aWYKKworI2VuZGlmIC8qIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdF9oICovCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAK
aW5kZXggOWUwZWY2OC4uMTY0MjNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1
ZGUgIldlYktpdEZpbGVDaG9vc2VyUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFBy
aXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJX
ZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdpbmRvd1Byb3BlcnRpZXNQ
cml2YXRlLmgiCkBAIC0xNTMsNiArMTU0LDEyIEBAIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZv
ckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXCiAg
ICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNzaW9uUmVxdWVzdChXRUJLSVRfV0VCX1ZJRVcoY2xp
ZW50SW5mbyksIFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1QoZ2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5nZXQoKSkpOwogfQogCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLU2VjdXJpdHlPcmln
aW5SZWYsIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3sKKyAgICBHUmVmUHRyPFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0PiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdENyZWF0ZSh0b0ltcGwocmVxdWVzdCkpKTsKKyAgICB3ZWJr
aXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZv
KSwgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5n
ZXQoKSkpOworfQorCiBzdGF0aWMgdm9pZCBydW5Nb2RhbChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCiB7CiAgICAgd2Via2l0V2ViVmlld1J1bkFzTW9kYWwoV0VCS0lUX1dFQl9W
SUVXKGNsaWVudEluZm8pKTsKQEAgLTE2MCw5ICsxNjcsOSBAQCBzdGF0aWMgdm9pZCBydW5Nb2Rh
bChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAKIHZvaWQgYXR0YWNoVUlDbGll
bnRUb1ZpZXcoV2ViS2l0V2ViVmlldyogd2ViVmlldykKIHsKLSAgICBXS1BhZ2VVSUNsaWVudFYy
IHdrVUlDbGllbnQgPSB7CisgICAgV0tQYWdlVUlDbGllbnRWMyB3a1VJQ2xpZW50ID0gewogICAg
ICAgICB7Ci0gICAgICAgICAgICAyLCAvLyB2ZXJzaW9uCisgICAgICAgICAgICAzLCAvLyB2ZXJz
aW9uCiAgICAgICAgICAgICB3ZWJWaWV3LCAvLyBjbGllbnRJbmZvCiAgICAgICAgIH0sCiAgICAg
ICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMApAQCAtMjExLDYg
KzIxOCw3IEBAIHZvaWQgYXR0YWNoVUlDbGllbnRUb1ZpZXcoV2ViS2l0V2ViVmlldyogd2ViVmll
dykKICAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIGhpZGVDb2xv
clBpY2tlcgogICAgICAgICAwLCAvLyBwbHVnaW5Mb2FkUG9saWN5CisgICAgICAgIGRlY2lkZVBv
bGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LAogICAgIH07CiAgICAgV0tQYWdlUmVm
IHdrUGFnZSA9IHRvQVBJKHdlYmtpdFdlYlZpZXdCYXNlR2V0UGFnZShXRUJLSVRfV0VCX1ZJRVdf
QkFTRSh3ZWJWaWV3KSkpOwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3a1BhZ2UsICZ3a1VJ
Q2xpZW50LmJhc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4YjBkZmUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgSWdhbGlhIFMuTAorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor
ICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAi
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorI2luY2x1ZGUgIldlYktpdFBlcm1p
c3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcml2YXRlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKKy8qKgorICogU0VDVElP
TjogV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKKyAqIEBTaG9ydF9kZXNjcmlwdGlv
bjogQSBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIGFjY2Vzc2luZyB1c2VyJ3MgYXVkaW8vdmlkZW8g
ZGV2aWNlcy4KKyAqIEBUaXRsZTogV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKKyAq
IEBTZWVfYWxzbzogI1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0LCAjV2ViS2l0V2ViVmlldworICoK
KyAqIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IHJlcHJlc2VudHMgYSByZXF1ZXN0
IGZvcgorICogcGVybWlzc2lvbiB0byBkZWNpZGUgd2hldGhlciBXZWJLaXQgc2hvdWxkIGJlIGFs
bG93ZWQgdG8gYWNjZXNzIHRoZSB1c2VyJ3MKKyAqIGF1ZGlvIGFuZCB2aWRlbyBzb3VyY2UgZGV2
aWNlcyB3aGVuIHJlcXVlc3RlZCB0aHJvdWdodCB0aGUgZ2V0VXNlck1lZGlhIEFQSS4KKyAqLwor
CitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KFdl
YktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2UqKTsKKworc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgeworICAgIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5PiByZXF1ZXN0OworICAgIGJvb2wgbWFkZURlY2lzaW9uOworfTsKKworV0VC
S0lUX0RFRklORV9UWVBFX1dJVEhfQ09ERSgKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCwgd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0LCBHX1RZUEVfT0JK
RUNULAorICAgIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShXRUJLSVRfVFlQRV9QRVJNSVNTSU9OX1JF
UVVFU1QsIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQpKQorCitzdGF0
aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdlYktpdFBlcm1p
c3Npb25SZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIEFTU0VSVChXRUJLSVRfSVNfVVNFUl9NRURJ
QV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lP
Tl9SRVFVRVNUKHJlcXVlc3QpLT5wcml2OworCisgICAgLy8gT25seSBvbmUgZGVjaXNpb24gYXQg
YSB0aW1lLgorICAgIGlmIChwcml2LT5tYWRlRGVjaXNpb24pCisgICAgICAgIHJldHVybjsKKwor
ICAgIHByaXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7CisgICAgcHJpdi0+cmVxdWVzdC0+YWxsb3co
KTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55
KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIEFTU0VSVChXRUJLSVRf
SVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX1VTRVJfTUVE
SUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpLT5wcml2OworCisgICAgLy8gT25seSBvbmUg
ZGVjaXNpb24gYXQgYSB0aW1lLgorICAgIGlmIChwcml2LT5tYWRlRGVjaXNpb24pCisgICAgICAg
IHJldHVybjsKKworICAgIHByaXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7CisgICAgcHJpdi0+cmVx
dWVzdC0+ZGVueSgpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0
X2ludGVyZmFjZV9pbml0KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2UqIGlmYWNlKQorewor
ICAgIGlmYWNlLT5hbGxvdyA9IHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3c7
CisgICAgaWZhY2UtPmRlbnkgPSB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnk7
Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGlzcG9z
ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLy8gRGVmYXVsdCBiZWhhdmlvdXIgd2hlbiBubyBk
ZWNpc2lvbiBoYXMgYmVlbiBtYWRlIGlzIGRlbnlpbmcgdGhlIHJlcXVlc3QuCisgICAgd2Via2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1Qo
b2JqZWN0KSk7CisgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lv
bl9yZXF1ZXN0X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKK30KKworc3RhdGljIHZv
aWQgd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2NsYXNzX2luaXQoV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFzcyoga2xhc3MpCit7CisgICAgR09iamVjdENs
YXNzKiBvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKyAgICBvYmplY3RDbGFz
cy0+ZGlzcG9zZSA9IHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGlzcG9zZTsKK30K
KworV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QqIHdlYmtpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0Q3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIHJlcXVl
c3QpCit7CisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QqIHVzZXJtZWRpYVBl
cm1pc3Npb25SZXF1ZXN0ID0gV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKGdf
b2JqZWN0X25ldyhXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgTlVM
TCkpOworICAgIHVzZXJtZWRpYVBlcm1pc3Npb25SZXF1ZXN0LT5wcml2LT5yZXF1ZXN0ID0gcmVx
dWVzdDsKKyAgICByZXR1cm4gdXNlcm1lZGlhUGVybWlzc2lvblJlcXVlc3Q7Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mMjlkMDUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsx
LDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBDb21wYW55IDEwMCBJbmMuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwg
d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAq
LworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJ
VDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUg
aW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVNFUl9N
RURJQV9QRVJNSVNTSU9OX1JFUVVFU1QgICAgICAgICAgICAod2Via2l0X3VzZXJfbWVkaWFfcGVy
bWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BF
Uk1JU1NJT05fUkVRVUVTVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9D
QVNUKChvYmopLCBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJ
QV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
Q0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1Qs
IFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRf
SVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9O
X1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVF
U1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lU
X1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfVVNF
Ul9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFO
Q0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JF
UVVFU1QsIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorCit0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgICAgICAgIFdlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZSBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CisKK3N0cnVj
dCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgeworICAgIEdPYmplY3QgcGFyZW50
OworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAg
dm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVz
ZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7Cisg
ICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdU
eXBlCit3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUgKHZvaWQp
OworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YjlmMjVhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oCkBAIC0wLDAgKzEs
MjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTAorICogQ29weXJpZ2h0
IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
ICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3
cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICov
CisKKyNpZm5kZWYgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKKyNk
ZWZpbmUgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKKworI2luY2x1
ZGUgIldlYktpdFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5oIgorCitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogd2Via2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5Kik7CisKKyNlbmRpZiAvLyBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKaW5kZXggZTNjZjlhNi4uY2E3MDQ3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQy
Z3RrLWRvY3Muc2dtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2Nz
L3dlYmtpdDJndGstZG9jcy5zZ21sCkBAIC0yMyw2ICsyMyw3IEBACiAgICAgPHhpOmluY2x1ZGUg
aHJlZj0ieG1sL1dlYktpdERvd25sb2FkLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9Inht
bC9XZWJLaXRQZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4
bWwvV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KKyAgICA8eGk6aW5j
bHVkZSBocmVmPSJ4bWwvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QueG1sIi8+CiAg
ICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBvbGljeURlY2lzaW9uLnhtbCIvPgogICAg
IDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24ueG1s
Ii8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNp
b24ueG1sIi8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAppbmRleCBhMDk4YTAwLi42YTY5Y2I1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtp
dDJndGstc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKQEAgLTUyNCw2ICs1MjQsMjQgQEAgd2Via2l0
X2dlb2xvY2F0aW9uX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCiA8
U0VDVElPTj4KKzxGSUxFPldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PC9GSUxFPgor
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKKworPFNVQlNFQ1RJT04gU3RhbmRhcmQ+
CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzCitXRUJLSVRfVFlQRV9VU0VS
X01FRElBX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9S
RVFVRVNUCitXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9V
U0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUworV0VCS0lUX0lTX1VTRVJfTUVESUFf
UEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JF
UVVFU1RfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9OIFByaXZhdGU+CitXZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUKK3dlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVx
dWVzdF9nZXRfdHlwZQorPC9TRUNUSU9OPgorCis8U0VDVElPTj4KIDxGSUxFPldlYktpdFBvbGlj
eURlY2lzaW9uPC9GSUxFPgogV2ViS2l0UG9saWN5RGVjaXNpb24KIHdlYmtpdF9wb2xpY3lfZGVj
aXNpb25fZG93bmxvYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL3dlYmtpdDIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIu
aAppbmRleCBjMTg1MzhhLi41ODYyZTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvd2Via2l0Mi5oCkBAIC02MCw2ICs2MCw3IEBACiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJL
aXRVUklSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklSZXNwb25zZS5oPgog
I2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdFZlcnNpb24uaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYkNvbnRleHQu
aD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYkluc3BlY3Rvci5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNGQyN2NkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw2NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChD
KSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0
ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5JiBwYWdl
KQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1ZXN0cygpCit7CisgICAgZm9yIChhdXRv
JiByZXF1ZXN0IDogbV9wZW5kaW5nUmVxdWVzdHMudmFsdWVzKCkpCisgICAgICAgIHJlcXVlc3Qt
PmludmFsaWRhdGUoKTsKKworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmNsZWFyKCk7Cit9CisKK1Bh
c3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlh
SUQpCit7CisgICAgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJlcXVl
c3QgPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpjcmVhdGUoKnRoaXMsIHVzZXJN
ZWRpYUlEKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQodXNlck1lZGlhSUQsIHJlcXVlc3Qu
Z2V0KCkpOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKK30KKwordm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQoreworICAg
IGlmICghbV9wYWdlLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBpdCA9
IG1fcGVuZGluZ1JlcXVlc3RzLmZpbmQodXNlck1lZGlhSUQpOworICAgIGlmIChpdCA9PSBtX3Bl
bmRpbmdSZXF1ZXN0cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRp
ZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQp
LCBtX3BhZ2UucGFnZUlEKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dlZCk7Cisj
ZW5kaWYKKworICAgIG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShpdCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmU5NDM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEg
Uy5MLgorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHlfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eV9oCisKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlBhZ2VQcm94eTsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkgeworcHVibGljOgorICAgIGV4cGxpY2l0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5KFdlYlBhZ2VQcm94eSYpOworCisgICAgdm9pZCBpbnZhbGlkYXRlUmVxdWVzdHMo
KTsKKworICAgIC8vIENyZWF0ZSBhIHJlcXVlc3QgdG8gYmUgcHJlc2VudGVkIHRvIHRoZSB1c2Vy
LgorICAgIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRl
UmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJRCk7CisKKyAgICAvLyBDYWxsZWQgYnkgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSB3aGVuIGEgZGVjaXNpb24gaXMgbWFkZSBieSB0aGUg
dXNlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWlu
dDY0X3QsIGJvb2wgYWxsb3cpOworCitwcml2YXRlOgorICAgIEhhc2hNYXA8dWludDY0X3QsIFJl
ZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gbV9wZW5kaW5nUmVxdWVzdHM7
CisgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
ZDZiZjExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBDb21w
YW55IDEwMCBJbmMuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgor
CisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlEKQorICAgIDogbV9tYW5h
Z2VyKG1hbmFnZXIpCisgICAgLCBtX3VzZXJNZWRpYUlEKHVzZXJNZWRpYUlEKQoreworfQorCit2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KCkKK3sKKyAgICBtX21h
bmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlE
LCB0cnVlKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55
KCkKK3sKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lv
bihtX3VzZXJNZWRpYUlELCBmYWxzZSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6aW52YWxpZGF0ZSgpCit7CisgICAgbV9tYW5hZ2VyLmludmFsaWRhdGVSZXF1
ZXN0cygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxZDg0YTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFu
eSAxMDAgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw
MjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHlfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKKworI2lu
Y2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSA6IHB1YmxpYyBB
UEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eT4gY3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCB1
c2VyTWVkaWFJRCkpOworICAgIH0KKworICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRlbnko
KTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworCitwcml2YXRlOgorICAgIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCk7CisKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgbV9tYW5hZ2VyOworICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhSUQ7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCA0YTI2OTc2Li5lMGQ4YmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIlNlc3Npb25TdGF0
ZS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0
ZS5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNs
dWRlICJXS0NvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0Lmgi
CiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgpAQCAtMjY4LDYgKzI2OSw5IEBA
IFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlBy
b2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAgICAgLCBtX3VzZXJBZ2VudChzdGFuZGFyZFVzZXJB
Z2VudCgpKQogICAgICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhp
cykKICAgICAsIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcigqdGhpcykKKyNlbmRpZgogICAgICwgbV92aWV3U3RhdGUoVmlld1N0YXRlOjpO
b0ZsYWdzKQogICAgICwgbV9iYWNrRm9yd2FyZExpc3QoV2ViQmFja0ZvcndhcmRMaXN0OjpjcmVh
dGUoKnRoaXMpKQogICAgICwgbV9sb2FkU3RhdGVBdFByb2Nlc3NFeGl0KEZyYW1lTG9hZFN0YXRl
OjpTdGF0ZTo6RmluaXNoZWQpCkBAIC00MzYyLDYgKzQzNjYsMTggQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2Nh
dGlvbklELAogICAgIHJlcXVlc3QtPmRlbnkoKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnJl
cXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQoreworICAgIFdlYkZyYW1l
UHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBNRVNTQUdF
X0NIRUNLKGZyYW1lKTsKKworICAgIFJlZlB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0g
V2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIob3JpZ2luSWRl
bnRpZmllcik7CisgICAgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJl
cXVlc3QgPSBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcmVhdGVSZXF1ZXN0
KHVzZXJNZWRpYUlEKTsKKworICAgIGlmICghbV91aUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QodGhpcywgZnJhbWUsIG9yaWdpbi5nZXQoKSwgcmVxdWVz
dC5nZXQoKSkpCisgICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKK30KKwogdm9pZCBXZWJQYWdlUHJv
eHk6OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29u
c3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpCiB7CiAgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJl
cXVlc3RJRCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZTdm
YzNkYy4uNGI4YWI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFw
LmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIK
ICNpbmNsdWRlICJWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV0tC
YXNlLmgiCiAjaW5jbHVkZSAiV0tQYWdlUHJpdmF0ZS5oIgpAQCAtMTE2Niw2ICsxMTY3LDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIHByaW50RnJhbWUodWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9p
ZCBleGNlZWRlZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBv
cmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5n
JiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3Jp
Z2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3Rl
ZFVzYWdlLCBQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJh
c2VRdW90YTo6RGVsYXllZFJlcGx5Pik7CiAgICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJt
aXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwg
U3RyaW5nIG9yaWdpbklkZW50aWZpZXIpOworICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1p
c3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3Ry
aW5nIG9yaWdpbklkZW50aWZpZXIpOworCiAgICAgdm9pZCBydW5Nb2RhbCgpOwogICAgIHZvaWQg
bm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0
Jik7CiAgICAgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3Qg
bmV3U3R5bGUpOwpAQCAtMTQ5Myw2ICsxNDk2LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eT4gbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsK
ICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fZ2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7
CisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV91c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAKICAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdz
IG1fdmlld1N0YXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCAxODgzNmE4Li41M2E1N2JkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzMyw2ICsy
MzMsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgICMgR2VvbG9jYXRpb24gbWVz
c2FnZXMKICAgICBSZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3Qg
Z2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIp
CiAgICAgCisgICAgIyBNZWRpYVN0ZWFtIG1lc3NhZ2VzCisgICAgUmVxdWVzdFVzZXJNZWRpYVBl
cm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwg
U3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCisKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwog
ICAgIFJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3Ry
aW5nIG9yaWdpbklkZW50aWZpZXIpCiAgICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUs
IFN0cmluZyBib2R5LCBTdHJpbmcgaWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmcsIFN0
cmluZyBkaXIsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBub3RpZmljYXRpb25J
RCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjNlM2Y5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBDb21wYW55IDEw
MCBJbmMuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m
dHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2Fk
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHVpbnQ2NF90IGdl
bmVyYXRlUmVxdWVzdElEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlUmVxdWVzdElE
ID0gMTsKKyAgICByZXR1cm4gdW5pcXVlUmVxdWVzdElEKys7Cit9CisKK1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdl
YlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChQYXNzUmVmUHRyPFVzZXJNZWRp
YVJlcXVlc3Q+IHJlcXVlc3QpCit7CisgICAgdWludDY0X3QgcmVxdWVzdElEID0gZ2VuZXJhdGVS
ZXF1ZXN0SUQoKTsKKworICAgIG1faWRUb1JlcXVlc3RNYXAuc2V0KHJlcXVlc3RJRCwgcmVxdWVz
dCk7CisgICAgbV9yZXF1ZXN0VG9JRE1hcC5zZXQocmVxdWVzdCwgcmVxdWVzdElEKTsKKworICAg
IC8vIEZJWE1FOiBJbXByb3ZlIHRoZSB3YXkgdG8gZ2V0IHRoZSBXZWJGcmFtZS4KKyAgICBGcmFt
ZSogZnJhbWUgPSByZXF1ZXN0LT5mcmFtZSgpOworICAgIEFTU0VSVChmcmFtZSk7CisKKyAgICBX
ZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9h
ZGVyQ2xpZW50KGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSk7CisgICAgV2ViRnJhbWUqIHdlYkZy
YW1lID0gd2ViRnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2ViRnJh
bWUoKSA6IG51bGxwdHI7CisgICAgQVNTRVJUKHdlYkZyYW1lKTsKKworICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gb3JpZ2luID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7
CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdFVzZXJNZWRp
YVBlcm1pc3Npb25Gb3JGcmFtZShyZXF1ZXN0SUQsIHdlYkZyYW1lLT5mcmFtZUlEKCksIG9yaWdp
bi0+ZGF0YWJhc2VJZGVudGlmaWVyKCkpKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCogcmVxdWVzdCkK
K3sKKyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBtX3JlcXVlc3RUb0lETWFwLnRha2UocmVxdWVz
dCk7CisgICAgaWYgKCFyZXF1ZXN0SUQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2lkVG9SZXF1
ZXN0TWFwLnJlbW92ZShyZXF1ZXN0SUQpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50
NjRfdCByZXF1ZXN0SUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlhUmVx
dWVzdD4gcmVxdWVzdCA9IG1faWRUb1JlcXVlc3RNYXAudGFrZShyZXF1ZXN0SUQpOworICAgIGlm
ICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fcmVxdWVzdFRvSURNYXAucmVtb3Zl
KHJlcXVlc3QpOworCisgICAgaWYgKGFsbG93ZWQpCisgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRp
YUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBlbHNlCisgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFj
Y2Vzc0RlbmllZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjNmN2Q0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApAQCAtMCwwICsxLDU5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
Q29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRl
ZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorI2RlZmluZSBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBVc2VyTWVkaWFSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViUGFnZTsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsKK3B1
YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2Vi
UGFnZSYpOworCisgICAgdm9pZCBzdGFydFJlcXVlc3QoUGFzc1JlZlB0cjxXZWJDb3JlOjpVc2Vy
TWVkaWFSZXF1ZXN0Pik7CisgICAgdm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRp
YVJlcXVlc3QqKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKTsKKworcHJpdmF0ZToKKyAg
ICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1
ZXN0Pj4gSURUb1JlcXVlc3RNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0PiwgdWludDY0X3Q+IFJlcXVlc3RUb0lETWFwOworICAgIElEVG9S
ZXF1ZXN0TWFwIG1faWRUb1JlcXVlc3RNYXA7CisgICAgUmVxdWVzdFRvSURNYXAgbV9yZXF1ZXN0
VG9JRE1hcDsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWMzZDZlMwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50LmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0
byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQuaCIKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJVc2VyTWVkaWFDb250cm9sbGVyLmgi
CisjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYVJlcXVlc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVz
ZXJNZWRpYUNsaWVudChXZWJQYWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisK
K1dlYlVzZXJNZWRpYUNsaWVudDo6fldlYlVzZXJNZWRpYUNsaWVudCgpCit7Cit9CisKK3ZvaWQg
V2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKK3sKKyAgICBkZWxldGUgdGhpczsK
K30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQ
dHI8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCkKK3sKKyAgICBtX3BhZ2UudXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuc3RhcnRSZXF1ZXN0KHJlcXVlc3QpOworfQorCit2b2lk
IFdlYlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0KiByZXF1
ZXN0KQoreworICAgIG1fcGFnZS51c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5j
YW5jZWxSZXF1ZXN0KHJlcXVlc3QpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ7CisKKyNl
bmRpZiAvLyBNRURJQV9TVFJFQU0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwOTY5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5o
CkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAg
SW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBXZWJVc2VyTWVk
aWFDbGllbnRfaAorI2RlZmluZSBXZWJVc2VyTWVkaWFDbGllbnRfaAorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYUNsaWVudC5oPgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFn
ZTsKKworY2xhc3MgV2ViVXNlck1lZGlhQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OlVzZXJNZWRp
YUNsaWVudCB7CitwdWJsaWM6CisgICAgV2ViVXNlck1lZGlhQ2xpZW50KFdlYlBhZ2UmKTsKKyAg
ICB2aXJ0dWFsIH5XZWJVc2VyTWVkaWFDbGllbnQoKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFs
IHZvaWQgcGFnZURlc3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lv
bihQYXNzUmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+KTsKKyAgICB2aXJ0dWFsIHZv
aWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Kik7CisKKyAgICBXZWJQ
YWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gV2ViVXNlck1lZGlhQ2xpZW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA2ZmI5
M2IwLi5kMDg5M2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC05Miw2ICs5Miw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRl
ICJXZWJVbmRvU3RlcC5oIgorI2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FyY2hpdmVS
ZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2hyb21lLmg+CkBAIC0yNzEsNiArMjcyLDkg
QEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgICwg
bV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQogI2VuZGlmCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKCp0aGlzKQorI2VuZGlmCiAgICAgLCBtX2NhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbChwYXJhbWV0ZXJzLmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICAsIG1f
Y2FuUnVuTW9kYWwocGFyYW1ldGVycy5jYW5SdW5Nb2RhbCkKICAgICAsIG1faXNSdW5uaW5nTW9k
YWwoZmFsc2UpCkBAIC0zNzIsNiArMzc2LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBw
YWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYg
RU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCiAgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZVByb3hp
bWl0eVRvKG1fcGFnZS5nZXQoKSwgbmV3IFdlYkRldmljZVByb3hpbWl0eUNsaWVudCh0aGlzKSk7
CiAjZW5kaWYKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYkNvcmU6OnByb3ZpZGVV
c2VyTWVkaWFUbyhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJVc2VyTWVkaWFDbGllbnQoKnRoaXMpKTsK
KyNlbmRpZgogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgbV9wYWdlLT5zZXRS
ZW1vdGVJbnNwZWN0aW9uQWxsb3dlZCh0cnVlKTsKQEAgLTMwODcsNiArMzA5NCwxMyBAQCB2b2lk
IFdlYlBhZ2U6OmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0
X3Qgbm90aWZpY2F0aW9uSUQsCiAgICAgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKCktPmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24obm90aWZpY2F0
aW9uSUQsIGFsbG93ZWQpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK3ZvaWQgV2Vi
UGFnZTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2Vy
TWVkaWFJRCwgYm9vbCBhbGxvd2VkKQoreworICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNlck1lZGlh
SUQsIGFsbG93ZWQpOworfQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oSU9TKQogdm9pZCBXZWJQ
YWdlOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbikK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDY2
OWM5MTUuLjZiYjcyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUg
IlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNs
dWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0RpY3RhdGlvbkFsdGVybmF0aXZlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yLmg+CkBAIC00MzksNiArNDQwLDEwIEBAIHB1Ymxp
YzoKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYgZ2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyJiB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjsgfQorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAgICAgV2ViQ29yZTo6RmxvYXRT
aXplIHNjcmVlblNpemUoKSBjb25zdDsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgYXZhaWxhYmxl
U2NyZWVuU2l6ZSgpIGNvbnN0OwpAQCAtOTY2LDYgKzk3MSwxMCBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qg
dXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCk7CisjZW5kaWYKKwogICAgIHZvaWQgYWR2YW5jZVRv
TmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pOwogICAgIHZvaWQgY2hh
bmdlU3BlbGxpbmdUb1dvcmQoY29uc3QgU3RyaW5nJiB3b3JkKTsKICNpZiBVU0UoQVBQS0lUKQpA
QCAtMTEzMCw2ICsxMTM5LDEwIEBAIHByaXZhdGU6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICNl
bmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisjZW5k
aWYKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQcmludENvbnRleHQ+IG1fcHJpbnRD
b250ZXh0OwogI2lmIFBMQVRGT1JNKEdUSykKICAgICBSZWZQdHI8V2ViUHJpbnRPcGVyYXRpb25H
dGs+IG1fcHJpbnRPcGVyYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDBjNjAxODAuLjc3YTA1MTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCkBAIC0yNTAsNiArMjUwLDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5
UmVjZWl2ZXIgewogICAgIERpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1
aW50NjRfdCBnZW9sb2NhdGlvbklELCBib29sIGFsbG93ZWQpCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgIyBNZWRpYVN0ZWFtCisgICAgRGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQor
I2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYyBiL1Rv
b2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKaW5kZXggNDM3NDc3My4uMDc4YTQx
YyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYworKysg
Yi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCkBAIC0yNTMsNyArMjUzLDcg
QEAgc3RhdGljIHZvaWQgYmFja0ZvcndhZGxpc3RDaGFuZ2VkKFdlYktpdEJhY2tGb3J3YXJkTGlz
dCAqYmFja0ZvcndhZGxpc3QsIFdlYktpdEIKICAgICBicm93c2VyV2luZG93VXBkYXRlTmF2aWdh
dGlvbkFjdGlvbnMod2luZG93LCBiYWNrRm9yd2FkbGlzdCk7CiB9CiAKLXN0YXRpYyB2b2lkIGdl
b2xvY2F0aW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKEd0a0RpYWxvZyAqZGlhbG9nLCBnaW50IHJl
c3BvbnNlLCBXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCkKK3N0YXRpYyB2b2lkIHBl
cm1pc3Npb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2soR3RrRGlhbG9nICpkaWFsb2csIGdpbnQgcmVz
cG9uc2UsIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KQogewogICAgIHN3aXRjaCAo
cmVzcG9uc2UpIHsKICAgICBjYXNlIEdUS19SRVNQT05TRV9ZRVM6CkBAIC00MDYsMTkgKzQwNiwy
NyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViVmlld0RlY2lkZVBvbGljeShXZWJLaXRXZWJWaWV3ICp3
ZWJWaWV3LCBXZWJLaXRQb2xpY3lEZWNpc2lvbgogCiBzdGF0aWMgZ2Jvb2xlYW4gd2ViVmlld0Rl
Y2lkZVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIFdlYktpdFBlcm1p
c3Npb25SZXF1ZXN0ICpyZXF1ZXN0LCBCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7Ci0gICAgaWYg
KCFXRUJLSVRfSVNfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKQorICAg
IGdjaGFyICpkaWFsb2dfdGl0bGUgPSBOVUxMOworICAgIGdjaGFyICpkaWFsb2dfbWVzc2FnZSA9
IE5VTEw7CisKKyAgICBpZiAoV0VCS0lUX0lTX0dFT0xPQ0FUSU9OX1BFUk1JU1NJT05fUkVRVUVT
VChyZXF1ZXN0KSkgeworICAgICAgICBkaWFsb2dfdGl0bGUgPSAiR2VvbG9jYXRpb24gcmVxdWVz
dCI7CisgICAgICAgIGRpYWxvZ19tZXNzYWdlID0gIkFsbG93IGdlb2xvY2F0aW9uIHJlcXVlc3Q/
IjsKKyAgICB9IGVsc2UgaWYgKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVT
VChyZXF1ZXN0KSkgeworICAgICAgICBkaWFsb2dfdGl0bGUgPSAiVXNlck1lZGlhIHJlcXVlc3Qi
OworICAgICAgICBkaWFsb2dfbWVzc2FnZSA9ICJBbGxvdyB1c2VyIG1lZGlhIHJlcXVlc3Q/IjsK
KyAgICB9IGVsc2UKICAgICAgICAgcmV0dXJuIEZBTFNFOwogCiAgICAgR3RrV2lkZ2V0ICpkaWFs
b2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3KEdUS19XSU5ET1cod2luZG93KSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX0RJQUxPR19NT0RBTCB8
IEdUS19ESUFMT0dfREVTVFJPWV9XSVRIX1BBUkVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR1RLX01FU1NBR0VfUVVFU1RJT04sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19CVVRUT05TX1lFU19OTywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdlb2xvY2F0
aW9uIHJlcXVlc3QiKTsKKyAgICAgICAgR1RLX0RJQUxPR19NT0RBTCB8IEdUS19ESUFMT0dfREVT
VFJPWV9XSVRIX1BBUkVOVCwKKyAgICAgICAgR1RLX01FU1NBR0VfUVVFU1RJT04sCisgICAgICAg
IEdUS19CVVRUT05TX1lFU19OTywKKyAgICAgICAgIiVzIiwgZGlhbG9nX3RpdGxlKTsKIAotICAg
IGd0a19tZXNzYWdlX2RpYWxvZ19mb3JtYXRfc2Vjb25kYXJ5X3RleHQoR1RLX01FU1NBR0VfRElB
TE9HKGRpYWxvZyksICJBbGxvdyBnZW9sb2NhdGlvbiByZXF1ZXN0PyIpOwotICAgIGdfc2lnbmFs
X2Nvbm5lY3QoZGlhbG9nLCAicmVzcG9uc2UiLCBHX0NBTExCQUNLKGdlb2xvY2F0aW9uUmVxdWVz
dERpYWxvZ0NhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJlcXVlc3QpKTsKKyAgICBndGtfbWVzc2Fn
ZV9kaWFsb2dfZm9ybWF0X3NlY29uZGFyeV90ZXh0KEdUS19NRVNTQUdFX0RJQUxPRyhkaWFsb2cp
LCAiJXMiLCBkaWFsb2dfbWVzc2FnZSk7CisgICAgZ19zaWduYWxfY29ubmVjdChkaWFsb2csICJy
ZXNwb25zZSIsIEdfQ0FMTEJBQ0socGVybWlzc2lvblJlcXVlc3REaWFsb2dDYWxsYmFjayksIGdf
b2JqZWN0X3JlZihyZXF1ZXN0KSk7CiAgICAgZ3RrX3dpZGdldF9zaG93KGRpYWxvZyk7Ci0KICAg
ICByZXR1cm4gVFJVRTsKIH0KIAotLSAKMS43LjEwLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230599</attachid>
            <date>2014-05-01 11:48:17 -0700</date>
            <delta_ts>2014-05-12 04:52:52 -0700</delta_ts>
            <desc>Fix style</desc>
            <filename>0001-WK2-UserMediaClient-support.patch</filename>
            <type>text/plain</type>
            <size>67096</size>
            <attacher name="Seongjun Kim">isair</attacher>
            
              <data encoding="base64">RnJvbSA1NDcxYWEzODE4OWMzZjMwMDQyNjYzYWFkZTRjOTM4OTM5YzQ3YTg1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTZW9uZ2p1biBLaW0gPGlzQWlyQGNvbXBhbnkxMDAuY29tPgpE
YXRlOiBUdWUsIDI1IE1hciAyMDE0IDE1OjQ2OjUwICswOTAwClN1YmplY3Q6ID0/VVRGLTg/cT9b
V0syXT0yMFVzZXJNZWRpYUNsaWVudD0yMHN1cHBvcnQ9MEFodHRwczovL2J1Z3Mud2Via2l0Lm8/
PQogPT9VVEYtOD9xP3JnL3Nob3c9NUZidWcuY2dpPTNGaWQ9M0QxMjMxNTg/PQoKUmV2aWV3ZWQg
YnkgTk9CT0RZKE9PUFMhKS4KClN1cHBvcnQgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
IGluIFdlYktpdDIuIEl0J3MgaW1wbGVtZW50ZWQgc2ltaWxhcmlseQp0byB0aGUgR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdCBzdXBwb3J0LiBXaGVuIHRoZSBXZWJQYWdlIHJlcXVpcmVzIHRo
aXMKcGVybWlzc2lvbiBpdCBzZW5kcyBhIG1lc3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3Mgd2hpY2gg
YXQgc29tZSBwb2ludCBncmFudHMgb3IKZGVuaWVzIHRoZSBwZXJtaXNzaW9uIGFuZCBzZW5kIHRo
ZSByZXN1bHQgdG8gdGhlIFdlYlByb2Nlc3MuCgpQYXRjaCBiYXNlZCBvbiB3b3JrIHByZXZpb3Vz
bHkgZG9uZSBieSBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPi4KLS0tCiAu
Li4vTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCAgICAgICB8ICAgMTEg
KysrCiAuLi4vV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCB8
ICAgIDQgKwogLi4uL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAgICAg
ICAgfCAgIDE2ICsrLQogU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAg
ICAgICAgICAgfCAgICA3ICsrCiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSAgICAg
ICAgICAgICAgICAgICB8ICAgIDQgKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oICAgICAgICAgICAgICAgfCAgICAxICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmpl
Y3QuaCAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0FQSVVJQ2xpZW50LmggICAgICAgICB8ICAgIDIgKwogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwICAgICAgICAgIHwgICAxMSArKy0KIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oICAgIHwgICA2MCArKysrKysrKysr
KysKIC4uLi9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAgICAgICAgIHwg
ICA0MSArKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmggfCAgIDM4ICsrKysrKysrCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRVSUNsaWVudC5jcHAgICB8ICAgMTIgKystCiAuLi4vQVBJL2d0ay9XZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgICB8ICAxMDMgKysrKysrKysrKysrKysrKysrKysKIC4u
Li9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggICAgIHwgICA2NCAr
KysrKysrKysrKysKIC4uLi9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2
YXRlLmggIHwgICAyOCArKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJn
dGstZG9jcy5zZ21sICAgIHwgICAgMSArCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJr
aXQyZ3RrLXNlY3Rpb25zLnR4dCB8ICAgMTggKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvd2Via2l0Mi5oICAgICAgICAgfCAgICAxICsKIC4uLi9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgICAgIHwgICA2NyArKysrKysrKysrKysrCiAuLi4v
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAgICAgICB8ICAgNDkgKysr
KysrKysrKwogLi4uL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cCAgfCAgIDQ4ICsrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmggICAgfCAgIDUxICsrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgICAxNiArKysKIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAgICAgIHwgICAgNCArCiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluICB8ICAgIDMgKwogLi4uL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgICAgICAgICAgfCAgIDkxICsrKysrKysr
KysrKysrKysrCiAuLi4vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggICAgICAg
ICAgICB8ICAgNTkgKysrKysrKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFD
bGllbnQuY3BwICAgICAgICAgIHwgICA1OSArKysrKysrKysrKwogLi4uL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmggfCAgIDQ2ICsrKysrKysrKwogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwICAgICAgfCAgIDE0ICsrKwog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCAgICAgICAgfCAgIDEz
ICsrKwogLi4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4g
fCAgICA1ICsKIFRvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMgICAgICAgICAg
ICAgIHwgICAyNiArKystLQogMzUgZmlsZXMgY2hhbmdlZCwgOTU5IGluc2VydGlvbnMoKyksIDE3
IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50
LmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmNwcAppbmRleCBlNDM4ZDM1Li43MTAwZWQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAK
QEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzSW1wbC5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFt
LmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50ZXIuaCIKQEAgLTEwMSw2ICsxMDIsMTYgQEAg
VXNlck1lZGlhUmVxdWVzdDo6flVzZXJNZWRpYVJlcXVlc3QoKQogewogfQogCitEb2N1bWVudCog
VXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiB0b0RvY3Vt
ZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Cit9CisKK0ZyYW1lKiBVc2VyTWVkaWFSZXF1
ZXN0OjpmcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgp
LT5mcmFtZSgpIDogbnVsbHB0cjsKK30KKwogU2VjdXJpdHlPcmlnaW4qIFVzZXJNZWRpYVJlcXVl
c3Q6OnNlY3VyaXR5T3JpZ2luKCkgY29uc3QKIHsKICAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuaAppbmRleCA2YWQyMGZlLi4zOTQyN2I2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAt
NDgsNiArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERpY3Rpb25hcnk7CiBj
bGFzcyBEb2N1bWVudDsKK2NsYXNzIEZyYW1lOwogY2xhc3MgTWVkaWFDb25zdHJhaW50czsKIGNs
YXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKIGNsYXNzIFVzZXJNZWRpYUNvbnRyb2xsZXI7CkBAIC02
MCw2ICs2MSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1
ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIq
LCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRp
YVN1Y2Nlc3NDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxs
YmFjaz4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB+VXNlck1lZGlhUmVxdWVzdCgpOwogCisgICAg
RG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CisgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CisK
ICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKIAogICAgIHZvaWQg
c3RhcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFt
ZXIuY3BwCmluZGV4IGNlZGIwMzkuLmY3Y2M3M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcApAQCAtNTksMTQgKzU5LDIwIEBAIE1lZGlh
U3RyZWFtQ2VudGVyR1N0cmVhbWVyOjp+TWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIoKQogewog
fQogCi12b2lkIE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyOjp2YWxpZGF0ZVJlcXVlc3RDb25z
dHJhaW50cyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+LCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KQordm9pZCBN
ZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiBjbGllbnQsIFBhc3NSZWZQdHI8TWVk
aWFDb25zdHJhaW50cz4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICBBU1NFUlQoY2xpZW50KTsKKworICAgIC8vIEZJWE1FOiBWYWxp
ZGF0ZSB2aWRlbyBhbmQgYXVkaW8gY29uc3RyYWludHMKKyAgICBjbGllbnQtPmNvbnN0cmFpbnRz
VmFsaWRhdGVkKCk7CiB9Ci0gICAgCi12b2lkIE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyOjpj
cmVhdGVNZWRpYVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+LCBQ
YXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+
KQorCit2b2lkIE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyOjpjcmVhdGVNZWRpYVN0cmVhbShQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+IGNsaWVudCwgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChjbGllbnQpOworCisgICAgLy8gRklYTUU6IEFw
cGx5IHZpZGVvIGFuZCBhdWRpbyBjb25zdHJhaW50cworICAgIGNsaWVudC0+ZmFpbGVkVG9DcmVh
dGVTdHJlYW1XaXRoUGVybWlzc2lvbkVycm9yKCk7CiB9CiAKIGJvb2wgTWVkaWFTdHJlYW1DZW50
ZXJHU3RyZWFtZXI6OmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFT
dHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50PikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXgg
NGNiZDA2ZS4uMDEyZmZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTQ4LDYgKzQ4LDcgQEAg
c2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9MYXVuY2hpbmciCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTWVkaWFDYWNoZSIK
KyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSIKICAgICAiJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9OZXR3b3JrIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvT3JpZ2lu
RGF0YSIKQEAgLTI5OCw2ICsyOTksOCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9j
ZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCiAgICAgVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1
ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwCisgICAgVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorICAgIFVJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAogICAgIFVJUHJvY2Vz
cy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3Bw
CkBAIC0zODMsNiArMzg2LDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS1Byb3RlY3Rpb25TcGFjZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJj
ZUNhY2hlTWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5jcHAK
KyAgICBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dL
Vmlld3BvcnRBdHRyaWJ1dGVzLmNwcAogCkBAIC00NzYsNiArNDgwLDggQEAgc2V0KFdlYktpdDJf
U09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2Vy
LmNwcAogCisgICAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmNwcAogICAgIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApA
QCAtNTI1LDYgKzUzMSw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlZpYnJhdGlvbkNsaWVudC5jcHAKIAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9EZWNvZGVy
QWRhcHRlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtl
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYmVhMWU0ZC4uNmNhMTc0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTIwNCw2ICsyMDQsOSBAQCBsaXN0KEFQ
UEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hl
bWVSZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuaAogICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRl
LmgKKyAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5oCisgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlLmgKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRWZXJzaW9uLmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFZlcnNpb24uaC5pbgogICAgIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0zNDYsNiArMzQ5LDcgQEAgc2V0KFdlYktp
dDJHVEtfSU5TVEFMTEVEX0hFQURFUlMKICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVUklSZXF1ZXN0LmgKICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVUklSZXNwb25zZS5oCiAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaAogICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuaAogICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5oCiAgICAgJHtX
RUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViUmVzb3VyY2UuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDc0OWM3NmQuLmY1OGZlNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTEyNSw2ICsxMjUsNyBAQCB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVuY2VzKiBXS1ByZWZlcmVuY2VzUmVmOwogdHlwZWRl
ZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90ZWN0aW9uU3BhY2UqIFdLUHJvdGVjdGlvblNwYWNl
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tUZXh0Q2hlY2tlciogV0tUZXh0Q2hl
Y2tlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU2Vzc2lvbiogV0tTZXNzaW9u
UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdCogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLVmlicmF0aW9uKiBXS1ZpYnJhdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLVmlld3BvcnRBdHRyaWJ1dGVzKiBXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4IDY0NDY3MWYuLmU3NzliZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAgLTEzMCw2ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIFByZWZlcmVuY2VzLAogICAgICAgICBTZXNzaW9uLAogICAgICAgICBUZXh0Q2hlY2tlciwK
KyAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsCiAgICAgICAgIFZpYnJhdGlvbiwK
ICAgICAgICAgVmlld3BvcnRBdHRyaWJ1dGVzLAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggYzNkNWM3MC4uYTM4NzU5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtNTAsNiArNTAsNyBAQCBjbGFzcyBJ
bW11dGFibGVEaWN0aW9uYXJ5OwogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNz
IE5hdGl2ZVdlYldoZWVsRXZlbnQ7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dDsKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk7CiBjbGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3Mg
V2ViT3BlblBhbmVsUGFyYW1ldGVyczsKQEAgLTExNyw2ICsxMTgsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIGJvb2wgcnVuT3BlblBhbmVsKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0
OjpXZWJGcmFtZVByb3h5KiwgV2ViS2l0OjpXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViS2l0
OjpXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6
V2ViU2VjdXJpdHlPcmlnaW4qLCBXZWJLaXQ6Okdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQ
cm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0
OjpXZWJGcmFtZVByb3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdl
YktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QqKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
Ly8gUHJpbnRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgK
aW5kZXggNzcyMWFmNS4uY2RhZjA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaApAQCAtNjEsNiArNjEsNyBAQCBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lz
aW9uTGlzdGVuZXI7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7
CitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNz
IFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CkBAIC0xNDIsNiArMTQzLDcgQEAgV0tfQUREX0FQSV9N
QVBQSU5HKFdLUHJvdGVjdGlvblNwYWNlUmVmLCBXZWJQcm90ZWN0aW9uU3BhY2UpCiBXS19BRERf
QVBJX01BUFBJTkcoV0tSZW5kZXJMYXllclJlZiwgV2ViUmVuZGVyTGF5ZXIpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tSZW5kZXJPYmplY3RSZWYsIFdlYlJlbmRlck9iamVjdCkKIFdLX0FERF9BUElf
TUFQUElORyhXS1RleHRDaGVja2VyUmVmLCBXZWJUZXh0Q2hlY2tlcikKK1dLX0FERF9BUElfTUFQ
UElORyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmLCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlicmF0aW9uUmVmLCBXZWJWaWJy
YXRpb25Qcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiwg
V2ViVmlld3BvcnRBdHRyaWJ1dGVzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSW5zcGVjdG9yUmVm
LCBXZWJJbnNwZWN0b3JQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAKaW5kZXggYzg0MGU4Mi4uNDkxNzA1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xp
ZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IENsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6
dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRW
Mj4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdL
UGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjM+IFZlcnNp
b25zOwogfTsKIAogfQpAQCAtMTQ1NCw2ICsxNDU0LDE1IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJ
Q2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xp
ZW50CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCisgICAgICAgIHZpcnR1
YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdl
UHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXZWJTZWN1cml0eU9yaWdpbiogb3Jp
Z2luLCAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogcGVybWlzc2lvblJlcXVlc3Qp
IG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdCh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShvcmlnaW4p
LCB0b0FQSShwZXJtaXNzaW9uUmVxdWVzdCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Cisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCiAgICAgICAgIHZpcnR1YWwgYm9v
bCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJv
eHkqIHBhZ2UsIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCkgb3ZlcnJpZGUKICAgICAgICAgewogICAgICAg
ICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xp
ZW50LmgKaW5kZXggMWQ4NDE3MC4uODIxNDZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTg1LDYgKzg1LDcgQEAgdHlwZWRlZiB2
b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RD
YWxsYmFjaykoV0tQYWcKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVNob3dDb2xvclBpY2tlckNhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgaW5pdGlhbENvbG9yLCBXS0NvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwog
dHlwZWRlZiB2b2lkICgqV0tQYWdlSGlkZUNvbG9yUGlja2VyQ2FsbGJhY2spKFdLUGFnZVJlZiBw
YWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tQbHVn
aW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgV0tEaWN0
aW9uYXJ5UmVmIHBsdWdpbkluZm9EaWN0aW9uYXJ5LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
K3R5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1NlY3Vy
aXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJt
aXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIC8vIERlcHJlY2F0ZWQg
ICAgCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1
cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNl
QnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAgLTI0OSw2ICsyNTAsNjUgQEAgdHlw
ZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMiB7CiAgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVn
aW5CdXR0b25DbGlja2VkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWQ7CiB9IFdLUGFnZVVJQ2xpZW50VjI7CiAKK3R5cGVkZWYgc3Ry
dWN0IFdLUGFnZVVJQ2xpZW50VjMgeworICAgIFdLUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZl
cnNpb24gMC4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMDsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdlOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2U7Cisg
ICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0YWtlRm9jdXM7CisgICAgV0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czsKKyAgICBXS1Bh
Z2VVbmZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuZm9jdXM7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAg
V0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmlybTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0
UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFT
Y3JpcHRQcm9tcHQ7CisgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNUZXh0OworICAgIFdLUGFnZU1v
dXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAg
ICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBX
S1BhZ2VNaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjAgICAgIG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjA7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlFdmVudDsKKyAgICBXS1BhZ2VEaWRO
b3RIYW5kbGVXaGVlbEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0VG9vbGJhcnNBcmVWaXNpYmxl
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2li
bGU7CisgICAgV0tQYWdlU2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRUb29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlR2V0
TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudUJhcklzVmlzaWJsZTsK
KyAgICBXS1BhZ2VHZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRTdGF0dXNC
YXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0
YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVzaXphYmxlOworICAgIFdLUGFn
ZVNldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0SXNSZXNpemFibGU7CisgICAgV0tQYWdlR2V0V2luZG93RnJhbWVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRXaW5kb3dGcmFtZTsKKyAg
ICBXS1BhZ2VTZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENv
bmZpcm1QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRHJhdzsKKyAgICBXS1BhZ2VVSUNs
aWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhZ2VEaWRTY3JvbGw7CisgICAgV0tQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlZWRlZERhdGFiYXNlUXVvdGE7Cisg
ICAgV0tQYWdlUnVuT3BlblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBydW5PcGVuUGFuZWw7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICBkZWNpZGVQb2xpY3lG
b3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZUhlYWRlckhlaWdodENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVySGVp
Z2h0OworICAgIFdLUGFnZUZvb3RlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZm9vdGVySGVpZ2h0OworICAgIFdLUGFnZURyYXdIZWFkZXJD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0hl
YWRlcjsKKyAgICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRyYXdGb290ZXI7CisgICAgV0tQYWdlUHJpbnRGcmFtZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludEZy
YW1lOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcnVuTW9kYWw7CisgICAgdm9pZCogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAv
LyBVc2VkIHRvIGJlIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQorICAgIFdLUGFn
ZVNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcjsKKyAgICBXS1BhZ2VTaG91bGRJ
bnRlcnJ1cHRKYXZhU2NyaXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNo
b3VsZEludGVycnVwdEphdmFTY3JpcHQ7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tQYWdl
Q3JlYXRlTmV3UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVOZXdQYWdlOworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1l
bnQ7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RDYWxsYmFjayAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFj
a19kZXByZWNhdGVkRm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9k
ZXByZWNhdGVkRm9yVXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNo
b3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2hvd0NvbG9yUGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOworICAg
IFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkOworCisgICAgLy8gVmVy
c2lvbiAzLgorICAgIFdLUGFnZURlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0Q2FsbGJhY2sgICAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3Q7Cit9IFdLUGFnZVVJQ2xpZW50VjM7CisKIGVudW0geyBrV0tQYWdlVUlDbGllbnRD
dXJyZW50VmVyc2lvbiBXS19FTlVNX0RFUFJFQ0FURUQoIlVzZSBhbiBleHBsaWNpdCB2ZXJzaW9u
IG51bWJlciBpbnN0ZWFkIikgPSAyIH07CiB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudCB7
CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlZTJmYmIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJ
Z2FsaWEgUy5MCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCIKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dEdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6OkFQSVR5cGUpOworfQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UmVmKQoreworICAgIHJldHVybiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RSZWYpLT5hbGxvdygpOworfQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3REZW55KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiktPmRlbnkoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlOTljMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5o
CkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTAor
ICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKyNpZm5kZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisj
ZGVmaW5lIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaAorCisjaW5jbHVkZSA8V2ViS2l0
Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgor
CitXS19FWFBPUlQgV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJ
RCgpOworCitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3co
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dCk7CitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTsK
KworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAKaW5kZXggOWUwZWY2OC4uMTY0MjNjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50
LmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIldlYktpdEZpbGVDaG9vc2VyUmVxdWVz
dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJW
aWV3QmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIldlYktpdFdpbmRvd1Byb3BlcnRpZXNQcml2YXRlLmgiCkBAIC0xNTMsNiArMTU0LDEy
IEBAIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXCiAgICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNz
aW9uUmVxdWVzdChXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbyksIFdFQktJVF9QRVJNSVNTSU9O
X1JFUVVFU1QoZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkpOwogfQogCitzdGF0
aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VS
ZWYsIFdLRnJhbWVSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RSZWYgcmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBHUmVm
UHRyPFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENyZWF0
ZSh0b0ltcGwocmVxdWVzdCkpKTsKKyAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1
ZXN0KFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSwgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVT
VCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkpOworfQorCiBzdGF0aWMgdm9pZCBy
dW5Nb2RhbChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgd2Via2l0
V2ViVmlld1J1bkFzTW9kYWwoV0VCS0lUX1dFQl9WSUVXKGNsaWVudEluZm8pKTsKQEAgLTE2MCw5
ICsxNjcsOSBAQCBzdGF0aWMgdm9pZCBydW5Nb2RhbChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCiAKIHZvaWQgYXR0YWNoVUlDbGllbnRUb1ZpZXcoV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKIHsKLSAgICBXS1BhZ2VVSUNsaWVudFYyIHdrVUlDbGllbnQgPSB7CisgICAgV0tQYWdl
VUlDbGllbnRWMyB3a1VJQ2xpZW50ID0gewogICAgICAgICB7Ci0gICAgICAgICAgICAyLCAvLyB2
ZXJzaW9uCisgICAgICAgICAgICAzLCAvLyB2ZXJzaW9uCiAgICAgICAgICAgICB3ZWJWaWV3LCAv
LyBjbGllbnRJbmZvCiAgICAgICAgIH0sCiAgICAgICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMApAQCAtMjExLDYgKzIxOCw3IEBAIHZvaWQgYXR0YWNoVUlDbGll
bnRUb1ZpZXcoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICAgICAgMCwgLy8gc2hvd0NvbG9y
UGlja2VyCiAgICAgICAgIDAsIC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAgICAwLCAvLyBwbHVn
aW5Mb2FkUG9saWN5CisgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LAogICAgIH07CiAgICAgV0tQYWdlUmVmIHdrUGFnZSA9IHRvQVBJKHdlYmtpdFdlYlZp
ZXdCYXNlR2V0UGFnZShXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3ZWJWaWV3KSkpOwogICAgIFdLUGFn
ZVNldFBhZ2VVSUNsaWVudCh3a1BhZ2UsICZ3a1VJQ2xpZW50LmJhc2UpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmE4YjBkZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTAsMCAr
MSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTAorICogQ29weXJp
Z2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5oIgorI2luY2x1ZGUgIldlYktpdFBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAi
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CisKKy8qKgorICogU0VDVElPTjogV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QKKyAqIEBTaG9ydF9kZXNjcmlwdGlvbjogQSBwZXJtaXNzaW9uIHJlcXVlc3QgZm9y
IGFjY2Vzc2luZyB1c2VyJ3MgYXVkaW8vdmlkZW8gZGV2aWNlcy4KKyAqIEBUaXRsZTogV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKKyAqIEBTZWVfYWxzbzogI1dlYktpdFBlcm1pc3Np
b25SZXF1ZXN0LCAjV2ViS2l0V2ViVmlldworICoKKyAqIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0IHJlcHJlc2VudHMgYSByZXF1ZXN0IGZvcgorICogcGVybWlzc2lvbiB0byBkZWNp
ZGUgd2hldGhlciBXZWJLaXQgc2hvdWxkIGJlIGFsbG93ZWQgdG8gYWNjZXNzIHRoZSB1c2VyJ3MK
KyAqIGF1ZGlvIGFuZCB2aWRlbyBzb3VyY2UgZGV2aWNlcyB3aGVuIHJlcXVlc3RlZCB0aHJvdWdo
dCB0aGUgZ2V0VXNlck1lZGlhIEFQSS4KKyAqLworCitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlz
c2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2Uq
KTsKKworc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgewor
ICAgIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiByZXF1ZXN0OworICAg
IGJvb2wgbWFkZURlY2lzaW9uOworfTsKKworV0VCS0lUX0RFRklORV9UWVBFX1dJVEhfQ09ERSgK
KyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwgd2Via2l0X3VzZXJfbWVkaWFf
cGVybWlzc2lvbl9yZXF1ZXN0LCBHX1RZUEVfT0JKRUNULAorICAgIEdfSU1QTEVNRU5UX0lOVEVS
RkFDRShXRUJLSVRfVFlQRV9QRVJNSVNTSU9OX1JFUVVFU1QsIHdlYmtpdF9wZXJtaXNzaW9uX3Jl
cXVlc3RfaW50ZXJmYWNlX2luaXQpKQorCitzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQorewor
ICAgIEFTU0VSVChXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVz
dCkpOworCisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKiBwcml2
ID0gV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpLT5wcml2Owor
CisgICAgLy8gT25seSBvbmUgZGVjaXNpb24gYXQgYSB0aW1lLgorICAgIGlmIChwcml2LT5tYWRl
RGVjaXNpb24pCisgICAgICAgIHJldHVybjsKKworICAgIHByaXYtPm1hZGVEZWNpc2lvbiA9IHRy
dWU7CisgICAgcHJpdi0+cmVxdWVzdC0+YWxsb3coKTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiBy
ZXF1ZXN0KQoreworICAgIEFTU0VSVChXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JF
UVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cml2YXRlKiBwcml2ID0gV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVl
c3QpLT5wcml2OworCisgICAgLy8gT25seSBvbmUgZGVjaXNpb24gYXQgYSB0aW1lLgorICAgIGlm
IChwcml2LT5tYWRlRGVjaXNpb24pCisgICAgICAgIHJldHVybjsKKworICAgIHByaXYtPm1hZGVE
ZWNpc2lvbiA9IHRydWU7CisgICAgcHJpdi0+cmVxdWVzdC0+ZGVueSgpOworfQorCitzdGF0aWMg
dm9pZCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KFdlYktpdFBlcm1p
c3Npb25SZXF1ZXN0SWZhY2UqIGlmYWNlKQoreworICAgIGlmYWNlLT5hbGxvdyA9IHdlYmtpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3c7CisgICAgaWZhY2UtPmRlbnkgPSB3ZWJraXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGlzcG9zZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAg
Ly8gRGVmYXVsdCBiZWhhdmlvdXIgd2hlbiBubyBkZWNpc2lvbiBoYXMgYmVlbiBtYWRlIGlzIGRl
bnlpbmcgdGhlIHJlcXVlc3QuCisgICAgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RE
ZW55KFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqZWN0KSk7CisgICAgR19PQkpFQ1RfQ0xB
U1Mod2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X3BhcmVudF9jbGFzcyktPmRp
c3Bvc2Uob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X3VzZXJfbWVkaWFfcGVybWlz
c2lvbl9yZXF1ZXN0X2NsYXNzX2luaXQoV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RD
bGFzcyoga2xhc3MpCit7CisgICAgR09iamVjdENsYXNzKiBvYmplY3RDbGFzcyA9IEdfT0JKRUNU
X0NMQVNTKGtsYXNzKTsKKyAgICBvYmplY3RDbGFzcy0+ZGlzcG9zZSA9IHdlYmtpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0RGlzcG9zZTsKK30KKworV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QqIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIHJlcXVlc3QpCit7CisgICAgV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QqIHVzZXJtZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gV0VCS0lUX1VT
RVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9VU0VS
X01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgTlVMTCkpOworICAgIHVzZXJtZWRpYVBlcm1pc3Np
b25SZXF1ZXN0LT5wcml2LT5yZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICByZXR1cm4gdXNlcm1lZGlh
UGVybWlzc2lvblJlcXVlc3Q7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjlkMDUxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIElnYWxpYSBTLkwKKyAqIENvcHlyaWdodCAoQykgMjAxNCBDb21wYW55IDEwMCBJbmMu
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQy
X0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9u
bHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlm
CisKKyNpZm5kZWYgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBX
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVj
dC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xT
CisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QgICAg
ICAgICAgICAod2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlKCkp
CisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChvYmopICAgICAg
ICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9VU0VS
X01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Mo
a2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVf
VVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JF
UVVFU1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VC
S0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRf
SVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hF
Q0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9O
X1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1Rf
R0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lU
X1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QgICAgICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Owor
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgICBX
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSBXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisg
ICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlICpwcml2OworfTsKKwor
c3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzIHsKKyAgICBHT2Jq
ZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAo
dm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAo
Kl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQz
KSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfdXNlcl9tZWRpYV9wZXJt
aXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUgKHZvaWQpOworCitHX0VORF9ERUNMUworCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjlmMjVhOQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZS5oCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgSWdhbGlhIFMuTAorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor
ICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKKyNkZWZpbmUgV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcml2YXRlX2gKKworI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKKyNpbmNs
dWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIgorCitXZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdCogd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVh
dGUoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Kik7CisKKyNlbmRpZiAv
LyBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGVfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dt
bCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2Nz
LnNnbWwKaW5kZXggZTNjZjlhNi4uY2E3MDQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCkBAIC0y
Myw2ICsyMyw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdERvd25sb2FkLnht
bCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRQZXJtaXNzaW9uUmVxdWVzdC54
bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdC54bWwiLz4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dl
YktpdFBvbGljeURlY2lzaW9uLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJL
aXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24ueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0i
eG1sL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24ueG1sIi8+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rp
b25zLnR4dAppbmRleCBhMDk4YTAwLi42YTY5Y2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50
eHQKQEAgLTUyNCw2ICs1MjQsMjQgQEAgd2Via2l0X2dlb2xvY2F0aW9uX3Blcm1pc3Npb25fcmVx
dWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCiA8U0VDVElPTj4KKzxGSUxFPldlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0PC9GSUxFPgorV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QKKworPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdENsYXNzCitXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVAor
V0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfSVNfVVNFUl9NRURJ
QV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVT
VF9DTEFTUworV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitX
RUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTCisKKzxTVUJTRUNU
SU9OIFByaXZhdGU+CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUKK3dl
YmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQorPC9TRUNUSU9OPgor
Cis8U0VDVElPTj4KIDxGSUxFPldlYktpdFBvbGljeURlY2lzaW9uPC9GSUxFPgogV2ViS2l0UG9s
aWN5RGVjaXNpb24KIHdlYmtpdF9wb2xpY3lfZGVjaXNpb25fZG93bmxvYWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAppbmRleCBjMTg1MzhhLi41ODYyZTFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCkBAIC02MCw2ICs2
MCw3IEBACiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
d2Via2l0Mi9XZWJLaXRVUklSZXNwb25zZS5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFZlcnNpb24uaD4KICNpbmNs
dWRlIDx3ZWJraXQyL1dlYktpdFdlYkNvbnRleHQuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktp
dFdlYkluc3BlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQyN2NkMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICog
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv
biwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVk
ZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9
CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRh
dGVSZXF1ZXN0cygpCit7CisgICAgZm9yIChhdXRvJiByZXF1ZXN0IDogbV9wZW5kaW5nUmVxdWVz
dHMudmFsdWVzKCkpCisgICAgICAgIHJlcXVlc3QtPmludmFsaWRhdGUoKTsKKworICAgIG1fcGVu
ZGluZ1JlcXVlc3RzLmNsZWFyKCk7Cit9CisKK1Bhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNy
ZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQpCit7CisgICAgUmVmUHRyPFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJlcXVlc3QgPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjpjcmVhdGUoKnRoaXMsIHVzZXJNZWRpYUlEKTsKKyAgICBtX3BlbmRpbmdSZXF1
ZXN0cy5hZGQodXNlck1lZGlhSUQsIHJlcXVlc3QuZ2V0KCkpOworICAgIHJldHVybiByZXF1ZXN0
LnJlbGVhc2UoKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2Vy
TWVkaWFJRCwgYm9vbCBhbGxvd2VkKQoreworICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byBpdCA9IG1fcGVuZGluZ1JlcXVlc3RzLmZpbmQodXNl
ck1lZGlhSUQpOworICAgIGlmIChpdCA9PSBtX3BlbmRpbmdSZXF1ZXN0cy5lbmQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBtX3BhZ2UucHJvY2Vz
cygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9u
RGVjaXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQpLCBtX3BhZ2UucGFnZUlEKCkpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0oYWxsb3dlZCk7CisjZW5kaWYKKworICAgIG1fcGVuZGluZ1JlcXVl
c3RzLnJlbW92ZShpdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43
NmU5NDM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw0OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDE0
IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5k
ZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaAorI2RlZmluZSBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgeworcHVibGljOgorICAgIGV4cGxpY2l0
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYpOwor
CisgICAgdm9pZCBpbnZhbGlkYXRlUmVxdWVzdHMoKTsKKworICAgIC8vIENyZWF0ZSBhIHJlcXVl
c3QgdG8gYmUgcHJlc2VudGVkIHRvIHRoZSB1c2VyLgorICAgIFBhc3NSZWZQdHI8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJ
RCk7CisKKyAgICAvLyBDYWxsZWQgYnkgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSB3
aGVuIGEgZGVjaXNpb24gaXMgbWFkZSBieSB0aGUgdXNlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVV
c2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworCitwcml2
YXRlOgorICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5Pj4gbV9wZW5kaW5nUmVxdWVzdHM7CisgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDZiZjExCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
Y3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMu
TC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBDb21wYW55IDEwMCBJbmMuCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2
NF90IHVzZXJNZWRpYUlEKQorICAgIDogbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgLCBtX3VzZXJN
ZWRpYUlEKHVzZXJNZWRpYUlEKQoreworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6OmFsbG93KCkKK3sKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBl
cm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCB0cnVlKTsKK30KKwordm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KCkKK3sKKyAgICBtX21hbmFnZXIuZGlkUmVj
ZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCBmYWxzZSk7Cit9
CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSgpCit7
CisgICAgbV9tYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmIxZDg0YTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICogQ29weXJpZ2h0IChD
KSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2Vy
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZu
ZGVmIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaAorI2RlZmluZSBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKKworY2xhc3MgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6
OlR5cGU6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlKFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2Vy
TWVkaWFJRCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCB1c2VyTWVkaWFJRCkpOworICAgIH0KKworICAg
IHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRlbnkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgp
OworCitwcml2YXRlOgorICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCk7
CisKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbV9tYW5hZ2Vy
OworICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhSUQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA0YTI2OTc2Li5lMGQ4YmZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTYsNiAr
NTYsNyBAQAogI2luY2x1ZGUgIlNlc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2Vy
LmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgiCiAj
aW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRM
aXN0SXRlbS5oIgpAQCAtMjY4LDYgKzI2OSw5IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5
KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAg
ICAgLCBtX3VzZXJBZ2VudChzdGFuZGFyZFVzZXJBZ2VudCgpKQogICAgICwgbV9nZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKICAgICAsIG1fbm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKKyNlbmRpZgog
ICAgICwgbV92aWV3U3RhdGUoVmlld1N0YXRlOjpOb0ZsYWdzKQogICAgICwgbV9iYWNrRm9yd2Fy
ZExpc3QoV2ViQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9sb2FkU3Rh
dGVBdFByb2Nlc3NFeGl0KEZyYW1lTG9hZFN0YXRlOjpTdGF0ZTo6RmluaXNoZWQpCkBAIC00MzYy
LDYgKzQzNjYsMTggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1p
c3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELAogICAgIHJlcXVlc3QtPmRlbnko
KTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmln
aW5JZGVudGlmaWVyKQoreworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53
ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBNRVNTQUdFX0NIRUNLKGZyYW1lKTsKKworICAgIFJlZlB0
cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZy
b21EYXRhYmFzZUlkZW50aWZpZXIob3JpZ2luSWRlbnRpZmllcik7CisgICAgUmVmUHRyPFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJlcXVlc3QgPSBtX3VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcmVhdGVSZXF1ZXN0KHVzZXJNZWRpYUlEKTsKKworICAgIGlmICgh
bV91aUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QodGhp
cywgZnJhbWUsIG9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkpCisgICAgICAgIHJlcXVlc3Qt
PmRlbnkoKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmljYXRpb25QZXJt
aXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpCiB7
CiAgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZTdmYzNkYy4uNGI4YWI3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUg
IlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9u
LmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSAiV0tQYWdlUHJp
dmF0ZS5oIgpAQCAtMTE2Niw2ICsxMTY3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHByaW50RnJh
bWUodWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3Vy
cmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnRE
YXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBQYXNzUmVmUHRyPE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5Pik7CiAg
ICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2Vv
bG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpOwor
ICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2Vy
TWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpOworCiAg
ICAgdm9pZCBydW5Nb2RhbCgpOwogICAgIHZvaWQgbm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJs
ZUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdm9pZCByZWNvbW1lbmRlZFNj
cm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUpOwpAQCAtMTQ5Myw2ICsxNDk2
LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94
eT4gbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5IG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7
CiAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9ub3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisgICAgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAK
ICAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAxODgz
NmE4Li41M2E1N2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTIzMyw2ICsyMzMsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
UHJveHkgewogICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0R2VvbG9jYXRp
b25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJh
bWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiAgICAgCisgICAgIyBNZWRpYVN0ZWFtIG1l
c3NhZ2VzCisgICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCisK
ICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3ROb3RpZmljYXRpb25QZXJt
aXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiAgICAg
U2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUsIFN0cmluZyBib2R5LCBTdHJpbmcgaWNvblVS
TCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmcsIFN0cmluZyBkaXIsIFN0cmluZyBvcmlnaW5JZGVu
dGlmaWVyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wZjNlM2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBA
IC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNCBDb21wYW55IDEwMCBJbmMuCisgKgorICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAx
ICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRnJhbWUuaCIK
KyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nl
Y3VyaXR5T3JpZ2luLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUmVxdWVzdElEKCkKK3sKKyAgICBz
dGF0aWMgdWludDY0X3QgdW5pcXVlUmVxdWVzdElEID0gMTsKKyAgICByZXR1cm4gdW5pcXVlUmVx
dWVzdElEKys7Cit9CisKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2Uo
cGFnZSkKK3sKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0
YXJ0UmVxdWVzdChQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QpCit7CisgICAg
dWludDY0X3QgcmVxdWVzdElEID0gZ2VuZXJhdGVSZXF1ZXN0SUQoKTsKKworICAgIG1faWRUb1Jl
cXVlc3RNYXAuc2V0KHJlcXVlc3RJRCwgcmVxdWVzdCk7CisgICAgbV9yZXF1ZXN0VG9JRE1hcC5z
ZXQocmVxdWVzdCwgcmVxdWVzdElEKTsKKworICAgIC8vIEZJWE1FOiBJbXByb3ZlIHRoZSB3YXkg
dG8gZ2V0IHRoZSBXZWJGcmFtZS4KKyAgICBGcmFtZSogZnJhbWUgPSByZXF1ZXN0LT5mcmFtZSgp
OworICAgIEFTU0VSVChmcmFtZSk7CisKKyAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJh
bWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50KGZyYW1lLT5sb2FkZXIoKS5j
bGllbnQoKSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gd2ViRnJhbWVMb2FkZXJDbGllbnQg
PyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2ViRnJhbWUoKSA6IG51bGxwdHI7CisgICAgQVNTRVJU
KHdlYkZyYW1lKTsKKworICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gZnJhbWUt
PmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZShyZXF1ZXN0
SUQsIHdlYkZyYW1lLT5mcmFtZUlEKCksIG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCkpKTsK
K30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVl
c3QoVXNlck1lZGlhUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICB1aW50NjRfdCByZXF1ZXN0SUQg
PSBtX3JlcXVlc3RUb0lETWFwLnRha2UocmVxdWVzdCk7CisgICAgaWYgKCFyZXF1ZXN0SUQpCisg
ICAgICAgIHJldHVybjsKKyAgICBtX2lkVG9SZXF1ZXN0TWFwLnJlbW92ZShyZXF1ZXN0SUQpOwor
fQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVz
ZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgYWxsb3dl
ZCkKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCA9IG1faWRUb1JlcXVl
c3RNYXAudGFrZShyZXF1ZXN0SUQpOworICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJu
OworICAgIG1fcmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3QpOworCisgICAgaWYgKGFsbG93
ZWQpCisgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBlbHNl
CisgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0
cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44MjNmN2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxp
YSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAg
MDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlh
UmVxdWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBVc2VyTWVkaWFSZXF1ZXN0OworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYpOworCisgICAgdm9pZCBzdGFydFJl
cXVlc3QoUGFzc1JlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pik7CisgICAgdm9pZCBj
YW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKTsKKworICAgIHZvaWQgZGlk
UmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwg
Ym9vbCBhbGxvd2VkKTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pj4gSURUb1JlcXVlc3RNYXA7CisgICAg
dHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0PiwgdWludDY0
X3Q+IFJlcXVlc3RUb0lETWFwOworICAgIElEVG9SZXF1ZXN0TWFwIG1faWRUb1JlcXVlc3RNYXA7
CisgICAgUmVxdWVzdFRvSURNYXAgbV9yZXF1ZXN0VG9JRE1hcDsKKworICAgIFdlYlBhZ2UmIG1f
cGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMWMzZDZlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcApAQCAtMCwwICsx
LDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rvbiwg
TUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJVc2VyTWVkaWFDbGllbnQuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNp
bmNsdWRlICJVc2VyTWVkaWFDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVz
dC5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYVJl
cXVlc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitXZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVzZXJNZWRpYUNsaWVudChXZWJQYWdlJiBwYWdl
KQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK1dlYlVzZXJNZWRpYUNsaWVudDo6fldlYlVz
ZXJNZWRpYUNsaWVudCgpCit7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVz
dHJveWVkKCkKK3sKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGll
bnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVz
dCkKK3sKKyAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuc3Rh
cnRSZXF1ZXN0KHJlcXVlc3QpOworfQorCit2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6Y2FuY2Vs
UmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIG1fcGFnZS51c2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxSZXF1ZXN0KHJlcXVlc3QpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ7CisKKyNlbmRpZiAvLyBNRURJQV9TVFJFQU0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1l
ZGlhQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlVzZXJNZWRpYUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQw
OTY5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisgKi8KKworI2lmbmRlZiBXZWJVc2VyTWVkaWFDbGllbnRfaAorI2RlZmluZSBXZWJVc2Vy
TWVkaWFDbGllbnRfaAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJD
b3JlL1VzZXJNZWRpYUNsaWVudC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViVXNlck1lZGlhQ2xp
ZW50IDogcHVibGljIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudCB7CitwdWJsaWM6CisgICAgV2Vi
VXNlck1lZGlhQ2xpZW50KFdlYlBhZ2UmKTsKKyAgICB2aXJ0dWFsIH5XZWJVc2VyTWVkaWFDbGll
bnQoKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpOworICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFdlYkNvcmU6OlVzZXJN
ZWRpYVJlcXVlc3Q+KTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpV
c2VyTWVkaWFSZXF1ZXN0Kik7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5k
aWYgLy8gV2ViVXNlck1lZGlhQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA2ZmI5M2IwLi5kMDg5M2E3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05Miw2ICs5Miw3IEBA
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9n
cmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJVbmRvU3RlcC5oIgorI2luY2x1ZGUg
IldlYlVzZXJNZWRpYUNsaWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvQ2hyb21lLmg+CkBAIC0yNzEsNiArMjcyLDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRf
dCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAj
aWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcih0aGlzKQogI2VuZGlmCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAs
IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQorI2VuZGlmCiAgICAg
LCBtX2NhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChwYXJhbWV0ZXJzLmNhblJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICAsIG1fY2FuUnVuTW9kYWwocGFyYW1ldGVycy5jYW5S
dW5Nb2RhbCkKICAgICAsIG1faXNSdW5uaW5nTW9kYWwoZmFsc2UpCkBAIC0zNzIsNiArMzc2LDkg
QEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCiAg
ICAgV2ViQ29yZTo6cHJvdmlkZURldmljZVByb3hpbWl0eVRvKG1fcGFnZS5nZXQoKSwgbmV3IFdl
YkRldmljZVByb3hpbWl0eUNsaWVudCh0aGlzKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgIFdlYkNvcmU6OnByb3ZpZGVVc2VyTWVkaWFUbyhtX3BhZ2UuZ2V0KCksIG5l
dyBXZWJVc2VyTWVkaWFDbGllbnQoKnRoaXMpKTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKFJFTU9U
RV9JTlNQRUNUT1IpCiAgICAgbV9wYWdlLT5zZXRSZW1vdGVJbnNwZWN0aW9uQWxsb3dlZCh0cnVl
KTsKQEAgLTMwODcsNiArMzA5NCwxMyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVOb3RpZmlj
YXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsCiAgICAgbm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPmRpZFJlY2VpdmVOb3RpZmljYXRp
b25QZXJtaXNzaW9uRGVjaXNpb24obm90aWZpY2F0aW9uSUQsIGFsbG93ZWQpOwogfQogCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBl
cm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQorewor
ICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVk
aWFQZXJtaXNzaW9uRGVjaXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQpOworfQorI2VuZGlmCisK
ICNpZiAhUExBVEZPUk0oSU9TKQogdm9pZCBXZWJQYWdlOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxp
bmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDY2OWM5MTUuLjZiYjcyOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDUsNiArNDUsNyBAQAog
I2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNs
dWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RpY3RhdGlvbkFsdGVybmF0aXZlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9y
Lmg+CkBAIC00MzksNiArNDQwLDEwIEBAIHB1YmxpYzoKICAgICBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlciYgZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7
IHJldHVybiBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyJiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBt
X3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsgfQorI2VuZGlmCisKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHNjcmVlblNpemUoKSBjb25zdDsKICAg
ICBXZWJDb3JlOjpGbG9hdFNpemUgYXZhaWxhYmxlU2NyZWVuU2l6ZSgpIGNvbnN0OwpAQCAtOTY2
LDYgKzk3MSwxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRSZWNlaXZlTm90aWZpY2F0aW9u
UGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQp
OwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVk
aWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCk7
CisjZW5kaWYKKwogICAgIHZvaWQgYWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRC
ZWZvcmVTZWxlY3Rpb24pOwogICAgIHZvaWQgY2hhbmdlU3BlbGxpbmdUb1dvcmQoY29uc3QgU3Ry
aW5nJiB3b3JkKTsKICNpZiBVU0UoQVBQS0lUKQpAQCAtMTEzMCw2ICsxMTM5LDEwIEBAIHByaXZh
dGU6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgbV9nZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgbV91c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisjZW5kaWYKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpQcmludENvbnRleHQ+IG1fcHJpbnRDb250ZXh0OwogI2lmIFBMQVRGT1JNKEdUSykK
ICAgICBSZWZQdHI8V2ViUHJpbnRPcGVyYXRpb25HdGs+IG1fcHJpbnRPcGVyYXRpb247CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCmluZGV4IDBjNjAxODAuLjc3YTA1MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yNTAsNiArMjUwLDEx
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIERpZFJlY2VpdmVH
ZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBnZW9sb2NhdGlvbklELCBib29s
IGFsbG93ZWQpCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgIyBNZWRp
YVN0ZWFtCisgICAgRGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRf
dCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQorI2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlv
bgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qg
bm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJy
b3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2Vy
V2luZG93LmMKaW5kZXggNDM3NDc3My4uMDc4YTQxYyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJy
b3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJv
d3NlcldpbmRvdy5jCkBAIC0yNTMsNyArMjUzLDcgQEAgc3RhdGljIHZvaWQgYmFja0ZvcndhZGxp
c3RDaGFuZ2VkKFdlYktpdEJhY2tGb3J3YXJkTGlzdCAqYmFja0ZvcndhZGxpc3QsIFdlYktpdEIK
ICAgICBicm93c2VyV2luZG93VXBkYXRlTmF2aWdhdGlvbkFjdGlvbnMod2luZG93LCBiYWNrRm9y
d2FkbGlzdCk7CiB9CiAKLXN0YXRpYyB2b2lkIGdlb2xvY2F0aW9uUmVxdWVzdERpYWxvZ0NhbGxi
YWNrKEd0a0RpYWxvZyAqZGlhbG9nLCBnaW50IHJlc3BvbnNlLCBXZWJLaXRQZXJtaXNzaW9uUmVx
dWVzdCAqcmVxdWVzdCkKK3N0YXRpYyB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0RGlhbG9nQ2FsbGJh
Y2soR3RrRGlhbG9nICpkaWFsb2csIGdpbnQgcmVzcG9uc2UsIFdlYktpdFBlcm1pc3Npb25SZXF1
ZXN0ICpyZXF1ZXN0KQogewogICAgIHN3aXRjaCAocmVzcG9uc2UpIHsKICAgICBjYXNlIEdUS19S
RVNQT05TRV9ZRVM6CkBAIC00MDYsMTkgKzQwNiwyNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViVmll
d0RlY2lkZVBvbGljeShXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBXZWJLaXRQb2xpY3lEZWNpc2lv
bgogCiBzdGF0aWMgZ2Jvb2xlYW4gd2ViVmlld0RlY2lkZVBlcm1pc3Npb25SZXF1ZXN0KFdlYktp
dFdlYlZpZXcgKndlYlZpZXcsIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0LCBCcm93
c2VyV2luZG93ICp3aW5kb3cpCiB7Ci0gICAgaWYgKCFXRUJLSVRfSVNfR0VPTE9DQVRJT05fUEVS
TUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKQorICAgIGdjaGFyICpkaWFsb2dfdGl0bGUgPSBOVUxM
OworICAgIGdjaGFyICpkaWFsb2dfbWVzc2FnZSA9IE5VTEw7CisKKyAgICBpZiAoV0VCS0lUX0lT
X0dFT0xPQ0FUSU9OX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSkgeworICAgICAgICBkaWFs
b2dfdGl0bGUgPSAiR2VvbG9jYXRpb24gcmVxdWVzdCI7CisgICAgICAgIGRpYWxvZ19tZXNzYWdl
ID0gIkFsbG93IGdlb2xvY2F0aW9uIHJlcXVlc3Q/IjsKKyAgICB9IGVsc2UgaWYgKFdFQktJVF9J
U19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSkgeworICAgICAgICBkaWFs
b2dfdGl0bGUgPSAiVXNlck1lZGlhIHJlcXVlc3QiOworICAgICAgICBkaWFsb2dfbWVzc2FnZSA9
ICJBbGxvdyB1c2VyIG1lZGlhIHJlcXVlc3Q/IjsKKyAgICB9IGVsc2UKICAgICAgICAgcmV0dXJu
IEZBTFNFOwogCiAgICAgR3RrV2lkZ2V0ICpkaWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3
KEdUS19XSU5ET1cod2luZG93KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR1RLX0RJQUxPR19NT0RBTCB8IEdUS19ESUFMT0dfREVTVFJPWV9XSVRIX1BB
UkVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RL
X01FU1NBR0VfUVVFU1RJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdUS19CVVRUT05TX1lFU19OTywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkdlb2xvY2F0aW9uIHJlcXVlc3QiKTsKKyAgICAgICAgR1RL
X0RJQUxPR19NT0RBTCB8IEdUS19ESUFMT0dfREVTVFJPWV9XSVRIX1BBUkVOVCwKKyAgICAgICAg
R1RLX01FU1NBR0VfUVVFU1RJT04sCisgICAgICAgIEdUS19CVVRUT05TX1lFU19OTywKKyAgICAg
ICAgIiVzIiwgZGlhbG9nX3RpdGxlKTsKIAotICAgIGd0a19tZXNzYWdlX2RpYWxvZ19mb3JtYXRf
c2Vjb25kYXJ5X3RleHQoR1RLX01FU1NBR0VfRElBTE9HKGRpYWxvZyksICJBbGxvdyBnZW9sb2Nh
dGlvbiByZXF1ZXN0PyIpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoZGlhbG9nLCAicmVzcG9uc2Ui
LCBHX0NBTExCQUNLKGdlb2xvY2F0aW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKSwgZ19vYmplY3Rf
cmVmKHJlcXVlc3QpKTsKKyAgICBndGtfbWVzc2FnZV9kaWFsb2dfZm9ybWF0X3NlY29uZGFyeV90
ZXh0KEdUS19NRVNTQUdFX0RJQUxPRyhkaWFsb2cpLCAiJXMiLCBkaWFsb2dfbWVzc2FnZSk7Cisg
ICAgZ19zaWduYWxfY29ubmVjdChkaWFsb2csICJyZXNwb25zZSIsIEdfQ0FMTEJBQ0socGVybWlz
c2lvblJlcXVlc3REaWFsb2dDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CiAgICAg
Z3RrX3dpZGdldF9zaG93KGRpYWxvZyk7Ci0KICAgICByZXR1cm4gVFJVRTsKIH0KIAotLSAKMS43
LjEwLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231286</attachid>
            <date>2014-05-12 04:53:07 -0700</date>
            <delta_ts>2014-06-09 02:01:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123158-20140512205243.patch</filename>
            <type>text/plain</type>
            <size>69021</size>
            <attacher name="Seongjun Kim">isair</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTI5YzQzODk5MjU1Yjdh
ODVhNmZkZWUzYTYyZDY1NDM5NmY4OTI3Yy4uMDY5OWQ4YWU1YmY2MzY4ZjJiYjAzMTNmM2UzZjA4
NWI0OTJmNzAzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA1LTEyICBTZW9u
Z2p1biBLaW0gIDxpc0FpckBjb21wYW55MTAwLmNvbT4KKworICAgICAgICBbV0syXSBVc2VyTWVk
aWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3VwcG9ydCBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgaW4gV2ViS2l0
Mi4gSXQncyBpbXBsZW1lbnRlZAorICAgICAgICBzaW1pbGFyaWx5IHRvIHRoZSBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0IHN1cHBvcnQuIFdoZW4gdGhlCisgICAgICAgIFdlYlBhZ2UgcmVx
dWlyZXMgdGhpcyBwZXJtaXNzaW9uIGl0IHNlbmRzIGEgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2Vz
cworICAgICAgICB3aGljaCBhdCBzb21lIHBvaW50IGdyYW50cyBvciBkZW5pZXMgdGhlIHBlcm1p
c3Npb24gYW5kIHNlbmQgdGhlCisgICAgICAgIHJlc3VsdCB0byB0aGUgV2ViUHJvY2Vzcy4KKwor
ICAgICAgICBQYXRjaCBiYXNlZCBvbiB3b3JrIHByZXZpb3VzbHkgZG9uZSBieSBQaGlsaXBwZSBO
b3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPi4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6IEFkZGVkIGRvY3VtZW50IGFuZAorICAgICAgICBm
cmFtZSBhY2Nlc3NvcnMsIG5lZWRlZCBieSB0aGUgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIgb2Yg
dGhlCisgICAgICAgIFdlYlByb2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1
ZXN0Ojpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpmcmFt
ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVy
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQ2VudGVyR1N0cmVh
bWVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6Y3JlYXRlTWVkaWFTdHJlYW0pOgorCiAyMDE0LTA1LTEx
ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBIZWFkZXJzIGFuZCBm
b290ZXJzIGFyZSBub3QgcG9zaXRpb25lZCBjb3JyZWN0bHkgd2l0aCB0b3BDb250ZW50SW5zZXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3OWY0YTg1NjdjOTg2OWQ1ZmQxOTlkODFhMjE3ZDdhMDdiZTdhNmYzLi44
Nzc5ZTUzMjQxY2VhNGZlMDY4YjFmMGM2MGNkOTkyNWJmNjgwYzU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTcgQEAKKzIwMTQtMDUtMTIgIFNlb25nanVuIEtpbSAgPGlzQWlyQGNvbXBhbnkxMDAu
Y29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGZvciBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdCBpbiBXZWJLaXQyLiBJdCdzIGltcGxlbWVudGVkCisgICAgICAg
IHNpbWlsYXJpbHkgdG8gdGhlIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qgc3VwcG9ydC4g
V2hlbiB0aGUKKyAgICAgICAgV2ViUGFnZSByZXF1aXJlcyB0aGlzIHBlcm1pc3Npb24gaXQgc2Vu
ZHMgYSBtZXNzYWdlIHRvIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIHdoaWNoIGF0IHNvbWUgcG9p
bnQgZ3JhbnRzIG9yIGRlbmllcyB0aGUgcGVybWlzc2lvbiBhbmQgc2VuZCB0aGUKKyAgICAgICAg
cmVzdWx0IHRvIHRoZSBXZWJQcm9jZXNzLgorCisgICAgICAgIFBhdGNoIGJhc2VkIG9uIHdvcmsg
cHJldmlvdXNseSBkb25lIGJ5IFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IE5ldyBNZWRpYVN0cmVhbSBkaXJlY3Rvcnkg
YW5kIGZpbGVzLgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBEaXR0by4KKyAgICAgICAg
KiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6IE5ldyB0eXBlIGZvciBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC4KKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IERpdHRvLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6IEZvcndhcmQtZGVjbGFyZSB0aGUgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cDogTmV3IERlY2lkZVBvbGljeSBoYW5kbGVyIGZvciBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC4KKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZCwgQyBBUEkgaW1wbGVtZW50YXRpb24g
b2YKKyAgICAgICAgdGhlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LgorICAgICAgICAoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCk6CisgICAgICAgIChXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cpOgorICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdERlbnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFVJQ2xpZW50LmNwcDogRGVjaWRlUG9saWN5IGhhbmRsZXIgaW1wbGVtZW50YXRpb24gZm9yCisg
ICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LgorICAgICAgICAoZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOiBEZWZlciBwZXJtaXNzaW9uIHJlcXVlc3Qg
dG8gQVBJQ2xpZW50LgorICAgICAgICAoYXR0YWNoVUlDbGllbnRUb1ZpZXcpOiBVcGdyYWRlIHRo
ZSB2ZXJzaW9uIG9mIFVJQ2xpZW50IHRvIDMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZCwgV2ViS2l0R1RLIEFQ
SSBmb3IKKyAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsIHZlcnkgc2ltaWxhciB0
byB0aGUgb25lIHVzZWQgZm9yIEdlb2xvY2F0aW9uLgorICAgICAgICAod2Via2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAgICh3ZWJraXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdERlbnkpOgorICAgICAgICAod2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRl
cmZhY2VfaW5pdCk6CisgICAgICAgICh3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERp
c3Bvc2UpOgorICAgICAgICAod2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2Ns
YXNzX2luaXQpOgorICAgICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVh
dGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQ6IEV4cG9zZSBuZXcgQVBJ
IGluIGRvY3VtZW50YXRpb24uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5o
OiBFeHBvc2UgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgQVBJLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLCBt
YW5hZ2VyIHN0b3JpbmcgcGVuZGluZworICAgICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uIHJlcXVl
c3RzLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0
ZVJlcXVlc3RzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Np
b25EZWNpc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDogQWRkZWQsIHByb3h5IG9iamVjdCBmb3IgdGhlCisg
ICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0VHlwZS4KKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk6OmFsbG93KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6ZGVueSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Np
b25Gb3JGcmFtZSk6IERlZmVyIFVzZXJQZXJtaXNzaW9uUmVxdWVzdCB0bworICAgICAgICB0aGUg
VUlDbGllbnQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IE5ldyBtZXNzYWdlIHRvIGhhbmRs
ZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuCisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRp
YVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZCwgV2Vi
UHJvY2VzcyBzaWRlIG9mCisgICAgICAgIHRoZSBVc2VyUmVxdWVzdE1hbmFnZXIsIGtlZXBpbmcg
dHJhY2sgb2YgZWFjaCBwZXJtaXNzaW9uIHJlcXVlc3QuCisgICAgICAgIChXZWJLaXQ6OmdlbmVy
YXRlUmVxdWVzdElEKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdCk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2Fu
Y2VsUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2Vy
TWVkaWFDbGllbnQuY3BwOiBBZGRlZCwgV2ViUHJvY2VzcyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUK
KyAgICAgICAgV2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJV
c2VyTWVkaWFDbGllbnQ6OldlYlVzZXJNZWRpYUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlVzZXJNZWRpYUNsaWVudDo6fldlYlVzZXJNZWRpYUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlVzZXJNZWRpYUNsaWVudDo6cGFnZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlVzZXJNZWRpYUNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
V2ViUGFnZSk6IENyZWF0ZSB0aGUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIGFu
ZCByZWdpc3RlciB0aGUKKyAgICAgICAgVXNlck1lZGlhQ2xpZW50IHRvIHRoZSBwYWdlLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lz
aW9uKTogRGlzcGF0Y2ggZGVjaXNpb24gdG8gbWFuYWdlci4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluOiBOZXcgTWVzc2FnZSB0byBoYW5kbGUgcGVybWlzc2lvbiBkZWNp
c2lvbiByZXN1bHQKKyAgICAgICAgZnJvbSB0aGUgVUkgcHJvY2Vzcy4KKwogMjAxNC0wNS0xMSAg
U2VvbmdqdW4gS2ltICA8aXNBaXJAY29tcGFueTEwMC5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TihyMTY4NjAzKTogW0dUS10gQnVpbGQgYnJva2VuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggZTQzOGQz
NWEyZDdiZDIyMjVhNmY0YTdhNzc5N2JjZWU2YmVlY2MzMi4uNzEwMGVkNjkzZDBmODAzM2M3ZDMy
YTYwOTRjMDM2N2JjOTIxNjRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAj
aW5jbHVkZSAiRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTWVkaWFDb25z
dHJhaW50c0ltcGwuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgogI2luY2x1ZGUgIk1lZGlh
U3RyZWFtQ2VudGVyLmgiCkBAIC0xMDEsNiArMTAyLDE2IEBAIFVzZXJNZWRpYVJlcXVlc3Q6On5V
c2VyTWVkaWFSZXF1ZXN0KCkKIHsKIH0KIAorRG9jdW1lbnQqIFVzZXJNZWRpYVJlcXVlc3Q6OmRv
Y3VtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpOworfQorCitGcmFtZSogVXNlck1lZGlhUmVxdWVzdDo6ZnJhbWUoKSBjb25zdAor
eworICAgIHJldHVybiBkb2N1bWVudCgpID8gZG9jdW1lbnQoKS0+ZnJhbWUoKSA6IG51bGxwdHI7
Cit9CisKIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1ZXN0OjpzZWN1cml0eU9yaWdpbigp
IGNvbnN0CiB7CiAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5k
ZXggNmFkMjBmZTA2NzUzMzEyNTM4YmRhMjgzZDA1YmU0MjVhODM3ZDc4YS4uMzk0MjdiNmNkNWEz
NjQxZTRmZmIyMTM2OWQ4ZjlkZjAxYmRjNzdiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTQ4LDYgKzQ4LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaWN0aW9uYXJ5OwogY2xhc3MgRG9jdW1l
bnQ7CitjbGFzcyBGcmFtZTsKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBNZWRpYVN0
cmVhbVByaXZhdGU7CiBjbGFzcyBVc2VyTWVkaWFDb250cm9sbGVyOwpAQCAtNjAsNiArNjEsOSBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gY3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBVc2VyTWVkaWFDb250cm9sbGVyKiwgY29uc3QgRGlj
dGlvbmFyeSYgb3B0aW9ucywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2Fs
bGJhY2s+LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+LCBFeGNl
cHRpb25Db2RlJik7CiAgICAgflVzZXJNZWRpYVJlcXVlc3QoKTsKIAorICAgIERvY3VtZW50KiBk
b2N1bWVudCgpIGNvbnN0OworICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OworCiAgICAgU2VjdXJp
dHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2b2lkIHN0YXJ0KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
TWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcAppbmRl
eCBjZWRiMDM5NzM1OTIzMDMxYjdhOTliNzc2NmYwOThjOGQ0OTAyMTUxLi5mN2NjNzNjMGI3MDMy
YzNjYzU2ZDQ0YTk3YzRjYTY0OWQwOGUzZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9N
ZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAKQEAgLTU5LDE0ICs1OSwyMCBAQCBNZWRpYVN0
cmVhbUNlbnRlckdTdHJlYW1lcjo6fk1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyKCkKIHsKIH0K
IAotdm9pZCBNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3Ry
YWludHMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiwgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikKK3ZvaWQgTWVk
aWFTdHJlYW1DZW50ZXJHU3RyZWFtZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFBhc3NS
ZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudD4gY2xpZW50LCBQYXNzUmVmUHRyPE1lZGlh
Q29uc3RyYWludHM+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgQVNTRVJUKGNsaWVudCk7CisKKyAgICAvLyBGSVhNRTogVmFsaWRh
dGUgdmlkZW8gYW5kIGF1ZGlvIGNvbnN0cmFpbnRzCisgICAgY2xpZW50LT5jb25zdHJhaW50c1Zh
bGlkYXRlZCgpOwogfQotICAgIAotdm9pZCBNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6Y3Jl
YXRlTWVkaWFTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiwgUGFz
c1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikK
Kwordm9pZCBNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6Y3JlYXRlTWVkaWFTdHJlYW0oUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiBjbGllbnQsIFBhc3NSZWZQdHI8TWVk
aWFDb25zdHJhaW50cz4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICBBU1NFUlQoY2xpZW50KTsKKworICAgIC8vIEZJWE1FOiBBcHBs
eSB2aWRlbyBhbmQgYXVkaW8gY29uc3RyYWludHMKKyAgICBjbGllbnQtPmZhaWxlZFRvQ3JlYXRl
U3RyZWFtV2l0aFBlcm1pc3Npb25FcnJvcigpOwogfQogCiBib29sIE1lZGlhU3RyZWFtQ2VudGVy
R1N0cmVhbWVyOjpnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudD4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IDRk
YWZmZWNhZDA0NDZlYzAzYTk0NjZjZTE2MDc3OWYyMjE2ODkwMjYuLjExMjViZjIwYzRhM2VmYWEx
OGQ5ZTIwYjkxMjBjMTUyODUxNjBkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC00OCw2ICs0
OCw3IEBAIHNldChXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00iCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dl
YlByb2Nlc3MvTGF1bmNoaW5nIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL01lZGlh
Q2FjaGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0iCiAgICAg
IiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTmV0d29yayIKICAgICAiJHtXRUJLSVQyX0RJUn0v
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNz
L09yaWdpbkRhdGEiCkBAIC0yOTgsNiArMjk5LDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAg
IFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAogICAgIFVJUHJvY2Vzcy9TdGF0aXN0
aWNzUmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcAor
ICAgIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
KyAgICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKICAgICBV
SVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRM
aXN0LmNwcApAQCAtMzg0LDYgKzM4Nyw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dL
UmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNr
ZXIuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
Y3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlicmF0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5jcHAKIApAQCAtNDc3LDYgKzQ4MSw4IEBAIHNldChX
ZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hl
TWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmNwcAogICAgIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRl
ci5jcHAKQEAgLTUyNiw2ICs1MzIsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJWaWJyYXRpb25DbGllbnQuY3BwCiAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uv
RGVjb2RlckFkYXB0ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdU
Sy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGYwNTA0Yzgy
ZjJmN2IxZDc5NDQxN2ZlODVhNGJhYzJmMjJjZWEyNjYuLjJkZTU1YjhhZWM5YWY2NmMxZjdmMGFk
NDYwNWQxMTBhZDM5NDllODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RL
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0yMDQsNiAr
MjA0LDkgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRVUklTY2hlbWVSZXF1ZXN0LmgKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hl
bWVSZXF1ZXN0UHJpdmF0ZS5oCisgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QuaAorICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VmVyc2lvbi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRWZXJzaW9uLmguaW4K
ICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMzQ2LDYgKzM0
OSw3IEBAIHNldChXZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5oCiAgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9uc2UuaAogICAgICR7V0VCS0lUMl9E
SVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmgKICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250
ZXh0LmgKICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJJbnNw
ZWN0b3IuaAogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlJl
c291cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2Uu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCBiNjI2YTA0MTg4
NjBiOTkxMmZhYzVhZDM0NjIwMWE0NDgzMThkOTUyLi4xYjg3MDFhMTRkMjgxNDlhMjllNTg3N2Q5
MGZhNzdmNmIxZjI1MDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0x
MjYsNiArMTI2LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcmVmZXJlbmNlcyog
V0tQcmVmZXJlbmNlc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJvdGVjdGlv
blNwYWNlKiBXS1Byb3RlY3Rpb25TcGFjZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLVGV4dENoZWNrZXIqIFdLVGV4dENoZWNrZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS1Nlc3Npb24qIFdLU2Vzc2lvblJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QqIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ZpYnJhdGlvbiogV0tWaWJyYXRp
b25SZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ZpZXdwb3J0QXR0cmlidXRlcyog
V0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRl
eCA4YWI3NzQyN2UxNmI4MDliNThjMDdjNmZkMGQ0NDk3ODhjYTE4NzBlLi41NWUxYjA5ZTQ4ZWY4
OTc3NWRkMTgzODY1ZjgxNThhZGY3YzY5MjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5o
CkBAIC0xMzEsNiArMTMxLDcgQEAgcHVibGljOgogICAgICAgICBQcmVmZXJlbmNlcywKICAgICAg
ICAgU2Vzc2lvbiwKICAgICAgICAgVGV4dENoZWNrZXIsCisgICAgICAgIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0LAogICAgICAgICBWaWJyYXRpb24sCiAgICAgICAgIFZpZXdwb3J0QXR0cmli
dXRlcywKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4
IDlmZjAwOTRlNzNkNzlmYzVlZGUwNGY2MDIzNzRlNDZmNDdjZDJkZTYuLjI1NTRiZDUyYWVkNjM3
MDg0ZmNhNmM5N2I4ZjEwZDBhYTFmMTYwMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0FQSVVJQ2xpZW50LmgKQEAgLTUwLDYgKzUwLDcgQEAgY2xhc3MgSW1tdXRhYmxlRGljdGlv
bmFyeTsKIGNsYXNzIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBOYXRpdmVXZWJXaGVl
bEV2ZW50OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CitjbGFzcyBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lclByb3h5OwogY2xhc3MgV2ViRnJhbWVQcm94eTsKIGNsYXNzIFdlYk9wZW5QYW5lbFBh
cmFtZXRlcnM7CkBAIC0xMTcsNiArMTE4LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29s
IHJ1bk9wZW5QYW5lbChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94
eSosIFdlYktpdDo6V2ViT3BlblBhbmVsUGFyYW1ldGVycyosIFdlYktpdDo6V2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJQcm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQ
YWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBXZWJLaXQ6OldlYlNlY3VyaXR5T3Jp
Z2luKiwgV2ViS2l0OjpHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkqKSB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94
eSosIFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4qLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBkZWNp
ZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQ
cm94eSosIFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4qLCBXZWJLaXQ6Ok5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0KikgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIFByaW50aW5nLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IGI2NGZjOWE5
MDcyMjcyN2JjNjUxY2Y0Njg0NGNkZDFhNDcwZDdmZGEuLjI1YjQ2YTBjMTc2MTQ2OGU4OGEyYzlk
NWJiZGFlZTljYTVlY2UxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
UElDYXN0LmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgQXV0aGVudGljYXRpb25EZWNpc2lvbkxp
c3RlbmVyOwogY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RQcm94eTsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworY2xh
c3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNsYXNzIFdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtOwpAQCAtMTQ0LDYgKzE0NSw3IEBAIFdLX0FERF9BUElfTUFQUElO
RyhXS1Byb3RlY3Rpb25TcGFjZVJlZiwgV2ViUHJvdGVjdGlvblNwYWNlKQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLUmVuZGVyTGF5ZXJSZWYsIFdlYlJlbmRlckxheWVyKQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLUmVuZGVyT2JqZWN0UmVmLCBXZWJSZW5kZXJPYmplY3QpCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tUZXh0Q2hlY2tlclJlZiwgV2ViVGV4dENoZWNrZXIpCitXS19BRERfQVBJX01BUFBJTkco
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1ZpYnJhdGlvblJlZiwgV2ViVmlicmF0aW9u
UHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYsIFdlYlZp
ZXdwb3J0QXR0cmlidXRlcykKIFdLX0FERF9BUElfTUFQUElORyhXS0luc3BlY3RvclJlZiwgV2Vi
SW5zcGVjdG9yUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
CmluZGV4IDc3MGYxY2I4NmI2YjgyM2VmMmE3NTQ3NDQ0NjRhZTgzNzM0NzU0YjEuLmE4YTdjNmZm
MDU3MGJjMmI5NmE0M2IyZWQwNTcwY2IyNzgyMmI1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xNDY4LDYgKzE0NjgsMTUgQEAgdm9pZCBXS1BhZ2VT
ZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFz
ZSogd2tDbGllbnQKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKKyAgICAg
ICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
KFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIFdlYlNlY3VyaXR5T3Jp
Z2luKiBvcmlnaW4sICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBwZXJtaXNzaW9u
UmVxdWVzdCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5k
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJ
KG9yaWdpbiksIHRvQVBJKHBlcm1pc3Npb25SZXF1ZXN0KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJ
bmZvKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKICAgICAgICAgdmly
dHVhbCBib29sIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdl
YlBhZ2VQcm94eSogcGFnZSwgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QqIHBlcm1pc3Npb25SZXF1ZXN0KSBvdmVycmlkZQogICAgICAgICB7
CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlVUlDbGllbnQuaAppbmRleCBmZTY2ODY5YjkzNDMzNTk2OWEwZWY5YTBlYmVhMmYzMzQ2ZDFj
ZjZmLi43M2U2M2U5OGYwYzM3MDU0YTk3MzRiMWY4YTc1ZGRiOGRiMDQyMzcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaApAQCAtODYsNiAr
ODYsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjaykoV0tQ
YWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGluaXRpYQogdHlwZWRlZiB2b2lkICgqV0tQYWdlSGlk
ZUNvbG9yUGlja2VyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tl
ZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBw
bHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9EaWN0
aW9uYXJ5LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVBp
bm5lZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZy
YW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIC8v
IERlcHJlY2F0ZWQgICAgCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VD
YWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9u
YXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNl
QnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAgLTMwNyw2ICsz
MDgsNyBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYzIHsKIAogICAgIC8vIFZlcnNp
b24gMy4KICAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdlOworICAgIFdLUGFnZURl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAg
ICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q7CiB9IFdLUGFnZVVJ
Q2xpZW50VjM7CiAKIGVudW0geyBrV0tQYWdlVUlDbGllbnRDdXJyZW50VmVyc2lvbiBXS19FTlVN
X0RFUFJFQ0FURUQoIlVzZSBhbiBleHBsaWNpdCB2ZXJzaW9uIG51bWJlciBpbnN0ZWFkIikgPSAy
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWVlMmZiYjg0OTAx
MGQ0M2Y2NWMwZjJiOTQxZWE0ZjE4NDVkMDcxYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApA
QCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBDb21wYW55IDEwMCBJbmMuCisgKgorICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAx
ICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OworCitXS1R5cGVJRCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkK
K3sKKyAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6QVBJ
VHlwZSk7Cit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYp
Cit7CisgICAgcmV0dXJuIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmFs
bG93KCk7Cit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikK
K3sKKyAgICByZXR1cm4gdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+ZGVu
eSgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWU5OWMwYWNjNGQ1
MGYxZjNhYmY0NGUxMDg5NjVlZjYyNGNhMjcyZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKQEAg
LTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisgKi8KKworI2lmbmRlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZp
bmUgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dL
QmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dL
X0VYUE9SVCBXS1R5cGVJRCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7
CisKK1dLX0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTsK
K1dLX0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOworCisj
aWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCA5ZTBlZjY4YzM4NjBjZTA4NjlhYjBkYzE2
NmNlM2ZmZTIwZDRhNTI5Li40NzFiMGI1ODVlZGMzNjUxNjNmZThiZTkwN2FhY2VlZDJlMDMzM2Yz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlD
bGllbnQuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RmlsZUNob29zZXJS
ZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktp
dFdlYlZpZXdCYXNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViS2l0V2luZG93UHJvcGVydGllc1ByaXZhdGUuaCIKQEAgLTE1Myw2ICsx
NTQsMTIgQEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFcKICAgICB3ZWJraXRXZWJWaWV3TWFrZVBl
cm1pc3Npb25SZXF1ZXN0KFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSwgV0VCS0lUX1BFUk1J
U1NJT05fUkVRVUVTVChnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CiB9CiAK
K3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdL
UGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAg
IEdSZWZQdHI8V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
Q3JlYXRlKHRvSW1wbChyZXF1ZXN0KSkpOworICAgIHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lv
blJlcXVlc3QoV0VCS0lUX1dFQl9WSUVXKGNsaWVudEluZm8pLCBXRUJLSVRfUEVSTUlTU0lPTl9S
RVFVRVNUKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7Cit9CisKIHN0YXRpYyB2
b2lkIHJ1bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB3
ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbykpOwpAQCAt
MTYwLDkgKzE2Nyw5IEBAIHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIAogdm9pZCBhdHRhY2hVSUNsaWVudFRvVmlldyhXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQogewotICAgIFdLUGFnZVVJQ2xpZW50VjIgd2tVSUNsaWVudCA9IHsKKyAgICBX
S1BhZ2VVSUNsaWVudFYzIHdrVUlDbGllbnQgPSB7CiAgICAgICAgIHsKLSAgICAgICAgICAgIDIs
IC8vIHZlcnNpb24KKyAgICAgICAgICAgIDMsIC8vIHZlcnNpb24KICAgICAgICAgICAgIHdlYlZp
ZXcsIC8vIGNsaWVudEluZm8KICAgICAgICAgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFn
ZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCkBAIC0yMTEsNiArMjE4LDggQEAgdm9pZCBhdHRhY2hV
SUNsaWVudFRvVmlldyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgICAgICAwLCAvLyBzaG93
Q29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAsIC8v
IHBsdWdpbkxvYWRQb2xpY3kKKyAgICAgICAgMCwgLy8gcGlubmVkU3RhdGVEaWRDaGFuZ2UKKyAg
ICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsCiAgICAgfTsK
ICAgICBXS1BhZ2VSZWYgd2tQYWdlID0gdG9BUEkod2Via2l0V2ViVmlld0Jhc2VHZXRQYWdlKFdF
QktJVF9XRUJfVklFV19CQVNFKHdlYlZpZXcpKSk7CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50
KHdrUGFnZSwgJndrVUlDbGllbnQuYmFzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYThiMGRmZWRkNzExMTYyZDllYzJjODcxNmYwODYzZWMw
OGViZmVhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEwMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExl
c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmgi
CisjaW5jbHVkZSAiV2ViS2l0UGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJLaXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKKworLyoqCisgKiBTRUNUSU9OOiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dAorICogQFNob3J0X2Rlc2NyaXB0aW9uOiBBIHBlcm1pc3Npb24gcmVxdWVzdCBmb3IgYWNjZXNz
aW5nIHVzZXIncyBhdWRpby92aWRlbyBkZXZpY2VzLgorICogQFRpdGxlOiBXZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdAorICogQFNlZV9hbHNvOiAjV2ViS2l0UGVybWlzc2lvblJlcXVl
c3QsICNXZWJLaXRXZWJWaWV3CisgKgorICogV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QgcmVwcmVzZW50cyBhIHJlcXVlc3QgZm9yCisgKiBwZXJtaXNzaW9uIHRvIGRlY2lkZSB3aGV0
aGVyIFdlYktpdCBzaG91bGQgYmUgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIHVzZXIncworICogYXVk
aW8gYW5kIHZpZGVvIHNvdXJjZSBkZXZpY2VzIHdoZW4gcmVxdWVzdGVkIHRocm91Z2h0IHRoZSBn
ZXRVc2VyTWVkaWEgQVBJLgorICovCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9wZXJtaXNzaW9uX3Jl
cXVlc3RfaW50ZXJmYWNlX2luaXQoV2ViS2l0UGVybWlzc2lvblJlcXVlc3RJZmFjZSopOworCitz
dHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSB7CisgICAgUmVm
UHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJlcXVlc3Q7CisgICAgYm9vbCBt
YWRlRGVjaXNpb247Cit9OworCitXRUJLSVRfREVGSU5FX1RZUEVfV0lUSF9DT0RFKAorICAgIFdl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNz
aW9uX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QsCisgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKFdF
QktJVF9UWVBFX1BFUk1JU1NJT05fUkVRVUVTVCwgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9p
bnRlcmZhY2VfaW5pdCkpCisKK3N0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0QWxsb3coV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgQVNT
RVJUKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSk7CisK
KyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUqIHByaXYgPSBXRUJL
SVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisKKyAgICAv
LyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBhIHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVEZWNpc2lv
bikKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKKyAg
ICBwcml2LT5yZXF1ZXN0LT5hbGxvdygpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3Qp
Cit7CisgICAgQVNTRVJUKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChy
ZXF1ZXN0KSk7CisKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUq
IHByaXYgPSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCktPnBy
aXY7CisKKyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBhIHRpbWUuCisgICAgaWYgKHByaXYt
Pm1hZGVEZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpdi0+bWFkZURlY2lzaW9u
ID0gdHJ1ZTsKKyAgICBwcml2LT5yZXF1ZXN0LT5kZW55KCk7Cit9CisKK3N0YXRpYyB2b2lkIHdl
YmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQoV2ViS2l0UGVybWlzc2lvblJl
cXVlc3RJZmFjZSogaWZhY2UpCit7CisgICAgaWZhY2UtPmFsbG93ID0gd2Via2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RBbGxvdzsKKyAgICBpZmFjZS0+ZGVueSA9IHdlYmtpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0RGVueTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3REaXNwb3NlKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvLyBEZWZh
dWx0IGJlaGF2aW91ciB3aGVuIG5vIGRlY2lzaW9uIGhhcyBiZWVuIG1hZGUgaXMgZGVueWluZyB0
aGUgcmVxdWVzdC4KKyAgICB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0VC
S0lUX1BFUk1JU1NJT05fUkVRVUVTVChvYmplY3QpKTsKKyAgICBHX09CSkVDVF9DTEFTUyh3ZWJr
aXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZShv
YmplY3QpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3Jl
cXVlc3RfY2xhc3NfaW5pdChXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzKiBr
bGFzcykKK3sKKyAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Mo
a2xhc3MpOworICAgIG9iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3REaXNwb3NlOworfQorCitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dCogd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eSogcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCogdXNlcm1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBXRUJLSVRfVVNFUl9NRURJ
QV9QRVJNSVNTSU9OX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1VTRVJfTUVESUFf
UEVSTUlTU0lPTl9SRVFVRVNULCBOVUxMKSk7CisgICAgdXNlcm1lZGlhUGVybWlzc2lvblJlcXVl
c3QtPnByaXYtPnJlcXVlc3QgPSByZXF1ZXN0OworICAgIHJldHVybiB1c2VybWVkaWFQZXJtaXNz
aW9uUmVxdWVzdDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmYyOWQwNTE0YzlhNTBmMGUxNzBmMmEzNGViMTk1YmY1ZTQzNDM4MDIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgSWdhbGlhIFMuTAorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIElu
Yy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy
ZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
IEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJ
VDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAi
T25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5k
aWYKKworI2lmbmRlZiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5l
IFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gKKworI2luY2x1ZGUgPGdsaWItb2Jq
ZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVD
TFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCAg
ICAgICAgICAgICh3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKG9iaikgICAg
ICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1VT
RVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFT
UyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQ
RV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05f
UkVRVUVTVChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBX
RUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCkpCisjZGVmaW5lIFdFQktJ
VF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9D
SEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJ
T05fUkVRVUVTVCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVT
VF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJL
SVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdCAgICAgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q7
Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFzcyAg
IFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlIFdlYktpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8K
KyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgKnByaXY7Cit9Owor
CitzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgeworICAgIEdP
YmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDAp
ICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lk
ICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZl
ZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF91c2VyX21lZGlhX3Bl
cm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iOWYyNWE5NDc2M2ZmYWY5ZDRmYzhjNjhiMWNjOTI4N2U1NDYyMDA0Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFu
eSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBXZWJL
aXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGVfaAorI2RlZmluZSBXZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGVfaAorCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0
ZS5oIgorI2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgiCisKK1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdENyZWF0ZShXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqKTsK
KworI2VuZGlmIC8vIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJn
dGstZG9jcy5zZ21sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJr
aXQyZ3RrLWRvY3Muc2dtbAppbmRleCBlM2NmOWE2OGM2YjM5ZDE3OWFkYTU1OWNhYTQ4ZGFmYzEx
YWY1YzIxLi5jYTcwNDcyZDA2ZTYwYzRlOGNmODUwOTQxYWQwMjQyMjkyODk4MWZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9j
cy5zZ21sCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay1kb2NzLnNnbWwKQEAgLTIzLDYgKzIzLDcgQEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4
bWwvV2ViS2l0RG93bmxvYWQueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktp
dFBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJL
aXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgorICAgIDx4aTppbmNsdWRlIGhy
ZWY9InhtbC9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6
aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0UG9saWN5RGVjaXNpb24ueG1sIi8+CiAgICAgPHhpOmlu
Y2x1ZGUgaHJlZj0ieG1sL1dlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi54bWwiLz4KICAg
ICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbi54bWwi
Lz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CmluZGV4IGEwOThhMDBkODc2ODQ4YjBiYzA3Njli
MzIxZTNiY2M4ODAxMmQxZjEuLjZhNjljYjUwMDFiMGE1M2U5ZmExNjBjMmExMWFmMzJmMDdhYzI2
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApAQCAtNTI0LDYgKzUyNCwyNCBAQCB3ZWJr
aXRfZ2VvbG9jYXRpb25fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCiA8L1NFQ1RJT04+CiAK
IDxTRUNUSU9OPgorPEZJTEU+V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q8L0ZJTEU+
CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAorCis8U1VCU0VDVElPTiBTdGFuZGFy
ZD4KK1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MKK1dFQktJVF9UWVBFX1VT
RVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9O
X1JFUVVFU1QKK1dFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lU
X1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfSVNfVVNFUl9NRURJ
QV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1MKK1dFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05f
UkVRVUVTVF9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZQord2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9y
ZXF1ZXN0X2dldF90eXBlCis8L1NFQ1RJT04+CisKKzxTRUNUSU9OPgogPEZJTEU+V2ViS2l0UG9s
aWN5RGVjaXNpb248L0ZJTEU+CiBXZWJLaXRQb2xpY3lEZWNpc2lvbgogd2Via2l0X3BvbGljeV9k
ZWNpc2lvbl9kb3dubG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvd2Via2l0Mi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0
Mi5oCmluZGV4IGMxODUzOGE2MzExMTA0MGU0NmJiMjgyZjA2ODBiZDNiYzJmNTY0ZTguLjU4NjJl
MWFlMGZhYjg3NGI3N2VhZDk4NTUzM2I5ODFhMzQ0M2YxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKQEAgLTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdFVSSVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJl
c3BvbnNlLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg+Cisj
aW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oPgogI2lu
Y2x1ZGUgPHdlYmtpdDIvV2ViS2l0VmVyc2lvbi5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
V2ViQ29udGV4dC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViSW5zcGVjdG9yLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDI3Y2QzNTdk
MmNjYzUwODgxYTQwMjAzNDZmOTBmODkyMmYwNzRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBT
LkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIx
MTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJXZWJQYWdl
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eShXZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVlc3Rz
KCkKK3sKKyAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3BlbmRpbmdSZXF1ZXN0cy52YWx1ZXMo
KSkKKyAgICAgICAgcmVxdWVzdC0+aW52YWxpZGF0ZSgpOworCisgICAgbV9wZW5kaW5nUmVxdWVz
dHMuY2xlYXIoKTsKK30KKworUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVz
dCh1aW50NjRfdCB1c2VyTWVkaWFJRCkKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eT4gcmVxdWVzdCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OmNyZWF0ZSgqdGhpcywgdXNlck1lZGlhSUQpOworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFkZCh1
c2VyTWVkaWFJRCwgcmVxdWVzdC5nZXQoKSk7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgp
OworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRS
ZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBi
b29sIGFsbG93ZWQpCit7CisgICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBhdXRvIGl0ID0gbV9wZW5kaW5nUmVxdWVzdHMuZmluZCh1c2VyTWVkaWFJRCk7
CisgICAgaWYgKGl0ID09IG1fcGVuZGluZ1JlcXVlc3RzLmVuZCgpKQorICAgICAgICByZXR1cm47
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1
c2VyTWVkaWFJRCwgYWxsb3dlZCksIG1fcGFnZS5wYWdlSUQoKSk7CisjZWxzZQorICAgIFVOVVNF
RF9QQVJBTShhbGxvd2VkKTsKKyNlbmRpZgorCisgICAgbV9wZW5kaW5nUmVxdWVzdHMucmVtb3Zl
KGl0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2ZTk0Mzc2MmEwZWFiYTRjNDJiMjQxN2IxZWY1YTQ4YWFl
NzhmNDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDQ5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
Q29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRl
ZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CisK
KyAgICB2b2lkIGludmFsaWRhdGVSZXF1ZXN0cygpOworCisgICAgLy8gQ3JlYXRlIGEgcmVxdWVz
dCB0byBiZSBwcmVzZW50ZWQgdG8gdGhlIHVzZXIuCisgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlE
KTsKKworICAgIC8vIENhbGxlZCBieSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IHdo
ZW4gYSBkZWNpc2lvbiBpcyBtYWRlIGJ5IHRoZSB1c2VyLgorICAgIHZvaWQgZGlkUmVjZWl2ZVVz
ZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdyk7CisKK3ByaXZh
dGU6CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFkNmJmMTFkNTM3YmFhY2M3Yjg4MmFhYjRmYTdhNzZjZWExYjJjODMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJ
Z2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rvbiwg
TUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisKKyNpbmNsdWRlICJVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdl
ciwgdWludDY0X3QgdXNlck1lZGlhSUQpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAs
IG1fdXNlck1lZGlhSUQodXNlck1lZGlhSUQpCit7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6YWxsb3coKQoreworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNl
ck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIHRydWUpOworfQorCit2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkoKQoreworICAgIG1fbWFuYWdl
ci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIGZh
bHNlKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlk
YXRlKCkKK3sKKyAgICBtX21hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFkODRhODdj
YWUzZTc4NTJhNTcxZjMwODBjZTIxOTBkMzEwZTY2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAg
LTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBDb21wYW55IDEwMCBJbmMu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQorICovCisKKyNpZm5kZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eV9oCisj
ZGVmaW5lIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaAorCisjaW5jbHVkZSAiQVBJ
T2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OworCitj
bGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0
SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5PiBjcmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFn
ZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlEKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYUlE
KSk7CisgICAgfQorCisgICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgZGVueSgpOworCisgICAg
dm9pZCBpbnZhbGlkYXRlKCk7CisKK3ByaXZhdGU6CisgICAgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2
NF90IHVzZXJNZWRpYUlEKTsKKworICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5JiBtX21hbmFnZXI7CisgICAgdWludDY0X3QgbV91c2VyTWVkaWFJRDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDdhZmM2ODc3NTlkMDI1YWZkODdiYzQzYzAzMzkyYTc4MjJkMjkxYWIuLmZiYWIxMjFmMDY3NjY2
YTgzZjEzYWFhNDcwNWNmOTMzOGE3ZTA0YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRl
LmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRl
LmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgogI2luY2x1
ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3QuaCIK
ICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCkBAIC0yNjgsNiArMjY5LDkgQEAg
V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJv
Y2Vzc1Byb3h5JiBwcm9jZXNzLCB1aW4KICAgICAsIG1fdXNlckFnZW50KHN0YW5kYXJkVXNlckFn
ZW50KCkpCiAgICAgLCBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlz
KQogICAgICwgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKCp0aGlzKQorI2VuZGlmCiAgICAgLCBtX3ZpZXdTdGF0ZShWaWV3U3RhdGU6Ok5v
RmxhZ3MpCiAjaWYgUExBVEZPUk0oSU9TKQogICAgICwgbV9hY3Rpdml0eVRva2VuKG51bGxwdHIp
CkBAIC00Mzg2LDYgKzQzOTAsMTggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELAogICAgIHJlcXVl
c3QtPmRlbnkoKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0
cmluZyBvcmlnaW5JZGVudGlmaWVyKQoreworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9w
cm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBNRVNTQUdFX0NIRUNLKGZyYW1lKTsKKwor
ICAgIFJlZlB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIob3JpZ2luSWRlbnRpZmllcik7CisgICAgUmVm
UHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJlcXVlc3QgPSBtX3VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcmVhdGVSZXF1ZXN0KHVzZXJNZWRpYUlEKTsKKwor
ICAgIGlmICghbV91aUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QodGhpcywgZnJhbWUsIG9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkpCisgICAgICAg
IHJlcXVlc3QtPmRlbnkoKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmlj
YXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5T
dHJpbmcpCiB7CiAgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMmE2MjUxY2ExMzYxYjE4YTM3YmUw
NjkwZTZmYWRkOWQxN2Y1OGE2ZC4uYmRhOTJiYzRiNmQ0YzIyYTU4OGRkOTA0ZDAxOTAxODU0MDk1
MmM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDUsNiAr
NDUsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCisjaW5j
bHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRl
ICJWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAj
aW5jbHVkZSAiV0tQYWdlUHJpdmF0ZS5oIgpAQCAtMTE4NSw2ICsxMTg2LDggQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHByaW50RnJhbWUodWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBleGNlZWRl
ZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5
TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2Us
IHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBQ
YXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6
RGVsYXllZFJlcGx5Pik7CiAgICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9y
aWdpbklkZW50aWZpZXIpOworICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdp
bklkZW50aWZpZXIpOworCiAgICAgdm9pZCBydW5Nb2RhbCgpOwogICAgIHZvaWQgbm90aWZ5U2Ny
b2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAg
dm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUp
OwpAQCAtMTUxNiw2ICsxNTE5LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJQcm94eT4gbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKICAgICBHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fZ2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI7CiAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisgICAgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV91c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI7CiAKICAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1fdmlld1N0
YXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgppbmRleCAyNDg2YjY1NGYwOGRmMGY4ZmRhNmE1NTM4ZjRlMTRjYzc1NWNkNzU1Li4w
NWYxMDU5ZDBmYTIxMmQzNTcwMjBhNWEwNGQyMWJhMjI0NDhlZjZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzNSw2ICsy
MzUsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgICMgR2VvbG9jYXRpb24gbWVz
c2FnZXMKICAgICBSZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3Qg
Z2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIp
CiAgICAgCisgICAgIyBNZWRpYVN0ZWFtIG1lc3NhZ2VzCisgICAgUmVxdWVzdFVzZXJNZWRpYVBl
cm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwg
U3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCisKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwog
ICAgIFJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3Ry
aW5nIG9yaWdpbklkZW50aWZpZXIpCiAgICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUs
IFN0cmluZyBib2R5LCBTdHJpbmcgaWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmcsIFN0
cmluZyBkaXIsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBub3RpZmljYXRpb25J
RCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zNmEyN2IzM2E4MTJiOGYzMGZiZDAyZmUyYTI2ODg0NjY3ZDM3MzNhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBD
b21wYW55IDEwMCBJbmMuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgi
CisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rv
Y3VtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWVMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHVp
bnQ2NF90IGdlbmVyYXRlUmVxdWVzdElEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVl
UmVxdWVzdElEID0gMTsKKyAgICByZXR1cm4gdW5pcXVlUmVxdWVzdElEKys7Cit9CisKK1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChQYXNzUmVmUHRy
PFVzZXJNZWRpYVJlcXVlc3Q+IHBycFJlcXVlc3QpCit7CisgICAgUmVmUHRyPFVzZXJNZWRpYVJl
cXVlc3Q+IHJlcXVlc3QocHJwUmVxdWVzdCk7CisgICAgdWludDY0X3QgcmVxdWVzdElEID0gZ2Vu
ZXJhdGVSZXF1ZXN0SUQoKTsKKworICAgIG1faWRUb1JlcXVlc3RNYXAuc2V0KHJlcXVlc3RJRCwg
cmVxdWVzdCk7CisgICAgbV9yZXF1ZXN0VG9JRE1hcC5zZXQocmVxdWVzdCwgcmVxdWVzdElEKTsK
KworICAgIC8vIEZJWE1FOiBJbXByb3ZlIHRoZSB3YXkgdG8gZ2V0IHRoZSBXZWJGcmFtZS4KKyAg
ICBGcmFtZSogZnJhbWUgPSByZXF1ZXN0LT5mcmFtZSgpOworICAgIEFTU0VSVChmcmFtZSk7CisK
KyAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQgPSB0b1dlYkZy
YW1lTG9hZGVyQ2xpZW50KGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSk7CisgICAgV2ViRnJhbWUq
IHdlYkZyYW1lID0gd2ViRnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+
d2ViRnJhbWUoKSA6IG51bGxwdHI7CisgICAgQVNTRVJUKHdlYkZyYW1lKTsKKworICAgIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdFVz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZShyZXF1ZXN0SUQsIHdlYkZyYW1lLT5mcmFtZUlEKCks
IG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCkpKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCogcmVx
dWVzdCkKK3sKKyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBtX3JlcXVlc3RUb0lETWFwLnRha2Uo
cmVxdWVzdCk7CisgICAgaWYgKCFyZXF1ZXN0SUQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2lk
VG9SZXF1ZXN0TWFwLnJlbW92ZShyZXF1ZXN0SUQpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lv
bih1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBSZWZQdHI8VXNlck1l
ZGlhUmVxdWVzdD4gcmVxdWVzdCA9IG1faWRUb1JlcXVlc3RNYXAudGFrZShyZXF1ZXN0SUQpOwor
ICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fcmVxdWVzdFRvSURNYXAu
cmVtb3ZlKHJlcXVlc3QpOworCisgICAgaWYgKGFsbG93ZWQpCisgICAgICAgIHJlcXVlc3QtPnVz
ZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBlbHNlCisgICAgICAgIHJlcXVlc3QtPnVzZXJN
ZWRpYUFjY2Vzc0RlbmllZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjNmN2Q0N2ZjNzA1MDQ1ZTk2MTM5ZTMzNTM1
YmRlMjM1OWY0NTg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApAQCAtMCww
ICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNB
CisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorI2Rl
ZmluZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgorI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBVc2VyTWVkaWFSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIoV2ViUGFnZSYpOworCisgICAgdm9pZCBzdGFydFJlcXVlc3QoUGFzc1JlZlB0
cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pik7CisgICAgdm9pZCBjYW5jZWxSZXF1ZXN0KFdl
YkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKTsK
KworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0Pj4gSURUb1JlcXVlc3RNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFw
PFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0PiwgdWludDY0X3Q+IFJlcXVlc3RUb0lE
TWFwOworICAgIElEVG9SZXF1ZXN0TWFwIG1faWRUb1JlcXVlc3RNYXA7CisgICAgUmVxdWVzdFRv
SURNYXAgbV9yZXF1ZXN0VG9JRE1hcDsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2VuZGlmIC8vIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVz
ZXJNZWRpYUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWMzZDZlMzI1OGViMWYzNTU3OTk0MDYzMjM4
ZjcxYTU4MWZiNjIxZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcApAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJV
c2VyTWVkaWFDbGllbnQuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRl
ICJVc2VyTWVkaWFDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdC5oIgor
I2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYVJlcXVlc3Qu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitX
ZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVzZXJNZWRpYUNsaWVudChXZWJQYWdlJiBwYWdlKQorICAg
IDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK1dlYlVzZXJNZWRpYUNsaWVudDo6fldlYlVzZXJNZWRp
YUNsaWVudCgpCit7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVk
KCkKK3sKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnJl
cXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCkKK3sK
KyAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuc3RhcnRSZXF1
ZXN0KHJlcXVlc3QpOworfQorCit2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsUmVxdWVz
dChVc2VyTWVkaWFSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIG1fcGFnZS51c2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxSZXF1ZXN0KHJlcXVlc3QpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQ7CisKKyNlbmRpZiAvLyBNRURJQV9TVFJFQU0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJN
ZWRpYUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwOTY5YWYxODIyZTFhNjFhMDNmZDI0MmJmZmIxZjg2
NzFhNzMxODIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCisgKi8KKworI2lmbmRlZiBXZWJVc2VyTWVkaWFDbGllbnRfaAorI2RlZmluZSBXZWJV
c2VyTWVkaWFDbGllbnRfaAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxX
ZWJDb3JlL1VzZXJNZWRpYUNsaWVudC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Citu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViVXNlck1lZGlh
Q2xpZW50IDogcHVibGljIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudCB7CitwdWJsaWM6CisgICAg
V2ViVXNlck1lZGlhQ2xpZW50KFdlYlBhZ2UmKTsKKyAgICB2aXJ0dWFsIH5XZWJVc2VyTWVkaWFD
bGllbnQoKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpOwor
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFdlYkNvcmU6OlVz
ZXJNZWRpYVJlcXVlc3Q+KTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0Kik7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisj
ZW5kaWYgLy8gV2ViVXNlck1lZGlhQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA4NDY0MjE4YmM2YmMxYTMyNDI5NzllM2VhODdh
NmI2YzQ0N2Y0MGIyLi4yNjVmMzkzMDcwNmJiZGY0NTFkNjZkZmZiNDcwMDU3MmFmMjdkMDc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05
Miw2ICs5Miw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNs
dWRlICJXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJVbmRvU3RlcC5o
IgorI2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ2hyb21lLmg+CkBAIC0yNzMsNiArMjc0LDkgQEAgV2ViUGFnZTo6V2Vi
UGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgICwgbV9nZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQogI2VuZGlmCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQor
I2VuZGlmCiAgICAgLCBtX2NhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChwYXJhbWV0ZXJz
LmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICAsIG1fY2FuUnVuTW9kYWwocGFy
YW1ldGVycy5jYW5SdW5Nb2RhbCkKICAgICAsIG1faXNSdW5uaW5nTW9kYWwoZmFsc2UpCkBAIC0z
NzQsNiArMzc4LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKFBST1hJTUlU
WV9FVkVOVFMpCiAgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZVByb3hpbWl0eVRvKG1fcGFnZS5n
ZXQoKSwgbmV3IFdlYkRldmljZVByb3hpbWl0eUNsaWVudCh0aGlzKSk7CiAjZW5kaWYKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYkNvcmU6OnByb3ZpZGVVc2VyTWVkaWFUbyhtX3Bh
Z2UuZ2V0KCksIG5ldyBXZWJVc2VyTWVkaWFDbGllbnQoKnRoaXMpKTsKKyNlbmRpZgogCiAjaWYg
RU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgbV9wYWdlLT5zZXRSZW1vdGVJbnNwZWN0aW9u
QWxsb3dlZCh0cnVlKTsKQEAgLTMxMDEsNiArMzEwOCwxMyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJl
Y2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQsCiAgICAgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPmRpZFJlY2Vp
dmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24obm90aWZpY2F0aW9uSUQsIGFsbG93ZWQp
OwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBh
bGxvd2VkKQoreworICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmRpZFJl
Y2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQpOwor
fQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oSU9TKQogdm9pZCBXZWJQYWdlOjphZHZhbmNlVG9O
ZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbikKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDk0NzlkNzQyOGZmYThjZTQz
MmEzZjgyNWUwMDc1ZDkxZDI1MjM0OTQuLmRiYTgxMWQwYzdkMmNjYmNjMTE5ZmZhODcxZmIyODM4
M2FjMDg5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUgIlNhbmRi
b3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Rp
Y3RhdGlvbkFsdGVybmF0aXZlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRWRpdG9yLmg+CkBAIC00MzksNiArNDQwLDEwIEBAIHB1YmxpYzoKICAg
ICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYgZ2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyJiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIoKSB7IHJldHVybiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsg
fQorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHNj
cmVlblNpemUoKSBjb25zdDsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgYXZhaWxhYmxlU2NyZWVu
U2l6ZSgpIGNvbnN0OwpAQCAtOTc4LDYgKzk4MywxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBk
aWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklELCBib29sIGFsbG93ZWQpOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2
b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1l
ZGlhSUQsIGJvb2wgYWxsb3dlZCk7CisjZW5kaWYKKwogICAgIHZvaWQgYWR2YW5jZVRvTmV4dE1p
c3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pOwogICAgIHZvaWQgY2hhbmdlU3Bl
bGxpbmdUb1dvcmQoY29uc3QgU3RyaW5nJiB3b3JkKTsKICNpZiBVU0UoQVBQS0lUKQpAQCAtMTE0
Miw2ICsxMTUxLDEwIEBAIHByaXZhdGU6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICNlbmRpZgog
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisjZW5kaWYKKwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQcmludENvbnRleHQ+IG1fcHJpbnRDb250ZXh0
OwogI2lmIFBMQVRGT1JNKEdUSykKICAgICBSZWZQdHI8V2ViUHJpbnRPcGVyYXRpb25HdGs+IG1f
cHJpbnRPcGVyYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGQwNjU2NzI3MjdkNmRhNTQ5YmMyYjkzMGQx
ZWJmMDNhZDJhMGU4ZTYuLjU4ZjJhY2FhNzUxMGQwNmQ2ZGRiZThlMWVlMWFlZWY2YWM1NmM4ODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCkBAIC0yNTYsNiArMjU2LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVn
YWN5UmVjZWl2ZXIgewogICAgIERpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lv
bih1aW50NjRfdCBnZW9sb2NhdGlvbklELCBib29sIGFsbG93ZWQpCiAjZW5kaWYKIAorI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgIyBNZWRpYVN0ZWFtCisgICAgRGlkUmVjZWl2ZVVzZXJN
ZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2Vk
KQorI2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRp
b25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dl
ZCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDVmYzJmNWRiYTUyMGY5OGJlYWU4NDgwNmZlNTY5NmUwNzQ0ODcxNDcuLjU2YmE2MDAwY2I2MjEy
NjYyNzcwMWNlYmRhY2MwN2U2NjMzZDJiM2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNC0wNS0xMiAgU2Vvbmdq
dW4gS2ltICA8aXNBaXJAY29tcGFueTEwMC5jb20+CisKKworICAgICAgICBbV0syXSBVc2VyTWVk
aWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3VwcG9ydCBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgaW4gV2ViS2l0
Mi4gSXQncyBpbXBsZW1lbnRlZAorICAgICAgICBzaW1pbGFyaWx5IHRvIHRoZSBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0IHN1cHBvcnQuIFdoZW4gdGhlCisgICAgICAgIFdlYlBhZ2UgcmVx
dWlyZXMgdGhpcyBwZXJtaXNzaW9uIGl0IHNlbmRzIGEgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2Vz
cworICAgICAgICB3aGljaCBhdCBzb21lIHBvaW50IGdyYW50cyBvciBkZW5pZXMgdGhlIHBlcm1p
c3Npb24gYW5kIHNlbmQgdGhlCisgICAgICAgIHJlc3VsdCB0byB0aGUgV2ViUHJvY2Vzcy4KKwor
ICAgICAgICBQYXRjaCBiYXNlZCBvbiB3b3JrIHByZXZpb3VzbHkgZG9uZSBieSBQaGlsaXBwZSBO
b3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPi4KKyAgICAgICAgCisgICAgICAgICogTWluaUJy
b3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYzogU2hvdyBhIHBvcHVwIHdoZW4gdGhlIHBhZ2UgcmVx
dWlyZXMKKyAgICAgICAgdXNlciBwZXJtaXNzaW9uIHRvIGFjY2VzcyBhdWRpby92aWRlbyBkZXZp
Y2VzLgorICAgICAgICAocGVybWlzc2lvblJlcXVlc3REaWFsb2dDYWxsYmFjayk6CisgICAgICAg
ICh3ZWJWaWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoZ2VvbG9jYXRpb25S
ZXF1ZXN0RGlhbG9nQ2FsbGJhY2spOiBEZWxldGVkLgorCiAyMDE0LTA1LTExICBBbmRlcnMgQ2Fy
bHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZiBvYmplY3QgYW5kIG1ha2UgdGhlIGluamVjdGVkIGJ1bmRsZSBwYXRoIHBh
cnQgb2YgdGhlIGNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0
ay9Ccm93c2VyV2luZG93LmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5j
CmluZGV4IDQzNzQ3NzMzZmY5YTUyNDAzOTFkZTAzZGVmMDMyNTQxZmZiM2VmZTMuLjA3OGE0MWM4
ZjAyOTAzNmUyZDczMzI4ODA4Y2M4Yjc1ZWQ1ZmIxNTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlC
cm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jy
b3dzZXJXaW5kb3cuYwpAQCAtMjUzLDcgKzI1Myw3IEBAIHN0YXRpYyB2b2lkIGJhY2tGb3J3YWRs
aXN0Q2hhbmdlZChXZWJLaXRCYWNrRm9yd2FyZExpc3QgKmJhY2tGb3J3YWRsaXN0LCBXZWJLaXRC
CiAgICAgYnJvd3NlcldpbmRvd1VwZGF0ZU5hdmlnYXRpb25BY3Rpb25zKHdpbmRvdywgYmFja0Zv
cndhZGxpc3QpOwogfQogCi1zdGF0aWMgdm9pZCBnZW9sb2NhdGlvblJlcXVlc3REaWFsb2dDYWxs
YmFjayhHdGtEaWFsb2cgKmRpYWxvZywgZ2ludCByZXNwb25zZSwgV2ViS2l0UGVybWlzc2lvblJl
cXVlc3QgKnJlcXVlc3QpCitzdGF0aWMgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdERpYWxvZ0NhbGxi
YWNrKEd0a0RpYWxvZyAqZGlhbG9nLCBnaW50IHJlc3BvbnNlLCBXZWJLaXRQZXJtaXNzaW9uUmVx
dWVzdCAqcmVxdWVzdCkKIHsKICAgICBzd2l0Y2ggKHJlc3BvbnNlKSB7CiAgICAgY2FzZSBHVEtf
UkVTUE9OU0VfWUVTOgpAQCAtNDA2LDE5ICs0MDYsMjcgQEAgc3RhdGljIGdib29sZWFuIHdlYlZp
ZXdEZWNpZGVQb2xpY3koV2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0UG9saWN5RGVjaXNp
b24KIAogc3RhdGljIGdib29sZWFuIHdlYlZpZXdEZWNpZGVQZXJtaXNzaW9uUmVxdWVzdChXZWJL
aXRXZWJWaWV3ICp3ZWJWaWV3LCBXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCwgQnJv
d3NlcldpbmRvdyAqd2luZG93KQogewotICAgIGlmICghV0VCS0lUX0lTX0dFT0xPQ0FUSU9OX1BF
Uk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSkKKyAgICBnY2hhciAqZGlhbG9nX3RpdGxlID0gTlVM
TDsKKyAgICBnY2hhciAqZGlhbG9nX21lc3NhZ2UgPSBOVUxMOworCisgICAgaWYgKFdFQktJVF9J
U19HRU9MT0NBVElPTl9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpIHsKKyAgICAgICAgZGlh
bG9nX3RpdGxlID0gIkdlb2xvY2F0aW9uIHJlcXVlc3QiOworICAgICAgICBkaWFsb2dfbWVzc2Fn
ZSA9ICJBbGxvdyBnZW9sb2NhdGlvbiByZXF1ZXN0PyI7CisgICAgfSBlbHNlIGlmIChXRUJLSVRf
SVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpIHsKKyAgICAgICAgZGlh
bG9nX3RpdGxlID0gIlVzZXJNZWRpYSByZXF1ZXN0IjsKKyAgICAgICAgZGlhbG9nX21lc3NhZ2Ug
PSAiQWxsb3cgdXNlciBtZWRpYSByZXF1ZXN0PyI7CisgICAgfSBlbHNlCiAgICAgICAgIHJldHVy
biBGQUxTRTsKIAogICAgIEd0a1dpZGdldCAqZGlhbG9nID0gZ3RrX21lc3NhZ2VfZGlhbG9nX25l
dyhHVEtfV0lORE9XKHdpbmRvdyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdUS19ESUFMT0dfTU9EQUwgfCBHVEtfRElBTE9HX0RFU1RST1lfV0lUSF9Q
QVJFTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdU
S19NRVNTQUdFX1FVRVNUSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHVEtfQlVUVE9OU19ZRVNfTk8sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJHZW9sb2NhdGlvbiByZXF1ZXN0Iik7CisgICAgICAgIEdU
S19ESUFMT0dfTU9EQUwgfCBHVEtfRElBTE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsCisgICAgICAg
IEdUS19NRVNTQUdFX1FVRVNUSU9OLAorICAgICAgICBHVEtfQlVUVE9OU19ZRVNfTk8sCisgICAg
ICAgICIlcyIsIGRpYWxvZ190aXRsZSk7CiAKLSAgICBndGtfbWVzc2FnZV9kaWFsb2dfZm9ybWF0
X3NlY29uZGFyeV90ZXh0KEdUS19NRVNTQUdFX0RJQUxPRyhkaWFsb2cpLCAiQWxsb3cgZ2VvbG9j
YXRpb24gcmVxdWVzdD8iKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGRpYWxvZywgInJlc3BvbnNl
IiwgR19DQUxMQkFDSyhnZW9sb2NhdGlvblJlcXVlc3REaWFsb2dDYWxsYmFjayksIGdfb2JqZWN0
X3JlZihyZXF1ZXN0KSk7CisgICAgZ3RrX21lc3NhZ2VfZGlhbG9nX2Zvcm1hdF9zZWNvbmRhcnlf
dGV4dChHVEtfTUVTU0FHRV9ESUFMT0coZGlhbG9nKSwgIiVzIiwgZGlhbG9nX21lc3NhZ2UpOwor
ICAgIGdfc2lnbmFsX2Nvbm5lY3QoZGlhbG9nLCAicmVzcG9uc2UiLCBHX0NBTExCQUNLKHBlcm1p
c3Npb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2spLCBnX29iamVjdF9yZWYocmVxdWVzdCkpOwogICAg
IGd0a193aWRnZXRfc2hvdyhkaWFsb2cpOwotCiAgICAgcmV0dXJuIFRSVUU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232699</attachid>
            <date>2014-06-09 02:01:47 -0700</date>
            <delta_ts>2014-06-23 04:26:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123158-20140609180120.patch</filename>
            <type>text/plain</type>
            <size>68988</size>
            <attacher name="Seongjun Kim">isair</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5Njg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2NkZGJhZjA3YWI2MTA0
MzA3OTA2ZWFiYjc5ZWVkNWVlMDhjM2YzZi4uZTRhODQ0ZDE2NWVhMTg1Nzc2ZDlkMTY1M2EwMDkz
MmE2MGUwMGIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA1LTEyICBTZW9u
Z2p1biBLaW0gIDxpc0FpckBjb21wYW55MTAwLmNvbT4KKworICAgICAgICBbV0syXSBVc2VyTWVk
aWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3VwcG9ydCBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgaW4gV2ViS2l0
Mi4gSXQncyBpbXBsZW1lbnRlZAorICAgICAgICBzaW1pbGFyaWx5IHRvIHRoZSBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0IHN1cHBvcnQuIFdoZW4gdGhlCisgICAgICAgIFdlYlBhZ2UgcmVx
dWlyZXMgdGhpcyBwZXJtaXNzaW9uIGl0IHNlbmRzIGEgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2Vz
cworICAgICAgICB3aGljaCBhdCBzb21lIHBvaW50IGdyYW50cyBvciBkZW5pZXMgdGhlIHBlcm1p
c3Npb24gYW5kIHNlbmQgdGhlCisgICAgICAgIHJlc3VsdCB0byB0aGUgV2ViUHJvY2Vzcy4KKwor
ICAgICAgICBQYXRjaCBiYXNlZCBvbiB3b3JrIHByZXZpb3VzbHkgZG9uZSBieSBQaGlsaXBwZSBO
b3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPi4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6IEFkZGVkIGRvY3VtZW50IGFuZAorICAgICAgICBm
cmFtZSBhY2Nlc3NvcnMsIG5lZWRlZCBieSB0aGUgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIgb2Yg
dGhlCisgICAgICAgIFdlYlByb2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1
ZXN0Ojpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpmcmFt
ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVy
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQ2VudGVyR1N0cmVh
bWVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6Y3JlYXRlTWVkaWFTdHJlYW0pOgorCiAyMDE0LTA2LTA4
ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBjaGVja2Jv
eGVzIGFuZCByYWRpbyBidXR0b25zIGFuaW1hdGUgaW5jb3JyZWN0bHkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3
NjNiNWFmZmNmNzNmZDhhOTkxNmZiOTM5OTY1MTM3OTJmNDJmOTY3Li45NWFmZTIzZWFkODJlNzFj
NWNlNmI5YTM1Y2JmMzRjOWUyN2Q5MjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTcgQEAKKzIw
MTQtMDUtMTIgIFNlb25nanVuIEtpbSAgPGlzQWlyQGNvbXBhbnkxMDAuY29tPgorCisgICAgICAg
IFtXSzJdIFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGZvciBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdCBpbiBXZWJLaXQyLiBJdCdzIGltcGxlbWVudGVkCisgICAgICAgIHNpbWlsYXJpbHkgdG8g
dGhlIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qgc3VwcG9ydC4gV2hlbiB0aGUKKyAgICAg
ICAgV2ViUGFnZSByZXF1aXJlcyB0aGlzIHBlcm1pc3Npb24gaXQgc2VuZHMgYSBtZXNzYWdlIHRv
IHRoZSBVSSBwcm9jZXNzCisgICAgICAgIHdoaWNoIGF0IHNvbWUgcG9pbnQgZ3JhbnRzIG9yIGRl
bmllcyB0aGUgcGVybWlzc2lvbiBhbmQgc2VuZCB0aGUKKyAgICAgICAgcmVzdWx0IHRvIHRoZSBX
ZWJQcm9jZXNzLgorCisgICAgICAgIFBhdGNoIGJhc2VkIG9uIHdvcmsgcHJldmlvdXNseSBkb25l
IGJ5IFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+LgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6IE5ldyBNZWRpYVN0cmVhbSBkaXJlY3RvcnkgYW5kIGZpbGVzLgorICAg
ICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBEaXR0by4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2Mv
V0tCYXNlLmg6IE5ldyB0eXBlIGZvciBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAg
ICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
QVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tB
UElDYXN0Lmg6IEZvcndhcmQtZGVjbGFyZSB0aGUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDogTmV3IERlY2lkZVBv
bGljeSBoYW5kbGVyIGZvciBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAgICAgKFdL
UGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJ
Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuY3BwOiBBZGRlZCwgQyBBUEkgaW1wbGVtZW50YXRpb24gb2YKKyAgICAgICAgdGhl
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LgorICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEdldFR5cGVJRCk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0QWxsb3cpOgorICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcDog
RGVjaWRlUG9saWN5IGhhbmRsZXIgaW1wbGVtZW50YXRpb24gZm9yCisgICAgICAgIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LgorICAgICAgICAoZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QpOiBEZWZlciBwZXJtaXNzaW9uIHJlcXVlc3QgdG8gQVBJQ2xpZW50Lgor
ICAgICAgICAoYXR0YWNoVUlDbGllbnRUb1ZpZXcpOiBVcGdyYWRlIHRoZSB2ZXJzaW9uIG9mIFVJ
Q2xpZW50IHRvIDMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZCwgV2ViS2l0R1RLIEFQSSBmb3IKKyAgICAgICAg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsIHZlcnkgc2ltaWxhciB0byB0aGUgb25lIHVzZWQg
Zm9yIEdlb2xvY2F0aW9uLgorICAgICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RBbGxvdyk6CisgICAgICAgICh3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkp
OgorICAgICAgICAod2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5pdCk6Cisg
ICAgICAgICh3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERpc3Bvc2UpOgorICAgICAg
ICAod2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2NsYXNzX2luaXQpOgorICAg
ICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstZG9jcy5zZ21sOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2Rv
Y3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQ6IEV4cG9zZSBuZXcgQVBJIGluIGRvY3VtZW50YXRp
b24uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oOiBFeHBvc2UgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QgQVBJLgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLCBtYW5hZ2VyIHN0b3Jpbmcg
cGVuZGluZworICAgICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uIHJlcXVlc3RzLgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVlc3RzKToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNy
ZWF0ZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6Cisg
ICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmNwcDogQWRkZWQsIHByb3h5IG9iamVjdCBmb3IgdGhlCisgICAgICAgIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0VHlwZS4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRh
dGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6IERl
ZmVyIFVzZXJQZXJtaXNzaW9uUmVxdWVzdCB0bworICAgICAgICB0aGUgVUlDbGllbnQuCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW46IE5ldyBtZXNzYWdlIHRvIGhhbmRsZSBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdHMuCisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZCwgV2ViUHJvY2VzcyBzaWRlIG9m
CisgICAgICAgIHRoZSBVc2VyUmVxdWVzdE1hbmFnZXIsIGtlZXBpbmcgdHJhY2sgb2YgZWFjaCBw
ZXJtaXNzaW9uIHJlcXVlc3QuCisgICAgICAgIChXZWJLaXQ6OmdlbmVyYXRlUmVxdWVzdElEKToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVj
ZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9N
ZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3Bw
OiBBZGRlZCwgV2ViUHJvY2VzcyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUKKyAgICAgICAgV2ViQ29y
ZTo6VXNlck1lZGlhQ2xpZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6
OldlYlVzZXJNZWRpYUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVu
dDo6fldlYlVzZXJNZWRpYUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNs
aWVudDo6cGFnZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVu
dDo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGll
bnQ6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViVXNlck1lZGlhQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6IENyZWF0
ZSB0aGUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIGFuZCByZWdpc3RlciB0aGUK
KyAgICAgICAgVXNlck1lZGlhQ2xpZW50IHRvIHRoZSBwYWdlLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKTogRGlzcGF0Y2gg
ZGVjaXNpb24gdG8gbWFuYWdlci4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluOiBOZXcgTWVzc2FnZSB0byBoYW5kbGUgcGVybWlzc2lvbiBkZWNpc2lvbiByZXN1bHQKKyAg
ICAgICAgZnJvbSB0aGUgVUkgcHJvY2Vzcy4KKwogMjAxNC0wNi0wOCAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDb2NvYV0gV0tTY3JpcHRNZXNzYWdlIHNob3VsZCBp
bmNsdWRlIHRoZSBmcmFtZSB0aGUgbWVzc2FnZSBpcyBmcm9tCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCBl
NDM4ZDM1YTJkN2JkMjIyNWE2ZjRhN2E3Nzk3YmNlZTZiZWVjYzMyLi43MTAwZWQ2OTNkMGY4MDMz
YzdkMzJhNjA5NGMwMzY3YmM5MjE2NGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTQwLDYgKzQwLDcg
QEAKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJNZWRp
YUNvbnN0cmFpbnRzSW1wbC5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAi
TWVkaWFTdHJlYW1DZW50ZXIuaCIKQEAgLTEwMSw2ICsxMDIsMTYgQEAgVXNlck1lZGlhUmVxdWVz
dDo6flVzZXJNZWRpYVJlcXVlc3QoKQogewogfQogCitEb2N1bWVudCogVXNlck1lZGlhUmVxdWVz
dDo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiB0b0RvY3VtZW50KG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCk7Cit9CisKK0ZyYW1lKiBVc2VyTWVkaWFSZXF1ZXN0OjpmcmFtZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5mcmFtZSgpIDogbnVs
bHB0cjsKK30KKwogU2VjdXJpdHlPcmlnaW4qIFVzZXJNZWRpYVJlcXVlc3Q6OnNlY3VyaXR5T3Jp
Z2luKCkgY29uc3QKIHsKICAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3Qu
aAppbmRleCA2YWQyMGZlMDY3NTMzMTI1MzhiZGEyODNkMDViZTQyNWE4MzdkNzhhLi4zOTQyN2I2
Y2Q1YTM2NDFlNGZmYjIxMzY5ZDhmOWRmMDFiZGM3N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtNDgsNiAr
NDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERpY3Rpb25hcnk7CiBjbGFzcyBE
b2N1bWVudDsKK2NsYXNzIEZyYW1lOwogY2xhc3MgTWVkaWFDb25zdHJhaW50czsKIGNsYXNzIE1l
ZGlhU3RyZWFtUHJpdmF0ZTsKIGNsYXNzIFVzZXJNZWRpYUNvbnRyb2xsZXI7CkBAIC02MCw2ICs2
MSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIqLCBjb25z
dCBEaWN0aW9uYXJ5JiBvcHRpb25zLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nl
c3NDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4s
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICB+VXNlck1lZGlhUmVxdWVzdCgpOwogCisgICAgRG9jdW1l
bnQqIGRvY3VtZW50KCkgY29uc3Q7CisgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CisKICAgICBT
ZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKIAogICAgIHZvaWQgc3RhcnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3Bw
CmluZGV4IGNlZGIwMzk3MzU5MjMwMzFiN2E5OWI3NzY2ZjA5OGM4ZDQ5MDIxNTEuLmY3Y2M3M2Mw
YjcwMzJjM2NjNTZkNDRhOTdjNGNhNjQ5ZDA4ZTNkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcApAQCAtNTksMTQgKzU5LDIwIEBAIE1l
ZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyOjp+TWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIoKQog
ewogfQogCi12b2lkIE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyOjp2YWxpZGF0ZVJlcXVlc3RD
b25zdHJhaW50cyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+LCBQYXNzUmVm
UHRyPE1lZGlhQ29uc3RyYWludHM+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KQordm9p
ZCBNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMo
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiBjbGllbnQsIFBhc3NSZWZQdHI8
TWVkaWFDb25zdHJhaW50cz4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pCiB7Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICBBU1NFUlQoY2xpZW50KTsKKworICAgIC8vIEZJWE1FOiBW
YWxpZGF0ZSB2aWRlbyBhbmQgYXVkaW8gY29uc3RyYWludHMKKyAgICBjbGllbnQtPmNvbnN0cmFp
bnRzVmFsaWRhdGVkKCk7CiB9Ci0gICAgCi12b2lkIE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVy
OjpjcmVhdGVNZWRpYVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+
LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWlu
dHM+KQorCit2b2lkIE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyOjpjcmVhdGVNZWRpYVN0cmVh
bShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+IGNsaWVudCwgUGFzc1JlZlB0
cjxNZWRpYUNvbnN0cmFpbnRzPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChjbGllbnQpOworCisgICAgLy8gRklYTUU6
IEFwcGx5IHZpZGVvIGFuZCBhdWRpbyBjb25zdHJhaW50cworICAgIGNsaWVudC0+ZmFpbGVkVG9D
cmVhdGVTdHJlYW1XaXRoUGVybWlzc2lvbkVycm9yKCk7CiB9CiAKIGJvb2wgTWVkaWFTdHJlYW1D
ZW50ZXJHU3RyZWFtZXI6OmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50PikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5k
ZXggZDQ3ZTgxNzc1ZGZjZDUxZThiN2ExYjJiZTM5NDZhOWU3ZWI2YTU1OS4uOTAyNGE3MDZhZDBi
ZmQ1OWFmMDY1YjRjYzc5MWY3MDk4ZDEzNDM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTQ5
LDYgKzQ5LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTSIKICAgICAiJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9MYXVuY2hpbmciCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
TWVkaWFDYWNoZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSIK
ICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9OZXR3b3JrIgogICAgICIke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvT3JpZ2luRGF0YSIKQEAgLTMwMSw2ICszMDIsOCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCiAgICAgVUlQcm9jZXNzL1N0
YXRpc3RpY3NSZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24u
Y3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcAorICAgIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAog
ICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vzcy9XZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9y
d2FyZExpc3QuY3BwCkBAIC0zODcsNiArMzkwLDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFjZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tUZXh0
Q2hlY2tlci5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcAogCkBAIC00ODMsNiArNDg3LDggQEAg
c2V0KFdlYktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlh
Q2FjaGVNYW5hZ2VyLmNwcAogCisgICAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogICAgIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZGVyLmNwcApAQCAtNTM0LDYgKzU0MCw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKICAgICBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKKyAgICBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlZpYnJhdGlvbkNsaWVudC5jcHAKIAogICAgIFdlYlByb2Nlc3MvV2Vi
UGFnZS9EZWNvZGVyQWRhcHRlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggNzY0
OWYxNGQ5N2M5NjI0MDU0N2U2MTFiYzk0ZDE4MzEyZmQyMTE5Yy4uMzI5ZTk4MzBiOGU3ZmEyYzEw
ZTFjNTI1Y2NmYzNhNTk2ZTQ5YTI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTIw
Nyw2ICsyMDcsOSBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAogICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVS
SVNjaGVtZVJlcXVlc3RQcml2YXRlLmgKKyAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCisgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgKICAgICBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRWZXJzaW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFZlcnNpb24u
aC5pbgogICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0zNDks
NiArMzUyLDcgQEAgc2V0KFdlYktpdDJHVEtfSU5TVEFMTEVEX0hFQURFUlMKICAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmgKICAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXNwb25zZS5oCiAgICAgJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCisgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuaAogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YkNvbnRleHQuaAogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
Ykluc3BlY3Rvci5oCiAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViUmVzb3VyY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
QmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IGI2MjZh
MDQxODg2MGI5OTEyZmFjNWFkMzQ2MjAxYTQ0ODMxOGQ5NTIuLjFiODcwMWExNGQyODE0OWEyOWU1
ODc3ZDkwZmE3N2Y2YjFmMjUwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgK
QEAgLTEyNiw2ICsxMjYsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVu
Y2VzKiBXS1ByZWZlcmVuY2VzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90
ZWN0aW9uU3BhY2UqIFdLUHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tUZXh0Q2hlY2tlciogV0tUZXh0Q2hlY2tlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLU2Vzc2lvbiogV0tTZXNzaW9uUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlicmF0aW9uKiBXS1Zp
YnJhdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlld3BvcnRBdHRyaWJ1
dGVzKiBXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5o
CmluZGV4IDhhYjc3NDI3ZTE2YjgwOWI1OGMwN2M2ZmQwZDQ0OTc4OGNhMTg3MGUuLjU1ZTFiMDll
NDhlZjg5Nzc1ZGQxODM4NjVmODE1OGFkZjdjNjkyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2Jq
ZWN0LmgKQEAgLTEzMSw2ICsxMzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIFByZWZlcmVuY2VzLAog
ICAgICAgICBTZXNzaW9uLAogICAgICAgICBUZXh0Q2hlY2tlciwKKyAgICAgICAgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QsCiAgICAgICAgIFZpYnJhdGlvbiwKICAgICAgICAgVmlld3BvcnRB
dHRyaWJ1dGVzLAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQ
SVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgK
aW5kZXggOWZmMDA5NGU3M2Q3OWZjNWVkZTA0ZjYwMjM3NGU0NmY0N2NkMmRlNi4uMjU1NGJkNTJh
ZWQ2MzcwODRmY2E2Yzk3YjhmMTBkMGFhMWYxNjAyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtNTAsNiArNTAsNyBAQCBjbGFzcyBJbW11dGFibGVE
aWN0aW9uYXJ5OwogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdl
YldoZWVsRXZlbnQ7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKK2NsYXNz
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUHJveHk7CiBjbGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3MgV2ViT3BlblBh
bmVsUGFyYW1ldGVyczsKQEAgLTExNyw2ICsxMTgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgcnVuT3BlblBhbmVsKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFt
ZVByb3h5KiwgV2ViS2l0OjpXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViS2l0OjpXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6
OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6V2ViU2VjdXJp
dHlPcmlnaW4qLCBXZWJLaXQ6Okdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eSopIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFt
ZVByb3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2Vi
UGFnZVByb3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6Tm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QqKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gUHJpbnRp
bmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggYjY0
ZmM5YTkwNzIyNzI3YmM2NTFjZjQ2ODQ0Y2RkMWE0NzBkN2ZkYS4uMjViNDZhMGMxNzYxNDY4ZTg4
YTJjOWQ1YmJkYWVlOWNhNWVjZTE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lz
aW9uTGlzdGVuZXI7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7
CitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNz
IFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CkBAIC0xNDQsNiArMTQ1LDcgQEAgV0tfQUREX0FQSV9N
QVBQSU5HKFdLUHJvdGVjdGlvblNwYWNlUmVmLCBXZWJQcm90ZWN0aW9uU3BhY2UpCiBXS19BRERf
QVBJX01BUFBJTkcoV0tSZW5kZXJMYXllclJlZiwgV2ViUmVuZGVyTGF5ZXIpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tSZW5kZXJPYmplY3RSZWYsIFdlYlJlbmRlck9iamVjdCkKIFdLX0FERF9BUElf
TUFQUElORyhXS1RleHRDaGVja2VyUmVmLCBXZWJUZXh0Q2hlY2tlcikKK1dLX0FERF9BUElfTUFQ
UElORyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmLCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlicmF0aW9uUmVmLCBXZWJWaWJy
YXRpb25Qcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiwg
V2ViVmlld3BvcnRBdHRyaWJ1dGVzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSW5zcGVjdG9yUmVm
LCBXZWJJbnNwZWN0b3JQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAKaW5kZXggNzcwZjFjYjg2YjZiODIzZWYyYTc1NDc0NDQ2NGFlODM3MzQ3NTRiMS4uYThh
N2M2ZmYwNTcwYmMyYjk2YTQzYjJlZDA1NzBjYjI3ODIyYjUzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTE0NjgsNiArMTQ2OCwxNSBAQCB2b2lkIFdL
UGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGll
bnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAor
ICAgICAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgV2ViU2VjdXJp
dHlPcmlnaW4qIG9yaWdpbiwgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIHBlcm1p
c3Npb25SZXF1ZXN0KSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xp
ZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwg
dG9BUEkob3JpZ2luKSwgdG9BUEkocGVybWlzc2lvblJlcXVlc3QpLCBtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvblJlcXVlc3QpIG92ZXJyaWRlCiAgICAg
ICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VVSUNsaWVudC5oCmluZGV4IGZlNjY4NjliOTM0MzM1OTY5YTBlZjlhMGViZWEyZjMz
NDZkMWNmNmYuLjczZTYzZTk4ZjBjMzcwNTRhOTczNGIxZjhhNzVkZGI4ZGIwNDIzNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCkBAIC04
Niw2ICs4Niw3IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNr
KShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgaW5pdGlhCiB0eXBlZGVmIHZvaWQgKCpXS1Bh
Z2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25D
bGlja2VkQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVh
c29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBXS0RpY3Rpb25hcnlSZWYgcGx1Z2luSW5m
b0RpY3Rpb25hcnksIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQ
YWdlUGlubmVkU3RhdGVEaWRDaGFuZ2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVS
ZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
IAogLy8gRGVwcmVjYXRlZCAgICAKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3
UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0Rp
Y3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50
TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMzA3
LDYgKzMwOCw3IEBAIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjMgewogCiAgICAgLy8g
VmVyc2lvbiAzLgogICAgIFdLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkU3RhdGVEaWRDaGFuZ2U7CisgICAgV0tQ
YWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAg
ICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsKIH0gV0tQ
YWdlVUlDbGllbnRWMzsKIAogZW51bSB7IGtXS1BhZ2VVSUNsaWVudEN1cnJlbnRWZXJzaW9uIFdL
X0VOVU1fREVQUkVDQVRFRCgiVXNlIGFuIGV4cGxpY2l0IHZlcnNpb24gbnVtYmVyIGluc3RlYWQi
KSA9IDIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZWUyZmJi
ODQ5MDEwZDQzZjY1YzBmMmI5NDFlYTRmMTg0NWQwNzFjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
Y3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMu
TAorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEw
LTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBl
SUQoKQoreworICAgIHJldHVybiB0b0FQSShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjpBUElUeXBlKTsKK30KKwordm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3co
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVm
KS0+YWxsb3coKTsKK30KKwordm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKQoreworICAgIHJldHVybiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYp
LT5kZW55KCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzU5NTBh
OWNjMzFkNjgyZWE3NGZjZTk3ZDM5MzBiYWRhNzZhZWVkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBDb21wYW55IDEwMCBJbmMuCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKKyAqLworCisjaWZuZGVmIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaAor
I2RlZmluZSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gKKworI2luY2x1ZGUgPFdlYktp
dC9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgor
CitXS19FWFBPUlQgV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJ
RCgpOworCitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3co
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dCk7CitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTsK
KworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAKaW5kZXggOWUwZWY2OGMzODYwY2UwODY5YWIw
ZGMxNjZjZTNmZmUyMGQ0YTUyOS4uNDcxYjBiNTg1ZWRjMzY1MTYzZmU4YmU5MDdhYWNlZWQyZTAz
MzNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFVJQ2xpZW50LmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIldlYktpdEZpbGVDaG9v
c2VyUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKKyNpbmNsdWRl
ICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJX
ZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFdpbmRvd1Byb3BlcnRpZXNQcml2YXRlLmgiCkBAIC0xNTMs
NiArMTU0LDEyIEBAIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXCiAgICAgd2Via2l0V2ViVmlld01h
a2VQZXJtaXNzaW9uUmVxdWVzdChXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbyksIFdFQktJVF9Q
RVJNSVNTSU9OX1JFUVVFU1QoZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkpOwog
fQogCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sK
KyAgICBHUmVmUHRyPFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdENyZWF0ZSh0b0ltcGwocmVxdWVzdCkpKTsKKyAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1p
c3Npb25SZXF1ZXN0KFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSwgV0VCS0lUX1BFUk1JU1NJ
T05fUkVRVUVTVCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkpOworfQorCiBzdGF0
aWMgdm9pZCBydW5Nb2RhbChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAg
ICAgd2Via2l0V2ViVmlld1J1bkFzTW9kYWwoV0VCS0lUX1dFQl9WSUVXKGNsaWVudEluZm8pKTsK
QEAgLTE2MCw5ICsxNjcsOSBAQCBzdGF0aWMgdm9pZCBydW5Nb2RhbChXS1BhZ2VSZWYsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCiAKIHZvaWQgYXR0YWNoVUlDbGllbnRUb1ZpZXcoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldykKIHsKLSAgICBXS1BhZ2VVSUNsaWVudFYyIHdrVUlDbGllbnQgPSB7Cisg
ICAgV0tQYWdlVUlDbGllbnRWMyB3a1VJQ2xpZW50ID0gewogICAgICAgICB7Ci0gICAgICAgICAg
ICAyLCAvLyB2ZXJzaW9uCisgICAgICAgICAgICAzLCAvLyB2ZXJzaW9uCiAgICAgICAgICAgICB3
ZWJWaWV3LCAvLyBjbGllbnRJbmZvCiAgICAgICAgIH0sCiAgICAgICAgIDAsIC8vIGNyZWF0ZU5l
d1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMApAQCAtMjExLDYgKzIxOCw4IEBAIHZvaWQgYXR0
YWNoVUlDbGllbnRUb1ZpZXcoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICAgICAgMCwgLy8g
c2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAgICAw
LCAvLyBwbHVnaW5Mb2FkUG9saWN5CisgICAgICAgIDAsIC8vIHBpbm5lZFN0YXRlRGlkQ2hhbmdl
CisgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LAogICAg
IH07CiAgICAgV0tQYWdlUmVmIHdrUGFnZSA9IHRvQVBJKHdlYmtpdFdlYlZpZXdCYXNlR2V0UGFn
ZShXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3ZWJWaWV3KSkpOwogICAgIFdLUGFnZVNldFBhZ2VVSUNs
aWVudCh3a1BhZ2UsICZ3a1VJQ2xpZW50LmJhc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4YjBkZmVkZDcxMTE2MmQ5ZWMyYzg3MTZmMDg2
M2VjMDhlYmZlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSwx
MDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTAorICogQ29weXJpZ2h0
IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
ICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3
cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oIgorI2luY2x1ZGUgIldlYktpdFBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgiCisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CisKKy8qKgorICogU0VDVElPTjogV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QKKyAqIEBTaG9ydF9kZXNjcmlwdGlvbjogQSBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIGFj
Y2Vzc2luZyB1c2VyJ3MgYXVkaW8vdmlkZW8gZGV2aWNlcy4KKyAqIEBUaXRsZTogV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QKKyAqIEBTZWVfYWxzbzogI1dlYktpdFBlcm1pc3Npb25S
ZXF1ZXN0LCAjV2ViS2l0V2ViVmlldworICoKKyAqIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0IHJlcHJlc2VudHMgYSByZXF1ZXN0IGZvcgorICogcGVybWlzc2lvbiB0byBkZWNpZGUg
d2hldGhlciBXZWJLaXQgc2hvdWxkIGJlIGFsbG93ZWQgdG8gYWNjZXNzIHRoZSB1c2VyJ3MKKyAq
IGF1ZGlvIGFuZCB2aWRlbyBzb3VyY2UgZGV2aWNlcyB3aGVuIHJlcXVlc3RlZCB0aHJvdWdodCB0
aGUgZ2V0VXNlck1lZGlhIEFQSS4KKyAqLworCitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlzc2lv
bl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2UqKTsK
Kworc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgeworICAg
IFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiByZXF1ZXN0OworICAgIGJv
b2wgbWFkZURlY2lzaW9uOworfTsKKworV0VCS0lUX0RFRklORV9UWVBFX1dJVEhfQ09ERSgKKyAg
ICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwgd2Via2l0X3VzZXJfbWVkaWFfcGVy
bWlzc2lvbl9yZXF1ZXN0LCBHX1RZUEVfT0JKRUNULAorICAgIEdfSU1QTEVNRU5UX0lOVEVSRkFD
RShXRUJLSVRfVFlQRV9QRVJNSVNTSU9OX1JFUVVFU1QsIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVl
c3RfaW50ZXJmYWNlX2luaXQpKQorCitzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQoreworICAg
IEFTU0VSVChXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkp
OworCisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKiBwcml2ID0g
V0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpLT5wcml2OworCisg
ICAgLy8gT25seSBvbmUgZGVjaXNpb24gYXQgYSB0aW1lLgorICAgIGlmIChwcml2LT5tYWRlRGVj
aXNpb24pCisgICAgICAgIHJldHVybjsKKworICAgIHByaXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7
CisgICAgcHJpdi0+cmVxdWVzdC0+YWxsb3coKTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1
ZXN0KQoreworICAgIEFTU0VSVChXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVF
U1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2
YXRlKiBwcml2ID0gV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3Qp
LT5wcml2OworCisgICAgLy8gT25seSBvbmUgZGVjaXNpb24gYXQgYSB0aW1lLgorICAgIGlmIChw
cml2LT5tYWRlRGVjaXNpb24pCisgICAgICAgIHJldHVybjsKKworICAgIHByaXYtPm1hZGVEZWNp
c2lvbiA9IHRydWU7CisgICAgcHJpdi0+cmVxdWVzdC0+ZGVueSgpOworfQorCitzdGF0aWMgdm9p
ZCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KFdlYktpdFBlcm1pc3Np
b25SZXF1ZXN0SWZhY2UqIGlmYWNlKQoreworICAgIGlmYWNlLT5hbGxvdyA9IHdlYmtpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3c7CisgICAgaWZhY2UtPmRlbnkgPSB3ZWJraXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGlzcG9zZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLy8g
RGVmYXVsdCBiZWhhdmlvdXIgd2hlbiBubyBkZWNpc2lvbiBoYXMgYmVlbiBtYWRlIGlzIGRlbnlp
bmcgdGhlIHJlcXVlc3QuCisgICAgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55
KFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqZWN0KSk7CisgICAgR19PQkpFQ1RfQ0xBU1Mo
d2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X3BhcmVudF9jbGFzcyktPmRpc3Bv
c2Uob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lv
bl9yZXF1ZXN0X2NsYXNzX2luaXQoV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFz
cyoga2xhc3MpCit7CisgICAgR09iamVjdENsYXNzKiBvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NM
QVNTKGtsYXNzKTsKKyAgICBvYmplY3RDbGFzcy0+ZGlzcG9zZSA9IHdlYmtpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0RGlzcG9zZTsKK30KKworV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QqIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkqIHJlcXVlc3QpCit7CisgICAgV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QqIHVzZXJtZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gV0VCS0lUX1VTRVJf
TUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9VU0VSX01F
RElBX1BFUk1JU1NJT05fUkVRVUVTVCwgTlVMTCkpOworICAgIHVzZXJtZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LT5wcml2LT5yZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICByZXR1cm4gdXNlcm1lZGlhUGVy
bWlzc2lvblJlcXVlc3Q7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mMjlkMDUxNGM5YTUwZjBlMTcwZjJhMzRlYjE5NWJmNWU0MzQzODAyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIElnYWxpYSBTLkwKKyAqIENvcHlyaWdodCAoQykgMjAxNCBDb21wYW55IDEw
MCBJbmMuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m
dHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWYgIWRlZmluZWQoX19X
RUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJy
b3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgor
I2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaAorI2Rl
ZmluZSBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGli
LW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lO
X0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVF
U1QgICAgICAgICAgICAod2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90
eXBlKCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChvYmop
ICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQ
RV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1Rf
Q0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lU
X1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNT
SU9OX1JFUVVFU1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2Jq
KSwgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBX
RUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJN
SVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JF
UVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAg
V0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QgICAgICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xh
c3MgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSBXZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUg
PiovCisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlICpwcml2Owor
fTsKKworc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzIHsKKyAg
ICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2
ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAg
dm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVz
ZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfdXNlcl9tZWRp
YV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUgKHZvaWQpOworCitHX0VORF9ERUNMUworCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjlmMjVhOTQ3NjNmZmFmOWQ0ZmM4YzY4YjFjYzkyODdlNTQ2MjAwNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oCkBAIC0wLDAgKzEsMjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTAorICogQ29weXJpZ2h0IChDKSAyMDE0IENv
bXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYg
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKKyNkZWZpbmUgV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKKworI2luY2x1ZGUgIldlYktpdFBy
aXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIgor
CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogd2Via2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RDcmVhdGUoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
Kik7CisKKyNlbmRpZiAvLyBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGVf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJr
aXQyZ3RrLWRvY3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mv
d2Via2l0Mmd0ay1kb2NzLnNnbWwKaW5kZXggZTNjZjlhNjhjNmIzOWQxNzlhZGE1NTljYWE0OGRh
ZmMxMWFmNWMyMS4uY2E3MDQ3MmQwNmU2MGM0ZThjZjg1MDk0MWFkMDI0MjI5Mjg5ODFmYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LWRvY3Muc2dtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstZG9jcy5zZ21sCkBAIC0yMyw2ICsyMyw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJl
Zj0ieG1sL1dlYktpdERvd25sb2FkLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9X
ZWJLaXRQZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwv
V2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KKyAgICA8eGk6aW5jbHVk
ZSBocmVmPSJ4bWwvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QueG1sIi8+CiAgICAg
PHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBvbGljeURlY2lzaW9uLnhtbCIvPgogICAgIDx4
aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24ueG1sIi8+
CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24u
eG1sIi8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2Nz
L3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAppbmRleCBhMDk4YTAwZDg3Njg0OGIwYmMw
NzY5YjMyMWUzYmNjODgwMTJkMWYxLi42YTY5Y2I1MDAxYjBhNTNlOWZhMTYwYzJhMTFhZjMyZjA3
YWMyNjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2Nz
L3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKQEAgLTUyNCw2ICs1MjQsMjQgQEAg
d2Via2l0X2dlb2xvY2F0aW9uX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9O
PgogCiA8U0VDVElPTj4KKzxGSUxFPldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PC9G
SUxFPgorV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKKworPFNVQlNFQ1RJT04gU3Rh
bmRhcmQ+CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzCitXRUJLSVRfVFlQ
RV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlT
U0lPTl9SRVFVRVNUCitXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dF
QktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUworV0VCS0lUX0lTX1VTRVJf
TUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNT
SU9OX1JFUVVFU1RfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9OIFByaXZhdGU+CitXZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUKK3dlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Np
b25fcmVxdWVzdF9nZXRfdHlwZQorPC9TRUNUSU9OPgorCis8U0VDVElPTj4KIDxGSUxFPldlYktp
dFBvbGljeURlY2lzaW9uPC9GSUxFPgogV2ViS2l0UG9saWN5RGVjaXNpb24KIHdlYmtpdF9wb2xp
Y3lfZGVjaXNpb25fZG93bmxvYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL3dlYmtpdDIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dl
YmtpdDIuaAppbmRleCBjMTg1MzhhNjMxMTEwNDBlNDZiYjI4MmYwNjgwYmQzYmMyZjU2NGU4Li41
ODYyZTFhZTBmYWI4NzRiNzdlYWQ5ODU1MzNiOTgxYTM0NDNmMWFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCkBAIC02MCw2ICs2MCw3IEBACiAjaW5jbHVk
ZSA8d2Via2l0Mi9XZWJLaXRVUklSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRV
UklSZXNwb25zZS5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5o
PgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaD4K
ICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFZlcnNpb24uaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dl
YktpdFdlYkNvbnRleHQuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYkluc3BlY3Rvci5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQyN2Nk
MzU3ZDJjY2M1MDg4MWE0MDIwMzQ2ZjkwZjg5MjJmMDc0ZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2Fs
aWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiV2Vi
UGFnZU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Byb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkoV2ViUGFnZVByb3h5JiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3Zv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1
ZXN0cygpCit7CisgICAgZm9yIChhdXRvJiByZXF1ZXN0IDogbV9wZW5kaW5nUmVxdWVzdHMudmFs
dWVzKCkpCisgICAgICAgIHJlcXVlc3QtPmludmFsaWRhdGUoKTsKKworICAgIG1fcGVuZGluZ1Jl
cXVlc3RzLmNsZWFyKCk7Cit9CisKK1Bhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJl
cXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQpCit7CisgICAgUmVmUHRyPFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk+IHJlcXVlc3QgPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5OjpjcmVhdGUoKnRoaXMsIHVzZXJNZWRpYUlEKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5h
ZGQodXNlck1lZGlhSUQsIHJlcXVlc3QuZ2V0KCkpOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVh
c2UoKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgYm9vbCBhbGxvd2VkKQoreworICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byBpdCA9IG1fcGVuZGluZ1JlcXVlc3RzLmZpbmQodXNlck1lZGlh
SUQpOworICAgIGlmIChpdCA9PSBtX3BlbmRpbmdSZXF1ZXN0cy5lbmQoKSkKKyAgICAgICAgcmV0
dXJuOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBtX3BhZ2UucHJvY2VzcygpLnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNp
b24odXNlck1lZGlhSUQsIGFsbG93ZWQpLCBtX3BhZ2UucGFnZUlEKCkpOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oYWxsb3dlZCk7CisjZW5kaWYKKworICAgIG1fcGVuZGluZ1JlcXVlc3RzLnJl
bW92ZShpdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NmU5NDM3NjJhMGVhYmE0YzQyYjI0MTdiMWVmNWE0
OGFhZTc4ZjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw0OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAy
MDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0
byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNp
Zm5kZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaAorI2RlZmluZSBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgeworcHVibGljOgorICAgIGV4cGxp
Y2l0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYp
OworCisgICAgdm9pZCBpbnZhbGlkYXRlUmVxdWVzdHMoKTsKKworICAgIC8vIENyZWF0ZSBhIHJl
cXVlc3QgdG8gYmUgcHJlc2VudGVkIHRvIHRoZSB1c2VyLgorICAgIFBhc3NSZWZQdHI8VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVk
aWFJRCk7CisKKyAgICAvLyBDYWxsZWQgYnkgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eSB3aGVuIGEgZGVjaXNpb24gaXMgbWFkZSBieSB0aGUgdXNlci4KKyAgICB2b2lkIGRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworCitw
cml2YXRlOgorICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5Pj4gbV9wZW5kaW5nUmVxdWVzdHM7CisgICAgV2ViUGFnZVByb3h5JiBtX3Bh
Z2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xZDZiZjExZDUzN2JhYWNjN2I4ODJhYWI0ZmE3YTc2Y2VhMWIyYzgzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBDb21wYW55IDEwMCBJbmMuCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAq
ICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0
b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorCisjaW5jbHVkZSAiVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1h
bmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlEKQorICAgIDogbV9tYW5hZ2VyKG1hbmFnZXIpCisg
ICAgLCBtX3VzZXJNZWRpYUlEKHVzZXJNZWRpYUlEKQoreworfQorCit2b2lkIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KCkKK3sKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCB0cnVlKTsKK30KKwor
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KCkKK3sKKyAgICBtX21h
bmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlE
LCBmYWxzZSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52
YWxpZGF0ZSgpCit7CisgICAgbV9tYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxZDg0
YTg3Y2FlM2U3ODUyYTU3MWYzMDgwY2UyMTkwZDMxMGU2NjIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5o
CkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAg
SW5jLgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKKyAqLworCisjaWZuZGVmIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlf
aAorI2RlZmluZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKKworI2luY2x1ZGUg
IkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsK
KworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSA6IHB1YmxpYyBBUEk6Ok9i
amVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4gY3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBt
YW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCB1c2VyTWVk
aWFJRCkpOworICAgIH0KKworICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRlbnkoKTsKKwor
ICAgIHZvaWQgaW52YWxpZGF0ZSgpOworCitwcml2YXRlOgorICAgIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmLCB1
aW50NjRfdCB1c2VyTWVkaWFJRCk7CisKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSYgbV9tYW5hZ2VyOworICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhSUQ7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCBlYmM3MzE1Y2E3MWQwZDljYjM2NGE1NDA0MTg0NjFlMWQzMjk3NTNjLi4zODI5ZjVhNmQw
NWZjYTY1MWU3NzgwODYzYjY4YTdiMzJkODU5NGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIlNlc3Npb25T
dGF0ZS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJT
dGF0ZS5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNp
bmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0
LmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgpAQCAtMjc4LDYgKzI3OSw5
IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdl
YlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAjZW5kaWYKICAgICAsIG1fZ2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCiAgICAgLCBtX25vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
ICwgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCisjZW5kaWYKICAg
ICAsIG1fdmlld1N0YXRlKFZpZXdTdGF0ZTo6Tm9GbGFncykKICAgICAsIG1fYmFja0ZvcndhcmRM
aXN0KFdlYkJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKCp0aGlzKSkKICAgICAsIG1fbG9hZFN0YXRl
QXRQcm9jZXNzRXhpdChGcmFtZUxvYWRTdGF0ZTo6U3RhdGU6OkZpbmlzaGVkKQpAQCAtNDQ0OSw2
ICs0NDUzLDE4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNz
aW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwKICAgICByZXF1ZXN0LT5kZW55KCk7
CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZy
YW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2lu
SWRlbnRpZmllcikKK3sKKyAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2Vi
RnJhbWUoZnJhbWVJRCk7CisgICAgTUVTU0FHRV9DSEVDSyhmcmFtZSk7CisKKyAgICBSZWZQdHI8
V2ViU2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9IFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9t
RGF0YWJhc2VJZGVudGlmaWVyKG9yaWdpbklkZW50aWZpZXIpOworICAgIFJlZlB0cjxVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiByZXF1ZXN0ID0gbV91c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuY3JlYXRlUmVxdWVzdCh1c2VyTWVkaWFJRCk7CisKKyAgICBpZiAoIW1f
dWlDbGllbnQtPmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHRoaXMs
IGZyYW1lLCBvcmlnaW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpKQorICAgICAgICByZXF1ZXN0LT5k
ZW55KCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlz
c2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogewog
ICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDNhZjQ5NDc4YWNkNTBiNWMwYjVlM2Q4YWEwOTFjNDdj
MTMxMGI4ZmIuLjgyZGYzMmIwNzJmOThmNjdmNGNkMzIyMmJlNmI3M2MwMTQ5OTRkNDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQ1LDYgKzQ1LDcgQEAKICNp
bmNsdWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4
dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mby5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgIldL
UGFnZVByaXZhdGUuaCIKQEAgLTEyMDYsNiArMTIwNyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBw
cmludEZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1
b3RhKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2
NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBj
dXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgUGFzc1JlZlB0cjxN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBs
eT4pOwogICAgIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2
NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlm
aWVyKTsKKyAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0
X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVy
KTsKKwogICAgIHZvaWQgcnVuTW9kYWwoKTsKICAgICB2b2lkIG5vdGlmeVNjcm9sbGVyVGh1bWJJ
c1Zpc2libGVJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZvaWQgcmVjb21t
ZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKTsKQEAgLTE1NDAs
NiArMTU0Myw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyUHJveHk+IG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiAgICAgR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOwogICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1f
bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworICAgIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyOwogCiAgICAgV2ViQ29yZTo6Vmlld1N0YXRlOjpGbGFncyBtX3ZpZXdTdGF0ZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggZjUyNmYwYWJlNDZjYTQ3NTY1YWQ3M2U2NDg5ODE5OGZiNjA1YjliOC4uNDBkMzc0MjU0ZmJj
NDBhYzEzZWVlN2M2ZWNjMWIwOTg4ZWYyNDRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNDQsNiArMjQ0LDkgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIEdlb2xvY2F0aW9uIG1lc3NhZ2VzCiAgICAg
UmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9u
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQogICAgIAorICAg
ICMgTWVkaWFTdGVhbSBtZXNzYWdlcworICAgIFJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmln
aW5JZGVudGlmaWVyKQorCiAgICAgIyBOb3RpZmljYXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0
Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIFN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyKQogICAgIFNob3dOb3RpZmljYXRpb24oU3RyaW5nIHRpdGxlLCBTdHJpbmcgYm9k
eSwgU3RyaW5nIGljb25VUkwsIFN0cmluZyB0YWcsIFN0cmluZyBsYW5nLCBTdHJpbmcgZGlyLCBT
dHJpbmcgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlh
U3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzZhMjdiMzNhODEyYjhmMzBmYmQwMmZlMmEyNjg4NDY2N2QzNzMzYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAg
SW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgorI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUg
IldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB1aW50NjRfdCBnZW5l
cmF0ZVJlcXVlc3RJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVJlcXVlc3RJRCA9
IDE7CisgICAgcmV0dXJuIHVuaXF1ZVJlcXVlc3RJRCsrOworfQorCitVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQ
YWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoUGFzc1JlZlB0cjxVc2VyTWVkaWFS
ZXF1ZXN0PiBwcnBSZXF1ZXN0KQoreworICAgIFJlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1
ZXN0KHBycFJlcXVlc3QpOworICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVz
dElEKCk7CisKKyAgICBtX2lkVG9SZXF1ZXN0TWFwLnNldChyZXF1ZXN0SUQsIHJlcXVlc3QpOwor
ICAgIG1fcmVxdWVzdFRvSURNYXAuc2V0KHJlcXVlc3QsIHJlcXVlc3RJRCk7CisKKyAgICAvLyBG
SVhNRTogSW1wcm92ZSB0aGUgd2F5IHRvIGdldCB0aGUgV2ViRnJhbWUuCisgICAgRnJhbWUqIGZy
YW1lID0gcmVxdWVzdC0+ZnJhbWUoKTsKKyAgICBBU1NFUlQoZnJhbWUpOworCisgICAgV2ViRnJh
bWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0gdG9XZWJGcmFtZUxvYWRlckNs
aWVudChmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkpOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9
IHdlYkZyYW1lTG9hZGVyQ2xpZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkg
OiBudWxscHRyOworICAgIEFTU0VSVCh3ZWJGcmFtZSk7CisKKyAgICBSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IG9yaWdpbiA9IGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpOworICAg
IG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yRnJhbWUocmVxdWVzdElELCB3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBvcmlnaW4tPmRh
dGFiYXNlSWRlbnRpZmllcigpKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QqIHJlcXVlc3QpCit7Cisg
ICAgdWludDY0X3QgcmVxdWVzdElEID0gbV9yZXF1ZXN0VG9JRE1hcC50YWtlKHJlcXVlc3QpOwor
ICAgIGlmICghcmVxdWVzdElEKQorICAgICAgICByZXR1cm47CisgICAgbV9pZFRvUmVxdWVzdE1h
cC5yZW1vdmUocmVxdWVzdElEKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qg
cmVxdWVzdElELCBib29sIGFsbG93ZWQpCit7CisgICAgUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+
IHJlcXVlc3QgPSBtX2lkVG9SZXF1ZXN0TWFwLnRha2UocmVxdWVzdElEKTsKKyAgICBpZiAoIXJl
cXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICBtX3JlcXVlc3RUb0lETWFwLnJlbW92ZShyZXF1
ZXN0KTsKKworICAgIGlmIChhbGxvd2VkKQorICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nl
c3NHcmFudGVkKCk7CisgICAgZWxzZQorICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NE
ZW5pZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRp
YVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODIzZjdkNDdmYzcwNTA0NWU5NjEzOWUzMzUzNWJkZTIzNTlmNDU4
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJl
YW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTAsMCArMSw1OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAy
MDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0
byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNp
Zm5kZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gKKyNkZWZpbmUgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgVXNlck1lZGlhUmVxdWVzdDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYlBhZ2U7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciB7
CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KFdlYlBhZ2UmKTsKKworICAgIHZvaWQgc3RhcnRSZXF1ZXN0KFBhc3NSZWZQdHI8V2ViQ29yZTo6
VXNlck1lZGlhUmVxdWVzdD4pOworICAgIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpVc2Vy
TWVkaWFSZXF1ZXN0Kik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9u
RGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCk7CisKK3ByaXZhdGU6
CisgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlh
UmVxdWVzdD4+IElEVG9SZXF1ZXN0TWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8V2Vi
Q29yZTo6VXNlck1lZGlhUmVxdWVzdD4sIHVpbnQ2NF90PiBSZXF1ZXN0VG9JRE1hcDsKKyAgICBJ
RFRvUmVxdWVzdE1hcCBtX2lkVG9SZXF1ZXN0TWFwOworICAgIFJlcXVlc3RUb0lETWFwIG1fcmVx
dWVzdFRvSURNYXA7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGll
bnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFjM2Q2ZTMyNThlYjFmMzU1Nzk5NDA2MzIzOGY3MWE1ODFmYjYy
MWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBDb21wYW55IDEwMCBJbmMuCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBV
U0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVXNlck1lZGlhQ2xp
ZW50LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiVXNlck1lZGlh
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVJlcXVlc3QuaCIKKyNpbmNsdWRlICJX
ZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVXNlck1lZGlh
Q2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShw
YWdlKQoreworfQorCitXZWJVc2VyTWVkaWFDbGllbnQ6On5XZWJVc2VyTWVkaWFDbGllbnQoKQor
eworfQorCit2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6cGFnZURlc3Ryb3llZCgpCit7CisgICAg
ZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpyZXF1ZXN0UGVybWlz
c2lvbihQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QpCit7CisgICAgbV9wYWdl
LnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLnN0YXJ0UmVxdWVzdChyZXF1ZXN0
KTsKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbFJlcXVlc3QoVXNlck1lZGlh
UmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKCkuY2FuY2VsUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0OworCisjZW5kaWYgLy8gTUVESUFfU1RSRUFNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40MDk2OWFmMTgyMmUxYTYxYTAzZmQyNDJiZmZiMWY4NjcxYTczMTgyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJVc2VyTWVkaWFDbGllbnQuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
ICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3
cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICov
CisKKyNpZm5kZWYgV2ViVXNlck1lZGlhQ2xpZW50X2gKKyNkZWZpbmUgV2ViVXNlck1lZGlhQ2xp
ZW50X2gKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
TWVkaWFDbGllbnQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYlVzZXJNZWRpYUNsaWVudCA6IHB1
YmxpYyBXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQgeworcHVibGljOgorICAgIFdlYlVzZXJNZWRp
YUNsaWVudChXZWJQYWdlJik7CisgICAgdmlydHVhbCB+V2ViVXNlck1lZGlhQ2xpZW50KCk7CisK
K3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1
ZXN0Pik7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlh
UmVxdWVzdCopOworCisgICAgV2ViUGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFdl
YlVzZXJNZWRpYUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggMzllY2EyODA5MjRmZjliMmVjNzBmOTc0NWIyYjM3NmM0YzlmMzRh
NS4uYzgzNzM5OTI2MjY0NjVlN2I5ZmM3MDgxN2MwZGFlNzBiODM5MTAzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtOTUsNiArOTUsNyBA
QAogI2luY2x1ZGUgIldlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlVu
ZG9TdGVwLmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiV2ViVXNlck1lZGlhQ2xpZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2Fz
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9DaHJvbWUuaD4KQEAgLTI3Nyw2ICsyNzgsOSBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2
NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
ICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgLCBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKHRoaXMpCiAjZW5kaWYKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
ICwgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCisjZW5kaWYKICAg
ICAsIG1fY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHBhcmFtZXRlcnMuY2FuUnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKQogICAgICwgbV9jYW5SdW5Nb2RhbChwYXJhbWV0ZXJzLmNh
blJ1bk1vZGFsKQogICAgICwgbV9pc1J1bm5pbmdNb2RhbChmYWxzZSkKQEAgLTM4Miw2ICszODYs
OSBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykK
ICAgICBXZWJDb3JlOjpwcm92aWRlRGV2aWNlUHJveGltaXR5VG8obV9wYWdlLmdldCgpLCBuZXcg
V2ViRGV2aWNlUHJveGltaXR5Q2xpZW50KHRoaXMpKTsKICNlbmRpZgorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisgICAgV2ViQ29yZTo6cHJvdmlkZVVzZXJNZWRpYVRvKG1fcGFnZS5nZXQoKSwg
bmV3IFdlYlVzZXJNZWRpYUNsaWVudCgqdGhpcykpOworI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVN
T1RFX0lOU1BFQ1RPUikKICAgICBtX3BhZ2UtPnNldFJlbW90ZUluc3BlY3Rpb25BbGxvd2VkKHRy
dWUpOwpAQCAtMzEzNiw2ICszMTQzLDEzIEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU5vdGlm
aWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwKICAgICBu
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+ZGlkUmVjZWl2ZU5vdGlmaWNh
dGlvblBlcm1pc3Npb25EZWNpc2lvbihub3RpZmljYXRpb25JRCwgYWxsb3dlZCk7CiB9CiAKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlVXNlck1lZGlh
UGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpCit7
CisgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuZGlkUmVjZWl2ZVVzZXJN
ZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1c2VyTWVkaWFJRCwgYWxsb3dlZCk7Cit9CisjZW5kaWYK
KwogI2lmICFQTEFURk9STShJT1MpCiB2b2lkIFdlYlBhZ2U6OmFkdmFuY2VUb05leHRNaXNzcGVs
bGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZjJiNzRhNDBlZTVmMDAwNzE3OTg5ZjFjNDk3
ZGFhMTZjZWMzYmU3OS4uMWVhYzFlZWE1MWYxOGQ5ZDZkNmMyZmI4MTA2NjA2NGU4YjNkMTY5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00NSw2
ICs0NSw3IEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lv
bi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGF0aW9uQWx0
ZXJuYXRpdmUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9FZGl0b3IuaD4KQEAgLTQ0OCw2ICs0NDksMTAgQEAgcHVibGljOgogICAgIEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyJiBnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcigpIHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXImIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigp
IHsgcmV0dXJuIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CisjZW5kaWYK
KwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgc2NyZWVuU2l6ZSgp
IGNvbnN0OwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBhdmFpbGFibGVTY3JlZW5TaXplKCkgY29u
c3Q7CkBAIC0xMDAyLDYgKzEwMDcsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkUmVjZWl2
ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwg
Ym9vbCBhbGxvd2VkKTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdm9pZCBkaWRS
ZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBi
b29sIGFsbG93ZWQpOworI2VuZGlmCisKICAgICB2b2lkIGFkdmFuY2VUb05leHRNaXNzcGVsbGlu
Zyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKTsKICAgICB2b2lkIGNoYW5nZVNwZWxsaW5nVG9X
b3JkKGNvbnN0IFN0cmluZyYgd29yZCk7CiAjaWYgVVNFKEFQUEtJVCkKQEAgLTExNjgsNiArMTE3
NywxMCBAQCBwcml2YXRlOgogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
IG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworI2VuZGlmCisKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UHJpbnRDb250ZXh0PiBtX3ByaW50Q29udGV4dDsKICNpZiBQ
TEFURk9STShHVEspCiAgICAgUmVmUHRyPFdlYlByaW50T3BlcmF0aW9uR3RrPiBtX3ByaW50T3Bl
cmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgppbmRleCBkNTBiYzA0NjJlN2Y5YzhkNGVjOGZiZGFlY2Q0YTljMjVk
OGQ3NWMzLi40OTZkOTg4MDMzODZiNzgwNmIzMmVhNzQ3MDUzNWQyYzIxMDIzNDEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgpAQCAtMjYxLDYgKzI2MSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2Vp
dmVyIHsKICAgICBEaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0
X3QgZ2VvbG9jYXRpb25JRCwgYm9vbCBhbGxvd2VkKQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorICAgICMgTWVkaWFTdGVhbQorICAgIERpZFJlY2VpdmVVc2VyTWVkaWFQZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCkKKyNlbmRp
ZgorCiAgICAgIyBOb3RpZmljYXRpb24KICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlz
c2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxZjlmYjA0
MGE0MWYxYmZhNDM3OWYyZGZkOGQ5ZmJkYzU0ZGZhODRiLi40ODEwZGZlZTBiZDk4NjlhMGJmMDJl
MzcyOWI2NTdkNjM1MDY1NDdhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTQtMDUtMTIgIFNlb25nanVuIEtpbSAg
PGlzQWlyQGNvbXBhbnkxMDAuY29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRpYUNsaWVudCBz
dXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
dXBwb3J0IGZvciBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCBpbiBXZWJLaXQyLiBJdCdzIGlt
cGxlbWVudGVkCisgICAgICAgIHNpbWlsYXJpbHkgdG8gdGhlIEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3Qgc3VwcG9ydC4gV2hlbiB0aGUKKyAgICAgICAgV2ViUGFnZSByZXF1aXJlcyB0aGlz
IHBlcm1pc3Npb24gaXQgc2VuZHMgYSBtZXNzYWdlIHRvIHRoZSBVSSBwcm9jZXNzCisgICAgICAg
IHdoaWNoIGF0IHNvbWUgcG9pbnQgZ3JhbnRzIG9yIGRlbmllcyB0aGUgcGVybWlzc2lvbiBhbmQg
c2VuZCB0aGUKKyAgICAgICAgcmVzdWx0IHRvIHRoZSBXZWJQcm9jZXNzLgorCisgICAgICAgIFBh
dGNoIGJhc2VkIG9uIHdvcmsgcHJldmlvdXNseSBkb25lIGJ5IFBoaWxpcHBlIE5vcm1hbmQgPHBu
b3JtYW5kQGlnYWxpYS5jb20+LgorICAgICAgICAKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsv
QnJvd3NlcldpbmRvdy5jOiBTaG93IGEgcG9wdXAgd2hlbiB0aGUgcGFnZSByZXF1aXJlcworICAg
ICAgICB1c2VyIHBlcm1pc3Npb24gdG8gYWNjZXNzIGF1ZGlvL3ZpZGVvIGRldmljZXMuCisgICAg
ICAgIChwZXJtaXNzaW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKToKKyAgICAgICAgKHdlYlZpZXdE
ZWNpZGVQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChnZW9sb2NhdGlvblJlcXVlc3REaWFs
b2dDYWxsYmFjayk6IERlbGV0ZWQuCisKIDIwMTQtMDYtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgMzItYml0IGJ1aWxkIGZpeC4KZGlmZiAtLWdp
dCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMgYi9Ub29scy9NaW5pQnJv
d3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCmluZGV4IDQzNzQ3NzMzZmY5YTUyNDAzOTFkZTAzZGVm
MDMyNTQxZmZiM2VmZTMuLjA3OGE0MWM4ZjAyOTAzNmUyZDczMzI4ODA4Y2M4Yjc1ZWQ1ZmIxNTYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKKysrIGIv
VG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYwpAQCAtMjUzLDcgKzI1Myw3IEBA
IHN0YXRpYyB2b2lkIGJhY2tGb3J3YWRsaXN0Q2hhbmdlZChXZWJLaXRCYWNrRm9yd2FyZExpc3Qg
KmJhY2tGb3J3YWRsaXN0LCBXZWJLaXRCCiAgICAgYnJvd3NlcldpbmRvd1VwZGF0ZU5hdmlnYXRp
b25BY3Rpb25zKHdpbmRvdywgYmFja0ZvcndhZGxpc3QpOwogfQogCi1zdGF0aWMgdm9pZCBnZW9s
b2NhdGlvblJlcXVlc3REaWFsb2dDYWxsYmFjayhHdGtEaWFsb2cgKmRpYWxvZywgZ2ludCByZXNw
b25zZSwgV2ViS2l0UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3QpCitzdGF0aWMgdm9pZCBwZXJt
aXNzaW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKEd0a0RpYWxvZyAqZGlhbG9nLCBnaW50IHJlc3Bv
bnNlLCBXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCkKIHsKICAgICBzd2l0Y2ggKHJl
c3BvbnNlKSB7CiAgICAgY2FzZSBHVEtfUkVTUE9OU0VfWUVTOgpAQCAtNDA2LDE5ICs0MDYsMjcg
QEAgc3RhdGljIGdib29sZWFuIHdlYlZpZXdEZWNpZGVQb2xpY3koV2ViS2l0V2ViVmlldyAqd2Vi
VmlldywgV2ViS2l0UG9saWN5RGVjaXNpb24KIAogc3RhdGljIGdib29sZWFuIHdlYlZpZXdEZWNp
ZGVQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBXZWJLaXRQZXJtaXNz
aW9uUmVxdWVzdCAqcmVxdWVzdCwgQnJvd3NlcldpbmRvdyAqd2luZG93KQogewotICAgIGlmICgh
V0VCS0lUX0lTX0dFT0xPQ0FUSU9OX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSkKKyAgICBn
Y2hhciAqZGlhbG9nX3RpdGxlID0gTlVMTDsKKyAgICBnY2hhciAqZGlhbG9nX21lc3NhZ2UgPSBO
VUxMOworCisgICAgaWYgKFdFQktJVF9JU19HRU9MT0NBVElPTl9QRVJNSVNTSU9OX1JFUVVFU1Qo
cmVxdWVzdCkpIHsKKyAgICAgICAgZGlhbG9nX3RpdGxlID0gIkdlb2xvY2F0aW9uIHJlcXVlc3Qi
OworICAgICAgICBkaWFsb2dfbWVzc2FnZSA9ICJBbGxvdyBnZW9sb2NhdGlvbiByZXF1ZXN0PyI7
CisgICAgfSBlbHNlIGlmIChXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1Qo
cmVxdWVzdCkpIHsKKyAgICAgICAgZGlhbG9nX3RpdGxlID0gIlVzZXJNZWRpYSByZXF1ZXN0IjsK
KyAgICAgICAgZGlhbG9nX21lc3NhZ2UgPSAiQWxsb3cgdXNlciBtZWRpYSByZXF1ZXN0PyI7Cisg
ICAgfSBlbHNlCiAgICAgICAgIHJldHVybiBGQUxTRTsKIAogICAgIEd0a1dpZGdldCAqZGlhbG9n
ID0gZ3RrX21lc3NhZ2VfZGlhbG9nX25ldyhHVEtfV0lORE9XKHdpbmRvdyksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19ESUFMT0dfTU9EQUwgfCBH
VEtfRElBTE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdUS19NRVNTQUdFX1FVRVNUSU9OLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfQlVUVE9OU19ZRVNfTk8sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHZW9sb2NhdGlv
biByZXF1ZXN0Iik7CisgICAgICAgIEdUS19ESUFMT0dfTU9EQUwgfCBHVEtfRElBTE9HX0RFU1RS
T1lfV0lUSF9QQVJFTlQsCisgICAgICAgIEdUS19NRVNTQUdFX1FVRVNUSU9OLAorICAgICAgICBH
VEtfQlVUVE9OU19ZRVNfTk8sCisgICAgICAgICIlcyIsIGRpYWxvZ190aXRsZSk7CiAKLSAgICBn
dGtfbWVzc2FnZV9kaWFsb2dfZm9ybWF0X3NlY29uZGFyeV90ZXh0KEdUS19NRVNTQUdFX0RJQUxP
RyhkaWFsb2cpLCAiQWxsb3cgZ2VvbG9jYXRpb24gcmVxdWVzdD8iKTsKLSAgICBnX3NpZ25hbF9j
b25uZWN0KGRpYWxvZywgInJlc3BvbnNlIiwgR19DQUxMQkFDSyhnZW9sb2NhdGlvblJlcXVlc3RE
aWFsb2dDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CisgICAgZ3RrX21lc3NhZ2Vf
ZGlhbG9nX2Zvcm1hdF9zZWNvbmRhcnlfdGV4dChHVEtfTUVTU0FHRV9ESUFMT0coZGlhbG9nKSwg
IiVzIiwgZGlhbG9nX21lc3NhZ2UpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoZGlhbG9nLCAicmVz
cG9uc2UiLCBHX0NBTExCQUNLKHBlcm1pc3Npb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2spLCBnX29i
amVjdF9yZWYocmVxdWVzdCkpOwogICAgIGd0a193aWRnZXRfc2hvdyhkaWFsb2cpOwotCiAgICAg
cmV0dXJuIFRSVUU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233596</attachid>
            <date>2014-06-23 04:26:40 -0700</date>
            <delta_ts>2014-06-23 20:06:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123158-20140623202618.patch</filename>
            <type>text/plain</type>
            <size>69025</size>
            <attacher name="Seongjun Kim">isair</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2UwNjI0YzViZmU5YWE3
OWM1NDAwYWEwMmUyMjAyYzkwN2FkNTU4Yy4uZTYyN2VmNTViMmFjODZjYjk5YTgxYzYyYTRhMzgw
Y2Q4YzI2YmEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA1LTEyICBTZW9u
Z2p1biBLaW0gIDxpc0FpckBjb21wYW55MTAwLmNvbT4KKworICAgICAgICBbV0syXSBVc2VyTWVk
aWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3VwcG9ydCBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgaW4gV2ViS2l0
Mi4gSXQncyBpbXBsZW1lbnRlZAorICAgICAgICBzaW1pbGFyaWx5IHRvIHRoZSBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0IHN1cHBvcnQuIFdoZW4gdGhlCisgICAgICAgIFdlYlBhZ2UgcmVx
dWlyZXMgdGhpcyBwZXJtaXNzaW9uIGl0IHNlbmRzIGEgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2Vz
cworICAgICAgICB3aGljaCBhdCBzb21lIHBvaW50IGdyYW50cyBvciBkZW5pZXMgdGhlIHBlcm1p
c3Npb24gYW5kIHNlbmQgdGhlCisgICAgICAgIHJlc3VsdCB0byB0aGUgV2ViUHJvY2Vzcy4KKwor
ICAgICAgICBQYXRjaCBiYXNlZCBvbiB3b3JrIHByZXZpb3VzbHkgZG9uZSBieSBQaGlsaXBwZSBO
b3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPi4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6IEFkZGVkIGRvY3VtZW50IGFuZAorICAgICAgICBm
cmFtZSBhY2Nlc3NvcnMsIG5lZWRlZCBieSB0aGUgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIgb2Yg
dGhlCisgICAgICAgIFdlYlByb2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1
ZXN0Ojpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpmcmFt
ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVy
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQ2VudGVyR1N0cmVh
bWVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6Y3JlYXRlTWVkaWFTdHJlYW0pOgorCiAyMDE0LTA2LTIz
ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBVc2UgV2Vi
R0xMYXllciByYXRoZXIgdGhhbiBQbGF0Zm9ybUxheWVyIGluIEdyYXBoaWNzQ29udGV4dDNECmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggYmE4ODNjZTZhMWUzYjc4YjczZDcyNjRjZGIzNTIzNDc4NTViZDM0OS4uMWE1
NjYxN2Y0MDBlYzVhOGZjNDI1ZDFkNDFhNDU5M2UzN2U4YjMzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDk3IEBACisyMDE0LTA1LTEyICBTZW9uZ2p1biBLaW0gIDxpc0FpckBjb21wYW55MTAwLmNv
bT4KKworICAgICAgICBbV0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QgaW4gV2ViS2l0Mi4gSXQncyBpbXBsZW1lbnRlZAorICAgICAgICBz
aW1pbGFyaWx5IHRvIHRoZSBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0IHN1cHBvcnQuIFdo
ZW4gdGhlCisgICAgICAgIFdlYlBhZ2UgcmVxdWlyZXMgdGhpcyBwZXJtaXNzaW9uIGl0IHNlbmRz
IGEgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2VzcworICAgICAgICB3aGljaCBhdCBzb21lIHBvaW50
IGdyYW50cyBvciBkZW5pZXMgdGhlIHBlcm1pc3Npb24gYW5kIHNlbmQgdGhlCisgICAgICAgIHJl
c3VsdCB0byB0aGUgV2ViUHJvY2Vzcy4KKworICAgICAgICBQYXRjaCBiYXNlZCBvbiB3b3JrIHBy
ZXZpb3VzbHkgZG9uZSBieSBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPi4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBOZXcgTWVkaWFTdHJlYW0gZGlyZWN0b3J5IGFu
ZCBmaWxlcy4KKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZTogRGl0dG8uCisgICAgICAgICog
U2hhcmVkL0FQSS9jL1dLQmFzZS5oOiBOZXcgdHlwZSBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuCisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOiBEaXR0by4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOiBGb3J3YXJkLWRlY2xhcmUgdGhlIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6
IE5ldyBEZWNpZGVQb2xpY3kgaGFuZGxlciBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VVSUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQsIEMgQVBJIGltcGxlbWVudGF0aW9uIG9m
CisgICAgICAgIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAgICAgKFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQpOgorICAgICAgICAoV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEFsbG93KToKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3REZW55KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
SUNsaWVudC5jcHA6IERlY2lkZVBvbGljeSBoYW5kbGVyIGltcGxlbWVudGF0aW9uIGZvcgorICAg
ICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAgICAgKGRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTogRGVmZXIgcGVybWlzc2lvbiByZXF1ZXN0IHRv
IEFQSUNsaWVudC4KKyAgICAgICAgKGF0dGFjaFVJQ2xpZW50VG9WaWV3KTogVXBncmFkZSB0aGUg
dmVyc2lvbiBvZiBVSUNsaWVudCB0byAzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQsIFdlYktpdEdUSyBBUEkg
Zm9yCisgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCB2ZXJ5IHNpbWlsYXIgdG8g
dGhlIG9uZSB1c2VkIGZvciBHZW9sb2NhdGlvbi4KKyAgICAgICAgKHdlYmtpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0QWxsb3cpOgorICAgICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3REZW55KToKKyAgICAgICAgKHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJm
YWNlX2luaXQpOgorICAgICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REaXNw
b3NlKToKKyAgICAgICAgKHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9jbGFz
c19pbml0KToKKyAgICAgICAgKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBFeHBvc2UgbmV3IEFQSSBp
biBkb2N1bWVudGF0aW9uLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaDog
RXhwb3NlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IEFQSS4KKyAgICAgICAgKiBVSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOiBBZGRlZCwgbWFu
YWdlciBzdG9yaW5nIHBlbmRpbmcKKyAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvbiByZXF1ZXN0
cy4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVS
ZXF1ZXN0cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9u
RGVjaXNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5jcHA6IEFkZGVkLCBwcm94eSBvYmplY3QgZm9yIHRoZQorICAg
ICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFR5cGUuCisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk6OmRlbnkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yRnJhbWUpOiBEZWZlciBVc2VyUGVybWlzc2lvblJlcXVlc3QgdG8KKyAgICAgICAgdGhlIFVJ
Q2xpZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBOZXcgbWVzc2FnZSB0byBoYW5kbGUg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFT
dHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDogQWRkZWQsIFdlYlBy
b2Nlc3Mgc2lkZSBvZgorICAgICAgICB0aGUgVXNlclJlcXVlc3RNYW5hZ2VyLCBrZWVwaW5nIHRy
YWNrIG9mIGVhY2ggcGVybWlzc2lvbiByZXF1ZXN0LgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0
ZVJlcXVlc3RJRCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNl
bFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1l
ZGlhQ2xpZW50LmNwcDogQWRkZWQsIFdlYlByb2Nlc3MgaW1wbGVtZW50YXRpb24gb2YgdGhlCisg
ICAgICAgIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6V2ViVXNl
ck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJV
c2VyTWVkaWFDbGllbnQ6On5XZWJVc2VyTWVkaWFDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJV
c2VyTWVkaWFDbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Oldl
YlBhZ2UpOiBDcmVhdGUgdGhlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciBhbmQg
cmVnaXN0ZXIgdGhlCisgICAgICAgIFVzZXJNZWRpYUNsaWVudCB0byB0aGUgcGFnZS4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lv
bik6IERpc3BhdGNoIGRlY2lzaW9uIHRvIG1hbmFnZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbjogTmV3IE1lc3NhZ2UgdG8gaGFuZGxlIHBlcm1pc3Npb24gZGVjaXNp
b24gcmVzdWx0CisgICAgICAgIGZyb20gdGhlIFVJIHByb2Nlc3MuCisKIDIwMTQtMDYtMjMgIEd3
YW5nIFlvb24gSHdhbmcgIDx5b29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
R1RLIGJ1aWxkIGZpeCBhZnRlciByMTcwMjc0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggZTQzOGQzNWEy
ZDdiZDIyMjVhNmY0YTdhNzc5N2JjZWU2YmVlY2MzMi4uNzEwMGVkNjkzZDBmODAzM2M3ZDMyYTYw
OTRjMDM2N2JjOTIxNjRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5j
bHVkZSAiRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTWVkaWFDb25zdHJh
aW50c0ltcGwuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgogI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtQ2VudGVyLmgiCkBAIC0xMDEsNiArMTAyLDE2IEBAIFVzZXJNZWRpYVJlcXVlc3Q6On5Vc2Vy
TWVkaWFSZXF1ZXN0KCkKIHsKIH0KIAorRG9jdW1lbnQqIFVzZXJNZWRpYVJlcXVlc3Q6OmRvY3Vt
ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpOworfQorCitGcmFtZSogVXNlck1lZGlhUmVxdWVzdDo6ZnJhbWUoKSBjb25zdAorewor
ICAgIHJldHVybiBkb2N1bWVudCgpID8gZG9jdW1lbnQoKS0+ZnJhbWUoKSA6IG51bGxwdHI7Cit9
CisKIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1ZXN0OjpzZWN1cml0eU9yaWdpbigpIGNv
bnN0CiB7CiAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXgg
NmFkMjBmZTA2NzUzMzEyNTM4YmRhMjgzZDA1YmU0MjVhODM3ZDc4YS4uMzk0MjdiNmNkNWEzNjQx
ZTRmZmIyMTM2OWQ4ZjlkZjAxYmRjNzdiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaWN0aW9uYXJ5OwogY2xhc3MgRG9jdW1lbnQ7
CitjbGFzcyBGcmFtZTsKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBNZWRpYVN0cmVh
bVByaXZhdGU7CiBjbGFzcyBVc2VyTWVkaWFDb250cm9sbGVyOwpAQCAtNjAsNiArNjEsOSBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBVc2VyTWVkaWFDb250cm9sbGVyKiwgY29uc3QgRGljdGlv
bmFyeSYgb3B0aW9ucywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJh
Y2s+LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+LCBFeGNlcHRp
b25Db2RlJik7CiAgICAgflVzZXJNZWRpYVJlcXVlc3QoKTsKIAorICAgIERvY3VtZW50KiBkb2N1
bWVudCgpIGNvbnN0OworICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OworCiAgICAgU2VjdXJpdHlP
cmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2b2lkIHN0YXJ0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVk
aWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcAppbmRleCBj
ZWRiMDM5NzM1OTIzMDMxYjdhOTliNzc2NmYwOThjOGQ0OTAyMTUxLi5mN2NjNzNjMGI3MDMyYzNj
YzU2ZDQ0YTk3YzRjYTY0OWQwOGUzZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRp
YVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAKQEAgLTU5LDE0ICs1OSwyMCBAQCBNZWRpYVN0cmVh
bUNlbnRlckdTdHJlYW1lcjo6fk1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyKCkKIHsKIH0KIAot
dm9pZCBNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWlu
dHMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiwgUGFzc1JlZlB0cjxNZWRp
YUNvbnN0cmFpbnRzPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikKK3ZvaWQgTWVkaWFT
dHJlYW1DZW50ZXJHU3RyZWFtZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQ
dHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudD4gY2xpZW50LCBQYXNzUmVmUHRyPE1lZGlhQ29u
c3RyYWludHM+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgQVNTRVJUKGNsaWVudCk7CisKKyAgICAvLyBGSVhNRTogVmFsaWRhdGUg
dmlkZW8gYW5kIGF1ZGlvIGNvbnN0cmFpbnRzCisgICAgY2xpZW50LT5jb25zdHJhaW50c1ZhbGlk
YXRlZCgpOwogfQotICAgIAotdm9pZCBNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6Y3JlYXRl
TWVkaWFTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiwgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikKKwor
dm9pZCBNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6Y3JlYXRlTWVkaWFTdHJlYW0oUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiBjbGllbnQsIFBhc3NSZWZQdHI8TWVkaWFD
b25zdHJhaW50cz4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pCiB7Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICBBU1NFUlQoY2xpZW50KTsKKworICAgIC8vIEZJWE1FOiBBcHBseSB2
aWRlbyBhbmQgYXVkaW8gY29uc3RyYWludHMKKyAgICBjbGllbnQtPmZhaWxlZFRvQ3JlYXRlU3Ry
ZWFtV2l0aFBlcm1pc3Npb25FcnJvcigpOwogfQogCiBib29sIE1lZGlhU3RyZWFtQ2VudGVyR1N0
cmVhbWVyOjpnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudD4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IDBmYTk0
OTg4OWM3MGQ2ZjdiNjQ0MDBkYWI2MDM0MzJiMzg4MDU2YTQuLmMyMDI1YjQ4MDZmMmQzYzUxNmVm
MDFmODkxNzY2ZGQ0MDI2ZTMzOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC00OSw2ICs0OSw3
IEBAIHNldChXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0v
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00iCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvTGF1bmNoaW5nIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL01lZGlhQ2Fj
aGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0iCiAgICAgIiR7
V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTmV0d29yayIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL09y
aWdpbkRhdGEiCkBAIC0zMDIsNiArMzAzLDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJ
UHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAogICAgIFVJUHJvY2Vzcy9TdGF0aXN0aWNz
UmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcAorICAg
IFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKyAg
ICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKICAgICBVSVBy
b2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0
LmNwcApAQCAtMzg4LDYgKzM5MSw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVz
b3VyY2VDYWNoZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIu
Y3BwCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlicmF0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5jcHAKIApAQCAtNDg0LDYgKzQ4OCw4IEBAIHNldChXZWJL
aXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFu
YWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcAorCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmNwcAogICAgIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTUzNSw2ICs1NDEsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJWaWJyYXRpb25DbGllbnQuY3BwCiAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvRGVj
b2RlckFkYXB0ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5j
bWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDc2NDlmMTRkOTdj
OTYyNDA1NDdlNjExYmM5NGQxODMxMmZkMjExOWMuLjMyOWU5ODMwYjhlN2ZhMmMxMGUxYzUyNWNj
ZmMzYTU5NmU0OWEyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0yMDcsNiArMjA3
LDkgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
UklTY2hlbWVSZXF1ZXN0LmgKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVS
ZXF1ZXN0UHJpdmF0ZS5oCisgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuaAorICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VmVyc2lvbi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRWZXJzaW9uLmguaW4KICAg
ICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMzQ5LDYgKzM1Miw3
IEBAIHNldChXZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5oCiAgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9uc2UuaAogICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmgKICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0
LmgKICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJJbnNwZWN0
b3IuaAogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlJlc291
cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCA4ZDFlOTY1ZDVjNGFl
MWZhOWU1OWY0NTNkOTYyZjQ4YTJiYmM4Y2Q5Li4xMWVjNTQ4ZGVlYTk4ZWU0ZDFmYmUzZDRmMDZh
MDczYjk2MDJjY2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tC
YXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xMjcs
NiArMTI3LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90ZWN0aW9uU3BhY2Uq
IFdLUHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tUZXh0
Q2hlY2tlciogV0tUZXh0Q2hlY2tlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
U2Vzc2lvbiogV0tTZXNzaW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTZXNz
aW9uU3RhdGUqIFdLU2Vzc2lvblN0YXRlUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlicmF0aW9uKiBXS1ZpYnJhdGlv
blJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlld3BvcnRBdHRyaWJ1dGVzKiBX
S1ZpZXdwb3J0QXR0cmlidXRlc1JlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4
IDZkZjQ5MTgzZDJiYzQ2MjY1Y2MwOWY3YjVkNTc0YTA3YjNjMGM1OTIuLjMxMTJlZTllODY4ZjFm
Zjg3NjJlMjM4NjBmMTdmYzFkYWEzMjFkNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgK
QEAgLTEzMiw2ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIFByZWZlcmVuY2VzLAogICAgICAg
ICBTZXNzaW9uLAogICAgICAgICBUZXh0Q2hlY2tlciwKKyAgICAgICAgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QsCiAgICAgICAgIFZpYnJhdGlvbiwKICAgICAgICAgVmlld3BvcnRBdHRyaWJ1
dGVzLAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXgg
OWZmMDA5NGU3M2Q3OWZjNWVkZTA0ZjYwMjM3NGU0NmY0N2NkMmRlNi4uMjU1NGJkNTJhZWQ2Mzcw
ODRmY2E2Yzk3YjhmMTBkMGFhMWYxNjAyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaApAQCAtNTAsNiArNTAsNyBAQCBjbGFzcyBJbW11dGFibGVEaWN0aW9u
YXJ5OwogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldoZWVs
RXZlbnQ7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKK2NsYXNzIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyUHJveHk7CiBjbGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3MgV2ViT3BlblBhbmVsUGFy
YW1ldGVyczsKQEAgLTExNyw2ICsxMTgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wg
cnVuT3BlblBhbmVsKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5
KiwgV2ViS2l0OjpXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViS2l0OjpXZWJPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lclByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBh
Z2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6V2ViU2VjdXJpdHlPcmln
aW4qLCBXZWJLaXQ6Okdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eSopIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5
KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGRlY2lk
ZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVBy
b3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6Tm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QqKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gUHJpbnRpbmcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggODAyMjFhOTFi
MmY5MTYzNTUyOTliYzI1ZjJkMGYxYzgwMTk0N2MyYy4uNWY0NGE2OTI1MjNiOGNkODc4ZWNiMDBj
OTExNmJhZmEzZDNlYmY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaApAQCAtNjMsNiArNjMsNyBAQCBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlz
dGVuZXI7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdFByb3h5OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CitjbGFz
cyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW07CkBAIC0xNDYsNiArMTQ3LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5H
KFdLUmVuZGVyTGF5ZXJSZWYsIFdlYlJlbmRlckxheWVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdL
UmVuZGVyT2JqZWN0UmVmLCBXZWJSZW5kZXJPYmplY3QpCiBXS19BRERfQVBJX01BUFBJTkcoV0tT
ZXNzaW9uU3RhdGVSZWYsIEFQSTo6U2Vzc2lvblN0YXRlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdL
VGV4dENoZWNrZXJSZWYsIFdlYlRleHRDaGVja2VyKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tWaWJyYXRpb25SZWYsIFdlYlZpYnJhdGlvblByb3h5
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmLCBXZWJWaWV3cG9y
dEF0dHJpYnV0ZXMpCiBXS19BRERfQVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYsIFdlYkluc3Bl
Y3RvclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRl
eCBjMDlhMDJkODQ5YzZkMjJkZDE2YWZiMzRhMTg2NDhmYmQyNGEzY2MxLi4wNDVlNWVkYjJiZjMx
ODI0MDNhNjI3OTIxOTkzMDY2MDgyZmYxYTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcApAQCAtMTQ2NCw2ICsxNDY0LDE1IEBAIHZvaWQgV0tQYWdlU2V0UGFn
ZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdr
Q2xpZW50CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCisgICAgICAgIHZp
cnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQ
YWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXZWJTZWN1cml0eU9yaWdpbiog
b3JpZ2luLCAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogcGVybWlzc2lvblJlcXVl
c3QpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdCh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShvcmln
aW4pLCB0b0FQSShwZXJtaXNzaW9uUmVxdWVzdCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdl
UHJveHkqIHBhZ2UsIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCkgb3ZlcnJpZGUKICAgICAgICAgewogICAg
ICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJ
Q2xpZW50LmgKaW5kZXggZmU2Njg2OWI5MzQzMzU5NjlhMGVmOWEwZWJlYTJmMzM0NmQxY2Y2Zi4u
NzNlNjNlOThmMGMzNzA1NGE5NzM0YjFmOGE3NWRkYjhkYjA0MjM3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTg2LDYgKzg2LDcg
QEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBXS1N0cmluZ1JlZiBpbml0aWEKIHR5cGVkZWYgdm9pZCAoKldLUGFnZUhpZGVDb2xv
clBpY2tlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2lu
VW5hdmFpbGFiaWxpdHlSZWFzb24sIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZvRGljdGlvbmFy
eSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VQaW5uZWRT
dGF0ZURpZENoYW5nZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwg
V0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RS
ZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiAvLyBEZXBy
ZWNhdGVkICAgIAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJh
Y2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJl
ZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRv
biBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0zMDcsNiArMzA4LDcg
QEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMyB7CiAKICAgICAvLyBWZXJzaW9uIDMu
CiAgICAgV0tQYWdlUGlubmVkU3RhdGVEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwaW5uZWRTdGF0ZURpZENoYW5nZTsKKyAgICBXS1BhZ2VEZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgIGRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OwogfSBXS1BhZ2VVSUNsaWVu
dFYzOwogCiBlbnVtIHsga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb24gV0tfRU5VTV9ERVBS
RUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lvbiBudW1iZXIgaW5zdGVhZCIpID0gMiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlZTJmYmI4NDkwMTBkNDNm
NjVjMGYyYjk0MWVhNGYxODQ1ZDA3MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTAs
MCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNB
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaCIKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
KworV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpCit7Cisg
ICAgcmV0dXJuIHRvQVBJKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OkFQSVR5cGUp
OworfQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQorewor
ICAgIHJldHVybiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5hbGxvdygp
OworfQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit7Cisg
ICAgcmV0dXJuIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmRlbnkoKTsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3NTk1MGE5Y2MzMWQ2ODJl
YTc0ZmNlOTdkMzkzMGJhZGE3NmFlZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAg
KzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTAorICogQ29weXJp
Z2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
ICovCisKKyNpZm5kZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaAorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5o
PgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9S
VCBXS1R5cGVJRCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CisKK1dL
X0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTsKK1dLX0VY
UE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOworCisjaWZkZWYg
X19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCA5ZTBlZjY4YzM4NjBjZTA4NjlhYjBkYzE2NmNlM2Zm
ZTIwZDRhNTI5Li40NzFiMGI1ODVlZGMzNjUxNjNmZThiZTkwN2FhY2VlZDJlMDMzM2YzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQu
Y3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZp
ZXdCYXNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0V2luZG93UHJvcGVydGllc1ByaXZhdGUuaCIKQEAgLTE1Myw2ICsxNTQsMTIg
QEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFcKICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Np
b25SZXF1ZXN0KFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSwgV0VCS0lUX1BFUk1JU1NJT05f
UkVRVUVTVChnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CiB9CiAKK3N0YXRp
YyB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFJlZiByZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIEdSZWZQ
dHI8V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRl
KHRvSW1wbChyZXF1ZXN0KSkpOworICAgIHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVl
c3QoV0VCS0lUX1dFQl9WSUVXKGNsaWVudEluZm8pLCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNU
KHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7Cit9CisKIHN0YXRpYyB2b2lkIHJ1
bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB3ZWJraXRX
ZWJWaWV3UnVuQXNNb2RhbChXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbykpOwpAQCAtMTYwLDkg
KzE2Nyw5IEBAIHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKIAogdm9pZCBhdHRhY2hVSUNsaWVudFRvVmlldyhXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3KQogewotICAgIFdLUGFnZVVJQ2xpZW50VjIgd2tVSUNsaWVudCA9IHsKKyAgICBXS1BhZ2VV
SUNsaWVudFYzIHdrVUlDbGllbnQgPSB7CiAgICAgICAgIHsKLSAgICAgICAgICAgIDIsIC8vIHZl
cnNpb24KKyAgICAgICAgICAgIDMsIC8vIHZlcnNpb24KICAgICAgICAgICAgIHdlYlZpZXcsIC8v
IGNsaWVudEluZm8KICAgICAgICAgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwCkBAIC0yMTEsNiArMjE4LDggQEAgdm9pZCBhdHRhY2hVSUNsaWVu
dFRvVmlldyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgICAgICAwLCAvLyBzaG93Q29sb3JQ
aWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIHBsdWdp
bkxvYWRQb2xpY3kKKyAgICAgICAgMCwgLy8gcGlubmVkU3RhdGVEaWRDaGFuZ2UKKyAgICAgICAg
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsCiAgICAgfTsKICAgICBX
S1BhZ2VSZWYgd2tQYWdlID0gdG9BUEkod2Via2l0V2ViVmlld0Jhc2VHZXRQYWdlKFdFQktJVF9X
RUJfVklFV19CQVNFKHdlYlZpZXcpKSk7CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdrUGFn
ZSwgJndrVUlDbGllbnQuYmFzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYThiMGRmZWRkNzExMTYyZDllYzJjODcxNmYwODYzZWMwOGViZmVh
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEwMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
Q29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmgiCisKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5j
bHVkZSAiV2ViS2l0UGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
KworLyoqCisgKiBTRUNUSU9OOiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAorICog
QFNob3J0X2Rlc2NyaXB0aW9uOiBBIHBlcm1pc3Npb24gcmVxdWVzdCBmb3IgYWNjZXNzaW5nIHVz
ZXIncyBhdWRpby92aWRlbyBkZXZpY2VzLgorICogQFRpdGxlOiBXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdAorICogQFNlZV9hbHNvOiAjV2ViS2l0UGVybWlzc2lvblJlcXVlc3QsICNX
ZWJLaXRXZWJWaWV3CisgKgorICogV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgcmVw
cmVzZW50cyBhIHJlcXVlc3QgZm9yCisgKiBwZXJtaXNzaW9uIHRvIGRlY2lkZSB3aGV0aGVyIFdl
YktpdCBzaG91bGQgYmUgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIHVzZXIncworICogYXVkaW8gYW5k
IHZpZGVvIHNvdXJjZSBkZXZpY2VzIHdoZW4gcmVxdWVzdGVkIHRocm91Z2h0IHRoZSBnZXRVc2Vy
TWVkaWEgQVBJLgorICovCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3Rf
aW50ZXJmYWNlX2luaXQoV2ViS2l0UGVybWlzc2lvblJlcXVlc3RJZmFjZSopOworCitzdHJ1Y3Qg
X1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSB7CisgICAgUmVmUHRyPFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJlcXVlc3Q7CisgICAgYm9vbCBtYWRlRGVj
aXNpb247Cit9OworCitXRUJLSVRfREVGSU5FX1RZUEVfV0lUSF9DT0RFKAorICAgIFdlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3Jl
cXVlc3QsIEdfVFlQRV9PQkpFQ1QsCisgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKFdFQktJVF9U
WVBFX1BFUk1JU1NJT05fUkVRVUVTVCwgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZh
Y2VfaW5pdCkpCisKK3N0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
QWxsb3coV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgQVNTRVJUKFdF
QktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSk7CisKKyAgICBX
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfVVNF
Ul9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisKKyAgICAvLyBPbmx5
IG9uZSBkZWNpc2lvbiBhdCBhIHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVEZWNpc2lvbikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKKyAgICBwcml2
LT5yZXF1ZXN0LT5hbGxvdygpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdERlbnkoV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7Cisg
ICAgQVNTRVJUKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0
KSk7CisKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUqIHByaXYg
PSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisK
KyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBhIHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVE
ZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1
ZTsKKyAgICBwcml2LT5yZXF1ZXN0LT5kZW55KCk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9w
ZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQoV2ViS2l0UGVybWlzc2lvblJlcXVlc3RJ
ZmFjZSogaWZhY2UpCit7CisgICAgaWZhY2UtPmFsbG93ID0gd2Via2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RBbGxvdzsKKyAgICBpZmFjZS0+ZGVueSA9IHdlYmtpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0RGVueTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3REaXNwb3NlKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvLyBEZWZhdWx0IGJl
aGF2aW91ciB3aGVuIG5vIGRlY2lzaW9uIGhhcyBiZWVuIG1hZGUgaXMgZGVueWluZyB0aGUgcmVx
dWVzdC4KKyAgICB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0VCS0lUX1BF
Uk1JU1NJT05fUkVRVUVTVChvYmplY3QpKTsKKyAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfdXNl
cl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZShvYmplY3Qp
OworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3Rf
Y2xhc3NfaW5pdChXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzKiBrbGFzcykK
K3sKKyAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Moa2xhc3Mp
OworICAgIG9iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3REaXNwb3NlOworfQorCitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogd2Vi
a2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSogcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdCogdXNlcm1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBXRUJLSVRfVVNFUl9NRURJQV9QRVJN
SVNTSU9OX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1VTRVJfTUVESUFfUEVSTUlT
U0lPTl9SRVFVRVNULCBOVUxMKSk7CisgICAgdXNlcm1lZGlhUGVybWlzc2lvblJlcXVlc3QtPnBy
aXYtPnJlcXVlc3QgPSByZXF1ZXN0OworICAgIHJldHVybiB1c2VybWVkaWFQZXJtaXNzaW9uUmVx
dWVzdDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmYyOWQwNTE0YzlhNTBmMGUxNzBmMmEzNGViMTk1YmY1ZTQzNDM4MDIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgSWdhbGlhIFMuTAorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICog
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv
biwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9J
TlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8
d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKwor
I2lmbmRlZiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIFdlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+
CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKwor
I2RlZmluZSBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCAgICAgICAg
ICAgICh3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKG9iaikgICAgICAgICAg
ICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1VTRVJfTUVE
SUFfUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCkp
CisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUyhrbGFz
cykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9VU0VS
X01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVT
VChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRf
VFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCkpCisjZGVmaW5lIFdFQktJVF9JU19V
U0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19D
TEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVR
VUVTVCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9HRVRf
Q0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQ
RV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCAgICAgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q7Cit0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFzcyAgIFdlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdCB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBX
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1
Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgeworICAgIEdPYmplY3RD
bGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lk
KTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2
b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Np
b25fcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iOWYyNWE5NDc2M2ZmYWY5ZDRmYzhjNjhiMWNjOTI4N2U1NDYyMDA0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcml2YXRlLmgKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBJZ2FsaWEgUy5MCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAg
SW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBXZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGVfaAorI2RlZmluZSBXZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGVfaAorCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgor
I2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgiCisKK1dlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dENyZWF0ZShXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqKTsKKworI2Vu
ZGlmIC8vIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9j
cy5zZ21sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LWRvY3Muc2dtbAppbmRleCBlM2NmOWE2OGM2YjM5ZDE3OWFkYTU1OWNhYTQ4ZGFmYzExYWY1YzIx
Li5jYTcwNDcyZDA2ZTYwYzRlOGNmODUwOTQxYWQwMjQyMjkyODk4MWZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21s
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1k
b2NzLnNnbWwKQEAgLTIzLDYgKzIzLDcgQEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2Vi
S2l0RG93bmxvYWQueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBlcm1p
c3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgorICAgIDx4aTppbmNsdWRlIGhyZWY9Inht
bC9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVk
ZSBocmVmPSJ4bWwvV2ViS2l0UG9saWN5RGVjaXNpb24ueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUg
aHJlZj0ieG1sL1dlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi54bWwiLz4KICAgICA8eGk6
aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbi54bWwiLz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstc2VjdGlvbnMudHh0CmluZGV4IDQ3Yjg2NGU0MDkxNTgxZDcxYzYzNjQzY2JlMDcx
MDJjMGFkYmUyYTQuLmJkZGVlMWZkZjU0NjEyZmEyNDlmNDUzZmVjYmZiNDY0YTQ5ZmNhMmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApAQCAtNTIxLDYgKzUyMSwyNCBAQCB3ZWJraXRfZ2Vv
bG9jYXRpb25fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCiA8L1NFQ1RJT04+CiAKIDxTRUNU
SU9OPgorPEZJTEU+V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q8L0ZJTEU+CitXZWJL
aXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAorCis8U1VCU0VDVElPTiBTdGFuZGFyZD4KK1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MKK1dFQktJVF9UWVBFX1VTRVJfTUVE
SUFfUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVF
U1QKK1dFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX1VTRVJf
TUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJN
SVNTSU9OX1JFUVVFU1RfQ0xBU1MKK1dFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVT
VF9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZQord2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0
X2dldF90eXBlCis8L1NFQ1RJT04+CisKKzxTRUNUSU9OPgogPEZJTEU+V2ViS2l0UG9saWN5RGVj
aXNpb248L0ZJTEU+CiBXZWJLaXRQb2xpY3lEZWNpc2lvbgogd2Via2l0X3BvbGljeV9kZWNpc2lv
bl9kb3dubG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
d2Via2l0Mi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCmlu
ZGV4IGMxODUzOGE2MzExMTA0MGU0NmJiMjgyZjA2ODBiZDNiYzJmNTY0ZTguLjU4NjJlMWFlMGZh
Yjg3NGI3N2VhZDk4NTUzM2I5ODFhMzQ0M2YxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay93ZWJraXQyLmgKQEAgLTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlIDx3ZWJraXQy
L1dlYktpdFVSSVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlc3BvbnNl
Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg+CisjaW5jbHVk
ZSA8d2Via2l0Mi9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oPgogI2luY2x1ZGUg
PHdlYmtpdDIvV2ViS2l0VmVyc2lvbi5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViQ29u
dGV4dC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViSW5zcGVjdG9yLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDI3Y2QzNTdkMmNjYzUw
ODgxYTQwMjAzNDZmOTBmODkyMmYwNzRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApA
QCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJv
eHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQ
YWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVlc3RzKCkKK3sK
KyAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3BlbmRpbmdSZXF1ZXN0cy52YWx1ZXMoKSkKKyAg
ICAgICAgcmVxdWVzdC0+aW52YWxpZGF0ZSgpOworCisgICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xl
YXIoKTsKK30KKworUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdCh1aW50
NjRfdCB1c2VyTWVkaWFJRCkKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4gcmVxdWVzdCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0
ZSgqdGhpcywgdXNlck1lZGlhSUQpOworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFkZCh1c2VyTWVk
aWFJRCwgcmVxdWVzdC5nZXQoKSk7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQor
Cit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZl
VXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFs
bG93ZWQpCit7CisgICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIGl0ID0gbV9wZW5kaW5nUmVxdWVzdHMuZmluZCh1c2VyTWVkaWFJRCk7CisgICAg
aWYgKGl0ID09IG1fcGVuZGluZ1JlcXVlc3RzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1c2VyTWVk
aWFJRCwgYWxsb3dlZCksIG1fcGFnZS5wYWdlSUQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShhbGxvd2VkKTsKKyNlbmRpZgorCisgICAgbV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGl0KTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc2ZTk0Mzc2MmEwZWFiYTRjNDJiMjQxN2IxZWY1YTQ4YWFlNzhmNDIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFu
eSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CisKKyAgICB2
b2lkIGludmFsaWRhdGVSZXF1ZXN0cygpOworCisgICAgLy8gQ3JlYXRlIGEgcmVxdWVzdCB0byBi
ZSBwcmVzZW50ZWQgdG8gdGhlIHVzZXIuCisgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlEKTsKKwor
ICAgIC8vIENhbGxlZCBieSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IHdoZW4gYSBk
ZWNpc2lvbiBpcyBtYWRlIGJ5IHRoZSB1c2VyLgorICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdyk7CisKK3ByaXZhdGU6Cisg
ICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFk
NmJmMTFkNTM3YmFhY2M3Yjg4MmFhYjRmYTdhNzZjZWExYjJjODMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEg
Uy5MLgorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWlu
dDY0X3QgdXNlck1lZGlhSUQpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fdXNl
ck1lZGlhSUQodXNlck1lZGlhSUQpCit7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6YWxsb3coKQoreworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlh
UGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIHRydWUpOworfQorCit2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkoKQoreworICAgIG1fbWFuYWdlci5kaWRS
ZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIGZhbHNlKTsK
K30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkK
K3sKKyAgICBtX21hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFkODRhODdjYWUzZTc4
NTJhNTcxZjMwODBjZTIxOTBkMzEwZTY2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTAsMCAr
MSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBDb21wYW55IDEwMCBJbmMuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
ICovCisKKyNpZm5kZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eV9oCisjZGVmaW5l
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0
LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OworCitjbGFzcyBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxB
UEk6Ok9iamVjdDo6VHlwZTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBj
cmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVp
bnQ2NF90IHVzZXJNZWRpYUlEKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYUlEKSk7Cisg
ICAgfQorCisgICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgZGVueSgpOworCisgICAgdm9pZCBp
bnZhbGlkYXRlKCk7CisKK3ByaXZhdGU6CisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2NF90IHVz
ZXJNZWRpYUlEKTsKKworICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
JiBtX21hbmFnZXI7CisgICAgdWludDY0X3QgbV91c2VyTWVkaWFJRDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGE0ZWEy
NWVkNmYzODE5YjVkOWMxNTdlMGE5OWI3Y2JjMmYzN2JlMjkuLjFhYmFkNjlkZjFhMGY1NGIyMTJl
NTEyN2NlMzVjZTIzZDFhYjgzZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiUHJpbnRJbmZvLmgiCiAjaW5j
bHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCisjaW5j
bHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgogI2luY2x1ZGUgIldLQ29u
dGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKICNpbmNsdWRl
ICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCkBAIC0yNzksNiArMjgwLDkgQEAgV2ViUGFnZVBy
b3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5
JiBwcm9jZXNzLCB1aW4KICNlbmRpZgogICAgICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcigqdGhpcykKICAgICAsIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKCp0aGlzKQorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgLCBtX3VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKKyNlbmRpZgogICAgICwgbV92aWV3U3Rh
dGUoVmlld1N0YXRlOjpOb0ZsYWdzKQogICAgICwgbV9iYWNrRm9yd2FyZExpc3QoV2ViQmFja0Zv
cndhcmRMaXN0OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9sb2FkU3RhdGVBdFByb2Nlc3NFeGl0
KEZyYW1lTG9hZFN0YXRlOjpTdGF0ZTo6RmluaXNoZWQpCkBAIC00NDcyLDYgKzQ0NzYsMTggQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1
aW50NjRfdCBnZW9sb2NhdGlvbklELAogICAgIHJlcXVlc3QtPmRlbnkoKTsKIH0KIAordm9pZCBX
ZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3Qg
dXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQor
eworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlE
KTsKKyAgICBNRVNTQUdFX0NIRUNLKGZyYW1lKTsKKworICAgIFJlZlB0cjxXZWJTZWN1cml0eU9y
aWdpbj4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcihvcmlnaW5JZGVudGlmaWVyKSk7CisgICAgUmVm
UHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJlcXVlc3QgPSBtX3VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcmVhdGVSZXF1ZXN0KHVzZXJNZWRpYUlEKTsKKwor
ICAgIGlmICghbV91aUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QodGhpcywgZnJhbWUsIG9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkpCisgICAgICAg
IHJlcXVlc3QtPmRlbnkoKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmlj
YXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5T
dHJpbmcpCiB7CiAgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZGE5MTU3MDEzNzgwOTk2NTk5MmJj
MDdkNWJhYjlhZjYwY2Y0MWJiZi4uNjkwZTQ4ZDNjMmMzZWM3NjRhNzM4MjEyYmYxNGVmMWU2NmRj
YjU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDUsNiAr
NDUsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCisjaW5j
bHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRl
ICJWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAj
aW5jbHVkZSAiV0tQYWdlUHJpdmF0ZS5oIgpAQCAtMTAwMyw2ICsxMDA0LDggQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHByaW50RnJhbWUodWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBleGNlZWRl
ZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5
TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2Us
IHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBQ
YXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6
RGVsYXllZFJlcGx5Pik7CiAgICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9y
aWdpbklkZW50aWZpZXIpOworICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdp
bklkZW50aWZpZXIpOworCiAgICAgdm9pZCBydW5Nb2RhbCgpOwogICAgIHZvaWQgbm90aWZ5U2Ny
b2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAg
dm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUp
OwpAQCAtMTMxOSw2ICsxMzIyLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJQcm94eT4gbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKICAgICBHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fZ2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI7CiAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisgICAgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV91c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI7CiAKICAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1fdmlld1N0
YXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgppbmRleCBmNTI2ZjBhYmU0NmNhNDc1NjVhZDczZTY0ODk4MTk4ZmI2MDViOWI4Li40
MGQzNzQyNTRmYmM0MGFjMTNlZWU3YzZlY2MxYjA5ODhlZjI0NGU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0NCw2ICsy
NDQsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgICMgR2VvbG9jYXRpb24gbWVz
c2FnZXMKICAgICBSZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3Qg
Z2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIp
CiAgICAgCisgICAgIyBNZWRpYVN0ZWFtIG1lc3NhZ2VzCisgICAgUmVxdWVzdFVzZXJNZWRpYVBl
cm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwg
U3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCisKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwog
ICAgIFJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3Ry
aW5nIG9yaWdpbklkZW50aWZpZXIpCiAgICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUs
IFN0cmluZyBib2R5LCBTdHJpbmcgaWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmcsIFN0
cmluZyBkaXIsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBub3RpZmljYXRpb25J
RCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zNmEyN2IzM2E4MTJiOGYzMGZiZDAyZmUyYTI2ODg0NjY3ZDM3MzNhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBD
b21wYW55IDEwMCBJbmMuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgi
CisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rv
Y3VtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWVMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHVp
bnQ2NF90IGdlbmVyYXRlUmVxdWVzdElEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVl
UmVxdWVzdElEID0gMTsKKyAgICByZXR1cm4gdW5pcXVlUmVxdWVzdElEKys7Cit9CisKK1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChQYXNzUmVmUHRy
PFVzZXJNZWRpYVJlcXVlc3Q+IHBycFJlcXVlc3QpCit7CisgICAgUmVmUHRyPFVzZXJNZWRpYVJl
cXVlc3Q+IHJlcXVlc3QocHJwUmVxdWVzdCk7CisgICAgdWludDY0X3QgcmVxdWVzdElEID0gZ2Vu
ZXJhdGVSZXF1ZXN0SUQoKTsKKworICAgIG1faWRUb1JlcXVlc3RNYXAuc2V0KHJlcXVlc3RJRCwg
cmVxdWVzdCk7CisgICAgbV9yZXF1ZXN0VG9JRE1hcC5zZXQocmVxdWVzdCwgcmVxdWVzdElEKTsK
KworICAgIC8vIEZJWE1FOiBJbXByb3ZlIHRoZSB3YXkgdG8gZ2V0IHRoZSBXZWJGcmFtZS4KKyAg
ICBGcmFtZSogZnJhbWUgPSByZXF1ZXN0LT5mcmFtZSgpOworICAgIEFTU0VSVChmcmFtZSk7CisK
KyAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQgPSB0b1dlYkZy
YW1lTG9hZGVyQ2xpZW50KGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSk7CisgICAgV2ViRnJhbWUq
IHdlYkZyYW1lID0gd2ViRnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+
d2ViRnJhbWUoKSA6IG51bGxwdHI7CisgICAgQVNTRVJUKHdlYkZyYW1lKTsKKworICAgIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdFVz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZShyZXF1ZXN0SUQsIHdlYkZyYW1lLT5mcmFtZUlEKCks
IG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCkpKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCogcmVx
dWVzdCkKK3sKKyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBtX3JlcXVlc3RUb0lETWFwLnRha2Uo
cmVxdWVzdCk7CisgICAgaWYgKCFyZXF1ZXN0SUQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2lk
VG9SZXF1ZXN0TWFwLnJlbW92ZShyZXF1ZXN0SUQpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lv
bih1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBSZWZQdHI8VXNlck1l
ZGlhUmVxdWVzdD4gcmVxdWVzdCA9IG1faWRUb1JlcXVlc3RNYXAudGFrZShyZXF1ZXN0SUQpOwor
ICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fcmVxdWVzdFRvSURNYXAu
cmVtb3ZlKHJlcXVlc3QpOworCisgICAgaWYgKGFsbG93ZWQpCisgICAgICAgIHJlcXVlc3QtPnVz
ZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBlbHNlCisgICAgICAgIHJlcXVlc3QtPnVzZXJN
ZWRpYUFjY2Vzc0RlbmllZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjNmN2Q0N2ZjNzA1MDQ1ZTk2MTM5ZTMzNTM1
YmRlMjM1OWY0NTg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApAQCAtMCww
ICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNB
CisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorI2Rl
ZmluZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgorI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBVc2VyTWVkaWFSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIoV2ViUGFnZSYpOworCisgICAgdm9pZCBzdGFydFJlcXVlc3QoUGFzc1JlZlB0
cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pik7CisgICAgdm9pZCBjYW5jZWxSZXF1ZXN0KFdl
YkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKTsK
KworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0Pj4gSURUb1JlcXVlc3RNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFw
PFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0PiwgdWludDY0X3Q+IFJlcXVlc3RUb0lE
TWFwOworICAgIElEVG9SZXF1ZXN0TWFwIG1faWRUb1JlcXVlc3RNYXA7CisgICAgUmVxdWVzdFRv
SURNYXAgbV9yZXF1ZXN0VG9JRE1hcDsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2VuZGlmIC8vIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVz
ZXJNZWRpYUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWMzZDZlMzI1OGViMWYzNTU3OTk0MDYzMjM4
ZjcxYTU4MWZiNjIxZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcApAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJV
c2VyTWVkaWFDbGllbnQuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRl
ICJVc2VyTWVkaWFDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdC5oIgor
I2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYVJlcXVlc3Qu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitX
ZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVzZXJNZWRpYUNsaWVudChXZWJQYWdlJiBwYWdlKQorICAg
IDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK1dlYlVzZXJNZWRpYUNsaWVudDo6fldlYlVzZXJNZWRp
YUNsaWVudCgpCit7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVk
KCkKK3sKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnJl
cXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCkKK3sK
KyAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuc3RhcnRSZXF1
ZXN0KHJlcXVlc3QpOworfQorCit2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsUmVxdWVz
dChVc2VyTWVkaWFSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIG1fcGFnZS51c2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxSZXF1ZXN0KHJlcXVlc3QpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQ7CisKKyNlbmRpZiAvLyBNRURJQV9TVFJFQU0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJN
ZWRpYUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwOTY5YWYxODIyZTFhNjFhMDNmZDI0MmJmZmIxZjg2
NzFhNzMxODIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCisgKi8KKworI2lmbmRlZiBXZWJVc2VyTWVkaWFDbGllbnRfaAorI2RlZmluZSBXZWJV
c2VyTWVkaWFDbGllbnRfaAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxX
ZWJDb3JlL1VzZXJNZWRpYUNsaWVudC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Citu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViVXNlck1lZGlh
Q2xpZW50IDogcHVibGljIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudCB7CitwdWJsaWM6CisgICAg
V2ViVXNlck1lZGlhQ2xpZW50KFdlYlBhZ2UmKTsKKyAgICB2aXJ0dWFsIH5XZWJVc2VyTWVkaWFD
bGllbnQoKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpOwor
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFdlYkNvcmU6OlVz
ZXJNZWRpYVJlcXVlc3Q+KTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0Kik7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisj
ZW5kaWYgLy8gV2ViVXNlck1lZGlhQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAyYmIxYmU1M2U1YzVkMzRlNjZmZjk2NWM3NWQ0
ZWJlMDg1OTdmNWZlLi4zM2ZjZDUzYzY2YzJkODEyZWY4YWExM2M4NGRhODY2NGMxMDZlZTlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05
NSw2ICs5NSw3IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiV2ViVW5kb1N0ZXAuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcmNoaXZlUmVzb3VyY2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgpAQCAtMjc3LDYgKzI3OCw5IEBAIFdlYlBhZ2U6Oldl
YlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzKQogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICAsIG1fZ2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIodGhpcykKICNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykK
KyNlbmRpZgogICAgICwgbV9jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwocGFyYW1ldGVy
cy5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpCiAgICAgLCBtX2NhblJ1bk1vZGFsKHBh
cmFtZXRlcnMuY2FuUnVuTW9kYWwpCiAgICAgLCBtX2lzUnVubmluZ01vZGFsKGZhbHNlKQpAQCAt
MzgyLDYgKzM4Niw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShQUk9YSU1J
VFlfRVZFTlRTKQogICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VQcm94aW1pdHlUbyhtX3BhZ2Uu
Z2V0KCksIG5ldyBXZWJEZXZpY2VQcm94aW1pdHlDbGllbnQodGhpcykpOwogI2VuZGlmCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJDb3JlOjpwcm92aWRlVXNlck1lZGlhVG8obV9w
YWdlLmdldCgpLCBuZXcgV2ViVXNlck1lZGlhQ2xpZW50KCp0aGlzKSk7CisjZW5kaWYKIAogI2lm
IEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgIG1fcGFnZS0+c2V0UmVtb3RlSW5zcGVjdGlv
bkFsbG93ZWQodHJ1ZSk7CkBAIC0zMTU5LDYgKzMxNjYsMTMgQEAgdm9pZCBXZWJQYWdlOjpkaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklELAogICAgIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5kaWRSZWNl
aXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKG5vdGlmaWNhdGlvbklELCBhbGxvd2Vk
KTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wg
YWxsb3dlZCkKK3sKKyAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5kaWRS
ZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkKTsK
K30KKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKElPUykKIHZvaWQgV2ViUGFnZTo6YWR2YW5jZVRv
TmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBiMGU4M2I3NzMzZDljNzRl
Njk4ZDQxNDAxMGNhNGJiYTM4ODBjMGZkLi43NmY1NjQ0NzNjYTMzMTg4MDI2YmExZTFjZGM2ZDI5
NzJhMDZmNjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKQEAgLTEwMyw2ICsxMDMsMTAgQEAgT0JKQ19DTEFTUyBXS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0OwogI2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklT
VElDIDEKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpbmNsdWRlICJVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJ
IHsKIGNsYXNzIEFycmF5OwogfQpAQCAtNDUxLDYgKzQ1NSwxMCBAQCBwdWJsaWM6CiAgICAgR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXImIGdlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKCkgeyByZXR1cm4gbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKCkgeyByZXR1cm4gbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0KKyNl
bmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBzY3JlZW5T
aXplKCkgY29uc3Q7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUo
KSBjb25zdDsKQEAgLTEwMTAsNiArMTAxOCwxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklELCBib29sIGFsbG93ZWQpOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2b2lk
IGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlh
SUQsIGJvb2wgYWxsb3dlZCk7CisjZW5kaWYKKwogICAgIHZvaWQgYWR2YW5jZVRvTmV4dE1pc3Nw
ZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pOwogICAgIHZvaWQgY2hhbmdlU3BlbGxp
bmdUb1dvcmQoY29uc3QgU3RyaW5nJiB3b3JkKTsKICNpZiBVU0UoQVBQS0lUKQpAQCAtMTE3Niw2
ICsxMTg4LDEwIEBAIHByaXZhdGU6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICNlbmRpZgogCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisjZW5kaWYKKwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQcmludENvbnRleHQ+IG1fcHJpbnRDb250ZXh0Owog
I2lmIFBMQVRGT1JNKEdUSykKICAgICBSZWZQdHI8V2ViUHJpbnRPcGVyYXRpb25HdGs+IG1fcHJp
bnRPcGVyYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDJkMTIyNzQ1MTk0YWNlZTVlNmY5MzQ4M2E0OTNl
MzM2ZTE3Y2Y4NjYuLjgxNzcxNDNlYzE5MzVmZGEwNjA2OWZmNTRiNDVmNjg3NzFmMTU0ODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCkBAIC0yNjEsNiArMjYxLDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5
UmVjZWl2ZXIgewogICAgIERpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1
aW50NjRfdCBnZW9sb2NhdGlvbklELCBib29sIGFsbG93ZWQpCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgIyBNZWRpYVN0ZWFtCisgICAgRGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQor
I2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDM0
YzMxZWNhMjNjNjY3OGMyM2UxNzk2MTk2NTNkY2E1ZTY3MDkzNjguLmUwOWFhOTg2NzRkNWYxMTJm
NWZlOGY4MWY1ZDY0MGUwNzM0NjUwYWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxNC0wNS0xMiAgU2VvbmdqdW4g
S2ltICA8aXNBaXJAY29tcGFueTEwMC5jb20+CisKKyAgICAgICAgW1dLMl0gVXNlck1lZGlhQ2xp
ZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFN1cHBvcnQgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IGluIFdlYktpdDIuIEl0
J3MgaW1wbGVtZW50ZWQKKyAgICAgICAgc2ltaWxhcmlseSB0byB0aGUgR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdCBzdXBwb3J0LiBXaGVuIHRoZQorICAgICAgICBXZWJQYWdlIHJlcXVpcmVz
IHRoaXMgcGVybWlzc2lvbiBpdCBzZW5kcyBhIG1lc3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3MKKyAg
ICAgICAgd2hpY2ggYXQgc29tZSBwb2ludCBncmFudHMgb3IgZGVuaWVzIHRoZSBwZXJtaXNzaW9u
IGFuZCBzZW5kIHRoZQorICAgICAgICByZXN1bHQgdG8gdGhlIFdlYlByb2Nlc3MuCisKKyAgICAg
ICAgUGF0Y2ggYmFzZWQgb24gd29yayBwcmV2aW91c2x5IGRvbmUgYnkgUGhpbGlwcGUgTm9ybWFu
ZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4uCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJv
d3NlcldpbmRvdy5jOiBTaG93IGEgcG9wdXAgd2hlbiB0aGUgcGFnZSByZXF1aXJlcworICAgICAg
ICB1c2VyIHBlcm1pc3Npb24gdG8gYWNjZXNzIGF1ZGlvL3ZpZGVvIGRldmljZXMuCisgICAgICAg
IChwZXJtaXNzaW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKToKKyAgICAgICAgKHdlYlZpZXdEZWNp
ZGVQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChnZW9sb2NhdGlvblJlcXVlc3REaWFsb2dD
YWxsYmFjayk6IERlbGV0ZWQuCisKIDIwMTQtMDYtMjEgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5n
LmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBEaXNhYmxlIGdhbWVwYWQgZmVhdHVyZSBvbiBF
RkwgYW5kIEdUSyBwb3J0cyBieSBkZWZhdWx0CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nl
ci9ndGsvQnJvd3NlcldpbmRvdy5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5k
b3cuYwppbmRleCA0Mzc0NzczM2ZmOWE1MjQwMzkxZGUwM2RlZjAzMjU0MWZmYjNlZmUzLi4wNzhh
NDFjOGYwMjkwMzZlMmQ3MzMyODgwOGNjOGI3NWVkNWZiMTU2IDEwMDY0NAotLS0gYS9Ub29scy9N
aW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0
ay9Ccm93c2VyV2luZG93LmMKQEAgLTI1Myw3ICsyNTMsNyBAQCBzdGF0aWMgdm9pZCBiYWNrRm9y
d2FkbGlzdENoYW5nZWQoV2ViS2l0QmFja0ZvcndhcmRMaXN0ICpiYWNrRm9yd2FkbGlzdCwgV2Vi
S2l0QgogICAgIGJyb3dzZXJXaW5kb3dVcGRhdGVOYXZpZ2F0aW9uQWN0aW9ucyh3aW5kb3csIGJh
Y2tGb3J3YWRsaXN0KTsKIH0KIAotc3RhdGljIHZvaWQgZ2VvbG9jYXRpb25SZXF1ZXN0RGlhbG9n
Q2FsbGJhY2soR3RrRGlhbG9nICpkaWFsb2csIGdpbnQgcmVzcG9uc2UsIFdlYktpdFBlcm1pc3Np
b25SZXF1ZXN0ICpyZXF1ZXN0KQorc3RhdGljIHZvaWQgcGVybWlzc2lvblJlcXVlc3REaWFsb2dD
YWxsYmFjayhHdGtEaWFsb2cgKmRpYWxvZywgZ2ludCByZXNwb25zZSwgV2ViS2l0UGVybWlzc2lv
blJlcXVlc3QgKnJlcXVlc3QpCiB7CiAgICAgc3dpdGNoIChyZXNwb25zZSkgewogICAgIGNhc2Ug
R1RLX1JFU1BPTlNFX1lFUzoKQEAgLTQwNiwxOSArNDA2LDI3IEBAIHN0YXRpYyBnYm9vbGVhbiB3
ZWJWaWV3RGVjaWRlUG9saWN5KFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIFdlYktpdFBvbGljeURl
Y2lzaW9uCiAKIHN0YXRpYyBnYm9vbGVhbiB3ZWJWaWV3RGVjaWRlUGVybWlzc2lvblJlcXVlc3Qo
V2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3Qs
IEJyb3dzZXJXaW5kb3cgKndpbmRvdykKIHsKLSAgICBpZiAoIVdFQktJVF9JU19HRU9MT0NBVElP
Tl9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpCisgICAgZ2NoYXIgKmRpYWxvZ190aXRsZSA9
IE5VTEw7CisgICAgZ2NoYXIgKmRpYWxvZ19tZXNzYWdlID0gTlVMTDsKKworICAgIGlmIChXRUJL
SVRfSVNfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKSB7CisgICAgICAg
IGRpYWxvZ190aXRsZSA9ICJHZW9sb2NhdGlvbiByZXF1ZXN0IjsKKyAgICAgICAgZGlhbG9nX21l
c3NhZ2UgPSAiQWxsb3cgZ2VvbG9jYXRpb24gcmVxdWVzdD8iOworICAgIH0gZWxzZSBpZiAoV0VC
S0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKSB7CisgICAgICAg
IGRpYWxvZ190aXRsZSA9ICJVc2VyTWVkaWEgcmVxdWVzdCI7CisgICAgICAgIGRpYWxvZ19tZXNz
YWdlID0gIkFsbG93IHVzZXIgbWVkaWEgcmVxdWVzdD8iOworICAgIH0gZWxzZQogICAgICAgICBy
ZXR1cm4gRkFMU0U7CiAKICAgICBHdGtXaWRnZXQgKmRpYWxvZyA9IGd0a19tZXNzYWdlX2RpYWxv
Z19uZXcoR1RLX1dJTkRPVyh3aW5kb3cpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHVEtfRElBTE9HX01PREFMIHwgR1RLX0RJQUxPR19ERVNUUk9ZX1dJ
VEhfUEFSRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHVEtfTUVTU0FHRV9RVUVTVElPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR1RLX0JVVFRPTlNfWUVTX05PLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiR2VvbG9jYXRpb24gcmVxdWVzdCIpOworICAgICAg
ICBHVEtfRElBTE9HX01PREFMIHwgR1RLX0RJQUxPR19ERVNUUk9ZX1dJVEhfUEFSRU5ULAorICAg
ICAgICBHVEtfTUVTU0FHRV9RVUVTVElPTiwKKyAgICAgICAgR1RLX0JVVFRPTlNfWUVTX05PLAor
ICAgICAgICAiJXMiLCBkaWFsb2dfdGl0bGUpOwogCi0gICAgZ3RrX21lc3NhZ2VfZGlhbG9nX2Zv
cm1hdF9zZWNvbmRhcnlfdGV4dChHVEtfTUVTU0FHRV9ESUFMT0coZGlhbG9nKSwgIkFsbG93IGdl
b2xvY2F0aW9uIHJlcXVlc3Q/Iik7Ci0gICAgZ19zaWduYWxfY29ubmVjdChkaWFsb2csICJyZXNw
b25zZSIsIEdfQ0FMTEJBQ0soZ2VvbG9jYXRpb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2spLCBnX29i
amVjdF9yZWYocmVxdWVzdCkpOworICAgIGd0a19tZXNzYWdlX2RpYWxvZ19mb3JtYXRfc2Vjb25k
YXJ5X3RleHQoR1RLX01FU1NBR0VfRElBTE9HKGRpYWxvZyksICIlcyIsIGRpYWxvZ19tZXNzYWdl
KTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGRpYWxvZywgInJlc3BvbnNlIiwgR19DQUxMQkFDSyhw
ZXJtaXNzaW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJlcXVlc3QpKTsK
ICAgICBndGtfd2lkZ2V0X3Nob3coZGlhbG9nKTsKLQogICAgIHJldHVybiBUUlVFOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233672</attachid>
            <date>2014-06-23 20:06:45 -0700</date>
            <delta_ts>2014-09-02 00:48:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123158-20140624120623.patch</filename>
            <type>text/plain</type>
            <size>68991</size>
            <attacher name="Seongjun Kim">isair</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2UwNjI0YzViZmU5YWE3
OWM1NDAwYWEwMmUyMjAyYzkwN2FkNTU4Yy4uZTYyN2VmNTViMmFjODZjYjk5YTgxYzYyYTRhMzgw
Y2Q4YzI2YmEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA1LTEyICBTZW9u
Z2p1biBLaW0gIDxpc0FpckBjb21wYW55MTAwLmNvbT4KKworICAgICAgICBbV0syXSBVc2VyTWVk
aWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3VwcG9ydCBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgaW4gV2ViS2l0
Mi4gSXQncyBpbXBsZW1lbnRlZAorICAgICAgICBzaW1pbGFyaWx5IHRvIHRoZSBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0IHN1cHBvcnQuIFdoZW4gdGhlCisgICAgICAgIFdlYlBhZ2UgcmVx
dWlyZXMgdGhpcyBwZXJtaXNzaW9uIGl0IHNlbmRzIGEgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2Vz
cworICAgICAgICB3aGljaCBhdCBzb21lIHBvaW50IGdyYW50cyBvciBkZW5pZXMgdGhlIHBlcm1p
c3Npb24gYW5kIHNlbmQgdGhlCisgICAgICAgIHJlc3VsdCB0byB0aGUgV2ViUHJvY2Vzcy4KKwor
ICAgICAgICBQYXRjaCBiYXNlZCBvbiB3b3JrIHByZXZpb3VzbHkgZG9uZSBieSBQaGlsaXBwZSBO
b3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPi4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6IEFkZGVkIGRvY3VtZW50IGFuZAorICAgICAgICBm
cmFtZSBhY2Nlc3NvcnMsIG5lZWRlZCBieSB0aGUgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIgb2Yg
dGhlCisgICAgICAgIFdlYlByb2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1
ZXN0Ojpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpmcmFt
ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVy
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQ2VudGVyR1N0cmVh
bWVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6Y3JlYXRlTWVkaWFTdHJlYW0pOgorCiAyMDE0LTA2LTIz
ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBVc2UgV2Vi
R0xMYXllciByYXRoZXIgdGhhbiBQbGF0Zm9ybUxheWVyIGluIEdyYXBoaWNzQ29udGV4dDNECmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggYmE4ODNjZTZhMWUzYjc4YjczZDcyNjRjZGIzNTIzNDc4NTViZDM0OS4uMWE1
NjYxN2Y0MDBlYzVhOGZjNDI1ZDFkNDFhNDU5M2UzN2U4YjMzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDk3IEBACisyMDE0LTA1LTEyICBTZW9uZ2p1biBLaW0gIDxpc0FpckBjb21wYW55MTAwLmNv
bT4KKworICAgICAgICBbV0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QgaW4gV2ViS2l0Mi4gSXQncyBpbXBsZW1lbnRlZAorICAgICAgICBz
aW1pbGFyaWx5IHRvIHRoZSBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0IHN1cHBvcnQuIFdo
ZW4gdGhlCisgICAgICAgIFdlYlBhZ2UgcmVxdWlyZXMgdGhpcyBwZXJtaXNzaW9uIGl0IHNlbmRz
IGEgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2VzcworICAgICAgICB3aGljaCBhdCBzb21lIHBvaW50
IGdyYW50cyBvciBkZW5pZXMgdGhlIHBlcm1pc3Npb24gYW5kIHNlbmQgdGhlCisgICAgICAgIHJl
c3VsdCB0byB0aGUgV2ViUHJvY2Vzcy4KKworICAgICAgICBQYXRjaCBiYXNlZCBvbiB3b3JrIHBy
ZXZpb3VzbHkgZG9uZSBieSBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPi4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBOZXcgTWVkaWFTdHJlYW0gZGlyZWN0b3J5IGFu
ZCBmaWxlcy4KKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZTogRGl0dG8uCisgICAgICAgICog
U2hhcmVkL0FQSS9jL1dLQmFzZS5oOiBOZXcgdHlwZSBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuCisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOiBEaXR0by4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOiBGb3J3YXJkLWRlY2xhcmUgdGhlIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6
IE5ldyBEZWNpZGVQb2xpY3kgaGFuZGxlciBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VVSUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQsIEMgQVBJIGltcGxlbWVudGF0aW9uIG9m
CisgICAgICAgIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAgICAgKFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQpOgorICAgICAgICAoV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEFsbG93KToKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3REZW55KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
SUNsaWVudC5jcHA6IERlY2lkZVBvbGljeSBoYW5kbGVyIGltcGxlbWVudGF0aW9uIGZvcgorICAg
ICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAgICAgKGRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTogRGVmZXIgcGVybWlzc2lvbiByZXF1ZXN0IHRv
IEFQSUNsaWVudC4KKyAgICAgICAgKGF0dGFjaFVJQ2xpZW50VG9WaWV3KTogVXBncmFkZSB0aGUg
dmVyc2lvbiBvZiBVSUNsaWVudCB0byAzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQsIFdlYktpdEdUSyBBUEkg
Zm9yCisgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCB2ZXJ5IHNpbWlsYXIgdG8g
dGhlIG9uZSB1c2VkIGZvciBHZW9sb2NhdGlvbi4KKyAgICAgICAgKHdlYmtpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0QWxsb3cpOgorICAgICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3REZW55KToKKyAgICAgICAgKHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJm
YWNlX2luaXQpOgorICAgICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REaXNw
b3NlKToKKyAgICAgICAgKHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9jbGFz
c19pbml0KToKKyAgICAgICAgKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBFeHBvc2UgbmV3IEFQSSBp
biBkb2N1bWVudGF0aW9uLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaDog
RXhwb3NlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IEFQSS4KKyAgICAgICAgKiBVSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOiBBZGRlZCwgbWFu
YWdlciBzdG9yaW5nIHBlbmRpbmcKKyAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvbiByZXF1ZXN0
cy4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVS
ZXF1ZXN0cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9u
RGVjaXNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5jcHA6IEFkZGVkLCBwcm94eSBvYmplY3QgZm9yIHRoZQorICAg
ICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFR5cGUuCisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk6OmRlbnkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yRnJhbWUpOiBEZWZlciBVc2VyUGVybWlzc2lvblJlcXVlc3QgdG8KKyAgICAgICAgdGhlIFVJ
Q2xpZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBOZXcgbWVzc2FnZSB0byBoYW5kbGUg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFT
dHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDogQWRkZWQsIFdlYlBy
b2Nlc3Mgc2lkZSBvZgorICAgICAgICB0aGUgVXNlclJlcXVlc3RNYW5hZ2VyLCBrZWVwaW5nIHRy
YWNrIG9mIGVhY2ggcGVybWlzc2lvbiByZXF1ZXN0LgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0
ZVJlcXVlc3RJRCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNl
bFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1l
ZGlhQ2xpZW50LmNwcDogQWRkZWQsIFdlYlByb2Nlc3MgaW1wbGVtZW50YXRpb24gb2YgdGhlCisg
ICAgICAgIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6V2ViVXNl
ck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJV
c2VyTWVkaWFDbGllbnQ6On5XZWJVc2VyTWVkaWFDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJV
c2VyTWVkaWFDbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Oldl
YlBhZ2UpOiBDcmVhdGUgdGhlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciBhbmQg
cmVnaXN0ZXIgdGhlCisgICAgICAgIFVzZXJNZWRpYUNsaWVudCB0byB0aGUgcGFnZS4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lv
bik6IERpc3BhdGNoIGRlY2lzaW9uIHRvIG1hbmFnZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbjogTmV3IE1lc3NhZ2UgdG8gaGFuZGxlIHBlcm1pc3Npb24gZGVjaXNp
b24gcmVzdWx0CisgICAgICAgIGZyb20gdGhlIFVJIHByb2Nlc3MuCisKIDIwMTQtMDYtMjMgIEd3
YW5nIFlvb24gSHdhbmcgIDx5b29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
R1RLIGJ1aWxkIGZpeCBhZnRlciByMTcwMjc0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggZTQzOGQzNWEy
ZDdiZDIyMjVhNmY0YTdhNzc5N2JjZWU2YmVlY2MzMi4uNzEwMGVkNjkzZDBmODAzM2M3ZDMyYTYw
OTRjMDM2N2JjOTIxNjRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5j
bHVkZSAiRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTWVkaWFDb25zdHJh
aW50c0ltcGwuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgogI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtQ2VudGVyLmgiCkBAIC0xMDEsNiArMTAyLDE2IEBAIFVzZXJNZWRpYVJlcXVlc3Q6On5Vc2Vy
TWVkaWFSZXF1ZXN0KCkKIHsKIH0KIAorRG9jdW1lbnQqIFVzZXJNZWRpYVJlcXVlc3Q6OmRvY3Vt
ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpOworfQorCitGcmFtZSogVXNlck1lZGlhUmVxdWVzdDo6ZnJhbWUoKSBjb25zdAorewor
ICAgIHJldHVybiBkb2N1bWVudCgpID8gZG9jdW1lbnQoKS0+ZnJhbWUoKSA6IG51bGxwdHI7Cit9
CisKIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1ZXN0OjpzZWN1cml0eU9yaWdpbigpIGNv
bnN0CiB7CiAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXgg
NmFkMjBmZTA2NzUzMzEyNTM4YmRhMjgzZDA1YmU0MjVhODM3ZDc4YS4uMzk0MjdiNmNkNWEzNjQx
ZTRmZmIyMTM2OWQ4ZjlkZjAxYmRjNzdiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaWN0aW9uYXJ5OwogY2xhc3MgRG9jdW1lbnQ7
CitjbGFzcyBGcmFtZTsKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBNZWRpYVN0cmVh
bVByaXZhdGU7CiBjbGFzcyBVc2VyTWVkaWFDb250cm9sbGVyOwpAQCAtNjAsNiArNjEsOSBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBVc2VyTWVkaWFDb250cm9sbGVyKiwgY29uc3QgRGljdGlv
bmFyeSYgb3B0aW9ucywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJh
Y2s+LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+LCBFeGNlcHRp
b25Db2RlJik7CiAgICAgflVzZXJNZWRpYVJlcXVlc3QoKTsKIAorICAgIERvY3VtZW50KiBkb2N1
bWVudCgpIGNvbnN0OworICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OworCiAgICAgU2VjdXJpdHlP
cmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2b2lkIHN0YXJ0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVk
aWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcAppbmRleCBj
ZWRiMDM5NzM1OTIzMDMxYjdhOTliNzc2NmYwOThjOGQ0OTAyMTUxLi5mN2NjNzNjMGI3MDMyYzNj
YzU2ZDQ0YTk3YzRjYTY0OWQwOGUzZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRp
YVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAKQEAgLTU5LDE0ICs1OSwyMCBAQCBNZWRpYVN0cmVh
bUNlbnRlckdTdHJlYW1lcjo6fk1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyKCkKIHsKIH0KIAot
dm9pZCBNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWlu
dHMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiwgUGFzc1JlZlB0cjxNZWRp
YUNvbnN0cmFpbnRzPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikKK3ZvaWQgTWVkaWFT
dHJlYW1DZW50ZXJHU3RyZWFtZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQ
dHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudD4gY2xpZW50LCBQYXNzUmVmUHRyPE1lZGlhQ29u
c3RyYWludHM+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgQVNTRVJUKGNsaWVudCk7CisKKyAgICAvLyBGSVhNRTogVmFsaWRhdGUg
dmlkZW8gYW5kIGF1ZGlvIGNvbnN0cmFpbnRzCisgICAgY2xpZW50LT5jb25zdHJhaW50c1ZhbGlk
YXRlZCgpOwogfQotICAgIAotdm9pZCBNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6Y3JlYXRl
TWVkaWFTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiwgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikKKwor
dm9pZCBNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6Y3JlYXRlTWVkaWFTdHJlYW0oUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiBjbGllbnQsIFBhc3NSZWZQdHI8TWVkaWFD
b25zdHJhaW50cz4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pCiB7Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICBBU1NFUlQoY2xpZW50KTsKKworICAgIC8vIEZJWE1FOiBBcHBseSB2
aWRlbyBhbmQgYXVkaW8gY29uc3RyYWludHMKKyAgICBjbGllbnQtPmZhaWxlZFRvQ3JlYXRlU3Ry
ZWFtV2l0aFBlcm1pc3Npb25FcnJvcigpOwogfQogCiBib29sIE1lZGlhU3RyZWFtQ2VudGVyR1N0
cmVhbWVyOjpnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudD4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IDBmYTk0
OTg4OWM3MGQ2ZjdiNjQ0MDBkYWI2MDM0MzJiMzg4MDU2YTQuLmMyMDI1YjQ4MDZmMmQzYzUxNmVm
MDFmODkxNzY2ZGQ0MDI2ZTMzOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC00OSw2ICs0OSw3
IEBAIHNldChXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0v
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00iCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvTGF1bmNoaW5nIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL01lZGlhQ2Fj
aGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0iCiAgICAgIiR7
V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTmV0d29yayIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL09y
aWdpbkRhdGEiCkBAIC0zMDIsNiArMzAzLDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJ
UHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAogICAgIFVJUHJvY2Vzcy9TdGF0aXN0aWNz
UmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcAorICAg
IFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKyAg
ICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKICAgICBVSVBy
b2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0
LmNwcApAQCAtMzg4LDYgKzM5MSw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVz
b3VyY2VDYWNoZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIu
Y3BwCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlicmF0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5jcHAKIApAQCAtNDg0LDYgKzQ4OCw4IEBAIHNldChXZWJL
aXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFu
YWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcAorCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmNwcAogICAgIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTUzNSw2ICs1NDEsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJWaWJyYXRpb25DbGllbnQuY3BwCiAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvRGVj
b2RlckFkYXB0ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5j
bWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDc2NDlmMTRkOTdj
OTYyNDA1NDdlNjExYmM5NGQxODMxMmZkMjExOWMuLjMyOWU5ODMwYjhlN2ZhMmMxMGUxYzUyNWNj
ZmMzYTU5NmU0OWEyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0yMDcsNiArMjA3
LDkgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
UklTY2hlbWVSZXF1ZXN0LmgKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVS
ZXF1ZXN0UHJpdmF0ZS5oCisgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuaAorICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VmVyc2lvbi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRWZXJzaW9uLmguaW4KICAg
ICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMzQ5LDYgKzM1Miw3
IEBAIHNldChXZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5oCiAgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9uc2UuaAogICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmgKICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0
LmgKICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJJbnNwZWN0
b3IuaAogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlJlc291
cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCA4ZDFlOTY1ZDVjNGFl
MWZhOWU1OWY0NTNkOTYyZjQ4YTJiYmM4Y2Q5Li4xMWVjNTQ4ZGVlYTk4ZWU0ZDFmYmUzZDRmMDZh
MDczYjk2MDJjY2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tC
YXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xMjcs
NiArMTI3LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90ZWN0aW9uU3BhY2Uq
IFdLUHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tUZXh0
Q2hlY2tlciogV0tUZXh0Q2hlY2tlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
U2Vzc2lvbiogV0tTZXNzaW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTZXNz
aW9uU3RhdGUqIFdLU2Vzc2lvblN0YXRlUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlicmF0aW9uKiBXS1ZpYnJhdGlv
blJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlld3BvcnRBdHRyaWJ1dGVzKiBX
S1ZpZXdwb3J0QXR0cmlidXRlc1JlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4
IDZkZjQ5MTgzZDJiYzQ2MjY1Y2MwOWY3YjVkNTc0YTA3YjNjMGM1OTIuLjMxMTJlZTllODY4ZjFm
Zjg3NjJlMjM4NjBmMTdmYzFkYWEzMjFkNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgK
QEAgLTEzMiw2ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIFByZWZlcmVuY2VzLAogICAgICAg
ICBTZXNzaW9uLAogICAgICAgICBUZXh0Q2hlY2tlciwKKyAgICAgICAgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QsCiAgICAgICAgIFZpYnJhdGlvbiwKICAgICAgICAgVmlld3BvcnRBdHRyaWJ1
dGVzLAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXgg
OWZmMDA5NGU3M2Q3OWZjNWVkZTA0ZjYwMjM3NGU0NmY0N2NkMmRlNi4uMjU1NGJkNTJhZWQ2Mzcw
ODRmY2E2Yzk3YjhmMTBkMGFhMWYxNjAyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaApAQCAtNTAsNiArNTAsNyBAQCBjbGFzcyBJbW11dGFibGVEaWN0aW9u
YXJ5OwogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldoZWVs
RXZlbnQ7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKK2NsYXNzIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyUHJveHk7CiBjbGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3MgV2ViT3BlblBhbmVsUGFy
YW1ldGVyczsKQEAgLTExNyw2ICsxMTgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wg
cnVuT3BlblBhbmVsKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5
KiwgV2ViS2l0OjpXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViS2l0OjpXZWJPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lclByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBh
Z2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6V2ViU2VjdXJpdHlPcmln
aW4qLCBXZWJLaXQ6Okdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eSopIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5
KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGRlY2lk
ZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVBy
b3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6Tm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QqKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gUHJpbnRpbmcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggODAyMjFhOTFi
MmY5MTYzNTUyOTliYzI1ZjJkMGYxYzgwMTk0N2MyYy4uNWY0NGE2OTI1MjNiOGNkODc4ZWNiMDBj
OTExNmJhZmEzZDNlYmY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaApAQCAtNjMsNiArNjMsNyBAQCBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlz
dGVuZXI7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdFByb3h5OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CitjbGFz
cyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW07CkBAIC0xNDYsNiArMTQ3LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5H
KFdLUmVuZGVyTGF5ZXJSZWYsIFdlYlJlbmRlckxheWVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdL
UmVuZGVyT2JqZWN0UmVmLCBXZWJSZW5kZXJPYmplY3QpCiBXS19BRERfQVBJX01BUFBJTkcoV0tT
ZXNzaW9uU3RhdGVSZWYsIEFQSTo6U2Vzc2lvblN0YXRlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdL
VGV4dENoZWNrZXJSZWYsIFdlYlRleHRDaGVja2VyKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tWaWJyYXRpb25SZWYsIFdlYlZpYnJhdGlvblByb3h5
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmLCBXZWJWaWV3cG9y
dEF0dHJpYnV0ZXMpCiBXS19BRERfQVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYsIFdlYkluc3Bl
Y3RvclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRl
eCBjMDlhMDJkODQ5YzZkMjJkZDE2YWZiMzRhMTg2NDhmYmQyNGEzY2MxLi4wNDVlNWVkYjJiZjMx
ODI0MDNhNjI3OTIxOTkzMDY2MDgyZmYxYTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcApAQCAtMTQ2NCw2ICsxNDY0LDE1IEBAIHZvaWQgV0tQYWdlU2V0UGFn
ZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdr
Q2xpZW50CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCisgICAgICAgIHZp
cnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQ
YWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXZWJTZWN1cml0eU9yaWdpbiog
b3JpZ2luLCAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogcGVybWlzc2lvblJlcXVl
c3QpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdCh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShvcmln
aW4pLCB0b0FQSShwZXJtaXNzaW9uUmVxdWVzdCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdl
UHJveHkqIHBhZ2UsIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCkgb3ZlcnJpZGUKICAgICAgICAgewogICAg
ICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJ
Q2xpZW50LmgKaW5kZXggZmU2Njg2OWI5MzQzMzU5NjlhMGVmOWEwZWJlYTJmMzM0NmQxY2Y2Zi4u
NzNlNjNlOThmMGMzNzA1NGE5NzM0YjFmOGE3NWRkYjhkYjA0MjM3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTg2LDYgKzg2LDcg
QEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBXS1N0cmluZ1JlZiBpbml0aWEKIHR5cGVkZWYgdm9pZCAoKldLUGFnZUhpZGVDb2xv
clBpY2tlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2lu
VW5hdmFpbGFiaWxpdHlSZWFzb24sIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZvRGljdGlvbmFy
eSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VQaW5uZWRT
dGF0ZURpZENoYW5nZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwg
V0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RS
ZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiAvLyBEZXBy
ZWNhdGVkICAgIAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJh
Y2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJl
ZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRv
biBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0zMDcsNiArMzA4LDcg
QEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMyB7CiAKICAgICAvLyBWZXJzaW9uIDMu
CiAgICAgV0tQYWdlUGlubmVkU3RhdGVEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwaW5uZWRTdGF0ZURpZENoYW5nZTsKKyAgICBXS1BhZ2VEZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgIGRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OwogfSBXS1BhZ2VVSUNsaWVu
dFYzOwogCiBlbnVtIHsga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb24gV0tfRU5VTV9ERVBS
RUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lvbiBudW1iZXIgaW5zdGVhZCIpID0gMiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlZTJmYmI4NDkwMTBkNDNm
NjVjMGYyYjk0MWVhNGYxODQ1ZDA3MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTAs
MCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNB
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaCIKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
KworV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpCit7Cisg
ICAgcmV0dXJuIHRvQVBJKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OkFQSVR5cGUp
OworfQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQorewor
ICAgIHJldHVybiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5hbGxvdygp
OworfQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit7Cisg
ICAgcmV0dXJuIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmRlbnkoKTsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3NTk1MGE5Y2MzMWQ2ODJl
YTc0ZmNlOTdkMzkzMGJhZGE3NmFlZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAg
KzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTAorICogQ29weXJp
Z2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
ICovCisKKyNpZm5kZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaAorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5o
PgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9S
VCBXS1R5cGVJRCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CisKK1dL
X0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTsKK1dLX0VY
UE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOworCisjaWZkZWYg
X19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCA5ZTBlZjY4YzM4NjBjZTA4NjlhYjBkYzE2NmNlM2Zm
ZTIwZDRhNTI5Li40NzFiMGI1ODVlZGMzNjUxNjNmZThiZTkwN2FhY2VlZDJlMDMzM2YzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQu
Y3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZp
ZXdCYXNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0V2luZG93UHJvcGVydGllc1ByaXZhdGUuaCIKQEAgLTE1Myw2ICsxNTQsMTIg
QEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFcKICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Np
b25SZXF1ZXN0KFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSwgV0VCS0lUX1BFUk1JU1NJT05f
UkVRVUVTVChnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CiB9CiAKK3N0YXRp
YyB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFJlZiByZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIEdSZWZQ
dHI8V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRl
KHRvSW1wbChyZXF1ZXN0KSkpOworICAgIHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVl
c3QoV0VCS0lUX1dFQl9WSUVXKGNsaWVudEluZm8pLCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNU
KHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7Cit9CisKIHN0YXRpYyB2b2lkIHJ1
bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB3ZWJraXRX
ZWJWaWV3UnVuQXNNb2RhbChXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbykpOwpAQCAtMTYwLDkg
KzE2Nyw5IEBAIHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKIAogdm9pZCBhdHRhY2hVSUNsaWVudFRvVmlldyhXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3KQogewotICAgIFdLUGFnZVVJQ2xpZW50VjIgd2tVSUNsaWVudCA9IHsKKyAgICBXS1BhZ2VV
SUNsaWVudFYzIHdrVUlDbGllbnQgPSB7CiAgICAgICAgIHsKLSAgICAgICAgICAgIDIsIC8vIHZl
cnNpb24KKyAgICAgICAgICAgIDMsIC8vIHZlcnNpb24KICAgICAgICAgICAgIHdlYlZpZXcsIC8v
IGNsaWVudEluZm8KICAgICAgICAgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwCkBAIC0yMTEsNiArMjE4LDggQEAgdm9pZCBhdHRhY2hVSUNsaWVu
dFRvVmlldyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgICAgICAwLCAvLyBzaG93Q29sb3JQ
aWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIHBsdWdp
bkxvYWRQb2xpY3kKKyAgICAgICAgMCwgLy8gcGlubmVkU3RhdGVEaWRDaGFuZ2UKKyAgICAgICAg
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsCiAgICAgfTsKICAgICBX
S1BhZ2VSZWYgd2tQYWdlID0gdG9BUEkod2Via2l0V2ViVmlld0Jhc2VHZXRQYWdlKFdFQktJVF9X
RUJfVklFV19CQVNFKHdlYlZpZXcpKSk7CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdrUGFn
ZSwgJndrVUlDbGllbnQuYmFzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYThiMGRmZWRkNzExMTYyZDllYzJjODcxNmYwODYzZWMwOGViZmVh
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEwMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
Q29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmgiCisKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5j
bHVkZSAiV2ViS2l0UGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
KworLyoqCisgKiBTRUNUSU9OOiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAorICog
QFNob3J0X2Rlc2NyaXB0aW9uOiBBIHBlcm1pc3Npb24gcmVxdWVzdCBmb3IgYWNjZXNzaW5nIHVz
ZXIncyBhdWRpby92aWRlbyBkZXZpY2VzLgorICogQFRpdGxlOiBXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdAorICogQFNlZV9hbHNvOiAjV2ViS2l0UGVybWlzc2lvblJlcXVlc3QsICNX
ZWJLaXRXZWJWaWV3CisgKgorICogV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgcmVw
cmVzZW50cyBhIHJlcXVlc3QgZm9yCisgKiBwZXJtaXNzaW9uIHRvIGRlY2lkZSB3aGV0aGVyIFdl
YktpdCBzaG91bGQgYmUgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIHVzZXIncworICogYXVkaW8gYW5k
IHZpZGVvIHNvdXJjZSBkZXZpY2VzIHdoZW4gcmVxdWVzdGVkIHRocm91Z2h0IHRoZSBnZXRVc2Vy
TWVkaWEgQVBJLgorICovCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3Rf
aW50ZXJmYWNlX2luaXQoV2ViS2l0UGVybWlzc2lvblJlcXVlc3RJZmFjZSopOworCitzdHJ1Y3Qg
X1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSB7CisgICAgUmVmUHRyPFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJlcXVlc3Q7CisgICAgYm9vbCBtYWRlRGVj
aXNpb247Cit9OworCitXRUJLSVRfREVGSU5FX1RZUEVfV0lUSF9DT0RFKAorICAgIFdlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3Jl
cXVlc3QsIEdfVFlQRV9PQkpFQ1QsCisgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKFdFQktJVF9U
WVBFX1BFUk1JU1NJT05fUkVRVUVTVCwgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZh
Y2VfaW5pdCkpCisKK3N0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
QWxsb3coV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgQVNTRVJUKFdF
QktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSk7CisKKyAgICBX
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfVVNF
Ul9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisKKyAgICAvLyBPbmx5
IG9uZSBkZWNpc2lvbiBhdCBhIHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVEZWNpc2lvbikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKKyAgICBwcml2
LT5yZXF1ZXN0LT5hbGxvdygpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdERlbnkoV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7Cisg
ICAgQVNTRVJUKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0
KSk7CisKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUqIHByaXYg
PSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisK
KyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBhIHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVE
ZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1
ZTsKKyAgICBwcml2LT5yZXF1ZXN0LT5kZW55KCk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9w
ZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQoV2ViS2l0UGVybWlzc2lvblJlcXVlc3RJ
ZmFjZSogaWZhY2UpCit7CisgICAgaWZhY2UtPmFsbG93ID0gd2Via2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RBbGxvdzsKKyAgICBpZmFjZS0+ZGVueSA9IHdlYmtpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0RGVueTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3REaXNwb3NlKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvLyBEZWZhdWx0IGJl
aGF2aW91ciB3aGVuIG5vIGRlY2lzaW9uIGhhcyBiZWVuIG1hZGUgaXMgZGVueWluZyB0aGUgcmVx
dWVzdC4KKyAgICB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0VCS0lUX1BF
Uk1JU1NJT05fUkVRVUVTVChvYmplY3QpKTsKKyAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfdXNl
cl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZShvYmplY3Qp
OworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3Rf
Y2xhc3NfaW5pdChXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzKiBrbGFzcykK
K3sKKyAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Moa2xhc3Mp
OworICAgIG9iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3REaXNwb3NlOworfQorCitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogd2Vi
a2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSogcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdCogdXNlcm1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBXRUJLSVRfVVNFUl9NRURJQV9QRVJN
SVNTSU9OX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1VTRVJfTUVESUFfUEVSTUlT
U0lPTl9SRVFVRVNULCBOVUxMKSk7CisgICAgdXNlcm1lZGlhUGVybWlzc2lvblJlcXVlc3QtPnBy
aXYtPnJlcXVlc3QgPSByZXF1ZXN0OworICAgIHJldHVybiB1c2VybWVkaWFQZXJtaXNzaW9uUmVx
dWVzdDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmYyOWQwNTE0YzlhNTBmMGUxNzBmMmEzNGViMTk1YmY1ZTQzNDM4MDIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgSWdhbGlhIFMuTAorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICog
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv
biwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9J
TlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8
d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKwor
I2lmbmRlZiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIFdlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+
CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKwor
I2RlZmluZSBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCAgICAgICAg
ICAgICh3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKG9iaikgICAgICAgICAg
ICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1VTRVJfTUVE
SUFfUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCkp
CisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUyhrbGFz
cykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9VU0VS
X01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVT
VChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRf
VFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCkpCisjZGVmaW5lIFdFQktJVF9JU19V
U0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19D
TEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVR
VUVTVCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9HRVRf
Q0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQ
RV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCAgICAgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q7Cit0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFzcyAgIFdlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdCB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBX
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1
Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgeworICAgIEdPYmplY3RD
bGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lk
KTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2
b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Np
b25fcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iOWYyNWE5NDc2M2ZmYWY5ZDRmYzhjNjhiMWNjOTI4N2U1NDYyMDA0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcml2YXRlLmgKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBJZ2FsaWEgUy5MCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAg
SW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBXZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGVfaAorI2RlZmluZSBXZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGVfaAorCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgor
I2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgiCisKK1dlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dENyZWF0ZShXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqKTsKKworI2Vu
ZGlmIC8vIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9j
cy5zZ21sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LWRvY3Muc2dtbAppbmRleCBlM2NmOWE2OGM2YjM5ZDE3OWFkYTU1OWNhYTQ4ZGFmYzExYWY1YzIx
Li5jYTcwNDcyZDA2ZTYwYzRlOGNmODUwOTQxYWQwMjQyMjkyODk4MWZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21s
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1k
b2NzLnNnbWwKQEAgLTIzLDYgKzIzLDcgQEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2Vi
S2l0RG93bmxvYWQueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBlcm1p
c3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgorICAgIDx4aTppbmNsdWRlIGhyZWY9Inht
bC9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVk
ZSBocmVmPSJ4bWwvV2ViS2l0UG9saWN5RGVjaXNpb24ueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUg
aHJlZj0ieG1sL1dlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi54bWwiLz4KICAgICA8eGk6
aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbi54bWwiLz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstc2VjdGlvbnMudHh0CmluZGV4IDQ3Yjg2NGU0MDkxNTgxZDcxYzYzNjQzY2JlMDcx
MDJjMGFkYmUyYTQuLmJkZGVlMWZkZjU0NjEyZmEyNDlmNDUzZmVjYmZiNDY0YTQ5ZmNhMmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApAQCAtNTIxLDYgKzUyMSwyNCBAQCB3ZWJraXRfZ2Vv
bG9jYXRpb25fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCiA8L1NFQ1RJT04+CiAKIDxTRUNU
SU9OPgorPEZJTEU+V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q8L0ZJTEU+CitXZWJL
aXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAorCis8U1VCU0VDVElPTiBTdGFuZGFyZD4KK1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MKK1dFQktJVF9UWVBFX1VTRVJfTUVE
SUFfUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVF
U1QKK1dFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX1VTRVJf
TUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJN
SVNTSU9OX1JFUVVFU1RfQ0xBU1MKK1dFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVT
VF9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZQord2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0
X2dldF90eXBlCis8L1NFQ1RJT04+CisKKzxTRUNUSU9OPgogPEZJTEU+V2ViS2l0UG9saWN5RGVj
aXNpb248L0ZJTEU+CiBXZWJLaXRQb2xpY3lEZWNpc2lvbgogd2Via2l0X3BvbGljeV9kZWNpc2lv
bl9kb3dubG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
d2Via2l0Mi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCmlu
ZGV4IGMxODUzOGE2MzExMTA0MGU0NmJiMjgyZjA2ODBiZDNiYzJmNTY0ZTguLjU4NjJlMWFlMGZh
Yjg3NGI3N2VhZDk4NTUzM2I5ODFhMzQ0M2YxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay93ZWJraXQyLmgKQEAgLTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlIDx3ZWJraXQy
L1dlYktpdFVSSVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlc3BvbnNl
Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg+CisjaW5jbHVk
ZSA8d2Via2l0Mi9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oPgogI2luY2x1ZGUg
PHdlYmtpdDIvV2ViS2l0VmVyc2lvbi5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViQ29u
dGV4dC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViSW5zcGVjdG9yLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDI3Y2QzNTdkMmNjYzUw
ODgxYTQwMjAzNDZmOTBmODkyMmYwNzRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApA
QCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFueSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJv
eHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQ
YWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVlc3RzKCkKK3sK
KyAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3BlbmRpbmdSZXF1ZXN0cy52YWx1ZXMoKSkKKyAg
ICAgICAgcmVxdWVzdC0+aW52YWxpZGF0ZSgpOworCisgICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xl
YXIoKTsKK30KKworUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdCh1aW50
NjRfdCB1c2VyTWVkaWFJRCkKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4gcmVxdWVzdCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0
ZSgqdGhpcywgdXNlck1lZGlhSUQpOworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFkZCh1c2VyTWVk
aWFJRCwgcmVxdWVzdC5nZXQoKSk7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQor
Cit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZl
VXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFs
bG93ZWQpCit7CisgICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIGl0ID0gbV9wZW5kaW5nUmVxdWVzdHMuZmluZCh1c2VyTWVkaWFJRCk7CisgICAg
aWYgKGl0ID09IG1fcGVuZGluZ1JlcXVlc3RzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1c2VyTWVk
aWFJRCwgYWxsb3dlZCksIG1fcGFnZS5wYWdlSUQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShhbGxvd2VkKTsKKyNlbmRpZgorCisgICAgbV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGl0KTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc2ZTk0Mzc2MmEwZWFiYTRjNDJiMjQxN2IxZWY1YTQ4YWFlNzhmNDIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFu
eSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CisKKyAgICB2
b2lkIGludmFsaWRhdGVSZXF1ZXN0cygpOworCisgICAgLy8gQ3JlYXRlIGEgcmVxdWVzdCB0byBi
ZSBwcmVzZW50ZWQgdG8gdGhlIHVzZXIuCisgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlEKTsKKwor
ICAgIC8vIENhbGxlZCBieSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IHdoZW4gYSBk
ZWNpc2lvbiBpcyBtYWRlIGJ5IHRoZSB1c2VyLgorICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdyk7CisKK3ByaXZhdGU6Cisg
ICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFk
NmJmMTFkNTM3YmFhY2M3Yjg4MmFhYjRmYTdhNzZjZWExYjJjODMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEg
Uy5MLgorICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWlu
dDY0X3QgdXNlck1lZGlhSUQpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fdXNl
ck1lZGlhSUQodXNlck1lZGlhSUQpCit7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6YWxsb3coKQoreworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlh
UGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIHRydWUpOworfQorCit2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkoKQoreworICAgIG1fbWFuYWdlci5kaWRS
ZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIGZhbHNlKTsK
K30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkK
K3sKKyAgICBtX21hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFkODRhODdjYWUzZTc4
NTJhNTcxZjMwODBjZTIxOTBkMzEwZTY2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTAsMCAr
MSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBDb21wYW55IDEwMCBJbmMuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
ICovCisKKyNpZm5kZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eV9oCisjZGVmaW5l
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0
LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OworCitjbGFzcyBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxB
UEk6Ok9iamVjdDo6VHlwZTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBj
cmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVp
bnQ2NF90IHVzZXJNZWRpYUlEKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYUlEKSk7Cisg
ICAgfQorCisgICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgZGVueSgpOworCisgICAgdm9pZCBp
bnZhbGlkYXRlKCk7CisKK3ByaXZhdGU6CisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2NF90IHVz
ZXJNZWRpYUlEKTsKKworICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
JiBtX21hbmFnZXI7CisgICAgdWludDY0X3QgbV91c2VyTWVkaWFJRDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGE0ZWEy
NWVkNmYzODE5YjVkOWMxNTdlMGE5OWI3Y2JjMmYzN2JlMjkuLmI0NjkzYzcyZTE4NzJmODJmMjE1
NmNmYjU5NTI3YTBlNTBmZGVmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiUHJpbnRJbmZvLmgiCiAjaW5j
bHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCisjaW5j
bHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgogI2luY2x1ZGUgIldLQ29u
dGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKICNpbmNsdWRl
ICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCkBAIC0yNzksNiArMjgwLDcgQEAgV2ViUGFnZVBy
b3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5
JiBwcm9jZXNzLCB1aW4KICNlbmRpZgogICAgICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcigqdGhpcykKICAgICAsIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKCp0aGlzKQorICAgICwgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
KnRoaXMpCiAgICAgLCBtX3ZpZXdTdGF0ZShWaWV3U3RhdGU6Ok5vRmxhZ3MpCiAgICAgLCBtX2Jh
Y2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBt
X2xvYWRTdGF0ZUF0UHJvY2Vzc0V4aXQoRnJhbWVMb2FkU3RhdGU6OlN0YXRlOjpGaW5pc2hlZCkK
QEAgLTQ0NzIsNiArNDQ3NCwxOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0
aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsCiAgICAgcmVxdWVz
dC0+ZGVueSgpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1p
c3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3Ry
aW5nIG9yaWdpbklkZW50aWZpZXIpCit7CisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3By
b2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUpOworCisg
ICAgUmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyKG9yaWdp
bklkZW50aWZpZXIpKTsKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eT4gcmVxdWVzdCA9IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNyZWF0ZVJl
cXVlc3QodXNlck1lZGlhSUQpOworCisgICAgaWYgKCFtX3VpQ2xpZW50LT5kZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0aGlzLCBmcmFtZSwgb3JpZ2luLmdldCgpLCBy
ZXF1ZXN0LmdldCgpKSkKKyAgICAgICAgcmVxdWVzdC0+ZGVueSgpOworfQorCiB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElE
LCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBpZiAoIWlzUmVxdWVzdElEVmFs
aWQocmVxdWVzdElEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRl
eCBkYTkxNTcwMTM3ODA5OTY1OTkyYmMwN2Q1YmFiOWFmNjBjZjQxYmJmLi42OTBlNDhkM2MyYzNl
Yzc2NGE3MzgyMTJiZjE0ZWYxZTY2ZGNiNTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9jZXNz
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJT
aGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaCIK
ICNpbmNsdWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlICJXS1BhZ2VQcml2YXRlLmgiCkBAIC0xMDAz
LDYgKzEwMDQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJpbnRGcmFtZSh1aW50NjRfdCBmcmFt
ZUlEKTsKICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1l
LCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2
NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVp
bnQ2NF90IGV4cGVjdGVkVXNhZ2UsIFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHk+KTsKICAgICB2b2lkIHJlcXVlc3RH
ZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50
NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CisgICAgdm9pZCByZXF1ZXN0
VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRf
dCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CisKICAgICB2b2lkIHJ1bk1vZGFs
KCk7CiAgICAgdm9pZCBub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKICAgICB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRD
aGFuZ2UoaW50MzJfdCBuZXdTdHlsZSk7CkBAIC0xMzE5LDYgKzEzMjIsNyBAQCBwcml2YXRlOgog
ICAgIFJlZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5PiBtX29wZW5QYW5lbFJl
c3VsdExpc3RlbmVyOwogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICAgICBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcjsKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eSBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIAogICAgIFdlYkNvcmU6OlZp
ZXdTdGF0ZTo6RmxhZ3MgbV92aWV3U3RhdGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGY1MjZmMGFiZTQ2Y2E0NzU2NWFk
NzNlNjQ4OTgxOThmYjYwNWI5YjguLjQwZDM3NDI1NGZiYzQwYWMxM2VlZTdjNmVjYzFiMDk4OGVm
MjQ0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMjQ0LDYgKzI0NCw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7
CiAgICAgIyBHZW9sb2NhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1p
c3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBT
dHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICAKKyAgICAjIE1lZGlhU3RlYW0gbWVzc2FnZXMK
KyAgICBSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRp
YUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKKwogICAgICMg
Tm90aWZpY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24o
dWludDY0X3QgcmVxdWVzdElELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICBTaG93Tm90
aWZpY2F0aW9uKFN0cmluZyB0aXRsZSwgU3RyaW5nIGJvZHksIFN0cmluZyBpY29uVVJMLCBTdHJp
bmcgdGFnLCBTdHJpbmcgbGFuZywgU3RyaW5nIGRpciwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIs
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2YTI3YjMzYTgxMmI4ZjMwZmJkMDJm
ZTJhMjY4ODQ2NjdkMzczM2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAK
QEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJGcmFtZS5o
IgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U2VjdXJpdHlPcmlnaW4uaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVSZXF1ZXN0SUQoKQoreworICAg
IHN0YXRpYyB1aW50NjRfdCB1bmlxdWVSZXF1ZXN0SUQgPSAxOworICAgIHJldHVybiB1bmlxdWVS
ZXF1ZXN0SUQrKzsKK30KKworVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFn
ZShwYWdlKQoreworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6
c3RhcnRSZXF1ZXN0KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJwUmVxdWVzdCkKK3sK
KyAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdChwcnBSZXF1ZXN0KTsKKyAgICB1
aW50NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOworCisgICAgbV9pZFRvUmVx
dWVzdE1hcC5zZXQocmVxdWVzdElELCByZXF1ZXN0KTsKKyAgICBtX3JlcXVlc3RUb0lETWFwLnNl
dChyZXF1ZXN0LCByZXF1ZXN0SUQpOworCisgICAgLy8gRklYTUU6IEltcHJvdmUgdGhlIHdheSB0
byBnZXQgdGhlIFdlYkZyYW1lLgorICAgIEZyYW1lKiBmcmFtZSA9IHJlcXVlc3QtPmZyYW1lKCk7
CisgICAgQVNTRVJUKGZyYW1lKTsKKworICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFt
ZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWUtPmxvYWRlcigpLmNs
aWVudCgpKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/
IHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJGcmFtZSgpIDogbnVsbHB0cjsKKyAgICBBU1NFUlQo
d2ViRnJhbWUpOworCisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBmcmFtZS0+
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHJlcXVlc3RJ
RCwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgb3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKSkpOwor
fQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsUmVxdWVz
dChVc2VyTWVkaWFSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9
IG1fcmVxdWVzdFRvSURNYXAudGFrZShyZXF1ZXN0KTsKKyAgICBpZiAoIXJlcXVlc3RJRCkKKyAg
ICAgICAgcmV0dXJuOworICAgIG1faWRUb1JlcXVlc3RNYXAucmVtb3ZlKHJlcXVlc3RJRCk7Cit9
CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlVXNl
ck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBhbGxvd2Vk
KQoreworICAgIFJlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0ID0gbV9pZFRvUmVxdWVz
dE1hcC50YWtlKHJlcXVlc3RJRCk7CisgICAgaWYgKCFyZXF1ZXN0KQorICAgICAgICByZXR1cm47
CisgICAgbV9yZXF1ZXN0VG9JRE1hcC5yZW1vdmUocmVxdWVzdCk7CisKKyAgICBpZiAoYWxsb3dl
ZCkKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgIGVsc2UK
KyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyM2Y3
ZDQ3ZmM3MDUwNDVlOTYxMzllMzM1MzViZGUyMzU5ZjQ1ODcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBDb21wYW55IDEwMCBJbmMuCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAq
ICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0
b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcl9oCisjZGVmaW5lIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcl9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8V2ViQ29yZS9V
c2VyTWVkaWFSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFVzZXJNZWRpYVJlcXVl
c3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJik7CisKKyAgICB2b2lk
IHN0YXJ0UmVxdWVzdChQYXNzUmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+KTsKKyAg
ICB2b2lkIGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCopOworCisgICAg
dm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBib29sIGFsbG93ZWQpOworCitwcml2YXRlOgorICAgIHR5cGVkZWYgSGFzaE1hcDx1
aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+PiBJRFRvUmVxdWVzdE1h
cDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+
LCB1aW50NjRfdD4gUmVxdWVzdFRvSURNYXA7CisgICAgSURUb1JlcXVlc3RNYXAgbV9pZFRvUmVx
dWVzdE1hcDsKKyAgICBSZXF1ZXN0VG9JRE1hcCBtX3JlcXVlc3RUb0lETWFwOworCisgICAgV2Vi
UGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzNk
NmUzMjU4ZWIxZjM1NTc5OTQwNjMyMzhmNzFhNTgxZmI2MjFlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGll
bnQuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ29tcGFu
eSAxMDAgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5oIgorCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRl
ICJVc2VyTWVkaWFSZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlVzZXJNZWRpYUNsaWVudDo6V2ViVXNlck1lZGlhQ2xp
ZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKworV2ViVXNlck1l
ZGlhQ2xpZW50Ojp+V2ViVXNlck1lZGlhQ2xpZW50KCkKK3sKK30KKwordm9pZCBXZWJVc2VyTWVk
aWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lk
IFdlYlVzZXJNZWRpYUNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxVc2VyTWVk
aWFSZXF1ZXN0PiByZXF1ZXN0KQoreworICAgIG1fcGFnZS51c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIoKS5zdGFydFJlcXVlc3QocmVxdWVzdCk7Cit9CisKK3ZvaWQgV2ViVXNlck1l
ZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QqIHJlcXVlc3QpCit7Cisg
ICAgbV9wYWdlLnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmNhbmNlbFJlcXVl
c3QocmVxdWVzdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdDsKKworI2VuZGlmIC8vIE1F
RElBX1NUUkVBTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA5NjlhZjE4
MjJlMWE2MWEwM2ZkMjQyYmZmYjFmODY3MWE3MzE4MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgK
QEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBDb21wYW55IDEwMCBJ
bmMuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFdlYlVzZXJNZWRp
YUNsaWVudF9oCisjZGVmaW5lIFdlYlVzZXJNZWRpYUNsaWVudF9oCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhQ2xpZW50Lmg+CisjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdl
OworCitjbGFzcyBXZWJVc2VyTWVkaWFDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6VXNlck1lZGlh
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJVc2VyTWVkaWFDbGllbnQoV2ViUGFnZSYpOworICAg
IHZpcnR1YWwgfldlYlVzZXJNZWRpYUNsaWVudCgpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwg
dm9pZCBwYWdlRGVzdHJveWVkKCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9u
KFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4pOworICAgIHZpcnR1YWwgdm9p
ZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKTsKKworICAgIFdlYlBh
Z2UmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBXZWJVc2VyTWVkaWFDbGllbnRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDJiYjFi
ZTUzZTVjNWQzNGU2NmZmOTY1Yzc1ZDRlYmUwODU5N2Y1ZmUuLjMzZmNkNTNjNjZjMmQ4MTJlZjhh
YTEzYzg0ZGE4NjY0YzEwNmVlOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTk1LDYgKzk1LDcgQEAKICNpbmNsdWRlICJXZWJQcm9ncmVz
c1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIldl
YlVzZXJDb250ZW50Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5o
IgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0FyY2hpdmVSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2hyb21lLmg+CkBAIC0yNzcs
NiArMjc4LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9O
KQogICAgICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQogI2Vu
ZGlmCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyKCp0aGlzKQorI2VuZGlmCiAgICAgLCBtX2NhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChwYXJhbWV0ZXJzLmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkK
ICAgICAsIG1fY2FuUnVuTW9kYWwocGFyYW1ldGVycy5jYW5SdW5Nb2RhbCkKICAgICAsIG1faXNS
dW5uaW5nTW9kYWwoZmFsc2UpCkBAIC0zODIsNiArMzg2LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1
aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCiAjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCiAgICAgV2ViQ29yZTo6cHJvdmlkZURl
dmljZVByb3hpbWl0eVRvKG1fcGFnZS5nZXQoKSwgbmV3IFdlYkRldmljZVByb3hpbWl0eUNsaWVu
dCh0aGlzKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYkNvcmU6
OnByb3ZpZGVVc2VyTWVkaWFUbyhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJVc2VyTWVkaWFDbGllbnQo
KnRoaXMpKTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgbV9w
YWdlLT5zZXRSZW1vdGVJbnNwZWN0aW9uQWxsb3dlZCh0cnVlKTsKQEAgLTMxNTksNiArMzE2Niwx
MyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNp
b24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsCiAgICAgbm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKCktPmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24o
bm90aWZpY2F0aW9uSUQsIGFsbG93ZWQpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
K3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50
NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQoreworICAgIG1fdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24o
dXNlck1lZGlhSUQsIGFsbG93ZWQpOworfQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oSU9TKQog
dm9pZCBXZWJQYWdlOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNl
bGVjdGlvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CmluZGV4IGIwZTgzYjc3MzNkOWM3NGU2OThkNDE0MDEwY2E0YmJhMzg4MGMwZmQuLjc2ZjU2NDQ3
M2NhMzMxODgwMjZiYTFlMWNkYzZkMjk3MmEwNmY2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTAzLDYgKzEwMywxMCBAQCBPQkpDX0NMQVNT
IFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3Q7CiAjZGVmaW5lIEVOQUJMRV9QUklNQVJZX1NO
QVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMgMQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgor
I2VuZGlmCisKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXJyYXk7CiB9CkBAIC00NTEsNiArNDU1
LDEwIEBAIHB1YmxpYzoKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYg
Z2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyJiB1c2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX3VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjsgfQorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAgICAgV2Vi
Q29yZTo6RmxvYXRTaXplIHNjcmVlblNpemUoKSBjb25zdDsKICAgICBXZWJDb3JlOjpGbG9hdFNp
emUgYXZhaWxhYmxlU2NyZWVuU2l6ZSgpIGNvbnN0OwpAQCAtMTAxMCw2ICsxMDE4LDEwIEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNp
b24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7CiAKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKTsKKyNlbmRpZgorCiAgICAg
dm9pZCBhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbik7
CiAgICAgdm9pZCBjaGFuZ2VTcGVsbGluZ1RvV29yZChjb25zdCBTdHJpbmcmIHdvcmQpOwogI2lm
IFVTRShBUFBLSVQpCkBAIC0xMTc2LDYgKzExODgsMTAgQEAgcHJpdmF0ZToKICAgICBHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjsKKyNlbmRpZgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlByaW50Q29u
dGV4dD4gbV9wcmludENvbnRleHQ7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIFJlZlB0cjxXZWJQ
cmludE9wZXJhdGlvbkd0az4gbV9wcmludE9wZXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMmQxMjI3
NDUxOTRhY2VlNWU2ZjkzNDgzYTQ5M2UzMzZlMTdjZjg2Ni4uODE3NzE0M2VjMTkzNWZkYTA2MDY5
ZmY1NGI0NWY2ODc3MWYxNTQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTI2MSw2ICsyNjEsMTEgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkUmVjZWl2ZUdlb2xvY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvb2wgYWxsb3dl
ZCkKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAjIE1lZGlhU3RlYW0K
KyAgICBEaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBib29sIGFsbG93ZWQpCisjZW5kaWYKKwogICAgICMgTm90aWZpY2F0aW9uCiAgICAg
RGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmlj
YXRpb25JRCwgYm9vbCBhbGxvd2VkKQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMzRjMzFlY2EyM2M2Njc4YzIzZTE3OTYxOTY1M2RjYTVlNjcw
OTM2OC4uZTA5YWE5ODY3NGQ1ZjExMmY1ZmU4ZjgxZjVkNjQwZTA3MzQ2NTBhZiAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBA
CisyMDE0LTA1LTEyICBTZW9uZ2p1biBLaW0gIDxpc0FpckBjb21wYW55MTAwLmNvbT4KKworICAg
ICAgICBbV0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QgaW4gV2ViS2l0Mi4gSXQncyBpbXBsZW1lbnRlZAorICAgICAgICBzaW1pbGFyaWx5
IHRvIHRoZSBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0IHN1cHBvcnQuIFdoZW4gdGhlCisg
ICAgICAgIFdlYlBhZ2UgcmVxdWlyZXMgdGhpcyBwZXJtaXNzaW9uIGl0IHNlbmRzIGEgbWVzc2Fn
ZSB0byB0aGUgVUkgcHJvY2VzcworICAgICAgICB3aGljaCBhdCBzb21lIHBvaW50IGdyYW50cyBv
ciBkZW5pZXMgdGhlIHBlcm1pc3Npb24gYW5kIHNlbmQgdGhlCisgICAgICAgIHJlc3VsdCB0byB0
aGUgV2ViUHJvY2Vzcy4KKworICAgICAgICBQYXRjaCBiYXNlZCBvbiB3b3JrIHByZXZpb3VzbHkg
ZG9uZSBieSBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPi4KKworICAgICAg
ICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmM6IFNob3cgYSBwb3B1cCB3aGVuIHRo
ZSBwYWdlIHJlcXVpcmVzCisgICAgICAgIHVzZXIgcGVybWlzc2lvbiB0byBhY2Nlc3MgYXVkaW8v
dmlkZW8gZGV2aWNlcy4KKyAgICAgICAgKHBlcm1pc3Npb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2sp
OgorICAgICAgICAod2ViVmlld0RlY2lkZVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKGdl
b2xvY2F0aW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKTogRGVsZXRlZC4KKwogMjAxNC0wNi0yMSAg
R3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIERpc2Fi
bGUgZ2FtZXBhZCBmZWF0dXJlIG9uIEVGTCBhbmQgR1RLIHBvcnRzIGJ5IGRlZmF1bHQKZGlmZiAt
LWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMgYi9Ub29scy9NaW5p
QnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCmluZGV4IDQzNzQ3NzMzZmY5YTUyNDAzOTFkZTAz
ZGVmMDMyNTQxZmZiM2VmZTMuLjA3OGE0MWM4ZjAyOTAzNmUyZDczMzI4ODA4Y2M4Yjc1ZWQ1ZmIx
NTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKKysr
IGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYwpAQCAtMjUzLDcgKzI1Myw3
IEBAIHN0YXRpYyB2b2lkIGJhY2tGb3J3YWRsaXN0Q2hhbmdlZChXZWJLaXRCYWNrRm9yd2FyZExp
c3QgKmJhY2tGb3J3YWRsaXN0LCBXZWJLaXRCCiAgICAgYnJvd3NlcldpbmRvd1VwZGF0ZU5hdmln
YXRpb25BY3Rpb25zKHdpbmRvdywgYmFja0ZvcndhZGxpc3QpOwogfQogCi1zdGF0aWMgdm9pZCBn
ZW9sb2NhdGlvblJlcXVlc3REaWFsb2dDYWxsYmFjayhHdGtEaWFsb2cgKmRpYWxvZywgZ2ludCBy
ZXNwb25zZSwgV2ViS2l0UGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3QpCitzdGF0aWMgdm9pZCBw
ZXJtaXNzaW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKEd0a0RpYWxvZyAqZGlhbG9nLCBnaW50IHJl
c3BvbnNlLCBXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCkKIHsKICAgICBzd2l0Y2gg
KHJlc3BvbnNlKSB7CiAgICAgY2FzZSBHVEtfUkVTUE9OU0VfWUVTOgpAQCAtNDA2LDE5ICs0MDYs
MjcgQEAgc3RhdGljIGdib29sZWFuIHdlYlZpZXdEZWNpZGVQb2xpY3koV2ViS2l0V2ViVmlldyAq
d2ViVmlldywgV2ViS2l0UG9saWN5RGVjaXNpb24KIAogc3RhdGljIGdib29sZWFuIHdlYlZpZXdE
ZWNpZGVQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBXZWJLaXRQZXJt
aXNzaW9uUmVxdWVzdCAqcmVxdWVzdCwgQnJvd3NlcldpbmRvdyAqd2luZG93KQogewotICAgIGlm
ICghV0VCS0lUX0lTX0dFT0xPQ0FUSU9OX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSkKKyAg
ICBnY2hhciAqZGlhbG9nX3RpdGxlID0gTlVMTDsKKyAgICBnY2hhciAqZGlhbG9nX21lc3NhZ2Ug
PSBOVUxMOworCisgICAgaWYgKFdFQktJVF9JU19HRU9MT0NBVElPTl9QRVJNSVNTSU9OX1JFUVVF
U1QocmVxdWVzdCkpIHsKKyAgICAgICAgZGlhbG9nX3RpdGxlID0gIkdlb2xvY2F0aW9uIHJlcXVl
c3QiOworICAgICAgICBkaWFsb2dfbWVzc2FnZSA9ICJBbGxvdyBnZW9sb2NhdGlvbiByZXF1ZXN0
PyI7CisgICAgfSBlbHNlIGlmIChXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVF
U1QocmVxdWVzdCkpIHsKKyAgICAgICAgZGlhbG9nX3RpdGxlID0gIlVzZXJNZWRpYSByZXF1ZXN0
IjsKKyAgICAgICAgZGlhbG9nX21lc3NhZ2UgPSAiQWxsb3cgdXNlciBtZWRpYSByZXF1ZXN0PyI7
CisgICAgfSBlbHNlCiAgICAgICAgIHJldHVybiBGQUxTRTsKIAogICAgIEd0a1dpZGdldCAqZGlh
bG9nID0gZ3RrX21lc3NhZ2VfZGlhbG9nX25ldyhHVEtfV0lORE9XKHdpbmRvdyksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19ESUFMT0dfTU9EQUwg
fCBHVEtfRElBTE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19NRVNTQUdFX1FVRVNUSU9OLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfQlVUVE9OU19ZRVNfTk8s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHZW9sb2Nh
dGlvbiByZXF1ZXN0Iik7CisgICAgICAgIEdUS19ESUFMT0dfTU9EQUwgfCBHVEtfRElBTE9HX0RF
U1RST1lfV0lUSF9QQVJFTlQsCisgICAgICAgIEdUS19NRVNTQUdFX1FVRVNUSU9OLAorICAgICAg
ICBHVEtfQlVUVE9OU19ZRVNfTk8sCisgICAgICAgICIlcyIsIGRpYWxvZ190aXRsZSk7CiAKLSAg
ICBndGtfbWVzc2FnZV9kaWFsb2dfZm9ybWF0X3NlY29uZGFyeV90ZXh0KEdUS19NRVNTQUdFX0RJ
QUxPRyhkaWFsb2cpLCAiQWxsb3cgZ2VvbG9jYXRpb24gcmVxdWVzdD8iKTsKLSAgICBnX3NpZ25h
bF9jb25uZWN0KGRpYWxvZywgInJlc3BvbnNlIiwgR19DQUxMQkFDSyhnZW9sb2NhdGlvblJlcXVl
c3REaWFsb2dDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CisgICAgZ3RrX21lc3Nh
Z2VfZGlhbG9nX2Zvcm1hdF9zZWNvbmRhcnlfdGV4dChHVEtfTUVTU0FHRV9ESUFMT0coZGlhbG9n
KSwgIiVzIiwgZGlhbG9nX21lc3NhZ2UpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoZGlhbG9nLCAi
cmVzcG9uc2UiLCBHX0NBTExCQUNLKHBlcm1pc3Npb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2spLCBn
X29iamVjdF9yZWYocmVxdWVzdCkpOwogICAgIGd0a193aWRnZXRfc2hvdyhkaWFsb2cpOwotCiAg
ICAgcmV0dXJuIFRSVUU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237479</attachid>
            <date>2014-09-02 00:48:12 -0700</date>
            <delta_ts>2014-09-02 01:07:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>118780</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBhMzUxZTExMzk1NmE4NjU3YjRmMmY3Yjk2ZjM4Y2FmYmMwMmY0MTE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDI5IEF1ZyAyMDE0IDEwOjEyOjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
UGF0Y2gKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgMTcgKysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0
ZWQudHh0ICAgIHwgIDEwICsrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0
bWwgICAgICAgICAgICB8ICAxMCArKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3Jp
cHQtdGVzdHMvZXJyb3IuanMgfCAgMTkgKysKIC4uLi9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10
ZXN0cy9zdWNjZXNzLmpzICAgICAgIHwgIDE2ICsrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0ICB8ICAgOSArCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3N1Y2Nlc3MuaHRtbCAgICAgICAgICB8ICAxMCArKwogU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgKysrCiAuLi4vTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCAgICAgICB8ICAxMSArKwogLi4uL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggfCAgIDcgKwogU291cmNl
L1dlYktpdDIvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMDEgKysr
KysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlICAgICAgICAgICAgICAg
ICAgIHwgICA0ICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCAgICAgICAg
ICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCAgICAgICAg
ICAgICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGll
bnQuaCAgICAgICAgIHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaCAgICAgICAgIHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlVUlDbGllbnQuaCAgICB8ICA2OCArKysrKysrCiAuLi4vQVBJL0MvV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgICAgICAgICB8ICA0MCArKysrKwogLi4uL1VJUHJvY2Vz
cy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggfCAgMzcgKysrKwogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oICAgICAgICAgfCAgIDEgKwogLi4u
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwICAgfCAgIDggKwog
Li4uL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwICAgfCAxOTkg
KysrKysrKysrKysrKysrKysrKysrCiAuLi4vQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oICAgICB8ICA4MSArKysrKysrKysKIC4uLi9ndGsvV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmggIHwgIDI3ICsrKwogLi4uL1VJUHJvY2Vzcy9BUEkv
Z3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwgICAgfCAgIDEgKwogLi4uL1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQgfCAgMjEgKysrCiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggICAgICAgICB8ICAgMSArCiAuLi4vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICAgICB8ICA2MyArKysrKysr
CiAuLi4vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAgICAgICB8ICA0
OCArKysrKwogLi4uL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cCAgfCAgNTQgKysrKysrCiAuLi4vVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaCAgICB8ICA1NCArKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwICAgICAgICAgIHwgIDE0ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggICAgICAgICAgICB8ICAgNyArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluICB8ICAgNSArCiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICB8ICA0NCArKysrKwogLi4uL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgICAgICAgICAgfCAgOTIgKysrKysrKysrKwogLi4u
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICAgICAgICAgICAgfCAgNTggKysr
KysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAgICAgICAgICB8
ICA1NSArKysrKysKIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5oIHwgIDQ1ICsrKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgICAgICB8ICAxNCArKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCAgICAgICAgfCAgMTMgKysKIC4uLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluIHwgICA1ICsKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDU0ICsrKysrKwogVG9vbHMvTWluaUJyb3dzZXIv
Z3RrL0Jyb3dzZXJXaW5kb3cuYyAgICAgICAgICAgICAgfCAgMzggKysrLQogVG9vbHMvVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZSAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgfCAgIDYgKwogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAgICAgfCAgNjMgKysrKysr
KwogLi4uL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbCAgfCAg
MTQgKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCAgICAgICAg
IHwgICAzICsKIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgICAgICAgICAg
ICAgIHwgICA3ICsKIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oICAgICAgICAg
ICAgICAgIHwgICAzICsKIC4uLi9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwIHwgICA2ICsKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oIHwgICAzICsKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwICAgICAgICAgIHwgIDU3ICsrKysrLQogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oICAgICAgICAgICAgfCAgIDkgKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAgICAgICAgICAgfCAgIDcgKwogNTggZmlsZXMgY2hhbmdlZCwgMTU3
MiBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRtbAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2Vycm9y
LmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3Jp
cHQtdGVzdHMvc3VjY2Vzcy5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vc3VjY2Vzcy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcml2YXRlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNw
cAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbAoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA4MzkxMTY2Li5hMGJjZWQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDktMDEg
IFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXSzJd
IFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTaW1wbGUgVXNlck1lZGlhIHBlcm1pc3Npb24gcmVxdWVzdCB0ZXN0
cyBpbnNwaXJlZCBmcm9tIHRoZQorICAgICAgICBHZW9sb2NhdGlvbiB0ZXN0IHN1aXRlLgorCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvZXJyb3IuanM6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL3N1Y2Nlc3MuanM6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sOiBBZGRlZC4KKwogMjAxNC0wOC0zMCAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgRUZMIGdhcmRlbmluZy4gTWFyayBzb21lIGNvbXBvc2l0aW5nIHRlc3RzIGFzICJmYWlsdXJl
IiBzaW5jZSByMTcyOTk5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L2Vycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3It
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2MjlkMjIy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgVXNlck1lZGlhIGVycm9yIGNhbGxi
YWNrIHVzaW5nIHRoZSBtb2NrIHNlcnZpY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGVycm9yLmNvZGUgaXMgZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL2Vycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNGEzODMxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vZXJyb3IuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZXJyb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVz
dHMvZXJyb3IuanMgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9l
cnJvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWQ2MjEzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMv
ZXJyb3IuanMKQEAgLTAsMCArMSwxOSBAQAorZGVzY3JpcHRpb24oIlRlc3RzIFVzZXJNZWRpYSBl
cnJvciBjYWxsYmFjayB1c2luZyB0aGUgbW9jayBzZXJ2aWNlLiIpOworCitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsK
K2Vsc2UKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRl
c3RSdW5uZXInKTsKKwordmFyIGVycm9yOwordmFyIG9wdGlvbnMgPSB7YXVkaW86ZmFsc2UsIHZp
ZGVvOnRydWV9OworbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlv
bihzdHJlYW0pIHsKKyAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5l
eHBlY3RlZGx5Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmdW5jdGlvbihlKSB7CisgICAg
ZXJyb3IgPSBlOworICAgIHNob3VsZEJlKCdlcnJvci5jb2RlJywgJ2Vycm9yLlBFUk1JU1NJT05f
REVOSUVEJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKword2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3Jp
cHQtdGVzdHMvc3VjY2Vzcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0
LXRlc3RzL3N1Y2Nlc3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWVl
NjYzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2Ny
aXB0LXRlc3RzL3N1Y2Nlc3MuanMKQEAgLTAsMCArMSwxNiBAQAorZGVzY3JpcHRpb24oIlRlc3Rz
IFVzZXJNZWRpYSBzdWNjZXNzIGNhbGxiYWNrIHVzaW5nIHRoZSBtb2NrIHNlcnZpY2UuIik7CisK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1p
c3Npb24odHJ1ZSk7CitlbHNlCisgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3
aXRob3V0IHRoZSB0ZXN0UnVubmVyJyk7CisKK3ZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2
aWRlbzogdHJ1ZX07CituYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0
aW9uKHN0cmVhbSkgeworICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZnVuY3Rpb24oZSkgeworICAg
IHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9KTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIyM2ViYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw5IEBACitUZXN0cyBVc2VyTWVkaWEgc3VjY2VzcyBjYWxsYmFjayB1c2luZyB0aGUg
bW9jayBzZXJ2aWNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNTg0ZDFhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vc3VjY2Vzcy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdWNjZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmMzEwYTMwLi4wN2I5MGIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTQtMDktMDEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBkb2N1bWVu
dCBhbmQgZnJhbWUgYWNjZXNzb3JzLCBuZWVkZWQgYnkgdGhlCisgICAgICAgIFVzZXJNZWRpYVJl
cXVlc3RNYW5hZ2VyIG9mIHRoZSBXZWJQcm9jZXNzLiBBbHNvIGFkZGVkIHR3byBtZXRob2RzCisg
ICAgICAgIHVzZWQgYnkgdGhlIHBlcm1pc3Npb24gcmVxdWVzdCBtYW5hZ2VyIHRvIGtub3cgaWYg
YWNjZXNzIHRvIGF1ZGlvCisgICAgICAgIG9yIHZpZGVvIGRldmljZXMgaXMgcmVxdWVzdGVkLgor
CisgICAgICAgIFRlc3RzOiBmYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1l
ZGlhUmVxdWVzdDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVz
dDo6ZnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5oOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6YXVkaW8pOgorICAgICAg
ICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6dmlkZW8pOgorCiAyMDE0LTA4LTMxICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgZml4IGJ1aWxkIGJyZWFrIG9uIEVGTCBhbmQgR1RLIHNpbmNlIHIxNzMxNTIuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcAppbmRleCBlNDM4ZDM1Li43MTAwZWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTQwLDYgKzQw
LDcgQEAKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJN
ZWRpYUNvbnN0cmFpbnRzSW1wbC5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCiAjaW5jbHVk
ZSAiTWVkaWFTdHJlYW1DZW50ZXIuaCIKQEAgLTEwMSw2ICsxMDIsMTYgQEAgVXNlck1lZGlhUmVx
dWVzdDo6flVzZXJNZWRpYVJlcXVlc3QoKQogewogfQogCitEb2N1bWVudCogVXNlck1lZGlhUmVx
dWVzdDo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiB0b0RvY3VtZW50KG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk7Cit9CisKK0ZyYW1lKiBVc2VyTWVkaWFSZXF1ZXN0OjpmcmFtZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5mcmFtZSgpIDog
bnVsbHB0cjsKK30KKwogU2VjdXJpdHlPcmlnaW4qIFVzZXJNZWRpYVJlcXVlc3Q6OnNlY3VyaXR5
T3JpZ2luKCkgY29uc3QKIHsKICAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuaAppbmRleCBjODBhNmJhLi44YWU4ZWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtNDgsNiArNDgsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERpY3Rpb25hcnk7CiBjbGFzcyBEb2N1bWVu
dDsKK2NsYXNzIEZyYW1lOwogY2xhc3MgTWVkaWFDb25zdHJhaW50czsKIGNsYXNzIE1lZGlhU3Ry
ZWFtUHJpdmF0ZTsKIGNsYXNzIFVzZXJNZWRpYUNvbnRyb2xsZXI7CkBAIC02MiwxMCArNjMsMTYg
QEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5
T3JpZ2luKCkgY29uc3Q7CiAKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKKyAgICBG
cmFtZSogZnJhbWUoKSBjb25zdDsKKwogICAgIHZvaWQgc3RhcnQoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOwogCisgICAgYm9vbCBhdWRpbygpIGNvbnN0IHsg
cmV0dXJuIG1fYXVkaW9Db25zdHJhaW50czsgfQorICAgIGJvb2wgdmlkZW8oKSBjb25zdCB7IHJl
dHVybiBtX3ZpZGVvQ29uc3RyYWludHM7IH0KKwogcHJpdmF0ZToKICAgICBVc2VyTWVkaWFSZXF1
ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBVc2VyTWVkaWFDb250cm9sbGVyKiwgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBhdWRpb0NvbnN0cmFpbnRzLCBQYXNzUmVmUHRyPE1lZGlh
Q29uc3RyYWludHM+IHZpZGVvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1l
ZGlhU3VjY2Vzc0NhbGxiYWNrPiwgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNh
bGxiYWNrPik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggMTE2N2NmOS4uZjgxMGEyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKQEAgLTQ5LDYgKzQ5LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9E
SVJFQ1RPUklFUwogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0RPTSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9MYXVuY2hpbmciCiAgICAgIiR7
V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTWVkaWFDYWNoZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0v
V2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9O
ZXR3b3JrIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMiCiAg
ICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvT3JpZ2luRGF0YSIKQEAgLTMwMSw2ICszMDIs
OCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGlt
ZXIuY3BwCiAgICAgVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vz
cy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVy
LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAog
ICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCkBAIC0zODksNiArMzkyLDcgQEAg
c2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVN
YW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25TdGF0ZVJlZi5jcHAKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tW
aWJyYXRpb24uY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNw
cAogCkBAIC00ODUsNiArNDg5LDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJv
Y2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmNwcAogCisgICAgV2ViUHJvY2Vz
cy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisKICAg
ICBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogICAgIFdl
YlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCiAgICAgV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtNTM3LDYgKzU0Myw3IEBAIHNl
dChXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVw
TWVudS5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tl
ckNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVw
TWVudS5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVu
dC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlZpYnJhdGlvbkNsaWVudC5j
cHAKIAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA4YmNmYjQ5Li4yYTYyYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTA0IEBACisyMDE0LTA5
LTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBb
V0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QgaW4gV2ViS2l0Mi4gSXQncworICAgICAgICBpbXBsZW1lbnRlZCBzaW1pbGFyaWx5IHRvIHRo
ZSBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0CisgICAgICAgIHN1cHBvcnQuIFdoZW4gdGhl
IFdlYlBhZ2UgcmVxdWlyZXMgdGhpcyBwZXJtaXNzaW9uIGl0IHNlbmRzIGEKKyAgICAgICAgbWVz
c2FnZSB0byB0aGUgVUkgcHJvY2VzcyB3aGljaCBhdCBzb21lIHBvaW50IGdyYW50cyBvciBkZW5p
ZXMgdGhlCisgICAgICAgIHBlcm1pc3Npb24gYW5kIHNlbmRzIHRoZSByZXN1bHQgYmFjayB0byB0
aGUgV2ViUHJvY2Vzcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBHZW5lcmljIENNYWtl
IHN1cHBvcnQgZm9yIG5ldyBmaWxlcy4KKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZTogR1RL
LXNwZWNpZmljIG5ldyBmaWxlcy4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6IE5l
dyB0eXBlIGZvciBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAgICAgKiBTaGFyZWQv
QVBJT2JqZWN0Lmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aDogUGVybWlzc2lvblJlcXVlc3QgQVBJIG1hcHBpbmcuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oOiBOZXcgZGVjaWRlUG9saWN5IGhhbmRsZXIgZm9yIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwOiBEaXR0by4KKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmg6IFdLUGFnZVVJQ2xpZW50IHZl
cnNpb24gYnVtcCB0bworICAgICAgICA1LCBpbmNsdWRpbmcgdGhlIG5ldyBkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCBtZW1iZXIuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZCwgQyBBUEkKKyAg
ICAgICAgaW1wbGVtZW50YXRpb24gb2YgdGhlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lgor
ICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCk6CisgICAgICAg
IChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cpOgorICAgICAgICAoV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdERlbnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XZWJLaXQyX0MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNs
aWVudC5jcHA6ICBEZWNpZGVQb2xpY3kgaGFuZGxlcgorICAgICAgICBpbXBsZW1lbnRhdGlvbiBm
b3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZCwKKyAgICAgICAg
V2ViS2l0R1RLIEFQSSBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsIHZlcnkgc2ltaWxh
ciB0byB0aGUKKyAgICAgICAgb25lIHVzZWQgZm9yIEdlb2xvY2F0aW9uLgorICAgICAgICAod2Vi
a2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAgICh3ZWJraXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkpOgorICAgICAgICAod2Via2l0X3Blcm1pc3Npb25f
cmVxdWVzdF9pbnRlcmZhY2VfaW5pdCk6CisgICAgICAgICh3ZWJraXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdERpc3Bvc2UpOgorICAgICAgICAod2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lv
bl9nZXRfcGFyYW1ldGVycyk6CisgICAgICAgICh3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9u
X2dldF9vcmlnaW4pOgorICAgICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RH
ZXRQcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVl
c3RfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dENyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWw6IEV4cG9zZSBuZXcg
QVBJCisgICAgICAgIGluIGRvY3VtZW50YXRpb24uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dDogRGl0dG8uCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvd2Via2l0Mi5oOiBFeHBvc2UgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qg
QVBJLgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHA6IEFkZGVkLAorICAgICAgICBtYW5hZ2VyIHN0b3JpbmcgcGVuZGluZyBVc2Vy
TWVkaWFQZXJtaXNzaW9uIHJlcXVlc3RzLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVlc3RzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVj
ZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDogQWRkZWQsIHBy
b3h5CisgICAgICAgIG9iamVjdCBmb3IgdGhlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0VHlw
ZS4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjptZWRpYVBhcmFtZXRl
cnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6IERlZmVyCisgICAg
ICAgIFVzZXJQZXJtaXNzaW9uUmVxdWVzdCB0byB0aGUgVUlDbGllbnQuCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW46IE5ldyBtZXNzYWdlIHRvIGhhbmRsZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdHMuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmNwcDogQWRkZWQsCisgICAgICAgIFdlYlByb2Nlc3Mgc2lkZSBvZiB0aGUgVXNlclJl
cXVlc3RNYW5hZ2VyLCBrZWVwaW5nIHRyYWNrIG9mIGVhY2gKKyAgICAgICAgcGVybWlzc2lvbiBy
ZXF1ZXN0LgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZVJlcXVlc3RJRCk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVk
aWFQZXJtaXNzaW9uRGVjaXNpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0v
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcDogQWRkZWQsCisg
ICAgICAgIFdlYlByb2Nlc3MgaW1wbGVtZW50YXRpb24gb2YgdGhlIFdlYkNvcmU6OlVzZXJNZWRp
YUNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVk
aWFDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0
cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OnJlcXVlc3RQZXJt
aXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1
ZXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOiBDcmVhdGUgdGhlCisgICAgICAg
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciBhbmQgcmVnaXN0ZXIgdGhlIFVzZXJN
ZWRpYUNsaWVudAorICAgICAgICB0byB0aGUgcGFnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6IERpc3BhdGNoCisgICAg
ICAgIGRlY2lzaW9uIHRvIG1hbmFnZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbjogTmV3IE1lc3NhZ2UgdG8gaGFuZGxlCisgICAgICAgIHBlcm1pc3Npb24gZGVjaXNp
b24gcmVzdWx0IGZyb20gdGhlIFVJIHByb2Nlc3MuCisKIDIwMTQtMDgtMzEgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgT2NjYXNpb25hbCBjcmFzaGVz
IChudWxsIGRlcmVmKSB1bmRlciBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmVuZE1hZ25pZmljYXRp
b25HZXN0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDcyZGE3YmIuLmI1OGIzMjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0yMTMsNiArMjEzLDkgQEAgbGlzdChBUFBF
TkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRl
bnRNYW5hZ2VyLmgKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFn
ZXJQcml2YXRlLmgKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFn
ZXIuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuaAorICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZS5oCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VmVyc2lvbi5j
cHAKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRWZXJzaW9uLmguaW4KICAgICBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMzU0LDYgKzM1Nyw3IEBAIHNldChX
ZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCiAgICAgJHtXRUJLSVQyX0RJUn0vVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnQuaAogICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50TWFuYWdlci5oCisgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aAogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQu
aAogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rv
ci5oCiAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViUmVzb3Vy
Y2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDhkMWU5NjUuLjExZWM1
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTEyNyw2ICsxMjcsNyBA
QCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Byb3RlY3Rpb25TcGFjZSogV0tQcm90ZWN0
aW9uU3BhY2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1RleHRDaGVja2VyKiBX
S1RleHRDaGVja2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTZXNzaW9uKiBX
S1Nlc3Npb25SZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Nlc3Npb25TdGF0ZSog
V0tTZXNzaW9uU3RhdGVSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmOwogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWJyYXRpb24qIFdLVmlicmF0aW9uUmVmOwogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWV3cG9ydEF0dHJpYnV0ZXMqIFdLVmlld3BvcnRB
dHRyaWJ1dGVzUmVmOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggNmRmNDkxOC4u
MzExMmVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtMTMyLDYgKzEzMiw3IEBA
IHB1YmxpYzoKICAgICAgICAgUHJlZmVyZW5jZXMsCiAgICAgICAgIFNlc3Npb24sCiAgICAgICAg
IFRleHRDaGVja2VyLAorICAgICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKICAgICAg
ICAgVmlicmF0aW9uLAogICAgICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMsCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCAxY2ExNWUzLi5lZWJjZmJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC01MCw2ICs1
MCw3IEBAIGNsYXNzIEltbXV0YWJsZURpY3Rpb25hcnk7CiBjbGFzcyBOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViV2hlZWxFdmVudDsKIGNsYXNzIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0OworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsK
IGNsYXNzIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYkZyYW1l
UHJveHk7CiBjbGFzcyBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOwpAQCAtMTIyLDYgKzEyMyw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBydW5PcGVuUGFuZWwoV2ViS2l0OjpXZWJQYWdl
UHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBXZWJLaXQ6OldlYk9wZW5QYW5lbFBhcmFt
ZXRlcnMqLCBXZWJLaXQ6OldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKSB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVBy
b3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6R2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdFByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdl
UHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2lu
KiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KikgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYlNlY3VyaXR5T3Jp
Z2luKiwgV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCopIHsgcmV0dXJuIGZh
bHNlOyB9CiAKICAgICAvLyBQcmludGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaAppbmRleCA4MDIyMWE5Li41ZjQ0YTY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC02Myw2ICs2Myw3IEBAIGNsYXNzIEF1dGhl
bnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcjsKIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdDsKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBj
bGFzcyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQmFja0Zvcndh
cmRMaXN0OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKQEAgLTE0Niw2ICsxNDcsNyBA
QCBXS19BRERfQVBJX01BUFBJTkcoV0tSZW5kZXJMYXllclJlZiwgV2ViUmVuZGVyTGF5ZXIpCiBX
S19BRERfQVBJX01BUFBJTkcoV0tSZW5kZXJPYmplY3RSZWYsIFdlYlJlbmRlck9iamVjdCkKIFdL
X0FERF9BUElfTUFQUElORyhXS1Nlc3Npb25TdGF0ZVJlZiwgQVBJOjpTZXNzaW9uU3RhdGUpCiBX
S19BRERfQVBJX01BUFBJTkcoV0tUZXh0Q2hlY2tlclJlZiwgV2ViVGV4dENoZWNrZXIpCitXS19B
RERfQVBJX01BUFBJTkcoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiwgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1ZpYnJhdGlvblJl
ZiwgV2ViVmlicmF0aW9uUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tWaWV3cG9ydEF0dHJp
YnV0ZXNSZWYsIFdlYlZpZXdwb3J0QXR0cmlidXRlcykKIFdLX0FERF9BUElfTUFQUElORyhXS0lu
c3BlY3RvclJlZiwgV2ViSW5zcGVjdG9yUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCmluZGV4IDNjMDA2YmMuLjMzNmY2MjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHRlbXBsYXRlPD4g
c3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VQb2xpY3lDbGllbnRCYXNlPiB7CiB9OwogCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnRCYXNlPiB7Ci0gICAgdHlw
ZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFn
ZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQ+IFZlcnNpb25z
OworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVu
dFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0
LCBXS1BhZ2VVSUNsaWVudFY1PiBWZXJzaW9uczsKIH07CiAKIH0KQEAgLTE0OTcsNiArMTQ5Nywx
NSBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3Qg
V0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KIAorICAgICAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFt
ZSwgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkqIHBlcm1pc3Npb25SZXF1ZXN0KSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgbV9jbGllbnQu
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QodG9BUEkocGFnZSksIHRv
QVBJKGZyYW1lKSwgdG9BUEkob3JpZ2luKSwgdG9BUEkocGVybWlzc2lvblJlcXVlc3QpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0KKwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJTZWN1cml0eU9yaWdpbiogb3Jp
Z2luLCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvblJlcXVlc3QpIG92
ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5
Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCmluZGV4IDQwMzc3ZDYuLmExZWEwZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCkBA
IC04OSw2ICs4OSw3IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdl
Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjCiB0eXBlZGVmIHZvaWQgKCpX
S1BhZ2VEaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxsYmFjaykoV0tQ
YWdlUmVmIHBhZ2UsIFdLUG9pbnQgbW91c2VEb3duUG9zaXRpb24sIFdLSGl0VGVzdFJlc3VsdFJl
ZiBoaXRUZXN0UmVzdWx0LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3NDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRDYW5jZWxUcmFja2luZ1BvdGVudGlh
bExvbmdNb3VzZVByZXNzQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYgdXNlckRh
dGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKIAogLy8gRGVwcmVjYXRlZCAgICAKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQ
YWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJl
ZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pOwpAQCAtMzc2LDYgKzM3Nyw3MyBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFY0
IHsKICAgICBXS1BhZ2VEaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzQ2Fs
bGJhY2sgICAgICAgICAgICAgIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJl
c3M7CiB9IFdLUGFnZVVJQ2xpZW50VjQ7CiAKK3R5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50
VjUgeworICAgIFdLUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS1Bh
Z2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAg
ICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VV
SUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNob3dQYWdlOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2U7CisgICAgV0tQYWdlVGFrZUZvY3Vz
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtl
Rm9jdXM7CisgICAgV0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmb2N1czsKKyAgICBXS1BhZ2VVbmZvY3VzQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZm9jdXM7Cisg
ICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlw
dENvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZh
U2NyaXB0Q29uZmlybTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAg
V0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRTdGF0dXNUZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNzaW5nUGx1Z2lu
QnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgIG1pc3NpbmdQ
bHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlRGlk
Tm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWROb3RIYW5kbGVLZXlFdmVudDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2ZW50
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdoZWVs
RXZlbnQ7CisgICAgV0tQYWdlR2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlU2V0
VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZXRUb29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklzVmlzaWJsZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNpYmxl
OworICAgIFdLUGFnZVNldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRTdGF0
dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c0JhcklzVmlzaWJsZTsK
KyAgICBXS1BhZ2VHZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlzUmVzaXphYmxlOworICAgIFdLUGFnZVNldElzUmVzaXphYmxlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNSZXNpemFi
bGU7CisgICAgV0tQYWdlR2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VTZXRXaW5kb3dG
cmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdp
bmRvd0ZyYW1lOworICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOwor
ICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGlkRHJhdzsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEaWRTY3JvbGw7Cisg
ICAgV0tQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBleGNlZWRlZERhdGFiYXNlUXVvdGE7CisgICAgV0tQYWdlUnVuT3BlblBh
bmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5P
cGVuUGFuZWw7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdENhbGxiYWNrICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0OworICAgIFdLUGFnZUhlYWRlckhlaWdodENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0OworICAgIFdLUGFnZUZv
b3RlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZm9vdGVySGVpZ2h0OworICAgIFdLUGFnZURyYXdIZWFkZXJDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0hlYWRlcjsKKyAgICBXS1BhZ2VE
cmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRyYXdGb290ZXI7CisgICAgV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludEZyYW1lOworICAgIFdLUGFnZVVJ
Q2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcnVuTW9kYWw7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2VkIHRvIGJlIGRpZENv
bXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQorICAgIFdLUGFnZVNhdmVEYXRhVG9GaWxlSW5E
b3dubG9hZHNGb2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgc2F2ZURhdGFUb0Zp
bGVJbkRvd25sb2Fkc0ZvbGRlcjsKKyAgICBXS1BhZ2VTaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVycnVwdEphdmFT
Y3JpcHQ7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdl
OworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQYWdlRGVj
aWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAg
ICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1Bh
Z2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNl
V2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0
aFYxOworCisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2Vy
OworICAgIFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVuYXZhaWxhYmxl
UGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgdW5hdmFp
bGFibGVQbHVnaW5CdXR0b25DbGlja2VkOworICAgIAorICAgIC8vIFZlcnNpb24gMy4KKyAgICBX
S1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA0LgorICAg
IFdLUGFnZURpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzc0NhbGxiYWNrICAg
ICAgICAgICAgICAgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzOworICAg
IFdLUGFnZURpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3M7CisgICAgV0tQYWdlRGlkQ2Fu
Y2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzc0NhbGxiYWNrICAgICAgICAgICAgICBk
aWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzOworCisgICAgLy8gVmVyc2lv
biA1LgorICAgIFdLUGFnZURlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
Q2FsbGJhY2sgICAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3Q7Cit9IFdLUGFnZVVJQ2xpZW50VjU7CisKIGVudW0geyBrV0tQYWdlVUlDbGllbnRDdXJy
ZW50VmVyc2lvbiBXS19FTlVNX0RFUFJFQ0FURUQoIlVzZSBhbiBleHBsaWNpdCB2ZXJzaW9uIG51
bWJlciBpbnN0ZWFkIikgPSAyIH07CiB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudCB7CiAg
ICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2ZXJzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1ZmQzZTYyOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmNwcApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgiCisKKyNpbmNs
dWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSAiV0tBUElD
YXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQSShVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpBUElUeXBlKTsKK30KKwordm9pZCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikKK3sKKyAgICB0b0ltcGwodXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RSZWYpLT5hbGxvdygpOworfQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3REZW55KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYpCit7CisgICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UmVmKS0+ZGVueSgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYThjZjBhMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmgKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gK
KworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRl
cm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEdldFR5cGVJRCgpOworCitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdCk7CitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2Vu
ZGlmIC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaCAqLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oCmluZGV4IDVhNzEyY2QuLmUzMmJhY2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmgKQEAgLTU3LDYgKzU3LDcg
QEAKICNpbmNsdWRlIDxXZWJLaXQvV0tVUkwuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tVUkxSZXF1
ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLVVJMUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oPgogCiAjaWYgZGVmaW5lZChfX09CSkNf
XykgJiYgX19PQkpDX18KICNpbXBvcnQgPFdlYktpdC9XS1ZpZXcuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCA5ZDZh
OGVjLi4wZWM5NTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VUlDbGllbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiV2ViS2l0
TmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAj
aW5jbHVkZSAiV2ViS2l0VVJJUmVxdWVzdFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3
QmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgogI2luY2x1
ZGUgIldlYktpdFdpbmRvd1Byb3BlcnRpZXNQcml2YXRlLmgiCkBAIC0xNTgsNiArMTU5LDEzIEBA
IHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHZpcnR1YWwgYm9v
bCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkq
LCBXZWJGcmFtZVByb3h5KiwgV2ViU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBwZXJtaXNzaW9uUmVxdWVzdCkgb3ZlcnJpZGUK
KyAgICB7CisgICAgICAgIEdSZWZQdHI8V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+
IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0Q3JlYXRlKHBlcm1pc3Npb25SZXF1ZXN0LCBzZWN1cml0eU9yaWdpbikp
OworICAgICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywg
V0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5nZXQo
KSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICB2aXJ0dWFsIHZvaWQgcHJp
bnRGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiBmcmFtZSkgb3ZlcnJpZGUKICAg
ICB7CiAgICAgICAgIHdlYmtpdFdlYlZpZXdQcmludEZyYW1lKG1fd2ViVmlldywgZnJhbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmViZDdjMDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5j
cHAKQEAgLTAsMCArMSwxOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgiCisKKyNpbmNsdWRl
ICJJbW11dGFibGVEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNp
bmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSAiV2Vi
S2l0RW51bVR5cGVzLmgiCisjaW5jbHVkZSAiV2ViS2l0UGVybWlzc2lvblJlcXVlc3QuaCIKKyNp
bmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKKyNpbmNs
dWRlIDxnbGliL2dpMThuLWxpYi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKwor
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworLyoqCisgKiBTRUNUSU9OOiBXZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdAorICogQFNob3J0X2Rlc2NyaXB0aW9uOiBBIHBlcm1pc3Npb24g
cmVxdWVzdCBmb3IgYWNjZXNzaW5nIHVzZXIncyBhdWRpby92aWRlbyBkZXZpY2VzLgorICogQFRp
dGxlOiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAorICogQFNlZV9hbHNvOiAjV2Vi
S2l0UGVybWlzc2lvblJlcXVlc3QsICNXZWJLaXRXZWJWaWV3CisgKgorICogV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QgcmVwcmVzZW50cyBhIHJlcXVlc3QgZm9yCisgKiBwZXJtaXNz
aW9uIHRvIGRlY2lkZSB3aGV0aGVyIFdlYktpdCBzaG91bGQgYmUgYWxsb3dlZCB0byBhY2Nlc3Mg
dGhlIHVzZXIncworICogYXVkaW8gYW5kIHZpZGVvIHNvdXJjZSBkZXZpY2VzIHdoZW4gcmVxdWVz
dGVkIHRocm91Z2h0IHRoZSBnZXRVc2VyTWVkaWEgQVBJLgorICovCisKK2VudW0geworICAgIFBS
T1BfMCwKKyAgICBQUk9QX09SSUdJTiwKKyAgICBQUk9QX1BBUkFNRVRFUlMKK307CisKK3N0YXRp
YyB2b2lkIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQoV2ViS2l0UGVy
bWlzc2lvblJlcXVlc3RJZmFjZSopOworCitzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZSB7CisgICAgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk+IHJlcXVlc3Q7CisgICAgdWludDMyX3QgbWVkaWFQYXJhbWV0ZXJzOworICAgIGJvb2wg
bWFkZURlY2lzaW9uOworICAgIGdjaGFyKiBvcmlnaW47Cit9OworCitXRUJLSVRfREVGSU5FX1RZ
UEVfV0lUSF9DT0RFKAorICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCB3ZWJr
aXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QsCisgICAgR19J
TVBMRU1FTlRfSU5URVJGQUNFKFdFQktJVF9UWVBFX1BFUk1JU1NJT05fUkVRVUVTVCwgd2Via2l0
X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5pdCkpCisKK3N0YXRpYyB2b2lkIHdlYmtp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV2ViS2l0UGVybWlzc2lvblJlcXVlc3Qq
IHJlcXVlc3QpCit7CisgICAgQVNTRVJUKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05f
UkVRVUVTVChyZXF1ZXN0KSk7CisKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGUqIHByaXYgPSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVx
dWVzdCktPnByaXY7CisKKyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBhIHRpbWUuCisgICAg
aWYgKHByaXYtPm1hZGVEZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpdi0+bWFk
ZURlY2lzaW9uID0gdHJ1ZTsKKyAgICBwcml2LT5yZXF1ZXN0LT5hbGxvdygpOworfQorCitzdGF0
aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV2ViS2l0UGVybWlz
c2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgQVNTRVJUKFdFQktJVF9JU19VU0VSX01FRElB
X1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSk7CisKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9O
X1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisKKyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBh
IHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVEZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKKyAgICBwcml2LT5yZXF1ZXN0LT5kZW55KCk7
Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2lu
aXQoV2ViS2l0UGVybWlzc2lvblJlcXVlc3RJZmFjZSogaWZhY2UpCit7CisgICAgaWZhY2UtPmFs
bG93ID0gd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdzsKKyAgICBpZmFjZS0+
ZGVueSA9IHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueTsKK30KKworc3RhdGlj
IHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REaXNwb3NlKEdPYmplY3QqIG9i
amVjdCkKK3sKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCA9
IFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChvYmplY3QpOworCisgICAgZ19m
cmVlKHJlcXVlc3QtPnByaXYtPm9yaWdpbik7CisKKyAgICAvLyBEZWZhdWx0IGJlaGF2aW91ciB3
aGVuIG5vIGRlY2lzaW9uIGhhcyBiZWVuIG1hZGUgaXMgZGVueWluZyB0aGUgcmVxdWVzdC4KKyAg
ICB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0VCS0lUX1BFUk1JU1NJT05f
UkVRVUVTVChvYmplY3QpKTsKKyAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfdXNlcl9tZWRpYV9w
ZXJtaXNzaW9uX3JlcXVlc3RfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZShvYmplY3QpOworfQorCitn
dWludDMyIHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fZ2V0X3BhcmFtZXRlcnMoV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3Qp
LCBXRUJLSVRfVVNFUl9NRURJQV9QQVJBTUVURVJTX05PTkUpOworCisgICAgcmV0dXJuIHJlcXVl
c3QtPnByaXYtPm1lZGlhUGFyYW1ldGVyczsKK30KKworLyoqCisgKiB3ZWJraXRfdXNlcl9tZWRp
YV9wZXJtaXNzaW9uX2dldF9vcmlnaW46CisgKiBAcmVxdWVzdDogYSAjV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QKKyAqCisgKiBPYnRhaW5zIHRoZSBVUkkgb2YgdGhlIHNlY3VyaXR5
IG9yaWdpbiBhc3NvY2lhdGVkIHdpdGggdGhlIHdlYiBwYWdlCisgKiByZXF1ZXN0aW5nIHRoZSBw
ZXJtaXNzaW9uIHRvIGFjY2VjIG1lZGlhIGRldmljZShzKS4KKyAqCisgKiBSZXR1cm5zOiB0aGUg
c2VjdXJpdHkgb3JpZ2luIFVSSSBvciBhbiBlbXB0eSBzdHJpbmcuCisgKi8KK2NvbnN0IGdjaGFy
KiB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX2dldF9vcmlnaW4oV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpLCAiIik7CisK
KyAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+b3JpZ2luOworfQorCitzdGF0aWMgdm9pZCB3ZWJr
aXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwg
Z3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwYXJhbVNwZWMpCit7Cisg
ICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QgPSBXRUJLSVRfVVNF
Ul9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqZWN0KTsKKworICAgIHN3aXRjaCAocHJvcElk
KSB7CisgICAgY2FzZSBQUk9QX09SSUdJTjoKKyAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZh
bHVlLCB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX2dldF9vcmlnaW4ocmVxdWVzdCkpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfUEFSQU1FVEVSUzoKKyAgICAgICAgZ192YWx1
ZV9zZXRfZmxhZ3ModmFsdWUsIHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fZ2V0X3BhcmFt
ZXRlcnMocmVxdWVzdCkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBH
X09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3Bl
Yyk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9u
X3JlcXVlc3RfY2xhc3NfaW5pdChXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNz
KiBrbGFzcykKK3sKKyAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xB
U1Moa2xhc3MpOworICAgIG9iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3REaXNwb3NlOworICAgIG9iamVjdENsYXNzLT5nZXRfcHJvcGVydHkgPSB3
ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFByb3BlcnR5OworCisgICAgLyoqCisg
ICAgICogV2ViS2l0VXNlclBlcm1pc3Npb25SZXF1ZXN0Om9yaWdpbjoKKyAgICAgKgorICAgICAq
IFRoZSBzZWN1cml0eSBvcmlnaW4gVVJMIGFzc29jaWF0ZWQgd2l0aCB0aGUgd2ViIHBhZ2UgcmVx
dWVzdGluZyB0aGUgcGVybWlzc2lvbi4KKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0
YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX09SSUdJTiwKKyAgICAgICAgZ19wYXJhbV9z
cGVjX3N0cmluZygib3JpZ2luIiwgXygiT3JpZ2luIiksCisgICAgICAgICAgICBfKCJUaGUgc2Vj
dXJpdHkgb3JpZ2luIFVSTCBhc3NvY2lhdGVkIHdpdGggdGhlIHdlYiBwYWdlIHJlcXVlc3Rpbmcg
dGhlIHBlcm1pc3Npb24iKSwKKyAgICAgICAgICAgIDAsIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkp
OworCisgICAgLyoqCisgICAgICogV2ViS2l0VXNlclBlcm1pc3Npb25SZXF1ZXN0OnBhcmFtZXRl
cnM6CisgICAgICoKKyAgICAgKiBUaGUgbWVkaWEgZGV2aWNlIHR5cGUocykgcmVxdWVzdGVkLCBl
aXRoZXIgYXVkaW8sIHZpZGVvIG9yIGJvdGguCisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9QQVJBTUVURVJTLAorICAgICAgICBn
X3BhcmFtX3NwZWNfZmxhZ3MoInBhcmFtZXRlcnMiLCBfKCJNZWRpYSBwYXJhbWV0ZXJzIiksCisg
ICAgICAgICAgICBfKCJUaGUgbWVkaWEgZGV2aWNlIHR5cGUocykgcmVxdWVzdGVkLCBlaXRoZXIg
YXVkaW8sIHZpZGVvIG9yIGJvdGgiKSwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1VTRVJfTUVE
SUFfUEFSQU1FVEVSUywKKyAgICAgICAgICAgIFdFQktJVF9VU0VSX01FRElBX1BBUkFNRVRFUlNf
Tk9ORSwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCit9CisKK1dlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdENyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiByZXF1ZXN0LCBXZWJT
ZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4pCit7CisgICAgV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QqIHVzZXJtZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gV0VCS0lUX1VTRVJf
TUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9VU0VSX01F
RElBX1BFUk1JU1NJT05fUkVRVUVTVCwgTlVMTCkpOworICAgIHVpbnQzMl90IG1lZGlhUGFyYW1l
dGVycyA9IDA7CisKKyAgICBSZWZQdHI8SW1tdXRhYmxlRGljdGlvbmFyeT4gcGFyYW1ldGVycyA9
IHJlcXVlc3QtPm1lZGlhUGFyYW1ldGVycygpOworICAgIEFQSTo6Qm9vbGVhbiogYXVkaW8gPSBy
ZWludGVycHJldF9jYXN0PEFQSTo6Qm9vbGVhbio+KHBhcmFtZXRlcnMtPmdldCgiYXVkaW8iKSk7
CisgICAgQVBJOjpCb29sZWFuKiB2aWRlbyA9IHJlaW50ZXJwcmV0X2Nhc3Q8QVBJOjpCb29sZWFu
Kj4ocGFyYW1ldGVycy0+Z2V0KCJ2aWRlbyIpKTsKKworICAgIGlmIChhdWRpby0+dmFsdWUoKSkK
KyAgICAgICAgbWVkaWFQYXJhbWV0ZXJzIHw9IFdFQktJVF9VU0VSX01FRElBX1BBUkFNRVRFUlNf
QVVESU87CisgICAgaWYgKHZpZGVvLT52YWx1ZSgpKQorICAgICAgICBtZWRpYVBhcmFtZXRlcnMg
fD0gV0VCS0lUX1VTRVJfTUVESUFfUEFSQU1FVEVSU19WSURFTzsKKworICAgIHVzZXJtZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LT5wcml2LT5yZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICB1c2VybWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC0+cHJpdi0+bWVkaWFQYXJhbWV0ZXJzID0gbWVkaWFQYXJhbWV0ZXJz
OworCisgICAgU3RyaW5nIG9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luLT5zZWN1cml0eU9yaWdpbigp
LnRvU3RyaW5nKCk7CisgICAgaWYgKCFvcmlnaW4pCisgICAgICAgIG9yaWdpbiA9ICIiOworICAg
IHVzZXJtZWRpYVBlcm1pc3Npb25SZXF1ZXN0LT5wcml2LT5vcmlnaW4gPSBnX3N0cmR1cChvcmln
aW4udXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIHVzZXJtZWRpYVBlcm1pc3Npb25SZXF1ZXN0
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYWY3ODBhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQy
X0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9u
bHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlm
CisKKyNpZm5kZWYgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBX
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVj
dC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xT
CisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QgICAg
ICAgICAgICAod2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlKCkp
CisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChvYmopICAgICAg
ICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9VU0VS
X01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Mo
a2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVf
VVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JF
UVVFU1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VC
S0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRf
SVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hF
Q0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9O
X1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1Rf
R0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lU
X1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QgICAgICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Owor
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgICBX
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSBXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGU7CisKKy8qKgorICogV2ViS2l0VXNlck1lZGlhUGFyYW1ldGVy
czoKKyAqIEBXRUJLSVRfVVNFUl9NRURJQV9QQVJBTUVURVJTX05PTkU6IG5vIG1lZGlhLiBTaG91
bGRuJ3QgaGFwcGVuLgorICogQFdFQktJVF9VU0VSX01FRElBX1BBUkFNRVRFUlNfQVVESU86IEF1
ZGlvIGlucHV0IGRldmljZS4KKyAqIEBXRUJLSVRfVVNFUl9NRURJQV9QQVJBTUVURVJTX1ZJREVP
OiBWaWRlbyBpbnB1dCBkZXZpY2UuCisgKgorICogRW51bSB2YWx1ZXMgdXNlZCB0byBzcGVjaWZ5
IHdoaWNoIHR5cGUgb2YgbWVkaWEgZGV2aWNlIGlzIHJlcXVlc3RlZC4KKyAqLwordHlwZWRlZiBl
bnVtIHsKKyAgV0VCS0lUX1VTRVJfTUVESUFfUEFSQU1FVEVSU19OT05FLAorCisgIFdFQktJVF9V
U0VSX01FRElBX1BBUkFNRVRFUlNfQVVESU8gPSAxIDw8IDAsCisgIFdFQktJVF9VU0VSX01FRElB
X1BBUkFNRVRFUlNfVklERU8gPSAxIDw8IDEKK30gV2ViS2l0VXNlck1lZGlhUGFyYW1ldGVyczsK
Kworc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCB7CisgICAgR09iamVj
dCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7
CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2
b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJ
VF9BUEkgR1R5cGUKK3dlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlw
ZSAodm9pZCk7CisKK2d1aW50MzIgd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9nZXRfcGFy
YW1ldGVycyhXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCk7Citjb25z
dCBnY2hhciogd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9nZXRfb3JpZ2luKFdlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KTsKKworR19FTkRfREVDTFMKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkNzIxOTIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUuaApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0
byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNp
Zm5kZWYgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKKyNkZWZpbmUg
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKKworI2luY2x1ZGUgIldl
YktpdFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5oIgorCitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogd2Via2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RDcmVhdGUoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiopOworCisjZW5kaWYgLy8gV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCmlu
ZGV4IDY2Mzg3ZGYuLmFmZmJkZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbApAQCAtMjQsNiArMjQs
NyBAQAogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRQZXJtaXNzaW9uUmVxdWVzdC54
bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0TmF2aWdh
dGlvbkFjdGlvbi54bWwiLz4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dl
YktpdFBvbGljeURlY2lzaW9uLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJL
aXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24ueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0i
eG1sL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24ueG1sIi8+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rp
b25zLnR4dAppbmRleCA4NWVjZjcxLi5iMjFmMmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50
eHQKQEAgLTU5MSw2ICs1OTEsMjcgQEAgd2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2dldF90eXBl
CiA8L1NFQ1RJT04+CiAKIDxTRUNUSU9OPgorPEZJTEU+V2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3Q8L0ZJTEU+CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAorV2ViS2l0
VXNlck1lZGlhUGFyYW1ldGVycword2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9nZXRfcGFy
YW1ldGVycword2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9nZXRfb3JpZ2luCisKKzxTVUJT
RUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDbGFzcwor
V0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9VU0VSX01F
RElBX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9S
RVFVRVNUCitXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1MKK1dFQktJ
VF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUworV0VCS0lUX1VTRVJfTUVE
SUFfUEVSTUlTU0lPTl9SRVFVRVNUX0dFVF9DTEFTUworCis8U1VCU0VDVElPTiBQcml2YXRlPgor
V2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlCit3ZWJraXRfdXNlcl9tZWRp
YV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKworPFNFQ1RJT04+CiA8
RklMRT5XZWJLaXRQb2xpY3lEZWNpc2lvbjwvRklMRT4KIFdlYktpdFBvbGljeURlY2lzaW9uCiB3
ZWJraXRfcG9saWN5X2RlY2lzaW9uX2Rvd25sb2FkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay93ZWJraXQyLmgKaW5kZXggZDc5MTYzZS4uYjc4ZGMyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaApAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1
ZGUgPHdlYmtpdDIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIv
V2ViS2l0VXNlckNvbnRlbnQuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVzZXJDb250ZW50
TWFuYWdlci5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFZlcnNpb24uaD4KICNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdFdlYkNvbnRleHQuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYklu
c3BlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk3ZTU5NQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv
ZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgi
CisKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHku
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2Uo
cGFnZSkKK3sKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6aW52YWxpZGF0ZVJlcXVlc3RzKCkKK3sKKyAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3Bl
bmRpbmdSZXF1ZXN0cy52YWx1ZXMoKSkKKyAgICAgICAgcmVxdWVzdC0+aW52YWxpZGF0ZSgpOwor
CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKTsKK30KKworUGFzc1JlZlB0cjxVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6Y3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhdWRpbywg
Ym9vbCB2aWRlbykKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eT4gcmVxdWVzdCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSgqdGhp
cywgdXNlck1lZGlhSUQsIGF1ZGlvLCB2aWRlbyk7CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuYWRk
KHVzZXJNZWRpYUlELCByZXF1ZXN0LmdldCgpKTsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNl
KCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRp
ZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQs
IGJvb2wgYWxsb3dlZCkKK3sKKyAgICBpZiAoIW1fcGFnZS5pc1ZhbGlkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmICghbV9wZW5kaW5nUmVxdWVzdHMudGFrZSh1c2VyTWVkaWFJRCkpCisg
ICAgICAgIHJldHVybjsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgbV9wYWdlLnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1lZGlhUGVybWlz
c2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTE3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CisKKyAgICB2b2lkIGludmFs
aWRhdGVSZXF1ZXN0cygpOworCisgICAgLy8gQ3JlYXRlIGEgcmVxdWVzdCB0byBiZSBwcmVzZW50
ZWQgdG8gdGhlIHVzZXIuCisgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGF1ZGlvLCBi
b29sIHZpZGVvKTsKKworICAgIC8vIENhbGxlZCBieSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5IHdoZW4gYSBkZWNpc2lvbiBpcyBtYWRlIGJ5IHRoZSB1c2VyLgorICAgIHZvaWQgZGlk
UmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdyk7
CisKK3ByaXZhdGU6CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBXZWJQYWdlUHJveHkm
IG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxNGU1ZDQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKwor
I2luY2x1ZGUgIkFQSU51bWJlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVkaW8sIGJv
b2wgdmlkZW8pCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fdXNlck1lZGlhSUQo
dXNlck1lZGlhSUQpCit7CisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxBUEk6Ok9iamVjdD4+
IHBhcmFtZXRlcnNNYXA7CisgICAgcGFyYW1ldGVyc01hcC5zZXQoImF1ZGlvIiwgQVBJOjpCb29s
ZWFuOjpjcmVhdGUoYXVkaW8pKTsKKyAgICBwYXJhbWV0ZXJzTWFwLnNldCgidmlkZW8iLCBBUEk6
OkJvb2xlYW46OmNyZWF0ZSh2aWRlbykpOworICAgIG1fbWVkaWFQYXJhbWV0ZXJzID0gSW1tdXRh
YmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShwYXJhbWV0ZXJzTWFwKSk7Cit9CisKK3Zv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3coKQoreworICAgIG1fbWFu
YWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQs
IHRydWUpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnko
KQoreworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9u
KG1fdXNlck1lZGlhSUQsIGZhbHNlKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBtX21hbmFnZXIuaW52YWxpZGF0ZVJlcXVl
c3RzKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDQ3MjcyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxp
YSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m
dHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkltbXV0YWJs
ZURpY3Rpb25hcnkuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk7
CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgOiBwdWJsaWMgQVBJOjpP
YmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdD4g
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYg
bWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkobWFuYWdlciwgdXNlck1lZGlhSUQsIGF1ZGlvLCB2aWRlbykpOworICAgIH0KKwor
ICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRlbnkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0
ZSgpOworCisgICAgUGFzc1JlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBtZWRpYVBhcmFtZXRl
cnMoKSBjb25zdCB7IHJldHVybiBtX21lZGlhUGFyYW1ldGVyczsgfQorCitwcml2YXRlOgorICAg
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhdWRpbywgYm9vbCB2
aWRlbyk7CisKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbV9t
YW5hZ2VyOworICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhSUQ7CisgICAgUmVmUHRyPEltbXV0YWJs
ZURpY3Rpb25hcnk+IG1fbWVkaWFQYXJhbWV0ZXJzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNGZiNzE0MC4uMWZkMWE1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTU1LDYg
KzU1LDcgQEAKICNpbmNsdWRlICJQcmludEluZm8uaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5o
IgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0uaCIKQEAgLTI4MCw2ICsyODEsNyBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQ
YWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIHVpbgogI2Vu
ZGlmCiAgICAgLCBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQog
ICAgICwgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCisgICAg
LCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKICAgICAsIG1fdmll
d1N0YXRlKFZpZXdTdGF0ZTo6Tm9GbGFncykKICAgICAsIG1fdmlld1dhc0V2ZXJJbldpbmRvdyhm
YWxzZSkKICAgICAsIG1fYmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRl
KCp0aGlzKSkKQEAgLTQ2NTUsNiArNDY1NywxOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVz
dEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsCiAg
ICAgcmVxdWVzdC0+ZGVueSgpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJh
bWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pCit7
CisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQp
OworICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUpOworCisgICAgUmVmUHRyPFdlYlNlY3VyaXR5T3Jp
Z2luPiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyKG9yaWdpbklkZW50aWZpZXIpKTsKKyAgICBSZWZQ
dHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gcmVxdWVzdCA9IG1fdXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNyZWF0ZVJlcXVlc3QodXNlck1lZGlhSUQsIGF1ZGlv
LCB2aWRlbyk7CisKKyAgICBpZiAoIW1fdWlDbGllbnQtPmRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KHRoaXMsIGZyYW1lLCBvcmlnaW4uZ2V0KCksIHJlcXVlc3QuZ2V0
KCkpKQorICAgICAgICByZXF1ZXN0LT5kZW55KCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5Ojpy
ZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0
cmluZyYgb3JpZ2luU3RyaW5nKQogewogICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0
SUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGJkZjY4YmYu
LmZjZmMxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQ1
LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgor
I2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5j
bHVkZSAiVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIgogI2luY2x1ZGUgIldLQmFzZS5o
IgogI2luY2x1ZGUgIldLUGFnZVByaXZhdGUuaCIKQEAgLTEyNCw2ICsxMjUsNyBAQCBjbGFzcyBE
cmFnRGF0YTsKIGNsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBjbGFzcyBJ
bnRTaXplOworY2xhc3MgTWVkaWFDb25zdHJhaW50c0ltcGw7CiBjbGFzcyBQcm90ZWN0aW9uU3Bh
Y2U7CiBjbGFzcyBSdW5Mb29wT2JzZXJ2ZXI7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CkBAIC0xMDMx
LDYgKzEwMzMsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1
cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50
RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgUGFzc1JlZlB0cjxNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseT4pOwog
ICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBTdHJpbmcm
IG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxC
eXRlc05lZWRlZCwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhOjpEZWxheWVkUmVwbHk+KTsKICAgICB2b2lkIHJlcXVl
c3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1
aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CisKKyAgICB2b2lkIHJl
cXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBib29sIGF1ZGlvLCBib29s
IHZpZGVvKTsKKwogICAgIHZvaWQgcnVuTW9kYWwoKTsKICAgICB2b2lkIG5vdGlmeVNjcm9sbGVy
VGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZvaWQg
cmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKTsKQEAg
LTEzNjcsNiArMTM3Miw4IEBAIHByaXZhdGU6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwog
ICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fbm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisK
ICAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlOwogICAgIGJvb2wgbV92
aWV3V2FzRXZlckluV2luZG93OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0YTZmZDU3Li5lOGE1YmViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI1
Niw2ICsyNTYsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIEdlb2xvY2F0
aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVp
bnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVu
dGlmaWVyKQogICAgIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgIyBNZWRpYVN0ZWFt
IG1lc3NhZ2VzCisgICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIs
IGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pCisjZW5kaWYKKwogICAgICMgTm90aWZpY2F0aW9uIG1l
c3NhZ2VzCiAgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVz
dElELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICBTaG93Tm90aWZpY2F0aW9uKFN0cmlu
ZyB0aXRsZSwgU3RyaW5nIGJvZHksIFN0cmluZyBpY29uVVJMLCBTdHJpbmcgdGFnLCBTdHJpbmcg
bGFuZywgU3RyaW5nIGRpciwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IG5vdGlm
aWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGM5MGQ3NzUuLjQ5NTY0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc4OCw2ICs3ODgsMTQgQEAK
IAkJM0Y4ODlEMTQxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNG
ODg5RDEyMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
bW0gKi87IH07CiAJCTNGODg5RDE1MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDNGODg5RDEzMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkuaCAqLzsgfTsKIAkJM0Y4ODlEMTcxODg3ODU5MzAwRkVBREFGIC8qIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzRjg4OUQwRDE4ODc2OTlDMDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tbSAqLzsgfTsKKwkJNEEzQ0MxOEExOUIwNjNFNzAwRDE0QUVGIC8qIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM5MTlBRjdCMDQwMDJFQkFCNSAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJCTRBM0NDMThC
MTlCMDY0MEYwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBG
M0ExOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmggKi87IH07CisJCTRBM0NDMThDMTlCMDY0MTUwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRBNDEwRjNCMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmNwcCAqLzsgfTsKKwkJNEEzQ0MxOEQxOUIwNjQxOTAwRDE0QUVGIC8q
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNDMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi87IH07CisJCTRBM0NDMThFMTlCMDdCODUw
MEQxNEFFRiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM1MTlBRjdBQzMwMDJFQkFC
NSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLzsgfTsKKwkJNEEzQ0MxOEYx
OUIwN0I4QTAwRDE0QUVGIC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM2MTlBRjdBQzMw
MDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNEE0MTBGNDQxOUFGN0IyNzAwMkVC
QUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0MjE5QUY3QjI3MDAyRUJB
QjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNEE0
MTBGNEExOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0ODE5QUY3QjgwMDAy
RUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAqLzsgfTsKIAkJNEY2MDE0MzIxNTVDNUFB
MjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9j
a2luZ1Jlc3BvbnNlTWFwLmggKi87IH07CiAJCTUxMDIxRTlDMTJCMTY3ODgwMDVDMDMzQyAvKiBX
ZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVu
dUNsaWVudE1hYy5tbSAqLzsgfTsKIAkJNTEwMjc0MzIxOTgxQUY4RTAwODE2NUVEIC8qIFdLT3Jp
Z2luRGF0YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI3OTks
NiArMjgwNywxNiBAQAogCQkzRjg4OUQxMjE4ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOyBwYXRoID0gaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJM0Y4ODlEMTMxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaDsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4ODlEMTYxODg3N0EyNDAwRkVB
REFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHBhdGggPSBpb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0QTQxMEYzNTE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNEE0MTBGMzYxOUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzOTE5
QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0QTQxMEYzQTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNEE0MTBGM0IxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTRBNDEwRjNDMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBG
NDIxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQx
MEY0MzE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEY0ODE5
QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVzZXJNZWRpYUNsaWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjQ5MTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVk
aWFDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVXNlck1lZGlh
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGNjAxNDMwMTU1QzVBMzIw
MDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEJsb2NraW5nUmVzcG9uc2VNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGliICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFj
aC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gU2VjSXRlbVNoaW0uZHlsaWI7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMDIxRTlCMTJCMTY3ODgw
MDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE0Myw2ICs1MTYxLDE1IEBACiAJCQlwYXRoID0gQ29j
b2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk0QTQxMEY0MTE5QUY3QjI3
MDAyRUJBQjUgLyogTWVkaWFTdHJlYW0gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNo
aWxkcmVuID0gKAorCQkJCTRBNDEwRjQyMTlBRjdCMjcwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICovLAorCQkJCTRBNDEwRjQzMTlBRjdCMjcwMDJFQkFC
NSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLywKKwkJCSk7CisJCQlw
YXRoID0gTWVkaWFTdHJlYW07CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1
MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC01NjAxLDYgKzU2MjgsNyBAQAogCQlCQzAzMkQ1QzEw
RjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGNDExOUFGN0IyNzAwMkVCQUI1IC8qIE1lZGlhU3Ry
ZWFtICovLAogCQkJCTUxMkUzNTJBMTMwQjU1OTkwMEFCRDE5QSAvKiBBcHBsaWNhdGlvbkNhY2hl
ICovLAogCQkJCTdDNkU3MEY4MThCMkQ0N0UwMEYyNEUyRSAvKiBjb2NvYSAqLywKIAkJCQkzMzA5
MzQ0QjEzMTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAqLywKQEAgLTU2MzgsNiArNTY2Niw4IEBA
CiAJCUJDMDMyRDVEMTBGNDM3MjIwMDU4QzE1QSAvKiBXZWJDb3JlU3VwcG9ydCAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGNDgxOUFGN0I4MDAw
MkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgKi8sCisJCQkJNEE0MTBGNDkxOUFGN0I4
MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5oICovLAogCQkJCTJEMjhGM0RGMTg4NUND
QjQwMDRCOUVBRSAvKiBpb3MgKi8sCiAJCQkJQkMxMTFBREUxMTJGNUI5QTAwMzM3QkFCIC8qIG1h
YyAqLywKIAkJCQkxQTcyODQ0NDE5NTlFRDEwMDAwN0JDRTUgLyogU2Vzc2lvblN0YXRlQ29udmVy
c2lvbi5jcHAgKi8sCkBAIC01NzQxLDYgKzU3NzEsMTAgQEAKIAkJQkMwMzJEQzMxMEY0MzgyNjAw
NThDMTVBIC8qIFVJUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJNEE0MTBGMzkxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQk0QTQxMEYzQTE5QUY3QjA0MDAyRUJB
QjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLywKKwkJCQk0
QTQxMEYzQjE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5jcHAgKi8sCisJCQkJNEE0MTBGM0MxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaCAqLywKIAkJCQkyREE5NDRBODE4ODRFOUFCMDBFRDg2REIgLyog
aW9zICovLAogCQkJCUJDMDMyREM0MTBGNDM4N0MwMDU4QzE1QSAvKiBBUEkgKi8sCiAJCQkJNTEy
RjU4OEQxMkE4ODM2RjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uICovLApAQCAtNTkxMSw2ICs1
OTQ1LDggQEAKIAkJQkMwQzM3NjYxMEY4MDc2NjAwNzZEN0NCIC8qIEMgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjM1MTlBRjdBQzMwMDJFQkFC
NSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk0QTQxMEYzNjE5
QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oICovLAogCQkJ
CTUxMjNDRjE4MTMzRDI1RTYwMDU2RjgwMCAvKiBjZyAqLywKIAkJCQk2RUU4NDlDNDEzNjhEOTA0
MDAzOEQ0ODEgLyogbWFjICovLAogCQkJCUJDQjYzNDc3MTE2QkYxMDYwMDYwMzIxNSAvKiBXZWJL
aXQyX0MuaCAqLywKQEAgLTcxMzcsNiArNzE3Myw3IEBACiAJCQkJMUFBNDFBQjUxMkMwMkVDNDAw
MkJFNjdCIC8qIEVkaXRvclN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUIxNUE4NTEzODQz
QTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBN0M2Q0RCMTM3ODk1MDgwMEI5QzA0RCAvKiBFbnZpcm9ubWVudFZhcmlhYmxlcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNEEzQ0MxOEYxOUIwN0I4QTAwRDE0QUVGIC8qIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTU3NUZCMTQ5NkI1MjYwMEE0
RUUwNiAvKiBFdmVudERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOTBDMUY0MTI2
NEZENzEwMDNFNDRENCAvKiBGaW5kQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5
MTAwNzExMjY2NzVDNDAwMTg0MkY1IC8qIEZpbmRJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovLApA
QCAtNzU0Nyw2ICs3NTg0LDcgQEAKIAkJCQk1MTgzNTNEQjE4ODVCRjhDMDBEOUZFNDQgLyogSURC
U2VyaWFsaXphdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFERjU5MUIxODkwNTI4RTAwNDND
MTQ1IC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTc0
NEYwMTI2MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1cEl0ZW0uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTRBM0NDMThEMTlCMDY0MTkwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0I5NDg0NzExRkY0QjY1MDAwMzJCMzkgLyogV2Vi
UG9wdXBNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU3NEU2MzEyNjdEMDgwMDA2RjBGMTIg
LyogV2ViUG9wdXBNZW51UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDOEVCMTE3MThEQjZB
MTkwMDc5MTdDMiAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC03
NTc0LDYgKzc2MTIsNyBAQAogCQkJCTM3NjA4ODFGMTUwNDEzRTkwMEZDODJDNyAvKiBXZWJSZW5k
ZXJPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjE3NDY1MTY0QzIxMzcwMDM3QTVDMSAv
KiBXZWJSZXNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMzNjc2MzAxMzBDOTk5
ODAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0QTNDQzE4QjE5QjA2NDBGMDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQUYwODlCMTkyNjdFRTUwMEI2Mzkw
QyAvKiBXS1VzZXJTY3JpcHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzMzY3NjU2MTMwQzlFQ0Ew
MDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmggaW4gSGVh
ZGVycyAqLywKQEAgLTg2NjIsNyArODcwMSw5IEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQ
aGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJ
CQk0QTQxMEY0NDE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUQyNEExMTZDQzNCOUUwMDdENTQ2MSAv
KiBDaGlsZFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNEE0MTBGNEExOUFGN0I4
MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTkw
NTEsNiArOTA5Miw3IEBACiAJCQkJMUEwRjI5RTMxMjBCNDQ0MjAwNTNEMUI5IC8qIFZpc2l0ZWRM
aW5rUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFERjYzMTIxOEUwQjdDODAwM0Ez
RTJBIC8qIERvd25sb2FkQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRjI5Q0IxMjBC
MzcxNjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rVGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NEEzQ0MxOEExOUIwNjNFNzAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzEzMzdGMTg1OTBBRTQwMEYzRUMw
NSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNFREExMkUy
MTUyQ0QxQUUwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTEyRTM1MkUxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTE3Myw2ICs5MjE1LDcgQEAKIAkJCQk1
MTgzNDU5MjEzNDUzMkU5MDA5MkI2OTYgLyogV2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxRDAyRjY0MTMyRUM1QjkwMEJFQUE5NiAvKiBXZWJJY29uRGF0YWJh
c2VNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU3MTkzQkUxOEMxNEE0
NDAwMkQwRjEyIC8qIFdLRm9ybVNlbGVjdENvbnRyb2wubW0gaW4gU291cmNlcyAqLywKKwkJCQk0
QTNDQzE4RTE5QjA3Qjg1MDBEMTRBRUYgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyRERGNzMxNjE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExQjI0
QTYxMzJFMDk1NzAwMDY1QTBDIC8qIFdlYkljb25EYXRhYmFzZVByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxRDAyRjZCMTMyRUM3MzcwMEJFQUE5NiAvKiBXZWJJY29uRGF0YWJhc2VQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTkzMzYsNiArOTM3OSw3IEBA
CiAJCQkJQkM0MDc2MjgxMjRGRjA0MDAwNjhGMjBBIC8qIFdLQ2VydGlmaWNhdGVJbmZvTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTE1RTc3MjcxODNERDZGNjAwMDcyMDNGIC8qIEFzeW5jUmVx
dWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0EyODRENjE0OTJGMkM3MDAxRjkwNDIgLyog
V0tDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNEEzQ0MxOEMxOUIwNjQxNTAwRDE0
QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEYwQzM2NTgxOEMwNTFCQTAwRjYwN0Q3IC8qIFJlbW90ZUxheWVyVHJlZUhvc3RJT1Mu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjBDMzY1QzE4QzA1Q0ExMDBGNjA3RDcgLyogUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNEE2
Mjk2MTQ3MzEzQTAwMDZDNjgxQSAvKiBXS0Nvbm5lY3Rpb25SZWYuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU2ZDdhZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVz
c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUg
dG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJQ
YWdlLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0RvY3VtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRnJhbWVMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3Rh
dGljIHVpbnQ2NF90IGdlbmVyYXRlUmVxdWVzdElEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3Qg
dW5pcXVlUmVxdWVzdElEID0gMTsKKyAgICByZXR1cm4gdW5pcXVlUmVxdWVzdElEKys7Cit9CisK
K1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwor
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChQYXNz
UmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHBycFJlcXVlc3QpCit7CisgICAgUmVmUHRyPFVzZXJN
ZWRpYVJlcXVlc3Q+IHJlcXVlc3QocHJwUmVxdWVzdCk7CisgICAgRnJhbWUqIGZyYW1lID0gcmVx
dWVzdC0+ZnJhbWUoKTsKKyAgICBBU1NFUlQoZnJhbWUpOworICAgIGlmICghZnJhbWUpIHsKKyAg
ICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOwor
ICAgIG1faWRUb1JlcXVlc3RNYXAuc2V0KHJlcXVlc3RJRCwgcmVxdWVzdCk7CisgICAgbV9yZXF1
ZXN0VG9JRE1hcC5zZXQocmVxdWVzdCwgcmVxdWVzdElEKTsKKworICAgIFdlYkZyYW1lKiB3ZWJG
cmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgQVNTRVJUKHdlYkZy
YW1lKTsKKworICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSByZXF1ZXN0LT5zZWN1cml0eU9y
aWdpbigpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUocmVxdWVzdElELCB3ZWJGcmFtZS0+ZnJhbWVJRCgp
LCBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpLCByZXF1ZXN0LT5hdWRpbygpLCByZXF1ZXN0
LT52aWRlbygpKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgdWludDY0
X3QgcmVxdWVzdElEID0gbV9yZXF1ZXN0VG9JRE1hcC50YWtlKHJlcXVlc3QpOworICAgIGlmICgh
cmVxdWVzdElEKQorICAgICAgICByZXR1cm47CisgICAgbV9pZFRvUmVxdWVzdE1hcC5yZW1vdmUo
cmVxdWVzdElEKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgcmVxdWVzdElE
LCBib29sIGFsbG93ZWQpCit7CisgICAgUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3Qg
PSBtX2lkVG9SZXF1ZXN0TWFwLnRha2UocmVxdWVzdElEKTsKKyAgICBpZiAoIXJlcXVlc3QpCisg
ICAgICAgIHJldHVybjsKKyAgICBtX3JlcXVlc3RUb0lETWFwLnJlbW92ZShyZXF1ZXN0KTsKKwor
ICAgIGlmIChhbGxvd2VkKQorICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVk
KCk7CisgICAgZWxzZQorICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NEZW5pZWQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQzNjkzMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRv
IHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lm
bmRlZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorI2RlZmluZSBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBVc2VyTWVkaWFSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViUGFnZTsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
V2ViUGFnZSYpOworCisgICAgdm9pZCBzdGFydFJlcXVlc3QoUGFzc1JlZlB0cjxXZWJDb3JlOjpV
c2VyTWVkaWFSZXF1ZXN0Pik7CisgICAgdm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJN
ZWRpYVJlcXVlc3QqKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25E
ZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKTsKKworcHJpdmF0ZToK
KyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFS
ZXF1ZXN0Pj4gSURUb1JlcXVlc3RNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxXZWJD
b3JlOjpVc2VyTWVkaWFSZXF1ZXN0PiwgdWludDY0X3Q+IFJlcXVlc3RUb0lETWFwOworICAgIElE
VG9SZXF1ZXN0TWFwIG1faWRUb1JlcXVlc3RNYXA7CisgICAgUmVxdWVzdFRvSURNYXAgbV9yZXF1
ZXN0VG9JRE1hcDsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVu
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI3M2M4ZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
VXNlck1lZGlhQ2xpZW50LmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2Vy
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVXNlck1lZGlhQ2xpZW50LmgiCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiVXNlck1lZGlhQ29udHJvbGxlci5oIgor
I2luY2x1ZGUgIlVzZXJNZWRpYVJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2Vy
TWVkaWFDbGllbnQoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2
b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6cGFnZURlc3Ryb3llZCgpCit7CisgICAgZGVsZXRlIHRo
aXM7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihQYXNz
UmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QpCit7CisgICAgbV9wYWdlLnVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLnN0YXJ0UmVxdWVzdChyZXF1ZXN0KTsKK30KKwor
dm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbFJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCog
cmVxdWVzdCkKK3sKKyAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KCkuY2FuY2VsUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Owor
CisjZW5kaWYgLy8gTUVESUFfU1RSRUFNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDQ1OWFmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGll
bnQuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBT
LkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFdlYlVzZXJNZWRp
YUNsaWVudF9oCisjZGVmaW5lIFdlYlVzZXJNZWRpYUNsaWVudF9oCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhQ2xpZW50Lmg+CisjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdl
OworCitjbGFzcyBXZWJVc2VyTWVkaWFDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6VXNlck1lZGlh
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJVc2VyTWVkaWFDbGllbnQoV2ViUGFnZSYpOworCitw
cml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCk7CisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVz
dD4pOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJl
cXVlc3QqKTsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBXZWJV
c2VyTWVkaWFDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDAwNjYwYzIuLmM5MWE2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTk2LDYgKzk2LDcgQEAKICNpbmNsdWRl
ICJXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJVbmRvU3RlcC5oIgog
I2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIldlYlVzZXJN
ZWRpYUNsaWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2hyb21l
Lmg+CkBAIC0yODIsNiArMjgzLDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQs
IGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxF
KEdFT0xPQ0FUSU9OKQogICAgICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cih0aGlzKQogI2VuZGlmCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAsIG1fdXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQorI2VuZGlmCiAgICAgLCBtX2NhblJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChwYXJhbWV0ZXJzLmNhblJ1bkJlZm9yZVVubG9hZENv
bmZpcm1QYW5lbCkKICAgICAsIG1fY2FuUnVuTW9kYWwocGFyYW1ldGVycy5jYW5SdW5Nb2RhbCkK
ICAgICAsIG1faXNSdW5uaW5nTW9kYWwoZmFsc2UpCkBAIC0zODksNiArMzkzLDkgQEAgV2ViUGFn
ZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCiAgICAgV2ViQ29y
ZTo6cHJvdmlkZURldmljZVByb3hpbWl0eVRvKG1fcGFnZS5nZXQoKSwgbmV3IFdlYkRldmljZVBy
b3hpbWl0eUNsaWVudCh0aGlzKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIFdlYkNvcmU6OnByb3ZpZGVVc2VyTWVkaWFUbyhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJVc2Vy
TWVkaWFDbGllbnQoKnRoaXMpKTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNU
T1IpCiAgICAgbV9wYWdlLT5zZXRSZW1vdGVJbnNwZWN0aW9uQWxsb3dlZCh0cnVlKTsKQEAgLTMy
NTEsNiArMzI1OCwxMyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsCiAgICAgbm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNz
aW9uRGVjaXNpb24obm90aWZpY2F0aW9uSUQsIGFsbG93ZWQpOwogfQogCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25E
ZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQoreworICAgIG1fdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNz
aW9uRGVjaXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQpOworfQorI2VuZGlmCisKICNpZiAhUExB
VEZPUk0oSU9TKQogdm9pZCBXZWJQYWdlOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBz
dGFydEJlZm9yZVNlbGVjdGlvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCmluZGV4IGJhYmE1MDYuLjZiNWFkNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUg
IlBsdWdpbi5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTaGFy
ZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RpY3RhdGlvbkFsdGVybmF0aXZlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yLmg+CkBAIC00
NDcsNiArNDQ4LDEwIEBAIHB1YmxpYzoKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlciYgZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBt
X2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
JiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX3VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsgfQorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1Mp
CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHNjcmVlblNpemUoKSBjb25zdDsKICAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgYXZhaWxhYmxlU2NyZWVuU2l6ZSgpIGNvbnN0OwpAQCAtMTAxOCw2ICsxMDIz
LDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNz
aW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7CiAKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKTsKKyNlbmRp
ZgorCiAgICAgdm9pZCBhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNl
bGVjdGlvbik7CiAgICAgdm9pZCBjaGFuZ2VTcGVsbGluZ1RvV29yZChjb25zdCBTdHJpbmcmIHdv
cmQpOwogI2lmIFVTRShBUFBLSVQpCkBAIC0xMTgyLDYgKzExOTEsMTAgQEAgcHJpdmF0ZToKICAg
ICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciBtX2dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciBtX3VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjsKKyNlbmRpZgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OlByaW50Q29udGV4dD4gbV9wcmludENvbnRleHQ7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIFJl
ZlB0cjxXZWJQcmludE9wZXJhdGlvbkd0az4gbV9wcmludE9wZXJhdGlvbjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5k
ZXggZWJmNzIwZC4uODdmNDA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTI2NCw2ICsyNjQsMTEgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkUmVjZWl2ZUdlb2xvY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvb2wgYWxsb3dl
ZCkKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAjIE1lZGlhU3RlYW0K
KyAgICBEaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBib29sIGFsbG93ZWQpCisjZW5kaWYKKwogICAgICMgTm90aWZpY2F0aW9uCiAgICAg
RGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmlj
YXRpb25JRCwgYm9vbCBhbGxvd2VkKQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMDAzMDRiNy4uNjIwOWI0YyAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE0LTA5
LTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBb
V0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU2ltcGxlIEFQSSB0ZXN0IGZvciB0aGUgVXNlck1lZGlhIHBl
cm1pc3Npb24gcmVxdWVzdCBBUEkuIFRoZQorICAgICAgICByZXF1aXJlZCB0ZXN0IGluZnJhc3Ry
dWN0dXJlIGlzIGFsc28gYWRkZWQsIGluc3BpcmVkIGJ5IHRoZQorICAgICAgICBHZW9sb2NhdGlv
biBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICBBZGRpdGlvbmFsbHkgdGhlIEdUSyB2ZXJzaW9u
IG9mIHRoZSBNaW5pQnJvd3NlciBoYXMgZ2FpbmVkCisgICAgICAgIFVzZXJNZWRpYSBwZXJtaXNz
aW9uIHJlcXVlc3Qgc3VwcG9ydC4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2Vy
V2luZG93LmM6IFNob3cgYSBwb3B1cCB3aGVuIHRoZSBwYWdlCisgICAgICAgIHJlcXVpcmVzIHVz
ZXIgcGVybWlzc2lvbiB0byBhY2Nlc3MgYXVkaW8vdmlkZW8gZGV2aWNlcy4KKyAgICAgICAgKHBl
cm1pc3Npb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2spOgorICAgICAgICAod2ViVmlld0RlY2lkZVBl
cm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKGdlb2xvY2F0aW9uUmVxdWVzdERpYWxvZ0NhbGxi
YWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtl
OiBOZXcgQVBJIHRlc3QgZm9yIFVzZXJNZWRpYQorICAgICAgICBQZXJtaXNzaW9uIHJlcXVlc3Qu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9V
c2VyTWVkaWEuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbEJhY2spOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dl
dFVzZXJNZWRpYS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOiBuZXcKKyAgICAgICAgaGVscGVyIG1l
dGhvZCB0byBzZXQgdGhlIHBlcm1pc3Npb24gcmVxdWVzdCByZXN1bHQgd2l0aG91dCB1c2VyIGlu
dGVyYWN0aW9uLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwOiBEaXR0by4KKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNl
dFVzZXJNZWRpYVBlcm1pc3Npb24pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDogRGl0dG8uCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDogRGl0dG8uCisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OnNldFVzZXJNZWRpYVBlcm1pc3Npb24pOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOiBEaXR0by4KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6ZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOiBQZXJtaXNzaW9uCisgICAgICAg
IHJlcXVlc3QgaGFuZGxlci4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90
aGVyUGFnZSk6IEVuYWJsZSB0aGUgbmV3IFVzZXJNZWRpYQorICAgICAgICBwZXJtaXNzaW9uIHJl
cXVlc3QgaGFuZGxlci4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZp
ZXdXaXRoT3B0aW9ucyk6IERpdHRvLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVz
ZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6IEVuYWJsZQorICAgICAgICBNZWRpYVN0
cmVhbSBzdXBwb3J0LCB0aGlzIGlzIG5lZWRlZCBmb3IgZ2V0VXNlck1lZGlhLgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6IGNsZWFy
CisgICAgICAgIFVzZXJNZWRpYSBwZXJtaXNzaW9ucyBsaXN0IGFuZCBmbGFncy4KKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFVzZXJNZWRpYVBlcm1pc3Npb24pOiBTZXQgcGVybWlz
c2lvbgorICAgICAgICByZXF1ZXN0IHJlc3VsdCBhbmQgZGlzdHBhdGNoIGl0LgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6aGFuZGxlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOiBT
YXZlCisgICAgICAgIHJlcXVlc3QgYW5kIGRpc3BhdGNoIGl0LgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBv
c3NpYmxlKToKKyAgICAgICAgRGlzcGF0Y2ggY2FjaGVkIHBlcm1pc3Npb24gcmVxdWVzdHMuCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52
b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE0LTA4
LTI4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLXSB0ZXN0IGNhc2UgZmlsdGVyIHN1cHBvcnQgaW4gcnVuLWd0ay10ZXN0cwpkaWZmIC0tZ2l0
IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYyBiL1Rvb2xzL01pbmlCcm93
c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKaW5kZXggMjc1NDkzMS4uNjE2Y2NjYyAxMDA2NDQKLS0t
IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYworKysgYi9Ub29scy9NaW5p
QnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCkBAIC0yNTMsNyArMjUzLDcgQEAgc3RhdGljIHZv
aWQgYmFja0ZvcndhZGxpc3RDaGFuZ2VkKFdlYktpdEJhY2tGb3J3YXJkTGlzdCAqYmFja0Zvcndh
ZGxpc3QsIFdlYktpdEIKICAgICBicm93c2VyV2luZG93VXBkYXRlTmF2aWdhdGlvbkFjdGlvbnMo
d2luZG93LCBiYWNrRm9yd2FkbGlzdCk7CiB9CiAKLXN0YXRpYyB2b2lkIGdlb2xvY2F0aW9uUmVx
dWVzdERpYWxvZ0NhbGxiYWNrKEd0a0RpYWxvZyAqZGlhbG9nLCBnaW50IHJlc3BvbnNlLCBXZWJL
aXRQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCkKK3N0YXRpYyB2b2lkIHBlcm1pc3Npb25SZXF1
ZXN0RGlhbG9nQ2FsbGJhY2soR3RrRGlhbG9nICpkaWFsb2csIGdpbnQgcmVzcG9uc2UsIFdlYktp
dFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KQogewogICAgIHN3aXRjaCAocmVzcG9uc2UpIHsK
ICAgICBjYXNlIEdUS19SRVNQT05TRV9ZRVM6CkBAIC00MDYsMTkgKzQwNiwzOSBAQCBzdGF0aWMg
Z2Jvb2xlYW4gd2ViVmlld0RlY2lkZVBvbGljeShXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBXZWJL
aXRQb2xpY3lEZWNpc2lvbgogCiBzdGF0aWMgZ2Jvb2xlYW4gd2ViVmlld0RlY2lkZVBlcm1pc3Np
b25SZXF1ZXN0KFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0
ICpyZXF1ZXN0LCBCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7Ci0gICAgaWYgKCFXRUJLSVRfSVNf
R0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKQorICAgIGdjaGFyICpkaWFs
b2dfdGl0bGUgPSBOVUxMOworICAgIGdjaGFyICpkaWFsb2dfbWVzc2FnZSA9IE5VTEw7CisgICAg
Z2NoYXIgKmRpYWxvZ19tZXNzYWdlX2Zvcm1hdCA9IE5VTEw7CisKKyAgICBpZiAoV0VCS0lUX0lT
X0dFT0xPQ0FUSU9OX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSkgeworICAgICAgICBkaWFs
b2dfdGl0bGUgPSAiR2VvbG9jYXRpb24gcmVxdWVzdCI7CisgICAgICAgIGRpYWxvZ19tZXNzYWdl
X2Zvcm1hdCA9ICIlcyI7CisgICAgICAgIGRpYWxvZ19tZXNzYWdlID0gIkFsbG93IGdlb2xvY2F0
aW9uIHJlcXVlc3Q/IjsKKyAgICB9IGVsc2UgaWYgKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1J
U1NJT05fUkVRVUVTVChyZXF1ZXN0KSkgeworICAgICAgICBkaWFsb2dfbWVzc2FnZV9mb3JtYXQg
PSAiQWxsb3cgYWNjZXNzIHRvICVzIGRldmljZT8iOworICAgICAgICBXZWJLaXRVc2VyTWVkaWFQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgICAgIGNvbnN0IGdjaGFyICpvcmlnaW47CisgICAg
ICAgIGdfb2JqZWN0X2dldChXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVx
dWVzdCksICJwYXJhbWV0ZXJzIiwgJnBhcmFtZXRlcnMsICJvcmlnaW4iLCAmb3JpZ2luLCBOVUxM
KTsKKyAgICAgICAgZGlhbG9nX3RpdGxlID0gZ19zdHJkdXBfcHJpbnRmKCJVc2VyTWVkaWEgcmVx
dWVzdCBmcm9tICVzIiwgb3JpZ2luKTsKKyAgICAgICAgaWYgKHBhcmFtZXRlcnMgJiBXRUJLSVRf
VVNFUl9NRURJQV9QQVJBTUVURVJTX0FVRElPKSB7CisgICAgICAgICAgICBpZiAocGFyYW1ldGVy
cyAmIFdFQktJVF9VU0VSX01FRElBX1BBUkFNRVRFUlNfVklERU8pCisgICAgICAgICAgICAgICAg
ZGlhbG9nX21lc3NhZ2UgPSAiYXVkaW8vdmlkZW8iOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIGRpYWxvZ19tZXNzYWdlID0gImF1ZGlvIjsKKyAgICAgICAgfSBlbHNlIGlmIChw
YXJhbWV0ZXJzICYgV0VCS0lUX1VTRVJfTUVESUFfUEFSQU1FVEVSU19WSURFTykKKyAgICAgICAg
ICAgIGRpYWxvZ19tZXNzYWdlID0gInZpZGVvIjsKKyAgICB9IGVsc2UKICAgICAgICAgcmV0dXJu
IEZBTFNFOwogCiAgICAgR3RrV2lkZ2V0ICpkaWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3
KEdUS19XSU5ET1cod2luZG93KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR1RLX0RJQUxPR19NT0RBTCB8IEdUS19ESUFMT0dfREVTVFJPWV9XSVRIX1BB
UkVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RL
X01FU1NBR0VfUVVFU1RJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdUS19CVVRUT05TX1lFU19OTywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkdlb2xvY2F0aW9uIHJlcXVlc3QiKTsKKyAgICAgICAgR1RL
X0RJQUxPR19NT0RBTCB8IEdUS19ESUFMT0dfREVTVFJPWV9XSVRIX1BBUkVOVCwKKyAgICAgICAg
R1RLX01FU1NBR0VfUVVFU1RJT04sCisgICAgICAgIEdUS19CVVRUT05TX1lFU19OTywKKyAgICAg
ICAgIiVzIiwgZGlhbG9nX3RpdGxlKTsKIAotICAgIGd0a19tZXNzYWdlX2RpYWxvZ19mb3JtYXRf
c2Vjb25kYXJ5X3RleHQoR1RLX01FU1NBR0VfRElBTE9HKGRpYWxvZyksICJBbGxvdyBnZW9sb2Nh
dGlvbiByZXF1ZXN0PyIpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoZGlhbG9nLCAicmVzcG9uc2Ui
LCBHX0NBTExCQUNLKGdlb2xvY2F0aW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKSwgZ19vYmplY3Rf
cmVmKHJlcXVlc3QpKTsKKyAgICBndGtfbWVzc2FnZV9kaWFsb2dfZm9ybWF0X3NlY29uZGFyeV90
ZXh0KEdUS19NRVNTQUdFX0RJQUxPRyhkaWFsb2cpLCBkaWFsb2dfbWVzc2FnZV9mb3JtYXQsIGRp
YWxvZ19tZXNzYWdlKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGRpYWxvZywgInJlc3BvbnNlIiwg
R19DQUxMQkFDSyhwZXJtaXNzaW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKSwgZ19vYmplY3RfcmVm
KHJlcXVlc3QpKTsKICAgICBndGtfd2lkZ2V0X3Nob3coZGlhbG9nKTsKLQogICAgIHJldHVybiBU
UlVFOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNt
YWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCAyM2EzNWRm
Li5hYjhiM2E3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNt
YWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTk3LDYg
Kzk3LDcgQEAgYWRkX2V4ZWN1dGFibGUoVGVzdFdlYktpdDIKICAgICAke1RFU1RXRUJLSVRBUElf
RElSfS9UZXN0cy9XZWJLaXQyL1Jlc2l6ZVdpbmRvd0FmdGVyQ3Jhc2guY3BwCiAgICAgJHtURVNU
V0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9SZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmlu
Z0Zvcm1EYXRhLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvU2hv
dWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0v
VGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVz
dHMvV2ViS2l0Mi9Vc2VyTWVzc2FnZS5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0
cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnQuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJ
Un0vVGVzdHMvV2ViS2l0Mi9XS1BhZ2VHZXRTY2FsZUZhY3Rvck5vdFplcm8uY3BwCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDYxZGNlNmIuLmU4ZDEwN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC04OCw2ICs4OCw3IEBACiAJCTM3RTEwNjREMTY5NzZDODUwMEI3OEJEMCAvKiBET01I
VE1MVGFibGVDZWxsQ2VsbEFib3ZlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzdFMTA2NEExNjk3Njc2NDAwQjc4QkQwIC8qIERPTUhUTUxUYWJsZUNl
bGxDZWxsQWJvdmUubW0gKi87IH07CiAJCTM3RTM4QzM0MTY5QjdEMDEwMDg0QzI4QyAvKiBXZWJW
aWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdFMzhDMzMxNjlCN0QwMTAwODRDMjhDIC8qIFdlYlZp
ZXdEaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkubW0gKi87IH07CiAJCTQ0MEExRDM5MTRBMDEw
M0EwMDhBNjZGMiAvKiBVUkwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDQwQTFEMzgxNEEwMTAzQTAwOEE2NkYyIC8qIFVSTC5jcHAgKi87IH07CisJ
CTRBNDEwRjRDMTlBRjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVkaWEuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBGNEIxOUFGN0JENjAwMkVCQUI1
IC8qIFVzZXJNZWRpYS5jcHAgKi87IH07CiAJCTRCQjQxNjAyMTY4MTVCMjYwMDgyNDIzOCAvKiBK
U1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRCQjQxNjAxMTY4MTVCMjYwMDgyNDIzOCAvKiBKU1dyYXBwZXJG
b3JOb2RlSW5XZWJGcmFtZS5tbSAqLzsgfTsKIAkJNEJCNDE2MDQxNjgxNUY5MTAwODI0MjM4IC8q
IEVsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRCQjQxNjAzMTY4MTVGOTEwMDgyNDIzOCAvKiBFbGVtZW50QXRQ
b2ludEluV2ViRnJhbWUubW0gKi87IH07CiAJCTRCRkRGRkE3MTMxNDc3NkMwMDYxRjI0QiAvKiBI
aXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJGREZGQTYxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRl
c3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi87IH07CkBAIC00MzAsNiArNDMxLDggQEAK
IAkJMzdFMzhDMzMxNjlCN0QwMTAwODRDMjhDIC8qIFdlYlZpZXdEaWRSZW1vdmVGcmFtZUZyb21I
aWVyYXJjaHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJW
aWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogVVJMLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ0QTYyMkMxMTRBMEUyQjYwMDQ4NTE1QiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV1RGU3RyaW5nVXRpbGl0aWVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjRCMTlBRjdCRDYwMDJFQkFCNSAvKiBV
c2VyTWVkaWEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1l
ZGlhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGNEQxOUFGN0JFRjAw
MkVCQUI1IC8qIGdldFVzZXJNZWRpYS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
Z2V0VXNlck1lZGlhLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCQjQxNjAx
MTY4MTVCMjYwMDgyNDIzOCAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEpTV3JhcHBlckZvck5vZGVJbldlYkZy
YW1lLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkI0MTYwMzE2ODE1RjkxMDA4
MjQyMzggLyogRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVz
dFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC03OTgsNiArODAxLDcgQEAKIAkJQkM5MDk2NDExMjU1NjE2MDAw
MDgzNzU2IC8qIFdlYktpdDIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTRBNDEwRjRCMTlBRjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVkaWEuY3BwICovLAog
CQkJCUMwQzVEM0JCMTQ1OThCNkYwMEE4MDJBNiAvKiBtYWMgKi8sCiAJCQkJQkM5MDk3N0IxMjU1
NzFBRTAwMDgzNzU2IC8qIFJlc291cmNlcyAqLywKIAkJCQlCQzI0NkQ4QzEzMkYxMTVBMDBCNTZE
N0MgLyogQWJvdXRCbGFua0xvYWQuY3BwICovLApAQCAtOTI5LDYgKzkzMyw3IEBACiAJCUJDOTA5
NzdCMTI1NTcxQUUwMDA4Mzc1NiAvKiBSZXNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNSAvKiBnZXRV
c2VyTWVkaWEuaHRtbCAqLywKIAkJCQlDMDQ1Rjk0NjEzODVDMkY4MDBDMEYzQ0QgLyogMTgtY2hh
cmFjdGVycy5odG1sICovLAogCQkJCUY2QjdCRTk2MTc0NjlCN0UwMDhBMzQ0NSAvKiBhc3NvY2lh
dGUtZm9ybS1jb250cm9scy5odG1sICovLAogCQkJCTc2RTE4MkRFMTU0NzVBODMwMEYxRkFERCAv
KiBhdXRvLXN1Ym1pdHRpbmctZm9ybS5odG1sICovLApAQCAtMTMyOSw2ICsxMzM0LDcgQEAKIAkJ
CQk1MUZDRjc5QTE1MzRBQzZEMDAxMDQ0OTEgLyogU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFGREU2NTYxOTUzQjJDMDAwQzQ4RkZBIC8qIE9w
dGlvbmFsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NDBGNzc2MTUyRTREQTAwMEE0MEM4QyAv
KiBTaW1wbGlmeU1hcmt1cC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTRBNDEwRjRDMTlBRjdCRDYw
MDJFQkFCNSAvKiBVc2VyTWVkaWEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzAyQjc3RjIxMjY2
MTIxNDAwMjZCRjBGIC8qIFNwYWNlYmFyU2Nyb2xsaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTkzRDNEMTlFMTdCMUE4NDIwMEM3QzQxNSAvKiBMYXlvdXRNaWxlc3RvbmVzV2l0aEFsbENvbnRl
bnRJbkZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOTRFMUJCMTc3RTUxNDUwMDlDNEQ0
RSAvKiBTdG9wTG9hZGluZ0Zyb21EaWRSZWNlaXZlUmVzcG9uc2UubW0gaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRmNDc5MgotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCkBAIC0w
LDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTAorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgIlRlc3QuaCIKKyNpbmNsdWRlIDxXZWJL
aXQvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx2ZWN0b3I+
CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwor
c3RhdGljIGJvb2wgZG9uZTsKKwordm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdENhbGxCYWNrKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1Nl
Y3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBw
ZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocGVybWlzc2lvblJlcXVlc3QpOworICAgIGRvbmUg
PSB0cnVlOworfQorCitURVNUKFdlYktpdDIsIFVzZXJNZWRpYUJhc2ljKQoreworICAgIFdLUmV0
YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7
CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQYWdl
VUlDbGllbnRWNSB1aUNsaWVudDsKKyAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlD
bGllbnQpKTsKKworICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDU7CisgICAgdWlDbGllbnQu
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNrOworCisgICAgV0tQYWdlU2V0UGFn
ZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CisKKyAgICBXS1JldGFp
blB0cjxXS1VSTFJlZj4gdXJsKEFkb3B0V0ssIFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJn
ZXRVc2VyTWVkaWEiLCAiaHRtbCIpKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBXS1BhZ2VM
b2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOworCisgICAgVXRpbDo6cnVuKCZkb25l
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9nZXRVc2VyTWVkaWEuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9nZXRVc2VyTWVkaWEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5l
NTRmODUzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL2dldFVzZXJNZWRpYS5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzxzY3JpcHQ+CitmdW5jdGlv
biBnb3RVc2VyTWVkaWEobWVkaWFTdHJlYW0pCit7CisgICAgY29uc29sZS5sb2coIkdvdCB1c2Vy
IG1lZGlhIik7Cit9CisKK2Z1bmN0aW9uIHVzZXJNZWRpYUVycm9yKGVycm9yKQoreworICAgIGNv
bnNvbGUubG9nKGVycm9yKTsKK30KKwordmFyIG9wdGlvbnMgPSB7IGF1ZGlvOiBmYWxzZSwgdmlk
ZW86IHRydWV9OworbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBnb3RVc2Vy
TWVkaWEsIHVzZXJNZWRpYUVycm9yKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKaW5kZXggYmI5YTdhMC4uMDhhMTg5OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBA
IC0xNjksNiArMTY5LDkgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHZvaWQgc2V0TW9j
a0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBk
b3VibGUgYWNjdXJhY3ksIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgb2JqZWN0IGFsdGl0
dWRlLCBvcHRpb25hbCBvYmplY3QgYWx0aXR1ZGVBY2N1cmFjeSwgb3B0aW9uYWwgb2JqZWN0IGhl
YWRpbmcsIG9wdGlvbmFsIG9iamVjdCBzcGVlZCk7CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoRE9NU3RyaW5nIGVycm9yTWVzc2FnZSk7CiAKKyAg
ICAvLyBNZWRpYVN0cmVhbQorICAgIHZvaWQgc2V0VXNlck1lZGlhUGVybWlzc2lvbihib29sZWFu
IHZhbHVlKTsKKwogICAgIC8vIEF1ZGlvIHRlc3RpbmcuCiAgICAgW1Bhc3NDb250ZXh0XSB2b2lk
IHNldEF1ZGlvUmVzdWx0KG9iamVjdCBkYXRhKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA3YjFk
ZTcwLi4xYjZlYmQwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNDU4LDYgKzQ1OCwxMyBAQCB2b2lk
IEluamVjdGVkQnVuZGxlOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJy
b3IoV0tTdHJpbmdSZWYgZXJybwogICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UobV9idW5kbGUsIG1l
c3NhZ2VOYW1lLmdldCgpLCBlcnJvck1lc3NhZ2UpOwogfQogCit2b2lkIEluamVjdGVkQnVuZGxl
OjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIlNldFVzZXJNZWRpYVBlcm1pc3Npb24iKSk7CisgICAgV0tSZXRhaW5QdHI8V0tC
b29sZWFuUmVmPiBtZXNzYWdlQm9keShBZG9wdFdLLCBXS0Jvb2xlYW5DcmVhdGUoZW5hYmxlZCkp
OworICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UobV9idW5kbGUsIG1lc3NhZ2VOYW1lLmdldCgpLCBt
ZXNzYWdlQm9keS5nZXQoKSk7Cit9CisKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldEN1c3RvbVBv
bGljeURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZlKQogewogICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiU2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUiKSk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5k
ZXggOWY3NmE5ZC4uOGYwYTg0MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtOTIsNiArOTIsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUs
IGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBwcm92aWRlc0FsdGl0dWRl
LCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUg
YWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRlc0hlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBi
b29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVlZCk7CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoV0tTdHJpbmdSZWYgZXJyb3JNZXNzYWdlKTsK
IAorICAgIC8vIE1lZGlhU3RyZWFtLgorICAgIHZvaWQgc2V0VXNlck1lZGlhUGVybWlzc2lvbihi
b29sKTsKKwogICAgIC8vIFBvbGljeSBkZWxlZ2F0ZS4KICAgICB2b2lkIHNldEN1c3RvbVBvbGlj
eURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZlKTsKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXgg
ZDA4NWYxYS4uZDc1MWI5NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC03MjAsNiArNzIwLDEyIEBAIHZvaWQgVGVz
dFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKEpTU3Ry
aW5nUmVmIG1lc3NhZ2UpCiAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnNldE1vY2tHZW9s
b2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihtZXNzYWdlV0suZ2V0KCkpOwogfQogCit2
b2lkIFRlc3RSdW5uZXI6OnNldFVzZXJNZWRpYVBlcm1pc3Npb24oYm9vbCBlbmFibGVkKQorewor
ICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBiZSBkb25lIGJ5IGZyYW1lLgorICAgIEluamVjdGVk
QnVuZGxlOjpzaGFyZWQoKS5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGVuYWJsZWQpOworfQorCiBi
b29sIFRlc3RSdW5uZXI6OmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldygpCiB7CiAgICAgV0tCdW5k
bGVGcmFtZVJlZiBtYWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUoSW5qZWN0ZWRC
dW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggZTIxZmZmMy4uMzk0ZTkw
OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmgKQEAgLTI1Miw2ICsyNTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNb2NrR2Vv
bG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJs
ZSBhY2N1cmFjeSwgSlNWYWx1ZVJlZiBhbHRpdHVkZSwgSlNWYWx1ZVJlZiBhbHRpdHVkZUFjY3Vy
YWN5LCBKU1ZhbHVlUmVmIGhlYWRpbmcsIEpTVmFsdWVSZWYgc3BlZWQpOwogICAgIHZvaWQgc2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKEpTU3RyaW5nUmVmIG1lc3Nh
Z2UpOwogCisgICAgLy8gTWVkaWFTdHJlYW0KKyAgICB2b2lkIHNldFVzZXJNZWRpYVBlcm1pc3Np
b24oYm9vbCk7CisKICAgICB2b2lkIHNldFBhZ2VWaXNpYmlsaXR5KEpTU3RyaW5nUmVmIHN0YXRl
KTsKICAgICB2b2lkIHJlc2V0UGFnZVZpc2liaWxpdHkoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCAzZmUzNzc5Li45YWRkOTZlIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTg4LDYgKzE4OCwxMSBAQCBz
dGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdL
UGFnZVJlZiwgV0tGcmFtZVJlZiwgVwogICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5oYW5k
bGVHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0KTsKIH0KIAor
c3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV0tQ
YWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQoreworICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5oYW5kbGVVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdChwZXJtaXNzaW9uUmVxdWVzdCk7Cit9CisKIGludCBUZXN0Q29udHJvbGxlcjo6
Z2V0Q3VzdG9tVGltZW91dCgpCiB7CiAgICAgcmV0dXJuIG1fdGltZW91dDsKQEAgLTIwMiw4ICsy
MDcsOCBAQCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VS
ZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXSwogCiAgICAgdmlldy0+cmVzaXplVG8oODAw
LCA2MDApOwogCi0gICAgV0tQYWdlVUlDbGllbnRWMiBvdGhlclBhZ2VVSUNsaWVudCA9IHsKLSAg
ICAgICAgeyAyLCB2aWV3IH0sCisgICAgV0tQYWdlVUlDbGllbnRWNSBvdGhlclBhZ2VVSUNsaWVu
dCA9IHsKKyAgICAgICAgeyA1LCB2aWV3IH0sCiAgICAgICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2Vf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMAogICAgICAgICAwLCAvLyBzaG93UGFnZQogICAgICAgICBj
bG9zZU90aGVyUGFnZSwKQEAgLTI1MCw2ICsyNTUsMTEgQEAgV0tQYWdlUmVmIFRlc3RDb250cm9s
bGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwg
V0sKICAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIGhpZGVDb2xv
clBpY2tlcgogICAgICAgICAwLCAvLyB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQKKyAg
ICAgICAgMCwgLy8gcGlubmVkU3RhdGVEaWRDaGFuZ2UKKyAgICAgICAgMCwgLy8gZGlkQmVnaW5U
cmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzCisgICAgICAgIDAsIC8vIGRpZFJlY29nbml6
ZUxvbmdNb3VzZVByZXNzCisgICAgICAgIDAsIC8vIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFs
TG9uZ01vdXNlUHJlc3MKKyAgICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QsCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobmV3UGFnZSwgJm90
aGVyUGFnZVVJQ2xpZW50LmJhc2UpOwogCkBAIC00MDgsOCArNDE4LDggQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogdm9pZCBU
ZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKFdLRGljdGlvbmFyeVJlZiBv
cHRpb25zKQogewogICAgIG1fbWFpbldlYlZpZXcgPSBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3Jt
V2ViVmlldz4obV9jb250ZXh0LmdldCgpLCBtX3BhZ2VHcm91cC5nZXQoKSwgbnVsbHB0ciwgb3B0
aW9ucyk7Ci0gICAgV0tQYWdlVUlDbGllbnRWMiBwYWdlVUlDbGllbnQgPSB7Ci0gICAgICAgIHsg
MiwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAorICAgIFdLUGFnZVVJQ2xpZW50VjUgcGFnZVVJQ2xp
ZW50ID0geworICAgICAgICB7IDUsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKICAgICAgICAgMCwg
Ly8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIHNo
b3dQYWdlCiAgICAgICAgIDAsIC8vIGNsb3NlCkBAIC00NTYsNiArNDY2LDExIEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhXS0RpY3Rpb25hcnlSZWYgb3B0
aW9ucykKICAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIGhpZGVD
b2xvclBpY2tlcgogICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQsCisgICAg
ICAgIDAsIC8vIHBpbm5lZFN0YXRlRGlkQ2hhbmdlCisgICAgICAgIDAsIC8vIGRpZEJlZ2luVHJh
Y2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcworICAgICAgICAwLCAvLyBkaWRSZWNvZ25pemVM
b25nTW91c2VQcmVzcworICAgICAgICAwLCAvLyBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExv
bmdNb3VzZVByZXNzCisgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXct
PnBhZ2UoKSwgJnBhZ2VVSUNsaWVudC5iYXNlKTsKIApAQCAtNTQxLDYgKzU1Niw3IEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAg
IFdLUHJlZmVyZW5jZXNTZXRGb250U21vb3RoaW5nTGV2ZWwocHJlZmVyZW5jZXMsIGtXS0ZvbnRT
bW9vdGhpbmdMZXZlbE5vU3VicGl4ZWxBbnRpQWxpYXNpbmcpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRYU1NBdWRpdG9yRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5j
ZXNTZXRXZWJBdWRpb0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5j
ZXNTZXRNZWRpYVN0cmVhbUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVy
ZW5jZXNTZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBX
S1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZChwcmVmZXJlbmNlcywg
dHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9t
YXRpY2FsbHkocHJlZmVyZW5jZXMsIHRydWUpOwpAQCAtNjM3LDYgKzY1MywxMSBAQCBib29sIFRl
c3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBtX2lzR2Vv
bG9jYXRpb25QZXJtaXNzaW9uU2V0ID0gZmFsc2U7CiAgICAgbV9pc0dlb2xvY2F0aW9uUGVybWlz
c2lvbkFsbG93ZWQgPSBmYWxzZTsKIAorICAgIC8vIFJlc2V0IFVzZXJNZWRpYSBwZXJtaXNzaW9u
cy4KKyAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigpOworICAgIG1faXNV
c2VyTWVkaWFQZXJtaXNzaW9uU2V0ID0gZmFsc2U7CisgICAgbV9pc1VzZXJNZWRpYVBlcm1pc3Np
b25BbGxvd2VkID0gZmFsc2U7CisKICAgICAvLyBSZXNldCBDdXN0b20gUG9saWN5IERlbGVnYXRl
LgogICAgIHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGZhbHNlLCBmYWxzZSk7CiAKQEAgLTEzNDgs
NiArMTM2OSwzNCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpoYW5kbGVHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUgogICAgIGRlY2lkZVBvbGljeUZv
ckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKCk7CiB9CiAKK3ZvaWQgVGVz
dENvbnRyb2xsZXI6OnNldFVzZXJNZWRpYVBlcm1pc3Npb24oYm9vbCBlbmFibGVkKQoreworICAg
IG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uU2V0ID0gdHJ1ZTsKKyAgICBtX2lzVXNlck1lZGlhUGVy
bWlzc2lvbkFsbG93ZWQgPSBlbmFibGVkOworICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpo
YW5kbGVVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KQoreworICAgIG1fdXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RzLmFwcGVuZCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk7CisgICAg
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKCk7Cit9
CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0SWZQb3NzaWJsZSgpCit7CisgICAgaWYgKCFtX2lzVXNlck1lZGlhUGVybWlzc2lv
blNldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5zaXplKCk7ICsraSkgeworICAgICAgICBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0ID0gbV91c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdHNbaV0uZ2V0KCk7CisgICAgICAgIGlmIChtX2lzVXNlck1lZGlhUGVy
bWlzc2lvbkFsbG93ZWQpCisgICAgICAgICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
QWxsb3cocGVybWlzc2lvblJlcXVlc3QpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShwZXJtaXNzaW9uUmVxdWVzdCk7CisgICAgfQor
ICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLmNsZWFyKCk7Cit9CisKIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBw
ZXJtaXNzaXZlKQogewogICAgIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkID0gZW5hYmxlZDsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBkOWJlNzQ4Li41OWE3ZTg5
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC04OCw2ICs4OCwx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxh
YmxlRXJyb3IoV0tTdHJpbmdSZWYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGhhbmRsZUdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVm
KTsKIAorICAgIC8vIE1lZGlhU3RyZWFtLgorICAgIHZvaWQgc2V0VXNlck1lZGlhUGVybWlzc2lv
bihib29sKTsKKyAgICB2b2lkIGhhbmRsZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOworCiAgICAgLy8gUG9saWN5IGRlbGVnYXRlLgog
ICAgIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFibGVkLCBib29sIHBlcm1p
c3NpdmUpOwogCkBAIC0xMzMsNiArMTM3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUxh
eW91dFR5cGVGb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJik7CiAKICAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKCk7CisgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUo
KTsKIAogICAgIC8vIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50CiAgICAgc3RhdGljIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tDb250ZXh0UmVmLCBXS1N0
cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5LCBjb25zdCB2b2lkKik7
CkBAIC0yMzcsNiArMjQyLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uU2V0OwogICAgIGJvb2wgbV9pc0dlb2xvY2F0aW9uUGVybWlzc2lvbkFsbG93ZWQ7
CiAKKyAgICBWZWN0b3I8V0tSZXRhaW5QdHI8V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
Zj4+IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzOworICAgIGJvb2wgbV9pc1VzZXJNZWRp
YVBlcm1pc3Npb25TZXQ7CisgICAgYm9vbCBtX2lzVXNlck1lZGlhUGVybWlzc2lvbkFsbG93ZWQ7
CisKICAgICBib29sIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkOwogICAgIGJvb2wgbV9wb2xpY3lE
ZWxlZ2F0ZVBlcm1pc3NpdmU7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAKaW5kZXggMzYzNzcwMy4uODdjNDZjNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKQEAgLTQ3OCw2ICs0NzgsMTMgQEAgdm9pZCBUZXN0SW52b2NhdGlv
bjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2Fn
ZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0VXNlck1lZGlhUGVybWlzc2lvbiIpKSB7Cisg
ICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFuR2V0VHlw
ZUlEKCkpOworICAgICAgICBXS0Jvb2xlYW5SZWYgZW5hYmxlZFdLID0gc3RhdGljX2Nhc3Q8V0tC
b29sZWFuUmVmPihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQo
KS5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKFdLQm9vbGVhbkdldFZhbHVlKGVuYWJsZWRXSykpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENT
dHJpbmcobWVzc2FnZU5hbWUsICJTZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSIpKSB7CiAgICAgICAg
IEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9uYXJ5R2V0VHlwZUlE
KCkpOwogICAgICAgICBXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5ID0gc3Rh
dGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSk7Ci0tIAoyLjEuMA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237480</attachid>
            <date>2014-09-02 01:07:19 -0700</date>
            <delta_ts>2014-09-02 08:20:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>118789</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA4MDI3ZDAyMzkyNTUxNDg4ZjYxNGJjNmI4MzQ4YmI2YjllMGYwZDdlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDI5IEF1ZyAyMDE0IDEwOjEyOjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
UGF0Y2gKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgMTcgKysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0
ZWQudHh0ICAgIHwgIDEwICsrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0
bWwgICAgICAgICAgICB8ICAxMCArKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3Jp
cHQtdGVzdHMvZXJyb3IuanMgfCAgMTkgKysKIC4uLi9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10
ZXN0cy9zdWNjZXNzLmpzICAgICAgIHwgIDE2ICsrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0ICB8ICAgOSArCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3N1Y2Nlc3MuaHRtbCAgICAgICAgICB8ICAxMCArKwogU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgKysrCiAuLi4vTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCAgICAgICB8ICAxMSArKwogLi4uL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggfCAgIDcgKwogU291cmNl
L1dlYktpdDIvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMDEgKysr
KysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlICAgICAgICAgICAgICAg
ICAgIHwgICA0ICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCAgICAgICAg
ICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCAgICAgICAg
ICAgICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGll
bnQuaCAgICAgICAgIHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaCAgICAgICAgIHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlVUlDbGllbnQuaCAgICB8ICA2OCArKysrKysrCiAuLi4vQVBJL0MvV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgICAgICAgICB8ICA0MCArKysrKwogLi4uL1VJUHJvY2Vz
cy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggfCAgMzcgKysrKwogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oICAgICAgICAgfCAgIDEgKwogLi4u
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwICAgfCAgIDggKwog
Li4uL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwICAgfCAxOTkg
KysrKysrKysrKysrKysrKysrKysrCiAuLi4vQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oICAgICB8ICA4MSArKysrKysrKysKIC4uLi9ndGsvV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmggIHwgIDI3ICsrKwogLi4uL1VJUHJvY2Vzcy9BUEkv
Z3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwgICAgfCAgIDEgKwogLi4uL1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQgfCAgMjEgKysrCiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggICAgICAgICB8ICAgMSArCiAuLi4vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICAgICB8ICA2MyArKysrKysr
CiAuLi4vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAgICAgICB8ICA0
OCArKysrKwogLi4uL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cCAgfCAgNTQgKysrKysrCiAuLi4vVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaCAgICB8ICA1NCArKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwICAgICAgICAgIHwgIDE0ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggICAgICAgICAgICB8ICAgNyArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluICB8ICAgNSArCiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICB8ICA0NCArKysrKwogLi4uL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgICAgICAgICAgfCAgOTIgKysrKysrKysrKwogLi4u
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICAgICAgICAgICAgfCAgNTggKysr
KysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAgICAgICAgICB8
ICA1NSArKysrKysKIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5oIHwgIDQ1ICsrKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgICAgICB8ICAxNCArKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCAgICAgICAgfCAgMTMgKysKIC4uLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluIHwgICA1ICsKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDU0ICsrKysrKwogVG9vbHMvTWluaUJyb3dzZXIv
Z3RrL0Jyb3dzZXJXaW5kb3cuYyAgICAgICAgICAgICAgfCAgMzggKysrLQogVG9vbHMvVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZSAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgfCAgIDYgKwogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAgICAgfCAgNjMgKysrKysr
KwogLi4uL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbCAgfCAg
MTQgKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCAgICAgICAg
IHwgICAzICsKIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgICAgICAgICAg
ICAgIHwgICA3ICsKIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oICAgICAgICAg
ICAgICAgIHwgICAzICsKIC4uLi9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwIHwgICA2ICsKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oIHwgICAzICsKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwICAgICAgICAgIHwgIDU3ICsrKysrLQogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oICAgICAgICAgICAgfCAgIDkgKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAgICAgICAgICAgfCAgIDcgKwogNTggZmlsZXMgY2hhbmdlZCwgMTU3
MiBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRtbAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2Vycm9y
LmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3Jp
cHQtdGVzdHMvc3VjY2Vzcy5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vc3VjY2Vzcy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcml2YXRlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNw
cAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbAoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA5MjVkNGVjLi45NGFkNDc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDktMDEg
IFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXSzJd
IFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTaW1wbGUgVXNlck1lZGlhIHBlcm1pc3Npb24gcmVxdWVzdCB0ZXN0
cyBpbnNwaXJlZCBmcm9tIHRoZQorICAgICAgICBHZW9sb2NhdGlvbiB0ZXN0IHN1aXRlLgorCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvZXJyb3IuanM6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL3N1Y2Nlc3MuanM6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sOiBBZGRlZC4KKwogMjAxNC0wOC0yOSAgU2Vy
Z2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ1NTIEdy
aWQgTGF5b3V0XSBSZXNvbHZlZCB2YWx1ZSBvZiBncmlkLXRlbXBsYXRlLSogbXVzdCBpbmNsdWRl
IGV2ZXJ5IHRyYWNrIGxpc3RlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vy
cm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjI5
ZDIyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJy
b3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIFVzZXJNZWRpYSBlcnJvciBj
YWxsYmFjayB1c2luZyB0aGUgbW9jayBzZXJ2aWNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBlcnJvci5jb2RlIGlzIGVycm9yLlBFUk1JU1NJT05fREVOSUVECitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjRhMzgzMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL2Vycm9yLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Vycm9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0
LXRlc3RzL2Vycm9yLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVz
dHMvZXJyb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFkNjIxMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRl
c3RzL2Vycm9yLmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyBVc2VyTWVk
aWEgZXJyb3IgY2FsbGJhY2sgdXNpbmcgdGhlIG1vY2sgc2VydmljZS4iKTsKKworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbihmYWxz
ZSk7CitlbHNlCisgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRo
ZSB0ZXN0UnVubmVyJyk7CisKK3ZhciBlcnJvcjsKK3ZhciBvcHRpb25zID0ge2F1ZGlvOmZhbHNl
LCB2aWRlbzp0cnVlfTsKK25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywgZnVu
Y3Rpb24oc3RyZWFtKSB7CisgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2Vk
IHVuZXhwZWN0ZWRseScpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZnVuY3Rpb24oZSkgewor
ICAgIGVycm9yID0gZTsKKyAgICBzaG91bGRCZSgnZXJyb3IuY29kZScsICdlcnJvci5QRVJNSVNT
SU9OX0RFTklFRCcpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
c2NyaXB0LXRlc3RzL3N1Y2Nlc3MuanMgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Nj
cmlwdC10ZXN0cy9zdWNjZXNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmVlZTY2MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3NjcmlwdC10ZXN0cy9zdWNjZXNzLmpzCkBAIC0wLDAgKzEsMTYgQEAKK2Rlc2NyaXB0aW9uKCJU
ZXN0cyBVc2VyTWVkaWEgc3VjY2VzcyBjYWxsYmFjayB1c2luZyB0aGUgbW9jayBzZXJ2aWNlLiIp
OworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uKHRydWUpOworZWxzZQorICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBy
dW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lcicpOworCit2YXIgb3B0aW9ucyA9IHthdWRpbzogdHJ1
ZSwgdmlkZW86IHRydWV9OworbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBm
dW5jdGlvbihzdHJlYW0pIHsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZ1bmN0aW9uKGUpIHsK
KyAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyMjNlYmIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOSBAQAorVGVzdHMgVXNlck1lZGlhIHN1Y2Nlc3MgY2FsbGJhY2sgdXNpbmcg
dGhlIG1vY2sgc2VydmljZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjU4NGQxYWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3VjY2Vzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGZiZjVjYi4uODQ2NDgzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA5LTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9ydAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZG9j
dW1lbnQgYW5kIGZyYW1lIGFjY2Vzc29ycywgbmVlZGVkIGJ5IHRoZQorICAgICAgICBVc2VyTWVk
aWFSZXF1ZXN0TWFuYWdlciBvZiB0aGUgV2ViUHJvY2Vzcy4gQWxzbyBhZGRlZCB0d28gbWV0aG9k
cworICAgICAgICB1c2VkIGJ5IHRoZSBwZXJtaXNzaW9uIHJlcXVlc3QgbWFuYWdlciB0byBrbm93
IGlmIGFjY2VzcyB0byBhdWRpbworICAgICAgICBvciB2aWRlbyBkZXZpY2VzIGlzIHJlcXVlc3Rl
ZC4KKworICAgICAgICBUZXN0czogZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbAorCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVz
ZXJNZWRpYVJlcXVlc3Q6OmRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJl
cXVlc3Q6OmZyYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmF1ZGlvKToKKyAg
ICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnZpZGVvKToKKwogMjAxNC0wOS0wMSAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5kZXJU
aGVtZU1hYzo6cGFpbnRQcm9ncmVzc0JhciBjcmVhdGVzIGEgYnVmZmVyIHdpdGhvdXQgcmVzcGVj
dGluZyB0aGUgZGVzdGluYXRpb24ncyBhY2NlbGVyYXRpb24gc2V0dGluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAK
aW5kZXggZTQzOGQzNS4uNzEwMGVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC00MCw2ICs0MCw3IEBA
CiAjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTWVkaWFD
b25zdHJhaW50c0ltcGwuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgogI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtQ2VudGVyLmgiCkBAIC0xMDEsNiArMTAyLDE2IEBAIFVzZXJNZWRpYVJlcXVlc3Q6
On5Vc2VyTWVkaWFSZXF1ZXN0KCkKIHsKIH0KIAorRG9jdW1lbnQqIFVzZXJNZWRpYVJlcXVlc3Q6
OmRvY3VtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOworfQorCitGcmFtZSogVXNlck1lZGlhUmVxdWVzdDo6ZnJhbWUoKSBjb25z
dAoreworICAgIHJldHVybiBkb2N1bWVudCgpID8gZG9jdW1lbnQoKS0+ZnJhbWUoKSA6IG51bGxw
dHI7Cit9CisKIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1ZXN0OjpzZWN1cml0eU9yaWdp
bigpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgK
aW5kZXggYzgwYTZiYS4uOGFlOGVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaWN0aW9uYXJ5OwogY2xhc3MgRG9jdW1lbnQ7Citj
bGFzcyBGcmFtZTsKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBNZWRpYVN0cmVhbVBy
aXZhdGU7CiBjbGFzcyBVc2VyTWVkaWFDb250cm9sbGVyOwpAQCAtNjIsMTAgKzYzLDE2IEBAIHB1
YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdp
bigpIGNvbnN0OwogCisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CisgICAgRnJhbWUq
IGZyYW1lKCkgY29uc3Q7CisKICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1
c2VyTWVkaWFBY2Nlc3NEZW5pZWQoKTsKIAorICAgIGJvb2wgYXVkaW8oKSBjb25zdCB7IHJldHVy
biBtX2F1ZGlvQ29uc3RyYWludHM7IH0KKyAgICBib29sIHZpZGVvKCkgY29uc3QgeyByZXR1cm4g
bV92aWRlb0NvbnN0cmFpbnRzOyB9CisKIHByaXZhdGU6CiAgICAgVXNlck1lZGlhUmVxdWVzdChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVXNlck1lZGlhQ29udHJvbGxlciosIFBhc3NSZWZQdHI8
TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1
Y2Nlc3NDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFj
az4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IDRmMzkyM2QuLjA1YWRmODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NN
YWtlTGlzdHMudHh0CkBAIC00OSw2ICs0OSw3IEBAIHNldChXZWJLaXQyX0lOQ0xVREVfRElSRUNU
T1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00i
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTGF1bmNoaW5nIgogICAgICIke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvTWVkaWFTdHJlYW0iCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTmV0d29y
ayIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIgogICAgICIk
e1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL09yaWdpbkRhdGEiCkBAIC0zMDEsNiArMzAyLDggQEAg
c2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNw
cAogICAgIFVJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvVGV4
dENoZWNrZXJDb21wbGV0aW9uLmNwcAorICAgIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5jcHAK
ICAgICBVSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAKICAgICBV
SVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcApAQCAtMzg5LDYgKzM5Miw3IEBAIHNldChX
ZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdl
ci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uU3RhdGVSZWYuY3BwCiAgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlicmF0
aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5jcHAKIApA
QCAtNDg1LDYgKzQ4OSw4IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3Mv
TWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvTWVk
aWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorCiAgICAgV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKICAgICBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAogICAgIFdlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTUzNyw2ICs1NDMsNyBAQCBzZXQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUu
Y3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUu
Y3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3Bw
CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGllbnQuY3BwCiAK
ICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDUz
MjU2Zi4uMGMzNjI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNCBAQAorMjAxNC0wOS0wMSAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dLMl0g
VXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IGlu
IFdlYktpdDIuIEl0J3MKKyAgICAgICAgaW1wbGVtZW50ZWQgc2ltaWxhcmlseSB0byB0aGUgR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICBzdXBwb3J0LiBXaGVuIHRoZSBXZWJQ
YWdlIHJlcXVpcmVzIHRoaXMgcGVybWlzc2lvbiBpdCBzZW5kcyBhCisgICAgICAgIG1lc3NhZ2Ug
dG8gdGhlIFVJIHByb2Nlc3Mgd2hpY2ggYXQgc29tZSBwb2ludCBncmFudHMgb3IgZGVuaWVzIHRo
ZQorICAgICAgICBwZXJtaXNzaW9uIGFuZCBzZW5kcyB0aGUgcmVzdWx0IGJhY2sgdG8gdGhlIFdl
YlByb2Nlc3MuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogR2VuZXJpYyBDTWFrZSBzdXBw
b3J0IGZvciBuZXcgZmlsZXMuCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6IEdUSy1zcGVj
aWZpYyBuZXcgZmlsZXMuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOiBOZXcgdHlw
ZSBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgICogU2hhcmVkL0FQSU9i
amVjdC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6IFBl
cm1pc3Npb25SZXF1ZXN0IEFQSSBtYXBwaW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJ
VUlDbGllbnQuaDogTmV3IGRlY2lkZVBvbGljeSBoYW5kbGVyIGZvciBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC4KKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcDogRGl0dG8uCisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oOiBXS1BhZ2VVSUNsaWVudCB2ZXJzaW9u
IGJ1bXAgdG8KKyAgICAgICAgNSwgaW5jbHVkaW5nIHRoZSBuZXcgZGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QgbWVtYmVyLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQsIEMgQVBJCisgICAgICAg
IGltcGxlbWVudGF0aW9uIG9mIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAg
ICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQpOgorICAgICAgICAoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KToKKyAgICAgICAgKFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3REZW55KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V2ViS2l0Ml9DLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQu
Y3BwOiAgRGVjaWRlUG9saWN5IGhhbmRsZXIKKyAgICAgICAgaW1wbGVtZW50YXRpb24gZm9yIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQsCisgICAgICAgIFdlYktp
dEdUSyBBUEkgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCB2ZXJ5IHNpbWlsYXIgdG8g
dGhlCisgICAgICAgIG9uZSB1c2VkIGZvciBHZW9sb2NhdGlvbi4KKyAgICAgICAgKHdlYmtpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cpOgorICAgICAgICAod2Via2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3REZW55KToKKyAgICAgICAgKHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVl
c3RfaW50ZXJmYWNlX2luaXQpOgorICAgICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3REaXNwb3NlKToKKyAgICAgICAgKHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fZ2V0
X3BhcmFtZXRlcnMpOgorICAgICAgICAod2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9nZXRf
b3JpZ2luKToKKyAgICAgICAgKHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0UHJv
cGVydHkpOgorICAgICAgICAod2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2Ns
YXNzX2luaXQpOgorICAgICAgICAod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVh
dGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sOiBFeHBvc2UgbmV3IEFQSQor
ICAgICAgICBpbiBkb2N1bWVudGF0aW9uLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2Rv
Y3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQ6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL3dlYmtpdDIuaDogRXhwb3NlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IEFQSS4K
KyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwOiBBZGRlZCwKKyAgICAgICAgbWFuYWdlciBzdG9yaW5nIHBlbmRpbmcgVXNlck1lZGlh
UGVybWlzc2lvbiByZXF1ZXN0cy4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OmludmFsaWRhdGVSZXF1ZXN0cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVV
c2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHA6IEFkZGVkLCBwcm94eQor
ICAgICAgICBvYmplY3QgZm9yIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFR5cGUuCisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6bWVkaWFQYXJhbWV0ZXJzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOiBEZWZlcgorICAgICAgICBV
c2VyUGVybWlzc2lvblJlcXVlc3QgdG8gdGhlIFVJQ2xpZW50LgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOiBOZXcgbWVzc2FnZSB0byBoYW5kbGUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Rz
LgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHA6IEFkZGVkLAorICAgICAgICBXZWJQcm9jZXNzIHNpZGUgb2YgdGhlIFVzZXJSZXF1ZXN0
TWFuYWdlciwga2VlcGluZyB0cmFjayBvZiBlYWNoCisgICAgICAgIHBlcm1pc3Npb24gcmVxdWVz
dC4KKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVSZXF1ZXN0SUQpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjYW5jZWxSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVy
bWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHA6IEFkZGVkLAorICAgICAg
ICBXZWJQcm9jZXNzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBXZWJDb3JlOjpVc2VyTWVkaWFDbGll
bnQuCisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6V2ViVXNlck1lZGlhQ2xp
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsUmVxdWVzdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
aDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKTogQ3JlYXRlIHRoZQorICAgICAgICBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgYW5kIHJlZ2lzdGVyIHRoZSBVc2VyTWVkaWFD
bGllbnQKKyAgICAgICAgdG8gdGhlIHBhZ2UuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRp
ZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOiBEaXNwYXRjaAorICAgICAgICBk
ZWNpc2lvbiB0byBtYW5hZ2VyLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW46IE5ldyBNZXNzYWdlIHRvIGhhbmRsZQorICAgICAgICBwZXJtaXNzaW9uIGRlY2lzaW9uIHJl
c3VsdCBmcm9tIHRoZSBVSSBwcm9jZXNzLgorCiAyMDE0LTA5LTAyICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBHVEsgYnVpbGQg
Zml4IGFmdGVyIHIxNzMxNjMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdU
Sy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDcyZGE3YmIu
LmI1OGIzMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0yMTMsNiArMjEzLDkgQEAg
bGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VXNlckNvbnRlbnRNYW5hZ2VyLmgKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29u
dGVudE1hbmFnZXJQcml2YXRlLmgKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29u
dGVudE1hbmFnZXIuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuaAorICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VmVyc2lvbi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRWZXJzaW9uLmguaW4KICAg
ICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMzU0LDYgKzM1Nyw3
IEBAIHNldChXZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCiAgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnQuaAogICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50TWFuYWdlci5oCisgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuaAogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YkNvbnRleHQuaAogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
Ykluc3BlY3Rvci5oCiAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViUmVzb3VyY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
QmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDhkMWU5
NjUuLjExZWM1NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jh
c2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTEyNyw2
ICsxMjcsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Byb3RlY3Rpb25TcGFjZSog
V0tQcm90ZWN0aW9uU3BhY2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1RleHRD
aGVja2VyKiBXS1RleHRDaGVja2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tT
ZXNzaW9uKiBXS1Nlc3Npb25SZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Nlc3Np
b25TdGF0ZSogV0tTZXNzaW9uU3RhdGVSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWJyYXRpb24qIFdLVmlicmF0aW9u
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWV3cG9ydEF0dHJpYnV0ZXMqIFdL
Vmlld3BvcnRBdHRyaWJ1dGVzUmVmOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXgg
NmRmNDkxOC4uMzExMmVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtMTMyLDYg
KzEzMiw3IEBAIHB1YmxpYzoKICAgICAgICAgUHJlZmVyZW5jZXMsCiAgICAgICAgIFNlc3Npb24s
CiAgICAgICAgIFRleHRDaGVja2VyLAorICAgICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dCwKICAgICAgICAgVmlicmF0aW9uLAogICAgICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMsCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCAxY2ExNWUzLi5l
ZWJjZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBA
IC01MCw2ICs1MCw3IEBAIGNsYXNzIEltbXV0YWJsZURpY3Rpb25hcnk7CiBjbGFzcyBOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViV2hlZWxFdmVudDsKIGNsYXNzIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTsKIGNsYXNzIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNz
IFdlYkZyYW1lUHJveHk7CiBjbGFzcyBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOwpAQCAtMTIyLDYg
KzEyMyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBydW5PcGVuUGFuZWwoV2ViS2l0
OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBXZWJLaXQ6OldlYk9wZW5Q
YW5lbFBhcmFtZXRlcnMqLCBXZWJLaXQ6OldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkq
KSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpX
ZWJGcmFtZVByb3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6R2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0
OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBXZWJLaXQ6OldlYlNlY3Vy
aXR5T3JpZ2luKiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KikgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYlNl
Y3VyaXR5T3JpZ2luKiwgV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCopIHsg
cmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBQcmludGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA4MDIyMWE5Li41ZjQ0YTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC02Myw2ICs2Myw3IEBAIGNs
YXNzIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcjsKIGNsYXNzIERvd25sb2FkUHJveHk7
CiBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk7CiBjbGFzcyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2Vi
QmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKQEAgLTE0Niw2
ICsxNDcsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tSZW5kZXJMYXllclJlZiwgV2ViUmVuZGVy
TGF5ZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tSZW5kZXJPYmplY3RSZWYsIFdlYlJlbmRlck9i
amVjdCkKIFdLX0FERF9BUElfTUFQUElORyhXS1Nlc3Npb25TdGF0ZVJlZiwgQVBJOjpTZXNzaW9u
U3RhdGUpCiBXS19BRERfQVBJX01BUFBJTkcoV0tUZXh0Q2hlY2tlclJlZiwgV2ViVGV4dENoZWNr
ZXIpCitXS19BRERfQVBJX01BUFBJTkcoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiwg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1Zp
YnJhdGlvblJlZiwgV2ViVmlicmF0aW9uUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tWaWV3
cG9ydEF0dHJpYnV0ZXNSZWYsIFdlYlZpZXdwb3J0QXR0cmlidXRlcykKIFdLX0FERF9BUElfTUFQ
UElORyhXS0luc3BlY3RvclJlZiwgV2ViSW5zcGVjdG9yUHJveHkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDNjMDA2YmMuLjMzNmY2MjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VQb2xpY3lDbGllbnRCYXNlPiB7CiB9
OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnRCYXNlPiB7
Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50
VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQ+
IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1Bh
Z2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VV
SUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1PiBWZXJzaW9uczsKIH07CiAKIH0KQEAgLTE0OTcs
NiArMTQ5NywxNSBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJl
ZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KIAorICAgICAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVBy
b3h5KiBmcmFtZSwgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkqIHBlcm1pc3Npb25SZXF1ZXN0KSBvdmVycmlkZQorICAgICAgICB7Cisg
ICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAg
bV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QodG9BUEko
cGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkob3JpZ2luKSwgdG9BUEkocGVybWlzc2lvblJlcXVl
c3QpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJTZWN1cml0eU9y
aWdpbiogb3JpZ2luLCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvblJl
cXVlc3QpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVj
aWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCmluZGV4IDQwMzc3ZDYuLmEx
ZWEwZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VV
SUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNs
aWVudC5oCkBAIC04OSw2ICs4OSw3IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZVBpbm5lZFN0YXRl
RGlkQ2hhbmdlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjCiB0eXBlZGVm
IHZvaWQgKCpXS1BhZ2VEaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUG9pbnQgbW91c2VEb3duUG9zaXRpb24sIFdLSGl0VGVz
dFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkUmVjb2duaXplTG9uZ01vdXNl
UHJlc3NDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qg
dm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRDYW5jZWxUcmFja2lu
Z1BvdGVudGlhbExvbmdNb3VzZVByZXNzQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVS
ZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQ
YWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQ
YWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2lu
LCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKIAogLy8gRGVwcmVjYXRlZCAgICAKIHR5cGVkZWYgV0tQYWdl
UmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAp
KFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmll
cnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwpAQCAtMzc2LDYgKzM3Nyw3MyBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VV
SUNsaWVudFY0IHsKICAgICBXS1BhZ2VEaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3Vz
ZVByZXNzQ2FsbGJhY2sgICAgICAgICAgICAgIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9u
Z01vdXNlUHJlc3M7CiB9IFdLUGFnZVVJQ2xpZW50VjQ7CiAKK3R5cGVkZWYgc3RydWN0IFdLUGFn
ZVVJQ2xpZW50VjUgeworICAgIFdLUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4K
KyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAg
ICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAg
ICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNob3dQYWdlOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2U7CisgICAgV0tQYWdl
VGFrZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0YWtlRm9jdXM7CisgICAgV0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czsKKyAgICBXS1BhZ2VVbmZvY3Vz
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
Zm9jdXM7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVu
SmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBydW5KYXZhU2NyaXB0Q29uZmlybTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9t
cHQ7CisgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNUZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNz
aW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAg
IG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAg
V0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlFdmVudDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVX
aGVlbEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhh
bmRsZVdoZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7CisgICAg
V0tQYWdlU2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRUb29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklz
VmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFy
SXNWaXNpYmxlOworICAgIFdLUGFnZVNldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1Bh
Z2VHZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2li
bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c0Jhcklz
VmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVzaXphYmxlOworICAgIFdLUGFnZVNldElzUmVz
aXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
SXNSZXNpemFibGU7CisgICAgV0tQYWdlR2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VT
ZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkRHJhdzsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEaWRT
Y3JvbGw7CisgICAgV0tQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGNlZWRlZERhdGFiYXNlUXVvdGE7CisgICAgV0tQYWdl
UnVuT3BlblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5PcGVuUGFuZWw7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZUhlYWRlckhlaWdodENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0OworICAg
IFdLUGFnZUZvb3RlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9vdGVySGVpZ2h0OworICAgIFdLUGFnZURyYXdIZWFkZXJDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0hlYWRlcjsKKyAg
ICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRyYXdGb290ZXI7CisgICAgV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludEZyYW1lOworICAg
IFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuTW9kYWw7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2VkIHRv
IGJlIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQorICAgIFdLUGFnZVNhdmVEYXRh
VG9GaWxlSW5Eb3dubG9hZHNGb2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgc2F2
ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcjsKKyAgICBXS1BhZ2VTaG91bGRJbnRlcnJ1cHRK
YXZhU2NyaXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVy
cnVwdEphdmFTY3JpcHQ7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tQYWdlQ3JlYXRlTmV3
UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVOZXdQYWdlOworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAg
V0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFj
ayAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsK
KyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNh
dGVkRm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVk
Rm9yVXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNob3dDb2xvclBp
Y2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0Nv
bG9yUGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVu
YXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkOworICAgIAorICAgIC8vIFZlcnNpb24g
My4KKyAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lv
biA0LgorICAgIFdLUGFnZURpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzc0Nh
bGxiYWNrICAgICAgICAgICAgICAgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVBy
ZXNzOworICAgIFdLUGFnZURpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3M7CisgICAgV0tQ
YWdlRGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzc0NhbGxiYWNrICAgICAg
ICAgICAgICBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzOworCisgICAg
Ly8gVmVyc2lvbiA1LgorICAgIFdLUGFnZURlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3Q7Cit9IFdLUGFnZVVJQ2xpZW50VjU7CisKIGVudW0geyBrV0tQYWdlVUlD
bGllbnRDdXJyZW50VmVyc2lvbiBXS19FTlVNX0RFUFJFQ0FURUQoIlVzZSBhbiBleHBsaWNpdCB2
ZXJzaW9uIG51bWJlciBpbnN0ZWFkIikgPSAyIH07CiB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNs
aWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1ZmQzZTYyOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmgi
CisKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5jbHVk
ZSAiV0tBUElDYXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQ
SShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpBUElUeXBlKTsKK30KKwordm9pZCBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikKK3sKKyAgICB0b0ltcGwodXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5hbGxvdygpOworfQorCit2b2lkIFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYg
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit7CisgICAgdG9JbXBsKHVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKS0+ZGVueSgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYThjZjBhMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0LmgKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0X2gKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNw
bHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpOworCitXS19FWFBPUlQgdm9pZCBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk7CitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5k
aWYKKworI2VuZGlmIC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaCAqLwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oCmluZGV4IDVhNzEyY2QuLmUzMmJh
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmgKQEAgLTU3
LDYgKzU3LDcgQEAKICNpbmNsdWRlIDxXZWJLaXQvV0tVUkwuaD4KICNpbmNsdWRlIDxXZWJLaXQv
V0tVUkxSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLVVJMUmVzcG9uc2UuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oPgogCiAjaWYgZGVmaW5l
ZChfX09CSkNfXykgJiYgX19PQkpDX18KICNpbXBvcnQgPFdlYktpdC9XS1ZpZXcuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcApp
bmRleCA5ZDZhOGVjLi4wZWM5NTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVk
ZSAiV2ViS2l0TmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2
YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJUmVxdWVzdFByaXZhdGUuaCIKKyNpbmNsdWRlICJX
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJL
aXRXZWJWaWV3QmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdFdpbmRvd1Byb3BlcnRpZXNQcml2YXRlLmgiCkBAIC0xNTgsNiAr
MTU5LDEzIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHZp
cnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQ
YWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3Jp
Z2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBwZXJtaXNzaW9uUmVxdWVzdCkg
b3ZlcnJpZGUKKyAgICB7CisgICAgICAgIEdSZWZQdHI8V2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3Q+IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKHBlcm1pc3Npb25SZXF1ZXN0LCBzZWN1cml0
eU9yaWdpbikpOworICAgICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1f
d2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5nZXQoKSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICB2aXJ0dWFs
IHZvaWQgcHJpbnRGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiBmcmFtZSkgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgIHdlYmtpdFdlYlZpZXdQcmludEZyYW1lKG1fd2ViVmlldywg
ZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViZDdjMDgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5jcHAKQEAgLTAsMCArMSwxOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
SWdhbGlhIFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgiCisK
KyNpbmNsdWRlICJJbW11dGFibGVEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW4uaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5j
bHVkZSAiV2ViS2l0RW51bVR5cGVzLmgiCisjaW5jbHVkZSAiV2ViS2l0UGVybWlzc2lvblJlcXVl
c3QuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUu
aCIKKyNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworLyoqCisgKiBTRUNUSU9OOiBXZWJL
aXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAorICogQFNob3J0X2Rlc2NyaXB0aW9uOiBBIHBl
cm1pc3Npb24gcmVxdWVzdCBmb3IgYWNjZXNzaW5nIHVzZXIncyBhdWRpby92aWRlbyBkZXZpY2Vz
LgorICogQFRpdGxlOiBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAorICogQFNlZV9h
bHNvOiAjV2ViS2l0UGVybWlzc2lvblJlcXVlc3QsICNXZWJLaXRXZWJWaWV3CisgKgorICogV2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgcmVwcmVzZW50cyBhIHJlcXVlc3QgZm9yCisg
KiBwZXJtaXNzaW9uIHRvIGRlY2lkZSB3aGV0aGVyIFdlYktpdCBzaG91bGQgYmUgYWxsb3dlZCB0
byBhY2Nlc3MgdGhlIHVzZXIncworICogYXVkaW8gYW5kIHZpZGVvIHNvdXJjZSBkZXZpY2VzIHdo
ZW4gcmVxdWVzdGVkIHRocm91Z2h0IHRoZSBnZXRVc2VyTWVkaWEgQVBJLgorICovCisKK2VudW0g
eworICAgIFBST1BfMCwKKyAgICBQUk9QX09SSUdJTiwKKyAgICBQUk9QX1BBUkFNRVRFUlMKK307
CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQo
V2ViS2l0UGVybWlzc2lvblJlcXVlc3RJZmFjZSopOworCitzdHJ1Y3QgX1dlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSB7CisgICAgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk+IHJlcXVlc3Q7CisgICAgdWludDMyX3QgbWVkaWFQYXJhbWV0ZXJzOwor
ICAgIGJvb2wgbWFkZURlY2lzaW9uOworICAgIGdjaGFyKiBvcmlnaW47Cit9OworCitXRUJLSVRf
REVGSU5FX1RZUEVfV0lUSF9DT0RFKAorICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LCB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1Qs
CisgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKFdFQktJVF9UWVBFX1BFUk1JU1NJT05fUkVRVUVT
VCwgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5pdCkpCisKK3N0YXRpYyB2
b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV2ViS2l0UGVybWlzc2lv
blJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgQVNTRVJUKFdFQktJVF9JU19VU0VSX01FRElBX1BF
Uk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSk7CisKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JF
UVVFU1QocmVxdWVzdCktPnByaXY7CisKKyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBhIHRp
bWUuCisgICAgaWYgKHByaXYtPm1hZGVEZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAg
cHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKKyAgICBwcml2LT5yZXF1ZXN0LT5hbGxvdygpOwor
fQorCitzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV2Vi
S2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgQVNTRVJUKFdFQktJVF9JU19V
U0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSk7CisKKyAgICBXZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfVVNFUl9NRURJQV9Q
RVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisKKyAgICAvLyBPbmx5IG9uZSBkZWNp
c2lvbiBhdCBhIHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVEZWNpc2lvbikKKyAgICAgICAgcmV0
dXJuOworCisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKKyAgICBwcml2LT5yZXF1ZXN0
LT5kZW55KCk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50
ZXJmYWNlX2luaXQoV2ViS2l0UGVybWlzc2lvblJlcXVlc3RJZmFjZSogaWZhY2UpCit7CisgICAg
aWZhY2UtPmFsbG93ID0gd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdzsKKyAg
ICBpZmFjZS0+ZGVueSA9IHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueTsKK30K
Kworc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REaXNwb3NlKEdP
YmplY3QqIG9iamVjdCkKK3sKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCog
cmVxdWVzdCA9IFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChvYmplY3QpOwor
CisgICAgZ19mcmVlKHJlcXVlc3QtPnByaXYtPm9yaWdpbik7CisKKyAgICAvLyBEZWZhdWx0IGJl
aGF2aW91ciB3aGVuIG5vIGRlY2lzaW9uIGhhcyBiZWVuIG1hZGUgaXMgZGVueWluZyB0aGUgcmVx
dWVzdC4KKyAgICB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0VCS0lUX1BF
Uk1JU1NJT05fUkVRVUVTVChvYmplY3QpKTsKKyAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfdXNl
cl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZShvYmplY3Qp
OworfQorCitndWludDMyIHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fZ2V0X3BhcmFtZXRl
cnMoV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNU
KHJlcXVlc3QpLCBXRUJLSVRfVVNFUl9NRURJQV9QQVJBTUVURVJTX05PTkUpOworCisgICAgcmV0
dXJuIHJlcXVlc3QtPnByaXYtPm1lZGlhUGFyYW1ldGVyczsKK30KKworLyoqCisgKiB3ZWJraXRf
dXNlcl9tZWRpYV9wZXJtaXNzaW9uX2dldF9vcmlnaW46CisgKiBAcmVxdWVzdDogYSAjV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKKyAqCisgKiBPYnRhaW5zIHRoZSBVUkkgb2YgdGhl
IHNlY3VyaXR5IG9yaWdpbiBhc3NvY2lhdGVkIHdpdGggdGhlIHdlYiBwYWdlCisgKiByZXF1ZXN0
aW5nIHRoZSBwZXJtaXNzaW9uIHRvIGFjY2VjIG1lZGlhIGRldmljZShzKS4KKyAqCisgKiBSZXR1
cm5zOiB0aGUgc2VjdXJpdHkgb3JpZ2luIFVSSSBvciBhbiBlbXB0eSBzdHJpbmcuCisgKi8KK2Nv
bnN0IGdjaGFyKiB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX2dldF9vcmlnaW4oV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3Qp
LCAiIik7CisKKyAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+b3JpZ2luOworfQorCitzdGF0aWMg
dm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFByb3BlcnR5KEdPYmplY3Qq
IG9iamVjdCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwYXJhbVNw
ZWMpCit7CisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QgPSBX
RUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqZWN0KTsKKworICAgIHN3aXRj
aCAocHJvcElkKSB7CisgICAgY2FzZSBQUk9QX09SSUdJTjoKKyAgICAgICAgZ192YWx1ZV9zZXRf
c3RyaW5nKHZhbHVlLCB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX2dldF9vcmlnaW4ocmVx
dWVzdCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfUEFSQU1FVEVSUzoKKyAgICAg
ICAgZ192YWx1ZV9zZXRfZmxhZ3ModmFsdWUsIHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25f
Z2V0X3BhcmFtZXRlcnMocmVxdWVzdCkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQs
IHBhcmFtU3BlYyk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfdXNlcl9tZWRpYV9w
ZXJtaXNzaW9uX3JlcXVlc3RfY2xhc3NfaW5pdChXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdENsYXNzKiBrbGFzcykKK3sKKyAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19P
QkpFQ1RfQ0xBU1Moa2xhc3MpOworICAgIG9iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3REaXNwb3NlOworICAgIG9iamVjdENsYXNzLT5nZXRfcHJv
cGVydHkgPSB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFByb3BlcnR5OworCisg
ICAgLyoqCisgICAgICogV2ViS2l0VXNlclBlcm1pc3Npb25SZXF1ZXN0Om9yaWdpbjoKKyAgICAg
KgorICAgICAqIFRoZSBzZWN1cml0eSBvcmlnaW4gVVJMIGFzc29jaWF0ZWQgd2l0aCB0aGUgd2Vi
IHBhZ2UgcmVxdWVzdGluZyB0aGUgcGVybWlzc2lvbi4KKyAgICAgKi8KKyAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX09SSUdJTiwKKyAgICAgICAg
Z19wYXJhbV9zcGVjX3N0cmluZygib3JpZ2luIiwgXygiT3JpZ2luIiksCisgICAgICAgICAgICBf
KCJUaGUgc2VjdXJpdHkgb3JpZ2luIFVSTCBhc3NvY2lhdGVkIHdpdGggdGhlIHdlYiBwYWdlIHJl
cXVlc3RpbmcgdGhlIHBlcm1pc3Npb24iKSwKKyAgICAgICAgICAgIDAsIFdFQktJVF9QQVJBTV9S
RUFEQUJMRSkpOworCisgICAgLyoqCisgICAgICogV2ViS2l0VXNlclBlcm1pc3Npb25SZXF1ZXN0
OnBhcmFtZXRlcnM6CisgICAgICoKKyAgICAgKiBUaGUgbWVkaWEgZGV2aWNlIHR5cGUocykgcmVx
dWVzdGVkLCBlaXRoZXIgYXVkaW8sIHZpZGVvIG9yIGJvdGguCisgICAgICovCisgICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9QQVJBTUVURVJTLAor
ICAgICAgICBnX3BhcmFtX3NwZWNfZmxhZ3MoInBhcmFtZXRlcnMiLCBfKCJNZWRpYSBwYXJhbWV0
ZXJzIiksCisgICAgICAgICAgICBfKCJUaGUgbWVkaWEgZGV2aWNlIHR5cGUocykgcmVxdWVzdGVk
LCBlaXRoZXIgYXVkaW8sIHZpZGVvIG9yIGJvdGgiKSwKKyAgICAgICAgICAgIFdFQktJVF9UWVBF
X1VTRVJfTUVESUFfUEFSQU1FVEVSUywKKyAgICAgICAgICAgIFdFQktJVF9VU0VSX01FRElBX1BB
UkFNRVRFUlNfTk9ORSwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCit9
CisKK1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiB3ZWJraXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdENyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiByZXF1
ZXN0LCBXZWJTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4pCit7CisgICAgV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QqIHVzZXJtZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gV0VC
S0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQ
RV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgTlVMTCkpOworICAgIHVpbnQzMl90IG1l
ZGlhUGFyYW1ldGVycyA9IDA7CisKKyAgICBSZWZQdHI8SW1tdXRhYmxlRGljdGlvbmFyeT4gcGFy
YW1ldGVycyA9IHJlcXVlc3QtPm1lZGlhUGFyYW1ldGVycygpOworICAgIEFQSTo6Qm9vbGVhbiog
YXVkaW8gPSByZWludGVycHJldF9jYXN0PEFQSTo6Qm9vbGVhbio+KHBhcmFtZXRlcnMtPmdldCgi
YXVkaW8iKSk7CisgICAgQVBJOjpCb29sZWFuKiB2aWRlbyA9IHJlaW50ZXJwcmV0X2Nhc3Q8QVBJ
OjpCb29sZWFuKj4ocGFyYW1ldGVycy0+Z2V0KCJ2aWRlbyIpKTsKKworICAgIGlmIChhdWRpby0+
dmFsdWUoKSkKKyAgICAgICAgbWVkaWFQYXJhbWV0ZXJzIHw9IFdFQktJVF9VU0VSX01FRElBX1BB
UkFNRVRFUlNfQVVESU87CisgICAgaWYgKHZpZGVvLT52YWx1ZSgpKQorICAgICAgICBtZWRpYVBh
cmFtZXRlcnMgfD0gV0VCS0lUX1VTRVJfTUVESUFfUEFSQU1FVEVSU19WSURFTzsKKworICAgIHVz
ZXJtZWRpYVBlcm1pc3Npb25SZXF1ZXN0LT5wcml2LT5yZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICB1
c2VybWVkaWFQZXJtaXNzaW9uUmVxdWVzdC0+cHJpdi0+bWVkaWFQYXJhbWV0ZXJzID0gbWVkaWFQ
YXJhbWV0ZXJzOworCisgICAgU3RyaW5nIG9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luLT5zZWN1cml0
eU9yaWdpbigpLnRvU3RyaW5nKCk7CisgICAgaWYgKCFvcmlnaW4pCisgICAgICAgIG9yaWdpbiA9
ICIiOworICAgIHVzZXJtZWRpYVBlcm1pc3Npb25SZXF1ZXN0LT5wcml2LT5vcmlnaW4gPSBnX3N0
cmR1cChvcmlnaW4udXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIHVzZXJtZWRpYVBlcm1pc3Np
b25SZXF1ZXN0OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY3ODBhYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0LmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWYgIWRlZmluZWQo
X19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisj
ZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHku
IgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaAor
I2RlZmluZSBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxn
bGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JF
R0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JF
UVVFU1QgICAgICAgICAgICAod2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dl
dF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChv
YmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRf
VFlQRV9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVF
U1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VC
S0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJN
SVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgo
b2JqKSwgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmlu
ZSBXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChH
X1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9Q
RVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9O
X1JFUVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmop
LCAgV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QgICAgICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
Q2xhc3MgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSBXZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CisKKy8qKgorICogV2ViS2l0VXNlck1lZGlh
UGFyYW1ldGVyczoKKyAqIEBXRUJLSVRfVVNFUl9NRURJQV9QQVJBTUVURVJTX05PTkU6IG5vIG1l
ZGlhLiBTaG91bGRuJ3QgaGFwcGVuLgorICogQFdFQktJVF9VU0VSX01FRElBX1BBUkFNRVRFUlNf
QVVESU86IEF1ZGlvIGlucHV0IGRldmljZS4KKyAqIEBXRUJLSVRfVVNFUl9NRURJQV9QQVJBTUVU
RVJTX1ZJREVPOiBWaWRlbyBpbnB1dCBkZXZpY2UuCisgKgorICogRW51bSB2YWx1ZXMgdXNlZCB0
byBzcGVjaWZ5IHdoaWNoIHR5cGUgb2YgbWVkaWEgZGV2aWNlIGlzIHJlcXVlc3RlZC4KKyAqLwor
dHlwZWRlZiBlbnVtIHsKKyAgV0VCS0lUX1VTRVJfTUVESUFfUEFSQU1FVEVSU19OT05FLAorCisg
IFdFQktJVF9VU0VSX01FRElBX1BBUkFNRVRFUlNfQVVESU8gPSAxIDw8IDAsCisgIFdFQktJVF9V
U0VSX01FRElBX1BBUkFNRVRFUlNfVklERU8gPSAxIDw8IDEKK30gV2ViS2l0VXNlck1lZGlhUGFy
YW1ldGVyczsKKworc3RydWN0IF9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCB7Cisg
ICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJl
bnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307
CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVz
dF9nZXRfdHlwZSAodm9pZCk7CisKK2d1aW50MzIgd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lv
bl9nZXRfcGFyYW1ldGVycyhXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVz
dCk7Citjb25zdCBnY2hhciogd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9nZXRfb3JpZ2lu
KFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KTsKKworR19FTkRfREVD
TFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJp
dmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkNzIxOTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaApAQCAtMCwwICsxLDI3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
ICovCisKKyNpZm5kZWYgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gK
KyNkZWZpbmUgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKKworI2lu
Y2x1ZGUgIldlYktpdFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oIgorCitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogd2Via2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiopOworCisjZW5kaWYg
Ly8gV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNn
bWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9j
cy5zZ21sCmluZGV4IDY2Mzg3ZGYuLmFmZmJkZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbApAQCAt
MjQsNiArMjQsNyBAQAogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRQZXJtaXNzaW9u
UmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0R2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2Vi
S2l0TmF2aWdhdGlvbkFjdGlvbi54bWwiLz4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2Vi
S2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJl
Zj0ieG1sL1dlYktpdFBvbGljeURlY2lzaW9uLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9
InhtbC9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24ueG1sIi8+CiAgICAgPHhpOmluY2x1
ZGUgaHJlZj0ieG1sL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24ueG1sIi8+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2Vj
dGlvbnMudHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQy
Z3RrLXNlY3Rpb25zLnR4dAppbmRleCA4NWVjZjcxLi5iMjFmMmZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1z
ZWN0aW9ucy50eHQKQEAgLTU5MSw2ICs1OTEsMjcgQEAgd2Via2l0X25hdmlnYXRpb25fYWN0aW9u
X2dldF90eXBlCiA8L1NFQ1RJT04+CiAKIDxTRUNUSU9OPgorPEZJTEU+V2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3Q8L0ZJTEU+CitXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dAorV2ViS2l0VXNlck1lZGlhUGFyYW1ldGVycword2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lv
bl9nZXRfcGFyYW1ldGVycword2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9nZXRfb3JpZ2lu
CisKKzxTVUJTRUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RDbGFzcworV0VCS0lUX1RZUEVfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJ
VF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVS
TUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xB
U1MKK1dFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUworV0VCS0lU
X1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUX0dFVF9DTEFTUworCis8U1VCU0VDVElPTiBQ
cml2YXRlPgorV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlCit3ZWJraXRf
dXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKworPFNF
Q1RJT04+CiA8RklMRT5XZWJLaXRQb2xpY3lEZWNpc2lvbjwvRklMRT4KIFdlYktpdFBvbGljeURl
Y2lzaW9uCiB3ZWJraXRfcG9saWN5X2RlY2lzaW9uX2Rvd25sb2FkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKaW5kZXggZDc5MTYzZS4uYjc4ZGMyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaApAQCAtNjIsNiArNjIsNyBA
QAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oPgogI2luY2x1ZGUg
PHdlYmtpdDIvV2ViS2l0VXNlckNvbnRlbnQuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVz
ZXJDb250ZW50TWFuYWdlci5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFZlcnNpb24uaD4KICNp
bmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYkNvbnRleHQuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dl
YktpdFdlYkluc3BlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk3ZTU5NQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgiCisKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQ
YWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCisgICAg
OiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVlc3RzKCkKK3sKKyAgICBmb3IgKGF1dG8mIHJlcXVl
c3QgOiBtX3BlbmRpbmdSZXF1ZXN0cy52YWx1ZXMoKSkKKyAgICAgICAgcmVxdWVzdC0+aW52YWxp
ZGF0ZSgpOworCisgICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKTsKK30KKworUGFzc1JlZlB0
cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9v
bCBhdWRpbywgYm9vbCB2aWRlbykKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eT4gcmVxdWVzdCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNy
ZWF0ZSgqdGhpcywgdXNlck1lZGlhSUQsIGF1ZGlvLCB2aWRlbyk7CisgICAgbV9wZW5kaW5nUmVx
dWVzdHMuYWRkKHVzZXJNZWRpYUlELCByZXF1ZXN0LmdldCgpKTsKKyAgICByZXR1cm4gcmVxdWVz
dC5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNl
ck1lZGlhSUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBpZiAoIW1fcGFnZS5pc1ZhbGlkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9wZW5kaW5nUmVxdWVzdHMudGFrZSh1c2VyTWVk
aWFJRCkpCisgICAgICAgIHJldHVybjsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAg
bV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1l
ZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkKSwgbV9wYWdlLnBhZ2VJ
RCgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOworI2VuZGlmCit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTE3MTNiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CisKKyAgICB2
b2lkIGludmFsaWRhdGVSZXF1ZXN0cygpOworCisgICAgLy8gQ3JlYXRlIGEgcmVxdWVzdCB0byBi
ZSBwcmVzZW50ZWQgdG8gdGhlIHVzZXIuCisgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29s
IGF1ZGlvLCBib29sIHZpZGVvKTsKKworICAgIC8vIENhbGxlZCBieSBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5IHdoZW4gYSBkZWNpc2lvbiBpcyBtYWRlIGJ5IHRoZSB1c2VyLgorICAg
IHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9v
bCBhbGxvdyk7CisKK3ByaXZhdGU6CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBXZWJQ
YWdlUHJveHkmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxNGU1ZDQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRv
IHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaCIKKworI2luY2x1ZGUgIkFQSU51bWJlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFz
aC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wg
YXVkaW8sIGJvb2wgdmlkZW8pCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fdXNl
ck1lZGlhSUQodXNlck1lZGlhSUQpCit7CisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxBUEk6
Ok9iamVjdD4+IHBhcmFtZXRlcnNNYXA7CisgICAgcGFyYW1ldGVyc01hcC5zZXQoImF1ZGlvIiwg
QVBJOjpCb29sZWFuOjpjcmVhdGUoYXVkaW8pKTsKKyAgICBwYXJhbWV0ZXJzTWFwLnNldCgidmlk
ZW8iLCBBUEk6OkJvb2xlYW46OmNyZWF0ZSh2aWRlbykpOworICAgIG1fbWVkaWFQYXJhbWV0ZXJz
ID0gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShwYXJhbWV0ZXJzTWFwKSk7
Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3coKQorewor
ICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNl
ck1lZGlhSUQsIHRydWUpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk6OmRlbnkoKQoreworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lv
bkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIGZhbHNlKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBtX21hbmFnZXIuaW52YWxp
ZGF0ZVJlcXVlc3RzKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDQ3MjcyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVm
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUg
IkltbXV0YWJsZURpY3Rpb25hcnkuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgOiBwdWJs
aWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVkaW8sIGJvb2wg
dmlkZW8pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgdXNlck1lZGlhSUQsIGF1ZGlvLCB2aWRlbykpOwor
ICAgIH0KKworICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRlbnkoKTsKKworICAgIHZvaWQg
aW52YWxpZGF0ZSgpOworCisgICAgUGFzc1JlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBtZWRp
YVBhcmFtZXRlcnMoKSBjb25zdCB7IHJldHVybiBtX21lZGlhUGFyYW1ldGVyczsgfQorCitwcml2
YXRlOgorICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhdWRp
bywgYm9vbCB2aWRlbyk7CisKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSYgbV9tYW5hZ2VyOworICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhSUQ7CisgICAgUmVmUHRy
PEltbXV0YWJsZURpY3Rpb25hcnk+IG1fbWVkaWFQYXJhbWV0ZXJzOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNGZiNzE0
MC4uMWZkMWE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJQcmludEluZm8uaCIKICNpbmNsdWRlICJUZXh0
Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKKyNpbmNsdWRlICJVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2luY2x1ZGUgIldlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0uaCIKQEAgLTI4MCw2ICsyODEsNyBAQCBXZWJQYWdlUHJveHk6OldlYlBh
Z2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3Ms
IHVpbgogI2VuZGlmCiAgICAgLCBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KCp0aGlzKQogICAgICwgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKnRo
aXMpCisgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKICAg
ICAsIG1fdmlld1N0YXRlKFZpZXdTdGF0ZTo6Tm9GbGFncykKICAgICAsIG1fdmlld1dhc0V2ZXJJ
bldpbmRvdyhmYWxzZSkKICAgICAsIG1fYmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlz
dDo6Y3JlYXRlKCp0aGlzKSkKQEAgLTQ2NTUsNiArNDY1NywxOCBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0
aW9uSUQsCiAgICAgcmVxdWVzdC0+ZGVueSgpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVx
dWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIGJvb2wgYXVkaW8sIGJvb2wg
dmlkZW8pCit7CisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1l
KGZyYW1lSUQpOworICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUpOworCisgICAgUmVmUHRyPFdlYlNl
Y3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyKG9yaWdpbklkZW50aWZpZXIpKTsK
KyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gcmVxdWVzdCA9IG1f
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNyZWF0ZVJlcXVlc3QodXNlck1lZGlh
SUQsIGF1ZGlvLCB2aWRlbyk7CisKKyAgICBpZiAoIW1fdWlDbGllbnQtPmRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHRoaXMsIGZyYW1lLCBvcmlnaW4uZ2V0KCksIHJl
cXVlc3QuZ2V0KCkpKQorICAgICAgICByZXF1ZXN0LT5kZW55KCk7Cit9CisKIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogewogICAgIGlmICghaXNSZXF1ZXN0SURWYWxp
ZChyZXF1ZXN0SUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IGJkZjY4YmYuLmZjZmMxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJp
dG1hcC5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmgiCiAjaW5jbHVkZSAiVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIgogI2luY2x1ZGUg
IldLQmFzZS5oIgogI2luY2x1ZGUgIldLUGFnZVByaXZhdGUuaCIKQEAgLTEyNCw2ICsxMjUsNyBA
QCBjbGFzcyBEcmFnRGF0YTsKIGNsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7
CiBjbGFzcyBJbnRTaXplOworY2xhc3MgTWVkaWFDb25zdHJhaW50c0ltcGw7CiBjbGFzcyBQcm90
ZWN0aW9uU3BhY2U7CiBjbGFzcyBSdW5Mb29wT2JzZXJ2ZXI7CiBjbGFzcyBTaGFyZWRCdWZmZXI7
CkBAIC0xMDMxLDYgKzEwMzMsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZXhjZWVkZWREYXRhYmFz
ZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVp
bnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRf
dCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgUGFzc1JlZlB0
cjxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRS
ZXBseT4pOwogICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0
X3QgdG90YWxCeXRlc05lZWRlZCwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
ZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOjpEZWxheWVkUmVwbHk+KTsKICAgICB2
b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2Nh
dGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CisKKyAg
ICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1l
ZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBib29sIGF1
ZGlvLCBib29sIHZpZGVvKTsKKwogICAgIHZvaWQgcnVuTW9kYWwoKTsKICAgICB2b2lkIG5vdGlm
eVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwog
ICAgIHZvaWQgcmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0
eWxlKTsKQEAgLTEzNjcsNiArMTM3Miw4IEBAIHByaXZhdGU6CiAgICAgR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOwogICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1f
bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogCisgICAgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI7CisKICAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlOwogICAg
IGJvb2wgbV92aWV3V2FzRXZlckluV2luZG93OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0YTZmZDU3Li5lOGE1YmViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KQEAgLTI1Niw2ICsyNTYsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAj
IEdlb2xvY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBv
cmlnaW5JZGVudGlmaWVyKQogICAgIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgIyBN
ZWRpYVN0ZWFtIG1lc3NhZ2VzCisgICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklk
ZW50aWZpZXIsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pCisjZW5kaWYKKwogICAgICMgTm90aWZp
Y2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0
X3QgcmVxdWVzdElELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICBTaG93Tm90aWZpY2F0
aW9uKFN0cmluZyB0aXRsZSwgU3RyaW5nIGJvZHksIFN0cmluZyBpY29uVVJMLCBTdHJpbmcgdGFn
LCBTdHJpbmcgbGFuZywgU3RyaW5nIGRpciwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2
NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM5MGQ3NzUuLjQ5NTY0ODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc4OCw2ICs3
ODgsMTQgQEAKIAkJM0Y4ODlEMTQxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDNGODg5RDEyMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubW0gKi87IH07CiAJCTNGODg5RDE1MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDNGODg5RDEzMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkuaCAqLzsgfTsKIAkJM0Y4ODlEMTcxODg3ODU5MzAwRkVBREFGIC8q
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg4OUQwRDE4ODc2OTlDMDBGRUFEQUYgLyogV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5tbSAqLzsgfTsKKwkJNEEzQ0MxOEExOUIwNjNFNzAwRDE0QUVGIC8q
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM5MTlBRjdCMDQwMDJFQkFC
NSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJ
CTRBM0NDMThCMTlCMDY0MEYwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNEE0MTBGM0ExOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmggKi87IH07CisJCTRBM0NDMThDMTlCMDY0MTUwMEQxNEFFRiAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNCMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCAqLzsgfTsKKwkJNEEzQ0MxOEQxOUIwNjQxOTAw
RDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNDMTlBRjdCMDQwMDJFQkFC
NSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi87IH07CisJCTRBM0NDMThF
MTlCMDdCODUwMEQxNEFFRiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM1MTlBRjdB
QzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLzsgfTsKKwkJ
NEEzQ0MxOEYxOUIwN0I4QTAwRDE0QUVGIC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM2
MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNEE0MTBGNDQxOUFG
N0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0MjE5QUY3
QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCAqLzsg
fTsKKwkJNEE0MTBGNEExOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0ODE5
QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAqLzsgfTsKIAkJNEY2MDE0
MzIxNTVDNUFBMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGNjAxNDMwMTU1QzVBMzIwMDFGQkRF
MCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi87IH07CiAJCTUxMDIxRTlDMTJCMTY3ODgwMDVD
MDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJD
b250ZXh0TWVudUNsaWVudE1hYy5tbSAqLzsgfTsKIAkJNTEwMjc0MzIxOTgxQUY4RTAwODE2NUVE
IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFN
YW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTI3OTksNiArMjgwNywxNiBAQAogCQkzRjg4OUQxMjE4ODc3OEM5MDBGRUFEQUYgLyogV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOyBwYXRoID0g
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJM0Y4ODlEMTMxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4ODlEMTYxODg3
N0EyNDAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHBhdGgg
PSBpb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzNTE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNEE0MTBGMzYxOUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
QTQxMEYzOTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0QTQxMEYzQTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNEE0MTBGM0IxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTRBNDEwRjNDMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNEE0MTBGNDIxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0QTQxMEY0MzE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
QTQxMEY0ODE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVzZXJNZWRpYUNsaWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjQ5MTlBRjdCODAwMDJFQkFCNSAvKiBX
ZWJVc2VyTWVkaWFDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
VXNlck1lZGlhQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGNjAxNDMw
MTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NraW5nUmVzcG9uc2VNYXAuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5
bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29t
cGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gU2VjSXRlbVNo
aW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMDIxRTlC
MTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE0Myw2ICs1MTYxLDE1IEBACiAJCQlw
YXRoID0gQ29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk0QTQxMEY0
MTE5QUY3QjI3MDAyRUJBQjUgLyogTWVkaWFTdHJlYW0gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjQyMTlBRjdCMjcwMDJFQkFCNSAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICovLAorCQkJCTRBNDEwRjQzMTlBRjdC
MjcwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLywKKwkJ
CSk7CisJCQlwYXRoID0gTWVkaWFTdHJlYW07CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwor
CQl9OwogCQk1MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC01NjAxLDYgKzU2MjgsNyBAQAogCQlC
QzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGNDExOUFGN0IyNzAwMkVCQUI1IC8q
IE1lZGlhU3RyZWFtICovLAogCQkJCTUxMkUzNTJBMTMwQjU1OTkwMEFCRDE5QSAvKiBBcHBsaWNh
dGlvbkNhY2hlICovLAogCQkJCTdDNkU3MEY4MThCMkQ0N0UwMEYyNEUyRSAvKiBjb2NvYSAqLywK
IAkJCQkzMzA5MzQ0QjEzMTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAqLywKQEAgLTU2MzgsNiAr
NTY2Niw4IEBACiAJCUJDMDMyRDVEMTBGNDM3MjIwMDU4QzE1QSAvKiBXZWJDb3JlU3VwcG9ydCAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGNDgx
OUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgKi8sCisJCQkJNEE0MTBG
NDkxOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5oICovLAogCQkJCTJEMjhG
M0RGMTg4NUNDQjQwMDRCOUVBRSAvKiBpb3MgKi8sCiAJCQkJQkMxMTFBREUxMTJGNUI5QTAwMzM3
QkFCIC8qIG1hYyAqLywKIAkJCQkxQTcyODQ0NDE5NTlFRDEwMDAwN0JDRTUgLyogU2Vzc2lvblN0
YXRlQ29udmVyc2lvbi5jcHAgKi8sCkBAIC01NzQxLDYgKzU3NzEsMTAgQEAKIAkJQkMwMzJEQzMx
MEY0MzgyNjAwNThDMTVBIC8qIFVJUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGMzkxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQk0QTQxMEYzQTE5QUY3
QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAq
LywKKwkJCQk0QTQxMEYzQjE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5jcHAgKi8sCisJCQkJNEE0MTBGM0MxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAqLywKIAkJCQkyREE5NDRBODE4ODRFOUFCMDBF
RDg2REIgLyogaW9zICovLAogCQkJCUJDMDMyREM0MTBGNDM4N0MwMDU4QzE1QSAvKiBBUEkgKi8s
CiAJCQkJNTEyRjU4OEQxMkE4ODM2RjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uICovLApAQCAt
NTkxMSw2ICs1OTQ1LDggQEAKIAkJQkMwQzM3NjYxMEY4MDc2NjAwNzZEN0NCIC8qIEMgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjM1MTlBRjdB
QzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk0
QTQxMEYzNjE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5o
ICovLAogCQkJCTUxMjNDRjE4MTMzRDI1RTYwMDU2RjgwMCAvKiBjZyAqLywKIAkJCQk2RUU4NDlD
NDEzNjhEOTA0MDAzOEQ0ODEgLyogbWFjICovLAogCQkJCUJDQjYzNDc3MTE2QkYxMDYwMDYwMzIx
NSAvKiBXZWJLaXQyX0MuaCAqLywKQEAgLTcxMzcsNiArNzE3Myw3IEBACiAJCQkJMUFBNDFBQjUx
MkMwMkVDNDAwMkJFNjdCIC8qIEVkaXRvclN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUIx
NUE4NTEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBN0M2Q0RCMTM3ODk1MDgwMEI5QzA0RCAvKiBFbnZpcm9ubWVudFZhcmlhYmxl
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEEzQ0MxOEYxOUIwN0I4QTAwRDE0QUVGIC8qIFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTU3NUZCMTQ5
NkI1MjYwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
OTBDMUY0MTI2NEZENzEwMDNFNDRENCAvKiBGaW5kQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE5MTAwNzExMjY2NzVDNDAwMTg0MkY1IC8qIEZpbmRJbmRpY2F0b3IuaCBpbiBIZWFk
ZXJzICovLApAQCAtNzU0Nyw2ICs3NTg0LDcgQEAKIAkJCQk1MTgzNTNEQjE4ODVCRjhDMDBEOUZF
NDQgLyogSURCU2VyaWFsaXphdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFERjU5MUIxODkw
NTI4RTAwNDNDMTQ1IC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNTc0NEYwMTI2MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1cEl0ZW0uaCBpbiBIZWFkZXJz
ICovLAorCQkJCTRBM0NDMThEMTlCMDY0MTkwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0I5NDg0NzExRkY0QjY1MDAwMzJC
MzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU3NEU2MzEyNjdEMDgw
MDA2RjBGMTIgLyogV2ViUG9wdXBNZW51UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDOEVC
MTE3MThEQjZBMTkwMDc5MTdDMiAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC03NTc0LDYgKzc2MTIsNyBAQAogCQkJCTM3NjA4ODFGMTUwNDEzRTkwMEZDODJDNyAv
KiBXZWJSZW5kZXJPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjE3NDY1MTY0QzIxMzcw
MDM3QTVDMSAvKiBXZWJSZXNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMzNjc2
MzAxMzBDOTk5ODAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0QTNDQzE4QjE5QjA2NDBGMDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQUYwODlCMTkyNjdF
RTUwMEI2MzkwQyAvKiBXS1VzZXJTY3JpcHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzMzY3NjU2
MTMwQzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2REIgLyogR2VzdHVyZVR5cGVz
LmggaW4gSGVhZGVycyAqLywKQEAgLTg2NjIsNyArODcwMSw5IEBACiAJCQlpc2EgPSBQQlhTb3Vy
Y2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxl
cyA9ICgKKwkJCQk0QTQxMEY0NDE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUQyNEExMTZDQzNCOUUw
MDdENTQ2MSAvKiBDaGlsZFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNEE0MTBG
NEExOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKQEAgLTkwNTEsNiArOTA5Miw3IEBACiAJCQkJMUEwRjI5RTMxMjBCNDQ0MjAwNTNEMUI5IC8q
IFZpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFERjYzMTIxOEUw
QjdDODAwM0EzRTJBIC8qIERvd25sb2FkQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEw
RjI5Q0IxMjBCMzcxNjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rVGFibGUuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNEEzQ0MxOEExOUIwNjNFNzAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzEzMzdGMTg1OTBB
RTQwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUNFREExMkUyMTUyQ0QxQUUwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyRTM1MkUxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTE3Myw2ICs5MjE1LDcg
QEAKIAkJCQk1MTgzNDU5MjEzNDUzMkU5MDA5MkI2OTYgLyogV2ViSWNvbkRhdGFiYXNlQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRDAyRjY0MTMyRUM1QjkwMEJFQUE5NiAvKiBXZWJJ
Y29uRGF0YWJhc2VNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU3MTkz
QkUxOEMxNEE0NDAwMkQwRjEyIC8qIFdLRm9ybVNlbGVjdENvbnRyb2wubW0gaW4gU291cmNlcyAq
LywKKwkJCQk0QTNDQzE4RTE5QjA3Qjg1MDBEMTRBRUYgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRERGNzMxNjE4RTk1MDYwMDA0RjVBNjYg
LyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTExQjI0QTYxMzJFMDk1NzAwMDY1QTBDIC8qIFdlYkljb25EYXRhYmFzZVByb3h5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxRDAyRjZCMTMyRUM3MzcwMEJFQUE5NiAvKiBXZWJJY29uRGF0
YWJhc2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTkzMzYsNiAr
OTM3OSw3IEBACiAJCQkJQkM0MDc2MjgxMjRGRjA0MDAwNjhGMjBBIC8qIFdLQ2VydGlmaWNhdGVJ
bmZvTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE1RTc3MjcxODNERDZGNjAwMDcyMDNGIC8q
IEFzeW5jUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0EyODRENjE0OTJGMkM3MDAx
RjkwNDIgLyogV0tDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNEEzQ0MxOEMxOUIw
NjQxNTAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEYwQzM2NTgxOEMwNTFCQTAwRjYwN0Q3IC8qIFJlbW90ZUxheWVyVHJl
ZUhvc3RJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjBDMzY1QzE4QzA1Q0ExMDBGNjA3RDcg
LyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUJDNEE2Mjk2MTQ3MzEzQTAwMDZDNjgxQSAvKiBXS0Nvbm5lY3Rpb25SZWYuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU2ZDdhZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDkyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNs
dWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUmVxdWVzdElEKCkKK3sKKyAgICBzdGF0aWMg
dWludDY0X3QgdW5pcXVlUmVxdWVzdElEID0gMTsKKyAgICByZXR1cm4gdW5pcXVlUmVxdWVzdElE
Kys7Cit9CisKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkK
K3sKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVx
dWVzdChQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHBycFJlcXVlc3QpCit7CisgICAgUmVm
UHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QocHJwUmVxdWVzdCk7CisgICAgRnJhbWUqIGZy
YW1lID0gcmVxdWVzdC0+ZnJhbWUoKTsKKyAgICBBU1NFUlQoZnJhbWUpOworICAgIGlmICghZnJh
bWUpIHsKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVl
c3RJRCgpOworICAgIG1faWRUb1JlcXVlc3RNYXAuc2V0KHJlcXVlc3RJRCwgcmVxdWVzdCk7Cisg
ICAgbV9yZXF1ZXN0VG9JRE1hcC5zZXQocmVxdWVzdCwgcmVxdWVzdElEKTsKKworICAgIFdlYkZy
YW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgQVNT
RVJUKHdlYkZyYW1lKTsKKworICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSByZXF1ZXN0LT5z
ZWN1cml0eU9yaWdpbigpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUocmVxdWVzdElELCB3ZWJGcmFtZS0+
ZnJhbWVJRCgpLCBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpLCByZXF1ZXN0LT5hdWRpbygp
LCByZXF1ZXN0LT52aWRlbygpKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QqIHJlcXVlc3QpCit7Cisg
ICAgdWludDY0X3QgcmVxdWVzdElEID0gbV9yZXF1ZXN0VG9JRE1hcC50YWtlKHJlcXVlc3QpOwor
ICAgIGlmICghcmVxdWVzdElEKQorICAgICAgICByZXR1cm47CisgICAgbV9pZFRvUmVxdWVzdE1h
cC5yZW1vdmUocmVxdWVzdElEKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qg
cmVxdWVzdElELCBib29sIGFsbG93ZWQpCit7CisgICAgUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+
IHJlcXVlc3QgPSBtX2lkVG9SZXF1ZXN0TWFwLnRha2UocmVxdWVzdElEKTsKKyAgICBpZiAoIXJl
cXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICBtX3JlcXVlc3RUb0lETWFwLnJlbW92ZShyZXF1
ZXN0KTsKKworICAgIGlmIChhbGxvd2VkKQorICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nl
c3NHcmFudGVkKCk7CisgICAgZWxzZQorICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NE
ZW5pZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRp
YVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQzNjkzMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisg
Ki8KKworI2lmbmRlZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorI2RlZmlu
ZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgorI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBVc2VyTWVkaWFSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIoV2ViUGFnZSYpOworCisgICAgdm9pZCBzdGFydFJlcXVlc3QoUGFzc1JlZlB0cjxX
ZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pik7CisgICAgdm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNv
cmU6OlVzZXJNZWRpYVJlcXVlc3QqKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBl
cm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKTsKKwor
cHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpV
c2VyTWVkaWFSZXF1ZXN0Pj4gSURUb1JlcXVlc3RNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPFJl
ZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0PiwgdWludDY0X3Q+IFJlcXVlc3RUb0lETWFw
OworICAgIElEVG9SZXF1ZXN0TWFwIG1faWRUb1JlcXVlc3RNYXA7CisgICAgUmVxdWVzdFRvSURN
YXAgbV9yZXF1ZXN0VG9JRE1hcDsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2Vu
ZGlmIC8vIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJN
ZWRpYUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI3M2M4
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwg
d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVXNlck1lZGlhQ2xpZW50Lmgi
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiVXNlck1lZGlhQ29udHJv
bGxlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJQYWdl
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVXNlck1lZGlhQ2xpZW50
OjpXZWJVc2VyTWVkaWFDbGllbnQoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQor
eworfQorCit2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6cGFnZURlc3Ryb3llZCgpCit7CisgICAg
ZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpyZXF1ZXN0UGVybWlz
c2lvbihQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QpCit7CisgICAgbV9wYWdl
LnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLnN0YXJ0UmVxdWVzdChyZXF1ZXN0
KTsKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbFJlcXVlc3QoVXNlck1lZGlh
UmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKCkuY2FuY2VsUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0OworCisjZW5kaWYgLy8gTUVESUFfU1RSRUFNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDQ1OWFmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2Vy
TWVkaWFDbGllbnQuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFdl
YlVzZXJNZWRpYUNsaWVudF9oCisjZGVmaW5lIFdlYlVzZXJNZWRpYUNsaWVudF9oCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhQ2xpZW50Lmg+
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJQYWdlOworCitjbGFzcyBXZWJVc2VyTWVkaWFDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6
VXNlck1lZGlhQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJVc2VyTWVkaWFDbGllbnQoV2ViUGFn
ZSYpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCk7CisgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1l
ZGlhUmVxdWVzdD4pOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVz
ZXJNZWRpYVJlcXVlc3QqKTsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRp
ZiAvLyBXZWJVc2VyTWVkaWFDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDAwNjYwYzIuLmM5MWE2MjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTk2LDYgKzk2LDcgQEAK
ICNpbmNsdWRlICJXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJVbmRv
U3RlcC5oIgogI2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlci5oIgorI2luY2x1ZGUg
IldlYlVzZXJNZWRpYUNsaWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvQ2hyb21lLmg+CkBAIC0yODIsNiArMjgzLDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRf
dCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAj
aWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcih0aGlzKQogI2VuZGlmCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAs
IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQorI2VuZGlmCiAgICAg
LCBtX2NhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChwYXJhbWV0ZXJzLmNhblJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICAsIG1fY2FuUnVuTW9kYWwocGFyYW1ldGVycy5jYW5S
dW5Nb2RhbCkKICAgICAsIG1faXNSdW5uaW5nTW9kYWwoZmFsc2UpCkBAIC0zODksNiArMzkzLDkg
QEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCiAg
ICAgV2ViQ29yZTo6cHJvdmlkZURldmljZVByb3hpbWl0eVRvKG1fcGFnZS5nZXQoKSwgbmV3IFdl
YkRldmljZVByb3hpbWl0eUNsaWVudCh0aGlzKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgIFdlYkNvcmU6OnByb3ZpZGVVc2VyTWVkaWFUbyhtX3BhZ2UuZ2V0KCksIG5l
dyBXZWJVc2VyTWVkaWFDbGllbnQoKnRoaXMpKTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKFJFTU9U
RV9JTlNQRUNUT1IpCiAgICAgbV9wYWdlLT5zZXRSZW1vdGVJbnNwZWN0aW9uQWxsb3dlZCh0cnVl
KTsKQEAgLTMyNTEsNiArMzI1OCwxMyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVOb3RpZmlj
YXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsCiAgICAgbm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPmRpZFJlY2VpdmVOb3RpZmljYXRp
b25QZXJtaXNzaW9uRGVjaXNpb24obm90aWZpY2F0aW9uSUQsIGFsbG93ZWQpOwogfQogCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBl
cm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQorewor
ICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVk
aWFQZXJtaXNzaW9uRGVjaXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQpOworfQorI2VuZGlmCisK
ICNpZiAhUExBVEZPUk0oSU9TKQogdm9pZCBXZWJQYWdlOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxp
bmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGJhYmE1MDYuLjZiNWFkNWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDUsNiArNDUsNyBAQAog
I2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNs
dWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RpY3RhdGlvbkFsdGVybmF0aXZlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9y
Lmg+CkBAIC00NDcsNiArNDQ4LDEwIEBAIHB1YmxpYzoKICAgICBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlciYgZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7
IHJldHVybiBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyJiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBt
X3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsgfQorI2VuZGlmCisKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHNjcmVlblNpemUoKSBjb25zdDsKICAg
ICBXZWJDb3JlOjpGbG9hdFNpemUgYXZhaWxhYmxlU2NyZWVuU2l6ZSgpIGNvbnN0OwpAQCAtMTAx
OCw2ICsxMDIzLDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRp
b25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dl
ZCk7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJN
ZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2Vk
KTsKKyNlbmRpZgorCiAgICAgdm9pZCBhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFy
dEJlZm9yZVNlbGVjdGlvbik7CiAgICAgdm9pZCBjaGFuZ2VTcGVsbGluZ1RvV29yZChjb25zdCBT
dHJpbmcmIHdvcmQpOwogI2lmIFVTRShBUFBLSVQpCkBAIC0xMTgyLDYgKzExOTEsMTAgQEAgcHJp
dmF0ZToKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciBtX2dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciBtX3VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKyNlbmRpZgorCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OlByaW50Q29udGV4dD4gbV9wcmludENvbnRleHQ7CiAjaWYgUExBVEZPUk0oR1RL
KQogICAgIFJlZlB0cjxXZWJQcmludE9wZXJhdGlvbkd0az4gbV9wcmludE9wZXJhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KaW5kZXggZWJmNzIwZC4uODdmNDA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTI2NCw2ICsyNjQs
MTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkUmVjZWl2
ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJv
b2wgYWxsb3dlZCkKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAjIE1l
ZGlhU3RlYW0KKyAgICBEaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpCisjZW5kaWYKKwogICAgICMgTm90aWZpY2F0
aW9uCiAgICAgRGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDI3M2FmNy4uNWEyZGI1OSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBA
CisyMDE0LTA5LTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbV0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGxlIEFQSSB0ZXN0IGZvciB0aGUgVXNl
ck1lZGlhIHBlcm1pc3Npb24gcmVxdWVzdCBBUEkuIFRoZQorICAgICAgICByZXF1aXJlZCB0ZXN0
IGluZnJhc3RydWN0dXJlIGlzIGFsc28gYWRkZWQsIGluc3BpcmVkIGJ5IHRoZQorICAgICAgICBH
ZW9sb2NhdGlvbiBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICBBZGRpdGlvbmFsbHkgdGhlIEdU
SyB2ZXJzaW9uIG9mIHRoZSBNaW5pQnJvd3NlciBoYXMgZ2FpbmVkCisgICAgICAgIFVzZXJNZWRp
YSBwZXJtaXNzaW9uIHJlcXVlc3Qgc3VwcG9ydC4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2d0
ay9Ccm93c2VyV2luZG93LmM6IFNob3cgYSBwb3B1cCB3aGVuIHRoZSBwYWdlCisgICAgICAgIHJl
cXVpcmVzIHVzZXIgcGVybWlzc2lvbiB0byBhY2Nlc3MgYXVkaW8vdmlkZW8gZGV2aWNlcy4KKyAg
ICAgICAgKHBlcm1pc3Npb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2spOgorICAgICAgICAod2ViVmll
d0RlY2lkZVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKGdlb2xvY2F0aW9uUmVxdWVzdERp
YWxvZ0NhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3Jt
R1RLLmNtYWtlOiBOZXcgQVBJIHRlc3QgZm9yIFVzZXJNZWRpYQorICAgICAgICBQZXJtaXNzaW9u
IHJlcXVlc3QuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9Vc2VyTWVkaWEuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbEJhY2spOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL2dldFVzZXJNZWRpYS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOiBuZXcKKyAgICAgICAg
aGVscGVyIG1ldGhvZCB0byBzZXQgdGhlIHBlcm1pc3Npb24gcmVxdWVzdCByZXN1bHQgd2l0aG91
dCB1c2VyIGludGVyYWN0aW9uLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOiBEaXR0by4KKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRC
dW5kbGU6OnNldFVzZXJNZWRpYVBlcm1pc3Npb24pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDogRGl0dG8uCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDogRGl0dG8uCisgICAg
ICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFVzZXJNZWRpYVBlcm1pc3Npb24pOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdU
Ujo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOiBQZXJtaXNzaW9u
CisgICAgICAgIHJlcXVlc3QgaGFuZGxlci4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OmNyZWF0ZU90aGVyUGFnZSk6IEVuYWJsZSB0aGUgbmV3IFVzZXJNZWRpYQorICAgICAgICBwZXJt
aXNzaW9uIHJlcXVlc3QgaGFuZGxlci4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNy
ZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6IERpdHRvLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6IEVuYWJsZQorICAgICAg
ICBNZWRpYVN0cmVhbSBzdXBwb3J0LCB0aGlzIGlzIG5lZWRlZCBmb3IgZ2V0VXNlck1lZGlhLgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVl
cyk6IGNsZWFyCisgICAgICAgIFVzZXJNZWRpYSBwZXJtaXNzaW9ucyBsaXN0IGFuZCBmbGFncy4K
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFVzZXJNZWRpYVBlcm1pc3Npb24pOiBT
ZXQgcGVybWlzc2lvbgorICAgICAgICByZXF1ZXN0IHJlc3VsdCBhbmQgZGlzdHBhdGNoIGl0Lgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aGFuZGxlVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QpOiBTYXZlCisgICAgICAgIHJlcXVlc3QgYW5kIGRpc3BhdGNoIGl0LgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RJZlBvc3NpYmxlKToKKyAgICAgICAgRGlzcGF0Y2ggY2FjaGVkIHBlcm1pc3Npb24gcmVx
dWVzdHMuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RS
OjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgor
CiAyMDE0LTA4LTI4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSB0ZXN0IGNhc2UgZmlsdGVyIHN1cHBvcnQgaW4gcnVuLWd0ay10ZXN0cwpk
aWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYyBiL1Rvb2xz
L01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKaW5kZXggMjc1NDkzMS4uNjE2Y2NjYyAx
MDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYworKysgYi9U
b29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCkBAIC0yNTMsNyArMjUzLDcgQEAg
c3RhdGljIHZvaWQgYmFja0ZvcndhZGxpc3RDaGFuZ2VkKFdlYktpdEJhY2tGb3J3YXJkTGlzdCAq
YmFja0ZvcndhZGxpc3QsIFdlYktpdEIKICAgICBicm93c2VyV2luZG93VXBkYXRlTmF2aWdhdGlv
bkFjdGlvbnMod2luZG93LCBiYWNrRm9yd2FkbGlzdCk7CiB9CiAKLXN0YXRpYyB2b2lkIGdlb2xv
Y2F0aW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKEd0a0RpYWxvZyAqZGlhbG9nLCBnaW50IHJlc3Bv
bnNlLCBXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCkKK3N0YXRpYyB2b2lkIHBlcm1p
c3Npb25SZXF1ZXN0RGlhbG9nQ2FsbGJhY2soR3RrRGlhbG9nICpkaWFsb2csIGdpbnQgcmVzcG9u
c2UsIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KQogewogICAgIHN3aXRjaCAocmVz
cG9uc2UpIHsKICAgICBjYXNlIEdUS19SRVNQT05TRV9ZRVM6CkBAIC00MDYsMTkgKzQwNiwzOSBA
QCBzdGF0aWMgZ2Jvb2xlYW4gd2ViVmlld0RlY2lkZVBvbGljeShXZWJLaXRXZWJWaWV3ICp3ZWJW
aWV3LCBXZWJLaXRQb2xpY3lEZWNpc2lvbgogCiBzdGF0aWMgZ2Jvb2xlYW4gd2ViVmlld0RlY2lk
ZVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIFdlYktpdFBlcm1pc3Np
b25SZXF1ZXN0ICpyZXF1ZXN0LCBCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7Ci0gICAgaWYgKCFX
RUJLSVRfSVNfR0VPTE9DQVRJT05fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKQorICAgIGdj
aGFyICpkaWFsb2dfdGl0bGUgPSBOVUxMOworICAgIGdjaGFyICpkaWFsb2dfbWVzc2FnZSA9IE5V
TEw7CisgICAgZ2NoYXIgKmRpYWxvZ19tZXNzYWdlX2Zvcm1hdCA9IE5VTEw7CisKKyAgICBpZiAo
V0VCS0lUX0lTX0dFT0xPQ0FUSU9OX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSkgeworICAg
ICAgICBkaWFsb2dfdGl0bGUgPSAiR2VvbG9jYXRpb24gcmVxdWVzdCI7CisgICAgICAgIGRpYWxv
Z19tZXNzYWdlX2Zvcm1hdCA9ICIlcyI7CisgICAgICAgIGRpYWxvZ19tZXNzYWdlID0gIkFsbG93
IGdlb2xvY2F0aW9uIHJlcXVlc3Q/IjsKKyAgICB9IGVsc2UgaWYgKFdFQktJVF9JU19VU0VSX01F
RElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSkgeworICAgICAgICBkaWFsb2dfbWVzc2Fn
ZV9mb3JtYXQgPSAiQWxsb3cgYWNjZXNzIHRvICVzIGRldmljZT8iOworICAgICAgICBXZWJLaXRV
c2VyTWVkaWFQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgICAgIGNvbnN0IGdjaGFyICpvcmln
aW47CisgICAgICAgIGdfb2JqZWN0X2dldChXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JF
UVVFU1QocmVxdWVzdCksICJwYXJhbWV0ZXJzIiwgJnBhcmFtZXRlcnMsICJvcmlnaW4iLCAmb3Jp
Z2luLCBOVUxMKTsKKyAgICAgICAgZGlhbG9nX3RpdGxlID0gZ19zdHJkdXBfcHJpbnRmKCJVc2Vy
TWVkaWEgcmVxdWVzdCBmcm9tICVzIiwgb3JpZ2luKTsKKyAgICAgICAgaWYgKHBhcmFtZXRlcnMg
JiBXRUJLSVRfVVNFUl9NRURJQV9QQVJBTUVURVJTX0FVRElPKSB7CisgICAgICAgICAgICBpZiAo
cGFyYW1ldGVycyAmIFdFQktJVF9VU0VSX01FRElBX1BBUkFNRVRFUlNfVklERU8pCisgICAgICAg
ICAgICAgICAgZGlhbG9nX21lc3NhZ2UgPSAiYXVkaW8vdmlkZW8iOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIGRpYWxvZ19tZXNzYWdlID0gImF1ZGlvIjsKKyAgICAgICAgfSBl
bHNlIGlmIChwYXJhbWV0ZXJzICYgV0VCS0lUX1VTRVJfTUVESUFfUEFSQU1FVEVSU19WSURFTykK
KyAgICAgICAgICAgIGRpYWxvZ19tZXNzYWdlID0gInZpZGVvIjsKKyAgICB9IGVsc2UKICAgICAg
ICAgcmV0dXJuIEZBTFNFOwogCiAgICAgR3RrV2lkZ2V0ICpkaWFsb2cgPSBndGtfbWVzc2FnZV9k
aWFsb2dfbmV3KEdUS19XSU5ET1cod2luZG93KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR1RLX0RJQUxPR19NT0RBTCB8IEdUS19ESUFMT0dfREVTVFJP
WV9XSVRIX1BBUkVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR1RLX01FU1NBR0VfUVVFU1RJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdUS19CVVRUT05TX1lFU19OTywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdlb2xvY2F0aW9uIHJlcXVlc3QiKTsKKyAg
ICAgICAgR1RLX0RJQUxPR19NT0RBTCB8IEdUS19ESUFMT0dfREVTVFJPWV9XSVRIX1BBUkVOVCwK
KyAgICAgICAgR1RLX01FU1NBR0VfUVVFU1RJT04sCisgICAgICAgIEdUS19CVVRUT05TX1lFU19O
TywKKyAgICAgICAgIiVzIiwgZGlhbG9nX3RpdGxlKTsKIAotICAgIGd0a19tZXNzYWdlX2RpYWxv
Z19mb3JtYXRfc2Vjb25kYXJ5X3RleHQoR1RLX01FU1NBR0VfRElBTE9HKGRpYWxvZyksICJBbGxv
dyBnZW9sb2NhdGlvbiByZXF1ZXN0PyIpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoZGlhbG9nLCAi
cmVzcG9uc2UiLCBHX0NBTExCQUNLKGdlb2xvY2F0aW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKSwg
Z19vYmplY3RfcmVmKHJlcXVlc3QpKTsKKyAgICBndGtfbWVzc2FnZV9kaWFsb2dfZm9ybWF0X3Nl
Y29uZGFyeV90ZXh0KEdUS19NRVNTQUdFX0RJQUxPRyhkaWFsb2cpLCBkaWFsb2dfbWVzc2FnZV9m
b3JtYXQsIGRpYWxvZ19tZXNzYWdlKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGRpYWxvZywgInJl
c3BvbnNlIiwgR19DQUxMQkFDSyhwZXJtaXNzaW9uUmVxdWVzdERpYWxvZ0NhbGxiYWNrKSwgZ19v
YmplY3RfcmVmKHJlcXVlc3QpKTsKICAgICBndGtfd2lkZ2V0X3Nob3coZGlhbG9nKTsKLQogICAg
IHJldHVybiBUUlVFOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRm
b3JtR1RLLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRl
eCAyM2EzNWRmLi5hYjhiM2E3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRm
b3JtR1RLLmNtYWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UK
QEAgLTk3LDYgKzk3LDcgQEAgYWRkX2V4ZWN1dGFibGUoVGVzdFdlYktpdDIKICAgICAke1RFU1RX
RUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1Jlc2l6ZVdpbmRvd0FmdGVyQ3Jhc2guY3BwCiAg
ICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9SZXN0b3JlU2Vzc2lvblN0YXRl
Q29udGFpbmluZ0Zvcm1EYXRhLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YktpdDIvU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCisgICAgJHtURVNUV0VCS0lU
QVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJ
X0RJUn0vVGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2FnZS5jcHAKICAgICAke1RFU1RXRUJLSVRBUElf
RElSfS9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnQuY3BwCiAgICAgJHtURVNUV0VC
S0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9XS1BhZ2VHZXRTY2FsZUZhY3Rvck5vdFplcm8uY3Bw
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYxZGNlNmIuLmU4ZDEwN2EgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC04OCw2ICs4OCw3IEBACiAJCTM3RTEwNjREMTY5NzZDODUwMEI3OEJE
MCAvKiBET01IVE1MVGFibGVDZWxsQ2VsbEFib3ZlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdFMTA2NEExNjk3Njc2NDAwQjc4QkQwIC8qIERPTUhU
TUxUYWJsZUNlbGxDZWxsQWJvdmUubW0gKi87IH07CiAJCTM3RTM4QzM0MTY5QjdEMDEwMDg0QzI4
QyAvKiBXZWJWaWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdFMzhDMzMxNjlCN0QwMTAwODRDMjhD
IC8qIFdlYlZpZXdEaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkubW0gKi87IH07CiAJCTQ0MEEx
RDM5MTRBMDEwM0EwMDhBNjZGMiAvKiBVUkwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDQwQTFEMzgxNEEwMTAzQTAwOEE2NkYyIC8qIFVSTC5jcHAg
Ki87IH07CisJCTRBNDEwRjRDMTlBRjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVkaWEuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBGNEIxOUFGN0JE
NjAwMkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgKi87IH07CiAJCTRCQjQxNjAyMTY4MTVCMjYwMDgy
NDIzOCAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCQjQxNjAxMTY4MTVCMjYwMDgyNDIzOCAvKiBK
U1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbSAqLzsgfTsKIAkJNEJCNDE2MDQxNjgxNUY5MTAw
ODI0MjM4IC8qIEVsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCQjQxNjAzMTY4MTVGOTEwMDgyNDIzOCAvKiBF
bGVtZW50QXRQb2ludEluV2ViRnJhbWUubW0gKi87IH07CiAJCTRCRkRGRkE3MTMxNDc3NkMwMDYx
RjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJGREZGQTYxMzE0Nzc2QzAwNjFGMjRC
IC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi87IH07CkBAIC00MzAsNiAr
NDMxLDggQEAKIAkJMzdFMzhDMzMxNjlCN0QwMTAwODRDMjhDIC8qIFdlYlZpZXdEaWRSZW1vdmVG
cmFtZUZyb21IaWVyYXJjaHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXZWJWaWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogVVJMLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ0QTYyMkMxMTRBMEUyQjYwMDQ4NTE1QiAvKiBXVEZTdHJpbmdVdGls
aXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV1RGU3RyaW5nVXRpbGl0
aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjRCMTlBRjdCRDYwMDJF
QkFCNSAvKiBVc2VyTWVkaWEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVXNlck1lZGlhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGNEQx
OUFGN0JFRjAwMkVCQUI1IC8qIGdldFVzZXJNZWRpYS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gZ2V0VXNlck1lZGlhLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTRCQjQxNjAxMTY4MTVCMjYwMDgyNDIzOCAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEpTV3JhcHBlckZvck5v
ZGVJbldlYkZyYW1lLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkI0MTYwMzE2
ODE1RjkxMDA4MjQyMzggLyogRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIg
LyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03OTgsNiArODAxLDcgQEAKIAkJQkM5MDk2NDEx
MjU1NjE2MDAwMDgzNzU2IC8qIFdlYktpdDIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjRCMTlBRjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVkaWEu
Y3BwICovLAogCQkJCUMwQzVEM0JCMTQ1OThCNkYwMEE4MDJBNiAvKiBtYWMgKi8sCiAJCQkJQkM5
MDk3N0IxMjU1NzFBRTAwMDgzNzU2IC8qIFJlc291cmNlcyAqLywKIAkJCQlCQzI0NkQ4QzEzMkYx
MTVBMDBCNTZEN0MgLyogQWJvdXRCbGFua0xvYWQuY3BwICovLApAQCAtOTI5LDYgKzkzMyw3IEBA
CiAJCUJDOTA5NzdCMTI1NTcxQUUwMDA4Mzc1NiAvKiBSZXNvdXJjZXMgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFC
NSAvKiBnZXRVc2VyTWVkaWEuaHRtbCAqLywKIAkJCQlDMDQ1Rjk0NjEzODVDMkY4MDBDMEYzQ0Qg
LyogMTgtY2hhcmFjdGVycy5odG1sICovLAogCQkJCUY2QjdCRTk2MTc0NjlCN0UwMDhBMzQ0NSAv
KiBhc3NvY2lhdGUtZm9ybS1jb250cm9scy5odG1sICovLAogCQkJCTc2RTE4MkRFMTU0NzVBODMw
MEYxRkFERCAvKiBhdXRvLXN1Ym1pdHRpbmctZm9ybS5odG1sICovLApAQCAtMTMyOSw2ICsxMzM0
LDcgQEAKIAkJCQk1MUZDRjc5QTE1MzRBQzZEMDAxMDQ0OTEgLyogU2hvdWxkR29Ub0JhY2tGb3J3
YXJkTGlzdEl0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFGREU2NTYxOTUzQjJDMDAwQzQ4
RkZBIC8qIE9wdGlvbmFsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NDBGNzc2MTUyRTREQTAw
MEE0MEM4QyAvKiBTaW1wbGlmeU1hcmt1cC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTRBNDEwRjRD
MTlBRjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVkaWEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzAy
Qjc3RjIxMjY2MTIxNDAwMjZCRjBGIC8qIFNwYWNlYmFyU2Nyb2xsaW5nLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzRDNEMTlFMTdCMUE4NDIwMEM3QzQxNSAvKiBMYXlvdXRNaWxlc3RvbmVzV2l0
aEFsbENvbnRlbnRJbkZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOTRFMUJCMTc3RTUx
NDUwMDlDNEQ0RSAvKiBTdG9wTG9hZGluZ0Zyb21EaWRSZWNlaXZlUmVzcG9uc2UubW0gaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9V
c2VyTWVkaWEuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRp
YS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRmNDc5MgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEu
Y3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgIlRlc3QuaCIKKyNpbmNs
dWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRl
IDx2ZWN0b3I+CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKKworc3RhdGljIGJvb2wgZG9uZTsKKwordm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNrKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZy
YW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAg
ICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocGVybWlzc2lvblJlcXVlc3QpOwor
ICAgIGRvbmUgPSB0cnVlOworfQorCitURVNUKFdlYktpdDIsIFVzZXJNZWRpYUJhc2ljKQorewor
ICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRD
cmVhdGUoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7Cisg
ICAgV0tQYWdlVUlDbGllbnRWNSB1aUNsaWVudDsKKyAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBz
aXplb2YodWlDbGllbnQpKTsKKworICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDU7CisgICAg
dWlDbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBkZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNrOworCisgICAgV0tQ
YWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CisKKyAg
ICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsKEFkb3B0V0ssIFV0aWw6OmNyZWF0ZVVSTEZvclJl
c291cmNlKCJnZXRVc2VyTWVkaWEiLCAiaHRtbCIpKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAg
ICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOworCisgICAgVXRpbDo6
cnVuKCZkb25lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5lNTRmODUzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRpYS5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzxzY3JpcHQ+
CitmdW5jdGlvbiBnb3RVc2VyTWVkaWEobWVkaWFTdHJlYW0pCit7CisgICAgY29uc29sZS5sb2co
IkdvdCB1c2VyIG1lZGlhIik7Cit9CisKK2Z1bmN0aW9uIHVzZXJNZWRpYUVycm9yKGVycm9yKQor
eworICAgIGNvbnNvbGUubG9nKGVycm9yKTsKK30KKwordmFyIG9wdGlvbnMgPSB7IGF1ZGlvOiBm
YWxzZSwgdmlkZW86IHRydWV9OworbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25z
LCBnb3RVc2VyTWVkaWEsIHVzZXJNZWRpYUVycm9yKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwKaW5kZXggYmI5YTdhMC4uMDhhMTg5OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCkBAIC0xNjksNiArMTY5LDkgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHZv
aWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9u
Z2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgb2Jq
ZWN0IGFsdGl0dWRlLCBvcHRpb25hbCBvYmplY3QgYWx0aXR1ZGVBY2N1cmFjeSwgb3B0aW9uYWwg
b2JqZWN0IGhlYWRpbmcsIG9wdGlvbmFsIG9iamVjdCBzcGVlZCk7CiAgICAgdm9pZCBzZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoRE9NU3RyaW5nIGVycm9yTWVzc2Fn
ZSk7CiAKKyAgICAvLyBNZWRpYVN0cmVhbQorICAgIHZvaWQgc2V0VXNlck1lZGlhUGVybWlzc2lv
bihib29sZWFuIHZhbHVlKTsKKwogICAgIC8vIEF1ZGlvIHRlc3RpbmcuCiAgICAgW1Bhc3NDb250
ZXh0XSB2b2lkIHNldEF1ZGlvUmVzdWx0KG9iamVjdCBkYXRhKTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApp
bmRleCA3YjFkZTcwLi4xYjZlYmQwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNDU4LDYgKzQ1OCwx
MyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZh
aWxhYmxlRXJyb3IoV0tTdHJpbmdSZWYgZXJybwogICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UobV9i
dW5kbGUsIG1lc3NhZ2VOYW1lLmdldCgpLCBlcnJvck1lc3NhZ2UpOwogfQogCit2b2lkIEluamVj
dGVkQnVuZGxlOjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIlNldFVzZXJNZWRpYVBlcm1pc3Npb24iKSk7CisgICAgV0tSZXRh
aW5QdHI8V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9keShBZG9wdFdLLCBXS0Jvb2xlYW5DcmVhdGUo
ZW5hYmxlZCkpOworICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UobV9idW5kbGUsIG1lc3NhZ2VOYW1l
LmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7Cit9CisKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNl
dEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZlKQogewog
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUiKSk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmgKaW5kZXggOWY3NmE5ZC4uOGYwYTg0MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtOTIsNiArOTIs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUg
bGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBwcm92aWRl
c0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5
LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRlc0hlYWRpbmcsIGRvdWJsZSBo
ZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVlZCk7CiAgICAgdm9pZCBzZXRN
b2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoV0tTdHJpbmdSZWYgZXJyb3JN
ZXNzYWdlKTsKIAorICAgIC8vIE1lZGlhU3RyZWFtLgorICAgIHZvaWQgc2V0VXNlck1lZGlhUGVy
bWlzc2lvbihib29sKTsKKwogICAgIC8vIFBvbGljeSBkZWxlZ2F0ZS4KICAgICB2b2lkIHNldEN1
c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZlKTsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKaW5kZXggZDA4NWYxYS4uZDc1MWI5NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC03MjAsNiArNzIwLDEyIEBA
IHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVy
cm9yKEpTU3RyaW5nUmVmIG1lc3NhZ2UpCiAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnNl
dE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihtZXNzYWdlV0suZ2V0KCkp
OwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldFVzZXJNZWRpYVBlcm1pc3Npb24oYm9vbCBlbmFi
bGVkKQoreworICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBiZSBkb25lIGJ5IGZyYW1lLgorICAg
IEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGVuYWJsZWQp
OworfQorCiBib29sIFRlc3RSdW5uZXI6OmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldygpCiB7CiAg
ICAgV0tCdW5kbGVGcmFtZVJlZiBtYWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUo
SW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggZTIxZmZm
My4uMzk0ZTkwOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmgKQEAgLTI1Miw2ICsyNTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1
ZGUsIGRvdWJsZSBhY2N1cmFjeSwgSlNWYWx1ZVJlZiBhbHRpdHVkZSwgSlNWYWx1ZVJlZiBhbHRp
dHVkZUFjY3VyYWN5LCBKU1ZhbHVlUmVmIGhlYWRpbmcsIEpTVmFsdWVSZWYgc3BlZWQpOwogICAg
IHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKEpTU3RyaW5n
UmVmIG1lc3NhZ2UpOwogCisgICAgLy8gTWVkaWFTdHJlYW0KKyAgICB2b2lkIHNldFVzZXJNZWRp
YVBlcm1pc3Npb24oYm9vbCk7CisKICAgICB2b2lkIHNldFBhZ2VWaXNpYmlsaXR5KEpTU3RyaW5n
UmVmIHN0YXRlKTsKICAgICB2b2lkIHJlc2V0UGFnZVZpc2liaWxpdHkoKTsKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCAzZmUzNzc5Li45YWRkOTZlIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTg4LDYgKzE4
OCwxMSBAQCBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgVwogICAgIFRlc3RDb250cm9sbGVyOjpzaGFy
ZWQoKS5oYW5kbGVHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0
KTsKIH0KIAorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQoreworICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5oYW5kbGVVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdChwZXJtaXNzaW9uUmVxdWVzdCk7Cit9CisKIGludCBUZXN0Q29u
dHJvbGxlcjo6Z2V0Q3VzdG9tVGltZW91dCgpCiB7CiAgICAgcmV0dXJuIG1fdGltZW91dDsKQEAg
LTIwMiw4ICsyMDcsOCBAQCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFn
ZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXSwogCiAgICAgdmlldy0+cmVz
aXplVG8oODAwLCA2MDApOwogCi0gICAgV0tQYWdlVUlDbGllbnRWMiBvdGhlclBhZ2VVSUNsaWVu
dCA9IHsKLSAgICAgICAgeyAyLCB2aWV3IH0sCisgICAgV0tQYWdlVUlDbGllbnRWNSBvdGhlclBh
Z2VVSUNsaWVudCA9IHsKKyAgICAgICAgeyA1LCB2aWV3IH0sCiAgICAgICAgIDAsIC8vIGNyZWF0
ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMAogICAgICAgICAwLCAvLyBzaG93UGFnZQog
ICAgICAgICBjbG9zZU90aGVyUGFnZSwKQEAgLTI1MCw2ICsyNTUsMTEgQEAgV0tQYWdlUmVmIFRl
c3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVx
dWVzdFJlZiwgV0sKICAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAsIC8v
IGhpZGVDb2xvclBpY2tlcgogICAgICAgICAwLCAvLyB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNs
aWNrZWQKKyAgICAgICAgMCwgLy8gcGlubmVkU3RhdGVEaWRDaGFuZ2UKKyAgICAgICAgMCwgLy8g
ZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzCisgICAgICAgIDAsIC8vIGRp
ZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzCisgICAgICAgIDAsIC8vIGRpZENhbmNlbFRyYWNraW5n
UG90ZW50aWFsTG9uZ01vdXNlUHJlc3MKKyAgICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QsCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobmV3
UGFnZSwgJm90aGVyUGFnZVVJQ2xpZW50LmJhc2UpOwogCkBAIC00MDgsOCArNDE4LDggQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltd
KQogdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKFdLRGljdGlv
bmFyeVJlZiBvcHRpb25zKQogewogICAgIG1fbWFpbldlYlZpZXcgPSBzdGQ6Om1ha2VfdW5pcXVl
PFBsYXRmb3JtV2ViVmlldz4obV9jb250ZXh0LmdldCgpLCBtX3BhZ2VHcm91cC5nZXQoKSwgbnVs
bHB0ciwgb3B0aW9ucyk7Ci0gICAgV0tQYWdlVUlDbGllbnRWMiBwYWdlVUlDbGllbnQgPSB7Ci0g
ICAgICAgIHsgMiwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAorICAgIFdLUGFnZVVJQ2xpZW50VjUg
cGFnZVVJQ2xpZW50ID0geworICAgICAgICB7IDUsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKICAg
ICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCiAgICAgICAg
IDAsIC8vIHNob3dQYWdlCiAgICAgICAgIDAsIC8vIGNsb3NlCkBAIC00NTYsNiArNDY2LDExIEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhXS0RpY3Rpb25h
cnlSZWYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAs
IC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNr
ZWQsCisgICAgICAgIDAsIC8vIHBpbm5lZFN0YXRlRGlkQ2hhbmdlCisgICAgICAgIDAsIC8vIGRp
ZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcworICAgICAgICAwLCAvLyBkaWRS
ZWNvZ25pemVMb25nTW91c2VQcmVzcworICAgICAgICAwLCAvLyBkaWRDYW5jZWxUcmFja2luZ1Bv
dGVudGlhbExvbmdNb3VzZVByZXNzCisgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFp
bldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVudC5iYXNlKTsKIApAQCAtNTQxLDYgKzU1Niw3
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1
ZXMoKQogICAgIFdLUHJlZmVyZW5jZXNTZXRGb250U21vb3RoaW5nTGV2ZWwocHJlZmVyZW5jZXMs
IGtXS0ZvbnRTbW9vdGhpbmdMZXZlbE5vU3VicGl4ZWxBbnRpQWxpYXNpbmcpOwogICAgIFdLUHJl
ZmVyZW5jZXNTZXRYU1NBdWRpdG9yRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdL
UHJlZmVyZW5jZXNTZXRXZWJBdWRpb0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdL
UHJlZmVyZW5jZXNTZXRNZWRpYVN0cmVhbUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAg
IFdLUHJlZmVyZW5jZXNTZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVl
KTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRDYW5PcGVuV2lu
ZG93c0F1dG9tYXRpY2FsbHkocHJlZmVyZW5jZXMsIHRydWUpOwpAQCAtNjM3LDYgKzY1MywxMSBA
QCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKCkKICAg
ICBtX2lzR2VvbG9jYXRpb25QZXJtaXNzaW9uU2V0ID0gZmFsc2U7CiAgICAgbV9pc0dlb2xvY2F0
aW9uUGVybWlzc2lvbkFsbG93ZWQgPSBmYWxzZTsKIAorICAgIC8vIFJlc2V0IFVzZXJNZWRpYSBw
ZXJtaXNzaW9ucy4KKyAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigpOwor
ICAgIG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uU2V0ID0gZmFsc2U7CisgICAgbV9pc1VzZXJNZWRp
YVBlcm1pc3Npb25BbGxvd2VkID0gZmFsc2U7CisKICAgICAvLyBSZXNldCBDdXN0b20gUG9saWN5
IERlbGVnYXRlLgogICAgIHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGZhbHNlLCBmYWxzZSk7CiAK
QEAgLTEzNDgsNiArMTM2OSwzNCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpoYW5kbGVHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUgogICAgIGRlY2lk
ZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKCk7CiB9CiAK
K3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFVzZXJNZWRpYVBlcm1pc3Npb24oYm9vbCBlbmFibGVk
KQoreworICAgIG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uU2V0ID0gdHJ1ZTsKKyAgICBtX2lzVXNl
ck1lZGlhUGVybWlzc2lvbkFsbG93ZWQgPSBlbmFibGVkOworICAgIGRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpOworfQorCit2b2lkIFRlc3RDb250
cm9sbGVyOjpoYW5kbGVVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KQoreworICAgIG1fdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLmFwcGVuZCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dCk7CisgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBvc3Np
YmxlKCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpCit7CisgICAgaWYgKCFtX2lzVXNlck1lZGlh
UGVybWlzc2lvblNldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5zaXplKCk7ICsraSkgeworICAgICAg
ICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0ID0gbV91
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHNbaV0uZ2V0KCk7CisgICAgICAgIGlmIChtX2lzVXNl
ck1lZGlhUGVybWlzc2lvbkFsbG93ZWQpCisgICAgICAgICAgICBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0QWxsb3cocGVybWlzc2lvblJlcXVlc3QpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShwZXJtaXNzaW9uUmVxdWVzdCk7
CisgICAgfQorICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLmNsZWFyKCk7Cit9CisK
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5hYmxl
ZCwgYm9vbCBwZXJtaXNzaXZlKQogewogICAgIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkID0gZW5h
YmxlZDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBkOWJlNzQ4
Li41OWE3ZTg5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC04
OCw2ICs4OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlv
blVuYXZhaWxhYmxlRXJyb3IoV0tTdHJpbmdSZWYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGhh
bmRsZUdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0UmVmKTsKIAorICAgIC8vIE1lZGlhU3RyZWFtLgorICAgIHZvaWQgc2V0VXNlck1lZGlh
UGVybWlzc2lvbihib29sKTsKKyAgICB2b2lkIGhhbmRsZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOworCiAgICAgLy8gUG9saWN5IGRl
bGVnYXRlLgogICAgIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFibGVkLCBi
b29sIHBlcm1pc3NpdmUpOwogCkBAIC0xMzMsNiArMTM3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHVwZGF0ZUxheW91dFR5cGVGb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJik7CiAKICAgICB2
b2lkIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RJZlBvc3NpYmxl
KCk7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElm
UG9zc2libGUoKTsKIAogICAgIC8vIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50CiAgICAg
c3RhdGljIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tDb250ZXh0
UmVmLCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5LCBjb25z
dCB2b2lkKik7CkBAIC0yMzcsNiArMjQyLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzR2Vv
bG9jYXRpb25QZXJtaXNzaW9uU2V0OwogICAgIGJvb2wgbV9pc0dlb2xvY2F0aW9uUGVybWlzc2lv
bkFsbG93ZWQ7CiAKKyAgICBWZWN0b3I8V0tSZXRhaW5QdHI8V0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFJlZj4+IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzOworICAgIGJvb2wgbV9p
c1VzZXJNZWRpYVBlcm1pc3Npb25TZXQ7CisgICAgYm9vbCBtX2lzVXNlck1lZGlhUGVybWlzc2lv
bkFsbG93ZWQ7CisKICAgICBib29sIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkOwogICAgIGJvb2wg
bV9wb2xpY3lEZWxlZ2F0ZVBlcm1pc3NpdmU7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5jcHAKaW5kZXggMzYzNzcwMy4uODdjNDZjNCAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTQ3OCw2ICs0NzgsMTMgQEAgdm9pZCBUZXN0
SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdS
ZWYgbWVzc2FnZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0VXNlck1lZGlhUGVybWlzc2lv
biIpKSB7CisgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29s
ZWFuR2V0VHlwZUlEKCkpOworICAgICAgICBXS0Jvb2xlYW5SZWYgZW5hYmxlZFdLID0gc3RhdGlj
X2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVy
OjpzaGFyZWQoKS5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKFdLQm9vbGVhbkdldFZhbHVlKGVuYWJs
ZWRXSykpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVh
bFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSIpKSB7
CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9uYXJ5
R2V0VHlwZUlEKCkpOwogICAgICAgICBXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9u
YXJ5ID0gc3RhdGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSk7Ci0tIAoyLjEu
MA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237482</attachid>
            <date>2014-09-02 03:09:41 -0700</date>
            <delta_ts>2014-09-02 09:22:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>94738</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBiZDM3MjM1MmY4NGEyZTQ4ZTVlYWFjNDljMWM2NDM5Mjc2ZDE2N2Q4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDIgU2VwIDIwMTQgMTE6NTY6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDE3ICsrKysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0
ZWQudHh0ICAgIHwgMTAgKysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0
bWwgICAgICAgICAgICB8IDEwICsrKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3Jp
cHQtdGVzdHMvZXJyb3IuanMgfCAxOSArKysrKwogLi4uL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0
LXRlc3RzL3N1Y2Nlc3MuanMgICAgICAgfCAxNiArKysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0ICB8ICA5ICsrKwogTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwgICAgICAgICAgfCAxMCArKysKIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjIgKysrKysrCiAuLi4vTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCAgICAgICB8IDExICsrKwogLi4u
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggfCAgNyArKwog
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgfCAgNyAr
KwogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA3
NCArKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5o
ICAgICAgICAgICAgICAgfCAgMSArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0Lmgg
ICAgICAgICAgICAgICAgICB8ICAxICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJ
VUlDbGllbnQuaCAgICAgICAgIHwgIDIgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oICAgICAgICAgfCAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcCAgICAgICAgICB8IDExICsrLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggICAgfCA2OCArKysrKysrKysrKysrKysrCiAuLi4vQVBJ
L0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgICAgICAgICB8IDQwICsrKysrKysr
KysKIC4uLi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIHwg
MzcgKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmgg
ICAgICAgICB8ICAxICsKIC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAgICAgIHwgNjMgKysrKysrKysrKysrKysrCiAuLi4vVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaCAgICAgICB8IDQ4ICsrKysrKysrKysrCiAuLi4vVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwICB8IDU0ICsrKysrKysrKysrKysK
IC4uLi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICAgIHwgNTQg
KysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
ICAgICAgICAgfCAxNCArKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggICAgICAgICAgICB8ICA3ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluICB8ICA1ICsrCiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogICB8IDQ0ICsrKysrKysrKysrCiAuLi4vVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcCAgICAgICAgICB8IDkyICsrKysrKysrKysrKysrKysrKysr
KysKIC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAgICAgICAgICAgIHwg
NTggKysrKysrKysrKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
Y3BwICAgICAgICAgIHwgNTUgKysrKysrKysrKysrKwogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmggfCA0NSArKysrKysrKysrKwogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwICAgICAgfCAxNCArKysrCiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oICAgICAgICB8IDEzICsrKwogLi4u
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gfCAgNSArKwog
VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0NSAr
KysrKysrKysrKwogVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZSAgICAgICAg
ICAgICAgfCAgMSArCiAuLi4vVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
ICAgICAgICB8ICA2ICsrCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1l
ZGlhLmNwcCAgICB8IDYzICsrKysrKysrKysrKysrKwogLi4uL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbCAgfCAxNCArKysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgICAgICAgICB8ICAzICsKIC4uLi9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAgICAgICAgICAgICAgIHwgIDcgKysKIC4uLi9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5oICAgICAgICAgICAgICAgIHwgIDMgKwogLi4uL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgfCAgNiArKwogVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggfCAgMyArCiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCAgICAgICAgICB8IDU3ICsrKysrKysr
KysrKystCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggICAgICAgICAg
ICB8ICA5ICsrKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgICAg
ICAgICAgfCAgNyArKwogNDkgZmlsZXMgY2hhbmdlZCwgMTE2NSBpbnNlcnRpb25zKCspLCA1IGRl
bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vZXJyb3ItZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvZXJyb3IuanMKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9zdWNjZXNzLmpzCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLWV4
cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vc3VjY2Vzcy5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJV
c2VyTWVkaWFDbGllbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRpYS5odG1sCgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkyNWQ0
ZWMuLjk0YWQ0NzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0wOS0wMSAgUGhpbGlwcGUg
Tm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dLMl0gVXNlck1lZGlh
Q2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNpbXBsZSBVc2VyTWVkaWEgcGVybWlzc2lvbiByZXF1ZXN0IHRlc3RzIGluc3BpcmVk
IGZyb20gdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIHRlc3Qgc3VpdGUuCisKKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3Ry
ZWFtL3NjcmlwdC10ZXN0cy9lcnJvci5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0
cmVhbS9zY3JpcHQtdGVzdHMvc3VjY2Vzcy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9zdWNjZXNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9zdWNjZXNzLmh0bWw6IEFkZGVkLgorCiAyMDE0LTA4LTI5ICBTZXJnaW8gVmlsbGFy
IFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRd
IFJlc29sdmVkIHZhbHVlIG9mIGdyaWQtdGVtcGxhdGUtKiBtdXN0IGluY2x1ZGUgZXZlcnkgdHJh
Y2sgbGlzdGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9y
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2MjlkMjIyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgVXNlck1lZGlhIGVycm9yIGNhbGxiYWNrIHVz
aW5nIHRoZSBtb2NrIHNlcnZpY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIGVycm9yLmNvZGUgaXMgZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL2Vycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEz
ODMxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJy
b3IuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvZXJyb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvZXJy
b3IuanMgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9lcnJvci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWQ2MjEzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvZXJyb3Iu
anMKQEAgLTAsMCArMSwxOSBAQAorZGVzY3JpcHRpb24oIlRlc3RzIFVzZXJNZWRpYSBlcnJvciBj
YWxsYmFjayB1c2luZyB0aGUgbW9jayBzZXJ2aWNlLiIpOworCitpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsKK2Vsc2UK
KyAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5u
ZXInKTsKKwordmFyIGVycm9yOwordmFyIG9wdGlvbnMgPSB7YXVkaW86ZmFsc2UsIHZpZGVvOnRy
dWV9OworbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbihzdHJl
YW0pIHsKKyAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3Rl
ZGx5Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmdW5jdGlvbihlKSB7CisgICAgZXJyb3Ig
PSBlOworICAgIHNob3VsZEJlKCdlcnJvci5jb2RlJywgJ2Vycm9yLlBFUk1JU1NJT05fREVOSUVE
Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVz
dHMvc3VjY2Vzcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3Rz
L3N1Y2Nlc3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWVlNjYzNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRl
c3RzL3N1Y2Nlc3MuanMKQEAgLTAsMCArMSwxNiBAQAorZGVzY3JpcHRpb24oIlRlc3RzIFVzZXJN
ZWRpYSBzdWNjZXNzIGNhbGxiYWNrIHVzaW5nIHRoZSBtb2NrIHNlcnZpY2UuIik7CisKK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24o
dHJ1ZSk7CitlbHNlCisgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0
IHRoZSB0ZXN0UnVubmVyJyk7CisKK3ZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzog
dHJ1ZX07CituYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0
cmVhbSkgeworICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZnVuY3Rpb24oZSkgeworICAgIHRlc3RG
YWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgZmluaXNo
SlNUZXN0KCk7Cit9KTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIyM2ViYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw5IEBACitUZXN0cyBVc2VyTWVkaWEgc3VjY2VzcyBjYWxsYmFjayB1c2luZyB0aGUgbW9jayBz
ZXJ2aWNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9zdWNjZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NTg0ZDFhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
c3VjY2Vzcy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdWNjZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA0ZmJmNWNiLi44NDY0ODNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjUgQEAKKzIwMTQtMDktMDEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBkb2N1bWVudCBhbmQg
ZnJhbWUgYWNjZXNzb3JzLCBuZWVkZWQgYnkgdGhlCisgICAgICAgIFVzZXJNZWRpYVJlcXVlc3RN
YW5hZ2VyIG9mIHRoZSBXZWJQcm9jZXNzLiBBbHNvIGFkZGVkIHR3byBtZXRob2RzCisgICAgICAg
IHVzZWQgYnkgdGhlIHBlcm1pc3Npb24gcmVxdWVzdCBtYW5hZ2VyIHRvIGtub3cgaWYgYWNjZXNz
IHRvIGF1ZGlvCisgICAgICAgIG9yIHZpZGVvIGRldmljZXMgaXMgcmVxdWVzdGVkLgorCisgICAg
ICAgIFRlc3RzOiBmYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVx
dWVzdDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6ZnJh
bWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oOgor
ICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6YXVkaW8pOgorICAgICAgICAoV2Vi
Q29yZTo6VXNlck1lZGlhUmVxdWVzdDo6dmlkZW8pOgorCiAyMDE0LTA5LTAxICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmRlclRoZW1lTWFjOjpw
YWludFByb2dyZXNzQmFyIGNyZWF0ZXMgYSBidWZmZXIgd2l0aG91dCByZXNwZWN0aW5nIHRoZSBk
ZXN0aW5hdGlvbidzIGFjY2VsZXJhdGlvbiBzZXR0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCBlNDM4
ZDM1Li43MTAwZWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRl
ICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRz
SW1wbC5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1D
ZW50ZXIuaCIKQEAgLTEwMSw2ICsxMDIsMTYgQEAgVXNlck1lZGlhUmVxdWVzdDo6flVzZXJNZWRp
YVJlcXVlc3QoKQogewogfQogCitEb2N1bWVudCogVXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1lbnQo
KSBjb25zdAoreworICAgIHJldHVybiB0b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCk7Cit9CisKK0ZyYW1lKiBVc2VyTWVkaWFSZXF1ZXN0OjpmcmFtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5mcmFtZSgpIDogbnVsbHB0cjsKK30KKwog
U2VjdXJpdHlPcmlnaW4qIFVzZXJNZWRpYVJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKCkgY29uc3QK
IHsKICAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCBjODBh
NmJhLi44YWU4ZWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtNDgsNiArNDgsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIERpY3Rpb25hcnk7CiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEZyYW1l
OwogY2xhc3MgTWVkaWFDb25zdHJhaW50czsKIGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKIGNs
YXNzIFVzZXJNZWRpYUNvbnRyb2xsZXI7CkBAIC02MiwxMCArNjMsMTYgQEAgcHVibGljOgogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7
CiAKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKKyAgICBGcmFtZSogZnJhbWUoKSBj
b25zdDsKKwogICAgIHZvaWQgc3RhcnQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVzZXJN
ZWRpYUFjY2Vzc0dyYW50ZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVzZXJNZWRpYUFj
Y2Vzc0RlbmllZCgpOwogCisgICAgYm9vbCBhdWRpbygpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9D
b25zdHJhaW50czsgfQorICAgIGJvb2wgdmlkZW8oKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvQ29u
c3RyYWludHM7IH0KKwogcHJpdmF0ZToKICAgICBVc2VyTWVkaWFSZXF1ZXN0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBVc2VyTWVkaWFDb250cm9sbGVyKiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzPiBhdWRpb0NvbnN0cmFpbnRzLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IHZp
ZGVvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxi
YWNrPiwgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIv
Q01ha2VMaXN0cy50eHQKaW5kZXggNGYzOTIzZC4uMDVhZGY4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50
eHQKQEAgLTQ5LDYgKzQ5LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAg
ICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTSIKICAgICAiJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9MYXVuY2hpbmciCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dl
YlByb2Nlc3MvTWVkaWFDYWNoZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9NZWRp
YVN0cmVhbSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9OZXR3b3JrIgogICAgICIk
e1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMiCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvT3JpZ2luRGF0YSIKQEAgLTMwMSw2ICszMDIsOCBAQCBzZXQoV2ViS2l0
Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCiAgICAgVUlQ
cm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9UZXh0Q2hlY2tlckNv
bXBsZXRpb24uY3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmNwcAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcAogICAgIFVJUHJv
Y2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9X
ZWJCYWNrRm9yd2FyZExpc3QuY3BwCkBAIC0zODksNiArMzkyLDcgQEAgc2V0KFdlYktpdDJfU09V
UkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25TdGF0ZVJlZi5jcHAKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tUZXh0Q2hlY2tlci5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcAogCkBAIC00ODUsNiAr
NDg5LDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9NZWRpYUNhY2hl
L1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmNwcAogCisgICAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogICAgIFdlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmNwcApAQCAtNTM3LDYgKzU0Myw3IEBAIHNldChXZWJLaXQyX1NPVVJD
RVMKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKICAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKKyAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlZpYnJhdGlvbkNsaWVudC5jcHAKIAogICAgIFdlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwNTMyNTZmLi42YzY2
ZGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMTQtMDktMDEgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRpYUNs
aWVudCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdXBwb3J0IGZvciBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCBpbiBXZWJLaXQyLiBJ
dCdzCisgICAgICAgIGltcGxlbWVudGVkIHNpbWlsYXJpbHkgdG8gdGhlIEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QKKyAgICAgICAgc3VwcG9ydC4gV2hlbiB0aGUgV2ViUGFnZSByZXF1aXJl
cyB0aGlzIHBlcm1pc3Npb24gaXQgc2VuZHMgYQorICAgICAgICBtZXNzYWdlIHRvIHRoZSBVSSBw
cm9jZXNzIHdoaWNoIGF0IHNvbWUgcG9pbnQgZ3JhbnRzIG9yIGRlbmllcyB0aGUKKyAgICAgICAg
cGVybWlzc2lvbiBhbmQgc2VuZHMgdGhlIHJlc3VsdCBiYWNrIHRvIHRoZSBXZWJQcm9jZXNzLgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEdlbmVyaWMgQ01ha2Ugc3VwcG9ydCBmb3IgbmV3
IGZpbGVzLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDogTmV3IHR5cGUgZm9yIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDog
RGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOiBQZXJtaXNzaW9u
UmVxdWVzdCBBUEkgbWFwcGluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
Lmg6IE5ldyBkZWNpZGVQb2xpY3kgaGFuZGxlciBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuCisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6IERp
dHRvLgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaDogV0tQYWdlVUlDbGllbnQgdmVyc2lvbiBidW1wIHRv
CisgICAgICAgIDUsIGluY2x1ZGluZyB0aGUgbmV3IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0IG1lbWJlci4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHA6IEFkZGVkLCBDIEFQSQorICAgICAgICBpbXBsZW1l
bnRhdGlvbiBvZiB0aGUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgIChXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKToKKyAgICAgICAgKFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJf
Qy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5jcHA6IEFkZGVkLCBwcm94eQorICAgICAgICBvYmplY3QgZm9yIHRoZSBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFR5cGUuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxv
dyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRl
bnkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojpp
bnZhbGlkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6bWVkaWFQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yRnJhbWUpOiBEZWZlcgorICAgICAgICBVc2VyUGVybWlzc2lvblJlcXVlc3QgdG8g
dGhlIFVJQ2xpZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBOZXcgbWVzc2FnZSB0byBo
YW5kbGUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLgorICAgICAgICAqIFdlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU3RyZWFt
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA6IEFkZGVkLAorICAgICAgICBX
ZWJQcm9jZXNzIHNpZGUgb2YgdGhlIFVzZXJSZXF1ZXN0TWFuYWdlciwga2VlcGluZyB0cmFjayBv
ZiBlYWNoCisgICAgICAgIHBlcm1pc3Npb24gcmVxdWVzdC4KKyAgICAgICAgKFdlYktpdDo6Z2Vu
ZXJhdGVSZXF1ZXN0SUQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpj
YW5jZWxSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVz
ZXJNZWRpYUNsaWVudC5jcHA6IEFkZGVkLAorICAgICAgICBXZWJQcm9jZXNzIGltcGxlbWVudGF0
aW9uIG9mIHRoZSBXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlVzZXJNZWRpYUNsaWVudDo6V2ViVXNlck1lZGlhQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VXNlck1lZGlhQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsUmVxdWVzdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaDogQWRkZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpX
ZWJQYWdlKTogQ3JlYXRlIHRoZQorICAgICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIgYW5kIHJlZ2lzdGVyIHRoZSBVc2VyTWVkaWFDbGllbnQKKyAgICAgICAgdG8gdGhlIHBh
Z2UuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNz
aW9uRGVjaXNpb24pOiBEaXNwYXRjaAorICAgICAgICBkZWNpc2lvbiB0byBtYW5hZ2VyLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46IE5ldyBNZXNzYWdlIHRvIGhhbmRs
ZQorICAgICAgICBwZXJtaXNzaW9uIGRlY2lzaW9uIHJlc3VsdCBmcm9tIHRoZSBVSSBwcm9jZXNz
LgorCiAyMDE0LTA5LTAyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCBHVEsgYnVpbGQgZml4IGFmdGVyIHIxNzMxNjMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggOGQxZTk2NS4uMTFlYzU0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtMTI3LDYgKzEyNyw3IEBAIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJvdGVjdGlvblNwYWNlKiBXS1Byb3RlY3Rpb25TcGFjZVJl
ZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVGV4dENoZWNrZXIqIFdLVGV4dENoZWNr
ZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Nlc3Npb24qIFdLU2Vzc2lvblJl
ZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU2Vzc2lvblN0YXRlKiBXS1Nlc3Npb25T
dGF0ZVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QqIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS1ZpYnJhdGlvbiogV0tWaWJyYXRpb25SZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS1ZpZXdwb3J0QXR0cmlidXRlcyogV0tWaWV3cG9ydEF0dHJpYnV0ZXNS
ZWY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCA2ZGY0OTE4Li4zMTEyZWU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC0xMzIsNiArMTMyLDcgQEAgcHVibGljOgog
ICAgICAgICBQcmVmZXJlbmNlcywKICAgICAgICAgU2Vzc2lvbiwKICAgICAgICAgVGV4dENoZWNr
ZXIsCisgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LAogICAgICAgICBWaWJyYXRp
b24sCiAgICAgICAgIFZpZXdwb3J0QXR0cmlidXRlcywKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDFjYTE1ZTMuLmVlYmNmYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTUwLDYgKzUwLDcgQEAgY2xh
c3MgSW1tdXRhYmxlRGljdGlvbmFyeTsKIGNsYXNzIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQ7CiBj
bGFzcyBOYXRpdmVXZWJXaGVlbEV2ZW50OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3Q7CitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgV2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViRnJhbWVQcm94eTsKIGNs
YXNzIFdlYk9wZW5QYW5lbFBhcmFtZXRlcnM7CkBAIC0xMjIsNiArMTIzLDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCBib29sIHJ1bk9wZW5QYW5lbChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdl
YktpdDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6V2ViT3BlblBhbmVsUGFyYW1ldGVycyosIFdl
YktpdDo6V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBXZWJL
aXQ6OldlYlNlY3VyaXR5T3JpZ2luKiwgV2ViS2l0OjpHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0UHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xp
Y3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdl
YktpdDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4qLCBXZWJLaXQ6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4qLCBXZWJL
aXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KikgeyByZXR1cm4gZmFsc2U7IH0KIAog
ICAgIC8vIFByaW50aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oCmluZGV4IDgwMjIxYTkuLjVmNDRhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKQEAgLTYzLDYgKzYzLDcgQEAgY2xhc3MgQXV0aGVudGljYXRpb25E
ZWNpc2lvbkxpc3RlbmVyOwogY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0OworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNsYXNzIFdlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBj
bGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOwpAQCAtMTQ2LDYgKzE0Nyw3IEBAIFdLX0FERF9B
UElfTUFQUElORyhXS1JlbmRlckxheWVyUmVmLCBXZWJSZW5kZXJMYXllcikKIFdLX0FERF9BUElf
TUFQUElORyhXS1JlbmRlck9iamVjdFJlZiwgV2ViUmVuZGVyT2JqZWN0KQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLU2Vzc2lvblN0YXRlUmVmLCBBUEk6OlNlc3Npb25TdGF0ZSkKIFdLX0FERF9BUElf
TUFQUElORyhXS1RleHRDaGVja2VyUmVmLCBXZWJUZXh0Q2hlY2tlcikKK1dLX0FERF9BUElfTUFQ
UElORyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmLCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlicmF0aW9uUmVmLCBXZWJWaWJy
YXRpb25Qcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiwg
V2ViVmlld3BvcnRBdHRyaWJ1dGVzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSW5zcGVjdG9yUmVm
LCBXZWJJbnNwZWN0b3JQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAKaW5kZXggM2MwMDZiYy4uMzM2ZjYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xp
ZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IENsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6
dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRW
MiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGllbnRWND4gVmVyc2lvbnM7CisgICAgdHlw
ZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFn
ZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJ
Q2xpZW50VjU+IFZlcnNpb25zOwogfTsKIAogfQpAQCAtMTQ5Nyw2ICsxNDk3LDE1IEBAIHZvaWQg
V0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNs
aWVudEJhc2UqIHdrQ2xpZW50CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQog
CisgICAgICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXZWJTZWN1
cml0eU9yaWdpbiogb3JpZ2luLCAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogcGVy
bWlzc2lvblJlcXVlc3QpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9j
bGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xp
Y3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUp
LCB0b0FQSShvcmlnaW4pLCB0b0FQSShwZXJtaXNzaW9uUmVxdWVzdCksIG1fY2xpZW50LmJhc2Uu
Y2xpZW50SW5mbyk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdChXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCkgb3ZlcnJpZGUKICAg
ICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVVJQ2xpZW50LmgKaW5kZXggNDAzNzdkNi4uYTFlYTBmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTg5LDYgKzg5
LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlUGlubmVkU3RhdGVEaWRDaGFuZ2VDYWxsYmFjayko
V0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGMKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZEJl
Z2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzc0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFn
ZSwgV0tQb2ludCBtb3VzZURvd25Qb3NpdGlvbiwgV0tIaXRUZXN0UmVzdWx0UmVmIGhpdFRlc3RS
ZXN1bHQsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBl
ZGVmIHZvaWQgKCpXS1BhZ2VEaWRSZWNvZ25pemVMb25nTW91c2VQcmVzc0NhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsK
IHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNl
UHJlc3NDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qg
dm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OwogCiAvLyBEZXByZWNhdGVkICAgIAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVO
ZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdL
RGljdGlvbmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZl
bnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0z
NzYsNiArMzc3LDczIEBAIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjQgewogICAgIFdL
UGFnZURpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxsYmFjayAgICAg
ICAgICAgICAgZGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzczsKIH0gV0tQ
YWdlVUlDbGllbnRWNDsKIAordHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWNSB7CisgICAg
V0tQYWdlVUlDbGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLUGFnZUNyZWF0ZU5l
d1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgICAgICAgY3Jl
YXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVVJQ2xpZW50Q2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1Bh
Z2U7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjbG9zZTsKKyAgICBXS1BhZ2VUYWtlRm9jdXNDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VGb2N1czsKKyAg
ICBXS1BhZ2VGb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZvY3VzOworICAgIFdLUGFnZVVuZm9jdXNDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5mb2N1czsKKyAgICBXS1BhZ2VS
dW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJ1bkphdmFTY3JpcHRBbGVydDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25m
aXJtOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS1BhZ2VTZXRT
dGF0dXNUZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNldFN0YXR1c1RleHQ7CisgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFj
a19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudF9k
ZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlj
a2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1dHRv
bkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVL
ZXlFdmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhh
bmRsZUtleUV2ZW50OworICAgIFdLUGFnZURpZE5vdEhhbmRsZVdoZWVsRXZlbnRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxlV2hlZWxFdmVudDsKKyAg
ICBXS1BhZ2VHZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRUb29sYmFyc0Fy
ZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvb2xi
YXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQ
YWdlU2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRNZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldFN0YXR1c0JhcklzVmlz
aWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNW
aXNpYmxlOworICAgIFdLUGFnZVNldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFn
ZUdldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaXNSZXNpemFibGU7CisgICAgV0tQYWdlU2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1Jlc2l6YWJsZTsKKyAgICBX
S1BhZ2VHZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7
CisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CisgICAgV0tQYWdl
VUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkaWREcmF3OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsKKyAgICBXS1BhZ2VF
eGNlZWRlZERhdGFiYXNlUXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGV4Y2VlZGVkRGF0YWJhc2VRdW90YTsKKyAgICBXS1BhZ2VSdW5PcGVuUGFuZWxDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk9wZW5QYW5lbDsK
KyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2Fs
bGJhY2sgICAgICAgICAgIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3Q7CisgICAgV0tQYWdlSGVhZGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWFkZXJIZWlnaHQ7CisgICAgV0tQYWdlRm9vdGVySGVpZ2h0
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJI
ZWlnaHQ7CisgICAgV0tQYWdlRHJhd0hlYWRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkcmF3SGVhZGVyOworICAgIFdLUGFnZURyYXdGb290ZXJD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0Zv
b3RlcjsKKyAgICBXS1BhZ2VQcmludEZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByaW50RnJhbWU7CisgICAgV0tQYWdlVUlDbGllbnRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5Nb2Rh
bDsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVudXNlZDE7IC8vIFVzZWQgdG8gYmUgZGlkQ29tcGxldGVSdWJi
ZXJCYW5kRm9yTWFpbkZyYW1lCisgICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0Zv
bGRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBzYXZlRGF0YVRvRmlsZUluRG93bmxv
YWRzRm9sZGVyOworICAgIFdLUGFnZVNob3VsZEludGVycnVwdEphdmFTY3JpcHRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdDsKKwor
ICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CisgICAgV0tQ
YWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lG
b3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgIGRlY2lkZVBv
bGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZVVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEgdW5h
dmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjE7CisKKyAg
ICAvLyBWZXJzaW9uIDIuCisgICAgV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93Q29sb3JQaWNrZXI7CisgICAgV0tQ
YWdlSGlkZUNvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoaWRlQ29sb3JQaWNrZXI7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZVBsdWdp
bkJ1dHRvbkNsaWNrZWQ7CisgICAgCisgICAgLy8gVmVyc2lvbiAzLgorICAgIFdLUGFnZVBpbm5l
ZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGlubmVkU3RhdGVEaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDQuCisgICAgV0tQYWdlRGlk
QmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzQ2FsbGJhY2sgICAgICAgICAgICAg
ICBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3M7CisgICAgV0tQYWdlRGlk
UmVjb2duaXplTG9uZ01vdXNlUHJlc3NDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzczsKKyAgICBXS1BhZ2VEaWRDYW5jZWxUcmFja2lu
Z1BvdGVudGlhbExvbmdNb3VzZVByZXNzQ2FsbGJhY2sgICAgICAgICAgICAgIGRpZENhbmNlbFRy
YWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3M7CisKKyAgICAvLyBWZXJzaW9uIDUuCisgICAg
V0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAg
ICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsKK30g
V0tQYWdlVUlDbGllbnRWNTsKKwogZW51bSB7IGtXS1BhZ2VVSUNsaWVudEN1cnJlbnRWZXJzaW9u
IFdLX0VOVU1fREVQUkVDQVRFRCgiVXNlIGFuIGV4cGxpY2l0IHZlcnNpb24gbnVtYmVyIGluc3Rl
YWQiKSA9IDIgfTsKIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50IHsKICAgICBpbnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMDVmZDNlNjI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTAor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisg
KiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCIKKworI2luY2x1ZGUgIlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdEdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OkFQSVR5cGUpOworfQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKQoreworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiktPmFsbG93KCk7Cit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dERlbnkoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFJlZikKK3sKKyAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYp
LT5kZW55KCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5hOGNmMGEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCww
ICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwKKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdF9oCisjZGVmaW5lIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaAorCisjaW5jbHVk
ZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgewor
I2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
R2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0KTsKK1dLX0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RE
ZW55KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV2ViS2l0Ml9DLmgKaW5kZXggNWE3MTJjZC4uZTMyYmFjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaApAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1
ZGUgPFdlYktpdC9XS1VSTC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1VSTFJlcXVlc3QuaD4KICNp
bmNsdWRlIDxXZWJLaXQvV0tVUkxSZXNwb25zZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg+CiAKICNpZiBkZWZpbmVkKF9fT0JKQ19fKSAmJiBfX09C
SkNfXwogI2ltcG9ydCA8V2ViS2l0L1dLVmlldy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk3ZTU5NQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkm
IHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVlc3RzKCkKK3sKKyAgICBmb3Ig
KGF1dG8mIHJlcXVlc3QgOiBtX3BlbmRpbmdSZXF1ZXN0cy52YWx1ZXMoKSkKKyAgICAgICAgcmVx
dWVzdC0+aW52YWxpZGF0ZSgpOworCisgICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKTsKK30K
KworUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2Vy
TWVkaWFJRCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbykKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eT4gcmVxdWVzdCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6OmNyZWF0ZSgqdGhpcywgdXNlck1lZGlhSUQsIGF1ZGlvLCB2aWRlbyk7CisgICAg
bV9wZW5kaW5nUmVxdWVzdHMuYWRkKHVzZXJNZWRpYUlELCByZXF1ZXN0LmdldCgpKTsKKyAgICBy
ZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24o
dWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBpZiAoIW1fcGFnZS5p
c1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9wZW5kaW5nUmVxdWVzdHMu
dGFrZSh1c2VyTWVkaWFJRCkpCisgICAgICAgIHJldHVybjsKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRS
ZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkKSwg
bV9wYWdlLnBhZ2VJRCgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOworI2Vu
ZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTE3MTNiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExl
c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKwor
I2lmbmRlZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisjZGVmaW5l
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSB7CitwdWJsaWM6CisgICAgZXhw
bGljaXQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5
Jik7CisKKyAgICB2b2lkIGludmFsaWRhdGVSZXF1ZXN0cygpOworCisgICAgLy8gQ3JlYXRlIGEg
cmVxdWVzdCB0byBiZSBwcmVzZW50ZWQgdG8gdGhlIHVzZXIuCisgICAgUGFzc1JlZlB0cjxVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBib29sIGF1ZGlvLCBib29sIHZpZGVvKTsKKworICAgIC8vIENhbGxlZCBieSBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IHdoZW4gYSBkZWNpc2lvbiBpcyBtYWRlIGJ5IHRo
ZSB1c2VyLgorICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1
aW50NjRfdCwgYm9vbCBhbGxvdyk7CisKK3ByaXZhdGU6CisgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1ZXN0
czsKKyAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmQxNGU1ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNB
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCIKKworI2luY2x1ZGUgIkFQSU51bWJlci5oIgorI2luY2x1ZGUgIlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1l
ZGlhSUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikK
KyAgICAsIG1fdXNlck1lZGlhSUQodXNlck1lZGlhSUQpCit7CisgICAgSGFzaE1hcDxTdHJpbmcs
IFJlZlB0cjxBUEk6Ok9iamVjdD4+IHBhcmFtZXRlcnNNYXA7CisgICAgcGFyYW1ldGVyc01hcC5z
ZXQoImF1ZGlvIiwgQVBJOjpCb29sZWFuOjpjcmVhdGUoYXVkaW8pKTsKKyAgICBwYXJhbWV0ZXJz
TWFwLnNldCgidmlkZW8iLCBBUEk6OkJvb2xlYW46OmNyZWF0ZSh2aWRlbykpOworICAgIG1fbWVk
aWFQYXJhbWV0ZXJzID0gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShwYXJh
bWV0ZXJzTWFwKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
YWxsb3coKQoreworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRl
Y2lzaW9uKG1fdXNlck1lZGlhSUQsIHRydWUpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OmRlbnkoKQoreworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1l
ZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIGZhbHNlKTsKK30KKwordm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBtX21h
bmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m
MDQ3MjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwg
d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAq
LworCisjaWZuZGVmIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaAorI2RlZmluZSBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5o
IgorI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rpb25hcnkuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wg
YXVkaW8sIGJvb2wgdmlkZW8pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgdXNlck1lZGlhSUQsIGF1ZGlv
LCB2aWRlbykpOworICAgIH0KKworICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRlbnkoKTsK
KworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworCisgICAgUGFzc1JlZlB0cjxJbW11dGFibGVEaWN0
aW9uYXJ5PiBtZWRpYVBhcmFtZXRlcnMoKSBjb25zdCB7IHJldHVybiBtX21lZGlhUGFyYW1ldGVy
czsgfQorCitwcml2YXRlOgorICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbyk7CisKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgbV9tYW5hZ2VyOworICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhSUQ7
CisgICAgUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IG1fbWVkaWFQYXJhbWV0ZXJzOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggNGZiNzE0MC4uMWZkMWE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJQcmludEluZm8uaCIKICNp
bmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKKyNp
bmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW5jbHVkZSAiV0tD
b250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2luY2x1
ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKQEAgLTI4MCw2ICsyODEsNyBAQCBXZWJQYWdl
UHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MsIHVpbgogI2VuZGlmCiAgICAgLCBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKCp0aGlzKQogICAgICwgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIoKnRoaXMpCisgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cigqdGhpcykKICAgICAsIG1fdmlld1N0YXRlKFZpZXdTdGF0ZTo6Tm9GbGFncykKICAgICAsIG1f
dmlld1dhc0V2ZXJJbldpbmRvdyhmYWxzZSkKICAgICAsIG1fYmFja0ZvcndhcmRMaXN0KFdlYkJh
Y2tGb3J3YXJkTGlzdDo6Y3JlYXRlKCp0aGlzKSkKQEAgLTQ2NTUsNiArNDY1NywxOCBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2
NF90IGdlb2xvY2F0aW9uSUQsCiAgICAgcmVxdWVzdC0+ZGVueSgpOwogfQogCit2b2lkIFdlYlBh
Z2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2Vy
TWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIGJvb2wg
YXVkaW8sIGJvb2wgdmlkZW8pCit7CisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nl
c3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUpOworCisgICAg
UmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyKG9yaWdpbklk
ZW50aWZpZXIpKTsKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4g
cmVxdWVzdCA9IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNyZWF0ZVJlcXVl
c3QodXNlck1lZGlhSUQsIGF1ZGlvLCB2aWRlbyk7CisKKyAgICBpZiAoIW1fdWlDbGllbnQtPmRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHRoaXMsIGZyYW1lLCBvcmln
aW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpKQorICAgICAgICByZXF1ZXN0LT5kZW55KCk7Cit9CisK
IHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogewogICAgIGlmICghaXNS
ZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IGJkZjY4YmYuLmZjZmMxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVByb2Nl
c3NJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUg
IlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5o
IgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgIldLUGFnZVByaXZhdGUuaCIKQEAgLTEy
NCw2ICsxMjUsNyBAQCBjbGFzcyBEcmFnRGF0YTsKIGNsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEdy
YXBoaWNzTGF5ZXI7CiBjbGFzcyBJbnRTaXplOworY2xhc3MgTWVkaWFDb25zdHJhaW50c0ltcGw7
CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CiBjbGFzcyBSdW5Mb29wT2JzZXJ2ZXI7CiBjbGFzcyBT
aGFyZWRCdWZmZXI7CkBAIC0xMDMxLDYgKzEwMzMsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZXhj
ZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2lu
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlz
cGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVz
YWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2Fn
ZSwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVv
dGE6OkRlbGF5ZWRSZXBseT4pOwogICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRR
dW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOjpEZWxheWVkUmVw
bHk+KTsKICAgICB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50
NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRp
Zmllcik7CisKKyAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlm
aWVyLCBib29sIGF1ZGlvLCBib29sIHZpZGVvKTsKKwogICAgIHZvaWQgcnVuTW9kYWwoKTsKICAg
ICB2b2lkIG5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpOwogICAgIHZvaWQgcmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShp
bnQzMl90IG5ld1N0eWxlKTsKQEAgLTEzNjcsNiArMTM3Miw4IEBAIHByaXZhdGU6CiAgICAgR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX2dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOwogICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogCisgICAg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV91c2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI7CisKICAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1fdmll
d1N0YXRlOwogICAgIGJvb2wgbV92aWV3V2FzRXZlckluV2luZG93OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0YTZmZDU3
Li5lOGE1YmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTI1Niw2ICsyNTYsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICAgICAjIEdlb2xvY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdEdlb2xvY2F0aW9u
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQogICAgIAorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgIyBNZWRpYVN0ZWFtIG1lc3NhZ2VzCisgICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1p
c3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3Ry
aW5nIG9yaWdpbklkZW50aWZpZXIsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pCisjZW5kaWYKKwog
ICAgICMgTm90aWZpY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1p
c3Npb24odWludDY0X3QgcmVxdWVzdElELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICBT
aG93Tm90aWZpY2F0aW9uKFN0cmluZyB0aXRsZSwgU3RyaW5nIGJvZHksIFN0cmluZyBpY29uVVJM
LCBTdHJpbmcgdGFnLCBTdHJpbmcgbGFuZywgU3RyaW5nIGRpciwgU3RyaW5nIG9yaWdpbklkZW50
aWZpZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM5MGQ3NzUuLjQ5NTY0ODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTc4OCw2ICs3ODgsMTQgQEAKIAkJM0Y4ODlEMTQxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDNGODg5RDEyMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gKi87IH07CiAJCTNGODg5RDE1MTg4Nzc4QzkwMEZFQURB
RiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODg5RDEzMTg4Nzc4QzkwMEZFQURBRiAvKiBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCAqLzsgfTsKIAkJM0Y4ODlEMTcxODg3ODU5
MzAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg4OUQwRDE4ODc2OTlDMDBGRUFEQUYg
LyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSAqLzsgfTsKKwkJNEEzQ0MxOEExOUIwNjNF
NzAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM5MTlB
RjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgKi87IH07CisJCTRBM0NDMThCMTlCMDY0MEYwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEE0MTBGM0ExOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi87IH07CisJCTRBM0NDMThDMTlCMDY0MTUwMEQx
NEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNCMTlBRjdCMDQwMDJFQkFC
NSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCAqLzsgfTsKKwkJNEEzQ0Mx
OEQxOUIwNjQxOTAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNDMTlB
RjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi87IH07
CisJCTRBM0NDMThFMTlCMDdCODUwMEQxNEFFRiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRB
NDEwRjM1MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNw
cCAqLzsgfTsKKwkJNEEzQ0MxOEYxOUIwN0I4QTAwRDE0QUVGIC8qIFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDRBNDEwRjM2MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NEE0MTBGNDQxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
QTQxMEY0MjE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmNwcCAqLzsgfTsKKwkJNEE0MTBGNEExOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRp
YUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0QTQxMEY0ODE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAqLzsg
fTsKIAkJNEY2MDE0MzIxNTVDNUFBMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGNjAxNDMwMTU1
QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi87IH07CiAJCTUxMDIxRTlD
MTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDIxRTlCMTJCMTY3ODgwMDVD
MDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLzsgfTsKIAkJNTEwMjc0MzIxOTgx
QUY4RTAwODE2NUVEIC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBX
S09yaWdpbkRhdGFNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTI3OTksNiArMjgwNywxNiBAQAogCQkzRjg4OUQxMjE4ODc3OEM5MDBG
RUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Lm1tOyBwYXRoID0gaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4ODlEMTMxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDsgcGF0aCA9IGlvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
M0Y4ODlEMTYxODg3N0EyNDAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW47IHBhdGggPSBpb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzNTE5QUY3QUMzMDAyRUJB
QjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGMzYxOUFGN0FDMzAwMkVCQUI1IC8qIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0QTQxMEYzOTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzQTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGM0IxOUFGN0IwNDAwMkVCQUI1IC8qIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjNDMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNEE0MTBGNDIxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0QTQxMEY0MzE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0QTQxMEY0ODE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVzZXJNZWRpYUNs
aWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjQ5MTlBRjdCODAw
MDJFQkFCNSAvKiBXZWJVc2VyTWVkaWFDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViVXNlck1lZGlhQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NraW5nUmVzcG9uc2VNYXAuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFNl
Y0l0ZW1TaGltLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0Rmls
ZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRo
ID0gU2VjSXRlbVNoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51
Q2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE0Myw2ICs1MTYx
LDE1IEBACiAJCQlwYXRoID0gQ29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9
OworCQk0QTQxMEY0MTE5QUY3QjI3MDAyRUJBQjUgLyogTWVkaWFTdHJlYW0gKi8gPSB7CisJCQlp
c2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjQyMTlBRjdCMjcwMDJF
QkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICovLAorCQkJCTRB
NDEwRjQzMTlBRjdCMjcwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gTWVkaWFTdHJlYW07CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OwogCQk1MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC01NjAxLDYgKzU2
MjgsNyBAQAogCQlCQzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGNDExOUFGN0Iy
NzAwMkVCQUI1IC8qIE1lZGlhU3RyZWFtICovLAogCQkJCTUxMkUzNTJBMTMwQjU1OTkwMEFCRDE5
QSAvKiBBcHBsaWNhdGlvbkNhY2hlICovLAogCQkJCTdDNkU3MEY4MThCMkQ0N0UwMEYyNEUyRSAv
KiBjb2NvYSAqLywKIAkJCQkzMzA5MzQ0QjEzMTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAqLywK
QEAgLTU2MzgsNiArNTY2Niw4IEBACiAJCUJDMDMyRDVEMTBGNDM3MjIwMDU4QzE1QSAvKiBXZWJD
b3JlU3VwcG9ydCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJNEE0MTBGNDgxOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgKi8s
CisJCQkJNEE0MTBGNDkxOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5oICov
LAogCQkJCTJEMjhGM0RGMTg4NUNDQjQwMDRCOUVBRSAvKiBpb3MgKi8sCiAJCQkJQkMxMTFBREUx
MTJGNUI5QTAwMzM3QkFCIC8qIG1hYyAqLywKIAkJCQkxQTcyODQ0NDE5NTlFRDEwMDAwN0JDRTUg
LyogU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAgKi8sCkBAIC01NzQxLDYgKzU3NzEsMTAgQEAK
IAkJQkMwMzJEQzMxMEY0MzgyNjAwNThDMTVBIC8qIFVJUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGMzkxOUFGN0IwNDAwMkVCQUI1
IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQk0
QTQxMEYzQTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaCAqLywKKwkJCQk0QTQxMEYzQjE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgKi8sCisJCQkJNEE0MTBGM0MxOUFGN0IwNDAwMkVC
QUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAqLywKIAkJCQkyREE5NDRB
ODE4ODRFOUFCMDBFRDg2REIgLyogaW9zICovLAogCQkJCUJDMDMyREM0MTBGNDM4N0MwMDU4QzE1
QSAvKiBBUEkgKi8sCiAJCQkJNTEyRjU4OEQxMkE4ODM2RjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0
aW9uICovLApAQCAtNTkxMSw2ICs1OTQ1LDggQEAKIAkJQkMwQzM3NjYxMEY4MDc2NjAwNzZEN0NC
IC8qIEMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRB
NDEwRjM1MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNw
cCAqLywKKwkJCQk0QTQxMEYzNjE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oICovLAogCQkJCTUxMjNDRjE4MTMzRDI1RTYwMDU2RjgwMCAvKiBjZyAqLywK
IAkJCQk2RUU4NDlDNDEzNjhEOTA0MDAzOEQ0ODEgLyogbWFjICovLAogCQkJCUJDQjYzNDc3MTE2
QkYxMDYwMDYwMzIxNSAvKiBXZWJLaXQyX0MuaCAqLywKQEAgLTcxMzcsNiArNzE3Myw3IEBACiAJ
CQkJMUFBNDFBQjUxMkMwMkVDNDAwMkJFNjdCIC8qIEVkaXRvclN0YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MUIxNUE4NTEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBN0M2Q0RCMTM3ODk1MDgwMEI5QzA0RCAvKiBFbnZpcm9u
bWVudFZhcmlhYmxlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEEzQ0MxOEYxOUIwN0I4QTAwRDE0
QUVGIC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBQTU3NUZCMTQ5NkI1MjYwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBOTBDMUY0MTI2NEZENzEwMDNFNDRENCAvKiBGaW5kQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUE5MTAwNzExMjY2NzVDNDAwMTg0MkY1IC8qIEZpbmRJbmRpY2F0
b3IuaCBpbiBIZWFkZXJzICovLApAQCAtNzU0Nyw2ICs3NTg0LDcgQEAKIAkJCQk1MTgzNTNEQjE4
ODVCRjhDMDBEOUZFNDQgLyogSURCU2VyaWFsaXphdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFERjU5MUIxODkwNTI4RTAwNDNDMTQ1IC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNTc0NEYwMTI2MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1cEl0ZW0u
aCBpbiBIZWFkZXJzICovLAorCQkJCTRBM0NDMThEMTlCMDY0MTkwMEQxNEFFRiAvKiBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0I5NDg0NzEx
RkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU3
NEU2MzEyNjdEMDgwMDA2RjBGMTIgLyogV2ViUG9wdXBNZW51UHJveHkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdDOEVCMTE3MThEQjZBMTkwMDc5MTdDMiAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCkBAIC03NTc0LDYgKzc2MTIsNyBAQAogCQkJCTM3NjA4ODFGMTUwNDEz
RTkwMEZDODJDNyAvKiBXZWJSZW5kZXJPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjE3
NDY1MTY0QzIxMzcwMDM3QTVDMSAvKiBXZWJSZXNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzMzNjc2MzAxMzBDOTk5ODAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTNDQzE4QjE5QjA2NDBGMDBEMTRBRUYgLyogVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
QUYwODlCMTkyNjdFRTUwMEI2MzkwQyAvKiBXS1VzZXJTY3JpcHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMzMzY3NjU2MTMwQzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2REIgLyog
R2VzdHVyZVR5cGVzLmggaW4gSGVhZGVycyAqLywKQEAgLTg2NjIsNyArODcwMSw5IEBACiAJCQlp
c2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQk0QTQxMEY0NDE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUQy
NEExMTZDQzNCOUUwMDdENTQ2MSAvKiBDaGlsZFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJNEE0MTBGNEExOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKQEAgLTkwNTEsNiArOTA5Miw3IEBACiAJCQkJMUEwRjI5RTMxMjBCNDQ0
MjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTFERjYzMTIxOEUwQjdDODAwM0EzRTJBIC8qIERvd25sb2FkQ2xpZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUEwRjI5Q0IxMjBCMzcxNjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rVGFibGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNEEzQ0MxOEExOUIwNjNFNzAwRDE0QUVGIC8qIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
QzEzMzdGMTg1OTBBRTQwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUNFREExMkUyMTUyQ0QxQUUwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRl
eHRDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyRTM1MkUxMzBCNTVBRjAwQUJEMTlB
IC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTE3
Myw2ICs5MjE1LDcgQEAKIAkJCQk1MTgzNDU5MjEzNDUzMkU5MDA5MkI2OTYgLyogV2ViSWNvbkRh
dGFiYXNlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRDAyRjY0MTMyRUM1QjkwMEJF
QUE5NiAvKiBXZWJJY29uRGF0YWJhc2VNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzU3MTkzQkUxOEMxNEE0NDAwMkQwRjEyIC8qIFdLRm9ybVNlbGVjdENvbnRyb2wubW0g
aW4gU291cmNlcyAqLywKKwkJCQk0QTNDQzE4RTE5QjA3Qjg1MDBEMTRBRUYgLyogV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRERGNzMxNjE4RTk1
MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTExQjI0QTYxMzJFMDk1NzAwMDY1QTBDIC8qIFdlYkljb25EYXRhYmFz
ZVByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRDAyRjZCMTMyRUM3MzcwMEJFQUE5NiAv
KiBXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTkzMzYsNiArOTM3OSw3IEBACiAJCQkJQkM0MDc2MjgxMjRGRjA0MDAwNjhGMjBBIC8qIFdL
Q2VydGlmaWNhdGVJbmZvTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE1RTc3MjcxODNERDZG
NjAwMDcyMDNGIC8qIEFzeW5jUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0EyODRE
NjE0OTJGMkM3MDAxRjkwNDIgLyogV0tDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
NEEzQ0MxOEMxOUIwNjQxNTAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYwQzM2NTgxOEMwNTFCQTAwRjYwN0Q3IC8qIFJl
bW90ZUxheWVyVHJlZUhvc3RJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjBDMzY1QzE4QzA1
Q0ExMDBGNjA3RDcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUJDNEE2Mjk2MTQ3MzEzQTAwMDZDNjgxQSAvKiBXS0Nvbm5lY3Rpb25S
ZWYuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU2
ZDdhZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFT
dHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDky
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRnJh
bWUuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1NlY3VyaXR5T3JpZ2luLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUmVxdWVzdElEKCkKK3sK
KyAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlUmVxdWVzdElEID0gMTsKKyAgICByZXR1cm4gdW5p
cXVlUmVxdWVzdElEKys7Cit9CisKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBt
X3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6OnN0YXJ0UmVxdWVzdChQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHBycFJlcXVlc3Qp
Cit7CisgICAgUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QocHJwUmVxdWVzdCk7Cisg
ICAgRnJhbWUqIGZyYW1lID0gcmVxdWVzdC0+ZnJhbWUoKTsKKyAgICBBU1NFUlQoZnJhbWUpOwor
ICAgIGlmICghZnJhbWUpIHsKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVk
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBn
ZW5lcmF0ZVJlcXVlc3RJRCgpOworICAgIG1faWRUb1JlcXVlc3RNYXAuc2V0KHJlcXVlc3RJRCwg
cmVxdWVzdCk7CisgICAgbV9yZXF1ZXN0VG9JRE1hcC5zZXQocmVxdWVzdCwgcmVxdWVzdElEKTsK
KworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFt
ZSk7CisgICAgQVNTRVJUKHdlYkZyYW1lKTsKKworICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4g
PSByZXF1ZXN0LT5zZWN1cml0eU9yaWdpbigpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUocmVxdWVzdElE
LCB3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpLCByZXF1
ZXN0LT5hdWRpbygpLCByZXF1ZXN0LT52aWRlbygpKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QqIHJl
cXVlc3QpCit7CisgICAgdWludDY0X3QgcmVxdWVzdElEID0gbV9yZXF1ZXN0VG9JRE1hcC50YWtl
KHJlcXVlc3QpOworICAgIGlmICghcmVxdWVzdElEKQorICAgICAgICByZXR1cm47CisgICAgbV9p
ZFRvUmVxdWVzdE1hcC5yZW1vdmUocmVxdWVzdElEKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNp
b24odWludDY0X3QgcmVxdWVzdElELCBib29sIGFsbG93ZWQpCit7CisgICAgUmVmUHRyPFVzZXJN
ZWRpYVJlcXVlc3Q+IHJlcXVlc3QgPSBtX2lkVG9SZXF1ZXN0TWFwLnRha2UocmVxdWVzdElEKTsK
KyAgICBpZiAoIXJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICBtX3JlcXVlc3RUb0lETWFw
LnJlbW92ZShyZXF1ZXN0KTsKKworICAgIGlmIChhbGxvd2VkKQorICAgICAgICByZXF1ZXN0LT51
c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgZWxzZQorICAgICAgICByZXF1ZXN0LT51c2Vy
TWVkaWFBY2Nlc3NEZW5pZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQz
NjkzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFT
dHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTAsMCArMSw1OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVz
dC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBVc2VyTWVkaWFSZXF1ZXN0OworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYpOworCisgICAgdm9pZCBzdGFydFJlcXVlc3Qo
UGFzc1JlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pik7CisgICAgdm9pZCBjYW5jZWxS
ZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKTsKKworICAgIHZvaWQgZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBh
bGxvd2VkKTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0
cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pj4gSURUb1JlcXVlc3RNYXA7CisgICAgdHlwZWRl
ZiBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0PiwgdWludDY0X3Q+IFJl
cXVlc3RUb0lETWFwOworICAgIElEVG9SZXF1ZXN0TWFwIG1faWRUb1JlcXVlc3RNYXA7CisgICAg
UmVxdWVzdFRvSURNYXAgbV9yZXF1ZXN0VG9JRE1hcDsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2VuZGlmIC8vIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVz
ZXJNZWRpYUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYjI3M2M4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcApAQCAtMCwwICsxLDU1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVXNlck1l
ZGlhQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiVXNl
ck1lZGlhQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVJlcXVlc3QuaCIKKyNpbmNs
dWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVXNl
ck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1f
cGFnZShwYWdlKQoreworfQorCit2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6cGFnZURlc3Ryb3ll
ZCgpCit7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50Ojpy
ZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QpCit7
CisgICAgbV9wYWdlLnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLnN0YXJ0UmVx
dWVzdChyZXF1ZXN0KTsKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbFJlcXVl
c3QoVXNlck1lZGlhUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBtX3BhZ2UudXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0OworCisjZW5kaWYgLy8gTUVESUFfU1RSRUFNCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2Vy
TWVkaWFDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDQ1OWFm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAg
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3Jp
dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLwor
CisjaWZuZGVmIFdlYlVzZXJNZWRpYUNsaWVudF9oCisjZGVmaW5lIFdlYlVzZXJNZWRpYUNsaWVu
dF9oCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1l
ZGlhQ2xpZW50Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJVc2VyTWVkaWFDbGllbnQgOiBwdWJs
aWMgV2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJVc2VyTWVkaWFD
bGllbnQoV2ViUGFnZSYpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJv
eWVkKCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8V2Vi
Q29yZTo6VXNlck1lZGlhUmVxdWVzdD4pOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0
KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKTsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKKyNlbmRpZiAvLyBXZWJVc2VyTWVkaWFDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDAwNjYwYzIuLmM5MWE2MjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTk2
LDYgKzk2LDcgQEAKICNpbmNsdWRlICJXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNs
dWRlICJXZWJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlci5o
IgorI2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ2hyb21lLmg+CkBAIC0yODIsNiArMjgzLDkgQEAgV2ViUGFnZTo6V2Vi
UGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgICwgbV9nZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQogI2VuZGlmCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQor
I2VuZGlmCiAgICAgLCBtX2NhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChwYXJhbWV0ZXJz
LmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICAsIG1fY2FuUnVuTW9kYWwocGFy
YW1ldGVycy5jYW5SdW5Nb2RhbCkKICAgICAsIG1faXNSdW5uaW5nTW9kYWwoZmFsc2UpCkBAIC0z
ODksNiArMzkzLDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKFBST1hJTUlU
WV9FVkVOVFMpCiAgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZVByb3hpbWl0eVRvKG1fcGFnZS5n
ZXQoKSwgbmV3IFdlYkRldmljZVByb3hpbWl0eUNsaWVudCh0aGlzKSk7CiAjZW5kaWYKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYkNvcmU6OnByb3ZpZGVVc2VyTWVkaWFUbyhtX3Bh
Z2UuZ2V0KCksIG5ldyBXZWJVc2VyTWVkaWFDbGllbnQoKnRoaXMpKTsKKyNlbmRpZgogCiAjaWYg
RU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgbV9wYWdlLT5zZXRSZW1vdGVJbnNwZWN0aW9u
QWxsb3dlZCh0cnVlKTsKQEAgLTMyNTEsNiArMzI1OCwxMyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJl
Y2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQsCiAgICAgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPmRpZFJlY2Vp
dmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24obm90aWZpY2F0aW9uSUQsIGFsbG93ZWQp
OwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBh
bGxvd2VkKQoreworICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmRpZFJl
Y2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQpOwor
fQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oSU9TKQogdm9pZCBXZWJQYWdlOjphZHZhbmNlVG9O
ZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbikKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGJhYmE1MDYuLjZiNWFkNWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDUs
NiArNDUsNyBAQAogI2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNp
b24uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RpY3RhdGlvbkFs
dGVybmF0aXZlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRWRpdG9yLmg+CkBAIC00NDcsNiArNDQ4LDEwIEBAIHB1YmxpYzoKICAgICBHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYgZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyJiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
KSB7IHJldHVybiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsgfQorI2VuZGlm
CisKICNpZiBQTEFURk9STShJT1MpCiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHNjcmVlblNpemUo
KSBjb25zdDsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgYXZhaWxhYmxlU2NyZWVuU2l6ZSgpIGNv
bnN0OwpAQCAtMTAxOCw2ICsxMDIzLDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZFJlY2Vp
dmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQs
IGJvb2wgYWxsb3dlZCk7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHZvaWQgZGlk
UmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwg
Ym9vbCBhbGxvd2VkKTsKKyNlbmRpZgorCiAgICAgdm9pZCBhZHZhbmNlVG9OZXh0TWlzc3BlbGxp
bmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbik7CiAgICAgdm9pZCBjaGFuZ2VTcGVsbGluZ1Rv
V29yZChjb25zdCBTdHJpbmcmIHdvcmQpOwogI2lmIFVTRShBUFBLSVQpCkBAIC0xMTgyLDYgKzEx
OTEsMTAgQEAgcHJpdmF0ZToKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ciBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ciBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKyNlbmRpZgorCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OlByaW50Q29udGV4dD4gbV9wcmludENvbnRleHQ7CiAjaWYg
UExBVEZPUk0oR1RLKQogICAgIFJlZlB0cjxXZWJQcmludE9wZXJhdGlvbkd0az4gbV9wcmludE9w
ZXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggZWJmNzIwZC4uODdmNDA3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAg
LTI2NCw2ICsyNjQsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAg
ICAgRGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xv
Y2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyAgICAjIE1lZGlhU3RlYW0KKyAgICBEaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRl
Y2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpCisjZW5kaWYKKwogICAg
ICMgTm90aWZpY2F0aW9uCiAgICAgRGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNp
c2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQogCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDI3M2FmNy4uYzlkOWIw
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQ4IEBACisyMDE0LTA5LTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGxlIEFQSSB0ZXN0
IGZvciB0aGUgVXNlck1lZGlhIHBlcm1pc3Npb24gcmVxdWVzdCBBUEkuIFRoZQorICAgICAgICBy
ZXF1aXJlZCB0ZXN0IGluZnJhc3RydWN0dXJlIGlzIGFsc28gYWRkZWQsIGluc3BpcmVkIGJ5IHRo
ZQorICAgICAgICBHZW9sb2NhdGlvbiBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBOZXcgQVBJ
IHRlc3QgZm9yIFVzZXJNZWRpYQorICAgICAgICBQZXJtaXNzaW9uIHJlcXVlc3QuCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHA6IEFkZGVkLgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RDYWxsQmFjayk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGw6IG5ldworICAgICAgICBoZWxwZXIgbWV0aG9kIHRvIHNldCB0aGUgcGVybWlzc2lv
biByZXF1ZXN0IHJlc3VsdCB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6IERpdHRvLgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6c2V0VXNlck1lZGlhUGVybWlzc2lvbik6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5o
OiBEaXR0by4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwOiBEaXR0by4KKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0VXNlck1lZGlh
UGVybWlzc2lvbik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmg6IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCk6IFBlcm1pc3Npb24KKyAgICAgICAgcmVxdWVzdCBoYW5kbGVyLgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKTogRW5hYmxlIHRoZSBuZXcg
VXNlck1lZGlhCisgICAgICAgIHBlcm1pc3Npb24gcmVxdWVzdCBoYW5kbGVyLgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKTogRGl0dG8uCisg
ICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50
VmFsdWVzKTogRW5hYmxlCisgICAgICAgIE1lZGlhU3RyZWFtIHN1cHBvcnQsIHRoaXMgaXMgbmVl
ZGVkIGZvciBnZXRVc2VyTWVkaWEuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNl
dFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKTogY2xlYXIKKyAgICAgICAgVXNlck1lZGlhIHBlcm1p
c3Npb25zIGxpc3QgYW5kIGZsYWdzLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0
VXNlck1lZGlhUGVybWlzc2lvbik6IFNldCBwZXJtaXNzaW9uCisgICAgICAgIHJlcXVlc3QgcmVz
dWx0IGFuZCBkaXN0cGF0Y2ggaXQuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpoYW5k
bGVVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6IFNhdmUKKyAgICAgICAgcmVxdWVzdCBhbmQg
ZGlzcGF0Y2ggaXQuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUpOgorICAgICAgICBEaXNwYXRj
aCBjYWNoZWQgcGVybWlzc2lvbiByZXF1ZXN0cy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2Fn
ZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTQtMDgtMjggIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIHRlc3QgY2FzZSBmaWx0ZXIgc3Vw
cG9ydCBpbiBydW4tZ3RrLXRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Bs
YXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQpp
bmRleCAyM2EzNWRmLi5hYjhiM2E3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Bs
YXRmb3JtR1RLLmNtYWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21h
a2UKQEAgLTk3LDYgKzk3LDcgQEAgYWRkX2V4ZWN1dGFibGUoVGVzdFdlYktpdDIKICAgICAke1RF
U1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1Jlc2l6ZVdpbmRvd0FmdGVyQ3Jhc2guY3Bw
CiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9SZXN0b3JlU2Vzc2lvblN0
YXRlQ29udGFpbmluZ0Zvcm1EYXRhLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3Rz
L1dlYktpdDIvU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCisgICAgJHtURVNUV0VC
S0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCiAgICAgJHtURVNUV0VCS0lU
QVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2FnZS5jcHAKICAgICAke1RFU1RXRUJLSVRB
UElfRElSfS9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnQuY3BwCiAgICAgJHtURVNU
V0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9XS1BhZ2VHZXRTY2FsZUZhY3Rvck5vdFplcm8u
Y3BwCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYxZGNlNmIuLmU4ZDEwN2EgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC04OCw2ICs4OCw3IEBACiAJCTM3RTEwNjREMTY5NzZDODUwMEI3
OEJEMCAvKiBET01IVE1MVGFibGVDZWxsQ2VsbEFib3ZlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdFMTA2NEExNjk3Njc2NDAwQjc4QkQwIC8qIERP
TUhUTUxUYWJsZUNlbGxDZWxsQWJvdmUubW0gKi87IH07CiAJCTM3RTM4QzM0MTY5QjdEMDEwMDg0
QzI4QyAvKiBXZWJWaWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdFMzhDMzMxNjlCN0QwMTAwODRD
MjhDIC8qIFdlYlZpZXdEaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkubW0gKi87IH07CiAJCTQ0
MEExRDM5MTRBMDEwM0EwMDhBNjZGMiAvKiBVUkwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQwQTFEMzgxNEEwMTAzQTAwOEE2NkYyIC8qIFVSTC5j
cHAgKi87IH07CisJCTRBNDEwRjRDMTlBRjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVkaWEuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBGNEIxOUFG
N0JENjAwMkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgKi87IH07CiAJCTRCQjQxNjAyMTY4MTVCMjYw
MDgyNDIzOCAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCQjQxNjAxMTY4MTVCMjYwMDgyNDIzOCAv
KiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbSAqLzsgfTsKIAkJNEJCNDE2MDQxNjgxNUY5
MTAwODI0MjM4IC8qIEVsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCQjQxNjAzMTY4MTVGOTEwMDgyNDIzOCAv
KiBFbGVtZW50QXRQb2ludEluV2ViRnJhbWUubW0gKi87IH07CiAJCTRCRkRGRkE3MTMxNDc3NkMw
MDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJGREZGQTYxMzE0Nzc2QzAwNjFG
MjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi87IH07CkBAIC00MzAs
NiArNDMxLDggQEAKIAkJMzdFMzhDMzMxNjlCN0QwMTAwODRDMjhDIC8qIFdlYlZpZXdEaWRSZW1v
dmVGcmFtZUZyb21IaWVyYXJjaHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXZWJWaWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogVVJMLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ0QTYyMkMxMTRBMEUyQjYwMDQ4NTE1QiAvKiBXVEZTdHJpbmdV
dGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV1RGU3RyaW5nVXRp
bGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjRCMTlBRjdCRDYw
MDJFQkFCNSAvKiBVc2VyTWVkaWEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVXNlck1lZGlhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBG
NEQxOUFGN0JFRjAwMkVCQUI1IC8qIGdldFVzZXJNZWRpYS5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gZ2V0VXNlck1lZGlhLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTRCQjQxNjAxMTY4MTVCMjYwMDgyNDIzOCAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFt
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEpTV3JhcHBlckZv
ck5vZGVJbldlYkZyYW1lLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkI0MTYw
MzE2ODE1RjkxMDA4MjQyMzggLyogRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRWxlbWVudEF0UG9pbnRJbldlYkZyYW1l
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkZERkZBNjEzMTQ3NzZDMDA2MUYy
NEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03OTgsNiArODAxLDcgQEAKIAkJQkM5MDk2
NDExMjU1NjE2MDAwMDgzNzU2IC8qIFdlYktpdDIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjRCMTlBRjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVk
aWEuY3BwICovLAogCQkJCUMwQzVEM0JCMTQ1OThCNkYwMEE4MDJBNiAvKiBtYWMgKi8sCiAJCQkJ
QkM5MDk3N0IxMjU1NzFBRTAwMDgzNzU2IC8qIFJlc291cmNlcyAqLywKIAkJCQlCQzI0NkQ4QzEz
MkYxMTVBMDBCNTZEN0MgLyogQWJvdXRCbGFua0xvYWQuY3BwICovLApAQCAtOTI5LDYgKzkzMyw3
IEBACiAJCUJDOTA5NzdCMTI1NTcxQUUwMDA4Mzc1NiAvKiBSZXNvdXJjZXMgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjREMTlBRjdCRUYwMDJF
QkFCNSAvKiBnZXRVc2VyTWVkaWEuaHRtbCAqLywKIAkJCQlDMDQ1Rjk0NjEzODVDMkY4MDBDMEYz
Q0QgLyogMTgtY2hhcmFjdGVycy5odG1sICovLAogCQkJCUY2QjdCRTk2MTc0NjlCN0UwMDhBMzQ0
NSAvKiBhc3NvY2lhdGUtZm9ybS1jb250cm9scy5odG1sICovLAogCQkJCTc2RTE4MkRFMTU0NzVB
ODMwMEYxRkFERCAvKiBhdXRvLXN1Ym1pdHRpbmctZm9ybS5odG1sICovLApAQCAtMTMyOSw2ICsx
MzM0LDcgQEAKIAkJCQk1MUZDRjc5QTE1MzRBQzZEMDAxMDQ0OTEgLyogU2hvdWxkR29Ub0JhY2tG
b3J3YXJkTGlzdEl0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFGREU2NTYxOTUzQjJDMDAw
QzQ4RkZBIC8qIE9wdGlvbmFsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NDBGNzc2MTUyRTRE
QTAwMEE0MEM4QyAvKiBTaW1wbGlmeU1hcmt1cC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTRBNDEw
RjRDMTlBRjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVkaWEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QzAyQjc3RjIxMjY2MTIxNDAwMjZCRjBGIC8qIFNwYWNlYmFyU2Nyb2xsaW5nLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzRDNEMTlFMTdCMUE4NDIwMEM3QzQxNSAvKiBMYXlvdXRNaWxlc3RvbmVz
V2l0aEFsbENvbnRlbnRJbkZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOTRFMUJCMTc3
RTUxNDUwMDlDNEQ0RSAvKiBTdG9wTG9hZGluZ0Zyb21EaWRSZWNlaXZlUmVzcG9uc2UubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9Vc2VyTWVkaWEuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJN
ZWRpYS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRmNDc5MgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVk
aWEuY3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlh
IFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGll
cy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgIlRlc3QuaCIKKyNp
bmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNs
dWRlIDx2ZWN0b3I+CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKKworc3RhdGljIGJvb2wgZG9uZTsKKwordm9pZCBkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNrKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVm
IGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sK
KyAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocGVybWlzc2lvblJlcXVlc3Qp
OworICAgIGRvbmUgPSB0cnVlOworfQorCitURVNUKFdlYktpdDIsIFVzZXJNZWRpYUJhc2ljKQor
eworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRl
eHRDcmVhdGUoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7
CisgICAgV0tQYWdlVUlDbGllbnRWNSB1aUNsaWVudDsKKyAgICBtZW1zZXQoJnVpQ2xpZW50LCAw
LCBzaXplb2YodWlDbGllbnQpKTsKKworICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDU7Cisg
ICAgdWlDbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBk
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNrOworCisgICAg
V0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CisK
KyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsKEFkb3B0V0ssIFV0aWw6OmNyZWF0ZVVSTEZv
clJlc291cmNlKCJnZXRVc2VyTWVkaWEiLCAiaHRtbCIpKTsKKworICAgIGRvbmUgPSBmYWxzZTsK
KyAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOworCisgICAgVXRp
bDo6cnVuKCZkb25lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5lNTRmODUzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRpYS5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzxzY3Jp
cHQ+CitmdW5jdGlvbiBnb3RVc2VyTWVkaWEobWVkaWFTdHJlYW0pCit7CisgICAgY29uc29sZS5s
b2coIkdvdCB1c2VyIG1lZGlhIik7Cit9CisKK2Z1bmN0aW9uIHVzZXJNZWRpYUVycm9yKGVycm9y
KQoreworICAgIGNvbnNvbGUubG9nKGVycm9yKTsKK30KKwordmFyIG9wdGlvbnMgPSB7IGF1ZGlv
OiBmYWxzZSwgdmlkZW86IHRydWV9OworbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRp
b25zLCBnb3RVc2VyTWVkaWEsIHVzZXJNZWRpYUVycm9yKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVu
bmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwKaW5kZXggYmI5YTdhMC4uMDhhMTg5OCAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsCkBAIC0xNjksNiArMTY5LDkgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAg
IHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUg
bG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwg
b2JqZWN0IGFsdGl0dWRlLCBvcHRpb25hbCBvYmplY3QgYWx0aXR1ZGVBY2N1cmFjeSwgb3B0aW9u
YWwgb2JqZWN0IGhlYWRpbmcsIG9wdGlvbmFsIG9iamVjdCBzcGVlZCk7CiAgICAgdm9pZCBzZXRN
b2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoRE9NU3RyaW5nIGVycm9yTWVz
c2FnZSk7CiAKKyAgICAvLyBNZWRpYVN0cmVhbQorICAgIHZvaWQgc2V0VXNlck1lZGlhUGVybWlz
c2lvbihib29sZWFuIHZhbHVlKTsKKwogICAgIC8vIEF1ZGlvIHRlc3RpbmcuCiAgICAgW1Bhc3ND
b250ZXh0XSB2b2lkIHNldEF1ZGlvUmVzdWx0KG9iamVjdCBkYXRhKTsKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNw
cAppbmRleCA3YjFkZTcwLi4xYjZlYmQwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNDU4LDYgKzQ1
OCwxMyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVu
YXZhaWxhYmxlRXJyb3IoV0tTdHJpbmdSZWYgZXJybwogICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2Uo
bV9idW5kbGUsIG1lc3NhZ2VOYW1lLmdldCgpLCBlcnJvck1lc3NhZ2UpOwogfQogCit2b2lkIElu
amVjdGVkQnVuZGxlOjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wgZW5hYmxlZCkKK3sKKyAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFVzZXJNZWRpYVBlcm1pc3Npb24iKSk7CisgICAgV0tS
ZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9keShBZG9wdFdLLCBXS0Jvb2xlYW5DcmVh
dGUoZW5hYmxlZCkpOworICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UobV9idW5kbGUsIG1lc3NhZ2VO
YW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7Cit9CisKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6
OnNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZlKQog
ewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUiKSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmgKaW5kZXggOWY3NmE5ZC4uOGYwYTg0MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtOTIsNiAr
OTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3Vi
bGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBwcm92
aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgcHJvdmlkZXNBbHRpdHVkZUFjY3Vy
YWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRlc0hlYWRpbmcsIGRvdWJs
ZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVlZCk7CiAgICAgdm9pZCBz
ZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoV0tTdHJpbmdSZWYgZXJy
b3JNZXNzYWdlKTsKIAorICAgIC8vIE1lZGlhU3RyZWFtLgorICAgIHZvaWQgc2V0VXNlck1lZGlh
UGVybWlzc2lvbihib29sKTsKKwogICAgIC8vIFBvbGljeSBkZWxlZ2F0ZS4KICAgICB2b2lkIHNl
dEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZlKTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAKaW5kZXggZDA4NWYxYS4uZDc1MWI5NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC03MjAsNiArNzIwLDEy
IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJs
ZUVycm9yKEpTU3RyaW5nUmVmIG1lc3NhZ2UpCiAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
LnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihtZXNzYWdlV0suZ2V0
KCkpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldFVzZXJNZWRpYVBlcm1pc3Npb24oYm9vbCBl
bmFibGVkKQoreworICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBiZSBkb25lIGJ5IGZyYW1lLgor
ICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGVuYWJs
ZWQpOworfQorCiBib29sIFRlc3RSdW5uZXI6OmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldygpCiB7
CiAgICAgV0tCdW5kbGVGcmFtZVJlZiBtYWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJh
bWUoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggZTIx
ZmZmMy4uMzk0ZTkwOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTI1Miw2ICsyNTIsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25n
aXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgSlNWYWx1ZVJlZiBhbHRpdHVkZSwgSlNWYWx1ZVJlZiBh
bHRpdHVkZUFjY3VyYWN5LCBKU1ZhbHVlUmVmIGhlYWRpbmcsIEpTVmFsdWVSZWYgc3BlZWQpOwog
ICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKEpTU3Ry
aW5nUmVmIG1lc3NhZ2UpOwogCisgICAgLy8gTWVkaWFTdHJlYW0KKyAgICB2b2lkIHNldFVzZXJN
ZWRpYVBlcm1pc3Npb24oYm9vbCk7CisKICAgICB2b2lkIHNldFBhZ2VWaXNpYmlsaXR5KEpTU3Ry
aW5nUmVmIHN0YXRlKTsKICAgICB2b2lkIHJlc2V0UGFnZVZpc2liaWxpdHkoKTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCAzZmUzNzc5Li45YWRkOTZl
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTg4LDYg
KzE4OCwxMSBAQCBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgVwogICAgIFRlc3RDb250cm9sbGVyOjpz
aGFyZWQoKS5oYW5kbGVHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KHBlcm1pc3Npb25SZXF1
ZXN0KTsKIH0KIAorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5oYW5kbGVVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdChwZXJtaXNzaW9uUmVxdWVzdCk7Cit9CisKIGludCBUZXN0
Q29udHJvbGxlcjo6Z2V0Q3VzdG9tVGltZW91dCgpCiB7CiAgICAgcmV0dXJuIG1fdGltZW91dDsK
QEAgLTIwMiw4ICsyMDcsOCBAQCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVy
UGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXSwogCiAgICAgdmlldy0+
cmVzaXplVG8oODAwLCA2MDApOwogCi0gICAgV0tQYWdlVUlDbGllbnRWMiBvdGhlclBhZ2VVSUNs
aWVudCA9IHsKLSAgICAgICAgeyAyLCB2aWV3IH0sCisgICAgV0tQYWdlVUlDbGllbnRWNSBvdGhl
clBhZ2VVSUNsaWVudCA9IHsKKyAgICAgICAgeyA1LCB2aWV3IH0sCiAgICAgICAgIDAsIC8vIGNy
ZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMAogICAgICAgICAwLCAvLyBzaG93UGFn
ZQogICAgICAgICBjbG9zZU90aGVyUGFnZSwKQEAgLTI1MCw2ICsyNTUsMTEgQEAgV0tQYWdlUmVm
IFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJM
UmVxdWVzdFJlZiwgV0sKICAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAs
IC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAgICAwLCAvLyB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQKKyAgICAgICAgMCwgLy8gcGlubmVkU3RhdGVEaWRDaGFuZ2UKKyAgICAgICAgMCwg
Ly8gZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzCisgICAgICAgIDAsIC8v
IGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzCisgICAgICAgIDAsIC8vIGRpZENhbmNlbFRyYWNr
aW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MKKyAgICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QsCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQo
bmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xpZW50LmJhc2UpOwogCkBAIC00MDgsOCArNDE4LDggQEAg
dm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJn
dltdKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKFdLRGlj
dGlvbmFyeVJlZiBvcHRpb25zKQogewogICAgIG1fbWFpbldlYlZpZXcgPSBzdGQ6Om1ha2VfdW5p
cXVlPFBsYXRmb3JtV2ViVmlldz4obV9jb250ZXh0LmdldCgpLCBtX3BhZ2VHcm91cC5nZXQoKSwg
bnVsbHB0ciwgb3B0aW9ucyk7Ci0gICAgV0tQYWdlVUlDbGllbnRWMiBwYWdlVUlDbGllbnQgPSB7
Ci0gICAgICAgIHsgMiwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAorICAgIFdLUGFnZVVJQ2xpZW50
VjUgcGFnZVVJQ2xpZW50ID0geworICAgICAgICB7IDUsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwK
ICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCiAgICAg
ICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIDAsIC8vIGNsb3NlCkBAIC00NTYsNiArNDY2LDEx
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhXS0RpY3Rp
b25hcnlSZWYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAg
IDAsIC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNs
aWNrZWQsCisgICAgICAgIDAsIC8vIHBpbm5lZFN0YXRlRGlkQ2hhbmdlCisgICAgICAgIDAsIC8v
IGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcworICAgICAgICAwLCAvLyBk
aWRSZWNvZ25pemVMb25nTW91c2VQcmVzcworICAgICAgICAwLCAvLyBkaWRDYW5jZWxUcmFja2lu
Z1BvdGVudGlhbExvbmdNb3VzZVByZXNzCisgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1f
bWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVudC5iYXNlKTsKIApAQCAtNTQxLDYgKzU1
Niw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRW
YWx1ZXMoKQogICAgIFdLUHJlZmVyZW5jZXNTZXRGb250U21vb3RoaW5nTGV2ZWwocHJlZmVyZW5j
ZXMsIGtXS0ZvbnRTbW9vdGhpbmdMZXZlbE5vU3VicGl4ZWxBbnRpQWxpYXNpbmcpOwogICAgIFdL
UHJlZmVyZW5jZXNTZXRYU1NBdWRpdG9yRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwogICAg
IFdLUHJlZmVyZW5jZXNTZXRXZWJBdWRpb0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAg
IFdLUHJlZmVyZW5jZXNTZXRNZWRpYVN0cmVhbUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwog
ICAgIFdLUHJlZmVyZW5jZXNTZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHByZWZlcmVuY2VzLCB0
cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZChw
cmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkocHJlZmVyZW5jZXMsIHRydWUpOwpAQCAtNjM3LDYgKzY1Mywx
MSBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKCkK
ICAgICBtX2lzR2VvbG9jYXRpb25QZXJtaXNzaW9uU2V0ID0gZmFsc2U7CiAgICAgbV9pc0dlb2xv
Y2F0aW9uUGVybWlzc2lvbkFsbG93ZWQgPSBmYWxzZTsKIAorICAgIC8vIFJlc2V0IFVzZXJNZWRp
YSBwZXJtaXNzaW9ucy4KKyAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigp
OworICAgIG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uU2V0ID0gZmFsc2U7CisgICAgbV9pc1VzZXJN
ZWRpYVBlcm1pc3Npb25BbGxvd2VkID0gZmFsc2U7CisKICAgICAvLyBSZXNldCBDdXN0b20gUG9s
aWN5IERlbGVnYXRlLgogICAgIHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGZhbHNlLCBmYWxzZSk7
CiAKQEAgLTEzNDgsNiArMTM2OSwzNCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpoYW5kbGVHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUgogICAgIGRl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKCk7CiB9
CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFVzZXJNZWRpYVBlcm1pc3Npb24oYm9vbCBlbmFi
bGVkKQoreworICAgIG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uU2V0ID0gdHJ1ZTsKKyAgICBtX2lz
VXNlck1lZGlhUGVybWlzc2lvbkFsbG93ZWQgPSBlbmFibGVkOworICAgIGRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpOworfQorCit2b2lkIFRlc3RD
b250cm9sbGVyOjpoYW5kbGVVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KQoreworICAgIG1f
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLmFwcGVuZCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdCk7CisgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBv
c3NpYmxlKCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpCit7CisgICAgaWYgKCFtX2lzVXNlck1l
ZGlhUGVybWlzc2lvblNldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5zaXplKCk7ICsraSkgeworICAg
ICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0ID0g
bV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHNbaV0uZ2V0KCk7CisgICAgICAgIGlmIChtX2lz
VXNlck1lZGlhUGVybWlzc2lvbkFsbG93ZWQpCisgICAgICAgICAgICBXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0QWxsb3cocGVybWlzc2lvblJlcXVlc3QpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShwZXJtaXNzaW9uUmVxdWVz
dCk7CisgICAgfQorICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLmNsZWFyKCk7Cit9
CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5h
YmxlZCwgYm9vbCBwZXJtaXNzaXZlKQogewogICAgIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkID0g
ZW5hYmxlZDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBkOWJl
NzQ4Li41OWE3ZTg5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBA
IC04OCw2ICs4OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3Np
dGlvblVuYXZhaWxhYmxlRXJyb3IoV0tTdHJpbmdSZWYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lk
IGhhbmRsZUdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0UmVmKTsKIAorICAgIC8vIE1lZGlhU3RyZWFtLgorICAgIHZvaWQgc2V0VXNlck1l
ZGlhUGVybWlzc2lvbihib29sKTsKKyAgICB2b2lkIGhhbmRsZVVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOworCiAgICAgLy8gUG9saWN5
IGRlbGVnYXRlLgogICAgIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFibGVk
LCBib29sIHBlcm1pc3NpdmUpOwogCkBAIC0xMzMsNiArMTM3LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHVwZGF0ZUxheW91dFR5cGVGb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJik7CiAKICAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RJZlBvc3Np
YmxlKCk7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dElmUG9zc2libGUoKTsKIAogICAgIC8vIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50CiAg
ICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tDb250
ZXh0UmVmLCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5LCBj
b25zdCB2b2lkKik7CkBAIC0yMzcsNiArMjQyLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lz
R2VvbG9jYXRpb25QZXJtaXNzaW9uU2V0OwogICAgIGJvb2wgbV9pc0dlb2xvY2F0aW9uUGVybWlz
c2lvbkFsbG93ZWQ7CiAKKyAgICBWZWN0b3I8V0tSZXRhaW5QdHI8V0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFJlZj4+IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzOworICAgIGJvb2wg
bV9pc1VzZXJNZWRpYVBlcm1pc3Npb25TZXQ7CisgICAgYm9vbCBtX2lzVXNlck1lZGlhUGVybWlz
c2lvbkFsbG93ZWQ7CisKICAgICBib29sIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkOwogICAgIGJv
b2wgbV9wb2xpY3lEZWxlZ2F0ZVBlcm1pc3NpdmU7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggMzYzNzcwMy4uODdjNDZjNCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTQ3OCw2ICs0NzgsMTMgQEAgdm9pZCBU
ZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJp
bmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0VXNlck1lZGlhUGVybWlz
c2lvbiIpKSB7CisgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tC
b29sZWFuR2V0VHlwZUlEKCkpOworICAgICAgICBXS0Jvb2xlYW5SZWYgZW5hYmxlZFdLID0gc3Rh
dGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9s
bGVyOjpzaGFyZWQoKS5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKFdLQm9vbGVhbkdldFZhbHVlKGVu
YWJsZWRXSykpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKFdLU3RyaW5nSXNF
cXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSIp
KSB7CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9u
YXJ5R2V0VHlwZUlEKCkpOwogICAgICAgICBXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0
aW9uYXJ5ID0gc3RhdGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSk7Ci0tIAoy
LjEuMA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237494</attachid>
            <date>2014-09-02 09:22:24 -0700</date>
            <delta_ts>2014-09-02 09:24:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>93827</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBiMTFlMzRkZDc2MjgyOTkxMmE2NzI4MjE5ODliNjlmNzEwOTBkYThmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDIgU2VwIDIwMTQgMTE6NTY6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDE3ICsrKysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0
ZWQudHh0ICAgIHwgMTAgKysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0
bWwgICAgICAgICAgICB8IDMwICsrKysrKysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
c3VjY2Vzcy1leHBlY3RlZC50eHQgIHwgIDkgKysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL3N1Y2Nlc3MuaHRtbCAgICAgICAgICB8IDI3ICsrKysrKysKIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjIgKysrKysrCiAuLi4vTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCAgICAgICB8IDExICsrKwogLi4uL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggfCAgNyArKwogU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgfCAgNyArKwog
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA3NCAr
KysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oICAg
ICAgICAgICAgICAgfCAgMSArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggICAg
ICAgICAgICAgICAgICB8ICAxICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlD
bGllbnQuaCAgICAgICAgIHwgIDIgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oICAgICAgICAgfCAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcCAgICAgICAgICB8IDExICsrLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVVJQ2xpZW50LmggICAgfCA2OCArKysrKysrKysrKysrKysrCiAuLi4vQVBJL0Mv
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgICAgICAgICB8IDQwICsrKysrKysrKysK
IC4uLi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIHwgMzcg
KysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmggICAg
ICAgICB8ICAxICsKIC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgICAgIHwgNjMgKysrKysrKysrKysrKysrCiAuLi4vVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaCAgICAgICB8IDQ4ICsrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwICB8IDU0ICsrKysrKysrKysrKysKIC4u
Li9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICAgIHwgNTQgKysr
KysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgICAg
ICAgICAgfCAxNCArKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
ICAgICAgICAgICB8ICA3ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluICB8ICA1ICsrCiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogICB8IDQ0ICsrKysrKysrKysrCiAuLi4vVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcCAgICAgICAgICB8IDkyICsrKysrKysrKysrKysrKysrKysrKysK
IC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAgICAgICAgICAgIHwgNTgg
KysrKysrKysrKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3Bw
ICAgICAgICAgIHwgNTUgKysrKysrKysrKysrKwogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViVXNlck1lZGlhQ2xpZW50LmggfCA0NSArKysrKysrKysrKwogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwICAgICAgfCAxNCArKysrCiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oICAgICAgICB8IDEzICsrKwogLi4uL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gfCAgNSArKwogVG9v
bHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0NSArKysr
KysrKysrKwogVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZSAgICAgICAgICAg
ICAgfCAgMSArCiAuLi4vVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAg
ICAgICB8ICA2ICsrCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlh
LmNwcCAgICB8IDYzICsrKysrKysrKysrKysrKwogLi4uL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9nZXRVc2VyTWVkaWEuaHRtbCAgfCAxNCArKysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwgICAgICAgICB8ICAzICsKIC4uLi9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAgICAgICAgICAgICAgIHwgIDcgKysKIC4uLi9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5oICAgICAgICAgICAgICAgIHwgIDMgKwogLi4uL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgfCAgNiArKwogVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggfCAgMyArCiBUb29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCAgICAgICAgICB8IDU3ICsrKysrKysrKysr
KystCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggICAgICAgICAgICB8
ICA5ICsrKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgICAgICAg
ICAgfCAgNyArKwogNDcgZmlsZXMgY2hhbmdlZCwgMTE2NyBpbnNlcnRpb25zKCspLCA1IGRlbGV0
aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
ZXJyb3ItZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9lcnJvci5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9zdWNjZXNzLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01l
ZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2Vy
TWVkaWFDbGllbnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJN
ZWRpYS5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGM1MWI3OWEuLmJhYThjMmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBA
QAorMjAxNC0wOS0wMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW1dLMl0gVXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsZSBVc2VyTWVkaWEgcGVybWlzc2lv
biByZXF1ZXN0IHRlc3RzIGluc3BpcmVkIGZyb20gdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIHRl
c3Qgc3VpdGUuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9lcnJvci5qczogQWRkZWQu
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvc3VjY2Vzcy5qczogQWRk
ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWw6IEFkZGVkLgorCiAy
MDE0LTA5LTAyICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtDU1MgR3JpZCBMYXlvdXRdIFRlc3QgY292ZXJhZ2UgZm9yIGZpcnN0LWxpbmUgcHNl
dWRvLWVsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJy
b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTYyOWQyMjIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyBVc2VyTWVkaWEgZXJyb3IgY2FsbGJhY2sg
dXNpbmcgdGhlIG1vY2sgc2VydmljZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgZXJyb3IuY29kZSBpcyBlcnJvci5QRVJNSVNTSU9OX0RFTklFRAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
NTI4ZGJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9l
cnJvci5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3RzIFVzZXJNZWRpYSBlcnJvciBjYWxsYmFjayB1c2luZyB0aGUgbW9jayBzZXJ2aWNlLiIp
OworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uKGZhbHNlKTsKK2Vsc2UKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUg
cnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXInKTsKKwordmFyIGVycm9yOwordmFyIG9wdGlvbnMg
PSB7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9OworbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKKyAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNh
bGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBm
dW5jdGlvbihlKSB7CisgICAgZXJyb3IgPSBlOworICAgIHNob3VsZEJlKCdlcnJvci5jb2RlJywg
J2Vycm9yLlBFUk1JU1NJT05fREVOSUVEJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKwor
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZXJyb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIyM2ViYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0cyBVc2VyTWVkaWEgc3VjY2VzcyBjYWxsYmFj
ayB1c2luZyB0aGUgbW9jayBzZXJ2aWNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMDc4YzYxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIFVzZXJNZWRpYSBzdWNjZXNzIGNhbGxiYWNrIHVz
aW5nIHRoZSBtb2NrIHNlcnZpY2UuIik7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0
ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7CitlbHNlCisgICAgZGVidWco
J1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyJyk7CisKK3Zh
ciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07CituYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgeworICAgIGZpbmlzaEpTVGVz
dCgpOworfSwgZnVuY3Rpb24oZSkgeworICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGlu
dm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKword2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvc3VjY2Vzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNGZiZjVjYi4uODQ2NDgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI1IEBACisyMDE0LTA5LTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNv
bT4KKworICAgICAgICBbV0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZG9jdW1lbnQgYW5kIGZy
YW1lIGFjY2Vzc29ycywgbmVlZGVkIGJ5IHRoZQorICAgICAgICBVc2VyTWVkaWFSZXF1ZXN0TWFu
YWdlciBvZiB0aGUgV2ViUHJvY2Vzcy4gQWxzbyBhZGRlZCB0d28gbWV0aG9kcworICAgICAgICB1
c2VkIGJ5IHRoZSBwZXJtaXNzaW9uIHJlcXVlc3QgbWFuYWdlciB0byBrbm93IGlmIGFjY2VzcyB0
byBhdWRpbworICAgICAgICBvciB2aWRlbyBkZXZpY2VzIGlzIHJlcXVlc3RlZC4KKworICAgICAg
ICBUZXN0czogZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCisgICAgICAgICAgICAgICBmYXN0
L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVl
c3Q6OmRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmZyYW1l
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmF1ZGlvKToKKyAgICAgICAgKFdlYkNv
cmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnZpZGVvKToKKwogMjAxNC0wOS0wMSAgVGltIEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5kZXJUaGVtZU1hYzo6cGFp
bnRQcm9ncmVzc0JhciBjcmVhdGVzIGEgYnVmZmVyIHdpdGhvdXQgcmVzcGVjdGluZyB0aGUgZGVz
dGluYXRpb24ncyBhY2NlbGVyYXRpb24gc2V0dGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggZTQzOGQz
NS4uNzEwMGVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAi
RGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50c0lt
cGwuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2Vu
dGVyLmgiCkBAIC0xMDEsNiArMTAyLDE2IEBAIFVzZXJNZWRpYVJlcXVlc3Q6On5Vc2VyTWVkaWFS
ZXF1ZXN0KCkKIHsKIH0KIAorRG9jdW1lbnQqIFVzZXJNZWRpYVJlcXVlc3Q6OmRvY3VtZW50KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
OworfQorCitGcmFtZSogVXNlck1lZGlhUmVxdWVzdDo6ZnJhbWUoKSBjb25zdAoreworICAgIHJl
dHVybiBkb2N1bWVudCgpID8gZG9jdW1lbnQoKS0+ZnJhbWUoKSA6IG51bGxwdHI7Cit9CisKIFNl
Y3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1ZXN0OjpzZWN1cml0eU9yaWdpbigpIGNvbnN0CiB7
CiAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggYzgwYTZi
YS4uOGFlOGVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBEaWN0aW9uYXJ5OwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBGcmFtZTsK
IGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CiBjbGFz
cyBVc2VyTWVkaWFDb250cm9sbGVyOwpAQCAtNjIsMTAgKzYzLDE2IEBAIHB1YmxpYzoKIAogICAg
IFdFQkNPUkVfRVhQT1JUIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0Owog
CisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CisgICAgRnJhbWUqIGZyYW1lKCkgY29u
c3Q7CisKICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVk
aWFBY2Nlc3NHcmFudGVkKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nl
c3NEZW5pZWQoKTsKIAorICAgIGJvb2wgYXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29u
c3RyYWludHM7IH0KKyAgICBib29sIHZpZGVvKCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0NvbnN0
cmFpbnRzOyB9CisKIHByaXZhdGU6CiAgICAgVXNlck1lZGlhUmVxdWVzdChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgVXNlck1lZGlhQ29udHJvbGxlciosIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJh
aW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiB2aWRl
b0NvbnN0cmFpbnRzLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFj
az4sIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4pOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NN
YWtlTGlzdHMudHh0CmluZGV4IDRmMzkyM2QuLjA1YWRmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0
CkBAIC00OSw2ICs0OSw3IEBAIHNldChXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAi
JHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00iCiAgICAgIiR7V0VC
S0lUMl9ESVJ9L1dlYlByb2Nlc3MvTGF1bmNoaW5nIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL01lZGlhQ2FjaGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTWVkaWFT
dHJlYW0iCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTmV0d29yayIKICAgICAiJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIgogICAgICIke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL09yaWdpbkRhdGEiCkBAIC0zMDEsNiArMzAyLDggQEAgc2V0KFdlYktpdDJf
U09VUkNFUwogICAgIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAogICAgIFVJUHJv
Y2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21w
bGV0aW9uLmNwcAorICAgIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5jcHAKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5jcHAKICAgICBVSVByb2Nl
c3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2Vi
QmFja0ZvcndhcmRMaXN0LmNwcApAQCAtMzg5LDYgKzM5Miw3IEBAIHNldChXZWJLaXQyX1NPVVJD
RVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uU3RhdGVSZWYuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLVGV4dENoZWNrZXIuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlicmF0aW9uLmNwcAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5jcHAKIApAQCAtNDg1LDYgKzQ4
OSw4IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9X
ZWJNZWRpYUNhY2hlTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorCiAgICAgV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKICAgICBXZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAogICAgIFdlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5jcHAKQEAgLTUzNyw2ICs1NDMsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCiAgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCisgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGllbnQuY3BwCiAKICAgICBXZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDUzMjU2Zi4uNmM2NmRk
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDE0LTA5LTAxICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2VyTWVkaWFDbGll
bnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3VwcG9ydCBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgaW4gV2ViS2l0Mi4gSXQn
cworICAgICAgICBpbXBsZW1lbnRlZCBzaW1pbGFyaWx5IHRvIHRoZSBHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0CisgICAgICAgIHN1cHBvcnQuIFdoZW4gdGhlIFdlYlBhZ2UgcmVxdWlyZXMg
dGhpcyBwZXJtaXNzaW9uIGl0IHNlbmRzIGEKKyAgICAgICAgbWVzc2FnZSB0byB0aGUgVUkgcHJv
Y2VzcyB3aGljaCBhdCBzb21lIHBvaW50IGdyYW50cyBvciBkZW5pZXMgdGhlCisgICAgICAgIHBl
cm1pc3Npb24gYW5kIHNlbmRzIHRoZSByZXN1bHQgYmFjayB0byB0aGUgV2ViUHJvY2Vzcy4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBHZW5lcmljIENNYWtlIHN1cHBvcnQgZm9yIG5ldyBm
aWxlcy4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6IE5ldyB0eXBlIGZvciBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IERp
dHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDogUGVybWlzc2lvblJl
cXVlc3QgQVBJIG1hcHBpbmcuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5o
OiBOZXcgZGVjaWRlUG9saWN5IGhhbmRsZXIgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOiBEaXR0
by4KKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmg6IFdLUGFnZVVJQ2xpZW50IHZlcnNpb24gYnVtcCB0bwor
ICAgICAgICA1LCBpbmNsdWRpbmcgdGhlIG5ldyBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCBtZW1iZXIuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZCwgQyBBUEkKKyAgICAgICAgaW1wbGVtZW50
YXRpb24gb2YgdGhlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LgorICAgICAgICAoV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCk6CisgICAgICAgIChXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0QWxsb3cpOgorICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdERlbnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0Mu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwOiBBZGRlZCwgcHJveHkKKyAgICAgICAgb2JqZWN0IGZvciB0aGUgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RUeXBlLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3cp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52
YWxpZGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6Om1lZGlhUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlz
c2lvbkZvckZyYW1lKTogRGVmZXIKKyAgICAgICAgVXNlclBlcm1pc3Npb25SZXF1ZXN0IHRvIHRo
ZSBVSUNsaWVudC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjogTmV3IG1lc3NhZ2UgdG8gaGFu
ZGxlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZCwKKyAgICAgICAgV2Vi
UHJvY2VzcyBzaWRlIG9mIHRoZSBVc2VyUmVxdWVzdE1hbmFnZXIsIGtlZXBpbmcgdHJhY2sgb2Yg
ZWFjaAorICAgICAgICBwZXJtaXNzaW9uIHJlcXVlc3QuCisgICAgICAgIChXZWJLaXQ6OmdlbmVy
YXRlUmVxdWVzdElEKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdCk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2Fu
Y2VsUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2Vy
TWVkaWFDbGllbnQuY3BwOiBBZGRlZCwKKyAgICAgICAgV2ViUHJvY2VzcyBpbXBsZW1lbnRhdGlv
biBvZiB0aGUgV2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJV
c2VyTWVkaWFDbGllbnQ6OldlYlVzZXJNZWRpYUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlVzZXJNZWRpYUNsaWVudDo6cGFnZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVz
ZXJNZWRpYUNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJV
c2VyTWVkaWFDbGllbnQ6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2Vi
UGFnZSk6IENyZWF0ZSB0aGUKKyAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyIGFuZCByZWdpc3RlciB0aGUgVXNlck1lZGlhQ2xpZW50CisgICAgICAgIHRvIHRoZSBwYWdl
LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lv
bkRlY2lzaW9uKTogRGlzcGF0Y2gKKyAgICAgICAgZGVjaXNpb24gdG8gbWFuYWdlci4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjp1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBOZXcgTWVzc2FnZSB0byBoYW5kbGUK
KyAgICAgICAgcGVybWlzc2lvbiBkZWNpc2lvbiByZXN1bHQgZnJvbSB0aGUgVUkgcHJvY2Vzcy4K
KwogMjAxNC0wOS0wMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgR1RLIGJ1aWxkIGZpeCBhZnRlciByMTczMTYzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDhkMWU5NjUuLjExZWM1NDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTEyNyw2ICsxMjcsNyBAQCB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS1Byb3RlY3Rpb25TcGFjZSogV0tQcm90ZWN0aW9uU3BhY2VSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1RleHRDaGVja2VyKiBXS1RleHRDaGVja2Vy
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTZXNzaW9uKiBXS1Nlc3Npb25SZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Nlc3Npb25TdGF0ZSogV0tTZXNzaW9uU3Rh
dGVSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tWaWJyYXRpb24qIFdLVmlicmF0aW9uUmVmOwogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tWaWV3cG9ydEF0dHJpYnV0ZXMqIFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVm
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggNmRmNDkxOC4uMzExMmVlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtMTMyLDYgKzEzMiw3IEBAIHB1YmxpYzoKICAg
ICAgICAgUHJlZmVyZW5jZXMsCiAgICAgICAgIFNlc3Npb24sCiAgICAgICAgIFRleHRDaGVja2Vy
LAorICAgICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKICAgICAgICAgVmlicmF0aW9u
LAogICAgICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMsCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCAxY2ExNWUzLi5lZWJjZmJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNz
IEltbXV0YWJsZURpY3Rpb25hcnk7CiBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50OwogY2xh
c3MgTmF0aXZlV2ViV2hlZWxFdmVudDsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0OworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNsYXNzIFdlYkNv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CiBjbGFz
cyBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOwpAQCAtMTIyLDYgKzEyMyw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgYm9vbCBydW5PcGVuUGFuZWwoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJL
aXQ6OldlYkZyYW1lUHJveHkqLCBXZWJLaXQ6OldlYk9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJL
aXQ6OldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgV2ViS2l0
OjpXZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dFByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJL
aXQ6OldlYkZyYW1lUHJveHkqLCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luKiwgV2ViS2l0OjpV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qo
V2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luKiwgV2ViS2l0
OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCopIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICAvLyBQcmludGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aAppbmRleCA4MDIyMWE5Li41ZjQ0YTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCkBAIC02Myw2ICs2Myw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uRGVj
aXNpb25MaXN0ZW5lcjsKIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dDsKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xh
c3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKQEAgLTE0Niw2ICsxNDcsNyBAQCBXS19BRERfQVBJ
X01BUFBJTkcoV0tSZW5kZXJMYXllclJlZiwgV2ViUmVuZGVyTGF5ZXIpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tSZW5kZXJPYmplY3RSZWYsIFdlYlJlbmRlck9iamVjdCkKIFdLX0FERF9BUElfTUFQ
UElORyhXS1Nlc3Npb25TdGF0ZVJlZiwgQVBJOjpTZXNzaW9uU3RhdGUpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tUZXh0Q2hlY2tlclJlZiwgV2ViVGV4dENoZWNrZXIpCitXS19BRERfQVBJX01BUFBJ
TkcoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiwgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1ZpYnJhdGlvblJlZiwgV2ViVmlicmF0
aW9uUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYsIFdl
YlZpZXdwb3J0QXR0cmlidXRlcykKIFdLX0FERF9BUElfTUFQUElORyhXS0luc3BlY3RvclJlZiwg
V2ViSW5zcGVjdG9yUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCmluZGV4IDNjMDA2YmMuLjMzNmY2MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVu
dFRyYWl0czxXS1BhZ2VQb2xpY3lDbGllbnRCYXNlPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBDbGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1
cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIs
IFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQ+IFZlcnNpb25zOworICAgIHR5cGVk
ZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VV
SUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNs
aWVudFY1PiBWZXJzaW9uczsKIH07CiAKIH0KQEAgLTE0OTcsNiArMTQ5NywxNSBAQCB2b2lkIFdL
UGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGll
bnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAor
ICAgICAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgV2ViU2VjdXJp
dHlPcmlnaW4qIG9yaWdpbiwgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIHBlcm1p
c3Npb25SZXF1ZXN0KSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xp
ZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwg
dG9BUEkob3JpZ2luKSwgdG9BUEkocGVybWlzc2lvblJlcXVlc3QpLCBtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvblJlcXVlc3QpIG92ZXJyaWRlCiAgICAg
ICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VVSUNsaWVudC5oCmluZGV4IDQwMzc3ZDYuLmExZWEwZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCkBAIC04OSw2ICs4OSw3
IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2spKFdL
UGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRCZWdp
blRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2Us
IFdLUG9pbnQgbW91c2VEb3duUG9zaXRpb24sIFdLSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVz
dWx0LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRl
ZiB2b2lkICgqV0tQYWdlRGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3NDYWxsYmFjaykoV0tQYWdl
UmVmIHBhZ2UsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0
eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVBy
ZXNzQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVS
ZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
IAogLy8gRGVwcmVjYXRlZCAgICAKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3
UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0Rp
Y3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50
TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMzc2
LDYgKzM3Nyw3MyBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFY0IHsKICAgICBXS1Bh
Z2VEaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzQ2FsbGJhY2sgICAgICAg
ICAgICAgIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3M7CiB9IFdLUGFn
ZVVJQ2xpZW50VjQ7CiAKK3R5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjUgeworICAgIFdL
UGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQ
YWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNyZWF0
ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdl
OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xvc2U7CisgICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlRm9jdXM7CisgICAg
V0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmb2N1czsKKyAgICBXS1BhZ2VVbmZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZm9jdXM7CisgICAgV0tQYWdlUnVu
SmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmly
bTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tQYWdlU2V0U3Rh
dHVzVGV4dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZXRTdGF0dXNUZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tl
ZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgIG1pc3NpbmdQbHVnaW5CdXR0b25D
bGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlS2V5
RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5k
bGVLZXlFdmVudDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2ZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ7CisgICAg
V0tQYWdlR2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlU2V0VG9vbGJhcnNBcmVW
aXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUb29sYmFy
c0FyZVZpc2libGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFn
ZVNldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRTdGF0dXNCYXJJc1Zpc2li
bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0JhcklzVmlz
aWJsZTsKKyAgICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VH
ZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlzUmVzaXphYmxlOworICAgIFdLUGFnZVNldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNSZXNpemFibGU7CisgICAgV0tQ
YWdlR2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VTZXRXaW5kb3dGcmFtZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdpbmRvd0ZyYW1lOwor
ICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOworICAgIFdLUGFnZVVJ
Q2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkRHJhdzsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEaWRTY3JvbGw7CisgICAgV0tQYWdlRXhj
ZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBleGNlZWRlZERhdGFiYXNlUXVvdGE7CisgICAgV0tQYWdlUnVuT3BlblBhbmVsQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5PcGVuUGFuZWw7Cisg
ICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxi
YWNrICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
OworICAgIFdLUGFnZUhlYWRlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0OworICAgIFdLUGFnZUZvb3RlckhlaWdodENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9vdGVySGVp
Z2h0OworICAgIFdLUGFnZURyYXdIZWFkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZHJhd0hlYWRlcjsKKyAgICBXS1BhZ2VEcmF3Rm9vdGVyQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdGb290
ZXI7CisgICAgV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcmludEZyYW1lOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuTW9kYWw7
CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2VkIHRvIGJlIGRpZENvbXBsZXRlUnViYmVy
QmFuZEZvck1haW5GcmFtZQorICAgIFdLUGFnZVNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xk
ZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fk
c0ZvbGRlcjsKKyAgICBXS1BhZ2VTaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQ7CisKKyAg
ICAvLyBWZXJzaW9uIDEuCisgICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlOworICAgIFdLUGFn
ZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9y
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNpZGVQb2xp
Y3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxIHVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworCisgICAg
Ly8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOworICAgIFdLUGFn
ZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGlkZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkOworICAgIAorICAgIC8vIFZlcnNpb24gMy4KKyAgICBXS1BhZ2VQaW5uZWRT
dGF0ZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBp
bm5lZFN0YXRlRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA0LgorICAgIFdLUGFnZURpZEJl
Z2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzc0NhbGxiYWNrICAgICAgICAgICAgICAg
ZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzOworICAgIFdLUGFnZURpZFJl
Y29nbml6ZUxvbmdNb3VzZVByZXNzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3M7CisgICAgV0tQYWdlRGlkQ2FuY2VsVHJhY2tpbmdQ
b3RlbnRpYWxMb25nTW91c2VQcmVzc0NhbGxiYWNrICAgICAgICAgICAgICBkaWRDYW5jZWxUcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzOworCisgICAgLy8gVmVyc2lvbiA1LgorICAgIFdL
UGFnZURlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAg
ICAgICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q7Cit9IFdL
UGFnZVVJQ2xpZW50VjU7CisKIGVudW0geyBrV0tQYWdlVUlDbGllbnRDdXJyZW50VmVyc2lvbiBX
S19FTlVNX0RFUFJFQ0FURUQoIlVzZSBhbiBleHBsaWNpdCB2ZXJzaW9uIG51bWJlciBpbnN0ZWFk
IikgPSAyIH07CiB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudCB7CiAgICAgaW50ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2ZXJzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjA1ZmQzZTYyOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwKKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICog
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv
biwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQSShVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjpBUElUeXBlKTsKK30KKwordm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFJlZikKK3sKKyAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RSZWYpLT5hbGxvdygpOworfQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RE
ZW55KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RSZWYpCit7CisgICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+
ZGVueSgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNTQ1ZDMxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTAsMCAr
MSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw
MjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RfaAorI2RlZmluZSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gKKworI2luY2x1ZGUg
PFdlYktpdC9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNl
bmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdl
dFR5cGVJRCgpOworCitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CitXS19FWFBPUlQgdm9pZCBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UmVmKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dlYktpdDJfQy5oCmluZGV4IDVhNzEyY2QuLmUzMmJhY2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmgKQEAgLTU3LDYgKzU3LDcgQEAKICNpbmNs
dWRlIDxXZWJLaXQvV0tVUkwuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tVUkxSZXF1ZXN0Lmg+CiAj
aW5jbHVkZSA8V2ViS2l0L1dLVVJMUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oPgogCiAjaWYgZGVmaW5lZChfX09CSkNfXykgJiYgX19P
QkpDX18KICNpbXBvcnQgPFdlYktpdC9XS1ZpZXcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5N2U1OTUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5
JiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1ZXN0cygpCit7CisgICAgZm9y
IChhdXRvJiByZXF1ZXN0IDogbV9wZW5kaW5nUmVxdWVzdHMudmFsdWVzKCkpCisgICAgICAgIHJl
cXVlc3QtPmludmFsaWRhdGUoKTsKKworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmNsZWFyKCk7Cit9
CisKK1Bhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNl
ck1lZGlhSUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pCit7CisgICAgUmVmUHRyPFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHJlcXVlc3QgPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjpjcmVhdGUoKnRoaXMsIHVzZXJNZWRpYUlELCBhdWRpbywgdmlkZW8pOworICAg
IG1fcGVuZGluZ1JlcXVlc3RzLmFkZCh1c2VyTWVkaWFJRCwgcmVxdWVzdC5nZXQoKSk7CisgICAg
cmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpCit7CisgICAgaWYgKCFtX3BhZ2Uu
aXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fcGVuZGluZ1JlcXVlc3Rz
LnRha2UodXNlck1lZGlhSUQpKQorICAgICAgICByZXR1cm47CisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlk
UmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1c2VyTWVkaWFJRCwgYWxsb3dlZCks
IG1fcGFnZS5wYWdlSUQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKKyNl
bmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWExNzEzYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0
ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisK
KyNpZm5kZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaAorI2RlZmlu
ZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3Mg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgeworcHVibGljOgorICAgIGV4
cGxpY2l0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94
eSYpOworCisgICAgdm9pZCBpbnZhbGlkYXRlUmVxdWVzdHMoKTsKKworICAgIC8vIENyZWF0ZSBh
IHJlcXVlc3QgdG8gYmUgcHJlc2VudGVkIHRvIHRoZSB1c2VyLgorICAgIFBhc3NSZWZQdHI8VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2Vy
TWVkaWFJRCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbyk7CisKKyAgICAvLyBDYWxsZWQgYnkgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSB3aGVuIGEgZGVjaXNpb24gaXMgbWFkZSBieSB0
aGUgdXNlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24o
dWludDY0X3QsIGJvb2wgYWxsb3cpOworCitwcml2YXRlOgorICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gbV9wZW5kaW5nUmVxdWVz
dHM7CisgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kMTRlNWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmgiCisKKyNpbmNsdWRlICJBUElOdW1iZXIuaCIKKyNpbmNsdWRlICJV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBib29sIGF1ZGlvLCBib29sIHZpZGVvKQorICAgIDogbV9tYW5hZ2VyKG1hbmFnZXIp
CisgICAgLCBtX3VzZXJNZWRpYUlEKHVzZXJNZWRpYUlEKQoreworICAgIEhhc2hNYXA8U3RyaW5n
LCBSZWZQdHI8QVBJOjpPYmplY3Q+PiBwYXJhbWV0ZXJzTWFwOworICAgIHBhcmFtZXRlcnNNYXAu
c2V0KCJhdWRpbyIsIEFQSTo6Qm9vbGVhbjo6Y3JlYXRlKGF1ZGlvKSk7CisgICAgcGFyYW1ldGVy
c01hcC5zZXQoInZpZGVvIiwgQVBJOjpCb29sZWFuOjpjcmVhdGUodmlkZW8pKTsKKyAgICBtX21l
ZGlhUGFyYW1ldGVycyA9IEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUocGFy
YW1ldGVyc01hcCkpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OmFsbG93KCkKK3sKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25E
ZWNpc2lvbihtX3VzZXJNZWRpYUlELCB0cnVlKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjpkZW55KCkKK3sKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJN
ZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCBmYWxzZSk7Cit9CisKK3ZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSgpCit7CisgICAgbV9t
YW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZjA0NzI3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisg
Ki8KKworI2lmbmRlZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKKyNkZWZpbmUg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eV9oCisKKyNpbmNsdWRlICJBUElPYmplY3Qu
aCIKKyNpbmNsdWRlICJJbW11dGFibGVEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29s
IGF1ZGlvLCBib29sIHZpZGVvKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYUlELCBhdWRp
bywgdmlkZW8pKTsKKyAgICB9CisKKyAgICB2b2lkIGFsbG93KCk7CisgICAgdm9pZCBkZW55KCk7
CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKworICAgIFBhc3NSZWZQdHI8SW1tdXRhYmxlRGlj
dGlvbmFyeT4gbWVkaWFQYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVBhcmFtZXRl
cnM7IH0KKworcHJpdmF0ZToKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNlck1lZGlh
SUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pOworCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkmIG1fbWFuYWdlcjsKKyAgICB1aW50NjRfdCBtX3VzZXJNZWRpYUlE
OworICAgIFJlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBtX21lZGlhUGFyYW1ldGVyczsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IDRmYjcxNDAuLjFmZDFhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiUHJpbnRJbmZvLmgiCiAj
aW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCisj
aW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgogI2luY2x1ZGUgIldL
Q29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKICNpbmNs
dWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCkBAIC0yODAsNiArMjgxLDcgQEAgV2ViUGFn
ZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1By
b3h5JiBwcm9jZXNzLCB1aW4KICNlbmRpZgogICAgICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcigqdGhpcykKICAgICAsIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKCp0aGlzKQorICAgICwgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIoKnRoaXMpCiAgICAgLCBtX3ZpZXdTdGF0ZShWaWV3U3RhdGU6Ok5vRmxhZ3MpCiAgICAgLCBt
X3ZpZXdXYXNFdmVySW5XaW5kb3coZmFsc2UpCiAgICAgLCBtX2JhY2tGb3J3YXJkTGlzdChXZWJC
YWNrRm9yd2FyZExpc3Q6OmNyZWF0ZSgqdGhpcykpCkBAIC00NjU1LDYgKzQ2NTcsMTggQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50
NjRfdCBnZW9sb2NhdGlvbklELAogICAgIHJlcXVlc3QtPmRlbnkoKTsKIH0KIAordm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNl
ck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBib29s
IGF1ZGlvLCBib29sIHZpZGVvKQoreworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9j
ZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBNRVNTQUdFX0NIRUNLKGZyYW1lKTsKKworICAg
IFJlZlB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcihvcmlnaW5J
ZGVudGlmaWVyKSk7CisgICAgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+
IHJlcXVlc3QgPSBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcmVhdGVSZXF1
ZXN0KHVzZXJNZWRpYUlELCBhdWRpbywgdmlkZW8pOworCisgICAgaWYgKCFtX3VpQ2xpZW50LT5k
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0aGlzLCBmcmFtZSwgb3Jp
Z2luLmdldCgpLCByZXF1ZXN0LmdldCgpKSkKKyAgICAgICAgcmVxdWVzdC0+ZGVueSgpOworfQor
CiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0
X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBpZiAoIWlz
UmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCBiZGY2OGJmLi5mY2ZjMTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9j
ZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRl
ICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8u
aCIKICNpbmNsdWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlICJXS1BhZ2VQcml2YXRlLmgiCkBAIC0x
MjQsNiArMTI1LDcgQEAgY2xhc3MgRHJhZ0RhdGE7CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBH
cmFwaGljc0xheWVyOwogY2xhc3MgSW50U2l6ZTsKK2NsYXNzIE1lZGlhQ29uc3RyYWludHNJbXBs
OwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUnVuTG9vcE9ic2VydmVyOwogY2xhc3Mg
U2hhcmVkQnVmZmVyOwpAQCAtMTAzMSw2ICsxMDMzLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGV4
Y2VlZGVkRGF0YWJhc2VRdW90YSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdp
bklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRp
c3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5V
c2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNh
Z2UsIFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1
b3RhOjpEZWxheWVkUmVwbHk+KTsKICAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50
UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIFBhc3NSZWZQdHI8TWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YTo6RGVsYXllZFJl
cGx5Pik7CiAgICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50
aWZpZXIpOworCisgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVp
bnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRp
ZmllciwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbyk7CisKICAgICB2b2lkIHJ1bk1vZGFsKCk7CiAg
ICAgdm9pZCBub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKTsKICAgICB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2Uo
aW50MzJfdCBuZXdTdHlsZSk7CkBAIC0xMzY3LDYgKzEzNzIsOCBAQCBwcml2YXRlOgogICAgIEdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9nZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjsKICAgICBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIAorICAg
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOworCiAgICAgV2ViQ29yZTo6Vmlld1N0YXRlOjpGbGFncyBtX3Zp
ZXdTdGF0ZTsKICAgICBib29sIG1fdmlld1dhc0V2ZXJJbldpbmRvdzsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNGE2ZmQ1
Ny4uZThhNWJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yNTYsNiArMjU2LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAgICAgIyBHZW9sb2NhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3RHZW9sb2NhdGlv
blBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFt
ZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICAKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorICAgICMgTWVkaWFTdGVhbSBtZXNzYWdlcworICAgIFJlcXVlc3RVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0
cmluZyBvcmlnaW5JZGVudGlmaWVyLCBib29sIGF1ZGlvLCBib29sIHZpZGVvKQorI2VuZGlmCisK
ICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3ROb3RpZmljYXRpb25QZXJt
aXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiAgICAg
U2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUsIFN0cmluZyBib2R5LCBTdHJpbmcgaWNvblVS
TCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmcsIFN0cmluZyBkaXIsIFN0cmluZyBvcmlnaW5JZGVu
dGlmaWVyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjOTBkNzc1Li40OTU2NDg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC03ODgsNiArNzg4LDE0IEBACiAJCTNGODg5RDE0MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg4OUQxMjE4ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tICovOyB9OwogCQkzRjg4OUQxNTE4ODc3OEM5MDBGRUFE
QUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg4OUQxMzE4ODc3OEM5MDBGRUFEQUYgLyog
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi87IH07CiAJCTNGODg5RDE3MTg4Nzg1
OTMwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMEQxODg3Njk5QzAwRkVBREFG
IC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gKi87IH07CisJCTRBM0NDMThBMTlCMDYz
RTcwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEYzOTE5
QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwICovOyB9OworCQk0QTNDQzE4QjE5QjA2NDBGMDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNBMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovOyB9OworCQk0QTNDQzE4QzE5QjA2NDE1MDBE
MTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEYzQjE5QUY3QjA0MDAyRUJB
QjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgKi87IH07CisJCTRBM0ND
MThEMTlCMDY0MTkwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEYzQzE5
QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICovOyB9
OworCQk0QTNDQzE4RTE5QjA3Qjg1MDBEMTRBRUYgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
QTQxMEYzNTE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5j
cHAgKi87IH07CisJCTRBM0NDMThGMTlCMDdCOEEwMEQxNEFFRiAvKiBXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0QTQxMEYzNjE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTRBNDEwRjQ0MTlBRjdCMjcwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEE0MTBGNDIxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAgKi87IH07CisJCTRBNDEwRjRBMTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVk
aWFDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNEE0MTBGNDgxOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgKi87
IH07CiAJCTRGNjAxNDMyMTU1QzVBQTIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjYwMTQzMDE1
NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICovOyB9OwogCQk1MTAyMUU5
QzEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAyMUU5QjEyQjE2Nzg4MDA1
QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi87IH07CiAJCTUxMDI3NDMyMTk4
MUFGOEUwMDgxNjVFRCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCQTE4MDYyQjlDMDA0NkY2QTggLyog
V0tPcmlnaW5EYXRhTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0yNzk5LDYgKzI4MDcsMTYgQEAKIAkJM0Y4ODlEMTIxODg3NzhDOTAw
RkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5tbTsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODg5RDEzMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg7IHBhdGggPSBpb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTNGODg5RDE2MTg4NzdBMjQwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluOyBwYXRoID0gaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGMzUxOUFGN0FDMzAwMkVC
QUI1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjM2MTlBRjdBQzMwMDJFQkFCNSAvKiBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNEE0MTBGMzkxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGM0ExOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjNCMTlBRjdCMDQwMDJFQkFCNSAvKiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzQzE5QUY3QjA0MDAyRUJBQjUgLyogVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTRBNDEwRjQyMTlBRjdCMjcwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGNDMxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNEE0MTBGNDgxOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJVc2VyTWVkaWFD
bGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEY0OTE5QUY3Qjgw
MDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYlVzZXJNZWRpYUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja2luZ1Jlc3BvbnNlTWFwLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBT
ZWNJdGVtU2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZp
bGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0
aCA9IFNlY0l0ZW1TaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb250ZXh0TWVu
dUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxNDMsNiArNTE2
MSwxNSBAQAogCQkJcGF0aCA9IENvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJ
fTsKKwkJNEE0MTBGNDExOUFGN0IyNzAwMkVCQUI1IC8qIE1lZGlhU3RyZWFtICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEY0MjE5QUY3QjI3MDAy
RUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCAqLywKKwkJCQk0
QTQxMEY0MzE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmggKi8sCisJCQkpOworCQkJcGF0aCA9IE1lZGlhU3RyZWFtOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNTYwMSw2ICs1
NjI4LDcgQEAKIAkJQkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8qIFdlYlByb2Nlc3MgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjQxMTlBRjdC
MjcwMDJFQkFCNSAvKiBNZWRpYVN0cmVhbSAqLywKIAkJCQk1MTJFMzUyQTEzMEI1NTk5MDBBQkQx
OUEgLyogQXBwbGljYXRpb25DYWNoZSAqLywKIAkJCQk3QzZFNzBGODE4QjJENDdFMDBGMjRFMkUg
LyogY29jb2EgKi8sCiAJCQkJMzMwOTM0NEIxMzE1QjkzQTAwOTdBN0JDIC8qIENvb2tpZXMgKi8s
CkBAIC01NjM4LDYgKzU2NjYsOCBAQAogCQlCQzAzMkQ1RDEwRjQzNzIyMDA1OEMxNUEgLyogV2Vi
Q29yZVN1cHBvcnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCTRBNDEwRjQ4MTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVkaWFDbGllbnQuY3BwICov
LAorCQkJCTRBNDEwRjQ5MTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVkaWFDbGllbnQuaCAq
LywKIAkJCQkyRDI4RjNERjE4ODVDQ0I0MDA0QjlFQUUgLyogaW9zICovLAogCQkJCUJDMTExQURF
MTEyRjVCOUEwMDMzN0JBQiAvKiBtYWMgKi8sCiAJCQkJMUE3Mjg0NDQxOTU5RUQxMDAwMDdCQ0U1
IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICovLApAQCAtNTc0MSw2ICs1NzcxLDEwIEBA
CiAJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1QSAvKiBVSVByb2Nlc3MgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjM5MTlBRjdCMDQwMDJFQkFC
NSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJ
NEE0MTBGM0ExOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmggKi8sCisJCQkJNEE0MTBGM0IxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwICovLAorCQkJCTRBNDEwRjNDMTlBRjdCMDQwMDJF
QkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi8sCiAJCQkJMkRBOTQ0
QTgxODg0RTlBQjAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQlCQzAzMkRDNDEwRjQzODdDMDA1OEMx
NUEgLyogQVBJICovLAogCQkJCTUxMkY1ODhEMTJBODgzNkYwMDYyOTUzMCAvKiBBdXRoZW50aWNh
dGlvbiAqLywKQEAgLTU5MTEsNiArNTk0NSw4IEBACiAJCUJDMEMzNzY2MTBGODA3NjYwMDc2RDdD
QiAvKiBDICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0
QTQxMEYzNTE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5j
cHAgKi8sCisJCQkJNEE0MTBGMzYxOUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaCAqLywKIAkJCQk1MTIzQ0YxODEzM0QyNUU2MDA1NkY4MDAgLyogY2cgKi8s
CiAJCQkJNkVFODQ5QzQxMzY4RDkwNDAwMzhENDgxIC8qIG1hYyAqLywKIAkJCQlCQ0I2MzQ3NzEx
NkJGMTA2MDA2MDMyMTUgLyogV2ViS2l0Ml9DLmggKi8sCkBAIC03MTM3LDYgKzcxNzMsNyBAQAog
CQkJCTFBQTQxQUI1MTJDMDJFQzQwMDJCRTY3QiAvKiBFZGl0b3JTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTFCMTVBODUxMzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25tZW50VXRpbGl0aWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTdDNkNEQjEzNzg5NTA4MDBCOUMwNEQgLyogRW52aXJv
bm1lbnRWYXJpYWJsZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTRBM0NDMThGMTlCMDdCOEEwMEQx
NEFFRiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUE1NzVGQjE0OTZCNTI2MDBBNEVFMDYgLyogRXZlbnREaXNwYXRjaGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQTkwQzFGNDEyNjRGRDcxMDAzRTQ0RDQgLyogRmluZENvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBOTEwMDcxMTI2Njc1QzQwMDE4NDJGNSAvKiBGaW5kSW5kaWNh
dG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTc1NDcsNiArNzU4NCw3IEBACiAJCQkJNTE4MzUzREIx
ODg1QkY4QzAwRDlGRTQ0IC8qIElEQlNlcmlhbGl6YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBREY1OTFCMTg5MDUyOEUwMDQzQzE0NSAvKiBXS1dlYlZpZXdDb25maWd1cmF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzU3NDRGMDEyNjM4RkIzMDA2RjBGMTIgLyogV2ViUG9wdXBJdGVt
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTNDQzE4RDE5QjA2NDE5MDBEMTRBRUYgLyogVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDNCOTQ4NDcx
MUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1
NzRFNjMxMjY3RDA4MDAwNkYwRjEyIC8qIFdlYlBvcHVwTWVudVByb3h5LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3QzhFQjExNzE4REI2QTE5MDA3OTE3QzIgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aCBpbiBIZWFkZXJzICovLApAQCAtNzU3NCw2ICs3NjEyLDcgQEAKIAkJCQkzNzYwODgxRjE1MDQx
M0U5MDBGQzgyQzcgLyogV2ViUmVuZGVyT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTIx
NzQ2NTE2NEMyMTM3MDAzN0E1QzEgLyogV2ViUmVzb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMzMzY3NjMwMTMwQzk5OTgwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEEzQ0MxOEIxOUIwNjQwRjAwRDE0QUVGIC8qIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUFGMDg5QjE5MjY3RUU1MDBCNjM5MEMgLyogV0tVc2VyU2NyaXB0LmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMzM2NzY1NjEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBOTQ0QTQxODg0RTRGMDAwRUQ4NkRCIC8q
IEdlc3R1cmVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjYyLDcgKzg3MDEsOSBAQAogCQkJ
aXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgz
NjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJNEE0MTBGNDQxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzVE
MjRBMTE2Q0MzQjlFMDA3RDU0NjEgLyogQ2hpbGRQcm9jZXNzTWFpbi5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTRBNDEwRjRBMTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVkaWFDbGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC05MDUxLDYgKzkwOTIsNyBAQAogCQkJCTFBMEYyOUUzMTIwQjQ0
NDIwMDUzRDFCOSAvKiBWaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUExREY2MzEyMThFMEI3QzgwMDNBM0UyQSAvKiBEb3dubG9hZENsaWVudC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBMEYyOUNCMTIwQjM3MTYwMDUzRDFCOSAvKiBWaXNpdGVkTGlua1RhYmxlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTRBM0NDMThBMTlCMDYzRTcwMEQxNEFFRiAvKiBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QUMxMzM3RjE4NTkwQUU0MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDRURBMTJFMjE1MkNEMUFFMDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVU
ZXh0Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMkUzNTJFMTMwQjU1QUYwMEFCRDE5
QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTkx
NzMsNiArOTIxNSw3IEBACiAJCQkJNTE4MzQ1OTIxMzQ1MzJFOTAwOTJCNjk2IC8qIFdlYkljb25E
YXRhYmFzZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQwMkY2NDEzMkVDNUI5MDBC
RUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUM1NzE5M0JFMThDMTRBNDQwMDJEMEYxMiAvKiBXS0Zvcm1TZWxlY3RDb250cm9sLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJNEEzQ0MxOEUxOUIwN0I4NTAwRDE0QUVGIC8qIFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRERjczMTYxOEU5
NTA2MDAwNEY1QTY2IC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTUxMUIyNEE2MTMyRTA5NTcwMDA2NUEwQyAvKiBXZWJJY29uRGF0YWJh
c2VQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQwMkY2QjEzMkVDNzM3MDBCRUFBOTYg
LyogV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC05MzM2LDYgKzkzNzksNyBAQAogCQkJCUJDNDA3NjI4MTI0RkYwNDAwMDY4RjIwQSAvKiBX
S0NlcnRpZmljYXRlSW5mb01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNUU3NzI3MTgzREQ2
RjYwMDA3MjAzRiAvKiBBc3luY1JlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBMjg0
RDYxNDkyRjJDNzAwMUY5MDQyIC8qIFdLQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTRBM0NDMThDMTlCMDY0MTUwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMEMzNjU4MThDMDUxQkEwMEY2MDdENyAvKiBS
ZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYwQzM2NUMxOEMw
NUNBMTAwRjYwN0Q3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0gaW4g
U291cmNlcyAqLywKIAkJCQlCQzRBNjI5NjE0NzMxM0EwMDA2QzY4MUEgLyogV0tDb25uZWN0aW9u
UmVmLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJl
NmQ3YWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlh
U3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTAsMCArMSw5
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIx
MTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkZy
YW1lLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVJlcXVlc3RJRCgpCit7
CisgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVJlcXVlc3RJRCA9IDE7CisgICAgcmV0dXJuIHVu
aXF1ZVJlcXVlc3RJRCsrOworfQorCitVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJiBwYWdlKQorICAgIDog
bV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyOjpzdGFydFJlcXVlc3QoUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBwcnBSZXF1ZXN0
KQoreworICAgIFJlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0KHBycFJlcXVlc3QpOwor
ICAgIEZyYW1lKiBmcmFtZSA9IHJlcXVlc3QtPmZyYW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsK
KyAgICBpZiAoIWZyYW1lKSB7CisgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0Rlbmll
ZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdWludDY0X3QgcmVxdWVzdElEID0g
Z2VuZXJhdGVSZXF1ZXN0SUQoKTsKKyAgICBtX2lkVG9SZXF1ZXN0TWFwLnNldChyZXF1ZXN0SUQs
IHJlcXVlc3QpOworICAgIG1fcmVxdWVzdFRvSURNYXAuc2V0KHJlcXVlc3QsIHJlcXVlc3RJRCk7
CisKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJh
bWUpOworICAgIEFTU0VSVCh3ZWJGcmFtZSk7CisKKyAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2lu
ID0gcmVxdWVzdC0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHJlcXVlc3RJ
RCwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgb3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKSwgcmVx
dWVzdC0+YXVkaW8oKSwgcmVxdWVzdC0+dmlkZW8oKSkpOworfQorCit2b2lkIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0KiBy
ZXF1ZXN0KQoreworICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9IG1fcmVxdWVzdFRvSURNYXAudGFr
ZShyZXF1ZXN0KTsKKyAgICBpZiAoIXJlcXVlc3RJRCkKKyAgICAgICAgcmV0dXJuOworICAgIG1f
aWRUb1JlcXVlc3RNYXAucmVtb3ZlKHJlcXVlc3RJRCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lz
aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBhbGxvd2VkKQoreworICAgIFJlZlB0cjxVc2Vy
TWVkaWFSZXF1ZXN0PiByZXF1ZXN0ID0gbV9pZFRvUmVxdWVzdE1hcC50YWtlKHJlcXVlc3RJRCk7
CisgICAgaWYgKCFyZXF1ZXN0KQorICAgICAgICByZXR1cm47CisgICAgbV9yZXF1ZXN0VG9JRE1h
cC5yZW1vdmUocmVxdWVzdCk7CisKKyAgICBpZiAoYWxsb3dlZCkKKyAgICAgICAgcmVxdWVzdC0+
dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgIGVsc2UKKyAgICAgICAgcmVxdWVzdC0+dXNl
ck1lZGlhQWNjZXNzRGVuaWVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0
MzY5MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlh
U3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC0wLDAgKzEsNTgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEw
LTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyX2gKKyNkZWZpbmUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYVJlcXVl
c3QuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgVXNlck1lZGlhUmVxdWVzdDsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UmKTsKKworICAgIHZvaWQgc3RhcnRSZXF1ZXN0
KFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4pOworICAgIHZvaWQgY2FuY2Vs
UmVxdWVzdChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Kik7CisKKyAgICB2b2lkIGRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wg
YWxsb3dlZCk7CisKK3ByaXZhdGU6CisgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQ
dHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4+IElEVG9SZXF1ZXN0TWFwOworICAgIHR5cGVk
ZWYgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4sIHVpbnQ2NF90PiBS
ZXF1ZXN0VG9JRE1hcDsKKyAgICBJRFRvUmVxdWVzdE1hcCBtX2lkVG9SZXF1ZXN0TWFwOworICAg
IFJlcXVlc3RUb0lETWFwIG1fcmVxdWVzdFRvSURNYXA7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNlbmRpZiAvLyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJV
c2VyTWVkaWFDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmIyNzNjOGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKQEAgLTAsMCArMSw1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlVzZXJN
ZWRpYUNsaWVudC5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlVz
ZXJNZWRpYUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFSZXF1ZXN0LmgiCisjaW5j
bHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlVz
ZXJNZWRpYUNsaWVudDo6V2ViVXNlck1lZGlhQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBt
X3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95
ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6
cmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0KQor
eworICAgIG1fcGFnZS51c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5zdGFydFJl
cXVlc3QocmVxdWVzdCk7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1
ZXN0KFVzZXJNZWRpYVJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgbV9wYWdlLnVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmNhbmNlbFJlcXVlc3QocmVxdWVzdCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdDsKKworI2VuZGlmIC8vIE1FRElBX1NUUkVBTQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ0NTlh
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdy
aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8K
KworI2lmbmRlZiBXZWJVc2VyTWVkaWFDbGllbnRfaAorI2RlZmluZSBXZWJVc2VyTWVkaWFDbGll
bnRfaAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJN
ZWRpYUNsaWVudC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViVXNlck1lZGlhQ2xpZW50IDogcHVi
bGljIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudCB7CitwdWJsaWM6CisgICAgV2ViVXNlck1lZGlh
Q2xpZW50KFdlYlBhZ2UmKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ry
b3llZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFdl
YkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+KTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVz
dChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Kik7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjZW5kaWYgLy8gV2ViVXNlck1lZGlhQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAwMDY2MGMyLi5jOTFhNjI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05
Niw2ICs5Niw3IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiV2ViVW5kb1N0ZXAuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcmNoaXZlUmVzb3VyY2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgpAQCAtMjgyLDYgKzI4Myw5IEBAIFdlYlBhZ2U6Oldl
YlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzKQogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICAsIG1fZ2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIodGhpcykKICNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykK
KyNlbmRpZgogICAgICwgbV9jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwocGFyYW1ldGVy
cy5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpCiAgICAgLCBtX2NhblJ1bk1vZGFsKHBh
cmFtZXRlcnMuY2FuUnVuTW9kYWwpCiAgICAgLCBtX2lzUnVubmluZ01vZGFsKGZhbHNlKQpAQCAt
Mzg5LDYgKzM5Myw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShQUk9YSU1J
VFlfRVZFTlRTKQogICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VQcm94aW1pdHlUbyhtX3BhZ2Uu
Z2V0KCksIG5ldyBXZWJEZXZpY2VQcm94aW1pdHlDbGllbnQodGhpcykpOwogI2VuZGlmCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJDb3JlOjpwcm92aWRlVXNlck1lZGlhVG8obV9w
YWdlLmdldCgpLCBuZXcgV2ViVXNlck1lZGlhQ2xpZW50KCp0aGlzKSk7CisjZW5kaWYKIAogI2lm
IEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgIG1fcGFnZS0+c2V0UmVtb3RlSW5zcGVjdGlv
bkFsbG93ZWQodHJ1ZSk7CkBAIC0zMjUxLDYgKzMyNTgsMTMgQEAgdm9pZCBXZWJQYWdlOjpkaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklELAogICAgIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5kaWRSZWNl
aXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKG5vdGlmaWNhdGlvbklELCBhbGxvd2Vk
KTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wg
YWxsb3dlZCkKK3sKKyAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5kaWRS
ZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkKTsK
K30KKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKElPUykKIHZvaWQgV2ViUGFnZTo6YWR2YW5jZVRv
TmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBiYWJhNTA2Li42YjVhZDVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTQ1
LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5z
aW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCisjaW5jbHVkZSAiVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9EaWN0YXRpb25B
bHRlcm5hdGl2ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0VkaXRvci5oPgpAQCAtNDQ3LDYgKzQ0OCwxMCBAQCBwdWJsaWM6CiAgICAgR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXImIGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKCkgeyByZXR1cm4gbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlciYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KCkgeyByZXR1cm4gbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0KKyNlbmRp
ZgorCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBzY3JlZW5TaXpl
KCkgY29uc3Q7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBj
b25zdDsKQEAgLTEwMTgsNiArMTAyMywxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRSZWNl
aXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
LCBib29sIGFsbG93ZWQpOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2b2lkIGRp
ZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQs
IGJvb2wgYWxsb3dlZCk7CisjZW5kaWYKKwogICAgIHZvaWQgYWR2YW5jZVRvTmV4dE1pc3NwZWxs
aW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pOwogICAgIHZvaWQgY2hhbmdlU3BlbGxpbmdU
b1dvcmQoY29uc3QgU3RyaW5nJiB3b3JkKTsKICNpZiBVU0UoQVBQS0lUKQpAQCAtMTE4Miw2ICsx
MTkxLDEwIEBAIHByaXZhdGU6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICNlbmRpZgogCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisjZW5kaWYKKwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQcmludENvbnRleHQ+IG1fcHJpbnRDb250ZXh0OwogI2lm
IFBMQVRGT1JNKEdUSykKICAgICBSZWZQdHI8V2ViUHJpbnRPcGVyYXRpb25HdGs+IG1fcHJpbnRP
cGVyYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGViZjcyMGQuLjg3ZjQwNzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBA
IC0yNjQsNiArMjY0LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIERpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBnZW9s
b2NhdGlvbklELCBib29sIGFsbG93ZWQpCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgIyBNZWRpYVN0ZWFtCisgICAgRGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25E
ZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQorI2VuZGlmCisKICAg
ICAjIE5vdGlmaWNhdGlvbgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVj
aXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQyZGE2YjcuLjI5M2Jk
YTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw0OCBAQAorMjAxNC0wOS0wMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGln
YWxpYS5jb20+CisKKyAgICAgICAgW1dLMl0gVXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsZSBBUEkgdGVz
dCBmb3IgdGhlIFVzZXJNZWRpYSBwZXJtaXNzaW9uIHJlcXVlc3QgQVBJLiBUaGUKKyAgICAgICAg
cmVxdWlyZWQgdGVzdCBpbmZyYXN0cnVjdHVyZSBpcyBhbHNvIGFkZGVkLCBpbnNwaXJlZCBieSB0
aGUKKyAgICAgICAgR2VvbG9jYXRpb24gaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogTmV3IEFQ
SSB0ZXN0IGZvciBVc2VyTWVkaWEKKyAgICAgICAgUGVybWlzc2lvbiByZXF1ZXN0LgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0Q2FsbEJhY2spOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRpYS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsOiBuZXcKKyAgICAgICAgaGVscGVyIG1ldGhvZCB0byBzZXQgdGhlIHBlcm1pc3Np
b24gcmVxdWVzdCByZXN1bHQgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOiBEaXR0by4K
KyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNldFVzZXJNZWRpYVBlcm1pc3Npb24pOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
aDogRGl0dG8uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcDogRGl0dG8uCisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFVzZXJNZWRp
YVBlcm1pc3Npb24pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QpOiBQZXJtaXNzaW9uCisgICAgICAgIHJlcXVlc3QgaGFuZGxlci4KKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZSk6IEVuYWJsZSB0aGUgbmV3
IFVzZXJNZWRpYQorICAgICAgICBwZXJtaXNzaW9uIHJlcXVlc3QgaGFuZGxlci4KKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6IERpdHRvLgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVu
dFZhbHVlcyk6IEVuYWJsZQorICAgICAgICBNZWRpYVN0cmVhbSBzdXBwb3J0LCB0aGlzIGlzIG5l
ZWRlZCBmb3IgZ2V0VXNlck1lZGlhLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVz
ZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6IGNsZWFyCisgICAgICAgIFVzZXJNZWRpYSBwZXJt
aXNzaW9ucyBsaXN0IGFuZCBmbGFncy4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNl
dFVzZXJNZWRpYVBlcm1pc3Npb24pOiBTZXQgcGVybWlzc2lvbgorICAgICAgICByZXF1ZXN0IHJl
c3VsdCBhbmQgZGlzdHBhdGNoIGl0LgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aGFu
ZGxlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOiBTYXZlCisgICAgICAgIHJlcXVlc3QgYW5k
IGRpc3BhdGNoIGl0LgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKToKKyAgICAgICAgRGlzcGF0
Y2ggY2FjaGVkIHBlcm1pc3Npb24gcmVxdWVzdHMuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE0LTA4LTI4ICBQaGlsaXBwZSBOb3JtYW5kICA8
cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSB0ZXN0IGNhc2UgZmlsdGVyIHN1
cHBvcnQgaW4gcnVuLWd0ay10ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybUdUSy5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UK
aW5kZXggMjNhMzVkZi4uYWI4YjNhNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNt
YWtlCkBAIC05Nyw2ICs5Nyw3IEBAIGFkZF9leGVjdXRhYmxlKFRlc3RXZWJLaXQyCiAgICAgJHtU
RVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9SZXNpemVXaW5kb3dBZnRlckNyYXNoLmNw
cAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvUmVzdG9yZVNlc3Npb25T
dGF0ZUNvbnRhaW5pbmdGb3JtRGF0YS5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0
cy9XZWJLaXQyL1Nob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLmNwcAorICAgICR7VEVTVFdF
QktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcAogICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvVXNlck1lc3NhZ2UuY3BwCiAgICAgJHtURVNUV0VCS0lU
QVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9XaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcAogICAgICR7VEVT
VFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvV0tQYWdlR2V0U2NhbGVGYWN0b3JOb3RaZXJv
LmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MWRjZTZiLi5lOGQxMDdhIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtODgsNiArODgsNyBAQAogCQkzN0UxMDY0RDE2OTc2Qzg1MDBC
NzhCRDAgLyogRE9NSFRNTFRhYmxlQ2VsbENlbGxBYm92ZS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RTEwNjRBMTY5NzY3NjQwMEI3OEJEMCAvKiBE
T01IVE1MVGFibGVDZWxsQ2VsbEFib3ZlLm1tICovOyB9OwogCQkzN0UzOEMzNDE2OUI3RDAxMDA4
NEMyOEMgLyogV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RTM4QzMzMTY5QjdEMDEwMDg0
QzI4QyAvKiBXZWJWaWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tICovOyB9OwogCQk0
NDBBMUQzOTE0QTAxMDNBMDA4QTY2RjIgLyogVVJMLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MEExRDM4MTRBMDEwM0EwMDhBNjZGMiAvKiBVUkwu
Y3BwICovOyB9OworCQk0QTQxMEY0QzE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjRCMTlB
RjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVkaWEuY3BwICovOyB9OwogCQk0QkI0MTYwMjE2ODE1QjI2
MDA4MjQyMzggLyogSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QkI0MTYwMTE2ODE1QjI2MDA4MjQyMzgg
LyogSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW0gKi87IH07CiAJCTRCQjQxNjA0MTY4MTVG
OTEwMDgyNDIzOCAvKiBFbGVtZW50QXRQb2ludEluV2ViRnJhbWUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QkI0MTYwMzE2ODE1RjkxMDA4MjQyMzgg
LyogRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tICovOyB9OwogCQk0QkZERkZBNzEzMTQ3NzZD
MDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE2MTMxNDc3NkMwMDYx
RjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICovOyB9OwpAQCAtNDMw
LDYgKzQzMSw4IEBACiAJCTM3RTM4QzMzMTY5QjdEMDEwMDg0QzI4QyAvKiBXZWJWaWV3RGlkUmVt
b3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQwQTFEMzgxNEEwMTAzQTAwOEE2NkYyIC8qIFVSTC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVUkwuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NEE2MjJDMTE0QTBFMkI2MDA0ODUxNUIgLyogV1RGU3RyaW5n
VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdURlN0cmluZ1V0
aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEY0QjE5QUY3QkQ2
MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFVzZXJNZWRpYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEw
RjREMTlBRjdCRUYwMDJFQkFCNSAvKiBnZXRVc2VyTWVkaWEuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9IGdldFVzZXJNZWRpYS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0QkI0MTYwMTE2ODE1QjI2MDA4MjQyMzggLyogSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJh
bWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBKU1dyYXBwZXJG
b3JOb2RlSW5XZWJGcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJCNDE2
MDMxNjgxNUY5MTAwODI0MjM4IC8qIEVsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVsZW1lbnRBdFBvaW50SW5XZWJGcmFt
ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJGREZGQTYxMzE0Nzc2QzAwNjFG
MjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzk4LDYgKzgwMSw3IEBACiAJCUJDOTA5
NjQxMTI1NTYxNjAwMDA4Mzc1NiAvKiBXZWJLaXQyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEY0QjE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1l
ZGlhLmNwcCAqLywKIAkJCQlDMEM1RDNCQjE0NTk4QjZGMDBBODAyQTYgLyogbWFjICovLAogCQkJ
CUJDOTA5NzdCMTI1NTcxQUUwMDA4Mzc1NiAvKiBSZXNvdXJjZXMgKi8sCiAJCQkJQkMyNDZEOEMx
MzJGMTE1QTAwQjU2RDdDIC8qIEFib3V0QmxhbmtMb2FkLmNwcCAqLywKQEAgLTkyOSw2ICs5MzMs
NyBAQAogCQlCQzkwOTc3QjEyNTU3MUFFMDAwODM3NTYgLyogUmVzb3VyY2VzICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEY0RDE5QUY3QkVGMDAy
RUJBQjUgLyogZ2V0VXNlck1lZGlhLmh0bWwgKi8sCiAJCQkJQzA0NUY5NDYxMzg1QzJGODAwQzBG
M0NEIC8qIDE4LWNoYXJhY3RlcnMuaHRtbCAqLywKIAkJCQlGNkI3QkU5NjE3NDY5QjdFMDA4QTM0
NDUgLyogYXNzb2NpYXRlLWZvcm0tY29udHJvbHMuaHRtbCAqLywKIAkJCQk3NkUxODJERTE1NDc1
QTgzMDBGMUZBREQgLyogYXV0by1zdWJtaXR0aW5nLWZvcm0uaHRtbCAqLywKQEAgLTEzMjksNiAr
MTMzNCw3IEBACiAJCQkJNTFGQ0Y3OUExNTM0QUM2RDAwMTA0NDkxIC8qIFNob3VsZEdvVG9CYWNr
Rm9yd2FyZExpc3RJdGVtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRkRFNjU2MTk1M0IyQzAw
MEM0OEZGQSAvKiBPcHRpb25hbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTQwRjc3NjE1MkU0
REEwMDBBNDBDOEMgLyogU2ltcGxpZnlNYXJrdXAubW0gaW4gU291cmNlcyAqLywKKwkJCQk0QTQx
MEY0QzE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUMwMkI3N0YyMTI2NjEyMTQwMDI2QkYwRiAvKiBTcGFjZWJhclNjcm9sbGluZy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5M0QzRDE5RTE3QjFBODQyMDBDN0M0MTUgLyogTGF5b3V0TWlsZXN0b25l
c1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTk0RTFCQjE3
N0U1MTQ1MDA5QzRENEUgLyogU3RvcExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNlLm1tIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDIvVXNlck1lZGlhLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2Vy
TWVkaWEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0ZjQ3OTIKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1l
ZGlhLmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxp
YSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5z
ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0
d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlICJUZXN0LmgiCisj
aW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5j
bHVkZSA8dmVjdG9yPgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CisKK3N0YXRpYyBib29sIGRvbmU7CisKK3ZvaWQgZGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsQmFjayhXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7
CisgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KHBlcm1pc3Npb25SZXF1ZXN0
KTsKKyAgICBkb25lID0gdHJ1ZTsKK30KKworVEVTVChXZWJLaXQyLCBVc2VyTWVkaWFCYXNpYykK
K3sKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQoQWRvcHRXSywgV0tDb250
ZXh0Q3JlYXRlKCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkp
OworICAgIFdLUGFnZVVJQ2xpZW50VjUgdWlDbGllbnQ7CisgICAgbWVtc2V0KCZ1aUNsaWVudCwg
MCwgc2l6ZW9mKHVpQ2xpZW50KSk7CisKKyAgICB1aUNsaWVudC5iYXNlLnZlcnNpb24gPSA1Owor
ICAgIHVpQ2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0g
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsQmFjazsKKworICAg
IFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwor
CisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybChBZG9wdFdLLCBVdGlsOjpjcmVhdGVVUkxG
b3JSZXNvdXJjZSgiZ2V0VXNlck1lZGlhIiwgImh0bWwiKSk7CisKKyAgICBkb25lID0gZmFsc2U7
CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKKworICAgIFV0
aWw6OnJ1bigmZG9uZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZTU0Zjg1MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbApAQCAtMCwwICsxLDE0IEBACis8c2Ny
aXB0PgorZnVuY3Rpb24gZ290VXNlck1lZGlhKG1lZGlhU3RyZWFtKQoreworICAgIGNvbnNvbGUu
bG9nKCJHb3QgdXNlciBtZWRpYSIpOworfQorCitmdW5jdGlvbiB1c2VyTWVkaWFFcnJvcihlcnJv
cikKK3sKKyAgICBjb25zb2xlLmxvZyhlcnJvcik7Cit9CisKK3ZhciBvcHRpb25zID0geyBhdWRp
bzogZmFsc2UsIHZpZGVvOiB0cnVlfTsKK25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0
aW9ucywgZ290VXNlck1lZGlhLCB1c2VyTWVkaWFFcnJvcik7Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsCmluZGV4IGJiOWE3YTAuLjA4YTE4OTggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbApAQCAtMTY5LDYgKzE2OSw5IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAg
ICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91Ymxl
IGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFs
IG9iamVjdCBhbHRpdHVkZSwgb3B0aW9uYWwgb2JqZWN0IGFsdGl0dWRlQWNjdXJhY3ksIG9wdGlv
bmFsIG9iamVjdCBoZWFkaW5nLCBvcHRpb25hbCBvYmplY3Qgc3BlZWQpOwogICAgIHZvaWQgc2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKERPTVN0cmluZyBlcnJvck1l
c3NhZ2UpOwogCisgICAgLy8gTWVkaWFTdHJlYW0KKyAgICB2b2lkIHNldFVzZXJNZWRpYVBlcm1p
c3Npb24oYm9vbGVhbiB2YWx1ZSk7CisKICAgICAvLyBBdWRpbyB0ZXN0aW5nLgogICAgIFtQYXNz
Q29udGV4dF0gdm9pZCBzZXRBdWRpb1Jlc3VsdChvYmplY3QgZGF0YSk7CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAKaW5kZXggN2IxZGU3MC4uMWI2ZWJkMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTQ1OCw2ICs0
NTgsMTMgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25V
bmF2YWlsYWJsZUVycm9yKFdLU3RyaW5nUmVmIGVycm8KICAgICBXS0J1bmRsZVBvc3RNZXNzYWdl
KG1fYnVuZGxlLCBtZXNzYWdlTmFtZS5nZXQoKSwgZXJyb3JNZXNzYWdlKTsKIH0KIAordm9pZCBJ
bmplY3RlZEJ1bmRsZTo6c2V0VXNlck1lZGlhUGVybWlzc2lvbihib29sIGVuYWJsZWQpCit7Cisg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRVc2VyTWVkaWFQZXJtaXNzaW9uIikpOworICAgIFdL
UmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkoQWRvcHRXSywgV0tCb29sZWFuQ3Jl
YXRlKGVuYWJsZWQpKTsKKyAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKG1fYnVuZGxlLCBtZXNzYWdl
TmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkpOworfQorCiB2b2lkIEluamVjdGVkQnVuZGxl
OjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSkK
IHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldEN1c3RvbVBvbGljeURlbGVnYXRlIikpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5oCmluZGV4IDlmNzZhOWQuLjhmMGE4NDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKQEAgLTkyLDYg
KzkyLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91
YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJv
dmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1
cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNIZWFkaW5nLCBkb3Vi
bGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQpOwogICAgIHZvaWQg
c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKFdLU3RyaW5nUmVmIGVy
cm9yTWVzc2FnZSk7CiAKKyAgICAvLyBNZWRpYVN0cmVhbS4KKyAgICB2b2lkIHNldFVzZXJNZWRp
YVBlcm1pc3Npb24oYm9vbCk7CisKICAgICAvLyBQb2xpY3kgZGVsZWdhdGUuCiAgICAgdm9pZCBz
ZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSk7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCmluZGV4IGQwODVmMWEuLmQ3NTFiOTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtNzIwLDYgKzcyMCwx
MiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFi
bGVFcnJvcihKU1N0cmluZ1JlZiBtZXNzYWdlKQogICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQo
KS5zZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IobWVzc2FnZVdLLmdl
dCgpKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wg
ZW5hYmxlZCkKK3sKKyAgICAvLyBGSVhNRTogdGhpcyBzaG91bGQgYmUgZG9uZSBieSBmcmFtZS4K
KyAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc2V0VXNlck1lZGlhUGVybWlzc2lvbihlbmFi
bGVkKTsKK30KKwogYm9vbCBUZXN0UnVubmVyOjpjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKQog
ewogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZy
YW1lKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IGUy
MWZmZjMuLjM5NGU5MDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0yNTIsNiArMjUyLDkgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9u
Z2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIEpTVmFsdWVSZWYgYWx0aXR1ZGUsIEpTVmFsdWVSZWYg
YWx0aXR1ZGVBY2N1cmFjeSwgSlNWYWx1ZVJlZiBoZWFkaW5nLCBKU1ZhbHVlUmVmIHNwZWVkKTsK
ICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0
cmluZ1JlZiBtZXNzYWdlKTsKIAorICAgIC8vIE1lZGlhU3RyZWFtCisgICAgdm9pZCBzZXRVc2Vy
TWVkaWFQZXJtaXNzaW9uKGJvb2wpOworCiAgICAgdm9pZCBzZXRQYWdlVmlzaWJpbGl0eShKU1N0
cmluZ1JlZiBzdGF0ZSk7CiAgICAgdm9pZCByZXNldFBhZ2VWaXNpYmlsaXR5KCk7CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggM2ZlMzc3OS4uOWFkZDk2
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTE4OCw2
ICsxODgsMTEgQEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFcKICAgICBUZXN0Q29udHJvbGxlcjo6
c2hhcmVkKCkuaGFuZGxlR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChwZXJtaXNzaW9uUmVx
dWVzdCk7CiB9CiAKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3sKKyAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkuaGFuZGxlVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QocGVybWlzc2lvblJlcXVlc3QpOworfQorCiBpbnQgVGVz
dENvbnRyb2xsZXI6OmdldEN1c3RvbVRpbWVvdXQoKQogewogICAgIHJldHVybiBtX3RpbWVvdXQ7
CkBAIC0yMDIsOCArMjA3LDggQEAgV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhl
clBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0sKIAogICAgIHZpZXct
PnJlc2l6ZVRvKDgwMCwgNjAwKTsKIAotICAgIFdLUGFnZVVJQ2xpZW50VjIgb3RoZXJQYWdlVUlD
bGllbnQgPSB7Ci0gICAgICAgIHsgMiwgdmlldyB9LAorICAgIFdLUGFnZVVJQ2xpZW50VjUgb3Ro
ZXJQYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgNSwgdmlldyB9LAogICAgICAgICAwLCAvLyBj
cmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1Bh
Z2UKICAgICAgICAgY2xvc2VPdGhlclBhZ2UsCkBAIC0yNTAsNiArMjU1LDExIEBAIFdLUGFnZVJl
ZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VS
TFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBpY2tlcgogICAgICAgICAw
LCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gdW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkCisgICAgICAgIDAsIC8vIHBpbm5lZFN0YXRlRGlkQ2hhbmdlCisgICAgICAgIDAs
IC8vIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcworICAgICAgICAwLCAv
LyBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcworICAgICAgICAwLCAvLyBkaWRDYW5jZWxUcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzCisgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50
KG5ld1BhZ2UsICZvdGhlclBhZ2VVSUNsaWVudC5iYXNlKTsKIApAQCAtNDA4LDggKzQxOCw4IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFy
Z3ZbXSkKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhXS0Rp
Y3Rpb25hcnlSZWYgb3B0aW9ucykKIHsKICAgICBtX21haW5XZWJWaWV3ID0gc3RkOjptYWtlX3Vu
aXF1ZTxQbGF0Zm9ybVdlYlZpZXc+KG1fY29udGV4dC5nZXQoKSwgbV9wYWdlR3JvdXAuZ2V0KCks
IG51bGxwdHIsIG9wdGlvbnMpOwotICAgIFdLUGFnZVVJQ2xpZW50VjIgcGFnZVVJQ2xpZW50ID0g
ewotICAgICAgICB7IDIsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKKyAgICBXS1BhZ2VVSUNsaWVu
dFY1IHBhZ2VVSUNsaWVudCA9IHsKKyAgICAgICAgeyA1LCBtX21haW5XZWJWaWV3LmdldCgpIH0s
CiAgICAgICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMAogICAg
ICAgICAwLCAvLyBzaG93UGFnZQogICAgICAgICAwLCAvLyBjbG9zZQpAQCAtNDU2LDYgKzQ2Niwx
MSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoV0tEaWN0
aW9uYXJ5UmVmIG9wdGlvbnMpCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBpY2tlcgogICAgICAg
ICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25D
bGlja2VkLAorICAgICAgICAwLCAvLyBwaW5uZWRTdGF0ZURpZENoYW5nZQorICAgICAgICAwLCAv
LyBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MKKyAgICAgICAgMCwgLy8g
ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MKKyAgICAgICAgMCwgLy8gZGlkQ2FuY2VsVHJhY2tp
bmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcworICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdCwKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCht
X21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7CiAKQEAgLTU0MSw2ICs1
NTYsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50
VmFsdWVzKCkKICAgICBXS1ByZWZlcmVuY2VzU2V0Rm9udFNtb290aGluZ0xldmVsKHByZWZlcmVu
Y2VzLCBrV0tGb250U21vb3RoaW5nTGV2ZWxOb1N1YnBpeGVsQW50aUFsaWFzaW5nKTsKICAgICBX
S1ByZWZlcmVuY2VzU2V0WFNTQXVkaXRvckVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAg
ICBXS1ByZWZlcmVuY2VzU2V0V2ViQXVkaW9FbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAg
ICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFTdHJlYW1FbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsK
ICAgICBXS1ByZWZlcmVuY2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmZXJlbmNlcywg
dHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQo
cHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0Q2FuT3Bl
bldpbmRvd3NBdXRvbWF0aWNhbGx5KHByZWZlcmVuY2VzLCB0cnVlKTsKQEAgLTYzNyw2ICs2NTMs
MTEgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcygp
CiAgICAgbV9pc0dlb2xvY2F0aW9uUGVybWlzc2lvblNldCA9IGZhbHNlOwogICAgIG1faXNHZW9s
b2NhdGlvblBlcm1pc3Npb25BbGxvd2VkID0gZmFsc2U7CiAKKyAgICAvLyBSZXNldCBVc2VyTWVk
aWEgcGVybWlzc2lvbnMuCisgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuY2xlYXIo
KTsKKyAgICBtX2lzVXNlck1lZGlhUGVybWlzc2lvblNldCA9IGZhbHNlOworICAgIG1faXNVc2Vy
TWVkaWFQZXJtaXNzaW9uQWxsb3dlZCA9IGZhbHNlOworCiAgICAgLy8gUmVzZXQgQ3VzdG9tIFBv
bGljeSBEZWxlZ2F0ZS4KICAgICBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShmYWxzZSwgZmFsc2Up
OwogCkBAIC0xMzQ4LDYgKzEzNjksMzQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aGFuZGxlR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS0dlb2xvY2F0aW9uUGVybWlzc2lvblIKICAgICBk
ZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpOwog
fQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wgZW5h
YmxlZCkKK3sKKyAgICBtX2lzVXNlck1lZGlhUGVybWlzc2lvblNldCA9IHRydWU7CisgICAgbV9p
c1VzZXJNZWRpYVBlcm1pc3Npb25BbGxvd2VkID0gZW5hYmxlZDsKKyAgICBkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKTsKK30KKwordm9pZCBUZXN0
Q29udHJvbGxlcjo6aGFuZGxlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCkKK3sKKyAgICBt
X3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5hcHBlbmQodXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QpOworICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQ
b3NzaWJsZSgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKQoreworICAgIGlmICghbV9pc1VzZXJN
ZWRpYVBlcm1pc3Npb25TZXQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCA9
IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzW2ldLmdldCgpOworICAgICAgICBpZiAobV9p
c1VzZXJNZWRpYVBlcm1pc3Npb25BbGxvd2VkKQorICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdEFsbG93KHBlcm1pc3Npb25SZXF1ZXN0KTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkocGVybWlzc2lvblJlcXVl
c3QpOworICAgIH0KKyAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigpOwor
fQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVu
YWJsZWQsIGJvb2wgcGVybWlzc2l2ZSkKIHsKICAgICBtX3BvbGljeURlbGVnYXRlRW5hYmxlZCA9
IGVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggZDli
ZTc0OC4uNTlhN2U4OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApA
QCAtODgsNiArODgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9z
aXRpb25VbmF2YWlsYWJsZUVycm9yKFdLU3RyaW5nUmVmIGVycm9yTWVzc2FnZSk7CiAgICAgdm9p
ZCBoYW5kbGVHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdFJlZik7CiAKKyAgICAvLyBNZWRpYVN0cmVhbS4KKyAgICB2b2lkIHNldFVzZXJN
ZWRpYVBlcm1pc3Npb24oYm9vbCk7CisgICAgdm9pZCBoYW5kbGVVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogICAgIC8vIFBvbGlj
eSBkZWxlZ2F0ZS4KICAgICB2b2lkIHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5hYmxl
ZCwgYm9vbCBwZXJtaXNzaXZlKTsKIApAQCAtMTMzLDYgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCB1cGRhdGVMYXlvdXRUeXBlRm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYpOwogCiAg
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0SWZQb3Nz
aWJsZSgpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RJZlBvc3NpYmxlKCk7CiAKICAgICAvLyBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudAog
ICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLQ29u
dGV4dFJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSwg
Y29uc3Qgdm9pZCopOwpAQCAtMjM3LDYgKzI0MiwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9p
c0dlb2xvY2F0aW9uUGVybWlzc2lvblNldDsKICAgICBib29sIG1faXNHZW9sb2NhdGlvblBlcm1p
c3Npb25BbGxvd2VkOwogCisgICAgVmVjdG9yPFdLUmV0YWluUHRyPFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RSZWY+PiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0czsKKyAgICBib29s
IG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uU2V0OworICAgIGJvb2wgbV9pc1VzZXJNZWRpYVBlcm1p
c3Npb25BbGxvd2VkOworCiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlRW5hYmxlZDsKICAgICBi
b29sIG1fcG9saWN5RGVsZWdhdGVQZXJtaXNzaXZlOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwCmluZGV4IDM2Mzc3MDMuLjg3YzQ2YzQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC00NzgsNiArNDc4LDEzIEBAIHZvaWQg
VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3Ry
aW5nUmVmIG1lc3NhZ2VOYW1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFVzZXJNZWRpYVBlcm1p
c3Npb24iKSkgeworICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdL
Qm9vbGVhbkdldFR5cGVJRCgpKTsKKyAgICAgICAgV0tCb29sZWFuUmVmIGVuYWJsZWRXSyA9IHN0
YXRpY19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJv
bGxlcjo6c2hhcmVkKCkuc2V0VXNlck1lZGlhUGVybWlzc2lvbihXS0Jvb2xlYW5HZXRWYWx1ZShl
bmFibGVkV0spKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUi
KSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLRGljdGlv
bmFyeUdldFR5cGVJRCgpKTsKICAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGlj
dGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOwotLSAK
Mi4xLjA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237495</attachid>
            <date>2014-09-02 09:24:53 -0700</date>
            <delta_ts>2014-09-30 00:08:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>93843</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA1MTAyY2NhN2ZjNTRiZGE2ZjY0MmYzNTBmOTM5OGYyMThjYTFlNWQ4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDIgU2VwIDIwMTQgMTE6NTY6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDE3ICsrKysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0
ZWQudHh0ICAgIHwgMTAgKysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0
bWwgICAgICAgICAgICB8IDMwICsrKysrKysKIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
c3VjY2Vzcy1leHBlY3RlZC50eHQgIHwgIDkgKysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL3N1Y2Nlc3MuaHRtbCAgICAgICAgICB8IDI3ICsrKysrKysKIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjIgKysrKysrCiAuLi4vTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCAgICAgICB8IDExICsrKwogLi4uL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggfCAgNyArKwogU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgfCAgNyArKwog
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA3NCAr
KysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oICAg
ICAgICAgICAgICAgfCAgMSArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggICAg
ICAgICAgICAgICAgICB8ICAxICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlD
bGllbnQuaCAgICAgICAgIHwgIDIgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oICAgICAgICAgfCAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcCAgICAgICAgICB8IDExICsrLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVVJQ2xpZW50LmggICAgfCA2OCArKysrKysrKysrKysrKysrCiAuLi4vQVBJL0Mv
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgICAgICAgICB8IDQwICsrKysrKysrKysK
IC4uLi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIHwgMzcg
KysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmggICAg
ICAgICB8ICAxICsKIC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgICAgIHwgNjMgKysrKysrKysrKysrKysrCiAuLi4vVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaCAgICAgICB8IDQ4ICsrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwICB8IDU0ICsrKysrKysrKysrKysKIC4u
Li9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICAgIHwgNTQgKysr
KysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgICAg
ICAgICAgfCAxNCArKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
ICAgICAgICAgICB8ICA3ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluICB8ICA1ICsrCiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogICB8IDQ0ICsrKysrKysrKysrCiAuLi4vVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcCAgICAgICAgICB8IDkyICsrKysrKysrKysrKysrKysrKysrKysK
IC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAgICAgICAgICAgIHwgNTgg
KysrKysrKysrKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3Bw
ICAgICAgICAgIHwgNTUgKysrKysrKysrKysrKwogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViVXNlck1lZGlhQ2xpZW50LmggfCA0NSArKysrKysrKysrKwogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwICAgICAgfCAxNCArKysrCiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oICAgICAgICB8IDEzICsrKwogLi4uL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gfCAgNSArKwogVG9v
bHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0NSArKysr
KysrKysrKwogVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZSAgICAgICAgICAg
ICAgfCAgMSArCiAuLi4vVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAg
ICAgICB8ICA2ICsrCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlh
LmNwcCAgICB8IDYzICsrKysrKysrKysrKysrKwogLi4uL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9nZXRVc2VyTWVkaWEuaHRtbCAgfCAxNCArKysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwgICAgICAgICB8ICAzICsKIC4uLi9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAgICAgICAgICAgICAgIHwgIDcgKysKIC4uLi9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5oICAgICAgICAgICAgICAgIHwgIDMgKwogLi4uL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgfCAgNiArKwogVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggfCAgMyArCiBUb29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCAgICAgICAgICB8IDU3ICsrKysrKysrKysr
KystCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggICAgICAgICAgICB8
ICA5ICsrKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgICAgICAg
ICAgfCAgNyArKwogNDcgZmlsZXMgY2hhbmdlZCwgMTE2NyBpbnNlcnRpb25zKCspLCA1IGRlbGV0
aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
ZXJyb3ItZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9lcnJvci5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9zdWNjZXNzLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01l
ZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2Vy
TWVkaWFDbGllbnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJN
ZWRpYS5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGM1MWI3OWEuLmJhYThjMmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBA
QAorMjAxNC0wOS0wMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW1dLMl0gVXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsZSBVc2VyTWVkaWEgcGVybWlzc2lv
biByZXF1ZXN0IHRlc3RzIGluc3BpcmVkIGZyb20gdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIHRl
c3Qgc3VpdGUuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9lcnJvci5qczogQWRkZWQu
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvc3VjY2Vzcy5qczogQWRk
ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWw6IEFkZGVkLgorCiAy
MDE0LTA5LTAyICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtDU1MgR3JpZCBMYXlvdXRdIFRlc3QgY292ZXJhZ2UgZm9yIGZpcnN0LWxpbmUgcHNl
dWRvLWVsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJy
b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTYyOWQyMjIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyBVc2VyTWVkaWEgZXJyb3IgY2FsbGJhY2sg
dXNpbmcgdGhlIG1vY2sgc2VydmljZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgZXJyb3IuY29kZSBpcyBlcnJvci5QRVJNSVNTSU9OX0RFTklFRAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45
YTRmYjBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9l
cnJvci5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBVc2VyTWVkaWEgZXJyb3IgY2FsbGJhY2sgdXNpbmcgdGhl
IG1vY2sgc2VydmljZS4iKTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbihmYWxzZSk7CitlbHNlCisgICAgZGVidWcoJ1RoaXMg
dGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyJyk7CisKK3ZhciBlcnJv
cjsKK3ZhciBvcHRpb25zID0ge2F1ZGlvOmZhbHNlLCB2aWRlbzp0cnVlfTsKK25hdmlnYXRvci53
ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7CisgICAgdGVzdEZh
aWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgIGZpbmlz
aEpTVGVzdCgpOworfSwgZnVuY3Rpb24oZSkgeworICAgIGVycm9yID0gZTsKKyAgICBzaG91bGRC
ZSgnZXJyb3IuY29kZScsICdlcnJvci5QRVJNSVNTSU9OX0RFTklFRCcpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfSk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9zdWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3Vj
Y2Vzcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIy
M2ViYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3Vj
Y2Vzcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0cyBVc2VyTWVkaWEgc3VjY2Vz
cyBjYWxsYmFjayB1c2luZyB0aGUgbW9jayBzZXJ2aWNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJlZmNhNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sCkBAIC0wLDAgKzEsMjcgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBVc2Vy
TWVkaWEgc3VjY2VzcyBjYWxsYmFjayB1c2luZyB0aGUgbW9jayBzZXJ2aWNlLiIpOworCitpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9u
KHRydWUpOworZWxzZQorICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91
dCB0aGUgdGVzdFJ1bm5lcicpOworCit2YXIgb3B0aW9ucyA9IHthdWRpbzogdHJ1ZSwgdmlkZW86
IHRydWV9OworbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbihz
dHJlYW0pIHsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZ1bmN0aW9uKGUpIHsKKyAgICB0ZXN0
RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgIGZpbmlz
aEpTVGVzdCgpOworfSk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRmYmY1Y2IuLjg0NjQ4M2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNC0wOS0wMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dLMl0gVXNlck1lZGlhQ2xpZW50IHN1cHBv
cnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzE1
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVk
IGRvY3VtZW50IGFuZCBmcmFtZSBhY2Nlc3NvcnMsIG5lZWRlZCBieSB0aGUKKyAgICAgICAgVXNl
ck1lZGlhUmVxdWVzdE1hbmFnZXIgb2YgdGhlIFdlYlByb2Nlc3MuIEFsc28gYWRkZWQgdHdvIG1l
dGhvZHMKKyAgICAgICAgdXNlZCBieSB0aGUgcGVybWlzc2lvbiByZXF1ZXN0IG1hbmFnZXIgdG8g
a25vdyBpZiBhY2Nlc3MgdG8gYXVkaW8KKyAgICAgICAgb3IgdmlkZW8gZGV2aWNlcyBpcyByZXF1
ZXN0ZWQuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwKKworICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0Ojpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVk
aWFSZXF1ZXN0OjpmcmFtZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjphdWRpbyk6
CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojp2aWRlbyk6CisKIDIwMTQtMDkt
MDEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVu
ZGVyVGhlbWVNYWM6OnBhaW50UHJvZ3Jlc3NCYXIgY3JlYXRlcyBhIGJ1ZmZlciB3aXRob3V0IHJl
c3BlY3RpbmcgdGhlIGRlc3RpbmF0aW9uJ3MgYWNjZWxlcmF0aW9uIHNldHRpbmcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3Qu
Y3BwCmluZGV4IGU0MzhkMzUuLjcxMDBlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtNDAsNiArNDAs
NyBAQAogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIk1l
ZGlhQ29uc3RyYWludHNJbXBsLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKICNpbmNsdWRl
ICJNZWRpYVN0cmVhbUNlbnRlci5oIgpAQCAtMTAxLDYgKzEwMiwxNiBAQCBVc2VyTWVkaWFSZXF1
ZXN0Ojp+VXNlck1lZGlhUmVxdWVzdCgpCiB7CiB9CiAKK0RvY3VtZW50KiBVc2VyTWVkaWFSZXF1
ZXN0Ojpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRvRG9jdW1lbnQobV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KTsKK30KKworRnJhbWUqIFVzZXJNZWRpYVJlcXVlc3Q6OmZyYW1lKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKSA/IGRvY3VtZW50KCktPmZyYW1lKCkgOiBu
dWxscHRyOworfQorCiBTZWN1cml0eU9yaWdpbiogVXNlck1lZGlhUmVxdWVzdDo6c2VjdXJpdHlP
cmlnaW4oKSBjb25zdAogewogICAgIGlmIChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5oCmluZGV4IGM4MGE2YmEuLjhhZThlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCkBAIC00OCw2ICs0OCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGljdGlvbmFyeTsKIGNsYXNzIERvY3VtZW50
OworY2xhc3MgRnJhbWU7CiBjbGFzcyBNZWRpYUNvbnN0cmFpbnRzOwogY2xhc3MgTWVkaWFTdHJl
YW1Qcml2YXRlOwogY2xhc3MgVXNlck1lZGlhQ29udHJvbGxlcjsKQEAgLTYyLDEwICs2MywxNiBA
QCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlP
cmlnaW4oKSBjb25zdDsKIAorICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OworICAgIEZy
YW1lKiBmcmFtZSgpIGNvbnN0OworCiAgICAgdm9pZCBzdGFydCgpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgdXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAKKyAgICBib29sIGF1ZGlvKCkgY29uc3QgeyBy
ZXR1cm4gbV9hdWRpb0NvbnN0cmFpbnRzOyB9CisgICAgYm9vbCB2aWRlbygpIGNvbnN0IHsgcmV0
dXJuIG1fdmlkZW9Db25zdHJhaW50czsgfQorCiBwcml2YXRlOgogICAgIFVzZXJNZWRpYVJlcXVl
c3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIqLCBQYXNzUmVm
UHRyPE1lZGlhQ29uc3RyYWludHM+IGF1ZGlvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TWVkaWFD
b25zdHJhaW50cz4gdmlkZW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVk
aWFTdWNjZXNzQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2Fs
bGJhY2s+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA0ZjM5MjNkLi4wNWFkZjg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dApAQCAtNDksNiArNDksNyBAQCBzZXQoV2ViS2l0Ml9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
RE9NIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0xhdW5jaGluZyIKICAgICAiJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIgorICAgICIke1dFQktJVDJfRElSfS9X
ZWJQcm9jZXNzL01lZGlhU3RyZWFtIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL05l
dHdvcmsiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyIKICAg
ICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIgpAQCAtMzAxLDYgKzMwMiw4
IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1l
ci5jcHAKICAgICBVSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNz
L1RleHRDaGVja2VyQ29tcGxldGlvbi5jcHAKKyAgICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIu
Y3BwCiAgICAgVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCiAg
ICAgVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAKQEAgLTM4OSw2ICszOTIsNyBAQCBz
ZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1h
bmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblN0YXRlUmVmLmNwcAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS1RleHRDaGVja2VyLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Zp
YnJhdGlvbi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuY3Bw
CiAKQEAgLTQ4NSw2ICs0ODksOCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBXZWJQcm9j
ZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1hbmFnZXIuY3BwCiAKKyAgICBXZWJQcm9jZXNz
L01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKwogICAg
IFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAgICAgV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKICAgICBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01MzcsNiArNTQzLDcgQEAgc2V0
KFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBN
ZW51LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBN
ZW51LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50
LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVmlicmF0aW9uQ2xpZW50LmNw
cAogCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDA1MzI1NmYuLjZjNjZkZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAxNC0wOS0w
MSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dL
Ml0gVXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
IGluIFdlYktpdDIuIEl0J3MKKyAgICAgICAgaW1wbGVtZW50ZWQgc2ltaWxhcmlseSB0byB0aGUg
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICBzdXBwb3J0LiBXaGVuIHRoZSBX
ZWJQYWdlIHJlcXVpcmVzIHRoaXMgcGVybWlzc2lvbiBpdCBzZW5kcyBhCisgICAgICAgIG1lc3Nh
Z2UgdG8gdGhlIFVJIHByb2Nlc3Mgd2hpY2ggYXQgc29tZSBwb2ludCBncmFudHMgb3IgZGVuaWVz
IHRoZQorICAgICAgICBwZXJtaXNzaW9uIGFuZCBzZW5kcyB0aGUgcmVzdWx0IGJhY2sgdG8gdGhl
IFdlYlByb2Nlc3MuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogR2VuZXJpYyBDTWFrZSBz
dXBwb3J0IGZvciBuZXcgZmlsZXMuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOiBO
ZXcgdHlwZSBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgICogU2hhcmVk
L0FQSU9iamVjdC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
Lmg6IFBlcm1pc3Npb25SZXF1ZXN0IEFQSSBtYXBwaW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaDogTmV3IGRlY2lkZVBvbGljeSBoYW5kbGVyIGZvciBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcDogRGl0dG8uCisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oOiBXS1BhZ2VVSUNsaWVudCB2
ZXJzaW9uIGJ1bXAgdG8KKyAgICAgICAgNSwgaW5jbHVkaW5nIHRoZSBuZXcgZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgbWVtYmVyLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQsIEMgQVBJCisg
ICAgICAgIGltcGxlbWVudGF0aW9uIG9mIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4K
KyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQpOgorICAgICAg
ICAoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KToKKyAgICAgICAgKFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3REZW55KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV2ViS2l0Ml9DLmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDogQWRkZWQsIHByb3h5CisgICAgICAgIG9i
amVjdCBmb3IgdGhlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0VHlwZS4KKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6OmFsbG93KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6ZGVueSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjptZWRpYVBhcmFtZXRlcnMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVz
dFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6IERlZmVyCisgICAgICAgIFVzZXJQZXJtaXNz
aW9uUmVxdWVzdCB0byB0aGUgVUlDbGllbnQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IE5l
dyBtZXNzYWdlIHRvIGhhbmRsZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuCisgICAgICAg
ICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDogQWRk
ZWQsCisgICAgICAgIFdlYlByb2Nlc3Mgc2lkZSBvZiB0aGUgVXNlclJlcXVlc3RNYW5hZ2VyLCBr
ZWVwaW5nIHRyYWNrIG9mIGVhY2gKKyAgICAgICAgcGVybWlzc2lvbiByZXF1ZXN0LgorICAgICAg
ICAoV2ViS2l0OjpnZW5lcmF0ZVJlcXVlc3RJRCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjpzdGFydFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcDogQWRkZWQsCisgICAgICAgIFdlYlByb2Nl
c3MgaW1wbGVtZW50YXRpb24gb2YgdGhlIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OldlYlBhZ2UpOiBDcmVhdGUgdGhlCisgICAgICAgIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlciBhbmQgcmVnaXN0ZXIgdGhlIFVzZXJNZWRpYUNsaWVudAorICAg
ICAgICB0byB0aGUgcGFnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVVz
ZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6IERpc3BhdGNoCisgICAgICAgIGRlY2lzaW9uIHRv
IG1hbmFnZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogTmV3IE1l
c3NhZ2UgdG8gaGFuZGxlCisgICAgICAgIHBlcm1pc3Npb24gZGVjaXNpb24gcmVzdWx0IGZyb20g
dGhlIFVJIHByb2Nlc3MuCisKIDIwMTQtMDktMDIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFu
ZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIEdUSyBidWlsZCBmaXggYWZ0ZXIg
cjE3MzE2My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2Uu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCA4ZDFlOTY1Li4x
MWVjNTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xMjcsNiArMTI3
LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90ZWN0aW9uU3BhY2UqIFdLUHJv
dGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tUZXh0Q2hlY2tl
ciogV0tUZXh0Q2hlY2tlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU2Vzc2lv
biogV0tTZXNzaW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTZXNzaW9uU3Rh
dGUqIFdLU2Vzc2lvblN0YXRlUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlicmF0aW9uKiBXS1ZpYnJhdGlvblJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlld3BvcnRBdHRyaWJ1dGVzKiBXS1ZpZXdw
b3J0QXR0cmlidXRlc1JlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4IDZkZjQ5
MTguLjMxMTJlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAgLTEzMiw2ICsxMzIs
NyBAQCBwdWJsaWM6CiAgICAgICAgIFByZWZlcmVuY2VzLAogICAgICAgICBTZXNzaW9uLAogICAg
ICAgICBUZXh0Q2hlY2tlciwKKyAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsCiAg
ICAgICAgIFZpYnJhdGlvbiwKICAgICAgICAgVmlld3BvcnRBdHRyaWJ1dGVzLAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggMWNhMTVlMy4uZWViY2Zi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtNTAs
NiArNTAsNyBAQCBjbGFzcyBJbW11dGFibGVEaWN0aW9uYXJ5OwogY2xhc3MgTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQ7CiBjbGFzcyBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdDsKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk7CiBjbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk7CiBjbGFzcyBXZWJG
cmFtZVByb3h5OwogY2xhc3MgV2ViT3BlblBhbmVsUGFyYW1ldGVyczsKQEAgLTEyMiw2ICsxMjMs
NyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgcnVuT3BlblBhbmVsKFdlYktpdDo6V2Vi
UGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgV2ViS2l0OjpXZWJPcGVuUGFuZWxQ
YXJhbWV0ZXJzKiwgV2ViS2l0OjpXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJh
bWVQcm94eSosIFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4qLCBXZWJLaXQ6Okdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RQcm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBi
b29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2Vi
UGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9y
aWdpbiosIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSopIHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0
eU9yaWdpbiosIFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QqKSB7IHJldHVy
biBmYWxzZTsgfQogCiAgICAgLy8gUHJpbnRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKaW5kZXggODAyMjFhOS4uNWY0NGE2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtNjMsNiArNjMsNyBAQCBjbGFzcyBB
dXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXI7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xh
c3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3Q7CitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OwogY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tG
b3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CkBAIC0xNDYsNiArMTQ3
LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVuZGVyTGF5ZXJSZWYsIFdlYlJlbmRlckxheWVy
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVuZGVyT2JqZWN0UmVmLCBXZWJSZW5kZXJPYmplY3Qp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tTZXNzaW9uU3RhdGVSZWYsIEFQSTo6U2Vzc2lvblN0YXRl
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVGV4dENoZWNrZXJSZWYsIFdlYlRleHRDaGVja2VyKQor
V0tfQUREX0FQSV9NQVBQSU5HKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tWaWJyYXRp
b25SZWYsIFdlYlZpYnJhdGlvblByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlld3BvcnRB
dHRyaWJ1dGVzUmVmLCBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMpCiBXS19BRERfQVBJX01BUFBJTkco
V0tJbnNwZWN0b3JSZWYsIFdlYkluc3BlY3RvclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAzYzAwNmJjLi4zMzZmNjIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtNzQsNyArNzQsNyBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlUG9saWN5Q2xpZW50QmFzZT4gewogfTsKIAog
dGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZVVJQ2xpZW50QmFzZT4gewotICAg
IHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBX
S1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0PiBWZXJz
aW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlD
bGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGll
bnRWNCwgV0tQYWdlVUlDbGllbnRWNT4gVmVyc2lvbnM7CiB9OwogCiB9CkBAIC0xNDk3LDYgKzE0
OTcsMTUgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNv
bnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICB9CiAKKyAgICAgICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSog
ZnJhbWUsIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5KiBwZXJtaXNzaW9uUmVxdWVzdCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgIG1fY2xp
ZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKHBhZ2Up
LCB0b0FQSShmcmFtZSksIHRvQVBJKG9yaWdpbiksIHRvQVBJKHBlcm1pc3Npb25SZXF1ZXN0KSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CisKICAgICAgICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViU2VjdXJpdHlPcmlnaW4q
IG9yaWdpbiwgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QqIHBlcm1pc3Npb25SZXF1ZXN0
KSBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBv
bGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAppbmRleCA0MDM3N2Q2Li5hMWVhMGZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQu
aApAQCAtODksNiArODksNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VQaW5uZWRTdGF0ZURpZENo
YW5nZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogYwogdHlwZWRlZiB2b2lk
ICgqV0tQYWdlRGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzQ2FsbGJhY2sp
KFdLUGFnZVJlZiBwYWdlLCBXS1BvaW50IG1vdXNlRG93blBvc2l0aW9uLCBXS0hpdFRlc3RSZXN1
bHRSZWYgaGl0VGVzdFJlc3VsdCwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNz
Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkQ2FuY2VsVHJhY2tpbmdQb3Rl
bnRpYWxMb25nTW91c2VQcmVzc0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tUeXBlUmVmIHVz
ZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZURl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CiAKIC8vIERlcHJlY2F0ZWQgICAgCiB0eXBlZGVmIFdLUGFnZVJlZiAo
KldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1Bh
Z2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1v
ZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKQEAgLTM3Niw2ICszNzcsNzMgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGll
bnRWNCB7CiAgICAgV0tQYWdlRGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVz
c0NhbGxiYWNrICAgICAgICAgICAgICBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3Vz
ZVByZXNzOwogfSBXS1BhZ2VVSUNsaWVudFY0OwogCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNs
aWVudFY1IHsKKyAgICBXS1BhZ2VVSUNsaWVudEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAg
V0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAg
ICAgICAgICAgICBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQ
YWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaG93UGFnZTsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlOworICAgIFdLUGFnZVRha2VG
b2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGFrZUZvY3VzOworICAgIFdLUGFnZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXM7CisgICAgV0tQYWdlVW5mb2N1c0NhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmZvY3Vz
OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVydENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdEFsZXJ0OworICAgIFdLUGFnZVJ1bkphdmFT
Y3JpcHRDb25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
SmF2YVNjcmlwdENvbmZpcm07CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0Owor
ICAgIFdLUGFnZVNldFN0YXR1c1RleHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0U3RhdHVzVGV4dDsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVy
RWxlbWVudENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgIG1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlTWlzc2luZ1Bs
dWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICBtaXNz
aW5nUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFn
ZURpZE5vdEhhbmRsZUtleUV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGlkTm90SGFuZGxlS2V5RXZlbnQ7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlV2hlZWxF
dmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVX
aGVlbEV2ZW50OworICAgIFdLUGFnZUdldFRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbGJhcnNBcmVWaXNpYmxlOworICAgIFdLUGFn
ZVNldFRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0VG9vbGJhcnNBcmVWaXNpYmxlOworICAgIFdLUGFnZUdldE1lbnVCYXJJc1Zpc2li
bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUJhcklzVmlz
aWJsZTsKKyAgICBXS1BhZ2VTZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNldE1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlR2V0
U3RhdHVzQmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0dXNCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlU2V0U3RhdHVzQmFySXNWaXNpYmxlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNCYXJJc1Zpc2li
bGU7CisgICAgV0tQYWdlR2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpc1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VTZXRJc1Jlc2l6YWJs
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzUmVz
aXphYmxlOworICAgIFdLUGFnZUdldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlU2V0V2lu
ZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bDsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpZERyYXc7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGlkU2Nyb2xs
OworICAgIFdLUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXhjZWVkZWREYXRhYmFzZVF1b3RhOworICAgIFdLUGFnZVJ1bk9w
ZW5QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cnVuT3BlblBhbmVsOworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VIZWFkZXJIZWlnaHRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckhlaWdodDsKKyAgICBXS1Bh
Z2VGb290ZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvb3RlckhlaWdodDsKKyAgICBXS1BhZ2VEcmF3SGVhZGVyQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdIZWFkZXI7CisgICAgV0tQ
YWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkcmF3Rm9vdGVyOworICAgIFdLUGFnZVByaW50RnJhbWVDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRGcmFtZTsKKyAgICBXS1Bh
Z2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJ1bk1vZGFsOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBk
aWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKKyAgICBXS1BhZ2VTYXZlRGF0YVRvRmls
ZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIHNhdmVEYXRh
VG9GaWxlSW5Eb3dubG9hZHNGb2xkZXI7CisgICAgV0tQYWdlU2hvdWxkSW50ZXJydXB0SmF2YVNj
cmlwdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRJbnRlcnJ1cHRK
YXZhU2NyaXB0OworCisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3
UGFnZTsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFn
ZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAg
ICAgICAgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAg
V0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMSB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMTsKKworICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS1BhZ2VTaG93Q29sb3JQaWNrZXJD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dDb2xvclBp
Y2tlcjsKKyAgICBXS1BhZ2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhpZGVDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VVbmF2YWls
YWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVu
YXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZDsKKyAgICAKKyAgICAvLyBWZXJzaW9uIDMuCisg
ICAgV0tQYWdlUGlubmVkU3RhdGVEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwaW5uZWRTdGF0ZURpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNC4K
KyAgICBXS1BhZ2VEaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxsYmFj
ayAgICAgICAgICAgICAgIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzczsK
KyAgICBXS1BhZ2VEaWRSZWNvZ25pemVMb25nTW91c2VQcmVzc0NhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzOworICAgIFdLUGFnZURp
ZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxsYmFjayAgICAgICAgICAg
ICAgZGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzczsKKworICAgIC8vIFZl
cnNpb24gNS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdENhbGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0OworfSBXS1BhZ2VVSUNsaWVudFY1OworCiBlbnVtIHsga1dLUGFnZVVJQ2xpZW50
Q3VycmVudFZlcnNpb24gV0tfRU5VTV9ERVBSRUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lv
biBudW1iZXIgaW5zdGVhZCIpID0gMiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQg
ewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWZkM2U2MjgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIgorCisj
aW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorI2luY2x1ZGUgIldL
QVBJQ2FzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RS
ZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit7CisgICAgdG9JbXBsKHVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+YWxsb3coKTsKK30KKwordm9pZCBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQoreworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFJlZiktPmRlbnkoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0NWQzMTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlh
IFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dF9oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cwor
ZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOwor
V0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlm
CisKKyNlbmRpZiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2ggKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaAppbmRleCA1YTcxMmNkLi5lMzJiYWNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oCkBAIC01Nyw2
ICs1Nyw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLVVJMLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dL
VVJMUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1VSTFJlc3BvbnNlLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaD4KIAogI2lmIGRlZmluZWQo
X19PQkpDX18pICYmIF9fT0JKQ19fCiAjaW1wb3J0IDxXZWJLaXQvV0tWaWV3Lmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4zOTdlNTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsx
LDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw
MjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIldlYlBh
Z2VNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3NQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVz
dHMoKQoreworICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IG1fcGVuZGluZ1JlcXVlc3RzLnZhbHVl
cygpKQorICAgICAgICByZXF1ZXN0LT5pbnZhbGlkYXRlKCk7CisKKyAgICBtX3BlbmRpbmdSZXF1
ZXN0cy5jbGVhcigpOworfQorCitQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1
ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGF1ZGlvLCBib29sIHZpZGVvKQoreworICAg
IFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiByZXF1ZXN0ID0gVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKCp0aGlzLCB1c2VyTWVkaWFJRCwgYXVk
aW8sIHZpZGVvKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQodXNlck1lZGlhSUQsIHJlcXVl
c3QuZ2V0KCkpOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKK30KKwordm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBl
cm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQorewor
ICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFt
X3BlbmRpbmdSZXF1ZXN0cy50YWtlKHVzZXJNZWRpYUlEKSkKKyAgICAgICAgcmV0dXJuOworCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNlck1l
ZGlhSUQsIGFsbG93ZWQpLCBtX3BhZ2UucGFnZUlEKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oYWxsb3dlZCk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmFhMTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKKyAqLworCisjaWZuZGVmIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5X2gKKyNkZWZpbmUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlf
aAorCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdl
UHJveHk7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eShXZWJQYWdlUHJveHkmKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZVJlcXVlc3RzKCk7CisK
KyAgICAvLyBDcmVhdGUgYSByZXF1ZXN0IHRvIGJlIHByZXNlbnRlZCB0byB0aGUgdXNlci4KKyAg
ICBQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVl
c3QodWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pOworCisgICAg
Ly8gQ2FsbGVkIGJ5IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgd2hlbiBhIGRlY2lz
aW9uIGlzIG1hZGUgYnkgdGhlIHVzZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVy
bWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90LCBib29sIGFsbG93KTsKKworcHJpdmF0ZToKKyAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4+
IG1fcGVuZGluZ1JlcXVlc3RzOworICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZDE0ZTVkNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApAQCAtMCww
ICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B
ICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorCisjaW5jbHVkZSAiQVBJTnVtYmVy
LmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIK
KyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2Vy
LCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbykKKyAgICA6IG1f
bWFuYWdlcihtYW5hZ2VyKQorICAgICwgbV91c2VyTWVkaWFJRCh1c2VyTWVkaWFJRCkKK3sKKyAg
ICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEFQSTo6T2JqZWN0Pj4gcGFyYW1ldGVyc01hcDsKKyAg
ICBwYXJhbWV0ZXJzTWFwLnNldCgiYXVkaW8iLCBBUEk6OkJvb2xlYW46OmNyZWF0ZShhdWRpbykp
OworICAgIHBhcmFtZXRlcnNNYXAuc2V0KCJ2aWRlbyIsIEFQSTo6Qm9vbGVhbjo6Y3JlYXRlKHZp
ZGVvKSk7CisgICAgbV9tZWRpYVBhcmFtZXRlcnMgPSBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVh
dGUoV1RGOjptb3ZlKHBhcmFtZXRlcnNNYXApKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjphbGxvdygpCit7CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2Vy
TWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgdHJ1ZSk7Cit9CisKK3ZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSgpCit7CisgICAgbV9tYW5hZ2Vy
LmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgZmFs
c2UpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRh
dGUoKQoreworICAgIG1fbWFuYWdlci5pbnZhbGlkYXRlUmVxdWVzdHMoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmYwNDcyNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCkBAIC0wLDAgKzEs
NTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eV9oCisjZGVmaW5lIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaAorCisjaW5j
bHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiSW1tdXRhYmxlRGljdGlvbmFyeS5oIgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKKworY2xhc3MgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmpl
Y3Q6OlR5cGU6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlKFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1
c2VyTWVkaWFJRCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbykKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCB1
c2VyTWVkaWFJRCwgYXVkaW8sIHZpZGVvKSk7CisgICAgfQorCisgICAgdm9pZCBhbGxvdygpOwor
ICAgIHZvaWQgZGVueSgpOworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisKKyAgICBQYXNzUmVm
UHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IG1lZGlhUGFyYW1ldGVycygpIGNvbnN0IHsgcmV0dXJu
IG1fbWVkaWFQYXJhbWV0ZXJzOyB9CisKK3ByaXZhdGU6CisgICAgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVp
bnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGF1ZGlvLCBib29sIHZpZGVvKTsKKworICAgIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtX21hbmFnZXI7CisgICAgdWludDY0
X3QgbV91c2VyTWVkaWFJRDsKKyAgICBSZWZQdHI8SW1tdXRhYmxlRGljdGlvbmFyeT4gbV9tZWRp
YVBhcmFtZXRlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCA0ZmI3MTQwLi4xZmQxYTU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUg
IlByaW50SW5mby5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dENo
ZWNrZXJTdGF0ZS5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
aCIKICNpbmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQmFja0Zvcndh
cmRMaXN0LmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgpAQCAtMjgwLDYg
KzI4MSw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGll
bnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAjZW5kaWYKICAgICAsIG1fZ2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCiAgICAgLCBtX25vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKKyAgICAsIG1fdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQogICAgICwgbV92aWV3U3RhdGUoVmlld1N0YXRlOjpO
b0ZsYWdzKQogICAgICwgbV92aWV3V2FzRXZlckluV2luZG93KGZhbHNlKQogICAgICwgbV9iYWNr
Rm9yd2FyZExpc3QoV2ViQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoKnRoaXMpKQpAQCAtNDY1NSw2
ICs0NjU3LDE4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNz
aW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwKICAgICByZXF1ZXN0LT5kZW55KCk7
CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZy
YW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2lu
SWRlbnRpZmllciwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbykKK3sKKyAgICBXZWJGcmFtZVByb3h5
KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CisgICAgTUVTU0FHRV9DSEVD
SyhmcmFtZSk7CisKKyAgICBSZWZQdHI8V2ViU2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9IFdlYlNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGUoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlk
ZW50aWZpZXIob3JpZ2luSWRlbnRpZmllcikpOworICAgIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5PiByZXF1ZXN0ID0gbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3JlYXRlUmVxdWVzdCh1c2VyTWVkaWFJRCwgYXVkaW8sIHZpZGVvKTsKKworICAgIGlm
ICghbV91aUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qo
dGhpcywgZnJhbWUsIG9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkpCisgICAgICAgIHJlcXVl
c3QtPmRlbnkoKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmljYXRpb25Q
ZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcp
CiB7CiAgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYmRmNjhiZi4uZmNmYzE5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1
ZGUgIlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5z
aW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCisjaW5jbHVkZSAiVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSAiV0tQYWdl
UHJpdmF0ZS5oIgpAQCAtMTI0LDYgKzEyNSw3IEBAIGNsYXNzIERyYWdEYXRhOwogY2xhc3MgRmxv
YXRSZWN0OwogY2xhc3MgR3JhcGhpY3NMYXllcjsKIGNsYXNzIEludFNpemU7CitjbGFzcyBNZWRp
YUNvbnN0cmFpbnRzSW1wbDsKIGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFJ1bkxvb3BP
YnNlcnZlcjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKQEAgLTEwMzEsNiArMTAzMyw5IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwg
Y29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRf
dCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50
NjRfdCBleHBlY3RlZFVzYWdlLCBQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4
Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5Pik7CiAgICAgdm9pZCByZWFjaGVkQXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwg
dWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBQYXNzUmVm
UHRyPE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGE6OkRlbGF5ZWRSZXBseT4pOwogICAgIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlz
c2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0
cmluZyBvcmlnaW5JZGVudGlmaWVyKTsKKworICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1p
c3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3Ry
aW5nIG9yaWdpbklkZW50aWZpZXIsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pOworCiAgICAgdm9p
ZCBydW5Nb2RhbCgpOwogICAgIHZvaWQgbm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVj
dChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJh
clN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUpOwpAQCAtMTM2Nyw2ICsxMzcyLDggQEAg
cHJpdmF0ZToKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1f
Z2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAgICAgTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI7CiAKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBt
X3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKwogICAgIFdlYkNvcmU6OlZpZXdT
dGF0ZTo6RmxhZ3MgbV92aWV3U3RhdGU7CiAgICAgYm9vbCBtX3ZpZXdXYXNFdmVySW5XaW5kb3c7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IDRhNmZkNTcuLmU4YTViZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjU2LDYgKzI1NiwxMSBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMKICAgICBS
ZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25J
RCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiAgICAgCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAjIE1lZGlhU3RlYW0gbWVzc2FnZXMKKyAgICBSZXF1
ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50
NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgYm9vbCBhdWRpbywgYm9vbCB2
aWRlbykKKyNlbmRpZgorCiAgICAgIyBOb3RpZmljYXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0
Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIFN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyKQogICAgIFNob3dOb3RpZmljYXRpb24oU3RyaW5nIHRpdGxlLCBTdHJpbmcgYm9k
eSwgU3RyaW5nIGljb25VUkwsIFN0cmluZyB0YWcsIFN0cmluZyBsYW5nLCBTdHJpbmcgZGlyLCBT
dHJpbmcgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzkw
ZDc3NS4uNDk1NjQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNzg4LDYgKzc4OCwxNCBAQAogCQkzRjg4OUQxNDE4ODc3OEM5
MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMTIxODg3NzhDOTAwRkVB
REFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSAqLzsgfTsKIAkJM0Y4ODlE
MTUxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMTMxODg3
NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oICovOyB9Owog
CQkzRjg4OUQxNzE4ODc4NTkzMDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODg5RDBE
MTg4NzY5OUMwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tICovOyB9Owor
CQk0QTNDQzE4QTE5QjA2M0U3MDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEE0MTBGMzkxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcCAqLzsgfTsKKwkJNEEzQ0MxOEIxOUIwNjQwRjAwRDE0QUVGIC8q
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEYzQTE5QUY3QjA0MDAyRUJBQjUg
LyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJNEEz
Q0MxOEMxOUIwNjQxNTAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBG
M0IxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3Bw
ICovOyB9OworCQk0QTNDQzE4RDE5QjA2NDE5MDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEE0MTBGM0MxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaCAqLzsgfTsKKwkJNEEzQ0MxOEUxOUIwN0I4NTAwRDE0QUVGIC8qIFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEE0MTBGMzUxOUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuY3BwICovOyB9OworCQk0QTNDQzE4RjE5QjA3QjhBMDBEMTRBRUYgLyog
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBGMzYxOUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk0QTQxMEY0NDE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRBNDEwRjQyMTlBRjdCMjcwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICovOyB9OworCQk0QTQxMEY0QTE5QUY3QjgwMDAyRUJB
QjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjQ4MTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVk
aWFDbGllbnQuY3BwICovOyB9OwogCQk0RjYwMTQzMjE1NUM1QUEyMDAxRkJERTAgLyogQmxvY2tp
bmdSZXNwb25zZU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAq
LzsgfTsKIAkJNTEwMjFFOUMxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50
TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEw
MjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovOyB9
OwogCQk1MTAyNzQzMjE5ODFBRjhFMDA4MTY1RUQgLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkExODA2
MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjc5OSw2ICsyODA3LDE2IEBACiAJCTNG
ODg5RDEyMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubW07IHBhdGggPSBpb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg4OUQxMzE4ODc3OEM5
MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOyBw
YXRoID0gaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzRjg4OUQxNjE4ODc3QTI0MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEw
RjM1MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzNjE5QUY3
QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjM5MTlBRjdCMDQwMDJFQkFCNSAvKiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjNBMTlBRjdCMDQw
MDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzQjE5QUY3
QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGM0MxOUFGN0Iw
NDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEY0MjE5QUY3QjI3MDAyRUJBQjUg
LyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjQzMTlBRjdCMjcwMDJFQkFC
NSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjQ4MTlBRjdCODAwMDJFQkFCNSAvKiBX
ZWJVc2VyTWVkaWFDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViVXNlck1lZGlhQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NEE0MTBGNDkxOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVc2VyTWVkaWFDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5n
UmVzcG9uc2VNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tpbmdS
ZXNwb25zZU1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAwMzFGNjEzNzlD
QUNCMDBDOERGRTQgLyogU2VjSXRlbVNoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRl
SW5JbmRleCA9IDA7IHBhdGggPSBTZWNJdGVtU2hpbS5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKIAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRl
eHRNZW51Q2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01MTQzLDYgKzUxNjEsMTUgQEAKIAkJCXBhdGggPSBDb2NvYTsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CiAJCX07CisJCTRBNDEwRjQxMTlBRjdCMjcwMDJFQkFCNSAvKiBNZWRpYVN0
cmVhbSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0
MTBGNDIxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAgKi8sCisJCQkJNEE0MTBGNDMxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oICovLAorCQkJKTsKKwkJCXBhdGggPSBNZWRpYVN0cmVhbTsK
KwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxMDVCMEQyMTYyRjdBNUUwMEUy
NzcwOSAvKiBOZXR3b3JrICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTU2MDEsNiArNTYyOCw3IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBX
ZWJQcm9jZXNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQk0QTQxMEY0MTE5QUY3QjI3MDAyRUJBQjUgLyogTWVkaWFTdHJlYW0gKi8sCiAJCQkJNTEyRTM1
MkExMzBCNTU5OTAwQUJEMTlBIC8qIEFwcGxpY2F0aW9uQ2FjaGUgKi8sCiAJCQkJN0M2RTcwRjgx
OEIyRDQ3RTAwRjI0RTJFIC8qIGNvY29hICovLAogCQkJCTMzMDkzNDRCMTMxNUI5M0EwMDk3QTdC
QyAvKiBDb29raWVzICovLApAQCAtNTYzOCw2ICs1NjY2LDggQEAKIAkJQkMwMzJENUQxMEY0Mzcy
MjAwNThDMTVBIC8qIFdlYkNvcmVTdXBwb3J0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEY0ODE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1l
ZGlhQ2xpZW50LmNwcCAqLywKKwkJCQk0QTQxMEY0OTE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNl
ck1lZGlhQ2xpZW50LmggKi8sCiAJCQkJMkQyOEYzREYxODg1Q0NCNDAwNEI5RUFFIC8qIGlvcyAq
LywKIAkJCQlCQzExMUFERTExMkY1QjlBMDAzMzdCQUIgLyogbWFjICovLAogCQkJCTFBNzI4NDQ0
MTk1OUVEMTAwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcCAqLywKQEAgLTU3
NDEsNiArNTc3MSwxMCBAQAogCQlCQzAzMkRDMzEwRjQzODI2MDA1OEMxNUEgLyogVUlQcm9jZXNz
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEYz
OTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwICovLAorCQkJCTRBNDEwRjNBMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovLAorCQkJCTRBNDEwRjNCMTlBRjdCMDQwMDJF
QkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCAqLywKKwkJCQk0QTQx
MEYzQzE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5o
ICovLAogCQkJCTJEQTk0NEE4MTg4NEU5QUIwMEVEODZEQiAvKiBpb3MgKi8sCiAJCQkJQkMwMzJE
QzQxMEY0Mzg3QzAwNThDMTVBIC8qIEFQSSAqLywKIAkJCQk1MTJGNTg4RDEyQTg4MzZGMDA2Mjk1
MzAgLyogQXV0aGVudGljYXRpb24gKi8sCkBAIC01OTExLDYgKzU5NDUsOCBAQAogCQlCQzBDMzc2
NjEwRjgwNzY2MDA3NkQ3Q0IgLyogQyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJNEE0MTBGMzUxOUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuY3BwICovLAorCQkJCTRBNDEwRjM2MTlBRjdBQzMwMDJFQkFCNSAvKiBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggKi8sCiAJCQkJNTEyM0NGMTgxMzNEMjVFNjAw
NTZGODAwIC8qIGNnICovLAogCQkJCTZFRTg0OUM0MTM2OEQ5MDQwMDM4RDQ4MSAvKiBtYWMgKi8s
CiAJCQkJQkNCNjM0NzcxMTZCRjEwNjAwNjAzMjE1IC8qIFdlYktpdDJfQy5oICovLApAQCAtNzEz
Nyw2ICs3MTczLDcgQEAKIAkJCQkxQUE0MUFCNTEyQzAyRUM0MDAyQkU2N0IgLyogRWRpdG9yU3Rh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQjE1QTg1MTM4NDNBMzkwMDMyMUFEOCAvKiBFbnZp
cm9ubWVudFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3QzZDREIxMzc4OTUwODAw
QjlDMDREIC8qIEVudmlyb25tZW50VmFyaWFibGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTND
QzE4RjE5QjA3QjhBMDBEMTRBRUYgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUFBNTc1RkIxNDk2QjUyNjAwQTRFRTA2IC8qIEV2ZW50RGlzcGF0
Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5MEMxRjQxMjY0RkQ3MTAwM0U0NEQ0IC8qIEZp
bmRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTkxMDA3MTEyNjY3NUM0MDAxODQy
RjUgLyogRmluZEluZGljYXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC03NTQ3LDYgKzc1ODQsNyBA
QAogCQkJCTUxODM1M0RCMTg4NUJGOEMwMEQ5RkU0NCAvKiBJREJTZXJpYWxpemF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQURGNTkxQjE4OTA1MjhFMDA0M0MxNDUgLyogV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1NzQ0RjAxMjYzOEZCMzAwNkYwRjEy
IC8qIFdlYlBvcHVwSXRlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEEzQ0MxOEQxOUIwNjQxOTAw
RDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNTc0RTYzMTI2N0QwODAwMDZGMEYxMiAvKiBXZWJQb3B1cE1lbnVQcm94
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M4RUIxMTcxOERCNkExOTAwNzkxN0MyIC8qIFdLUHJl
ZmVyZW5jZXNQcml2YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTc1NzQsNiArNzYxMiw3IEBACiAJ
CQkJMzc2MDg4MUYxNTA0MTNFOTAwRkM4MkM3IC8qIFdlYlJlbmRlck9iamVjdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTEyMTc0NjUxNjRDMjEzNzAwMzdBNUMxIC8qIFdlYlJlc291cmNlQnVmZmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzM2NzYzMDEzMEM5OTk4MDA2QzlERTIgLyogV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTRBM0NDMThCMTlCMDY0MEYw
MEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFBRjA4OUIxOTI2N0VFNTAwQjYzOTBDIC8qIFdLVXNlclNjcmlwdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzMzNjc2NTYxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQTk0NEE0MTg4
NEU0RjAwMEVEODZEQiAvKiBHZXN0dXJlVHlwZXMuaCBpbiBIZWFkZXJzICovLApAQCAtODY2Miw3
ICs4NzAxLDkgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCTRBNDEwRjQ0MTlBRjdCMjcw
MDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM1RDI0QTExNkNDM0I5RTAwN0Q1NDYxIC8qIENoaWxkUHJvY2Vzc01haW4u
bW0gaW4gU291cmNlcyAqLywKKwkJCQk0QTQxMEY0QTE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNl
ck1lZGlhQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtOTA1MSw2ICs5MDkyLDcgQEAKIAkJ
CQkxQTBGMjlFMzEyMEI0NDQyMDA1M0QxQjkgLyogVmlzaXRlZExpbmtQcm92aWRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBMURGNjMxMjE4RTBCN0M4MDAzQTNFMkEgLyogRG93bmxvYWRDbGll
bnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTBGMjlDQjEyMEIzNzE2MDA1M0QxQjkgLyogVmlz
aXRlZExpbmtUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0QTNDQzE4QTE5QjA2M0U3MDBE
MTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUFDMTMzN0YxODU5MEFFNDAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJl
Z2lzdHJ5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0VEQTEyRTIxNTJDRDFBRTAwRDlFMDhEIC8q
IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTJFMzUy
RTEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC05MTczLDYgKzkyMTUsNyBAQAogCQkJCTUxODM0NTkyMTM0NTMyRTkwMDky
QjY5NiAvKiBXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFE
MDJGNjQxMzJFQzVCOTAwQkVBQTk2IC8qIFdlYkljb25EYXRhYmFzZU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTcxOTNCRTE4QzE0QTQ0MDAyRDBGMTIgLyogV0tGb3Jt
U2VsZWN0Q29udHJvbC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTRBM0NDMThFMTlCMDdCODUwMEQx
NEFFRiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJEREY3MzE2MThFOTUwNjAwMDRGNUE2NiAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNv
bGxlY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTFCMjRBNjEzMkUwOTU3MDAwNjVBMEMg
LyogV2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFEMDJGNkIx
MzJFQzczNzAwQkVBQTk2IC8qIFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtOTMzNiw2ICs5Mzc5LDcgQEAKIAkJCQlCQzQwNzYyODEyNEZG
MDQwMDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm9NYWMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1MTVFNzcyNzE4M0RENkY2MDAwNzIwM0YgLyogQXN5bmNSZXF1ZXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDQTI4NEQ2MTQ5MkYyQzcwMDFGOTA0MiAvKiBXS0Nvbm5lY3Rpb24ubW0gaW4g
U291cmNlcyAqLywKKwkJCQk0QTNDQzE4QzE5QjA2NDE1MDBEMTRBRUYgLyogVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjBDMzY1ODE4QzA1
MUJBMDBGNjA3RDcgLyogUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTBGMEMzNjVDMThDMDVDQTEwMEY2MDdENyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0QTYyOTYxNDczMTNBMDAwNkM2ODFB
IC8qIFdLQ29ubmVjdGlvblJlZi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4yZTZkN2FmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy
ZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
IEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
KyNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJX
ZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdWludDY0X3QgZ2VuZXJh
dGVSZXF1ZXN0SUQoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVSZXF1ZXN0SUQgPSAx
OworICAgIHJldHVybiB1bmlxdWVSZXF1ZXN0SUQrKzsKK30KKworVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFn
ZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVx
dWVzdD4gcHJwUmVxdWVzdCkKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVz
dChwcnBSZXF1ZXN0KTsKKyAgICBGcmFtZSogZnJhbWUgPSByZXF1ZXN0LT5mcmFtZSgpOworICAg
IEFTU0VSVChmcmFtZSk7CisgICAgaWYgKCFmcmFtZSkgeworICAgICAgICByZXF1ZXN0LT51c2Vy
TWVkaWFBY2Nlc3NEZW5pZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHVpbnQ2
NF90IHJlcXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVzdElEKCk7CisgICAgbV9pZFRvUmVxdWVzdE1h
cC5zZXQocmVxdWVzdElELCByZXF1ZXN0KTsKKyAgICBtX3JlcXVlc3RUb0lETWFwLnNldChyZXF1
ZXN0LCByZXF1ZXN0SUQpOworCisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZy
b21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBBU1NFUlQod2ViRnJhbWUpOworCisgICAgU2VjdXJp
dHlPcmlnaW4qIG9yaWdpbiA9IHJlcXVlc3QtPnNlY3VyaXR5T3JpZ2luKCk7CisgICAgbV9wYWdl
LnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25G
b3JGcmFtZShyZXF1ZXN0SUQsIHdlYkZyYW1lLT5mcmFtZUlEKCksIG9yaWdpbi0+ZGF0YWJhc2VJ
ZGVudGlmaWVyKCksIHJlcXVlc3QtPmF1ZGlvKCksIHJlcXVlc3QtPnZpZGVvKCkpKTsKK30KKwor
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QoVXNl
ck1lZGlhUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBtX3Jl
cXVlc3RUb0lETWFwLnRha2UocmVxdWVzdCk7CisgICAgaWYgKCFyZXF1ZXN0SUQpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2lkVG9SZXF1ZXN0TWFwLnJlbW92ZShyZXF1ZXN0SUQpOworfQorCit2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgYWxsb3dlZCkKK3sK
KyAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCA9IG1faWRUb1JlcXVlc3RNYXAu
dGFrZShyZXF1ZXN0SUQpOworICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworICAg
IG1fcmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3QpOworCisgICAgaWYgKGFsbG93ZWQpCisg
ICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBlbHNlCisgICAg
ICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi42NDM2OTMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
aApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcl9oCisjZGVmaW5lIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcl9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8V2ViQ29y
ZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFVzZXJNZWRpYVJl
cXVlc3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFz
cyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgeworcHVibGljOgorICAgIGV4cGxp
Y2l0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJik7CisKKyAgICB2
b2lkIHN0YXJ0UmVxdWVzdChQYXNzUmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+KTsK
KyAgICB2b2lkIGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCopOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCBib29sIGFsbG93ZWQpOworCitwcml2YXRlOgorICAgIHR5cGVkZWYgSGFzaE1h
cDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+PiBJRFRvUmVxdWVz
dE1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVl
c3Q+LCB1aW50NjRfdD4gUmVxdWVzdFRvSURNYXA7CisgICAgSURUb1JlcXVlc3RNYXAgbV9pZFRv
UmVxdWVzdE1hcDsKKyAgICBSZXF1ZXN0VG9JRE1hcCBtX3JlcXVlc3RUb0lETWFwOworCisgICAg
V2ViUGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjczYzhmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3Bw
CkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor
ICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKKyNpbmNsdWRlICJVc2VyTWVkaWFDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiVXNlck1lZGlh
UmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJN
ZWRpYVJlcXVlc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitXZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVzZXJNZWRpYUNsaWVudChXZWJQYWdl
JiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xp
ZW50OjpwYWdlRGVzdHJveWVkKCkKK3sKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBXZWJV
c2VyTWVkaWFDbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8VXNlck1lZGlhUmVx
dWVzdD4gcmVxdWVzdCkKK3sKKyAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKCkuc3RhcnRSZXF1ZXN0KHJlcXVlc3QpOworfQorCit2b2lkIFdlYlVzZXJNZWRpYUNs
aWVudDo6Y2FuY2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIG1f
cGFnZS51c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxSZXF1ZXN0KHJl
cXVlc3QpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ7CisKKyNlbmRpZiAvLyBNRURJQV9T
VFJFQU0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViVXNlck1lZGlhQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmVkNDU5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCkBAIC0wLDAgKzEsNDUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEw
LTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgV2ViVXNlck1lZGlhQ2xpZW50X2gKKyNkZWZpbmUg
V2ViVXNlck1lZGlhQ2xpZW50X2gKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSA8V2ViQ29yZS9Vc2VyTWVkaWFDbGllbnQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgorbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYlVzZXJN
ZWRpYUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQgeworcHVibGljOgor
ICAgIFdlYlVzZXJNZWRpYUNsaWVudChXZWJQYWdlJik7CisKK3ByaXZhdGU6CisgICAgdmlydHVh
bCB2b2lkIHBhZ2VEZXN0cm95ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Np
b24oUGFzc1JlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pik7CisgICAgdmlydHVhbCB2
b2lkIGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCopOworCisgICAgV2Vi
UGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFdlYlVzZXJNZWRpYUNsaWVudF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMDA2
NjBjMi4uYzkxYTYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtOTYsNiArOTYsNyBAQAogI2luY2x1ZGUgIldlYlByb2dyZXNzVHJhY2tl
ckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlVuZG9TdGVwLmgiCiAjaW5jbHVkZSAiV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiV2ViVXNlck1lZGlhQ2xpZW50LmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXJjaGl2
ZVJlc291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJvbWUuaD4KQEAgLTI4Miw2ICsyODMs
OSBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAg
LCBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKHRoaXMpCiAjZW5kaWYKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICwgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIoKnRoaXMpCisjZW5kaWYKICAgICAsIG1fY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKHBhcmFtZXRlcnMuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKQogICAgICwg
bV9jYW5SdW5Nb2RhbChwYXJhbWV0ZXJzLmNhblJ1bk1vZGFsKQogICAgICwgbV9pc1J1bm5pbmdN
b2RhbChmYWxzZSkKQEAgLTM4OSw2ICszOTMsOSBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90
IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICNp
ZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKICAgICBXZWJDb3JlOjpwcm92aWRlRGV2aWNlUHJv
eGltaXR5VG8obV9wYWdlLmdldCgpLCBuZXcgV2ViRGV2aWNlUHJveGltaXR5Q2xpZW50KHRoaXMp
KTsKICNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgV2ViQ29yZTo6cHJvdmlk
ZVVzZXJNZWRpYVRvKG1fcGFnZS5nZXQoKSwgbmV3IFdlYlVzZXJNZWRpYUNsaWVudCgqdGhpcykp
OworI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICBtX3BhZ2UtPnNl
dFJlbW90ZUluc3BlY3Rpb25BbGxvd2VkKHRydWUpOwpAQCAtMzI1MSw2ICszMjU4LDEzIEBAIHZv
aWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50
NjRfdCBub3RpZmljYXRpb25JRCwKICAgICBub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIoKS0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihub3RpZmlj
YXRpb25JRCwgYWxsb3dlZCk7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQordm9pZCBX
ZWJQYWdlOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCBib29sIGFsbG93ZWQpCit7CisgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1c2VyTWVk
aWFJRCwgYWxsb3dlZCk7Cit9CisjZW5kaWYKKwogI2lmICFQTEFURk9STShJT1MpCiB2b2lkIFdl
YlBhZ2U6OmFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9u
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
YmFiYTUwNi4uNmI1YWQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVk
ZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2lu
Y2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvRGljdGF0aW9uQWx0ZXJuYXRpdmUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRh
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3IuaD4KQEAgLTQ0Nyw2ICs0NDgsMTAgQEAgcHVi
bGljOgogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyJiBnZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpIHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXImIHVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcigpIHsgcmV0dXJuIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOyB9CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXZWJDb3JlOjpGbG9h
dFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0OwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBhdmFpbGFi
bGVTY3JlZW5TaXplKCkgY29uc3Q7CkBAIC0xMDE4LDYgKzEwMjMsMTAgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpOworI2VuZGlmCisKICAgICB2b2lkIGFkdmFu
Y2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKTsKICAgICB2b2lk
IGNoYW5nZVNwZWxsaW5nVG9Xb3JkKGNvbnN0IFN0cmluZyYgd29yZCk7CiAjaWYgVVNFKEFQUEtJ
VCkKQEAgLTExODIsNiArMTE5MSwxMCBAQCBwcml2YXRlOgogICAgIEdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwor
I2VuZGlmCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UHJpbnRDb250ZXh0PiBtX3By
aW50Q29udGV4dDsKICNpZiBQTEFURk9STShHVEspCiAgICAgUmVmUHRyPFdlYlByaW50T3BlcmF0
aW9uR3RrPiBtX3ByaW50T3BlcmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBlYmY3MjBkLi44N2Y0MDc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgpAQCAtMjY0LDYgKzI2NCwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExl
Z2FjeVJlY2VpdmVyIHsKICAgICBEaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNp
b24odWludDY0X3QgZ2VvbG9jYXRpb25JRCwgYm9vbCBhbGxvd2VkKQogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgICMgTWVkaWFTdGVhbQorICAgIERpZFJlY2VpdmVVc2Vy
TWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dl
ZCkKKyNlbmRpZgorCiAgICAgIyBOb3RpZmljYXRpb24KICAgICBEaWRSZWNlaXZlTm90aWZpY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93
ZWQpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBkMmRhNmI3Li4yOTNiZGE1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTQtMDktMDEgIFBoaWxpcHBlIE5vcm1h
bmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRpYUNsaWVu
dCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTaW1wbGUgQVBJIHRlc3QgZm9yIHRoZSBVc2VyTWVkaWEgcGVybWlzc2lvbiByZXF1ZXN0IEFQ
SS4gVGhlCisgICAgICAgIHJlcXVpcmVkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgaXMgYWxzbyBhZGRl
ZCwgaW5zcGlyZWQgYnkgdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIGluZnJhc3RydWN0dXJlLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6IE5ldyBBUEkgdGVzdCBmb3IgVXNlck1lZGlhCisgICAgICAgIFBlcm1pc3Npb24g
cmVxdWVzdC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlh
LmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNrKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZXRVc2VyTWVk
aWEuaHRtbDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDogbmV3CisgICAgICAgIGhlbHBlciBtZXRob2QgdG8g
c2V0IHRoZSBwZXJtaXNzaW9uIHJlcXVlc3QgcmVzdWx0IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlv
bi4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcDogRGl0dG8uCisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpzZXRVc2VyTWVk
aWFQZXJtaXNzaW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmg6IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6IERpdHRvLgorICAgICAgICAoV1RSOjpUZXN0UnVu
bmVyOjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDogRGl0dG8uCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OmRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTogUGVybWlzc2lvbgorICAgICAgICByZXF1ZXN0
IGhhbmRsZXIuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2Up
OiBFbmFibGUgdGhlIG5ldyBVc2VyTWVkaWEKKyAgICAgICAgcGVybWlzc2lvbiByZXF1ZXN0IGhh
bmRsZXIuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9w
dGlvbnMpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVy
ZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOiBFbmFibGUKKyAgICAgICAgTWVkaWFTdHJlYW0gc3Vw
cG9ydCwgdGhpcyBpcyBuZWVkZWQgZm9yIGdldFVzZXJNZWRpYS4KKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOiBjbGVhcgorICAgICAg
ICBVc2VyTWVkaWEgcGVybWlzc2lvbnMgbGlzdCBhbmQgZmxhZ3MuCisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKTogU2V0IHBlcm1pc3Npb24KKyAg
ICAgICAgcmVxdWVzdCByZXN1bHQgYW5kIGRpc3RwYXRjaCBpdC4KKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OmhhbmRsZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTogU2F2ZQorICAg
ICAgICByZXF1ZXN0IGFuZCBkaXNwYXRjaCBpdC4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSk6
CisgICAgICAgIERpc3BhdGNoIGNhY2hlZCBwZXJtaXNzaW9uIHJlcXVlc3RzLgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246
OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxNC0wOC0yOCAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gdGVz
dCBjYXNlIGZpbHRlciBzdXBwb3J0IGluIHJ1bi1ndGstdGVzdHMKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Bs
YXRmb3JtR1RLLmNtYWtlCmluZGV4IDIzYTM1ZGYuLmFiOGIzYTcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtOTcsNiArOTcsNyBAQCBhZGRfZXhlY3V0YWJsZShUZXN0
V2ViS2l0MgogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvUmVzaXplV2lu
ZG93QWZ0ZXJDcmFzaC5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQy
L1Jlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGEuY3BwCiAgICAgJHtURVNUV0VC
S0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9TaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5j
cHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAK
ICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1VzZXJNZXNzYWdlLmNwcAog
ICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVu
dC5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1dLUGFnZUdldFNj
YWxlRmFjdG9yTm90WmVyby5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjFkY2U2Yi4u
ZThkMTA3YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg4LDYgKzg4LDcgQEAKIAkJMzdF
MTA2NEQxNjk3NkM4NTAwQjc4QkQwIC8qIERPTUhUTUxUYWJsZUNlbGxDZWxsQWJvdmUubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0UxMDY0QTE2OTc2
NzY0MDBCNzhCRDAgLyogRE9NSFRNTFRhYmxlQ2VsbENlbGxBYm92ZS5tbSAqLzsgfTsKIAkJMzdF
MzhDMzQxNjlCN0QwMTAwODRDMjhDIC8qIFdlYlZpZXdEaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJj
aHkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0Uz
OEMzMzE2OUI3RDAxMDA4NEMyOEMgLyogV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNo
eS5tbSAqLzsgfTsKIAkJNDQwQTFEMzkxNEEwMTAzQTAwOEE2NkYyIC8qIFVSTC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDBBMUQzODE0QTAxMDNB
MDA4QTY2RjIgLyogVVJMLmNwcCAqLzsgfTsKKwkJNEE0MTBGNEMxOUFGN0JENjAwMkVCQUI1IC8q
IFVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0QTQxMEY0QjE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCAqLzsgfTsKIAkJ
NEJCNDE2MDIxNjgxNUIyNjAwODI0MjM4IC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZyYW1lLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJCNDE2MDEx
NjgxNUIyNjAwODI0MjM4IC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZyYW1lLm1tICovOyB9Owog
CQk0QkI0MTYwNDE2ODE1RjkxMDA4MjQyMzggLyogRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJCNDE2MDMx
NjgxNUY5MTAwODI0MjM4IC8qIEVsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5tbSAqLzsgfTsKIAkJ
NEJGREZGQTcxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRs
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QkZE
RkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNw
cCAqLzsgfTsKQEAgLTQzMCw2ICs0MzEsOCBAQAogCQkzN0UzOEMzMzE2OUI3RDAxMDA4NEMyOEMg
LyogV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlZpZXdEaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJj
aHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MEExRDM4MTRBMDEwM0EwMDhB
NjZGMiAvKiBVUkwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVJM
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRBNjIyQzExNEEwRTJCNjAwNDg1
MTVCIC8qIFdURlN0cmluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXVEZTdHJpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NEE0MTBGNEIxOUFGN0JENjAwMkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0QTQxMEY0RDE5QUY3QkVGMDAyRUJBQjUgLyogZ2V0VXNlck1lZGlhLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBnZXRVc2VyTWVkaWEuaHRtbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJCNDE2MDExNjgxNUIyNjAwODI0MjM4IC8qIEpTV3JhcHBl
ckZvck5vZGVJbldlYkZyYW1lLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTRCQjQxNjAzMTY4MTVGOTEwMDgyNDIzOCAvKiBFbGVtZW50QXRQb2ludEluV2Vi
RnJhbWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFbGVtZW50
QXRQb2ludEluV2ViRnJhbWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCRkRG
RkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGl0VGVzdFJlc3VsdE5vZGVI
YW5kbGVfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc5OCw2ICs4
MDEsNyBAQAogCQlCQzkwOTY0MTEyNTU2MTYwMDAwODM3NTYgLyogV2ViS2l0MiAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGNEIxOUFGN0JENjAw
MkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgKi8sCiAJCQkJQzBDNUQzQkIxNDU5OEI2RjAwQTgwMkE2
IC8qIG1hYyAqLywKIAkJCQlCQzkwOTc3QjEyNTU3MUFFMDAwODM3NTYgLyogUmVzb3VyY2VzICov
LAogCQkJCUJDMjQ2RDhDMTMyRjExNUEwMEI1NkQ3QyAvKiBBYm91dEJsYW5rTG9hZC5jcHAgKi8s
CkBAIC05MjksNiArOTMzLDcgQEAKIAkJQkM5MDk3N0IxMjU1NzFBRTAwMDgzNzU2IC8qIFJlc291
cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0
MTBGNEQxOUFGN0JFRjAwMkVCQUI1IC8qIGdldFVzZXJNZWRpYS5odG1sICovLAogCQkJCUMwNDVG
OTQ2MTM4NUMyRjgwMEMwRjNDRCAvKiAxOC1jaGFyYWN0ZXJzLmh0bWwgKi8sCiAJCQkJRjZCN0JF
OTYxNzQ2OUI3RTAwOEEzNDQ1IC8qIGFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzLmh0bWwgKi8sCiAJ
CQkJNzZFMTgyREUxNTQ3NUE4MzAwRjFGQUREIC8qIGF1dG8tc3VibWl0dGluZy1mb3JtLmh0bWwg
Ki8sCkBAIC0xMzI5LDYgKzEzMzQsNyBAQAogCQkJCTUxRkNGNzlBMTUzNEFDNkQwMDEwNDQ5MSAv
KiBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QUZERTY1NjE5NTNCMkMwMDBDNDhGRkEgLyogT3B0aW9uYWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQzU0MEY3NzYxNTJFNERBMDAwQTQwQzhDIC8qIFNpbXBsaWZ5TWFya3VwLm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJNEE0MTBGNEMxOUFGN0JENjAwMkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDMDJCNzdGMjEyNjYxMjE0MDAyNkJGMEYgLyogU3BhY2ViYXJTY3Jv
bGxpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNEM0QxOUUxN0IxQTg0MjAwQzdDNDE1IC8q
IExheW91dE1pbGVzdG9uZXNXaXRoQWxsQ29udGVudEluRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTE5NEUxQkIxNzdFNTE0NTAwOUM0RDRFIC8qIFN0b3BMb2FkaW5nRnJvbURpZFJlY2Vp
dmVSZXNwb25zZS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi45NGY0NzkyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVz
c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUg
dG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2luY2x1ZGUg
IlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5j
bHVkZSAiVGVzdC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUg
PHN0cmluZy5oPgorI2luY2x1ZGUgPHZlY3Rvcj4KKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwor
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCBkb25lOworCit2b2lkIGRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbEJhY2soV0tQYWdlUmVm
IHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhw
ZXJtaXNzaW9uUmVxdWVzdCk7CisgICAgZG9uZSA9IHRydWU7Cit9CisKK1RFU1QoV2ViS2l0Miwg
VXNlck1lZGlhQmFzaWMpCit7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0
KEFkb3B0V0ssIFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmll
dyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1BhZ2VVSUNsaWVudFY1IHVpQ2xpZW50OworICAgIG1l
bXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOworCisgICAgdWlDbGllbnQuYmFz
ZS52ZXJzaW9uID0gNTsKKyAgICB1aUNsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCA9IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
Q2FsbEJhY2s7CisKKyAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1
aUNsaWVudC5iYXNlKTsKKworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwoQWRvcHRXSywg
VXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImdldFVzZXJNZWRpYSIsICJodG1sIikpOworCisg
ICAgZG9uZSA9IGZhbHNlOworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5n
ZXQoKSk7CisKKyAgICBVdGlsOjpydW4oJmRvbmUpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRpYS5odG1sIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRpYS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1NGY4NTMKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWwKQEAgLTAs
MCArMSwxNCBAQAorPHNjcmlwdD4KK2Z1bmN0aW9uIGdvdFVzZXJNZWRpYShtZWRpYVN0cmVhbSkK
K3sKKyAgICBjb25zb2xlLmxvZygiR290IHVzZXIgbWVkaWEiKTsKK30KKworZnVuY3Rpb24gdXNl
ck1lZGlhRXJyb3IoZXJyb3IpCit7CisgICAgY29uc29sZS5sb2coZXJyb3IpOworfQorCit2YXIg
b3B0aW9ucyA9IHsgYXVkaW86IGZhbHNlLCB2aWRlbzogdHJ1ZX07CituYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKG9wdGlvbnMsIGdvdFVzZXJNZWRpYSwgdXNlck1lZGlhRXJyb3IpOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCBiYjlhN2EwLi4wOGExODk4IDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTE2OSw2ICsxNjksOSBAQCBpbnRlcmZhY2Ug
VGVzdFJ1bm5lciB7CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUg
bGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgW0RlZmF1bHQ9VW5k
ZWZpbmVkXSBvcHRpb25hbCBvYmplY3QgYWx0aXR1ZGUsIG9wdGlvbmFsIG9iamVjdCBhbHRpdHVk
ZUFjY3VyYWN5LCBvcHRpb25hbCBvYmplY3QgaGVhZGluZywgb3B0aW9uYWwgb2JqZWN0IHNwZWVk
KTsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihE
T01TdHJpbmcgZXJyb3JNZXNzYWdlKTsKIAorICAgIC8vIE1lZGlhU3RyZWFtCisgICAgdm9pZCBz
ZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2xlYW4gdmFsdWUpOworCiAgICAgLy8gQXVkaW8gdGVz
dGluZy4KICAgICBbUGFzc0NvbnRleHRdIHZvaWQgc2V0QXVkaW9SZXN1bHQob2JqZWN0IGRhdGEp
OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDdiMWRlNzAuLjFiNmViZDAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
Y3BwCkBAIC00NTgsNiArNDU4LDEzIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldE1vY2tHZW9s
b2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihXS1N0cmluZ1JlZiBlcnJvCiAgICAgV0tC
dW5kbGVQb3N0TWVzc2FnZShtX2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0KCksIGVycm9yTWVzc2Fn
ZSk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldFVzZXJNZWRpYVBlcm1pc3Npb24oYm9v
bCBlbmFibGVkKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShB
ZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0VXNlck1lZGlhUGVybWlz
c2lvbiIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0
V0ssIFdLQm9vbGVhbkNyZWF0ZShlbmFibGVkKSk7CisgICAgV0tCdW5kbGVQb3N0TWVzc2FnZSht
X2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKK30KKwogdm9p
ZCBJbmplY3RlZEJ1bmRsZTo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFibGVkLCBi
b29sIHBlcm1pc3NpdmUpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VO
YW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRDdXN0b21Qb2xp
Y3lEZWxlZ2F0ZSIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAppbmRleCA5Zjc2YTlkLi44ZjBhODQwIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5oCkBAIC05Miw2ICs5Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1vY2tHZW9sb2Nh
dGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFj
Y3VyYWN5LCBib29sIHByb3ZpZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92
aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3Zp
ZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNw
ZWVkKTsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJv
cihXS1N0cmluZ1JlZiBlcnJvck1lc3NhZ2UpOwogCisgICAgLy8gTWVkaWFTdHJlYW0uCisgICAg
dm9pZCBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wpOworCiAgICAgLy8gUG9saWN5IGRlbGVn
YXRlLgogICAgIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFibGVkLCBib29s
IHBlcm1pc3NpdmUpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBkMDg1ZjFhLi5kNzUxYjk1IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
QEAgLTcyMCw2ICs3MjAsMTIgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Q
b3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoSlNTdHJpbmdSZWYgbWVzc2FnZSkKICAgICBJbmplY3Rl
ZEJ1bmRsZTo6c2hhcmVkKCkuc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVy
cm9yKG1lc3NhZ2VXSy5nZXQoKSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0VXNlck1lZGlh
UGVybWlzc2lvbihib29sIGVuYWJsZWQpCit7CisgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIGJl
IGRvbmUgYnkgZnJhbWUuCisgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnNldFVzZXJNZWRp
YVBlcm1pc3Npb24oZW5hYmxlZCk7Cit9CisKIGJvb2wgVGVzdFJ1bm5lcjo6Y2FsbFNob3VsZENs
b3NlT25XZWJWaWV3KCkKIHsKICAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdLQnVu
ZGxlUGFnZUdldE1haW5GcmFtZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdl
KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuaAppbmRleCBlMjFmZmYzLi4zOTRlOTA4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMjUyLDYgKzI1Miw5IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRp
dHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBKU1ZhbHVlUmVmIGFsdGl0
dWRlLCBKU1ZhbHVlUmVmIGFsdGl0dWRlQWNjdXJhY3ksIEpTVmFsdWVSZWYgaGVhZGluZywgSlNW
YWx1ZVJlZiBzcGVlZCk7CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZh
aWxhYmxlRXJyb3IoSlNTdHJpbmdSZWYgbWVzc2FnZSk7CiAKKyAgICAvLyBNZWRpYVN0cmVhbQor
ICAgIHZvaWQgc2V0VXNlck1lZGlhUGVybWlzc2lvbihib29sKTsKKwogICAgIHZvaWQgc2V0UGFn
ZVZpc2liaWxpdHkoSlNTdHJpbmdSZWYgc3RhdGUpOwogICAgIHZvaWQgcmVzZXRQYWdlVmlzaWJp
bGl0eSgpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IDNmZTM3NzkuLjlhZGQ5NmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCkBAIC0xODgsNiArMTg4LDExIEBAIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvckdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXCiAgICAg
VGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLmhhbmRsZUdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QocGVybWlzc2lvblJlcXVlc3QpOwogfQogCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLU2VjdXJp
dHlPcmlnaW5SZWYsIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJl
cXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgVGVzdENvbnRyb2xsZXI6OnNo
YXJlZCgpLmhhbmRsZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0
KTsKK30KKwogaW50IFRlc3RDb250cm9sbGVyOjpnZXRDdXN0b21UaW1lb3V0KCkKIHsKICAgICBy
ZXR1cm4gbV90aW1lb3V0OwpAQCAtMjAyLDggKzIwNyw4IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJv
bGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYs
IFdLCiAKICAgICB2aWV3LT5yZXNpemVUbyg4MDAsIDYwMCk7CiAKLSAgICBXS1BhZ2VVSUNsaWVu
dFYyIG90aGVyUGFnZVVJQ2xpZW50ID0gewotICAgICAgICB7IDIsIHZpZXcgfSwKKyAgICBXS1Bh
Z2VVSUNsaWVudFY1IG90aGVyUGFnZVVJQ2xpZW50ID0geworICAgICAgICB7IDUsIHZpZXcgfSwK
ICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCiAgICAg
ICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIGNsb3NlT3RoZXJQYWdlLApAQCAtMjUwLDYgKzI1
NSwxMSBAQCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VS
ZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXSwogICAgICAgICAwLCAvLyBzaG93Q29sb3JQ
aWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIHVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZAorICAgICAgICAwLCAvLyBwaW5uZWRTdGF0ZURpZENo
YW5nZQorICAgICAgICAwLCAvLyBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJl
c3MKKyAgICAgICAgMCwgLy8gZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MKKyAgICAgICAgMCwg
Ly8gZGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcworICAgICAgICBkZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKICAgICB9OwogICAgIFdLUGFn
ZVNldFBhZ2VVSUNsaWVudChuZXdQYWdlLCAmb3RoZXJQYWdlVUlDbGllbnQuYmFzZSk7CiAKQEAg
LTQwOCw4ICs0MTgsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdj
LCBjb25zdCBjaGFyKiBhcmd2W10pCiB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3
V2l0aE9wdGlvbnMoV0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpCiB7CiAgICAgbV9tYWluV2ViVmll
dyA9IHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1XZWJWaWV3PihtX2NvbnRleHQuZ2V0KCksIG1f
cGFnZUdyb3VwLmdldCgpLCBudWxscHRyLCBvcHRpb25zKTsKLSAgICBXS1BhZ2VVSUNsaWVudFYy
IHBhZ2VVSUNsaWVudCA9IHsKLSAgICAgICAgeyAyLCBtX21haW5XZWJWaWV3LmdldCgpIH0sCisg
ICAgV0tQYWdlVUlDbGllbnRWNSBwYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgNSwgbV9tYWlu
V2ViVmlldy5nZXQoKSB9LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRG
b3JVc2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAgMCwgLy8gY2xvc2UK
QEAgLTQ1Niw2ICs0NjYsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dp
dGhPcHRpb25zKFdLRGljdGlvbmFyeVJlZiBvcHRpb25zKQogICAgICAgICAwLCAvLyBzaG93Q29s
b3JQaWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIHVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCwKKyAgICAgICAgMCwgLy8gcGlubmVkU3RhdGVEaWRDaGFu
Z2UKKyAgICAgICAgMCwgLy8gZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNz
CisgICAgICAgIDAsIC8vIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzCisgICAgICAgIDAsIC8v
IGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MKKyAgICAgICAgZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsCiAgICAgfTsKICAgICBXS1BhZ2VT
ZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50LmJhc2Up
OwogCkBAIC01NDEsNiArNTU2LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJl
bmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgV0tQcmVmZXJlbmNlc1NldEZvbnRTbW9vdGhp
bmdMZXZlbChwcmVmZXJlbmNlcywga1dLRm9udFNtb290aGluZ0xldmVsTm9TdWJwaXhlbEFudGlB
bGlhc2luZyk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFhTU0F1ZGl0b3JFbmFibGVkKHByZWZlcmVu
Y2VzLCBmYWxzZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFdlYkF1ZGlvRW5hYmxlZChwcmVmZXJl
bmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhU3RyZWFtRW5hYmxlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldERldmVsb3BlckV4dHJhc0VuYWJs
ZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0RXhw
ZXJpbWVudHNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0
SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShwcmVmZXJlbmNlcywgdHJ1ZSk7
CkBAIC02MzcsNiArNjUzLDExIEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0Nv
bnNpc3RlbnRWYWx1ZXMoKQogICAgIG1faXNHZW9sb2NhdGlvblBlcm1pc3Npb25TZXQgPSBmYWxz
ZTsKICAgICBtX2lzR2VvbG9jYXRpb25QZXJtaXNzaW9uQWxsb3dlZCA9IGZhbHNlOwogCisgICAg
Ly8gUmVzZXQgVXNlck1lZGlhIHBlcm1pc3Npb25zLgorICAgIG1fdXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RzLmNsZWFyKCk7CisgICAgbV9pc1VzZXJNZWRpYVBlcm1pc3Npb25TZXQgPSBmYWxz
ZTsKKyAgICBtX2lzVXNlck1lZGlhUGVybWlzc2lvbkFsbG93ZWQgPSBmYWxzZTsKKwogICAgIC8v
IFJlc2V0IEN1c3RvbSBQb2xpY3kgRGVsZWdhdGUuCiAgICAgc2V0Q3VzdG9tUG9saWN5RGVsZWdh
dGUoZmFsc2UsIGZhbHNlKTsKIApAQCAtMTM0OCw2ICsxMzY5LDM0IEBAIHZvaWQgVGVzdENvbnRy
b2xsZXI6OmhhbmRsZUdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tHZW9sb2NhdGlvblBl
cm1pc3Npb25SCiAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dElmUG9zc2libGUoKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0VXNlck1lZGlhUGVy
bWlzc2lvbihib29sIGVuYWJsZWQpCit7CisgICAgbV9pc1VzZXJNZWRpYVBlcm1pc3Npb25TZXQg
PSB0cnVlOworICAgIG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uQWxsb3dlZCA9IGVuYWJsZWQ7Cisg
ICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKCk7
Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmhhbmRsZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QpCit7CisgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuYXBwZW5kKHVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTsKKyAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdElmUG9zc2libGUoKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6ZGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKCkKK3sKKyAg
ICBpZiAoIW1faXNVc2VyTWVkaWFQZXJtaXNzaW9uU2V0KQorICAgICAgICByZXR1cm47CisKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLnNp
emUoKTsgKytpKSB7CisgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcGVy
bWlzc2lvblJlcXVlc3QgPSBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0c1tpXS5nZXQoKTsK
KyAgICAgICAgaWYgKG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uQWxsb3dlZCkKKyAgICAgICAgICAg
IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhwZXJtaXNzaW9uUmVxdWVzdCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55
KHBlcm1pc3Npb25SZXF1ZXN0KTsKKyAgICB9CisgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdHMuY2xlYXIoKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0Q3VzdG9tUG9saWN5
RGVsZWdhdGUoYm9vbCBlbmFibGVkLCBib29sIHBlcm1pc3NpdmUpCiB7CiAgICAgbV9wb2xpY3lE
ZWxlZ2F0ZUVuYWJsZWQgPSBlbmFibGVkOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oCmluZGV4IGQ5YmU3NDguLjU5YTdlODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKQEAgLTg4LDYgKzg4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1v
Y2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihXS1N0cmluZ1JlZiBlcnJvck1l
c3NhZ2UpOwogICAgIHZvaWQgaGFuZGxlR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS0dl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYpOwogCisgICAgLy8gTWVkaWFTdHJlYW0uCisg
ICAgdm9pZCBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wpOworICAgIHZvaWQgaGFuZGxlVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7
CisKICAgICAvLyBQb2xpY3kgZGVsZWdhdGUuCiAgICAgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxl
Z2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSk7CiAKQEAgLTEzMyw2ICsxMzcsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlTGF5b3V0VHlwZUZvclRlc3QoY29uc3QgVGVzdElu
dm9jYXRpb24mKTsKIAogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdElmUG9zc2libGUoKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpOwogCiAgICAgLy8gV0tDb250ZXh0SW5qZWN0
ZWRCdW5kbGVDbGllbnQKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21Jbmpl
Y3RlZEJ1bmRsZShXS0NvbnRleHRSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVS
ZWYgbWVzc2FnZUJvZHksIGNvbnN0IHZvaWQqKTsKQEAgLTIzNyw2ICsyNDIsMTAgQEAgcHJpdmF0
ZToKICAgICBib29sIG1faXNHZW9sb2NhdGlvblBlcm1pc3Npb25TZXQ7CiAgICAgYm9vbCBtX2lz
R2VvbG9jYXRpb25QZXJtaXNzaW9uQWxsb3dlZDsKIAorICAgIFZlY3RvcjxXS1JldGFpblB0cjxX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmPj4gbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdHM7CisgICAgYm9vbCBtX2lzVXNlck1lZGlhUGVybWlzc2lvblNldDsKKyAgICBib29sIG1f
aXNVc2VyTWVkaWFQZXJtaXNzaW9uQWxsb3dlZDsKKwogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0
ZUVuYWJsZWQ7CiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlUGVybWlzc2l2ZTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCAzNjM3NzAzLi44N2M0NmM0
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtNDc4LDYg
KzQ3OCwxMyBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21Jbmpl
Y3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAgICByZXR1cm47CiAgICAg
fQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJT
ZXRVc2VyTWVkaWFQZXJtaXNzaW9uIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1l
c3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQm9vbGVhblJl
ZiBlbmFibGVkV0sgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsKKyAg
ICAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnNldFVzZXJNZWRpYVBlcm1pc3Npb24oV0tC
b29sZWFuR2V0VmFsdWUoZW5hYmxlZFdLKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAg
ICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldEN1c3Rv
bVBvbGljeURlbGVnYXRlIikpIHsKICAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VC
b2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7CiAgICAgICAgIFdLRGljdGlvbmFyeVJl
ZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+KG1l
c3NhZ2VCb2R5KTsKLS0gCjIuMS4w
</data>
<flag name="review"
          id="262229"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238912</attachid>
            <date>2014-09-30 00:08:48 -0700</date>
            <delta_ts>2014-09-30 01:17:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>113520</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA2NjUxZDg2NGJlNjA0MmJjMGUxZTI1NWYxZTQ2ZGIyNWUwYTkzYTAzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDIgU2VwIDIwMTQgMTE6NTY6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDMxICsrKysrKysrCiAuLi4vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQtZXhwZWN0
ZWQudHh0ICAgICAgICB8IDEwICsrKwogLi4uL21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lv
bi1hbGxvd2VkLmh0bWwgICAgfCAzNCArKysrKysrKwogLi4uL2RlbGF5ZWQtcGVybWlzc2lvbi1k
ZW5pZWQtZXhwZWN0ZWQudHh0ICAgICAgICAgfCAxMCArKysKIC4uLi9tZWRpYXN0cmVhbS9kZWxh
eWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwgICAgIHwgMzcgKysrKysrKysrCiBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dCAgICB8IDEwICsrKwogTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sICAgICAgICAgICAgfCAyOSArKysrKysr
CiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0ICB8ICA5
ICsrKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwgICAgICAgICAg
fCAyNiArKysrKysKIC4uLi9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQg
ICAgICAgIHwgMTEgKysrCiAuLi4vbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJl
YWR5Lmh0bWwgICB8IDQ0ICsrKysrKysrKysrCiAuLi4vbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3Rl
ZC1mcmFtZS1leHBlY3RlZC50eHQgICB8IDExICsrKwogLi4uc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQgfCAxMyArKysKIC4uLi9kaXNjb25uZWN0ZWQtZnJh
bWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCAgICAgIHwgNTMgKysrKysrKysrKysrKwogLi4uL21l
ZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbCAgICAgfCA0MiArKysrKysr
KysrCiAuLi4vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIxLmh0bWwgICAgICAgICB8
ICA4ICsrCiAuLi4vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0bWwgICAgICAg
ICB8ICA4ICsrCiAuLi4vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sICAg
ICAgICB8ICA4ICsrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyAg
ICAgICAgICB8IDM4ICsrKysrKysrLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAyMiArKysrKysKIC4uLi9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwICAgICAgIHwgMTEgKysrCiAuLi4vV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCB8ICA3ICsrCiBTb3VyY2UvV2ViS2l0Mi9DTWFr
ZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrCiBTb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDc0ICsrKysrKysrKysrKysrKysr
CiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggICAgICAgICAgICAgICB8ICAx
ICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCAgICAgICAgICAgICAgICAgIHwg
IDEgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oICAgICAgICAg
fCAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggICAgICAg
ICB8ICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwICAgICAg
ICAgIHwgMTEgKystCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGll
bnQuaCAgICB8IDY4ICsrKysrKysrKysrKysrKysKIC4uLi9BUEkvQy9XS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0LmNwcCAgICAgICAgIHwgNDAgKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9B
UEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggfCAzNyArKysrKysrKysKIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaCAgICAgICAgIHwgIDEgKwogLi4u
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAgICAgfCA2MyArKysr
KysrKysrKysrKysKIC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5o
ICAgICAgIHwgNDggKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5jcHAgIHwgNTQgKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggICAgfCA1NCArKysrKysrKysrKysrCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCAgICAgICAgICB8IDE0ICsrKysK
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAgICAgIHwgIDcg
KysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gIHwg
IDUgKysKIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAg
IHwgNDQgKysrKysrKysrKysKIC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwICAgICAgICAgIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKwogLi4uL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICAgICAgICAgICAgfCA1OCArKysrKysrKysrKysrKwog
Li4uL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgICAgICAgICAgfCA1NSAr
KysrKysrKysrKysrCiAuLi4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFD
bGllbnQuaCB8IDQ1ICsrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgICAgICB8IDE0ICsrKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmggICAgICAgIHwgMTMgKysrCiAuLi4vV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiB8ICA1ICsrCiBUb29scy9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ1ICsrKysrKysrKysrCiBUb29scy9U
ZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlICAgICAgICAgICAgICB8ICAxICsKIC4uLi9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgIHwgIDYgKysKIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwICAgIHwgNjMgKysr
KysrKysrKysrKysrCiAuLi4vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRp
YS5odG1sICB8IDE0ICsrKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbCAgICAgICAgIHwgIDMgKwogLi4uL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNw
cCAgICAgICAgICAgICAgfCAgNyArKwogLi4uL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmggICAgICAgICAgICAgICAgfCAgMyArCiAuLi4vV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcCB8ICA2ICsrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCB8ICAzICsKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwICAgICAgICAgIHwgNTcgKysrKysrKysrKysrKy0KIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCAgICAgICAgICAgIHwgIDkgKysrCiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCAgICAgICAgICB8ICA3ICsrCiA2MSBm
aWxlcyBjaGFuZ2VkLCAxNTA1IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Np
b24tYWxsb3dlZC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLmh0bWwKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lv
bi1kZW5pZWQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRt
bAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vz
cy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3N1Y2Nlc3MuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVj
dGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25u
ZWN0ZWQtZnJhbWUtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Np
b24tZGVuaWVkLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9u
LWRlbmllZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMv
ZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIxLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlz
Y29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29u
bmVjdGVkLWZyYW1lLWlubmVyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWwKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggOGJmYzdmYS4uM2ZkYTZiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTA5LTAxICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBV
c2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU2ltcGxlIFVzZXJNZWRpYSBwZXJtaXNzaW9uIHJlcXVlc3QgdGVzdHMg
aW5zcGlyZWQgZnJvbSB0aGUKKyAgICAgICAgR2VvbG9jYXRpb24gdGVzdCBzdWl0ZS4KKworICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2Vycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9zdWNjZXNzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24t
ZGVuaWVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9k
ZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlz
Y29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVk
LWZyYW1lLXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Np
b24tZGVuaWVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFscmVh
ZHktaW5uZXIxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c3RyZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1pbm5lcjIuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2Vz
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNC0wOS0wMiAgU2VyZ2lvIFZpbGxhciBTZW5p
biAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBIYW5k
bGUgcGVyY2VudGFnZXMgb2YgaW5kZWZpbml0ZSBzaXplcyBpbiBtaW5tYXgoKSBhbmQgZ3JpZC1h
dXRvLSoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1w
ZXJtaXNzaW9uLWFsbG93ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjNmODI1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgbm8gY2FsbGJhY2tzIGFyZSBpbnZv
a2VkIHVudGlsIHBlcm1pc3Npb24gaXMgYWxsb3dlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1NDdjMDcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1h
bGxvd2VkLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBu
byBjYWxsYmFja3MgYXJlIGludm9rZWQgdW50aWwgcGVybWlzc2lvbiBpcyBhbGxvd2VkLiIpOwor
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBhbGxvd1Blcm1pc3Npb24o
KSB7CisgICAgcGVybWlzc2lvblNldCA9IHRydWU7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7Cit9CisK
K3ZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07CituYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgeworICAgaWYgKHBlcm1p
c3Npb25TZXQpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2Vk
Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKK30s
IGZ1bmN0aW9uKGUpIHsKKyAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVu
ZXhwZWN0ZWRseScpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKK3dpbmRvdy5zZXRUaW1l
b3V0KGFsbG93UGVybWlzc2lvbiwgMTAwKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Np
b24tZGVuaWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVs
YXllZC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYWZmNjdkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBubyBjYWxsYmFja3MgYXJlIGludm9rZWQgdW50aWwg
cGVybWlzc2lvbiBpcyBkZW5pZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIGVycm9yLmNvZGUgaXMgZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2ZGE0YWEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1k
ZW5pZWQuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IG5v
IGNhbGxiYWNrcyBhcmUgaW52b2tlZCB1bnRpbCBwZXJtaXNzaW9uIGlzIGRlbmllZC4iKTsKK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gZGVueVBlcm1pc3Npb24oKSB7
CisgICAgcGVybWlzc2lvblNldCA9IHRydWU7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24oZmFsc2UpOworfQorCit2
YXIgZXJyb3I7Cit2YXIgb3B0aW9ucyA9IHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9OworbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKKyAg
ICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmdW5jdGlvbihlKSB7CisgICAgaWYgKHBlcm1pc3Npb25T
ZXQpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgICAgICBzaG91bGRCZSgnZXJyb3IuY29kZScs
ICdlcnJvci5QRVJNSVNTSU9OX0RFTklFRCcpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZv
a2VkIHVuZXhwZWN0ZWRseScpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKK3dpbmRvdy5z
ZXRUaW1lb3V0KGRlbnlQZXJtaXNzaW9uLCAxMDApOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2MjlkMjIyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMCBAQAorVGVzdHMgVXNlck1lZGlhIGVycm9yIGNhbGxiYWNrIHVzaW5nIHRo
ZSBtb2NrIHNlcnZpY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGVy
cm9yLmNvZGUgaXMgZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L2Vycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThjNTE1OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRt
bApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBVc2VyTWVkaWEgZXJyb3Ig
Y2FsbGJhY2sgdXNpbmcgdGhlIG1vY2sgc2VydmljZS4iKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0VXNl
ck1lZGlhUGVybWlzc2lvbihmYWxzZSk7CitlbHNlCisgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4g
bm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyJyk7CisKK3ZhciBlcnJvcjsKK3ZhciBv
cHRpb25zID0ge2F1ZGlvOmZhbHNlLCB2aWRlbzp0cnVlfTsKK25hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7CisgICAgdGVzdEZhaWxlZCgnU3Vj
Y2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgIGZpbmlzaEpTVGVzdCgp
OworfSwgZnVuY3Rpb24oZSkgeworICAgIGVycm9yID0gZTsKKyAgICBzaG91bGRCZSgnZXJyb3Iu
Y29kZScsICdlcnJvci5QRVJNSVNTSU9OX0RFTklFRCcpOworICAgIGZpbmlzaEpTVGVzdCgpOwor
fSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjgyMjNlYmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdHMg
VXNlck1lZGlhIHN1Y2Nlc3MgY2FsbGJhY2sgdXNpbmcgdGhlIG1vY2sgc2VydmljZS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3N1Y2Nlc3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vz
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjZjFmMjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbApA
QCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBVc2VyTWVkaWEgc3VjY2VzcyBj
YWxsYmFjayB1c2luZyB0aGUgbW9jayBzZXJ2aWNlLiIpOword2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRVc2Vy
TWVkaWFQZXJtaXNzaW9uKHRydWUpOworZWxzZQorICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5v
dCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lcicpOworCit2YXIgb3B0aW9ucyA9IHthdWRp
bzogdHJ1ZSwgdmlkZW86IHRydWV9OworbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRp
b25zLCBmdW5jdGlvbihzdHJlYW0pIHsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZ1bmN0aW9u
KGUpIHsKKyAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRs
eScpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFt
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTA1ZGI5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJl
YW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEg
QEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyNDogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNl
cHRpb24gOTogVGhlIGltcGxlbWVudGF0aW9uIGRpZCBub3Qgc3VwcG9ydCB0aGUgcmVxdWVzdGVk
IHR5cGUgb2Ygb2JqZWN0IG9yIG9wZXJhdGlvbi4KK1Rlc3RzIHRoYXQgd2hlbiBhIGdldFVzZXJN
ZWRpYSByZXF1ZXN0IGlzIG1hZGUgYWZ0ZXIgaXRzIGZyYW1lIGhhcyBiZWVuIGRpc2Nvbm5lY3Rl
ZCwgbm8gY2FsbGJhY2tzIGFyZSBtYWRlIGFuZCBubyBjcmFzaCBvY2N1cnMuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCit3ZWJraXRHZXRVc2VyTWVkaWEgY2FsbGVkIG9uIG9iamVj
dCB3aXRoIGRpc2Nvbm5lY3RlZCBGcmFtZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1l
LWFscmVhZHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzY0OGY4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdoZW4gYSBnZXRVc2VyTWVkaWEgcmVxdWVz
dCBpcyBtYWRlIGFmdGVyIGl0cyBmcmFtZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIG5vIGNhbGxi
YWNrcyBhcmUgbWFkZSBhbmQgbm8gY3Jhc2ggb2NjdXJzLiIpOword2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRV
c2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworCitmdW5jdGlvbiBvbkZpcnN0SWZyYW1lTG9hZGVk
KCkgeworICAgIGlmcmFtZU5hdmlnYXRvciA9IGlmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRv
cjsKKyAgICBpZnJhbWUuc3JjID0gJ3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFk
eS1pbm5lcjIuaHRtbCc7Cit9CisKK3ZhciBlcnJvcjsKK3ZhciBvcHRpb25zID0ge2F1ZGlvOiB0
cnVlLCB2aWRlbzogdHJ1ZX07CitmdW5jdGlvbiBvblNlY29uZElmcmFtZUxvYWRlZCgpIHsKKyAg
ICBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDUwMCk7CisKKyAgICBpZnJhbWVOYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgeworICAgICAgICB0ZXN0
RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgIH0sIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdGVzdEZhaWxl
ZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgZGVi
dWcoJ3dlYmtpdEdldFVzZXJNZWRpYSBjYWxsZWQgb24gb2JqZWN0IHdpdGggZGlzY29ubmVjdGVk
IEZyYW1lLicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit2YXIgaWZyYW1lID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CitpZnJhbWUuc3JjID0gJ3Jlc291cmNlcy9kaXNj
b25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1pbm5lcjEuaHRtbCc7Citkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGlmcmFtZSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5l
Y3RlZC1mcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmYjc4YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZy
YW1lMC0tPi0tPiIgLSBoYXMgMSBvbnVubG9hZCBoYW5kbGVyKHMpCitUZXN0cyB0aGF0IHdoZW4g
YSByZXF1ZXN0IGlzIG1hZGUgb24gYSBVc2VyTWVkaWEgb2JqZWN0IGFuZCBpdHMgRnJhbWUgaXMg
ZGlzY29ubmVjdGVkIGJlZm9yZSBhIGNhbGxiYWNrIGlzIG1hZGUsIHRoZSBlcnJvciBjYWxsYmFj
ayBpcyBpbnZva2VkIHdpdGggdGhlIGNvcnJlY3QgZXJyb3IgbWVzc2FnZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgTm8gY2FsbGJhY2tzIGludm9rZWQKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJh
bWUtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzI0NjMx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEzIEBACitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4i
IC0gaGFzIDEgb251bmxvYWQgaGFuZGxlcihzKQorVGVzdHMgdGhhdCB3aGVuIGEgZ2V0VXNlck1l
ZGlhIHJlcXVlc3QgaXMgbWFkZSwgcGVybWlzc2lvbiBpcyBkZW5pZWQgYW5kIGl0cyBGcmFtZSBp
cyBkaXNjb25uZWN0ZWQgYmVmb3JlIGEgY2FsbGJhY2sgaXMgbWFkZSwgdGhlIGVycm9yIGNhbGxi
YWNrIGlzIGludm9rZWQgd2l0aCBQRVJNSVNTSU9OX0RFTklFRC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgZXJyb3IuY29kZSBpcyBlcnJvci5QRVJNSVNTSU9OX0RFTklF
RAorCitQQVNTIE5vIGNhbGxiYWNrcyBpbnZva2VkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVu
aWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNj
b25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi43ZDE5NzkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Np
b24tZGVuaWVkLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVz
dHMgdGhhdCB3aGVuIGEgZ2V0VXNlck1lZGlhIHJlcXVlc3QgaXMgbWFkZSwgcGVybWlzc2lvbiBp
cyBkZW5pZWQgYW5kIGl0cyBGcmFtZSBpcyBkaXNjb25uZWN0ZWQgYmVmb3JlIGEgY2FsbGJhY2sg
aXMgbWFkZSwgdGhlIGVycm9yIGNhbGxiYWNrIGlzIGludm9rZWQgd2l0aCBQRVJNSVNTSU9OX0RF
TklFRC4iKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbihmYWxzZSk7Citl
bHNlCisgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0
UnVubmVyJyk7CisKK3ZhciBlcnJvcjsKK3ZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRl
bzogdHJ1ZX07CitmdW5jdGlvbiBvbklmcmFtZUxvYWRlZCgpIHsKKyAgICBpZnJhbWVOYXZpZ2F0
b3IgPSBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3I7CisgICAgaWZyYW1lTmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKKyAgICAgICAg
dGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9LCBmdW5jdGlvbihlKSB7CisgICAgICAgIGVycm9y
ID0gZTsKKyAgICAgICAgc2hvdWxkQmUoJ2Vycm9yLmNvZGUnLCAnZXJyb3IuUEVSTUlTU0lPTl9E
RU5JRUQnKTsKKyAgICAgICAgZGVidWcoJycpOworICAgICAgICBpZnJhbWUuc3JjID0gJ2RhdGE6
dGV4dC9odG1sLFRoaXMgZnJhbWUgc2hvdWxkIGJlIHZpc2libGUgd2hlbiB0aGUgdGVzdCBjb21w
bGV0ZXMnOworICAgIH0pOworfQorCitmdW5jdGlvbiBvbklmcmFtZVVubG9hZGVkKCkgeworICAg
IC8vIE1ha2UgYW5vdGhlciByZXF1ZXN0LCB3aXRoIHBlcm1pc3Npb24gYWxyZWFkeSBkZW5pZWQu
CisgICAgaWZyYW1lTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlv
bihzdHJlYW0pIHsKKyAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2Vk
IHVuZXhwZWN0ZWRseScpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9LCBmdW5jdGlv
bihlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBl
Y3RlZGx5Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgIHRlc3RQYXNzZWQoJ05vIGNhbGxiYWNrcyBpbnZva2Vk
Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0sIDEwMCk7Cit9CisKK3ZhciBpZnJh
bWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKK2lmcmFtZS5zcmMgPSAncmVz
b3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sJzsKK2RvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoaWZyYW1lKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNj
b25uZWN0ZWQtZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmFlYzFjMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbApAQCAtMCwwICsx
LDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdoZW4gYSByZXF1ZXN0IGlzIG1hZGUg
b24gYSBVc2VyTWVkaWEgb2JqZWN0IGFuZCBpdHMgRnJhbWUgaXMgZGlzY29ubmVjdGVkIGJlZm9y
ZSBhIGNhbGxiYWNrIGlzIG1hZGUsIHRoZSBlcnJvciBjYWxsYmFjayBpcyBpbnZva2VkIHdpdGgg
dGhlIGNvcnJlY3QgZXJyb3IgbWVzc2FnZS4iKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlh
UGVybWlzc2lvbih0cnVlKTsKKworZnVuY3Rpb24gb25JZnJhbWVMb2FkZWQoKSB7CisgICAgaWZy
YW1lTmF2aWdhdG9yID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yOworICAgIGlmcmFt
ZS5zcmMgPSAnZGF0YTp0ZXh0L2h0bWwsVGhpcyBmcmFtZSBzaG91bGQgYmUgdmlzaWJsZSB3aGVu
IHRoZSB0ZXN0IGNvbXBsZXRlcyc7Cit9CisKK2Z1bmN0aW9uIG9uSWZyYW1lVW5sb2FkZWQoKSB7
CisgICAgdmFyIG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfTsKKyAgICBpZnJh
bWVOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uIChzdHJlYW0p
IHsKKyAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0
ZWRseScpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9LCBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworCisgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgnTm8gY2FsbGJhY2tzIGludm9rZWQnKTsKKyAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgMTAwKTsKK30KKwordmFyIGlmcmFtZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworaWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMv
ZGlzY29ubmVjdGVkLWZyYW1lLWlubmVyLmh0bWwnOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChpZnJhbWUpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9kaXNjb25u
ZWN0ZWQtZnJhbWUtYWxyZWFkeS1pbm5lcjEuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1p
bm5lcjEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZGNhMzUwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJl
YW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMS5odG1sCkBAIC0w
LDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgIDwvaGVhZD4K
KyAgPGJvZHkgb25sb2FkPSJ3aW5kb3cucGFyZW50Lm9uRmlyc3RJZnJhbWVMb2FkZWQoKSI+Cisg
ICAgPHA+VGhpcyBmcmFtZSBzaG91bGQgYmUgcmVwbGFjZWQgYmVmb3JlIHRoZSB0ZXN0IGVuZHM8
L3A+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFk
eS1pbm5lcjIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFt
L3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1pbm5lcjIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZThkZTk3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rpc2Nv
bm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMi5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgb25sb2FkPSJ3
aW5kb3cucGFyZW50Lm9uU2Vjb25kSWZyYW1lTG9hZGVkKCkiPgorICAgIDxwPlRoaXMgZnJhbWUg
c2hvdWxkIGJlIHZpc2libGUgd2hlbiB0aGUgdGVzdCBjb21wbGV0ZXM8L3A+CisgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c3RyZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtaW5uZXIuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQt
ZnJhbWUtaW5uZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDg2
MjgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zdHJlYW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sCkBAIC0wLDAg
KzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgIDwvaGVhZD4KKyAg
PGJvZHkgb25sb2FkPSJ3aW5kb3cucGFyZW50Lm9uSWZyYW1lTG9hZGVkKCkiIG9udW5sb2FkPSJ3
aW5kb3cucGFyZW50Lm9uSWZyYW1lVW5sb2FkZWQoKTsiPgorICAgIDxwPlRoaXMgZnJhbWUgc2hv
dWxkIGJlIHJlcGxhY2VkIGJlZm9yZSB0aGUgdGVzdCBlbmRzPC9wPgorICA8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDI4ZDU0
NGEuLjZiYzcxYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CkBAIC0yOTEsNyArMjkxLDQzIEBAIHdlYmtpdC5vcmcvYi84NTIxMSBpZXRlc3RjZW50ZXIvY3Nz
My9mbGV4Ym94L2ZsZXhib3gtYWxpZ24tc3RyZXRjaC0wMDEuaHRtIFsgSW1hCiB3ZWJraXQub3Jn
L2IvODUyMTIgaWV0ZXN0Y2VudGVyL2NzczMvZmxleGJveC9mbGV4Ym94LWxheW91dC0wMDIuaHRt
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKICMgTWVkaWFzdHJlYW0gaW1wbGVtZW50YXRpb24gaXMg
bm90IGNvbXBsZXRlIHlldC4KLXdlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtIFsg
U2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9hcmd1bWVudC10eXBl
cy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9nZXR1
c2VybWVkaWEuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0tYWRkLWVuZGVkLXRyYWNrcy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3Jn
L2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNrcy5o
dG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbS1hZGQtdHJhY2tzLXRvLWluYWN0aXZlLXN0cmVhbS5odG1sIFsgU2tpcCBdCit3ZWJraXQu
b3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1jbG9uZS5odG1sIFsgU2tp
cCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0
cnVjdG9yLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtLWNvbnN0cnVjdC13aXRoLWVuZGVkLXRyYWNrcy5odG1sIFsgU2tpcCBdCit3
ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1nZXRUcmFja3Mu
aHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0tTWVkaWFFbGVtZW50LXNyY09iamVjdC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2Iv
NzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQtY29uc3RydWN0b3Iu
aHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay1nZXRTb3VyY2VzLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBm
YXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaHRtbCBbIFNraXAgXQord2Via2l0Lm9y
Zy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1vbmVuZGVkLmh0bWwg
WyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL25vLWludGVyZmFj
ZS1vYmplY3QuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJl
YW0vUlRDSWNlQ2FuZGlkYXRlLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLUFkZFJlbW92ZVN0cmVhbS5odG1sIFsgU2tp
cCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1jcmVhdGVBbnN3ZXIuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbCBbIFNraXAgXQord2Vi
a2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZGF0YWNo
YW5uZWwuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tZHRtZi5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMg
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1ldmVudHMuaHRtbCBbIFNraXAgXQor
d2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZ2V0
Q29uZmlndXJhdGlvbi5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1oYXZlLWxvY2FsLW9mZmVyLmh0bWwgWyBTa2lwIF0K
K3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWhh
dmUtbG9jYWwtcHJhbnN3ZXIuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taGF2ZS1yZW1vdGUtb2ZmZXIuaHRtbCBbIFNr
aXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24taGF2ZS1yZW1vdGUtcHJhbnN3ZXIuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAz
IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlLmh0bWwg
WyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLWxvY2FsRGVzY3JpcHRpb24uaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAz
IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRlZC5o
dG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi1yZW1vdGVEZXNjcmlwdGlvbi5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2Iv
NzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGFibGUuaHRtbCBbIFNr
aXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24tc3RhdGUuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5
MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHNTZWxlY3Rvci5odG1s
IFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb24uaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvZXZlbnRz
L2NvbnN0cnVjdG9ycy9tZWRpYS1zdHJlYW0tZXZlbnQtY29uc3RydWN0b3IuaHRtbCBbIFNraXAg
XQogd2Via2l0Lm9yZy9iLzc5MjAzIHdlYmF1ZGlvL21lZGlhc3RyZWFtYXVkaW9kZXN0aW5hdGlv
bm5vZGUuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzc5MjAzIHdlYmF1ZGlvL21lZGlhc3Ry
ZWFtYXVkaW9zb3VyY2Vub2RlLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3Y2QyOGE0Li5m
NmQ1MjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMDktMDEgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRp
YUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRlZCBkb2N1bWVudCBhbmQgZnJhbWUgYWNjZXNzb3JzLCBuZWVkZWQgYnkgdGhl
CisgICAgICAgIFVzZXJNZWRpYVJlcXVlc3RNYW5hZ2VyIG9mIHRoZSBXZWJQcm9jZXNzLiBBbHNv
IGFkZGVkIHR3byBtZXRob2RzCisgICAgICAgIHVzZWQgYnkgdGhlIHBlcm1pc3Npb24gcmVxdWVz
dCBtYW5hZ2VyIHRvIGtub3cgaWYgYWNjZXNzIHRvIGF1ZGlvCisgICAgICAgIG9yIHZpZGVvIGRl
dmljZXMgaXMgcmVxdWVzdGVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L21lZGlhc3RyZWFtL2Vy
cm9yLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6VXNlck1lZGlhUmVxdWVzdDo6ZnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVx
dWVzdDo6cmVxdWlyZXNBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0
OjpyZXF1aXJlc1ZpZGVvKToKKwogMjAxNC0wOS0yOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmVtb3ZlIE1haW5GcmFtZVNjcm9s
bGJhckd0ay5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IGU0MzhkMzUuLjcxMDBlZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBsLmgiCiAjaW5jbHVkZSAiTWVk
aWFTdHJlYW0uaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbUNlbnRlci5oIgpAQCAtMTAxLDYgKzEw
MiwxNiBAQCBVc2VyTWVkaWFSZXF1ZXN0Ojp+VXNlck1lZGlhUmVxdWVzdCgpCiB7CiB9CiAKK0Rv
Y3VtZW50KiBVc2VyTWVkaWFSZXF1ZXN0Ojpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHRvRG9jdW1lbnQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKK30KKworRnJhbWUqIFVzZXJN
ZWRpYVJlcXVlc3Q6OmZyYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKSA/IGRv
Y3VtZW50KCktPmZyYW1lKCkgOiBudWxscHRyOworfQorCiBTZWN1cml0eU9yaWdpbiogVXNlck1l
ZGlhUmVxdWVzdDo6c2VjdXJpdHlPcmlnaW4oKSBjb25zdAogewogICAgIGlmIChtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCmluZGV4IGM4MGE2YmEuLjI4MjI3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5oCkBAIC00OCw2ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGljdGlv
bmFyeTsKIGNsYXNzIERvY3VtZW50OworY2xhc3MgRnJhbWU7CiBjbGFzcyBNZWRpYUNvbnN0cmFp
bnRzOwogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOwogY2xhc3MgVXNlck1lZGlhQ29udHJvbGxl
cjsKQEAgLTYyLDEwICs2MywxNiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTZWN1
cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKIAorICAgIERvY3VtZW50KiBkb2N1
bWVudCgpIGNvbnN0OworICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OworCiAgICAgdm9pZCBzdGFy
dCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAKKyAgICBi
b29sIHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29uc3RyYWludHM7IH0K
KyAgICBib29sIHJlcXVpcmVzVmlkZW8oKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvQ29uc3RyYWlu
dHM7IH0KKwogcHJpdmF0ZToKICAgICBVc2VyTWVkaWFSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBVc2VyTWVkaWFDb250cm9sbGVyKiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRz
PiBhdWRpb0NvbnN0cmFpbnRzLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IHZpZGVvQ29u
c3RyYWludHMsIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrPiwg
UGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VM
aXN0cy50eHQKaW5kZXggNmJkYzU5ZC4uNGFkMjA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAg
LTQ5LDYgKzQ5LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTSIKICAgICAiJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9MYXVuY2hpbmciCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nl
c3MvTWVkaWFDYWNoZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9NZWRpYVN0cmVh
bSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9OZXR3b3JrIgogICAgICIke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dl
YlByb2Nlc3MvT3JpZ2luRGF0YSIKQEAgLTMwMSw2ICszMDIsOCBAQCBzZXQoV2ViS2l0Ml9TT1VS
Q0VTCiAgICAgVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCiAgICAgVUlQcm9jZXNz
L1N0YXRpc3RpY3NSZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRp
b24uY3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcAorICAgIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vzcy9X
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJCYWNr
Rm9yd2FyZExpc3QuY3BwCkBAIC0zODksNiArMzkyLDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAogICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS1Nlc3Npb25TdGF0ZVJlZi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tU
ZXh0Q2hlY2tlci5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwCiAgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcAogCkBAIC00ODUsNiArNDg5LDgg
QEAgc2V0KFdlYktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1l
ZGlhQ2FjaGVNYW5hZ2VyLmNwcAogCisgICAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogICAgIFdlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291
cmNlTG9hZGVyLmNwcApAQCAtNTM2LDYgKzU0Miw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKKyAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlZpYnJhdGlvbkNsaWVudC5jcHAKIAogICAgIFdlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjYTZiY2Q5Li41YWVkZTc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMTQtMDktMDEgIFBoaWxpcHBlIE5vcm1hbmQg
IDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRpYUNsaWVudCBz
dXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
dXBwb3J0IGZvciBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCBpbiBXZWJLaXQyLiBJdCdzCisg
ICAgICAgIGltcGxlbWVudGVkIHNpbWlsYXJpbHkgdG8gdGhlIEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QKKyAgICAgICAgc3VwcG9ydC4gV2hlbiB0aGUgV2ViUGFnZSByZXF1aXJlcyB0aGlz
IHBlcm1pc3Npb24gaXQgc2VuZHMgYQorICAgICAgICBtZXNzYWdlIHRvIHRoZSBVSSBwcm9jZXNz
IHdoaWNoIGF0IHNvbWUgcG9pbnQgZ3JhbnRzIG9yIGRlbmllcyB0aGUKKyAgICAgICAgcGVybWlz
c2lvbiBhbmQgc2VuZHMgdGhlIHJlc3VsdCBiYWNrIHRvIHRoZSBXZWJQcm9jZXNzLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6IEdlbmVyaWMgQ01ha2Ugc3VwcG9ydCBmb3IgbmV3IGZpbGVz
LgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDogTmV3IHR5cGUgZm9yIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDogRGl0dG8u
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOiBQZXJtaXNzaW9uUmVxdWVz
dCBBUEkgbWFwcGluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6IE5l
dyBkZWNpZGVQb2xpY3kgaGFuZGxlciBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisg
ICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6IERpdHRvLgor
ICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlVUlDbGllbnQuaDogV0tQYWdlVUlDbGllbnQgdmVyc2lvbiBidW1wIHRvCisgICAg
ICAgIDUsIGluY2x1ZGluZyB0aGUgbmV3IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0IG1lbWJlci4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5jcHA6IEFkZGVkLCBDIEFQSQorICAgICAgICBpbXBsZW1lbnRhdGlv
biBvZiB0aGUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgIChXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKToKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGVueSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5jcHA6IEFkZGVkLCBwcm94eQorICAgICAgICBvYmplY3QgZm9yIHRoZSBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFR5cGUuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlk
YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6bWVkaWFQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yRnJhbWUpOiBEZWZlcgorICAgICAgICBVc2VyUGVybWlzc2lvblJlcXVlc3QgdG8gdGhlIFVJ
Q2xpZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBOZXcgbWVzc2FnZSB0byBoYW5kbGUg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA6IEFkZGVkLAorICAgICAgICBXZWJQcm9j
ZXNzIHNpZGUgb2YgdGhlIFVzZXJSZXF1ZXN0TWFuYWdlciwga2VlcGluZyB0cmFjayBvZiBlYWNo
CisgICAgICAgIHBlcm1pc3Npb24gcmVxdWVzdC4KKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVS
ZXF1ZXN0SUQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjYW5jZWxS
ZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRp
YUNsaWVudC5jcHA6IEFkZGVkLAorICAgICAgICBXZWJQcm9jZXNzIGltcGxlbWVudGF0aW9uIG9m
IHRoZSBXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQuCisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJN
ZWRpYUNsaWVudDo6V2ViVXNlck1lZGlhQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNl
ck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1l
ZGlhQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJN
ZWRpYUNsaWVudDo6Y2FuY2VsUmVxdWVzdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdl
KTogQ3JlYXRlIHRoZQorICAgICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIg
YW5kIHJlZ2lzdGVyIHRoZSBVc2VyTWVkaWFDbGllbnQKKyAgICAgICAgdG8gdGhlIHBhZ2UuCisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24pOiBEaXNwYXRjaAorICAgICAgICBkZWNpc2lvbiB0byBtYW5hZ2VyLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46IE5ldyBNZXNzYWdlIHRvIGhhbmRsZQorICAg
ICAgICBwZXJtaXNzaW9uIGRlY2lzaW9uIHJlc3VsdCBmcm9tIHRoZSBVSSBwcm9jZXNzLgorCiAy
MDE0LTA5LTI5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OKHIxNzI5MTkpOiBXZWJLaXRQbHVnaW5Qcm9jZXNzIGZhaWxzIHRv
IHNjYW4gR1RLKzIgcGx1Z2lucyBhZnRlciByMTcyOTE5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9j
L1dLQmFzZS5oCmluZGV4IDhkMWU5NjUuLjExZWM1NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tCYXNlLmgKQEAgLTEyNyw2ICsxMjcsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS1Byb3RlY3Rpb25TcGFjZSogV0tQcm90ZWN0aW9uU3BhY2VSZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS1RleHRDaGVja2VyKiBXS1RleHRDaGVja2VyUmVmOwogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tTZXNzaW9uKiBXS1Nlc3Npb25SZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS1Nlc3Npb25TdGF0ZSogV0tTZXNzaW9uU3RhdGVSZWY7Cit0eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KiBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tW
aWJyYXRpb24qIFdLVmlicmF0aW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tW
aWV3cG9ydEF0dHJpYnV0ZXMqIFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJT2JqZWN0LmgKaW5kZXggOTIyZTZkYS4uZDQ5NjZhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElPYmplY3QuaApAQCAtMTMyLDYgKzEzMiw3IEBAIHB1YmxpYzoKICAgICAgICAgUHJlZmVyZW5j
ZXMsCiAgICAgICAgIFNlc3Npb24sCiAgICAgICAgIFRleHRDaGVja2VyLAorICAgICAgICBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKICAgICAgICAgVmlicmF0aW9uLAogICAgICAgICBWaWV3
cG9ydEF0dHJpYnV0ZXMsCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGll
bnQuaAppbmRleCAxY2ExNWUzLi5lZWJjZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIEltbXV0YWJsZURpY3Rp
b25hcnk7CiBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViV2hl
ZWxFdmVudDsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworY2xhc3MgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNsYXNzIFdlYkNvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CiBjbGFzcyBXZWJPcGVuUGFuZWxQ
YXJhbWV0ZXJzOwpAQCAtMTIyLDYgKzEyMyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9v
bCBydW5PcGVuUGFuZWwoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJv
eHkqLCBXZWJLaXQ6OldlYk9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJLaXQ6OldlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyUHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2Vi
UGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9y
aWdpbiosIFdlYktpdDo6R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5KikgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJv
eHkqLCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luKiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgZGVj
aWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdl
UHJveHkqLCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luKiwgV2ViS2l0OjpOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdCopIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBQcmludGluZy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA4MDIyMWE5
Li41ZjQ0YTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
UElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5o
CkBAIC02Myw2ICs2Myw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcjsK
IGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UHJveHk7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKK2NsYXNzIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2ViQmFja0Zvcndh
cmRMaXN0SXRlbTsKQEAgLTE0Niw2ICsxNDcsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tSZW5k
ZXJMYXllclJlZiwgV2ViUmVuZGVyTGF5ZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tSZW5kZXJP
YmplY3RSZWYsIFdlYlJlbmRlck9iamVjdCkKIFdLX0FERF9BUElfTUFQUElORyhXS1Nlc3Npb25T
dGF0ZVJlZiwgQVBJOjpTZXNzaW9uU3RhdGUpCiBXS19BRERfQVBJX01BUFBJTkcoV0tUZXh0Q2hl
Y2tlclJlZiwgV2ViVGV4dENoZWNrZXIpCitXS19BRERfQVBJX01BUFBJTkcoV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSkKIFdL
X0FERF9BUElfTUFQUElORyhXS1ZpYnJhdGlvblJlZiwgV2ViVmlicmF0aW9uUHJveHkpCiBXS19B
RERfQVBJX01BUFBJTkcoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYsIFdlYlZpZXdwb3J0QXR0cmli
dXRlcykKIFdLX0FERF9BUElfTUFQUElORyhXS0luc3BlY3RvclJlZiwgV2ViSW5zcGVjdG9yUHJv
eHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDEzYzVl
NWIuLmUzYzdkOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
CkBAIC03NCw3ICs3NCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VQ
b2xpY3lDbGllbnRCYXNlPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8
V0tQYWdlVUlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xp
ZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50
VjMsIFdLUGFnZVVJQ2xpZW50VjQ+IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxX
S1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1Bh
Z2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1PiBWZXJzaW9u
czsKIH07CiAKIH0KQEAgLTE0OTcsNiArMTQ5NywxNSBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNs
aWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVu
dAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAorICAgICAgICB2aXJ0dWFs
IGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVBy
b3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdp
biwgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIHBlcm1pc3Npb25SZXF1ZXN0KSBv
dmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkob3JpZ2luKSwg
dG9BUEkocGVybWlzc2lvblJlcXVlc3QpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwogICAgICAgICB2aXJ0dWFsIGJvb2wg
ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5
KiBwYWdlLCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdCogcGVybWlzc2lvblJlcXVlc3QpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAg
ICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
VUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVu
dC5oCmluZGV4IGJjOWVlYzcuLmFiNjFhZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCkBAIC05MCw2ICs5MCw3IEBAIHR5cGVkZWYgdm9p
ZCAoKldLUGFnZURpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzc0NhbGxiYWNr
KShXS1BhZ2VSZWYKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZFJlY29nbml6ZUxvbmdNb3VzZVBy
ZXNzQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkQ2FuY2VsVHJhY2tpbmdQ
b3RlbnRpYWxMb25nTW91c2VQcmVzc0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFn
ZUlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1l
UmVmIGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiAKIC8vIERlcHJlY2F0ZWQgICAgCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5l
d1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tE
aWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVu
dE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAgLTM3
OCw2ICszNzksNzMgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWNCB7CiAgICAgV0tQ
YWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZTsKIH0gV0tQYWdlVUlDbGllbnRWNDsKIAor
dHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWNSB7CisgICAgV0tQYWdlVUlDbGllbnRCYXNl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOwor
CisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNh
dGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1BhZ2U7CisgICAgV0tQYWdlVUlD
bGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjbG9zZTsKKyAgICBXS1BhZ2VUYWtlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VGb2N1czsKKyAgICBXS1BhZ2VGb2N1c0NhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3Vz
OworICAgIFdLUGFnZVVuZm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5mb2N1czsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRB
bGVydDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtOworICAgIFdLUGFnZVJ1
bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS1BhZ2VTZXRTdGF0dXNUZXh0Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c1RleHQ7Cisg
ICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNl
V2l0aFYwICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudF9kZXByZWNhdGVkRm9yVXNlV2l0
aFYwOworICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVLZXlFdmVudENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZUtleUV2ZW50OworICAg
IFdLUGFnZURpZE5vdEhhbmRsZVdoZWVsRXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlkTm90SGFuZGxlV2hlZWxFdmVudDsKKyAgICBXS1BhZ2VHZXRUb29sYmFy
c0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xi
YXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvb2xiYXJzQXJlVmlzaWJsZTsKKyAg
ICBXS1BhZ2VHZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlU2V0TWVudUJhcklzVmlz
aWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51QmFy
SXNWaXNpYmxlOworICAgIFdLUGFnZUdldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFn
ZVNldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0U3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldElzUmVzaXphYmxlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXNpemFibGU7
CisgICAgV0tQYWdlU2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRJc1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VHZXRXaW5kb3dGcmFt
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFdpbmRv
d0ZyYW1lOworICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlUnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBy
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWREcmF3OworICAg
IFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsKKyAgICBXS1BhZ2VFeGNlZWRlZERhdGFiYXNlUXVv
dGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VlZGVkRGF0YWJh
c2VRdW90YTsKKyAgICBXS1BhZ2VSdW5PcGVuUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk9wZW5QYW5lbDsKKyAgICBXS1BhZ2VEZWNpZGVQ
b2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgIGRl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlSGVh
ZGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWFkZXJIZWlnaHQ7CisgICAgV0tQYWdlRm9vdGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJIZWlnaHQ7CisgICAgV0tQYWdl
RHJhd0hlYWRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkcmF3SGVhZGVyOworICAgIFdLUGFnZURyYXdGb290ZXJDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0Zvb3RlcjsKKyAgICBXS1BhZ2VQ
cmludEZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByaW50RnJhbWU7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5Nb2RhbDsKKyAgICB2b2lkKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVudXNlZDE7IC8vIFVzZWQgdG8gYmUgZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1l
CisgICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlckNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyOworICAgIFdL
UGFnZVNob3VsZEludGVycnVwdEphdmFTY3JpcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdDsKKworICAgIC8vIFZlcnNpb24gMS4K
KyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CisgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEgdW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjE7CisKKyAgICAvLyBWZXJzaW9uIDIuCisg
ICAgV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaG93Q29sb3JQaWNrZXI7CisgICAgV0tQYWdlSGlkZUNvbG9yUGlja2Vy
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlQ29sb3JQ
aWNrZXI7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQ7Cisg
ICAgCisgICAgLy8gVmVyc2lvbiAzLgorICAgIFdLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkU3RhdGVEaWRDaGFu
Z2U7CisKKyAgICAvLyBWZXJzaW9uIDQuCisgICAgV0tQYWdlRGlkQmVnaW5UcmFja2luZ1BvdGVu
dGlhbExvbmdNb3VzZVByZXNzQ2FsbGJhY2sgICAgICAgICAgICAgICBkaWRCZWdpblRyYWNraW5n
UG90ZW50aWFsTG9uZ01vdXNlUHJlc3M7CisgICAgV0tQYWdlRGlkUmVjb2duaXplTG9uZ01vdXNl
UHJlc3NDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRSZWNvZ25pemVMb25n
TW91c2VQcmVzczsKKyAgICBXS1BhZ2VEaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3Vz
ZVByZXNzQ2FsbGJhY2sgICAgICAgICAgICAgIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9u
Z01vdXNlUHJlc3M7CisKKyAgICAvLyBWZXJzaW9uIDUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICBkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsKK30gV0tQYWdlVUlDbGllbnRWNTsK
KwogZW51bSB7IGtXS1BhZ2VVSUNsaWVudEN1cnJlbnRWZXJzaW9uIFdLX0VOVU1fREVQUkVDQVRF
RCgiVXNlIGFuIGV4cGxpY2l0IHZlcnNpb24gbnVtYmVyIGluc3RlYWQiKSA9IDIgfTsKIHR5cGVk
ZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50IHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMDVmZDNlNjI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNDAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTAorICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuaCIKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKKworV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgp
Cit7CisgICAgcmV0dXJuIHRvQVBJKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OkFQ
SVR5cGUpOworfQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVm
KQoreworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmFsbG93KCk7
Cit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikKK3sKKyAg
ICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5kZW55KCk7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
NDVkMzE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDM3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
ICovCisKKyNpZm5kZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RfaAorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5o
PgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9S
VCBXS1R5cGVJRCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CisKK1dL
X0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3REZW55KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV2ViS2l0Ml9DLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9D
LmgKaW5kZXggNWE3MTJjZC4uZTMyYmFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XZWJLaXQyX0MuaApAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS1VS
TC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1VSTFJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJLaXQv
V0tVUkxSZXNwb25zZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0Lmg+CiAKICNpZiBkZWZpbmVkKF9fT0JKQ19fKSAmJiBfX09CSkNfXwogI2ltcG9ydCA8
V2ViS2l0L1dLVmlldy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk3ZTU5NQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG
cmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgiCisKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdl
UHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBt
X3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVlc3RzKCkKK3sKKyAgICBmb3IgKGF1dG8mIHJlcXVlc3Qg
OiBtX3BlbmRpbmdSZXF1ZXN0cy52YWx1ZXMoKSkKKyAgICAgICAgcmVxdWVzdC0+aW52YWxpZGF0
ZSgpOworCisgICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKTsKK30KKworUGFzc1JlZlB0cjxV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBh
dWRpbywgYm9vbCB2aWRlbykKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4gcmVxdWVzdCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0
ZSgqdGhpcywgdXNlck1lZGlhSUQsIGF1ZGlvLCB2aWRlbyk7CisgICAgbV9wZW5kaW5nUmVxdWVz
dHMuYWRkKHVzZXJNZWRpYUlELCByZXF1ZXN0LmdldCgpKTsKKyAgICByZXR1cm4gcmVxdWVzdC5y
ZWxlYXNlKCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1l
ZGlhSUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBpZiAoIW1fcGFnZS5pc1ZhbGlkKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmICghbV9wZW5kaW5nUmVxdWVzdHMudGFrZSh1c2VyTWVkaWFJ
RCkpCisgICAgICAgIHJldHVybjsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgbV9w
YWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1lZGlh
UGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkKSwgbV9wYWdlLnBhZ2VJRCgp
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOworI2VuZGlmCit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTE3MTNiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv
ZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CisKKyAgICB2b2lk
IGludmFsaWRhdGVSZXF1ZXN0cygpOworCisgICAgLy8gQ3JlYXRlIGEgcmVxdWVzdCB0byBiZSBw
cmVzZW50ZWQgdG8gdGhlIHVzZXIuCisgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGF1
ZGlvLCBib29sIHZpZGVvKTsKKworICAgIC8vIENhbGxlZCBieSBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5IHdoZW4gYSBkZWNpc2lvbiBpcyBtYWRlIGJ5IHRoZSB1c2VyLgorICAgIHZv
aWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBh
bGxvdyk7CisKK3ByaXZhdGU6CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBXZWJQYWdl
UHJveHkmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyYjJhOGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
aCIKKworI2luY2x1ZGUgIkFQSU51bWJlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVk
aW8sIGJvb2wgdmlkZW8pCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fdXNlck1l
ZGlhSUQodXNlck1lZGlhSUQpCit7CisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxBUEk6Ok9i
amVjdD4+IHBhcmFtZXRlcnNNYXA7CisgICAgcGFyYW1ldGVyc01hcC5zZXQoQVNDSUlMaXRlcmFs
KCJhdWRpbyIpLCBBUEk6OkJvb2xlYW46OmNyZWF0ZShhdWRpbykpOworICAgIHBhcmFtZXRlcnNN
YXAuc2V0KEFTQ0lJTGl0ZXJhbCgidmlkZW8iKSwgQVBJOjpCb29sZWFuOjpjcmVhdGUodmlkZW8p
KTsKKyAgICBtX21lZGlhUGFyYW1ldGVycyA9IEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShX
VEY6Om1vdmUocGFyYW1ldGVyc01hcCkpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OmFsbG93KCkKK3sKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCB0cnVlKTsKK30KKwordm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KCkKK3sKKyAgICBtX21hbmFnZXIuZGlk
UmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCBmYWxzZSk7
Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSgp
Cit7CisgICAgbV9tYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZjA0NzI3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTAsMCArMSw1NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
X2gKKyNkZWZpbmUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eV9oCisKKyNpbmNsdWRl
ICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJJbW11dGFibGVEaWN0aW9uYXJ5LmgiCisjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6
VHlwZTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBib29sIGF1ZGlvLCBib29sIHZpZGVvKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJN
ZWRpYUlELCBhdWRpbywgdmlkZW8pKTsKKyAgICB9CisKKyAgICB2b2lkIGFsbG93KCk7CisgICAg
dm9pZCBkZW55KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKworICAgIFBhc3NSZWZQdHI8
SW1tdXRhYmxlRGljdGlvbmFyeT4gbWVkaWFQYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9t
ZWRpYVBhcmFtZXRlcnM7IH0KKworcHJpdmF0ZToKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0
X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pOworCisgICAgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1fbWFuYWdlcjsKKyAgICB1aW50NjRfdCBt
X3VzZXJNZWRpYUlEOworICAgIFJlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBtX21lZGlhUGFy
YW1ldGVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDFjYWY0OTAuLjA1MDNkM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiUHJp
bnRJbmZvLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tl
clN0YXRlLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgog
I2luY2x1ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExp
c3QuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCkBAIC0yODAsNiArMjgx
LDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwg
V2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCB1aW4KICNlbmRpZgogICAgICwgbV9nZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKICAgICAsIG1fbm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQorICAgICwgbV91c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIoKnRoaXMpCiAgICAgLCBtX3ZpZXdTdGF0ZShWaWV3U3RhdGU6Ok5vRmxh
Z3MpCiAgICAgLCBtX3ZpZXdXYXNFdmVySW5XaW5kb3coZmFsc2UpCiAgICAgLCBtX2JhY2tGb3J3
YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZSgqdGhpcykpCkBAIC00NjYyLDYgKzQ2
NjQsMTggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELAogICAgIHJlcXVlc3QtPmRlbnkoKTsKIH0K
IAordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUo
dWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVu
dGlmaWVyLCBib29sIGF1ZGlvLCBib29sIHZpZGVvKQoreworICAgIFdlYkZyYW1lUHJveHkqIGZy
YW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBNRVNTQUdFX0NIRUNLKGZy
YW1lKTsKKworICAgIFJlZlB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gV2ViU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRp
ZmllcihvcmlnaW5JZGVudGlmaWVyKSk7CisgICAgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk+IHJlcXVlc3QgPSBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcmVhdGVSZXF1ZXN0KHVzZXJNZWRpYUlELCBhdWRpbywgdmlkZW8pOworCisgICAgaWYgKCFt
X3VpQ2xpZW50LT5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0aGlz
LCBmcmFtZSwgb3JpZ2luLmdldCgpLCByZXF1ZXN0LmdldCgpKSkKKyAgICAgICAgcmVxdWVzdC0+
ZGVueSgpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1p
c3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsK
ICAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAxMDU2MWRmLi44YTAyN2VjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlZpc2libGVDb250ZW50UmVj
dFVwZGF0ZUluZm8uaCIKICNpbmNsdWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlICJXS1BhZ2VQcml2
YXRlLmgiCkBAIC0xMjQsNiArMTI1LDcgQEAgY2xhc3MgRHJhZ0RhdGE7CiBjbGFzcyBGbG9hdFJl
Y3Q7CiBjbGFzcyBHcmFwaGljc0xheWVyOwogY2xhc3MgSW50U2l6ZTsKK2NsYXNzIE1lZGlhQ29u
c3RyYWludHNJbXBsOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUnVuTG9vcE9ic2Vy
dmVyOwogY2xhc3MgU2hhcmVkQnVmZmVyOwpAQCAtMTAzMSw2ICsxMDMzLDkgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25z
dCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1
cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90
IGV4cGVjdGVkVXNhZ2UsIFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVk
ZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHk+KTsKICAgICB2b2lkIHJlYWNoZWRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCB1aW50
NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIFBhc3NSZWZQdHI8
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YTo6RGVsYXllZFJlcGx5Pik7CiAgICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9u
Rm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5n
IG9yaWdpbklkZW50aWZpZXIpOworCisgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lv
bkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcg
b3JpZ2luSWRlbnRpZmllciwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbyk7CisKICAgICB2b2lkIHJ1
bk1vZGFsKCk7CiAgICAgdm9pZCBub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5
bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSk7CkBAIC0xMzY3LDYgKzEzNzIsOCBAQCBwcml2
YXRlOgogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9nZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICAgICBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjsKIAorICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworCiAgICAgV2ViQ29yZTo6Vmlld1N0YXRl
OjpGbGFncyBtX3ZpZXdTdGF0ZTsKICAgICBib29sIG1fdmlld1dhc0V2ZXJJbldpbmRvdzsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggNGE2ZmQ1Ny4uZThhNWJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNTYsNiArMjU2LDExIEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgIyBHZW9sb2NhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVl
c3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1
aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICAKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorICAgICMgTWVkaWFTdGVhbSBtZXNzYWdlcworICAgIFJlcXVlc3RV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBib29sIGF1ZGlvLCBib29sIHZpZGVv
KQorI2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3ROb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3RyaW5nIG9yaWdpbklkZW50
aWZpZXIpCiAgICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUsIFN0cmluZyBib2R5LCBT
dHJpbmcgaWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmcsIFN0cmluZyBkaXIsIFN0cmlu
ZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMGE5MmY5
Li4wMzJlODAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC03ODksNiArNzg5LDE0IEBACiAJCTNGODg5RDE0MTg4Nzc4QzkwMEZF
QURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg4OUQxMjE4ODc3OEM5MDBGRUFEQUYg
LyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tICovOyB9OwogCQkzRjg4OUQxNTE4
ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg4OUQxMzE4ODc3OEM5
MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi87IH07CiAJCTNG
ODg5RDE3MTg4Nzg1OTMwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMEQxODg3
Njk5QzAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gKi87IH07CisJCTRB
M0NDMThBMTlCMDYzRTcwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0QTQxMEYzOTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwICovOyB9OworCQk0QTNDQzE4QjE5QjA2NDBGMDBEMTRBRUYgLyogVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNBMTlBRjdCMDQwMDJFQkFCNSAvKiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovOyB9OworCQk0QTNDQzE4
QzE5QjA2NDE1MDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEYzQjE5
QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgKi87
IH07CisJCTRBM0NDMThEMTlCMDY0MTkwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0QTQxMEYzQzE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5oICovOyB9OworCQk0QTNDQzE4RTE5QjA3Qjg1MDBEMTRBRUYgLyogV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0QTQxMEYzNTE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5jcHAgKi87IH07CisJCTRBM0NDMThGMTlCMDdCOEEwMEQxNEFFRiAvKiBXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEYzNjE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTRBNDEwRjQ0MTlBRjdCMjcwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNEE0MTBGNDIxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAgKi87IH07CisJCTRBNDEwRjRBMTlBRjdCODAwMDJFQkFCNSAv
KiBXZWJVc2VyTWVkaWFDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEE0MTBGNDgxOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNs
aWVudC5jcHAgKi87IH07CiAJCTRGNjAxNDMyMTU1QzVBQTIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jl
c3BvbnNlTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICovOyB9
OwogCQk1MTAyMUU5QzEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAyMUU5
QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi87IH07CiAJ
CTUxMDI3NDMyMTk4MUFGOEUwMDgxNjVFRCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCQTE4MDYyQjlD
MDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yODAzLDYgKzI4MTEsMTYgQEAKIAkJM0Y4ODlE
MTIxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tbTsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODg5RDEzMTg4Nzc4QzkwMEZF
QURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg7IHBhdGgg
PSBpb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTNGODg5RDE2MTg4NzdBMjQwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluOyBwYXRoID0gaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGMzUx
OUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjM2MTlBRjdBQzMw
MDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGMzkxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGM0ExOUFGN0IwNDAwMkVC
QUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjNCMTlBRjdCMDQw
MDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzQzE5QUY3QjA0MDAy
RUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjQyMTlBRjdCMjcwMDJFQkFCNSAvKiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGNDMxOUFGN0IyNzAwMkVCQUI1IC8q
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGNDgxOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVz
ZXJNZWRpYUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJVc2VyTWVkaWFDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQx
MEY0OTE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVzZXJNZWRpYUNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNw
b25zZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja2luZ1Jlc3Bv
bnNlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0Iw
MEM4REZFNCAvKiBTZWNJdGVtU2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbklu
ZGV4ID0gMDsgcGF0aCA9IFNlY0l0ZW1TaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwogCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1l
bnVDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTUxNDcsNiArNTE2NSwxNSBAQAogCQkJcGF0aCA9IENvY29hOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKIAkJfTsKKwkJNEE0MTBGNDExOUFGN0IyNzAwMkVCQUI1IC8qIE1lZGlhU3RyZWFt
ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEY0
MjE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNw
cCAqLywKKwkJCQk0QTQxMEY0MzE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmggKi8sCisJCQkpOworCQkJcGF0aCA9IE1lZGlhU3RyZWFtOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5
IC8qIE5ldHdvcmsgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApA
QCAtNTYwNSw2ICs1NjMyLDcgQEAKIAkJQkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8qIFdlYlBy
b2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRB
NDEwRjQxMTlBRjdCMjcwMDJFQkFCNSAvKiBNZWRpYVN0cmVhbSAqLywKIAkJCQk1MTJFMzUyQTEz
MEI1NTk5MDBBQkQxOUEgLyogQXBwbGljYXRpb25DYWNoZSAqLywKIAkJCQk3QzZFNzBGODE4QjJE
NDdFMDBGMjRFMkUgLyogY29jb2EgKi8sCiAJCQkJMzMwOTM0NEIxMzE1QjkzQTAwOTdBN0JDIC8q
IENvb2tpZXMgKi8sCkBAIC01NjQyLDYgKzU2NzAsOCBAQAogCQlCQzAzMkQ1RDEwRjQzNzIyMDA1
OEMxNUEgLyogV2ViQ29yZVN1cHBvcnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTRBNDEwRjQ4MTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVkaWFD
bGllbnQuY3BwICovLAorCQkJCTRBNDEwRjQ5MTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVk
aWFDbGllbnQuaCAqLywKIAkJCQkyRDI4RjNERjE4ODVDQ0I0MDA0QjlFQUUgLyogaW9zICovLAog
CQkJCUJDMTExQURFMTEyRjVCOUEwMDMzN0JBQiAvKiBtYWMgKi8sCiAJCQkJMUE3Mjg0NDQxOTU5
RUQxMDAwMDdCQ0U1IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICovLApAQCAtNTc0Niw2
ICs1Nzc2LDEwIEBACiAJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1QSAvKiBVSVByb2Nlc3MgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjM5MTlB
RjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgKi8sCisJCQkJNEE0MTBGM0ExOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8sCisJCQkJNEE0MTBGM0IxOUFGN0IwNDAwMkVCQUI1
IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwICovLAorCQkJCTRBNDEwRjND
MTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi8s
CiAJCQkJMkRBOTQ0QTgxODg0RTlBQjAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQlCQzAzMkRDNDEw
RjQzODdDMDA1OEMxNUEgLyogQVBJICovLAogCQkJCTUxMkY1ODhEMTJBODgzNkYwMDYyOTUzMCAv
KiBBdXRoZW50aWNhdGlvbiAqLywKQEAgLTU5MTYsNiArNTk1MCw4IEBACiAJCUJDMEMzNzY2MTBG
ODA3NjYwMDc2RDdDQiAvKiBDICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQk0QTQxMEYzNTE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJNEE0MTBGMzYxOUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCAqLywKIAkJCQk1MTIzQ0YxODEzM0QyNUU2MDA1NkY4
MDAgLyogY2cgKi8sCiAJCQkJNkVFODQ5QzQxMzY4RDkwNDAwMzhENDgxIC8qIG1hYyAqLywKIAkJ
CQlCQ0I2MzQ3NzExNkJGMTA2MDA2MDMyMTUgLyogV2ViS2l0Ml9DLmggKi8sCkBAIC03MTQ0LDYg
KzcxODAsNyBAQAogCQkJCTFBQTQxQUI1MTJDMDJFQzQwMDJCRTY3QiAvKiBFZGl0b3JTdGF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTFCMTVBODUxMzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25t
ZW50VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTdDNkNEQjEzNzg5NTA4MDBCOUMw
NEQgLyogRW52aXJvbm1lbnRWYXJpYWJsZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTRBM0NDMThG
MTlCMDdCOEEwMEQxNEFFRiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUE1NzVGQjE0OTZCNTI2MDBBNEVFMDYgLyogRXZlbnREaXNwYXRjaGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTkwQzFGNDEyNjRGRDcxMDAzRTQ0RDQgLyogRmluZENv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOTEwMDcxMTI2Njc1QzQwMDE4NDJGNSAv
KiBGaW5kSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTc1NTMsNiArNzU5MCw3IEBACiAJ
CQkJNTE4MzUzREIxODg1QkY4QzAwRDlGRTQ0IC8qIElEQlNlcmlhbGl6YXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBREY1OTFCMTg5MDUyOEUwMDQzQzE0NSAvKiBXS1dlYlZpZXdDb25maWd1
cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU3NDRGMDEyNjM4RkIzMDA2RjBGMTIgLyog
V2ViUG9wdXBJdGVtLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTNDQzE4RDE5QjA2NDE5MDBEMTRB
RUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1NzRFNjMxMjY3RDA4MDAwNkYwRjEyIC8qIFdlYlBvcHVwTWVudVByb3h5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3QzhFQjExNzE4REI2QTE5MDA3OTE3QzIgLyogV0tQcmVmZXJl
bmNlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtNzU4MCw2ICs3NjE4LDcgQEAKIAkJCQkz
NzYwODgxRjE1MDQxM0U5MDBGQzgyQzcgLyogV2ViUmVuZGVyT2JqZWN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTIxNzQ2NTE2NEMyMTM3MDAzN0E1QzEgLyogV2ViUmVzb3VyY2VCdWZmZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTMzMzY3NjMwMTMwQzk5OTgwMDZDOURFMiAvKiBXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEEzQ0MxOEIxOUIwNjQwRjAwRDE0
QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUFGMDg5QjE5MjY3RUU1MDBCNjM5MEMgLyogV0tVc2VyU2NyaXB0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMzM2NzY1NjEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBOTQ0QTQxODg0RTRG
MDAwRUQ4NkRCIC8qIEdlc3R1cmVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjU0LDcgKzg2
OTMsOSBAQAogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1h
c2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJNEE0MTBGNDQxOUFGN0IyNzAwMkVC
QUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzVEMjRBMTE2Q0MzQjlFMDA3RDU0NjEgLyogQ2hpbGRQcm9jZXNzTWFpbi5tbSBp
biBTb3VyY2VzICovLAorCQkJCTRBNDEwRjRBMTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVk
aWFDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC05MDQ1LDYgKzkwODYsNyBAQAogCQkJCTFB
MEYyOUUzMTIwQjQ0NDIwMDUzRDFCOSAvKiBWaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUExREY2MzEyMThFMEI3QzgwMDNBM0UyQSAvKiBEb3dubG9hZENsaWVudC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTFBMEYyOUNCMTIwQjM3MTYwMDUzRDFCOSAvKiBWaXNpdGVk
TGlua1RhYmxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBM0NDMThBMTlCMDYzRTcwMEQxNEFF
RiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQUMxMzM3RjE4NTkwQUU0MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0
cnkubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRURBMTJFMjE1MkNEMUFFMDBEOUUwOEQgLyogV2Vi
QWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMkUzNTJFMTMw
QjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTkxNjcsNiArOTIwOSw3IEBACiAJCQkJNTE4MzQ1OTIxMzQ1MzJFOTAwOTJCNjk2
IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQwMkY2
NDEzMkVDNUI5MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUM1NzE5M0JFMThDMTRBNDQwMDJEMEYxMiAvKiBXS0Zvcm1TZWxl
Y3RDb250cm9sLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNEEzQ0MxOEUxOUIwN0I4NTAwRDE0QUVG
IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkRERjczMTYxOEU5NTA2MDAwNEY1QTY2IC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVj
dGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMUIyNEE2MTMyRTA5NTcwMDA2NUEwQyAvKiBX
ZWJJY29uRGF0YWJhc2VQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQwMkY2QjEzMkVD
NzM3MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC05MzI5LDYgKzkzNzIsNyBAQAogCQkJCUJDNDA3NjI4MTI0RkYwNDAw
MDY4RjIwQSAvKiBXS0NlcnRpZmljYXRlSW5mb01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUx
NUU3NzI3MTgzREQ2RjYwMDA3MjAzRiAvKiBBc3luY1JlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkNBMjg0RDYxNDkyRjJDNzAwMUY5MDQyIC8qIFdLQ29ubmVjdGlvbi5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTRBM0NDMThDMTlCMDY0MTUwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMEMzNjU4MThDMDUxQkEw
MEY2MDdENyAvKiBSZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEYwQzM2NUMxOEMwNUNBMTAwRjYwN0Q3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHlJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzRBNjI5NjE0NzMxM0EwMDA2QzY4MUEgLyog
V0tDb25uZWN0aW9uUmVmLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjU2ZDgxZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAK
QEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisg
KiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgorCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2lu
Y2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBh
Z2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVJl
cXVlc3RJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVJlcXVlc3RJRCA9IDE7Cisg
ICAgcmV0dXJuIHVuaXF1ZVJlcXVlc3RJRCsrOworfQorCitVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJiBw
YWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0
PiBwcnBSZXF1ZXN0KQoreworICAgIFJlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0KHBy
cFJlcXVlc3QpOworICAgIEZyYW1lKiBmcmFtZSA9IHJlcXVlc3QtPmZyYW1lKCk7CisgICAgQVNT
RVJUKGZyYW1lKTsKKyAgICBpZiAoIWZyYW1lKSB7CisgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRp
YUFjY2Vzc0RlbmllZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdWludDY0X3Qg
cmVxdWVzdElEID0gZ2VuZXJhdGVSZXF1ZXN0SUQoKTsKKyAgICBtX2lkVG9SZXF1ZXN0TWFwLnNl
dChyZXF1ZXN0SUQsIHJlcXVlc3QpOworICAgIG1fcmVxdWVzdFRvSURNYXAuc2V0KHJlcXVlc3Qs
IHJlcXVlc3RJRCk7CisKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNv
cmVGcmFtZSgqZnJhbWUpOworICAgIEFTU0VSVCh3ZWJGcmFtZSk7CisKKyAgICBTZWN1cml0eU9y
aWdpbiogb3JpZ2luID0gcmVxdWVzdC0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICBtX3BhZ2Uuc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZy
YW1lKHJlcXVlc3RJRCwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgb3JpZ2luLT5kYXRhYmFzZUlkZW50
aWZpZXIoKSwgcmVxdWVzdC0+cmVxdWlyZXNBdWRpbygpLCByZXF1ZXN0LT5yZXF1aXJlc1ZpZGVv
KCkpKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNl
bFJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICB1aW50NjRfdCByZXF1
ZXN0SUQgPSBtX3JlcXVlc3RUb0lETWFwLnRha2UocmVxdWVzdCk7CisgICAgaWYgKCFyZXF1ZXN0
SUQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2lkVG9SZXF1ZXN0TWFwLnJlbW92ZShyZXF1ZXN0
SUQpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVj
ZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wg
YWxsb3dlZCkKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCA9IG1faWRU
b1JlcXVlc3RNYXAudGFrZShyZXF1ZXN0SUQpOworICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAg
cmV0dXJuOworICAgIG1fcmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3QpOworCisgICAgaWYg
KGFsbG93ZWQpCisgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAg
ICBlbHNlCisgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9N
ZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDM2OTMxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCisjZGVmaW5lIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcl9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5j
bHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IFVzZXJNZWRpYVJlcXVlc3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQ
YWdlOworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgeworcHVibGlj
OgorICAgIGV4cGxpY2l0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdl
Jik7CisKKyAgICB2b2lkIHN0YXJ0UmVxdWVzdChQYXNzUmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRp
YVJlcXVlc3Q+KTsKKyAgICB2b2lkIGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVx
dWVzdCopOworCisgICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpOworCitwcml2YXRlOgorICAgIHR5
cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+
PiBJRFRvUmVxdWVzdE1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6OlVz
ZXJNZWRpYVJlcXVlc3Q+LCB1aW50NjRfdD4gUmVxdWVzdFRvSURNYXA7CisgICAgSURUb1JlcXVl
c3RNYXAgbV9pZFRvUmVxdWVzdE1hcDsKKyAgICBSZXF1ZXN0VG9JRE1hcCBtX3JlcXVlc3RUb0lE
TWFwOworCisgICAgV2ViUGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjczYzhmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVk
aWFDbGllbnQuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
SWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQuaCIKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJVc2VyTWVkaWFDb250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiVXNlck1lZGlhUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1VzZXJNZWRpYVJlcXVlc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVzZXJNZWRpYUNs
aWVudChXZWJQYWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgV2Vi
VXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKK3sKKyAgICBkZWxldGUgdGhpczsKK30K
Kwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8
VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCkKK3sKKyAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKCkuc3RhcnRSZXF1ZXN0KHJlcXVlc3QpOworfQorCit2b2lkIFdl
YlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0KiByZXF1ZXN0
KQoreworICAgIG1fcGFnZS51c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5j
ZWxSZXF1ZXN0KHJlcXVlc3QpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ7CisKKyNlbmRp
ZiAvLyBNRURJQV9TVFJFQU0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkNDU5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCkBA
IC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICog
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv
biwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgV2ViVXNlck1lZGlhQ2xpZW50
X2gKKyNkZWZpbmUgV2ViVXNlck1lZGlhQ2xpZW50X2gKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFDbGllbnQuaD4KKyNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2Ns
YXNzIFdlYlVzZXJNZWRpYUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQg
eworcHVibGljOgorICAgIFdlYlVzZXJNZWRpYUNsaWVudChXZWJQYWdlJik7CisKK3ByaXZhdGU6
CisgICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pik7Cisg
ICAgdmlydHVhbCB2b2lkIGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCop
OworCisgICAgV2ViUGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFdlYlVzZXJNZWRp
YUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggNTdhYmYwYS4uNWJiMzBiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtOTgsNiArOTgsNyBAQAogI2luY2x1ZGUgIldlYlBy
b2dyZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlVuZG9TdGVwLmgiCiAjaW5jbHVk
ZSAiV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiV2ViVXNlck1lZGlhQ2xp
ZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJvbWUuaD4KQEAg
LTI4NCw2ICsyODUsOSBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3Qg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICNpZiBFTkFCTEUoR0VPTE9D
QVRJT04pCiAgICAgLCBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKHRoaXMp
CiAjZW5kaWYKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICwgbV91c2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCisjZW5kaWYKICAgICAsIG1fY2FuUnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKHBhcmFtZXRlcnMuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKQogICAgICwgbV9jYW5SdW5Nb2RhbChwYXJhbWV0ZXJzLmNhblJ1bk1vZGFsKQogICAgICwg
bV9pc1J1bm5pbmdNb2RhbChmYWxzZSkKQEAgLTM5MSw2ICszOTUsOSBAQCBXZWJQYWdlOjpXZWJQ
YWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKICNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKICAgICBXZWJDb3JlOjpwcm92
aWRlRGV2aWNlUHJveGltaXR5VG8obV9wYWdlLmdldCgpLCBuZXcgV2ViRGV2aWNlUHJveGltaXR5
Q2xpZW50KHRoaXMpKTsKICNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgV2Vi
Q29yZTo6cHJvdmlkZVVzZXJNZWRpYVRvKG1fcGFnZS5nZXQoKSwgbmV3IFdlYlVzZXJNZWRpYUNs
aWVudCgqdGhpcykpOworI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAg
ICBtX3BhZ2UtPnNldFJlbW90ZUluc3BlY3Rpb25BbGxvd2VkKHRydWUpOwpAQCAtMzI1OSw2ICsz
MjY2LDEzIEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25E
ZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwKICAgICBub3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIoKS0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNp
c2lvbihub3RpZmljYXRpb25JRCwgYWxsb3dlZCk7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpCit7CisgICAgbV91c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbih1c2VyTWVkaWFJRCwgYWxsb3dlZCk7Cit9CisjZW5kaWYKKwogI2lmICFQTEFURk9STShJ
T1MpCiB2b2lkIFdlYlBhZ2U6OmFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVm
b3JlU2VsZWN0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKaW5kZXggYjdkNDQ4Yy4uMWIzZGY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUGx1Z2lu
LmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJp
dG1hcC5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvRGljdGF0aW9uQWx0ZXJuYXRpdmUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RyYWdEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3IuaD4KQEAgLTQ1MCw2ICs0
NTEsMTAgQEAgcHVibGljOgogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
JiBnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpIHsgcmV0dXJuIG1fZ2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXImIHVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpIHsgcmV0dXJuIG1fdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOyB9CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICBX
ZWJDb3JlOjpGbG9hdFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0OwogICAgIFdlYkNvcmU6OkZsb2F0
U2l6ZSBhdmFpbGFibGVTY3JlZW5TaXplKCkgY29uc3Q7CkBAIC0xMDIxLDYgKzEwMjYsMTAgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNp
c2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKIAorI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRl
Y2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpOworI2VuZGlmCisKICAg
ICB2b2lkIGFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9u
KTsKICAgICB2b2lkIGNoYW5nZVNwZWxsaW5nVG9Xb3JkKGNvbnN0IFN0cmluZyYgd29yZCk7CiAj
aWYgVVNFKEFQUEtJVCkKQEAgLTExODYsNiArMTE5NSwxMCBAQCBwcml2YXRlOgogICAgIEdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOworI2VuZGlmCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UHJpbnRD
b250ZXh0PiBtX3ByaW50Q29udGV4dDsKICNpZiBQTEFURk9STShHVEspCiAgICAgUmVmUHRyPFdl
YlByaW50T3BlcmF0aW9uR3RrPiBtX3ByaW50T3BlcmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBlYmY3
MjBkLi44N2Y0MDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjY0LDYgKzI2NCwxMSBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2VvbG9jYXRpb25JRCwgYm9vbCBhbGxvd2VkKQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICMgTWVkaWFTdGVhbQorICAgIERp
ZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQs
IGJvb2wgYWxsb3dlZCkKKyNlbmRpZgorCiAgICAgIyBOb3RpZmljYXRpb24KICAgICBEaWRSZWNl
aXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
LCBib29sIGFsbG93ZWQpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA3ZTllOTU2Li5kYWJiYWExIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTQtMDktMDEgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXSzJdIFVz
ZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTaW1wbGUgQVBJIHRlc3QgZm9yIHRoZSBVc2VyTWVkaWEgcGVybWlzc2lv
biByZXF1ZXN0IEFQSS4gVGhlCisgICAgICAgIHJlcXVpcmVkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUg
aXMgYWxzbyBhZGRlZCwgaW5zcGlyZWQgYnkgdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIGluZnJh
c3RydWN0dXJlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6IE5ldyBBUEkgdGVzdCBmb3IgVXNlck1lZGlhCisgICAgICAg
IFBlcm1pc3Npb24gcmVxdWVzdC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDIvVXNlck1lZGlhLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNrKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9nZXRVc2VyTWVkaWEuaHRtbDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDogbmV3CisgICAgICAgIGhlbHBl
ciBtZXRob2QgdG8gc2V0IHRoZSBwZXJtaXNzaW9uIHJlcXVlc3QgcmVzdWx0IHdpdGhvdXQgdXNl
ciBpbnRlcmFjdGlvbi4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcDogRGl0dG8uCisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxl
OjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6IERpdHRvLgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6IERpdHRvLgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDogRGl0dG8uCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OmRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTogUGVybWlzc2lvbgorICAg
ICAgICByZXF1ZXN0IGhhbmRsZXIuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVh
dGVPdGhlclBhZ2UpOiBFbmFibGUgdGhlIG5ldyBVc2VyTWVkaWEKKyAgICAgICAgcGVybWlzc2lv
biByZXF1ZXN0IGhhbmRsZXIuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVX
ZWJWaWV3V2l0aE9wdGlvbnMpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOiBFbmFibGUKKyAgICAgICAgTWVk
aWFTdHJlYW0gc3VwcG9ydCwgdGhpcyBpcyBuZWVkZWQgZm9yIGdldFVzZXJNZWRpYS4KKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOiBj
bGVhcgorICAgICAgICBVc2VyTWVkaWEgcGVybWlzc2lvbnMgbGlzdCBhbmQgZmxhZ3MuCisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKTogU2V0IHBl
cm1pc3Npb24KKyAgICAgICAgcmVxdWVzdCByZXN1bHQgYW5kIGRpc3RwYXRjaCBpdC4KKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmhhbmRsZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
KTogU2F2ZQorICAgICAgICByZXF1ZXN0IGFuZCBkaXNwYXRjaCBpdC4KKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
SWZQb3NzaWJsZSk6CisgICAgICAgIERpc3BhdGNoIGNhY2hlZCBwZXJtaXNzaW9uIHJlcXVlc3Rz
LgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVz
dEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAx
NC0wOC0yOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS10gdGVzdCBjYXNlIGZpbHRlciBzdXBwb3J0IGluIHJ1bi1ndGstdGVzdHMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDI4ZGE1ZmQuLmEzNzliZWYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtOTcsNiArOTcsNyBAQCBhZGRfZXhl
Y3V0YWJsZShUZXN0V2ViS2l0MgogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktp
dDIvUmVzaXplV2luZG93QWZ0ZXJDcmFzaC5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9U
ZXN0cy9XZWJLaXQyL1Jlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGEuY3BwCiAg
ICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9TaG91bGRHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1Vz
ZXJNZWRpYS5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1VzZXJN
ZXNzYWdlLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvV2lsbFNl
bmRTdWJtaXRFdmVudC5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQy
L1dLUGFnZUdldFNjYWxlRmFjdG9yTm90WmVyby5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggNzgyNWUwZC4uZDQ5Y2IzOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg4LDYgKzg4
LDcgQEAKIAkJMzdFMTA2NEQxNjk3NkM4NTAwQjc4QkQwIC8qIERPTUhUTUxUYWJsZUNlbGxDZWxs
QWJvdmUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
N0UxMDY0QTE2OTc2NzY0MDBCNzhCRDAgLyogRE9NSFRNTFRhYmxlQ2VsbENlbGxBYm92ZS5tbSAq
LzsgfTsKIAkJMzdFMzhDMzQxNjlCN0QwMTAwODRDMjhDIC8qIFdlYlZpZXdEaWRSZW1vdmVGcmFt
ZUZyb21IaWVyYXJjaHkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzN0UzOEMzMzE2OUI3RDAxMDA4NEMyOEMgLyogV2ViVmlld0RpZFJlbW92ZUZyYW1l
RnJvbUhpZXJhcmNoeS5tbSAqLzsgfTsKIAkJNDQwQTFEMzkxNEEwMTAzQTAwOEE2NkYyIC8qIFVS
TC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDBB
MUQzODE0QTAxMDNBMDA4QTY2RjIgLyogVVJMLmNwcCAqLzsgfTsKKwkJNEE0MTBGNEMxOUFGN0JE
NjAwMkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0QjE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNw
cCAqLzsgfTsKIAkJNEJCNDE2MDIxNjgxNUIyNjAwODI0MjM4IC8qIEpTV3JhcHBlckZvck5vZGVJ
bldlYkZyYW1lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNEJCNDE2MDExNjgxNUIyNjAwODI0MjM4IC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZyYW1l
Lm1tICovOyB9OwogCQk0QkI0MTYwNDE2ODE1RjkxMDA4MjQyMzggLyogRWxlbWVudEF0UG9pbnRJ
bldlYkZyYW1lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNEJCNDE2MDMxNjgxNUY5MTAwODI0MjM4IC8qIEVsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5t
bSAqLzsgfTsKIAkJNEJGREZGQTcxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2Rl
SGFuZGxlX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5k
bGVfQnVuZGxlLmNwcCAqLzsgfTsKQEAgLTQzNiw2ICs0MzcsOCBAQAogCQkzN0UzOEMzMzE2OUI3
RDAxMDA4NEMyOEMgLyogV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlZpZXdEaWRSZW1vdmVGcmFt
ZUZyb21IaWVyYXJjaHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MEExRDM4
MTRBMDEwM0EwMDhBNjZGMiAvKiBVUkwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVVJMLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRBNjIyQzEx
NEEwRTJCNjAwNDg1MTVCIC8qIFdURlN0cmluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXVEZTdHJpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNEE0MTBGNEIxOUFGN0JENjAwMkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWEuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEY0RDE5QUY3QkVGMDAyRUJBQjUgLyogZ2V0VXNl
ck1lZGlhLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBnZXRVc2VyTWVkaWEuaHRt
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJCNDE2MDExNjgxNUIyNjAwODI0MjM4
IC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZyYW1lLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCQjQxNjAzMTY4MTVGOTEwMDgyNDIzOCAvKiBFbGVtZW50
QXRQb2ludEluV2ViRnJhbWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBFbGVtZW50QXRQb2ludEluV2ViRnJhbWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRs
ZV9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGl0VGVz
dFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTgyMSw2ICs4MjQsNyBAQAogCQlCQzkwOTY0MTEyNTU2MTYwMDAwODM3NTYgLyogV2ViS2l0
MiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBG
NEIxOUFGN0JENjAwMkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgKi8sCiAJCQkJQzBDNUQzQkIxNDU5
OEI2RjAwQTgwMkE2IC8qIG1hYyAqLywKIAkJCQlCQzkwOTc3QjEyNTU3MUFFMDAwODM3NTYgLyog
UmVzb3VyY2VzICovLAogCQkJCUJDMjQ2RDhDMTMyRjExNUEwMEI1NkQ3QyAvKiBBYm91dEJsYW5r
TG9hZC5jcHAgKi8sCkBAIC05NTQsNiArOTU4LDcgQEAKIAkJQkM5MDk3N0IxMjU1NzFBRTAwMDgz
NzU2IC8qIFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJNEE0MTBGNEQxOUFGN0JFRjAwMkVCQUI1IC8qIGdldFVzZXJNZWRpYS5odG1sICov
LAogCQkJCUMwNDVGOTQ2MTM4NUMyRjgwMEMwRjNDRCAvKiAxOC1jaGFyYWN0ZXJzLmh0bWwgKi8s
CiAJCQkJRjZCN0JFOTYxNzQ2OUI3RTAwOEEzNDQ1IC8qIGFzc29jaWF0ZS1mb3JtLWNvbnRyb2xz
Lmh0bWwgKi8sCiAJCQkJNzZFMTgyREUxNTQ3NUE4MzAwRjFGQUREIC8qIGF1dG8tc3VibWl0dGlu
Zy1mb3JtLmh0bWwgKi8sCkBAIC0xMzU3LDYgKzEzNjIsNyBAQAogCQkJCTUxRkNGNzlBMTUzNEFD
NkQwMDEwNDQ5MSAvKiBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQUZERTY1NjE5NTNCMkMwMDBDNDhGRkEgLyogT3B0aW9uYWwuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQzU0MEY3NzYxNTJFNERBMDAwQTQwQzhDIC8qIFNpbXBsaWZ5TWFya3Vw
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNEE0MTBGNEMxOUFGN0JENjAwMkVCQUI1IC8qIFVzZXJN
ZWRpYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMDJCNzdGMjEyNjYxMjE0MDAyNkJGMEYgLyog
U3BhY2ViYXJTY3JvbGxpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNEM0QxOUUxN0IxQTg0
MjAwQzdDNDE1IC8qIExheW91dE1pbGVzdG9uZXNXaXRoQWxsQ29udGVudEluRnJhbWUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRTE5NEUxQkIxNzdFNTE0NTAwOUM0RDRFIC8qIFN0b3BMb2FkaW5n
RnJvbURpZFJlY2VpdmVSZXNwb25zZS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi45NGY0NzkyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBV
U0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJW
aWV3LmgiCisjaW5jbHVkZSAiVGVzdC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5o
PgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHZlY3Rvcj4KKwordXNpbmcgbmFtZXNw
YWNlIHN0ZDsKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCBkb25l
OworCit2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbEJh
Y2soV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYg
b3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdyhwZXJtaXNzaW9uUmVxdWVzdCk7CisgICAgZG9uZSA9IHRydWU7Cit9CisKK1RF
U1QoV2ViS2l0MiwgVXNlck1lZGlhQmFzaWMpCit7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0
UmVmPiBjb250ZXh0KEFkb3B0V0ssIFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICBQbGF0Zm9ybVdl
YlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1BhZ2VVSUNsaWVudFY1IHVpQ2xp
ZW50OworICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOworCisgICAg
dWlDbGllbnQuYmFzZS52ZXJzaW9uID0gNTsKKyAgICB1aUNsaWVudC5kZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCA9IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0Q2FsbEJhY2s7CisKKyAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmll
dy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKKworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1
cmwoQWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImdldFVzZXJNZWRpYSIsICJo
dG1sIikpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5w
YWdlKCksIHVybC5nZXQoKSk7CisKKyAgICBVdGlsOjpydW4oJmRvbmUpOworfQorCit9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRp
YS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRpYS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1NGY4NTMKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2V0VXNlck1lZGlh
Lmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPHNjcmlwdD4KK2Z1bmN0aW9uIGdvdFVzZXJNZWRpYSht
ZWRpYVN0cmVhbSkKK3sKKyAgICBjb25zb2xlLmxvZygiR290IHVzZXIgbWVkaWEiKTsKK30KKwor
ZnVuY3Rpb24gdXNlck1lZGlhRXJyb3IoZXJyb3IpCit7CisgICAgY29uc29sZS5sb2coZXJyb3Ip
OworfQorCit2YXIgb3B0aW9ucyA9IHsgYXVkaW86IGZhbHNlLCB2aWRlbzogdHJ1ZX07CituYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGdvdFVzZXJNZWRpYSwgdXNlck1lZGlh
RXJyb3IpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCBiYjlhN2Ew
Li4wOGExODk4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTE2OSw2ICsxNjksOSBA
QCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3Np
dGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwg
W0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBvYmplY3QgYWx0aXR1ZGUsIG9wdGlvbmFsIG9i
amVjdCBhbHRpdHVkZUFjY3VyYWN5LCBvcHRpb25hbCBvYmplY3QgaGVhZGluZywgb3B0aW9uYWwg
b2JqZWN0IHNwZWVkKTsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFp
bGFibGVFcnJvcihET01TdHJpbmcgZXJyb3JNZXNzYWdlKTsKIAorICAgIC8vIE1lZGlhU3RyZWFt
CisgICAgdm9pZCBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2xlYW4gdmFsdWUpOworCiAgICAg
Ly8gQXVkaW8gdGVzdGluZy4KICAgICBbUGFzc0NvbnRleHRdIHZvaWQgc2V0QXVkaW9SZXN1bHQo
b2JqZWN0IGRhdGEpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDdiMWRlNzAuLjFiNmViZDAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwCkBAIC00NTgsNiArNDU4LDEzIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6
OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihXS1N0cmluZ1JlZiBl
cnJvCiAgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShtX2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0KCks
IGVycm9yTWVzc2FnZSk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldFVzZXJNZWRpYVBl
cm1pc3Npb24oYm9vbCBlbmFibGVkKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBt
ZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0VXNl
ck1lZGlhUGVybWlzc2lvbiIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3Nh
Z2VCb2R5KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShlbmFibGVkKSk7CisgICAgV0tCdW5kbGVQ
b3N0TWVzc2FnZShtX2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgp
KTsKK30KKwogdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9v
bCBlbmFibGVkLCBib29sIHBlcm1pc3NpdmUpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJT
ZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAppbmRleCA5Zjc2YTlkLi44ZjBh
ODQwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC05Miw2ICs5Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVk
ZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVk
ZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5
LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVl
ZCwgZG91YmxlIHNwZWVkKTsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5h
dmFpbGFibGVFcnJvcihXS1N0cmluZ1JlZiBlcnJvck1lc3NhZ2UpOwogCisgICAgLy8gTWVkaWFT
dHJlYW0uCisgICAgdm9pZCBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wpOworCiAgICAgLy8g
UG9saWN5IGRlbGVnYXRlLgogICAgIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBl
bmFibGVkLCBib29sIHBlcm1pc3NpdmUpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBkMDg1ZjFhLi5kNzUxYjk1
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKQEAgLTcyMCw2ICs3MjAsMTIgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoSlNTdHJpbmdSZWYgbWVzc2FnZSkK
ICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25V
bmF2YWlsYWJsZUVycm9yKG1lc3NhZ2VXSy5nZXQoKSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6
c2V0VXNlck1lZGlhUGVybWlzc2lvbihib29sIGVuYWJsZWQpCit7CisgICAgLy8gRklYTUU6IHRo
aXMgc2hvdWxkIGJlIGRvbmUgYnkgZnJhbWUuCisgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
LnNldFVzZXJNZWRpYVBlcm1pc3Npb24oZW5hYmxlZCk7Cit9CisKIGJvb2wgVGVzdFJ1bm5lcjo6
Y2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCkKIHsKICAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5G
cmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCku
cGFnZSgpLT5wYWdlKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCBlMjFmZmYzLi4zOTRlOTA4IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMjUy
LDYgKzI1Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9u
KGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBKU1Zh
bHVlUmVmIGFsdGl0dWRlLCBKU1ZhbHVlUmVmIGFsdGl0dWRlQWNjdXJhY3ksIEpTVmFsdWVSZWYg
aGVhZGluZywgSlNWYWx1ZVJlZiBzcGVlZCk7CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Q
b3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoSlNTdHJpbmdSZWYgbWVzc2FnZSk7CiAKKyAgICAvLyBN
ZWRpYVN0cmVhbQorICAgIHZvaWQgc2V0VXNlck1lZGlhUGVybWlzc2lvbihib29sKTsKKwogICAg
IHZvaWQgc2V0UGFnZVZpc2liaWxpdHkoSlNTdHJpbmdSZWYgc3RhdGUpOwogICAgIHZvaWQgcmVz
ZXRQYWdlVmlzaWJpbGl0eSgpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCmluZGV4IGJlOGYxZjcuLmM0YWZlMjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xODgsNiArMTg4LDExIEBAIHN0YXRpYyB2b2lkIGRlY2lk
ZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1l
UmVmLCBXCiAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLmhhbmRsZUdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QocGVybWlzc2lvblJlcXVlc3QpOwogfQogCitzdGF0aWMgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVS
ZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYg
cGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgVGVzdENv
bnRyb2xsZXI6OnNoYXJlZCgpLmhhbmRsZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHBlcm1p
c3Npb25SZXF1ZXN0KTsKK30KKwogaW50IFRlc3RDb250cm9sbGVyOjpnZXRDdXN0b21UaW1lb3V0
KCkKIHsKICAgICByZXR1cm4gbV90aW1lb3V0OwpAQCAtMjAyLDggKzIwNyw4IEBAIFdLUGFnZVJl
ZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VS
TFJlcXVlc3RSZWYsIFdLCiAKICAgICB2aWV3LT5yZXNpemVUbyg4MDAsIDYwMCk7CiAKLSAgICBX
S1BhZ2VVSUNsaWVudFYyIG90aGVyUGFnZVVJQ2xpZW50ID0gewotICAgICAgICB7IDIsIHZpZXcg
fSwKKyAgICBXS1BhZ2VVSUNsaWVudFY1IG90aGVyUGFnZVVJQ2xpZW50ID0geworICAgICAgICB7
IDUsIHZpZXcgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNl
V2l0aFYwCiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIGNsb3NlT3RoZXJQYWdlLApA
QCAtMjUwLDYgKzI1NSwxMSBAQCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVy
UGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXSwogICAgICAgICAwLCAv
LyBzaG93Q29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAg
IDAsIC8vIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZAorICAgICAgICAwLCAvLyBwaW5u
ZWRTdGF0ZURpZENoYW5nZQorICAgICAgICAwLCAvLyBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFs
TG9uZ01vdXNlUHJlc3MKKyAgICAgICAgMCwgLy8gZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MK
KyAgICAgICAgMCwgLy8gZGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcwor
ICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKICAgICB9
OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChuZXdQYWdlLCAmb3RoZXJQYWdlVUlDbGllbnQu
YmFzZSk7CiAKQEAgLTQwOCw4ICs0MTgsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFs
aXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiB2b2lkIFRlc3RDb250cm9sbGVyOjpj
cmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoV0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpCiB7CiAgICAg
bV9tYWluV2ViVmlldyA9IHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1XZWJWaWV3PihtX2NvbnRl
eHQuZ2V0KCksIG1fcGFnZUdyb3VwLmdldCgpLCBudWxscHRyLCBvcHRpb25zKTsKLSAgICBXS1Bh
Z2VVSUNsaWVudFYyIHBhZ2VVSUNsaWVudCA9IHsKLSAgICAgICAgeyAyLCBtX21haW5XZWJWaWV3
LmdldCgpIH0sCisgICAgV0tQYWdlVUlDbGllbnRWNSBwYWdlVUlDbGllbnQgPSB7CisgICAgICAg
IHsgNSwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdl
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAg
MCwgLy8gY2xvc2UKQEAgLTQ1Niw2ICs0NjYsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3Jl
YXRlV2ViVmlld1dpdGhPcHRpb25zKFdLRGljdGlvbmFyeVJlZiBvcHRpb25zKQogICAgICAgICAw
LCAvLyBzaG93Q29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAg
ICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCwKKyAgICAgICAgMCwgLy8gcGlubmVk
U3RhdGVEaWRDaGFuZ2UKKyAgICAgICAgMCwgLy8gZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExv
bmdNb3VzZVByZXNzCisgICAgICAgIDAsIC8vIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzCisg
ICAgICAgIDAsIC8vIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MKKyAg
ICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsCiAgICAgfTsK
ICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJ
Q2xpZW50LmJhc2UpOwogCkBAIC01NDUsNiArNTYwLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgV0tQcmVmZXJlbmNlc1Nl
dEZvbnRTbW9vdGhpbmdMZXZlbChwcmVmZXJlbmNlcywga1dLRm9udFNtb290aGluZ0xldmVsTm9T
dWJwaXhlbEFudGlBbGlhc2luZyk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFhTU0F1ZGl0b3JFbmFi
bGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFdlYkF1ZGlvRW5h
YmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhU3RyZWFt
RW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldERldmVsb3Bl
ckV4dHJhc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRK
YXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShwcmVmZXJl
bmNlcywgdHJ1ZSk7CkBAIC02NDEsNiArNjU3LDExIEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJl
c2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIG1faXNHZW9sb2NhdGlvblBlcm1pc3Np
b25TZXQgPSBmYWxzZTsKICAgICBtX2lzR2VvbG9jYXRpb25QZXJtaXNzaW9uQWxsb3dlZCA9IGZh
bHNlOwogCisgICAgLy8gUmVzZXQgVXNlck1lZGlhIHBlcm1pc3Npb25zLgorICAgIG1fdXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RzLmNsZWFyKCk7CisgICAgbV9pc1VzZXJNZWRpYVBlcm1pc3Np
b25TZXQgPSBmYWxzZTsKKyAgICBtX2lzVXNlck1lZGlhUGVybWlzc2lvbkFsbG93ZWQgPSBmYWxz
ZTsKKwogICAgIC8vIFJlc2V0IEN1c3RvbSBQb2xpY3kgRGVsZWdhdGUuCiAgICAgc2V0Q3VzdG9t
UG9saWN5RGVsZWdhdGUoZmFsc2UsIGZhbHNlKTsKIApAQCAtMTM1NCw2ICsxMzc1LDM0IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OmhhbmRsZUdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tH
ZW9sb2NhdGlvblBlcm1pc3Npb25SCiAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdElmUG9zc2libGUoKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0
VXNlck1lZGlhUGVybWlzc2lvbihib29sIGVuYWJsZWQpCit7CisgICAgbV9pc1VzZXJNZWRpYVBl
cm1pc3Npb25TZXQgPSB0cnVlOworICAgIG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uQWxsb3dlZCA9
IGVuYWJsZWQ7CisgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJ
ZlBvc3NpYmxlKCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmhhbmRsZVVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QpCit7CisgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMu
YXBwZW5kKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTsKKyAgICBkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKTsKK30KKwordm9pZCBUZXN0Q29u
dHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBvc3Np
YmxlKCkKK3sKKyAgICBpZiAoIW1faXNVc2VyTWVkaWFQZXJtaXNzaW9uU2V0KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RzLnNpemUoKTsgKytpKSB7CisgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QgPSBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
c1tpXS5nZXQoKTsKKyAgICAgICAgaWYgKG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uQWxsb3dlZCkK
KyAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhwZXJtaXNzaW9u
UmVxdWVzdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3REZW55KHBlcm1pc3Npb25SZXF1ZXN0KTsKKyAgICB9CisgICAgbV91c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdHMuY2xlYXIoKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0
Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFibGVkLCBib29sIHBlcm1pc3NpdmUpCiB7CiAg
ICAgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQgPSBlbmFibGVkOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGQ5YmU3NDguLjU5YTdlODkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTg4LDYgKzg4LDEwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihXS1N0cmlu
Z1JlZiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgaGFuZGxlR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdChXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYpOwogCisgICAgLy8gTWVk
aWFTdHJlYW0uCisgICAgdm9pZCBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wpOworICAgIHZv
aWQgaGFuZGxlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFJlZik7CisKICAgICAvLyBQb2xpY3kgZGVsZWdhdGUuCiAgICAgdm9pZCBzZXRDdXN0
b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSk7CiAKQEAgLTEz
Myw2ICsxMzcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlTGF5b3V0VHlwZUZvclRlc3Qo
Y29uc3QgVGVzdEludm9jYXRpb24mKTsKIAogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKTsKKyAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpOwogCiAgICAgLy8gV0tD
b250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0NvbnRleHRSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2VO
YW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHksIGNvbnN0IHZvaWQqKTsKQEAgLTIzNyw2ICsyNDIs
MTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNHZW9sb2NhdGlvblBlcm1pc3Npb25TZXQ7CiAg
ICAgYm9vbCBtX2lzR2VvbG9jYXRpb25QZXJtaXNzaW9uQWxsb3dlZDsKIAorICAgIFZlY3RvcjxX
S1JldGFpblB0cjxXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmPj4gbV91c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdHM7CisgICAgYm9vbCBtX2lzVXNlck1lZGlhUGVybWlzc2lvblNldDsK
KyAgICBib29sIG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uQWxsb3dlZDsKKwogICAgIGJvb2wgbV9w
b2xpY3lEZWxlZ2F0ZUVuYWJsZWQ7CiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlUGVybWlzc2l2
ZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCAzNjM3
NzAzLi44N2M0NmM0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cApAQCAtNDc4LDYgKzQ3OCwxMyBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVz
c2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVz
c2FnZU5hbWUsICJTZXRVc2VyTWVkaWFQZXJtaXNzaW9uIikpIHsKKyAgICAgICAgQVNTRVJUKFdL
R2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAg
IFdLQm9vbGVhblJlZiBlbmFibGVkV0sgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3Nh
Z2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnNldFVzZXJNZWRpYVBl
cm1pc3Npb24oV0tCb29sZWFuR2V0VmFsdWUoZW5hYmxlZFdLKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFt
ZSwgIlNldEN1c3RvbVBvbGljeURlbGVnYXRlIikpIHsKICAgICAgICAgQVNTRVJUKFdLR2V0VHlw
ZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7CiAgICAgICAgIFdL
RGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0RpY3Rp
b25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKLS0gCjIuMS4w
</data>
<flag name="commit-queue"
          id="263633"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>238916</attachid>
            <date>2014-09-30 01:16:41 -0700</date>
            <delta_ts>2014-09-30 01:16:41 -0700</delta_ts>
            <desc>Archive of layout-test-results from webkit-ews-15 for mac-mountainlion-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>515634</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
EhVKEovSU0sUyjJTyxUSSxRMDAwM9AzAQMfYwhTK5AIAUEsDBAoAAAAAAIwFPkUAAAAAAAAAAAAA
AAAMABwAZmFzdC9mcmFtZXMvVVQJAANYXypUw2AqVHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACM
BT5F2wjTQjsAAAA/AAAALwAcAGZhc3QvZnJhbWVzL2ZyYW1lLWRpc3BsYXktbm9uZS1mb2N1cy1z
dGRlcnIudHh0VVQJAANYXypUWF8qVHV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVI
VCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAAAJUFPkUAAAAA
AAAAAAAAAAAMABwAZmFzdC9sb2FkZXIvVVQJAANqXypUw2AqVHV4CwABBPUBAAAEFAAAAFBLAwQU
AAIACACQBT5F2wjTQjsAAAA/AAAAUgAcAGZhc3QvbG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5zZXQt
Y2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAkAA2Bf
KlRgXypUdXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQq
QMQzixWSUjPz0hUKivKTU4uLU1P0uABQSwMEFAACAAgAkQU+RdsI00I7AAAAPwAAAFMAHABmYXN0
L2xvYWRlci9pbWFnZXMtZW5hYmxlZC11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxv
YWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVUCQADYV8qVGFfKlR1eAsAAQT1AQAABBQAAABzLClJzS0o
USjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQU
AAIACACVBT5F2wjTQjsAAAA/AAAALQAcAGZhc3QvbG9hZGVyL3JlbG9hZC1wb2xpY3ktZGVsZWdh
dGUtc3RkZXJyLnR4dFVUCQADal8qVGpfKlR1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxN
LU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQKAAAAAACgBT5F
AAAAAAAAAAAAAAAADQAcAGZhc3QvcmVnaW9ucy9VVAkAA3xfKlTDYCpUdXgLAAEE9QEAAAQUAAAA
UEsDBAoAAAAAAKAFPkUAAAAAAAAAAAAAAAAXABwAZmFzdC9yZWdpb25zL3Njcm9sbGluZy9VVAkA
A3xfKlTDYCpUdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAKAFPkU5AcvdQAAAAHoAAAA1ABwAZmFz
dC9yZWdpb25zL3Njcm9sbGluZy93aGVlbC1zY3JvbGwtYWJzcG9zLXN0ZGVyci50eHRVVAkAA3xf
KlR8XypUdXgLAAEE9QEAAAQUAAAAcy1LzSsJTs1LSS0KKMqvqLSySs7PK8nMK80vLfYF4tTg5KL8
nBynSoXMYoW8/BKFzNyCnNRcoKbUFC5XSjQDAFBLAwQUAAIACACgBT5FOQHL3UAAAAB6AAAALgAc
AGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcvd2hlZWwtc2Nyb2xsLXN0ZGVyci50eHRVVAkAA3xfKlR8
XypUdXgLAAEE9QEAAAQUAAAAcy1LzSsJTs1LSS0KKMqvqLSySs7PK8nMK80vLfYF4tTg5KL8nByn
SoXMYoW8/BKFzNyCnNRcoKbUFC5XSjQDAFBLAwQUAAIACACgBT5F5IrHQzwAAAA9AAAAQAAcAGZh
c3QvcmVnaW9ucy9zY3JvbGxpbmcvd2hlZWwtc2Nyb2xsYWJsZS1zaW5nbGUtcmVnaW9uLXN0ZGVy
ci50eHRVVAkAA3xfKlR8XypUdXgLAAEE9QEAAAQUAAAAcy1LzSsJTs1LSS0KKMqvqLSySs7PK8nM
K80vLfYF4tTg5KL8nBynSoXMYoW8/BKFzNyCnNRcoKbUFC4AUEsDBAoAAAAAAKsFPkUAAAAAAAAA
AAAAAAAJABwAZmFzdC94c2wvVVQJAAOSXypUw2AqVHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACr
BT5Fcv1l8oUAAADpAAAAJQAcAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50eHRV
VAkAA5FfKlSRXypUdXgLAAEE9QEAAAQUAAAArU4xDsJADNv7inygZGC7GSbYQHRO21SclLtUuZzU
/p6DfoHFsmzL9qRpjUIeNQObqQVYovAPAiK+VGrighdywuvwwIHHW3S8067Vn1y84ELFcSuCxkWr
TS2+va2fdTo1FSRmhjOwcOLsENOq5l1zwkEhQM00tlFXEKX5T+P9Uc/z90X3AVBLAwQUAAIACACr
BT5FBY9VjpMAAADQAgAAJwAcAGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3RkZXJyLnR4
dFVUCQADkV8qVJFfKlR1eAsAAQT1AQAABBQAAADtTzsOwjAM3XsKX6B4YMsME2wgOjupKyI5cZU4
EtyeQI/Ahlgs2++j94KmNQpZ1AxcihYHSxT+DIeIN5WWuOKBjPA4XXBif4qGZ3pqsytXq7hQNXxU
wcJVWwmd3i8bPc1jTKsWG1uJu/4DiZlhDyycOBts6NARt63goGXyPYApiNL8bZCstYX726TrRIbw
7/vTfV9QSwMEFAACAAgAqwU+RYFKd61LAAAArAAAADQAHABmYXN0L3hzbC94c2x0LXRyYW5zZm9y
bS10by1mcmFnbWVudC1jcmFzaC1zdGRlcnIudHh0VVQJAAOSXypUkl8qVHV4CwABBPUBAAAEFAAA
ALXMsQ2AMAxE0T5T3Aq0bOPABVlybGQs5keiYAPqr/e3mKealIaDmZErhhoBUycW0DjphVtSpRtb
cudQ11fEwGHRxb6O4lVt++X6AFBLAwQUAAIACABNBj5FWmUQPTcBAABsAgAAEQAcAGZ1bGxfcmVz
dWx0cy5qc29uVVQJAAPBYCpUwmAqVHV4CwABBPUBAAAEFAAAALVRz0vDMBT+X95JobWyHmT1NFgR
cais1Xkrb+3rGpamIXmVlbH/3SST4cGbmEuSL9+Pl/cWy2W1zou3VVlcHYHJsoXsCB2z9vsF6KkR
eDnElg1h7++NsPWgFNVMTdwa7ClG6R6b6abjXnqKIT0YhgzW+YPLKh5fniECOuggcvjroigcgjWP
6BRQ5h8lnKJfvP/DM9ZkemGtGFTckBLU/DUlrAjsXmjtaendbB6BGvvK0M5QiHJdTSMQismYUQe3
FqWlMy/Uo3aQ3UYgcRpGrsIoqkYYF5O8D3LsySZLZEzyTZFsaPskOFkFbhmmFsEnGR8VkryrRmvJ
B6fz1BlrcSD57UsKt/JHER3aShtinpyK6w4yNqPDW3HwRP+ndHZ2bSXup1Dp6Nyrc3eQ/R+rVniu
l56u778AUEsDBAoAAAAAAHMFPkUAAAAAAAAAAAAAAAAFABwAaHR0cC9VVAkAAypfKlTDYCpUdXgL
AAEE9QEAAAQUAAAAUEsDBAoAAAAAAMkFPkUAAAAAAAAAAAAAAAALABwAaHR0cC90ZXN0cy9VVAkA
A8lfKlTDYCpUdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAHMFPkUAAAAAAAAAAAAAAAARABwAaHR0
cC90ZXN0cy9tZWRpYS9VVAkAAypfKlTDYCpUdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAJMFPkUA
AAAAAAAAAAAAAAAeABwAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vVVQJAANmXypUw2Aq
VHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACTBT5Fa/phXMAAAADtAAAAOwAcAGh0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hY3R1YWwudHh0VVQJAANmXypU
Zl8qVHV4CwABBPUBAAAEFAAAAD2Oy24CMQxF9/MVt2yARXh0OaqQEEwREo9K036AIQ5YhLjKJCD+
voFFJS98rnSP7SJdGb2PN2Pcc/2idMZ4/M8TY2ZlejA4U4cpNOTglWzBYD3HQTesFvtdu9802DZt
O181NbwExvu0xvfjl5sYNdbIwbIruYV0CJpAcDkck2jAgG/kMyUJJ/TldXhHNzlR0ji68+EiacXp
p+O4ZSvUH1af8/Wm6OVafJoT7iSvttP4lIt7LLX8kBQHxpG8Z1tVf1BLAwQUAAIACABzBT5FZD7H
qB8BAAC3AQAAQwAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1m
cmFtZS1hbHJlYWR5LWFjdHVhbC50eHRVVAkAAypfKlQqXypUdXgLAAEE9QEAAAQUAAAAZZDLTsMw
EEX3/oqrbAoS6gKx6q6qQjdtUynhAybOJDF1bfCjUf6eaQGJio0X43MfM5vqUFe7EvuyrtfbcgVr
HOP5ZYVm/uAyBB9WyK7jXuYdTITzCYQ+O52Md3jgC9lMybgBC9MHOvOBLmag5MNy4vZk0pbTW+Sw
587Q4lE1HFNEGilhGtmJ2fAHQODPLMQ16kwdg/rEAUYkN3OMFNGy6DoTtXeOdeLuSWpBk7Ut6VME
Bf4Ru+72EyiO8FrnEJdKVQ4xa80xPmH2GZOxFpEFlzcYjvA9iuO6rguchaKBhey9tX6SI7Qziqas
G2yq/XFXNmUhnur/rrdCwsuVfPsuPSUojXe98XrdaamuWb+d+mztfKQQv++dQmal7vKU+gJQSwME
FAACAAgAcwU+RTZE4GylAQAA/QIAAEEAHABodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9k
aXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1kaWZmLnR4dFVUCQADKl8qVCpfKlR1eAsAAQT1AQAA
BBQAAADFkj1z2zAMhnf9CpyXtCdTuvay1JPzocvQ2MpVajNDJGSxoUiVBGP735dS3GuXzlnAOwAv
8PAlhRBQ/nAmjhTKe2Qsq+emfKbuq+bLcRu1UeU3MoSBSoNnF1kwBRaeQjQcyoF5KudMKEdSGt+i
COwJx1LpIJ21JJmU6D2OJNCkijoLOk1LuuATZ3mevyMKSo5oFpDtFsSn9TXkc9huM3FX75v6sYJd
1TQ3D9UGjLYEn683sHfcxGlyPg2svHd+A/f1DqqTpIm1s/BlA+1AoMfJ0EiWcckqrcA6hvCmBU4t
nn7FxE0K+DwRuB5c9zORgvPgJvKLssjy/8O0SXeBiFZRn/IKdFg2IfTRymX5B3pFE9M4e4Arvbiw
x1d9QHa+OFL3ovmB+Hsgv5u9u/qYQTsbmiiR4TiQTdMO/3T8QZ93jagIsGfyoJNkmQ4DBuiI5nv/
9X+duECiMR3KlwDo6SK2aql4DAM4KaMPRQYZ1DbZJSWFsIb07nDUxkCgJEjRawqzZaunm6ZZQfpB
AQ+UOntnjDsmH7ozrNqqaeGu3j09Vm21KrLfUEsDBBQAAgAIAHMFPkV5ecTXKwEAANABAABFABwA
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHkt
ZXhwZWN0ZWQudHh0VVQJAAMqXypUKl8qVHV4CwABBPUBAAAEFAAAAFWQv26DMBDGdz/FJ+YoQ9Wl
bFHqZgkhEvQBjDmCG2NT24jy9j3SRGoWD77vz+9uX56q8ihRyKraHWQOaxzh5TXHyadqGkcfErUy
BB9yvJcF5I+mMRnv8Jaj7glmGC0N5JK6/bamhfMJ8c+LxJJA3xNFzkFaRoLv4Jsv0gk+wI8Ubs6t
qFkT2aAS5p4cFC6UPiOFglqjHikwEYNqCapLFGDY0gU1EHoV0RCtCFF757iA2g3DQCtrG6WvESrQ
3eza2ySo2MNrPYW4FaJ0zK01xbjB4ifMxlpEYjm/wVBc2bPzrqoyDKxSF2Jl5631M2/XLMhqWdXY
l8X5KGuZcaaYqbmadPi/ygrEej7X/RCzSf0TNz7WnbZi7XowdZO1y1mFyGM+QgoTCfHUJ8QvUEsD
BBQAAgAIAHMFPkVHNs3U0ggAANobAABJABwAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0v
ZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktcHJldHR5LWRpZmYuaHRtbFVUCQADKl8qVCpfKlR1
eAsAAQT1AQAABBQAAACtWWtz27gV/e5fgbGn6+2OSUq2nFqyo05iy9uZjeNM5XY/dkASFJGAhJYA
bSnd/vdevCiQIi13tvHEJN73ec4FfZPLgs2PbnKCU3gURGKU5LgSRL4/rWUWXJ1Ct5BbRuZHM0bL
b2do9kwFlSRF/z5C8E+SjQxSkvAKS8rLGSp5Sa71UMyrlFRBzKXkxQyN1xuUwjtJr4/+c2S2s5sk
nPFqhk5GF1M9Ft5TRu5oltnxGCffVhWvyzRwU7Mr9eMfZE4QnNEUnaRpasYyXsogwwVl2xkqeMnF
GidWwAJXKwoij0mBRqZrzUE5rUdFGGj0TLRA+bgj6cXFRc/+ApciEKSimTco6Heiz/APDRjJ5AyN
wkvXn1KxZhg2oSVYxkr4QlOZw+LR6E9WPpymtFw1K41s1jXqre0dKy4tcxBKNtNz/kyqjkaXl5fX
Q8YmxJghVD75BGcJuzhjHIMaFV3lsu05NesW1MegizuKg+mpBBVHHZUljhkJEsJYS8tA79uy0ksO
2gXahyrUXiq83km2JIny3WDQ6MXtkOmGi41ZZ3cIqNF6Y05YbNbgXtgfVCNnKFSProaD4gmaknir
fiMt6kfGk29fcCVDUHWW0UrIIMkpSwcNq45bwvqz1zarSAGuPTtwnj3Dmd8EXBCrKa2wu3RRB9Ei
aYJZgBldQW5I3qNWRVSk/w2XKSPOHHYfZULVzolx6C6ek7oSyjVK7G4G4hi8UzuPwZlN4Jjk0eK9
JkUrzvfDYVWR7XUnMMPLQ/4yJkah5AfNHGYVLzrGtviozlBW/1wXMakgmogfXabXCb4PozZqp9MW
ALp06YNBl8mTyaQXbnzvNxijNro0KWDSoAF8Gwc2PPtCxIjbCqcLC1ie4lrFXsAxJDFolldAal2p
7FRiWgM6NLFR4xRp5SosCky26iGwp26CHhXB3wLVYQSiBV6Rlmdm6LwxeMywsqKamAA0gAwgin1D
Xb13XrmaTAexNyPZDgBUWMGODT162dyzNM3S9lJwthiePiXT69c4vdnJoowvh82KYbpO070NUErY
8AoyPShN9BNa1us1ryQwbWUjGYxaFKSUAv0UwXm4ljk39jZsrIoZiHoJcZo4T+kFes4A/zdzlDAY
QkJPdnD2zgW2ghvM2K2ToHf2ueGyAm+CDr0XUBfYrvNRwzvdo8Hur57TZHaT0q1j+uQM+ZoY2gxe
SPyNykBWKu2MJYzgKDwX154aE6v0iZBY1uJjHQOHN3wYquzpFUctkZyzGFftcXd0xojO0N1Awb83
vQ04XZg8tnWUenXVgnofLgmHkOPVUm4XFhndELOPxeNRW6UQ6xrEpNk+i79QwIKqE2rNnt8DWqZk
AyD1imo7IvRE6NPLglGL3q4sipVKTJuwvdQE58V8c1DQdztBxyaIHQmZlhbWvjcMZpuNwE1l1jqa
ZhUujISdPGmXEV6O3A4g7b5ttlBr8hfL9YRB4Qg18xuI6d30fhdelpMHBrUh2mNNGZnul8ft4tju
Ycy3H8ODJUHqcNYc88GBgrvqjPzRJ8eRnTvJu784QNsX85Uk8W47osCmlvcxt+QVdF8PoIzVX5Vg
ou9wo4fL61HfFIZjwmY4gww721tu+vUmmpBLUPUY/Y6Or48aIvbou7uaYajQeRbI7Zr0bnU8KJGd
2Lni5oRpgGyKUayK0QGOOimIEK7wGLRzn1u87FhqoH4LFQLFQEH0THktbpseKGa/k/LWI8s+nncl
R5difHJRWA5RqyPBYbtt20i0IHLhOPBN0tjQgBqHSJUTLbqwZd9A0efzbFxDVpU+7jh+T+nzLOOJ
tSGvpcILP/1iVmsmsUMQLxnIAgw2dor4ZKl3gRrmKSfmpMgy7QrkVzpIjiSMxWa2DTWBnilWmCwf
bEyAsHHFX8DhUAnkGNbaoojKUBVBjR6TS1vFN6WIbTt0UIWs+j9qk6j7pNOt8Quawi3LKKYcJNzl
u4dRoA7jAj+D7cECpMMr/k1vj+qCcXhhSqbdxw/H/j0+OLm7u/NS+uTq/u7+8r4Xn6C47I/ixWLR
J/WMFGtAqJbzbZnWmRnCK0jayvzF9Gp0ZXErYQRX/9LlgbsKqB59bcrVlJvIfnW7EUlF1+DTKnl/
nEu5FrMowl/xJlxxvoJFaypU6Oq+iNFYRF9/q0m1jcbhJDy3jRBKy/CrOJ7Dvnq/OWrvnPCUBMqH
5AXm/RU8rZz5fnLlLQGh7IfCmKdbeEA+gNxYiPen7iagvhfm43n0T/AnYFZ0hyWOFr8uo19J/AuV
9vGxpiyN/g68iwWJIFLAnIEkgLBwfa+ZFJHSNFI9IipISrH5DcYFQisiiC/IhlKzdqDLBAhJGEm3
AdQ1NWah3EiQdtwW0vtGdLo/ou/uQ/3qTo/MtaUzRV1oUPtb0G4eAE3pJuqPAbsK43Q+BsvC+Lw1
C3Len/NDGYv1de9EIO/T+e3j5+XjpwV6WCyXH35ezPRidD6ZoRu4Xc0/c7msbyL1qtsaF7w2SU1j
UVUqRnXf3eODNwMtNl4rIWvT0t/ZdNd0BgDmb4losfbajChUNR1wodJ9au1uRgpZW/IdbCnMqwjE
rVBFmSJcxDPE46/gOgR3ObisVN5yfSsMbYcxFEQqeMg9hh0KeHLYm3bSq658xU38DT4/5EqgtPnT
9iZST91Ye+/EvDsXqnfAMpLB6tSbhqjQVsYoq0uvPzHvxqHq7Ud/72fstVhtGsqN6gkAd2qq9M8A
dyssvbkcroCa7X8m8h9ATQ/EG0yp18Cnf7atQ87zUPN0boft3P85l0UOF+bD3j/o+fM3OP182OlP
CuIMa7/kcAfHivyNvQDvXBoo3xU4JcgUnhSWmMtRjgWKCazzEfEM/IyAppliNoFAT7u4TPVIhUWO
eKI+vYZdm/8xY1y8wRgXw8b4/wozeYMwk2FhHksApCSBGusMAT9BDcUYVGVgRqRKayIUKP3wW83l
9ZcPy6V5Q7ZOhzUZVzdMALB4a6c9LZZP6Pbx4cunxdPCdIV/JOY7D03KQHr6T3r/BVBLAwQUAAIA
CACTBT5F1vjeutkBAABdAwAAOQAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nv
bm5lY3RlZC1mcmFtZS1kaWZmLnR4dFVUCQADZl8qVGZfKlR1eAsAAQT1AQAABBQAAADFUstu2zAQ
vOsrtrokgUyzLnoyisJuogRF/ULlNue1tLJZ06TLhx3/fZayYzRfUEiQwNXMcGYoIQTI31bHHXn5
gAFl+VzJZ1r9UOHy+haVbuRP0oSepMaTjUEE8kE48lEHLzch7GWaeLmjRuH5KXxwhDvZKF9bY6gO
1IjW4Y4Evey7ZT+8hKwoiv9gAesQUXcGRiMQg95gAMWg9xlGoww6CORfPogzeoFhA1Je1x+F+Mp3
DgI26GEA1kSjLTa8NI0md+vvMrFMdiBsMMBxQwYQHP2NPATlYYcNMY2Hvzy5aXILdvWHLQJLgGLm
Y+eCsf/ahxW11hHzatR6hfX2Ta3HWxGQc9a9+6bMwW6ZeFQcIkFq61za5wzl1j2uqZ8V9/NZNZ+U
MC2ravxUDkErQ/BpMITlaU9lQg8hmoZanjdJ2lh2C200dVCc5ZYOqCMGZdZwo7qmZnhQawzW9Y+0
2qrwROGa9+YuKx7H3yesr/i4gA8Vjqg6OmdM6qo9PVg2ESzn7lJRk0Em5gZ8rGu23gP+GTib1uAp
1cLqijzYFvLFuKryt4CMbK3W9pg6PEG+LKsl3M+ni0m5LPN+JtKVGDCz1/6u7V0+XTZto9anBTp/
riG4SIn9TpIHr1BLAwQUAAIACACTBT5FYiKisf0AAACUAQAAPQAcAGh0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1leHBlY3RlZC50eHRVVAkAA2ZfKlRmXypU
dXgLAAEE9QEAAAQUAAAAVU/NTsMwDL7nKT56AmllcEdICJUTY5VaHiBN3TUsjUXcMvXtcRmrNCmH
2N+vu2QHQvZ0k+fd8i3t2GO7XeeHPH/WlyFHbwWP4DjFwLbVMbaB0q3cmZpkFIy9HXHqKcIi0fek
S3jBYFtSlS4/hdKOWm/BzRe5EeoAr8q3vxLKbb04jlExatFQx4lU52wIjXXHi9tGowiUEqcrzMcf
Pqrw5PWGheI4pSXnTB1IxB7o3ph9hEzO6bzBzJMKQoDQkqUVPQm4Q1a+VFV2USmz4xD4tBSbkdVF
VeN1vyvfi7rI1NMsdHzw2mjtc0b+A7sphLm0SdRHK49pImOuzIz5BVBLAwQUAAIACACEBT5FdgEv
BMAAAADtAAAATQAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1m
cmFtZS1wZXJtaXNzaW9uLWRlbmllZC1hY3R1YWwudHh0VVQJAANIXypUSF8qVHV4CwABBPUBAAAE
FAAAAD2OzWpCMRCF9/cpjm7URdS6vIgg7a0U/Cnc9gFGM9HBmCm5ieLbG10UZjHfgfPNuEgXRn/e
M8Y9129KJ0wm/zw1ZlGmD4MTdXiDhhy8ki0YrOc47EbV+27b7tYNNk3bLldNDS+BMZvW+Ln/cROj
xho5WHYlt5AOQRMILodDEg0Y8pV8piThiIG8Dm/pKkdKGsc33p8lrTj9dhw3bIUGo+pz+bUuerkU
n+aEG8mr7TQ+5eLuH1p+SIo940Des62qB1BLAwQUAAIACACEBT5FeEEOP/oBAAC0AwAASwAcAGh0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9u
LWRlbmllZC1kaWZmLnR4dFVUCQADSF8qVEhfKlR1eAsAAQT1AQAABBQAAADNUl1v2jAUfc+vuOOl
rYJx2faEpglW0gqtfKhh6+Nkkhti4djMvoby72sniLbaH5gSJfLxPUfnHJsxBvy3Ub5Bx6eCBM+e
c/6Mm5+Szr8fXqqSP6FC4ZArcTKeGKEjZtF5RY7XRHseEccbLKXovsyRRdHwUrrCaI0FYckqKxpk
e7SNdE4azUrUMuD4sm8HBvRCSZqm/4UpUZAXqrU0HgMb9odfIB32v8J4nEBLgt63T6zjrwTVwPll
fcvY9/D2gEEtHAzBaK+VEWVY6lKhvXY3CVtHg0C1IDjWqEHAFumXQzuPbsHiXx8mQDpoRIl9eDMZ
sc4nBD2QQea+tRTxd+lgg5WxGJQLodRGFLs3NaoR0FpjP+xJfTC7QDzKkGiVPc1neT5bLv5Ms8Us
mw6S9G65yJePGcyzPJ88ZCNQUiN8vh3B+rTHLAqOwOsSq4CXUVIbCgYqrwuK1q/xIJQXJPUWrmRb
10Ic5FaQsYMjbnaSHt7VcHWTpPeT2WPQl+EUIZw1HIVs6SFbVJfVaWqCCTIhb5sGywQSttTgfFGg
c30IdyRkUgocxjqCukQHpoLeapLnPQi3zYkthsnKKGWOsbsT9NZZvoa75Xz1mK2z3iBh8YmMrrpB
Ycq29G71T1+X6YW5tHzp+Lx1tlh5pU4rYV1XGlmPkf3BQABeAVBLAwQUAAIACACEBT5F9PaJIRsB
AADFAQAATwAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFt
ZS1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHRVVAkAA0hfKlRIXypUdXgLAAEE9QEAAAQU
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
wU2XSeJdIcKoaZ8aE2BJx3+6Kn3k87qXLDEvP1BLAwQKAAAAAACwBT5FAAAAAAAAAAAAAAAAFgAc
AGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9VVAkAA5xfKlTDYCpUdXgLAAEE9QEAAAQUAAAAUEsDBBQA
AgAIALAFPkXbCNNCOwAAAD8AAAA3ABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZhbGxiYWNrLWFu
Y2hvci1yZWxvYWQtc3RkZXJyLnR4dFVUCQADnF8qVJxfKlR1eAsAAQT1AQAABBQAAABzLClJzS0o
USjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQK
AAAAAADOBT5FAAAAAAAAAAAAAAAAFAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQJAAPUXypUw2Aq
VHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADOBT5FAAAAAAAAAAAAAAAAKgAcAGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L1VUCQAD1F8qVMNgKlR1eAsAAQT1AQAABBQA
AABQSwMEFAACAAgAzgU+RWOqrGyCAAAAqAAAAEAAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQJAAPUXypU1F8qVHV4CwAB
BPUBAAAEFAAAAC2NQQrDMAwE73mFXhA7vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXR
RHth0OHeUgjLbZ3jyJLuMcZgyJcW7yFLdVR//vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0
aHpDbVwnksqdljnSjs2vMUSbguxqTdTxmr5QSwMEFAACAAgAzgU+RWOqrGyCAAAAqAAAAFIAHABo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1i
eS1zdHlsZS1zcmMtMi1zdGRlcnIudHh0VVQJAAPUXypU1F8qVHV4CwABBPUBAAAEFAAAAC2NQQrD
MAwE73mFXhA7vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjLbZ3jyJLu
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
AAPrXypUw2AqVHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADaBT5FErsHYbUAAAADAQAAKgAcAG1l
ZGlhL3ZpZGVvLXNldC1yYXRlLWZyb20tcGF1c2Utc3RkZXJyLnR4dFVUCQAD618qVOtfKlR1eAsA
AQT1AQAABBQAAABVjsFOwkAURfd+xf2BNg9aaKgrlu6aGHVhXDymtzDhMdPMTKL8vYCG6P7ec85S
Fm0lm6oRiPTtul8t6rYTvHE3pOiY83u7keW6b6T5wPZ1MD0zPRWeIF/dtJtIWXXXx0g1i04LR3we
vBGKmWH0YY9MHuEzcvFm8AFzivt0gT/CqMfrxMXTbCw+Bhw0jMZU4yUTldPgaMMP6fkCyijxjw0a
/ndlnWjne8PNHWcmvcHvFb9t9cM3UEsDBAoAAAAAANMFPkUAAAAAAAAAAAAAAAAJABwAcGxhdGZv
cm0vVVQJAAPdXypUw2AqVHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADTBT5FAAAAAAAAAAAAAAAA
DQAcAHBsYXRmb3JtL21hYy9VVAkAA91fKlTDYCpUdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANMF
PkUAAAAAAAAAAAAAAAASABwAcGxhdGZvcm0vbWFjL2Zhc3QvVVQJAAPdXypUw2AqVHV4CwABBPUB
AAAEFAAAAFBLAwQKAAAAAADTBT5FAAAAAAAAAAAAAAAAHAAcAHBsYXRmb3JtL21hYy9mYXN0L3Nj
cm9sbGluZy9VVAkAA91fKlTDYCpUdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIANMFPkX3P02KbQAA
APcDAAA9ABwAcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1k
aXYtc3RkZXJyLnR4dFVUCQAD3V8qVN1fKlR1eAsAAQT1AQAABBQAAADLzS8tTvXNL0sNyVdIS8zM
SU1RKAGyMvNSFBIVShKL0lNLFMoyU8sVEksUjCz0DMBAR9fQAMrkygUZEJxclJ+T41QZnlmSEZ6R
mprjmJfim5+bmldSmhuQkVicWoxueElG6qjxo8aPGj8wxgMAUEsDBBQAAgAIAPkFPkXstv6xNQIA
AIUKAAArABwAcHl3ZWJzb2NrZXQud3MubG9nLTMwU2VwMjAxNC0wMDQyMTQtZXJyLnR4dFVUCQAD
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
AAQUAAAAUEsDBAoAAAAAACsGPkUAAAAAAAAAAAAAAAANABwAcmV0cmllcy9odHRwL1VUCQADgmAq
VMNgKlR1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAKwY+RQAAAAAAAAAAAAAAABMAHAByZXRyaWVz
L2h0dHAvdGVzdHMvVVQJAAOCYCpUw2AqVHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAArBj5FAAAA
AAAAAAAAAAAAGQAcAHJldHJpZXMvaHR0cC90ZXN0cy9tZWRpYS9VVAkAA4JgKlTDYCpUdXgLAAEE
9QEAAAQUAAAAUEsDBAoAAAAAAEwGPkUAAAAAAAAAAAAAAAAmABwAcmV0cmllcy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXN0cmVhbS9VVAkAA79gKlTDYCpUdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAI
ADsGPkVr+mFcwAAAAO0AAABDABwAcmV0cmllcy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVh
bS9kaXNjb25uZWN0ZWQtZnJhbWUtYWN0dWFsLnR4dFVUCQADoWAqVKFgKlR1eAsAAQT1AQAABBQA
AAA9jstuAjEMRffzFbdsgEV4dDmqkBBMERKPStN+gCEOWIS4yiQg/r6BRSUvfK50j+0iXRm9jzdj
3HP9onTGePzPE2NmZXowOFOHKTTk4JVswWA9x0E3rBb7XbvfNNg2bTtfNTW8BMb7tMb345ebGDXW
yMGyK7mFdAiaQHA5HJNowIBv5DMlCSf05XV4Rzc5UdI4uvPhImnF6afjuGUr1B9Wn/P1pujlWnya
E+4kr7bT+JSLeyy1/JAUB8aRvGdbVX9QSwMEFAACAAgAKwY+RWQ+x6gfAQAAtwEAAEsAHAByZXRy
aWVzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJl
YWR5LWFjdHVhbC50eHRVVAkAA4JgKlSCYCpUdXgLAAEE9QEAAAQUAAAAZZDLTsMwEEX3/oqrbAoS
6gKx6q6qQjdtUynhAybOJDF1bfCjUf6eaQGJio0X43MfM5vqUFe7EvuyrtfbcgVrHOP5ZYVm/uAy
BB9WyK7jXuYdTITzCYQ+O52Md3jgC9lMybgBC9MHOvOBLmag5MNy4vZk0pbTW+Sw587Q4lE1HFNE
GilhGtmJ2fAHQODPLMQ16kwdg/rEAUYkN3OMFNGy6DoTtXeOdeLuSWpBk7Ut6VMEBf4Ru+72EyiO
8FrnEJdKVQ4xa80xPmH2GZOxFpEFlzcYjvA9iuO6rguchaKBhey9tX6SI7QziqasG2yq/XFXNmUh
nur/rrdCwsuVfPsuPSUojXe98XrdaamuWb+d+mztfKQQv++dQmal7vKU+gJQSwMEFAACAAgAKwY+
RQKhlaiqAQAADQMAAEkAHAByZXRyaWVzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rp
c2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWRpZmYudHh0VVQJAAOCYCpUg2AqVHV4CwABBPUBAAAE
FAAAAM2SPXPbMAyGd/0KnJe0J1O69rLUk/Ohy9DYylVqM0MkZLGhSJUEY/vfl1Lca5fuWcA7AC/w
8CWFEFD+cCaOFMp7ZCyr56Z8pu6r5stxG7VR5TcyhIFKg2cXWTAFFp5CNBxKT+x10g/MUzlXQjmS
0vgWRWBPOJZKB+msJcmkRO9xJIEmVdRZ0Gla0gWfOMvz/B0goeSIZgHabkF8Wl9DPoftNhN39b6p
HyvYVU1z81BtwGhL8Pl6A3vHTZwm59PAynvnN3Bf76A6SZpYOwtfNtAOBHqcDI1kGZes0gqsYwhv
WuDU4ulXTNykgM8TgevBdT8TKTgPbiK/KIss/z9Mm3QXiGgV9SmvQIdlE0IfrVyWf6BXNDGNswe4
0osLe3zVB2TniyN1L5ofiL8H8rvZu6uPGbSzoYkSGY4D2TTt8E/HH/R514iKAHsmDzpJlukwYICO
aL73X//XiQskGtOhfAmAni5iq5aKxzCAkzL6UGSQQW2TXVJSCGtI7w9HbQwESoIU57efLVs93TTN
CtJPCnig1Nk7Y9wx+dCdYdVWTQt39e7psWqrVZH9BlBLAwQUAAIACAArBj5FeXnE1ysBAADQAQAA
TQAcAHJldHJpZXMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZy
YW1lLWFscmVhZHktZXhwZWN0ZWQudHh0VVQJAAOCYCpUgmAqVHV4CwABBPUBAAAEFAAAAFWQv26D
MBDGdz/FJ+YoQ9WlbFHqZgkhEvQBjDmCG2NT24jy9j3SRGoWD77vz+9uX56q8ihRyKraHWQOaxzh
5TXHyadqGkcfErUyBB9yvJcF5I+mMRnv8Jaj7glmGC0N5JK6/bamhfMJ8c+LxJJA3xNFzkFaRoLv
4Jsv0gk+wI8Ubs6tqFkT2aAS5p4cFC6UPiOFglqjHikwEYNqCapLFGDY0gU1EHoV0RCtCFF757iA
2g3DQCtrG6WvESrQ3eza2ySo2MNrPYW4FaJ0zK01xbjB4ifMxlpEYjm/wVBc2bPzrqoyDKxSF2Jl
5631M2/XLMhqWdXYl8X5KGuZcaaYqbmadPi/ygrEej7X/RCzSf0TNz7WnbZi7XowdZO1y1mFyGM+
QgoTCfHUJ8QvUEsDBBQAAgAIACwGPkW60OE01wgAAOIbAABRABwAcmV0cmllcy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1wcmV0dHktZGlm
Zi5odG1sVVQJAAODYCpUg2AqVHV4CwABBPUBAAAEFAAAAK1Z/VPcuBn+nb9CE6bH9QbbCywpLGQ7
CSzXmQtJpkt7P3ZkW14rka09SYbd9Pq/99WXV/baQOcaJtj6fj+f55W5LlXF5gfXJcE5PCqiMMpK
LCRR744aVUQXR9At1ZaR+cGM0frbMZo9UkkVydG/DxD8U2SjopxkXGBFeT1DNa/JlRlKuciJiFKu
FK9m6GS9QTm8k/zq4D8Hdju3ScYZFzN0ODm7NGPxHWXklhaFG09x9m0leFPnkZ9aXOif8CB7guSM
5ugwz3M7VvBaRQWuKNvOUMVrLtc4cwJWWKwoiHxCKjSxXWsOyhk9BGGg0SMxApUnPUnPzs4G9pe4
lpEkghbBoKTfiTkjPDRipFAzNInPfX9O5Zph2ITWYBkn4RPNVQmLJ5M/OflwntN61a60sjnX6Leu
d5y4tC5BKNVOL/kjET2Nzs/Pr8aMTYg1Q6x98hHOkm5xwTgGNQRdlarrOT3rBtTHoIs/ioPpqQIV
Jz2VFU4ZiTLCWEfLyOzbsdJTCdpFxoc61J4EXu8kW5JM+240aMzibsj0w8XFrLc7BNRkvbEnLDZr
cC/sD6qRYxTrR1/DUfEkzUm61b+REfUD49m3L1ioGFSdFVRIFWUlZfmoYfVxS1h//NxmglTg2uMX
znNnePPbgItSPaUTduc+6iBaFM0wizCjK8gNxQfUEkRH+t9wnTPizeH20SbU7ZJYh+7iOWuE1K7R
YvczEKfgncZ7DM5sA8cmjxHvOSk6cb4fDitBtle9wIzPX/KXNTGKFX/RzHEheNUztsNHfYa2+qem
SomAaCJhdNleL/g+jLqovbzsAKBPlyEY9Jk8nU4H4Sb0fosxeqNzmwI2DVrAd3HgwnMoRKy4nXA6
c4AVKG5UHAQcSxKjZnkGpNZCZ6cW0xnQo4mLGq9IJ1dhUWSz1QyBPU0T9BAEf4t0hxWIVnhFOp6Z
odPW4CnD2op6YgbQADKAKO4N9fXeeeViejmKvQUpdgCgwwp2bOkxyOaBpXmRd5eCs+X49EtyefUc
p7c7OZQJ5XBZMU7Xeb63AcoJG19BLl+UJvkJLZv1mgsFTCtcJINRq4rUSqKfEjgPN6rk1t6WjXUx
A1GvIE4z7ymzwMwZ4f92jhYGQ0iYyR7O3vrA1nCDGbvxEgzOPrVcVuFN1KP3CuoC13U6aXmnfzTY
/dlz2sxuU7pzzJCcMV8TS5vRE0m/URUpodPOWsIKjuJTeRWoMXVKH0qFVSM/NClweMuHsc6eQXH0
EsU5S7HojvujC0ZMhu4GKv697W3B6czmsauj9KuvFvT7eEk4hhzPlnK7sCjohth9HB5PuirF2NQg
Ns32WfyJAhaIXqi1e36PaJ2TDYDUM6rtiDAQYUgvB0YdertwKFZrMV3CDlITnJfyzYuCvt0JemKD
2JOQbRlh3XvLYK7ZCtxWZp2jaSFwZSXs5Um3jAhy5GYEafdts4Vakz85ricMCkeomV9BTG8v73bh
5Th5ZNAYojvWlpH5fnncLY7dHtZ8+zE8WhLkHmftMe89KPirziQcffAc2buTvP2LB7R9MZ9JkuC2
Iytsa/kQc2suoPtqBGWc/roEk0OHWz18Xk+GpjCcEjbDBWTY8d5y2282MYRcg6pv0O/ozdVBS8QB
ffdXMwwVOi8itV2Twa3ejErkJvauuCVhBiDbYhTrYnSEow4rIqUvPEbtPOSWIDuWBqhfQ4VAMVAQ
PVLeyJu2B4rZ76S+CchyiOd9ydGnmJBcNJZD1JpI8Nju2i4SHYiceQ58lTQuNKDGIUrnRIcuXNk3
UvSFPJs2kFV1iDue33P6OCt45mzIG6XxIky/lDWGSdwQxEsBsgCDnXhFQrI0u0AN81ASe1LimHYF
8msdFEcKxlI724WaRI8Ua0xW9y4mQNhU8CdwOFQCJYa1riiiKtZFUKvH9NxV8W0p4toeHXQhq/9P
uiTqP+n0a/yK5nDLsoppB0l/+R5gFKjDuMSPYHuwAOnxSnjT26O66CQ+syXT7uOHZ/8BHxze3t4G
KX14cXd7d343iE9QXA5H8WKxGJJ6Rqo1IFTH+a5M682M4RUk7WT+4vJicuFwK2MEi3+Z8sBfBXSP
uTaVesp14r66XctM0DX4VGTv3pRKreUsSfBXvIlXnK9g0ZpKHbqmL2E0lcnX3xoitslJPI1PXSOG
0jL+Kt/MYV+z3xx1d854TiLtQ/IE8/4KntbOfDe9CJaAUO5DYcrzLTwgH0BuLOW7I38T0N8Ly5N5
8k/wJ2BWcosVTha/LpNfSfoLVe7xoaEsT/4OvIslSSBSwJyRIoCwcH1vmJKJIEpQWK81TvSITCqS
U2x/g5GB2KoE4gyyojbsHZlyAUITRvJtBPVNg1msNgqkPukKG3wrOtofMXf4sX59t0f2+tKboi82
qPtNaDcPAKf2E81HgV2lcTQ/AQvD+LwzC3I/nPNDncr11eBEIPGj+c3nT8vPHxfofrFcvv95MTOL
0el0hq7hljX/xNWyuU70q2kbfAjaJLeNhRA6Vk3f7ef7YAZabIJWRta2Zb63ma7LGQBZuCWi1Tpo
M6LR1XbAxcr06bW7GTlkb8138KWxTxCIX6mLM028iBeIp1/BdQjudHBpEcFyczuMXYc1FEQseMg/
xh0KuPKyN92kZ135jJv4K3z+kiuB2uYP2+tEP01jHbwT++5dqN8B00gBq/NgGqLSWBmjoqmD/sy+
W4fqtx/DvR9x0GKNbWg36icA3ZGt1j8B7K2wCuZyuAoa1v+ZqH8ARd2TYDCnQQMf/dm1XnJegJ5H
czfs5v7PuSxLuDi/7P0XPX/6Cqefjjv9QUOcZe+nEu7iWBcB1l6Adz4NtO8qnBNkC1AKS+wlqcQS
pQTWhYh4DH5GQNdMM5xEoKdbXOdmRGBZIp7pT7Bx3+Z/zBhnrzDG2bgx/r/CTF8hzHRcmM81AFKW
Qa11jICnoJZiDKozMCPSJTaRGpR++K3h6urL++XSviFXr8OaguubJgBYunXTHhbLB3Tz+f7Lx8XD
wnbFfyTmew9DzkB65k97/wVQSwMEFAACAAgAOwY+RZ2L73bfAQAAbQMAAEEAHAByZXRyaWVzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1kaWZmLnR4dFVU
CQADoWAqVKFgKlR1eAsAAQT1AQAABBQAAADFUstu2zAQvOsrtrokgUyzLnoyisJuogRF/ULlNmda
WtmsadIll3b891nKjtF8QSFBApczuzNDCiFA/nYm7jDIB0VKls+VfMbVD02X37eoTSN/okEVUBp1
cpEEYSDhMURDQXokr5m/IdrLtBPkDhutzl8RyKPayUaH2lmLNWEjWq92KPBl3y379EJZURT/UYqq
KSrTCRmNQAx6gwEUg95nGI0y6CCQf/kgzuiFog1IeV1/FOIrvzkI2KgAA3A2WuNUw0vbGPS34S4T
yyQHaKMIjhu0oMDj38hF0AF2qkGmcfFXQD9NasGt/rBE4BagmfnYqWDsv/Jhha3zyLxaGbNS9fat
W49HIaD3zr/b0/bgtkw8ajaRILXzPs05Qzn9oNbYz4r7+ayaT0qYllU1fiqHYLRF+DQYwvK0xzKh
hxBtgy3Xm9TaOlYLbbQ1afZyiwdloiJt13Cju6Rm6qDXipzvH3G11fSEdPV7c5cVj+PvE+6v+biA
DxeOSnd09pi66/b04FgEOfbducImg0zMLYRY1yy9B3wp2JsxEDDFwt35QoBrIV+Mqyp/M8jI1hnj
jinDE+TLslrC/Xy6mJTLMu9nIj2JATN3ze+a3mXrMrSNxpwWyodzDOQjJva7llx4BVBLAwQUAAIA
CAA7Bj5FYiKisf0AAACUAQAARQAcAHJldHJpZXMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJl
YW0vZGlzY29ubmVjdGVkLWZyYW1lLWV4cGVjdGVkLnR4dFVUCQADoWAqVKFgKlR1eAsAAQT1AQAA
BBQAAABVT81OwzAMvucpPnoCaWVwR0gIlRNjlVoeIE3dNSyNRdwy9e1xGas0KYfY36+7ZAdC9nST
593yLe3YY7td54c8f9aXIUdvBY/gOMXAttUxtoHSrdyZmmQUjL0dceopwiLR96RLeMFgW1KVLj+F
0o5ab8HNF7kR6gCvyre/EsptvTiOUTFq0VDHiVTnbAiNdceL20ajCJQSpyvMxx8+qvDk9YaF4jil
JedMHUjEHujemH2ETM7pvMHMkwpCgNCSpRU9CbhDVr5UVXZRKbPjEPi0FJuR1UVV43W/K9+LusjU
0yx0fPDaaO1zRv4DuymEubRJ1Ecrj2kiY67MjPkFUEsDBBQAAgAIAEwGPkV2AS8EwAAAAO0AAABV
ABwAcmV0cmllcy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJh
bWUtcGVybWlzc2lvbi1kZW5pZWQtYWN0dWFsLnR4dFVUCQADv2AqVL9gKlR1eAsAAQT1AQAABBQA
AAA9js1qQjEQhff3KY5u1EXUuryIIO2tFPwp3PYBRjPRwZgpuYni2xtdFGYx34HzzbhIF0Z/3jPG
PddvSidMJv88NWZRpg+DE3V4g4YcvJItGKznOOxG1ftu2+7WDTZN2y5XTQ0vgTGb1vi5/3ETo8Ya
OVh2JbeQDkETCC6HQxINGPKVfKYk4YiBvA5v6SpHShrHN96fJa04/XYcN2yFBqPqc/m1Lnq5FJ/m
hBvJq+00PuXi7h9afkiKPeNA3rOtqgdQSwMEFAACAAgATAY+RZg4Clj+AQAAxAMAAFMAHAByZXRy
aWVzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC1kaWZmLnR4dFVUCQADv2AqVL9gKlR1eAsAAQT1AQAABBQAAADNUl1v2jAU
fc+vuOOlrcCkbHtC0wQraYVWPtSw9XEyyQ2xcGxmX0P5970OiLbaH5gSJbof5+icYwshIP1tdWjQ
pxNJMs2e8/QZ1z8VnX8/gtJl+oQapcdUy6MNJAg9CYc+aPKpQ3KK8TXRLo0TnzZYKnn6Ck8OZZOW
yhfWGCwIS1E52aDYoWuU98oaUaJR3MeXXbvQpxdKut3ufyVOFhSkbqWNRiAGvcEX6A56X2E0SqAF
QefbJ3HCLyXVkKaX+laI7/x2QEAtPQzAmmC0lSWXptTorv1NIlZRIFAtCQ41GpCwQfrl0c2iWnD4
N/AGKA+NLLEHbyJj76QTmA8U09y3kmL/nTtYY2UdMnMhtV7LYvvGRjUCOmfdh5kye7tl4EGxo2X2
NJvm+XQx/zPJ5tNs0k+6d4t5vnjMYJbl+fghG4JWBuHz7RBWxx1mkXAIwZRYcb+MlMYSC6iCKShK
v8a91EGSMhu4Um1cc7lXG0nW9Q+43ip6eBfD1U3SvR9PH5lf8SkCnzkcpGrh7C2yq+o4sSyCLPtt
3WCZQCIWBnwoCvS+B3xX2JPW4DHGwex8T8BW0FmO87wDfOu83CBvVlZre4jZHaGzyvIV3C1my8ds
lXX6iYhPRJyi6xe2bEM/Vf/kddme20vKl4zPo7PEKmh9XErnT6GRCxjRHwRw4xVQSwMEFAACAAgA
TAY+RfT2iSEbAQAAxQEAAFcAHAByZXRyaWVzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFt
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHRVVAkAA79g
KlS/YCpUdXgLAAEE9QEAAAQUAAAAZY9PS8NAEMXv+ynGnBSaVu8iiI1QsEkw8Szb3UmzdLOjOxtL
v72TtlSKsIf58/a933RRDwjZ402ed1NZ69TDYnHp7/P8SV4GOfSa4QEojMGTttIG6zHe8p1qkRND
6nWCfY8BNGwxfTDGNVqnIeL3KApwDIO2OIMvjINjdhSmmcXg0ILYgROb1yPRNHdsKAQ0SbYb7Cii
OBvt/Uab3Z9b6hEwRopXOxd+aCcf904Oqov39appVlX5uSzKVbGcK1UF4NEYZJ7BgUYReg+MU4aQ
O2SgDrL6uWkyGESltyjKjryn/QR0gKwtmhZeqnX9VrRFJp5qkp9g5obs8YxT94/grC3pQn1hPm3O
cN3o/aHWkSVT3FIcUamrYKV+AVBLAwQUAAIACABMBj5Flm47WDAJAABSIgAAWwAcAHJldHJpZXMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Np
b24tZGVuaWVkLXByZXR0eS1kaWZmLmh0bWxVVAkAA79gKlS/YCpUdXgLAAEE9QEAAAQUAAAA1Vpr
c9u4Ff3uX4Ha03i7Y5KSJWVtKXEnseXdTOPHrNzuxx1QBEXEIKEFQMtK2//eiwcpkiJlZ8beSeOJ
JeJ5n+fcy+RdolJ2tvcuITiCj5QojOYJFpKo94e5ir2TQxiWas3I2d6Y0ez+CI0fqKSKROjfewj+
KPKovIjMucCK8myMMp6RiZkKuYiI8EKuFE/HqL98RBF8J9Fk77979jh3yJwzLsbooDc4NXP+JWXk
gsaxmw/x/H4heJ5FXrE0PtE/1YvsDZIzGqGDKIrsXMwz5cU4pWw9RinPuFziuRMwxWJBQeQ+SVHP
Di05KGf0EISBRg/ECJT0G5IOBoOW8yXOpCeJoHFlUtKvxNxRvdRjJFZj1PNHxXhE5ZJhOIRmYBkn
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
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIANkFPkVuvSNhOQAAAEIAAAA7ABwAc2Nyb2xsYmFycy9z
Y3JvbGxldmVudC1pZnJhbWUtbm8tc2Nyb2xsaW5nLXdoZWVsLXN0ZGVyci50eHRVVAkAA+lfKlTp
XypUdXgLAAEE9QEAAAQUAAAAy80vLU4NTi7Kz8lxqlRIS8zMSU1RKMlXSMvMA9IZqQoliUXpqSUK
ZZmp5QqJJQoGegZgoANjcAEAUEsDBBQAAgAIAE0GPkXLJZgELTgGAGVTJAAKABwAc3RhdHMuanNv
blVUCQADwWAqVMFgKlR1eAsAAQT1AQAABBQAAACs/WuTK0mSHQj+FQq/LpHi9jbbb80azpAj5Ayl
u3ZnRlYoVxCARwQqEUAUHveRlP7vaw93uLrD9JhHVg+nb93KSjfYQ00fR4+q/c9//6N/2d73h/O/
/3//u//57/PfXu6vr/3ler5fdv3m87j99bLd/X7Z3vrf3m8fx/zvXfrr/Xi7xr///+R/+HdWafMf
/p0OnYj/RTid/vD/41//w7/792/bw2nzsr0edvy3Xj++ten/dP7yx/Z7f33ffvaXzfl7nM324/PY
b+RPdhwtummc8B/+nRN5nM/t6RTH6P9+3x4/zz/6Cz9ANw2g0v+ViZzOt37zdkkLOZ/ydvBLCdMI
2qe/PjYBLH/auhB3Irj8zfNBXG/byw2cgJ0mH0dUZf9fDnHd+3gCp/3n9nrlP7dqNnPTTbP43F62
H5vdOe7j7rbJ/ygJw/Xwdtoe+RENOdY4uDXMuj7iV4fN7j2d0xHMUE8zFJ2Lf4gyx/N1dzget7fz
pSVoQU5bFCenLBA0jQRNPMZxcaudrQtaPLH+0p/BfMK052mzyjj7X6ftx2F33Z0/PuMX1/a6/LQz
Km6MCvToj+cf1/f++AqO3j8+N3E5xk4HdTrv+/FoNpf7sQfnY6ZdsXEY68gsXg/HuBd5tMZa3DRK
GtCoPEoUvu/n4/0WZ7T5iLPKf4BBpoMO9nGlPg4/D6c3sI3Tcfi4jUFWrv/t8AHHCNP0VRpOTHs5
bONHf3lbIRt6moyJSzB+eR/7n5/nU3+6HbbHf44i+9fz/3d7vPf/dPvr4QPoaTMpG+Pmw4438PN4
uN2AmlSmA+L21t/+10u8A/1p9+uf+2uc4xVMx046IuuvMp19H5VsEhZwwmR7ovjabqlcNqf+DleR
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
3K7qqtBeB90Ld7OMJ6DXvRjvoT7Y4LkM2tUMZWOSEow3KcZRZofw8qPfH7b5m/y3PPTlfIyh4fa0
64+b/jvaTt3RmaZWKdKUDf1+2Pcx9CxPev718JGu83HLXmI9tqXKyiDldrwuCrNM63iOLkqeC5gK
9RdzyFfU2/a+P5zTwq63y313i+b2ynB58jByGial0I0n67nFhZSO4Jv9Pfu28UB+5cwKN57syLRk
FhE5CEkZ8/v5eP/o+e8FMUZpbjG6pDs8nld0WspWtfS2FoKYyUSqV0Y+ejSUs4+XNuOpZ94w6U6L
udevyLQ+t/HS7zfd5rLlDbYemxmkITKN1Q7X8SGL0bWD4mfJ7ZMZzZdkFvGcN6BjYDmeyQglZMJ1
dBU5UuanT66VSACq0OXXL31K0UZ7fP6YbvzpvMH7SUNF/wg8h5X0/e+sx5nnQiOQLv9h6Pcj6zA5
tP0eDEOkVec/LBkmrmGgazb3xhCjLG2OOWZ7m290dIf3v/7lBmXEEJ8/JQPjhVoO83np83+eQEQV
B5qErTQUHQYa0iPluD6jnYq6b/feg4OavCiTXDIz+GQPRVNu0f6cAZfX7Z4niuTxFLlIIoOnjqxw
e7+dP5Hq7IgfJrpUhBL/pCMkxyda3ZxGat0HMZPCUkhAhhrK4Y6/Nu+H/b4/Ddprcz0mbvHm/skP
rBVRz9ntoFc1v6ESPWE2DVh0IVmpyX8YThY++ts2Kurt5rS93S/bI8vjKpPzS7EfXqe7bK/vCdrM
zmMWjhTDD6o2BhSfx/tbQr7GBDuvLad9NenvRoe5qktCc0zWPBnLUfUBzUec74RdSN/R8WKAmbfh
x3s8pHJW/Fhm0mOpwsdSkzeGqfltjk2qIs1tPDd5Z/gNVZPVyqWIws7MQ5TnYiM2/c9d/8k+5FOs
xCQ5o9M8W2ge7eOzj2F1uoFgnQRTmV71nRnSdAIlDMCWq5u23yV94AJVbimj8XvctntU3EfwTlER
6un651cbTfBPNiijZ288B6rsE9FL6RUwo6uewm77OcQaj1kez7uEEiDD0JHQMeQ/6NXLzt0aL01I
Vwv6Bln7eYums384VZfs7DYEzZODiOPRY9gnhV70ARiAGHFXYiK6aznP2dSaHXGpkkusnJybhMET
3lzvnyWfAxzQaYdEpl/HP6kO3h+uWeJv57c35BEQRzY5B97UHdlLPLDLtWw6EFJiPHN2X+pnIeVL
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
y/TvYqdacO8BUhXmBorvlFmywZto2NEhzGfB1bINHWQ/bNS/iyzMs20Sb893YGzf4DQrE4rR2sr3
u7ifDTLEfqSPGU7GED+8JTuGtfOTW7XBbL+wU0yJVuS25cfayk76vhDa91nlxJ818xiH4OfpcByZ
FZpthciGtIbbb7fxqpf4aR7JGWVukRrfhltEu4yH+2k6/G38fHyhK0XcSgqstAp2j0VZ7/a3+8VE
k6bDD7/9VnLPFRQyygsZ/f/+/1BLAwQKAAAAAAAHBj5FAAAAAAAAAAAAAAAABAAcAHN2Zy9VVAkA
Az1gKlTDYCpUdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAAcGPkUAAAAAAAAAAAAAAAALABwAc3Zn
L2N1c3RvbS9VVAkAAz1gKlTDYCpUdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAAcGPkUh9PbwOgAA
AEIAAAAwABwAc3ZnL2N1c3RvbS91c2UtaW52YWxpZGF0ZS1jbGljay1jcmFzaC1zdGRlcnIudHh0
VVQJAAM9YCpUPWAqVHV4CwABBPUBAAAEFAAAAMvNLy1O9c0vSw3JV0hLzMxJTVEoAbIy81IUEhVK
EovSU0sUyjJTyxUSSxR0Dc30DMBAx8zACMrkAgBQSwMECgAAAAAA/QU+RQAAAAAAAAAAAAAAAAsA
HABzdmcvc3Ryb2tlL1VUCQADLWAqVMNgKlR1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA/QU+RXib
zjqCAAAAkAAAACUAHABzdmcvc3Ryb2tlL3plcm8td2lkdGgtaGFuZy1zdGRlcnIudHh0VVQJAAMt
YCpULWAqVHV4CwABBPUBAAAEFAAAAA3IsQrCMBQF0N2vuD/QkmJLMYhLFRcHoYODOCTtBYNpIi/R
ql9vx3N6PrFWUErXrW5azLQPlwvOqaia0sfBeFxozxIHpnStN6pSN2wPIlF2Gt2xiyHzk3vmkwvc
m3TXcOFtvBsxLoIRMV8Nk+FpUkYMBD0nhozptYQlQgzFjxLL1R9QSwMECgAAAAAACgY+RQAAAAAA
AAAAAAAAAAwAHAB0cmFuc2l0aW9ucy9VVAkAA0RgKlTDYCpUdXgLAAEE9QEAAAQUAAAAUEsDBBQA
AgAIAAoGPkVglN4vhwAAACwCAAA3ABwAdHJhbnNpdGlvbnMvY3ViaWMtYmV6aWVyLW92ZXJmbG93
LXN2Zy1sZW5ndGgtc3RkZXJyLnR4dFVUCQADRGAqVERgKlR1eAsAAQT1AQAABBQAAADtzrEKwjAY
ReHdp7gvYEm1igZxKeLiIHToIA5pe9FgSCT5bXx8C76Eg+t3ltPwiaWCUrra6IVCZvewMmdO83JV
uNAbh5bdOYaeKV2qrSrXV+wOMYa416iPdfDCtzSUk/Vs7SB3DetH4+wANxHy1zxvRuxITOnFBBMJ
HwTGuZA5FLPmv/LbKx9QSwECHgMUAAIACABKBj5FZZFT8K6+AAApewkADgAYAAAAAAABAAAApIEA
AAAAYWNjZXNzX2xvZy50eHRVVAUAA7tgKlR1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABVBT5F
AAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UH2vgAAY3NzMy9VVAUAA/JeKlR1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAABVBT5FAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UE1vwAAY3NzMy9maWx0
ZXJzL1VUBQAD8l4qVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFUFPkUsylSugAAAAJIAAAAu
ABgAAAAAAAEAAACkgXy/AABjc3MzL2ZpbHRlcnMvaHVnZS1yZWdpb24tY29tcG9zaXRlZC1zdGRl
cnIudHh0VVQFAAPyXipUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgATAY+ResVMad5FQAArFIB
AA0AGAAAAAAAAQAAAKSBZMAAAGVycm9yX2xvZy50eHRVVAUAA79gKlR1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAACrBT5FAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UEk1gAAZmFzdC9VVAUAA5Ff
KlR1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB1BT5FAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA
7UFj1gAAZmFzdC9jc3MvVVQFAAMuXypUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdQU+RdsI
00I7AAAAPwAAACkAGAAAAAAAAQAAAKSBptYAAGZhc3QvY3NzL2NvbXBhcmUtY29udGVudC1zdHls
ZS1zdGRlcnIudHh0VVQFAAMuXypUdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAiQU+RQAAAAAA
AAAAAAAAAAwAGAAAAAAAAAAQAO1BRNcAAGZhc3QvZXZlbnRzL1VUBQADUl8qVHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAIYFPkVYKmd1OQAAAEMAAAAyABgAAAAAAAEAAACkgYrXAABmYXN0L2V2
ZW50cy9kaXNwbGF5LW5vbmUtb24tZm9jdXMtY3Jhc2gtc3RkZXJyLnR4dFVUBQADTF8qVHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAIkFPkUwtW3jOQAAAEMAAAArABgAAAAAAAEAAACkgS/YAABm
YXN0L2V2ZW50cy9tb3VzZS1mb2N1cy1pbWFnZW1hcC1zdGRlcnIudHh0VVQFAANSXypUdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAiQU+ReeuvV87AAAAQwAAAC8AGAAAAAAAAQAAAKSBzdgAAGZh
c3QvZXZlbnRzL21vdXNldXAtb3V0c2lkZS1kb2N1bWVudC1zdGRlcnIudHh0VVQFAANSXypUdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAjAU+RQAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BcdkA
AGZhc3QvZnJhbWVzL1VUBQADWF8qVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIwFPkXbCNNC
OwAAAD8AAAAvABgAAAAAAAEAAACkgbfZAABmYXN0L2ZyYW1lcy9mcmFtZS1kaXNwbGF5LW5vbmUt
Zm9jdXMtc3RkZXJyLnR4dFVUBQADWF8qVHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJUFPkUA
AAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQVvaAABmYXN0L2xvYWRlci9VVAUAA2pfKlR1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACQBT5F2wjTQjsAAAA/AAAAUgAYAAAAAAABAAAApIGh2gAAZmFz
dC9sb2FkZXIvZGlzcGxheS1pbWFnZS11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxv
YWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVUBQADYF8qVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AJEFPkXbCNNCOwAAAD8AAABTABgAAAAAAAEAAACkgWjbAABmYXN0L2xvYWRlci9pbWFnZXMtZW5h
YmxlZC11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxhY2Utc3RkZXJy
LnR4dFVUBQADYV8qVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJUFPkXbCNNCOwAAAD8AAAAt
ABgAAAAAAAEAAACkgTDcAABmYXN0L2xvYWRlci9yZWxvYWQtcG9saWN5LWRlbGVnYXRlLXN0ZGVy
ci50eHRVVAUAA2pfKlR1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACgBT5FAAAAAAAAAAAAAAAA
DQAYAAAAAAAAABAA7UHS3AAAZmFzdC9yZWdpb25zL1VUBQADfF8qVHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAKAFPkUAAAAAAAAAAAAAAAAXABgAAAAAAAAAEADtQRndAABmYXN0L3JlZ2lvbnMv
c2Nyb2xsaW5nL1VUBQADfF8qVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKAFPkU5AcvdQAAA
AHoAAAA1ABgAAAAAAAEAAACkgWrdAABmYXN0L3JlZ2lvbnMvc2Nyb2xsaW5nL3doZWVsLXNjcm9s
bC1hYnNwb3Mtc3RkZXJyLnR4dFVUBQADfF8qVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKAF
PkU5AcvdQAAAAHoAAAAuABgAAAAAAAEAAACkgRneAABmYXN0L3JlZ2lvbnMvc2Nyb2xsaW5nL3do
ZWVsLXNjcm9sbC1zdGRlcnIudHh0VVQFAAN8XypUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
oAU+ReSKx0M8AAAAPQAAAEAAGAAAAAAAAQAAAKSBwd4AAGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcv
d2hlZWwtc2Nyb2xsYWJsZS1zaW5nbGUtcmVnaW9uLXN0ZGVyci50eHRVVAUAA3xfKlR1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAACrBT5FAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UF33wAAZmFz
dC94c2wvVVQFAAOSXypUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAqwU+RXL9ZfKFAAAA6QAA
ACUAGAAAAAAAAQAAAKSBut8AAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50eHRV
VAUAA5FfKlR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACrBT5FBY9VjpMAAADQAgAAJwAYAAAA
AAABAAAApIGe4AAAZmFzdC94c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0VVQFAAOR
XypUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAqwU+RYFKd61LAAAArAAAADQAGAAAAAAAAQAA
AKSBkuEAAGZhc3QveHNsL3hzbHQtdHJhbnNmb3JtLXRvLWZyYWdtZW50LWNyYXNoLXN0ZGVyci50
eHRVVAUAA5JfKlR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABNBj5FWmUQPTcBAABsAgAAEQAY
AAAAAAABAAAApIFL4gAAZnVsbF9yZXN1bHRzLmpzb25VVAUAA8FgKlR1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAABzBT5FAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UHN4wAAaHR0cC9VVAUAAypf
KlR1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADJBT5FAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA
7UEM5AAAaHR0cC90ZXN0cy9VVAUAA8lfKlR1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABzBT5F
AAAAAAAAAAAAAAAAEQAYAAAAAAAAABAA7UFR5AAAaHR0cC90ZXN0cy9tZWRpYS9VVAUAAypfKlR1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACTBT5FAAAAAAAAAAAAAAAAHgAYAAAAAAAAABAA7UGc
5AAAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vVVQFAANmXypUdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAkwU+RWv6YVzAAAAA7QAAADsAGAAAAAAAAQAAAKSB9OQAAGh0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hY3R1YWwudHh0VVQFAANmXypU
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAcwU+RWQ+x6gfAQAAtwEAAEMAGAAAAAAAAQAAAKSB
KeYAAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJl
YWR5LWFjdHVhbC50eHRVVAUAAypfKlR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABzBT5FNkTg
bKUBAAD9AgAAQQAYAAAAAAABAAAApIHF5wAAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0v
ZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktZGlmZi50eHRVVAUAAypfKlR1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACABzBT5FeXnE1ysBAADQAQAARQAYAAAAAAABAAAApIHl6QAAaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktZXhwZWN0ZWQu
dHh0VVQFAAMqXypUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAcwU+RUc2zdTSCAAA2hsAAEkA
GAAAAAAAAQAAAKSBj+sAAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3Rl
ZC1mcmFtZS1hbHJlYWR5LXByZXR0eS1kaWZmLmh0bWxVVAUAAypfKlR1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACTBT5F1vjeutkBAABdAwAAOQAYAAAAAAABAAAApIHk9AAAaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWRpZmYudHh0VVQFAANmXypUdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAkwU+RWIiorH9AAAAlAEAAD0AGAAAAAAAAQAAAKSBMPcA
AGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1leHBlY3Rl
ZC50eHRVVAUAA2ZfKlR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACEBT5FdgEvBMAAAADtAAAA
TQAYAAAAAAABAAAApIGk+AAAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVj
dGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVkLWFjdHVhbC50eHRVVAUAA0hfKlR1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACEBT5FeEEOP/oBAAC0AwAASwAYAAAAAAABAAAApIHr+QAAaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVu
aWVkLWRpZmYudHh0VVQFAANIXypUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhAU+RfT2iSEb
AQAAxQEAAE8AGAAAAAAAAQAAAKSBavwAAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rp
c2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHRVVAUAA0hfKlR1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACEBT5FI+7bDSsJAABKIgAAUwAYAAAAAAABAAAApIEO
/gAAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1p
c3Npb24tZGVuaWVkLXByZXR0eS1kaWZmLmh0bWxVVAUAA0hfKlR1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACTBT5FK8g6FgMJAADVIAAAQQAYAAAAAAABAAAApIHGBwEAaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXByZXR0eS1kaWZmLmh0bWxVVAUAA2Zf
KlR1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACsBT5FAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA
7UFEEQEAaHR0cC90ZXN0cy9taXNjL1VUBQADk18qVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AKwFPkUVNTWSegAAALwAAAAqABgAAAAAAAEAAACkgY4RAQBodHRwL3Rlc3RzL21pc2MveHNsdC1i
YWQtaW1wb3J0LXN0ZGVyci50eHRVVAUAA5NfKlR1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACw
BT5FAAAAAAAAAAAAAAAAFgAYAAAAAAAAABAA7UFsEgEAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL1VU
BQADnF8qVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALAFPkXbCNNCOwAAAD8AAAA3ABgAAAAA
AAEAAACkgbwSAQBodHRwL3Rlc3RzL25hdmlnYXRpb24vZmFsbGJhY2stYW5jaG9yLXJlbG9hZC1z
dGRlcnIudHh0VVQFAAOcXypUdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAzgU+RQAAAAAAAAAA
AAAAABQAGAAAAAAAAAAQAO1BaBMBAGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQFAAPUXypUdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAzgU+RQAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1BthMBAGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L1VUBQAD1F8qVHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAM4FPkVjqqxsggAAAKgAAABAABgAAAAAAAEAAACkgRoUAQBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtYWxsb3dlZC1zdGRlcnIu
dHh0VVQFAAPUXypUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzgU+RWOqrGyCAAAAqAAAAFIA
GAAAAAAAAQAAAKSBFhUBAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAUAA9RfKlR1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADJBT5FYEtmEJEAAAD7AQAARQAYAAAAAAABAAAApIEkFgEAaHR0
cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1zZWN1cml0eU9yaWdpbi1z
dGRlcnIudHh0VVQFAAPJXypUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKgY+ReqKfEJhBQAA
BQ8AAAoAGAAAAAAAAQAAAKSBNBcBAGh0dHBkLmNvbmZVVAUAA4BgKlR1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAADaBT5FAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UHZHAEAbWVkaWEvVVQFAAPr
XypUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2gU+RRK7B2G1AAAAAwEAACoAGAAAAAAAAQAA
AKSBGR0BAG1lZGlhL3ZpZGVvLXNldC1yYXRlLWZyb20tcGF1c2Utc3RkZXJyLnR4dFVUBQAD618q
VHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANMFPkUAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADt
QTIeAQBwbGF0Zm9ybS9VVAUAA91fKlR1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADTBT5FAAAA
AAAAAAAAAAAADQAYAAAAAAAAABAA7UF1HgEAcGxhdGZvcm0vbWFjL1VUBQAD3V8qVHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAANMFPkUAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQbweAQBwbGF0
Zm9ybS9tYWMvZmFzdC9VVAUAA91fKlR1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADTBT5FAAAA
AAAAAAAAAAAAHAAYAAAAAAAAABAA7UEIHwEAcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL1VU
BQAD3V8qVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANMFPkX3P02KbQAAAPcDAAA9ABgAAAAA
AAEAAACkgV4fAQBwbGF0Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWRpdi1sYXRjaGVk
LWRpdi1zdGRlcnIudHh0VVQFAAPdXypUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+QU+Rey2
/rE1AgAAhQoAACsAGAAAAAAAAQAAAKSBQiABAHB5d2Vic29ja2V0LndzLmxvZy0zMFNlcDIwMTQt
MDA0MjE0LWVyci50eHRVVAUAAyVgKlR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADqBT5FdvgT
zwcBAACPAgAAKwAYAAAAAAABAAAApIHcIgEAcHl3ZWJzb2NrZXQud3MubG9nLTMwU2VwMjAxNC0w
MDQyMTQtb3V0LnR4dFVUBQADB2AqVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAE0GPkWHCtEZ
hiYAAGGkAAAMABgAAAAAAAEAAACkgUgkAQByZXN1bHRzLmh0bWxVVAUAA8FgKlR1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAAArBj5FAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UEUSwEAcmV0cmll
cy9VVAUAA4JgKlR1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAArBj5FAAAAAAAAAAAAAAAADQAY
AAAAAAAAABAA7UFWSwEAcmV0cmllcy9odHRwL1VUBQADgmAqVHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAACsGPkUAAAAAAAAAAAAAAAATABgAAAAAAAAAEADtQZ1LAQByZXRyaWVzL2h0dHAvdGVz
dHMvVVQFAAOCYCpUdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAKwY+RQAAAAAAAAAAAAAAABkA
GAAAAAAAAAAQAO1B6ksBAHJldHJpZXMvaHR0cC90ZXN0cy9tZWRpYS9VVAUAA4JgKlR1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAABMBj5FAAAAAAAAAAAAAAAAJgAYAAAAAAAAABAA7UE9TAEAcmV0
cmllcy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9VVAUAA79gKlR1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAA7Bj5Fa/phXMAAAADtAAAAQwAYAAAAAAABAAAApIGdTAEAcmV0cmllcy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWN0dWFsLnR4
dFVUBQADoWAqVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACsGPkVkPseoHwEAALcBAABLABgA
AAAAAAEAAACkgdpNAQByZXRyaWVzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nv
bm5lY3RlZC1mcmFtZS1hbHJlYWR5LWFjdHVhbC50eHRVVAUAA4JgKlR1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAArBj5FAqGVqKoBAAANAwAASQAYAAAAAAABAAAApIF+TwEAcmV0cmllcy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1kaWZm
LnR4dFVUBQADgmAqVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACsGPkV5ecTXKwEAANABAABN
ABgAAAAAAAEAAACkgatRAQByZXRyaWVzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rp
c2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVkLnR4dFVUBQADgmAqVHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIACwGPkW60OE01wgAAOIbAABRABgAAAAAAAEAAACkgV1TAQByZXRyaWVz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5
LXByZXR0eS1kaWZmLmh0bWxVVAUAA4NgKlR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA7Bj5F
nYvvdt8BAABtAwAAQQAYAAAAAAABAAAApIG/XAEAcmV0cmllcy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtZGlmZi50eHRVVAUAA6FgKlR1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAA7Bj5FYiKisf0AAACUAQAARQAYAAAAAAABAAAApIEZXwEAcmV0cmll
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtZXhwZWN0
ZWQudHh0VVQFAAOhYCpUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgATAY+RXYBLwTAAAAA7QAA
AFUAGAAAAAAAAQAAAKSBlWABAHJldHJpZXMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0v
ZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVkLWFjdHVhbC50eHRVVAUAA79gKlR1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABMBj5FmDgKWP4BAADEAwAAUwAYAAAAAAABAAAApIHk
YQEAcmV0cmllcy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJh
bWUtcGVybWlzc2lvbi1kZW5pZWQtZGlmZi50eHRVVAUAA79gKlR1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABMBj5F9PaJIRsBAADFAQAAVwAYAAAAAAABAAAApIFvZAEAcmV0cmllcy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5p
ZWQtZXhwZWN0ZWQudHh0VVQFAAO/YCpUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgATAY+RZZu
O1gwCQAAUiIAAFsAGAAAAAAAAQAAAKSBG2YBAHJldHJpZXMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVkLXByZXR0eS1kaWZm
Lmh0bWxVVAUAA79gKlR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA7Bj5FnWpjfAcJAADdIAAA
SQAYAAAAAAABAAAApIHgbwEAcmV0cmllcy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9k
aXNjb25uZWN0ZWQtZnJhbWUtcHJldHR5LWRpZmYuaHRtbFVUBQADoWAqVHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAANkFPkUAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQWp5AQBzY3JvbGxiYXJz
L1VUBQAD6V8qVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANkFPkVuvSNhOQAAAEIAAAA7ABgA
AAAAAAEAAACkga95AQBzY3JvbGxiYXJzL3Njcm9sbGV2ZW50LWlmcmFtZS1uby1zY3JvbGxpbmct
d2hlZWwtc3RkZXJyLnR4dFVUBQAD6V8qVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAE0GPkXL
JZgELTgGAGVTJAAKABgAAAAAAAEAAACkgV16AQBzdGF0cy5qc29uVVQFAAPBYCpUdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAABwY+RQAAAAAAAAAAAAAAAAQAGAAAAAAAAAAQAO1BzrIHAHN2Zy9V
VAUAAz1gKlR1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAHBj5FAAAAAAAAAAAAAAAACwAYAAAA
AAAAABAA7UEMswcAc3ZnL2N1c3RvbS9VVAUAAz1gKlR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAHBj5FIfT28DoAAABCAAAAMAAYAAAAAAABAAAApIFRswcAc3ZnL2N1c3RvbS91c2UtaW52YWxp
ZGF0ZS1jbGljay1jcmFzaC1zdGRlcnIudHh0VVQFAAM9YCpUdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAA/QU+RQAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1B9bMHAHN2Zy9zdHJva2UvVVQFAAMt
YCpUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/QU+RXibzjqCAAAAkAAAACUAGAAAAAAAAQAA
AKSBOrQHAHN2Zy9zdHJva2UvemVyby13aWR0aC1oYW5nLXN0ZGVyci50eHRVVAUAAy1gKlR1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAAKBj5FAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UEbtQcA
dHJhbnNpdGlvbnMvVVQFAANEYCpUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACgY+RWCU3i+H
AAAALAIAADcAGAAAAAAAAQAAAKSBYbUHAHRyYW5zaXRpb25zL2N1YmljLWJlemllci1vdmVyZmxv
dy1zdmctbGVuZ3RoLXN0ZGVyci50eHRVVAUAA0RgKlR1eAsAAQT1AQAABBQAAABQSwUGAAAAAFsA
WwDDJwAAWbYHAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238917</attachid>
            <date>2014-09-30 01:17:21 -0700</date>
            <delta_ts>2014-09-30 02:43:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>113493</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA5ODYwYzczZTdjYjhkYTEzYWI4ZTQ5NDUxZjQ2ZDdhMzY1ODM2MjIzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDIgU2VwIDIwMTQgMTE6NTY6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDMxICsrKysrKysrCiAuLi4vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQtZXhwZWN0
ZWQudHh0ICAgICAgICB8IDEwICsrKwogLi4uL21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lv
bi1hbGxvd2VkLmh0bWwgICAgfCAzNCArKysrKysrKwogLi4uL2RlbGF5ZWQtcGVybWlzc2lvbi1k
ZW5pZWQtZXhwZWN0ZWQudHh0ICAgICAgICAgfCAxMCArKysKIC4uLi9tZWRpYXN0cmVhbS9kZWxh
eWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwgICAgIHwgMzcgKysrKysrKysrCiBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dCAgICB8IDEwICsrKwogTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sICAgICAgICAgICAgfCAyOSArKysrKysr
CiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0ICB8ICA5
ICsrKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwgICAgICAgICAg
fCAyNiArKysrKysKIC4uLi9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQg
ICAgICAgIHwgMTEgKysrCiAuLi4vbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJl
YWR5Lmh0bWwgICB8IDQ0ICsrKysrKysrKysrCiAuLi4vbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3Rl
ZC1mcmFtZS1leHBlY3RlZC50eHQgICB8IDExICsrKwogLi4uc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQgfCAxMyArKysKIC4uLi9kaXNjb25uZWN0ZWQtZnJh
bWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCAgICAgIHwgNTMgKysrKysrKysrKysrKwogLi4uL21l
ZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbCAgICAgfCA0MiArKysrKysr
KysrCiAuLi4vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIxLmh0bWwgICAgICAgICB8
ICA4ICsrCiAuLi4vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0bWwgICAgICAg
ICB8ICA4ICsrCiAuLi4vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sICAg
ICAgICB8ICA4ICsrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyAg
ICAgICAgICB8IDM4ICsrKysrKysrLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAyMiArKysrKysKIC4uLi9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwICAgICAgIHwgMTEgKysrCiAuLi4vV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCB8ICA3ICsrCiBTb3VyY2UvV2ViS2l0Mi9DTWFr
ZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrCiBTb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDc0ICsrKysrKysrKysrKysrKysr
CiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggICAgICAgICAgICAgICB8ICAx
ICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCAgICAgICAgICAgICAgICAgIHwg
IDEgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oICAgICAgICAg
fCAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggICAgICAg
ICB8ICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwICAgICAg
ICAgIHwgMTEgKystCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGll
bnQuaCAgICB8IDY4ICsrKysrKysrKysrKysrKysKIC4uLi9BUEkvQy9XS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0LmNwcCAgICAgICAgIHwgNDAgKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9B
UEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggfCAzNyArKysrKysrKysKIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaCAgICAgICAgIHwgIDEgKwogLi4u
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAgICAgfCA2MyArKysr
KysrKysrKysrKysKIC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5o
ICAgICAgIHwgNDggKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5jcHAgIHwgNTQgKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggICAgfCA1NCArKysrKysrKysrKysrCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCAgICAgICAgICB8IDE0ICsrKysK
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAgICAgIHwgIDcg
KysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gIHwg
IDUgKysKIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAg
IHwgNDQgKysrKysrKysrKysKIC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwICAgICAgICAgIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKwogLi4uL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICAgICAgICAgICAgfCA1OCArKysrKysrKysrKysrKwog
Li4uL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgICAgICAgICAgfCA1NSAr
KysrKysrKysrKysrCiAuLi4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFD
bGllbnQuaCB8IDQ1ICsrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgICAgICB8IDE0ICsrKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmggICAgICAgIHwgMTMgKysrCiAuLi4vV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiB8ICA1ICsrCiBUb29scy9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ1ICsrKysrKysrKysrCiBUb29scy9U
ZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlICAgICAgICAgICAgICB8ICAxICsKIC4uLi9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgIHwgIDYgKysKIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwICAgIHwgNjMgKysr
KysrKysrKysrKysrCiAuLi4vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRp
YS5odG1sICB8IDE0ICsrKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbCAgICAgICAgIHwgIDMgKwogLi4uL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNw
cCAgICAgICAgICAgICAgfCAgNyArKwogLi4uL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmggICAgICAgICAgICAgICAgfCAgMyArCiAuLi4vV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcCB8ICA2ICsrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCB8ICAzICsKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwICAgICAgICAgIHwgNTcgKysrKysrKysrKysrKy0KIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCAgICAgICAgICAgIHwgIDkgKysrCiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCAgICAgICAgICB8ICA3ICsrCiA2MSBm
aWxlcyBjaGFuZ2VkLCAxNTA1IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Np
b24tYWxsb3dlZC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLmh0bWwKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lv
bi1kZW5pZWQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRt
bAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vz
cy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3N1Y2Nlc3MuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVj
dGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25u
ZWN0ZWQtZnJhbWUtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Np
b24tZGVuaWVkLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9u
LWRlbmllZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMv
ZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIxLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlz
Y29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29u
bmVjdGVkLWZyYW1lLWlubmVyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWwKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggODlmNjlmMy4uZjFmYTBlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTA5LTAxICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBV
c2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU2ltcGxlIFVzZXJNZWRpYSBwZXJtaXNzaW9uIHJlcXVlc3QgdGVzdHMg
aW5zcGlyZWQgZnJvbSB0aGUKKyAgICAgICAgR2VvbG9jYXRpb24gdGVzdCBzdWl0ZS4KKworICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2Vycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9zdWNjZXNzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24t
ZGVuaWVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9k
ZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlz
Y29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVk
LWZyYW1lLXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Np
b24tZGVuaWVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFscmVh
ZHktaW5uZXIxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c3RyZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1pbm5lcjIuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2Vz
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNC0wOS0yOSAgRGF2aWQgSHlhdHQgIDxoeWF0
dEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE2ODA0Nik6IENvbmZ1c2VkIGNv
bHVtbiBzcGFucyB3aGVuIGNvbWJpbmVkIHdpdGggZHluYW1pYyBhbmltYXRpb25zCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxv
d2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1w
ZXJtaXNzaW9uLWFsbG93ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmYzZjgyNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitUZXN0cyB0aGF0IG5vIGNhbGxiYWNrcyBhcmUgaW52b2tlZCB1bnRpbCBwZXJt
aXNzaW9uIGlzIGFsbG93ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IFN1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTQ3YzA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5odG1sCkBA
IC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgbm8gY2FsbGJhY2tzIGFy
ZSBpbnZva2VkIHVudGlsIHBlcm1pc3Npb24gaXMgYWxsb3dlZC4iKTsKK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gYWxsb3dQZXJtaXNzaW9uKCkgeworICAgIHBlcm1p
c3Npb25TZXQgPSB0cnVlOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworfQorCit2YXIgb3B0aW9ucyA9
IHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9OworbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKKyAgIGlmIChwZXJtaXNzaW9uU2V0KSB7Cisg
ICAgICAgIHRlc3RQYXNzZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCcpOworICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0ZXN0RmFpbGVkKCdT
dWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Cit9LCBmdW5jdGlvbihlKSB7
CisgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCit3aW5kb3cuc2V0VGltZW91dChhbGxvd1Blcm1p
c3Npb24sIDEwMCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lv
bi1kZW5pZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmFmZjY3ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K1Rlc3RzIHRoYXQgbm8gY2FsbGJhY2tzIGFyZSBpbnZva2VkIHVudGlsIHBlcm1pc3Npb24gaXMg
ZGVuaWVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBlcnJvci5jb2Rl
IGlzIGVycm9yLlBFUk1JU1NJT05fREVOSUVECitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42NmRhNGFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKQEAg
LTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBubyBjYWxsYmFja3MgYXJl
IGludm9rZWQgdW50aWwgcGVybWlzc2lvbiBpcyBkZW5pZWQuIik7Cit3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CisKK2Z1bmN0aW9uIGRlbnlQZXJtaXNzaW9uKCkgeworICAgIHBlcm1pc3Np
b25TZXQgPSB0cnVlOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsKK30KKwordmFyIGVycm9yOwordmFy
IG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfTsKK25hdmlnYXRvci53ZWJraXRH
ZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7CisgICAgdGVzdEZhaWxlZCgn
U3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgIGZpbmlzaEpTVGVz
dCgpOworfSwgZnVuY3Rpb24oZSkgeworICAgIGlmIChwZXJtaXNzaW9uU2V0KSB7CisgICAgICAg
IGVycm9yID0gZTsKKyAgICAgICAgc2hvdWxkQmUoJ2Vycm9yLmNvZGUnLCAnZXJyb3IuUEVSTUlT
U0lPTl9ERU5JRUQnKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVk
bHknKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCit3aW5kb3cuc2V0VGltZW91dChkZW55
UGVybWlzc2lvbiwgMTAwKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjI5ZDIyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKK1Rlc3RzIFVzZXJNZWRpYSBlcnJvciBjYWxsYmFjayB1c2luZyB0aGUgbW9jayBzZXJ2aWNl
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBlcnJvci5jb2RlIGlzIGVy
cm9yLlBFUk1JU1NJT05fREVOSUVECitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4YzUxNTgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWwKQEAgLTAsMCArMSwy
OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgVXNlck1lZGlhIGVycm9yIGNhbGxiYWNrIHVzaW5n
IHRoZSBtb2NrIHNlcnZpY2UuIik7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Np
b24oZmFsc2UpOworZWxzZQorICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0
aG91dCB0aGUgdGVzdFJ1bm5lcicpOworCit2YXIgZXJyb3I7Cit2YXIgb3B0aW9ucyA9IHthdWRp
bzpmYWxzZSwgdmlkZW86dHJ1ZX07CituYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlv
bnMsIGZ1bmN0aW9uKHN0cmVhbSkgeworICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sg
aW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZ1bmN0aW9u
KGUpIHsKKyAgICBlcnJvciA9IGU7CisgICAgc2hvdWxkQmUoJ2Vycm9yLmNvZGUnLCAnZXJyb3Iu
UEVSTUlTU0lPTl9ERU5JRUQnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9z
dWNjZXNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44
MjIzZWJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9z
dWNjZXNzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3RzIFVzZXJNZWRpYSBzdWNj
ZXNzIGNhbGxiYWNrIHVzaW5nIHRoZSBtb2NrIHNlcnZpY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2YxZjI2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwKQEAgLTAsMCArMSwyNiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgVXNlck1lZGlhIHN1Y2Nlc3MgY2FsbGJhY2sgdXNpbmcg
dGhlIG1vY2sgc2VydmljZS4iKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lv
bih0cnVlKTsKK2Vsc2UKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhv
dXQgdGhlIHRlc3RSdW5uZXInKTsKKwordmFyIG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVv
OiB0cnVlfTsKK25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24o
c3RyZWFtKSB7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmdW5jdGlvbihlKSB7CisgICAgdGVz
dEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQt
ZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTUwNWRiOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3Rl
ZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMjQ6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDk6IFRoZSBp
bXBsZW1lbnRhdGlvbiBkaWQgbm90IHN1cHBvcnQgdGhlIHJlcXVlc3RlZCB0eXBlIG9mIG9iamVj
dCBvciBvcGVyYXRpb24uCitUZXN0cyB0aGF0IHdoZW4gYSBnZXRVc2VyTWVkaWEgcmVxdWVzdCBp
cyBtYWRlIGFmdGVyIGl0cyBmcmFtZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIG5vIGNhbGxiYWNr
cyBhcmUgbWFkZSBhbmQgbm8gY3Jhc2ggb2NjdXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKword2Via2l0R2V0VXNlck1lZGlhIGNhbGxlZCBvbiBvYmplY3Qgd2l0aCBkaXNjb25u
ZWN0ZWQgRnJhbWUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWM2NDhmOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5l
Y3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGVzdHMgdGhhdCB3aGVuIGEgZ2V0VXNlck1lZGlhIHJlcXVlc3QgaXMgbWFkZSBhZnRl
ciBpdHMgZnJhbWUgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBubyBjYWxsYmFja3MgYXJlIG1hZGUg
YW5kIG5vIGNyYXNoIG9jY3Vycy4iKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlz
c2lvbih0cnVlKTsKKworZnVuY3Rpb24gb25GaXJzdElmcmFtZUxvYWRlZCgpIHsKKyAgICBpZnJh
bWVOYXZpZ2F0b3IgPSBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3I7CisgICAgaWZyYW1l
LnNyYyA9ICdyZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0bWwn
OworfQorCit2YXIgZXJyb3I7Cit2YXIgb3B0aW9ucyA9IHthdWRpbzogdHJ1ZSwgdmlkZW86IHRy
dWV9OworZnVuY3Rpb24gb25TZWNvbmRJZnJhbWVMb2FkZWQoKSB7CisgICAgc2V0VGltZW91dChm
aW5pc2hUZXN0LCA1MDApOworCisgICAgaWZyYW1lTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKKyAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2Vz
cyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9LCBmdW5jdGlvbihlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxi
YWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
IH0pOworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgIGRlYnVnKCd3ZWJraXRHZXRV
c2VyTWVkaWEgY2FsbGVkIG9uIG9iamVjdCB3aXRoIGRpc2Nvbm5lY3RlZCBGcmFtZS4nKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2lmcmFtZScpOworaWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1l
LWFscmVhZHktaW5uZXIxLmh0bWwnOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUp
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlz
Y29ubmVjdGVkLWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5lZmI3OGM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0g
aGFzIDEgb251bmxvYWQgaGFuZGxlcihzKQorVGVzdHMgdGhhdCB3aGVuIGEgcmVxdWVzdCBpcyBt
YWRlIG9uIGEgVXNlck1lZGlhIG9iamVjdCBhbmQgaXRzIEZyYW1lIGlzIGRpc2Nvbm5lY3RlZCBi
ZWZvcmUgYSBjYWxsYmFjayBpcyBtYWRlLCB0aGUgZXJyb3IgY2FsbGJhY2sgaXMgaW52b2tlZCB3
aXRoIHRoZSBjb3JyZWN0IGVycm9yIG1lc3NhZ2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIE5vIGNhbGxiYWNrcyBpbnZva2VkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24t
ZGVuaWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTcyNDYzMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5l
Y3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBA
QAorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+IiAtIGhhcyAxIG9udW5s
b2FkIGhhbmRsZXIocykKK1Rlc3RzIHRoYXQgd2hlbiBhIGdldFVzZXJNZWRpYSByZXF1ZXN0IGlz
IG1hZGUsIHBlcm1pc3Npb24gaXMgZGVuaWVkIGFuZCBpdHMgRnJhbWUgaXMgZGlzY29ubmVjdGVk
IGJlZm9yZSBhIGNhbGxiYWNrIGlzIG1hZGUsIHRoZSBlcnJvciBjYWxsYmFjayBpcyBpbnZva2Vk
IHdpdGggUEVSTUlTU0lPTl9ERU5JRUQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIGVycm9yLmNvZGUgaXMgZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQKKworUEFTUyBObyBj
YWxsYmFja3MgaW52b2tlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1l
LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uN2QxOTc5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC5odG1s
CkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgd2hlbiBh
IGdldFVzZXJNZWRpYSByZXF1ZXN0IGlzIG1hZGUsIHBlcm1pc3Npb24gaXMgZGVuaWVkIGFuZCBp
dHMgRnJhbWUgaXMgZGlzY29ubmVjdGVkIGJlZm9yZSBhIGNhbGxiYWNrIGlzIG1hZGUsIHRoZSBl
cnJvciBjYWxsYmFjayBpcyBpbnZva2VkIHdpdGggUEVSTUlTU0lPTl9ERU5JRUQuIik7Cit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0
ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24oZmFsc2UpOworZWxzZQorICAgIGRlYnVn
KCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lcicpOworCit2
YXIgZXJyb3I7Cit2YXIgb3B0aW9ucyA9IHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9OworZnVu
Y3Rpb24gb25JZnJhbWVMb2FkZWQoKSB7CisgICAgaWZyYW1lTmF2aWdhdG9yID0gaWZyYW1lLmNv
bnRlbnRXaW5kb3cubmF2aWdhdG9yOworICAgIGlmcmFtZU5hdmlnYXRvci53ZWJraXRHZXRVc2Vy
TWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ1N1
Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgfSwgZnVuY3Rpb24oZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgICAg
IHNob3VsZEJlKCdlcnJvci5jb2RlJywgJ2Vycm9yLlBFUk1JU1NJT05fREVOSUVEJyk7CisgICAg
ICAgIGRlYnVnKCcnKTsKKyAgICAgICAgaWZyYW1lLnNyYyA9ICdkYXRhOnRleHQvaHRtbCxUaGlz
IGZyYW1lIHNob3VsZCBiZSB2aXNpYmxlIHdoZW4gdGhlIHRlc3QgY29tcGxldGVzJzsKKyAgICB9
KTsKK30KKworZnVuY3Rpb24gb25JZnJhbWVVbmxvYWRlZCgpIHsKKyAgICAvLyBNYWtlIGFub3Ro
ZXIgcmVxdWVzdCwgd2l0aCBwZXJtaXNzaW9uIGFscmVhZHkgZGVuaWVkLgorICAgIGlmcmFtZU5h
dmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7Cisg
ICAgICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHkn
KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgZnVuY3Rpb24oZSkgeworICAgICAg
ICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eworICAgICAgICB0ZXN0UGFzc2VkKCdObyBjYWxsYmFja3MgaW52b2tlZCcpOworICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICB9LCAxMDApOworfQorCit2YXIgaWZyYW1lID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CitpZnJhbWUuc3JjID0gJ3Jlc291cmNlcy9kaXNjb25u
ZWN0ZWQtZnJhbWUtaW5uZXIuaHRtbCc7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFt
ZSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25u
ZWN0ZWQtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWMx
YzBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCB3aGVuIGEgcmVxdWVzdCBpcyBtYWRlIG9uIGEgVXNlck1lZGlh
IG9iamVjdCBhbmQgaXRzIEZyYW1lIGlzIGRpc2Nvbm5lY3RlZCBiZWZvcmUgYSBjYWxsYmFjayBp
cyBtYWRlLCB0aGUgZXJyb3IgY2FsbGJhY2sgaXMgaW52b2tlZCB3aXRoIHRoZSBjb3JyZWN0IGVy
cm9yIG1lc3NhZ2UuIik7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1
ZSk7CisKK2Z1bmN0aW9uIG9uSWZyYW1lTG9hZGVkKCkgeworICAgIGlmcmFtZU5hdmlnYXRvciA9
IGlmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvcjsKKyAgICBpZnJhbWUuc3JjID0gJ2RhdGE6
dGV4dC9odG1sLFRoaXMgZnJhbWUgc2hvdWxkIGJlIHZpc2libGUgd2hlbiB0aGUgdGVzdCBjb21w
bGV0ZXMnOworfQorCitmdW5jdGlvbiBvbklmcmFtZVVubG9hZGVkKCkgeworICAgIHZhciBvcHRp
b25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07CisgICAgaWZyYW1lTmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbiAoc3RyZWFtKSB7CisgICAgICAgIHRl
c3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgZnVuY3Rpb24oZSkgeworICAgICAgICB0ZXN0RmFp
bGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICB9KTsKKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAg
ICAgIHRlc3RQYXNzZWQoJ05vIGNhbGxiYWNrcyBpbnZva2VkJyk7CisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgIH0sIDEwMCk7Cit9CisKK3ZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdpZnJhbWUnKTsKK2lmcmFtZS5zcmMgPSAncmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1m
cmFtZS1pbm5lci5odG1sJzsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFs
cmVhZHktaW5uZXIxLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0
cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIxLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGRjYTM1MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9k
aXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1pbm5lcjEuaHRtbApAQCAtMCwwICsxLDggQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICA8L2hlYWQ+CisgIDxib2R5IG9ubG9h
ZD0id2luZG93LnBhcmVudC5vbkZpcnN0SWZyYW1lTG9hZGVkKCkiPgorICAgIDxwPlRoaXMgZnJh
bWUgc2hvdWxkIGJlIHJlcGxhY2VkIGJlZm9yZSB0aGUgdGVzdCBlbmRzPC9wPgorICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlz
Y29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMWU4ZGU5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUt
YWxyZWFkeS1pbm5lcjIuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+CisgIDxoZWFkPgorICA8L2hlYWQ+CisgIDxib2R5IG9ubG9hZD0id2luZG93LnBhcmVudC5v
blNlY29uZElmcmFtZUxvYWRlZCgpIj4KKyAgICA8cD5UaGlzIGZyYW1lIHNob3VsZCBiZSB2aXNp
YmxlIHdoZW4gdGhlIHRlc3QgY29tcGxldGVzPC9wPgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJj
ZXMvZGlzY29ubmVjdGVkLWZyYW1lLWlubmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWlubmVyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTA4NjI4MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291
cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtaW5uZXIuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICA8L2hlYWQ+CisgIDxib2R5IG9ubG9hZD0i
d2luZG93LnBhcmVudC5vbklmcmFtZUxvYWRlZCgpIiBvbnVubG9hZD0id2luZG93LnBhcmVudC5v
bklmcmFtZVVubG9hZGVkKCk7Ij4KKyAgICA8cD5UaGlzIGZyYW1lIHNob3VsZCBiZSByZXBsYWNl
ZCBiZWZvcmUgdGhlIHRlc3QgZW5kczwvcD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyOGQ1NDRhLi42YmM3MWEyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjkxLDcgKzI5
MSw0MyBAQCB3ZWJraXQub3JnL2IvODUyMTEgaWV0ZXN0Y2VudGVyL2NzczMvZmxleGJveC9mbGV4
Ym94LWFsaWduLXN0cmV0Y2gtMDAxLmh0bSBbIEltYQogd2Via2l0Lm9yZy9iLzg1MjEyIGlldGVz
dGNlbnRlci9jc3MzL2ZsZXhib3gvZmxleGJveC1sYXlvdXQtMDAyLmh0bSBbIEltYWdlT25seUZh
aWx1cmUgXQogCiAjIE1lZGlhc3RyZWFtIGltcGxlbWVudGF0aW9uIGlzIG5vdCBjb21wbGV0ZSB5
ZXQuCi13ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbSBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMuaHRtbCBbIFNraXAg
XQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLmh0bWwg
WyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
LWFkZC1lbmRlZC10cmFja3MuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3Qv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tYWRkLXJlbW92ZS10cmFja3MuaHRtbCBbIFNraXAgXQor
d2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tYWRkLXRyYWNr
cy10by1pbmFjdGl2ZS1zdHJlYW0uaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZh
c3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tY2xvbmUuaHRtbCBbIFNraXAgXQord2Via2l0Lm9y
Zy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci5odG1sIFsg
U2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1j
b25zdHJ1Y3Qtd2l0aC1lbmRlZC10cmFja3MuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5
MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tZ2V0VHJhY2tzLmh0bWwgWyBTa2lwIF0K
K3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLU1lZGlhRWxl
bWVudC1zcmNPYmplY3QuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LWNvbnN0cnVjdG9yLmh0bWwgWyBTa2lwIF0K
K3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0
U291cmNlcy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stb25lbmRlZC5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9uby1pbnRlcmZhY2Utb2JqZWN0Lmh0bWwg
WyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRp
ZGF0ZS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1BZGRSZW1vdmVTdHJlYW0uaHRtbCBbIFNraXAgXQord2Via2l0Lm9y
Zy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlQW5zd2Vy
Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIw
MyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFjaGFubmVsLmh0bWwgWyBT
a2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLWR0bWYuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24tZXZlbnRzLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83
OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWdldENvbmZpZ3VyYXRpb24u
aHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24taGF2ZS1sb2NhbC1vZmZlci5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2Iv
NzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1oYXZlLWxvY2FsLXByYW5z
d2VyLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLWhhdmUtcmVtb3RlLW9mZmVyLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5v
cmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWhhdmUtcmVtb3Rl
LXByYW5zd2VyLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBm
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWljZS5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1sb2NhbERl
c2NyaXB0aW9uLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQuaHRtbCBbIFNraXAgXQor
d2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVt
b3RlRGVzY3JpcHRpb24uaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhYmxlLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5v
cmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRlLmh0bWwg
WyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLXN0YXRzLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzU2VsZWN0b3IuaHRtbCBbIFNraXAgXQord2Vi
a2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmh0
bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi83OTIwMyBmYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMv
bWVkaWEtc3RyZWFtLWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcv
Yi83OTIwMyB3ZWJhdWRpby9tZWRpYXN0cmVhbWF1ZGlvZGVzdGluYXRpb25ub2RlLmh0bWwgWyBT
a2lwIF0KIHdlYmtpdC5vcmcvYi83OTIwMyB3ZWJhdWRpby9tZWRpYXN0cmVhbWF1ZGlvc291cmNl
bm9kZS5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA3YzNlYS4uOGE1NjMwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA5LTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5v
cm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
ZG9jdW1lbnQgYW5kIGZyYW1lIGFjY2Vzc29ycywgbmVlZGVkIGJ5IHRoZQorICAgICAgICBVc2Vy
TWVkaWFSZXF1ZXN0TWFuYWdlciBvZiB0aGUgV2ViUHJvY2Vzcy4gQWxzbyBhZGRlZCB0d28gbWV0
aG9kcworICAgICAgICB1c2VkIGJ5IHRoZSBwZXJtaXNzaW9uIHJlcXVlc3QgbWFuYWdlciB0byBr
bm93IGlmIGFjY2VzcyB0byBhdWRpbworICAgICAgICBvciB2aWRlbyBkZXZpY2VzIGlzIHJlcXVl
c3RlZC4KKworICAgICAgICBUZXN0czogZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbAorCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlVzZXJNZWRpYVJlcXVlc3Q6OmRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRp
YVJlcXVlc3Q6OmZyYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnJlcXVpcmVz
QXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6cmVxdWlyZXNWaWRl
byk6CisKIDIwMTQtMDktMjkgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEluamVjdGVkU2NyaXB0cyBzaG91bGQgbm90IGJl
IHByb2ZpbGVkIG9yIGRpc3BsYXllZCBpbiBUaW1lbGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggZTQz
OGQzNS4uNzEwMGVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVk
ZSAiRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50
c0ltcGwuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFt
Q2VudGVyLmgiCkBAIC0xMDEsNiArMTAyLDE2IEBAIFVzZXJNZWRpYVJlcXVlc3Q6On5Vc2VyTWVk
aWFSZXF1ZXN0KCkKIHsKIH0KIAorRG9jdW1lbnQqIFVzZXJNZWRpYVJlcXVlc3Q6OmRvY3VtZW50
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpOworfQorCitGcmFtZSogVXNlck1lZGlhUmVxdWVzdDo6ZnJhbWUoKSBjb25zdAoreworICAg
IHJldHVybiBkb2N1bWVudCgpID8gZG9jdW1lbnQoKS0+ZnJhbWUoKSA6IG51bGxwdHI7Cit9CisK
IFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1ZXN0OjpzZWN1cml0eU9yaWdpbigpIGNvbnN0
CiB7CiAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggYzgw
YTZiYS4uMjgyMjdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBEaWN0aW9uYXJ5OwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBGcmFt
ZTsKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CiBj
bGFzcyBVc2VyTWVkaWFDb250cm9sbGVyOwpAQCAtNjIsMTAgKzYzLDE2IEBAIHB1YmxpYzoKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0
OwogCisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CisgICAgRnJhbWUqIGZyYW1lKCkg
Y29uc3Q7CisKICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFB
Y2Nlc3NEZW5pZWQoKTsKIAorICAgIGJvb2wgcmVxdWlyZXNBdWRpbygpIGNvbnN0IHsgcmV0dXJu
IG1fYXVkaW9Db25zdHJhaW50czsgfQorICAgIGJvb2wgcmVxdWlyZXNWaWRlbygpIGNvbnN0IHsg
cmV0dXJuIG1fdmlkZW9Db25zdHJhaW50czsgfQorCiBwcml2YXRlOgogICAgIFVzZXJNZWRpYVJl
cXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIqLCBQYXNz
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGF1ZGlvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TWVk
aWFDb25zdHJhaW50cz4gdmlkZW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2Vy
TWVkaWFTdWNjZXNzQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9y
Q2FsbGJhY2s+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA2YmRjNTlkLi40YWQyMDgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtNDksNiArNDksNyBAQCBzZXQoV2ViS2l0Ml9JTkNMVURF
X0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvRE9NIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0xhdW5jaGluZyIKICAgICAi
JHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIgorICAgICIke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL01lZGlhU3RyZWFtIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNz
L05ldHdvcmsiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyIK
ICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIgpAQCAtMzAxLDYgKzMw
Miw4IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NU
aW1lci5jcHAKICAgICBVSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCiAgICAgVUlQcm9j
ZXNzL1RleHRDaGVja2VyQ29tcGxldGlvbi5jcHAKKyAgICBVSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlk
ZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3Bw
CiAgICAgVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAKQEAgLTM4OSw2ICszOTIsNyBA
QCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNo
ZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblN0YXRlUmVmLmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1RleHRDaGVja2VyLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S1ZpYnJhdGlvbi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMu
Y3BwCiAKQEAgLTQ4NSw2ICs0ODksOCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBXZWJQ
cm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1hbmFnZXIuY3BwCiAKKyAgICBXZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKwog
ICAgIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAgICAg
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKICAgICBXZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01MzYsNiArNTQyLDcgQEAg
c2V0KFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9w
dXBNZW51LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9w
dXBNZW51LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xp
ZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVmlicmF0aW9uQ2xpZW50
LmNwcAogCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDY1YjU2OTMuLjE1YTQxYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAxNC0w
OS0wMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W1dLMl0gVXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0IGluIFdlYktpdDIuIEl0J3MKKyAgICAgICAgaW1wbGVtZW50ZWQgc2ltaWxhcmlseSB0byB0
aGUgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICBzdXBwb3J0LiBXaGVuIHRo
ZSBXZWJQYWdlIHJlcXVpcmVzIHRoaXMgcGVybWlzc2lvbiBpdCBzZW5kcyBhCisgICAgICAgIG1l
c3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3Mgd2hpY2ggYXQgc29tZSBwb2ludCBncmFudHMgb3IgZGVu
aWVzIHRoZQorICAgICAgICBwZXJtaXNzaW9uIGFuZCBzZW5kcyB0aGUgcmVzdWx0IGJhY2sgdG8g
dGhlIFdlYlByb2Nlc3MuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogR2VuZXJpYyBDTWFr
ZSBzdXBwb3J0IGZvciBuZXcgZmlsZXMuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5o
OiBOZXcgdHlwZSBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgICogU2hh
cmVkL0FQSU9iamVjdC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElD
YXN0Lmg6IFBlcm1pc3Npb25SZXF1ZXN0IEFQSSBtYXBwaW5nLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQVBJVUlDbGllbnQuaDogTmV3IGRlY2lkZVBvbGljeSBoYW5kbGVyIGZvciBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcDogRGl0dG8uCisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oOiBXS1BhZ2VVSUNsaWVu
dCB2ZXJzaW9uIGJ1bXAgdG8KKyAgICAgICAgNSwgaW5jbHVkaW5nIHRoZSBuZXcgZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgbWVtYmVyLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQsIEMgQVBJ
CisgICAgICAgIGltcGxlbWVudGF0aW9uIG9mIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC4KKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQpOgorICAg
ICAgICAoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KToKKyAgICAgICAgKFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV2ViS2l0Ml9DLmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDogQWRkZWQsIHByb3h5CisgICAgICAg
IG9iamVjdCBmb3IgdGhlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0VHlwZS4KKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OmFsbG93KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6ZGVueSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjptZWRpYVBhcmFtZXRlcnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVx
dWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6IERlZmVyCisgICAgICAgIFVzZXJQZXJt
aXNzaW9uUmVxdWVzdCB0byB0aGUgVUlDbGllbnQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46
IE5ldyBtZXNzYWdlIHRvIGhhbmRsZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuCisgICAg
ICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDog
QWRkZWQsCisgICAgICAgIFdlYlByb2Nlc3Mgc2lkZSBvZiB0aGUgVXNlclJlcXVlc3RNYW5hZ2Vy
LCBrZWVwaW5nIHRyYWNrIG9mIGVhY2gKKyAgICAgICAgcGVybWlzc2lvbiByZXF1ZXN0LgorICAg
ICAgICAoV2ViS2l0OjpnZW5lcmF0ZVJlcXVlc3RJRCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyOjpzdGFydFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9u
RGVjaXNpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcDogQWRkZWQsCisgICAgICAgIFdlYlBy
b2Nlc3MgaW1wbGVtZW50YXRpb24gb2YgdGhlIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOiBDcmVhdGUgdGhlCisgICAgICAgIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlciBhbmQgcmVnaXN0ZXIgdGhlIFVzZXJNZWRpYUNsaWVudAor
ICAgICAgICB0byB0aGUgcGFnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6IERpc3BhdGNoCisgICAgICAgIGRlY2lzaW9u
IHRvIG1hbmFnZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogTmV3
IE1lc3NhZ2UgdG8gaGFuZGxlCisgICAgICAgIHBlcm1pc3Npb24gZGVjaXNpb24gcmVzdWx0IGZy
b20gdGhlIFVJIHByb2Nlc3MuCisKIDIwMTQtMDktMjkgIENocmlzdG9waGUgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+KCkgZm9yIERv
Y3VtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggOGQxZTk2NS4uMTFl
YzU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtMTI3LDYgKzEyNyw3
IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJvdGVjdGlvblNwYWNlKiBXS1Byb3Rl
Y3Rpb25TcGFjZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVGV4dENoZWNrZXIq
IFdLVGV4dENoZWNrZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Nlc3Npb24q
IFdLU2Vzc2lvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU2Vzc2lvblN0YXRl
KiBXS1Nlc3Npb25TdGF0ZVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QqIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWY7CiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ZpYnJhdGlvbiogV0tWaWJyYXRpb25SZWY7CiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ZpZXdwb3J0QXR0cmlidXRlcyogV0tWaWV3cG9y
dEF0dHJpYnV0ZXNSZWY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElP
YmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCA5MjJlNmRh
Li5kNDk2NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC0xMzIsNiArMTMyLDcg
QEAgcHVibGljOgogICAgICAgICBQcmVmZXJlbmNlcywKICAgICAgICAgU2Vzc2lvbiwKICAgICAg
ICAgVGV4dENoZWNrZXIsCisgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LAogICAg
ICAgICBWaWJyYXRpb24sCiAgICAgICAgIFZpZXdwb3J0QXR0cmlidXRlcywKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDFjYTE1ZTMuLmVlYmNmYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTUwLDYg
KzUwLDcgQEAgY2xhc3MgSW1tdXRhYmxlRGljdGlvbmFyeTsKIGNsYXNzIE5hdGl2ZVdlYktleWJv
YXJkRXZlbnQ7CiBjbGFzcyBOYXRpdmVXZWJXaGVlbEV2ZW50OwogY2xhc3MgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3Q7CitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OwogY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViRnJh
bWVQcm94eTsKIGNsYXNzIFdlYk9wZW5QYW5lbFBhcmFtZXRlcnM7CkBAIC0xMjIsNiArMTIzLDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHJ1bk9wZW5QYW5lbChXZWJLaXQ6OldlYlBh
Z2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6V2ViT3BlblBhbmVsUGFy
YW1ldGVycyosIFdlYktpdDo6V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1l
UHJveHkqLCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luKiwgV2ViS2l0OjpHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0UHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBh
Z2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6V2ViU2VjdXJpdHlPcmln
aW4qLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqKSB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViU2VjdXJpdHlP
cmlnaW4qLCBXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KikgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIC8vIFByaW50aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCmluZGV4IDgwMjIxYTkuLjVmNDRhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTYzLDYgKzYzLDcgQEAgY2xhc3MgQXV0
aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyOwogY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNz
IEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNsYXNzIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0OworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsK
IGNsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9y
d2FyZExpc3Q7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOwpAQCAtMTQ2LDYgKzE0Nyw3
IEBAIFdLX0FERF9BUElfTUFQUElORyhXS1JlbmRlckxheWVyUmVmLCBXZWJSZW5kZXJMYXllcikK
IFdLX0FERF9BUElfTUFQUElORyhXS1JlbmRlck9iamVjdFJlZiwgV2ViUmVuZGVyT2JqZWN0KQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLU2Vzc2lvblN0YXRlUmVmLCBBUEk6OlNlc3Npb25TdGF0ZSkK
IFdLX0FERF9BUElfTUFQUElORyhXS1RleHRDaGVja2VyUmVmLCBXZWJUZXh0Q2hlY2tlcikKK1dL
X0FERF9BUElfTUFQUElORyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmLCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlicmF0aW9u
UmVmLCBXZWJWaWJyYXRpb25Qcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1ZpZXdwb3J0QXR0
cmlidXRlc1JlZiwgV2ViVmlld3BvcnRBdHRyaWJ1dGVzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdL
SW5zcGVjdG9yUmVmLCBXZWJJbnNwZWN0b3JQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggMTNjNWU1Yi4uZTNjN2Q5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRl
bXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0
eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQ
YWdlVUlDbGllbnRWMiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGllbnRWND4gVmVyc2lv
bnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xp
ZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50
VjQsIFdLUGFnZVVJQ2xpZW50VjU+IFZlcnNpb25zOwogfTsKIAogfQpAQCAtMTQ5Nyw2ICsxNDk3
LDE1IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25z
dCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQogCisgICAgICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZy
YW1lLCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luLCAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSogcGVybWlzc2lvblJlcXVlc3QpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBtX2NsaWVu
dC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0b0FQSShwYWdlKSwg
dG9BUEkoZnJhbWUpLCB0b0FQSShvcmlnaW4pLCB0b0FQSShwZXJtaXNzaW9uUmVxdWVzdCksIG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQorCiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYlNlY3VyaXR5T3JpZ2luKiBv
cmlnaW4sIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCkg
b3ZlcnJpZGUKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xp
Y3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKaW5kZXggYmM5ZWVjNy4uYWI2MWFlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgK
QEAgLTkwLDYgKzkwLDcgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkQmVnaW5UcmFja2luZ1Bv
dGVudGlhbExvbmdNb3VzZVByZXNzQ2FsbGJhY2spKFdLUGFnZVJlZgogdHlwZWRlZiB2b2lkICgq
V0tQYWdlRGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3NDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2Us
IFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VEaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2VDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2
b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5S
ZWYgb3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1
ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAogLy8gRGVwcmVjYXRlZCAgICAKIHR5cGVk
ZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZl
bnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMzc4LDYgKzM3OSw3MyBAQCB0eXBlZGVmIHN0cnVj
dCBXS1BhZ2VVSUNsaWVudFY0IHsKICAgICBXS1BhZ2VJc1BsYXlpbmdBdWRpb0RpZENoYW5nZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGxheWluZ0F1ZGlvRGlkQ2hh
bmdlOwogfSBXS1BhZ2VVSUNsaWVudFY0OwogCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVu
dFY1IHsKKyAgICBXS1BhZ2VVSUNsaWVudEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tQ
YWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAg
ICAgICAgICBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdl
VUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaG93UGFnZTsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlOworICAgIFdLUGFnZVRha2VGb2N1
c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFr
ZUZvY3VzOworICAgIFdLUGFnZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXM7CisgICAgV0tQYWdlVW5mb2N1c0NhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmZvY3VzOwor
ICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVydENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdEFsZXJ0OworICAgIFdLUGFnZVJ1bkphdmFTY3Jp
cHRDb25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2
YVNjcmlwdENvbmZpcm07CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0OworICAg
IFdLUGFnZVNldFN0YXR1c1RleHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2V0U3RhdHVzVGV4dDsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxl
bWVudENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgIG1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlTWlzc2luZ1BsdWdp
bkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICBtaXNzaW5n
UGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZURp
ZE5vdEhhbmRsZUtleUV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkTm90SGFuZGxlS2V5RXZlbnQ7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlV2hlZWxFdmVu
dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVXaGVl
bEV2ZW50OworICAgIFdLUGFnZUdldFRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdG9vbGJhcnNBcmVWaXNpYmxlOworICAgIFdLUGFnZVNl
dFRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0VG9vbGJhcnNBcmVWaXNpYmxlOworICAgIFdLUGFnZUdldE1lbnVCYXJJc1Zpc2libGVD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUJhcklzVmlzaWJs
ZTsKKyAgICBXS1BhZ2VTZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNldE1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlR2V0U3Rh
dHVzQmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0dXNCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlU2V0U3RhdHVzQmFySXNWaXNpYmxlQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNCYXJJc1Zpc2libGU7
CisgICAgV0tQYWdlR2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpc1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VTZXRJc1Jlc2l6YWJsZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzUmVzaXph
YmxlOworICAgIFdLUGFnZUdldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlU2V0V2luZG93
RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRX
aW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsK
KyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpZERyYXc7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGlkU2Nyb2xsOwor
ICAgIFdLUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXhjZWVkZWREYXRhYmFzZVF1b3RhOworICAgIFdLUGFnZVJ1bk9wZW5Q
YW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
T3BlblBhbmVsOworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VIZWFkZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckhlaWdodDsKKyAgICBXS1BhZ2VG
b290ZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvb3RlckhlaWdodDsKKyAgICBXS1BhZ2VEcmF3SGVhZGVyQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdIZWFkZXI7CisgICAgV0tQYWdl
RHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkcmF3Rm9vdGVyOworICAgIFdLUGFnZVByaW50RnJhbWVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRGcmFtZTsKKyAgICBXS1BhZ2VV
SUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJ1bk1vZGFsOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRD
b21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKKyAgICBXS1BhZ2VTYXZlRGF0YVRvRmlsZUlu
RG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIHNhdmVEYXRhVG9G
aWxlSW5Eb3dubG9hZHNGb2xkZXI7CisgICAgV0tQYWdlU2hvdWxkSW50ZXJydXB0SmF2YVNjcmlw
dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRJbnRlcnJ1cHRKYXZh
U2NyaXB0OworCisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFn
ZTsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFnZURl
Y2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAg
ICAgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQ
YWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMSB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMTsKKworICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dDb2xvclBpY2tl
cjsKKyAgICBXS1BhZ2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhpZGVDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VVbmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZDsKKyAgICAKKyAgICAvLyBWZXJzaW9uIDMuCisgICAg
V0tQYWdlUGlubmVkU3RhdGVEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwaW5uZWRTdGF0ZURpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNC4KKyAg
ICBXS1BhZ2VEaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxsYmFjayAg
ICAgICAgICAgICAgIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzczsKKyAg
ICBXS1BhZ2VEaWRSZWNvZ25pemVMb25nTW91c2VQcmVzc0NhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzOworICAgIFdLUGFnZURpZENh
bmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxsYmFjayAgICAgICAgICAgICAg
ZGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzczsKKworICAgIC8vIFZlcnNp
b24gNS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dENhbGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0OworfSBXS1BhZ2VVSUNsaWVudFY1OworCiBlbnVtIHsga1dLUGFnZVVJQ2xpZW50Q3Vy
cmVudFZlcnNpb24gV0tfRU5VTV9ERVBSRUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lvbiBu
dW1iZXIgaW5zdGVhZCIpID0gMiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgewog
ICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdmVyc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWZkM2U2MjgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5j
bHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorI2luY2x1ZGUgIldLQVBJ
Q2FzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYg
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit7CisgICAgdG9JbXBsKHVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKS0+YWxsb3coKTsKK30KKwordm9pZCBXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UmVmKQoreworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFJlZiktPmRlbnkoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0NWQzMTgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9o
CisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0
ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOworV0tf
RVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisK
KyNlbmRpZiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2ggKi8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaAppbmRleCA1YTcxMmNkLi5lMzJiYWNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oCkBAIC01Nyw2ICs1
Nyw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLVVJMLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLVVJM
UmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1VSTFJlc3BvbnNlLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaD4KIAogI2lmIGRlZmluZWQoX19P
QkpDX18pICYmIF9fT0JKQ19fCiAjaW1wb3J0IDxXZWJLaXQvV0tWaWV3Lmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4zOTdlNTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDYz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIldlYlBhZ2VN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
KFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMo
KQoreworICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IG1fcGVuZGluZ1JlcXVlc3RzLnZhbHVlcygp
KQorICAgICAgICByZXF1ZXN0LT5pbnZhbGlkYXRlKCk7CisKKyAgICBtX3BlbmRpbmdSZXF1ZXN0
cy5jbGVhcigpOworfQorCitQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGF1ZGlvLCBib29sIHZpZGVvKQoreworICAgIFJl
ZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiByZXF1ZXN0ID0gVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKCp0aGlzLCB1c2VyTWVkaWFJRCwgYXVkaW8s
IHZpZGVvKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQodXNlck1lZGlhSUQsIHJlcXVlc3Qu
Z2V0KCkpOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKK30KKwordm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQoreworICAg
IGlmICghbV9wYWdlLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3Bl
bmRpbmdSZXF1ZXN0cy50YWtlKHVzZXJNZWRpYUlEKSkKKyAgICAgICAgcmV0dXJuOworCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNlck1lZGlh
SUQsIGFsbG93ZWQpLCBtX3BhZ2UucGFnZUlEKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
YWxsb3dlZCk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmFhMTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDQ4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAx
ICBVU0EKKyAqLworCisjaWZuZGVmIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5X2gKKyNkZWZpbmUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaAor
CisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJv
eHk7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHsKK3B1
YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eShXZWJQYWdlUHJveHkmKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZVJlcXVlc3RzKCk7CisKKyAg
ICAvLyBDcmVhdGUgYSByZXF1ZXN0IHRvIGJlIHByZXNlbnRlZCB0byB0aGUgdXNlci4KKyAgICBQ
YXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3Qo
dWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pOworCisgICAgLy8g
Q2FsbGVkIGJ5IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgd2hlbiBhIGRlY2lzaW9u
IGlzIG1hZGUgYnkgdGhlIHVzZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlz
c2lvbkRlY2lzaW9uKHVpbnQ2NF90LCBib29sIGFsbG93KTsKKworcHJpdmF0ZToKKyAgICBIYXNo
TWFwPHVpbnQ2NF90LCBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1f
cGVuZGluZ1JlcXVlc3RzOworICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMTJiMmE4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApAQCAtMCwwICsx
LDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw
MjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorCisjaW5jbHVkZSAiQVBJTnVtYmVyLmgi
CisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKyNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2VyLCB1
aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbykKKyAgICA6IG1fbWFu
YWdlcihtYW5hZ2VyKQorICAgICwgbV91c2VyTWVkaWFJRCh1c2VyTWVkaWFJRCkKK3sKKyAgICBI
YXNoTWFwPFN0cmluZywgUmVmUHRyPEFQSTo6T2JqZWN0Pj4gcGFyYW1ldGVyc01hcDsKKyAgICBw
YXJhbWV0ZXJzTWFwLnNldChBU0NJSUxpdGVyYWwoImF1ZGlvIiksIEFQSTo6Qm9vbGVhbjo6Y3Jl
YXRlKGF1ZGlvKSk7CisgICAgcGFyYW1ldGVyc01hcC5zZXQoQVNDSUlMaXRlcmFsKCJ2aWRlbyIp
LCBBUEk6OkJvb2xlYW46OmNyZWF0ZSh2aWRlbykpOworICAgIG1fbWVkaWFQYXJhbWV0ZXJzID0g
SW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShwYXJhbWV0ZXJzTWFwKSk7Cit9
CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3coKQoreworICAg
IG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1l
ZGlhSUQsIHRydWUpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OmRlbnkoKQoreworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRl
Y2lzaW9uKG1fdXNlck1lZGlhSUQsIGZhbHNlKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBtX21hbmFnZXIuaW52YWxpZGF0
ZVJlcXVlc3RzKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDQ3MjcyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIklt
bXV0YWJsZURpY3Rpb25hcnkuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgOiBwdWJsaWMg
QVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlk
ZW8pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkobWFuYWdlciwgdXNlck1lZGlhSUQsIGF1ZGlvLCB2aWRlbykpOworICAg
IH0KKworICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRlbnkoKTsKKworICAgIHZvaWQgaW52
YWxpZGF0ZSgpOworCisgICAgUGFzc1JlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBtZWRpYVBh
cmFtZXRlcnMoKSBjb25zdCB7IHJldHVybiBtX21lZGlhUGFyYW1ldGVyczsgfQorCitwcml2YXRl
OgorICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhdWRpbywg
Ym9vbCB2aWRlbyk7CisKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eSYgbV9tYW5hZ2VyOworICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhSUQ7CisgICAgUmVmUHRyPElt
bXV0YWJsZURpY3Rpb25hcnk+IG1fbWVkaWFQYXJhbWV0ZXJzOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggM2FjYTRlYy4u
Yjk3OWNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJQcmludEluZm8uaCIKICNpbmNsdWRlICJUZXh0Q2hl
Y2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKKyNpbmNsdWRlICJVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0uaCIKQEAgLTI4MCw2ICsyODEsNyBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQ
cm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIHVp
bgogI2VuZGlmCiAgICAgLCBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0
aGlzKQogICAgICwgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMp
CisgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKICAgICAs
IG1fdmlld1N0YXRlKFZpZXdTdGF0ZTo6Tm9GbGFncykKICAgICAsIG1fdmlld1dhc0V2ZXJJbldp
bmRvdyhmYWxzZSkKICAgICAsIG1fYmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlzdDo6
Y3JlYXRlKCp0aGlzKSkKQEAgLTQ2NzQsNiArNDY3NiwxOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9u
SUQsCiAgICAgcmVxdWVzdC0+ZGVueSgpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVz
dFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0
X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIGJvb2wgYXVkaW8sIGJvb2wgdmlk
ZW8pCit7CisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpOworICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUpOworCisgICAgUmVmUHRyPFdlYlNlY3Vy
aXR5T3JpZ2luPiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyKG9yaWdpbklkZW50aWZpZXIpKTsKKyAg
ICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gcmVxdWVzdCA9IG1fdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNyZWF0ZVJlcXVlc3QodXNlck1lZGlhSUQs
IGF1ZGlvLCB2aWRlbyk7CisKKyAgICBpZiAoIW1fdWlDbGllbnQtPmRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHRoaXMsIGZyYW1lLCBvcmlnaW4uZ2V0KCksIHJlcXVl
c3QuZ2V0KCkpKQorICAgICAgICByZXF1ZXN0LT5kZW55KCk7Cit9CisKIHZvaWQgV2ViUGFnZVBy
b3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNv
bnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogewogICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChy
ZXF1ZXN0SUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDEw
MjljNWYuLmU1ZGUxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1h
cC5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgi
CiAjaW5jbHVkZSAiVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIgogI2luY2x1ZGUgIldL
QmFzZS5oIgogI2luY2x1ZGUgIldLUGFnZVByaXZhdGUuaCIKQEAgLTEyNCw2ICsxMjUsNyBAQCBj
bGFzcyBEcmFnRGF0YTsKIGNsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBj
bGFzcyBJbnRTaXplOworY2xhc3MgTWVkaWFDb25zdHJhaW50c0ltcGw7CiBjbGFzcyBQcm90ZWN0
aW9uU3BhY2U7CiBjbGFzcyBSdW5Mb29wT2JzZXJ2ZXI7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CkBA
IC0xMDMyLDYgKzEwMzQsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1
b3RhKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2
NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBj
dXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgUGFzc1JlZlB0cjxN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBs
eT4pOwogICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBT
dHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3Qg
dG90YWxCeXRlc05lZWRlZCwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFj
aGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOjpEZWxheWVkUmVwbHk+KTsKICAgICB2b2lk
IHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlv
bklELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CisKKyAgICB2
b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlh
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBib29sIGF1ZGlv
LCBib29sIHZpZGVvKTsKKwogICAgIHZvaWQgcnVuTW9kYWwoKTsKICAgICB2b2lkIG5vdGlmeVNj
cm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAg
IHZvaWQgcmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxl
KTsKQEAgLTEzNjgsNiArMTM3Myw4IEBAIHByaXZhdGU6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyOwogICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fbm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogCisgICAgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI7CisKICAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlOwogICAgIGJv
b2wgbV92aWV3V2FzRXZlckluV2luZG93OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0YTZmZDU3Li5lOGE1YmViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
QEAgLTI1Niw2ICsyNTYsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIEdl
b2xvY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZy
YW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmln
aW5JZGVudGlmaWVyKQogICAgIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgIyBNZWRp
YVN0ZWFtIG1lc3NhZ2VzCisgICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50
aWZpZXIsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pCisjZW5kaWYKKwogICAgICMgTm90aWZpY2F0
aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3Qg
cmVxdWVzdElELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICBTaG93Tm90aWZpY2F0aW9u
KFN0cmluZyB0aXRsZSwgU3RyaW5nIGJvZHksIFN0cmluZyBpY29uVVJMLCBTdHJpbmcgdGFnLCBT
dHJpbmcgbGFuZywgU3RyaW5nIGRpciwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90
IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGQwYTkyZjkuLjAzMmU4MDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc4OSw2ICs3ODks
MTQgQEAKIAkJM0Y4ODlEMTQxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDNGODg5RDEyMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkubW0gKi87IH07CiAJCTNGODg5RDE1MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDNGODg5RDEzMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaCAqLzsgfTsKIAkJM0Y4ODlEMTcxODg3ODU5MzAwRkVBREFGIC8qIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzRjg4OUQwRDE4ODc2OTlDMDBGRUFEQUYgLyogV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5tbSAqLzsgfTsKKwkJNEEzQ0MxOEExOUIwNjNFNzAwRDE0QUVGIC8qIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM5MTlBRjdCMDQwMDJFQkFCNSAv
KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJCTRB
M0NDMThCMTlCMDY0MEYwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEE0MTBGM0ExOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmggKi87IH07CisJCTRBM0NDMThDMTlCMDY0MTUwMEQxNEFFRiAvKiBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNCMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCAqLzsgfTsKKwkJNEEzQ0MxOEQxOUIwNjQxOTAwRDE0
QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNDMTlBRjdCMDQwMDJFQkFCNSAv
KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi87IH07CisJCTRBM0NDMThFMTlC
MDdCODUwMEQxNEFFRiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM1MTlBRjdBQzMw
MDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLzsgfTsKKwkJNEEz
Q0MxOEYxOUIwN0I4QTAwRDE0QUVGIC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM2MTlB
RjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNEE0MTBGNDQxOUFGN0Iy
NzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0MjE5QUY3QjI3
MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCAqLzsgfTsK
KwkJNEE0MTBGNEExOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0ODE5QUY3
QjgwMDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAqLzsgfTsKIAkJNEY2MDE0MzIx
NTVDNUFBMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAv
KiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi87IH07CiAJCTUxMDIxRTlDMTJCMTY3ODgwMDVDMDMz
QyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250
ZXh0TWVudUNsaWVudE1hYy5tbSAqLzsgfTsKIAkJNTEwMjc0MzIxOTgxQUY4RTAwODE2NUVEIC8q
IFdLT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5h
Z2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTI4MDMsNiArMjgxMSwxNiBAQAogCQkzRjg4OUQxMjE4ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOyBwYXRoID0gaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJM0Y4ODlEMTMxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4ODlEMTYxODg3N0Ey
NDAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHBhdGggPSBp
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzNTE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNEE0MTBGMzYxOUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQx
MEYzOTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0QTQxMEYzQTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNEE0MTBGM0IxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTRBNDEwRjNDMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NEE0MTBGNDIxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0QTQxMEY0MzE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQx
MEY0ODE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVzZXJNZWRpYUNsaWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjQ5MTlBRjdCODAwMDJFQkFCNSAvKiBXZWJV
c2VyTWVkaWFDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVXNl
ck1lZGlhQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGNjAxNDMwMTU1
QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEJsb2NraW5nUmVzcG9uc2VNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGli
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGls
ZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gU2VjSXRlbVNoaW0u
ZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMDIxRTlCMTJC
MTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE0Nyw2ICs1MTY1LDE1IEBACiAJCQlwYXRo
ID0gQ29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk0QTQxMEY0MTE5
QUY3QjI3MDAyRUJBQjUgLyogTWVkaWFTdHJlYW0gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjQyMTlBRjdCMjcwMDJFQkFCNSAvKiBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICovLAorCQkJCTRBNDEwRjQzMTlBRjdCMjcw
MDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLywKKwkJCSk7
CisJCQlwYXRoID0gTWVkaWFTdHJlYW07CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OwogCQk1MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC01NjA1LDYgKzU2MzIsNyBAQAogCQlCQzAz
MkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGNDExOUFGN0IyNzAwMkVCQUI1IC8qIE1l
ZGlhU3RyZWFtICovLAogCQkJCTUxMkUzNTJBMTMwQjU1OTkwMEFCRDE5QSAvKiBBcHBsaWNhdGlv
bkNhY2hlICovLAogCQkJCTdDNkU3MEY4MThCMkQ0N0UwMEYyNEUyRSAvKiBjb2NvYSAqLywKIAkJ
CQkzMzA5MzQ0QjEzMTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAqLywKQEAgLTU2NDIsNiArNTY3
MCw4IEBACiAJCUJDMDMyRDVEMTBGNDM3MjIwMDU4QzE1QSAvKiBXZWJDb3JlU3VwcG9ydCAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGNDgxOUFG
N0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgKi8sCisJCQkJNEE0MTBGNDkx
OUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5oICovLAogCQkJCTJEMjhGM0RG
MTg4NUNDQjQwMDRCOUVBRSAvKiBpb3MgKi8sCiAJCQkJQkMxMTFBREUxMTJGNUI5QTAwMzM3QkFC
IC8qIG1hYyAqLywKIAkJCQkxQTcyODQ0NDE5NTlFRDEwMDAwN0JDRTUgLyogU2Vzc2lvblN0YXRl
Q29udmVyc2lvbi5jcHAgKi8sCkBAIC01NzQ2LDYgKzU3NzYsMTAgQEAKIAkJQkMwMzJEQzMxMEY0
MzgyNjAwNThDMTVBIC8qIFVJUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGMzkxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQk0QTQxMEYzQTE5QUY3QjA0
MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLywK
KwkJCQk0QTQxMEYzQjE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5jcHAgKi8sCisJCQkJNEE0MTBGM0MxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAqLywKIAkJCQkyREE5NDRBODE4ODRFOUFCMDBFRDg2
REIgLyogaW9zICovLAogCQkJCUJDMDMyREM0MTBGNDM4N0MwMDU4QzE1QSAvKiBBUEkgKi8sCiAJ
CQkJNTEyRjU4OEQxMkE4ODM2RjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uICovLApAQCAtNTkx
Niw2ICs1OTUwLDggQEAKIAkJQkMwQzM3NjYxMEY4MDc2NjAwNzZEN0NCIC8qIEMgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjM1MTlBRjdBQzMw
MDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk0QTQx
MEYzNjE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oICov
LAogCQkJCTUxMjNDRjE4MTMzRDI1RTYwMDU2RjgwMCAvKiBjZyAqLywKIAkJCQk2RUU4NDlDNDEz
NjhEOTA0MDAzOEQ0ODEgLyogbWFjICovLAogCQkJCUJDQjYzNDc3MTE2QkYxMDYwMDYwMzIxNSAv
KiBXZWJLaXQyX0MuaCAqLywKQEAgLTcxNDQsNiArNzE4MCw3IEBACiAJCQkJMUFBNDFBQjUxMkMw
MkVDNDAwMkJFNjdCIC8qIEVkaXRvclN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUIxNUE4
NTEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBN0M2Q0RCMTM3ODk1MDgwMEI5QzA0RCAvKiBFbnZpcm9ubWVudFZhcmlhYmxlcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNEEzQ0MxOEYxOUIwN0I4QTAwRDE0QUVGIC8qIFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTU3NUZCMTQ5NkI1
MjYwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOTBD
MUY0MTI2NEZENzEwMDNFNDRENCAvKiBGaW5kQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE5MTAwNzExMjY2NzVDNDAwMTg0MkY1IC8qIEZpbmRJbmRpY2F0b3IuaCBpbiBIZWFkZXJz
ICovLApAQCAtNzU1Myw2ICs3NTkwLDcgQEAKIAkJCQk1MTgzNTNEQjE4ODVCRjhDMDBEOUZFNDQg
LyogSURCU2VyaWFsaXphdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFERjU5MUIxODkwNTI4
RTAwNDNDMTQ1IC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDNTc0NEYwMTI2MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1cEl0ZW0uaCBpbiBIZWFkZXJzICov
LAorCQkJCTRBM0NDMThEMTlCMDY0MTkwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0I5NDg0NzExRkY0QjY1MDAwMzJCMzkg
LyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU3NEU2MzEyNjdEMDgwMDA2
RjBGMTIgLyogV2ViUG9wdXBNZW51UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDOEVCMTE3
MThEQjZBMTkwMDc5MTdDMiAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC03NTgwLDYgKzc2MTgsNyBAQAogCQkJCTM3NjA4ODFGMTUwNDEzRTkwMEZDODJDNyAvKiBX
ZWJSZW5kZXJPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjE3NDY1MTY0QzIxMzcwMDM3
QTVDMSAvKiBXZWJSZXNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMzNjc2MzAx
MzBDOTk5ODAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0QTNDQzE4QjE5QjA2NDBGMDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQUYwODlCMTkyNjdFRTUw
MEI2MzkwQyAvKiBXS1VzZXJTY3JpcHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzMzY3NjU2MTMw
QzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmgg
aW4gSGVhZGVycyAqLywKQEAgLTg2NTQsNyArODY5Myw5IEBACiAJCQlpc2EgPSBQQlhTb3VyY2Vz
QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9
ICgKKwkJCQk0QTQxMEY0NDE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUQyNEExMTZDQzNCOUUwMDdE
NTQ2MSAvKiBDaGlsZFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNEE0MTBGNEEx
OUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTkwNDUsNiArOTA4Niw3IEBACiAJCQkJMUEwRjI5RTMxMjBCNDQ0MjAwNTNEMUI5IC8qIFZp
c2l0ZWRMaW5rUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFERjYzMTIxOEUwQjdD
ODAwM0EzRTJBIC8qIERvd25sb2FkQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRjI5
Q0IxMjBCMzcxNjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rVGFibGUuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNEEzQ0MxOEExOUIwNjNFNzAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzEzMzdGMTg1OTBBRTQw
MEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNF
REExMkUyMTUyQ0QxQUUwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTEyRTM1MkUxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTE2Nyw2ICs5MjA5LDcgQEAK
IAkJCQk1MTgzNDU5MjEzNDUzMkU5MDA5MkI2OTYgLyogV2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxRDAyRjY0MTMyRUM1QjkwMEJFQUE5NiAvKiBXZWJJY29u
RGF0YWJhc2VNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU3MTkzQkUx
OEMxNEE0NDAwMkQwRjEyIC8qIFdLRm9ybVNlbGVjdENvbnRyb2wubW0gaW4gU291cmNlcyAqLywK
KwkJCQk0QTNDQzE4RTE5QjA3Qjg1MDBEMTRBRUYgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRERGNzMxNjE4RTk1MDYwMDA0RjVBNjYgLyog
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTExQjI0QTYxMzJFMDk1NzAwMDY1QTBDIC8qIFdlYkljb25EYXRhYmFzZVByb3h5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxRDAyRjZCMTMyRUM3MzcwMEJFQUE5NiAvKiBXZWJJY29uRGF0YWJh
c2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTkzMjksNiArOTM3
Miw3IEBACiAJCQkJQkM0MDc2MjgxMjRGRjA0MDAwNjhGMjBBIC8qIFdLQ2VydGlmaWNhdGVJbmZv
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE1RTc3MjcxODNERDZGNjAwMDcyMDNGIC8qIEFz
eW5jUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0EyODRENjE0OTJGMkM3MDAxRjkw
NDIgLyogV0tDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNEEzQ0MxOEMxOUIwNjQx
NTAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEYwQzM2NTgxOEMwNTFCQTAwRjYwN0Q3IC8qIFJlbW90ZUxheWVyVHJlZUhv
c3RJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjBDMzY1QzE4QzA1Q0ExMDBGNjA3RDcgLyog
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUJDNEE2Mjk2MTQ3MzEzQTAwMDZDNjgxQSAvKiBXS0Nvbm5lY3Rpb25SZWYuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFt
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTZkODFlOAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwg
d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRl
ICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
Kworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUmVxdWVzdElEKCkKK3sKKyAgICBzdGF0aWMgdWlu
dDY0X3QgdW5pcXVlUmVxdWVzdElEID0gMTsKKyAgICByZXR1cm4gdW5pcXVlUmVxdWVzdElEKys7
Cit9CisKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sK
K30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVz
dChQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHBycFJlcXVlc3QpCit7CisgICAgUmVmUHRy
PFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QocHJwUmVxdWVzdCk7CisgICAgRnJhbWUqIGZyYW1l
ID0gcmVxdWVzdC0+ZnJhbWUoKTsKKyAgICBBU1NFUlQoZnJhbWUpOworICAgIGlmICghZnJhbWUp
IHsKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJ
RCgpOworICAgIG1faWRUb1JlcXVlc3RNYXAuc2V0KHJlcXVlc3RJRCwgcmVxdWVzdCk7CisgICAg
bV9yZXF1ZXN0VG9JRE1hcC5zZXQocmVxdWVzdCwgcmVxdWVzdElEKTsKKworICAgIFdlYkZyYW1l
KiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgQVNTRVJU
KHdlYkZyYW1lKTsKKworICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSByZXF1ZXN0LT5zZWN1
cml0eU9yaWdpbigpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJl
cXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUocmVxdWVzdElELCB3ZWJGcmFtZS0+ZnJh
bWVJRCgpLCBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpLCByZXF1ZXN0LT5yZXF1aXJlc0F1
ZGlvKCksIHJlcXVlc3QtPnJlcXVpcmVzVmlkZW8oKSkpOworfQorCit2b2lkIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0KiBy
ZXF1ZXN0KQoreworICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9IG1fcmVxdWVzdFRvSURNYXAudGFr
ZShyZXF1ZXN0KTsKKyAgICBpZiAoIXJlcXVlc3RJRCkKKyAgICAgICAgcmV0dXJuOworICAgIG1f
aWRUb1JlcXVlc3RNYXAucmVtb3ZlKHJlcXVlc3RJRCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lz
aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBhbGxvd2VkKQoreworICAgIFJlZlB0cjxVc2Vy
TWVkaWFSZXF1ZXN0PiByZXF1ZXN0ID0gbV9pZFRvUmVxdWVzdE1hcC50YWtlKHJlcXVlc3RJRCk7
CisgICAgaWYgKCFyZXF1ZXN0KQorICAgICAgICByZXR1cm47CisgICAgbV9yZXF1ZXN0VG9JRE1h
cC5yZW1vdmUocmVxdWVzdCk7CisKKyAgICBpZiAoYWxsb3dlZCkKKyAgICAgICAgcmVxdWVzdC0+
dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgIGVsc2UKKyAgICAgICAgcmVxdWVzdC0+dXNl
ck1lZGlhQWNjZXNzRGVuaWVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0
MzY5MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlh
U3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC0wLDAgKzEsNTgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEw
LTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyX2gKKyNkZWZpbmUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYVJlcXVl
c3QuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgVXNlck1lZGlhUmVxdWVzdDsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UmKTsKKworICAgIHZvaWQgc3RhcnRSZXF1ZXN0
KFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4pOworICAgIHZvaWQgY2FuY2Vs
UmVxdWVzdChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Kik7CisKKyAgICB2b2lkIGRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wg
YWxsb3dlZCk7CisKK3ByaXZhdGU6CisgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQ
dHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4+IElEVG9SZXF1ZXN0TWFwOworICAgIHR5cGVk
ZWYgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4sIHVpbnQ2NF90PiBS
ZXF1ZXN0VG9JRE1hcDsKKyAgICBJRFRvUmVxdWVzdE1hcCBtX2lkVG9SZXF1ZXN0TWFwOworICAg
IFJlcXVlc3RUb0lETWFwIG1fcmVxdWVzdFRvSURNYXA7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNlbmRpZiAvLyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJV
c2VyTWVkaWFDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmIyNzNjOGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKQEAgLTAsMCArMSw1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlVzZXJN
ZWRpYUNsaWVudC5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlVz
ZXJNZWRpYUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFSZXF1ZXN0LmgiCisjaW5j
bHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlVz
ZXJNZWRpYUNsaWVudDo6V2ViVXNlck1lZGlhQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBt
X3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95
ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6
cmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0KQor
eworICAgIG1fcGFnZS51c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5zdGFydFJl
cXVlc3QocmVxdWVzdCk7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1
ZXN0KFVzZXJNZWRpYVJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgbV9wYWdlLnVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmNhbmNlbFJlcXVlc3QocmVxdWVzdCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdDsKKworI2VuZGlmIC8vIE1FRElBX1NUUkVBTQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ0NTlh
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdy
aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8K
KworI2lmbmRlZiBXZWJVc2VyTWVkaWFDbGllbnRfaAorI2RlZmluZSBXZWJVc2VyTWVkaWFDbGll
bnRfaAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJN
ZWRpYUNsaWVudC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViVXNlck1lZGlhQ2xpZW50IDogcHVi
bGljIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudCB7CitwdWJsaWM6CisgICAgV2ViVXNlck1lZGlh
Q2xpZW50KFdlYlBhZ2UmKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ry
b3llZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFdl
YkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+KTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVz
dChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Kik7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjZW5kaWYgLy8gV2ViVXNlck1lZGlhQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA2ZWE3NmFjLi4zMDE3MGQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05
OCw2ICs5OCw3IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiV2ViVW5kb1N0ZXAuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcmNoaXZlUmVzb3VyY2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgpAQCAtMjg1LDYgKzI4Niw5IEBAIFdlYlBhZ2U6Oldl
YlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzKQogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICAsIG1fZ2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIodGhpcykKICNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykK
KyNlbmRpZgogICAgICwgbV9jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwocGFyYW1ldGVy
cy5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpCiAgICAgLCBtX2NhblJ1bk1vZGFsKHBh
cmFtZXRlcnMuY2FuUnVuTW9kYWwpCiAgICAgLCBtX2lzUnVubmluZ01vZGFsKGZhbHNlKQpAQCAt
MzkyLDYgKzM5Niw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShQUk9YSU1J
VFlfRVZFTlRTKQogICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VQcm94aW1pdHlUbyhtX3BhZ2Uu
Z2V0KCksIG5ldyBXZWJEZXZpY2VQcm94aW1pdHlDbGllbnQodGhpcykpOwogI2VuZGlmCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJDb3JlOjpwcm92aWRlVXNlck1lZGlhVG8obV9w
YWdlLmdldCgpLCBuZXcgV2ViVXNlck1lZGlhQ2xpZW50KCp0aGlzKSk7CisjZW5kaWYKIAogI2lm
IEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgIG1fcGFnZS0+c2V0UmVtb3RlSW5zcGVjdGlv
bkFsbG93ZWQodHJ1ZSk7CkBAIC0zMjcyLDYgKzMyNzksMTMgQEAgdm9pZCBXZWJQYWdlOjpkaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklELAogICAgIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5kaWRSZWNl
aXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKG5vdGlmaWNhdGlvbklELCBhbGxvd2Vk
KTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wg
YWxsb3dlZCkKK3sKKyAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5kaWRS
ZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkKTsK
K30KKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKElPUykKIHZvaWQgV2ViUGFnZTo6YWR2YW5jZVRv
TmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBjYTQ2YmEwYS4uMTEzNzEy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00
NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVu
c2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGF0aW9u
QWx0ZXJuYXRpdmUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9FZGl0b3IuaD4KQEAgLTQ1MCw2ICs0NTEsMTAgQEAgcHVibGljOgogICAgIEdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyJiBnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcigpIHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXImIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cigpIHsgcmV0dXJuIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CisjZW5k
aWYKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgc2NyZWVuU2l6
ZSgpIGNvbnN0OwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBhdmFpbGFibGVTY3JlZW5TaXplKCkg
Y29uc3Q7CkBAIC0xMDIyLDYgKzEwMjcsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkUmVj
ZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25J
RCwgYm9vbCBhbGxvd2VkKTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdm9pZCBk
aWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCBib29sIGFsbG93ZWQpOworI2VuZGlmCisKICAgICB2b2lkIGFkdmFuY2VUb05leHRNaXNzcGVs
bGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKTsKICAgICB2b2lkIGNoYW5nZVNwZWxsaW5n
VG9Xb3JkKGNvbnN0IFN0cmluZyYgd29yZCk7CiAjaWYgVVNFKEFQUEtJVCkKQEAgLTExODcsNiAr
MTE5NiwxMCBAQCBwcml2YXRlOgogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworI2VuZGlmCisKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UHJpbnRDb250ZXh0PiBtX3ByaW50Q29udGV4dDsKICNp
ZiBQTEFURk9STShHVEspCiAgICAgUmVmUHRyPFdlYlByaW50T3BlcmF0aW9uR3RrPiBtX3ByaW50
T3BlcmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBlOTkyNTRiLi4wZDZkNGRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpA
QCAtMjY1LDYgKzI2NSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBEaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2Vv
bG9jYXRpb25JRCwgYm9vbCBhbGxvd2VkKQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorICAgICMgTWVkaWFTdGVhbQorICAgIERpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9u
RGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCkKKyNlbmRpZgorCiAg
ICAgIyBOb3RpZmljYXRpb24KICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRl
Y2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4YjJkZGMyLi41ZmZk
OWZhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDggQEAKKzIwMTQtMDktMDEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbGUgQVBJIHRl
c3QgZm9yIHRoZSBVc2VyTWVkaWEgcGVybWlzc2lvbiByZXF1ZXN0IEFQSS4gVGhlCisgICAgICAg
IHJlcXVpcmVkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgaXMgYWxzbyBhZGRlZCwgaW5zcGlyZWQgYnkg
dGhlCisgICAgICAgIEdlb2xvY2F0aW9uIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE5ldyBB
UEkgdGVzdCBmb3IgVXNlck1lZGlhCisgICAgICAgIFBlcm1pc3Npb24gcmVxdWVzdC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcDogQWRkZWQuCisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdENhbGxCYWNrKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbDogQWRkZWQu
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbDogbmV3CisgICAgICAgIGhlbHBlciBtZXRob2QgdG8gc2V0IHRoZSBwZXJtaXNz
aW9uIHJlcXVlc3QgcmVzdWx0IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDogRGl0dG8u
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
Lmg6IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHA6IERpdHRvLgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRVc2VyTWVk
aWFQZXJtaXNzaW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaDogRGl0dG8uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0KTogUGVybWlzc2lvbgorICAgICAgICByZXF1ZXN0IGhhbmRsZXIuCisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UpOiBFbmFibGUgdGhlIG5l
dyBVc2VyTWVkaWEKKyAgICAgICAgcGVybWlzc2lvbiByZXF1ZXN0IGhhbmRsZXIuCisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMpOiBEaXR0by4K
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3Rl
bnRWYWx1ZXMpOiBFbmFibGUKKyAgICAgICAgTWVkaWFTdHJlYW0gc3VwcG9ydCwgdGhpcyBpcyBu
ZWVkZWQgZm9yIGdldFVzZXJNZWRpYS4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJl
c2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOiBjbGVhcgorICAgICAgICBVc2VyTWVkaWEgcGVy
bWlzc2lvbnMgbGlzdCBhbmQgZmxhZ3MuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpz
ZXRVc2VyTWVkaWFQZXJtaXNzaW9uKTogU2V0IHBlcm1pc3Npb24KKyAgICAgICAgcmVxdWVzdCBy
ZXN1bHQgYW5kIGRpc3RwYXRjaCBpdC4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6Omhh
bmRsZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTogU2F2ZQorICAgICAgICByZXF1ZXN0IGFu
ZCBkaXNwYXRjaCBpdC4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSk6CisgICAgICAgIERpc3Bh
dGNoIGNhY2hlZCBwZXJtaXNzaW9uIHJlcXVlc3RzLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxNC0wOC0yOCAgUGhpbGlwcGUgTm9ybWFuZCAg
PHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gdGVzdCBjYXNlIGZpbHRlciBz
dXBwb3J0IGluIHJ1bi1ndGstdGVzdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
UGxhdGZvcm1HVEsuY21ha2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtl
CmluZGV4IDI4ZGE1ZmQuLmEzNzliZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
UGxhdGZvcm1HVEsuY21ha2UKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5j
bWFrZQpAQCAtOTcsNiArOTcsNyBAQCBhZGRfZXhlY3V0YWJsZShUZXN0V2ViS2l0MgogICAgICR7
VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvUmVzaXplV2luZG93QWZ0ZXJDcmFzaC5j
cHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1Jlc3RvcmVTZXNzaW9u
U3RhdGVDb250YWluaW5nRm9ybURhdGEuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVz
dHMvV2ViS2l0Mi9TaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKKyAgICAke1RFU1RX
RUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKICAgICAke1RFU1RXRUJL
SVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1VzZXJNZXNzYWdlLmNwcAogICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAKICAgICAke1RF
U1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1dLUGFnZUdldFNjYWxlRmFjdG9yTm90WmVy
by5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzU5ODBjOC4uMTUwMmMzNSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTg4LDYgKzg4LDcgQEAKIAkJMzdFMTA2NEQxNjk3NkM4NTAw
Qjc4QkQwIC8qIERPTUhUTUxUYWJsZUNlbGxDZWxsQWJvdmUubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0UxMDY0QTE2OTc2NzY0MDBCNzhCRDAgLyog
RE9NSFRNTFRhYmxlQ2VsbENlbGxBYm92ZS5tbSAqLzsgfTsKIAkJMzdFMzhDMzQxNjlCN0QwMTAw
ODRDMjhDIC8qIFdlYlZpZXdEaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0UzOEMzMzE2OUI3RDAxMDA4
NEMyOEMgLyogV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbSAqLzsgfTsKIAkJ
NDQwQTFEMzkxNEEwMTAzQTAwOEE2NkYyIC8qIFVSTC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogVVJM
LmNwcCAqLzsgfTsKKwkJNEE0MTBGNEMxOUFGN0JENjAwMkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0QjE5
QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCAqLzsgfTsKIAkJNEJCNDE2MDIxNjgxNUIy
NjAwODI0MjM4IC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZyYW1lLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJCNDE2MDExNjgxNUIyNjAwODI0MjM4
IC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZyYW1lLm1tICovOyB9OwogCQk0QkI0MTYwNDE2ODE1
RjkxMDA4MjQyMzggLyogRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJCNDE2MDMxNjgxNUY5MTAwODI0MjM4
IC8qIEVsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5tbSAqLzsgfTsKIAkJNEJGREZGQTcxMzE0Nzc2
QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QkZERkZBNjEzMTQ3NzZDMDA2
MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCAqLzsgfTsKQEAgLTQz
Niw2ICs0MzcsOCBAQAogCQkzN0UzOEMzMzE2OUI3RDAxMDA4NEMyOEMgLyogV2ViVmlld0RpZFJl
bW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdlYlZpZXdEaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MEExRDM4MTRBMDEwM0EwMDhBNjZGMiAvKiBVUkwuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVJMLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRBNjIyQzExNEEwRTJCNjAwNDg1MTVCIC8qIFdURlN0cmlu
Z1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZTdHJpbmdV
dGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGNEIxOUFGN0JE
NjAwMkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBVc2VyTWVkaWEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQx
MEY0RDE5QUY3QkVGMDAyRUJBQjUgLyogZ2V0VXNlck1lZGlhLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSBnZXRVc2VyTWVkaWEuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNEJCNDE2MDExNjgxNUIyNjAwODI0MjM4IC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZy
YW1lLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSlNXcmFwcGVy
Rm9yTm9kZUluV2ViRnJhbWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCQjQx
NjAzMTY4MTVGOTEwMDgyNDIzOCAvKiBFbGVtZW50QXRQb2ludEluV2ViRnJhbWUubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFbGVtZW50QXRQb2ludEluV2ViRnJh
bWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCRkRGRkE2MTMxNDc3NkMwMDYx
RjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgyMSw2ICs4MjQsNyBAQAogCQlCQzkw
OTY0MTEyNTU2MTYwMDAwODM3NTYgLyogV2ViS2l0MiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGNEIxOUFGN0JENjAwMkVCQUI1IC8qIFVzZXJN
ZWRpYS5jcHAgKi8sCiAJCQkJQzBDNUQzQkIxNDU5OEI2RjAwQTgwMkE2IC8qIG1hYyAqLywKIAkJ
CQlCQzkwOTc3QjEyNTU3MUFFMDAwODM3NTYgLyogUmVzb3VyY2VzICovLAogCQkJCUJDMjQ2RDhD
MTMyRjExNUEwMEI1NkQ3QyAvKiBBYm91dEJsYW5rTG9hZC5jcHAgKi8sCkBAIC05NTQsNiArOTU4
LDcgQEAKIAkJQkM5MDk3N0IxMjU1NzFBRTAwMDgzNzU2IC8qIFJlc291cmNlcyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGNEQxOUFGN0JFRjAw
MkVCQUI1IC8qIGdldFVzZXJNZWRpYS5odG1sICovLAogCQkJCUMwNDVGOTQ2MTM4NUMyRjgwMEMw
RjNDRCAvKiAxOC1jaGFyYWN0ZXJzLmh0bWwgKi8sCiAJCQkJRjZCN0JFOTYxNzQ2OUI3RTAwOEEz
NDQ1IC8qIGFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzLmh0bWwgKi8sCiAJCQkJNzZFMTgyREUxNTQ3
NUE4MzAwRjFGQUREIC8qIGF1dG8tc3VibWl0dGluZy1mb3JtLmh0bWwgKi8sCkBAIC0xMzU3LDYg
KzEzNjIsNyBAQAogCQkJCTUxRkNGNzlBMTUzNEFDNkQwMDEwNDQ5MSAvKiBTaG91bGRHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUZERTY1NjE5NTNCMkMw
MDBDNDhGRkEgLyogT3B0aW9uYWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU0MEY3NzYxNTJF
NERBMDAwQTQwQzhDIC8qIFNpbXBsaWZ5TWFya3VwLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNEE0
MTBGNEMxOUFGN0JENjAwMkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDMDJCNzdGMjEyNjYxMjE0MDAyNkJGMEYgLyogU3BhY2ViYXJTY3JvbGxpbmcuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTNEM0QxOUUxN0IxQTg0MjAwQzdDNDE1IC8qIExheW91dE1pbGVzdG9u
ZXNXaXRoQWxsQ29udGVudEluRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE5NEUxQkIx
NzdFNTE0NTAwOUM0RDRFIC8qIFN0b3BMb2FkaW5nRnJvbURpZFJlY2VpdmVSZXNwb25zZS5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL1VzZXJNZWRpYS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNl
ck1lZGlhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGY0NzkyCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJN
ZWRpYS5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m
dHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0
aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSAiVGVzdC5oIgor
I2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2lu
Y2x1ZGUgPHZlY3Rvcj4KKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCBkb25lOworCit2b2lkIGRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbEJhY2soV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVS
ZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQor
eworICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhwZXJtaXNzaW9uUmVxdWVz
dCk7CisgICAgZG9uZSA9IHRydWU7Cit9CisKK1RFU1QoV2ViS2l0MiwgVXNlck1lZGlhQmFzaWMp
Cit7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0KEFkb3B0V0ssIFdLQ29u
dGV4dENyZWF0ZSgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgp
KTsKKyAgICBXS1BhZ2VVSUNsaWVudFY1IHVpQ2xpZW50OworICAgIG1lbXNldCgmdWlDbGllbnQs
IDAsIHNpemVvZih1aUNsaWVudCkpOworCisgICAgdWlDbGllbnQuYmFzZS52ZXJzaW9uID0gNTsK
KyAgICB1aUNsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCA9
IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbEJhY2s7CisKKyAg
ICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsK
KworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwoQWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJM
Rm9yUmVzb3VyY2UoImdldFVzZXJNZWRpYSIsICJodG1sIikpOworCisgICAgZG9uZSA9IGZhbHNl
OworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CisKKyAgICBV
dGlsOjpydW4oJmRvbmUpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRpYS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRpYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmU1NGY4NTMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPHNj
cmlwdD4KK2Z1bmN0aW9uIGdvdFVzZXJNZWRpYShtZWRpYVN0cmVhbSkKK3sKKyAgICBjb25zb2xl
LmxvZygiR290IHVzZXIgbWVkaWEiKTsKK30KKworZnVuY3Rpb24gdXNlck1lZGlhRXJyb3IoZXJy
b3IpCit7CisgICAgY29uc29sZS5sb2coZXJyb3IpOworfQorCit2YXIgb3B0aW9ucyA9IHsgYXVk
aW86IGZhbHNlLCB2aWRlbzogdHJ1ZX07CituYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9w
dGlvbnMsIGdvdFVzZXJNZWRpYSwgdXNlck1lZGlhRXJyb3IpOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbAppbmRleCBiYjlhN2EwLi4wOGExODk4IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwKQEAgLTE2OSw2ICsxNjksOSBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAg
ICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJs
ZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25h
bCBvYmplY3QgYWx0aXR1ZGUsIG9wdGlvbmFsIG9iamVjdCBhbHRpdHVkZUFjY3VyYWN5LCBvcHRp
b25hbCBvYmplY3QgaGVhZGluZywgb3B0aW9uYWwgb2JqZWN0IHNwZWVkKTsKICAgICB2b2lkIHNl
dE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihET01TdHJpbmcgZXJyb3JN
ZXNzYWdlKTsKIAorICAgIC8vIE1lZGlhU3RyZWFtCisgICAgdm9pZCBzZXRVc2VyTWVkaWFQZXJt
aXNzaW9uKGJvb2xlYW4gdmFsdWUpOworCiAgICAgLy8gQXVkaW8gdGVzdGluZy4KICAgICBbUGFz
c0NvbnRleHRdIHZvaWQgc2V0QXVkaW9SZXN1bHQob2JqZWN0IGRhdGEpOwogCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
Y3BwCmluZGV4IDdiMWRlNzAuLjFiNmViZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC00NTgsNiAr
NDU4LDEzIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9u
VW5hdmFpbGFibGVFcnJvcihXS1N0cmluZ1JlZiBlcnJvCiAgICAgV0tCdW5kbGVQb3N0TWVzc2Fn
ZShtX2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0KCksIGVycm9yTWVzc2FnZSk7CiB9CiAKK3ZvaWQg
SW5qZWN0ZWRCdW5kbGU6OnNldFVzZXJNZWRpYVBlcm1pc3Npb24oYm9vbCBlbmFibGVkKQorewor
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0VXNlck1lZGlhUGVybWlzc2lvbiIpKTsKKyAgICBX
S1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLQm9vbGVhbkNy
ZWF0ZShlbmFibGVkKSk7CisgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShtX2J1bmRsZSwgbWVzc2Fn
ZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKK30KKwogdm9pZCBJbmplY3RlZEJ1bmRs
ZTo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFibGVkLCBib29sIHBlcm1pc3NpdmUp
CiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSIpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuaAppbmRleCA5Zjc2YTlkLi44ZjBhODQwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC05Miw2
ICs5Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRv
dWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHBy
b3ZpZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNj
dXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91
YmxlIGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkKTsKICAgICB2b2lk
IHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihXS1N0cmluZ1JlZiBl
cnJvck1lc3NhZ2UpOwogCisgICAgLy8gTWVkaWFTdHJlYW0uCisgICAgdm9pZCBzZXRVc2VyTWVk
aWFQZXJtaXNzaW9uKGJvb2wpOworCiAgICAgLy8gUG9saWN5IGRlbGVnYXRlLgogICAgIHZvaWQg
c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFibGVkLCBib29sIHBlcm1pc3NpdmUpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAppbmRleCBkMDg1ZjFhLi5kNzUxYjk1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTcyMCw2ICs3MjAs
MTIgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxh
YmxlRXJyb3IoSlNTdHJpbmdSZWYgbWVzc2FnZSkKICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVk
KCkuc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKG1lc3NhZ2VXSy5n
ZXQoKSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0VXNlck1lZGlhUGVybWlzc2lvbihib29s
IGVuYWJsZWQpCit7CisgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIGJlIGRvbmUgYnkgZnJhbWUu
CisgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnNldFVzZXJNZWRpYVBlcm1pc3Npb24oZW5h
YmxlZCk7Cit9CisKIGJvb2wgVGVzdFJ1bm5lcjo6Y2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCkK
IHsKICAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5G
cmFtZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCkpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCBl
MjFmZmYzLi4zOTRlOTA4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMjUyLDYgKzI1Miw5IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxv
bmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBKU1ZhbHVlUmVmIGFsdGl0dWRlLCBKU1ZhbHVlUmVm
IGFsdGl0dWRlQWNjdXJhY3ksIEpTVmFsdWVSZWYgaGVhZGluZywgSlNWYWx1ZVJlZiBzcGVlZCk7
CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoSlNT
dHJpbmdSZWYgbWVzc2FnZSk7CiAKKyAgICAvLyBNZWRpYVN0cmVhbQorICAgIHZvaWQgc2V0VXNl
ck1lZGlhUGVybWlzc2lvbihib29sKTsKKwogICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHkoSlNT
dHJpbmdSZWYgc3RhdGUpOwogICAgIHZvaWQgcmVzZXRQYWdlVmlzaWJpbGl0eSgpOwogCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGJlOGYxZjcuLmM0YWZl
MjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xODgs
NiArMTg4LDExIEBAIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXCiAgICAgVGVzdENvbnRyb2xsZXI6
OnNoYXJlZCgpLmhhbmRsZUdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QocGVybWlzc2lvblJl
cXVlc3QpOwogfQogCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCit7CisgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLmhhbmRsZVVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0KTsKK30KKwogaW50IFRl
c3RDb250cm9sbGVyOjpnZXRDdXN0b21UaW1lb3V0KCkKIHsKICAgICByZXR1cm4gbV90aW1lb3V0
OwpAQCAtMjAyLDggKzIwNyw4IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3Ro
ZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAKICAgICB2aWV3
LT5yZXNpemVUbyg4MDAsIDYwMCk7CiAKLSAgICBXS1BhZ2VVSUNsaWVudFYyIG90aGVyUGFnZVVJ
Q2xpZW50ID0gewotICAgICAgICB7IDIsIHZpZXcgfSwKKyAgICBXS1BhZ2VVSUNsaWVudFY1IG90
aGVyUGFnZVVJQ2xpZW50ID0geworICAgICAgICB7IDUsIHZpZXcgfSwKICAgICAgICAgMCwgLy8g
Y3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIHNob3dQ
YWdlCiAgICAgICAgIGNsb3NlT3RoZXJQYWdlLApAQCAtMjUwLDYgKzI1NSwxMSBAQCBXS1BhZ2VS
ZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tV
UkxSZXF1ZXN0UmVmLCBXSwogICAgICAgICAwLCAvLyBzaG93Q29sb3JQaWNrZXIKICAgICAgICAg
MCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIHVuYXZhaWxhYmxlUGx1Z2luQnV0
dG9uQ2xpY2tlZAorICAgICAgICAwLCAvLyBwaW5uZWRTdGF0ZURpZENoYW5nZQorICAgICAgICAw
LCAvLyBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MKKyAgICAgICAgMCwg
Ly8gZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MKKyAgICAgICAgMCwgLy8gZGlkQ2FuY2VsVHJh
Y2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcworICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVu
dChuZXdQYWdlLCAmb3RoZXJQYWdlVUlDbGllbnQuYmFzZSk7CiAKQEAgLTQwOCw4ICs0MTgsOCBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBh
cmd2W10pCiB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoV0tE
aWN0aW9uYXJ5UmVmIG9wdGlvbnMpCiB7CiAgICAgbV9tYWluV2ViVmlldyA9IHN0ZDo6bWFrZV91
bmlxdWU8UGxhdGZvcm1XZWJWaWV3PihtX2NvbnRleHQuZ2V0KCksIG1fcGFnZUdyb3VwLmdldCgp
LCBudWxscHRyLCBvcHRpb25zKTsKLSAgICBXS1BhZ2VVSUNsaWVudFYyIHBhZ2VVSUNsaWVudCA9
IHsKLSAgICAgICAgeyAyLCBtX21haW5XZWJWaWV3LmdldCgpIH0sCisgICAgV0tQYWdlVUlDbGll
bnRWNSBwYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgNSwgbV9tYWluV2ViVmlldy5nZXQoKSB9
LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAg
ICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAgMCwgLy8gY2xvc2UKQEAgLTQ1Niw2ICs0NjYs
MTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKFdLRGlj
dGlvbmFyeVJlZiBvcHRpb25zKQogICAgICAgICAwLCAvLyBzaG93Q29sb3JQaWNrZXIKICAgICAg
ICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZCwKKyAgICAgICAgMCwgLy8gcGlubmVkU3RhdGVEaWRDaGFuZ2UKKyAgICAgICAgMCwg
Ly8gZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzCisgICAgICAgIDAsIC8v
IGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzCisgICAgICAgIDAsIC8vIGRpZENhbmNlbFRyYWNr
aW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MKKyAgICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QsCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQo
bV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50LmJhc2UpOwogCkBAIC01NDUsNiAr
NTYwLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVu
dFZhbHVlcygpCiAgICAgV0tQcmVmZXJlbmNlc1NldEZvbnRTbW9vdGhpbmdMZXZlbChwcmVmZXJl
bmNlcywga1dLRm9udFNtb290aGluZ0xldmVsTm9TdWJwaXhlbEFudGlBbGlhc2luZyk7CiAgICAg
V0tQcmVmZXJlbmNlc1NldFhTU0F1ZGl0b3JFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAg
ICAgV0tQcmVmZXJlbmNlc1NldFdlYkF1ZGlvRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhU3RyZWFtRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7
CiAgICAgV0tQcmVmZXJlbmNlc1NldERldmVsb3BlckV4dHJhc0VuYWJsZWQocHJlZmVyZW5jZXMs
IHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVk
KHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbk9w
ZW5XaW5kb3dzQXV0b21hdGljYWxseShwcmVmZXJlbmNlcywgdHJ1ZSk7CkBAIC02NDEsNiArNjU3
LDExIEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMo
KQogICAgIG1faXNHZW9sb2NhdGlvblBlcm1pc3Npb25TZXQgPSBmYWxzZTsKICAgICBtX2lzR2Vv
bG9jYXRpb25QZXJtaXNzaW9uQWxsb3dlZCA9IGZhbHNlOwogCisgICAgLy8gUmVzZXQgVXNlck1l
ZGlhIHBlcm1pc3Npb25zLgorICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLmNsZWFy
KCk7CisgICAgbV9pc1VzZXJNZWRpYVBlcm1pc3Npb25TZXQgPSBmYWxzZTsKKyAgICBtX2lzVXNl
ck1lZGlhUGVybWlzc2lvbkFsbG93ZWQgPSBmYWxzZTsKKwogICAgIC8vIFJlc2V0IEN1c3RvbSBQ
b2xpY3kgRGVsZWdhdGUuCiAgICAgc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoZmFsc2UsIGZhbHNl
KTsKIApAQCAtMTM1NCw2ICsxMzc1LDM0IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmhhbmRsZUdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SCiAgICAg
ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKTsK
IH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0VXNlck1lZGlhUGVybWlzc2lvbihib29sIGVu
YWJsZWQpCit7CisgICAgbV9pc1VzZXJNZWRpYVBlcm1pc3Npb25TZXQgPSB0cnVlOworICAgIG1f
aXNVc2VyTWVkaWFQZXJtaXNzaW9uQWxsb3dlZCA9IGVuYWJsZWQ7CisgICAgZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKCk7Cit9CisKK3ZvaWQgVGVz
dENvbnRyb2xsZXI6OmhhbmRsZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpCit7CisgICAg
bV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuYXBwZW5kKHVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KTsKKyAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElm
UG9zc2libGUoKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKCkKK3sKKyAgICBpZiAoIW1faXNVc2Vy
TWVkaWFQZXJtaXNzaW9uU2V0KQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLnNpemUoKTsgKytpKSB7Cisg
ICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3Qg
PSBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0c1tpXS5nZXQoKTsKKyAgICAgICAgaWYgKG1f
aXNVc2VyTWVkaWFQZXJtaXNzaW9uQWxsb3dlZCkKKyAgICAgICAgICAgIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RBbGxvdyhwZXJtaXNzaW9uUmVxdWVzdCk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KHBlcm1pc3Npb25SZXF1
ZXN0KTsKKyAgICB9CisgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuY2xlYXIoKTsK
K30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBl
bmFibGVkLCBib29sIHBlcm1pc3NpdmUpCiB7CiAgICAgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQg
PSBlbmFibGVkOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGQ5
YmU3NDguLjU5YTdlODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
QEAgLTg4LDYgKzg4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBv
c2l0aW9uVW5hdmFpbGFibGVFcnJvcihXS1N0cmluZ1JlZiBlcnJvck1lc3NhZ2UpOwogICAgIHZv
aWQgaGFuZGxlR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS0dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RSZWYpOwogCisgICAgLy8gTWVkaWFTdHJlYW0uCisgICAgdm9pZCBzZXRVc2Vy
TWVkaWFQZXJtaXNzaW9uKGJvb2wpOworICAgIHZvaWQgaGFuZGxlVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CisKICAgICAvLyBQb2xp
Y3kgZGVsZWdhdGUuCiAgICAgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVuYWJs
ZWQsIGJvb2wgcGVybWlzc2l2ZSk7CiAKQEAgLTEzMyw2ICsxMzcsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgdXBkYXRlTGF5b3V0VHlwZUZvclRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mKTsKIAog
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdElmUG9z
c2libGUoKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0SWZQb3NzaWJsZSgpOwogCiAgICAgLy8gV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQK
ICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0Nv
bnRleHRSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHks
IGNvbnN0IHZvaWQqKTsKQEAgLTIzNyw2ICsyNDIsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
aXNHZW9sb2NhdGlvblBlcm1pc3Npb25TZXQ7CiAgICAgYm9vbCBtX2lzR2VvbG9jYXRpb25QZXJt
aXNzaW9uQWxsb3dlZDsKIAorICAgIFZlY3RvcjxXS1JldGFpblB0cjxXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmPj4gbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHM7CisgICAgYm9v
bCBtX2lzVXNlck1lZGlhUGVybWlzc2lvblNldDsKKyAgICBib29sIG1faXNVc2VyTWVkaWFQZXJt
aXNzaW9uQWxsb3dlZDsKKwogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQ7CiAgICAg
Ym9vbCBtX3BvbGljeURlbGVnYXRlUGVybWlzc2l2ZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCAzNjM3NzAzLi44N2M0NmM0IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtNDc4LDYgKzQ3OCwxMyBAQCB2b2lk
IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0
cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKFdL
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRVc2VyTWVkaWFQZXJt
aXNzaW9uIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBX
S0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBlbmFibGVkV0sgPSBz
dGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRy
b2xsZXI6OnNoYXJlZCgpLnNldFVzZXJNZWRpYVBlcm1pc3Npb24oV0tCb29sZWFuR2V0VmFsdWUo
ZW5hYmxlZFdLKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJ
c0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldEN1c3RvbVBvbGljeURlbGVnYXRl
IikpIHsKICAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rp
b25hcnlHZXRUeXBlSUQoKSk7CiAgICAgICAgIFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURp
Y3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKLS0g
CjIuMS4w
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238918</attachid>
            <date>2014-09-30 02:43:27 -0700</date>
            <delta_ts>2014-10-08 09:17:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>114872</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBjNzAxZWVlMWI4OWVkNjNlMDczYzJhZDU0YjBkNWU2MWZhMmVmMTIxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDIgU2VwIDIwMTQgMTE6NTY6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDMxICsrKysrKysrCiAuLi4vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQtZXhwZWN0
ZWQudHh0ICAgICAgICB8IDEwICsrKwogLi4uL21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lv
bi1hbGxvd2VkLmh0bWwgICAgfCAzNCArKysrKysrKwogLi4uL2RlbGF5ZWQtcGVybWlzc2lvbi1k
ZW5pZWQtZXhwZWN0ZWQudHh0ICAgICAgICAgfCAxMCArKysKIC4uLi9tZWRpYXN0cmVhbS9kZWxh
eWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwgICAgIHwgMzcgKysrKysrKysrCiBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dCAgICB8IDEwICsrKwogTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sICAgICAgICAgICAgfCAyOSArKysrKysr
CiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0ICB8ICA5
ICsrKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwgICAgICAgICAg
fCAyNiArKysrKysKIC4uLi9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQg
ICAgICAgIHwgMTEgKysrCiAuLi4vbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJl
YWR5Lmh0bWwgICB8IDQ0ICsrKysrKysrKysrCiAuLi4vbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3Rl
ZC1mcmFtZS1leHBlY3RlZC50eHQgICB8IDExICsrKwogLi4uc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQgfCAxMyArKysKIC4uLi9kaXNjb25uZWN0ZWQtZnJh
bWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCAgICAgIHwgNTMgKysrKysrKysrKysrKwogLi4uL21l
ZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbCAgICAgfCA0MiArKysrKysr
KysrCiAuLi4vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIxLmh0bWwgICAgICAgICB8
ICA4ICsrCiAuLi4vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0bWwgICAgICAg
ICB8ICA4ICsrCiAuLi4vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sICAg
ICAgICB8ICA4ICsrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyAg
ICAgICAgICB8IDM4ICsrKysrKysrLQogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMgICAgICAgICAgfCAgMSArCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDIyICsrKysrKwogLi4uL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAgICAgICAgfCAxMSArKysKIC4uLi9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIHwgIDcgKysKIFNvdXJjZS9XZWJLaXQyL0NN
YWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKysKIFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNzQgKysrKysrKysrKysrKysr
KysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCAgICAgICAgICAgICAgIHwg
IDEgKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oICAgICAgICAgICAgICAgICAg
fCAgMSArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggICAgICAg
ICB8ICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCAgICAg
ICAgIHwgIDIgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgICAg
ICAgICAgfCAxMSArKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNs
aWVudC5oICAgIHwgNjggKysrKysrKysrKysrKysrKwogLi4uL0FQSS9DL1dLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuY3BwICAgICAgICAgfCA0MCArKysrKysrKysrCiAuLi4vVUlQcm9jZXNz
L0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCB8IDM3ICsrKysrKysrKwogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oICAgICAgICAgfCAgMSArCiAu
Li4vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICAgICB8IDYzICsr
KysrKysrKysrKysrKwogLi4uL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmggICAgICAgfCA0OCArKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmNwcCAgfCA1NCArKysrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAgICB8IDU0ICsrKysrKysrKysrKysKIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgMTQgKysr
KwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oICAgICAgICAgICAgfCAg
NyArKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiAg
fCAgNSArKwogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
ICAgfCA0NCArKysrKysrKysrKwogLi4uL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAgICAgICAgICAgfCA5MiArKysrKysrKysrKysrKysrKysrKysrCiAuLi4vVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggICAgICAgICAgICB8IDU4ICsrKysrKysrKysrKysr
CiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAgICAgICAgICB8IDU1
ICsrKysrKysrKysrKysKIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRp
YUNsaWVudC5oIHwgNDUgKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCAgICAgIHwgMTQgKysrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCAgICAgICAgfCAxMyArKysKIC4uLi9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIHwgIDUgKysKIFRvb2xzL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysrKysKIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgIHwgIDIgKwogVG9v
bHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZSAgICAgICAgICAgICAgfCAgMSArCiAu
Li4vVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICB8ICA2ICsr
CiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcCAgICB8IDYz
ICsrKysrKysrKysrKysrKwogLi4uL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZXRVc2Vy
TWVkaWEuaHRtbCAgfCAxNCArKysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGwgICAgICAgICB8ICAzICsKIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHAgICAgICAgICAgICAgIHwgIDcgKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5oICAgICAgICAgICAgICAgIHwgIDMgKwogLi4uL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgfCAgNiArKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggfCAgMyArCiBUb29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcCAgICAgICAgICB8IDU3ICsrKysrKysrKysrKystCiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggICAgICAgICAgICB8ICA5ICsrKwogVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgICAgICAgICAgfCAgNyArKwog
NjMgZmlsZXMgY2hhbmdlZCwgMTUwOCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJt
aXNzaW9uLWFsbG93ZWQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5odG1sCiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1p
c3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1sCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1leHBlY3RlZC50
eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9y
Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1
Y2Nlc3MtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1l
eHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS5odG1sCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlz
Y29ubmVjdGVkLWZyYW1lLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlz
c2lvbi1kZW5pZWQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3Vy
Y2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMS5odG1sCiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2Vz
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rp
c2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCiBj
cmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
Y3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCiBjcmVhdGUgbW9kZSAxMDA2
NDQgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRpYS5odG1sCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDg5ZjY5ZjMuLmYxZmEwZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxNC0wOS0w
MSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dL
Ml0gVXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFNpbXBsZSBVc2VyTWVkaWEgcGVybWlzc2lvbiByZXF1ZXN0IHRl
c3RzIGluc3BpcmVkIGZyb20gdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIHRlc3Qgc3VpdGUuCisK
KyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9lcnJvci5qczogQWRkZWQuCisgICAgICAgICog
ZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvc3VjY2Vzcy5qczogQWRkZWQuCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2Vk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNz
aW9uLWRlbmllZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFt
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5l
Y3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1h
bHJlYWR5LWlubmVyMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291
cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtaW5uZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTQtMDktMjkgIERhdmlkIEh5YXR0ICA8
aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxNjgwNDYpOiBDb25mdXNl
ZCBjb2x1bW4gc3BhbnMgd2hlbiBjb21iaW5lZCB3aXRoIGR5bmFtaWMgYW5pbWF0aW9ucwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24t
YWxsb3dlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5
ZWQtcGVybWlzc2lvbi1hbGxvd2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5mM2Y4MjVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBubyBjYWxsYmFja3MgYXJlIGludm9rZWQgdW50aWwg
cGVybWlzc2lvbiBpcyBhbGxvd2VkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDU0N2MwNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRt
bApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IG5vIGNhbGxiYWNr
cyBhcmUgaW52b2tlZCB1bnRpbCBwZXJtaXNzaW9uIGlzIGFsbG93ZWQuIik7Cit3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9uIGFsbG93UGVybWlzc2lvbigpIHsKKyAgICBw
ZXJtaXNzaW9uU2V0ID0gdHJ1ZTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKK30KKwordmFyIG9wdGlv
bnMgPSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfTsKK25hdmlnYXRvci53ZWJraXRHZXRVc2Vy
TWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7CisgICBpZiAocGVybWlzc2lvblNldCkg
eworICAgICAgICB0ZXN0UGFzc2VkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQnKTsKKyAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdEZhaWxl
ZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworfSwgZnVuY3Rpb24o
ZSkgeworICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5
Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKword2luZG93LnNldFRpbWVvdXQoYWxsb3dQ
ZXJtaXNzaW9uLCAxMDApOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1p
c3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5hZmY2N2QwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUZXN0cyB0aGF0IG5vIGNhbGxiYWNrcyBhcmUgaW52b2tlZCB1bnRpbCBwZXJtaXNzaW9u
IGlzIGRlbmllZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXJyb3Iu
Y29kZSBpcyBlcnJvci5QRVJNSVNTSU9OX0RFTklFRAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZkYTRhYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1s
CkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgbm8gY2FsbGJhY2tz
IGFyZSBpbnZva2VkIHVudGlsIHBlcm1pc3Npb24gaXMgZGVuaWVkLiIpOword2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBkZW55UGVybWlzc2lvbigpIHsKKyAgICBwZXJt
aXNzaW9uU2V0ID0gdHJ1ZTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbihmYWxzZSk7Cit9CisKK3ZhciBlcnJvcjsK
K3ZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07CituYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgeworICAgIHRlc3RGYWls
ZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30sIGZ1bmN0aW9uKGUpIHsKKyAgICBpZiAocGVybWlzc2lvblNldCkgeworICAg
ICAgICBlcnJvciA9IGU7CisgICAgICAgIHNob3VsZEJlKCdlcnJvci5jb2RlJywgJ2Vycm9yLlBF
Uk1JU1NJT05fREVOSUVEJyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBl
Y3RlZGx5Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKword2luZG93LnNldFRpbWVvdXQo
ZGVueVBlcm1pc3Npb24sIDEwMCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTYyOWQyMjIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEwIEBACitUZXN0cyBVc2VyTWVkaWEgZXJyb3IgY2FsbGJhY2sgdXNpbmcgdGhlIG1vY2sgc2Vy
dmljZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXJyb3IuY29kZSBp
cyBlcnJvci5QRVJNSVNTSU9OX0RFTklFRAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGM1MTU4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCkBAIC0wLDAg
KzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIFVzZXJNZWRpYSBlcnJvciBjYWxsYmFjayB1
c2luZyB0aGUgbW9jayBzZXJ2aWNlLiIpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJt
aXNzaW9uKGZhbHNlKTsKK2Vsc2UKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVu
IHdpdGhvdXQgdGhlIHRlc3RSdW5uZXInKTsKKwordmFyIGVycm9yOwordmFyIG9wdGlvbnMgPSB7
YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9OworbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShv
cHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKKyAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxi
YWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmdW5j
dGlvbihlKSB7CisgICAgZXJyb3IgPSBlOworICAgIHNob3VsZEJlKCdlcnJvci5jb2RlJywgJ2Vy
cm9yLlBFUk1JU1NJT05fREVOSUVEJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9zdWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vc3VjY2Vzcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uODIyM2ViYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vc3VjY2Vzcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0cyBVc2VyTWVkaWEg
c3VjY2VzcyBjYWxsYmFjayB1c2luZyB0aGUgbW9jayBzZXJ2aWNlLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3Vj
Y2Vzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNmMWYyNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sCkBAIC0wLDAgKzEs
MjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIFVzZXJNZWRpYSBzdWNjZXNzIGNhbGxiYWNrIHVz
aW5nIHRoZSBtb2NrIHNlcnZpY2UuIik7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1p
c3Npb24odHJ1ZSk7CitlbHNlCisgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3
aXRob3V0IHRoZSB0ZXN0UnVubmVyJyk7CisKK3ZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2
aWRlbzogdHJ1ZX07CituYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0
aW9uKHN0cmVhbSkgeworICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZnVuY3Rpb24oZSkgeworICAg
IHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVj
dGVkLWZyYW1lLWFscmVhZHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1MDVkYjkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25u
ZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDI0OiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5OiBU
aGUgaW1wbGVtZW50YXRpb24gZGlkIG5vdCBzdXBwb3J0IHRoZSByZXF1ZXN0ZWQgdHlwZSBvZiBv
YmplY3Qgb3Igb3BlcmF0aW9uLgorVGVzdHMgdGhhdCB3aGVuIGEgZ2V0VXNlck1lZGlhIHJlcXVl
c3QgaXMgbWFkZSBhZnRlciBpdHMgZnJhbWUgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBubyBjYWxs
YmFja3MgYXJlIG1hZGUgYW5kIG5vIGNyYXNoIG9jY3Vycy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK3dlYmtpdEdldFVzZXJNZWRpYSBjYWxsZWQgb24gb2JqZWN0IHdpdGggZGlz
Y29ubmVjdGVkIEZyYW1lLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjNjQ4ZjgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNj
b25uZWN0ZWQtZnJhbWUtYWxyZWFkeS5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgd2hlbiBhIGdldFVzZXJNZWRpYSByZXF1ZXN0IGlzIG1hZGUg
YWZ0ZXIgaXRzIGZyYW1lIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgbm8gY2FsbGJhY2tzIGFyZSBt
YWRlIGFuZCBubyBjcmFzaCBvY2N1cnMuIik7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBl
cm1pc3Npb24odHJ1ZSk7CisKK2Z1bmN0aW9uIG9uRmlyc3RJZnJhbWVMb2FkZWQoKSB7CisgICAg
aWZyYW1lTmF2aWdhdG9yID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yOworICAgIGlm
cmFtZS5zcmMgPSAncmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMi5o
dG1sJzsKK30KKwordmFyIGVycm9yOwordmFyIG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVv
OiB0cnVlfTsKK2Z1bmN0aW9uIG9uU2Vjb25kSWZyYW1lTG9hZGVkKCkgeworICAgIHNldFRpbWVv
dXQoZmluaXNoVGVzdCwgNTAwKTsKKworICAgIGlmcmFtZU5hdmlnYXRvci53ZWJraXRHZXRVc2Vy
TWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ1N1
Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgfSwgZnVuY3Rpb24oZSkgeworICAgICAgICB0ZXN0RmFpbGVkKCdFcnJvciBj
YWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICB9KTsKK30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICBkZWJ1Zygnd2Via2l0
R2V0VXNlck1lZGlhIGNhbGxlZCBvbiBvYmplY3Qgd2l0aCBkaXNjb25uZWN0ZWQgRnJhbWUuJyk7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3ZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdpZnJhbWUnKTsKK2lmcmFtZS5zcmMgPSAncmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1m
cmFtZS1hbHJlYWR5LWlubmVyMS5odG1sJzsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZy
YW1lKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1l
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFt
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZWZiNzhjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMSBAQAorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+
IiAtIGhhcyAxIG9udW5sb2FkIGhhbmRsZXIocykKK1Rlc3RzIHRoYXQgd2hlbiBhIHJlcXVlc3Qg
aXMgbWFkZSBvbiBhIFVzZXJNZWRpYSBvYmplY3QgYW5kIGl0cyBGcmFtZSBpcyBkaXNjb25uZWN0
ZWQgYmVmb3JlIGEgY2FsbGJhY2sgaXMgbWFkZSwgdGhlIGVycm9yIGNhbGxiYWNrIGlzIGludm9r
ZWQgd2l0aCB0aGUgY29ycmVjdCBlcnJvciBtZXNzYWdlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBObyBjYWxsYmFja3MgaW52b2tlZAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNz
aW9uLWRlbmllZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3MjQ2MzEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNj
b25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTMgQEAKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIgLSBoYXMgMSBv
bnVubG9hZCBoYW5kbGVyKHMpCitUZXN0cyB0aGF0IHdoZW4gYSBnZXRVc2VyTWVkaWEgcmVxdWVz
dCBpcyBtYWRlLCBwZXJtaXNzaW9uIGlzIGRlbmllZCBhbmQgaXRzIEZyYW1lIGlzIGRpc2Nvbm5l
Y3RlZCBiZWZvcmUgYSBjYWxsYmFjayBpcyBtYWRlLCB0aGUgZXJyb3IgY2FsbGJhY2sgaXMgaW52
b2tlZCB3aXRoIFBFUk1JU1NJT05fREVOSUVELgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBlcnJvci5jb2RlIGlzIGVycm9yLlBFUk1JU1NJT05fREVOSUVECisKK1BBU1Mg
Tm8gY2FsbGJhY2tzIGludm9rZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1m
cmFtZS1wZXJtaXNzaW9uLWRlbmllZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjdkMTk3OTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQu
aHRtbApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdo
ZW4gYSBnZXRVc2VyTWVkaWEgcmVxdWVzdCBpcyBtYWRlLCBwZXJtaXNzaW9uIGlzIGRlbmllZCBh
bmQgaXRzIEZyYW1lIGlzIGRpc2Nvbm5lY3RlZCBiZWZvcmUgYSBjYWxsYmFjayBpcyBtYWRlLCB0
aGUgZXJyb3IgY2FsbGJhY2sgaXMgaW52b2tlZCB3aXRoIFBFUk1JU1NJT05fREVOSUVELiIpOwor
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsKK2Vsc2UKKyAgICBk
ZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXInKTsK
KwordmFyIGVycm9yOwordmFyIG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfTsK
K2Z1bmN0aW9uIG9uSWZyYW1lTG9hZGVkKCkgeworICAgIGlmcmFtZU5hdmlnYXRvciA9IGlmcmFt
ZS5jb250ZW50V2luZG93Lm5hdmlnYXRvcjsKKyAgICBpZnJhbWVOYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgeworICAgICAgICB0ZXN0RmFpbGVk
KCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgIH0sIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAg
ICAgICBzaG91bGRCZSgnZXJyb3IuY29kZScsICdlcnJvci5QRVJNSVNTSU9OX0RFTklFRCcpOwor
ICAgICAgICBkZWJ1ZygnJyk7CisgICAgICAgIGlmcmFtZS5zcmMgPSAnZGF0YTp0ZXh0L2h0bWws
VGhpcyBmcmFtZSBzaG91bGQgYmUgdmlzaWJsZSB3aGVuIHRoZSB0ZXN0IGNvbXBsZXRlcyc7Cisg
ICAgfSk7Cit9CisKK2Z1bmN0aW9uIG9uSWZyYW1lVW5sb2FkZWQoKSB7CisgICAgLy8gTWFrZSBh
bm90aGVyIHJlcXVlc3QsIHdpdGggcGVybWlzc2lvbiBhbHJlYWR5IGRlbmllZC4KKyAgICBpZnJh
bWVOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkg
eworICAgICAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3Rl
ZGx5Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0sIGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsK
KyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7CisgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgnTm8gY2FsbGJhY2tzIGludm9rZWQnKTsKKyAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgMTAwKTsKK30KKwordmFyIGlmcmFtZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworaWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvZGlz
Y29ubmVjdGVkLWZyYW1lLWlubmVyLmh0bWwnOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChp
ZnJhbWUpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1m
cmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlz
Y29ubmVjdGVkLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YWVjMWMwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgd2hlbiBhIHJlcXVlc3QgaXMgbWFkZSBvbiBhIFVzZXJN
ZWRpYSBvYmplY3QgYW5kIGl0cyBGcmFtZSBpcyBkaXNjb25uZWN0ZWQgYmVmb3JlIGEgY2FsbGJh
Y2sgaXMgbWFkZSwgdGhlIGVycm9yIGNhbGxiYWNrIGlzIGludm9rZWQgd2l0aCB0aGUgY29ycmVj
dCBlcnJvciBtZXNzYWdlLiIpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9u
KHRydWUpOworCitmdW5jdGlvbiBvbklmcmFtZUxvYWRlZCgpIHsKKyAgICBpZnJhbWVOYXZpZ2F0
b3IgPSBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3I7CisgICAgaWZyYW1lLnNyYyA9ICdk
YXRhOnRleHQvaHRtbCxUaGlzIGZyYW1lIHNob3VsZCBiZSB2aXNpYmxlIHdoZW4gdGhlIHRlc3Qg
Y29tcGxldGVzJzsKK30KKworZnVuY3Rpb24gb25JZnJhbWVVbmxvYWRlZCgpIHsKKyAgICB2YXIg
b3B0aW9ucyA9IHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9OworICAgIGlmcmFtZU5hdmlnYXRv
ci53ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24gKHN0cmVhbSkgeworICAgICAg
ICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0sIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdGVz
dEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgfSk7CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewor
ICAgICAgICB0ZXN0UGFzc2VkKCdObyBjYWxsYmFja3MgaW52b2tlZCcpOworICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICB9LCAxMDApOworfQorCit2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnaWZyYW1lJyk7CitpZnJhbWUuc3JjID0gJ3Jlc291cmNlcy9kaXNjb25uZWN0
ZWQtZnJhbWUtaW5uZXIuaHRtbCc7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7
CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFt
ZS1hbHJlYWR5LWlubmVyMS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zdHJlYW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkY2EzNTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJj
ZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIxLmh0bWwKQEAgLTAsMCArMSw4IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgPC9oZWFkPgorICA8Ym9keSBv
bmxvYWQ9IndpbmRvdy5wYXJlbnQub25GaXJzdElmcmFtZUxvYWRlZCgpIj4KKyAgICA8cD5UaGlz
IGZyYW1lIHNob3VsZCBiZSByZXBsYWNlZCBiZWZvcmUgdGhlIHRlc3QgZW5kczwvcD4KKyAgPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMi5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2Vz
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjFlOGRlOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZy
YW1lLWFscmVhZHktaW5uZXIyLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorICA8aGVhZD4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9IndpbmRvdy5wYXJl
bnQub25TZWNvbmRJZnJhbWVMb2FkZWQoKSI+CisgICAgPHA+VGhpcyBmcmFtZSBzaG91bGQgYmUg
dmlzaWJsZSB3aGVuIHRoZSB0ZXN0IGNvbXBsZXRlczwvcD4KKyAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVz
b3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5l
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwODYyODAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9y
ZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWlubmVyLmh0bWwKQEAgLTAsMCArMSw4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxv
YWQ9IndpbmRvdy5wYXJlbnQub25JZnJhbWVMb2FkZWQoKSIgb251bmxvYWQ9IndpbmRvdy5wYXJl
bnQub25JZnJhbWVVbmxvYWRlZCgpOyI+CisgICAgPHA+VGhpcyBmcmFtZSBzaG91bGQgYmUgcmVw
bGFjZWQgYmVmb3JlIHRoZSB0ZXN0IGVuZHM8L3A+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjhkNTQ0YS4uNmJjNzFh
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI5MSw3
ICsyOTEsNDMgQEAgd2Via2l0Lm9yZy9iLzg1MjExIGlldGVzdGNlbnRlci9jc3MzL2ZsZXhib3gv
ZmxleGJveC1hbGlnbi1zdHJldGNoLTAwMS5odG0gWyBJbWEKIHdlYmtpdC5vcmcvYi84NTIxMiBp
ZXRlc3RjZW50ZXIvY3NzMy9mbGV4Ym94L2ZsZXhib3gtbGF5b3V0LTAwMi5odG0gWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIAogIyBNZWRpYXN0cmVhbSBpbXBsZW1lbnRhdGlvbiBpcyBub3QgY29tcGxl
dGUgeWV0Lgotd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0gWyBTa2lwIF0KK3dl
YmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL2FyZ3VtZW50LXR5cGVzLmh0bWwgWyBT
a2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL2dldHVzZXJtZWRpYS5o
dG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbS1hZGQtZW5kZWQtdHJhY2tzLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBm
YXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC1yZW1vdmUtdHJhY2tzLmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC10
cmFja3MtdG8taW5hY3RpdmUtc3RyZWFtLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIw
MyBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWNsb25lLmh0bWwgWyBTa2lwIF0KK3dlYmtp
dC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3RydWN0b3IuaHRt
bCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0tY29uc3RydWN0LXdpdGgtZW5kZWQtdHJhY2tzLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcv
Yi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWdldFRyYWNrcy5odG1sIFsgU2tp
cCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1NZWRp
YUVsZW1lbnQtc3JjT2JqZWN0Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC1jb25zdHJ1Y3Rvci5odG1sIFsgU2tp
cCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LWdldFNvdXJjZXMuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMg
ZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLW9uZW5kZWQuaHRtbCBbIFNraXAgXQor
d2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vbm8taW50ZXJmYWNlLW9iamVjdC5o
dG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENJY2VD
YW5kaWRhdGUuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24tQWRkUmVtb3ZlU3RyZWFtLmh0bWwgWyBTa2lwIF0KK3dlYmtp
dC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZUFu
c3dlci5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2Iv
NzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC5odG1s
IFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi1kdG1mLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWV2ZW50cy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3Jn
L2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1nZXRDb25maWd1cmF0
aW9uLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLWhhdmUtbG9jYWwtb2ZmZXIuaHRtbCBbIFNraXAgXQord2Via2l0Lm9y
Zy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taGF2ZS1sb2NhbC1w
cmFuc3dlci5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi1oYXZlLXJlbW90ZS1vZmZlci5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1oYXZlLXJl
bW90ZS1wcmFuc3dlci5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzky
MDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2UuaHRtbCBbIFNraXAgXQor
d2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbG9j
YWxEZXNjcmlwdGlvbi5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LXJlbW90ZURlc2NyaXB0aW9uLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YWJsZS5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0ZS5o
dG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi1zdGF0cy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0c1NlbGVjdG9yLmh0bWwgWyBTa2lwIF0K
K3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlv
bi5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9ldmVudHMvY29uc3RydWN0
b3JzL21lZGlhLXN0cmVhbS1ldmVudC1jb25zdHJ1Y3Rvci5odG1sIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvNzkyMDMgd2ViYXVkaW8vbWVkaWFzdHJlYW1hdWRpb2Rlc3RpbmF0aW9ubm9kZS5odG1s
IFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvNzkyMDMgd2ViYXVkaW8vbWVkaWFzdHJlYW1hdWRpb3Nv
dXJjZW5vZGUuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA5ZDMxODU0Li43MWVjNTk1IDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTYwLDYgKzE2MCw3IEBAIGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFR5cGVPcHRpb25zCiAjIE1lZGlhIFN0cmVhbSBBUEkgaXMgbm90IHlldCBlbmFi
bGVkLgogZmFzdC9tZWRpYXN0cmVhbQogZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21lZGlhLXN0
cmVhbS1ldmVudC1jb25zdHJ1Y3Rvci5odG1sCitodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVh
bQogCiAjIE5lZWRzIHRvIGJlIGZpeGVkIGF0IGltYWdlIGRlY29kZXIgbGF5ZXIgZm9yIFNhZmFy
aS4KIGZhc3QvaW1hZ2VzL2xhcmdlLXNpemUtaW1hZ2UtY3Jhc2guaHRtbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGMwN2MzZWEuLjhhNTYzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNC0wOS0w
MSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dL
Ml0gVXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIGRvY3VtZW50IGFuZCBmcmFtZSBhY2Nlc3NvcnMsIG5l
ZWRlZCBieSB0aGUKKyAgICAgICAgVXNlck1lZGlhUmVxdWVzdE1hbmFnZXIgb2YgdGhlIFdlYlBy
b2Nlc3MuIEFsc28gYWRkZWQgdHdvIG1ldGhvZHMKKyAgICAgICAgdXNlZCBieSB0aGUgcGVybWlz
c2lvbiByZXF1ZXN0IG1hbmFnZXIgdG8ga25vdyBpZiBhY2Nlc3MgdG8gYXVkaW8KKyAgICAgICAg
b3IgdmlkZW8gZGV2aWNlcyBpcyByZXF1ZXN0ZWQuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvbWVk
aWFzdHJlYW0vZXJyb3IuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9tZWRpYXN0cmVhbS9zdWNj
ZXNzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojpkb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpmcmFtZSk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpV
c2VyTWVkaWFSZXF1ZXN0OjpyZXF1aXJlc0F1ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJN
ZWRpYVJlcXVlc3Q6OnJlcXVpcmVzVmlkZW8pOgorCiAyMDE0LTA5LTI5ICBCcmlhbiBKLiBCdXJn
ICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbmpl
Y3RlZFNjcmlwdHMgc2hvdWxkIG5vdCBiZSBwcm9maWxlZCBvciBkaXNwbGF5ZWQgaW4gVGltZWxp
bmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1l
ZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuY3BwCmluZGV4IGU0MzhkMzUuLmZkOTZiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApA
QCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBsLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW0u
aCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbUNlbnRlci5oIgpAQCAtMTAxLDYgKzEwMiwxNiBAQCBV
c2VyTWVkaWFSZXF1ZXN0Ojp+VXNlck1lZGlhUmVxdWVzdCgpCiB7CiB9CiAKK0RvY3VtZW50KiBV
c2VyTWVkaWFSZXF1ZXN0Ojpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvd25jYXN0
PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworfQorCitGcmFtZSogVXNlck1l
ZGlhUmVxdWVzdDo6ZnJhbWUoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVudCgpID8gZG9j
dW1lbnQoKS0+ZnJhbWUoKSA6IG51bGxwdHI7Cit9CisKIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVk
aWFSZXF1ZXN0OjpzZWN1cml0eU9yaWdpbigpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggYzgwYTZiYS4uMjgyMjdhMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaWN0aW9u
YXJ5OwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBGcmFtZTsKIGNsYXNzIE1lZGlhQ29uc3RyYWlu
dHM7CiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CiBjbGFzcyBVc2VyTWVkaWFDb250cm9sbGVy
OwpAQCAtNjIsMTAgKzYzLDE2IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFNlY3Vy
aXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCisgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50KCkgY29uc3Q7CisgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CisKICAgICB2b2lkIHN0YXJ0
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NEZW5pZWQoKTsKIAorICAgIGJv
b2wgcmVxdWlyZXNBdWRpbygpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9Db25zdHJhaW50czsgfQor
ICAgIGJvb2wgcmVxdWlyZXNWaWRlbygpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9Db25zdHJhaW50
czsgfQorCiBwcml2YXRlOgogICAgIFVzZXJNZWRpYVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIqLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+
IGF1ZGlvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gdmlkZW9Db25z
dHJhaW50cywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+LCBQ
YXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxp
c3RzLnR4dAppbmRleCA2YmRjNTlkLi40YWQyMDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAt
NDksNiArNDksNyBAQCBzZXQoV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VC
S0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NIgogICAgICIke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL0xhdW5jaGluZyIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9NZWRpYUNhY2hlIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL01lZGlhU3RyZWFt
IgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL05ldHdvcmsiCiAgICAgIiR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2Vi
UHJvY2Vzcy9PcmlnaW5EYXRhIgpAQCAtMzAxLDYgKzMwMiw4IEBAIHNldChXZWJLaXQyX1NPVVJD
RVMKICAgICBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKICAgICBVSVByb2Nlc3Mv
U3RhdGlzdGljc1JlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlv
bi5jcHAKKyAgICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3Bw
CiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkJhY2tG
b3J3YXJkTGlzdC5jcHAKQEAgLTM4OSw2ICszOTIsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLU2Vzc2lvblN0YXRlUmVmLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Rl
eHRDaGVja2VyLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ZpYnJhdGlvbi5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwCiAKQEAgLTQ4NSw2ICs0ODksOCBA
QCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBXZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVk
aWFDYWNoZU1hbmFnZXIuY3BwCiAKKyAgICBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKwogICAgIFdlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkZXIuY3BwCkBAIC01MzYsNiArNTQyLDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAg
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcAogICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcAogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcAorICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViVmlicmF0aW9uQ2xpZW50LmNwcAogCiAgICAgV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDY1YjU2OTMuLjE1YTQxYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAxNC0wOS0wMSAgUGhpbGlwcGUgTm9ybWFuZCAg
PHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dLMl0gVXNlck1lZGlhQ2xpZW50IHN1
cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
MzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1
cHBvcnQgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IGluIFdlYktpdDIuIEl0J3MKKyAg
ICAgICAgaW1wbGVtZW50ZWQgc2ltaWxhcmlseSB0byB0aGUgR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdAorICAgICAgICBzdXBwb3J0LiBXaGVuIHRoZSBXZWJQYWdlIHJlcXVpcmVzIHRoaXMg
cGVybWlzc2lvbiBpdCBzZW5kcyBhCisgICAgICAgIG1lc3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3Mg
d2hpY2ggYXQgc29tZSBwb2ludCBncmFudHMgb3IgZGVuaWVzIHRoZQorICAgICAgICBwZXJtaXNz
aW9uIGFuZCBzZW5kcyB0aGUgcmVzdWx0IGJhY2sgdG8gdGhlIFdlYlByb2Nlc3MuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogR2VuZXJpYyBDTWFrZSBzdXBwb3J0IGZvciBuZXcgZmlsZXMu
CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOiBOZXcgdHlwZSBmb3IgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOiBEaXR0by4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6IFBlcm1pc3Npb25SZXF1ZXN0
IEFQSSBtYXBwaW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDogTmV3
IGRlY2lkZVBvbGljeSBoYW5kbGVyIGZvciBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAg
ICAgICAgKEFQSTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDogRGl0dG8uCisg
ICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VVSUNsaWVudC5oOiBXS1BhZ2VVSUNsaWVudCB2ZXJzaW9uIGJ1bXAgdG8KKyAgICAg
ICAgNSwgaW5jbHVkaW5nIHRoZSBuZXcgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QgbWVtYmVyLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQsIEMgQVBJCisgICAgICAgIGltcGxlbWVudGF0aW9u
IG9mIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAgICAgKFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQpOgorICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93KToKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RE
ZW55KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmNwcDogQWRkZWQsIHByb3h5CisgICAgICAgIG9iamVjdCBmb3IgdGhlIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0VHlwZS4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRh
dGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjptZWRpYVBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25G
b3JGcmFtZSk6IERlZmVyCisgICAgICAgIFVzZXJQZXJtaXNzaW9uUmVxdWVzdCB0byB0aGUgVUlD
bGllbnQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IE5ldyBtZXNzYWdlIHRvIGhhbmRsZSBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDogQWRkZWQsCisgICAgICAgIFdlYlByb2Nl
c3Mgc2lkZSBvZiB0aGUgVXNlclJlcXVlc3RNYW5hZ2VyLCBrZWVwaW5nIHRyYWNrIG9mIGVhY2gK
KyAgICAgICAgcGVybWlzc2lvbiByZXF1ZXN0LgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZVJl
cXVlc3RJRCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJl
cXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlh
Q2xpZW50LmNwcDogQWRkZWQsCisgICAgICAgIFdlYlByb2Nlc3MgaW1wbGVtZW50YXRpb24gb2Yg
dGhlIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1l
ZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2Vy
TWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyTWVk
aWFDbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1l
ZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2Up
OiBDcmVhdGUgdGhlCisgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciBh
bmQgcmVnaXN0ZXIgdGhlIFVzZXJNZWRpYUNsaWVudAorICAgICAgICB0byB0aGUgcGFnZS4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbik6IERpc3BhdGNoCisgICAgICAgIGRlY2lzaW9uIHRvIG1hbmFnZXIuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogTmV3IE1lc3NhZ2UgdG8gaGFuZGxlCisgICAg
ICAgIHBlcm1pc3Npb24gZGVjaXNpb24gcmVzdWx0IGZyb20gdGhlIFVJIHByb2Nlc3MuCisKIDIw
MTQtMDktMjkgIENocmlzdG9waGUgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFVzZSBpczw+KCkgLyBkb3duY2FzdDw+KCkgZm9yIERvY3VtZW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL2MvV0tCYXNlLmgKaW5kZXggOGQxZTk2NS4uMTFlYzU0OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS0Jhc2UuaApAQCAtMTI3LDYgKzEyNyw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLUHJvdGVjdGlvblNwYWNlKiBXS1Byb3RlY3Rpb25TcGFjZVJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLVGV4dENoZWNrZXIqIFdLVGV4dENoZWNrZXJSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Nlc3Npb24qIFdLU2Vzc2lvblJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLU2Vzc2lvblN0YXRlKiBXS1Nlc3Npb25TdGF0ZVJlZjsKK3R5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QqIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS1ZpYnJhdGlvbiogV0tWaWJyYXRpb25SZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS1ZpZXdwb3J0QXR0cmlidXRlcyogV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWY7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElPYmplY3QuaAppbmRleCA5MjJlNmRhLi5kNDk2NmFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSU9iamVjdC5oCkBAIC0xMzIsNiArMTMyLDcgQEAgcHVibGljOgogICAgICAgICBQcmVm
ZXJlbmNlcywKICAgICAgICAgU2Vzc2lvbiwKICAgICAgICAgVGV4dENoZWNrZXIsCisgICAgICAg
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LAogICAgICAgICBWaWJyYXRpb24sCiAgICAgICAg
IFZpZXdwb3J0QXR0cmlidXRlcywKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElV
SUNsaWVudC5oCmluZGV4IDFjYTE1ZTMuLmVlYmNmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTUwLDYgKzUwLDcgQEAgY2xhc3MgSW1tdXRhYmxl
RGljdGlvbmFyeTsKIGNsYXNzIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBOYXRpdmVX
ZWJXaGVlbEV2ZW50OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CitjbGFz
cyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgV2ViQ29sb3JQaWNrZXJS
ZXN1bHRMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViRnJhbWVQcm94eTsKIGNsYXNzIFdlYk9wZW5Q
YW5lbFBhcmFtZXRlcnM7CkBAIC0xMjIsNiArMTIzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBib29sIHJ1bk9wZW5QYW5lbChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJh
bWVQcm94eSosIFdlYktpdDo6V2ViT3BlblBhbmVsUGFyYW1ldGVycyosIFdlYktpdDo6V2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0
OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBXZWJLaXQ6OldlYlNlY3Vy
aXR5T3JpZ2luKiwgV2ViS2l0OjpHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkqKSB7
IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJh
bWVQcm94eSosIFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4qLCBXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6Oldl
YlBhZ2VQcm94eSosIFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4qLCBXZWJLaXQ6Ok5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KikgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIFByaW50
aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IDgw
MjIxYTkuLjVmNDRhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElD
YXN0LmgKQEAgLTYzLDYgKzYzLDcgQEAgY2xhc3MgQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3Rl
bmVyOwogY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RQcm94eTsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworY2xhc3Mg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNsYXNzIFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtOwpAQCAtMTQ2LDYgKzE0Nyw3IEBAIFdLX0FERF9BUElfTUFQUElORyhX
S1JlbmRlckxheWVyUmVmLCBXZWJSZW5kZXJMYXllcikKIFdLX0FERF9BUElfTUFQUElORyhXS1Jl
bmRlck9iamVjdFJlZiwgV2ViUmVuZGVyT2JqZWN0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLU2Vz
c2lvblN0YXRlUmVmLCBBUEk6OlNlc3Npb25TdGF0ZSkKIFdLX0FERF9BUElfTUFQUElORyhXS1Rl
eHRDaGVja2VyUmVmLCBXZWJUZXh0Q2hlY2tlcikKK1dLX0FERF9BUElfTUFQUElORyhXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlicmF0aW9uUmVmLCBXZWJWaWJyYXRpb25Qcm94eSkK
IFdLX0FERF9BUElfTUFQUElORyhXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiwgV2ViVmlld3BvcnRB
dHRyaWJ1dGVzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSW5zcGVjdG9yUmVmLCBXZWJJbnNwZWN0
b3JQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXgg
MTNjNWU1Yi4uZTNjN2Q5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdL
UGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRy
YWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdl
VUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwgV0tQYWdlVUlD
bGllbnRWMywgV0tQYWdlVUlDbGllbnRWND4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1
cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIs
IFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjU+IFZl
cnNpb25zOwogfTsKIAogfQpAQCAtMTQ5Nyw2ICsxNDk3LDE1IEBAIHZvaWQgV0tQYWdlU2V0UGFn
ZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdr
Q2xpZW50CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCisgICAgICAgIHZp
cnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQ
YWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXZWJTZWN1cml0eU9yaWdpbiog
b3JpZ2luLCAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogcGVybWlzc2lvblJlcXVl
c3QpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdCh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShvcmln
aW4pLCB0b0FQSShwZXJtaXNzaW9uUmVxdWVzdCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdl
UHJveHkqIHBhZ2UsIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCkgb3ZlcnJpZGUKICAgICAgICAgewogICAg
ICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJ
Q2xpZW50LmgKaW5kZXggYmM5ZWVjNy4uYWI2MWFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTkwLDYgKzkwLDcgQEAgdHlwZWRl
ZiB2b2lkICgqV0tQYWdlRGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzQ2Fs
bGJhY2spKFdLUGFnZVJlZgogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkUmVjb2duaXplTG9uZ01v
dXNlUHJlc3NDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRDYW5jZWxUcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5
cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgq
V0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdL
RnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKIAogLy8gRGVwcmVjYXRlZCAgICAKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3Jl
YXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdl
LCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBX
S0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpA
QCAtMzc4LDYgKzM3OSw3MyBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFY0IHsKICAg
ICBXS1BhZ2VJc1BsYXlpbmdBdWRpb0RpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlOwogfSBXS1BhZ2VVSUNsaWVudFY0
OwogCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFY1IHsKKyAgICBXS1BhZ2VVSUNsaWVu
dEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJh
c2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNr
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93UGFnZTsKKyAgICBXS1Bh
Z2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsb3NlOworICAgIFdLUGFnZVRha2VGb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZUZvY3VzOworICAgIFdLUGFnZUZvY3Vz
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Zm9jdXM7CisgICAgV0tQYWdlVW5mb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bmZvY3VzOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRB
bGVydENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNj
cmlwdEFsZXJ0OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm07CisgICAgV0tQ
YWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0OworICAgIFdLUGFnZVNldFN0YXR1c1RleHRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzVGV4
dDsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrX2RlcHJlY2F0ZWRG
b3JVc2VXaXRoVjAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50X2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjA7CisgICAgV0tQYWdlTWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19k
ZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICBtaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZURpZE5vdEhhbmRsZUtleUV2ZW50Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxlS2V5RXZlbnQ7
CisgICAgV0tQYWdlRGlkTm90SGFuZGxlV2hlZWxFdmVudENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVXaGVlbEV2ZW50OworICAgIFdLUGFnZUdldFRv
b2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dG9vbGJhcnNBcmVWaXNpYmxlOworICAgIFdLUGFnZVNldFRvb2xiYXJzQXJlVmlzaWJsZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG9vbGJhcnNBcmVWaXNpYmxl
OworICAgIFdLUGFnZUdldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRNZW51QmFy
SXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE1l
bnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlR2V0U3RhdHVzQmFySXNWaXNpYmxlQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNCYXJJc1Zpc2libGU7CisgICAg
V0tQYWdlU2V0U3RhdHVzQmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRTdGF0dXNCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlR2V0SXNSZXNpemFi
bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Jlc2l6
YWJsZTsKKyAgICBXS1BhZ2VTZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNldElzUmVzaXphYmxlOworICAgIFdLUGFnZUdldFdpbmRv
d0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0
V2luZG93RnJhbWU7CisgICAgV0tQYWdlU2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VS
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZERyYXc7
CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYWdlRGlkU2Nyb2xsOworICAgIFdLUGFnZUV4Y2VlZGVkRGF0YWJh
c2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhOworICAgIFdLUGFnZVJ1bk9wZW5QYW5lbENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuT3BlblBhbmVsOworICAgIFdLUGFnZURl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAg
ICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1Bh
Z2VIZWFkZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlYWRlckhlaWdodDsKKyAgICBXS1BhZ2VGb290ZXJIZWlnaHRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvb3RlckhlaWdodDsKKyAgICBX
S1BhZ2VEcmF3SGVhZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRyYXdIZWFkZXI7CisgICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3Rm9vdGVyOworICAgIFdL
UGFnZVByaW50RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJpbnRGcmFtZTsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk1vZGFsOworICAgIHZvaWQq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWlu
RnJhbWUKKyAgICBXS1BhZ2VTYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXI7Cisg
ICAgV0tQYWdlU2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0OworCisgICAgLy8gVmVyc2lv
biAxLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKKyAgICBXS1BhZ2VNb3VzZURpZE1v
dmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSB1bmF2YWlsYWJsZVBsdWdp
bkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsKKworICAgIC8vIFZlcnNpb24g
Mi4KKyAgICBXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNob3dDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VIaWRlQ29sb3JQ
aWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVD
b2xvclBpY2tlcjsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tl
ZDsKKyAgICAKKyAgICAvLyBWZXJzaW9uIDMuCisgICAgV0tQYWdlUGlubmVkU3RhdGVEaWRDaGFu
Z2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaW5uZWRTdGF0ZURp
ZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNC4KKyAgICBXS1BhZ2VEaWRCZWdpblRyYWNraW5n
UG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxsYmFjayAgICAgICAgICAgICAgIGRpZEJlZ2luVHJh
Y2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzczsKKyAgICBXS1BhZ2VEaWRSZWNvZ25pemVMb25n
TW91c2VQcmVzc0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFJlY29nbml6
ZUxvbmdNb3VzZVByZXNzOworICAgIFdLUGFnZURpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9u
Z01vdXNlUHJlc3NDYWxsYmFjayAgICAgICAgICAgICAgZGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRp
YWxMb25nTW91c2VQcmVzczsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS1BhZ2VEZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgIGRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworfSBXS1BhZ2VVSUNsaWVu
dFY1OworCiBlbnVtIHsga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb24gV0tfRU5VTV9ERVBS
RUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lvbiBudW1iZXIgaW5zdGVhZCIpID0gMiB9Owog
dHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIGludCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wNWZkM2U2MjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OworCitXS1R5cGVJRCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlw
ZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93
KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RSZWYpCit7CisgICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+YWxs
b3coKTsKK30KKwordm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQor
eworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmRlbnkoKTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjU0NWQzMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsMzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisgKi8KKworI2lmbmRlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZp
bmUgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tC
YXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tf
RVhQT1JUIFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsK
KworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CisK
KyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XZWJLaXQyX0MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJL
aXQyX0MuaAppbmRleCA1YTcxMmNkLi5lMzJiYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dlYktpdDJfQy5oCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSA8V2ViS2l0
L1dLVVJMLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLVVJMUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdl
YktpdC9XS1VSTFJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaD4KIAogI2lmIGRlZmluZWQoX19PQkpDX18pICYmIF9fT0JKQ19fCiAjaW1w
b3J0IDxXZWJLaXQvV0tWaWV3Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTdlNTk1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2Vy
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaCIKKworI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldl
YlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAg
ICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMoKQoreworICAgIGZvciAoYXV0byYgcmVx
dWVzdCA6IG1fcGVuZGluZ1JlcXVlc3RzLnZhbHVlcygpKQorICAgICAgICByZXF1ZXN0LT5pbnZh
bGlkYXRlKCk7CisKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5jbGVhcigpOworfQorCitQYXNzUmVm
UHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBi
b29sIGF1ZGlvLCBib29sIHZpZGVvKQoreworICAgIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5PiByZXF1ZXN0ID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
Y3JlYXRlKCp0aGlzLCB1c2VyTWVkaWFJRCwgYXVkaW8sIHZpZGVvKTsKKyAgICBtX3BlbmRpbmdS
ZXF1ZXN0cy5hZGQodXNlck1lZGlhSUQsIHJlcXVlc3QuZ2V0KCkpOworICAgIHJldHVybiByZXF1
ZXN0LnJlbGVhc2UoKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1
c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQoreworICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3BlbmRpbmdSZXF1ZXN0cy50YWtlKHVzZXJN
ZWRpYUlEKSkKKyAgICAgICAgcmV0dXJuOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAg
ICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2Vy
TWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQpLCBtX3BhZ2UucGFn
ZUlEKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dlZCk7CisjZW5kaWYKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMTcxM2IKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKyNkZWZpbmUgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaAorCisjaW5jbHVkZSAiVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmKTsKKworICAg
IHZvaWQgaW52YWxpZGF0ZVJlcXVlc3RzKCk7CisKKyAgICAvLyBDcmVhdGUgYSByZXF1ZXN0IHRv
IGJlIHByZXNlbnRlZCB0byB0aGUgdXNlci4KKyAgICBQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIGJv
b2wgYXVkaW8sIGJvb2wgdmlkZW8pOworCisgICAgLy8gQ2FsbGVkIGJ5IFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkgd2hlbiBhIGRlY2lzaW9uIGlzIG1hZGUgYnkgdGhlIHVzZXIuCisg
ICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90LCBi
b29sIGFsbG93KTsKKworcHJpdmF0ZToKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fcGVuZGluZ1JlcXVlc3RzOworICAgIFdl
YlBhZ2VQcm94eSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJiMmE4ZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmNwcApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVz
c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUg
dG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5oIgorCisjaW5jbHVkZSAiQVBJTnVtYmVyLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdI
YXNoLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9v
bCBhdWRpbywgYm9vbCB2aWRlbykKKyAgICA6IG1fbWFuYWdlcihtYW5hZ2VyKQorICAgICwgbV91
c2VyTWVkaWFJRCh1c2VyTWVkaWFJRCkKK3sKKyAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEFQ
STo6T2JqZWN0Pj4gcGFyYW1ldGVyc01hcDsKKyAgICBwYXJhbWV0ZXJzTWFwLnNldChBU0NJSUxp
dGVyYWwoImF1ZGlvIiksIEFQSTo6Qm9vbGVhbjo6Y3JlYXRlKGF1ZGlvKSk7CisgICAgcGFyYW1l
dGVyc01hcC5zZXQoQVNDSUlMaXRlcmFsKCJ2aWRlbyIpLCBBUEk6OkJvb2xlYW46OmNyZWF0ZSh2
aWRlbykpOworICAgIG1fbWVkaWFQYXJhbWV0ZXJzID0gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3Jl
YXRlKFdURjo6bW92ZShwYXJhbWV0ZXJzTWFwKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6YWxsb3coKQoreworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNl
ck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIHRydWUpOworfQorCit2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkoKQoreworICAgIG1fbWFuYWdl
ci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIGZh
bHNlKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlk
YXRlKCkKK3sKKyAgICBtX21hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5mMDQ3MjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApAQCAtMCwwICsx
LDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw
MjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHlfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKKworI2lu
Y2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rpb25hcnkuaCIKKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk7CisKK2NsYXNzIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2Jq
ZWN0OjpUeXBlOjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdD4geworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3Qg
dXNlck1lZGlhSUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwg
dXNlck1lZGlhSUQsIGF1ZGlvLCB2aWRlbykpOworICAgIH0KKworICAgIHZvaWQgYWxsb3coKTsK
KyAgICB2b2lkIGRlbnkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworCisgICAgUGFzc1Jl
ZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBtZWRpYVBhcmFtZXRlcnMoKSBjb25zdCB7IHJldHVy
biBtX21lZGlhUGFyYW1ldGVyczsgfQorCitwcml2YXRlOgorICAgIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmLCB1
aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbyk7CisKKyAgICBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbV9tYW5hZ2VyOworICAgIHVpbnQ2
NF90IG1fdXNlck1lZGlhSUQ7CisgICAgUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IG1fbWVk
aWFQYXJhbWV0ZXJzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggM2FjYTRlYy4uYjk3OWNmOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRl
ICJQcmludEluZm8uaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRD
aGVja2VyU3RhdGUuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3
YXJkTGlzdC5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKQEAgLTI4MCw2
ICsyODEsNyBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xp
ZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIHVpbgogI2VuZGlmCiAgICAgLCBtX2dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQogICAgICwgbV9ub3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCisgICAgLCBtX3VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKICAgICAsIG1fdmlld1N0YXRlKFZpZXdTdGF0ZTo6
Tm9GbGFncykKICAgICAsIG1fdmlld1dhc0V2ZXJJbldpbmRvdyhmYWxzZSkKICAgICAsIG1fYmFj
a0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKCp0aGlzKSkKQEAgLTQ2NzQs
NiArNDY3NiwxOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlz
c2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsCiAgICAgcmVxdWVzdC0+ZGVueSgp
OwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdp
bklkZW50aWZpZXIsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pCit7CisgICAgV2ViRnJhbWVQcm94
eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAgIE1FU1NBR0VfQ0hF
Q0soZnJhbWUpOworCisgICAgUmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBXZWJT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tRGF0YWJhc2VJ
ZGVudGlmaWVyKG9yaWdpbklkZW50aWZpZXIpKTsKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eT4gcmVxdWVzdCA9IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmNyZWF0ZVJlcXVlc3QodXNlck1lZGlhSUQsIGF1ZGlvLCB2aWRlbyk7CisKKyAgICBp
ZiAoIW1fdWlDbGllbnQtPmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
KHRoaXMsIGZyYW1lLCBvcmlnaW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpKQorICAgICAgICByZXF1
ZXN0LT5kZW55KCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9u
UGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5n
KQogewogICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDEwMjljNWYuLmU1ZGUxMmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNs
dWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVu
c2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiVmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlSW5mby5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgIldLUGFn
ZVByaXZhdGUuaCIKQEAgLTEyNCw2ICsxMjUsNyBAQCBjbGFzcyBEcmFnRGF0YTsKIGNsYXNzIEZs
b2F0UmVjdDsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBjbGFzcyBJbnRTaXplOworY2xhc3MgTWVk
aWFDb25zdHJhaW50c0ltcGw7CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CiBjbGFzcyBSdW5Mb29w
T2JzZXJ2ZXI7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CkBAIC0xMDMyLDYgKzEwMzQsOSBAQCBwcml2
YXRlOgogICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUs
IGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0
X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWlu
dDY0X3QgZXhwZWN0ZWRVc2FnZSwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpF
eGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseT4pOwogICAgIHZvaWQgcmVhY2hlZEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIs
IHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgUGFzc1Jl
ZlB0cjxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhOjpEZWxheWVkUmVwbHk+KTsKICAgICB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1p
c3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBT
dHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CisKKyAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0
cmluZyBvcmlnaW5JZGVudGlmaWVyLCBib29sIGF1ZGlvLCBib29sIHZpZGVvKTsKKwogICAgIHZv
aWQgcnVuTW9kYWwoKTsKICAgICB2b2lkIG5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJl
Y3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZvaWQgcmVjb21tZW5kZWRTY3JvbGxi
YXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKTsKQEAgLTEzNjgsNiArMTM3Myw4IEBA
IHByaXZhdGU6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBt
X2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogICAgIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOwogCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkg
bV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisKICAgICBXZWJDb3JlOjpWaWV3
U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlOwogICAgIGJvb2wgbV92aWV3V2FzRXZlckluV2luZG93
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgppbmRleCA0YTZmZDU3Li5lOGE1YmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI1Niw2ICsyNTYsMTEgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIEdlb2xvY2F0aW9uIG1lc3NhZ2VzCiAgICAg
UmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9u
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQogICAgIAorI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgIyBNZWRpYVN0ZWFtIG1lc3NhZ2VzCisgICAgUmVx
dWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIGJvb2wgYXVkaW8sIGJvb2wg
dmlkZW8pCisjZW5kaWYKKwogICAgICMgTm90aWZpY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVz
dE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBTdHJpbmcgb3JpZ2lu
SWRlbnRpZmllcikKICAgICBTaG93Tm90aWZpY2F0aW9uKFN0cmluZyB0aXRsZSwgU3RyaW5nIGJv
ZHksIFN0cmluZyBpY29uVVJMLCBTdHJpbmcgdGFnLCBTdHJpbmcgbGFuZywgU3RyaW5nIGRpciwg
U3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQw
YTkyZjkuLjAzMmU4MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTc4OSw2ICs3ODksMTQgQEAKIAkJM0Y4ODlEMTQxODg3NzhD
OTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODg5RDEyMTg4Nzc4QzkwMEZF
QURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gKi87IH07CiAJCTNGODg5
RDE1MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODg5RDEzMTg4
Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCAqLzsgfTsK
IAkJM0Y4ODlEMTcxODg3ODU5MzAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg4OUQw
RDE4ODc2OTlDMDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSAqLzsgfTsK
KwkJNEEzQ0MxOEExOUIwNjNFNzAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRBNDEwRjM5MTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJCTRBM0NDMThCMTlCMDY0MEYwMEQxNEFFRiAv
KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBGM0ExOUFGN0IwNDAwMkVCQUI1
IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi87IH07CisJCTRB
M0NDMThDMTlCMDY0MTUwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEw
RjNCMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cCAqLzsgfTsKKwkJNEEzQ0MxOEQxOUIwNjQxOTAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRBNDEwRjNDMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmggKi87IH07CisJCTRBM0NDMThFMTlCMDdCODUwMEQxNEFFRiAvKiBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM1MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmNwcCAqLzsgfTsKKwkJNEEzQ0MxOEYxOUIwN0I4QTAwRDE0QUVGIC8q
IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM2MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNEE0MTBGNDQxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0MjE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNEE0MTBGNEExOUFGN0I4MDAwMkVC
QUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0ODE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1l
ZGlhQ2xpZW50LmNwcCAqLzsgfTsKIAkJNEY2MDE0MzIxNTVDNUFBMjAwMUZCREUwIC8qIEJsb2Nr
aW5nUmVzcG9uc2VNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmgg
Ki87IH07CiAJCTUxMDIxRTlDMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVu
dE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLzsg
fTsKIAkJNTEwMjc0MzIxOTgxQUY4RTAwODE2NUVEIC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkJBMTgw
NjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI4MDMsNiArMjgxMSwxNiBAQAogCQkz
Rjg4OUQxMjE4ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1tOyBwYXRoID0gaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4ODlEMTMxODg3NzhD
OTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDsg
cGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4ODlEMTYxODg3N0EyNDAwRkVBREFGIC8qIFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHBhdGggPSBpb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQx
MEYzNTE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGMzYxOUFG
N0FDMzAwMkVCQUI1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzOTE5QUY3QjA0MDAyRUJBQjUgLyog
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzQTE5QUY3QjA0
MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGM0IxOUFG
N0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjNDMTlBRjdC
MDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGNDIxOUFGN0IyNzAwMkVCQUI1
IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEY0MzE5QUY3QjI3MDAyRUJB
QjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEY0ODE5QUY3QjgwMDAyRUJBQjUgLyog
V2ViVXNlck1lZGlhQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYlVzZXJNZWRpYUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTRBNDEwRjQ5MTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVkaWFDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVXNlck1lZGlhQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2lu
Z1Jlc3BvbnNlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NraW5n
UmVzcG9uc2VNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMDMxRjYxMzc5
Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVk
ZUluSW5kZXggPSAwOyBwYXRoID0gU2VjSXRlbVNoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250
ZXh0TWVudUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNTE0Nyw2ICs1MTY1LDE1IEBACiAJCQlwYXRoID0gQ29jb2E7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwogCQl9OworCQk0QTQxMEY0MTE5QUY3QjI3MDAyRUJBQjUgLyogTWVkaWFT
dHJlYW0gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTRB
NDEwRjQyMTlBRjdCMjcwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwICovLAorCQkJCTRBNDEwRjQzMTlBRjdCMjcwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gTWVkaWFTdHJlYW07
CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MTA1QjBEMjE2MkY3QTVFMDBF
Mjc3MDkgLyogTmV0d29yayAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCkBAIC01NjA1LDYgKzU2MzIsNyBAQAogCQlCQzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyog
V2ViUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJNEE0MTBGNDExOUFGN0IyNzAwMkVCQUI1IC8qIE1lZGlhU3RyZWFtICovLAogCQkJCTUxMkUz
NTJBMTMwQjU1OTkwMEFCRDE5QSAvKiBBcHBsaWNhdGlvbkNhY2hlICovLAogCQkJCTdDNkU3MEY4
MThCMkQ0N0UwMEYyNEUyRSAvKiBjb2NvYSAqLywKIAkJCQkzMzA5MzQ0QjEzMTVCOTNBMDA5N0E3
QkMgLyogQ29va2llcyAqLywKQEAgLTU2NDIsNiArNTY3MCw4IEBACiAJCUJDMDMyRDVEMTBGNDM3
MjIwMDU4QzE1QSAvKiBXZWJDb3JlU3VwcG9ydCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGNDgxOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJN
ZWRpYUNsaWVudC5jcHAgKi8sCisJCQkJNEE0MTBGNDkxOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVz
ZXJNZWRpYUNsaWVudC5oICovLAogCQkJCTJEMjhGM0RGMTg4NUNDQjQwMDRCOUVBRSAvKiBpb3Mg
Ki8sCiAJCQkJQkMxMTFBREUxMTJGNUI5QTAwMzM3QkFCIC8qIG1hYyAqLywKIAkJCQkxQTcyODQ0
NDE5NTlFRDEwMDAwN0JDRTUgLyogU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAgKi8sCkBAIC01
NzQ2LDYgKzU3NzYsMTAgQEAKIAkJQkMwMzJEQzMxMEY0MzgyNjAwNThDMTVBIC8qIFVJUHJvY2Vz
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBG
MzkxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcCAqLywKKwkJCQk0QTQxMEYzQTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLywKKwkJCQk0QTQxMEYzQjE5QUY3QjA0MDAy
RUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgKi8sCisJCQkJNEE0
MTBGM0MxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
aCAqLywKIAkJCQkyREE5NDRBODE4ODRFOUFCMDBFRDg2REIgLyogaW9zICovLAogCQkJCUJDMDMy
REM0MTBGNDM4N0MwMDU4QzE1QSAvKiBBUEkgKi8sCiAJCQkJNTEyRjU4OEQxMkE4ODM2RjAwNjI5
NTMwIC8qIEF1dGhlbnRpY2F0aW9uICovLApAQCAtNTkxNiw2ICs1OTUwLDggQEAKIAkJQkMwQzM3
NjYxMEY4MDc2NjAwNzZEN0NCIC8qIEMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTRBNDEwRjM1MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk0QTQxMEYzNjE5QUY3QUMzMDAyRUJBQjUgLyog
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oICovLAogCQkJCTUxMjNDRjE4MTMzRDI1RTYw
MDU2RjgwMCAvKiBjZyAqLywKIAkJCQk2RUU4NDlDNDEzNjhEOTA0MDAzOEQ0ODEgLyogbWFjICov
LAogCQkJCUJDQjYzNDc3MTE2QkYxMDYwMDYwMzIxNSAvKiBXZWJLaXQyX0MuaCAqLywKQEAgLTcx
NDQsNiArNzE4MCw3IEBACiAJCQkJMUFBNDFBQjUxMkMwMkVDNDAwMkJFNjdCIC8qIEVkaXRvclN0
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUIxNUE4NTEzODQzQTM5MDAzMjFBRDggLyogRW52
aXJvbm1lbnRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBN0M2Q0RCMTM3ODk1MDgw
MEI5QzA0RCAvKiBFbnZpcm9ubWVudFZhcmlhYmxlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEEz
Q0MxOEYxOUIwN0I4QTAwRDE0QUVGIC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQTU3NUZCMTQ5NkI1MjYwMEE0RUUwNiAvKiBFdmVudERpc3Bh
dGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOTBDMUY0MTI2NEZENzEwMDNFNDRENCAvKiBG
aW5kQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5MTAwNzExMjY2NzVDNDAwMTg0
MkY1IC8qIEZpbmRJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtNzU1Myw2ICs3NTkwLDcg
QEAKIAkJCQk1MTgzNTNEQjE4ODVCRjhDMDBEOUZFNDQgLyogSURCU2VyaWFsaXphdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUFERjU5MUIxODkwNTI4RTAwNDNDMTQ1IC8qIFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTc0NEYwMTI2MzhGQjMwMDZGMEYx
MiAvKiBXZWJQb3B1cEl0ZW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTRBM0NDMThEMTlCMDY0MTkw
MEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlEM0I5NDg0NzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzU3NEU2MzEyNjdEMDgwMDA2RjBGMTIgLyogV2ViUG9wdXBNZW51UHJv
eHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDOEVCMTE3MThEQjZBMTkwMDc5MTdDMiAvKiBXS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC03NTgwLDYgKzc2MTgsNyBAQAog
CQkJCTM3NjA4ODFGMTUwNDEzRTkwMEZDODJDNyAvKiBXZWJSZW5kZXJPYmplY3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxMjE3NDY1MTY0QzIxMzcwMDM3QTVDMSAvKiBXZWJSZXNvdXJjZUJ1ZmZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMzNjc2MzAxMzBDOTk5ODAwNkM5REUyIC8qIFdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTNDQzE4QjE5QjA2NDBG
MDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBQUYwODlCMTkyNjdFRTUwMEI2MzkwQyAvKiBXS1VzZXJTY3JpcHQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTMzMzY3NjU2MTMwQzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREE5NDRBNDE4
ODRFNEYwMDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmggaW4gSGVhZGVycyAqLywKQEAgLTg2NTQs
NyArODY5Myw5IEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQk0QTQxMEY0NDE5QUY3QjI3
MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDNUQyNEExMTZDQzNCOUUwMDdENTQ2MSAvKiBDaGlsZFByb2Nlc3NNYWlu
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNEE0MTBGNEExOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVz
ZXJNZWRpYUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTkwNDUsNiArOTA4Niw3IEBACiAJ
CQkJMUEwRjI5RTMxMjBCNDQ0MjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTFERjYzMTIxOEUwQjdDODAwM0EzRTJBIC8qIERvd25sb2FkQ2xp
ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRjI5Q0IxMjBCMzcxNjAwNTNEMUI5IC8qIFZp
c2l0ZWRMaW5rVGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNEEzQ0MxOEExOUIwNjNFNzAw
RDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBQzEzMzdGMTg1OTBBRTQwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RS
ZWdpc3RyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNFREExMkUyMTUyQ0QxQUUwMEQ5RTA4RCAv
KiBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyRTM1
MkUxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtOTE2Nyw2ICs5MjA5LDcgQEAKIAkJCQk1MTgzNDU5MjEzNDUzMkU5MDA5
MkI2OTYgLyogV2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
RDAyRjY0MTMyRUM1QjkwMEJFQUE5NiAvKiBXZWJJY29uRGF0YWJhc2VNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU3MTkzQkUxOEMxNEE0NDAwMkQwRjEyIC8qIFdLRm9y
bVNlbGVjdENvbnRyb2wubW0gaW4gU291cmNlcyAqLywKKwkJCQk0QTNDQzE4RTE5QjA3Qjg1MDBE
MTRBRUYgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyRERGNzMxNjE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVD
b2xsZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExQjI0QTYxMzJFMDk1NzAwMDY1QTBD
IC8qIFdlYkljb25EYXRhYmFzZVByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRDAyRjZC
MTMyRUM3MzcwMEJFQUE5NiAvKiBXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTkzMjksNiArOTM3Miw3IEBACiAJCQkJQkM0MDc2MjgxMjRG
RjA0MDAwNjhGMjBBIC8qIFdLQ2VydGlmaWNhdGVJbmZvTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTE1RTc3MjcxODNERDZGNjAwMDcyMDNGIC8qIEFzeW5jUmVxdWVzdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0EyODRENjE0OTJGMkM3MDAxRjkwNDIgLyogV0tDb25uZWN0aW9uLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJNEEzQ0MxOEMxOUIwNjQxNTAwRDE0QUVGIC8qIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYwQzM2NTgxOEMw
NTFCQTAwRjYwN0Q3IC8qIFJlbW90ZUxheWVyVHJlZUhvc3RJT1MubW0gaW4gU291cmNlcyAqLywK
IAkJCQkwRjBDMzY1QzE4QzA1Q0ExMDBGNjA3RDcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eUlPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNEE2Mjk2MTQ3MzEzQTAwMDZDNjgx
QSAvKiBXS0Nvbm5lY3Rpb25SZWYuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNTZkODFlOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmNwcApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBT
LkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
CisjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAi
V2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHVpbnQ2NF90IGdlbmVy
YXRlUmVxdWVzdElEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlUmVxdWVzdElEID0g
MTsKKyAgICByZXR1cm4gdW5pcXVlUmVxdWVzdElEKys7Cit9CisKK1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBh
Z2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChQYXNzUmVmUHRyPFVzZXJNZWRpYVJl
cXVlc3Q+IHBycFJlcXVlc3QpCit7CisgICAgUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVl
c3QocHJwUmVxdWVzdCk7CisgICAgRnJhbWUqIGZyYW1lID0gcmVxdWVzdC0+ZnJhbWUoKTsKKyAg
ICBBU1NFUlQoZnJhbWUpOworICAgIGlmICghZnJhbWUpIHsKKyAgICAgICAgcmVxdWVzdC0+dXNl
ck1lZGlhQWNjZXNzRGVuaWVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1aW50
NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOworICAgIG1faWRUb1JlcXVlc3RN
YXAuc2V0KHJlcXVlc3RJRCwgcmVxdWVzdCk7CisgICAgbV9yZXF1ZXN0VG9JRE1hcC5zZXQocmVx
dWVzdCwgcmVxdWVzdElEKTsKKworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpm
cm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgQVNTRVJUKHdlYkZyYW1lKTsKKworICAgIFNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4gPSByZXF1ZXN0LT5zZWN1cml0eU9yaWdpbigpOworICAgIG1fcGFn
ZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yRnJhbWUocmVxdWVzdElELCB3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBvcmlnaW4tPmRhdGFiYXNl
SWRlbnRpZmllcigpLCByZXF1ZXN0LT5yZXF1aXJlc0F1ZGlvKCksIHJlcXVlc3QtPnJlcXVpcmVz
VmlkZW8oKSkpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6
Y2FuY2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIHVpbnQ2NF90
IHJlcXVlc3RJRCA9IG1fcmVxdWVzdFRvSURNYXAudGFrZShyZXF1ZXN0KTsKKyAgICBpZiAoIXJl
cXVlc3RJRCkKKyAgICAgICAgcmV0dXJuOworICAgIG1faWRUb1JlcXVlc3RNYXAucmVtb3ZlKHJl
cXVlc3RJRCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpk
aWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwg
Ym9vbCBhbGxvd2VkKQoreworICAgIFJlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0ID0g
bV9pZFRvUmVxdWVzdE1hcC50YWtlKHJlcXVlc3RJRCk7CisgICAgaWYgKCFyZXF1ZXN0KQorICAg
ICAgICByZXR1cm47CisgICAgbV9yZXF1ZXN0VG9JRE1hcC5yZW1vdmUocmVxdWVzdCk7CisKKyAg
ICBpZiAoYWxsb3dlZCkKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgp
OworICAgIGVsc2UKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0MzY5MzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5k
ZWYgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gKKyNkZWZpbmUgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgVXNlck1lZGlhUmVxdWVzdDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlBhZ2U7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciB7Citw
dWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdl
YlBhZ2UmKTsKKworICAgIHZvaWQgc3RhcnRSZXF1ZXN0KFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNl
ck1lZGlhUmVxdWVzdD4pOworICAgIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpVc2VyTWVk
aWFSZXF1ZXN0Kik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCk7CisKK3ByaXZhdGU6Cisg
ICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVx
dWVzdD4+IElEVG9SZXF1ZXN0TWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8V2ViQ29y
ZTo6VXNlck1lZGlhUmVxdWVzdD4sIHVpbnQ2NF90PiBSZXF1ZXN0VG9JRE1hcDsKKyAgICBJRFRv
UmVxdWVzdE1hcCBtX2lkVG9SZXF1ZXN0TWFwOworICAgIFJlcXVlc3RUb0lETWFwIG1fcmVxdWVz
dFRvSURNYXA7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyNzNjOGYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVz
ZXJNZWRpYUNsaWVudC5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5oIgorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xsZXIuaCIKKyNp
bmNsdWRlICJVc2VyTWVkaWFSZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlVzZXJNZWRpYUNsaWVudDo6V2ViVXNlck1l
ZGlhQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9p
ZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlz
OworfQorCit2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oUGFzc1Jl
ZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0KQoreworICAgIG1fcGFnZS51c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5zdGFydFJlcXVlc3QocmVxdWVzdCk7Cit9CisKK3Zv
aWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QqIHJl
cXVlc3QpCit7CisgICAgbV9wYWdlLnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigp
LmNhbmNlbFJlcXVlc3QocmVxdWVzdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdDsKKwor
I2VuZGlmIC8vIE1FRElBX1NUUkVBTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ0NTlhZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50
LmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBXZWJVc2VyTWVkaWFD
bGllbnRfaAorI2RlZmluZSBXZWJVc2VyTWVkaWFDbGllbnRfaAorI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYUNsaWVudC5oPgorI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsK
KworY2xhc3MgV2ViVXNlck1lZGlhQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OlVzZXJNZWRpYUNs
aWVudCB7CitwdWJsaWM6CisgICAgV2ViVXNlck1lZGlhQ2xpZW50KFdlYlBhZ2UmKTsKKworcHJp
dmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+
KTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1
ZXN0Kik7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gV2ViVXNl
ck1lZGlhQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCA2ZWE3NmFjLi4zMDE3MGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05OCw2ICs5OCw3IEBACiAjaW5jbHVkZSAi
V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVW5kb1N0ZXAuaCIKICNp
bmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJXZWJVc2VyTWVk
aWFDbGllbnQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9BcmNoaXZlUmVzb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5o
PgpAQCAtMjg1LDYgKzI4Niw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBj
b25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShH
RU9MT0NBVElPTikKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
dGhpcykKICNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgLCBtX3VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKKyNlbmRpZgogICAgICwgbV9jYW5SdW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwocGFyYW1ldGVycy5jYW5SdW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWwpCiAgICAgLCBtX2NhblJ1bk1vZGFsKHBhcmFtZXRlcnMuY2FuUnVuTW9kYWwpCiAg
ICAgLCBtX2lzUnVubmluZ01vZGFsKGZhbHNlKQpAQCAtMzkyLDYgKzM5Niw5IEBAIFdlYlBhZ2U6
OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQogICAgIFdlYkNvcmU6
OnByb3ZpZGVEZXZpY2VQcm94aW1pdHlUbyhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJEZXZpY2VQcm94
aW1pdHlDbGllbnQodGhpcykpOwogI2VuZGlmCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAg
ICBXZWJDb3JlOjpwcm92aWRlVXNlck1lZGlhVG8obV9wYWdlLmdldCgpLCBuZXcgV2ViVXNlck1l
ZGlhQ2xpZW50KCp0aGlzKSk7CisjZW5kaWYKIAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9S
KQogICAgIG1fcGFnZS0+c2V0UmVtb3RlSW5zcGVjdGlvbkFsbG93ZWQodHJ1ZSk7CkBAIC0zMjcy
LDYgKzMyNzksMTMgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlz
c2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELAogICAgIG5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5kaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKG5vdGlmaWNhdGlvbklELCBhbGxvd2VkKTsKIH0KIAorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBtX3VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lv
bkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkKTsKK30KKyNlbmRpZgorCiAjaWYgIVBMQVRG
T1JNKElPUykKIHZvaWQgV2ViUGFnZTo6YWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3Rh
cnRCZWZvcmVTZWxlY3Rpb24pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCBjYTQ2YmEwYS4uMTEzNzEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAi
UGx1Z2luLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJl
YWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGF0aW9uQWx0ZXJuYXRpdmUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3IuaD4KQEAgLTQ1
MCw2ICs0NTEsMTAgQEAgcHVibGljOgogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyJiBnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpIHsgcmV0dXJuIG1f
Z2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIm
IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpIHsgcmV0dXJuIG1fdXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPUykK
ICAgICBXZWJDb3JlOjpGbG9hdFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0OwogICAgIFdlYkNvcmU6
OkZsb2F0U2l6ZSBhdmFpbGFibGVTY3JlZW5TaXplKCkgY29uc3Q7CkBAIC0xMDIyLDYgKzEwMjcs
MTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Np
b25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKIAorI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlz
c2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpOworI2VuZGlm
CisKICAgICB2b2lkIGFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2Vs
ZWN0aW9uKTsKICAgICB2b2lkIGNoYW5nZVNwZWxsaW5nVG9Xb3JkKGNvbnN0IFN0cmluZyYgd29y
ZCk7CiAjaWYgVVNFKEFQUEtJVCkKQEAgLTExODcsNiArMTE5NiwxMCBAQCBwcml2YXRlOgogICAg
IEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIG1fZ2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIG1fdXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOworI2VuZGlmCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
UHJpbnRDb250ZXh0PiBtX3ByaW50Q29udGV4dDsKICNpZiBQTEFURk9STShHVEspCiAgICAgUmVm
UHRyPFdlYlByaW50T3BlcmF0aW9uR3RrPiBtX3ByaW50T3BlcmF0aW9uOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRl
eCBlOTkyNTRiLi4wZDZkNGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjY1LDYgKzI2NSwxMSBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWRSZWNlaXZlR2VvbG9jYXRp
b25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2VvbG9jYXRpb25JRCwgYm9vbCBhbGxvd2Vk
KQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICMgTWVkaWFTdGVhbQor
ICAgIERpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1l
ZGlhSUQsIGJvb2wgYWxsb3dlZCkKKyNlbmRpZgorCiAgICAgIyBOb3RpZmljYXRpb24KICAgICBE
aWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklELCBib29sIGFsbG93ZWQpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA4YjJkZGMyLi41ZmZkOWZhIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTQtMDkt
MDEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtX
SzJdIFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTaW1wbGUgQVBJIHRlc3QgZm9yIHRoZSBVc2VyTWVkaWEgcGVy
bWlzc2lvbiByZXF1ZXN0IEFQSS4gVGhlCisgICAgICAgIHJlcXVpcmVkIHRlc3QgaW5mcmFzdHJ1
Y3R1cmUgaXMgYWxzbyBhZGRlZCwgaW5zcGlyZWQgYnkgdGhlCisgICAgICAgIEdlb2xvY2F0aW9u
IGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE5ldyBBUEkgdGVzdCBmb3IgVXNlck1lZGlhCisg
ICAgICAgIFBlcm1pc3Npb24gcmVxdWVzdC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvVXNlck1lZGlhLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpk
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNrKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDogbmV3CisgICAgICAg
IGhlbHBlciBtZXRob2QgdG8gc2V0IHRoZSBwZXJtaXNzaW9uIHJlcXVlc3QgcmVzdWx0IHdpdGhv
dXQgdXNlciBpbnRlcmFjdGlvbi4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDogRGl0dG8uCisgICAgICAgIChXVFI6OkluamVjdGVk
QnVuZGxlOjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6IERpdHRvLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6IERpdHRvLgorICAg
ICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDogRGl0dG8uCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChX
VFI6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTogUGVybWlzc2lv
bgorICAgICAgICByZXF1ZXN0IGhhbmRsZXIuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpjcmVhdGVPdGhlclBhZ2UpOiBFbmFibGUgdGhlIG5ldyBVc2VyTWVkaWEKKyAgICAgICAgcGVy
bWlzc2lvbiByZXF1ZXN0IGhhbmRsZXIuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpj
cmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOiBFbmFibGUKKyAgICAg
ICAgTWVkaWFTdHJlYW0gc3VwcG9ydCwgdGhpcyBpcyBuZWVkZWQgZm9yIGdldFVzZXJNZWRpYS4K
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1
ZXMpOiBjbGVhcgorICAgICAgICBVc2VyTWVkaWEgcGVybWlzc2lvbnMgbGlzdCBhbmQgZmxhZ3Mu
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKTog
U2V0IHBlcm1pc3Npb24KKyAgICAgICAgcmVxdWVzdCByZXN1bHQgYW5kIGRpc3RwYXRjaCBpdC4K
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmhhbmRsZVVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KTogU2F2ZQorICAgICAgICByZXF1ZXN0IGFuZCBkaXNwYXRjaCBpdC4KKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0SWZQb3NzaWJsZSk6CisgICAgICAgIERpc3BhdGNoIGNhY2hlZCBwZXJtaXNzaW9uIHJl
cXVlc3RzLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdU
Ujo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToK
KwogMjAxNC0wOC0yOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gdGVzdCBjYXNlIGZpbHRlciBzdXBwb3J0IGluIHJ1bi1ndGstdGVzdHMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CmluZGV4IGVmNTFhNGEuLjRmYzdkYmIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dApAQCAtMTYzLDYgKzE2Myw4IEBAIGFkZF9leGVjdXRh
YmxlKFRlc3RKYXZhU2NyaXB0Q29yZQogKQogCiB0YXJnZXRfbGlua19saWJyYXJpZXMoVGVzdEph
dmFTY3JpcHRDb3JlICR7VGVzdEphdmFTY3JpcHRDb3JlX0xJQlJBUklFU30pCithZGRfZGVwZW5k
ZW5jaWVzKFRlc3RKYXZhU2NyaXB0Q29yZSAke0ZvcndhcmRpbmdIZWFkZXJzRm9yVGVzdFdlYktp
dEFQSV9OQU1FfSkKKwogYWRkX3Rlc3QoVGVzdEphdmFTY3JpcHRDb3JlICR7VEVTVFdFQktJVEFQ
SV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L0phdmFTY3JpcHRDb3JlL1Rlc3RKYXZhU2NyaXB0
Q29yZSkKIHNldF90ZXN0c19wcm9wZXJ0aWVzKFRlc3RKYXZhU2NyaXB0Q29yZSBQUk9QRVJUSUVT
IFRJTUVPVVQgNjApCiBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoVGVzdEphdmFTY3JpcHRDb3JlIFBS
T1BFUlRJRVMgUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZICR7VEVTVFdFQktJVEFQSV9SVU5USU1F
X09VVFBVVF9ESVJFQ1RPUll9L0phdmFTY3JpcHRDb3JlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZv
cm1HVEsuY21ha2UKaW5kZXggMjhkYTVmZC4uYTM3OWJlZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Bs
YXRmb3JtR1RLLmNtYWtlCkBAIC05Nyw2ICs5Nyw3IEBAIGFkZF9leGVjdXRhYmxlKFRlc3RXZWJL
aXQyCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9SZXNpemVXaW5kb3dB
ZnRlckNyYXNoLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvUmVz
dG9yZVNlc3Npb25TdGF0ZUNvbnRhaW5pbmdGb3JtRGF0YS5jcHAKICAgICAke1RFU1RXRUJLSVRB
UElfRElSfS9UZXN0cy9XZWJLaXQyL1Nob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLmNwcAor
ICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcAogICAg
ICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvVXNlck1lc3NhZ2UuY3BwCiAgICAg
JHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9XaWxsU2VuZFN1Ym1pdEV2ZW50LmNw
cAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvV0tQYWdlR2V0U2NhbGVG
YWN0b3JOb3RaZXJvLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NTk4MGM4Li4xNTAy
YzM1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODgsNiArODgsNyBAQAogCQkzN0UxMDY0
RDE2OTc2Qzg1MDBCNzhCRDAgLyogRE9NSFRNTFRhYmxlQ2VsbENlbGxBYm92ZS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RTEwNjRBMTY5NzY3NjQw
MEI3OEJEMCAvKiBET01IVE1MVGFibGVDZWxsQ2VsbEFib3ZlLm1tICovOyB9OwogCQkzN0UzOEMz
NDE2OUI3RDAxMDA4NEMyOEMgLyogV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RTM4QzMz
MTY5QjdEMDEwMDg0QzI4QyAvKiBXZWJWaWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1t
ICovOyB9OwogCQk0NDBBMUQzOTE0QTAxMDNBMDA4QTY2RjIgLyogVVJMLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MEExRDM4MTRBMDEwM0EwMDhB
NjZGMiAvKiBVUkwuY3BwICovOyB9OworCQk0QTQxMEY0QzE5QUY3QkQ2MDAyRUJBQjUgLyogVXNl
ck1lZGlhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRBNDEwRjRCMTlBRjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVkaWEuY3BwICovOyB9OwogCQk0QkI0
MTYwMjE2ODE1QjI2MDA4MjQyMzggLyogSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QkI0MTYwMTE2ODE1
QjI2MDA4MjQyMzggLyogSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW0gKi87IH07CiAJCTRC
QjQxNjA0MTY4MTVGOTEwMDgyNDIzOCAvKiBFbGVtZW50QXRQb2ludEluV2ViRnJhbWUubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QkI0MTYwMzE2ODE1
RjkxMDA4MjQyMzggLyogRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tICovOyB9OwogCQk0QkZE
RkZBNzEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE2
MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICov
OyB9OwpAQCAtNDM2LDYgKzQzNyw4IEBACiAJCTM3RTM4QzMzMTY5QjdEMDEwMDg0QzI4QyAvKiBX
ZWJWaWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQwQTFEMzgxNEEwMTAzQTAwOEE2NkYy
IC8qIFVSTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVUkwuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NEE2MjJDMTE0QTBFMkI2MDA0ODUxNUIg
LyogV1RGU3RyaW5nVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdURlN0cmluZ1V0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQx
MEY0QjE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNSAvKiBnZXRVc2VyTWVkaWEuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGdldFVzZXJNZWRpYS5odG1sOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0QkI0MTYwMTE2ODE1QjI2MDA4MjQyMzggLyogSlNXcmFwcGVyRm9y
Tm9kZUluV2ViRnJhbWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBKU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNEJCNDE2MDMxNjgxNUY5MTAwODI0MjM4IC8qIEVsZW1lbnRBdFBvaW50SW5XZWJGcmFt
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVsZW1lbnRBdFBv
aW50SW5XZWJGcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJGREZGQTYx
MzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRs
ZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODIxLDYgKzgyNCw3
IEBACiAJCUJDOTA5NjQxMTI1NTYxNjAwMDA4Mzc1NiAvKiBXZWJLaXQyICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEY0QjE5QUY3QkQ2MDAyRUJB
QjUgLyogVXNlck1lZGlhLmNwcCAqLywKIAkJCQlDMEM1RDNCQjE0NTk4QjZGMDBBODAyQTYgLyog
bWFjICovLAogCQkJCUJDOTA5NzdCMTI1NTcxQUUwMDA4Mzc1NiAvKiBSZXNvdXJjZXMgKi8sCiAJ
CQkJQkMyNDZEOEMxMzJGMTE1QTAwQjU2RDdDIC8qIEFib3V0QmxhbmtMb2FkLmNwcCAqLywKQEAg
LTk1NCw2ICs5NTgsNyBAQAogCQlCQzkwOTc3QjEyNTU3MUFFMDAwODM3NTYgLyogUmVzb3VyY2Vz
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEY0
RDE5QUY3QkVGMDAyRUJBQjUgLyogZ2V0VXNlck1lZGlhLmh0bWwgKi8sCiAJCQkJQzA0NUY5NDYx
Mzg1QzJGODAwQzBGM0NEIC8qIDE4LWNoYXJhY3RlcnMuaHRtbCAqLywKIAkJCQlGNkI3QkU5NjE3
NDY5QjdFMDA4QTM0NDUgLyogYXNzb2NpYXRlLWZvcm0tY29udHJvbHMuaHRtbCAqLywKIAkJCQk3
NkUxODJERTE1NDc1QTgzMDBGMUZBREQgLyogYXV0by1zdWJtaXR0aW5nLWZvcm0uaHRtbCAqLywK
QEAgLTEzNTcsNiArMTM2Miw3IEBACiAJCQkJNTFGQ0Y3OUExNTM0QUM2RDAwMTA0NDkxIC8qIFNo
b3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRkRF
NjU2MTk1M0IyQzAwMEM0OEZGQSAvKiBPcHRpb25hbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
NTQwRjc3NjE1MkU0REEwMDBBNDBDOEMgLyogU2ltcGxpZnlNYXJrdXAubW0gaW4gU291cmNlcyAq
LywKKwkJCQk0QTQxMEY0QzE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUMwMkI3N0YyMTI2NjEyMTQwMDI2QkYwRiAvKiBTcGFjZWJhclNjcm9sbGlu
Zy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0QzRDE5RTE3QjFBODQyMDBDN0M0MTUgLyogTGF5
b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlFMTk0RTFCQjE3N0U1MTQ1MDA5QzRENEUgLyogU3RvcExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJl
c3BvbnNlLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
Ljk0ZjQ3OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvVXNlck1lZGlhLmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaW5jbHVkZSAiUGxh
dGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRl
ICJUZXN0LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8c3Ry
aW5nLmg+CisjaW5jbHVkZSA8dmVjdG9yPgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyBib29sIGRvbmU7CisKK3ZvaWQgZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsQmFjayhXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCit7CisgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KHBlcm1p
c3Npb25SZXF1ZXN0KTsKKyAgICBkb25lID0gdHJ1ZTsKK30KKworVEVTVChXZWJLaXQyLCBVc2Vy
TWVkaWFCYXNpYykKK3sKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQoQWRv
cHRXSywgV0tDb250ZXh0Q3JlYXRlKCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNv
bnRleHQuZ2V0KCkpOworICAgIFdLUGFnZVVJQ2xpZW50VjUgdWlDbGllbnQ7CisgICAgbWVtc2V0
KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CisKKyAgICB1aUNsaWVudC5iYXNlLnZl
cnNpb24gPSA1OworICAgIHVpQ2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0ID0gZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxs
QmFjazsKKworICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xp
ZW50LmJhc2UpOworCisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybChBZG9wdFdLLCBVdGls
OjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiZ2V0VXNlck1lZGlhIiwgImh0bWwiKSk7CisKKyAgICBk
b25lID0gZmFsc2U7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgp
KTsKKworICAgIFV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWwgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU0Zjg1MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbApAQCAtMCwwICsx
LDE0IEBACis8c2NyaXB0PgorZnVuY3Rpb24gZ290VXNlck1lZGlhKG1lZGlhU3RyZWFtKQorewor
ICAgIGNvbnNvbGUubG9nKCJHb3QgdXNlciBtZWRpYSIpOworfQorCitmdW5jdGlvbiB1c2VyTWVk
aWFFcnJvcihlcnJvcikKK3sKKyAgICBjb25zb2xlLmxvZyhlcnJvcik7Cit9CisKK3ZhciBvcHRp
b25zID0geyBhdWRpbzogZmFsc2UsIHZpZGVvOiB0cnVlfTsKK25hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEob3B0aW9ucywgZ290VXNlck1lZGlhLCB1c2VyTWVkaWFFcnJvcik7Cis8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IGJiOWE3YTAuLjA4YTE4OTggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMTY5LDYgKzE2OSw5IEBAIGludGVyZmFjZSBUZXN0
UnVubmVyIHsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRp
dHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBbRGVmYXVsdD1VbmRlZmlu
ZWRdIG9wdGlvbmFsIG9iamVjdCBhbHRpdHVkZSwgb3B0aW9uYWwgb2JqZWN0IGFsdGl0dWRlQWNj
dXJhY3ksIG9wdGlvbmFsIG9iamVjdCBoZWFkaW5nLCBvcHRpb25hbCBvYmplY3Qgc3BlZWQpOwog
ICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKERPTVN0
cmluZyBlcnJvck1lc3NhZ2UpOwogCisgICAgLy8gTWVkaWFTdHJlYW0KKyAgICB2b2lkIHNldFVz
ZXJNZWRpYVBlcm1pc3Npb24oYm9vbGVhbiB2YWx1ZSk7CisKICAgICAvLyBBdWRpbyB0ZXN0aW5n
LgogICAgIFtQYXNzQ29udGV4dF0gdm9pZCBzZXRBdWRpb1Jlc3VsdChvYmplY3QgZGF0YSk7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAKaW5kZXggN2IxZGU3MC4uMWI2ZWJkMCAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAK
QEAgLTQ1OCw2ICs0NTgsMTMgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKFdLU3RyaW5nUmVmIGVycm8KICAgICBXS0J1bmRs
ZVBvc3RNZXNzYWdlKG1fYnVuZGxlLCBtZXNzYWdlTmFtZS5nZXQoKSwgZXJyb3JNZXNzYWdlKTsK
IH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0VXNlck1lZGlhUGVybWlzc2lvbihib29sIGVu
YWJsZWQpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0
V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRVc2VyTWVkaWFQZXJtaXNzaW9u
IikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkoQWRvcHRXSywg
V0tCb29sZWFuQ3JlYXRlKGVuYWJsZWQpKTsKKyAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKG1fYnVu
ZGxlLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkpOworfQorCiB2b2lkIElu
amVjdGVkQnVuZGxlOjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wg
cGVybWlzc2l2ZSkKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUo
QWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldEN1c3RvbVBvbGljeURl
bGVnYXRlIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5oCmluZGV4IDlmNzZhOWQuLjhmMGE4NDAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmgKQEAgLTkyLDYgKzkyLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJh
Y3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3ZpZGVz
QWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNI
ZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQp
OwogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKFdL
U3RyaW5nUmVmIGVycm9yTWVzc2FnZSk7CiAKKyAgICAvLyBNZWRpYVN0cmVhbS4KKyAgICB2b2lk
IHNldFVzZXJNZWRpYVBlcm1pc3Npb24oYm9vbCk7CisKICAgICAvLyBQb2xpY3kgZGVsZWdhdGUu
CiAgICAgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVy
bWlzc2l2ZSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGQwODVmMWEuLmQ3NTFiOTUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAt
NzIwLDYgKzcyMCwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0
aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0cmluZ1JlZiBtZXNzYWdlKQogICAgIEluamVjdGVkQnVu
ZGxlOjpzaGFyZWQoKS5zZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3Io
bWVzc2FnZVdLLmdldCgpKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRVc2VyTWVkaWFQZXJt
aXNzaW9uKGJvb2wgZW5hYmxlZCkKK3sKKyAgICAvLyBGSVhNRTogdGhpcyBzaG91bGQgYmUgZG9u
ZSBieSBmcmFtZS4KKyAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc2V0VXNlck1lZGlhUGVy
bWlzc2lvbihlbmFibGVkKTsKK30KKwogYm9vbCBUZXN0UnVubmVyOjpjYWxsU2hvdWxkQ2xvc2VP
bldlYlZpZXcoKQogewogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQ
YWdlR2V0TWFpbkZyYW1lKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oCmluZGV4IGUyMWZmZjMuLjM5NGU5MDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0yNTIsNiArMjUyLDkgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRl
LCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIEpTVmFsdWVSZWYgYWx0aXR1ZGUs
IEpTVmFsdWVSZWYgYWx0aXR1ZGVBY2N1cmFjeSwgSlNWYWx1ZVJlZiBoZWFkaW5nLCBKU1ZhbHVl
UmVmIHNwZWVkKTsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFi
bGVFcnJvcihKU1N0cmluZ1JlZiBtZXNzYWdlKTsKIAorICAgIC8vIE1lZGlhU3RyZWFtCisgICAg
dm9pZCBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wpOworCiAgICAgdm9pZCBzZXRQYWdlVmlz
aWJpbGl0eShKU1N0cmluZ1JlZiBzdGF0ZSk7CiAgICAgdm9pZCByZXNldFBhZ2VWaXNpYmlsaXR5
KCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYmU4
ZjFmNy4uYzRhZmUyNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKQEAgLTE4OCw2ICsxODgsMTEgQEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFcKICAgICBUZXN0
Q29udHJvbGxlcjo6c2hhcmVkKCkuaGFuZGxlR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChw
ZXJtaXNzaW9uUmVxdWVzdCk7CiB9CiAKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0eU9y
aWdpblJlZiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVz
dCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVk
KCkuaGFuZGxlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QocGVybWlzc2lvblJlcXVlc3QpOwor
fQorCiBpbnQgVGVzdENvbnRyb2xsZXI6OmdldEN1c3RvbVRpbWVvdXQoKQogewogICAgIHJldHVy
biBtX3RpbWVvdXQ7CkBAIC0yMDIsOCArMjA3LDggQEAgV0tQYWdlUmVmIFRlc3RDb250cm9sbGVy
OjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0sK
IAogICAgIHZpZXctPnJlc2l6ZVRvKDgwMCwgNjAwKTsKIAotICAgIFdLUGFnZVVJQ2xpZW50VjIg
b3RoZXJQYWdlVUlDbGllbnQgPSB7Ci0gICAgICAgIHsgMiwgdmlldyB9LAorICAgIFdLUGFnZVVJ
Q2xpZW50VjUgb3RoZXJQYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgNSwgdmlldyB9LAogICAg
ICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAg
MCwgLy8gc2hvd1BhZ2UKICAgICAgICAgY2xvc2VPdGhlclBhZ2UsCkBAIC0yNTAsNiArMjU1LDEx
IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBv
bGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBpY2tl
cgogICAgICAgICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gdW5hdmFpbGFi
bGVQbHVnaW5CdXR0b25DbGlja2VkCisgICAgICAgIDAsIC8vIHBpbm5lZFN0YXRlRGlkQ2hhbmdl
CisgICAgICAgIDAsIC8vIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcwor
ICAgICAgICAwLCAvLyBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcworICAgICAgICAwLCAvLyBk
aWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzCisgICAgICAgIGRlY2lkZVBv
bGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LAogICAgIH07CiAgICAgV0tQYWdlU2V0
UGFnZVVJQ2xpZW50KG5ld1BhZ2UsICZvdGhlclBhZ2VVSUNsaWVudC5iYXNlKTsKIApAQCAtNDA4
LDggKzQxOCw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNv
bnN0IGNoYXIqIGFyZ3ZbXSkKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRo
T3B0aW9ucyhXS0RpY3Rpb25hcnlSZWYgb3B0aW9ucykKIHsKICAgICBtX21haW5XZWJWaWV3ID0g
c3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVdlYlZpZXc+KG1fY29udGV4dC5nZXQoKSwgbV9wYWdl
R3JvdXAuZ2V0KCksIG51bGxwdHIsIG9wdGlvbnMpOwotICAgIFdLUGFnZVVJQ2xpZW50VjIgcGFn
ZVVJQ2xpZW50ID0gewotICAgICAgICB7IDIsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKKyAgICBX
S1BhZ2VVSUNsaWVudFY1IHBhZ2VVSUNsaWVudCA9IHsKKyAgICAgICAgeyA1LCBtX21haW5XZWJW
aWV3LmdldCgpIH0sCiAgICAgICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMAogICAgICAgICAwLCAvLyBzaG93UGFnZQogICAgICAgICAwLCAvLyBjbG9zZQpAQCAt
NDU2LDYgKzQ2NiwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9w
dGlvbnMoV0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBp
Y2tlcgogICAgICAgICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgdW5hdmFpbGFibGVQ
bHVnaW5CdXR0b25DbGlja2VkLAorICAgICAgICAwLCAvLyBwaW5uZWRTdGF0ZURpZENoYW5nZQor
ICAgICAgICAwLCAvLyBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MKKyAg
ICAgICAgMCwgLy8gZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MKKyAgICAgICAgMCwgLy8gZGlk
Q2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcworICAgICAgICBkZWNpZGVQb2xp
Y3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKICAgICB9OwogICAgIFdLUGFnZVNldFBh
Z2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7CiAK
QEAgLTU0NSw2ICs1NjAsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2Vz
VG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBXS1ByZWZlcmVuY2VzU2V0Rm9udFNtb290aGluZ0xl
dmVsKHByZWZlcmVuY2VzLCBrV0tGb250U21vb3RoaW5nTGV2ZWxOb1N1YnBpeGVsQW50aUFsaWFz
aW5nKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0WFNTQXVkaXRvckVuYWJsZWQocHJlZmVyZW5jZXMs
IGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0V2ViQXVkaW9FbmFibGVkKHByZWZlcmVuY2Vz
LCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFTdHJlYW1FbmFibGVkKHByZWZlcmVu
Y2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChw
cmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRFeHBlcmlt
ZW50c0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KHByZWZlcmVuY2VzLCB0cnVlKTsKQEAg
LTY0MSw2ICs2NTcsMTEgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lz
dGVudFZhbHVlcygpCiAgICAgbV9pc0dlb2xvY2F0aW9uUGVybWlzc2lvblNldCA9IGZhbHNlOwog
ICAgIG1faXNHZW9sb2NhdGlvblBlcm1pc3Npb25BbGxvd2VkID0gZmFsc2U7CiAKKyAgICAvLyBS
ZXNldCBVc2VyTWVkaWEgcGVybWlzc2lvbnMuCisgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdHMuY2xlYXIoKTsKKyAgICBtX2lzVXNlck1lZGlhUGVybWlzc2lvblNldCA9IGZhbHNlOwor
ICAgIG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uQWxsb3dlZCA9IGZhbHNlOworCiAgICAgLy8gUmVz
ZXQgQ3VzdG9tIFBvbGljeSBEZWxlZ2F0ZS4KICAgICBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShm
YWxzZSwgZmFsc2UpOwogCkBAIC0xMzU0LDYgKzEzNzUsMzQgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6aGFuZGxlR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS0dlb2xvY2F0aW9uUGVybWlz
c2lvblIKICAgICBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0SWZQ
b3NzaWJsZSgpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRVc2VyTWVkaWFQZXJtaXNz
aW9uKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX2lzVXNlck1lZGlhUGVybWlzc2lvblNldCA9IHRy
dWU7CisgICAgbV9pc1VzZXJNZWRpYVBlcm1pc3Npb25BbGxvd2VkID0gZW5hYmxlZDsKKyAgICBk
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKTsKK30K
Kwordm9pZCBUZXN0Q29udHJvbGxlcjo6aGFuZGxlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qo
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dCkKK3sKKyAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5hcHBlbmQodXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QpOworICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0SWZQb3NzaWJsZSgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKQoreworICAgIGlm
ICghbV9pc1VzZXJNZWRpYVBlcm1pc3Npb25TZXQpCisgICAgICAgIHJldHVybjsKKworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuc2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNz
aW9uUmVxdWVzdCA9IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzW2ldLmdldCgpOworICAg
ICAgICBpZiAobV9pc1VzZXJNZWRpYVBlcm1pc3Npb25BbGxvd2VkKQorICAgICAgICAgICAgV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KHBlcm1pc3Npb25SZXF1ZXN0KTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkocGVy
bWlzc2lvblJlcXVlc3QpOworICAgIH0KKyAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
cy5jbGVhcigpOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRDdXN0b21Qb2xpY3lEZWxl
Z2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSkKIHsKICAgICBtX3BvbGljeURlbGVn
YXRlRW5hYmxlZCA9IGVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKaW5kZXggZDliZTc0OC4uNTlhN2U4OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaApAQCAtODgsNiArODgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9ja0dl
b2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKFdLU3RyaW5nUmVmIGVycm9yTWVzc2Fn
ZSk7CiAgICAgdm9pZCBoYW5kbGVHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZik7CiAKKyAgICAvLyBNZWRpYVN0cmVhbS4KKyAgICB2
b2lkIHNldFVzZXJNZWRpYVBlcm1pc3Npb24oYm9vbCk7CisgICAgdm9pZCBoYW5kbGVVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwog
ICAgIC8vIFBvbGljeSBkZWxlZ2F0ZS4KICAgICB2b2lkIHNldEN1c3RvbVBvbGljeURlbGVnYXRl
KGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZlKTsKIApAQCAtMTMzLDYgKzEzNyw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCB1cGRhdGVMYXlvdXRUeXBlRm9yVGVzdChjb25zdCBUZXN0SW52b2Nh
dGlvbiYpOwogCiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0SWZQb3NzaWJsZSgpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKCk7CiAKICAgICAvLyBXS0NvbnRleHRJbmplY3RlZEJ1
bmRsZUNsaWVudAogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKFdLQ29udGV4dFJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBt
ZXNzYWdlQm9keSwgY29uc3Qgdm9pZCopOwpAQCAtMjM3LDYgKzI0MiwxMCBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9pc0dlb2xvY2F0aW9uUGVybWlzc2lvblNldDsKICAgICBib29sIG1faXNHZW9s
b2NhdGlvblBlcm1pc3Npb25BbGxvd2VkOwogCisgICAgVmVjdG9yPFdLUmV0YWluUHRyPFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWY+PiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
czsKKyAgICBib29sIG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uU2V0OworICAgIGJvb2wgbV9pc1Vz
ZXJNZWRpYVBlcm1pc3Npb25BbGxvd2VkOworCiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlRW5h
YmxlZDsKICAgICBib29sIG1fcG9saWN5RGVsZWdhdGVQZXJtaXNzaXZlOwogCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDM2Mzc3MDMuLjg3YzQ2YzQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC00NzgsNiArNDc4
LDEzIEBAIHZvaWQgVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
KyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFVz
ZXJNZWRpYVBlcm1pc3Npb24iKSkgeworICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2Fn
ZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKyAgICAgICAgV0tCb29sZWFuUmVmIGVu
YWJsZWRXSyA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOworICAgICAg
ICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkuc2V0VXNlck1lZGlhUGVybWlzc2lvbihXS0Jvb2xl
YW5HZXRWYWx1ZShlbmFibGVkV0spKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlm
IChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0Q3VzdG9tUG9s
aWN5RGVsZWdhdGUiKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkp
ID09IFdLRGljdGlvbmFyeUdldFR5cGVJRCgpKTsKICAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1l
c3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2Fn
ZUJvZHkpOwotLSAKMi4xLjA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239478</attachid>
            <date>2014-10-08 09:17:32 -0700</date>
            <delta_ts>2014-10-13 02:24:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>114960</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAwM2E0YjBkOWM3Yzk0NWQ5OThiYWNmMzBjMTY3YWJkZDljMWQ3YjMzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDIgU2VwIDIwMTQgMTE6NTY6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDMxICsrKysrKysrCiAuLi4vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQtZXhwZWN0
ZWQudHh0ICAgICAgICB8IDEwICsrKwogLi4uL21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lv
bi1hbGxvd2VkLmh0bWwgICAgfCAzNCArKysrKysrKwogLi4uL2RlbGF5ZWQtcGVybWlzc2lvbi1k
ZW5pZWQtZXhwZWN0ZWQudHh0ICAgICAgICAgfCAxMCArKysKIC4uLi9tZWRpYXN0cmVhbS9kZWxh
eWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwgICAgIHwgMzcgKysrKysrKysrCiBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dCAgICB8IDEwICsrKwogTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sICAgICAgICAgICAgfCAyOSArKysrKysr
CiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0ICB8ICA5
ICsrKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwgICAgICAgICAg
fCAyNiArKysrKysKIC4uLi9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQg
ICAgICAgIHwgMTEgKysrCiAuLi4vbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJl
YWR5Lmh0bWwgICB8IDQ0ICsrKysrKysrKysrCiAuLi4vbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3Rl
ZC1mcmFtZS1leHBlY3RlZC50eHQgICB8IDExICsrKwogLi4uc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQgfCAxMyArKysKIC4uLi9kaXNjb25uZWN0ZWQtZnJh
bWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCAgICAgIHwgNTMgKysrKysrKysrKysrKwogLi4uL21l
ZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbCAgICAgfCA0MiArKysrKysr
KysrCiAuLi4vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIxLmh0bWwgICAgICAgICB8
ICA4ICsrCiAuLi4vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0bWwgICAgICAg
ICB8ICA4ICsrCiAuLi4vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sICAg
ICAgICB8ICA4ICsrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyAg
ICAgICAgICB8IDM4ICsrKysrKysrLQogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMgICAgICAgICAgfCAgMSArCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDIyICsrKysrKwogLi4uL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAgICAgICAgfCAxMSArKysKIC4uLi9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIHwgIDcgKysKIFNvdXJjZS9XZWJLaXQyL0NN
YWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKysKIFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNzQgKysrKysrKysrKysrKysr
KysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCAgICAgICAgICAgICAgIHwg
IDEgKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oICAgICAgICAgICAgICAgICAg
fCAgMSArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggICAgICAg
ICB8ICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCAgICAg
ICAgIHwgIDIgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgICAg
ICAgICAgfCAxMSArKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNs
aWVudC5oICAgIHwgNjkgKysrKysrKysrKysrKysrKwogLi4uL0FQSS9DL1dLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuY3BwICAgICAgICAgfCA0MCArKysrKysrKysrCiAuLi4vVUlQcm9jZXNz
L0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCB8IDM3ICsrKysrKysrKwogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oICAgICAgICAgfCAgMSArCiAu
Li4vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICAgICB8IDYzICsr
KysrKysrKysrKysrKwogLi4uL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmggICAgICAgfCA0OCArKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmNwcCAgfCA1NCArKysrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAgICB8IDU0ICsrKysrKysrKysrKysKIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgMTQgKysr
KwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oICAgICAgICAgICAgfCAg
NyArKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiAg
fCAgNSArKwogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
ICAgfCA0NCArKysrKysrKysrKwogLi4uL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAgICAgICAgICAgfCA5MiArKysrKysrKysrKysrKysrKysrKysrCiAuLi4vVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggICAgICAgICAgICB8IDU4ICsrKysrKysrKysrKysr
CiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAgICAgICAgICB8IDU1
ICsrKysrKysrKysrKysKIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRp
YUNsaWVudC5oIHwgNDUgKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCAgICAgIHwgMTQgKysrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCAgICAgICAgfCAxMyArKysKIC4uLi9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIHwgIDUgKysKIFRvb2xzL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysrKysKIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgIHwgIDIgKwogVG9v
bHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZSAgICAgICAgICAgICAgfCAgMSArCiAu
Li4vVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICB8ICA2ICsr
CiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcCAgICB8IDYz
ICsrKysrKysrKysrKysrKwogLi4uL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZXRVc2Vy
TWVkaWEuaHRtbCAgfCAxNCArKysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGwgICAgICAgICB8ICAzICsKIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHAgICAgICAgICAgICAgIHwgIDcgKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5oICAgICAgICAgICAgICAgIHwgIDMgKwogLi4uL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgfCAgNiArKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggfCAgMyArCiBUb29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcCAgICAgICAgICB8IDU5ICsrKysrKysrKysrKystCiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggICAgICAgICAgICB8ICA5ICsrKwogVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgICAgICAgICAgfCAgNyArKwog
NjMgZmlsZXMgY2hhbmdlZCwgMTUxMSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJt
aXNzaW9uLWFsbG93ZWQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5odG1sCiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1p
c3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1sCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1leHBlY3RlZC50
eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9y
Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1
Y2Nlc3MtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1l
eHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS5odG1sCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlz
Y29ubmVjdGVkLWZyYW1lLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlz
c2lvbi1kZW5pZWQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3Vy
Y2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMS5odG1sCiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2Vz
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rp
c2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCiBj
cmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
Y3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCiBjcmVhdGUgbW9kZSAxMDA2
NDQgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRpYS5odG1sCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDk4NzIwMzAuLjU3MGFkYTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxNC0wOS0w
MSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dL
Ml0gVXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFNpbXBsZSBVc2VyTWVkaWEgcGVybWlzc2lvbiByZXF1ZXN0IHRl
c3RzIGluc3BpcmVkIGZyb20gdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIHRlc3Qgc3VpdGUuCisK
KyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9lcnJvci5qczogQWRkZWQuCisgICAgICAgICog
ZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvc3VjY2Vzcy5qczogQWRkZWQuCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2Vk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNz
aW9uLWRlbmllZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFt
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5l
Y3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1h
bHJlYWR5LWlubmVyMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291
cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtaW5uZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTQtMTAtMDcgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUm9sbC1vdmVyIENoYW5nZWxvZ3Mu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlz
c2lvbi1hbGxvd2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
ZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmYzZjgyNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IG5vIGNhbGxiYWNrcyBhcmUgaW52b2tlZCB1
bnRpbCBwZXJtaXNzaW9uIGlzIGFsbG93ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIFN1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTQ3YzA3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dl
ZC5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgbm8gY2Fs
bGJhY2tzIGFyZSBpbnZva2VkIHVudGlsIHBlcm1pc3Npb24gaXMgYWxsb3dlZC4iKTsKK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gYWxsb3dQZXJtaXNzaW9uKCkgewor
ICAgIHBlcm1pc3Npb25TZXQgPSB0cnVlOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworfQorCit2YXIg
b3B0aW9ucyA9IHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9OworbmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKKyAgIGlmIChwZXJtaXNzaW9u
U2V0KSB7CisgICAgICAgIHRlc3RQYXNzZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCcpOwor
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0ZXN0
RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Cit9LCBmdW5j
dGlvbihlKSB7CisgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVj
dGVkbHknKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCit3aW5kb3cuc2V0VGltZW91dChh
bGxvd1Blcm1pc3Npb24sIDEwMCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRl
bmllZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQt
cGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmFmZjY3ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTAgQEAKK1Rlc3RzIHRoYXQgbm8gY2FsbGJhY2tzIGFyZSBpbnZva2VkIHVudGlsIHBlcm1p
c3Npb24gaXMgZGVuaWVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBl
cnJvci5jb2RlIGlzIGVycm9yLlBFUk1JU1NJT05fREVOSUVECitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NmRhNGFhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVk
Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBubyBjYWxs
YmFja3MgYXJlIGludm9rZWQgdW50aWwgcGVybWlzc2lvbiBpcyBkZW5pZWQuIik7Cit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9uIGRlbnlQZXJtaXNzaW9uKCkgeworICAg
IHBlcm1pc3Npb25TZXQgPSB0cnVlOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsKK30KKwordmFyIGVy
cm9yOwordmFyIG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfTsKK25hdmlnYXRv
ci53ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7CisgICAgdGVz
dEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgIGZp
bmlzaEpTVGVzdCgpOworfSwgZnVuY3Rpb24oZSkgeworICAgIGlmIChwZXJtaXNzaW9uU2V0KSB7
CisgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgc2hvdWxkQmUoJ2Vycm9yLmNvZGUnLCAnZXJy
b3IuUEVSTUlTU0lPTl9ERU5JRUQnKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1
bmV4cGVjdGVkbHknKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCit3aW5kb3cuc2V0VGlt
ZW91dChkZW55UGVybWlzc2lvbiwgMTAwKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjI5ZDIyMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK1Rlc3RzIFVzZXJNZWRpYSBlcnJvciBjYWxsYmFjayB1c2luZyB0aGUgbW9j
ayBzZXJ2aWNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBlcnJvci5j
b2RlIGlzIGVycm9yLlBFUk1JU1NJT05fREVOSUVECitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJv
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4YzUxNTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWwKQEAg
LTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgVXNlck1lZGlhIGVycm9yIGNhbGxi
YWNrIHVzaW5nIHRoZSBtb2NrIHNlcnZpY2UuIik7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRp
YVBlcm1pc3Npb24oZmFsc2UpOworZWxzZQorICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBi
ZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lcicpOworCit2YXIgZXJyb3I7Cit2YXIgb3B0aW9u
cyA9IHthdWRpbzpmYWxzZSwgdmlkZW86dHJ1ZX07CituYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgeworICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3Mg
Y2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30s
IGZ1bmN0aW9uKGUpIHsKKyAgICBlcnJvciA9IGU7CisgICAgc2hvdWxkQmUoJ2Vycm9yLmNvZGUn
LCAnZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9zdWNjZXNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi44MjIzZWJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9zdWNjZXNzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3RzIFVzZXJN
ZWRpYSBzdWNjZXNzIGNhbGxiYWNrIHVzaW5nIHRoZSBtb2NrIHNlcnZpY2UuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9zdWNjZXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2YxZjI2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwKQEAgLTAs
MCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgVXNlck1lZGlhIHN1Y2Nlc3MgY2FsbGJh
Y2sgdXNpbmcgdGhlIG1vY2sgc2VydmljZS4iKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlh
UGVybWlzc2lvbih0cnVlKTsKK2Vsc2UKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUg
cnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXInKTsKKwordmFyIG9wdGlvbnMgPSB7YXVkaW86IHRy
dWUsIHZpZGVvOiB0cnVlfTsKK25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywg
ZnVuY3Rpb24oc3RyZWFtKSB7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmdW5jdGlvbihlKSB7
CisgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNj
b25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTUwNWRiOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rp
c2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMjQ6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9u
IDk6IFRoZSBpbXBsZW1lbnRhdGlvbiBkaWQgbm90IHN1cHBvcnQgdGhlIHJlcXVlc3RlZCB0eXBl
IG9mIG9iamVjdCBvciBvcGVyYXRpb24uCitUZXN0cyB0aGF0IHdoZW4gYSBnZXRVc2VyTWVkaWEg
cmVxdWVzdCBpcyBtYWRlIGFmdGVyIGl0cyBmcmFtZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIG5v
IGNhbGxiYWNrcyBhcmUgbWFkZSBhbmQgbm8gY3Jhc2ggb2NjdXJzLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKword2Via2l0R2V0VXNlck1lZGlhIGNhbGxlZCBvbiBvYmplY3Qgd2l0
aCBkaXNjb25uZWN0ZWQgRnJhbWUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJl
YWR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWM2NDhmOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFt
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3aGVuIGEgZ2V0VXNlck1lZGlhIHJlcXVlc3QgaXMg
bWFkZSBhZnRlciBpdHMgZnJhbWUgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBubyBjYWxsYmFja3Mg
YXJlIG1hZGUgYW5kIG5vIGNyYXNoIG9jY3Vycy4iKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0VXNlck1l
ZGlhUGVybWlzc2lvbih0cnVlKTsKKworZnVuY3Rpb24gb25GaXJzdElmcmFtZUxvYWRlZCgpIHsK
KyAgICBpZnJhbWVOYXZpZ2F0b3IgPSBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3I7Cisg
ICAgaWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5u
ZXIyLmh0bWwnOworfQorCit2YXIgZXJyb3I7Cit2YXIgb3B0aW9ucyA9IHthdWRpbzogdHJ1ZSwg
dmlkZW86IHRydWV9OworZnVuY3Rpb24gb25TZWNvbmRJZnJhbWVMb2FkZWQoKSB7CisgICAgc2V0
VGltZW91dChmaW5pc2hUZXN0LCA1MDApOworCisgICAgaWZyYW1lTmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKKyAgICAgICAgdGVzdEZhaWxl
ZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICB9LCBmdW5jdGlvbihlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ0Vy
cm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgIH0pOworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgIGRlYnVnKCd3
ZWJraXRHZXRVc2VyTWVkaWEgY2FsbGVkIG9uIG9iamVjdCB3aXRoIGRpc2Nvbm5lY3RlZCBGcmFt
ZS4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordmFyIGlmcmFtZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworaWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvZGlzY29ubmVj
dGVkLWZyYW1lLWFscmVhZHktaW5uZXIxLmh0bWwnOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChpZnJhbWUpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQt
ZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5lZmI3OGM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAt
LT4tLT4iIC0gaGFzIDEgb251bmxvYWQgaGFuZGxlcihzKQorVGVzdHMgdGhhdCB3aGVuIGEgcmVx
dWVzdCBpcyBtYWRlIG9uIGEgVXNlck1lZGlhIG9iamVjdCBhbmQgaXRzIEZyYW1lIGlzIGRpc2Nv
bm5lY3RlZCBiZWZvcmUgYSBjYWxsYmFjayBpcyBtYWRlLCB0aGUgZXJyb3IgY2FsbGJhY2sgaXMg
aW52b2tlZCB3aXRoIHRoZSBjb3JyZWN0IGVycm9yIG1lc3NhZ2UuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIE5vIGNhbGxiYWNrcyBpbnZva2VkCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBl
cm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTcyNDYzMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFt
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMyBAQAorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+IiAtIGhh
cyAxIG9udW5sb2FkIGhhbmRsZXIocykKK1Rlc3RzIHRoYXQgd2hlbiBhIGdldFVzZXJNZWRpYSBy
ZXF1ZXN0IGlzIG1hZGUsIHBlcm1pc3Npb24gaXMgZGVuaWVkIGFuZCBpdHMgRnJhbWUgaXMgZGlz
Y29ubmVjdGVkIGJlZm9yZSBhIGNhbGxiYWNrIGlzIG1hZGUsIHRoZSBlcnJvciBjYWxsYmFjayBp
cyBpbnZva2VkIHdpdGggUEVSTUlTU0lPTl9ERU5JRUQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGVycm9yLmNvZGUgaXMgZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQKKwor
UEFTUyBObyBjYWxsYmFja3MgaW52b2tlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVj
dGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uN2QxOTc5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRl
bmllZC5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgd2hlbiBhIGdldFVzZXJNZWRpYSByZXF1ZXN0IGlzIG1hZGUsIHBlcm1pc3Npb24gaXMgZGVu
aWVkIGFuZCBpdHMgRnJhbWUgaXMgZGlzY29ubmVjdGVkIGJlZm9yZSBhIGNhbGxiYWNrIGlzIG1h
ZGUsIHRoZSBlcnJvciBjYWxsYmFjayBpcyBpbnZva2VkIHdpdGggUEVSTUlTU0lPTl9ERU5JRUQu
Iik7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24oZmFsc2UpOworZWxzZQor
ICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5l
cicpOworCit2YXIgZXJyb3I7Cit2YXIgb3B0aW9ucyA9IHthdWRpbzogdHJ1ZSwgdmlkZW86IHRy
dWV9OworZnVuY3Rpb24gb25JZnJhbWVMb2FkZWQoKSB7CisgICAgaWZyYW1lTmF2aWdhdG9yID0g
aWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yOworICAgIGlmcmFtZU5hdmlnYXRvci53ZWJr
aXRHZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7CisgICAgICAgIHRlc3RG
YWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgfSwgZnVuY3Rpb24oZSkgeworICAgICAgICBlcnJvciA9IGU7
CisgICAgICAgIHNob3VsZEJlKCdlcnJvci5jb2RlJywgJ2Vycm9yLlBFUk1JU1NJT05fREVOSUVE
Jyk7CisgICAgICAgIGRlYnVnKCcnKTsKKyAgICAgICAgaWZyYW1lLnNyYyA9ICdkYXRhOnRleHQv
aHRtbCxUaGlzIGZyYW1lIHNob3VsZCBiZSB2aXNpYmxlIHdoZW4gdGhlIHRlc3QgY29tcGxldGVz
JzsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gb25JZnJhbWVVbmxvYWRlZCgpIHsKKyAgICAvLyBN
YWtlIGFub3RoZXIgcmVxdWVzdCwgd2l0aCBwZXJtaXNzaW9uIGFscmVhZHkgZGVuaWVkLgorICAg
IGlmcmFtZU5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3Ry
ZWFtKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4
cGVjdGVkbHknKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgZnVuY3Rpb24oZSkg
eworICAgICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRs
eScpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKKyAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeworICAgICAgICB0ZXN0UGFzc2VkKCdObyBjYWxsYmFja3MgaW52b2tlZCcpOwor
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9LCAxMDApOworfQorCit2YXIgaWZyYW1lID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CitpZnJhbWUuc3JjID0gJ3Jlc291cmNl
cy9kaXNjb25uZWN0ZWQtZnJhbWUtaW5uZXIuaHRtbCc7Citkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGlmcmFtZSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVj
dGVkLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVh
bS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5hZWMxYzBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw0MiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3aGVuIGEgcmVxdWVzdCBpcyBtYWRlIG9uIGEg
VXNlck1lZGlhIG9iamVjdCBhbmQgaXRzIEZyYW1lIGlzIGRpc2Nvbm5lY3RlZCBiZWZvcmUgYSBj
YWxsYmFjayBpcyBtYWRlLCB0aGUgZXJyb3IgY2FsbGJhY2sgaXMgaW52b2tlZCB3aXRoIHRoZSBj
b3JyZWN0IGVycm9yIG1lc3NhZ2UuIik7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1p
c3Npb24odHJ1ZSk7CisKK2Z1bmN0aW9uIG9uSWZyYW1lTG9hZGVkKCkgeworICAgIGlmcmFtZU5h
dmlnYXRvciA9IGlmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvcjsKKyAgICBpZnJhbWUuc3Jj
ID0gJ2RhdGE6dGV4dC9odG1sLFRoaXMgZnJhbWUgc2hvdWxkIGJlIHZpc2libGUgd2hlbiB0aGUg
dGVzdCBjb21wbGV0ZXMnOworfQorCitmdW5jdGlvbiBvbklmcmFtZVVubG9hZGVkKCkgeworICAg
IHZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07CisgICAgaWZyYW1lTmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbiAoc3RyZWFtKSB7Cisg
ICAgICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHkn
KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgZnVuY3Rpb24oZSkgeworICAgICAg
ICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICAgIHRlc3RQYXNzZWQoJ05vIGNhbGxiYWNrcyBpbnZva2VkJyk7CisgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgIH0sIDEwMCk7Cit9CisKK3ZhciBpZnJhbWUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKK2lmcmFtZS5zcmMgPSAncmVzb3VyY2VzL2Rpc2Nv
bm5lY3RlZC1mcmFtZS1pbm5lci5odG1sJzsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZy
YW1lKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVk
LWZyYW1lLWFscmVhZHktaW5uZXIxLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIx
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGRjYTM1MAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jl
c291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1pbm5lcjEuaHRtbApAQCAtMCwwICsx
LDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICA8L2hlYWQ+CisgIDxi
b2R5IG9ubG9hZD0id2luZG93LnBhcmVudC5vbkZpcnN0SWZyYW1lTG9hZGVkKCkiPgorICAgIDxw
PlRoaXMgZnJhbWUgc2hvdWxkIGJlIHJlcGxhY2VkIGJlZm9yZSB0aGUgdGVzdCBlbmRzPC9wPgor
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5u
ZXIyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNv
dXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU4ZGU5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0
ZWQtZnJhbWUtYWxyZWFkeS1pbm5lcjIuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+CisgIDxoZWFkPgorICA8L2hlYWQ+CisgIDxib2R5IG9ubG9hZD0id2luZG93
LnBhcmVudC5vblNlY29uZElmcmFtZUxvYWRlZCgpIj4KKyAgICA8cD5UaGlzIGZyYW1lIHNob3Vs
ZCBiZSB2aXNpYmxlIHdoZW4gdGhlIHRlc3QgY29tcGxldGVzPC9wPgorICA8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVh
bS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWlubmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1l
LWlubmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTA4NjI4MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3Ry
ZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtaW5uZXIuaHRtbApAQCAtMCwwICsxLDgg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICA8L2hlYWQ+CisgIDxib2R5
IG9ubG9hZD0id2luZG93LnBhcmVudC5vbklmcmFtZUxvYWRlZCgpIiBvbnVubG9hZD0id2luZG93
LnBhcmVudC5vbklmcmFtZVVubG9hZGVkKCk7Ij4KKyAgICA8cD5UaGlzIGZyYW1lIHNob3VsZCBi
ZSByZXBsYWNlZCBiZWZvcmUgdGhlIHRlc3QgZW5kczwvcD4KKyAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjM2YyOWZlLi45
NTVjNjNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MjkxLDcgKzI5MSw0MyBAQCB3ZWJraXQub3JnL2IvODUyMTEgaWV0ZXN0Y2VudGVyL2NzczMvZmxl
eGJveC9mbGV4Ym94LWFsaWduLXN0cmV0Y2gtMDAxLmh0bSBbIEltYQogd2Via2l0Lm9yZy9iLzg1
MjEyIGlldGVzdGNlbnRlci9jc3MzL2ZsZXhib3gvZmxleGJveC1sYXlvdXQtMDAyLmh0bSBbIElt
YWdlT25seUZhaWx1cmUgXQogCiAjIE1lZGlhc3RyZWFtIGltcGxlbWVudGF0aW9uIGlzIG5vdCBj
b21wbGV0ZSB5ZXQuCi13ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbSBbIFNraXAg
XQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMuaHRt
bCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1l
ZGlhLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLWFkZC1lbmRlZC10cmFja3MuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5
MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tYWRkLXJlbW92ZS10cmFja3MuaHRtbCBb
IFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0t
YWRkLXRyYWNrcy10by1pbmFjdGl2ZS1zdHJlYW0uaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9i
Lzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tY2xvbmUuaHRtbCBbIFNraXAgXQor
d2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rv
ci5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS1jb25zdHJ1Y3Qtd2l0aC1lbmRlZC10cmFja3MuaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tZ2V0VHJhY2tzLmh0bWwg
WyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
LU1lZGlhRWxlbWVudC1zcmNPYmplY3QuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAz
IGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LWNvbnN0cnVjdG9yLmh0bWwg
WyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2stZ2V0U291cmNlcy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83
OTIwMyBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stb25lbmRlZC5odG1sIFsgU2tp
cCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9uby1pbnRlcmZhY2Utb2Jq
ZWN0Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JU
Q0ljZUNhbmRpZGF0ZS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1BZGRSZW1vdmVTdHJlYW0uaHRtbCBbIFNraXAgXQor
d2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3Jl
YXRlQW5zd2VyLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5v
cmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFjaGFubmVs
Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLWR0bWYuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZXZlbnRzLmh0bWwgWyBTa2lwIF0KK3dlYmtp
dC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWdldENvbmZp
Z3VyYXRpb24uaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24taGF2ZS1sb2NhbC1vZmZlci5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1oYXZlLWxv
Y2FsLXByYW5zd2VyLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWhhdmUtcmVtb3RlLW9mZmVyLmh0bWwgWyBTa2lwIF0K
K3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWhh
dmUtcmVtb3RlLXByYW5zd2VyLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcv
Yi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWljZS5odG1sIFsgU2tp
cCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1sb2NhbERlc2NyaXB0aW9uLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQuaHRtbCBb
IFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24tcmVtb3RlRGVzY3JpcHRpb24uaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAz
IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhYmxlLmh0bWwgWyBTa2lwIF0K
K3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0
YXRlLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBm
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzU2VsZWN0b3IuaHRtbCBbIFNr
aXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi83OTIwMyBmYXN0L2V2ZW50cy9jb25z
dHJ1Y3RvcnMvbWVkaWEtc3RyZWFtLWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwgWyBTa2lwIF0KIHdl
YmtpdC5vcmcvYi83OTIwMyB3ZWJhdWRpby9tZWRpYXN0cmVhbWF1ZGlvZGVzdGluYXRpb25ub2Rl
Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi83OTIwMyB3ZWJhdWRpby9tZWRpYXN0cmVhbWF1
ZGlvc291cmNlbm9kZS5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGY4NzQ4NDguLmY0ZmQ2ZGQgMTAwNzU1Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNjAsNiArMTYwLDcgQEAgaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50VHlwZU9wdGlvbnMKICMgTWVkaWEgU3RyZWFtIEFQSSBpcyBub3QgeWV0
IGVuYWJsZWQuCiBmYXN0L21lZGlhc3RyZWFtCiBmYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvbWVk
aWEtc3RyZWFtLWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwKK2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c3RyZWFtCiAKICMgTmVlZHMgdG8gYmUgZml4ZWQgYXQgaW1hZ2UgZGVjb2RlciBsYXllciBmb3Ig
U2FmYXJpLgogZmFzdC9pbWFnZXMvbGFyZ2Utc2l6ZS1pbWFnZS1jcmFzaC5odG1sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZmYxODk2Yi4uNjU2OWY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0
LTA5LTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbV0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZG9jdW1lbnQgYW5kIGZyYW1lIGFjY2Vzc29y
cywgbmVlZGVkIGJ5IHRoZQorICAgICAgICBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlciBvZiB0aGUg
V2ViUHJvY2Vzcy4gQWxzbyBhZGRlZCB0d28gbWV0aG9kcworICAgICAgICB1c2VkIGJ5IHRoZSBw
ZXJtaXNzaW9uIHJlcXVlc3QgbWFuYWdlciB0byBrbm93IGlmIGFjY2VzcyB0byBhdWRpbworICAg
ICAgICBvciB2aWRlbyBkZXZpY2VzIGlzIHJlcXVlc3RlZC4KKworICAgICAgICBUZXN0czogZmFz
dC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhc3RyZWFt
L3N1Y2Nlc3MuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmRvY3VtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmZyYW1lKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnJlcXVpcmVzQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6
VXNlck1lZGlhUmVxdWVzdDo6cmVxdWlyZXNWaWRlbyk6CisKIDIwMTQtMTAtMDggIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IHVuZGVy
bHlpbmdTdHJpbmdJc1ZhbGlkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IGU0MzhkMzUuLmZkOTZiYTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkRpY3Rpb25hcnku
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBsLmgiCiAjaW5j
bHVkZSAiTWVkaWFTdHJlYW0uaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbUNlbnRlci5oIgpAQCAt
MTAxLDYgKzEwMiwxNiBAQCBVc2VyTWVkaWFSZXF1ZXN0Ojp+VXNlck1lZGlhUmVxdWVzdCgpCiB7
CiB9CiAKK0RvY3VtZW50KiBVc2VyTWVkaWFSZXF1ZXN0Ojpkb2N1bWVudCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwor
fQorCitGcmFtZSogVXNlck1lZGlhUmVxdWVzdDo6ZnJhbWUoKSBjb25zdAoreworICAgIHJldHVy
biBkb2N1bWVudCgpID8gZG9jdW1lbnQoKS0+ZnJhbWUoKSA6IG51bGxwdHI7Cit9CisKIFNlY3Vy
aXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1ZXN0OjpzZWN1cml0eU9yaWdpbigpIGNvbnN0CiB7CiAg
ICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggYzgwYTZiYS4u
MjgyMjdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBEaWN0aW9uYXJ5OwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBGcmFtZTsKIGNs
YXNzIE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CiBjbGFzcyBV
c2VyTWVkaWFDb250cm9sbGVyOwpAQCAtNjIsMTAgKzYzLDE2IEBAIHB1YmxpYzoKIAogICAgIFdF
QkNPUkVfRVhQT1JUIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCisg
ICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CisgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7
CisKICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFB
Y2Nlc3NHcmFudGVkKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NE
ZW5pZWQoKTsKIAorICAgIGJvb2wgcmVxdWlyZXNBdWRpbygpIGNvbnN0IHsgcmV0dXJuIG1fYXVk
aW9Db25zdHJhaW50czsgfQorICAgIGJvb2wgcmVxdWlyZXNWaWRlbygpIGNvbnN0IHsgcmV0dXJu
IG1fdmlkZW9Db25zdHJhaW50czsgfQorCiBwcml2YXRlOgogICAgIFVzZXJNZWRpYVJlcXVlc3Qo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIqLCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+IGF1ZGlvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TWVkaWFDb25z
dHJhaW50cz4gdmlkZW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFT
dWNjZXNzQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJh
Y2s+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA0YTQ2NTQ1Li5mYWNmMTgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
TWFrZUxpc3RzLnR4dApAQCAtNDksNiArNDksNyBAQCBzZXQoV2ViS2l0Ml9JTkNMVURFX0RJUkVD
VE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9N
IgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0xhdW5jaGluZyIKICAgICAiJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL01lZGlhU3RyZWFtIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL05ldHdv
cmsiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyIKICAgICAi
JHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIgpAQCAtMzAxLDYgKzMwMiw4IEBA
IHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5j
cHAKICAgICBVSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL1Rl
eHRDaGVja2VyQ29tcGxldGlvbi5jcHAKKyAgICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3Bw
CiAgICAgVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCiAgICAg
VUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAKQEAgLTM4OSw2ICszOTIsNyBAQCBzZXQo
V2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFn
ZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblN0YXRlUmVmLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS1RleHRDaGVja2VyLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ZpYnJh
dGlvbi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwCiAK
QEAgLTQ4NSw2ICs0ODksOCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBXZWJQcm9jZXNz
L01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1hbmFnZXIuY3BwCiAKKyAgICBXZWJQcm9jZXNzL01l
ZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKwogICAgIFdl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAgICAgV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKICAgICBXZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01MzYsNiArNTQyLDcgQEAgc2V0KFdl
YktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51
LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51
LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNw
cAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVmlicmF0aW9uQ2xpZW50LmNwcAog
CiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDgx
NjQ3NGUuLmVjNjkzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAxNC0wOS0wMSAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dLMl0g
VXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IGlu
IFdlYktpdDIuIEl0J3MKKyAgICAgICAgaW1wbGVtZW50ZWQgc2ltaWxhcmlseSB0byB0aGUgR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICBzdXBwb3J0LiBXaGVuIHRoZSBXZWJQ
YWdlIHJlcXVpcmVzIHRoaXMgcGVybWlzc2lvbiBpdCBzZW5kcyBhCisgICAgICAgIG1lc3NhZ2Ug
dG8gdGhlIFVJIHByb2Nlc3Mgd2hpY2ggYXQgc29tZSBwb2ludCBncmFudHMgb3IgZGVuaWVzIHRo
ZQorICAgICAgICBwZXJtaXNzaW9uIGFuZCBzZW5kcyB0aGUgcmVzdWx0IGJhY2sgdG8gdGhlIFdl
YlByb2Nlc3MuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogR2VuZXJpYyBDTWFrZSBzdXBw
b3J0IGZvciBuZXcgZmlsZXMuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOiBOZXcg
dHlwZSBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgICogU2hhcmVkL0FQ
SU9iamVjdC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6
IFBlcm1pc3Npb25SZXF1ZXN0IEFQSSBtYXBwaW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
QVBJVUlDbGllbnQuaDogTmV3IGRlY2lkZVBvbGljeSBoYW5kbGVyIGZvciBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC4KKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcDogRGl0dG8uCisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oOiBXS1BhZ2VVSUNsaWVudCB2ZXJz
aW9uIGJ1bXAgdG8KKyAgICAgICAgNSwgaW5jbHVkaW5nIHRoZSBuZXcgZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgbWVtYmVyLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQsIEMgQVBJCisgICAg
ICAgIGltcGxlbWVudGF0aW9uIG9mIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAg
ICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQpOgorICAgICAgICAo
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KToKKyAgICAgICAgKFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3REZW55KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV2ViS2l0Ml9DLmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDogQWRkZWQsIHByb3h5CisgICAgICAgIG9iamVj
dCBmb3IgdGhlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0VHlwZS4KKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OmFsbG93KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6ZGVueSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjptZWRpYVBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OldlYlBhZ2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6IERlZmVyCisgICAgICAgIFVzZXJQZXJtaXNzaW9u
UmVxdWVzdCB0byB0aGUgVUlDbGllbnQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IE5ldyBt
ZXNzYWdlIHRvIGhhbmRsZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuCisgICAgICAgICog
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDogQWRkZWQs
CisgICAgICAgIFdlYlByb2Nlc3Mgc2lkZSBvZiB0aGUgVXNlclJlcXVlc3RNYW5hZ2VyLCBrZWVw
aW5nIHRyYWNrIG9mIGVhY2gKKyAgICAgICAgcGVybWlzc2lvbiByZXF1ZXN0LgorICAgICAgICAo
V2ViS2l0OjpnZW5lcmF0ZVJlcXVlc3RJRCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpz
dGFydFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNp
b24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcDogQWRkZWQsCisgICAgICAgIFdlYlByb2Nlc3Mg
aW1wbGVtZW50YXRpb24gb2YgdGhlIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudC4KKyAgICAgICAg
KFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OldlYlBhZ2UpOiBDcmVhdGUgdGhlCisgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlciBhbmQgcmVnaXN0ZXIgdGhlIFVzZXJNZWRpYUNsaWVudAorICAgICAg
ICB0byB0aGUgcGFnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVVzZXJN
ZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6IERpc3BhdGNoCisgICAgICAgIGRlY2lzaW9uIHRvIG1h
bmFnZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogTmV3IE1lc3Nh
Z2UgdG8gaGFuZGxlCisgICAgICAgIHBlcm1pc3Npb24gZGVjaXNpb24gcmVzdWx0IGZyb20gdGhl
IFVJIHByb2Nlc3MuCisKIDIwMTQtMTAtMDggIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBz
YW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtDb29yZGluYXRlZEdyYXBoaWNzXSBBbGwgRUZM
IGxheW91dCB0ZXN0cyBhcmUgYnJva2VuIHNpbmNlIHIxNzQyMzEKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaAppbmRleCA4ZDFlOTY1Li4xMWVjNTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL1dLQmFzZS5oCkBAIC0xMjcsNiArMTI3LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tQcm90ZWN0aW9uU3BhY2UqIFdLUHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tUZXh0Q2hlY2tlciogV0tUZXh0Q2hlY2tlclJlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU2Vzc2lvbiogV0tTZXNzaW9uUmVmOwogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tTZXNzaW9uU3RhdGUqIFdLU2Vzc2lvblN0YXRlUmVmOwordHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLVmlicmF0aW9uKiBXS1ZpYnJhdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLVmlld3BvcnRBdHRyaWJ1dGVzKiBXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSU9iamVjdC5oCmluZGV4IDkyMmU2ZGEuLmQ0OTY2YWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJT2JqZWN0LmgKQEAgLTEzMiw2ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIFByZWZl
cmVuY2VzLAogICAgICAgICBTZXNzaW9uLAogICAgICAgICBUZXh0Q2hlY2tlciwKKyAgICAgICAg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsCiAgICAgICAgIFZpYnJhdGlvbiwKICAgICAgICAg
Vmlld3BvcnRBdHRyaWJ1dGVzLAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJ
Q2xpZW50LmgKaW5kZXggYjc4OGQ5Mi4uYjg2NDU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtNTAsNiArNTAsNyBAQCBjbGFzcyBJbW11dGFibGVE
aWN0aW9uYXJ5OwogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdl
YldoZWVsRXZlbnQ7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKK2NsYXNz
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUHJveHk7CiBjbGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3MgV2ViT3BlblBh
bmVsUGFyYW1ldGVyczsKQEAgLTEyMiw2ICsxMjMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgcnVuT3BlblBhbmVsKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFt
ZVByb3h5KiwgV2ViS2l0OjpXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViS2l0OjpXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6
OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6V2ViU2VjdXJp
dHlPcmlnaW4qLCBXZWJLaXQ6Okdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eSopIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFt
ZVByb3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2Vi
UGFnZVByb3h5KiwgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6Tm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QqKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gUHJpbnRp
bmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggODAy
MjFhOS4uNWY0NGE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaApAQCAtNjMsNiArNjMsNyBAQCBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVu
ZXI7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdFByb3h5OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CitjbGFzcyBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW07CkBAIC0xNDYsNiArMTQ3LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdL
UmVuZGVyTGF5ZXJSZWYsIFdlYlJlbmRlckxheWVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVu
ZGVyT2JqZWN0UmVmLCBXZWJSZW5kZXJPYmplY3QpCiBXS19BRERfQVBJX01BUFBJTkcoV0tTZXNz
aW9uU3RhdGVSZWYsIEFQSTo6U2Vzc2lvblN0YXRlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVGV4
dENoZWNrZXJSZWYsIFdlYlRleHRDaGVja2VyKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tWaWJyYXRpb25SZWYsIFdlYlZpYnJhdGlvblByb3h5KQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmLCBXZWJWaWV3cG9ydEF0
dHJpYnV0ZXMpCiBXS19BRERfQVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYsIFdlYkluc3BlY3Rv
clByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBj
ZjM4OTM5Li44YTk3YjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcApAQCAtNzQsNyArNzQsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQ
YWdlUG9saWN5Q2xpZW50QmFzZT4gewogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJh
aXRzPFdLUGFnZVVJQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VV
SUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNs
aWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0PiBWZXJzaW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVw
bGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwg
V0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRWNT4gVmVy
c2lvbnM7CiB9OwogCiB9CkBAIC0xNDk5LDYgKzE0OTksMTUgQEAgdm9pZCBXS1BhZ2VTZXRQYWdl
VUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tD
bGllbnQKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKKyAgICAgICAgdmly
dHVhbCBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBh
Z2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIFdlYlNlY3VyaXR5T3JpZ2luKiBv
cmlnaW4sICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBwZXJtaXNzaW9uUmVxdWVz
dCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCkKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAgICAgICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJKG9yaWdp
biksIHRvQVBJKHBlcm1pc3Npb25SZXF1ZXN0KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKICAgICAgICAgdmlydHVhbCBi
b29sIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQ
cm94eSogcGFnZSwgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QqIHBlcm1pc3Npb25SZXF1ZXN0KSBvdmVycmlkZQogICAgICAgICB7CiAgICAg
ICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlD
bGllbnQuaAppbmRleCBiYzllZWM3Li43MmMxNTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaApAQCAtOTAsNiArOTAsNyBAQCB0eXBlZGVm
IHZvaWQgKCpXS1BhZ2VEaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxs
YmFjaykoV0tQYWdlUmVmCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRSZWNvZ25pemVMb25nTW91
c2VQcmVzc0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZENhbmNlbFRyYWNr
aW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLVHlw
ZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpX
S1BhZ2VJc1BsYXlpbmdBdWRpb0RpZENoYW5nZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tG
cmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pOwogCiAvLyBEZXByZWNhdGVkICAgIAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVh
dGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2Us
IFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdL
RXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBA
IC0zNzgsNiArMzc5LDc0IEBAIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjQgewogICAg
IFdLUGFnZUlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2U7CiB9IFdLUGFnZVVJQ2xpZW50VjQ7
CiAKK3R5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjUgeworICAgIFdLUGFnZVVJQ2xpZW50
QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFz
ZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdlOworICAgIFdLUGFn
ZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xvc2U7CisgICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlRm9jdXM7CisgICAgV0tQYWdlRm9jdXND
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b2N1czsKKyAgICBXS1BhZ2VVbmZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuZm9jdXM7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFs
ZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2Ny
aXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmlybTsKKyAgICBXS1Bh
Z2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNUZXh0
OworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMCAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgIG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlFdmVudDsK
KyAgICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0VG9v
bGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
b29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlU2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUb29sYmFyc0FyZVZpc2libGU7
CisgICAgV0tQYWdlR2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldE1lbnVCYXJJ
c1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVu
dUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBX
S1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldFN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6YWJs
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVzaXph
YmxlOworICAgIFdLUGFnZVNldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0SXNSZXNpemFibGU7CisgICAgV0tQYWdlR2V0V2luZG93
RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRX
aW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VTZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRHJhdzsK
KyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhZ2VEaWRTY3JvbGw7CisgICAgV0tQYWdlRXhjZWVkZWREYXRhYmFz
ZVF1b3RhQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlZWRlZERh
dGFiYXNlUXVvdGE7CisgICAgV0tQYWdlUnVuT3BlblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5PcGVuUGFuZWw7CisgICAgV0tQYWdlRGVj
aWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAg
ICBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFn
ZUhlYWRlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVhZGVySGVpZ2h0OworICAgIFdLUGFnZUZvb3RlckhlaWdodENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9vdGVySGVpZ2h0OworICAgIFdL
UGFnZURyYXdIZWFkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZHJhd0hlYWRlcjsKKyAgICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdGb290ZXI7CisgICAgV0tQ
YWdlUHJpbnRGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwcmludEZyYW1lOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuTW9kYWw7CisgICAgdm9pZCog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnVzZWQxOyAvLyBVc2VkIHRvIGJlIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5G
cmFtZQorICAgIFdLUGFnZVNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXJDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcjsKKyAg
ICBXS1BhZ2VTaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQ7CisKKyAgICAvLyBWZXJzaW9u
IDEuCisgICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlOworICAgIFdLUGFnZU1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lvbiAy
LgorICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xvclBp
Y2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNv
bG9yUGlja2VyOworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2Vk
OworICAgIAorICAgIC8vIFZlcnNpb24gMy4KKyAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5n
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlk
Q2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA0LgorICAgIFdLUGFnZURpZEJlZ2luVHJhY2tpbmdQ
b3RlbnRpYWxMb25nTW91c2VQcmVzc0NhbGxiYWNrICAgICAgICAgICAgICAgZGlkQmVnaW5UcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzOworICAgIFdLUGFnZURpZFJlY29nbml6ZUxvbmdN
b3VzZVByZXNzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkUmVjb2duaXpl
TG9uZ01vdXNlUHJlc3M7CisgICAgV0tQYWdlRGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25n
TW91c2VQcmVzc0NhbGxiYWNrICAgICAgICAgICAgICBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlh
bExvbmdNb3VzZVByZXNzOworICAgIFdLUGFnZUlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2U7
CisKKyAgICAvLyBWZXJzaW9uIDUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsKK30gV0tQYWdlVUlDbGllbnRWNTsKKwogZW51bSB7IGtX
S1BhZ2VVSUNsaWVudEN1cnJlbnRWZXJzaW9uIFdLX0VOVU1fREVQUkVDQVRFRCgiVXNlIGFuIGV4
cGxpY2l0IHZlcnNpb24gbnVtYmVyIGluc3RlYWQiKSA9IDIgfTsKIHR5cGVkZWYgc3RydWN0IFdL
UGFnZVVJQ2xpZW50IHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVmZDNlNjI4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdy
aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuaCIKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIK
KyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tU
eXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpCit7CisgICAgcmV0
dXJuIHRvQVBJKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OkFQSVR5cGUpOworfQor
Cit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQoreworICAgIHRv
SW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmFsbG93KCk7Cit9CisKK3ZvaWQg
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikKK3sKKyAgICB0b0ltcGwodXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5kZW55KCk7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDVkMzE4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5k
ZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RfaAorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZkZWYg
X19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCB2b2lk
IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RE
ZW55KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOworCisjaWZkZWYgX19jcGx1c3Bs
dXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9o
ICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9D
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmgKaW5kZXggNWE3
MTJjZC4uZTMyYmFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dlYktpdDJfQy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQy
X0MuaApAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS1VSTC5oPgogI2luY2x1
ZGUgPFdlYktpdC9XS1VSTFJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tVUkxSZXNwb25z
ZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg+CiAK
ICNpZiBkZWZpbmVkKF9fT0JKQ19fKSAmJiBfX09CSkNfXwogI2ltcG9ydCA8V2ViS2l0L1dLVmll
dy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMzk3ZTU5NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKKyNp
bmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkK
K3sKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52
YWxpZGF0ZVJlcXVlc3RzKCkKK3sKKyAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3BlbmRpbmdS
ZXF1ZXN0cy52YWx1ZXMoKSkKKyAgICAgICAgcmVxdWVzdC0+aW52YWxpZGF0ZSgpOworCisgICAg
bV9wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKTsKK30KKworUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6Y3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhdWRpbywgYm9vbCB2
aWRlbykKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gcmVx
dWVzdCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSgqdGhpcywgdXNl
ck1lZGlhSUQsIGF1ZGlvLCB2aWRlbyk7CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuYWRkKHVzZXJN
ZWRpYUlELCByZXF1ZXN0LmdldCgpKTsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9
CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wg
YWxsb3dlZCkKK3sKKyAgICBpZiAoIW1fcGFnZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICghbV9wZW5kaW5nUmVxdWVzdHMudGFrZSh1c2VyTWVkaWFJRCkpCisgICAgICAg
IHJldHVybjsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgbV9wYWdlLnByb2Nlc3Mo
KS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRl
Y2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5hYTE3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAg
LTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CisKKyAgICB2b2lkIGludmFsaWRhdGVS
ZXF1ZXN0cygpOworCisgICAgLy8gQ3JlYXRlIGEgcmVxdWVzdCB0byBiZSBwcmVzZW50ZWQgdG8g
dGhlIHVzZXIuCisgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGF1ZGlvLCBib29sIHZp
ZGVvKTsKKworICAgIC8vIENhbGxlZCBieSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
IHdoZW4gYSBkZWNpc2lvbiBpcyBtYWRlIGJ5IHRoZSB1c2VyLgorICAgIHZvaWQgZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdyk7CisKK3By
aXZhdGU6CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBXZWJQYWdlUHJveHkmIG1fcGFn
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyYjJhOGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKworI2luY2x1
ZGUgIkFQSU51bWJlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlk
ZW8pCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fdXNlck1lZGlhSUQodXNlck1l
ZGlhSUQpCit7CisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxBUEk6Ok9iamVjdD4+IHBhcmFt
ZXRlcnNNYXA7CisgICAgcGFyYW1ldGVyc01hcC5zZXQoQVNDSUlMaXRlcmFsKCJhdWRpbyIpLCBB
UEk6OkJvb2xlYW46OmNyZWF0ZShhdWRpbykpOworICAgIHBhcmFtZXRlcnNNYXAuc2V0KEFTQ0lJ
TGl0ZXJhbCgidmlkZW8iKSwgQVBJOjpCb29sZWFuOjpjcmVhdGUodmlkZW8pKTsKKyAgICBtX21l
ZGlhUGFyYW1ldGVycyA9IEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUocGFy
YW1ldGVyc01hcCkpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OmFsbG93KCkKK3sKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25E
ZWNpc2lvbihtX3VzZXJNZWRpYUlELCB0cnVlKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjpkZW55KCkKK3sKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJN
ZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCBmYWxzZSk7Cit9CisKK3ZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSgpCit7CisgICAgbV9t
YW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZjA0NzI3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisg
Ki8KKworI2lmbmRlZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKKyNkZWZpbmUg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eV9oCisKKyNpbmNsdWRlICJBUElPYmplY3Qu
aCIKKyNpbmNsdWRlICJJbW11dGFibGVEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29s
IGF1ZGlvLCBib29sIHZpZGVvKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYUlELCBhdWRp
bywgdmlkZW8pKTsKKyAgICB9CisKKyAgICB2b2lkIGFsbG93KCk7CisgICAgdm9pZCBkZW55KCk7
CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKworICAgIFBhc3NSZWZQdHI8SW1tdXRhYmxlRGlj
dGlvbmFyeT4gbWVkaWFQYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVBhcmFtZXRl
cnM7IH0KKworcHJpdmF0ZToKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNlck1lZGlh
SUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pOworCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkmIG1fbWFuYWdlcjsKKyAgICB1aW50NjRfdCBtX3VzZXJNZWRpYUlE
OworICAgIFJlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBtX21lZGlhUGFyYW1ldGVyczsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IDE5MGM5MTUuLjVhODlmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiUHJpbnRJbmZvLmgiCiAj
aW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCisj
aW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgogI2luY2x1ZGUgIldL
Q29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKICNpbmNs
dWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCkBAIC0yODAsNiArMjgxLDcgQEAgV2ViUGFn
ZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1By
b3h5JiBwcm9jZXNzLCB1aW4KICNlbmRpZgogICAgICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcigqdGhpcykKICAgICAsIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKCp0aGlzKQorICAgICwgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIoKnRoaXMpCiAgICAgLCBtX3ZpZXdTdGF0ZShWaWV3U3RhdGU6Ok5vRmxhZ3MpCiAgICAgLCBt
X3ZpZXdXYXNFdmVySW5XaW5kb3coZmFsc2UpCiAgICAgLCBtX2JhY2tGb3J3YXJkTGlzdChXZWJC
YWNrRm9yd2FyZExpc3Q6OmNyZWF0ZSgqdGhpcykpCkBAIC00Njc3LDYgKzQ2NzksMTggQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50
NjRfdCBnZW9sb2NhdGlvbklELAogICAgIHJlcXVlc3QtPmRlbnkoKTsKIH0KIAordm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNl
ck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBib29s
IGF1ZGlvLCBib29sIHZpZGVvKQoreworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9j
ZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBNRVNTQUdFX0NIRUNLKGZyYW1lKTsKKworICAg
IFJlZlB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcihvcmlnaW5J
ZGVudGlmaWVyKSk7CisgICAgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+
IHJlcXVlc3QgPSBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcmVhdGVSZXF1
ZXN0KHVzZXJNZWRpYUlELCBhdWRpbywgdmlkZW8pOworCisgICAgaWYgKCFtX3VpQ2xpZW50LT5k
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0aGlzLCBmcmFtZSwgb3Jp
Z2luLmdldCgpLCByZXF1ZXN0LmdldCgpKSkKKyAgICAgICAgcmVxdWVzdC0+ZGVueSgpOworfQor
CiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0
X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBpZiAoIWlz
UmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCBmMGI3ODI3Li41NGNjZWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9j
ZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRl
ICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8u
aCIKICNpbmNsdWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlICJXS1BhZ2VQcml2YXRlLmgiCkBAIC0x
MjQsNiArMTI1LDcgQEAgY2xhc3MgRHJhZ0RhdGE7CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBH
cmFwaGljc0xheWVyOwogY2xhc3MgSW50U2l6ZTsKK2NsYXNzIE1lZGlhQ29uc3RyYWludHNJbXBs
OwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUnVuTG9vcE9ic2VydmVyOwogY2xhc3Mg
U2hhcmVkQnVmZmVyOwpAQCAtMTAzNSw2ICsxMDM3LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGV4
Y2VlZGVkRGF0YWJhc2VRdW90YSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdp
bklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRp
c3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5V
c2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNh
Z2UsIFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1
b3RhOjpEZWxheWVkUmVwbHk+KTsKICAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50
UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIFBhc3NSZWZQdHI8TWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YTo6RGVsYXllZFJl
cGx5Pik7CiAgICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50
aWZpZXIpOworCisgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVp
bnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRp
ZmllciwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbyk7CisKICAgICB2b2lkIHJ1bk1vZGFsKCk7CiAg
ICAgdm9pZCBub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKTsKICAgICB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2Uo
aW50MzJfdCBuZXdTdHlsZSk7CkBAIC0xMzcxLDYgKzEzNzYsOCBAQCBwcml2YXRlOgogICAgIEdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9nZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjsKICAgICBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIAorICAg
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOworCiAgICAgV2ViQ29yZTo6Vmlld1N0YXRlOjpGbGFncyBtX3Zp
ZXdTdGF0ZTsKICAgICBib29sIG1fdmlld1dhc0V2ZXJJbldpbmRvdzsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMGY0NTVl
Ny4uNzljMWM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yNTYsNiArMjU2LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAgICAgIyBHZW9sb2NhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3RHZW9sb2NhdGlv
blBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFt
ZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICAKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorICAgICMgTWVkaWFTdGVhbSBtZXNzYWdlcworICAgIFJlcXVlc3RVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0
cmluZyBvcmlnaW5JZGVudGlmaWVyLCBib29sIGF1ZGlvLCBib29sIHZpZGVvKQorI2VuZGlmCisK
ICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3ROb3RpZmljYXRpb25QZXJt
aXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiAgICAg
U2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUsIFN0cmluZyBib2R5LCBTdHJpbmcgaWNvblVS
TCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmcsIFN0cmluZyBkaXIsIFN0cmluZyBvcmlnaW5JZGVu
dGlmaWVyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZDdlYzNmLi4xMDcyMjZlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNzg3LDYgKzc4NywxNCBAQAogCQkzRjg4OUQxNDE4ODc3OEM5MDBGRUFEQUYgLyogV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMTIxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSAqLzsgfTsKIAkJM0Y4ODlEMTUxODg3NzhDOTAwRkVB
REFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMTMxODg3NzhDOTAwRkVBREFGIC8q
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oICovOyB9OwogCQkzRjg4OUQxNzE4ODc4
NTkzMDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODg5RDBEMTg4NzY5OUMwMEZFQURB
RiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tICovOyB9OworCQk0QTNDQzE4QTE5QjA2
M0U3MDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBGMzkx
OUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcCAqLzsgfTsKKwkJNEEzQ0MxOEIxOUIwNjQwRjAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEYzQTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJNEEzQ0MxOEMxOUIwNjQxNTAw
RDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBGM0IxOUFGN0IwNDAwMkVC
QUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwICovOyB9OworCQk0QTND
QzE4RDE5QjA2NDE5MDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBGM0Mx
OUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAqLzsg
fTsKKwkJNEEzQ0MxOEUxOUIwN0I4NTAwRDE0QUVGIC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEE0MTBGMzUxOUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
Y3BwICovOyB9OworCQk0QTNDQzE4RjE5QjA3QjhBMDBEMTRBRUYgLyogV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEE0MTBGMzYxOUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk0QTQxMEY0NDE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRBNDEwRjQyMTlBRjdCMjcwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwICovOyB9OworCQk0QTQxMEY0QTE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1l
ZGlhQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDRBNDEwRjQ4MTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVkaWFDbGllbnQuY3BwICov
OyB9OwogCQk0RjYwMTQzMjE1NUM1QUEyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY2MDE0MzAx
NTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLzsgfTsKIAkJNTEwMjFF
OUMxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMjFFOUIxMkIxNjc4ODAw
NUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovOyB9OwogCQk1MTAyNzQzMjE5
ODFBRjhFMDA4MTY1RUQgLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkExODA2MkI5QzAwNDZGNkE4IC8q
IFdLT3JpZ2luRGF0YU1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMjc5OSw2ICsyODA3LDE2IEBACiAJCTNGODg5RDEyMTg4Nzc4Qzkw
MEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubW07IHBhdGggPSBpb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg4OUQxMzE4ODc3OEM5MDBGRUFEQUYgLyogV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOyBwYXRoID0gaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzRjg4OUQxNjE4ODc3QTI0MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbjsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjM1MTlBRjdBQzMwMDJF
QkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzNjE5QUY3QUMzMDAyRUJBQjUgLyog
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTRBNDEwRjM5MTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjNBMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzQjE5QUY3QjA0MDAyRUJBQjUgLyog
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGM0MxOUFGN0IwNDAwMkVCQUI1IC8qIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0QTQxMEY0MjE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjQzMTlBRjdCMjcwMDJFQkFCNSAvKiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTRBNDEwRjQ4MTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVkaWFDbGll
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVXNlck1lZGlh
Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGNDkxOUFGN0I4
MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJVc2VyTWVkaWFDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tpbmdSZXNwb25zZU1hcC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyog
U2VjSXRlbVNoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRG
aWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBh
dGggPSBTZWNJdGVtU2hpbS5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29udGV4dE1l
bnVDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MTQzLDYgKzUx
NjEsMTUgQEAKIAkJCXBhdGggPSBDb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCTRBNDEwRjQxMTlBRjdCMjcwMDJFQkFCNSAvKiBNZWRpYVN0cmVhbSAqLyA9IHsKKwkJ
CWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGNDIxOUFGN0IyNzAw
MkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgKi8sCisJCQkJ
NEE0MTBGNDMxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oICovLAorCQkJKTsKKwkJCXBhdGggPSBNZWRpYVN0cmVhbTsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CiAJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3Jr
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTU2MDEsNiAr
NTYyOCw3IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEY0MTE5QUY3
QjI3MDAyRUJBQjUgLyogTWVkaWFTdHJlYW0gKi8sCiAJCQkJNTEyRTM1MkExMzBCNTU5OTAwQUJE
MTlBIC8qIEFwcGxpY2F0aW9uQ2FjaGUgKi8sCiAJCQkJN0M2RTcwRjgxOEIyRDQ3RTAwRjI0RTJF
IC8qIGNvY29hICovLAogCQkJCTMzMDkzNDRCMTMxNUI5M0EwMDk3QTdCQyAvKiBDb29raWVzICov
LApAQCAtNTYzOCw2ICs1NjY2LDggQEAKIAkJQkMwMzJENUQxMEY0MzcyMjAwNThDMTVBIC8qIFdl
YkNvcmVTdXBwb3J0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
KwkJCQk0QTQxMEY0ODE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAq
LywKKwkJCQk0QTQxMEY0OTE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50Lmgg
Ki8sCiAJCQkJMkQyOEYzREYxODg1Q0NCNDAwNEI5RUFFIC8qIGlvcyAqLywKIAkJCQlCQzExMUFE
RTExMkY1QjlBMDAzMzdCQUIgLyogbWFjICovLAogCQkJCTFBNzI4NDQ0MTk1OUVEMTAwMDA3QkNF
NSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcCAqLywKQEAgLTU3NDAsNiArNTc3MCwxMCBA
QAogCQlCQzAzMkRDMzEwRjQzODI2MDA1OEMxNUEgLyogVUlQcm9jZXNzICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEYzOTE5QUY3QjA0MDAyRUJB
QjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICovLAorCQkJ
CTRBNDEwRjNBMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oICovLAorCQkJCTRBNDEwRjNCMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCAqLywKKwkJCQk0QTQxMEYzQzE5QUY3QjA0MDAy
RUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICovLAogCQkJCTJEQTk0
NEE4MTg4NEU5QUIwMEVEODZEQiAvKiBpb3MgKi8sCiAJCQkJQkMwMzJEQzQxMEY0Mzg3QzAwNThD
MTVBIC8qIEFQSSAqLywKIAkJCQk1MTJGNTg4RDEyQTg4MzZGMDA2Mjk1MzAgLyogQXV0aGVudGlj
YXRpb24gKi8sCkBAIC01OTEwLDYgKzU5NDQsOCBAQAogCQlCQzBDMzc2NjEwRjgwNzY2MDA3NkQ3
Q0IgLyogQyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
NEE0MTBGMzUxOUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
Y3BwICovLAorCQkJCTRBNDEwRjM2MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0LmggKi8sCiAJCQkJNTEyM0NGMTgxMzNEMjVFNjAwNTZGODAwIC8qIGNnICov
LAogCQkJCTZFRTg0OUM0MTM2OEQ5MDQwMDM4RDQ4MSAvKiBtYWMgKi8sCiAJCQkJQkNCNjM0Nzcx
MTZCRjEwNjAwNjAzMjE1IC8qIFdlYktpdDJfQy5oICovLApAQCAtNzEzOSw2ICs3MTc1LDcgQEAK
IAkJCQkxQUE0MUFCNTEyQzAyRUM0MDAyQkU2N0IgLyogRWRpdG9yU3RhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxQjE1QTg1MTM4NDNBMzkwMDMyMUFEOCAvKiBFbnZpcm9ubWVudFV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3QzZDREIxMzc4OTUwODAwQjlDMDREIC8qIEVudmly
b25tZW50VmFyaWFibGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTNDQzE4RjE5QjA3QjhBMDBE
MTRBRUYgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUFBNTc1RkIxNDk2QjUyNjAwQTRFRTA2IC8qIEV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE5MEMxRjQxMjY0RkQ3MTAwM0U0NEQ0IC8qIEZpbmRDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTkxMDA3MTEyNjY3NUM0MDAxODQyRjUgLyogRmluZEluZGlj
YXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC03NTQ2LDYgKzc1ODMsNyBAQAogCQkJCTUxODM1M0RC
MTg4NUJGOEMwMEQ5RkU0NCAvKiBJREJTZXJpYWxpemF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQURGNTkxQjE4OTA1MjhFMDA0M0MxNDUgLyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM1NzQ0RjAxMjYzOEZCMzAwNkYwRjEyIC8qIFdlYlBvcHVwSXRl
bS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEEzQ0MxOEQxOUIwNjQxOTAwRDE0QUVGIC8qIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUQzQjk0ODQ3
MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NTc0RTYzMTI2N0QwODAwMDZGMEYxMiAvKiBXZWJQb3B1cE1lbnVQcm94eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0M4RUIxMTcxOERCNkExOTAwNzkxN0MyIC8qIFdLUHJlZmVyZW5jZXNQcml2YXRl
LmggaW4gSGVhZGVycyAqLywKQEAgLTc1NzMsNiArNzYxMSw3IEBACiAJCQkJMzc2MDg4MUYxNTA0
MTNFOTAwRkM4MkM3IC8qIFdlYlJlbmRlck9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEy
MTc0NjUxNjRDMjEzNzAwMzdBNUMxIC8qIFdlYlJlc291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMzM2NzYzMDEzMEM5OTk4MDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTRBM0NDMThCMTlCMDY0MEYwMEQxNEFFRiAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFBRjA4OUIxOTI2N0VFNTAwQjYzOTBDIC8qIFdLVXNlclNjcmlwdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzMzNjc2NTYxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQTk0NEE0MTg4NEU0RjAwMEVEODZEQiAv
KiBHZXN0dXJlVHlwZXMuaCBpbiBIZWFkZXJzICovLApAQCAtODY0Nyw3ICs4Njg2LDkgQEAKIAkJ
CWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4
MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCTRBNDEwRjQ0MTlBRjdCMjcwMDJFQkFCNSAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1
RDI0QTExNkNDM0I5RTAwN0Q1NDYxIC8qIENoaWxkUHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAq
LywKKwkJCQk0QTQxMEY0QTE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpAQCAtOTAzNyw2ICs5MDc4LDcgQEAKIAkJCQkxQTBGMjlFMzEyMEI0
NDQyMDA1M0QxQjkgLyogVmlzaXRlZExpbmtQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBMURGNjMxMjE4RTBCN0M4MDAzQTNFMkEgLyogRG93bmxvYWRDbGllbnQubW0gaW4gU291cmNl
cyAqLywKIAkJCQkxQTBGMjlDQjEyMEIzNzE2MDA1M0QxQjkgLyogVmlzaXRlZExpbmtUYWJsZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk0QTNDQzE4QTE5QjA2M0U3MDBEMTRBRUYgLyogVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUFDMTMzN0YxODU5MEFFNDAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQ0VEQTEyRTIxNTJDRDFBRTAwRDlFMDhEIC8qIFdlYkFsdGVybmF0aXZl
VGV4dENsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTJFMzUyRTEzMEI1NUFGMDBBQkQx
OUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05
MTU4LDYgKzkyMDAsNyBAQAogCQkJCTUxODM0NTkyMTM0NTMyRTkwMDkyQjY5NiAvKiBXZWJJY29u
RGF0YWJhc2VDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFEMDJGNjQxMzJFQzVCOTAw
QkVBQTk2IC8qIFdlYkljb25EYXRhYmFzZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDNTcxOTNCRTE4QzE0QTQ0MDAyRDBGMTIgLyogV0tGb3JtU2VsZWN0Q29udHJvbC5t
bSBpbiBTb3VyY2VzICovLAorCQkJCTRBM0NDMThFMTlCMDdCODUwMEQxNEFFRiAvKiBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEREY3MzE2MThF
OTUwNjAwMDRGNUE2NiAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1MTFCMjRBNjEzMkUwOTU3MDAwNjVBMEMgLyogV2ViSWNvbkRhdGFi
YXNlUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFEMDJGNkIxMzJFQzczNzAwQkVBQTk2
IC8qIFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtOTMyMSw2ICs5MzY0LDcgQEAKIAkJCQlCQzQwNzYyODEyNEZGMDQwMDA2OEYyMEEgLyog
V0tDZXJ0aWZpY2F0ZUluZm9NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTVFNzcyNzE4M0RE
NkY2MDAwNzIwM0YgLyogQXN5bmNSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTI4
NEQ2MTQ5MkYyQzcwMDFGOTA0MiAvKiBXS0Nvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKKwkJ
CQk0QTNDQzE4QzE5QjA2NDE1MDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjBDMzY1ODE4QzA1MUJBMDBGNjA3RDcgLyog
UmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGMEMzNjVDMThD
MDVDQTEwMEY2MDdENyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM0QTYyOTYxNDczMTNBMDAwNkM2ODFBIC8qIFdLQ29ubmVjdGlv
blJlZi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
NmQ4MWU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRp
YVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0wLDAgKzEs
OTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJG
cmFtZS5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVSZXF1ZXN0SUQoKQor
eworICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVSZXF1ZXN0SUQgPSAxOworICAgIHJldHVybiB1
bmlxdWVSZXF1ZXN0SUQrKzsKK30KKworVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYgcGFnZSkKKyAgICA6
IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjo6c3RhcnRSZXF1ZXN0KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJwUmVxdWVz
dCkKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdChwcnBSZXF1ZXN0KTsK
KyAgICBGcmFtZSogZnJhbWUgPSByZXF1ZXN0LT5mcmFtZSgpOworICAgIEFTU0VSVChmcmFtZSk7
CisgICAgaWYgKCFmcmFtZSkgeworICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NEZW5p
ZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9
IGdlbmVyYXRlUmVxdWVzdElEKCk7CisgICAgbV9pZFRvUmVxdWVzdE1hcC5zZXQocmVxdWVzdElE
LCByZXF1ZXN0KTsKKyAgICBtX3JlcXVlc3RUb0lETWFwLnNldChyZXF1ZXN0LCByZXF1ZXN0SUQp
OworCisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZy
YW1lKTsKKyAgICBBU1NFUlQod2ViRnJhbWUpOworCisgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdp
biA9IHJlcXVlc3QtPnNlY3VyaXR5T3JpZ2luKCk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZShyZXF1ZXN0
SUQsIHdlYkZyYW1lLT5mcmFtZUlEKCksIG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCksIHJl
cXVlc3QtPnJlcXVpcmVzQXVkaW8oKSwgcmVxdWVzdC0+cmVxdWlyZXNWaWRlbygpKSk7Cit9CisK
K3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjYW5jZWxSZXF1ZXN0KFVz
ZXJNZWRpYVJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgdWludDY0X3QgcmVxdWVzdElEID0gbV9y
ZXF1ZXN0VG9JRE1hcC50YWtlKHJlcXVlc3QpOworICAgIGlmICghcmVxdWVzdElEKQorICAgICAg
ICByZXR1cm47CisgICAgbV9pZFRvUmVxdWVzdE1hcC5yZW1vdmUocmVxdWVzdElEKTsKK30KKwor
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVk
aWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgcmVxdWVzdElELCBib29sIGFsbG93ZWQpCit7
CisgICAgUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QgPSBtX2lkVG9SZXF1ZXN0TWFw
LnRha2UocmVxdWVzdElEKTsKKyAgICBpZiAoIXJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAg
ICBtX3JlcXVlc3RUb0lETWFwLnJlbW92ZShyZXF1ZXN0KTsKKworICAgIGlmIChhbGxvd2VkKQor
ICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgZWxzZQorICAg
ICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NEZW5pZWQoKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0v
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNjQzNjkzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNv
cmUvVXNlck1lZGlhUmVxdWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBVc2VyTWVkaWFS
ZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xh
c3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsKK3B1YmxpYzoKKyAgICBleHBs
aWNpdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYpOworCisgICAg
dm9pZCBzdGFydFJlcXVlc3QoUGFzc1JlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pik7
CisgICAgdm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKTsKKwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1
c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hN
YXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pj4gSURUb1JlcXVl
c3RNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1
ZXN0PiwgdWludDY0X3Q+IFJlcXVlc3RUb0lETWFwOworICAgIElEVG9SZXF1ZXN0TWFwIG1faWRU
b1JlcXVlc3RNYXA7CisgICAgUmVxdWVzdFRvSURNYXAgbV9yZXF1ZXN0VG9JRE1hcDsKKworICAg
IFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI3M2M4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNw
cApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViVXNlck1lZGlhQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjaW5jbHVkZSAiVXNlck1lZGlhQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRp
YVJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
TWVkaWFSZXF1ZXN0Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworV2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQoV2ViUGFn
ZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFdlYlVzZXJNZWRpYUNs
aWVudDo6cGFnZURlc3Ryb3llZCgpCit7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgV2Vi
VXNlck1lZGlhQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFVzZXJNZWRpYVJl
cXVlc3Q+IHJlcXVlc3QpCit7CisgICAgbV9wYWdlLnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcigpLnN0YXJ0UmVxdWVzdChyZXF1ZXN0KTsKK30KKwordm9pZCBXZWJVc2VyTWVkaWFD
bGllbnQ6OmNhbmNlbFJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBt
X3BhZ2UudXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsUmVxdWVzdChy
ZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OworCisjZW5kaWYgLy8gTUVESUFf
U1RSRUFNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5lZDQ1OWFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaApAQCAtMCwwICsxLDQ1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFdlYlVzZXJNZWRpYUNsaWVudF9oCisjZGVmaW5l
IFdlYlVzZXJNZWRpYUNsaWVudF9oCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1
ZGUgPFdlYkNvcmUvVXNlck1lZGlhQ2xpZW50Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJVc2Vy
TWVkaWFDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50IHsKK3B1YmxpYzoK
KyAgICBXZWJVc2VyTWVkaWFDbGllbnQoV2ViUGFnZSYpOworCitwcml2YXRlOgorICAgIHZpcnR1
YWwgdm9pZCBwYWdlRGVzdHJveWVkKCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNz
aW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4pOworICAgIHZpcnR1YWwg
dm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QqKTsKKworICAgIFdl
YlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBXZWJVc2VyTWVkaWFDbGllbnRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDJi
ZmZjMzQuLmM2ZjhhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTk4LDYgKzk4LDcgQEAKICNpbmNsdWRlICJXZWJQcm9ncmVzc1RyYWNr
ZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIldlYlVzZXJD
b250ZW50Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FyY2hp
dmVSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2hyb21lLmg+CkBAIC0yODUsNiArMjg2
LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAg
ICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQogI2VuZGlmCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKCp0aGlzKQorI2VuZGlmCiAgICAgLCBtX2NhblJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbChwYXJhbWV0ZXJzLmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICAs
IG1fY2FuUnVuTW9kYWwocGFyYW1ldGVycy5jYW5SdW5Nb2RhbCkKICAgICAsIG1faXNSdW5uaW5n
TW9kYWwoZmFsc2UpCkBAIC0zOTAsNiArMzk0LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRf
dCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAj
aWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCiAgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZVBy
b3hpbWl0eVRvKG1fcGFnZS5nZXQoKSwgbmV3IFdlYkRldmljZVByb3hpbWl0eUNsaWVudCh0aGlz
KSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYkNvcmU6OnByb3Zp
ZGVVc2VyTWVkaWFUbyhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJVc2VyTWVkaWFDbGllbnQoKnRoaXMp
KTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgbV9wYWdlLT5z
ZXRSZW1vdGVJbnNwZWN0aW9uQWxsb3dlZCh0cnVlKTsKQEAgLTMyNTUsNiArMzI2MiwxMyBAQCB2
b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQsCiAgICAgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKCktPmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24obm90aWZp
Y2F0aW9uSUQsIGFsbG93ZWQpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK3ZvaWQg
V2ViUGFnZTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1
c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQoreworICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNlck1l
ZGlhSUQsIGFsbG93ZWQpOworfQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oSU9TKQogdm9pZCBX
ZWJQYWdlOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlv
bikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4
IDFiMDc2NzEuLjgxMDViNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1
ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNp
bmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0RpY3RhdGlvbkFsdGVybmF0aXZlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0
YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yLmg+CkBAIC00NTAsNiArNDUxLDEwIEBAIHB1
YmxpYzoKICAgICB2b2lkIHJlc3RvcmVQYWdlU3RhdGUoY29uc3QgV2ViQ29yZTo6SGlzdG9yeUl0
ZW0mKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXImIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cigpIHsgcmV0dXJuIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CisjZW5k
aWYKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgc2NyZWVuU2l6
ZSgpIGNvbnN0OwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBhdmFpbGFibGVTY3JlZW5TaXplKCkg
Y29uc3Q7CkBAIC0xMDE3LDYgKzEwMjIsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkUmVj
ZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25J
RCwgYm9vbCBhbGxvd2VkKTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdm9pZCBk
aWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCBib29sIGFsbG93ZWQpOworI2VuZGlmCisKICAgICB2b2lkIGFkdmFuY2VUb05leHRNaXNzcGVs
bGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKTsKICAgICB2b2lkIGNoYW5nZVNwZWxsaW5n
VG9Xb3JkKGNvbnN0IFN0cmluZyYgd29yZCk7CiAjaWYgVVNFKEFQUEtJVCkKQEAgLTExODIsNiAr
MTE5MSwxMCBAQCBwcml2YXRlOgogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworI2VuZGlmCisKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UHJpbnRDb250ZXh0PiBtX3ByaW50Q29udGV4dDsKICNp
ZiBQTEFURk9STShHVEspCiAgICAgUmVmUHRyPFdlYlByaW50T3BlcmF0aW9uR3RrPiBtX3ByaW50
T3BlcmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBlOTkyNTRiLi4wZDZkNGRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpA
QCAtMjY1LDYgKzI2NSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBEaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2Vv
bG9jYXRpb25JRCwgYm9vbCBhbGxvd2VkKQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorICAgICMgTWVkaWFTdGVhbQorICAgIERpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9u
RGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCkKKyNlbmRpZgorCiAg
ICAgIyBOb3RpZmljYXRpb24KICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRl
Y2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwOWE3ZWM0Li5hZTMy
ZjliIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDggQEAKKzIwMTQtMDktMDEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXSzJdIFVzZXJNZWRpYUNsaWVudCBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbGUgQVBJIHRl
c3QgZm9yIHRoZSBVc2VyTWVkaWEgcGVybWlzc2lvbiByZXF1ZXN0IEFQSS4gVGhlCisgICAgICAg
IHJlcXVpcmVkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgaXMgYWxzbyBhZGRlZCwgaW5zcGlyZWQgYnkg
dGhlCisgICAgICAgIEdlb2xvY2F0aW9uIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE5ldyBB
UEkgdGVzdCBmb3IgVXNlck1lZGlhCisgICAgICAgIFBlcm1pc3Npb24gcmVxdWVzdC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcDogQWRkZWQuCisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdENhbGxCYWNrKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbDogQWRkZWQu
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbDogbmV3CisgICAgICAgIGhlbHBlciBtZXRob2QgdG8gc2V0IHRoZSBwZXJtaXNz
aW9uIHJlcXVlc3QgcmVzdWx0IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDogRGl0dG8u
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
Lmg6IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHA6IERpdHRvLgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRVc2VyTWVk
aWFQZXJtaXNzaW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaDogRGl0dG8uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0KTogUGVybWlzc2lvbgorICAgICAgICByZXF1ZXN0IGhhbmRsZXIuCisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UpOiBFbmFibGUgdGhlIG5l
dyBVc2VyTWVkaWEKKyAgICAgICAgcGVybWlzc2lvbiByZXF1ZXN0IGhhbmRsZXIuCisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMpOiBEaXR0by4K
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3Rl
bnRWYWx1ZXMpOiBFbmFibGUKKyAgICAgICAgTWVkaWFTdHJlYW0gc3VwcG9ydCwgdGhpcyBpcyBu
ZWVkZWQgZm9yIGdldFVzZXJNZWRpYS4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJl
c2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOiBjbGVhcgorICAgICAgICBVc2VyTWVkaWEgcGVy
bWlzc2lvbnMgbGlzdCBhbmQgZmxhZ3MuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpz
ZXRVc2VyTWVkaWFQZXJtaXNzaW9uKTogU2V0IHBlcm1pc3Npb24KKyAgICAgICAgcmVxdWVzdCBy
ZXN1bHQgYW5kIGRpc3RwYXRjaCBpdC4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6Omhh
bmRsZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTogU2F2ZQorICAgICAgICByZXF1ZXN0IGFu
ZCBkaXNwYXRjaCBpdC4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSk6CisgICAgICAgIERpc3Bh
dGNoIGNhY2hlZCBwZXJtaXNzaW9uIHJlcXVlc3RzLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxNC0xMC0wOCAgQ2FybG9zIEFsYmVydG8gTG9w
ZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBpbnN0YWxsLWRl
cGVuZGVuY2llcyBzaG91bGQgaW5zdGFsbCBsaWJqcGVnLXR1cmJvIG9uIERlYmlhbiBhbmQgZGVy
aXZhdGl2ZXMuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAppbmRleCBiYzVkMGJlLi5kZTA1
ZWExIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKQEAgLTE2Myw2ICsxNjMsOCBAQCBh
ZGRfZXhlY3V0YWJsZShUZXN0SmF2YVNjcmlwdENvcmUKICkKIAogdGFyZ2V0X2xpbmtfbGlicmFy
aWVzKFRlc3RKYXZhU2NyaXB0Q29yZSAke1Rlc3RKYXZhU2NyaXB0Q29yZV9MSUJSQVJJRVN9KQor
YWRkX2RlcGVuZGVuY2llcyhUZXN0SmF2YVNjcmlwdENvcmUgJHtGb3J3YXJkaW5nSGVhZGVyc0Zv
clRlc3RXZWJLaXRBUElfTkFNRX0pCisKIGFkZF90ZXN0KFRlc3RKYXZhU2NyaXB0Q29yZSAke1RF
U1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9KYXZhU2NyaXB0Q29yZS9UZXN0
SmF2YVNjcmlwdENvcmUpCiBzZXRfdGVzdHNfcHJvcGVydGllcyhUZXN0SmF2YVNjcmlwdENvcmUg
UFJPUEVSVElFUyBUSU1FT1VUIDYwKQogc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFRlc3RKYXZhU2Ny
aXB0Q29yZSBQUk9QRVJUSUVTIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke1RFU1RXRUJLSVRB
UElfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9KYXZhU2NyaXB0Q29yZSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGJhZTg0ZDMuLjg3ODg0NTIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtOTEsNiArOTEsNyBAQCBhZGRfZXhlY3V0YWJs
ZShUZXN0V2ViS2l0MgogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvUmVz
aXplV2luZG93QWZ0ZXJDcmFzaC5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9X
ZWJLaXQyL1Jlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGEuY3BwCiAgICAgJHtU
RVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9TaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0
SXRlbS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRp
YS5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1VzZXJNZXNzYWdl
LmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJt
aXRFdmVudC5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1dLUGFn
ZUdldFNjYWxlRmFjdG9yTm90WmVyby5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzU5
ODBjOC4uMTUwMmMzNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg4LDYgKzg4LDcgQEAK
IAkJMzdFMTA2NEQxNjk3NkM4NTAwQjc4QkQwIC8qIERPTUhUTUxUYWJsZUNlbGxDZWxsQWJvdmUu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0UxMDY0
QTE2OTc2NzY0MDBCNzhCRDAgLyogRE9NSFRNTFRhYmxlQ2VsbENlbGxBYm92ZS5tbSAqLzsgfTsK
IAkJMzdFMzhDMzQxNjlCN0QwMTAwODRDMjhDIC8qIFdlYlZpZXdEaWRSZW1vdmVGcmFtZUZyb21I
aWVyYXJjaHkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzN0UzOEMzMzE2OUI3RDAxMDA4NEMyOEMgLyogV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhp
ZXJhcmNoeS5tbSAqLzsgfTsKIAkJNDQwQTFEMzkxNEEwMTAzQTAwOEE2NkYyIC8qIFVSTC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDBBMUQzODE0
QTAxMDNBMDA4QTY2RjIgLyogVVJMLmNwcCAqLzsgfTsKKwkJNEE0MTBGNEMxOUFGN0JENjAwMkVC
QUI1IC8qIFVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0QTQxMEY0QjE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCAqLzsg
fTsKIAkJNEJCNDE2MDIxNjgxNUIyNjAwODI0MjM4IC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZy
YW1lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJC
NDE2MDExNjgxNUIyNjAwODI0MjM4IC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZyYW1lLm1tICov
OyB9OwogCQk0QkI0MTYwNDE2ODE1RjkxMDA4MjQyMzggLyogRWxlbWVudEF0UG9pbnRJbldlYkZy
YW1lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJC
NDE2MDMxNjgxNUY5MTAwODI0MjM4IC8qIEVsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5tbSAqLzsg
fTsKIAkJNEJGREZGQTcxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxl
X0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVu
ZGxlLmNwcCAqLzsgfTsKQEAgLTQzNiw2ICs0MzcsOCBAQAogCQkzN0UzOEMzMzE2OUI3RDAxMDA4
NEMyOEMgLyogV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlZpZXdEaWRSZW1vdmVGcmFtZUZyb21I
aWVyYXJjaHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MEExRDM4MTRBMDEw
M0EwMDhBNjZGMiAvKiBVUkwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVVJMLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRBNjIyQzExNEEwRTJC
NjAwNDg1MTVCIC8qIFdURlN0cmluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXVEZTdHJpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNEE0MTBGNEIxOUFGN0JENjAwMkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWEuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0QTQxMEY0RDE5QUY3QkVGMDAyRUJBQjUgLyogZ2V0VXNlck1lZGlh
Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBnZXRVc2VyTWVkaWEuaHRtbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJCNDE2MDExNjgxNUIyNjAwODI0MjM4IC8qIEpT
V3JhcHBlckZvck5vZGVJbldlYkZyYW1lLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTRCQjQxNjAzMTY4MTVGOTEwMDgyNDIzOCAvKiBFbGVtZW50QXRQb2lu
dEluV2ViRnJhbWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBF
bGVtZW50QXRQb2ludEluV2ViRnJhbWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5k
bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGl0VGVzdFJlc3Vs
dE5vZGVIYW5kbGVfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgy
MSw2ICs4MjQsNyBAQAogCQlCQzkwOTY0MTEyNTU2MTYwMDAwODM3NTYgLyogV2ViS2l0MiAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGNEIxOUFG
N0JENjAwMkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgKi8sCiAJCQkJQzBDNUQzQkIxNDU5OEI2RjAw
QTgwMkE2IC8qIG1hYyAqLywKIAkJCQlCQzkwOTc3QjEyNTU3MUFFMDAwODM3NTYgLyogUmVzb3Vy
Y2VzICovLAogCQkJCUJDMjQ2RDhDMTMyRjExNUEwMEI1NkQ3QyAvKiBBYm91dEJsYW5rTG9hZC5j
cHAgKi8sCkBAIC05NTQsNiArOTU4LDcgQEAKIAkJQkM5MDk3N0IxMjU1NzFBRTAwMDgzNzU2IC8q
IFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJNEE0MTBGNEQxOUFGN0JFRjAwMkVCQUI1IC8qIGdldFVzZXJNZWRpYS5odG1sICovLAogCQkJ
CUMwNDVGOTQ2MTM4NUMyRjgwMEMwRjNDRCAvKiAxOC1jaGFyYWN0ZXJzLmh0bWwgKi8sCiAJCQkJ
RjZCN0JFOTYxNzQ2OUI3RTAwOEEzNDQ1IC8qIGFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzLmh0bWwg
Ki8sCiAJCQkJNzZFMTgyREUxNTQ3NUE4MzAwRjFGQUREIC8qIGF1dG8tc3VibWl0dGluZy1mb3Jt
Lmh0bWwgKi8sCkBAIC0xMzU3LDYgKzEzNjIsNyBAQAogCQkJCTUxRkNGNzlBMTUzNEFDNkQwMDEw
NDQ5MSAvKiBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQUZERTY1NjE5NTNCMkMwMDBDNDhGRkEgLyogT3B0aW9uYWwuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQzU0MEY3NzYxNTJFNERBMDAwQTQwQzhDIC8qIFNpbXBsaWZ5TWFya3VwLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJNEE0MTBGNEMxOUFGN0JENjAwMkVCQUI1IC8qIFVzZXJNZWRpYS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDMDJCNzdGMjEyNjYxMjE0MDAyNkJGMEYgLyogU3BhY2Vi
YXJTY3JvbGxpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNEM0QxOUUxN0IxQTg0MjAwQzdD
NDE1IC8qIExheW91dE1pbGVzdG9uZXNXaXRoQWxsQ29udGVudEluRnJhbWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRTE5NEUxQkIxNzdFNTE0NTAwOUM0RDRFIC8qIFN0b3BMb2FkaW5nRnJvbURp
ZFJlY2VpdmVSZXNwb25zZS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi45NGY0NzkyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwg
d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lu
Y2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3Lmgi
CisjaW5jbHVkZSAiVGVzdC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgorI2lu
Y2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHZlY3Rvcj4KKwordXNpbmcgbmFtZXNwYWNlIHN0
ZDsKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCBkb25lOworCit2
b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbEJhY2soV0tQ
YWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2lu
LCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RB
bGxvdyhwZXJtaXNzaW9uUmVxdWVzdCk7CisgICAgZG9uZSA9IHRydWU7Cit9CisKK1RFU1QoV2Vi
S2l0MiwgVXNlck1lZGlhQmFzaWMpCit7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBj
b250ZXh0KEFkb3B0V0ssIFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1BhZ2VVSUNsaWVudFY1IHVpQ2xpZW50Owor
ICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOworCisgICAgdWlDbGll
bnQuYmFzZS52ZXJzaW9uID0gNTsKKyAgICB1aUNsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdCA9IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0Q2FsbEJhY2s7CisKKyAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdl
KCksICZ1aUNsaWVudC5iYXNlKTsKKworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwoQWRv
cHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImdldFVzZXJNZWRpYSIsICJodG1sIikp
OworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCks
IHVybC5nZXQoKSk7CisKKyAgICBVdGlsOjpydW4oJmRvbmUpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRpYS5odG1s
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRpYS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1NGY4NTMKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWwK
QEAgLTAsMCArMSwxNCBAQAorPHNjcmlwdD4KK2Z1bmN0aW9uIGdvdFVzZXJNZWRpYShtZWRpYVN0
cmVhbSkKK3sKKyAgICBjb25zb2xlLmxvZygiR290IHVzZXIgbWVkaWEiKTsKK30KKworZnVuY3Rp
b24gdXNlck1lZGlhRXJyb3IoZXJyb3IpCit7CisgICAgY29uc29sZS5sb2coZXJyb3IpOworfQor
Cit2YXIgb3B0aW9ucyA9IHsgYXVkaW86IGZhbHNlLCB2aWRlbzogdHJ1ZX07CituYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGdvdFVzZXJNZWRpYSwgdXNlck1lZGlhRXJyb3Ip
OworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCBiYjlhN2EwLi4wOGEx
ODk4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTE2OSw2ICsxNjksOSBAQCBpbnRl
cmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihk
b3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgW0RlZmF1
bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBvYmplY3QgYWx0aXR1ZGUsIG9wdGlvbmFsIG9iamVjdCBh
bHRpdHVkZUFjY3VyYWN5LCBvcHRpb25hbCBvYmplY3QgaGVhZGluZywgb3B0aW9uYWwgb2JqZWN0
IHNwZWVkKTsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVF
cnJvcihET01TdHJpbmcgZXJyb3JNZXNzYWdlKTsKIAorICAgIC8vIE1lZGlhU3RyZWFtCisgICAg
dm9pZCBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2xlYW4gdmFsdWUpOworCiAgICAgLy8gQXVk
aW8gdGVzdGluZy4KICAgICBbUGFzc0NvbnRleHRdIHZvaWQgc2V0QXVkaW9SZXN1bHQob2JqZWN0
IGRhdGEpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDdiMWRlNzAuLjFiNmViZDAgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuY3BwCkBAIC00NTgsNiArNDU4LDEzIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldE1v
Y2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihXS1N0cmluZ1JlZiBlcnJvCiAg
ICAgV0tCdW5kbGVQb3N0TWVzc2FnZShtX2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0KCksIGVycm9y
TWVzc2FnZSk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldFVzZXJNZWRpYVBlcm1pc3Np
b24oYm9vbCBlbmFibGVkKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdl
TmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0VXNlck1lZGlh
UGVybWlzc2lvbiIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5
KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShlbmFibGVkKSk7CisgICAgV0tCdW5kbGVQb3N0TWVz
c2FnZShtX2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKK30K
Kwogdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFi
bGVkLCBib29sIHBlcm1pc3NpdmUpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1l
c3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRDdXN0
b21Qb2xpY3lEZWxlZ2F0ZSIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAppbmRleCA5Zjc2YTlkLi44ZjBhODQwIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5oCkBAIC05Miw2ICs5Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1vY2tH
ZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91
YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9v
bCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29s
IHByb3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91
YmxlIHNwZWVkKTsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFi
bGVFcnJvcihXS1N0cmluZ1JlZiBlcnJvck1lc3NhZ2UpOwogCisgICAgLy8gTWVkaWFTdHJlYW0u
CisgICAgdm9pZCBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wpOworCiAgICAgLy8gUG9saWN5
IGRlbGVnYXRlLgogICAgIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFibGVk
LCBib29sIHBlcm1pc3NpdmUpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBkMDg1ZjFhLi5kNzUxYjk1IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAKQEAgLTcyMCw2ICs3MjAsMTIgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoSlNTdHJpbmdSZWYgbWVzc2FnZSkKICAgICBJ
bmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWls
YWJsZUVycm9yKG1lc3NhZ2VXSy5nZXQoKSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0VXNl
ck1lZGlhUGVybWlzc2lvbihib29sIGVuYWJsZWQpCit7CisgICAgLy8gRklYTUU6IHRoaXMgc2hv
dWxkIGJlIGRvbmUgYnkgZnJhbWUuCisgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnNldFVz
ZXJNZWRpYVBlcm1pc3Npb24oZW5hYmxlZCk7Cit9CisKIGJvb2wgVGVzdFJ1bm5lcjo6Y2FsbFNo
b3VsZENsb3NlT25XZWJWaWV3KCkKIHsKICAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5GcmFtZSA9
IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgp
LT5wYWdlKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAppbmRleCBlMjFmZmYzLi4zOTRlOTA4IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMjUyLDYgKzI1
Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJs
ZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBKU1ZhbHVlUmVm
IGFsdGl0dWRlLCBKU1ZhbHVlUmVmIGFsdGl0dWRlQWNjdXJhY3ksIEpTVmFsdWVSZWYgaGVhZGlu
ZywgSlNWYWx1ZVJlZiBzcGVlZCk7CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlv
blVuYXZhaWxhYmxlRXJyb3IoSlNTdHJpbmdSZWYgbWVzc2FnZSk7CiAKKyAgICAvLyBNZWRpYVN0
cmVhbQorICAgIHZvaWQgc2V0VXNlck1lZGlhUGVybWlzc2lvbihib29sKTsKKwogICAgIHZvaWQg
c2V0UGFnZVZpc2liaWxpdHkoSlNTdHJpbmdSZWYgc3RhdGUpOwogICAgIHZvaWQgcmVzZXRQYWdl
VmlzaWJpbGl0eSgpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CmluZGV4IGRhMTNmMmQuLjQ2YzI4YTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCkBAIC0xODgsNiArMTg4LDExIEBAIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGlj
eUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBX
CiAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLmhhbmRsZUdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QocGVybWlzc2lvblJlcXVlc3QpOwogfQogCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdL
U2VjdXJpdHlPcmlnaW5SZWYsIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlz
c2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgVGVzdENvbnRyb2xs
ZXI6OnNoYXJlZCgpLmhhbmRsZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHBlcm1pc3Npb25S
ZXF1ZXN0KTsKK30KKwogaW50IFRlc3RDb250cm9sbGVyOjpnZXRDdXN0b21UaW1lb3V0KCkKIHsK
ICAgICByZXR1cm4gbV90aW1lb3V0OwpAQCAtMjAyLDggKzIwNyw4IEBAIFdLUGFnZVJlZiBUZXN0
Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVl
c3RSZWYsIFdLCiAKICAgICB2aWV3LT5yZXNpemVUbyg4MDAsIDYwMCk7CiAKLSAgICBXS1BhZ2VV
SUNsaWVudFYyIG90aGVyUGFnZVVJQ2xpZW50ID0gewotICAgICAgICB7IDIsIHZpZXcgfSwKKyAg
ICBXS1BhZ2VVSUNsaWVudFY1IG90aGVyUGFnZVVJQ2xpZW50ID0geworICAgICAgICB7IDUsIHZp
ZXcgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYw
CiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIGNsb3NlT3RoZXJQYWdlLApAQCAtMjUw
LDYgKzI1NSwxMiBAQCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShX
S1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXSwogICAgICAgICAwLCAvLyBzaG93
Q29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAsIC8v
IHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZAorICAgICAgICAwLCAvLyBwaW5uZWRTdGF0
ZURpZENoYW5nZQorICAgICAgICAwLCAvLyBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01v
dXNlUHJlc3MKKyAgICAgICAgMCwgLy8gZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MKKyAgICAg
ICAgMCwgLy8gZGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcworICAgICAg
ICAwLCAvLyBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZQorICAgICAgICBkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNs
aWVudChuZXdQYWdlLCAmb3RoZXJQYWdlVUlDbGllbnQuYmFzZSk7CiAKQEAgLTQwOCw4ICs0MTks
OCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFy
KiBhcmd2W10pCiB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMo
V0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpCiB7CiAgICAgbV9tYWluV2ViVmlldyA9IHN0ZDo6bWFr
ZV91bmlxdWU8UGxhdGZvcm1XZWJWaWV3PihtX2NvbnRleHQuZ2V0KCksIG1fcGFnZUdyb3VwLmdl
dCgpLCBudWxscHRyLCBvcHRpb25zKTsKLSAgICBXS1BhZ2VVSUNsaWVudFYyIHBhZ2VVSUNsaWVu
dCA9IHsKLSAgICAgICAgeyAyLCBtX21haW5XZWJWaWV3LmdldCgpIH0sCisgICAgV0tQYWdlVUlD
bGllbnRWNSBwYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgNSwgbV9tYWluV2ViVmlldy5nZXQo
KSB9LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAK
ICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAgMCwgLy8gY2xvc2UKQEAgLTQ1Niw2ICs0
NjcsMTIgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKFdL
RGljdGlvbmFyeVJlZiBvcHRpb25zKQogICAgICAgICAwLCAvLyBzaG93Q29sb3JQaWNrZXIKICAg
ICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0
dG9uQ2xpY2tlZCwKKyAgICAgICAgMCwgLy8gcGlubmVkU3RhdGVEaWRDaGFuZ2UKKyAgICAgICAg
MCwgLy8gZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzCisgICAgICAgIDAs
IC8vIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzCisgICAgICAgIDAsIC8vIGRpZENhbmNlbFRy
YWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MKKyAgICAgICAgMCwgLy8gaXNQbGF5aW5nQXVk
aW9EaWRDaGFuZ2UKKyAgICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QsCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+
cGFnZSgpLCAmcGFnZVVJQ2xpZW50LmJhc2UpOwogCkBAIC01NDUsNiArNTYyLDcgQEAgdm9pZCBU
ZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAg
V0tQcmVmZXJlbmNlc1NldEZvbnRTbW9vdGhpbmdMZXZlbChwcmVmZXJlbmNlcywga1dLRm9udFNt
b290aGluZ0xldmVsTm9TdWJwaXhlbEFudGlBbGlhc2luZyk7CiAgICAgV0tQcmVmZXJlbmNlc1Nl
dFhTU0F1ZGl0b3JFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAgICAgV0tQcmVmZXJlbmNl
c1NldFdlYkF1ZGlvRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNl
c1NldE1lZGlhU3RyZWFtRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJl
bmNlc1NldERldmVsb3BlckV4dHJhc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdL
UHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKHByZWZlcmVuY2VzLCB0
cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseShwcmVmZXJlbmNlcywgdHJ1ZSk7CkBAIC02NDQsNiArNjYyLDExIEBAIGJvb2wgVGVz
dENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIG1faXNHZW9s
b2NhdGlvblBlcm1pc3Npb25TZXQgPSBmYWxzZTsKICAgICBtX2lzR2VvbG9jYXRpb25QZXJtaXNz
aW9uQWxsb3dlZCA9IGZhbHNlOwogCisgICAgLy8gUmVzZXQgVXNlck1lZGlhIHBlcm1pc3Npb25z
LgorICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLmNsZWFyKCk7CisgICAgbV9pc1Vz
ZXJNZWRpYVBlcm1pc3Npb25TZXQgPSBmYWxzZTsKKyAgICBtX2lzVXNlck1lZGlhUGVybWlzc2lv
bkFsbG93ZWQgPSBmYWxzZTsKKwogICAgIC8vIFJlc2V0IEN1c3RvbSBQb2xpY3kgRGVsZWdhdGUu
CiAgICAgc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoZmFsc2UsIGZhbHNlKTsKIApAQCAtMTM1Nyw2
ICsxMzgwLDM0IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmhhbmRsZUdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QoV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SCiAgICAgZGVjaWRlUG9saWN5Rm9y
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKTsKIH0KIAordm9pZCBUZXN0
Q29udHJvbGxlcjo6c2V0VXNlck1lZGlhUGVybWlzc2lvbihib29sIGVuYWJsZWQpCit7CisgICAg
bV9pc1VzZXJNZWRpYVBlcm1pc3Npb25TZXQgPSB0cnVlOworICAgIG1faXNVc2VyTWVkaWFQZXJt
aXNzaW9uQWxsb3dlZCA9IGVuYWJsZWQ7CisgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6Omhh
bmRsZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpCit7CisgICAgbV91c2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdHMuYXBwZW5kKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTsKKyAgICBk
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKTsKK30K
Kwordm9pZCBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RJZlBvc3NpYmxlKCkKK3sKKyAgICBpZiAoIW1faXNVc2VyTWVkaWFQZXJtaXNzaW9u
U2V0KQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLnNpemUoKTsgKytpKSB7CisgICAgICAgIFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QgPSBtX3VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0c1tpXS5nZXQoKTsKKyAgICAgICAgaWYgKG1faXNVc2VyTWVkaWFQZXJt
aXNzaW9uQWxsb3dlZCkKKyAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RB
bGxvdyhwZXJtaXNzaW9uUmVxdWVzdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KHBlcm1pc3Npb25SZXF1ZXN0KTsKKyAgICB9Cisg
ICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuY2xlYXIoKTsKK30KKwogdm9pZCBUZXN0
Q29udHJvbGxlcjo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFibGVkLCBib29sIHBl
cm1pc3NpdmUpCiB7CiAgICAgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQgPSBlbmFibGVkOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGQ5YmU3NDguLjU5YTdlODkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTg4LDYgKzg4LDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFi
bGVFcnJvcihXS1N0cmluZ1JlZiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgaGFuZGxlR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYp
OwogCisgICAgLy8gTWVkaWFTdHJlYW0uCisgICAgdm9pZCBzZXRVc2VyTWVkaWFQZXJtaXNzaW9u
KGJvb2wpOworICAgIHZvaWQgaGFuZGxlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CisKICAgICAvLyBQb2xpY3kgZGVsZWdhdGUuCiAg
ICAgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVybWlz
c2l2ZSk7CiAKQEAgLTEzMyw2ICsxMzcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlTGF5
b3V0VHlwZUZvclRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mKTsKIAogICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKTsKKyAgICB2
b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgp
OwogCiAgICAgLy8gV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQKICAgICBzdGF0aWMgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0NvbnRleHRSZWYsIFdLU3Ry
aW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHksIGNvbnN0IHZvaWQqKTsK
QEAgLTIzNyw2ICsyNDIsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNHZW9sb2NhdGlvblBl
cm1pc3Npb25TZXQ7CiAgICAgYm9vbCBtX2lzR2VvbG9jYXRpb25QZXJtaXNzaW9uQWxsb3dlZDsK
IAorICAgIFZlY3RvcjxXS1JldGFpblB0cjxXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVm
Pj4gbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHM7CisgICAgYm9vbCBtX2lzVXNlck1lZGlh
UGVybWlzc2lvblNldDsKKyAgICBib29sIG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uQWxsb3dlZDsK
KwogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQ7CiAgICAgYm9vbCBtX3BvbGljeURl
bGVnYXRlUGVybWlzc2l2ZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcAppbmRleCAzNjM3NzAzLi44N2M0NmM0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcApAQCAtNDc4LDYgKzQ3OCwxMyBAQCB2b2lkIFRlc3RJbnZvY2F0aW9u
OjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdl
TmFtZQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRVc2VyTWVkaWFQZXJtaXNzaW9uIikpIHsKKyAg
ICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBl
SUQoKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBlbmFibGVkV0sgPSBzdGF0aWNfY2FzdDxXS0Jv
b2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgp
LnNldFVzZXJNZWRpYVBlcm1pc3Npb24oV0tCb29sZWFuR2V0VmFsdWUoZW5hYmxlZFdLKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhtZXNzYWdlTmFtZSwgIlNldEN1c3RvbVBvbGljeURlbGVnYXRlIikpIHsKICAgICAgICAg
QVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQo
KSk7CiAgICAgICAgIFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0
aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKLS0gCjIuMS4w
</data>
<flag name="review"
          id="264204"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239719</attachid>
            <date>2014-10-13 02:22:40 -0700</date>
            <delta_ts>2014-11-11 04:00:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>118760</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBlODE1YWIwMTZiZTYwMDgzZTExMWVmNDhmZmU2NDZkNGE1ODE4NmI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDIgU2VwIDIwMTQgMTE6NTY6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDMxICsrKysrKysKIC4uLi9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC1leHBlY3Rl
ZC50eHQgICAgICAgIHwgMTAgKysrCiAuLi4vbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9u
LWFsbG93ZWQuaHRtbCAgICB8IDM0ICsrKysrKysrCiAuLi4vZGVsYXllZC1wZXJtaXNzaW9uLWRl
bmllZC1leHBlY3RlZC50eHQgICAgICAgICB8IDEwICsrKwogLi4uL21lZGlhc3RyZWFtL2RlbGF5
ZWQtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCAgICAgfCAzNyArKysrKysrKysKIExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0ZWQudHh0ICAgIHwgMTAgKysrCiBMYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWwgICAgICAgICAgICB8IDI5ICsrKysrKysK
IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy1leHBlY3RlZC50eHQgIHwgIDkg
KysrCiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbCAgICAgICAgICB8
IDI2ICsrKysrKwogLi4uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVkLnR4dCAg
ICAgICAgfCAxMSArKysKIC4uLi9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVh
ZHkuaHRtbCAgIHwgNDQgKysrKysrKysrKwogLi4uL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQt
ZnJhbWUtZXhwZWN0ZWQudHh0ICAgfCAxMSArKysKIC4uLnNjb25uZWN0ZWQtZnJhbWUtcGVybWlz
c2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IHwgMTMgKysrCiAuLi4vZGlzY29ubmVjdGVkLWZyYW1l
LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwgICAgICB8IDUzICsrKysrKysrKysrKwogLi4uL21lZGlh
L21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbCAgICAgfCA0MiArKysrKysrKysr
CiAuLi4vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIxLmh0bWwgICAgICAgICB8ICA4
ICsrCiAuLi4vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0bWwgICAgICAgICB8
ICA4ICsrCiAuLi4vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sICAgICAg
ICB8ICA4ICsrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyAgICAg
ICAgICB8IDM4ICsrKysrKysrLQogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMgICAgICAgICAgfCAgMSArCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8IDIyICsrKysrCiAuLi4vV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYUNsaWVudC5oICB8ICA0ICstCiAuLi4vTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFDb250cm9sbGVyLmggICAgICB8IDEwICstLQogLi4uL01vZHVsZXMvbWVkaWFzdHJl
YW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgICAgICAgfCAgNSArLQogLi4uL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggfCAgNCArCiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaCB8IDEyICstLQogU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgfCAgNyArKwogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA3NCArKysrKysrKysr
KysrKysrKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oICAgICAgICAgICAg
ICAgfCAgMSArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggICAgICAgICAgICAg
ICAgICB8ICAxICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCAg
ICAgICAgIHwgIDIgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5o
ICAgICAgICAgfCAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cCAgICAgICAgICB8IDExICsrLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVVJQ2xpZW50LmggICAgfCA2OSArKysrKysrKysrKysrKysrCiAuLi4vQVBJL0MvV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgICAgICAgICB8IDQwICsrKysrKysrKwogLi4uL1VJUHJv
Y2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggfCAzNyArKysrKysrKysK
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaCAgICAgICAgIHwgIDEg
KwogLi4uL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAgICAgfCA2
MyArKysrKysrKysrKysrKysKIC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5oICAgICAgIHwgNDggKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5jcHAgIHwgNTQgKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggICAgfCA1NCArKysrKysrKysrKysr
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCAgICAgICAgICB8IDE0
ICsrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAgICAg
IHwgIDcgKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4gIHwgIDUgKysKIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiAgIHwgNDQgKysrKysrKysrKwogLi4uL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAgICAgICAgICAgfCA5NCArKysrKysrKysrKysrKysrKysrKysrCiAuLi4vVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggICAgICAgICAgICB8IDUzICsrKysrKysrKysr
KwogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgICAgICAgICAgfCA1
NSArKysrKysrKysrKysrCiAuLi4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVk
aWFDbGllbnQuaCB8IDQ3ICsrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgICAgICB8IDE0ICsrKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmggICAgICAgIHwgMTMgKysrCiAuLi4vV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiB8ICA1ICsrCiBUb29scy9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ1ICsrKysrKysrKysrCiBUb29s
cy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICB8ICAyICsKIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UgICAgICAgICAgICAgIHwgIDEgKwog
Li4uL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgfCAgNiAr
KwogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAgICAgfCA2
MSArKysrKysrKysrKysrKwogLi4uL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZXRVc2Vy
TWVkaWEuaHRtbCAgfCAxNCArKysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGwgICAgICAgICB8ICAzICsKIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHAgICAgICAgICAgICAgIHwgIDcgKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5oICAgICAgICAgICAgICAgIHwgIDMgKwogLi4uL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgfCAgNiArKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggfCAgMyArCiBUb29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcCAgICAgICAgICB8IDU4ICsrKysrKysrKysrKy0KIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCAgICAgICAgICAgIHwgIDkgKysrCiBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCAgICAgICAgICB8ICA3ICsrCiA2
NiBmaWxlcyBjaGFuZ2VkLCAxNTA5IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJt
aXNzaW9uLWFsbG93ZWQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5odG1sCiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1p
c3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1sCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1leHBlY3RlZC50
eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9y
Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1
Y2Nlc3MtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1l
eHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS5odG1sCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlz
Y29ubmVjdGVkLWZyYW1lLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlz
c2lvbi1kZW5pZWQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3Vy
Y2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMS5odG1sCiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2Vz
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rp
c2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCiBj
cmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
Y3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCiBjcmVhdGUgbW9kZSAxMDA2
NDQgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRpYS5odG1sCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDdlODUyM2MuLjEzZjU5OTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxNC0wOS0w
MSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dL
Ml0gVXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFNpbXBsZSBVc2VyTWVkaWEgcGVybWlzc2lvbiByZXF1ZXN0IHRl
c3RzIGluc3BpcmVkIGZyb20gdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIHRlc3Qgc3VpdGUuCisK
KyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9lcnJvci5qczogQWRkZWQuCisgICAgICAgICog
ZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvc3VjY2Vzcy5qczogQWRkZWQuCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2Vk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNz
aW9uLWRlbmllZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFt
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5l
Y3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1h
bHJlYWR5LWlubmVyMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291
cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtaW5uZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTQtMTAtMTIgIE1pa2UgV2VzdCAgPG1r
d3N0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZWZlcnJlciBQb2xpY3k6IFVwZGF0ZSA8bWV0
YSBuYW1lPSJyZWZlcnJlciI+IHZhbHVlcyB0byBtYXRjaCB0aGUgc3BlYwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlz
c2lvbi1hbGxvd2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5mM2Y4MjVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MCBAQAorVGVzdHMgdGhhdCBubyBjYWxsYmFja3MgYXJlIGludm9rZWQgdW50aWwgcGVybWlzc2lv
biBpcyBhbGxvd2VkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBTdWNj
ZXNzIGNhbGxiYWNrIGludm9rZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZDU0N2MwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRtbApAQCAtMCww
ICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IG5vIGNhbGxiYWNrcyBhcmUgaW52
b2tlZCB1bnRpbCBwZXJtaXNzaW9uIGlzIGFsbG93ZWQuIik7Cit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK2Z1bmN0aW9uIGFsbG93UGVybWlzc2lvbigpIHsKKyAgICBwZXJtaXNzaW9u
U2V0ID0gdHJ1ZTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKK30KKwordmFyIG9wdGlvbnMgPSB7YXVk
aW86IHRydWUsIHZpZGVvOiB0cnVlfTsKK25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0
aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7CisgICBpZiAocGVybWlzc2lvblNldCkgeworICAgICAg
ICB0ZXN0UGFzc2VkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQnKTsKKyAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdEZhaWxlZCgnU3VjY2Vz
cyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworfSwgZnVuY3Rpb24oZSkgeworICAg
IHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9KTsKKword2luZG93LnNldFRpbWVvdXQoYWxsb3dQZXJtaXNzaW9u
LCAxMDApOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVu
aWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZmY2
N2QwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxh
eWVkLXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0
cyB0aGF0IG5vIGNhbGxiYWNrcyBhcmUgaW52b2tlZCB1bnRpbCBwZXJtaXNzaW9uIGlzIGRlbmll
ZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXJyb3IuY29kZSBpcyBl
cnJvci5QRVJNSVNTSU9OX0RFTklFRAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNjZkYTRhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1sCkBAIC0wLDAg
KzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgbm8gY2FsbGJhY2tzIGFyZSBpbnZv
a2VkIHVudGlsIHBlcm1pc3Npb24gaXMgZGVuaWVkLiIpOword2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworCitmdW5jdGlvbiBkZW55UGVybWlzc2lvbigpIHsKKyAgICBwZXJtaXNzaW9uU2V0
ID0gdHJ1ZTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlck1lZGlhUGVybWlzc2lvbihmYWxzZSk7Cit9CisKK3ZhciBlcnJvcjsKK3ZhciBvcHRp
b25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07CituYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgeworICAgIHRlc3RGYWlsZWQoJ1N1Y2Nl
c3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30sIGZ1bmN0aW9uKGUpIHsKKyAgICBpZiAocGVybWlzc2lvblNldCkgeworICAgICAgICBlcnJv
ciA9IGU7CisgICAgICAgIHNob3VsZEJlKCdlcnJvci5jb2RlJywgJ2Vycm9yLlBFUk1JU1NJT05f
REVOSUVEJyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKword2luZG93LnNldFRpbWVvdXQoZGVueVBlcm1p
c3Npb24sIDEwMCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZTYyOWQyMjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitU
ZXN0cyBVc2VyTWVkaWEgZXJyb3IgY2FsbGJhY2sgdXNpbmcgdGhlIG1vY2sgc2VydmljZS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXJyb3IuY29kZSBpcyBlcnJvci5Q
RVJNSVNTSU9OX0RFTklFRAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJy
b3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGM1MTU4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCkBAIC0wLDAgKzEsMjkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oIlRlc3RzIFVzZXJNZWRpYSBlcnJvciBjYWxsYmFjayB1c2luZyB0aGUg
bW9jayBzZXJ2aWNlLiIpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZh
bHNlKTsKK2Vsc2UKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQg
dGhlIHRlc3RSdW5uZXInKTsKKwordmFyIGVycm9yOwordmFyIG9wdGlvbnMgPSB7YXVkaW86ZmFs
c2UsIHZpZGVvOnRydWV9OworbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBm
dW5jdGlvbihzdHJlYW0pIHsKKyAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9r
ZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmdW5jdGlvbihlKSB7
CisgICAgZXJyb3IgPSBlOworICAgIHNob3VsZEJlKCdlcnJvci5jb2RlJywgJ2Vycm9yLlBFUk1J
U1NJT05fREVOSUVEJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9z
dWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vz
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIyM2Vi
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vz
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0cyBVc2VyTWVkaWEgc3VjY2VzcyBj
YWxsYmFjayB1c2luZyB0aGUgbW9jayBzZXJ2aWNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNmMWYyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRlc3RzIFVzZXJNZWRpYSBzdWNjZXNzIGNhbGxiYWNrIHVzaW5nIHRoZSBt
b2NrIHNlcnZpY2UuIik7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1
ZSk7CitlbHNlCisgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRo
ZSB0ZXN0UnVubmVyJyk7CisKK3ZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1
ZX07CituYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVh
bSkgeworICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZnVuY3Rpb24oZSkgeworICAgIHRlc3RGYWls
ZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgZmluaXNoSlNU
ZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1l
LWFscmVhZHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1MDVkYjkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJh
bWUtYWxyZWFkeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDI0OiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5OiBUaGUgaW1wbGVt
ZW50YXRpb24gZGlkIG5vdCBzdXBwb3J0IHRoZSByZXF1ZXN0ZWQgdHlwZSBvZiBvYmplY3Qgb3Ig
b3BlcmF0aW9uLgorVGVzdHMgdGhhdCB3aGVuIGEgZ2V0VXNlck1lZGlhIHJlcXVlc3QgaXMgbWFk
ZSBhZnRlciBpdHMgZnJhbWUgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBubyBjYWxsYmFja3MgYXJl
IG1hZGUgYW5kIG5vIGNyYXNoIG9jY3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK3dlYmtpdEdldFVzZXJNZWRpYSBjYWxsZWQgb24gb2JqZWN0IHdpdGggZGlzY29ubmVjdGVk
IEZyYW1lLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFt
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjNjQ4ZjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQt
ZnJhbWUtYWxyZWFkeS5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgd2hlbiBhIGdldFVzZXJNZWRpYSByZXF1ZXN0IGlzIG1hZGUgYWZ0ZXIgaXRz
IGZyYW1lIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgbm8gY2FsbGJhY2tzIGFyZSBtYWRlIGFuZCBu
byBjcmFzaCBvY2N1cnMuIik7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24o
dHJ1ZSk7CisKK2Z1bmN0aW9uIG9uRmlyc3RJZnJhbWVMb2FkZWQoKSB7CisgICAgaWZyYW1lTmF2
aWdhdG9yID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yOworICAgIGlmcmFtZS5zcmMg
PSAncmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMi5odG1sJzsKK30K
KwordmFyIGVycm9yOwordmFyIG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfTsK
K2Z1bmN0aW9uIG9uU2Vjb25kSWZyYW1lTG9hZGVkKCkgeworICAgIHNldFRpbWVvdXQoZmluaXNo
VGVzdCwgNTAwKTsKKworICAgIGlmcmFtZU5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0
aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2Fs
bGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgfSwgZnVuY3Rpb24oZSkgeworICAgICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBp
bnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsK
K30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICBkZWJ1Zygnd2Via2l0R2V0VXNlck1l
ZGlhIGNhbGxlZCBvbiBvYmplY3Qgd2l0aCBkaXNjb25uZWN0ZWQgRnJhbWUuJyk7CisgICAgZmlu
aXNoSlNUZXN0KCk7Cit9CisKK3ZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdp
ZnJhbWUnKTsKK2lmcmFtZS5zcmMgPSAncmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJl
YWR5LWlubmVyMS5odG1sJzsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5l
Y3RlZC1mcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZWZiNzhjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMSBAQAorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+IiAtIGhhcyAx
IG9udW5sb2FkIGhhbmRsZXIocykKK1Rlc3RzIHRoYXQgd2hlbiBhIHJlcXVlc3QgaXMgbWFkZSBv
biBhIFVzZXJNZWRpYSBvYmplY3QgYW5kIGl0cyBGcmFtZSBpcyBkaXNjb25uZWN0ZWQgYmVmb3Jl
IGEgY2FsbGJhY2sgaXMgbWFkZSwgdGhlIGVycm9yIGNhbGxiYWNrIGlzIGludm9rZWQgd2l0aCB0
aGUgY29ycmVjdCBlcnJvciBtZXNzYWdlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBObyBjYWxsYmFja3MgaW52b2tlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmll
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVh
bS9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3MjQ2MzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQt
ZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK2Zy
YW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIgLSBoYXMgMSBvbnVubG9hZCBo
YW5kbGVyKHMpCitUZXN0cyB0aGF0IHdoZW4gYSBnZXRVc2VyTWVkaWEgcmVxdWVzdCBpcyBtYWRl
LCBwZXJtaXNzaW9uIGlzIGRlbmllZCBhbmQgaXRzIEZyYW1lIGlzIGRpc2Nvbm5lY3RlZCBiZWZv
cmUgYSBjYWxsYmFjayBpcyBtYWRlLCB0aGUgZXJyb3IgY2FsbGJhY2sgaXMgaW52b2tlZCB3aXRo
IFBFUk1JU1NJT05fREVOSUVELgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBlcnJvci5jb2RlIGlzIGVycm9yLlBFUk1JU1NJT05fREVOSUVECisKK1BBU1MgTm8gY2FsbGJh
Y2tzIGludm9rZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0
cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdk
MTk3OTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApAQCAt
MCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdoZW4gYSBnZXRV
c2VyTWVkaWEgcmVxdWVzdCBpcyBtYWRlLCBwZXJtaXNzaW9uIGlzIGRlbmllZCBhbmQgaXRzIEZy
YW1lIGlzIGRpc2Nvbm5lY3RlZCBiZWZvcmUgYSBjYWxsYmFjayBpcyBtYWRlLCB0aGUgZXJyb3Ig
Y2FsbGJhY2sgaXMgaW52b2tlZCB3aXRoIFBFUk1JU1NJT05fREVOSUVELiIpOword2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1
bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsKK2Vsc2UKKyAgICBkZWJ1ZygnVGhp
cyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXInKTsKKwordmFyIGVy
cm9yOwordmFyIG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfTsKK2Z1bmN0aW9u
IG9uSWZyYW1lTG9hZGVkKCkgeworICAgIGlmcmFtZU5hdmlnYXRvciA9IGlmcmFtZS5jb250ZW50
V2luZG93Lm5hdmlnYXRvcjsKKyAgICBpZnJhbWVOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
KG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgeworICAgICAgICB0ZXN0RmFpbGVkKCdTdWNjZXNz
IGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgIH0sIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgICAgICBzaG91
bGRCZSgnZXJyb3IuY29kZScsICdlcnJvci5QRVJNSVNTSU9OX0RFTklFRCcpOworICAgICAgICBk
ZWJ1ZygnJyk7CisgICAgICAgIGlmcmFtZS5zcmMgPSAnZGF0YTp0ZXh0L2h0bWwsVGhpcyBmcmFt
ZSBzaG91bGQgYmUgdmlzaWJsZSB3aGVuIHRoZSB0ZXN0IGNvbXBsZXRlcyc7CisgICAgfSk7Cit9
CisKK2Z1bmN0aW9uIG9uSWZyYW1lVW5sb2FkZWQoKSB7CisgICAgLy8gTWFrZSBhbm90aGVyIHJl
cXVlc3QsIHdpdGggcGVybWlzc2lvbiBhbHJlYWR5IGRlbmllZC4KKyAgICBpZnJhbWVOYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgeworICAgICAg
ICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0sIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdGVz
dEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgfSk7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAg
ICAgICAgdGVzdFBhc3NlZCgnTm8gY2FsbGJhY2tzIGludm9rZWQnKTsKKyAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgfSwgMTAwKTsKK30KKwordmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2lmcmFtZScpOworaWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvZGlzY29ubmVjdGVk
LWZyYW1lLWlubmVyLmh0bWwnOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwor
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVk
LWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVjMWMwZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3Ry
ZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oIlRlc3RzIHRoYXQgd2hlbiBhIHJlcXVlc3QgaXMgbWFkZSBvbiBhIFVzZXJNZWRpYSBvYmpl
Y3QgYW5kIGl0cyBGcmFtZSBpcyBkaXNjb25uZWN0ZWQgYmVmb3JlIGEgY2FsbGJhY2sgaXMgbWFk
ZSwgdGhlIGVycm9yIGNhbGxiYWNrIGlzIGludm9rZWQgd2l0aCB0aGUgY29ycmVjdCBlcnJvciBt
ZXNzYWdlLiIpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOwor
CitmdW5jdGlvbiBvbklmcmFtZUxvYWRlZCgpIHsKKyAgICBpZnJhbWVOYXZpZ2F0b3IgPSBpZnJh
bWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3I7CisgICAgaWZyYW1lLnNyYyA9ICdkYXRhOnRleHQv
aHRtbCxUaGlzIGZyYW1lIHNob3VsZCBiZSB2aXNpYmxlIHdoZW4gdGhlIHRlc3QgY29tcGxldGVz
JzsKK30KKworZnVuY3Rpb24gb25JZnJhbWVVbmxvYWRlZCgpIHsKKyAgICB2YXIgb3B0aW9ucyA9
IHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9OworICAgIGlmcmFtZU5hdmlnYXRvci53ZWJraXRH
ZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24gKHN0cmVhbSkgeworICAgICAgICB0ZXN0RmFp
bGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgIH0sIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgn
RXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgfSk7CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0
ZXN0UGFzc2VkKCdObyBjYWxsYmFja3MgaW52b2tlZCcpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9LCAxMDApOworfQorCit2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnaWZyYW1lJyk7CitpZnJhbWUuc3JjID0gJ3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUt
aW5uZXIuaHRtbCc7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5
LWlubmVyMS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0v
cmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkY2EzNTAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29u
bmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIxLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9Indp
bmRvdy5wYXJlbnQub25GaXJzdElmcmFtZUxvYWRlZCgpIj4KKyAgICA8cD5UaGlzIGZyYW1lIHNo
b3VsZCBiZSByZXBsYWNlZCBiZWZvcmUgdGhlIHRlc3QgZW5kczwvcD4KKyAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJl
YW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMi5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rpc2Nvbm5l
Y3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjFlOGRlOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWFscmVh
ZHktaW5uZXIyLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
ICA8aGVhZD4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9IndpbmRvdy5wYXJlbnQub25TZWNv
bmRJZnJhbWVMb2FkZWQoKSI+CisgICAgPHA+VGhpcyBmcmFtZSBzaG91bGQgYmUgdmlzaWJsZSB3
aGVuIHRoZSB0ZXN0IGNvbXBsZXRlczwvcD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rp
c2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwODYyODAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMv
ZGlzY29ubmVjdGVkLWZyYW1lLWlubmVyLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9IndpbmRv
dy5wYXJlbnQub25JZnJhbWVMb2FkZWQoKSIgb251bmxvYWQ9IndpbmRvdy5wYXJlbnQub25JZnJh
bWVVbmxvYWRlZCgpOyI+CisgICAgPHA+VGhpcyBmcmFtZSBzaG91bGQgYmUgcmVwbGFjZWQgYmVm
b3JlIHRoZSB0ZXN0IGVuZHM8L3A+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMTc5YzRiYi4uMzA5NDNjZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI5MSw3ICsyOTEsNDMg
QEAgd2Via2l0Lm9yZy9iLzg1MjExIGlldGVzdGNlbnRlci9jc3MzL2ZsZXhib3gvZmxleGJveC1h
bGlnbi1zdHJldGNoLTAwMS5odG0gWyBJbWEKIHdlYmtpdC5vcmcvYi84NTIxMiBpZXRlc3RjZW50
ZXIvY3NzMy9mbGV4Ym94L2ZsZXhib3gtbGF5b3V0LTAwMi5odG0gWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIAogIyBNZWRpYXN0cmVhbSBpbXBsZW1lbnRhdGlvbiBpcyBub3QgY29tcGxldGUgeWV0Lgot
d2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0gWyBTa2lwIF0KK3dlYmtpdC5vcmcv
Yi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL2FyZ3VtZW50LXR5cGVzLmh0bWwgWyBTa2lwIF0KK3dl
YmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL2dldHVzZXJtZWRpYS5odG1sIFsgU2tp
cCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQt
ZW5kZWQtdHJhY2tzLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLWFkZC1yZW1vdmUtdHJhY2tzLmh0bWwgWyBTa2lwIF0KK3dlYmtp
dC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC10cmFja3MtdG8t
aW5hY3RpdmUtc3RyZWFtLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLWNsb25lLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83
OTIwMyBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3RydWN0b3IuaHRtbCBbIFNraXAg
XQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tY29uc3Ry
dWN0LXdpdGgtZW5kZWQtdHJhY2tzLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBm
YXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWdldFRyYWNrcy5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQt
c3JjT2JqZWN0Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC1jb25zdHJ1Y3Rvci5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNvdXJj
ZXMuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLW9uZW5kZWQuaHRtbCBbIFNraXAgXQord2Via2l0Lm9y
Zy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vbm8taW50ZXJmYWNlLW9iamVjdC5odG1sIFsgU2tp
cCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUu
aHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24tQWRkUmVtb3ZlU3RyZWFtLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83
OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZUFuc3dlci5odG1s
IFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi1jcmVhdGVPZmZlci5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC5odG1sIFsgU2tpcCBd
Cit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1k
dG1mLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLWV2ZW50cy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMg
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1nZXRDb25maWd1cmF0aW9uLmh0bWwg
WyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLWhhdmUtbG9jYWwtb2ZmZXIuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAz
IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taGF2ZS1sb2NhbC1wcmFuc3dlci5o
dG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi1oYXZlLXJlbW90ZS1vZmZlci5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2Iv
NzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1oYXZlLXJlbW90ZS1wcmFu
c3dlci5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2UuaHRtbCBbIFNraXAgXQord2Via2l0Lm9y
Zy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbG9jYWxEZXNjcmlw
dGlvbi5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwgWyBTa2lwIF0KK3dlYmtp
dC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZURl
c2NyaXB0aW9uLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YWJsZS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2Iv
NzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0ZS5odG1sIFsgU2tp
cCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1zdGF0cy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0c1NlbGVjdG9yLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5v
cmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5odG1sIFsg
U2tpcCBdCiB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21lZGlh
LXN0cmVhbS1ldmVudC1jb25zdHJ1Y3Rvci5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvNzky
MDMgd2ViYXVkaW8vbWVkaWFzdHJlYW1hdWRpb2Rlc3RpbmF0aW9ubm9kZS5odG1sIFsgU2tpcCBd
CiB3ZWJraXQub3JnL2IvNzkyMDMgd2ViYXVkaW8vbWVkaWFzdHJlYW1hdWRpb3NvdXJjZW5vZGUu
aHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA2NDAxODE2Li5jNTk1NThjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMTU3LDYgKzE1Nyw3IEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFR5cGVPcHRpb25zCiAjIE1lZGlhIFN0cmVhbSBBUEkgaXMgbm90IHlldCBlbmFibGVkLgogZmFz
dC9tZWRpYXN0cmVhbQogZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21lZGlhLXN0cmVhbS1ldmVu
dC1jb25zdHJ1Y3Rvci5odG1sCitodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbQogCiAjIEFz
c2VydHMgaW4gZGVidWcuCiBbIERlYnVnIF0gZmFzdC9pbWFnZXMvbGFyZ2Utc2l6ZS1pbWFnZS1j
cmFzaC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODE5YTcxMC4uNDBjMWRiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA5LTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5v
cm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
ZG9jdW1lbnQgYW5kIGZyYW1lIGFjY2Vzc29ycywgbmVlZGVkIGJ5IHRoZQorICAgICAgICBVc2Vy
TWVkaWFSZXF1ZXN0TWFuYWdlciBvZiB0aGUgV2ViUHJvY2Vzcy4gQWxzbyBhZGRlZCB0d28gbWV0
aG9kcworICAgICAgICB1c2VkIGJ5IHRoZSBwZXJtaXNzaW9uIHJlcXVlc3QgbWFuYWdlciB0byBr
bm93IGlmIGFjY2VzcyB0byBhdWRpbworICAgICAgICBvciB2aWRlbyBkZXZpY2VzIGlzIHJlcXVl
c3RlZC4KKworICAgICAgICBUZXN0czogZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbAorCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlVzZXJNZWRpYVJlcXVlc3Q6OmRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRp
YVJlcXVlc3Q6OmZyYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnJlcXVpcmVz
QXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6cmVxdWlyZXNWaWRl
byk6CisKIDIwMTQtMTAtMTIgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZWZlcnJlciBQb2xpY3k6IFVwZGF0ZSA8bWV0YSBuYW1lPSJyZWZlcnJlciI+IHZhbHVl
cyB0byBtYXRjaCB0aGUgc3BlYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmgKaW5kZXggYzg5OTViOS4uNTFkNjBjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVu
dC5oCkBAIC00NCw4ICs0NCw4IEBAIGNsYXNzIFVzZXJNZWRpYUNsaWVudCB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QqKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWY8VXNlck1lZGlhUmVxdWVzdD4p
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0Jikg
PSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+VXNlck1lZGlhQ2xpZW50KCkgeyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
Q29udHJvbGxlci5oCmluZGV4IDcwM2ZmNDAuLmE2MmFkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5oCkBA
IC0zOSw4ICszOSw4IEBAIHB1YmxpYzoKICAgICB+VXNlck1lZGlhQ29udHJvbGxlcigpOwogCiAg
ICAgVXNlck1lZGlhQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQot
ICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0Pik7
Ci0gICAgdm9pZCBjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QqKTsKKyAgICB2b2lkIHJl
cXVlc3RQZXJtaXNzaW9uKFBhc3NSZWY8VXNlck1lZGlhUmVxdWVzdD4pOworICAgIHZvaWQgY2Fu
Y2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0Jik7CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciog
c3VwcGxlbWVudE5hbWUoKTsKICAgICBzdGF0aWMgVXNlck1lZGlhQ29udHJvbGxlciogZnJvbShQ
YWdlKiBwYWdlKSB7IHJldHVybiBzdGF0aWNfY2FzdDxVc2VyTWVkaWFDb250cm9sbGVyKj4oU3Vw
cGxlbWVudDxQYWdlPjo6ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7IH0KQEAgLTQ5LDEy
ICs0OSwxMiBAQCBwcml2YXRlOgogICAgIFVzZXJNZWRpYUNsaWVudCogbV9jbGllbnQ7CiB9Owog
Ci1pbmxpbmUgdm9pZCBVc2VyTWVkaWFDb250cm9sbGVyOjpyZXF1ZXN0UGVybWlzc2lvbihQYXNz
UmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QpCitpbmxpbmUgdm9pZCBVc2VyTWVkaWFD
b250cm9sbGVyOjpyZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmPFVzZXJNZWRpYVJlcXVlc3Q+IHJl
cXVlc3QpCiB7Ci0gICAgbV9jbGllbnQtPnJlcXVlc3RQZXJtaXNzaW9uKHJlcXVlc3QpOworICAg
IG1fY2xpZW50LT5yZXF1ZXN0UGVybWlzc2lvbihXVEY6Om1vdmUocmVxdWVzdCkpOwogfQogCi1p
bmxpbmUgdm9pZCBVc2VyTWVkaWFDb250cm9sbGVyOjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJl
cXVlc3QqIHJlcXVlc3QpCitpbmxpbmUgdm9pZCBVc2VyTWVkaWFDb250cm9sbGVyOjpjYW5jZWxS
ZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgbV9jbGllbnQtPmNhbmNl
bFJlcXVlc3QocmVxdWVzdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCBlNDM4ZDM1Li5kNGI4OTRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJEaWN0aW9uYXJ5
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzSW1wbC5oIgogI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50ZXIuaCIKQEAg
LTEyNyw3ICsxMjgsNyBAQCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OnJlcXVlc3RQZXJtaXNzaW9u
KCkKIHsKICAgICAvLyAyIC0gVGhlIGNvbnN0cmFpbnRzIGFyZSB2YWxpZCwgYXNrIHRoZSB1c2Vy
IGZvciBhY2Nlc3MgdG8gbWVkaWEuCiAgICAgaWYgKG1fY29udHJvbGxlcikKLSAgICAgICAgbV9j
b250cm9sbGVyLT5yZXF1ZXN0UGVybWlzc2lvbih0aGlzKTsKKyAgICAgICAgbV9jb250cm9sbGVy
LT5yZXF1ZXN0UGVybWlzc2lvbigqdGhpcyk7CiB9CiAKIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6
dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpCkBAIC0yMTYsNyArMjE3LDcgQEAgdm9pZCBVc2VyTWVk
aWFSZXF1ZXN0Ojpjb250ZXh0RGVzdHJveWVkKCkKICAgICBSZWY8VXNlck1lZGlhUmVxdWVzdD4g
cHJvdGVjdCgqdGhpcyk7CiAKICAgICBpZiAobV9jb250cm9sbGVyKSB7Ci0gICAgICAgIG1fY29u
dHJvbGxlci0+Y2FuY2VsUmVxdWVzdCh0aGlzKTsKKyAgICAgICAgbV9jb250cm9sbGVyLT5jYW5j
ZWxSZXF1ZXN0KCp0aGlzKTsKICAgICAgICAgbV9jb250cm9sbGVyID0gMDsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmgKaW5kZXggYzgwYTZiYS4uMTUzYjUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTQ4LDYgKzQ4LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaWN0aW9uYXJ5OwogY2xhc3MgRG9jdW1l
bnQ7CitjbGFzcyBGcmFtZTsKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBNZWRpYVN0
cmVhbVByaXZhdGU7CiBjbGFzcyBVc2VyTWVkaWFDb250cm9sbGVyOwpAQCAtNjYsNiArNjcsOSBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVk
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NEZW5pZWQoKTsKIAor
ICAgIGJvb2wgcmVxdWlyZXNBdWRpbygpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9Db25zdHJhaW50
czsgfQorICAgIGJvb2wgcmVxdWlyZXNWaWRlbygpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9Db25z
dHJhaW50czsgfQorCiBwcml2YXRlOgogICAgIFVzZXJNZWRpYVJlcXVlc3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIqLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3Ry
YWludHM+IGF1ZGlvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gdmlk
ZW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJh
Y2s+LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+KTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Vc2VyTWVkaWFDbGllbnRNb2Nr
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaApp
bmRleCBjZmEyNGNlLi45MjdhYzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaApAQCAtMzYsOCArMzYsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFVzZXJNZWRpYUNsaWVudFJlcXVlc3ROb3RpZmllciA6IHB1Ymxp
YyBNb2NrTm90aWZpZXIgewogcHVibGljOgotICAgIFVzZXJNZWRpYUNsaWVudFJlcXVlc3ROb3Rp
ZmllcihQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QsIGJvb2wgcmVxdWVzdFN1
Y2Nlc3MpCi0gICAgICAgIDogbV9yZXF1ZXN0KHJlcXVlc3QpCisgICAgVXNlck1lZGlhQ2xpZW50
UmVxdWVzdE5vdGlmaWVyKFBhc3NSZWY8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCwgYm9vbCBy
ZXF1ZXN0U3VjY2VzcykKKyAgICAgICAgOiBtX3JlcXVlc3QoV1RGOjptb3ZlKHJlcXVlc3QpKQog
ICAgICAgICAsIG1fcmVxdWVzdFN1Y2Nlc3MocmVxdWVzdFN1Y2Nlc3MpCiAgICAgewogICAgIH0K
QEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBSZWZQdHI8
VXNlck1lZGlhUmVxdWVzdD4gbV9yZXF1ZXN0OworICAgIFJlZjxVc2VyTWVkaWFSZXF1ZXN0PiBt
X3JlcXVlc3Q7CiAgICAgYm9vbCBtX3JlcXVlc3RTdWNjZXNzOwogfTsKIApAQCAtNjAsMTMgKzYw
LDEzIEBAIHB1YmxpYzoKICAgICBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95
ZWQoKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihQ
YXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QpIG92ZXJyaWRlCisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWY8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVz
dCkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIFJlZlB0cjxVc2VyTWVkaWFDbGllbnRSZXF1ZXN0
Tm90aWZpZXI+IG5vdGlmaWVyID0gYWRvcHRSZWYobmV3IFVzZXJNZWRpYUNsaWVudFJlcXVlc3RO
b3RpZmllcihyZXF1ZXN0LCB0cnVlKSk7CisgICAgICAgIFJlZlB0cjxVc2VyTWVkaWFDbGllbnRS
ZXF1ZXN0Tm90aWZpZXI+IG5vdGlmaWVyID0gYWRvcHRSZWYobmV3IFVzZXJNZWRpYUNsaWVudFJl
cXVlc3ROb3RpZmllcihXVEY6Om1vdmUocmVxdWVzdCksIHRydWUpKTsKICAgICAgICAgbV90aW1l
ckV2ZW50cy5hcHBlbmQoYWRvcHRSZWYobmV3IFRpbWVyRXZlbnQodGhpcywgbm90aWZpZXIpKSk7
CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGNhbmNlbFJlcXVlc3QoVXNlck1lZGlhUmVxdWVz
dCogcmVxdWVzdCkgb3ZlcnJpZGUKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdChVc2Vy
TWVkaWFSZXF1ZXN0JiByZXF1ZXN0KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgUmVmUHRyPFVz
ZXJNZWRpYUNsaWVudFJlcXVlc3ROb3RpZmllcj4gbm90aWZpZXIgPSBhZG9wdFJlZihuZXcgVXNl
ck1lZGlhQ2xpZW50UmVxdWVzdE5vdGlmaWVyKHJlcXVlc3QsIGZhbHNlKSk7CiAgICAgICAgIG1f
dGltZXJFdmVudHMuYXBwZW5kKGFkb3B0UmVmKG5ldyBUaW1lckV2ZW50KHRoaXMsIG5vdGlmaWVy
KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA0YTQ2NTQ1Li5mYWNmMTgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFr
ZUxpc3RzLnR4dApAQCAtNDksNiArNDksNyBAQCBzZXQoV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NIgog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0xhdW5jaGluZyIKICAgICAiJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL05ldHdvcmsi
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyIKICAgICAiJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIgpAQCAtMzAxLDYgKzMwMiw4IEBAIHNl
dChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAK
ICAgICBVSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL1RleHRD
aGVja2VyQ29tcGxldGlvbi5jcHAKKyAgICBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwCisgICAgVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwCiAg
ICAgVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCiAgICAgVUlQ
cm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAKQEAgLTM4OSw2ICszOTIsNyBAQCBzZXQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIu
Y3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblN0YXRlUmVmLmNwcAogICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS1RleHRDaGVja2VyLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ZpYnJhdGlv
bi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwCiAKQEAg
LTQ4NSw2ICs0ODksOCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBXZWJQcm9jZXNzL01l
ZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1hbmFnZXIuY3BwCiAKKyAgICBXZWJQcm9jZXNzL01lZGlh
U3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKwogICAgIFdlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAgICAgV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKICAgICBXZWJQcm9jZXNzL05l
dHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01MzYsNiArNTQyLDcgQEAgc2V0KFdlYktp
dDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNw
cAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNw
cAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVmlicmF0aW9uQ2xpZW50LmNwcAogCiAg
ICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGJhYmYy
ODEuLmE4N2FmZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAxNC0wOS0wMSAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dLMl0gVXNl
ck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFN1cHBvcnQgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IGluIFdl
YktpdDIuIEl0J3MKKyAgICAgICAgaW1wbGVtZW50ZWQgc2ltaWxhcmlseSB0byB0aGUgR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICBzdXBwb3J0LiBXaGVuIHRoZSBXZWJQYWdl
IHJlcXVpcmVzIHRoaXMgcGVybWlzc2lvbiBpdCBzZW5kcyBhCisgICAgICAgIG1lc3NhZ2UgdG8g
dGhlIFVJIHByb2Nlc3Mgd2hpY2ggYXQgc29tZSBwb2ludCBncmFudHMgb3IgZGVuaWVzIHRoZQor
ICAgICAgICBwZXJtaXNzaW9uIGFuZCBzZW5kcyB0aGUgcmVzdWx0IGJhY2sgdG8gdGhlIFdlYlBy
b2Nlc3MuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogR2VuZXJpYyBDTWFrZSBzdXBwb3J0
IGZvciBuZXcgZmlsZXMuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOiBOZXcgdHlw
ZSBmb3IgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgICogU2hhcmVkL0FQSU9i
amVjdC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6IFBl
cm1pc3Npb25SZXF1ZXN0IEFQSSBtYXBwaW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJ
VUlDbGllbnQuaDogTmV3IGRlY2lkZVBvbGljeSBoYW5kbGVyIGZvciBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC4KKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcDogRGl0dG8uCisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oOiBXS1BhZ2VVSUNsaWVudCB2ZXJzaW9u
IGJ1bXAgdG8KKyAgICAgICAgNSwgaW5jbHVkaW5nIHRoZSBuZXcgZGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QgbWVtYmVyLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQsIEMgQVBJCisgICAgICAg
IGltcGxlbWVudGF0aW9uIG9mIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC4KKyAgICAg
ICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQpOgorICAgICAgICAoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KToKKyAgICAgICAgKFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3REZW55KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V2ViS2l0Ml9DLmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDogQWRkZWQsIHByb3h5CisgICAgICAgIG9iamVjdCBm
b3IgdGhlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0VHlwZS4KKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk6OmFsbG93KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6ZGVueSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5OjptZWRpYVBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Oldl
YlBhZ2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6IERlZmVyCisgICAgICAgIFVzZXJQZXJtaXNzaW9uUmVx
dWVzdCB0byB0aGUgVUlDbGllbnQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IE5ldyBtZXNz
YWdlIHRvIGhhbmRsZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuCisgICAgICAgICogV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVk
aWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDogQWRkZWQsCisg
ICAgICAgIFdlYlByb2Nlc3Mgc2lkZSBvZiB0aGUgVXNlclJlcXVlc3RNYW5hZ2VyLCBrZWVwaW5n
IHRyYWNrIG9mIGVhY2gKKyAgICAgICAgcGVybWlzc2lvbiByZXF1ZXN0LgorICAgICAgICAoV2Vi
S2l0OjpnZW5lcmF0ZVJlcXVlc3RJRCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFy
dFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcDogQWRkZWQsCisgICAgICAgIFdlYlByb2Nlc3MgaW1w
bGVtZW50YXRpb24gb2YgdGhlIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudC4KKyAgICAgICAgKFdl
YktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OldlYlBhZ2UpOiBDcmVhdGUgdGhlCisgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlciBhbmQgcmVnaXN0ZXIgdGhlIFVzZXJNZWRpYUNsaWVudAorICAgICAgICB0
byB0aGUgcGFnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbik6IERpc3BhdGNoCisgICAgICAgIGRlY2lzaW9uIHRvIG1hbmFn
ZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogTmV3IE1lc3NhZ2Ug
dG8gaGFuZGxlCisgICAgICAgIHBlcm1pc3Npb24gZGVjaXNpb24gcmVzdWx0IGZyb20gdGhlIFVJ
IHByb2Nlc3MuCisKIDIwMTQtMTAtMTIgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGln
YWxpYS5jb20+CiAKICAgICAgICAgW1NPVVBdIFtXSzJdIFdlYlByb2Nlc3MgYW5kIE5ldHdvcmtQ
cm9jZXNzIGluaXRpYWxpemF0aW9uIGNsZWFycyBjYWNoZSBjb250ZW50cwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDhkMWU5NjUuLjExZWM1NDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTEyNyw2ICsxMjcsNyBAQCB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS1Byb3RlY3Rpb25TcGFjZSogV0tQcm90ZWN0aW9uU3BhY2VSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1RleHRDaGVja2VyKiBXS1RleHRDaGVja2VyUmVmOwog
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTZXNzaW9uKiBXS1Nlc3Npb25SZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Nlc3Npb25TdGF0ZSogV0tTZXNzaW9uU3RhdGVSZWY7
Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
KiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tWaWJyYXRpb24qIFdLVmlicmF0aW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tWaWV3cG9ydEF0dHJpYnV0ZXMqIFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggOTIyZTZkYS4uZDQ5NjZhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElPYmplY3QuaApAQCAtMTMyLDYgKzEzMiw3IEBAIHB1YmxpYzoKICAgICAgICAg
UHJlZmVyZW5jZXMsCiAgICAgICAgIFNlc3Npb24sCiAgICAgICAgIFRleHRDaGVja2VyLAorICAg
ICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKICAgICAgICAgVmlicmF0aW9uLAogICAg
ICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMsCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
QVBJVUlDbGllbnQuaAppbmRleCBiNzg4ZDkyLi42YWFkYjZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIEltbXV0
YWJsZURpY3Rpb25hcnk7CiBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgTmF0
aXZlV2ViV2hlZWxFdmVudDsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Owor
Y2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNsYXNzIFdlYkNvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CiBjbGFzcyBXZWJP
cGVuUGFuZWxQYXJhbWV0ZXJzOwpAQCAtMTIyLDYgKzEyMyw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgYm9vbCBydW5PcGVuUGFuZWwoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6Oldl
YkZyYW1lUHJveHkqLCBXZWJLaXQ6OldlYk9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJLaXQ6Oldl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdl
YktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgV2ViS2l0OjpXZWJT
ZWN1cml0eU9yaWdpbiosIFdlYktpdDo6R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5
KikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6Oldl
YkZyYW1lUHJveHkmLCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0
OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luKiwgV2ViS2l0OjpOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCopIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBQ
cmludGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRl
eCA4MDIyMWE5Li41ZjQ0YTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCkBAIC02Myw2ICs2Myw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25M
aXN0ZW5lcjsKIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0UHJveHk7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKK2Ns
YXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbTsKQEAgLTE0Niw2ICsxNDcsNyBAQCBXS19BRERfQVBJX01BUFBJ
TkcoV0tSZW5kZXJMYXllclJlZiwgV2ViUmVuZGVyTGF5ZXIpCiBXS19BRERfQVBJX01BUFBJTkco
V0tSZW5kZXJPYmplY3RSZWYsIFdlYlJlbmRlck9iamVjdCkKIFdLX0FERF9BUElfTUFQUElORyhX
S1Nlc3Npb25TdGF0ZVJlZiwgQVBJOjpTZXNzaW9uU3RhdGUpCiBXS19BRERfQVBJX01BUFBJTkco
V0tUZXh0Q2hlY2tlclJlZiwgV2ViVGV4dENoZWNrZXIpCitXS19BRERfQVBJX01BUFBJTkcoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1ZpYnJhdGlvblJlZiwgV2ViVmlicmF0aW9uUHJv
eHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYsIFdlYlZpZXdw
b3J0QXR0cmlidXRlcykKIFdLX0FERF9BUElfTUFQUElORyhXS0luc3BlY3RvclJlZiwgV2ViSW5z
cGVjdG9yUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmlu
ZGV4IGFkY2JkYzAuLmZiOGRiMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0
czxXS1BhZ2VQb2xpY3lDbGllbnRCYXNlPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGll
bnRUcmFpdHM8V0tQYWdlVUlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdL
UGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFn
ZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQ+IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3Rk
Ojp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVu
dFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1
PiBWZXJzaW9uczsKIH07CiAKIH0KQEAgLTE0OTksNiArMTQ5OSwxNSBAQCB2b2lkIFdLUGFnZVNl
dFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNl
KiB3a0NsaWVudAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAorICAgICAg
ICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qo
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgV2ViU2VjdXJpdHlPcmln
aW4mIG9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcGVybWlzc2lvblJl
cXVlc3QpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdCh0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJ
KCZvcmlnaW4pLCB0b0FQSSgmcGVybWlzc2lvblJlcXVlc3QpLCBtX2NsaWVudC5iYXNlLmNsaWVu
dEluZm8pOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwogICAgICAgICB2
aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qo
V2ViUGFnZVByb3h5KiBwYWdlLCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvblJlcXVlc3QpIG92ZXJyaWRlCiAgICAgICAg
IHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VVSUNsaWVudC5oCmluZGV4IGJjOWVlYzcuLjcyYzE1OWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCkBAIC05MCw2ICs5MCw3IEBA
IHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQ
cmVzc0NhbGxiYWNrKShXS1BhZ2VSZWYKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZFJlY29nbml6
ZUxvbmdNb3VzZVByZXNzQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYgdXNlckRh
dGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkQ2Fu
Y2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzc0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFn
ZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYg
dm9pZCAoKldLUGFnZUlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlQ2FsbGJhY2spKFdLUGFnZVJlZiBw
YWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBw
YWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7CiAKIC8vIERlcHJlY2F0ZWQgICAgCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldL
UGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VS
ZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKQEAgLTM3OCw2ICszNzksNzQgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRW
NCB7CiAgICAgV0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZTsKIH0gV0tQYWdlVUlD
bGllbnRWNDsKIAordHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWNSB7CisgICAgV0tQYWdl
VUlDbGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VD
YWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3
UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1BhZ2U7Cisg
ICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjbG9zZTsKKyAgICBXS1BhZ2VUYWtlRm9jdXNDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VGb2N1czsKKyAgICBXS1Bh
Z2VGb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvY3VzOworICAgIFdLUGFnZVVuZm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5mb2N1czsKKyAgICBXS1BhZ2VSdW5KYXZh
U2NyaXB0QWxlcnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bkphdmFTY3JpcHRBbGVydDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtOwor
ICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS1BhZ2VTZXRTdGF0dXNU
ZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0
YXR1c1RleHQ7CisgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudF9kZXByZWNh
dGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkQ2Fs
bGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNr
ZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVLZXlFdmVu
dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZUtl
eUV2ZW50OworICAgIFdLUGFnZURpZE5vdEhhbmRsZVdoZWVsRXZlbnRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxlV2hlZWxFdmVudDsKKyAgICBXS1Bh
Z2VHZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRUb29sYmFyc0FyZVZpc2li
bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvb2xiYXJzQXJl
VmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlU2V0
TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZXRNZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldFN0YXR1c0JhcklzVmlzaWJsZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNWaXNpYmxl
OworICAgIFdLUGFnZVNldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldElz
UmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aXNSZXNpemFibGU7CisgICAgV0tQYWdlU2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VH
ZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7CisgICAg
V0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CisgICAgV0tQYWdlVUlDbGll
bnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
aWREcmF3OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsKKyAgICBXS1BhZ2VFeGNlZWRl
ZERhdGFiYXNlUXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4
Y2VlZGVkRGF0YWJhc2VRdW90YTsKKyAgICBXS1BhZ2VSdW5PcGVuUGFuZWxDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk9wZW5QYW5lbDsKKyAgICBX
S1BhZ2VEZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sg
ICAgICAgICAgIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7Cisg
ICAgV0tQYWdlSGVhZGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWFkZXJIZWlnaHQ7CisgICAgV0tQYWdlRm9vdGVySGVpZ2h0Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJIZWlnaHQ7
CisgICAgV0tQYWdlRHJhd0hlYWRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkcmF3SGVhZGVyOworICAgIFdLUGFnZURyYXdGb290ZXJDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0Zvb3RlcjsK
KyAgICBXS1BhZ2VQcmludEZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50RnJhbWU7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5Nb2RhbDsKKyAg
ICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVudXNlZDE7IC8vIFVzZWQgdG8gYmUgZGlkQ29tcGxldGVSdWJiZXJCYW5k
Rm9yTWFpbkZyYW1lCisgICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlckNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9s
ZGVyOworICAgIFdLUGFnZVNob3VsZEludGVycnVwdEphdmFTY3JpcHRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdDsKKworICAgIC8v
IFZlcnNpb24gMS4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CisgICAgV0tQYWdlTW91
c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgIGRlY2lkZVBvbGljeUZv
ck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1
Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEgdW5hdmFpbGFi
bGVQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjE7CisKKyAgICAvLyBW
ZXJzaW9uIDIuCisgICAgV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93Q29sb3JQaWNrZXI7CisgICAgV0tQYWdlSGlk
ZUNvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoaWRlQ29sb3JQaWNrZXI7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlj
a2VkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQ7CisgICAgCisgICAgLy8gVmVyc2lvbiAzLgorICAgIFdLUGFnZVBpbm5lZFN0YXRl
RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVk
U3RhdGVEaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDQuCisgICAgV0tQYWdlRGlkQmVnaW5U
cmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzQ2FsbGJhY2sgICAgICAgICAgICAgICBkaWRC
ZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3M7CisgICAgV0tQYWdlRGlkUmVjb2du
aXplTG9uZ01vdXNlUHJlc3NDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRS
ZWNvZ25pemVMb25nTW91c2VQcmVzczsKKyAgICBXS1BhZ2VEaWRDYW5jZWxUcmFja2luZ1BvdGVu
dGlhbExvbmdNb3VzZVByZXNzQ2FsbGJhY2sgICAgICAgICAgICAgIGRpZENhbmNlbFRyYWNraW5n
UG90ZW50aWFsTG9uZ01vdXNlUHJlc3M7CisgICAgV0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFu
Z2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BsYXlpbmdBdWRpb0Rp
ZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworfSBXS1BhZ2VVSUNsaWVudFY1OworCiBl
bnVtIHsga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb24gV0tfRU5VTV9ERVBSRUNBVEVEKCJV
c2UgYW4gZXhwbGljaXQgdmVyc2lvbiBudW1iZXIgaW5zdGVhZCIpID0gMiB9OwogdHlwZWRlZiBz
dHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
NWZkM2U2MjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBV
U0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OworCitXS1R5cGVJRCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKK3sK
KyAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlw
ZSk7Cit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit7
CisgICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+YWxsb3coKTsKK30K
Kwordm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQoreworICAgIHRv
SW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmRlbnkoKTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0NWQz
MTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdy
aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8K
KworI2lmbmRlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisK
KyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdL
VHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKKworV0tfRVhQ
T1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdERlbnkoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CisKKyNpZmRlZiBf
X2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
ZWJLaXQyX0MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaApp
bmRleCA1YTcxMmNkLi5lMzJiYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV2ViS2l0Ml9DLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dlYktpdDJfQy5oCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLVVJMLmg+
CiAjaW5jbHVkZSA8V2ViS2l0L1dLVVJMUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1VS
TFJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuaD4KIAogI2lmIGRlZmluZWQoX19PQkpDX18pICYmIF9fT0JKQ19fCiAjaW1wb3J0IDxXZWJL
aXQvV0tWaWV3Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTdlNTk1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
aCIKKworI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94
eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IG1fcGFn
ZShwYWdlKQoreworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjppbnZhbGlkYXRlUmVxdWVzdHMoKQoreworICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IG1f
cGVuZGluZ1JlcXVlc3RzLnZhbHVlcygpKQorICAgICAgICByZXF1ZXN0LT5pbnZhbGlkYXRlKCk7
CisKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5jbGVhcigpOworfQorCitQYXNzUmVmUHRyPFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGF1ZGlv
LCBib29sIHZpZGVvKQoreworICAgIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5PiByZXF1ZXN0ID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKCp0
aGlzLCB1c2VyTWVkaWFJRCwgYXVkaW8sIHZpZGVvKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5h
ZGQodXNlck1lZGlhSUQsIHJlcXVlc3QuZ2V0KCkpOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVh
c2UoKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgYm9vbCBhbGxvd2VkKQoreworICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKCFtX3BlbmRpbmdSZXF1ZXN0cy50YWtlKHVzZXJNZWRpYUlEKSkK
KyAgICAgICAgcmV0dXJuOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBtX3BhZ2Uu
cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJt
aXNzaW9uRGVjaXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQpLCBtX3BhZ2UucGFnZUlEKCkpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dlZCk7CisjZW5kaWYKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBT
LkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKyNkZWZpbmUgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHlfaAorCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmKTsKKworICAgIHZvaWQgaW52
YWxpZGF0ZVJlcXVlc3RzKCk7CisKKyAgICAvLyBDcmVhdGUgYSByZXF1ZXN0IHRvIGJlIHByZXNl
bnRlZCB0byB0aGUgdXNlci4KKyAgICBQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVkaW8s
IGJvb2wgdmlkZW8pOworCisgICAgLy8gQ2FsbGVkIGJ5IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkgd2hlbiBhIGRlY2lzaW9uIGlzIG1hZGUgYnkgdGhlIHVzZXIuCisgICAgdm9pZCBk
aWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90LCBib29sIGFsbG93
KTsKKworcHJpdmF0ZToKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eT4+IG1fcGVuZGluZ1JlcXVlc3RzOworICAgIFdlYlBhZ2VQcm94
eSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTUwODU5MgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmNwcApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgor
CisjaW5jbHVkZSAiQVBJTnVtYmVyLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhdWRpbywg
Ym9vbCB2aWRlbykKKyAgICA6IG1fbWFuYWdlcihtYW5hZ2VyKQorICAgICwgbV91c2VyTWVkaWFJ
RCh1c2VyTWVkaWFJRCkKK3sKKyAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEFQSTo6T2JqZWN0
Pj4gcGFyYW1ldGVyc01hcDsKKyAgICBwYXJhbWV0ZXJzTWFwLmFkZChBU0NJSUxpdGVyYWwoImF1
ZGlvIiksIEFQSTo6Qm9vbGVhbjo6Y3JlYXRlKGF1ZGlvKSk7CisgICAgcGFyYW1ldGVyc01hcC5h
ZGQoQVNDSUlMaXRlcmFsKCJ2aWRlbyIpLCBBUEk6OkJvb2xlYW46OmNyZWF0ZSh2aWRlbykpOwor
ICAgIG1fbWVkaWFQYXJhbWV0ZXJzID0gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6
bW92ZShwYXJhbWV0ZXJzTWFwKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6YWxsb3coKQoreworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVy
bWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIHRydWUpOworfQorCit2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkoKQoreworICAgIG1fbWFuYWdlci5kaWRSZWNl
aXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIGZhbHNlKTsKK30K
Kwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkKK3sK
KyAgICBtX21hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mMDQ3MjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApAQCAtMCwwICsxLDU0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAx
ICBVU0EKKyAqLworCisjaWZuZGVmIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaAor
I2RlZmluZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKKworI2luY2x1ZGUgIkFQ
SU9iamVjdC5oIgorI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rpb25hcnkuaCIKKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBl
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlh
SUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgdXNlck1lZGlh
SUQsIGF1ZGlvLCB2aWRlbykpOworICAgIH0KKworICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lk
IGRlbnkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworCisgICAgUGFzc1JlZlB0cjxJbW11
dGFibGVEaWN0aW9uYXJ5PiBtZWRpYVBhcmFtZXRlcnMoKSBjb25zdCB7IHJldHVybiBtX21lZGlh
UGFyYW1ldGVyczsgfQorCitwcml2YXRlOgorICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1
c2VyTWVkaWFJRCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbyk7CisKKyAgICBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbV9tYW5hZ2VyOworICAgIHVpbnQ2NF90IG1fdXNl
ck1lZGlhSUQ7CisgICAgUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IG1fbWVkaWFQYXJhbWV0
ZXJzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggZmI2ZDU3Mi4uNmE4YjQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJQcmludElu
Zm8uaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3Rh
dGUuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW5j
bHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdC5o
IgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKQEAgLTI3Niw2ICsyNzcsNyBA
QCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQ
cm9jZXNzUHJveHkmIHByb2Nlc3MsIHVpbgogI2VuZGlmCiAgICAgLCBtX2dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQogICAgICwgbV9ub3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCisgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcigqdGhpcykKICAgICAsIG1fdmlld1N0YXRlKFZpZXdTdGF0ZTo6Tm9GbGFncykK
ICAgICAsIG1fdmlld1dhc0V2ZXJJbldpbmRvdyhmYWxzZSkKICAgICAsIG1fYmFja0ZvcndhcmRM
aXN0KFdlYkJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKCp0aGlzKSkKQEAgLTQ2NzMsNiArNDY3NSwx
OCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZy
YW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsCiAgICAgcmVxdWVzdC0+ZGVueSgpOwogfQogCit2
b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50
NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pCit7CisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUg
PSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUp
OworCisgICAgUmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBXZWJTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVy
KG9yaWdpbklkZW50aWZpZXIpKTsKKyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4gcmVxdWVzdCA9IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNy
ZWF0ZVJlcXVlc3QodXNlck1lZGlhSUQsIGF1ZGlvLCB2aWRlbyk7CisKKyAgICBpZiAoIW1fdWlD
bGllbnQtPmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KCp0aGlzLCAq
ZnJhbWUsICpvcmlnaW4uZ2V0KCksICpyZXF1ZXN0LmdldCgpKSkKKyAgICAgICAgcmVxdWVzdC0+
ZGVueSgpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1p
c3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsK
ICAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBjMGMwYTM0Li40NDEyNjU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlZpc2libGVDb250ZW50UmVj
dFVwZGF0ZUluZm8uaCIKICNpbmNsdWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlICJXS1BhZ2VQcml2
YXRlLmgiCkBAIC0xMjQsNiArMTI1LDcgQEAgY2xhc3MgRHJhZ0RhdGE7CiBjbGFzcyBGbG9hdFJl
Y3Q7CiBjbGFzcyBHcmFwaGljc0xheWVyOwogY2xhc3MgSW50U2l6ZTsKK2NsYXNzIE1lZGlhQ29u
c3RyYWludHNJbXBsOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUnVuTG9vcE9ic2Vy
dmVyOwogY2xhc3MgU2hhcmVkQnVmZmVyOwpAQCAtMTAzNSw2ICsxMDM3LDkgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25z
dCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1
cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90
IGV4cGVjdGVkVXNhZ2UsIFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVk
ZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHk+KTsKICAgICB2b2lkIHJlYWNoZWRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCB1aW50
NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIFBhc3NSZWZQdHI8
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YTo6RGVsYXllZFJlcGx5Pik7CiAgICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9u
Rm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5n
IG9yaWdpbklkZW50aWZpZXIpOworCisgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lv
bkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcg
b3JpZ2luSWRlbnRpZmllciwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbyk7CisKICAgICB2b2lkIHJ1
bk1vZGFsKCk7CiAgICAgdm9pZCBub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5
bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSk7CkBAIC0xMzY3LDYgKzEzNzIsOCBAQCBwcml2
YXRlOgogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9nZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICAgICBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjsKIAorICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworCiAgICAgV2ViQ29yZTo6Vmlld1N0YXRl
OjpGbGFncyBtX3ZpZXdTdGF0ZTsKICAgICBib29sIG1fdmlld1dhc0V2ZXJJbldpbmRvdzsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggOWVjZThkNi4uOGU5YTk1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNTYsNiArMjU2LDExIEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgIyBHZW9sb2NhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVl
c3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1
aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICAKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorICAgICMgTWVkaWFTdGVhbSBtZXNzYWdlcworICAgIFJlcXVlc3RV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBib29sIGF1ZGlvLCBib29sIHZpZGVv
KQorI2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3ROb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3RyaW5nIG9yaWdpbklkZW50
aWZpZXIpCiAgICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUsIFN0cmluZyBib2R5LCBT
dHJpbmcgaWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmcsIFN0cmluZyBkaXIsIFN0cmlu
ZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjNTY4ZjVh
Li44YzVjYzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC03ODcsNiArNzg3LDE0IEBACiAJCTNGODg5RDE0MTg4Nzc4QzkwMEZF
QURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg4OUQxMjE4ODc3OEM5MDBGRUFEQUYg
LyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tICovOyB9OwogCQkzRjg4OUQxNTE4
ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg4OUQxMzE4ODc3OEM5
MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi87IH07CiAJCTNG
ODg5RDE3MTg4Nzg1OTMwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMEQxODg3
Njk5QzAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gKi87IH07CisJCTRB
M0NDMThBMTlCMDYzRTcwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0QTQxMEYzOTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwICovOyB9OworCQk0QTNDQzE4QjE5QjA2NDBGMDBEMTRBRUYgLyogVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNBMTlBRjdCMDQwMDJFQkFCNSAvKiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovOyB9OworCQk0QTNDQzE4
QzE5QjA2NDE1MDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEYzQjE5
QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgKi87
IH07CisJCTRBM0NDMThEMTlCMDY0MTkwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0QTQxMEYzQzE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5oICovOyB9OworCQk0QTNDQzE4RTE5QjA3Qjg1MDBEMTRBRUYgLyogV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0QTQxMEYzNTE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5jcHAgKi87IH07CisJCTRBM0NDMThGMTlCMDdCOEEwMEQxNEFFRiAvKiBXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEYzNjE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTRBNDEwRjQ0MTlBRjdCMjcwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNEE0MTBGNDIxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAgKi87IH07CisJCTRBNDEwRjRBMTlBRjdCODAwMDJFQkFCNSAv
KiBXZWJVc2VyTWVkaWFDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEE0MTBGNDgxOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNs
aWVudC5jcHAgKi87IH07CiAJCTRGNjAxNDMyMTU1QzVBQTIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jl
c3BvbnNlTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICovOyB9
OwogCQk1MTAyMUU5QzEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAyMUU5
QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi87IH07CiAJ
CTUxMDI3NDMyMTk4MUFGOEUwMDgxNjVFRCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCQTE4MDYyQjlD
MDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNzk4LDYgKzI4MDYsMTYgQEAKIAkJM0Y4ODlE
MTIxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tbTsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODg5RDEzMTg4Nzc4QzkwMEZF
QURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg7IHBhdGgg
PSBpb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTNGODg5RDE2MTg4NzdBMjQwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluOyBwYXRoID0gaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGMzUx
OUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjM2MTlBRjdBQzMw
MDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGMzkxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGM0ExOUFGN0IwNDAwMkVC
QUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjNCMTlBRjdCMDQw
MDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzQzE5QUY3QjA0MDAy
RUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjQyMTlBRjdCMjcwMDJFQkFCNSAvKiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGNDMxOUFGN0IyNzAwMkVCQUI1IC8q
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGNDgxOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVz
ZXJNZWRpYUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJVc2VyTWVkaWFDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQx
MEY0OTE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVzZXJNZWRpYUNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNw
b25zZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja2luZ1Jlc3Bv
bnNlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0Iw
MEM4REZFNCAvKiBTZWNJdGVtU2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbklu
ZGV4ID0gMDsgcGF0aCA9IFNlY0l0ZW1TaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwogCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1l
bnVDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTUxNDAsNiArNTE1OCwxNSBAQAogCQkJcGF0aCA9IENvY29hOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKIAkJfTsKKwkJNEE0MTBGNDExOUFGN0IyNzAwMkVCQUI1IC8qIE1lZGlhU3RyZWFt
ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEY0
MjE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNw
cCAqLywKKwkJCQk0QTQxMEY0MzE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmggKi8sCisJCQkpOworCQkJcGF0aCA9IE1lZGlhU3RyZWFtOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5
IC8qIE5ldHdvcmsgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApA
QCAtNTU5OCw2ICs1NjI1LDcgQEAKIAkJQkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8qIFdlYlBy
b2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRB
NDEwRjQxMTlBRjdCMjcwMDJFQkFCNSAvKiBNZWRpYVN0cmVhbSAqLywKIAkJCQk1MTJFMzUyQTEz
MEI1NTk5MDBBQkQxOUEgLyogQXBwbGljYXRpb25DYWNoZSAqLywKIAkJCQk3QzZFNzBGODE4QjJE
NDdFMDBGMjRFMkUgLyogY29jb2EgKi8sCiAJCQkJMzMwOTM0NEIxMzE1QjkzQTAwOTdBN0JDIC8q
IENvb2tpZXMgKi8sCkBAIC01NjM1LDYgKzU2NjMsOCBAQAogCQlCQzAzMkQ1RDEwRjQzNzIyMDA1
OEMxNUEgLyogV2ViQ29yZVN1cHBvcnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTRBNDEwRjQ4MTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVkaWFD
bGllbnQuY3BwICovLAorCQkJCTRBNDEwRjQ5MTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVk
aWFDbGllbnQuaCAqLywKIAkJCQkyRDI4RjNERjE4ODVDQ0I0MDA0QjlFQUUgLyogaW9zICovLAog
CQkJCUJDMTExQURFMTEyRjVCOUEwMDMzN0JBQiAvKiBtYWMgKi8sCiAJCQkJMUE3Mjg0NDQxOTU5
RUQxMDAwMDdCQ0U1IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICovLApAQCAtNTczNiw2
ICs1NzY2LDEwIEBACiAJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1QSAvKiBVSVByb2Nlc3MgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjM5MTlB
RjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgKi8sCisJCQkJNEE0MTBGM0ExOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8sCisJCQkJNEE0MTBGM0IxOUFGN0IwNDAwMkVCQUI1
IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwICovLAorCQkJCTRBNDEwRjND
MTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi8s
CiAJCQkJMkRBOTQ0QTgxODg0RTlBQjAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQlCQzAzMkRDNDEw
RjQzODdDMDA1OEMxNUEgLyogQVBJICovLAogCQkJCTUxMkY1ODhEMTJBODgzNkYwMDYyOTUzMCAv
KiBBdXRoZW50aWNhdGlvbiAqLywKQEAgLTU5MDYsNiArNTk0MCw4IEBACiAJCUJDMEMzNzY2MTBG
ODA3NjYwMDc2RDdDQiAvKiBDICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQk0QTQxMEYzNTE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJNEE0MTBGMzYxOUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCAqLywKIAkJCQk1MTIzQ0YxODEzM0QyNUU2MDA1NkY4
MDAgLyogY2cgKi8sCiAJCQkJNkVFODQ5QzQxMzY4RDkwNDAwMzhENDgxIC8qIG1hYyAqLywKIAkJ
CQlCQ0I2MzQ3NzExNkJGMTA2MDA2MDMyMTUgLyogV2ViS2l0Ml9DLmggKi8sCkBAIC03MTM0LDYg
KzcxNzAsNyBAQAogCQkJCTFBQTQxQUI1MTJDMDJFQzQwMDJCRTY3QiAvKiBFZGl0b3JTdGF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTFCMTVBODUxMzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25t
ZW50VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTdDNkNEQjEzNzg5NTA4MDBCOUMw
NEQgLyogRW52aXJvbm1lbnRWYXJpYWJsZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTRBM0NDMThG
MTlCMDdCOEEwMEQxNEFFRiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUE1NzVGQjE0OTZCNTI2MDBBNEVFMDYgLyogRXZlbnREaXNwYXRjaGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTkwQzFGNDEyNjRGRDcxMDAzRTQ0RDQgLyogRmluZENv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOTEwMDcxMTI2Njc1QzQwMDE4NDJGNSAv
KiBGaW5kSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTc1NDEsNiArNzU3OCw3IEBACiAJ
CQkJNTE4MzUzREIxODg1QkY4QzAwRDlGRTQ0IC8qIElEQlNlcmlhbGl6YXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBREY1OTFCMTg5MDUyOEUwMDQzQzE0NSAvKiBXS1dlYlZpZXdDb25maWd1
cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU3NDRGMDEyNjM4RkIzMDA2RjBGMTIgLyog
V2ViUG9wdXBJdGVtLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTNDQzE4RDE5QjA2NDE5MDBEMTRB
RUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1NzRFNjMxMjY3RDA4MDAwNkYwRjEyIC8qIFdlYlBvcHVwTWVudVByb3h5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3QzhFQjExNzE4REI2QTE5MDA3OTE3QzIgLyogV0tQcmVmZXJl
bmNlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtNzU2OCw2ICs3NjA2LDcgQEAKIAkJCQkz
NzYwODgxRjE1MDQxM0U5MDBGQzgyQzcgLyogV2ViUmVuZGVyT2JqZWN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTIxNzQ2NTE2NEMyMTM3MDAzN0E1QzEgLyogV2ViUmVzb3VyY2VCdWZmZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTMzMzY3NjMwMTMwQzk5OTgwMDZDOURFMiAvKiBXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEEzQ0MxOEIxOUIwNjQwRjAwRDE0
QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUFGMDg5QjE5MjY3RUU1MDBCNjM5MEMgLyogV0tVc2VyU2NyaXB0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMzM2NzY1NjEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBOTQ0QTQxODg0RTRG
MDAwRUQ4NkRCIC8qIEdlc3R1cmVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjQyLDcgKzg2
ODEsOSBAQAogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1h
c2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJNEE0MTBGNDQxOUFGN0IyNzAwMkVC
QUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzVEMjRBMTE2Q0MzQjlFMDA3RDU0NjEgLyogQ2hpbGRQcm9jZXNzTWFpbi5tbSBp
biBTb3VyY2VzICovLAorCQkJCTRBNDEwRjRBMTlBRjdCODAwMDJFQkFCNSAvKiBXZWJVc2VyTWVk
aWFDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC05MDMxLDYgKzkwNzIsNyBAQAogCQkJCTFB
MEYyOUUzMTIwQjQ0NDIwMDUzRDFCOSAvKiBWaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUExREY2MzEyMThFMEI3QzgwMDNBM0UyQSAvKiBEb3dubG9hZENsaWVudC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTFBMEYyOUNCMTIwQjM3MTYwMDUzRDFCOSAvKiBWaXNpdGVk
TGlua1RhYmxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBM0NDMThBMTlCMDYzRTcwMEQxNEFF
RiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQUMxMzM3RjE4NTkwQUU0MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0
cnkubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRURBMTJFMjE1MkNEMUFFMDBEOUUwOEQgLyogV2Vi
QWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMkUzNTJFMTMw
QjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTkxNTIsNiArOTE5NCw3IEBACiAJCQkJNTE4MzQ1OTIxMzQ1MzJFOTAwOTJCNjk2
IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQwMkY2
NDEzMkVDNUI5MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUM1NzE5M0JFMThDMTRBNDQwMDJEMEYxMiAvKiBXS0Zvcm1TZWxl
Y3RDb250cm9sLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNEEzQ0MxOEUxOUIwN0I4NTAwRDE0QUVG
IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkRERjczMTYxOEU5NTA2MDAwNEY1QTY2IC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVj
dGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMUIyNEE2MTMyRTA5NTcwMDA2NUEwQyAvKiBX
ZWJJY29uRGF0YWJhc2VQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQwMkY2QjEzMkVD
NzM3MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC05MzE1LDYgKzkzNTgsNyBAQAogCQkJCUJDNDA3NjI4MTI0RkYwNDAw
MDY4RjIwQSAvKiBXS0NlcnRpZmljYXRlSW5mb01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUx
NUU3NzI3MTgzREQ2RjYwMDA3MjAzRiAvKiBBc3luY1JlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkNBMjg0RDYxNDkyRjJDNzAwMUY5MDQyIC8qIFdLQ29ubmVjdGlvbi5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTRBM0NDMThDMTlCMDY0MTUwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMEMzNjU4MThDMDUxQkEw
MEY2MDdENyAvKiBSZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEYwQzM2NUMxOEMwNUNBMTAwRjYwN0Q3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHlJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzRBNjI5NjE0NzMxM0EwMDA2QzY4MUEgLyog
V0tDb25uZWN0aW9uUmVmLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjRmZjFhYzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAK
QEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisg
KiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgorCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2lu
Y2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBh
Z2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVJl
cXVlc3RJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVJlcXVlc3RJRCA9IDE7Cisg
ICAgcmV0dXJuIHVuaXF1ZVJlcXVlc3RJRCsrOworfQorCitVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJiBw
YWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoUGFzc1JlZjxVc2VyTWVkaWFSZXF1ZXN0PiBy
ZXF1ZXN0UmVmZXJlbmNlKQoreworICAgIFVzZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3QgPSByZXF1
ZXN0UmVmZXJlbmNlLmdldCgpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvd25jYXN0PERv
Y3VtZW50PihyZXF1ZXN0LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgRnJhbWUqIGZy
YW1lID0gZG9jdW1lbnQgPyBkb2N1bWVudC0+ZnJhbWUoKSA6IG51bGxwdHI7CisKKyAgICBBU1NF
UlQoZnJhbWUpOworICAgIGlmICghZnJhbWUpIHsKKyAgICAgICAgcmVxdWVzdC51c2VyTWVkaWFB
Y2Nlc3NEZW5pZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHVpbnQ2NF90IHJl
cXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVzdElEKCk7CisgICAgbV9pZFRvUmVxdWVzdE1hcC5hZGQo
cmVxdWVzdElELCAmcmVxdWVzdCk7CisgICAgbV9yZXF1ZXN0VG9JRE1hcC5hZGQoJnJlcXVlc3Qs
IHJlcXVlc3RJRCk7CisKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNv
cmVGcmFtZSgqZnJhbWUpOworICAgIEFTU0VSVCh3ZWJGcmFtZSk7CisKKyAgICBTZWN1cml0eU9y
aWdpbiogb3JpZ2luID0gcmVxdWVzdC5zZWN1cml0eU9yaWdpbigpOworICAgIG1fcGFnZS5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJh
bWUocmVxdWVzdElELCB3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBvcmlnaW4tPmRhdGFiYXNlSWRlbnRp
ZmllcigpLCByZXF1ZXN0LnJlcXVpcmVzQXVkaW8oKSwgcmVxdWVzdC5yZXF1aXJlc1ZpZGVvKCkp
KTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJl
cXVlc3QoVXNlck1lZGlhUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICB1aW50NjRfdCByZXF1ZXN0
SUQgPSBtX3JlcXVlc3RUb0lETWFwLnRha2UoJnJlcXVlc3QpOworICAgIGlmICghcmVxdWVzdElE
KQorICAgICAgICByZXR1cm47CisgICAgbV9pZFRvUmVxdWVzdE1hcC5yZW1vdmUocmVxdWVzdElE
KTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgcmVxdWVzdElELCBib29sIGFs
bG93ZWQpCit7CisgICAgUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QgPSBtX2lkVG9S
ZXF1ZXN0TWFwLnRha2UocmVxdWVzdElEKTsKKyAgICBpZiAoIXJlcXVlc3QpCisgICAgICAgIHJl
dHVybjsKKyAgICBtX3JlcXVlc3RUb0lETWFwLnJlbW92ZShyZXF1ZXN0KTsKKworICAgIGlmIChh
bGxvd2VkKQorICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAg
ZWxzZQorICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NEZW5pZWQoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVk
aWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODI2MjU0YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorI2RlZmluZSBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1
ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJik7CisKKyAgICB2b2lkIHN0YXJ0UmVxdWVz
dChQYXNzUmVmPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+KTsKKyAgICB2b2lkIGNhbmNlbFJl
cXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCYpOworCisgICAgdm9pZCBkaWRSZWNlaXZl
VXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFs
bG93ZWQpOworCitwcml2YXRlOgorICAgIFdlYlBhZ2UmIG1fcGFnZTsKKworICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pj4gbV9pZFRvUmVxdWVz
dE1hcDsKKyAgICBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0PiwgdWlu
dDY0X3Q+IG1fcmVxdWVzdFRvSURNYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjMmRiY2IKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv
ZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5oIgorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJV
c2VyTWVkaWFSZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvVXNlck1lZGlhUmVxdWVzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1dlYlVzZXJNZWRpYUNsaWVudDo6V2ViVXNlck1lZGlhQ2xpZW50
KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBXZWJVc2Vy
TWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2
b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZjxVc2VyTWVk
aWFSZXF1ZXN0PiByZXF1ZXN0KQoreworICAgIG1fcGFnZS51c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIoKS5zdGFydFJlcXVlc3QoV1RGOjptb3ZlKHJlcXVlc3QpKTsKK30KKwordm9p
ZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbFJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCYgcmVx
dWVzdCkKK3sKKyAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCku
Y2FuY2VsUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OworCisj
ZW5kaWYgLy8gTUVESUFfU1RSRUFNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTcxNjY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
aApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFdlYlVzZXJNZWRpYUNs
aWVudF9oCisjZGVmaW5lIFdlYlVzZXJNZWRpYUNsaWVudF9oCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFDbGllbnQuaD4KKyNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFn
ZTsKKworY2xhc3MgV2ViVXNlck1lZGlhQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OlVzZXJNZWRp
YUNsaWVudCB7CitwdWJsaWM6CisgICAgV2ViVXNlck1lZGlhQ2xpZW50KFdlYlBhZ2UmKTsKKwor
cHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpOworICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpVc2Vy
TWVkaWFSZXF1ZXN0Jikgb3ZlcnJpZGU7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjZW5kaWYgLy8gV2ViVXNlck1lZGlhQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA5OWQ2MzMyLi5iNjdkOWU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05Nyw2ICs5
Nyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViVW5kb1N0ZXAuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaCIKKyNp
bmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9B
UElDYXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcmNoaXZlUmVzb3VyY2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0Nocm9tZS5oPgpAQCAtMjgxLDYgKzI4Miw5IEBAIFdlYlBhZ2U6OldlYlBhZ2Uo
dWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIodGhpcykKICNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKKyNlbmRp
ZgogICAgICwgbV9jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwocGFyYW1ldGVycy5jYW5S
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpCiAgICAgLCBtX2NhblJ1bk1vZGFsKHBhcmFtZXRl
cnMuY2FuUnVuTW9kYWwpCiAgICAgLCBtX2lzUnVubmluZ01vZGFsKGZhbHNlKQpAQCAtMzg2LDYg
KzM5MCw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZF
TlRTKQogICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VQcm94aW1pdHlUbyhtX3BhZ2UuZ2V0KCks
IG5ldyBXZWJEZXZpY2VQcm94aW1pdHlDbGllbnQodGhpcykpOwogI2VuZGlmCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyAgICBXZWJDb3JlOjpwcm92aWRlVXNlck1lZGlhVG8obV9wYWdlLmdl
dCgpLCBuZXcgV2ViVXNlck1lZGlhQ2xpZW50KCp0aGlzKSk7CisjZW5kaWYKIAogI2lmIEVOQUJM
RShSRU1PVEVfSU5TUEVDVE9SKQogICAgIG1fcGFnZS0+c2V0UmVtb3RlSW5zcGVjdGlvbkFsbG93
ZWQodHJ1ZSk7CkBAIC0zMjUxLDYgKzMyNTgsMTMgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZl
Tm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELAog
ICAgIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5kaWRSZWNlaXZlTm90
aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKG5vdGlmaWNhdGlvbklELCBhbGxvd2VkKTsKIH0K
IAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVVc2Vy
TWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dl
ZCkKK3sKKyAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5kaWRSZWNlaXZl
VXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkKTsKK30KKyNl
bmRpZgorCiAjaWYgIVBMQVRGT1JNKElPUykKIHZvaWQgV2ViUGFnZTo6YWR2YW5jZVRvTmV4dE1p
c3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA4MzgxYjhjLi5lNjFmNTRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTQ0LDYgKzQ0
LDcgQEAKICNpbmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgi
CiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9EaWN0YXRpb25BbHRlcm5h
dGl2ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0VkaXRvci5oPgpAQCAtNDQ5LDYgKzQ1MCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXN0b3Jl
UGFnZVN0YXRlKGNvbnN0IFdlYkNvcmU6Okhpc3RvcnlJdGVtJik7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
JiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX3VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsgfQorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1Mp
CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHNjcmVlblNpemUoKSBjb25zdDsKICAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgYXZhaWxhYmxlU2NyZWVuU2l6ZSgpIGNvbnN0OwpAQCAtMTAxNCw2ICsxMDE5
LDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNz
aW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7CiAKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKTsKKyNlbmRp
ZgorCiAgICAgdm9pZCBhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNl
bGVjdGlvbik7CiAgICAgdm9pZCBjaGFuZ2VTcGVsbGluZ1RvV29yZChjb25zdCBTdHJpbmcmIHdv
cmQpOwogI2lmIFVTRShBUFBLSVQpCkBAIC0xMTc1LDYgKzExODQsMTAgQEAgcHJpdmF0ZToKICAg
ICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciBtX2dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciBtX3VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjsKKyNlbmRpZgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OlByaW50Q29udGV4dD4gbV9wcmludENvbnRleHQ7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIFJl
ZlB0cjxXZWJQcmludE9wZXJhdGlvbkd0az4gbV9wcmludE9wZXJhdGlvbjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5k
ZXggZTk5MjU0Yi4uMGQ2ZDRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTI2NSw2ICsyNjUsMTEgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkUmVjZWl2ZUdlb2xvY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvb2wgYWxsb3dl
ZCkKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAjIE1lZGlhU3RlYW0K
KyAgICBEaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBib29sIGFsbG93ZWQpCisjZW5kaWYKKwogICAgICMgTm90aWZpY2F0aW9uCiAgICAg
RGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmlj
YXRpb25JRCwgYm9vbCBhbGxvd2VkKQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggYmFlYWY2YS4uZGVjMmJkOCAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE0LTA5
LTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBb
V0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU2ltcGxlIEFQSSB0ZXN0IGZvciB0aGUgVXNlck1lZGlhIHBl
cm1pc3Npb24gcmVxdWVzdCBBUEkuIFRoZQorICAgICAgICByZXF1aXJlZCB0ZXN0IGluZnJhc3Ry
dWN0dXJlIGlzIGFsc28gYWRkZWQsIGluc3BpcmVkIGJ5IHRoZQorICAgICAgICBHZW9sb2NhdGlv
biBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBOZXcgQVBJIHRlc3QgZm9yIFVzZXJNZWRpYQor
ICAgICAgICBQZXJtaXNzaW9uIHJlcXVlc3QuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsQmFjayk6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6IG5ldworICAgICAg
ICBoZWxwZXIgbWV0aG9kIHRvIHNldCB0aGUgcGVybWlzc2lvbiByZXF1ZXN0IHJlc3VsdCB3aXRo
b3V0IHVzZXIgaW50ZXJhY3Rpb24uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6IERpdHRvLgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZTo6c2V0VXNlck1lZGlhUGVybWlzc2lvbik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOiBEaXR0by4KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOiBEaXR0by4KKyAg
ICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0VXNlck1lZGlhUGVybWlzc2lvbik6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6IERpdHRvLgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V1RSOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6IFBlcm1pc3Np
b24KKyAgICAgICAgcmVxdWVzdCBoYW5kbGVyLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6Y3JlYXRlT3RoZXJQYWdlKTogRW5hYmxlIHRoZSBuZXcgVXNlck1lZGlhCisgICAgICAgIHBl
cm1pc3Npb24gcmVxdWVzdCBoYW5kbGVyLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKTogRGl0dG8uCisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKTogRW5hYmxlCisgICAg
ICAgIE1lZGlhU3RyZWFtIHN1cHBvcnQsIHRoaXMgaXMgbmVlZGVkIGZvciBnZXRVc2VyTWVkaWEu
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFs
dWVzKTogY2xlYXIKKyAgICAgICAgVXNlck1lZGlhIHBlcm1pc3Npb25zIGxpc3QgYW5kIGZsYWdz
LgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0VXNlck1lZGlhUGVybWlzc2lvbik6
IFNldCBwZXJtaXNzaW9uCisgICAgICAgIHJlcXVlc3QgcmVzdWx0IGFuZCBkaXN0cGF0Y2ggaXQu
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpoYW5kbGVVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCk6IFNhdmUKKyAgICAgICAgcmVxdWVzdCBhbmQgZGlzcGF0Y2ggaXQuCisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdElmUG9zc2libGUpOgorICAgICAgICBEaXNwYXRjaCBjYWNoZWQgcGVybWlzc2lvbiBy
ZXF1ZXN0cy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6
CisKIDIwMTQtMTAtMTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgUGFnZSBub3QgZnVsbHkgcmVuZGVyZWQgaW4gaU9TIERSVCBzbmFwc2hvdHMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CmluZGV4IGJjNWQwYmUuLmRlMDVlYTEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9DTWFrZUxpc3RzLnR4dApAQCAtMTYzLDYgKzE2Myw4IEBAIGFkZF9leGVjdXRhYmxl
KFRlc3RKYXZhU2NyaXB0Q29yZQogKQogCiB0YXJnZXRfbGlua19saWJyYXJpZXMoVGVzdEphdmFT
Y3JpcHRDb3JlICR7VGVzdEphdmFTY3JpcHRDb3JlX0xJQlJBUklFU30pCithZGRfZGVwZW5kZW5j
aWVzKFRlc3RKYXZhU2NyaXB0Q29yZSAke0ZvcndhcmRpbmdIZWFkZXJzRm9yVGVzdFdlYktpdEFQ
SV9OQU1FfSkKKwogYWRkX3Rlc3QoVGVzdEphdmFTY3JpcHRDb3JlICR7VEVTVFdFQktJVEFQSV9S
VU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L0phdmFTY3JpcHRDb3JlL1Rlc3RKYXZhU2NyaXB0Q29y
ZSkKIHNldF90ZXN0c19wcm9wZXJ0aWVzKFRlc3RKYXZhU2NyaXB0Q29yZSBQUk9QRVJUSUVTIFRJ
TUVPVVQgNjApCiBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoVGVzdEphdmFTY3JpcHRDb3JlIFBST1BF
UlRJRVMgUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZICR7VEVTVFdFQktJVEFQSV9SVU5USU1FX09V
VFBVVF9ESVJFQ1RPUll9L0phdmFTY3JpcHRDb3JlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1H
VEsuY21ha2UKaW5kZXggYmFlODRkMy4uODc4ODQ1MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRm
b3JtR1RLLmNtYWtlCkBAIC05MSw2ICs5MSw3IEBAIGFkZF9leGVjdXRhYmxlKFRlc3RXZWJLaXQy
CiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9SZXNpemVXaW5kb3dBZnRl
ckNyYXNoLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvUmVzdG9y
ZVNlc3Npb25TdGF0ZUNvbnRhaW5pbmdGb3JtRGF0YS5jcHAKICAgICAke1RFU1RXRUJLSVRBUElf
RElSfS9UZXN0cy9XZWJLaXQyL1Nob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLmNwcAorICAg
ICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcAogICAgICR7
VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvVXNlck1lc3NhZ2UuY3BwCiAgICAgJHtU
RVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9XaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcAog
ICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvV0tQYWdlR2V0U2NhbGVGYWN0
b3JOb3RaZXJvLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZWVhOTk4Li42ZjM3YTAz
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODgsNiArODgsNyBAQAogCQkzN0UxMDY0RDE2
OTc2Qzg1MDBCNzhCRDAgLyogRE9NSFRNTFRhYmxlQ2VsbENlbGxBYm92ZS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RTEwNjRBMTY5NzY3NjQwMEI3
OEJEMCAvKiBET01IVE1MVGFibGVDZWxsQ2VsbEFib3ZlLm1tICovOyB9OwogCQkzN0UzOEMzNDE2
OUI3RDAxMDA4NEMyOEMgLyogV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RTM4QzMzMTY5
QjdEMDEwMDg0QzI4QyAvKiBXZWJWaWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tICov
OyB9OwogCQk0NDBBMUQzOTE0QTAxMDNBMDA4QTY2RjIgLyogVVJMLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MEExRDM4MTRBMDEwM0EwMDhBNjZG
MiAvKiBVUkwuY3BwICovOyB9OworCQk0QTQxMEY0QzE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1l
ZGlhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRB
NDEwRjRCMTlBRjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVkaWEuY3BwICovOyB9OwogCQk0QkI0MTYw
MjE2ODE1QjI2MDA4MjQyMzggLyogSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QkI0MTYwMTE2ODE1QjI2
MDA4MjQyMzggLyogSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW0gKi87IH07CiAJCTRCQjQx
NjA0MTY4MTVGOTEwMDgyNDIzOCAvKiBFbGVtZW50QXRQb2ludEluV2ViRnJhbWUubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QkI0MTYwMzE2ODE1Rjkx
MDA4MjQyMzggLyogRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tICovOyB9OwogCQk0QkZERkZB
NzEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE2MTMx
NDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICovOyB9
OwpAQCAtNDQxLDYgKzQ0Miw4IEBACiAJCTM3RTM4QzMzMTY5QjdEMDEwMDg0QzI4QyAvKiBXZWJW
aWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQwQTFEMzgxNEEwMTAzQTAwOEE2NkYyIC8q
IFVSTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVUkwuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NEE2MjJDMTE0QTBFMkI2MDA0ODUxNUIgLyog
V1RGU3RyaW5nVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdU
RlN0cmluZ1V0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEY0
QjE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNSAvKiBnZXRVc2VyTWVkaWEuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9IGdldFVzZXJNZWRpYS5odG1sOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0QkI0MTYwMTE2ODE1QjI2MDA4MjQyMzggLyogSlNXcmFwcGVyRm9yTm9k
ZUluV2ViRnJhbWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBK
U1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNEJCNDE2MDMxNjgxNUY5MTAwODI0MjM4IC8qIEVsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVsZW1lbnRBdFBvaW50
SW5XZWJGcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJGREZGQTYxMzE0
Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9C
dW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODI5LDYgKzgzMiw3IEBA
CiAJCUJDOTA5NjQxMTI1NTYxNjAwMDA4Mzc1NiAvKiBXZWJLaXQyICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEY0QjE5QUY3QkQ2MDAyRUJBQjUg
LyogVXNlck1lZGlhLmNwcCAqLywKIAkJCQlDMEM1RDNCQjE0NTk4QjZGMDBBODAyQTYgLyogbWFj
ICovLAogCQkJCUJDOTA5NzdCMTI1NTcxQUUwMDA4Mzc1NiAvKiBSZXNvdXJjZXMgKi8sCiAJCQkJ
QkMyNDZEOEMxMzJGMTE1QTAwQjU2RDdDIC8qIEFib3V0QmxhbmtMb2FkLmNwcCAqLywKQEAgLTk2
Myw2ICs5NjcsNyBAQAogCQlCQzkwOTc3QjEyNTU3MUFFMDAwODM3NTYgLyogUmVzb3VyY2VzICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEY0RDE5
QUY3QkVGMDAyRUJBQjUgLyogZ2V0VXNlck1lZGlhLmh0bWwgKi8sCiAJCQkJQzA0NUY5NDYxMzg1
QzJGODAwQzBGM0NEIC8qIDE4LWNoYXJhY3RlcnMuaHRtbCAqLywKIAkJCQlGNkI3QkU5NjE3NDY5
QjdFMDA4QTM0NDUgLyogYXNzb2NpYXRlLWZvcm0tY29udHJvbHMuaHRtbCAqLywKIAkJCQk3NkUx
ODJERTE1NDc1QTgzMDBGMUZBREQgLyogYXV0by1zdWJtaXR0aW5nLWZvcm0uaHRtbCAqLywKQEAg
LTEzNjksNiArMTM3NCw3IEBACiAJCQkJNTFGQ0Y3OUExNTM0QUM2RDAwMTA0NDkxIC8qIFNob3Vs
ZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRkRFNjU2
MTk1M0IyQzAwMEM0OEZGQSAvKiBPcHRpb25hbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTQw
Rjc3NjE1MkU0REEwMDBBNDBDOEMgLyogU2ltcGxpZnlNYXJrdXAubW0gaW4gU291cmNlcyAqLywK
KwkJCQk0QTQxMEY0QzE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUMwMkI3N0YyMTI2NjEyMTQwMDI2QkYwRiAvKiBTcGFjZWJhclNjcm9sbGluZy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0QzRDE5RTE3QjFBODQyMDBDN0M0MTUgLyogTGF5b3V0
TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
MTk0RTFCQjE3N0U1MTQ1MDA5QzRENEUgLyogU3RvcExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3Bv
bnNlLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9Vc2VyTWVkaWEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2
ZjZjZjYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDIvVXNlck1lZGlhLmNwcApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaW5jbHVkZSAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlICJU
ZXN0LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8c3RyaW5n
Lmg+CisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0
YXRpYyBib29sIGRvbmU7CisKK3ZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RDYWxsQmFjayhXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLU2VjdXJpdHlPcmlnaW5S
ZWYsIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNv
bnN0IHZvaWQqIC8qIGNsaWVudEluZm8gKi8pCit7CisgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdEFsbG93KHBlcm1pc3Npb25SZXF1ZXN0KTsKKyAgICBkb25lID0gdHJ1ZTsKK30KKwor
VEVTVChXZWJLaXQyLCBVc2VyTWVkaWFCYXNpYykKK3sKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9w
dFdLKFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250
ZXh0LmdldCgpKTsKKyAgICBXS1BhZ2VVSUNsaWVudFY1IHVpQ2xpZW50OworICAgIG1lbXNldCgm
dWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOworCisKKyAgICB1aUNsaWVudC5iYXNlLnZl
cnNpb24gPSA1OworICAgIHVpQ2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0ID0gZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxs
QmFjazsKKworICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xp
ZW50LmJhc2UpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIGF1dG8gdXJsID0gYWRvcHRXSyhV
dGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiZ2V0VXNlck1lZGlhIiwgImh0bWwiKSk7CisgICAg
V0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKKworICAgIFV0aWw6OnJ1
bigmZG9uZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZTU0Zjg1MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbApAQCAtMCwwICsxLDE0IEBACis8c2NyaXB0Pgor
ZnVuY3Rpb24gZ290VXNlck1lZGlhKG1lZGlhU3RyZWFtKQoreworICAgIGNvbnNvbGUubG9nKCJH
b3QgdXNlciBtZWRpYSIpOworfQorCitmdW5jdGlvbiB1c2VyTWVkaWFFcnJvcihlcnJvcikKK3sK
KyAgICBjb25zb2xlLmxvZyhlcnJvcik7Cit9CisKK3ZhciBvcHRpb25zID0geyBhdWRpbzogZmFs
c2UsIHZpZGVvOiB0cnVlfTsKK25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywg
Z290VXNlck1lZGlhLCB1c2VyTWVkaWFFcnJvcik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsCmluZGV4IGJiOWE3YTAuLjA4YTE4OTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbApAQCAtMTY5LDYgKzE2OSw5IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICB2b2lk
IHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdp
dHVkZSwgZG91YmxlIGFjY3VyYWN5LCBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIG9iamVj
dCBhbHRpdHVkZSwgb3B0aW9uYWwgb2JqZWN0IGFsdGl0dWRlQWNjdXJhY3ksIG9wdGlvbmFsIG9i
amVjdCBoZWFkaW5nLCBvcHRpb25hbCBvYmplY3Qgc3BlZWQpOwogICAgIHZvaWQgc2V0TW9ja0dl
b2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKERPTVN0cmluZyBlcnJvck1lc3NhZ2Up
OwogCisgICAgLy8gTWVkaWFTdHJlYW0KKyAgICB2b2lkIHNldFVzZXJNZWRpYVBlcm1pc3Npb24o
Ym9vbGVhbiB2YWx1ZSk7CisKICAgICAvLyBBdWRpbyB0ZXN0aW5nLgogICAgIFtQYXNzQ29udGV4
dF0gdm9pZCBzZXRBdWRpb1Jlc3VsdChvYmplY3QgZGF0YSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5k
ZXggN2IxZGU3MC4uYjQxM2M3YiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTQ1OCw2ICs0NTgsMTMg
QEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWls
YWJsZUVycm9yKFdLU3RyaW5nUmVmIGVycm8KICAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKG1fYnVu
ZGxlLCBtZXNzYWdlTmFtZS5nZXQoKSwgZXJyb3JNZXNzYWdlKTsKIH0KIAordm9pZCBJbmplY3Rl
ZEJ1bmRsZTo6c2V0VXNlck1lZGlhUGVybWlzc2lvbihib29sIGVuYWJsZWQpCit7CisgICAgYXV0
byBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNl
dFVzZXJNZWRpYVBlcm1pc3Npb24iKSk7CisgICAgYXV0byBtZXNzYWdlQm9keSA9IGFkb3B0V0so
V0tCb29sZWFuQ3JlYXRlKGVuYWJsZWQpKTsKKyAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKG1fYnVu
ZGxlLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkpOworfQorCiB2b2lkIElu
amVjdGVkQnVuZGxlOjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wg
cGVybWlzc2l2ZSkKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUo
QWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldEN1c3RvbVBvbGljeURl
bGVnYXRlIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5oCmluZGV4IDlmNzZhOWQuLjhmMGE4NDAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmgKQEAgLTkyLDYgKzkyLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJh
Y3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3ZpZGVz
QWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNI
ZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQp
OwogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKFdL
U3RyaW5nUmVmIGVycm9yTWVzc2FnZSk7CiAKKyAgICAvLyBNZWRpYVN0cmVhbS4KKyAgICB2b2lk
IHNldFVzZXJNZWRpYVBlcm1pc3Npb24oYm9vbCk7CisKICAgICAvLyBQb2xpY3kgZGVsZWdhdGUu
CiAgICAgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVy
bWlzc2l2ZSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGQwODVmMWEuLmQ3NTFiOTUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAt
NzIwLDYgKzcyMCwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0
aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0cmluZ1JlZiBtZXNzYWdlKQogICAgIEluamVjdGVkQnVu
ZGxlOjpzaGFyZWQoKS5zZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3Io
bWVzc2FnZVdLLmdldCgpKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRVc2VyTWVkaWFQZXJt
aXNzaW9uKGJvb2wgZW5hYmxlZCkKK3sKKyAgICAvLyBGSVhNRTogdGhpcyBzaG91bGQgYmUgZG9u
ZSBieSBmcmFtZS4KKyAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc2V0VXNlck1lZGlhUGVy
bWlzc2lvbihlbmFibGVkKTsKK30KKwogYm9vbCBUZXN0UnVubmVyOjpjYWxsU2hvdWxkQ2xvc2VP
bldlYlZpZXcoKQogewogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQ
YWdlR2V0TWFpbkZyYW1lKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oCmluZGV4IGUyMWZmZjMuLjM5NGU5MDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0yNTIsNiArMjUyLDkgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRl
LCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIEpTVmFsdWVSZWYgYWx0aXR1ZGUs
IEpTVmFsdWVSZWYgYWx0aXR1ZGVBY2N1cmFjeSwgSlNWYWx1ZVJlZiBoZWFkaW5nLCBKU1ZhbHVl
UmVmIHNwZWVkKTsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFi
bGVFcnJvcihKU1N0cmluZ1JlZiBtZXNzYWdlKTsKIAorICAgIC8vIE1lZGlhU3RyZWFtCisgICAg
dm9pZCBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wpOworCiAgICAgdm9pZCBzZXRQYWdlVmlz
aWJpbGl0eShKU1N0cmluZ1JlZiBzdGF0ZSk7CiAgICAgdm9pZCByZXNldFBhZ2VWaXNpYmlsaXR5
KCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZGEx
M2YyZC4uMDUwNzExZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKQEAgLTE4OCw2ICsxODgsMTEgQEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFcKICAgICBUZXN0
Q29udHJvbGxlcjo6c2hhcmVkKCkuaGFuZGxlR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChw
ZXJtaXNzaW9uUmVxdWVzdCk7CiB9CiAKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0eU9y
aWdpblJlZiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVz
dCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVk
KCkuaGFuZGxlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QocGVybWlzc2lvblJlcXVlc3QpOwor
fQorCiBpbnQgVGVzdENvbnRyb2xsZXI6OmdldEN1c3RvbVRpbWVvdXQoKQogewogICAgIHJldHVy
biBtX3RpbWVvdXQ7CkBAIC0yMDIsOCArMjA3LDggQEAgV0tQYWdlUmVmIFRlc3RDb250cm9sbGVy
OjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0sK
IAogICAgIHZpZXctPnJlc2l6ZVRvKDgwMCwgNjAwKTsKIAotICAgIFdLUGFnZVVJQ2xpZW50VjIg
b3RoZXJQYWdlVUlDbGllbnQgPSB7Ci0gICAgICAgIHsgMiwgdmlldyB9LAorICAgIFdLUGFnZVVJ
Q2xpZW50VjUgb3RoZXJQYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgNSwgdmlldyB9LAogICAg
ICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAg
MCwgLy8gc2hvd1BhZ2UKICAgICAgICAgY2xvc2VPdGhlclBhZ2UsCkBAIC0yNTAsNiArMjU1LDEy
IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBv
bGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBpY2tl
cgogICAgICAgICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gdW5hdmFpbGFi
bGVQbHVnaW5CdXR0b25DbGlja2VkCisgICAgICAgIDAsIC8vIHBpbm5lZFN0YXRlRGlkQ2hhbmdl
CisgICAgICAgIDAsIC8vIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcwor
ICAgICAgICAwLCAvLyBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcworICAgICAgICAwLCAvLyBk
aWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzCisgICAgICAgIDAsIC8vIGlz
UGxheWluZ0F1ZGlvRGlkQ2hhbmdlCisgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG5ld1Bh
Z2UsICZvdGhlclBhZ2VVSUNsaWVudC5iYXNlKTsKIApAQCAtNDA4LDggKzQxOSw4IEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkK
IHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhXS0RpY3Rpb25h
cnlSZWYgb3B0aW9ucykKIHsKICAgICBtX21haW5XZWJWaWV3ID0gc3RkOjptYWtlX3VuaXF1ZTxQ
bGF0Zm9ybVdlYlZpZXc+KG1fY29udGV4dC5nZXQoKSwgbV9wYWdlR3JvdXAuZ2V0KCksIG51bGxw
dHIsIG9wdGlvbnMpOwotICAgIFdLUGFnZVVJQ2xpZW50VjIgcGFnZVVJQ2xpZW50ID0gewotICAg
ICAgICB7IDIsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKKyAgICBXS1BhZ2VVSUNsaWVudFY1IHBh
Z2VVSUNsaWVudCA9IHsKKyAgICAgICAgeyA1LCBtX21haW5XZWJWaWV3LmdldCgpIH0sCiAgICAg
ICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMAogICAgICAgICAw
LCAvLyBzaG93UGFnZQogICAgICAgICAwLCAvLyBjbG9zZQpAQCAtNDU2LDYgKzQ2NywxMiBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoV0tEaWN0aW9uYXJ5
UmVmIG9wdGlvbnMpCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBpY2tlcgogICAgICAgICAwLCAv
LyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2Vk
LAorICAgICAgICAwLCAvLyBwaW5uZWRTdGF0ZURpZENoYW5nZQorICAgICAgICAwLCAvLyBkaWRC
ZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MKKyAgICAgICAgMCwgLy8gZGlkUmVj
b2duaXplTG9uZ01vdXNlUHJlc3MKKyAgICAgICAgMCwgLy8gZGlkQ2FuY2VsVHJhY2tpbmdQb3Rl
bnRpYWxMb25nTW91c2VQcmVzcworICAgICAgICAwLCAvLyBpc1BsYXlpbmdBdWRpb0RpZENoYW5n
ZQorICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKICAg
ICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZw
YWdlVUlDbGllbnQuYmFzZSk7CiAKQEAgLTU0NSw2ICs1NjIsNyBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBXS1ByZWZlcmVu
Y2VzU2V0Rm9udFNtb290aGluZ0xldmVsKHByZWZlcmVuY2VzLCBrV0tGb250U21vb3RoaW5nTGV2
ZWxOb1N1YnBpeGVsQW50aUFsaWFzaW5nKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0WFNTQXVkaXRv
ckVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0V2ViQXVk
aW9FbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFT
dHJlYW1FbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNl
c1NldEphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAg
IFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KHBy
ZWZlcmVuY2VzLCB0cnVlKTsKQEAgLTY0NCw2ICs2NjIsMTEgQEAgYm9vbCBUZXN0Q29udHJvbGxl
cjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgbV9pc0dlb2xvY2F0aW9uUGVy
bWlzc2lvblNldCA9IGZhbHNlOwogICAgIG1faXNHZW9sb2NhdGlvblBlcm1pc3Npb25BbGxvd2Vk
ID0gZmFsc2U7CiAKKyAgICAvLyBSZXNldCBVc2VyTWVkaWEgcGVybWlzc2lvbnMuCisgICAgbV91
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuY2xlYXIoKTsKKyAgICBtX2lzVXNlck1lZGlhUGVy
bWlzc2lvblNldCA9IGZhbHNlOworICAgIG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uQWxsb3dlZCA9
IGZhbHNlOworCiAgICAgLy8gUmVzZXQgQ3VzdG9tIFBvbGljeSBEZWxlZ2F0ZS4KICAgICBzZXRD
dXN0b21Qb2xpY3lEZWxlZ2F0ZShmYWxzZSwgZmFsc2UpOwogCkBAIC0xMzU3LDYgKzEzODAsMzMg
QEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aGFuZGxlR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dChXS0dlb2xvY2F0aW9uUGVybWlzc2lvblIKICAgICBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVy
OjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX2lzVXNlck1l
ZGlhUGVybWlzc2lvblNldCA9IHRydWU7CisgICAgbV9pc1VzZXJNZWRpYVBlcm1pc3Npb25BbGxv
d2VkID0gZW5hYmxlZDsKKyAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdElmUG9zc2libGUoKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6aGFuZGxlVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdCkKK3sKKyAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0cy5hcHBlbmQodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOworICAgIGRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpOworfQorCit2b2lkIFRl
c3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElm
UG9zc2libGUoKQoreworICAgIGlmICghbV9pc1VzZXJNZWRpYVBlcm1pc3Npb25TZXQpCisgICAg
ICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IG1fdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RzKSB7CisgICAgICAgIGlmIChtX2lzVXNlck1lZGlhUGVybWlzc2lvbkFsbG93
ZWQpCisgICAgICAgICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocmVxdWVz
dC5nZXQoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3REZW55KHJlcXVlc3QuZ2V0KCkpOworICAgIH0KKyAgICBtX3VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0cy5jbGVhcigpOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRDdXN0
b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSkKIHsKICAgICBt
X3BvbGljeURlbGVnYXRlRW5hYmxlZCA9IGVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKaW5kZXggZDliZTc0OC4uNTlhN2U4OSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtODgsNiArODgsMTAgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKFdLU3RyaW5nUmVm
IGVycm9yTWVzc2FnZSk7CiAgICAgdm9pZCBoYW5kbGVHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0KFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZik7CiAKKyAgICAvLyBNZWRpYVN0
cmVhbS4KKyAgICB2b2lkIHNldFVzZXJNZWRpYVBlcm1pc3Npb24oYm9vbCk7CisgICAgdm9pZCBo
YW5kbGVVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UmVmKTsKKwogICAgIC8vIFBvbGljeSBkZWxlZ2F0ZS4KICAgICB2b2lkIHNldEN1c3RvbVBv
bGljeURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZlKTsKIApAQCAtMTMzLDYg
KzEzNyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVMYXlvdXRUeXBlRm9yVGVzdChjb25z
dCBUZXN0SW52b2NhdGlvbiYpOwogCiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKCk7CiAKICAgICAvLyBXS0NvbnRl
eHRJbmplY3RlZEJ1bmRsZUNsaWVudAogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
RnJvbUluamVjdGVkQnVuZGxlKFdLQ29udGV4dFJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUs
IFdLVHlwZVJlZiBtZXNzYWdlQm9keSwgY29uc3Qgdm9pZCopOwpAQCAtMjM3LDYgKzI0MiwxMCBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0dlb2xvY2F0aW9uUGVybWlzc2lvblNldDsKICAgICBi
b29sIG1faXNHZW9sb2NhdGlvblBlcm1pc3Npb25BbGxvd2VkOwogCisgICAgVmVjdG9yPFdLUmV0
YWluUHRyPFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWY+PiBtX3VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0czsKKyAgICBib29sIG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uU2V0OworICAg
IGJvb2wgbV9pc1VzZXJNZWRpYVBlcm1pc3Npb25BbGxvd2VkOworCiAgICAgYm9vbCBtX3BvbGlj
eURlbGVnYXRlRW5hYmxlZDsKICAgICBib29sIG1fcG9saWN5RGVsZWdhdGVQZXJtaXNzaXZlOwog
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDM2Mzc3MDMu
Ljg3YzQ2YzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBA
IC00NzgsNiArNDc4LDEzIEBAIHZvaWQgVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdl
RnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdl
TmFtZSwgIlNldFVzZXJNZWRpYVBlcm1pc3Npb24iKSkgeworICAgICAgICBBU1NFUlQoV0tHZXRU
eXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKyAgICAgICAgV0tC
b29sZWFuUmVmIGVuYWJsZWRXSyA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJv
ZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkuc2V0VXNlck1lZGlhUGVybWlz
c2lvbihXS0Jvb2xlYW5HZXRWYWx1ZShlbmFibGVkV0spKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAi
U2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUiKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQo
bWVzc2FnZUJvZHkpID09IFdLRGljdGlvbmFyeUdldFR5cGVJRCgpKTsKICAgICAgICAgV0tEaWN0
aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFy
eVJlZj4obWVzc2FnZUJvZHkpOwotLSAKMi4xLjA=
</data>
<flag name="review"
          id="264440"
          type_id="1"
          status="+"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="265692"
          type_id="3"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241348</attachid>
            <date>2014-11-11 04:00:31 -0800</date>
            <delta_ts>2014-11-11 04:00:31 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>119177</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAwOWU4OWU3ZWVkMTZmMjY3NjU4OGJmOWYyMzY4YTg5ZmUwZGIyZDI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDIgU2VwIDIwMTQgMTE6NTY6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDMxICsrKysrKysrCiAuLi4vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQtZXhwZWN0
ZWQudHh0ICAgICAgICB8IDEwICsrKwogLi4uL21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lv
bi1hbGxvd2VkLmh0bWwgICAgfCAzNCArKysrKysrKwogLi4uL2RlbGF5ZWQtcGVybWlzc2lvbi1k
ZW5pZWQtZXhwZWN0ZWQudHh0ICAgICAgICAgfCAxMCArKysKIC4uLi9tZWRpYXN0cmVhbS9kZWxh
eWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwgICAgIHwgMzcgKysrKysrKysrCiBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4cGVjdGVkLnR4dCAgICB8IDEwICsrKwogTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sICAgICAgICAgICAgfCAyOSArKysrKysr
CiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0ICB8ICA5
ICsrKwogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwgICAgICAgICAg
fCAyNiArKysrKysKIC4uLi9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQg
ICAgICAgIHwgMTEgKysrCiAuLi4vbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJl
YWR5Lmh0bWwgICB8IDQ0ICsrKysrKysrKysrCiAuLi4vbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3Rl
ZC1mcmFtZS1leHBlY3RlZC50eHQgICB8IDExICsrKwogLi4uc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQgfCAxMyArKysKIC4uLi9kaXNjb25uZWN0ZWQtZnJh
bWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCAgICAgIHwgNTMgKysrKysrKysrKysrKwogLi4uL21l
ZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbCAgICAgfCA0MiArKysrKysr
KysrCiAuLi4vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIxLmh0bWwgICAgICAgICB8
ICA4ICsrCiAuLi4vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktaW5uZXIyLmh0bWwgICAgICAg
ICB8ICA4ICsrCiAuLi4vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sICAg
ICAgICB8ICA4ICsrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyAg
ICAgICAgICB8IDM4ICsrKysrKysrLQogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMgICAgICAgICAgfCAgMSArCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDI3ICsrKysrKysKIC4uLi9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmggIHwgIDQgKy0KIC4uLi9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaCAgICAgIHwgMTAgKy0tCiAuLi4vTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCAgICAgICB8ICA1ICstCiAuLi4vV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCB8ICA0ICsKIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oIHwgMTIgKy0tCiBTb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrCiBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDc0ICsrKysr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggICAgICAg
ICAgICAgICB8ICAxICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCAgICAgICAg
ICAgICAgICAgIHwgIDEgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVu
dC5oICAgICAgICAgfCAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElD
YXN0LmggICAgICAgICB8ICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwICAgICAgICAgIHwgMTEgKystCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlVUlDbGllbnQuaCAgICB8IDY5ICsrKysrKysrKysrKysrKysKIC4uLi9BUEkvQy9XS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAgICAgICAgIHwgNDAgKysrKysrKysrKwogLi4u
L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggfCAzNyArKysr
KysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaCAgICAgICAg
IHwgIDEgKwogLi4uL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAg
ICAgfCA2MyArKysrKysrKysrKysrKysKIC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oICAgICAgIHwgNDggKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgIHwgNTQgKysrKysrKysrKysrKwogLi4uL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggICAgfCA1NCArKysrKysr
KysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCAgICAgICAg
ICB8IDE0ICsrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAg
ICAgICAgIHwgIDcgKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4gIHwgIDUgKysKIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiAgIHwgNDQgKysrKysrKysrKysKIC4uLi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuY3BwICAgICAgICAgIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKwogLi4u
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICAgICAgICAgICAgfCA1MyArKysr
KysrKysrKysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAgICAg
ICAgICB8IDU2ICsrKysrKysrKysrKysKIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlVzZXJNZWRpYUNsaWVudC5oIHwgNDcgKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCAgICAgIHwgMTQgKysrKwogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCAgICAgICAgfCAxMyArKysKIC4uLi9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIHwgIDUgKysKIFRvb2xzL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysr
KysKIFRvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgIHwg
IDIgKwogVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZSAgICAgICAgICAgICAg
fCAgMSArCiAuLi4vVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAg
ICB8ICA2ICsrCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNw
cCAgICB8IDYxICsrKysrKysrKysrKysrCiAuLi4vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L2dldFVzZXJNZWRpYS5odG1sICB8IDE0ICsrKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbCAgICAgICAgIHwgIDMgKwogLi4uL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcCAgICAgICAgICAgICAgfCAgNyArKwogLi4uL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmggICAgICAgICAgICAgICAgfCAgMyArCiAuLi4vV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCB8ICA2ICsrCiBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCB8ICAzICsKIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwICAgICAgICAgIHwgNTggKysrKysrKysrKysrKy0K
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCAgICAgICAgICAgIHwgIDkg
KysrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCAgICAgICAgICB8
ICA3ICsrCiA2NiBmaWxlcyBjaGFuZ2VkLCAxNTEzIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9u
cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVs
YXllZC1wZXJtaXNzaW9uLWFsbG93ZWQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5o
dG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxh
eWVkLXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1s
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1l
eHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL2Vycm9yLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUt
YWxyZWFkeS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS5odG1s
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1m
cmFtZS1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJh
bWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJl
YW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMS5odG1sCiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0v
cmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMi5odG1sCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVz
b3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlh
U3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVk
aWFDbGllbnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dldFVzZXJNZWRp
YS5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGMyODU4ZTQuLjBkM2Y3ZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAor
MjAxNC0wOS0wMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW1dLMl0gVXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5
IEJlbmphbWluIFBvdWxhaW4uCisKKyAgICAgICAgU2ltcGxlIFVzZXJNZWRpYSBwZXJtaXNzaW9u
IHJlcXVlc3QgdGVzdHMgaW5zcGlyZWQgZnJvbSB0aGUKKyAgICAgICAgR2VvbG9jYXRpb24gdGVz
dCBzdWl0ZS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2Vycm9yLmpzOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9zdWNjZXNzLmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNz
aW9uLWFsbG93ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9kZWxh
eWVkLXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1h
bHJlYWR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJl
YW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVk
LWZyYW1lLXBlcm1pc3Npb24tZGVuaWVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZGlzY29ubmVj
dGVkLWZyYW1lLWFscmVhZHktaW5uZXIxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFk
eS1pbm5lcjIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNC0xMS0xMCAgQmVu
amFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcGFyc2lu
ZyBzdXBwb3J0IGZvciB0aGUgZXh0ZW5kZWQgOm50aC1sYXN0LWNoaWxkKEFuK0Igb2Ygc2VsZWN0
b3ItbGlzdCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXll
ZC1wZXJtaXNzaW9uLWFsbG93ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjNmODI1YwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgbm8gY2FsbGJhY2tzIGFyZSBp
bnZva2VkIHVudGlsIHBlcm1pc3Npb24gaXMgYWxsb3dlZC4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1NDdjMDcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lv
bi1hbGxvd2VkLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCBubyBjYWxsYmFja3MgYXJlIGludm9rZWQgdW50aWwgcGVybWlzc2lvbiBpcyBhbGxvd2VkLiIp
Oword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBhbGxvd1Blcm1pc3Np
b24oKSB7CisgICAgcGVybWlzc2lvblNldCA9IHRydWU7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7Cit9
CisKK3ZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07CituYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgeworICAgaWYgKHBl
cm1pc3Npb25TZXQpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZv
a2VkJyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsK
K30sIGZ1bmN0aW9uKGUpIHsKKyAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2Vk
IHVuZXhwZWN0ZWRseScpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKK3dpbmRvdy5zZXRU
aW1lb3V0KGFsbG93UGVybWlzc2lvbiwgMTAwKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1p
c3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
ZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYWZmNjdkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBubyBjYWxsYmFja3MgYXJlIGludm9rZWQgdW50
aWwgcGVybWlzc2lvbiBpcyBkZW5pZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIGVycm9yLmNvZGUgaXMgZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2ZGE0YWEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lv
bi1kZW5pZWQuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IG5vIGNhbGxiYWNrcyBhcmUgaW52b2tlZCB1bnRpbCBwZXJtaXNzaW9uIGlzIGRlbmllZC4iKTsK
K3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gZGVueVBlcm1pc3Npb24o
KSB7CisgICAgcGVybWlzc2lvblNldCA9IHRydWU7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24oZmFsc2UpOworfQor
Cit2YXIgZXJyb3I7Cit2YXIgb3B0aW9ucyA9IHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9Owor
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsK
KyAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmdW5jdGlvbihlKSB7CisgICAgaWYgKHBlcm1pc3Np
b25TZXQpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgICAgICBzaG91bGRCZSgnZXJyb3IuY29k
ZScsICdlcnJvci5QRVJNSVNTSU9OX0RFTklFRCcpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBp
bnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKK3dpbmRv
dy5zZXRUaW1lb3V0KGRlbnlQZXJtaXNzaW9uLCAxMDApOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3ItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2MjlkMjIyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgVXNlck1lZGlhIGVycm9yIGNhbGxiYWNrIHVzaW5n
IHRoZSBtb2NrIHNlcnZpY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IGVycm9yLmNvZGUgaXMgZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL2Vycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThjNTE1
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3Iu
aHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBVc2VyTWVkaWEgZXJy
b3IgY2FsbGJhY2sgdXNpbmcgdGhlIG1vY2sgc2VydmljZS4iKTsKK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0
VXNlck1lZGlhUGVybWlzc2lvbihmYWxzZSk7CitlbHNlCisgICAgZGVidWcoJ1RoaXMgdGVzdCBj
YW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyJyk7CisKK3ZhciBlcnJvcjsKK3Zh
ciBvcHRpb25zID0ge2F1ZGlvOmZhbHNlLCB2aWRlbzp0cnVlfTsKK25hdmlnYXRvci53ZWJraXRH
ZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7CisgICAgdGVzdEZhaWxlZCgn
U3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgIGZpbmlzaEpTVGVz
dCgpOworfSwgZnVuY3Rpb24oZSkgeworICAgIGVycm9yID0gZTsKKyAgICBzaG91bGRCZSgnZXJy
b3IuY29kZScsICdlcnJvci5QRVJNSVNTSU9OX0RFTklFRCcpOworICAgIGZpbmlzaEpTVGVzdCgp
OworfSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjgyMjNlYmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVz
dHMgVXNlck1lZGlhIHN1Y2Nlc3MgY2FsbGJhY2sgdXNpbmcgdGhlIG1vY2sgc2VydmljZS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3Vj
Y2Vzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjZjFmMjYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRt
bApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBVc2VyTWVkaWEgc3VjY2Vz
cyBjYWxsYmFjayB1c2luZyB0aGUgbW9jayBzZXJ2aWNlLiIpOword2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRV
c2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworZWxzZQorICAgIGRlYnVnKCdUaGlzIHRlc3QgY2Fu
IG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lcicpOworCit2YXIgb3B0aW9ucyA9IHth
dWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9OworbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShv
cHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZ1bmN0
aW9uKGUpIHsKKyAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0
ZWRseScpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3Ry
ZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTA1ZGI5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTEgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyNDogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBF
eGNlcHRpb24gOTogVGhlIGltcGxlbWVudGF0aW9uIGRpZCBub3Qgc3VwcG9ydCB0aGUgcmVxdWVz
dGVkIHR5cGUgb2Ygb2JqZWN0IG9yIG9wZXJhdGlvbi4KK1Rlc3RzIHRoYXQgd2hlbiBhIGdldFVz
ZXJNZWRpYSByZXF1ZXN0IGlzIG1hZGUgYWZ0ZXIgaXRzIGZyYW1lIGhhcyBiZWVuIGRpc2Nvbm5l
Y3RlZCwgbm8gY2FsbGJhY2tzIGFyZSBtYWRlIGFuZCBubyBjcmFzaCBvY2N1cnMuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCit3ZWJraXRHZXRVc2VyTWVkaWEgY2FsbGVkIG9uIG9i
amVjdCB3aXRoIGRpc2Nvbm5lY3RlZCBGcmFtZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZy
YW1lLWFscmVhZHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYmVk
OTAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbApAQCAtMCwwICsxLDQ0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdoZW4gYSBnZXRVc2VyTWVkaWEgcmVx
dWVzdCBpcyBtYWRlIGFmdGVyIGl0cyBmcmFtZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIG5vIGNh
bGxiYWNrcyBhcmUgbWFkZSBhbmQgbm8gY3Jhc2ggb2NjdXJzLiIpOword2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5z
ZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworCitmdW5jdGlvbiBvbkZpcnN0SWZyYW1lTG9h
ZGVkKCkgeworICAgIGlmcmFtZU5hdmlnYXRvciA9IGlmcmFtZS5jb250ZW50V2luZG93Lm5hdmln
YXRvcjsKKyAgICBpZnJhbWUuc3JjID0gJ3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtYWxy
ZWFkeS1pbm5lcjIuaHRtbCc7Cit9CisKK3ZhciBlcnJvcjsKK3ZhciBvcHRpb25zID0ge2F1ZGlv
OiB0cnVlLCB2aWRlbzogdHJ1ZX07CitmdW5jdGlvbiBvblNlY29uZElmcmFtZUxvYWRlZCgpIHsK
KyAgICBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEwMCk7CisKKyAgICBpZnJhbWVOYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgeworICAgICAgICB0
ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0sIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdGVzdEZh
aWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAg
ZGVidWcoJ3dlYmtpdEdldFVzZXJNZWRpYSBjYWxsZWQgb24gb2JqZWN0IHdpdGggZGlzY29ubmVj
dGVkIEZyYW1lLicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit2YXIgaWZyYW1lID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CitpZnJhbWUuc3JjID0gJ3Jlc291cmNlcy9k
aXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1pbm5lcjEuaHRtbCc7Citkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGlmcmFtZSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nv
bm5lY3RlZC1mcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmYjc4YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEt
LWZyYW1lMC0tPi0tPiIgLSBoYXMgMSBvbnVubG9hZCBoYW5kbGVyKHMpCitUZXN0cyB0aGF0IHdo
ZW4gYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBVc2VyTWVkaWEgb2JqZWN0IGFuZCBpdHMgRnJhbWUg
aXMgZGlzY29ubmVjdGVkIGJlZm9yZSBhIGNhbGxiYWNrIGlzIG1hZGUsIHRoZSBlcnJvciBjYWxs
YmFjayBpcyBpbnZva2VkIHdpdGggdGhlIGNvcnJlY3QgZXJyb3IgbWVzc2FnZS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgTm8gY2FsbGJhY2tzIGludm9rZWQKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQt
ZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVu
aWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzI0
NjMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEzIEBACitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4t
LT4iIC0gaGFzIDEgb251bmxvYWQgaGFuZGxlcihzKQorVGVzdHMgdGhhdCB3aGVuIGEgZ2V0VXNl
ck1lZGlhIHJlcXVlc3QgaXMgbWFkZSwgcGVybWlzc2lvbiBpcyBkZW5pZWQgYW5kIGl0cyBGcmFt
ZSBpcyBkaXNjb25uZWN0ZWQgYmVmb3JlIGEgY2FsbGJhY2sgaXMgbWFkZSwgdGhlIGVycm9yIGNh
bGxiYWNrIGlzIGludm9rZWQgd2l0aCBQRVJNSVNTSU9OX0RFTklFRC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXJyb3IuY29kZSBpcyBlcnJvci5QRVJNSVNTSU9OX0RF
TklFRAorCitQQVNTIE5vIGNhbGxiYWNrcyBpbnZva2VkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24t
ZGVuaWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9k
aXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi43ZDE5NzkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1p
c3Npb24tZGVuaWVkLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCB3aGVuIGEgZ2V0VXNlck1lZGlhIHJlcXVlc3QgaXMgbWFkZSwgcGVybWlzc2lv
biBpcyBkZW5pZWQgYW5kIGl0cyBGcmFtZSBpcyBkaXNjb25uZWN0ZWQgYmVmb3JlIGEgY2FsbGJh
Y2sgaXMgbWFkZSwgdGhlIGVycm9yIGNhbGxiYWNrIGlzIGludm9rZWQgd2l0aCBQRVJNSVNTSU9O
X0RFTklFRC4iKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbihmYWxzZSk7
CitlbHNlCisgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0
ZXN0UnVubmVyJyk7CisKK3ZhciBlcnJvcjsKK3ZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2
aWRlbzogdHJ1ZX07CitmdW5jdGlvbiBvbklmcmFtZUxvYWRlZCgpIHsKKyAgICBpZnJhbWVOYXZp
Z2F0b3IgPSBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3I7CisgICAgaWZyYW1lTmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKKyAgICAg
ICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwor
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9LCBmdW5jdGlvbihlKSB7CisgICAgICAgIGVy
cm9yID0gZTsKKyAgICAgICAgc2hvdWxkQmUoJ2Vycm9yLmNvZGUnLCAnZXJyb3IuUEVSTUlTU0lP
Tl9ERU5JRUQnKTsKKyAgICAgICAgZGVidWcoJycpOworICAgICAgICBpZnJhbWUuc3JjID0gJ2Rh
dGE6dGV4dC9odG1sLFRoaXMgZnJhbWUgc2hvdWxkIGJlIHZpc2libGUgd2hlbiB0aGUgdGVzdCBj
b21wbGV0ZXMnOworICAgIH0pOworfQorCitmdW5jdGlvbiBvbklmcmFtZVVubG9hZGVkKCkgewor
ICAgIC8vIE1ha2UgYW5vdGhlciByZXF1ZXN0LCB3aXRoIHBlcm1pc3Npb24gYWxyZWFkeSBkZW5p
ZWQuCisgICAgaWZyYW1lTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5j
dGlvbihzdHJlYW0pIHsKKyAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZv
a2VkIHVuZXhwZWN0ZWRseScpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9LCBmdW5j
dGlvbihlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5l
eHBlY3RlZGx5Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIHRlc3RQYXNzZWQoJ05vIGNhbGxiYWNrcyBpbnZv
a2VkJyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0sIDEwMCk7Cit9CisKK3ZhciBp
ZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKK2lmcmFtZS5zcmMgPSAn
cmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sJzsKK2RvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoaWZyYW1lKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9k
aXNjb25uZWN0ZWQtZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmFlYzFjMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbApAQCAtMCww
ICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdoZW4gYSByZXF1ZXN0IGlzIG1h
ZGUgb24gYSBVc2VyTWVkaWEgb2JqZWN0IGFuZCBpdHMgRnJhbWUgaXMgZGlzY29ubmVjdGVkIGJl
Zm9yZSBhIGNhbGxiYWNrIGlzIG1hZGUsIHRoZSBlcnJvciBjYWxsYmFjayBpcyBpbnZva2VkIHdp
dGggdGhlIGNvcnJlY3QgZXJyb3IgbWVzc2FnZS4iKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0VXNlck1l
ZGlhUGVybWlzc2lvbih0cnVlKTsKKworZnVuY3Rpb24gb25JZnJhbWVMb2FkZWQoKSB7CisgICAg
aWZyYW1lTmF2aWdhdG9yID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yOworICAgIGlm
cmFtZS5zcmMgPSAnZGF0YTp0ZXh0L2h0bWwsVGhpcyBmcmFtZSBzaG91bGQgYmUgdmlzaWJsZSB3
aGVuIHRoZSB0ZXN0IGNvbXBsZXRlcyc7Cit9CisKK2Z1bmN0aW9uIG9uSWZyYW1lVW5sb2FkZWQo
KSB7CisgICAgdmFyIG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfTsKKyAgICBp
ZnJhbWVOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uIChzdHJl
YW0pIHsKKyAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhw
ZWN0ZWRseScpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9LCBmdW5jdGlvbihlKSB7
CisgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5
Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworCisgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgnTm8gY2FsbGJhY2tzIGludm9rZWQnKTsK
KyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgMTAwKTsKK30KKwordmFyIGlmcmFtZSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworaWZyYW1lLnNyYyA9ICdyZXNvdXJj
ZXMvZGlzY29ubmVjdGVkLWZyYW1lLWlubmVyLmh0bWwnOworZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChpZnJhbWUpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9kaXNj
b25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1pbm5lcjEuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFk
eS1pbm5lcjEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZGNhMzUw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMS5odG1sCkBA
IC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgIDwvaGVh
ZD4KKyAgPGJvZHkgb25sb2FkPSJ3aW5kb3cucGFyZW50Lm9uRmlyc3RJZnJhbWVMb2FkZWQoKSI+
CisgICAgPHA+VGhpcyBmcmFtZSBzaG91bGQgYmUgcmVwbGFjZWQgYmVmb3JlIHRoZSB0ZXN0IGVu
ZHM8L3A+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtYWxy
ZWFkeS1pbm5lcjIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3Ry
ZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1pbm5lcjIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZThkZTk3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rp
c2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWlubmVyMi5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgb25sb2Fk
PSJ3aW5kb3cucGFyZW50Lm9uU2Vjb25kSWZyYW1lTG9hZGVkKCkiPgorICAgIDxwPlRoaXMgZnJh
bWUgc2hvdWxkIGJlIHZpc2libGUgd2hlbiB0aGUgdGVzdCBjb21wbGV0ZXM8L3A+CisgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc3RyZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtaW5uZXIuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9kaXNjb25uZWN0
ZWQtZnJhbWUtaW5uZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
MDg2MjgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sCkBAIC0w
LDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgIDwvaGVhZD4K
KyAgPGJvZHkgb25sb2FkPSJ3aW5kb3cucGFyZW50Lm9uSWZyYW1lTG9hZGVkKCkiIG9udW5sb2Fk
PSJ3aW5kb3cucGFyZW50Lm9uSWZyYW1lVW5sb2FkZWQoKTsiPgorICAgIDxwPlRoaXMgZnJhbWUg
c2hvdWxkIGJlIHJlcGxhY2VkIGJlZm9yZSB0aGUgdGVzdCBlbmRzPC9wPgorICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQx
MDE2OGYuLmJkZmQ0MTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zCkBAIC0yOTEsNyArMjkxLDQzIEBAIHdlYmtpdC5vcmcvYi84NTIxMSBpZXRlc3RjZW50ZXIv
Y3NzMy9mbGV4Ym94L2ZsZXhib3gtYWxpZ24tc3RyZXRjaC0wMDEuaHRtIFsgSW1hCiB3ZWJraXQu
b3JnL2IvODUyMTIgaWV0ZXN0Y2VudGVyL2NzczMvZmxleGJveC9mbGV4Ym94LWxheW91dC0wMDIu
aHRtIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKICMgTWVkaWFzdHJlYW0gaW1wbGVtZW50YXRpb24g
aXMgbm90IGNvbXBsZXRlIHlldC4KLXdlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFt
IFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9hcmd1bWVudC10
eXBlcy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9n
ZXR1c2VybWVkaWEuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0tYWRkLWVuZGVkLXRyYWNrcy5odG1sIFsgU2tpcCBdCit3ZWJraXQu
b3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNr
cy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS1hZGQtdHJhY2tzLXRvLWluYWN0aXZlLXN0cmVhbS5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1jbG9uZS5odG1sIFsg
U2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNv
bnN0cnVjdG9yLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtLWNvbnN0cnVjdC13aXRoLWVuZGVkLXRyYWNrcy5odG1sIFsgU2tpcCBd
Cit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1nZXRUcmFj
a3MuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0tTWVkaWFFbGVtZW50LXNyY09iamVjdC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3Jn
L2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQtY29uc3RydWN0
b3IuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay1nZXRTb3VyY2VzLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIw
MyBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1vbmVuZGVkLmh0
bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL25vLWludGVy
ZmFjZS1vYmplY3QuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFz
dHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBm
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLUFkZFJlbW92ZVN0cmVhbS5odG1sIFsg
U2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi1jcmVhdGVBbnN3ZXIuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbCBbIFNraXAgXQor
d2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZGF0
YWNoYW5uZWwuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24tZHRtZi5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzky
MDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1ldmVudHMuaHRtbCBbIFNraXAg
XQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24t
Z2V0Q29uZmlndXJhdGlvbi5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1oYXZlLWxvY2FsLW9mZmVyLmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LWhhdmUtbG9jYWwtcHJhbnN3ZXIuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taGF2ZS1yZW1vdGUtb2ZmZXIuaHRtbCBb
IFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24taGF2ZS1yZW1vdGUtcHJhbnN3ZXIuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5
MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaHRtbCBbIFNraXAgXQord2Vi
a2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlLmh0
bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLWxvY2FsRGVzY3JpcHRpb24uaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5
MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRl
ZC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1yZW1vdGVEZXNjcmlwdGlvbi5odG1sIFsgU2tpcCBdCit3ZWJraXQub3Jn
L2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGFibGUuaHRtbCBb
IFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24tc3RhdGUuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9i
Lzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHNTZWxlY3Rvci5o
dG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb24uaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvZXZl
bnRzL2NvbnN0cnVjdG9ycy9tZWRpYS1zdHJlYW0tZXZlbnQtY29uc3RydWN0b3IuaHRtbCBbIFNr
aXAgXQogd2Via2l0Lm9yZy9iLzc5MjAzIHdlYmF1ZGlvL21lZGlhc3RyZWFtYXVkaW9kZXN0aW5h
dGlvbm5vZGUuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzc5MjAzIHdlYmF1ZGlvL21lZGlh
c3RyZWFtYXVkaW9zb3VyY2Vub2RlLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODUyNWNjZC4uMTM2MGM0ZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1Nyw2ICsxNTcsNyBAQCBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRUeXBlT3B0aW9ucwogIyBNZWRpYSBTdHJlYW0gQVBJIGlz
IG5vdCB5ZXQgZW5hYmxlZC4KIGZhc3QvbWVkaWFzdHJlYW0KIGZhc3QvZXZlbnRzL2NvbnN0cnVj
dG9ycy9tZWRpYS1zdHJlYW0tZXZlbnQtY29uc3RydWN0b3IuaHRtbAoraHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zdHJlYW0KIAogIyBBc3NlcnRzIGluIGRlYnVnLgogWyBEZWJ1ZyBdIGZhc3QvaW1h
Z2VzL2xhcmdlLXNpemUtaW1hZ2UtY3Jhc2guaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVi
YWIzODMuLjcxNTIxZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxNC0wOS0wMSAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dLMl0g
VXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBv
dWxhaW4uCisKKyAgICAgICAgQWRkZWQgZG9jdW1lbnQgYW5kIGZyYW1lIGFjY2Vzc29ycywgbmVl
ZGVkIGJ5IHRoZQorICAgICAgICBVc2VyTWVkaWFSZXF1ZXN0TWFuYWdlciBvZiB0aGUgV2ViUHJv
Y2Vzcy4gQWxzbyBhZGRlZCB0d28gbWV0aG9kcworICAgICAgICB1c2VkIGJ5IHRoZSBwZXJtaXNz
aW9uIHJlcXVlc3QgbWFuYWdlciB0byBrbm93IGlmIGFjY2VzcyB0byBhdWRpbworICAgICAgICBv
ciB2aWRlbyBkZXZpY2VzIGlzIHJlcXVlc3RlZC4KKworICAgICAgICBUZXN0czogZmFzdC9tZWRp
YXN0cmVhbS9lcnJvci5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhc3RyZWFtL3N1Y2Nl
c3MuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Np
b24tYWxsb3dlZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQt
cGVybWlzc2lvbi1kZW5pZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1p
c3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlh
UmVxdWVzdDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6
ZnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5o
OgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6cmVxdWlyZXNBdWRpbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpyZXF1aXJlc1ZpZGVvKToKKwogMjAx
NC0xMS0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIExhemls
eSBjcmVhdGUgSFRNTElucHV0RWxlbWVudCdzIGlucHV0VHlwZSBhbmQgc2hhZG93IHN1YnRyZWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNs
aWVudC5oCmluZGV4IGM4OTk1YjkuLjUxZDYwY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaApAQCAtNDQsOCArNDQsOCBA
QCBjbGFzcyBVc2VyTWVkaWFDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWdl
RGVzdHJveWVkKCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFBh
c3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2Vs
UmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0KikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
UGVybWlzc2lvbihQYXNzUmVmPFVzZXJNZWRpYVJlcXVlc3Q+KSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGNhbmNlbFJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCYpID0gMDsKIAogcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgflVzZXJNZWRpYUNsaWVudCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaAppbmRleCA3
MDNmZjQwLi5hNjJhZDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaApAQCAtMzksOCArMzksOCBAQCBwdWJs
aWM6CiAgICAgflVzZXJNZWRpYUNvbnRyb2xsZXIoKTsKIAogICAgIFVzZXJNZWRpYUNsaWVudCog
Y2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KLSAgICB2b2lkIHJlcXVlc3RQZXJt
aXNzaW9uKFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4pOwotICAgIHZvaWQgY2FuY2VsUmVx
dWVzdChVc2VyTWVkaWFSZXF1ZXN0Kik7CisgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihQYXNz
UmVmPFVzZXJNZWRpYVJlcXVlc3Q+KTsKKyAgICB2b2lkIGNhbmNlbFJlcXVlc3QoVXNlck1lZGlh
UmVxdWVzdCYpOwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAg
ICAgc3RhdGljIFVzZXJNZWRpYUNvbnRyb2xsZXIqIGZyb20oUGFnZSogcGFnZSkgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8VXNlck1lZGlhQ29udHJvbGxlcio+KFN1cHBsZW1lbnQ8UGFnZT46OmZyb20o
cGFnZSwgc3VwcGxlbWVudE5hbWUoKSkpOyB9CkBAIC00OSwxMiArNDksMTIgQEAgcHJpdmF0ZToK
ICAgICBVc2VyTWVkaWFDbGllbnQqIG1fY2xpZW50OwogfTsKIAotaW5saW5lIHZvaWQgVXNlck1l
ZGlhQ29udHJvbGxlcjo6cmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1
ZXN0PiByZXF1ZXN0KQoraW5saW5lIHZvaWQgVXNlck1lZGlhQ29udHJvbGxlcjo6cmVxdWVzdFBl
cm1pc3Npb24oUGFzc1JlZjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0KQogewotICAgIG1fY2xp
ZW50LT5yZXF1ZXN0UGVybWlzc2lvbihyZXF1ZXN0KTsKKyAgICBtX2NsaWVudC0+cmVxdWVzdFBl
cm1pc3Npb24oV1RGOjptb3ZlKHJlcXVlc3QpKTsKIH0KIAotaW5saW5lIHZvaWQgVXNlck1lZGlh
Q29udHJvbGxlcjo6Y2FuY2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0KiByZXF1ZXN0KQoraW5s
aW5lIHZvaWQgVXNlck1lZGlhQ29udHJvbGxlcjo6Y2FuY2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1
ZXN0JiByZXF1ZXN0KQogewogICAgIG1fY2xpZW50LT5jYW5jZWxSZXF1ZXN0KHJlcXVlc3QpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1l
ZGlhUmVxdWVzdC5jcHAKaW5kZXggM2QyMDYxOC4uY2JkNmZiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBA
IC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiTWVkaWFDb25zdHJhaW50c0ltcGwuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5o
IgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2VudGVyLmgiCkBAIC0xMjMsNyArMTI0LDcgQEAgdm9p
ZCBVc2VyTWVkaWFSZXF1ZXN0Ojpjb25zdHJhaW50c1ZhbGlkYXRlZCgpCiAgICAgY2FsbE9uTWFp
blRocmVhZChbcHJvdGVjdGVkVGhpc10gewogICAgICAgICAvLyAyIC0gVGhlIGNvbnN0cmFpbnRz
IGFyZSB2YWxpZCwgYXNrIHRoZSB1c2VyIGZvciBhY2Nlc3MgdG8gbWVkaWEuCiAgICAgICAgIGlm
IChVc2VyTWVkaWFDb250cm9sbGVyKiBjb250cm9sbGVyID0gcHJvdGVjdGVkVGhpcy0+bV9jb250
cm9sbGVyKQotICAgICAgICAgICAgY29udHJvbGxlci0+cmVxdWVzdFBlcm1pc3Npb24ocHJvdGVj
dGVkVGhpcy5nZXQoKSk7CisgICAgICAgICAgICBjb250cm9sbGVyLT5yZXF1ZXN0UGVybWlzc2lv
bigqcHJvdGVjdGVkVGhpcy5nZXQoKSk7CiAgICAgfSk7CiB9CiAKQEAgLTIwMSw3ICsyMDIsNyBA
QCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnRleHREZXN0cm95ZWQoKQogICAgIFJlZjxVc2Vy
TWVkaWFSZXF1ZXN0PiBwcm90ZWN0KCp0aGlzKTsKIAogICAgIGlmIChtX2NvbnRyb2xsZXIpIHsK
LSAgICAgICAgbV9jb250cm9sbGVyLT5jYW5jZWxSZXF1ZXN0KHRoaXMpOworICAgICAgICBtX2Nv
bnRyb2xsZXItPmNhbmNlbFJlcXVlc3QoKnRoaXMpOwogICAgICAgICBtX2NvbnRyb2xsZXIgPSAw
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCBhMDRlZjA2Li5hNmI0YzM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApA
QCAtNDgsNiArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERpY3Rpb25hcnk7
CiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEZyYW1lOwogY2xhc3MgTWVkaWFDb25zdHJhaW50czsK
IGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKIGNsYXNzIFVzZXJNZWRpYUNvbnRyb2xsZXI7CkBA
IC02Niw2ICs2Nyw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVzZXJNZWRp
YUFjY2Vzc0dyYW50ZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVzZXJNZWRpYUFjY2Vz
c0RlbmllZCgpOwogCisgICAgYm9vbCByZXF1aXJlc0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9h
dWRpb0NvbnN0cmFpbnRzOyB9CisgICAgYm9vbCByZXF1aXJlc1ZpZGVvKCkgY29uc3QgeyByZXR1
cm4gbV92aWRlb0NvbnN0cmFpbnRzOyB9CisKIHByaXZhdGU6CiAgICAgVXNlck1lZGlhUmVxdWVz
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVXNlck1lZGlhQ29udHJvbGxlciosIFBhc3NSZWZQ
dHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxNZWRpYUNv
bnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRp
YVN1Y2Nlc3NDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxs
YmFjaz4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJN
ZWRpYUNsaWVudE1vY2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlh
Q2xpZW50TW9jay5oCmluZGV4IGNmYTI0Y2UuLjkyN2FjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oCkBAIC0zNiw4ICszNiw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVXNlck1lZGlhQ2xpZW50UmVxdWVzdE5v
dGlmaWVyIDogcHVibGljIE1vY2tOb3RpZmllciB7CiBwdWJsaWM6Ci0gICAgVXNlck1lZGlhQ2xp
ZW50UmVxdWVzdE5vdGlmaWVyKFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCwg
Ym9vbCByZXF1ZXN0U3VjY2VzcykKLSAgICAgICAgOiBtX3JlcXVlc3QocmVxdWVzdCkKKyAgICBV
c2VyTWVkaWFDbGllbnRSZXF1ZXN0Tm90aWZpZXIoUGFzc1JlZjxVc2VyTWVkaWFSZXF1ZXN0PiBy
ZXF1ZXN0LCBib29sIHJlcXVlc3RTdWNjZXNzKQorICAgICAgICA6IG1fcmVxdWVzdChXVEY6Om1v
dmUocmVxdWVzdCkpCiAgICAgICAgICwgbV9yZXF1ZXN0U3VjY2VzcyhyZXF1ZXN0U3VjY2VzcykK
ICAgICB7CiAgICAgfQpAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRl
OgotICAgIFJlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBtX3JlcXVlc3Q7CisgICAgUmVmPFVzZXJN
ZWRpYVJlcXVlc3Q+IG1fcmVxdWVzdDsKICAgICBib29sIG1fcmVxdWVzdFN1Y2Nlc3M7CiB9Owog
CkBAIC02MCwxMyArNjAsMTMgQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgcGFnZURlc3Ryb3llZCgpIG92ZXJyaWRlIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCkgb3ZlcnJp
ZGUKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZjxVc2VyTWVkaWFS
ZXF1ZXN0PiByZXF1ZXN0KSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgUmVmUHRyPFVzZXJNZWRp
YUNsaWVudFJlcXVlc3ROb3RpZmllcj4gbm90aWZpZXIgPSBhZG9wdFJlZihuZXcgVXNlck1lZGlh
Q2xpZW50UmVxdWVzdE5vdGlmaWVyKHJlcXVlc3QsIHRydWUpKTsKKyAgICAgICAgUmVmUHRyPFVz
ZXJNZWRpYUNsaWVudFJlcXVlc3ROb3RpZmllcj4gbm90aWZpZXIgPSBhZG9wdFJlZihuZXcgVXNl
ck1lZGlhQ2xpZW50UmVxdWVzdE5vdGlmaWVyKFdURjo6bW92ZShyZXF1ZXN0KSwgdHJ1ZSkpOwog
ICAgICAgICBtX3RpbWVyRXZlbnRzLmFwcGVuZChhZG9wdFJlZihuZXcgVGltZXJFdmVudCh0aGlz
LCBub3RpZmllcikpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdChV
c2VyTWVkaWFSZXF1ZXN0KiByZXF1ZXN0KSBvdmVycmlkZQorICAgIHZpcnR1YWwgdm9pZCBjYW5j
ZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3QpIG92ZXJyaWRlCiAgICAgewogICAg
ICAgICBSZWZQdHI8VXNlck1lZGlhQ2xpZW50UmVxdWVzdE5vdGlmaWVyPiBub3RpZmllciA9IGFk
b3B0UmVmKG5ldyBVc2VyTWVkaWFDbGllbnRSZXF1ZXN0Tm90aWZpZXIocmVxdWVzdCwgZmFsc2Up
KTsKICAgICAgICAgbV90aW1lckV2ZW50cy5hcHBlbmQoYWRvcHRSZWYobmV3IFRpbWVyRXZlbnQo
dGhpcywgbm90aWZpZXIpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IDQyZmUzZmYuLmRlMGI1
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC00OSw2ICs0OSw3IEBAIHNldChXZWJLaXQyX0lO
Q0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9ET00iCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTGF1bmNoaW5nIgog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUiCisgICAgIiR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0iCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvTmV0d29yayIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL09yaWdpbkRhdGEiCkBAIC0zMDAs
NiArMzAxLDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9SZXNwb25zaXZl
bmVzc1RpbWVyLmNwcAogICAgIFVJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKICAgICBV
SVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcAorICAgIFVJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtQ
cm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcApAQCAtMzg4LDYgKzM5
MSw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJj
ZUNhY2hlTWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uU3RhdGVSZWYu
Y3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIuY3BwCisgICAgVUlQcm9jZXNz
L0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLVmlicmF0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmli
dXRlcy5jcHAKIApAQCAtNDg0LDYgKzQ4OCw4IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKIAogICAg
IFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5jcHAKIAorICAgIFdl
YlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNw
cAorCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAK
ICAgICBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAogICAg
IFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTUzNSw2ICs1NDEs
NyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQb3B1cE1lbnUuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVz
c1RyYWNrZXJDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFy
Y2hQb3B1cE1lbnUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVk
aWFDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25D
bGllbnQuY3BwCiAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggMGNjZDc0MC4uNTVmODM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisy
MDE0LTA5LTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbV0syXSBVc2VyTWVkaWFDbGllbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QmVuamFtaW4gUG91bGFpbi4KKworICAgICAgICBTdXBwb3J0IGZvciBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCBpbiBXZWJLaXQyLiBJdCdzCisgICAgICAgIGltcGxlbWVudGVkIHNpbWlsYXJp
bHkgdG8gdGhlIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QKKyAgICAgICAgc3VwcG9ydC4g
V2hlbiB0aGUgV2ViUGFnZSByZXF1aXJlcyB0aGlzIHBlcm1pc3Npb24gaXQgc2VuZHMgYQorICAg
ICAgICBtZXNzYWdlIHRvIHRoZSBVSSBwcm9jZXNzIHdoaWNoIGF0IHNvbWUgcG9pbnQgZ3JhbnRz
IG9yIGRlbmllcyB0aGUKKyAgICAgICAgcGVybWlzc2lvbiBhbmQgc2VuZHMgdGhlIHJlc3VsdCBi
YWNrIHRvIHRoZSBXZWJQcm9jZXNzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEdlbmVy
aWMgQ01ha2Ugc3VwcG9ydCBmb3IgbmV3IGZpbGVzLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S0Jhc2UuaDogTmV3IHR5cGUgZm9yIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LgorICAgICAg
ICAqIFNoYXJlZC9BUElPYmplY3QuaDogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oOiBQZXJtaXNzaW9uUmVxdWVzdCBBUEkgbWFwcGluZy4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6IE5ldyBkZWNpZGVQb2xpY3kgaGFuZGxlciBmb3Ig
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuCisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHA6IERpdHRvLgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xp
ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaDogV0tQYWdl
VUlDbGllbnQgdmVyc2lvbiBidW1wIHRvCisgICAgICAgIDUsIGluY2x1ZGluZyB0aGUgbmV3IGRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0IG1lbWJlci4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHA6IEFkZGVk
LCBDIEFQSQorICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuCisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlE
KToKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAg
IChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHA6IEFkZGVkLCBwcm94eQor
ICAgICAgICBvYmplY3QgZm9yIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFR5cGUuCisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6bWVkaWFQYXJhbWV0ZXJzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOiBEZWZlcgorICAgICAgICBV
c2VyUGVybWlzc2lvblJlcXVlc3QgdG8gdGhlIFVJQ2xpZW50LgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOiBOZXcgbWVzc2FnZSB0byBoYW5kbGUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Rz
LgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHA6IEFkZGVkLAorICAgICAgICBXZWJQcm9jZXNzIHNpZGUgb2YgdGhlIFVzZXJSZXF1ZXN0
TWFuYWdlciwga2VlcGluZyB0cmFjayBvZiBlYWNoCisgICAgICAgIHBlcm1pc3Npb24gcmVxdWVz
dC4KKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVSZXF1ZXN0SUQpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjYW5jZWxSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVy
bWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHA6IEFkZGVkLAorICAgICAg
ICBXZWJQcm9jZXNzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBXZWJDb3JlOjpVc2VyTWVkaWFDbGll
bnQuCisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6V2ViVXNlck1lZGlhQ2xp
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsUmVxdWVzdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
aDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKTogQ3JlYXRlIHRoZQorICAgICAgICBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgYW5kIHJlZ2lzdGVyIHRoZSBVc2VyTWVkaWFD
bGllbnQKKyAgICAgICAgdG8gdGhlIHBhZ2UuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRp
ZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOiBEaXNwYXRjaAorICAgICAgICBk
ZWNpc2lvbiB0byBtYW5hZ2VyLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW46IE5ldyBNZXNzYWdlIHRvIGhhbmRsZQorICAgICAgICBwZXJtaXNzaW9uIGRlY2lzaW9uIHJl
c3VsdCBmcm9tIHRoZSBVSSBwcm9jZXNzLgorCiAyMDE0LTExLTEwICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBwb3NzaWJsZSBjcmFzaCB3aGVu
IGNsb3NpbmcgdGhlIHdlYiBpbnNwZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2Uu
aAppbmRleCA4ZDFlOTY1Li4xMWVjNTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oCkBAIC0xMjcsNiArMTI3LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90
ZWN0aW9uU3BhY2UqIFdLUHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tUZXh0Q2hlY2tlciogV0tUZXh0Q2hlY2tlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLU2Vzc2lvbiogV0tTZXNzaW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tTZXNzaW9uU3RhdGUqIFdLU2Vzc2lvblN0YXRlUmVmOwordHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCogV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlicmF0aW9u
KiBXS1ZpYnJhdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlld3BvcnRB
dHRyaWJ1dGVzKiBXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9i
amVjdC5oCmluZGV4IDkyMmU2ZGEuLmQ0OTY2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmgKQEAgLTEzMiw2ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIFByZWZlcmVuY2VzLAogICAg
ICAgICBTZXNzaW9uLAogICAgICAgICBUZXh0Q2hlY2tlciwKKyAgICAgICAgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QsCiAgICAgICAgIFZpYnJhdGlvbiwKICAgICAgICAgVmlld3BvcnRBdHRy
aWJ1dGVzLAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJ
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5k
ZXggYjc4OGQ5Mi4uNmFhZGI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJ
VUlDbGllbnQuaApAQCAtNTAsNiArNTAsNyBAQCBjbGFzcyBJbW11dGFibGVEaWN0aW9uYXJ5Owog
Y2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQ7
CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKK2NsYXNzIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHk7CiBjbGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3MgV2ViT3BlblBhbmVsUGFyYW1ldGVy
czsKQEAgLTEyMiw2ICsxMjMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgcnVuT3Bl
blBhbmVsKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgV2Vi
S2l0OjpXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViS2l0OjpXZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lclByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgZGVjaWRl
UG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94
eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4qLCBX
ZWJLaXQ6Okdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eSopIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgV2Vi
S2l0OjpXZWJTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGRlY2lkZVBvbGlj
eUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5Kiwg
V2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiosIFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QqKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gUHJpbnRpbmcuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggODAyMjFhOS4uNWY0NGE2
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtNjMs
NiArNjMsNyBAQCBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXI7CiBjbGFzcyBE
b3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5Owog
Y2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CitjbGFzcyBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW07CkBAIC0xNDYsNiArMTQ3LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVuZGVyTGF5ZXJS
ZWYsIFdlYlJlbmRlckxheWVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVuZGVyT2JqZWN0UmVm
LCBXZWJSZW5kZXJPYmplY3QpCiBXS19BRERfQVBJX01BUFBJTkcoV0tTZXNzaW9uU3RhdGVSZWYs
IEFQSTo6U2Vzc2lvblN0YXRlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVGV4dENoZWNrZXJSZWYs
IFdlYlRleHRDaGVja2VyKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RSZWYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tWaWJyYXRpb25SZWYsIFdlYlZpYnJhdGlvblByb3h5KQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmLCBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMpCiBX
S19BRERfQVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYsIFdlYkluc3BlY3RvclByb3h5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAzNTIxN2U4Li5kNzM5
NDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtNzQs
NyArNzQsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlUG9saWN5Q2xp
ZW50QmFzZT4gewogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZVVJ
Q2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBX
S1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1Bh
Z2VVSUNsaWVudFY0PiBWZXJzaW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlD
bGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwgV0tQYWdlVUlDbGll
bnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRWNT4gVmVyc2lvbnM7CiB9Owog
CiB9CkBAIC0xNDk5LDYgKzE0OTksMTUgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQ
YWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKKyAgICAgICAgdmlydHVhbCBib29sIGRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFn
ZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBvdmVycmlkZQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSSgmb3JpZ2luKSwgdG9BUEko
JnBlcm1pc3Npb25SZXF1ZXN0KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKICAgICAgICAgdmlydHVhbCBib29sIGRlY2lk
ZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFn
ZSwgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QqIHBlcm1pc3Npb25SZXF1ZXN0KSBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBp
ZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaApp
bmRleCBiYzllZWM3Li43MmMxNTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlVUlDbGllbnQuaApAQCAtOTAsNiArOTAsNyBAQCB0eXBlZGVmIHZvaWQgKCpX
S1BhZ2VEaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxsYmFjaykoV0tQ
YWdlUmVmCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRSZWNvZ25pemVMb25nTW91c2VQcmVzc0Nh
bGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZENhbmNlbFRyYWNraW5nUG90ZW50
aWFsTG9uZ01vdXNlUHJlc3NDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLVHlwZVJlZiB1c2Vy
RGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VJc1Bs
YXlpbmdBdWRpb0RpZENoYW5nZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiAv
LyBEZXByZWNhdGVkICAgIAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdl
Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlv
bmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3Vz
ZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0zNzgsNiAr
Mzc5LDc0IEBAIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjQgewogICAgIFdLUGFnZUlz
UGxheWluZ0F1ZGlvRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2U7CiB9IFdLUGFnZVVJQ2xpZW50VjQ7CiAKK3R5cGVk
ZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjUgeworICAgIFdLUGFnZVVJQ2xpZW50QmFzZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAg
IC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMDsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdlOworICAgIFdLUGFnZVVJQ2xpZW50
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xv
c2U7CisgICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0YWtlRm9jdXM7CisgICAgV0tQYWdlRm9jdXNDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czsKKyAg
ICBXS1BhZ2VVbmZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuZm9jdXM7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7
CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmlybTsKKyAgICBXS1BhZ2VSdW5KYXZh
U2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNUZXh0OworICAgIFdL
UGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MCAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsK
KyAgICBXS1BhZ2VNaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRG
b3JVc2VXaXRoVjAgICAgIG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjA7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlFdmVudDsKKyAgICBXS1Bh
Z2VEaWROb3RIYW5kbGVXaGVlbEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0VG9vbGJhcnNBcmVW
aXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0Fy
ZVZpc2libGU7CisgICAgV0tQYWdlU2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUb29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQ
YWdlR2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldE1lbnVCYXJJc1Zpc2libGVD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudUJhcklzVmlz
aWJsZTsKKyAgICBXS1BhZ2VHZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRT
dGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNldFN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6YWJsZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVzaXphYmxlOworICAg
IFdLUGFnZVNldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2V0SXNSZXNpemFibGU7CisgICAgV0tQYWdlR2V0V2luZG93RnJhbWVDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRXaW5kb3dGcmFt
ZTsKKyAgICBXS1BhZ2VTZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRHJhdzsKKyAgICBXS1Bh
Z2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhZ2VEaWRTY3JvbGw7CisgICAgV0tQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlZWRlZERhdGFiYXNlUXVv
dGE7CisgICAgV0tQYWdlUnVuT3BlblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5PcGVuUGFuZWw7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5
Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICBkZWNpZGVQ
b2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZUhlYWRlckhl
aWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVh
ZGVySGVpZ2h0OworICAgIFdLUGFnZUZvb3RlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9vdGVySGVpZ2h0OworICAgIFdLUGFnZURyYXdI
ZWFkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZHJhd0hlYWRlcjsKKyAgICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdGb290ZXI7CisgICAgV0tQYWdlUHJpbnRG
cmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cmludEZyYW1lOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuTW9kYWw7CisgICAgdm9pZCogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVz
ZWQxOyAvLyBVc2VkIHRvIGJlIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQorICAg
IFdLUGFnZVNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXJDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcjsKKyAgICBXS1BhZ2VT
aG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQ7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAg
V0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVOZXdQYWdlOworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRD
YWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdL
UGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2hvd0NvbG9yUGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9yUGlja2Vy
OworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkOworICAgIAor
ICAgIC8vIFZlcnNpb24gMy4KKyAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5nZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdlOwor
CisgICAgLy8gVmVyc2lvbiA0LgorICAgIFdLUGFnZURpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxM
b25nTW91c2VQcmVzc0NhbGxiYWNrICAgICAgICAgICAgICAgZGlkQmVnaW5UcmFja2luZ1BvdGVu
dGlhbExvbmdNb3VzZVByZXNzOworICAgIFdLUGFnZURpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNz
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkUmVjb2duaXplTG9uZ01vdXNl
UHJlc3M7CisgICAgV0tQYWdlRGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVz
c0NhbGxiYWNrICAgICAgICAgICAgICBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3Vz
ZVByZXNzOworICAgIFdLUGFnZUlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2U7CisKKyAgICAv
LyBWZXJzaW9uIDUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdDsKK30gV0tQYWdlVUlDbGllbnRWNTsKKwogZW51bSB7IGtXS1BhZ2VVSUNs
aWVudEN1cnJlbnRWZXJzaW9uIFdLX0VOVU1fREVQUkVDQVRFRCgiVXNlIGFuIGV4cGxpY2l0IHZl
cnNpb24gbnVtYmVyIGluc3RlYWQiKSA9IDIgfTsKIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xp
ZW50IHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVmZDNlNjI4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgSWdhbGlhIFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCIK
KworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJ
KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OkFQSVR5cGUpOworfQorCit2b2lkIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQoreworICAgIHRvSW1wbCh1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmFsbG93KCk7Cit9CisKK3ZvaWQgV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikKK3sKKyAgICB0b0ltcGwodXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RSZWYpLT5kZW55KCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDVkMzE4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuaApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RfaAorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3Bs
dXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCB2b2lkIFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVm
KTsKK1dLX0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNl
bmRpZgorCisjZW5kaWYgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdF9oICovCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmgKaW5kZXggNWE3MTJjZC4uZTMy
YmFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJf
Qy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaApAQCAt
NTcsNiArNTcsNyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS1VSTC5oPgogI2luY2x1ZGUgPFdlYktp
dC9XS1VSTFJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tVUkxSZXNwb25zZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg+CiAKICNpZiBkZWZp
bmVkKF9fT0JKQ19fKSAmJiBfX09CSkNfXwogI2ltcG9ydCA8V2ViS2l0L1dLVmlldy5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMzk3ZTU5NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTAs
MCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJX
ZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwor
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVJl
cXVlc3RzKCkKK3sKKyAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3BlbmRpbmdSZXF1ZXN0cy52
YWx1ZXMoKSkKKyAgICAgICAgcmVxdWVzdC0+aW52YWxpZGF0ZSgpOworCisgICAgbV9wZW5kaW5n
UmVxdWVzdHMuY2xlYXIoKTsKK30KKworUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRl
UmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbykKK3sK
KyAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gcmVxdWVzdCA9IFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSgqdGhpcywgdXNlck1lZGlhSUQs
IGF1ZGlvLCB2aWRlbyk7CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuYWRkKHVzZXJNZWRpYUlELCBy
ZXF1ZXN0LmdldCgpKTsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK3ZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVk
aWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCkK
K3sKKyAgICBpZiAoIW1fcGFnZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
ICghbV9wZW5kaW5nUmVxdWVzdHMudGFrZSh1c2VyTWVkaWFJRCkpCisgICAgICAgIHJldHVybjsK
KworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVz
ZXJNZWRpYUlELCBhbGxvd2VkKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKGFsbG93ZWQpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5hYTE3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw0
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIx
MTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eV9oCisjZGVmaW5lIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5X2gKKworI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKyNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
UGFnZVByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CisKKyAgICB2b2lkIGludmFsaWRhdGVSZXF1ZXN0cygp
OworCisgICAgLy8gQ3JlYXRlIGEgcmVxdWVzdCB0byBiZSBwcmVzZW50ZWQgdG8gdGhlIHVzZXIu
CisgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVS
ZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGF1ZGlvLCBib29sIHZpZGVvKTsKKwor
ICAgIC8vIENhbGxlZCBieSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IHdoZW4gYSBk
ZWNpc2lvbiBpcyBtYWRlIGJ5IHRoZSB1c2VyLgorICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdyk7CisKK3ByaXZhdGU6Cisg
ICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1MDg1OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKQEAg
LTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKworI2luY2x1ZGUgIkFQSU51
bWJlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFu
YWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pCisgICAg
OiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fdXNlck1lZGlhSUQodXNlck1lZGlhSUQpCit7
CisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxBUEk6Ok9iamVjdD4+IHBhcmFtZXRlcnNNYXA7
CisgICAgcGFyYW1ldGVyc01hcC5hZGQoQVNDSUlMaXRlcmFsKCJhdWRpbyIpLCBBUEk6OkJvb2xl
YW46OmNyZWF0ZShhdWRpbykpOworICAgIHBhcmFtZXRlcnNNYXAuYWRkKEFTQ0lJTGl0ZXJhbCgi
dmlkZW8iKSwgQVBJOjpCb29sZWFuOjpjcmVhdGUodmlkZW8pKTsKKyAgICBtX21lZGlhUGFyYW1l
dGVycyA9IEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUocGFyYW1ldGVyc01h
cCkpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KCkK
K3sKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbiht
X3VzZXJNZWRpYUlELCB0cnVlKTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpkZW55KCkKK3sKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCBmYWxzZSk7Cit9CisKK3ZvaWQgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSgpCit7CisgICAgbV9tYW5hZ2VyLmlu
dmFsaWRhdGVSZXF1ZXN0cygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA0NzI3Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRv
IHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lm
bmRlZiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKKyNkZWZpbmUgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eV9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNs
dWRlICJJbW11dGFibGVEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OworCitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IDog
cHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGF1ZGlvLCBi
b29sIHZpZGVvKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYUlELCBhdWRpbywgdmlkZW8p
KTsKKyAgICB9CisKKyAgICB2b2lkIGFsbG93KCk7CisgICAgdm9pZCBkZW55KCk7CisKKyAgICB2
b2lkIGludmFsaWRhdGUoKTsKKworICAgIFBhc3NSZWZQdHI8SW1tdXRhYmxlRGljdGlvbmFyeT4g
bWVkaWFQYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVBhcmFtZXRlcnM7IH0KKwor
cHJpdmF0ZToKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wg
YXVkaW8sIGJvb2wgdmlkZW8pOworCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkmIG1fbWFuYWdlcjsKKyAgICB1aW50NjRfdCBtX3VzZXJNZWRpYUlEOworICAgIFJl
ZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBtX21lZGlhUGFyYW1ldGVyczsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDIz
ZjNiYzQuLjQzZjBkNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRl
ICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgorI2luY2x1
ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0NvbnRl
eHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCiAjaW5jbHVkZSAi
V2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgpAQCAtMjc5LDYgKzI4MCw3IEBAIFdlYlBhZ2VQcm94
eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYg
cHJvY2VzcywgdWluCiAjZW5kaWYKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIoKnRoaXMpCiAgICAgLCBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcigqdGhpcykKKyAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0
aGlzKQogICAgICwgbV92aWV3U3RhdGUoVmlld1N0YXRlOjpOb0ZsYWdzKQogICAgICwgbV92aWV3
V2FzRXZlckluV2luZG93KGZhbHNlKQogICAgICwgbV9iYWNrRm9yd2FyZExpc3QoV2ViQmFja0Zv
cndhcmRMaXN0OjpjcmVhdGUoKnRoaXMpKQpAQCAtNDcxNiw2ICs0NzE4LDE4IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3Qg
Z2VvbG9jYXRpb25JRCwKICAgICByZXF1ZXN0LT5kZW55KCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRp
YUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgYm9vbCBhdWRp
bywgYm9vbCB2aWRlbykKK3sKKyAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+
d2ViRnJhbWUoZnJhbWVJRCk7CisgICAgTUVTU0FHRV9DSEVDSyhmcmFtZSk7CisKKyAgICBSZWZQ
dHI8V2ViU2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9IFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUo
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIob3JpZ2luSWRlbnRp
ZmllcikpOworICAgIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiByZXF1
ZXN0ID0gbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3JlYXRlUmVxdWVzdCh1
c2VyTWVkaWFJRCwgYXVkaW8sIHZpZGVvKTsKKworICAgIGlmICghbV91aUNsaWVudC0+ZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKnRoaXMsICpmcmFtZSwgKm9yaWdp
bi5nZXQoKSwgKnJlcXVlc3QuZ2V0KCkpKQorICAgICAgICByZXF1ZXN0LT5kZW55KCk7Cit9CisK
IHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogewogICAgIGlmICghaXNS
ZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IGNiMjRkNzguLjMwN2Q4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVByb2Nl
c3NJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUg
IlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5o
IgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgIldLUGFnZVByaXZhdGUuaCIKQEAgLTEy
NCw2ICsxMjUsNyBAQCBjbGFzcyBEcmFnRGF0YTsKIGNsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEdy
YXBoaWNzTGF5ZXI7CiBjbGFzcyBJbnRTaXplOworY2xhc3MgTWVkaWFDb25zdHJhaW50c0ltcGw7
CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CiBjbGFzcyBSdW5Mb29wT2JzZXJ2ZXI7CiBjbGFzcyBT
aGFyZWRCdWZmZXI7CkBAIC0xMDYwLDYgKzEwNjIsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZXhj
ZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2lu
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlz
cGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVz
YWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2Fn
ZSwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVv
dGE6OkRlbGF5ZWRSZXBseT4pOwogICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRR
dW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOjpEZWxheWVkUmVw
bHk+KTsKICAgICB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50
NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRp
Zmllcik7CisKKyAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlm
aWVyLCBib29sIGF1ZGlvLCBib29sIHZpZGVvKTsKKwogICAgIHZvaWQgcnVuTW9kYWwoKTsKICAg
ICB2b2lkIG5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpOwogICAgIHZvaWQgcmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShp
bnQzMl90IG5ld1N0eWxlKTsKQEAgLTEzOTYsNiArMTQwMSw4IEBAIHByaXZhdGU6CiAgICAgR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX2dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOwogICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogCisgICAg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV91c2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI7CisKICAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1fdmll
d1N0YXRlOwogICAgIGJvb2wgbV92aWV3V2FzRXZlckluV2luZG93OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmN2YxNjBi
Li43MzcxNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTI1Nyw2ICsyNTcsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICAgICAjIEdlb2xvY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdEdlb2xvY2F0aW9u
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQogICAgIAorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgIyBNZWRpYVN0ZWFtIG1lc3NhZ2VzCisgICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1p
c3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3Ry
aW5nIG9yaWdpbklkZW50aWZpZXIsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8pCisjZW5kaWYKKwog
ICAgICMgTm90aWZpY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1p
c3Npb24odWludDY0X3QgcmVxdWVzdElELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICBT
aG93Tm90aWZpY2F0aW9uKFN0cmluZyB0aXRsZSwgU3RyaW5nIGJvZHksIFN0cmluZyBpY29uVVJM
LCBTdHJpbmcgdGFnLCBTdHJpbmcgbGFuZywgU3RyaW5nIGRpciwgU3RyaW5nIG9yaWdpbklkZW50
aWZpZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM1NDU5NzYuLmNmYTE2NjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTc5MSw2ICs3OTEsMTQgQEAKIAkJM0Y4ODlEMTQxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDNGODg5RDEyMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gKi87IH07CiAJCTNGODg5RDE1MTg4Nzc4QzkwMEZFQURB
RiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODg5RDEzMTg4Nzc4QzkwMEZFQURBRiAvKiBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCAqLzsgfTsKIAkJM0Y4ODlEMTcxODg3ODU5
MzAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg4OUQwRDE4ODc2OTlDMDBGRUFEQUYg
LyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSAqLzsgfTsKKwkJNEEzQ0MxOEExOUIwNjNF
NzAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM5MTlB
RjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgKi87IH07CisJCTRBM0NDMThCMTlCMDY0MEYwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEE0MTBGM0ExOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi87IH07CisJCTRBM0NDMThDMTlCMDY0MTUwMEQx
NEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNCMTlBRjdCMDQwMDJFQkFC
NSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCAqLzsgfTsKKwkJNEEzQ0Mx
OEQxOUIwNjQxOTAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNDMTlB
RjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi87IH07
CisJCTRBM0NDMThFMTlCMDdCODUwMEQxNEFFRiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRB
NDEwRjM1MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNw
cCAqLzsgfTsKKwkJNEEzQ0MxOEYxOUIwN0I4QTAwRDE0QUVGIC8qIFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDRBNDEwRjM2MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NEE0MTBGNDQxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
QTQxMEY0MjE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmNwcCAqLzsgfTsKKwkJNEE0MTBGNEExOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRp
YUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0QTQxMEY0ODE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50LmNwcCAqLzsg
fTsKIAkJNEY2MDE0MzIxNTVDNUFBMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGNjAxNDMwMTU1
QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi87IH07CiAJCTUxMDIxRTlD
MTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDIxRTlCMTJCMTY3ODgwMDVD
MDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLzsgfTsKIAkJNTEwMjc0MzIxOTgx
QUY4RTAwODE2NUVEIC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBX
S09yaWdpbkRhdGFNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTI4MTksNiArMjgyNywxNiBAQAogCQkzRjg4OUQxMjE4ODc3OEM5MDBG
RUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Lm1tOyBwYXRoID0gaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4ODlEMTMxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDsgcGF0aCA9IGlvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
M0Y4ODlEMTYxODg3N0EyNDAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW47IHBhdGggPSBpb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzNTE5QUY3QUMzMDAyRUJB
QjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGMzYxOUFGN0FDMzAwMkVCQUI1IC8qIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0QTQxMEYzOTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0QTQxMEYzQTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0MTBGM0IxOUFGN0IwNDAwMkVCQUI1IC8qIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjNDMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNEE0MTBGNDIxOUFGN0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0QTQxMEY0MzE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0QTQxMEY0ODE5QUY3QjgwMDAyRUJBQjUgLyogV2ViVXNlck1lZGlhQ2xpZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVzZXJNZWRpYUNs
aWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjQ5MTlBRjdCODAw
MDJFQkFCNSAvKiBXZWJVc2VyTWVkaWFDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViVXNlck1lZGlhQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NraW5nUmVzcG9uc2VNYXAuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFNl
Y0l0ZW1TaGltLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0Rmls
ZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRo
ID0gU2VjSXRlbVNoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51
Q2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE3OCw2ICs1MTk2
LDE1IEBACiAJCQlwYXRoID0gQ29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9
OworCQk0QTQxMEY0MTE5QUY3QjI3MDAyRUJBQjUgLyogTWVkaWFTdHJlYW0gKi8gPSB7CisJCQlp
c2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTRBNDEwRjQyMTlBRjdCMjcwMDJF
QkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICovLAorCQkJCTRB
NDEwRjQzMTlBRjdCMjcwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gTWVkaWFTdHJlYW07CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OwogCQk1MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC01NjM4LDYgKzU2
NjUsNyBAQAogCQlCQzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGNDExOUFGN0Iy
NzAwMkVCQUI1IC8qIE1lZGlhU3RyZWFtICovLAogCQkJCTUxMkUzNTJBMTMwQjU1OTkwMEFCRDE5
QSAvKiBBcHBsaWNhdGlvbkNhY2hlICovLAogCQkJCTdDNkU3MEY4MThCMkQ0N0UwMEYyNEUyRSAv
KiBjb2NvYSAqLywKIAkJCQkzMzA5MzQ0QjEzMTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAqLywK
QEAgLTU2NzUsNiArNTcwMyw4IEBACiAJCUJDMDMyRDVEMTBGNDM3MjIwMDU4QzE1QSAvKiBXZWJD
b3JlU3VwcG9ydCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJNEE0MTBGNDgxOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgKi8s
CisJCQkJNEE0MTBGNDkxOUFGN0I4MDAwMkVCQUI1IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5oICov
LAogCQkJCTJEMjhGM0RGMTg4NUNDQjQwMDRCOUVBRSAvKiBpb3MgKi8sCiAJCQkJQkMxMTFBREUx
MTJGNUI5QTAwMzM3QkFCIC8qIG1hYyAqLywKIAkJCQkxQTcyODQ0NDE5NTlFRDEwMDAwN0JDRTUg
LyogU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAgKi8sCkBAIC01Nzc4LDYgKzU4MDgsMTAgQEAK
IAkJQkMwMzJEQzMxMEY0MzgyNjAwNThDMTVBIC8qIFVJUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNEE0MTBGMzkxOUFGN0IwNDAwMkVCQUI1
IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQk0
QTQxMEYzQTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaCAqLywKKwkJCQk0QTQxMEYzQjE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgKi8sCisJCQkJNEE0MTBGM0MxOUFGN0IwNDAwMkVC
QUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAqLywKIAkJCQkyREE5NDRB
ODE4ODRFOUFCMDBFRDg2REIgLyogaW9zICovLAogCQkJCUJDMDMyREM0MTBGNDM4N0MwMDU4QzE1
QSAvKiBBUEkgKi8sCiAJCQkJNTEyRjU4OEQxMkE4ODM2RjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0
aW9uICovLApAQCAtNTk0Niw2ICs1OTgwLDggQEAKIAkJQkMwQzM3NjYxMEY4MDc2NjAwNzZEN0NC
IC8qIEMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTRB
NDEwRjM1MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNw
cCAqLywKKwkJCQk0QTQxMEYzNjE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oICovLAogCQkJCTUxMjNDRjE4MTMzRDI1RTYwMDU2RjgwMCAvKiBjZyAqLywK
IAkJCQk2RUU4NDlDNDEzNjhEOTA0MDAzOEQ0ODEgLyogbWFjICovLAogCQkJCUJDQjYzNDc3MTE2
QkYxMDYwMDYwMzIxNSAvKiBXZWJLaXQyX0MuaCAqLywKQEAgLTcxOTgsNiArNzIzNCw3IEBACiAJ
CQkJMUFBNDFBQjUxMkMwMkVDNDAwMkJFNjdCIC8qIEVkaXRvclN0YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MUIxNUE4NTEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBN0M2Q0RCMTM3ODk1MDgwMEI5QzA0RCAvKiBFbnZpcm9u
bWVudFZhcmlhYmxlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEEzQ0MxOEYxOUIwN0I4QTAwRDE0
QUVGIC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBQTU3NUZCMTQ5NkI1MjYwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBOTBDMUY0MTI2NEZENzEwMDNFNDRENCAvKiBGaW5kQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUE5MTAwNzExMjY2NzVDNDAwMTg0MkY1IC8qIFRleHRJbmRpY2F0
b3IuaCBpbiBIZWFkZXJzICovLApAQCAtNzYxMiw2ICs3NjQ5LDcgQEAKIAkJCQk1MTgzNTNEQjE4
ODVCRjhDMDBEOUZFNDQgLyogSURCU2VyaWFsaXphdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFERjU5MUIxODkwNTI4RTAwNDNDMTQ1IC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNTc0NEYwMTI2MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1cEl0ZW0u
aCBpbiBIZWFkZXJzICovLAorCQkJCTRBM0NDMThEMTlCMDY0MTkwMEQxNEFFRiAvKiBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0I5NDg0NzEx
RkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU3
NEU2MzEyNjdEMDgwMDA2RjBGMTIgLyogV2ViUG9wdXBNZW51UHJveHkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdDOEVCMTE3MThEQjZBMTkwMDc5MTdDMiAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCkBAIC03NjM4LDYgKzc2NzYsNyBAQAogCQkJCTJEMjlFQ0QwMTkyRjJD
MkUwMDk4NEI3OCAvKiBSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTM3NjA4ODFGMTUwNDEzRTkwMEZDODJDNyAvKiBXZWJSZW5kZXJPYmpl
Y3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzMzY3NjMwMTMwQzk5OTgwMDZDOURFMiAvKiBXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEEzQ0MxOEIxOUIwNjQw
RjAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUFGMDg5QjE5MjY3RUU1MDBCNjM5MEMgLyogV0tVc2VyU2NyaXB0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzM2NzY1NjEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBOTQ0QTQx
ODg0RTRGMDAwRUQ4NkRCIC8qIEdlc3R1cmVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC04NzEz
LDcgKzg3NTIsOSBAQAogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJNEE0MTBGNDQxOUFGN0Iy
NzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzVEMjRBMTE2Q0MzQjlFMDA3RDU0NjEgLyogQ2hpbGRQcm9jZXNzTWFp
bi5tbSBpbiBTb3VyY2VzICovLAorCQkJCTRBNDEwRjRBMTlBRjdCODAwMDJFQkFCNSAvKiBXZWJV
c2VyTWVkaWFDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC05MTA2LDYgKzkxNDcsNyBAQAog
CQkJCTFBMEYyOUUzMTIwQjQ0NDIwMDUzRDFCOSAvKiBWaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUExREY2MzEyMThFMEI3QzgwMDNBM0UyQSAvKiBEb3dubG9hZENs
aWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBMEYyOUNCMTIwQjM3MTYwMDUzRDFCOSAvKiBW
aXNpdGVkTGlua1RhYmxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBM0NDMThBMTlCMDYzRTcw
MEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQUMxMzM3RjE4NTkwQUU0MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0
UmVnaXN0cnkubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRURBMTJFMjE1MkNEMUFFMDBEOUUwOEQg
LyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMkUz
NTJFMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTkyMjgsNiArOTI3MCw3IEBACiAJCQkJNTE4MzQ1OTIxMzQ1MzJFOTAw
OTJCNjk2IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MUQwMkY2NDEzMkVDNUI5MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NzE5M0JFMThDMTRBNDQwMDJEMEYxMiAvKiBXS0Zv
cm1TZWxlY3RDb250cm9sLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNEEzQ0MxOEUxOUIwN0I4NTAw
RDE0QUVGIC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkRERjczMTYxOEU5NTA2MDAwNEY1QTY2IC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Q29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMUIyNEE2MTMyRTA5NTcwMDA2NUEw
QyAvKiBXZWJJY29uRGF0YWJhc2VQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQwMkY2
QjEzMkVDNzM3MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC05MzkxLDYgKzk0MzQsNyBAQAogCQkJCUJDNDA3NjI4MTI0
RkYwNDAwMDY4RjIwQSAvKiBXS0NlcnRpZmljYXRlSW5mb01hYy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTUxNUU3NzI3MTgzREQ2RjYwMDA3MjAzRiAvKiBBc3luY1JlcXVlc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkNBMjg0RDYxNDkyRjJDNzAwMUY5MDQyIC8qIFdLQ29ubmVjdGlvbi5tbSBp
biBTb3VyY2VzICovLAorCQkJCTRBM0NDMThDMTlCMDY0MTUwMEQxNEFFRiAvKiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMEMzNjU4MThD
MDUxQkEwMEY2MDdENyAvKiBSZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEYwQzM2NUMxOEMwNUNBMTAwRjYwN0Q3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHlJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzRBNjI5NjE0NzMxM0EwMDA2QzY4
MUEgLyogV0tDb25uZWN0aW9uUmVmLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjEwZjNmOTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgorI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUg
IldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB1aW50NjRfdCBnZW5l
cmF0ZVJlcXVlc3RJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVJlcXVlc3RJRCA9
IDE7CisgICAgcmV0dXJuIHVuaXF1ZVJlcXVlc3RJRCsrOworfQorCitVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQ
YWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCYgcmVx
dWVzdCkKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4ocmVx
dWVzdC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIEZyYW1lKiBmcmFtZSA9IGRvY3Vt
ZW50ID8gZG9jdW1lbnQtPmZyYW1lKCkgOiBudWxscHRyOworCisgICAgaWYgKCFmcmFtZSkgewor
ICAgICAgICByZXF1ZXN0LnVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgdWludDY0X3QgcmVxdWVzdElEID0gZ2VuZXJhdGVSZXF1ZXN0SUQoKTsK
KyAgICBtX2lkVG9SZXF1ZXN0TWFwLmFkZChyZXF1ZXN0SUQsICZyZXF1ZXN0KTsKKyAgICBtX3Jl
cXVlc3RUb0lETWFwLmFkZCgmcmVxdWVzdCwgcmVxdWVzdElEKTsKKworICAgIFdlYkZyYW1lKiB3
ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgQVNTRVJUKHdl
YkZyYW1lKTsKKworICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSByZXF1ZXN0LnNlY3VyaXR5
T3JpZ2luKCk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVz
dFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZShyZXF1ZXN0SUQsIHdlYkZyYW1lLT5mcmFtZUlE
KCksIG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCksIHJlcXVlc3QucmVxdWlyZXNBdWRpbygp
LCByZXF1ZXN0LnJlcXVpcmVzVmlkZW8oKSkpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0JiByZXF1ZXN0
KQoreworICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9IG1fcmVxdWVzdFRvSURNYXAudGFrZSgmcmVx
dWVzdCk7CisgICAgaWYgKCFyZXF1ZXN0SUQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2lkVG9S
ZXF1ZXN0TWFwLnJlbW92ZShyZXF1ZXN0SUQpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1
aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBSZWZQdHI8VXNlck1lZGlh
UmVxdWVzdD4gcmVxdWVzdCA9IG1faWRUb1JlcXVlc3RNYXAudGFrZShyZXF1ZXN0SUQpOworICAg
IGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fcmVxdWVzdFRvSURNYXAucmVt
b3ZlKHJlcXVlc3QpOworCisgICAgaWYgKGFsbG93ZWQpCisgICAgICAgIHJlcXVlc3QtPnVzZXJN
ZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBlbHNlCisgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRp
YUFjY2Vzc0RlbmllZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODg0MjBh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVh
bS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApAQCAtMCwwICsxLDUzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAx
ICBVU0EKKyAqLworCisjaWZuZGVmIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9o
CisjZGVmaW5lIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZi5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBh
Z2U7CisKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciB7CitwdWJsaWM6
CisgICAgZXhwbGljaXQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2Um
KTsKKworICAgIHZvaWQgc3RhcnRSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QmKTsK
KyAgICB2b2lkIGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCYpOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCBib29sIGFsbG93ZWQpOworCitwcml2YXRlOgorICAgIFdlYlBhZ2UmIG1fcGFn
ZTsKKworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1
ZXN0Pj4gbV9pZFRvUmVxdWVzdE1hcDsKKyAgICBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpVc2Vy
TWVkaWFSZXF1ZXN0PiwgdWludDY0X3Q+IG1fcmVxdWVzdFRvSURNYXA7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRp
ZiAvLyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVk
aWFDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwZGQyNjMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdy
aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5oIgor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFSZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlVzZXJNZWRpYUNsaWVudDo6
V2ViVXNlck1lZGlhQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sK
K30KKwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQoreworICAgIGRl
bGV0ZSB0aGlzOworfQorCit2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6cmVxdWVzdFBlcm1pc3Np
b24oUGFzc1JlZjxVc2VyTWVkaWFSZXF1ZXN0PiBwclJlcXVlc3QpCit7CisgICAgVXNlck1lZGlh
UmVxdWVzdCYgcmVxdWVzdCA9IHByUmVxdWVzdC5sZWFrUmVmKCk7CisgICAgbV9wYWdlLnVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLnN0YXJ0UmVxdWVzdChyZXF1ZXN0KTsKK30K
Kwordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbFJlcXVlc3QoVXNlck1lZGlhUmVxdWVz
dCYgcmVxdWVzdCkKK3sKKyAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKCkuY2FuY2VsUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
OworCisjZW5kaWYgLy8gTUVESUFfU1RSRUFNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTcxNjY0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFD
bGllbnQuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxp
YSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m
dHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFdlYlVzZXJN
ZWRpYUNsaWVudF9oCisjZGVmaW5lIFdlYlVzZXJNZWRpYUNsaWVudF9oCisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFDbGllbnQuaD4KKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViUGFnZTsKKworY2xhc3MgV2ViVXNlck1lZGlhQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OlVz
ZXJNZWRpYUNsaWVudCB7CitwdWJsaWM6CisgICAgV2ViVXNlck1lZGlhQ2xpZW50KFdlYlBhZ2Um
KTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpOworICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmPFdlYkNvcmU6OlVzZXJNZWRpYVJl
cXVlc3Q+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0Jikgb3ZlcnJpZGU7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjZW5kaWYgLy8gV2ViVXNlck1lZGlhQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmYzk1NmVkLi43ZTgwNTUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05
OCw2ICs5OCw3IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiV2ViVW5kb1N0ZXAuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcmNoaXZlUmVzb3VyY2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgpAQCAtMjgxLDYgKzI4Miw5IEBAIFdlYlBhZ2U6Oldl
YlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzKQogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICAsIG1fZ2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIodGhpcykKICNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykK
KyNlbmRpZgogICAgICwgbV9jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwocGFyYW1ldGVy
cy5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpCiAgICAgLCBtX2NhblJ1bk1vZGFsKHBh
cmFtZXRlcnMuY2FuUnVuTW9kYWwpCiAgICAgLCBtX2lzUnVubmluZ01vZGFsKGZhbHNlKQpAQCAt
Mzg2LDYgKzM5MCw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShQUk9YSU1J
VFlfRVZFTlRTKQogICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VQcm94aW1pdHlUbyhtX3BhZ2Uu
Z2V0KCksIG5ldyBXZWJEZXZpY2VQcm94aW1pdHlDbGllbnQodGhpcykpOwogI2VuZGlmCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJDb3JlOjpwcm92aWRlVXNlck1lZGlhVG8obV9w
YWdlLmdldCgpLCBuZXcgV2ViVXNlck1lZGlhQ2xpZW50KCp0aGlzKSk7CisjZW5kaWYKIAogI2lm
IEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgIG1fcGFnZS0+c2V0UmVtb3RlSW5zcGVjdGlv
bkFsbG93ZWQodHJ1ZSk7CkBAIC0zMjUyLDYgKzMyNTksMTMgQEAgdm9pZCBXZWJQYWdlOjpkaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklELAogICAgIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5kaWRSZWNl
aXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKG5vdGlmaWNhdGlvbklELCBhbGxvd2Vk
KTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wg
YWxsb3dlZCkKK3sKKyAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5kaWRS
ZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkKTsK
K30KKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKElPUykKIHZvaWQgV2ViUGFnZTo6YWR2YW5jZVRv
TmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0NGY2YWNiYy4uMWI3Mjcx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00
NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVu
c2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGF0aW9u
QWx0ZXJuYXRpdmUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9FZGl0b3IuaD4KQEAgLTQ0OSw2ICs0NTAsMTAgQEAgcHVibGljOgogICAgIHZvaWQg
cmVzdG9yZVBhZ2VTdGF0ZShjb25zdCBXZWJDb3JlOjpIaXN0b3J5SXRlbSYpOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlciYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgeyByZXR1cm4gbV91
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0KKyNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3Q7CiAgICAg
V2ViQ29yZTo6RmxvYXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdDsKQEAgLTEwMTks
NiArMTAyNCwxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRSZWNlaXZlTm90aWZpY2F0aW9u
UGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQp
OwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVk
aWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCk7
CisjZW5kaWYKKwogICAgIHZvaWQgYWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRC
ZWZvcmVTZWxlY3Rpb24pOwogICAgIHZvaWQgY2hhbmdlU3BlbGxpbmdUb1dvcmQoY29uc3QgU3Ry
aW5nJiB3b3JkKTsKICNpZiBVU0UoQVBQS0lUKQpAQCAtMTE4Niw2ICsxMTk1LDEwIEBAIHByaXZh
dGU6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgbV9nZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgbV91c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisjZW5kaWYKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpQcmludENvbnRleHQ+IG1fcHJpbnRDb250ZXh0OwogI2lmIFBMQVRGT1JNKEdUSykK
ICAgICBSZWZQdHI8V2ViUHJpbnRPcGVyYXRpb25HdGs+IG1fcHJpbnRPcGVyYXRpb247CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCmluZGV4IDJlNjZkMjEuLjUwOGM0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yNjksNiArMjY5LDEx
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIERpZFJlY2VpdmVH
ZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBnZW9sb2NhdGlvbklELCBib29s
IGFsbG93ZWQpCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgIyBNZWRp
YVN0ZWFtCisgICAgRGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRf
dCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQorI2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlv
bgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qg
bm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDgwYWZmYTEuLjQ4ZTFlZDQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAor
MjAxNC0wOS0wMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW1dLMl0gVXNlck1lZGlhQ2xpZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5
IEJlbmphbWluIFBvdWxhaW4uCisKKyAgICAgICAgU2ltcGxlIEFQSSB0ZXN0IGZvciB0aGUgVXNl
ck1lZGlhIHBlcm1pc3Npb24gcmVxdWVzdCBBUEkuIFRoZQorICAgICAgICByZXF1aXJlZCB0ZXN0
IGluZnJhc3RydWN0dXJlIGlzIGFsc28gYWRkZWQsIGluc3BpcmVkIGJ5IHRoZQorICAgICAgICBH
ZW9sb2NhdGlvbiBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBOZXcgQVBJIHRlc3QgZm9yIFVz
ZXJNZWRpYQorICAgICAgICBQZXJtaXNzaW9uIHJlcXVlc3QuCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsQmFj
ayk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6IG5l
dworICAgICAgICBoZWxwZXIgbWV0aG9kIHRvIHNldCB0aGUgcGVybWlzc2lvbiByZXF1ZXN0IHJl
c3VsdCB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6IERpdHRvLgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZTo6c2V0VXNlck1lZGlhUGVybWlzc2lvbik6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOiBE
aXR0by4KKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0VXNlck1lZGlhUGVybWlzc2lvbik6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6
IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV1RSOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6
IFBlcm1pc3Npb24KKyAgICAgICAgcmVxdWVzdCBoYW5kbGVyLgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKTogRW5hYmxlIHRoZSBuZXcgVXNlck1lZGlhCisg
ICAgICAgIHBlcm1pc3Npb24gcmVxdWVzdCBoYW5kbGVyLgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKTogRGl0dG8uCisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKTogRW5h
YmxlCisgICAgICAgIE1lZGlhU3RyZWFtIHN1cHBvcnQsIHRoaXMgaXMgbmVlZGVkIGZvciBnZXRV
c2VyTWVkaWEuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25z
aXN0ZW50VmFsdWVzKTogY2xlYXIKKyAgICAgICAgVXNlck1lZGlhIHBlcm1pc3Npb25zIGxpc3Qg
YW5kIGZsYWdzLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0VXNlck1lZGlhUGVy
bWlzc2lvbik6IFNldCBwZXJtaXNzaW9uCisgICAgICAgIHJlcXVlc3QgcmVzdWx0IGFuZCBkaXN0
cGF0Y2ggaXQuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpoYW5kbGVVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdCk6IFNhdmUKKyAgICAgICAgcmVxdWVzdCBhbmQgZGlzcGF0Y2ggaXQu
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUpOgorICAgICAgICBEaXNwYXRjaCBjYWNoZWQgcGVy
bWlzc2lvbiByZXF1ZXN0cy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6Cisg
ICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3Rl
ZEJ1bmRsZSk6CisKIDIwMTQtMTEtMTAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIHdlYmtpdHB5OiBkZW1hbmdsZSBDKysgc3ltYm9scyBmcm9tIGNy
YXNoIGxvZyBzdGRlcnIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0
cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CmluZGV4IGJjNWQwYmUu
LmRlMDVlYTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dApAQCAtMTYzLDYgKzE2Myw4
IEBAIGFkZF9leGVjdXRhYmxlKFRlc3RKYXZhU2NyaXB0Q29yZQogKQogCiB0YXJnZXRfbGlua19s
aWJyYXJpZXMoVGVzdEphdmFTY3JpcHRDb3JlICR7VGVzdEphdmFTY3JpcHRDb3JlX0xJQlJBUklF
U30pCithZGRfZGVwZW5kZW5jaWVzKFRlc3RKYXZhU2NyaXB0Q29yZSAke0ZvcndhcmRpbmdIZWFk
ZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FfSkKKwogYWRkX3Rlc3QoVGVzdEphdmFTY3JpcHRDb3Jl
ICR7VEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L0phdmFTY3JpcHRDb3Jl
L1Rlc3RKYXZhU2NyaXB0Q29yZSkKIHNldF90ZXN0c19wcm9wZXJ0aWVzKFRlc3RKYXZhU2NyaXB0
Q29yZSBQUk9QRVJUSUVTIFRJTUVPVVQgNjApCiBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoVGVzdEph
dmFTY3JpcHRDb3JlIFBST1BFUlRJRVMgUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZICR7VEVTVFdF
QktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L0phdmFTY3JpcHRDb3JlKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYWE5NzA3YS4uZjU4ZjJjYiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC05MSw2ICs5MSw3IEBAIGFkZF9leGVj
dXRhYmxlKFRlc3RXZWJLaXQyCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0
Mi9SZXNpemVXaW5kb3dBZnRlckNyYXNoLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rl
c3RzL1dlYktpdDIvUmVzdG9yZVNlc3Npb25TdGF0ZUNvbnRhaW5pbmdGb3JtRGF0YS5jcHAKICAg
ICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1Nob3VsZEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvVXNl
ck1lZGlhLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvVXNlck1l
c3NhZ2UuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9XaWxsU2Vu
ZFN1Ym1pdEV2ZW50LmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIv
V0tQYWdlR2V0U2NhbGVGYWN0b3JOb3RaZXJvLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBlMTgwMzQxLi5iZWYwMTM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODgsNiArODgs
NyBAQAogCQkzN0UxMDY0RDE2OTc2Qzg1MDBCNzhCRDAgLyogRE9NSFRNTFRhYmxlQ2VsbENlbGxB
Ym92ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3
RTEwNjRBMTY5NzY3NjQwMEI3OEJEMCAvKiBET01IVE1MVGFibGVDZWxsQ2VsbEFib3ZlLm1tICov
OyB9OwogCQkzN0UzOEMzNDE2OUI3RDAxMDA4NEMyOEMgLyogV2ViVmlld0RpZFJlbW92ZUZyYW1l
RnJvbUhpZXJhcmNoeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDM3RTM4QzMzMTY5QjdEMDEwMDg0QzI4QyAvKiBXZWJWaWV3RGlkUmVtb3ZlRnJhbWVG
cm9tSGllcmFyY2h5Lm1tICovOyB9OwogCQk0NDBBMUQzOTE0QTAxMDNBMDA4QTY2RjIgLyogVVJM
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MEEx
RDM4MTRBMDEwM0EwMDhBNjZGMiAvKiBVUkwuY3BwICovOyB9OworCQk0QTQxMEY0QzE5QUY3QkQ2
MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRBNDEwRjRCMTlBRjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVkaWEuY3Bw
ICovOyB9OwogCQk0QkI0MTYwMjE2ODE1QjI2MDA4MjQyMzggLyogSlNXcmFwcGVyRm9yTm9kZUlu
V2ViRnJhbWUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0QkI0MTYwMTE2ODE1QjI2MDA4MjQyMzggLyogSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUu
bW0gKi87IH07CiAJCTRCQjQxNjA0MTY4MTVGOTEwMDgyNDIzOCAvKiBFbGVtZW50QXRQb2ludElu
V2ViRnJhbWUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0QkI0MTYwMzE2ODE1RjkxMDA4MjQyMzggLyogRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1t
ICovOyB9OwogCQk0QkZERkZBNzEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVI
YW5kbGVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRs
ZV9CdW5kbGUuY3BwICovOyB9OwpAQCAtNDQ1LDYgKzQ0Niw4IEBACiAJCTM3RTM4QzMzMTY5QjdE
MDEwMDg0QzI4QyAvKiBXZWJWaWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVmlld0RpZFJlbW92ZUZyYW1l
RnJvbUhpZXJhcmNoeS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQwQTFEMzgx
NEEwMTAzQTAwOEE2NkYyIC8qIFVSTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBVUkwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NEE2MjJDMTE0
QTBFMkI2MDA0ODUxNUIgLyogV1RGU3RyaW5nVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdURlN0cmluZ1V0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0QTQxMEY0QjE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNSAvKiBnZXRVc2Vy
TWVkaWEuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGdldFVzZXJNZWRpYS5odG1s
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkI0MTYwMTE2ODE1QjI2MDA4MjQyMzgg
LyogSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBKU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJCNDE2MDMxNjgxNUY5MTAwODI0MjM4IC8qIEVsZW1lbnRB
dFBvaW50SW5XZWJGcmFtZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEVsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNEJGREZGQTYxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxl
X0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0
UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtODM1LDYgKzgzOCw3IEBACiAJCUJDOTA5NjQxMTI1NTYxNjAwMDA4Mzc1NiAvKiBXZWJLaXQy
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEY0
QjE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCAqLywKIAkJCQlDMEM1RDNCQjE0NTk4
QjZGMDBBODAyQTYgLyogbWFjICovLAogCQkJCUJDOTA5NzdCMTI1NTcxQUUwMDA4Mzc1NiAvKiBS
ZXNvdXJjZXMgKi8sCiAJCQkJQkMyNDZEOEMxMzJGMTE1QTAwQjU2RDdDIC8qIEFib3V0QmxhbmtM
b2FkLmNwcCAqLywKQEAgLTk2OSw2ICs5NzMsNyBAQAogCQlCQzkwOTc3QjEyNTU3MUFFMDAwODM3
NTYgLyogUmVzb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQk0QTQxMEY0RDE5QUY3QkVGMDAyRUJBQjUgLyogZ2V0VXNlck1lZGlhLmh0bWwgKi8s
CiAJCQkJQzA0NUY5NDYxMzg1QzJGODAwQzBGM0NEIC8qIDE4LWNoYXJhY3RlcnMuaHRtbCAqLywK
IAkJCQlGNkI3QkU5NjE3NDY5QjdFMDA4QTM0NDUgLyogYXNzb2NpYXRlLWZvcm0tY29udHJvbHMu
aHRtbCAqLywKIAkJCQk3NkUxODJERTE1NDc1QTgzMDBGMUZBREQgLyogYXV0by1zdWJtaXR0aW5n
LWZvcm0uaHRtbCAqLywKQEAgLTEzNzcsNiArMTM4Miw3IEBACiAJCQkJNTFGQ0Y3OUExNTM0QUM2
RDAwMTA0NDkxIC8qIFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBRkRFNjU2MTk1M0IyQzAwMEM0OEZGQSAvKiBPcHRpb25hbC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDNTQwRjc3NjE1MkU0REEwMDBBNDBDOEMgLyogU2ltcGxpZnlNYXJrdXAu
bW0gaW4gU291cmNlcyAqLywKKwkJCQk0QTQxMEY0QzE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1l
ZGlhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMwMkI3N0YyMTI2NjEyMTQwMDI2QkYwRiAvKiBT
cGFjZWJhclNjcm9sbGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0QzRDE5RTE3QjFBODQy
MDBDN0M0MTUgLyogTGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFMTk0RTFCQjE3N0U1MTQ1MDA5QzRENEUgLyogU3RvcExvYWRpbmdG
cm9tRGlkUmVjZWl2ZVJlc3BvbnNlLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjI2ZjZjZjYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcApAQCAtMCwwICsxLDYxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZp
ZXcuaCIKKyNpbmNsdWRlICJUZXN0LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+
CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CisKK3N0YXRpYyBib29sIGRvbmU7CisKK3ZvaWQgZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsQmFjayhXS1BhZ2VSZWYsIFdLRnJhbWVSZWYs
IFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcGVy
bWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIC8qIGNsaWVudEluZm8gKi8pCit7CisgICAgV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KHBlcm1pc3Npb25SZXF1ZXN0KTsKKyAgICBk
b25lID0gdHJ1ZTsKK30KKworVEVTVChXZWJLaXQyLCBVc2VyTWVkaWFCYXNpYykKK3sKKyAgICBh
dXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICBQbGF0Zm9ybVdl
YlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1BhZ2VVSUNsaWVudFY1IHVpQ2xp
ZW50OworICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOworCisKKyAg
ICB1aUNsaWVudC5iYXNlLnZlcnNpb24gPSA1OworICAgIHVpQ2xpZW50LmRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RDYWxsQmFjazsKKworICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJW
aWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIGF1
dG8gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiZ2V0VXNlck1lZGlh
IiwgImh0bWwiKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgp
KTsKKworICAgIFV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWwgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2V0VXNlck1lZGlhLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU0Zjg1MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZXRVc2VyTWVkaWEuaHRtbApAQCAtMCwwICsx
LDE0IEBACis8c2NyaXB0PgorZnVuY3Rpb24gZ290VXNlck1lZGlhKG1lZGlhU3RyZWFtKQorewor
ICAgIGNvbnNvbGUubG9nKCJHb3QgdXNlciBtZWRpYSIpOworfQorCitmdW5jdGlvbiB1c2VyTWVk
aWFFcnJvcihlcnJvcikKK3sKKyAgICBjb25zb2xlLmxvZyhlcnJvcik7Cit9CisKK3ZhciBvcHRp
b25zID0geyBhdWRpbzogZmFsc2UsIHZpZGVvOiB0cnVlfTsKK25hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEob3B0aW9ucywgZ290VXNlck1lZGlhLCB1c2VyTWVkaWFFcnJvcik7Cis8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IGJiOWE3YTAuLjA4YTE4OTggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMTY5LDYgKzE2OSw5IEBAIGludGVyZmFjZSBUZXN0
UnVubmVyIHsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRp
dHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBbRGVmYXVsdD1VbmRlZmlu
ZWRdIG9wdGlvbmFsIG9iamVjdCBhbHRpdHVkZSwgb3B0aW9uYWwgb2JqZWN0IGFsdGl0dWRlQWNj
dXJhY3ksIG9wdGlvbmFsIG9iamVjdCBoZWFkaW5nLCBvcHRpb25hbCBvYmplY3Qgc3BlZWQpOwog
ICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKERPTVN0
cmluZyBlcnJvck1lc3NhZ2UpOwogCisgICAgLy8gTWVkaWFTdHJlYW0KKyAgICB2b2lkIHNldFVz
ZXJNZWRpYVBlcm1pc3Npb24oYm9vbGVhbiB2YWx1ZSk7CisKICAgICAvLyBBdWRpbyB0ZXN0aW5n
LgogICAgIFtQYXNzQ29udGV4dF0gdm9pZCBzZXRBdWRpb1Jlc3VsdChvYmplY3QgZGF0YSk7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAKaW5kZXggYWU2ZGFjYS4uMjc5Zjk3YSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAK
QEAgLTQ1OCw2ICs0NTgsMTMgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKFdLU3RyaW5nUmVmIGVycm8KICAgICBXS0J1bmRs
ZVBvc3RNZXNzYWdlKG1fYnVuZGxlLCBtZXNzYWdlTmFtZS5nZXQoKSwgZXJyb3JNZXNzYWdlKTsK
IH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0VXNlck1lZGlhUGVybWlzc2lvbihib29sIGVu
YWJsZWQpCit7CisgICAgYXV0byBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIlNldFVzZXJNZWRpYVBlcm1pc3Npb24iKSk7CisgICAgYXV0byBtZXNz
YWdlQm9keSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKGVuYWJsZWQpKTsKKyAgICBXS0J1bmRs
ZVBvc3RNZXNzYWdlKG1fYnVuZGxlLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0
KCkpOworfQorCiB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShi
b29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSkKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IlNldEN1c3RvbVBvbGljeURlbGVnYXRlIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCmluZGV4IDlmNzZhOWQuLjhm
MGE4NDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmgKQEAgLTkyLDYgKzkyLDkgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0
dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0
dWRlLCBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJh
Y3ksIGJvb2wgcHJvdmlkZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1Nw
ZWVkLCBkb3VibGUgc3BlZWQpOwogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25V
bmF2YWlsYWJsZUVycm9yKFdLU3RyaW5nUmVmIGVycm9yTWVzc2FnZSk7CiAKKyAgICAvLyBNZWRp
YVN0cmVhbS4KKyAgICB2b2lkIHNldFVzZXJNZWRpYVBlcm1pc3Npb24oYm9vbCk7CisKICAgICAv
LyBQb2xpY3kgZGVsZWdhdGUuCiAgICAgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29s
IGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGQwODVmMWEuLmQ3NTFi
OTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcApAQCAtNzIwLDYgKzcyMCwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldE1v
Y2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0cmluZ1JlZiBtZXNzYWdl
KQogICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlv
blVuYXZhaWxhYmxlRXJyb3IobWVzc2FnZVdLLmdldCgpKTsKIH0KIAordm9pZCBUZXN0UnVubmVy
OjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wgZW5hYmxlZCkKK3sKKyAgICAvLyBGSVhNRTog
dGhpcyBzaG91bGQgYmUgZG9uZSBieSBmcmFtZS4KKyAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVk
KCkuc2V0VXNlck1lZGlhUGVybWlzc2lvbihlbmFibGVkKTsKK30KKwogYm9vbCBUZXN0UnVubmVy
OjpjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKQogewogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFp
bkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKEluamVjdGVkQnVuZGxlOjpzaGFyZWQo
KS5wYWdlKCktPnBhZ2UoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IGUyMWZmZjMuLjM5NGU5MDggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0y
NTIsNiArMjUyLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRp
b24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIEpT
VmFsdWVSZWYgYWx0aXR1ZGUsIEpTVmFsdWVSZWYgYWx0aXR1ZGVBY2N1cmFjeSwgSlNWYWx1ZVJl
ZiBoZWFkaW5nLCBKU1ZhbHVlUmVmIHNwZWVkKTsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlv
blBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0cmluZ1JlZiBtZXNzYWdlKTsKIAorICAgIC8v
IE1lZGlhU3RyZWFtCisgICAgdm9pZCBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wpOworCiAg
ICAgdm9pZCBzZXRQYWdlVmlzaWJpbGl0eShKU1N0cmluZ1JlZiBzdGF0ZSk7CiAgICAgdm9pZCBy
ZXNldFBhZ2VWaXNpYmlsaXR5KCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKaW5kZXggZTM0MDkzZC4uM2I4OWViMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTE4OSw2ICsxODksMTEgQEAgc3RhdGljIHZvaWQgZGVj
aWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJh
bWVSZWYsIFcKICAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkuaGFuZGxlR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChwZXJtaXNzaW9uUmVxdWVzdCk7CiB9CiAKK3N0YXRpYyB2b2lkIGRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFt
ZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBUZXN0
Q29udHJvbGxlcjo6c2hhcmVkKCkuaGFuZGxlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QocGVy
bWlzc2lvblJlcXVlc3QpOworfQorCiBpbnQgVGVzdENvbnRyb2xsZXI6OmdldEN1c3RvbVRpbWVv
dXQoKQogewogICAgIHJldHVybiBtX3RpbWVvdXQ7CkBAIC0yMDMsOCArMjA4LDggQEAgV0tQYWdl
UmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdL
VVJMUmVxdWVzdFJlZiwgV0sKIAogICAgIHZpZXctPnJlc2l6ZVRvKDgwMCwgNjAwKTsKIAotICAg
IFdLUGFnZVVJQ2xpZW50VjIgb3RoZXJQYWdlVUlDbGllbnQgPSB7Ci0gICAgICAgIHsgMiwgdmll
dyB9LAorICAgIFdLUGFnZVVJQ2xpZW50VjUgb3RoZXJQYWdlVUlDbGllbnQgPSB7CisgICAgICAg
IHsgNSwgdmlldyB9LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAgY2xvc2VPdGhlclBhZ2Us
CkBAIC0yNTEsNiArMjU2LDEyIEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3Ro
ZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAs
IC8vIHNob3dDb2xvclBpY2tlcgogICAgICAgICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAg
ICAgMCwgLy8gdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkCisgICAgICAgIDAsIC8vIHBp
bm5lZFN0YXRlRGlkQ2hhbmdlCisgICAgICAgIDAsIC8vIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRp
YWxMb25nTW91c2VQcmVzcworICAgICAgICAwLCAvLyBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVz
cworICAgICAgICAwLCAvLyBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNz
CisgICAgICAgIDAsIC8vIGlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlCisgICAgICAgIGRlY2lkZVBv
bGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LAogICAgIH07CiAgICAgV0tQYWdlU2V0
UGFnZVVJQ2xpZW50KG5ld1BhZ2UsICZvdGhlclBhZ2VVSUNsaWVudC5iYXNlKTsKIApAQCAtNDA5
LDggKzQyMCw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNv
bnN0IGNoYXIqIGFyZ3ZbXSkKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRo
T3B0aW9ucyhXS0RpY3Rpb25hcnlSZWYgb3B0aW9ucykKIHsKICAgICBtX21haW5XZWJWaWV3ID0g
c3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVdlYlZpZXc+KG1fY29udGV4dC5nZXQoKSwgbV9wYWdl
R3JvdXAuZ2V0KCksIG51bGxwdHIsIG9wdGlvbnMpOwotICAgIFdLUGFnZVVJQ2xpZW50VjIgcGFn
ZVVJQ2xpZW50ID0gewotICAgICAgICB7IDIsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKKyAgICBX
S1BhZ2VVSUNsaWVudFY1IHBhZ2VVSUNsaWVudCA9IHsKKyAgICAgICAgeyA1LCBtX21haW5XZWJW
aWV3LmdldCgpIH0sCiAgICAgICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMAogICAgICAgICAwLCAvLyBzaG93UGFnZQogICAgICAgICAwLCAvLyBjbG9zZQpAQCAt
NDU3LDYgKzQ2OCwxMiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9w
dGlvbnMoV0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBp
Y2tlcgogICAgICAgICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgdW5hdmFpbGFibGVQ
bHVnaW5CdXR0b25DbGlja2VkLAorICAgICAgICAwLCAvLyBwaW5uZWRTdGF0ZURpZENoYW5nZQor
ICAgICAgICAwLCAvLyBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MKKyAg
ICAgICAgMCwgLy8gZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MKKyAgICAgICAgMCwgLy8gZGlk
Q2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcworICAgICAgICAwLCAvLyBpc1Bs
YXlpbmdBdWRpb0RpZENoYW5nZQorICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCwKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5X
ZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7CiAKQEAgLTU0Niw2ICs1NjMsNyBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVz
KCkKICAgICBXS1ByZWZlcmVuY2VzU2V0Rm9udFNtb290aGluZ0xldmVsKHByZWZlcmVuY2VzLCBr
V0tGb250U21vb3RoaW5nTGV2ZWxOb1N1YnBpeGVsQW50aUFsaWFzaW5nKTsKICAgICBXS1ByZWZl
cmVuY2VzU2V0WFNTQXVkaXRvckVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0V2ViQXVkaW9FbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1By
ZWZlcmVuY2VzU2V0TWVkaWFTdHJlYW1FbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBX
S1ByZWZlcmVuY2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7
CiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQocHJlZmVy
ZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRv
d3NBdXRvbWF0aWNhbGx5KHByZWZlcmVuY2VzLCB0cnVlKTsKQEAgLTY0OSw2ICs2NjcsMTEgQEAg
Ym9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcygpCiAgICAg
bV9pc0dlb2xvY2F0aW9uUGVybWlzc2lvblNldCA9IGZhbHNlOwogICAgIG1faXNHZW9sb2NhdGlv
blBlcm1pc3Npb25BbGxvd2VkID0gZmFsc2U7CiAKKyAgICAvLyBSZXNldCBVc2VyTWVkaWEgcGVy
bWlzc2lvbnMuCisgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuY2xlYXIoKTsKKyAg
ICBtX2lzVXNlck1lZGlhUGVybWlzc2lvblNldCA9IGZhbHNlOworICAgIG1faXNVc2VyTWVkaWFQ
ZXJtaXNzaW9uQWxsb3dlZCA9IGZhbHNlOworCiAgICAgLy8gUmVzZXQgQ3VzdG9tIFBvbGljeSBE
ZWxlZ2F0ZS4KICAgICBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShmYWxzZSwgZmFsc2UpOwogCkBA
IC0xMzY2LDYgKzEzODksMzMgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aGFuZGxlR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdChXS0dlb2xvY2F0aW9uUGVybWlzc2lvblIKICAgICBkZWNpZGVQ
b2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpOwogfQogCit2
b2lkIFRlc3RDb250cm9sbGVyOjpzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGJvb2wgZW5hYmxlZCkK
K3sKKyAgICBtX2lzVXNlck1lZGlhUGVybWlzc2lvblNldCA9IHRydWU7CisgICAgbV9pc1VzZXJN
ZWRpYVBlcm1pc3Npb25BbGxvd2VkID0gZW5hYmxlZDsKKyAgICBkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKTsKK30KKwordm9pZCBUZXN0Q29udHJv
bGxlcjo6aGFuZGxlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCkKK3sKKyAgICBtX3VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5hcHBlbmQodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qp
OworICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJs
ZSgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKQoreworICAgIGlmICghbV9pc1VzZXJNZWRpYVBl
cm1pc3Npb25TZXQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byYgcmVxdWVzdCA6
IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKSB7CisgICAgICAgIGlmIChtX2lzVXNlck1l
ZGlhUGVybWlzc2lvbkFsbG93ZWQpCisgICAgICAgICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0QWxsb3cocmVxdWVzdC5nZXQoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KHJlcXVlc3QuZ2V0KCkpOworICAgIH0KKyAg
ICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigpOworfQorCiB2b2lkIFRlc3RD
b250cm9sbGVyOjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVy
bWlzc2l2ZSkKIHsKICAgICBtX3BvbGljeURlbGVnYXRlRW5hYmxlZCA9IGVuYWJsZWQ7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggNzdkOWI5MS4uYWRhMGE5ZSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtODgsNiArODgsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJs
ZUVycm9yKFdLU3RyaW5nUmVmIGVycm9yTWVzc2FnZSk7CiAgICAgdm9pZCBoYW5kbGVHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZik7
CiAKKyAgICAvLyBNZWRpYVN0cmVhbS4KKyAgICB2b2lkIHNldFVzZXJNZWRpYVBlcm1pc3Npb24o
Ym9vbCk7CisgICAgdm9pZCBoYW5kbGVVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogICAgIC8vIFBvbGljeSBkZWxlZ2F0ZS4KICAg
ICB2b2lkIHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNz
aXZlKTsKIApAQCAtMTM0LDYgKzEzOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVMYXlv
dXRUeXBlRm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYpOwogCiAgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpOworICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKCk7
CiAKICAgICAvLyBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudAogICAgIHN0YXRpYyB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLQ29udGV4dFJlZiwgV0tTdHJp
bmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSwgY29uc3Qgdm9pZCopOwpA
QCAtMjM4LDYgKzI0MywxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0dlb2xvY2F0aW9uUGVy
bWlzc2lvblNldDsKICAgICBib29sIG1faXNHZW9sb2NhdGlvblBlcm1pc3Npb25BbGxvd2VkOwog
CisgICAgVmVjdG9yPFdLUmV0YWluUHRyPFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWY+
PiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0czsKKyAgICBib29sIG1faXNVc2VyTWVkaWFQ
ZXJtaXNzaW9uU2V0OworICAgIGJvb2wgbV9pc1VzZXJNZWRpYVBlcm1pc3Npb25BbGxvd2VkOwor
CiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlRW5hYmxlZDsKICAgICBib29sIG1fcG9saWN5RGVs
ZWdhdGVQZXJtaXNzaXZlOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwCmluZGV4IDM2Mzc3MDMuLjg3YzQ2YzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCkBAIC00NzgsNiArNDc4LDEzIEBAIHZvaWQgVGVzdEludm9jYXRpb246
OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VO
YW1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFVzZXJNZWRpYVBlcm1pc3Npb24iKSkgeworICAg
ICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJ
RCgpKTsKKyAgICAgICAgV0tCb29sZWFuUmVmIGVuYWJsZWRXSyA9IHN0YXRpY19jYXN0PFdLQm9v
bGVhblJlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCku
c2V0VXNlck1lZGlhUGVybWlzc2lvbihXS0Jvb2xlYW5HZXRWYWx1ZShlbmFibGVkV0spKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiU2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUiKSkgewogICAgICAgICBB
U1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLRGljdGlvbmFyeUdldFR5cGVJRCgp
KTsKICAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRp
Y19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOwotLSAKMi4xLjE=
</data>

          </attachment>
      

    </bug>

</bugzilla>