<?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>102151</bug_id>
          
          <creation_ts>2012-11-13 16:35:08 -0800</creation_ts>
          <short_desc>Consolidate FrameLoader::load() into one function taking a FrameLoadRequest</short_desc>
          <delta_ts>2012-11-27 17:08:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>102834</dependson>
    
    <dependson>103371</dependson>
    
    <dependson>103379</dependson>
          <blocked>84883</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="James Simonsen">simonjam</reporter>
          <assigned_to name="James Simonsen">simonjam</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>mifenton</cc>
    
    <cc>ossy</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>roger_fong</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>766170</commentid>
    <comment_count>0</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-13 16:35:08 -0800</bug_when>
    <thetext>Consolidate FrameLoader::load() into one function taking a FrameLoadRequest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766179</commentid>
    <comment_count>1</comment_count>
      <attachid>174026</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-13 16:40:38 -0800</bug_when>
    <thetext>Created attachment 174026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766182</commentid>
    <comment_count>2</comment_count>
      <attachid>174026</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-13 16:51:24 -0800</bug_when>
    <thetext>Comment on attachment 174026
Patch

Attachment 174026 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14833048</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766208</commentid>
    <comment_count>3</comment_count>
      <attachid>174026</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-13 17:14:19 -0800</bug_when>
    <thetext>Comment on attachment 174026
Patch

Attachment 174026 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14817853</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766210</commentid>
    <comment_count>4</comment_count>
      <attachid>174026</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-13 17:16:22 -0800</bug_when>
    <thetext>Comment on attachment 174026
Patch

Attachment 174026 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14821760</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766243</commentid>
    <comment_count>5</comment_count>
      <attachid>174037</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-13 17:50:09 -0800</bug_when>
    <thetext>Created attachment 174037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766251</commentid>
    <comment_count>6</comment_count>
      <attachid>174037</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-13 17:56:23 -0800</bug_when>
    <thetext>Comment on attachment 174037
Patch

It’s neat having only one function to call. But almost every single call site is getting significantly more complex and uglier here. Especially the long expression to fetch the security origin. Is there any way to do this without uglifying so many different call sites?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766264</commentid>
    <comment_count>7</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-13 18:04:40 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 174037 [details])
&gt; It’s neat having only one function to call. But almost every single call site is getting significantly more complex and uglier here. Especially the long expression to fetch the security origin. Is there any way to do this without uglifying so many different call sites?

That particular issue could be fixed by deriving the SecurityOrigin from the Frame. That just needs a new constructor for FrameLoadRequest.

I did not find a single instance where lockHistory was true. Did I miss it? If not, that could be removed.

With those changes, a lot of the call sites could become one-liners ala:

m_frame-&gt;loader()-&gt;load(FrameLoadRequest(m_frame, resourceRequest));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766274</commentid>
    <comment_count>8</comment_count>
      <attachid>174037</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-13 18:11:40 -0800</bug_when>
    <thetext>Comment on attachment 174037
Patch

Attachment 174037 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14823621</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766283</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 18:29:04 -0800</bug_when>
    <thetext>&gt; m_frame-&gt;loader()-&gt;load(FrameLoadRequest(m_frame, resourceRequest));

That might improve the call sites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766312</commentid>
    <comment_count>10</comment_count>
      <attachid>174037</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-13 19:07:38 -0800</bug_when>
    <thetext>Comment on attachment 174037
Patch

Attachment 174037 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14665656</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766321</commentid>
    <comment_count>11</comment_count>
      <attachid>174037</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-13 19:25:44 -0800</bug_when>
    <thetext>Comment on attachment 174037
Patch

Attachment 174037 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14838062</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767357</commentid>
    <comment_count>12</comment_count>
      <attachid>174269</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-14 15:22:18 -0800</bug_when>
    <thetext>Created attachment 174269
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767361</commentid>
    <comment_count>13</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-14 15:25:45 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; m_frame-&gt;loader()-&gt;load(FrameLoadRequest(m_frame, resourceRequest));
&gt; 
&gt; That might improve the call sites.

Done. It cleaned up the most common case. We could add similar constructors for the other two cases: plugins (which pass a frame name) and substitute data. Let me know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767368</commentid>
    <comment_count>14</comment_count>
      <attachid>174269</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-14 15:28:52 -0800</bug_when>
    <thetext>Comment on attachment 174269
Patch

Attachment 174269 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14837493</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767380</commentid>
    <comment_count>15</comment_count>
      <attachid>174269</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-14 15:37:49 -0800</bug_when>
    <thetext>Comment on attachment 174269
Patch

Attachment 174269 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14834497</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767405</commentid>
    <comment_count>16</comment_count>
      <attachid>174269</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-14 16:01:49 -0800</bug_when>
    <thetext>Comment on attachment 174269
Patch

Attachment 174269 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14848100</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767423</commentid>
    <comment_count>17</comment_count>
      <attachid>174269</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-14 16:19:13 -0800</bug_when>
    <thetext>Comment on attachment 174269
Patch

Attachment 174269 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14843305</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767429</commentid>
    <comment_count>18</comment_count>
      <attachid>174282</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-14 16:22:25 -0800</bug_when>
    <thetext>Created attachment 174282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767439</commentid>
    <comment_count>19</comment_count>
      <attachid>174282</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-14 16:31:18 -0800</bug_when>
    <thetext>Comment on attachment 174282
Patch

Attachment 174282 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14848115</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767445</commentid>
    <comment_count>20</comment_count>
      <attachid>174282</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-14 16:35:49 -0800</bug_when>
    <thetext>Comment on attachment 174282
Patch

Attachment 174282 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14834516</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767697</commentid>
    <comment_count>21</comment_count>
      <attachid>174282</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-14 21:36:40 -0800</bug_when>
    <thetext>Comment on attachment 174282
Patch

Attachment 174282 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14832660</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767978</commentid>
    <comment_count>22</comment_count>
      <attachid>174282</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-15 05:21:48 -0800</bug_when>
    <thetext>Comment on attachment 174282
Patch

Attachment 174282 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14832819</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768647</commentid>
    <comment_count>23</comment_count>
      <attachid>174552</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-15 16:29:55 -0800</bug_when>
    <thetext>Created attachment 174552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768764</commentid>
    <comment_count>24</comment_count>
      <attachid>174552</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-15 17:47:52 -0800</bug_when>
    <thetext>Comment on attachment 174552
Patch

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

&gt; Source/WebCore/loader/FrameLoadRequest.h:30
&gt; +#include &quot;Document.h&quot;
&gt; +#include &quot;Frame.h&quot;

These are some large headers.  Do we really need to include them, or can we forward declare the classes?

&gt; Source/WebCore/loader/FrameLoadRequest.h:69
&gt; +    FrameLoadRequest(Frame* frame, const ResourceRequest&amp; resourceRequest)
&gt; +        : m_requester(frame-&gt;document()-&gt;securityOrigin())
&gt; +        , m_resourceRequest(resourceRequest)
&gt; +        , m_lockHistory(false)
&gt; +        , m_shouldCheckNewWindowPolicy(false)
&gt;      {
&gt;      }

Maybe we should move this constructor out of line?

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:753
&gt; +    frameRequest.setSubstituteData(substituteData);

I wonder if it would be worth adding an optional SubstituteData parameter to the above given that you&apos;ve got this pattern in a bunch of places.

&gt; Source/WebKit/chromium/src/WebSharedWorkerImpl.cpp:137
&gt; +    request.setSubstituteData(SubstituteData(buf, String(&quot;text/html&quot;), String(&quot;UTF-8&quot;), KURL()));

There&apos;s no need to call the String constructor explicitly.  The compiler should let you call it implicitly.

Also, I would probably rename buf to buffer and len to length.  This is really a lot of work to load the empty string!

&gt; Source/WebKit/mac/Plugins/WebPluginController.mm:407
&gt; +        frameRequest.setShouldCheckNewWindowPolicy(true);

I like that we don&apos;t have these mysterious &quot;false&quot; parameters anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768856</commentid>
    <comment_count>25</comment_count>
      <attachid>174552</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-15 19:46:24 -0800</bug_when>
    <thetext>Comment on attachment 174552
Patch

Attachment 174552 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14857465</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771413</commentid>
    <comment_count>26</comment_count>
      <attachid>175119</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-19 19:52:13 -0800</bug_when>
    <thetext>Created attachment 175119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771414</commentid>
    <comment_count>27</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-19 19:53:38 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 174552 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174552&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoadRequest.h:30
&gt; &gt; +#include &quot;Document.h&quot;
&gt; &gt; +#include &quot;Frame.h&quot;
&gt; 
&gt; These are some large headers.  Do we really need to include them, or can we forward declare the classes?

Done.

&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoadRequest.h:69
&gt; &gt; +    FrameLoadRequest(Frame* frame, const ResourceRequest&amp; resourceRequest)
&gt; &gt; +        : m_requester(frame-&gt;document()-&gt;securityOrigin())
&gt; &gt; +        , m_resourceRequest(resourceRequest)
&gt; &gt; +        , m_lockHistory(false)
&gt; &gt; +        , m_shouldCheckNewWindowPolicy(false)
&gt; &gt;      {
&gt; &gt;      }
&gt; 
&gt; Maybe we should move this constructor out of line?

Done.

&gt; 
&gt; &gt; Source/WebKit/blackberry/Api/WebPage.cpp:753
&gt; &gt; +    frameRequest.setSubstituteData(substituteData);
&gt; 
&gt; I wonder if it would be worth adding an optional SubstituteData parameter to the above given that you&apos;ve got this pattern in a bunch of places.

Done.

&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebSharedWorkerImpl.cpp:137
&gt; &gt; +    request.setSubstituteData(SubstituteData(buf, String(&quot;text/html&quot;), String(&quot;UTF-8&quot;), KURL()));
&gt; 
&gt; There&apos;s no need to call the String constructor explicitly.  The compiler should let you call it implicitly.

Done.

&gt; 
&gt; Also, I would probably rename buf to buffer and len to length.  This is really a lot of work to load the empty string!

Done and agreed.

&gt; 
&gt; &gt; Source/WebKit/mac/Plugins/WebPluginController.mm:407
&gt; &gt; +        frameRequest.setShouldCheckNewWindowPolicy(true);
&gt; 
&gt; I like that we don&apos;t have these mysterious &quot;false&quot; parameters anymore.

Agreed.

I&apos;ll land this after all the EWS bots go green. It changes a bunch of port-specific code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771980</commentid>
    <comment_count>28</comment_count>
      <attachid>175119</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-20 10:31:16 -0800</bug_when>
    <thetext>Comment on attachment 175119
Patch

Clearing flags on attachment: 175119

Committed r135295: &lt;http://trac.webkit.org/changeset/135295&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771982</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-20 10:31:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772036</commentid>
    <comment_count>30</comment_count>
      <attachid>175119</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-20 11:23:50 -0800</bug_when>
    <thetext>Comment on attachment 175119
Patch

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

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:753
&gt; +    FrameLoadRequest frameRequest(m_mainFrame, request, substituteData);
&gt; +    m_mainFrame-&gt;loader()-&gt;load(frameRequest);

These lines can be combined

&gt; Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp:755
&gt; +    FrameLoadRequest frameRequest(m_frame, originalRequest, errorData);
&gt; +    m_frame-&gt;loader()-&gt;load(frameRequest);

ditto

&gt; Source/WebKit/chromium/src/WebSharedWorkerImpl.cpp:137
&gt; +    FrameLoadRequest request(webFrame-&gt;frame(), ResourceRequest(url), SubstituteData(buffer, &quot;text/html&quot;, &quot;UTF-8&quot;, KURL()));
&gt; +    webFrame-&gt;frame()-&gt;loader()-&gt;load(request);

ditto

&gt; Source/WebKit/efl/ewk/ewk_frame.cpp:421
&gt; +    WebCore::FrameLoadRequest frameRequest(smartData-&gt;frame, request, substituteData);
&gt; +    smartData-&gt;frame-&gt;loader()-&gt;load(frameRequest);

ditto

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:717
&gt; +    FrameLoadRequest frameRequest(coreFrame, request, substituteData);
&gt; +    coreFrame-&gt;loader()-&gt;load(frameRequest);

ditto

&gt; Source/WebKit/mac/WebView/WebFrame.mm:1405
&gt; +    FrameLoadRequest frameRequest(_private-&gt;coreFrame, request, substituteData);
&gt; +    _private-&gt;coreFrame-&gt;loader()-&gt;load(frameRequest);

ditto

&gt; Source/WebKit/qt/Api/qwebframe.cpp:891
&gt; +    FrameLoadRequest frameRequest(d-&gt;frame, request, substituteData);
&gt; +    d-&gt;frame-&gt;loader()-&gt;load(frameRequest);

ditto

&gt; Source/WebKit/qt/Api/qwebframe.cpp:922
&gt; +    FrameLoadRequest frameRequest(d-&gt;frame, request, substituteData);
&gt; +    d-&gt;frame-&gt;loader()-&gt;load(frameRequest);

ditto

&gt; Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp:980
&gt; +    FrameLoadRequest frameRequest(coreFrame, request, substituteData);
&gt; +    coreFrame-&gt;loader()-&gt;load(frameRequest);

ditto

&gt; Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1169
&gt; +    WebCore::FrameLoadRequest frameRequest(m_frame, request, substituteData);
&gt; +    m_frame-&gt;loader()-&gt;load(frameRequest);

ditto

&gt; Source/WebKit/win/WebFrame.cpp:584
&gt; +        FrameLoadRequest frameRequest(coreFrame, request, substituteData);
&gt; +        coreFrame-&gt;loader()-&gt;load(frameRequest);

ditto

&gt; Source/WebKit/wx/WebFrame.cpp:328
&gt; +        WebCore::FrameLoadRequest frameRequest(m_impl-&gt;frame, WebCore::ResourceRequest(url), substituteData);
&gt; +        m_impl-&gt;frame-&gt;loader()-&gt;load(frameRequest);

ditto

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:837
&gt; +    FrameLoadRequest frameRequest(m_mainFrame-&gt;coreFrame(), request, substituteData);
&gt; +    m_mainFrame-&gt;coreFrame()-&gt;loader()-&gt;load(frameRequest);

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772039</commentid>
    <comment_count>31</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-20 11:27:47 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; (From update of attachment 175119 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=175119&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/blackberry/Api/WebPage.cpp:753
&gt; &gt; +    FrameLoadRequest frameRequest(m_mainFrame, request, substituteData);
&gt; &gt; +    m_mainFrame-&gt;loader()-&gt;load(frameRequest);
&gt; 
&gt; These lines can be combined

I&apos;ll get these in a followup patch. There are still a few other load* functions (loadURLIntoChildFrame, loadFrameRequest) that should be combined. I&apos;ll do it then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772041</commentid>
    <comment_count>32</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-20 11:29:37 -0800</bug_when>
    <thetext>Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772146</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-20 13:57:23 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 102834</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772419</commentid>
    <comment_count>34</comment_count>
      <attachid>175329</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-20 20:27:28 -0800</bug_when>
    <thetext>Created attachment 175329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772420</commentid>
    <comment_count>35</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-20 20:30:42 -0800</bug_when>
    <thetext>I removed the ASSERT that caused this to be reverted. The ASSERT was new in this patch and I only added it because I thought it was a good, paranoid thing to do. But, at least with Chrome&apos;s DRT, the baseURL passed in is empty, so it was causing the ASSERT to fail.

Since I&apos;m doing another rev on this patch anyway, I also worked in the change to make most of callsites one-liners.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772422</commentid>
    <comment_count>36</comment_count>
      <attachid>175329</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-20 20:36:09 -0800</bug_when>
    <thetext>Comment on attachment 175329
Patch

Attachment 175329 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14907845</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772430</commentid>
    <comment_count>37</comment_count>
      <attachid>175329</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-20 20:44:27 -0800</bug_when>
    <thetext>Comment on attachment 175329
Patch

Attachment 175329 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14905839</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772434</commentid>
    <comment_count>38</comment_count>
      <attachid>175329</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-20 20:56:53 -0800</bug_when>
    <thetext>Comment on attachment 175329
Patch

Attachment 175329 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14916851</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772437</commentid>
    <comment_count>39</comment_count>
      <attachid>175329</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-20 21:04:17 -0800</bug_when>
    <thetext>Comment on attachment 175329
Patch

Attachment 175329 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14901807</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772448</commentid>
    <comment_count>40</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-11-20 21:36:59 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; Re-opened since this is blocked by bug 102834

And it made plugin related tests crash on Qt:
http://build.webkit.sed.hu/builders/x86-64%20Linux%20Qt%20Release/builds/45265

I think it is unrelated to the assertion mentioned, because it is a relase tester bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773366</commentid>
    <comment_count>41</comment_count>
      <attachid>175539</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-21 15:45:59 -0800</bug_when>
    <thetext>Created attachment 175539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773591</commentid>
    <comment_count>42</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-21 22:48:11 -0800</bug_when>
    <thetext>&gt; And it made plugin related tests crash on Qt:
&gt; http://build.webkit.sed.hu/builders/x86-64%20Linux%20Qt%20Release/builds/45265

^^^ James, did you see this failure with the previous patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775810</commentid>
    <comment_count>43</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-26 13:13:02 -0800</bug_when>
    <thetext>(In reply to comment #42)
&gt; &gt; And it made plugin related tests crash on Qt:
&gt; &gt; http://build.webkit.sed.hu/builders/x86-64%20Linux%20Qt%20Release/builds/45265
&gt; 
&gt; ^^^ James, did you see this failure with the previous patch?

Yeah, I fixed that too. Sorry for not updating the bug with the status before going on vacation.

I also made the callsites one-liners as you&apos;d requested earlier. I will merge and land this again later today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775978</commentid>
    <comment_count>44</comment_count>
      <attachid>176094</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-26 15:33:10 -0800</bug_when>
    <thetext>Created attachment 176094
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776022</commentid>
    <comment_count>45</comment_count>
      <attachid>176094</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 16:18:36 -0800</bug_when>
    <thetext>Comment on attachment 176094
Patch for landing

Clearing flags on attachment: 176094

Committed r135786: &lt;http://trac.webkit.org/changeset/135786&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776023</commentid>
    <comment_count>46</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 16:18:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776190</commentid>
    <comment_count>47</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-11-26 18:34:39 -0800</bug_when>
    <thetext>Caused some tests to fail on Windows port:
http://build.webkit.org/results/Apple%20Win%207%20Release%20(Tests)/r135786%20(30279)/results.html

plugins/get-file-url.html
plugins/geturl-replace-query.html
http/tests/plugins/post-url-file.html

They all seem to time out now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776274</commentid>
    <comment_count>48</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-26 20:58:24 -0800</bug_when>
    <thetext>(In reply to comment #47)
&gt; Caused some tests to fail on Windows port:
&gt; http://build.webkit.org/results/Apple%20Win%207%20Release%20(Tests)/r135786%20(30279)/results.html
&gt; 
&gt; plugins/get-file-url.html
&gt; plugins/geturl-replace-query.html
&gt; http/tests/plugins/post-url-file.html
&gt; 
&gt; They all seem to time out now.

Then we need to roll this out then, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776360</commentid>
    <comment_count>49</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-11-26 22:42:13 -0800</bug_when>
    <thetext>(In reply to comment #47)
&gt; Caused some tests to fail on Windows port:
&gt; http://build.webkit.org/results/Apple%20Win%207%20Release%20(Tests)/r135786%20(30279)/results.html
&gt; 
&gt; plugins/get-file-url.html
&gt; plugins/geturl-replace-query.html
&gt; http/tests/plugins/post-url-file.html
&gt; 
&gt; They all seem to time out now.

Same tests started to timeout on Qt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776486</commentid>
    <comment_count>50</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-11-27 01:42:43 -0800</bug_when>
    <thetext>Rolled out by http://trac.webkit.org/changeset/135837</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777324</commentid>
    <comment_count>51</comment_count>
      <attachid>176358</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-27 16:13:20 -0800</bug_when>
    <thetext>Created attachment 176358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777329</commentid>
    <comment_count>52</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-27 16:14:54 -0800</bug_when>
    <thetext>Okay, I built the Qt port and debugged this. I think we&apos;re good to go now. I&apos;ve tested it on Chrome, Mac, and Qt. No wonder nobody had done this earlier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777336</commentid>
    <comment_count>53</comment_count>
      <attachid>176358</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-27 16:19:46 -0800</bug_when>
    <thetext>Comment on attachment 176358
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777396</commentid>
    <comment_count>54</comment_count>
      <attachid>176358</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-27 17:08:26 -0800</bug_when>
    <thetext>Comment on attachment 176358
Patch

Clearing flags on attachment: 176358

Committed r135952: &lt;http://trac.webkit.org/changeset/135952&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777398</commentid>
    <comment_count>55</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-27 17:08:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174026</attachid>
            <date>2012-11-13 16:40:38 -0800</date>
            <delta_ts>2012-11-13 17:50:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102151-20121113163838.patch</filename>
            <type>text/plain</type>
            <size>42932</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE1ZWRkYTM1ZDI0NWVk
MjNiMDk5ZDUyMWU5Nzk1MmY2ZTczMWQ2Yi4uOWUxMDZkNDVmZTIzMTc2ZTk5MWFmZjY2YjM1NjBl
Mjk2NDNmZTk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTEzICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0
ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9h
ZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZXJlJ3MgYSBGSVhNRSB0aGF0IHdlIGhhdmUgdG9vIG1hbnkgRnJhbWVMb2FkZXI6OmxvYWQq
KCkgZnVuY3Rpb25zLiBUaGlzIHBhdGNoIGNvbnNvbGlkYXRlcyAzIGludG8gMS4KKyAgICAgICAg
VGhlcmUgYXJlIHN0aWxsIGEgZmV3IG1vcmUgbG9hZCBmdW5jdGlvbnMgdGhhdCB3aWxsIGJlIGNv
bnNvbGlkYXRlZCBsYXRlci4gVXNpbmcgRnJhbWVMb2FkUmVxdWVzdCBhcworICAgICAgICB0aGUg
aW50ZXJmYWNlIGludG8gRnJhbWVMb2FkZXIgd2lsbCBhbHNvIHByb3ZpZGUgYSBwbGFjZSB0byBw
YXNzIGluIHRoZSBpbml0aWF0b3IuIEZpbmFsbHksIHRoaXMgbWF0Y2hlcworICAgICAgICB0aGUg
cmVmYWN0b3JpbmcgZG9uZSB3aXRoIENhY2hlZFJlc291cmNlUmVxdWVzdCBhbmQgQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gZnVuY3Rp
b25hbGl0eS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpG
cmFtZUxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNl
dExvY2tIaXN0b3J5KTogVGhlc2UgYXJlIGZvcm1lciBhcmd1bWVudHMgdG8gbG9hZCgpLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6bG9ja0hpc3RvcnkpOiBEaXR0by4KKyAg
ICAgICAgKEZyYW1lTG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVx
dWVzdDo6c2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpzdWJzdGl0dXRlRGF0YSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2V0U3Vic3RpdHV0
ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6Omhhc1N1
YnN0aXR1dGVEYXRhKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKTogTm8gY2hhbmdlIGluIGJlaGF2
aW9yLCBqdXN0IG1lcmdlZCBpdCBhbGwgaW50byBvbmUgZnVuY3Rpb24uCisgICAgICAgICogbG9h
ZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIChGcmFtZUxvYWRlcik6CisgICAgICAgICogcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6
cGVyZm9ybURyYWcpOgorCiAyMDEyLTExLTEzICBNaWxpYW4gV29sZmYgIDxtaWxpYW4ud29sZmZA
a2RhYi5jb20+CiAKICAgICAgICAgW1F0XSBRTlggYnVpbGQgZmFpbHMgZHVlIHRvIHNpZ25hdHVy
ZSBjaGFuZ2UgaW4gZ2wyLmggaGVhZGVyIChnbFNoYWRlclNvdXJjZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCmluZGV4IGQwMDg0MTllYjY3ZDczMjYwNzE2NmYzM2Y3NDMwOGUxMTc4MTFj
OTMuLjJiOTJkYTk2NzkxZTI2MjFhYjczNzY1NTZlZjg0NWMyNmVkYTc2MmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTExLTEzICBKYW1lcyBT
aW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBG
cmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJl
cXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
QXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJp
dmF0ZTo6bG9hZCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRl
Ojpsb2FkU3RyaW5nKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFj
a0JlcnJ5OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQpOgorCiAyMDEyLTExLTEzICBN
aWtlIEZlbnRvbiAgPG1pZmVudG9uQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEZ1
bGx5IHJlc3RvcmUgYm90aCB6b29tIGFuZCBzY3JvbGwgd2hlbiBsZWF2aW5nIGFuIGlucHV0IGZp
ZWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBjNjY2Y2MxOTRjZTgwM2Y1OTNmNzQ4
NWM5Mzg4ZmZjZWNlNGE4ZDc1Li41ZmY4MjAxNWFkOGFlZThkMTg4Nzk2ZDQ5OTAxNTNmYTRjZWQy
ZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEx
LTEzICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBD
b25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBh
IEZyYW1lTG9hZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lSW1wbDo6bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6Omxv
YWREYXRhKToKKyAgICAgICAgKiBzcmMvV2ViU2hhcmVkV29ya2VySW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlNoYXJlZFdvcmtlckltcGw6OmluaXRpYWxpemVMb2FkZXIpOgorCiAyMDEy
LTExLTEzICBEYW4gQ2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgogCiAgICAgICAgIFtWOF0g
TW9yZSBlZmZpY2llbnQgd3JhcHBlciBkaXNwYXRjaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDg3NTNk
MDE5ZTIyZDY0ZjRhZDM5OTM3MDE5NzhiNmEzOGZkYWQ2OTIuLmRmNDZhZjM5ZGI0ZDhjMDBkZmMx
Nzc1YzdlMDRiOWEzOTExYjZmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMi0xMS0xMyAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0
YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoX2V3a19mcmFt
ZV9jb250ZW50c19zZXRfaW50ZXJuYWwpOgorCiAyMDEyLTExLTEyICBLeXVuZ1RhZSBLaW0gIDxr
dGYua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEluIGV3a190aWxlZF9iYWNraW5n
X3N0b3JlX3ByZV9yZW5kZXJfcmVnaW9uLCB0aGUgJ3NsaWNlcicgbWF5IGJlIHVuaW5pdGlhbGl6
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwppbmRleCBkZDc3ZTI1MTYzYmY3NDc5NmY5M2UyNDMwNDJkNGExOTMy
NDY2Zjk1Li4zMWUyYmNkMmY5NjY0Mjk2YzM0ODA2MWQwODBlOTM3ZjUzYTQ0MzY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8
c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVy
Ojpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX3VyaSk6Cisg
ICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfZGF0YSk6CisgICAgICAgICh3ZWJraXRfd2Vi
X2ZyYW1lX2xvYWRfcmVxdWVzdCk6CisKIDIwMTItMTEtMTIgIEpvc2ggUmlja21hciAgPGpyaWNr
QGRldmlvLnVzPgogCiAgICAgICAgIEFkZCBXZWJDb3JlOjpTZXR0aW5nIHRvIGJsb2NrIGRpc3Bs
YXlpbmcgYW5kL29yIHJ1bm5pbmcgaW5zZWN1cmUgY29udGVudCBvbiBzZWN1cmUgcGFnZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCA2N2RiOWViYTdiZTg3ZDVhN2EzMDVmZThkZTE3YzI1YTcxYzdmZTM4
Li4xZWJmMzVlNDY5MjAxZWQ0NjM4MDg5ZDdiMTE4YWM1NWY4YTViYzQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25q
YW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2Fk
KCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbHVnaW5zL1dlYlBsdWdp
bkNvbnRyb2xsZXIubW06CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAg
KC1bV2ViRnJhbWUgbG9hZFJlcXVlc3Q6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9sb2FkRGF0
YTpNSU1FVHlwZTp0ZXh0RW5jb2RpbmdOYW1lOmJhc2VVUkw6dW5yZWFjaGFibGVVUkw6XSk6CisK
IDIwMTItMTEtMTMgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkanVzdCB0aGUgV2ViIEluc3BlY3RvciB3aW5kb3cgdGl0bGUgZnJhbWUgaWYgbmVlZGVk
IHRvIHByZXZlbnQgaXQgZnJvbSBpbnRlcnNlY3RpbmcgdGhlIGRvY2sgYnV0dG9uLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZwppbmRleCBhNjJhZWVkMTY1ODEyMDU2M2Y1NGY1MTcyZTkyOGRiN2Q1ZGIyOGEyLi5kMmYw
M2FlMjdlMWZlYTFlYmE3YzRhY2E2YTI5ZTEwNmE0Yjg4YzRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDEyLTExLTEzICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8g
b25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQXBpL3F3ZWJmcmFtZS5jcHA6CisgICAg
ICAgIChRV2ViRnJhbWU6OlFXZWJGcmFtZSk6CisgICAgICAgIChRV2ViRnJhbWU6OmxvYWQpOgor
ICAgICAgICAoUVdlYkZyYW1lOjpzZXRIdG1sKToKKyAgICAgICAgKFFXZWJGcmFtZTo6c2V0Q29u
dGVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
Y3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEFsdGVybmF0ZUh0bWwp
OgorICAgICAgICAocXRfZHVtcF9zZXRfYWNjZXB0c19lZGl0aW5nKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyQ2xpZW50UXQ6OmNhbGxFcnJvclBhZ2VFeHRlbnNpb24pOgorCiAyMDEyLTExLTA5
ICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKICAgICAg
ICAgW1F0XSBGaXggdHN0X1FXZWJQYWdlOjpmaW5kVGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGZi
ZjdlMjRkMWU3ZTAwNTFhMjc5YWUwNzBhM2IyMmEyODhjZTM1NTIuLmMwNTdiZmY1NGQwNjAzM2Y4
ZDI0YjAwNjkzN2E3Y2YxMDIyYmY0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxMi0xMS0xMyAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlv
biB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjps
b2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJGcmFtZTo6bG9hZERhdGEpOgorCiAyMDEyLTExLTEy
ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TihyMTMwNjQzKTogQXNzZXJ0aW9uIGZhaWx1cmUgd2hlbiBydW5uaW5nIERSVCBpbiBkZWJ1ZyBt
b2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDJmYTNmMTMyZGUxNDMwNDI2YmEwMjBhMGIzYzJl
ZmUxNDczMTM4MjguLmFlNGZiZDVlZWJlMGI1M2I5M2JiMTZkNTU0MjhkMmY4MTkwN2MxZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNp
bW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZy
YW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVx
dWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAy
MTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmxvYWQpOgorCiAyMDEyLTEwLTI0ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBzdHJhdGVneSBm
b3IgbG9hZGVyIGN1c3RvbWl6YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IGU5ZWFmMTMxOWUwMzI3
ZWQ5Y2VjOWZiNDkyMDkzM2I3YTIyNTRjYzcuLjFiMTllYTBiNGRlMGYzZThhZmRiYjE4MzU4OTBl
MjM5ZDJmMWQzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTEtMTMg
IEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNv
bGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJh
bWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpTZXRQYWdl
U291cmNlKToKKwogMjAxMi0xMC0yMiAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVyY290
dGVAZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4ICJBU1NFUlRJT04gRkFJTEVEOiAhZG9j
dW1lbnQtPmluUGFnZUNhY2hlKCkiIHdoZW4gbG9hZGluZyBhIHBhZ2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4
Y2JlOTFmYmE5NmVjNTdmYmE5ZDI3Yjk5NmIwNWM2YTZiMTgwNjYzLi5jNjllNzYyZWFmYjMxMTIy
NTZkMmUyODlmMDM3NWI5ODE4NGY0MzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFr
aW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnBlcmZvcm1GcmFtZUxvYWRVUkxSZXF1ZXN0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmxvYWRVUkxSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9h
ZERhdGEpOgorCiAyMDEyLTExLTEzICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5j
b20+CiAKICAgICAgICAgU3RvcmUgZGVzdHJveWVkIGxheWVycyBpbiB0aGUgcmVtb3RlIGxheWVy
IHRyZWUgdHJhbnNhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYmFjNmFhYTMyOGI3YWU2
MGVhOGVkZWFlZGQzMGQ1ODZiODFjYTcxYy4uZGFkN2JmYTU2YTA0MjA5NGUwYTQ3MjM0OWEzYzAz
MmY1Y2QyNjQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEwNyw5ICsxMDcsNyBAQCBfX1pO
N1dlYkNvcmUxMUZyYW1lTG9hZGVyMjN0aW1lT2ZMYXN0Q29tcGxldGVkTG9hZEV2CiBfX1pON1dl
YkNvcmUxMUZyYW1lTG9hZGVyMjZyZWxvYWRXaXRoT3ZlcnJpZGVFbmNvZGluZ0VSS04zV1RGNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIzMnNldE9yaWdpbmFsVVJMRm9yRG93bmxv
YWRSZXF1ZXN0RVJOU18xNVJlc291cmNlUmVxdWVzdEUKIF9fWk43V2ViQ29yZTExRnJhbWVMb2Fk
ZXI0aW5pdEV2Ci1fX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNVJlc291cmNl
UmVxdWVzdEVSS04zV1RGNlN0cmluZ0ViCi1fX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRF
UktOU18xNVJlc291cmNlUmVxdWVzdEVSS05TXzE0U3Vic3RpdHV0ZURhdGFFYgotX19aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFYgorX19aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJOU18xNkZyYW1lTG9hZFJlcXVlc3RFCiBfX1pON1dlYkNv
cmUxMUZyYW1lTG9hZGVyNnJlbG9hZEViCiBfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyOXNldE9w
ZW5lckVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTEwdGFyZ2V0SXRlbUV2
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAppbmRleCBkNjVhOWI1ZmFj
MmY2MjBmOTcyMjEzMzVlNDdlNDI4ODA5NmM3YzMzLi44NGRjNDA0MTdmNTA4YTkwOWI4ZTk1Zjhl
OGVjNTJiZmMxZDdiMTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0
LmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSwxMiArMzYsMTYgQEAgc3RydWN0IEZyYW1lTG9h
ZFJlcXVlc3QgewogcHVibGljOgogICAgIGV4cGxpY2l0IEZyYW1lTG9hZFJlcXVlc3QoU2VjdXJp
dHlPcmlnaW4qIHJlcXVlc3RlcikKICAgICAgICAgOiBtX3JlcXVlc3RlcihyZXF1ZXN0ZXIpCisg
ICAgICAgICwgbV9sb2NrSGlzdG9yeShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3
V2luZG93UG9saWN5KGZhbHNlKQogICAgIHsKICAgICB9CiAKICAgICBGcmFtZUxvYWRSZXF1ZXN0
KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3Vy
Y2VSZXF1ZXN0KQogICAgICAgICA6IG1fcmVxdWVzdGVyKHJlcXVlc3RlcikKICAgICAgICAgLCBt
X3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgICAgICwgbV9sb2NrSGlzdG9y
eShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQog
ICAgIHsKICAgICB9CiAKQEAgLTQ4LDYgKzUzLDggQEAgcHVibGljOgogICAgICAgICA6IG1fcmVx
dWVzdGVyKHJlcXVlc3RlcikKICAgICAgICAgLCBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJl
cXVlc3QpCiAgICAgICAgICwgbV9mcmFtZU5hbWUoZnJhbWVOYW1lKQorICAgICAgICAsIG1fbG9j
a0hpc3RvcnkoZmFsc2UpCisgICAgICAgICwgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeShm
YWxzZSkKICAgICB7CiAgICAgfQogCkBAIC02MSwxMCArNjgsMjMgQEAgcHVibGljOgogICAgIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZU5hbWU7IH0KICAg
ICB2b2lkIHNldEZyYW1lTmFtZShjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSkgeyBtX2ZyYW1lTmFt
ZSA9IGZyYW1lTmFtZTsgfQogCisgICAgdm9pZCBzZXRMb2NrSGlzdG9yeShib29sIGxvY2tIaXN0
b3J5KSB7IG1fbG9ja0hpc3RvcnkgPSBsb2NrSGlzdG9yeTsgfQorICAgIGJvb2wgbG9ja0hpc3Rv
cnkoKSBjb25zdCB7IHJldHVybiBtX2xvY2tIaXN0b3J5OyB9CisKKyAgICB2b2lkIHNldFNob3Vs
ZENoZWNrTmV3V2luZG93UG9saWN5KGJvb2wgY2hlY2tQb2xpY3kpIHsgbV9zaG91bGRDaGVja05l
d1dpbmRvd1BvbGljeSA9IGNoZWNrUG9saWN5OyB9CisgICAgYm9vbCBzaG91bGRDaGVja05ld1dp
bmRvd1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3k7
IH0KKworICAgIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3Vic3RpdHV0ZURhdGE7IH0KKyAgICB2b2lkIHNldFN1YnN0aXR1dGVEYXRhKGNv
bnN0IFN1YnN0aXR1dGVEYXRhJiBkYXRhKSB7IG1fc3Vic3RpdHV0ZURhdGEgPSBkYXRhOyB9Cisg
ICAgYm9vbCBoYXNTdWJzdGl0dXRlRGF0YSgpIHsgcmV0dXJuIG1fc3Vic3RpdHV0ZURhdGEuaXNW
YWxpZCgpOyB9CisKIHByaXZhdGU6CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX3JlcXVl
c3RlcjsKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7CiAgICAgU3RyaW5n
IG1fZnJhbWVOYW1lOworICAgIGJvb2wgbV9sb2NrSGlzdG9yeTsKKyAgICBib29sIG1fc2hvdWxk
Q2hlY2tOZXdXaW5kb3dQb2xpY3k7CisgICAgU3Vic3RpdHV0ZURhdGEgbV9zdWJzdGl0dXRlRGF0
YTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGNkN2Zl
YWVlN2QyODE5ZjJhZjUzOTY5NjFmZWQ3ZDRjYTA0YTYwYzAuLmYzYTc0MTg3NTM0MTIzMmU1Mzc0
OTU0NjZhODkxY2Y3ZWQ3ZWQzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cApAQCAtMTI1MiwzNiArMTI1MiwzMiBAQCBTdWJzdGl0dXRlRGF0YSBGcmFtZUxvYWRlcjo6ZGVm
YXVsdFN1YnN0aXR1dGVEYXRhRm9yVVJMKGNvbnN0IEtVUkwmIHVybCkKICAgICByZXR1cm4gU3Vi
c3RpdHV0ZURhdGEoU2hhcmVkQnVmZmVyOjpjcmVhdGUoZW5jb2RlZFNyY2RvYy5kYXRhKCksIGVu
Y29kZWRTcmNkb2MubGVuZ3RoKCkpLCAidGV4dC9odG1sIiwgIlVURi04IiwgS1VSTCgpKTsKIH0K
IAotdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGJvb2wgbG9ja0hpc3RvcnkpCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKEZyYW1lTG9hZFJlcXVl
c3QmIHJlcXVlc3QpCiB7Ci0gICAgbG9hZChyZXF1ZXN0LCBkZWZhdWx0U3Vic3RpdHV0ZURhdGFG
b3JVUkwocmVxdWVzdC51cmwoKSksIGxvY2tIaXN0b3J5KTsKLX0KKyAgICBBU1NFUlQoIXJlcXVl
c3QuaXNFbXB0eSgpKTsKIAotdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSwgYm9v
bCBsb2NrSGlzdG9yeSkKLXsKICAgICBpZiAobV9pblN0b3BBbGxMb2FkZXJzKQogICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIAotICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbG9hZGVyID0gbV9j
bGllbnQtPmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKTsKLSAg
ICBpZiAobG9ja0hpc3RvcnkgJiYgbV9kb2N1bWVudExvYWRlcikKLSAgICAgICAgbG9hZGVyLT5z
ZXRDbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkobV9kb2N1bWVudExvYWRlci0+ZGlkQ3Jl
YXRlR2xvYmFsSGlzdG9yeUVudHJ5KCkgPyBtX2RvY3VtZW50TG9hZGVyLT51cmxGb3JIaXN0b3J5
KCkuc3RyaW5nKCkgOiBtX2RvY3VtZW50TG9hZGVyLT5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhp
c3RvcnkoKSk7Ci0gICAgbG9hZChsb2FkZXIuZ2V0KCkpOwotfQogCi12b2lkIEZyYW1lTG9hZGVy
Ojpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBmcmFt
ZU5hbWUsIGJvb2wgbG9ja0hpc3RvcnkpCi17Ci0gICAgaWYgKGZyYW1lTmFtZS5pc0VtcHR5KCkp
IHsKLSAgICAgICAgbG9hZChyZXF1ZXN0LCBsb2NrSGlzdG9yeSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9CisgICAgaWYgKCFyZXF1ZXN0Lmhhc1N1YnN0aXR1dGVEYXRhKCkpIHsKKyAgICAgICAg
aWYgKCFyZXF1ZXN0LmZyYW1lTmFtZSgpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgRnJhbWUq
IGZyYW1lID0gZmluZEZyYW1lRm9yTmF2aWdhdGlvbihyZXF1ZXN0LmZyYW1lTmFtZSgpKTsKKyAg
ICAgICAgICAgIGlmIChmcmFtZSkgeworICAgICAgICAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+
bG9hZChyZXF1ZXN0KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KIAotICAgIEZyYW1lKiBmcmFtZSA9IGZpbmRGcmFtZUZvck5hdmlnYXRpb24oZnJh
bWVOYW1lKTsKLSAgICBpZiAoZnJhbWUpIHsKLSAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5sb2Fk
KHJlcXVlc3QsIGxvY2tIaXN0b3J5KTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXF1ZXN0
LnNldFN1YnN0aXR1dGVEYXRhKGRlZmF1bHRTdWJzdGl0dXRlRGF0YUZvclVSTChyZXF1ZXN0LnJl
c291cmNlUmVxdWVzdCgpLnVybCgpKSk7CisKKyAgICAgICAgaWYgKHJlcXVlc3Quc2hvdWxkQ2hl
Y2tOZXdXaW5kb3dQb2xpY3koKSkKKyAgICAgICAgICAgIHBvbGljeUNoZWNrZXIoKS0+Y2hlY2tO
ZXdXaW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgp
LCBOYXZpZ2F0aW9uVHlwZU90aGVyKSwgRnJhbWVMb2FkZXI6OmNhbGxDb250aW51ZUxvYWRBZnRl
ck5ld1dpbmRvd1BvbGljeSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgMCwgcmVxdWVzdC5m
cmFtZU5hbWUoKSwgdGhpcyk7CiAgICAgfQogCi0gICAgcG9saWN5Q2hlY2tlcigpLT5jaGVja05l
d1dpbmRvd1BvbGljeShOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmlnYXRpb25UeXBlT3Ro
ZXIpLCBGcmFtZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5LCBy
ZXF1ZXN0LCAwLCBmcmFtZU5hbWUsIHRoaXMpOworICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4g
bG9hZGVyID0gbV9jbGllbnQtPmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QucmVzb3VyY2VS
ZXF1ZXN0KCksIHJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKSk7CisgICAgaWYgKHJlcXVlc3QubG9j
a0hpc3RvcnkoKSAmJiBtX2RvY3VtZW50TG9hZGVyKQorICAgICAgICBsb2FkZXItPnNldENsaWVu
dFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeShtX2RvY3VtZW50TG9hZGVyLT5kaWRDcmVhdGVHbG9i
YWxIaXN0b3J5RW50cnkoKSA/IG1fZG9jdW1lbnRMb2FkZXItPnVybEZvckhpc3RvcnkoKS5zdHJp
bmcoKSA6IG1fZG9jdW1lbnRMb2FkZXItPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgp
KTsKKyAgICBsb2FkKGxvYWRlci5nZXQoKSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRX
aXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgYm9vbCBsb2NrSGlzdG9yeSwgRnJhbWVMb2FkVHlw
ZSB0eXBlLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuaAppbmRleCA1MTYzNjlhODY0MjM2ZmRkNGE1ZTRhMDliZDRlNWNkNjMwOTdl
OGFkLi4wYzcyOWZhM2VjZjE2NDM3NWM3MWQzNmI0ZDE2ZmJhOTNjZGYxNTBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMTA0LDkgKzEwNCw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGxvYWRGcmFtZVJlcXVlc3QoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGJvb2wgbG9ja0hp
c3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCwgIC8vIENhbGxlZCBieSBzdWJtaXRGb3Jt
LCBjYWxscyBsb2FkUG9zdFJlcXVlc3QgYW5kIGxvYWRVUkwuCiAgICAgICAgIFBhc3NSZWZQdHI8
RXZlbnQ+LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIFNob3VsZFNlbmRSZWZlcnJlcik7CiAKLSAg
ICB2b2lkIGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBsb2NrSGlzdG9yeSk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGxlZCBieSBXZWJGcmFt
ZSwgY2FsbHMgbG9hZChSZXNvdXJjZVJlcXVlc3QsIFN1YnN0aXR1dGVEYXRhKS4KLSAgICB2b2lk
IGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmLCBib29s
IGxvY2tIaXN0b3J5KTsgICAgICAgICAgICAgICAgIC8vIENhbGxlZCBib3RoIGJ5IFdlYkZyYW1l
IGFuZCBpbnRlcm5hbGx5LCBjYWxscyBsb2FkKERvY3VtZW50TG9hZGVyKikuCi0gICAgdm9pZCBs
b2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBib29s
IGxvY2tIaXN0b3J5KTsgICAgICAgICAgICAgICAvLyBDYWxsZWQgYnkgV2ViUGx1Z2luQ29udHJv
bGxlci4KKyAgICB2b2lkIGxvYWQoRnJhbWVMb2FkUmVxdWVzdCYpOworCiAjaWYgRU5BQkxFKFdF
Ql9BUkNISVZFKSB8fCBFTkFCTEUoTUhUTUwpCiAgICAgdm9pZCBsb2FkQXJjaGl2ZShQYXNzUmVm
UHRyPEFyY2hpdmU+KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cAppbmRleCA4MWVhM2Y5NWRkMDQ2OTRkZjAzNGIwNzYwYWUwMGM2YTg2MWFmNWE4Li4yMDA5NTgx
NWNiOWQ5OTY4MjhmYmQ3YjIzMzc3ZDAwNjAzYjBkMDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxl
ci5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTIzNyw3ICsy
MzgsOSBAQCBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZyhEcmFnRGF0YSogZHJhZ0Rh
dGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fY2xpZW50LT53aWxsUGVyZm9ybURy
YWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkLCBkcmFnRGF0YSk7
Ci0gICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoUmVzb3VyY2VSZXF1ZXN0
KGRyYWdEYXRhLT5hc1VSTChtX3BhZ2UtPm1haW5GcmFtZSgpKSksIGZhbHNlKTsKKyAgICBGcmFt
ZUxvYWRSZXF1ZXN0IHJlcXVlc3QobV9wYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KGRyYWdEYXRhLT5hc1VSTChtX3BhZ2UtPm1h
aW5GcmFtZSgpKSkpOworICAgIHJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgIG1f
cGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QpOwogICAgIHJldHVybiB0
cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCAy
MzNmMjE0NGYwNTgyMzAxMDcyOTU4NDNiMmU5ZWVhYTEwYzBiMGE3Li4yNDY0NDBhYWFmYjIzZWJj
M2MwZjNhMDFhNDUwMjJlNWYzOWRiYmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViUGFnZS5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJFZGl0b3JDbGllbnRCbGFj
a0JlcnJ5LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnRCbGFja0JlcnJ5LmgiCiAjaWYgIWRlZmluZWQoUFVCTElDX0JVSUxEKSB8fCAhUFVCTElD
X0JVSUxECiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCkBAIC03MDEsNyArNzAy
LDExIEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmxvYWQoY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZv
cm06OlN0cmluZyYgdXJsLCBjb25zdCBCbGFja0JlCiAKICAgICByZXF1ZXN0LnNldFN1Z2dlc3Rl
ZFNhdmVOYW1lKHN1Z2dlc3RlZFNhdmVOYW1lKTsKIAotICAgIG1fbWFpbkZyYW1lLT5sb2FkZXIo
KS0+bG9hZChyZXF1ZXN0LCAiIiAvKiBuYW1lICovLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVx
dWVzdCBmcmFtZVJlcXVlc3QobV9tYWluRnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCksIHJlcXVlc3QpOworICAgIGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUoIiIpOworICAgIGZy
YW1lUmVxdWVzdC5zZXRMb2NrSGlzdG9yeShmYWxzZSk7CisgICAgZnJhbWVSZXF1ZXN0LnNldFNo
b3VsZENoZWNrTmV3V2luZG93UG9saWN5KHRydWUpOworICAgIG1fbWFpbkZyYW1lLT5sb2FkZXIo
KS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmxvYWQoY29uc3QgQmxh
Y2tCZXJyeTo6UGxhdGZvcm06OlN0cmluZyYgdXJsLCBjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6U3RyaW5nJiBuZXR3b3JrVG9rZW4sIGJvb2wgaXNJbml0aWFsKQpAQCAtNzQ2LDcgKzc1MSwx
MCBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjpsb2FkU3RyaW5nKGNvbnN0IEJsYWNrQmVycnk6OlBs
YXRmb3JtOjpTdHJpbmcmIHN0cmluZywgY29ucwogICAgICAgICBleHRyYWN0TUlNRVR5cGVGcm9t
TWVkaWFUeXBlKGNvbnRlbnRUeXBlKSwKICAgICAgICAgZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFU
eXBlKGNvbnRlbnRUeXBlKSwKICAgICAgICAgIWZhaWxpbmdVUkwuZW1wdHkoKSA/IHBhcnNlVXJs
KGZhaWxpbmdVUkwpIDogS1VSTCgpKTsKLSAgICBtX21haW5GcmFtZS0+bG9hZGVyKCktPmxvYWQo
cmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZy
YW1lUmVxdWVzdChtX21haW5GcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVx
dWVzdCk7CisgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1YnN0aXR1dGVEYXRh
KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgIG1fbWFpbkZy
YW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiB2b2lkIFdlYlBhZ2U6Omxv
YWRTdHJpbmcoY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0cmluZyYgc3RyaW5nLCBjb25z
dCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBiYXNlVVJMLCBjb25zdCBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6U3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06
OlN0cmluZyYgZmFpbGluZ1VSTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tC
ZXJyeS5jcHAKaW5kZXggOTY2OWM5MzhiZDg5ODE0YThjZjMxNmQ3OTMwOTAyZmU0OTQzOTk3ZC4u
ODEzNTQyMjM0Y2I0ZWYzODc5ODE3NzE3YzNjODUwOWRkNGNlMzkyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs
dWRlICJDcmVkZW50aWFsVHJhbnNmb3JtRGF0YS5oIgogI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVl
Q2xpZW50LmgiCiAjaW5jbHVkZSAiRXh0ZXJuYWxFeHRlbnNpb24uaCIKKyNpbmNsdWRlICJGcmFt
ZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dEJsYWNrQmVy
cnkuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQu
aCIKQEAgLTc0Niw3ICs3NDcsMTAgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6
OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUUKICAgICB9CiAK
ICAgICBtX2xvYWRpbmdFcnJvclBhZ2UgPSB0cnVlOwotICAgIG1fZnJhbWUtPmxvYWRlcigpLT5s
b2FkKG9yaWdpbmFsUmVxdWVzdCwgZXJyb3JEYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVx
dWVzdCBmcmFtZVJlcXVlc3QobV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwg
b3JpZ2luYWxSZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoZXJy
b3JEYXRhKTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgIG1f
ZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKEZyYW1lUG9saWN5RnVu
Y3Rpb24gZnVuY3Rpb24sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IDE5MzY0NzZmM2FlMWEyMDE0MDMzZGMz
ZmRiN2UwY2FiNWNhOGM3ZjIuLjk4ZGQxNjM1NTdhNzM5MzFjYjE5OGNiZWZlY2I1MTgwNTEwMjZm
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAt
OTc1LDcgKzk3NSw5IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkUmVxdWVzdChjb25zdCBXZWJV
UkxSZXF1ZXN0JiByZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZnJhbWUo
KS0+bG9hZGVyKCktPmxvYWQocmVzb3VyY2VSZXF1ZXN0LCBmYWxzZSk7CisgICAgRnJhbWVMb2Fk
UmVxdWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KSwgcmVzb3VyY2VSZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFs
c2UpOworICAgIGZyYW1lKCktPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIHZv
aWQgV2ViRnJhbWVJbXBsOjpsb2FkSGlzdG9yeUl0ZW0oY29uc3QgV2ViSGlzdG9yeUl0ZW0mIGl0
ZW0pCkBAIC05OTQsOCArOTk2LDYgQEAgdm9pZCBXZWJGcmFtZUltcGw6OmxvYWRIaXN0b3J5SXRl
bShjb25zdCBXZWJIaXN0b3J5SXRlbSYgaXRlbSkKIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkRGF0
YShjb25zdCBXZWJEYXRhJiBkYXRhLCBjb25zdCBXZWJTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBX
ZWJTdHJpbmcmIHRleHRFbmNvZGluZywgY29uc3QgV2ViVVJMJiBiYXNlVVJMLCBjb25zdCBXZWJV
UkwmIHVucmVhY2hhYmxlVVJMLCBib29sIHJlcGxhY2UpCiB7CiAgICAgQVNTRVJUKGZyYW1lKCkp
OwotICAgIFN1YnN0aXR1dGVEYXRhIHN1YnN0RGF0YShkYXRhLCBtaW1lVHlwZSwgdGV4dEVuY29k
aW5nLCB1bnJlYWNoYWJsZVVSTCk7Ci0gICAgQVNTRVJUKHN1YnN0RGF0YS5pc1ZhbGlkKCkpOwog
CiAgICAgLy8gSWYgd2UgYXJlIGxvYWRpbmcgc3Vic3RpdHV0ZSBkYXRhIHRvIHJlcGxhY2UgYW4g
ZXhpc3RpbmcgbG9hZCwgdGhlbgogICAgIC8vIGluaGVyaXQgYWxsIG9mIHRoZSBwcm9wZXJ0aWVz
IG9mIHRoYXQgb3JpZ2luYWwgcmVxdWVzdC4gIFRoaXMgd2F5LApAQCAtMTAwOCw3ICsxMDA4LDEx
IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkRGF0YShjb25zdCBXZWJEYXRhJiBkYXRhLCBjb25z
dCBXZWJTdHJpbmcmIG1pbWVUeXBlLCBjb25zCiAgICAgICAgIHJlcXVlc3QgPSBmcmFtZSgpLT5s
b2FkZXIoKS0+b3JpZ2luYWxSZXF1ZXN0KCk7CiAgICAgcmVxdWVzdC5zZXRVUkwoYmFzZVVSTCk7
CiAKLSAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdERhdGEsIGZhbHNl
KTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChmcmFtZSgpLT5kb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hp
c3RvcnkoZmFsc2UpOworICAgIGZyYW1lUmVxdWVzdC5zZXRTdWJzdGl0dXRlRGF0YShTdWJzdGl0
dXRlRGF0YShkYXRhLCBtaW1lVHlwZSwgdGV4dEVuY29kaW5nLCB1bnJlYWNoYWJsZVVSTCkpOwor
ICAgIEFTU0VSVChmcmFtZVJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKS5pc1ZhbGlkKCkpOworICAg
IGZyYW1lKCktPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAgICAgaWYgKHJlcGxhY2Up
IHsKICAgICAgICAgLy8gRG8gdGhpcyB0byBmb3JjZSBXZWJLaXQgdG8gdHJlYXQgdGhlIGxvYWQg
YXMgcmVwbGFjaW5nIHRoZSBjdXJyZW50bHkKICAgICAgICAgLy8gbG9hZGVkIHBhZ2UuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTaGFyZWRXb3JrZXJJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwCmlu
ZGV4IDVjZjk5OTg1MTNhZWEzNTk2ZTBkNWYxNDg4NmZhOWU5MTdmMWZmYmEuLjE3ODVmYmNjYzEz
ZDExNGUwMWQ0YjgxOTY0MjY2NDBhNDFmOTNlM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAj
aW5jbHVkZSAiQ3Jvc3NUaHJlYWRUYXNrLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUYXNrLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiR3JvdXBTZXR0aW5ncy5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJNZXNz
YWdlRXZlbnQuaCIKQEAgLTEzMiw4ICsxMzMsMTAgQEAgdm9pZCBXZWJTaGFyZWRXb3JrZXJJbXBs
Ojppbml0aWFsaXplTG9hZGVyKGNvbnN0IFdlYlVSTCYgdXJsKQogICAgIENTdHJpbmcgY29udGVu
dCgiIik7CiAgICAgaW50IGxlbiA9IHN0YXRpY19jYXN0PGludD4oY29udGVudC5sZW5ndGgoKSk7
CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGNvbnRl
bnQuZGF0YSgpLCBsZW4pKTsKLSAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdERhdGEoYnVmLCBTdHJp
bmcoInRleHQvaHRtbCIpLCBTdHJpbmcoIlVURi04IiksIEtVUkwoKSk7Ci0gICAgd2ViRnJhbWUt
PmZyYW1lKCktPmxvYWRlcigpLT5sb2FkKFJlc291cmNlUmVxdWVzdCh1cmwpLCBzdWJzdERhdGEs
IGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3Qod2ViRnJhbWUtPmZyYW1lKCkt
PmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmwpKTsKKyAg
ICByZXF1ZXN0LnNldExvY2tIaXN0b3J5KGZhbHNlKTsKKyAgICByZXF1ZXN0LnNldFN1YnN0aXR1
dGVEYXRhKFN1YnN0aXR1dGVEYXRhKGJ1ZiwgU3RyaW5nKCJ0ZXh0L2h0bWwiKSwgU3RyaW5nKCJV
VEYtOCIpLCBLVVJMKCkpKTsKKyAgICB3ZWJGcmFtZS0+ZnJhbWUoKS0+bG9hZGVyKCktPmxvYWQo
cmVxdWVzdCk7CiAKICAgICAvLyBUaGlzIGRvY3VtZW50IHdpbGwgYmUgdXNlZCBhcyAnbG9hZGlu
ZyBjb250ZXh0JyBmb3IgdGhlIHdvcmtlci4KICAgICBtX2xvYWRpbmdEb2N1bWVudCA9IHdlYkZy
YW1lLT5mcmFtZSgpLT5kb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApp
bmRleCA3MzhhOTM5MThmMzAxOTFiNTI2YzZmZjE4YjI5NWFmYzliN2I5YTdkLi4xYzAzNjY2MDY3
Y2IwMzYxZTg3MGNlYzk4ZDQ2MDk4ZmQyNmI1ZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Zy
YW1lLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJv
bGxlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudEVmbC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxD
b2xsZWN0aW9uLmgiCkBAIC00MTYsNyArNDE3LDEwIEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a19m
cmFtZV9jb250ZW50c19zZXRfaW50ZXJuYWwoRXdrX0ZyYW1lX1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
CiAgICAgICAgIGJhc2VLVVJMLCB1bnJlYWNoYWJsZUtVUkwpOwogICAgIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KGJhc2VLVVJMKTsKIAotICAgIHNtYXJ0RGF0YS0+ZnJhbWUtPmxv
YWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgV2ViQ29y
ZTo6RnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3Qoc21hcnREYXRhLT5mcmFtZS0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdCk7CisgICAgZnJhbWVSZXF1ZXN0LnNldFN1
YnN0aXR1dGVEYXRhKHN1YnN0aXR1dGVEYXRhKTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hp
c3RvcnkoZmFsc2UpOworICAgIHNtYXJ0RGF0YS0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1l
UmVxdWVzdCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4IGMxMDMzZTYxZGJjMGE0MDI5MmQxYTYxZWRkYTFk
OTY1MzI3ODc5YjYuLjE0ZDlmYWMwNGI0Y2ZmMGMxYTIwNzMwOGU4YWI1MDk5Mjk0NDI4MGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyR3RrLmgiCisjaW5jbHVkZSAiRnJh
bWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnRHdGsuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgpAQCAtNjkz
LDcgKzY5NCw5IEBAIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9sb2FkX3VyaShXZWJLaXRXZWJGcmFt
ZSogZnJhbWUsIGNvbnN0IGdjaGFyKiB1cmkpCiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoUmVzb3VyY2VSZXF1ZXN0
KEtVUkwoS1VSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVyaSkpKSwgZmFsc2UpOworICAgIEZyYW1l
TG9hZFJlcXVlc3QgcmVxdWVzdChjb3JlRnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCksIFJlc291cmNlUmVxdWVzdChLVVJMKEtVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh1cmkpKSkp
OworICAgIHJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgIGNvcmVGcmFtZS0+bG9h
ZGVyKCktPmxvYWQocmVxdWVzdCk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVf
bG9hZF9kYXRhKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGNvbnRlbnQsIGNv
bnN0IGdjaGFyKiBtaW1lVHlwZSwgY29uc3QgZ2NoYXIqIGVuY29kaW5nLCBjb25zdCBnY2hhciog
YmFzZVVSTCwgY29uc3QgZ2NoYXIqIHVucmVhY2hhYmxlVVJMKQpAQCAtNzEyLDcgKzcxNSwxMCBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfZGF0YShXZWJLaXRXZWJGcmFtZSog
ZnJhbWUsIGNvbnN0IGdjaGFyKiBjb250ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEtVUkwoS1VSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVucmVhY2hhYmxlVVJMKSksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS1VSTChLVVJMKCksIFN0cmluZzo6ZnJvbVVU
RjgodW5yZWFjaGFibGVVUkwpKSk7CiAKLSAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKHJl
cXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFt
ZVJlcXVlc3QoY29yZUZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0
KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoc3Vic3RpdHV0ZURhdGEpOwor
ICAgIGZyYW1lUmVxdWVzdC5zZXRMb2NrSGlzdG9yeShmYWxzZSk7CisgICAgY29yZUZyYW1lLT5s
b2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiAvKioKQEAgLTc4MSw3ICs3ODcsOSBA
QCB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9yZXF1ZXN0KFdlYktpdFdlYkZyYW1lKiBmcmFt
ZSwgV2ViS2l0TmV0d29ya1JlcXVlc3QqCiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoY29yZShyZXF1ZXN0KSwgZmFs
c2UpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGNvcmVGcmFtZS0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgY29yZShyZXF1ZXN0KSk7CisgICAgZnJhbWVSZXF1ZXN0
LnNldExvY2tIaXN0b3J5KGZhbHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKGZy
YW1lUmVxdWVzdCk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJQbHVnaW5Db250cm9sbGVyLm1tCmluZGV4IDNmZjEwOTA4NjgxZDFhZTcyYTYwOGY0YzVjOGI5
YTRkNWIyMGMxNjguLmUwZjUxNDI3NTRhMGNhOGE4NDU3MWFiZDUzNTBhNTY2YWFlYjMxNzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0K
QEAgLTUwLDYgKzUwLDcgQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNVUkxSZXF1ZXN0Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1l
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZFJlcXVlc3QuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRnJhbWVMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KQEAgLTQwMSw3ICs0MDIsMTEgQEAgc3RhdGlj
IHZvaWQgY2FuY2VsT3V0c3RhbmRpbmdDaGVjayhjb25zdCB2b2lkICppdGVtLCB2b2lkICpjb250
ZXh0KQogICAgICAgICAgICAgTE9HX0VSUk9SKCJjb3VsZCBub3QgbG9hZCBVUkwgJUAiLCBbcmVx
dWVzdCBVUkxdKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBjb3Jl
KGZyYW1lKS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgdGFyZ2V0LCBmYWxzZSk7CisgICAgICAg
IEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGNvcmUoZnJhbWUpLT5kb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0KTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1l
TmFtZSh0YXJnZXQpOworICAgICAgICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2Up
OworICAgICAgICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kodHJ1
ZSk7CisgICAgICAgIGNvcmUoZnJhbWUpLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggZjkxZmZk
OGU1MWJkNGRhY2I3YWYwYTFjYzRmMjY1MTNjM2VkYTgzMi4uNjAzMjMyMTUyYjQwYWMyZDZmZWNh
YzE0YTBiZTllM2U3MWIwOWY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1t
CkBAIC02Nyw2ICs2Nyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50SGFuZGxlci5oPgogI2lt
cG9ydCA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZFJlcXVlc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJh
bWVMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVUcmVlLmg+CkBAIC0xMzY5LDcgKzEzNzAsOSBAQCBzdGF0
aWMgYm9vbCBuZWVkc01pY3Jvc29mdE1lc3NlbmdlckRPTURvY3VtZW50V29ya2Fyb3VuZCgpCiAg
ICAgaWYgKCFyZXNvdXJjZVJlcXVlc3QudXJsKCkuaXNWYWxpZCgpICYmICFyZXNvdXJjZVJlcXVl
c3QudXJsKCkuaXNFbXB0eSgpKQogICAgICAgICByZXNvdXJjZVJlcXVlc3Quc2V0VVJMKFtOU1VS
TCBVUkxXaXRoU3RyaW5nOltAImZpbGU6IiBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpbW3JlcXVl
c3QgVVJMXSBhYnNvbHV0ZVN0cmluZ11dXSk7CiAKLSAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5s
b2FkKHJlc291cmNlUmVxdWVzdCwgZmFsc2UpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVS
ZXF1ZXN0KGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVzb3VyY2VS
ZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgIGNv
cmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKIH0KIAogc3RhdGljIE5TVVJM
ICpjcmVhdGVVbmlxdWVXZWJEYXRhVVJMKCkKQEAgLTE0MDAsNyArMTQwMywxMCBAQCBzdGF0aWMg
TlNVUkwgKmNyZWF0ZVVuaXF1ZVdlYkRhdGFVUkwoKQogCiAgICAgU3Vic3RpdHV0ZURhdGEgc3Vi
c3RpdHV0ZURhdGEoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjp3cmFwTlNEYXRhKGRhdGEpLCBNSU1F
VHlwZSwgZW5jb2RpbmdOYW1lLCBbdW5yZWFjaGFibGVVUkwgYWJzb2x1dGVVUkxdLCByZXNwb25z
ZVVSTCk7CiAKLSAgICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0
LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1
ZXN0KF9wcml2YXRlLT5jb3JlRnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHJl
cXVlc3QpOworICAgIGZyYW1lUmVxdWVzdC5zZXRTdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0
YSk7CisgICAgZnJhbWVSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGZhbHNlKTsKKyAgICBfcHJpdmF0
ZS0+Y29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4IDBhY2NkMzM2MmRkNjg3MzRjZmRmMjEzODVlYzM4
MDY0ZjJjMTMxYmYuLjE1ZjA2MTA4Njk2OTE4NDI4MzYzNzIzMjBmNjJkMjgwM2ZjMmNiM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkVsZW1lbnQuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFt
ZVRyZWUuaCIKQEAgLTQ4MSw3ICs0ODIsMTEgQEAgUVdlYkZyYW1lOjpRV2ViRnJhbWUoUVdlYlBh
Z2UgKnBhcmVudCwgUVdlYkZyYW1lRGF0YSAqZnJhbWVEYXRhKQogCiAgICAgaWYgKCFmcmFtZURh
dGEtPnVybC5pc0VtcHR5KCkpIHsKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QoZnJhbWVEYXRhLT51cmwsIGZyYW1lRGF0YS0+cmVmZXJyZXIpOwotICAgICAgICBkLT5m
cmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgZnJhbWVEYXRhLT5uYW1lLCBmYWxzZSk7Cisg
ICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGQtPmZyYW1lLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0KTsKKyAgICAgICAgZnJhbWVSZXF1
ZXN0LnNldEZyYW1lTmFtZShmcmFtZURhdGEtPm5hbWUpOworICAgICAgICBmcmFtZVJlcXVlc3Qu
c2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgICAgICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hl
Y2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7CisgICAgICAgIGQtPmZyYW1lLT5sb2FkZXIoKS0+bG9h
ZChmcmFtZVJlcXVlc3QpOwogICAgIH0KICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQog
ICAgIGNvbm5lY3QoJmQtPm1fb3JpZW50YXRpb24sIFNJR05BTChyZWFkaW5nQ2hhbmdlZCgpKSwg
dGhpcywgU0xPVChfcV9vcmllbnRhdGlvbkNoYW5nZWQoKSkpOwpAQCAtODQ2LDcgKzg1MSw5IEBA
IHZvaWQgUVdlYkZyYW1lOjpsb2FkKGNvbnN0IFFOZXR3b3JrUmVxdWVzdCAmcmVxLAogICAgIGlm
ICghYm9keS5pc0VtcHR5KCkpCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoV2ViQ29yZTo6
Rm9ybURhdGE6OmNyZWF0ZShib2R5LmNvbnN0RGF0YSgpLCBib2R5LnNpemUoKSkpOwogCi0gICAg
ZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIGZhbHNlKTsKKyAgICBGcmFtZUxvYWRS
ZXF1ZXN0IGZyYW1lUmVxdWVzdChkLT5mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KSwgcmVxdWVzdCk7CisgICAgZnJhbWVSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGZhbHNlKTsKKyAg
ICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKIAogICAgIGlmIChkLT5w
YXJlbnRGcmFtZSgpKQogICAgICAgICBkLT5wYWdlLT5kLT5pbnNpZGVPcGVuQ2FsbCA9IGZhbHNl
OwpAQCAtODgzLDcgKzg5MCwxMCBAQCB2b2lkIFFXZWJGcmFtZTo6c2V0SHRtbChjb25zdCBRU3Ry
aW5nICZodG1sLCBjb25zdCBRVXJsICZiYXNlVXJsKQogICAgIGNvbnN0IFFCeXRlQXJyYXkgdXRm
OCA9IGh0bWwudG9VdGY4KCk7CiAgICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVy
PiBkYXRhID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUodXRmOC5jb25zdERhdGEoKSwg
dXRmOC5sZW5ndGgoKSk7CiAgICAgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURh
dGEoZGF0YSwgV1RGOjpTdHJpbmcoInRleHQvaHRtbCIpLCBXVEY6OlN0cmluZygidXRmLTgiKSwg
S1VSTCgpKTsKLSAgICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0
ZURhdGEsIGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChkLT5mcmFt
ZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdCk7CisgICAgZnJhbWVSZXF1
ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1YnN0aXR1dGVEYXRhKTsKKyAgICBmcmFtZVJlcXVlc3Qu
c2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgIGQtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFt
ZVJlcXVlc3QpOwogfQogCiAvKiEKQEAgLTkxMyw3ICs5MjMsMTAgQEAgdm9pZCBRV2ViRnJhbWU6
OnNldENvbnRlbnQoY29uc3QgUUJ5dGVBcnJheSAmZGF0YSwgY29uc3QgUVN0cmluZyAmbWltZVR5
cGUsIGNvbnMKICAgICAgICAgZW5jb2RpbmcgPSBleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUo
bWltZVR5cGUpOwogICAgIH0KICAgICBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRl
RGF0YShidWZmZXIsIFdURjo6U3RyaW5nKGFjdHVhbE1pbWVUeXBlKSwgZW5jb2RpbmcsIEtVUkwo
KSk7Ci0gICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRh
LCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZC0+ZnJhbWUtPmRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHJlcXVlc3QpOworICAgIGZyYW1lUmVxdWVzdC5z
ZXRTdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0YSk7CisgICAgZnJhbWVSZXF1ZXN0LnNldExv
Y2tIaXN0b3J5KGZhbHNlKTsKKyAgICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1
ZXN0KTsKIH0KIAogLyohCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IGRhNzkzMTExZmFiZGIz
YTA5NDkxMjJiMGU2ZDA0YTZlZWZiNDUxMjYuLjY1YWViODkzM2MyNjY5MzkyODkzN2EzYTIwYzg2
ZmQzYWQ1YmEwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAj
aW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyQ2xpZW50UXQuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJH
Q0NvbnRyb2xsZXIuaCIKQEAgLTk3NSw3ICs5NzYsMTAgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdDo6c2V0QWx0ZXJuYXRlSHRtbChRV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBRU3RyaW5n
JgogICAgIGNvbnN0IFFCeXRlQXJyYXkgdXRmOCA9IGh0bWwudG9VdGY4KCk7CiAgICAgV1RGOjpS
ZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBkYXRhID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVy
OjpjcmVhdGUodXRmOC5jb25zdERhdGEoKSwgdXRmOC5sZW5ndGgoKSk7CiAgICAgV2ViQ29yZTo6
U3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoZGF0YSwgV1RGOjpTdHJpbmcoInRleHQvaHRt
bCIpLCBXVEY6OlN0cmluZygidXRmLTgiKSwgZmFpbGluZ1VybCk7Ci0gICAgY29yZUZyYW1lLT5s
b2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIEZyYW1l
TG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKSwgcmVxdWVzdCk7CisgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1
YnN0aXR1dGVEYXRhKTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOwor
ICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKIH0KIAogdm9pZCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6Y29uZmlybUNvbXBvc2l0aW9uKFFXZWJQYWdlKiBwYWdl
LCBjb25zdCBjaGFyKiB0ZXh0KQpAQCAtMTE5OSw0ICsxMjAzLDMgQEAgdm9pZCBRV0VCS0lUX0VY
UE9SVCBxdF9kdW1wX3NldF9hY2NlcHRzX2VkaXRpbmcoYm9vbCBiKQogewogICAgIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0OjpkdW1wU2V0QWNjZXB0c0VkaXRpbmcoYik7CiB9Ci0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQu
Y3BwCmluZGV4IDA3MzFkOTMxNThhMTZmOTczMGU4NDFlMjA4MTdhODgyMmI0ZTYxNDguLmMzOGFi
ODk0ZTAxZDA1N2VlNmMwYTk4MzRiZDRjNjc5YjQwNjIxOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAt
MzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJE
b2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZvcm1TdGF0ZS5oIgorI2luY2x1ZGUgIkZyYW1l
TG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaCIKICNp
bmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTExNjQsNyAr
MTE2NSwxMCBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNhbGxFcnJvclBhZ2VFeHRlbnNp
b24oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZQogICAgIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KGJhc2VVcmwpOwogICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUob3V0cHV0LmNv
bnRlbnQuY29uc3REYXRhKCksIG91dHB1dC5jb250ZW50Lmxlbmd0aCgpKTsKICAgICBXZWJDb3Jl
OjpTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShidWZmZXIsIG91dHB1dC5jb250ZW50VHlw
ZSwgb3V0cHV0LmVuY29kaW5nLCBmYWlsaW5nVXJsKTsKLSAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+
bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIFdlYkNvcmU6OkZyYW1l
TG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCkpOworICAgIGZyYW1lUmVxdWVzdC5zZXRTdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0
YSk7CisgICAgZnJhbWVSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGZhbHNlKTsKKyAgICBtX2ZyYW1l
LT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggZWU5Y2RkOGM0NDE4ZDhhMjdlNjgwNGYwMjA4OTViYjU1
YjIzODJjNS4uMDdmNDUwNDRlZGYwOGE4NDEzYTk3ZmE1ZTQ4NjFlYTBhNjJiZWIzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkZyYW1lLmNwcApAQCAtNTU2LDcgKzU1Niw5IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgV2ViRnJhbWU6OmxvYWRSZXF1ZXN0KAogICAgIGlmICghY29yZUZyYW1lKQogICAgICAg
ICByZXR1cm4gRV9GQUlMOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0
SW1wbC0+cmVzb3VyY2VSZXF1ZXN0KCksIGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZy
YW1lUmVxdWVzdChjb3JlRnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHJlcXVl
c3RJbXBsLT5yZXNvdXJjZVJlcXVlc3QoKSk7CisgICAgZnJhbWVSZXF1ZXN0LnNldExvY2tIaXN0
b3J5KGZhbHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7
CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKQEAgLTU3OSw4ICs1ODEsMTIgQEAgdm9pZCBXZWJGcmFt
ZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGRhdGEsIEJTVFIg
bWltZVR5cGUsIEIKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShkYXRhLCBtaW1l
VHlwZVN0cmluZywgZW5jb2RpbmdTdHJpbmcsIGZhaWxpbmdLVVJMKTsKIAogICAgIC8vIFRoaXMg
bWV0aG9kIGlzIG9ubHkgY2FsbGVkIGZyb20gSVdlYkZyYW1lIG1ldGhvZHMsIHNvIGRvbid0IEFT
U0VSVCB0aGF0IHRoZSBGcmFtZSBwb2ludGVyIGlzbid0IG51bGwuCi0gICAgaWYgKEZyYW1lKiBj
b3JlRnJhbWUgPSBjb3JlKHRoaXMpKQotICAgICAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2Fk
KHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgaWYgKEZyYW1lKiBjb3JlRnJh
bWUgPSBjb3JlKHRoaXMpKSB7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0
KGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdEltcGwtPnJl
c291cmNlUmVxdWVzdCgpKTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRh
KHN1YnN0aXR1dGVEYXRhKTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGZh
bHNlKTsKKyAgICAgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwor
ICAgIH0KIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcAppbmRleCBmY2MwNGQ3ZGI2YjY2MWE4
N2Y1OTY4NjM0NWQ5ODg3OTc4ZjQzZmQ2Li5mY2Y3OWRmNjc0ZGI2ZTc3ZDVmODY2ZGNlOTIzOGVl
YzQ4ZTIzOTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJFZGl0b3JDbGllbnRXaW5DRS5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5o
IgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMjE4LDcgKzIxOSw5IEBAIHZvaWQgV2ViVmll
dzo6bG9hZChjb25zdCBTdHJpbmcgJnVybCkKIAogdm9pZCBXZWJWaWV3Ojpsb2FkKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCAmcmVxdWVzdCkKIHsKLSAgICBmcmFtZSgpLT5sb2FkZXIo
KS0+bG9hZChyZXF1ZXN0LCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVl
c3QoZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdCk7CisgICAg
ZnJhbWVSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGZhbHNlKTsKKyAgICBmcmFtZSgpLT5sb2FkZXIo
KS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiB2b2lkIFdlYlZpZXc6OnJlbG9hZCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gv
V2ViRnJhbWUuY3BwCmluZGV4IGIzNzQxMTNjMDc3MmExYzdmMjZmMjQ0MDgzMDAyYmIzYWFlOGM4
YTkuLmM4NTgwY2U0MTk4M2JiMDBjOTExZGQwMTY1ZWUxMzZlYWI0MmIxZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2Vi
RnJhbWUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5j
bHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxv
YWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudFd4LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC0zMjIsNyArMzIzLDEx
IEBAIHZvaWQgV2ViRnJhbWU6OlNldFBhZ2VTb3VyY2UoY29uc3Qgd3hTdHJpbmcmIHNvdXJjZSwg
Y29uc3Qgd3hTdHJpbmcmIGJhc2VVcmwsIGNvCiAgICAgICAgIFdlYkNvcmU6OlN1YnN0aXR1dGVE
YXRhIHN1YnN0aXR1dGVEYXRhKHNoYXJlZEJ1ZmZlciwgbWltZXR5cGUsIFdURjo6U3RyaW5nKCJV
VEYtOCIpLCBXZWJDb3JlOjpibGFua1VSTCgpLCB1cmwpOwogCiAgICAgICAgIG1faW1wbC0+ZnJh
bWUtPmxvYWRlcigpLT5zdG9wKCk7Ci0gICAgICAgIG1faW1wbC0+ZnJhbWUtPmxvYWRlcigpLT5s
b2FkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCh1cmwpLCBzdWJzdGl0dXRlRGF0YSwgZmFsc2Up
OworCisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KG1faW1w
bC0+ZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCh1cmwpKTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1
YnN0aXR1dGVEYXRhKTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGZhbHNl
KTsKKyAgICAgICAgbV9pbXBsLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmNwcAppbmRleCA4YjAzNjE2MDdmZTI1NzkwMjg1MDBjNTRhOTEwNmY1YWJkMWY0Yzk4
Li5kZjBjNWU4Zjc4NTUyNjc4ZTNmZWM4NjRiNTUxOTJhMTZmMWIwMjhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC05NTAsNyAr
OTUwLDExIEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVlc3QoVVJM
UmVxdWVzdCogcmVxdWVzdCkKICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBmcmFtZS0+bG9hZGVy
KCktPmZpbmRGcmFtZUZvck5hdmlnYXRpb24ocmVxdWVzdC0+dGFyZ2V0KCkpOwogICAgIGlmICgh
dGFyZ2V0RnJhbWUpIHsKICAgICAgICAgLy8gV2UgZGlkIG5vdCBmaW5kIGEgdGFyZ2V0IGZyYW1l
LiBBc2sgb3VyIGZyYW1lIHRvIGxvYWQgdGhlIHBhZ2UuIFRoaXMgbWF5IG9yIG1heSBub3QgY3Jl
YXRlIGEgcG9wdXAgd2luZG93LgotICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVz
dC0+cmVxdWVzdCgpLCByZXF1ZXN0LT50YXJnZXQoKSwgZmFsc2UpOworICAgICAgICBGcmFtZUxv
YWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KSwgcmVxdWVzdC0+cmVxdWVzdCgpKTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFt
ZShyZXF1ZXN0LT50YXJnZXQoKSk7CisgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRMb2NrSGlzdG9y
eShmYWxzZSk7CisgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1Bv
bGljeSh0cnVlKTsKKyAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7
CiAKICAgICAgICAgLy8gRklYTUU6IFdlIGRvbid0IGtub3cgd2hldGhlciB0aGUgd2luZG93IHdh
cyBzdWNjZXNzZnVsbHkgY3JlYXRlZCBoZXJlIHNvIHdlIGp1c3QgYXNzdW1lIHRoYXQgaXQgd29y
a2VkLgogICAgICAgICAvLyBJdCdzIGJldHRlciB0aGFuIG5vdCB0ZWxsaW5nIHRoZSBwbHVnLWlu
IGFueXRoaW5nLgpAQCAtOTU5LDcgKzk2Myw5IEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZy
YW1lTG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCogcmVxdWVzdCkKICAgICB9CiAKICAgICAvLyBO
b3cgYXNrIHRoZSBmcmFtZSB0byBsb2FkIHRoZSByZXF1ZXN0LgotICAgIHRhcmdldEZyYW1lLT5s
b2FkZXIoKS0+bG9hZChyZXF1ZXN0LT5yZXF1ZXN0KCksIGZhbHNlKTsKKyAgICBGcmFtZUxvYWRS
ZXF1ZXN0IGZyYW1lUmVxdWVzdCh0YXJnZXRGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKSwgcmVxdWVzdC0+cmVxdWVzdCgpKTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hpc3Rv
cnkoZmFsc2UpOworICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3Qp
OwogCiAgICAgV2ViRnJhbWUqIHRhcmdldFdlYkZyYW1lID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVM
b2FkZXJDbGllbnQqPih0YXJnZXRGcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUo
KTsKICAgICBpZiAoV2ViRnJhbWU6OkxvYWRMaXN0ZW5lciogbG9hZExpc3RlbmVyID0gdGFyZ2V0
V2ViRnJhbWUtPmxvYWRMaXN0ZW5lcigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggOWU2NjU3NjQ4NzcyNDFkZmU0ZDFmZWM3MWRiMmEx
YTdlZWU0NGY5Ny4uY2Y4MjExNWUzZThhZGQxOTFmZmNmYWY3MDIyYThlMjkxNWVmNTZmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtODIy
LDcgKzgyMiw5IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFVSTFJlcXVlc3QoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTYW5kYm94RXh0ZW5zCiAgICAgU2VuZFN0b3BSZXNwb25z
aXZlbmVzc1RpbWVyIHN0b3BwZXIodGhpcyk7CiAKICAgICBtX3NhbmRib3hFeHRlbnNpb25UcmFj
a2VyLmJlZ2luTG9hZChtX21haW5GcmFtZS5nZXQoKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7
Ci0gICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBm
YWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9tYWluRnJhbWUtPmNv
cmVGcmFtZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0KTsKKyAgICBm
cmFtZVJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgIG1fbWFpbkZyYW1lLT5jb3Jl
RnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKIH0KIAogdm9pZCBXZWJQYWdl
Ojpsb2FkRGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2hhcmVkQnVmZmVyLCBjb25zdCBT
dHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nTmFtZSwgY29uc3QgS1VSTCYg
YmFzZVVSTCwgY29uc3QgS1VSTCYgdW5yZWFjaGFibGVVUkwpCkBAIC04MzEsNyArODMzLDEwIEBA
IHZvaWQgV2ViUGFnZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHNoYXJlZEJ1
ZmZlciwgY29uc3QgU3RyaW5nJiBNSU1FCiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChi
YXNlVVJMKTsKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShzaGFyZWRCdWZmZXIs
IE1JTUVUeXBlLCBlbmNvZGluZ05hbWUsIHVucmVhY2hhYmxlVVJMKTsKLSAgICBtX21haW5GcmFt
ZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBm
YWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9tYWluRnJhbWUtPmNv
cmVGcmFtZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0KTsKKyAgICBm
cmFtZVJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoc3Vic3RpdHV0ZURhdGEpOworICAgIGZyYW1l
UmVxdWVzdC5zZXRMb2NrSGlzdG9yeShmYWxzZSk7CisgICAgbV9tYWluRnJhbWUtPmNvcmVGcmFt
ZSgpLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiB2b2lkIFdlYlBhZ2U6Omxv
YWRIVE1MU3RyaW5nKGNvbnN0IFN0cmluZyYgaHRtbFN0cmluZywgY29uc3QgU3RyaW5nJiBiYXNl
VVJMU3RyaW5nKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174037</attachid>
            <date>2012-11-13 17:50:09 -0800</date>
            <delta_ts>2012-11-14 15:22:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102151-20121113174809.patch</filename>
            <type>text/plain</type>
            <size>44039</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE1ZWRkYTM1ZDI0NWVk
MjNiMDk5ZDUyMWU5Nzk1MmY2ZTczMWQ2Yi4uOWUxMDZkNDVmZTIzMTc2ZTk5MWFmZjY2YjM1NjBl
Mjk2NDNmZTk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTEzICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0
ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9h
ZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZXJlJ3MgYSBGSVhNRSB0aGF0IHdlIGhhdmUgdG9vIG1hbnkgRnJhbWVMb2FkZXI6OmxvYWQq
KCkgZnVuY3Rpb25zLiBUaGlzIHBhdGNoIGNvbnNvbGlkYXRlcyAzIGludG8gMS4KKyAgICAgICAg
VGhlcmUgYXJlIHN0aWxsIGEgZmV3IG1vcmUgbG9hZCBmdW5jdGlvbnMgdGhhdCB3aWxsIGJlIGNv
bnNvbGlkYXRlZCBsYXRlci4gVXNpbmcgRnJhbWVMb2FkUmVxdWVzdCBhcworICAgICAgICB0aGUg
aW50ZXJmYWNlIGludG8gRnJhbWVMb2FkZXIgd2lsbCBhbHNvIHByb3ZpZGUgYSBwbGFjZSB0byBw
YXNzIGluIHRoZSBpbml0aWF0b3IuIEZpbmFsbHksIHRoaXMgbWF0Y2hlcworICAgICAgICB0aGUg
cmVmYWN0b3JpbmcgZG9uZSB3aXRoIENhY2hlZFJlc291cmNlUmVxdWVzdCBhbmQgQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gZnVuY3Rp
b25hbGl0eS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpG
cmFtZUxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNl
dExvY2tIaXN0b3J5KTogVGhlc2UgYXJlIGZvcm1lciBhcmd1bWVudHMgdG8gbG9hZCgpLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6bG9ja0hpc3RvcnkpOiBEaXR0by4KKyAg
ICAgICAgKEZyYW1lTG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVx
dWVzdDo6c2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpzdWJzdGl0dXRlRGF0YSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2V0U3Vic3RpdHV0
ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6Omhhc1N1
YnN0aXR1dGVEYXRhKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKTogTm8gY2hhbmdlIGluIGJlaGF2
aW9yLCBqdXN0IG1lcmdlZCBpdCBhbGwgaW50byBvbmUgZnVuY3Rpb24uCisgICAgICAgICogbG9h
ZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIChGcmFtZUxvYWRlcik6CisgICAgICAgICogcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6
cGVyZm9ybURyYWcpOgorCiAyMDEyLTExLTEzICBNaWxpYW4gV29sZmYgIDxtaWxpYW4ud29sZmZA
a2RhYi5jb20+CiAKICAgICAgICAgW1F0XSBRTlggYnVpbGQgZmFpbHMgZHVlIHRvIHNpZ25hdHVy
ZSBjaGFuZ2UgaW4gZ2wyLmggaGVhZGVyIChnbFNoYWRlclNvdXJjZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCmluZGV4IGQwMDg0MTllYjY3ZDczMjYwNzE2NmYzM2Y3NDMwOGUxMTc4MTFj
OTMuLjJiOTJkYTk2NzkxZTI2MjFhYjczNzY1NTZlZjg0NWMyNmVkYTc2MmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTExLTEzICBKYW1lcyBT
aW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBG
cmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJl
cXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
QXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJp
dmF0ZTo6bG9hZCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRl
Ojpsb2FkU3RyaW5nKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFj
a0JlcnJ5OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQpOgorCiAyMDEyLTExLTEzICBN
aWtlIEZlbnRvbiAgPG1pZmVudG9uQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEZ1
bGx5IHJlc3RvcmUgYm90aCB6b29tIGFuZCBzY3JvbGwgd2hlbiBsZWF2aW5nIGFuIGlucHV0IGZp
ZWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBjNjY2Y2MxOTRjZTgwM2Y1OTNmNzQ4
NWM5Mzg4ZmZjZWNlNGE4ZDc1Li41ZmY4MjAxNWFkOGFlZThkMTg4Nzk2ZDQ5OTAxNTNmYTRjZWQy
ZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEx
LTEzICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBD
b25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBh
IEZyYW1lTG9hZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lSW1wbDo6bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6Omxv
YWREYXRhKToKKyAgICAgICAgKiBzcmMvV2ViU2hhcmVkV29ya2VySW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlNoYXJlZFdvcmtlckltcGw6OmluaXRpYWxpemVMb2FkZXIpOgorCiAyMDEy
LTExLTEzICBEYW4gQ2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgogCiAgICAgICAgIFtWOF0g
TW9yZSBlZmZpY2llbnQgd3JhcHBlciBkaXNwYXRjaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDg3NTNk
MDE5ZTIyZDY0ZjRhZDM5OTM3MDE5NzhiNmEzOGZkYWQ2OTIuLmRmNDZhZjM5ZGI0ZDhjMDBkZmMx
Nzc1YzdlMDRiOWEzOTExYjZmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMi0xMS0xMyAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0
YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoX2V3a19mcmFt
ZV9jb250ZW50c19zZXRfaW50ZXJuYWwpOgorCiAyMDEyLTExLTEyICBLeXVuZ1RhZSBLaW0gIDxr
dGYua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEluIGV3a190aWxlZF9iYWNraW5n
X3N0b3JlX3ByZV9yZW5kZXJfcmVnaW9uLCB0aGUgJ3NsaWNlcicgbWF5IGJlIHVuaW5pdGlhbGl6
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwppbmRleCBkZDc3ZTI1MTYzYmY3NDc5NmY5M2UyNDMwNDJkNGExOTMy
NDY2Zjk1Li4zMWUyYmNkMmY5NjY0Mjk2YzM0ODA2MWQwODBlOTM3ZjUzYTQ0MzY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8
c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVy
Ojpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX3VyaSk6Cisg
ICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfZGF0YSk6CisgICAgICAgICh3ZWJraXRfd2Vi
X2ZyYW1lX2xvYWRfcmVxdWVzdCk6CisKIDIwMTItMTEtMTIgIEpvc2ggUmlja21hciAgPGpyaWNr
QGRldmlvLnVzPgogCiAgICAgICAgIEFkZCBXZWJDb3JlOjpTZXR0aW5nIHRvIGJsb2NrIGRpc3Bs
YXlpbmcgYW5kL29yIHJ1bm5pbmcgaW5zZWN1cmUgY29udGVudCBvbiBzZWN1cmUgcGFnZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCA2N2RiOWViYTdiZTg3ZDVhN2EzMDVmZThkZTE3YzI1YTcxYzdmZTM4
Li4xZWJmMzVlNDY5MjAxZWQ0NjM4MDg5ZDdiMTE4YWM1NWY4YTViYzQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25q
YW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2Fk
KCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbHVnaW5zL1dlYlBsdWdp
bkNvbnRyb2xsZXIubW06CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAg
KC1bV2ViRnJhbWUgbG9hZFJlcXVlc3Q6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9sb2FkRGF0
YTpNSU1FVHlwZTp0ZXh0RW5jb2RpbmdOYW1lOmJhc2VVUkw6dW5yZWFjaGFibGVVUkw6XSk6CisK
IDIwMTItMTEtMTMgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkanVzdCB0aGUgV2ViIEluc3BlY3RvciB3aW5kb3cgdGl0bGUgZnJhbWUgaWYgbmVlZGVk
IHRvIHByZXZlbnQgaXQgZnJvbSBpbnRlcnNlY3RpbmcgdGhlIGRvY2sgYnV0dG9uLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZwppbmRleCBhNjJhZWVkMTY1ODEyMDU2M2Y1NGY1MTcyZTkyOGRiN2Q1ZGIyOGEyLi5kMmYw
M2FlMjdlMWZlYTFlYmE3YzRhY2E2YTI5ZTEwNmE0Yjg4YzRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDEyLTExLTEzICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8g
b25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQXBpL3F3ZWJmcmFtZS5jcHA6CisgICAg
ICAgIChRV2ViRnJhbWU6OlFXZWJGcmFtZSk6CisgICAgICAgIChRV2ViRnJhbWU6OmxvYWQpOgor
ICAgICAgICAoUVdlYkZyYW1lOjpzZXRIdG1sKToKKyAgICAgICAgKFFXZWJGcmFtZTo6c2V0Q29u
dGVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
Y3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEFsdGVybmF0ZUh0bWwp
OgorICAgICAgICAocXRfZHVtcF9zZXRfYWNjZXB0c19lZGl0aW5nKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyQ2xpZW50UXQ6OmNhbGxFcnJvclBhZ2VFeHRlbnNpb24pOgorCiAyMDEyLTExLTA5
ICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKICAgICAg
ICAgW1F0XSBGaXggdHN0X1FXZWJQYWdlOjpmaW5kVGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGZi
ZjdlMjRkMWU3ZTAwNTFhMjc5YWUwNzBhM2IyMmEyODhjZTM1NTIuLmMwNTdiZmY1NGQwNjAzM2Y4
ZDI0YjAwNjkzN2E3Y2YxMDIyYmY0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxMi0xMS0xMyAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlv
biB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjps
b2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJGcmFtZTo6bG9hZERhdGEpOgorCiAyMDEyLTExLTEy
ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TihyMTMwNjQzKTogQXNzZXJ0aW9uIGZhaWx1cmUgd2hlbiBydW5uaW5nIERSVCBpbiBkZWJ1ZyBt
b2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDJmYTNmMTMyZGUxNDMwNDI2YmEwMjBhMGIzYzJl
ZmUxNDczMTM4MjguLmFlNGZiZDVlZWJlMGI1M2I5M2JiMTZkNTU0MjhkMmY4MTkwN2MxZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNp
bW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZy
YW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVx
dWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAy
MTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmxvYWQpOgorCiAyMDEyLTEwLTI0ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBzdHJhdGVneSBm
b3IgbG9hZGVyIGN1c3RvbWl6YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IGU5ZWFmMTMxOWUwMzI3
ZWQ5Y2VjOWZiNDkyMDkzM2I3YTIyNTRjYzcuLjFiMTllYTBiNGRlMGYzZThhZmRiYjE4MzU4OTBl
MjM5ZDJmMWQzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTEtMTMg
IEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNv
bGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJh
bWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpTZXRQYWdl
U291cmNlKToKKwogMjAxMi0xMC0yMiAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVyY290
dGVAZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4ICJBU1NFUlRJT04gRkFJTEVEOiAhZG9j
dW1lbnQtPmluUGFnZUNhY2hlKCkiIHdoZW4gbG9hZGluZyBhIHBhZ2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4
Y2JlOTFmYmE5NmVjNTdmYmE5ZDI3Yjk5NmIwNWM2YTZiMTgwNjYzLi5jNjllNzYyZWFmYjMxMTIy
NTZkMmUyODlmMDM3NWI5ODE4NGY0MzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFr
aW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnBlcmZvcm1GcmFtZUxvYWRVUkxSZXF1ZXN0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmxvYWRVUkxSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9h
ZERhdGEpOgorCiAyMDEyLTExLTEzICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5j
b20+CiAKICAgICAgICAgU3RvcmUgZGVzdHJveWVkIGxheWVycyBpbiB0aGUgcmVtb3RlIGxheWVy
IHRyZWUgdHJhbnNhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYmFjNmFhYTMyOGI3YWU2
MGVhOGVkZWFlZGQzMGQ1ODZiODFjYTcxYy4uZGFkN2JmYTU2YTA0MjA5NGUwYTQ3MjM0OWEzYzAz
MmY1Y2QyNjQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEwNyw5ICsxMDcsNyBAQCBfX1pO
N1dlYkNvcmUxMUZyYW1lTG9hZGVyMjN0aW1lT2ZMYXN0Q29tcGxldGVkTG9hZEV2CiBfX1pON1dl
YkNvcmUxMUZyYW1lTG9hZGVyMjZyZWxvYWRXaXRoT3ZlcnJpZGVFbmNvZGluZ0VSS04zV1RGNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIzMnNldE9yaWdpbmFsVVJMRm9yRG93bmxv
YWRSZXF1ZXN0RVJOU18xNVJlc291cmNlUmVxdWVzdEUKIF9fWk43V2ViQ29yZTExRnJhbWVMb2Fk
ZXI0aW5pdEV2Ci1fX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNVJlc291cmNl
UmVxdWVzdEVSS04zV1RGNlN0cmluZ0ViCi1fX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRF
UktOU18xNVJlc291cmNlUmVxdWVzdEVSS05TXzE0U3Vic3RpdHV0ZURhdGFFYgotX19aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFYgorX19aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJOU18xNkZyYW1lTG9hZFJlcXVlc3RFCiBfX1pON1dlYkNv
cmUxMUZyYW1lTG9hZGVyNnJlbG9hZEViCiBfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyOXNldE9w
ZW5lckVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTEwdGFyZ2V0SXRlbUV2
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAppbmRleCBkNjVhOWI1ZmFj
MmY2MjBmOTcyMjEzMzVlNDdlNDI4ODA5NmM3YzMzLi44NGRjNDA0MTdmNTA4YTkwOWI4ZTk1Zjhl
OGVjNTJiZmMxZDdiMTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0
LmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSwxMiArMzYsMTYgQEAgc3RydWN0IEZyYW1lTG9h
ZFJlcXVlc3QgewogcHVibGljOgogICAgIGV4cGxpY2l0IEZyYW1lTG9hZFJlcXVlc3QoU2VjdXJp
dHlPcmlnaW4qIHJlcXVlc3RlcikKICAgICAgICAgOiBtX3JlcXVlc3RlcihyZXF1ZXN0ZXIpCisg
ICAgICAgICwgbV9sb2NrSGlzdG9yeShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3
V2luZG93UG9saWN5KGZhbHNlKQogICAgIHsKICAgICB9CiAKICAgICBGcmFtZUxvYWRSZXF1ZXN0
KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3Vy
Y2VSZXF1ZXN0KQogICAgICAgICA6IG1fcmVxdWVzdGVyKHJlcXVlc3RlcikKICAgICAgICAgLCBt
X3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgICAgICwgbV9sb2NrSGlzdG9y
eShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQog
ICAgIHsKICAgICB9CiAKQEAgLTQ4LDYgKzUzLDggQEAgcHVibGljOgogICAgICAgICA6IG1fcmVx
dWVzdGVyKHJlcXVlc3RlcikKICAgICAgICAgLCBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJl
cXVlc3QpCiAgICAgICAgICwgbV9mcmFtZU5hbWUoZnJhbWVOYW1lKQorICAgICAgICAsIG1fbG9j
a0hpc3RvcnkoZmFsc2UpCisgICAgICAgICwgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeShm
YWxzZSkKICAgICB7CiAgICAgfQogCkBAIC02MSwxMCArNjgsMjMgQEAgcHVibGljOgogICAgIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZU5hbWU7IH0KICAg
ICB2b2lkIHNldEZyYW1lTmFtZShjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSkgeyBtX2ZyYW1lTmFt
ZSA9IGZyYW1lTmFtZTsgfQogCisgICAgdm9pZCBzZXRMb2NrSGlzdG9yeShib29sIGxvY2tIaXN0
b3J5KSB7IG1fbG9ja0hpc3RvcnkgPSBsb2NrSGlzdG9yeTsgfQorICAgIGJvb2wgbG9ja0hpc3Rv
cnkoKSBjb25zdCB7IHJldHVybiBtX2xvY2tIaXN0b3J5OyB9CisKKyAgICB2b2lkIHNldFNob3Vs
ZENoZWNrTmV3V2luZG93UG9saWN5KGJvb2wgY2hlY2tQb2xpY3kpIHsgbV9zaG91bGRDaGVja05l
d1dpbmRvd1BvbGljeSA9IGNoZWNrUG9saWN5OyB9CisgICAgYm9vbCBzaG91bGRDaGVja05ld1dp
bmRvd1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3k7
IH0KKworICAgIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3Vic3RpdHV0ZURhdGE7IH0KKyAgICB2b2lkIHNldFN1YnN0aXR1dGVEYXRhKGNv
bnN0IFN1YnN0aXR1dGVEYXRhJiBkYXRhKSB7IG1fc3Vic3RpdHV0ZURhdGEgPSBkYXRhOyB9Cisg
ICAgYm9vbCBoYXNTdWJzdGl0dXRlRGF0YSgpIHsgcmV0dXJuIG1fc3Vic3RpdHV0ZURhdGEuaXNW
YWxpZCgpOyB9CisKIHByaXZhdGU6CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX3JlcXVl
c3RlcjsKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7CiAgICAgU3RyaW5n
IG1fZnJhbWVOYW1lOworICAgIGJvb2wgbV9sb2NrSGlzdG9yeTsKKyAgICBib29sIG1fc2hvdWxk
Q2hlY2tOZXdXaW5kb3dQb2xpY3k7CisgICAgU3Vic3RpdHV0ZURhdGEgbV9zdWJzdGl0dXRlRGF0
YTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGNkN2Zl
YWVlN2QyODE5ZjJhZjUzOTY5NjFmZWQ3ZDRjYTA0YTYwYzAuLmYzYTc0MTg3NTM0MTIzMmU1Mzc0
OTU0NjZhODkxY2Y3ZWQ3ZWQzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cApAQCAtMTI1MiwzNiArMTI1MiwzMiBAQCBTdWJzdGl0dXRlRGF0YSBGcmFtZUxvYWRlcjo6ZGVm
YXVsdFN1YnN0aXR1dGVEYXRhRm9yVVJMKGNvbnN0IEtVUkwmIHVybCkKICAgICByZXR1cm4gU3Vi
c3RpdHV0ZURhdGEoU2hhcmVkQnVmZmVyOjpjcmVhdGUoZW5jb2RlZFNyY2RvYy5kYXRhKCksIGVu
Y29kZWRTcmNkb2MubGVuZ3RoKCkpLCAidGV4dC9odG1sIiwgIlVURi04IiwgS1VSTCgpKTsKIH0K
IAotdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGJvb2wgbG9ja0hpc3RvcnkpCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKEZyYW1lTG9hZFJlcXVl
c3QmIHJlcXVlc3QpCiB7Ci0gICAgbG9hZChyZXF1ZXN0LCBkZWZhdWx0U3Vic3RpdHV0ZURhdGFG
b3JVUkwocmVxdWVzdC51cmwoKSksIGxvY2tIaXN0b3J5KTsKLX0KKyAgICBBU1NFUlQoIXJlcXVl
c3QuaXNFbXB0eSgpKTsKIAotdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSwgYm9v
bCBsb2NrSGlzdG9yeSkKLXsKICAgICBpZiAobV9pblN0b3BBbGxMb2FkZXJzKQogICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIAotICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbG9hZGVyID0gbV9j
bGllbnQtPmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKTsKLSAg
ICBpZiAobG9ja0hpc3RvcnkgJiYgbV9kb2N1bWVudExvYWRlcikKLSAgICAgICAgbG9hZGVyLT5z
ZXRDbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkobV9kb2N1bWVudExvYWRlci0+ZGlkQ3Jl
YXRlR2xvYmFsSGlzdG9yeUVudHJ5KCkgPyBtX2RvY3VtZW50TG9hZGVyLT51cmxGb3JIaXN0b3J5
KCkuc3RyaW5nKCkgOiBtX2RvY3VtZW50TG9hZGVyLT5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhp
c3RvcnkoKSk7Ci0gICAgbG9hZChsb2FkZXIuZ2V0KCkpOwotfQogCi12b2lkIEZyYW1lTG9hZGVy
Ojpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBmcmFt
ZU5hbWUsIGJvb2wgbG9ja0hpc3RvcnkpCi17Ci0gICAgaWYgKGZyYW1lTmFtZS5pc0VtcHR5KCkp
IHsKLSAgICAgICAgbG9hZChyZXF1ZXN0LCBsb2NrSGlzdG9yeSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9CisgICAgaWYgKCFyZXF1ZXN0Lmhhc1N1YnN0aXR1dGVEYXRhKCkpIHsKKyAgICAgICAg
aWYgKCFyZXF1ZXN0LmZyYW1lTmFtZSgpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgRnJhbWUq
IGZyYW1lID0gZmluZEZyYW1lRm9yTmF2aWdhdGlvbihyZXF1ZXN0LmZyYW1lTmFtZSgpKTsKKyAg
ICAgICAgICAgIGlmIChmcmFtZSkgeworICAgICAgICAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+
bG9hZChyZXF1ZXN0KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KIAotICAgIEZyYW1lKiBmcmFtZSA9IGZpbmRGcmFtZUZvck5hdmlnYXRpb24oZnJh
bWVOYW1lKTsKLSAgICBpZiAoZnJhbWUpIHsKLSAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5sb2Fk
KHJlcXVlc3QsIGxvY2tIaXN0b3J5KTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXF1ZXN0
LnNldFN1YnN0aXR1dGVEYXRhKGRlZmF1bHRTdWJzdGl0dXRlRGF0YUZvclVSTChyZXF1ZXN0LnJl
c291cmNlUmVxdWVzdCgpLnVybCgpKSk7CisKKyAgICAgICAgaWYgKHJlcXVlc3Quc2hvdWxkQ2hl
Y2tOZXdXaW5kb3dQb2xpY3koKSkKKyAgICAgICAgICAgIHBvbGljeUNoZWNrZXIoKS0+Y2hlY2tO
ZXdXaW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgp
LCBOYXZpZ2F0aW9uVHlwZU90aGVyKSwgRnJhbWVMb2FkZXI6OmNhbGxDb250aW51ZUxvYWRBZnRl
ck5ld1dpbmRvd1BvbGljeSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgMCwgcmVxdWVzdC5m
cmFtZU5hbWUoKSwgdGhpcyk7CiAgICAgfQogCi0gICAgcG9saWN5Q2hlY2tlcigpLT5jaGVja05l
d1dpbmRvd1BvbGljeShOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmlnYXRpb25UeXBlT3Ro
ZXIpLCBGcmFtZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5LCBy
ZXF1ZXN0LCAwLCBmcmFtZU5hbWUsIHRoaXMpOworICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4g
bG9hZGVyID0gbV9jbGllbnQtPmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QucmVzb3VyY2VS
ZXF1ZXN0KCksIHJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKSk7CisgICAgaWYgKHJlcXVlc3QubG9j
a0hpc3RvcnkoKSAmJiBtX2RvY3VtZW50TG9hZGVyKQorICAgICAgICBsb2FkZXItPnNldENsaWVu
dFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeShtX2RvY3VtZW50TG9hZGVyLT5kaWRDcmVhdGVHbG9i
YWxIaXN0b3J5RW50cnkoKSA/IG1fZG9jdW1lbnRMb2FkZXItPnVybEZvckhpc3RvcnkoKS5zdHJp
bmcoKSA6IG1fZG9jdW1lbnRMb2FkZXItPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgp
KTsKKyAgICBsb2FkKGxvYWRlci5nZXQoKSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRX
aXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgYm9vbCBsb2NrSGlzdG9yeSwgRnJhbWVMb2FkVHlw
ZSB0eXBlLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuaAppbmRleCA1MTYzNjlhODY0MjM2ZmRkNGE1ZTRhMDliZDRlNWNkNjMwOTdl
OGFkLi4wYzcyOWZhM2VjZjE2NDM3NWM3MWQzNmI0ZDE2ZmJhOTNjZGYxNTBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMTA0LDkgKzEwNCw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGxvYWRGcmFtZVJlcXVlc3QoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGJvb2wgbG9ja0hp
c3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCwgIC8vIENhbGxlZCBieSBzdWJtaXRGb3Jt
LCBjYWxscyBsb2FkUG9zdFJlcXVlc3QgYW5kIGxvYWRVUkwuCiAgICAgICAgIFBhc3NSZWZQdHI8
RXZlbnQ+LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIFNob3VsZFNlbmRSZWZlcnJlcik7CiAKLSAg
ICB2b2lkIGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBsb2NrSGlzdG9yeSk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGxlZCBieSBXZWJGcmFt
ZSwgY2FsbHMgbG9hZChSZXNvdXJjZVJlcXVlc3QsIFN1YnN0aXR1dGVEYXRhKS4KLSAgICB2b2lk
IGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmLCBib29s
IGxvY2tIaXN0b3J5KTsgICAgICAgICAgICAgICAgIC8vIENhbGxlZCBib3RoIGJ5IFdlYkZyYW1l
IGFuZCBpbnRlcm5hbGx5LCBjYWxscyBsb2FkKERvY3VtZW50TG9hZGVyKikuCi0gICAgdm9pZCBs
b2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBib29s
IGxvY2tIaXN0b3J5KTsgICAgICAgICAgICAgICAvLyBDYWxsZWQgYnkgV2ViUGx1Z2luQ29udHJv
bGxlci4KKyAgICB2b2lkIGxvYWQoRnJhbWVMb2FkUmVxdWVzdCYpOworCiAjaWYgRU5BQkxFKFdF
Ql9BUkNISVZFKSB8fCBFTkFCTEUoTUhUTUwpCiAgICAgdm9pZCBsb2FkQXJjaGl2ZShQYXNzUmVm
UHRyPEFyY2hpdmU+KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cAppbmRleCA4MWVhM2Y5NWRkMDQ2OTRkZjAzNGIwNzYwYWUwMGM2YTg2MWFmNWE4Li4yMDA5NTgx
NWNiOWQ5OTY4MjhmYmQ3YjIzMzc3ZDAwNjAzYjBkMDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxl
ci5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTIzNyw3ICsy
MzgsOSBAQCBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZyhEcmFnRGF0YSogZHJhZ0Rh
dGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fY2xpZW50LT53aWxsUGVyZm9ybURy
YWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkLCBkcmFnRGF0YSk7
Ci0gICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoUmVzb3VyY2VSZXF1ZXN0
KGRyYWdEYXRhLT5hc1VSTChtX3BhZ2UtPm1haW5GcmFtZSgpKSksIGZhbHNlKTsKKyAgICBGcmFt
ZUxvYWRSZXF1ZXN0IHJlcXVlc3QobV9wYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KGRyYWdEYXRhLT5hc1VSTChtX3BhZ2UtPm1h
aW5GcmFtZSgpKSkpOworICAgIHJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgIG1f
cGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QpOwogICAgIHJldHVybiB0
cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCAwNDY2ODQ2
ZDQzMTkwMjNmZDRmZWY5ZDIwMmZjYmZiYTI3YjdmZGVkLi45NGEzY2I5OTc2OTM0ZDc0YmZjZTVm
NjBmMTQ0M2M5MjBiM2FjODhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAK
QEAgLTQ0MCw3ICs0NDAsMTEgQEAgdm9pZCBQbHVnaW5WaWV3OjpwZXJmb3JtUmVxdWVzdChQbHVn
aW5SZXF1ZXN0KiByZXF1ZXN0KQogICAgICAgICAgICAgLy8gUGx1Z2luVmlldywgc28gd2UgcHJv
dGVjdCBpdC4gPHJkYXI6Ly9wcm9ibGVtLzY5OTEyNTE+CiAgICAgICAgICAgICBSZWZQdHI8UGx1
Z2luVmlldz4gcHJvdGVjdCh0aGlzKTsKIAotICAgICAgICAgICAgbV9wYXJlbnRGcmFtZS0+bG9h
ZGVyKCktPmxvYWQocmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJlc291cmNlUmVxdWVzdCgp
LCB0YXJnZXRGcmFtZU5hbWUsIGZhbHNlKTsKKyAgICAgICAgICAgIEZyYW1lTG9hZFJlcXVlc3Qg
ZnJhbWVSZXF1ZXN0KG1fcGFyZW50RnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCks
IHJlcXVlc3QtPmZyYW1lTG9hZFJlcXVlc3QoKS5yZXNvdXJjZVJlcXVlc3QoKSk7CisgICAgICAg
ICAgICBmcmFtZVJlcXVlc3Quc2V0RnJhbWVOYW1lKHRhcmdldEZyYW1lTmFtZSk7CisgICAgICAg
ICAgICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgICAgICAgICAgZnJh
bWVSZXF1ZXN0LnNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KHRydWUpOworICAgICAgICAg
ICAgbV9wYXJlbnRGcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKIAogICAgICAg
ICAgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS80ODA3NDY5PiBUaGlzIHNob3VsZCBiZSBz
ZW50IHdoZW4gdGhlIGRvY3VtZW50IGhhcyBmaW5pc2hlZCBsb2FkaW5nCiAgICAgICAgICAgICBp
ZiAocmVxdWVzdC0+c2VuZE5vdGlmaWNhdGlvbigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlLmNwcAppbmRleCAyMzNmMjE0NGYwNTgyMzAxMDcyOTU4NDNiMmU5ZWVhYTEw
YzBiMGE3Li4yNDY0NDBhYWFmYjIzZWJjM2MwZjNhMDFhNDUwMjJlNWYzOWRiYmE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNp
bmNsdWRlICJFZGl0b3JDbGllbnRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgiCiAjaWYgIWRlZmluZWQo
UFVCTElDX0JVSUxEKSB8fCAhUFVCTElDX0JVSUxECiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGll
bnRNb2NrLmgiCkBAIC03MDEsNyArNzAyLDExIEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmxvYWQo
Y29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0cmluZyYgdXJsLCBjb25zdCBCbGFja0JlCiAK
ICAgICByZXF1ZXN0LnNldFN1Z2dlc3RlZFNhdmVOYW1lKHN1Z2dlc3RlZFNhdmVOYW1lKTsKIAot
ICAgIG1fbWFpbkZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCAiIiAvKiBuYW1lICovLCBm
YWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9tYWluRnJhbWUtPmRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHJlcXVlc3QpOworICAgIGZyYW1lUmVxdWVzdC5z
ZXRGcmFtZU5hbWUoIiIpOworICAgIGZyYW1lUmVxdWVzdC5zZXRMb2NrSGlzdG9yeShmYWxzZSk7
CisgICAgZnJhbWVSZXF1ZXN0LnNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KHRydWUpOwor
ICAgIG1fbWFpbkZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiB2b2lk
IFdlYlBhZ2U6OmxvYWQoY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0cmluZyYgdXJsLCBj
b25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBuZXR3b3JrVG9rZW4sIGJvb2wgaXNJ
bml0aWFsKQpAQCAtNzQ2LDcgKzc1MSwxMCBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjpsb2FkU3Ry
aW5nKGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIHN0cmluZywgY29ucwogICAg
ICAgICBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSwKICAgICAgICAg
ZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSwKICAgICAgICAgIWZhaWxp
bmdVUkwuZW1wdHkoKSA/IHBhcnNlVXJsKGZhaWxpbmdVUkwpIDogS1VSTCgpKTsKLSAgICBtX21h
aW5GcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsK
KyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChtX21haW5GcmFtZS0+ZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdCk7CisgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0
aXR1dGVEYXRhKHN1YnN0aXR1dGVEYXRhKTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hpc3Rv
cnkoZmFsc2UpOworICAgIG1fbWFpbkZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3Qp
OwogfQogCiB2b2lkIFdlYlBhZ2U6OmxvYWRTdHJpbmcoY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZv
cm06OlN0cmluZyYgc3RyaW5nLCBjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBi
YXNlVVJMLCBjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBtaW1lVHlwZSwgY29u
c3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0cmluZyYgZmFpbGluZ1VSTCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggOTY2OWM5MzhiZDg5ODE0YThj
ZjMxNmQ3OTMwOTAyZmU0OTQzOTk3ZC4uODEzNTQyMjM0Y2I0ZWYzODc5ODE3NzE3YzNjODUwOWRk
NGNlMzkyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDcmVkZW50aWFsVHJhbnNmb3JtRGF0YS5oIgog
I2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlQ2xpZW50LmgiCiAjaW5jbHVkZSAiRXh0ZXJuYWxFeHRl
bnNpb24uaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEJsYWNrQmVycnkuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNp
bmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKQEAgLTc0Niw3ICs3NDcsMTAgQEAgdm9pZCBGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChj
b25zdCBSZXNvdXJjZUUKICAgICB9CiAKICAgICBtX2xvYWRpbmdFcnJvclBhZ2UgPSB0cnVlOwot
ICAgIG1fZnJhbWUtPmxvYWRlcigpLT5sb2FkKG9yaWdpbmFsUmVxdWVzdCwgZXJyb3JEYXRhLCBm
YWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9mcmFtZS0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgb3JpZ2luYWxSZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVl
c3Quc2V0U3Vic3RpdHV0ZURhdGEoZXJyb3JEYXRhKTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0TG9j
a0hpc3RvcnkoZmFsc2UpOworICAgIG1fZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVz
dCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxT
dWJtaXRGb3JtKEZyYW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24sIFBhc3NSZWZQdHI8Rm9ybVN0
YXRlPikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4
IDE5MzY0NzZmM2FlMWEyMDE0MDMzZGMzZmRiN2UwY2FiNWNhOGM3ZjIuLjk4ZGQxNjM1NTdhNzM5
MzFjYjE5OGNiZWZlY2I1MTgwNTEwMjZmZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtOTc1LDcgKzk3NSw5IEBAIHZvaWQgV2ViRnJhbWVJbXBs
Ojpsb2FkUmVxdWVzdChjb25zdCBXZWJVUkxSZXF1ZXN0JiByZXF1ZXN0KQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgZnJhbWUoKS0+bG9hZGVyKCktPmxvYWQocmVzb3VyY2VSZXF1ZXN0
LCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUoKS0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVzb3VyY2VSZXF1ZXN0KTsKKyAgICBmcmFtZVJl
cXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgIGZyYW1lKCktPmxvYWRlcigpLT5sb2Fk
KGZyYW1lUmVxdWVzdCk7CiB9CiAKIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkSGlzdG9yeUl0ZW0o
Y29uc3QgV2ViSGlzdG9yeUl0ZW0mIGl0ZW0pCkBAIC05OTQsOCArOTk2LDYgQEAgdm9pZCBXZWJG
cmFtZUltcGw6OmxvYWRIaXN0b3J5SXRlbShjb25zdCBXZWJIaXN0b3J5SXRlbSYgaXRlbSkKIHZv
aWQgV2ViRnJhbWVJbXBsOjpsb2FkRGF0YShjb25zdCBXZWJEYXRhJiBkYXRhLCBjb25zdCBXZWJT
dHJpbmcmIG1pbWVUeXBlLCBjb25zdCBXZWJTdHJpbmcmIHRleHRFbmNvZGluZywgY29uc3QgV2Vi
VVJMJiBiYXNlVVJMLCBjb25zdCBXZWJVUkwmIHVucmVhY2hhYmxlVVJMLCBib29sIHJlcGxhY2Up
CiB7CiAgICAgQVNTRVJUKGZyYW1lKCkpOwotICAgIFN1YnN0aXR1dGVEYXRhIHN1YnN0RGF0YShk
YXRhLCBtaW1lVHlwZSwgdGV4dEVuY29kaW5nLCB1bnJlYWNoYWJsZVVSTCk7Ci0gICAgQVNTRVJU
KHN1YnN0RGF0YS5pc1ZhbGlkKCkpOwogCiAgICAgLy8gSWYgd2UgYXJlIGxvYWRpbmcgc3Vic3Rp
dHV0ZSBkYXRhIHRvIHJlcGxhY2UgYW4gZXhpc3RpbmcgbG9hZCwgdGhlbgogICAgIC8vIGluaGVy
aXQgYWxsIG9mIHRoZSBwcm9wZXJ0aWVzIG9mIHRoYXQgb3JpZ2luYWwgcmVxdWVzdC4gIFRoaXMg
d2F5LApAQCAtMTAwOCw3ICsxMDA4LDExIEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkRGF0YShj
b25zdCBXZWJEYXRhJiBkYXRhLCBjb25zdCBXZWJTdHJpbmcmIG1pbWVUeXBlLCBjb25zCiAgICAg
ICAgIHJlcXVlc3QgPSBmcmFtZSgpLT5sb2FkZXIoKS0+b3JpZ2luYWxSZXF1ZXN0KCk7CiAgICAg
cmVxdWVzdC5zZXRVUkwoYmFzZVVSTCk7CiAKLSAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChy
ZXF1ZXN0LCBzdWJzdERhdGEsIGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVx
dWVzdChmcmFtZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0KTsKKyAg
ICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgIGZyYW1lUmVxdWVzdC5z
ZXRTdWJzdGl0dXRlRGF0YShTdWJzdGl0dXRlRGF0YShkYXRhLCBtaW1lVHlwZSwgdGV4dEVuY29k
aW5nLCB1bnJlYWNoYWJsZVVSTCkpOworICAgIEFTU0VSVChmcmFtZVJlcXVlc3Quc3Vic3RpdHV0
ZURhdGEoKS5pc1ZhbGlkKCkpOworICAgIGZyYW1lKCktPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVx
dWVzdCk7CiAgICAgaWYgKHJlcGxhY2UpIHsKICAgICAgICAgLy8gRG8gdGhpcyB0byBmb3JjZSBX
ZWJLaXQgdG8gdHJlYXQgdGhlIGxvYWQgYXMgcmVwbGFjaW5nIHRoZSBjdXJyZW50bHkKICAgICAg
ICAgLy8gbG9hZGVkIHBhZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTaGFyZWRXb3JrZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNoYXJlZFdvcmtlckltcGwuY3BwCmluZGV4IDVjZjk5OTg1MTNhZWEzNTk2ZTBkNWYxNDg4NmZh
OWU5MTdmMWZmYmEuLjE3ODVmYmNjYzEzZDExNGUwMWQ0YjgxOTY0MjY2NDBhNDFmOTNlM2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwu
Y3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NUaHJlYWRUYXNrLmgiCiAjaW5j
bHVkZSAiRGF0YWJhc2VUYXNrLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJG
cmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IktVUkwuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKQEAgLTEzMiw4ICsxMzMsMTAgQEAg
dm9pZCBXZWJTaGFyZWRXb3JrZXJJbXBsOjppbml0aWFsaXplTG9hZGVyKGNvbnN0IFdlYlVSTCYg
dXJsKQogICAgIENTdHJpbmcgY29udGVudCgiIik7CiAgICAgaW50IGxlbiA9IHN0YXRpY19jYXN0
PGludD4oY29udGVudC5sZW5ndGgoKSk7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmKFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKGNvbnRlbnQuZGF0YSgpLCBsZW4pKTsKLSAgICBTdWJzdGl0dXRl
RGF0YSBzdWJzdERhdGEoYnVmLCBTdHJpbmcoInRleHQvaHRtbCIpLCBTdHJpbmcoIlVURi04Iiks
IEtVUkwoKSk7Ci0gICAgd2ViRnJhbWUtPmZyYW1lKCktPmxvYWRlcigpLT5sb2FkKFJlc291cmNl
UmVxdWVzdCh1cmwpLCBzdWJzdERhdGEsIGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IHJl
cXVlc3Qod2ViRnJhbWUtPmZyYW1lKCktPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJl
c291cmNlUmVxdWVzdCh1cmwpKTsKKyAgICByZXF1ZXN0LnNldExvY2tIaXN0b3J5KGZhbHNlKTsK
KyAgICByZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKFN1YnN0aXR1dGVEYXRhKGJ1ZiwgU3RyaW5n
KCJ0ZXh0L2h0bWwiKSwgU3RyaW5nKCJVVEYtOCIpLCBLVVJMKCkpKTsKKyAgICB3ZWJGcmFtZS0+
ZnJhbWUoKS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCk7CiAKICAgICAvLyBUaGlzIGRvY3VtZW50
IHdpbGwgYmUgdXNlZCBhcyAnbG9hZGluZyBjb250ZXh0JyBmb3IgdGhlIHdvcmtlci4KICAgICBt
X2xvYWRpbmdEb2N1bWVudCA9IHdlYkZyYW1lLT5mcmFtZSgpLT5kb2N1bWVudCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCA3MzhhOTM5MThmMzAxOTFiNTI2YzZmZjE4YjI5
NWFmYzliN2I5YTdkLi4xYzAzNjY2MDY3Y2IwMzYxZTg3MGNlYzk4ZDQ2MDk4ZmQyNmI1ZGI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5o
IgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVl
c3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudEVmbC5oIgogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgogI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCkBAIC00MTYsNyArNDE3LDEwIEBA
IHN0YXRpYyBFaW5hX0Jvb2wgX2V3a19mcmFtZV9jb250ZW50c19zZXRfaW50ZXJuYWwoRXdrX0Zy
YW1lX1NtYXJ0X0RhdGEqIHNtYXJ0RGF0CiAgICAgICAgIGJhc2VLVVJMLCB1bnJlYWNoYWJsZUtV
UkwpOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGJhc2VLVVJMKTsKIAot
ICAgIHNtYXJ0RGF0YS0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVE
YXRhLCBmYWxzZSk7CisgICAgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3Qo
c21hcnREYXRhLT5mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdCk7
CisgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1YnN0aXR1dGVEYXRhKTsKKyAg
ICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgIHNtYXJ0RGF0YS0+ZnJh
bWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4IGMxMDMz
ZTYxZGJjMGE0MDI5MmQxYTYxZWRkYTFkOTY1MzI3ODc5YjYuLjE0ZDlmYWMwNGI0Y2ZmMGMxYTIw
NzMwOGU4YWI1MDk5Mjk0NDI4MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmZyYW1lLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21l
bnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9h
ZGVyR3RrLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKICNpbmNsdWRlICJG
cmFtZVNlbGVjdGlvbi5oIgpAQCAtNjkzLDcgKzY5NCw5IEBAIHZvaWQgd2Via2l0X3dlYl9mcmFt
ZV9sb2FkX3VyaShXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiB1cmkpCiAgICAg
aWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVy
KCktPmxvYWQoUmVzb3VyY2VSZXF1ZXN0KEtVUkwoS1VSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVy
aSkpKSwgZmFsc2UpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChjb3JlRnJhbWUtPmRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdChLVVJMKEtVUkwoKSwg
U3RyaW5nOjpmcm9tVVRGOCh1cmkpKSkpOworICAgIHJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFs
c2UpOworICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCk7CiB9CiAKIHN0YXRp
YyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9kYXRhKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwg
Y29uc3QgZ2NoYXIqIGNvbnRlbnQsIGNvbnN0IGdjaGFyKiBtaW1lVHlwZSwgY29uc3QgZ2NoYXIq
IGVuY29kaW5nLCBjb25zdCBnY2hhciogYmFzZVVSTCwgY29uc3QgZ2NoYXIqIHVucmVhY2hhYmxl
VVJMKQpAQCAtNzEyLDcgKzcxNSwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2xv
YWRfZGF0YShXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBjb250ZQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtVUkwoS1VSTCgpLCBTdHJpbmc6OmZyb21VVEY4
KHVucmVhY2hhYmxlVVJMKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS1VS
TChLVVJMKCksIFN0cmluZzo6ZnJvbVVURjgodW5yZWFjaGFibGVVUkwpKSk7CiAKLSAgICBjb3Jl
RnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7Cisg
ICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoY29yZUZyYW1lLT5kb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0U3Vic3RpdHV0
ZURhdGEoc3Vic3RpdHV0ZURhdGEpOworICAgIGZyYW1lUmVxdWVzdC5zZXRMb2NrSGlzdG9yeShm
YWxzZSk7CisgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQog
CiAvKioKQEAgLTc4MSw3ICs3ODcsOSBAQCB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9yZXF1
ZXN0KFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgV2ViS2l0TmV0d29ya1JlcXVlc3QqCiAgICAgaWYg
KCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkt
PmxvYWQoY29yZShyZXF1ZXN0KSwgZmFsc2UpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVS
ZXF1ZXN0KGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgY29yZShyZXF1
ZXN0KSk7CisgICAgZnJhbWVSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGZhbHNlKTsKKyAgICBjb3Jl
RnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tIGIvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCmluZGV4IDNmZjEw
OTA4NjgxZDFhZTcyYTYwOGY0YzVjOGI5YTRkNWIyMGMxNjguLmUwZjUxNDI3NTRhMGNhOGE4NDU3
MWFiZDUzNTBhNTY2YWFlYjMxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KQEAgLTUwLDYgKzUwLDcgQEAKICNpbXBvcnQgPEZvdW5k
YXRpb24vTlNVUkxSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZFJl
cXVlc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvSFRNTE1lZGlhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KQEAg
LTQwMSw3ICs0MDIsMTEgQEAgc3RhdGljIHZvaWQgY2FuY2VsT3V0c3RhbmRpbmdDaGVjayhjb25z
dCB2b2lkICppdGVtLCB2b2lkICpjb250ZXh0KQogICAgICAgICAgICAgTE9HX0VSUk9SKCJjb3Vs
ZCBub3QgbG9hZCBVUkwgJUAiLCBbcmVxdWVzdCBVUkxdKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQotICAgICAgICBjb3JlKGZyYW1lKS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwg
dGFyZ2V0LCBmYWxzZSk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGNv
cmUoZnJhbWUpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0KTsKKyAgICAg
ICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZSh0YXJnZXQpOworICAgICAgICBmcmFtZVJlcXVl
c3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgICAgICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxk
Q2hlY2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7CisgICAgICAgIGNvcmUoZnJhbWUpLT5sb2FkZXIo
KS0+bG9hZChmcmFtZVJlcXVlc3QpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0KaW5kZXggZjkxZmZkOGU1MWJkNGRhY2I3YWYwYTFjYzRmMjY1MTNjM2VkYTgz
Mi4uNjAzMjMyMTUyYjQwYWMyZDZmZWNhYzE0YTBiZTllM2U3MWIwOWY3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL0V2ZW50SGFuZGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0ZyYW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZFJlcXVlc3Qu
aD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJh
bWVMb2FkZXJTdGF0ZU1hY2hpbmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVUcmVlLmg+CkBA
IC0xMzY5LDcgKzEzNzAsOSBAQCBzdGF0aWMgYm9vbCBuZWVkc01pY3Jvc29mdE1lc3NlbmdlckRP
TURvY3VtZW50V29ya2Fyb3VuZCgpCiAgICAgaWYgKCFyZXNvdXJjZVJlcXVlc3QudXJsKCkuaXNW
YWxpZCgpICYmICFyZXNvdXJjZVJlcXVlc3QudXJsKCkuaXNFbXB0eSgpKQogICAgICAgICByZXNv
dXJjZVJlcXVlc3Quc2V0VVJMKFtOU1VSTCBVUkxXaXRoU3RyaW5nOltAImZpbGU6IiBzdHJpbmdC
eUFwcGVuZGluZ1N0cmluZzpbW3JlcXVlc3QgVVJMXSBhYnNvbHV0ZVN0cmluZ11dXSk7CiAKLSAg
ICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlc291cmNlUmVxdWVzdCwgZmFsc2UpOworICAg
IEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgcmVzb3VyY2VSZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0TG9j
a0hpc3RvcnkoZmFsc2UpOworICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1
ZXN0KTsKIH0KIAogc3RhdGljIE5TVVJMICpjcmVhdGVVbmlxdWVXZWJEYXRhVVJMKCkKQEAgLTE0
MDAsNyArMTQwMywxMCBAQCBzdGF0aWMgTlNVUkwgKmNyZWF0ZVVuaXF1ZVdlYkRhdGFVUkwoKQog
CiAgICAgU3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoV2ViQ29yZTo6U2hhcmVkQnVmZmVy
Ojp3cmFwTlNEYXRhKGRhdGEpLCBNSU1FVHlwZSwgZW5jb2RpbmdOYW1lLCBbdW5yZWFjaGFibGVV
UkwgYWJzb2x1dGVVUkxdLCByZXNwb25zZVVSTCk7CiAKLSAgICBfcHJpdmF0ZS0+Y29yZUZyYW1l
LT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIEZy
YW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KF9wcml2YXRlLT5jb3JlRnJhbWUtPmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCksIHJlcXVlc3QpOworICAgIGZyYW1lUmVxdWVzdC5zZXRTdWJz
dGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0YSk7CisgICAgZnJhbWVSZXF1ZXN0LnNldExvY2tIaXN0
b3J5KGZhbHNlKTsKKyAgICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFt
ZVJlcXVlc3QpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJm
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4IDBhY2Nk
MzM2MmRkNjg3MzRjZmRmMjEzODVlYzM4MDY0ZjJjMTMxYmYuLjE1ZjA2MTA4Njk2OTE4NDI4MzYz
NzIzMjBmNjJkMjgwM2ZjMmNiM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3Qu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxl
Y3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKQEAgLTQ4MSw3ICs0ODIsMTEgQEAgUVdl
YkZyYW1lOjpRV2ViRnJhbWUoUVdlYlBhZ2UgKnBhcmVudCwgUVdlYkZyYW1lRGF0YSAqZnJhbWVE
YXRhKQogCiAgICAgaWYgKCFmcmFtZURhdGEtPnVybC5pc0VtcHR5KCkpIHsKICAgICAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZnJhbWVEYXRhLT51cmwsIGZyYW1lRGF0YS0+
cmVmZXJyZXIpOwotICAgICAgICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgZnJh
bWVEYXRhLT5uYW1lLCBmYWxzZSk7CisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Qg
ZnJhbWVSZXF1ZXN0KGQtPmZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCByZXF1
ZXN0KTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZShmcmFtZURhdGEtPm5hbWUp
OworICAgICAgICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgICAgICBm
cmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7CisgICAgICAg
IGQtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogICAgIH0KICNpZiBFTkFC
TEUoT1JJRU5UQVRJT05fRVZFTlRTKQogICAgIGNvbm5lY3QoJmQtPm1fb3JpZW50YXRpb24sIFNJ
R05BTChyZWFkaW5nQ2hhbmdlZCgpKSwgdGhpcywgU0xPVChfcV9vcmllbnRhdGlvbkNoYW5nZWQo
KSkpOwpAQCAtODQ2LDcgKzg1MSw5IEBAIHZvaWQgUVdlYkZyYW1lOjpsb2FkKGNvbnN0IFFOZXR3
b3JrUmVxdWVzdCAmcmVxLAogICAgIGlmICghYm9keS5pc0VtcHR5KCkpCiAgICAgICAgIHJlcXVl
c3Quc2V0SFRUUEJvZHkoV2ViQ29yZTo6Rm9ybURhdGE6OmNyZWF0ZShib2R5LmNvbnN0RGF0YSgp
LCBib2R5LnNpemUoKSkpOwogCi0gICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3Qs
IGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChkLT5mcmFtZS0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdCk7CisgICAgZnJhbWVSZXF1ZXN0LnNl
dExvY2tIaXN0b3J5KGZhbHNlKTsKKyAgICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVS
ZXF1ZXN0KTsKIAogICAgIGlmIChkLT5wYXJlbnRGcmFtZSgpKQogICAgICAgICBkLT5wYWdlLT5k
LT5pbnNpZGVPcGVuQ2FsbCA9IGZhbHNlOwpAQCAtODgzLDcgKzg5MCwxMCBAQCB2b2lkIFFXZWJG
cmFtZTo6c2V0SHRtbChjb25zdCBRU3RyaW5nICZodG1sLCBjb25zdCBRVXJsICZiYXNlVXJsKQog
ICAgIGNvbnN0IFFCeXRlQXJyYXkgdXRmOCA9IGh0bWwudG9VdGY4KCk7CiAgICAgV1RGOjpSZWZQ
dHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBkYXRhID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpj
cmVhdGUodXRmOC5jb25zdERhdGEoKSwgdXRmOC5sZW5ndGgoKSk7CiAgICAgV2ViQ29yZTo6U3Vi
c3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoZGF0YSwgV1RGOjpTdHJpbmcoInRleHQvaHRtbCIp
LCBXVEY6OlN0cmluZygidXRmLTgiKSwgS1VSTCgpKTsKLSAgICBkLT5mcmFtZS0+bG9hZGVyKCkt
PmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1
ZXN0IGZyYW1lUmVxdWVzdChkLT5mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwg
cmVxdWVzdCk7CisgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1YnN0aXR1dGVE
YXRhKTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgIGQtPmZy
YW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiAvKiEKQEAgLTkxMyw3ICs5
MjMsMTAgQEAgdm9pZCBRV2ViRnJhbWU6OnNldENvbnRlbnQoY29uc3QgUUJ5dGVBcnJheSAmZGF0
YSwgY29uc3QgUVN0cmluZyAmbWltZVR5cGUsIGNvbnMKICAgICAgICAgZW5jb2RpbmcgPSBleHRy
YWN0Q2hhcnNldEZyb21NZWRpYVR5cGUobWltZVR5cGUpOwogICAgIH0KICAgICBXZWJDb3JlOjpT
dWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShidWZmZXIsIFdURjo6U3RyaW5nKGFjdHVhbE1p
bWVUeXBlKSwgZW5jb2RpbmcsIEtVUkwoKSk7Ci0gICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2Fk
KHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBm
cmFtZVJlcXVlc3QoZC0+ZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHJlcXVl
c3QpOworICAgIGZyYW1lUmVxdWVzdC5zZXRTdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0YSk7
CisgICAgZnJhbWVSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGZhbHNlKTsKKyAgICBkLT5mcmFtZS0+
bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKIH0KIAogLyohCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
Y3BwCmluZGV4IGRhNzkzMTExZmFiZGIzYTA5NDkxMjJiMGU2ZDA0YTZlZWZiNDUxMjYuLjY1YWVi
ODkzM2MyNjY5MzkyODkzN2EzYTIwYzg2ZmQzYWQ1YmEwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
Y3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZv
Y3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2Fk
UmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50UXQuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKICNpbmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIKQEAgLTk3NSw3ICs5NzYsMTAg
QEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0QWx0ZXJuYXRlSHRtbChRV2ViRnJh
bWUqIGZyYW1lLCBjb25zdCBRU3RyaW5nJgogICAgIGNvbnN0IFFCeXRlQXJyYXkgdXRmOCA9IGh0
bWwudG9VdGY4KCk7CiAgICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBkYXRh
ID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUodXRmOC5jb25zdERhdGEoKSwgdXRmOC5s
ZW5ndGgoKSk7CiAgICAgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoZGF0
YSwgV1RGOjpTdHJpbmcoInRleHQvaHRtbCIpLCBXVEY6OlN0cmluZygidXRmLTgiKSwgZmFpbGlu
Z1VybCk7Ci0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRl
RGF0YSwgZmFsc2UpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGNvcmVGcmFt
ZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdCk7CisgICAgZnJhbWVSZXF1
ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1YnN0aXR1dGVEYXRhKTsKKyAgICBmcmFtZVJlcXVlc3Qu
c2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJh
bWVSZXF1ZXN0KTsKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6Y29uZmlybUNv
bXBvc2l0aW9uKFFXZWJQYWdlKiBwYWdlLCBjb25zdCBjaGFyKiB0ZXh0KQpAQCAtMTE5OSw0ICsx
MjAzLDMgQEAgdm9pZCBRV0VCS0lUX0VYUE9SVCBxdF9kdW1wX3NldF9hY2NlcHRzX2VkaXRpbmco
Ym9vbCBiKQogewogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wU2V0QWNjZXB0c0Vk
aXRpbmcoYik7CiB9Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IDA3MzFkOTMxNThhMTZmOTczMGU4NDFl
MjA4MTdhODgyMmI0ZTYxNDguLmMzOGFiODk0ZTAxZDA1N2VlNmMwYTk4MzRiZDRjNjc5YjQwNjIx
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkNTU1Byb3Bl
cnR5TmFtZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZvcm1T
dGF0ZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0UXQuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKQEAgLTExNjQsNyArMTE2NSwxMCBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50
UXQ6OmNhbGxFcnJvclBhZ2VFeHRlbnNpb24oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYg
ZQogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGJhc2VVcmwpOwogICAgIFdU
Rjo6UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVk
QnVmZmVyOjpjcmVhdGUob3V0cHV0LmNvbnRlbnQuY29uc3REYXRhKCksIG91dHB1dC5jb250ZW50
Lmxlbmd0aCgpKTsKICAgICBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShi
dWZmZXIsIG91dHB1dC5jb250ZW50VHlwZSwgb3V0cHV0LmVuY29kaW5nLCBmYWlsaW5nVXJsKTsK
LSAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFs
c2UpOworICAgIFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KG1fZnJhbWUt
PmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpOworICAgIGZyYW1lUmVxdWVzdC5zZXRTdWJz
dGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0YSk7CisgICAgZnJhbWVSZXF1ZXN0LnNldExvY2tIaXN0
b3J5KGZhbHNlKTsKKyAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJG
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggZWU5Y2RkOGM0
NDE4ZDhhMjdlNjgwNGYwMjA4OTViYjU1YjIzODJjNS4uMDdmNDUwNDRlZGYwOGE4NDEzYTk3ZmE1
ZTQ4NjFlYTBhNjJiZWIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcApAQCAtNTU2LDcgKzU1Niw5
IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRnJhbWU6OmxvYWRSZXF1ZXN0KAogICAg
IGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gRV9GQUlMOwogCi0gICAgY29yZUZyYW1l
LT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0SW1wbC0+cmVzb3VyY2VSZXF1ZXN0KCksIGZhbHNlKTsK
KyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChjb3JlRnJhbWUtPmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCksIHJlcXVlc3RJbXBsLT5yZXNvdXJjZVJlcXVlc3QoKSk7CisgICAg
ZnJhbWVSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGZhbHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRl
cigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKQEAgLTU3OSw4
ICs1ODEsMTIgQEAgdm9pZCBXZWJGcmFtZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+IGRhdGEsIEJTVFIgbWltZVR5cGUsIEIKICAgICBTdWJzdGl0dXRlRGF0YSBz
dWJzdGl0dXRlRGF0YShkYXRhLCBtaW1lVHlwZVN0cmluZywgZW5jb2RpbmdTdHJpbmcsIGZhaWxp
bmdLVVJMKTsKIAogICAgIC8vIFRoaXMgbWV0aG9kIGlzIG9ubHkgY2FsbGVkIGZyb20gSVdlYkZy
YW1lIG1ldGhvZHMsIHNvIGRvbid0IEFTU0VSVCB0aGF0IHRoZSBGcmFtZSBwb2ludGVyIGlzbid0
IG51bGwuCi0gICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHRoaXMpKQotICAgICAgICBj
b3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7
CisgICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHRoaXMpKSB7CisgICAgICAgIEZyYW1l
TG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKSwgcmVxdWVzdEltcGwtPnJlc291cmNlUmVxdWVzdCgpKTsKKyAgICAgICAgZnJhbWVS
ZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1YnN0aXR1dGVEYXRhKTsKKyAgICAgICAgZnJhbWVS
ZXF1ZXN0LnNldExvY2tIaXN0b3J5KGZhbHNlKTsKKyAgICAgICAgY29yZUZyYW1lLT5sb2FkZXIo
KS0+bG9hZChmcmFtZVJlcXVlc3QpOworICAgIH0KIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3LmNw
cAppbmRleCBmY2MwNGQ3ZGI2YjY2MWE4N2Y1OTY4NjM0NWQ5ODg3OTc4ZjQzZmQ2Li5mY2Y3OWRm
Njc0ZGI2ZTc3ZDVmODY2ZGNlOTIzOGVlYzQ4ZTIzOTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJFZGl0b3JDbGllbnRXaW5DRS5oIgogI2lu
Y2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAi
RnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnRXaW5DRS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMjE4
LDcgKzIxOSw5IEBAIHZvaWQgV2ViVmlldzo6bG9hZChjb25zdCBTdHJpbmcgJnVybCkKIAogdm9p
ZCBXZWJWaWV3Ojpsb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCAmcmVxdWVzdCkK
IHsKLSAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBmYWxzZSk7CisgICAgRnJh
bWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKSwgcmVxdWVzdCk7CisgICAgZnJhbWVSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGZhbHNl
KTsKKyAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiB2b2lk
IFdlYlZpZXc6OnJlbG9hZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYkZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCmluZGV4IGIzNzQxMTNjMDc3MmEx
YzdmMjZmMjQ0MDgzMDAyYmIzYWFlOGM4YTkuLmM4NTgwY2U0MTk4M2JiMDBjOTExZGQwMTY1ZWUx
MzZlYWI0MmIxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFd4LmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCkBAIC0zMjIsNyArMzIzLDExIEBAIHZvaWQgV2ViRnJhbWU6OlNldFBhZ2VTb3VyY2Uo
Y29uc3Qgd3hTdHJpbmcmIHNvdXJjZSwgY29uc3Qgd3hTdHJpbmcmIGJhc2VVcmwsIGNvCiAgICAg
ICAgIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKHNoYXJlZEJ1ZmZlciwg
bWltZXR5cGUsIFdURjo6U3RyaW5nKCJVVEYtOCIpLCBXZWJDb3JlOjpibGFua1VSTCgpLCB1cmwp
OwogCiAgICAgICAgIG1faW1wbC0+ZnJhbWUtPmxvYWRlcigpLT5zdG9wKCk7Ci0gICAgICAgIG1f
aW1wbC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCh1cmwp
LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworCisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFJl
cXVlc3QgZnJhbWVSZXF1ZXN0KG1faW1wbC0+ZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCksIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCh1cmwpKTsKKyAgICAgICAgZnJhbWVSZXF1
ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1YnN0aXR1dGVEYXRhKTsKKyAgICAgICAgZnJhbWVSZXF1
ZXN0LnNldExvY2tIaXN0b3J5KGZhbHNlKTsKKyAgICAgICAgbV9pbXBsLT5mcmFtZS0+bG9hZGVy
KCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA4YjAzNjE2MDdmZTI1Nzkw
Mjg1MDBjNTRhOTEwNmY1YWJkMWY0Yzk4Li5kZjBjNWU4Zjc4NTUyNjc4ZTNmZWM4NjRiNTUxOTJh
MTZmMWIwMjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCkBAIC05NTAsNyArOTUwLDExIEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9y
bUZyYW1lTG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCogcmVxdWVzdCkKICAgICBGcmFtZSogdGFy
Z2V0RnJhbWUgPSBmcmFtZS0+bG9hZGVyKCktPmZpbmRGcmFtZUZvck5hdmlnYXRpb24ocmVxdWVz
dC0+dGFyZ2V0KCkpOwogICAgIGlmICghdGFyZ2V0RnJhbWUpIHsKICAgICAgICAgLy8gV2UgZGlk
IG5vdCBmaW5kIGEgdGFyZ2V0IGZyYW1lLiBBc2sgb3VyIGZyYW1lIHRvIGxvYWQgdGhlIHBhZ2Uu
IFRoaXMgbWF5IG9yIG1heSBub3QgY3JlYXRlIGEgcG9wdXAgd2luZG93LgotICAgICAgICBmcmFt
ZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdC0+cmVxdWVzdCgpLCByZXF1ZXN0LT50YXJnZXQoKSwg
ZmFsc2UpOworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChmcmFtZS0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdC0+cmVxdWVzdCgpKTsKKyAgICAgICAg
ZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZShyZXF1ZXN0LT50YXJnZXQoKSk7CisgICAgICAgIGZy
YW1lUmVxdWVzdC5zZXRMb2NrSGlzdG9yeShmYWxzZSk7CisgICAgICAgIGZyYW1lUmVxdWVzdC5z
ZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSh0cnVlKTsKKyAgICAgICAgZnJhbWUtPmxvYWRl
cigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAKICAgICAgICAgLy8gRklYTUU6IFdlIGRvbid0IGtu
b3cgd2hldGhlciB0aGUgd2luZG93IHdhcyBzdWNjZXNzZnVsbHkgY3JlYXRlZCBoZXJlIHNvIHdl
IGp1c3QgYXNzdW1lIHRoYXQgaXQgd29ya2VkLgogICAgICAgICAvLyBJdCdzIGJldHRlciB0aGFu
IG5vdCB0ZWxsaW5nIHRoZSBwbHVnLWluIGFueXRoaW5nLgpAQCAtOTU5LDcgKzk2Myw5IEBAIHZv
aWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCogcmVx
dWVzdCkKICAgICB9CiAKICAgICAvLyBOb3cgYXNrIHRoZSBmcmFtZSB0byBsb2FkIHRoZSByZXF1
ZXN0LgotICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LT5yZXF1ZXN0KCks
IGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdCh0YXJnZXRGcmFtZS0+
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdC0+cmVxdWVzdCgpKTsKKyAgICBm
cmFtZVJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2UpOworICAgIHRhcmdldEZyYW1lLT5sb2Fk
ZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogCiAgICAgV2ViRnJhbWUqIHRhcmdldFdlYkZyYW1l
ID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGllbnQqPih0YXJnZXRGcmFtZS0+bG9hZGVy
KCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKICAgICBpZiAoV2ViRnJhbWU6OkxvYWRMaXN0ZW5l
ciogbG9hZExpc3RlbmVyID0gdGFyZ2V0V2ViRnJhbWUtPmxvYWRMaXN0ZW5lcigpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggOWU2NjU3
NjQ4NzcyNDFkZmU0ZDFmZWM3MWRiMmExYTdlZWU0NGY5Ny4uY2Y4MjExNWUzZThhZGQxOTFmZmNm
YWY3MDIyYThlMjkxNWVmNTZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcApAQCAtODIyLDcgKzgyMiw5IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFVS
TFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTYW5kYm94RXh0
ZW5zCiAgICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0b3BwZXIodGhpcyk7CiAKICAg
ICBtX3NhbmRib3hFeHRlbnNpb25UcmFja2VyLmJlZ2luTG9hZChtX21haW5GcmFtZS5nZXQoKSwg
c2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5s
b2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFt
ZVJlcXVlc3QobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0TG9ja0hpc3RvcnkoZmFsc2Up
OworICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1
ZXN0KTsKIH0KIAogdm9pZCBXZWJQYWdlOjpsb2FkRGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gc2hhcmVkQnVmZmVyLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVu
Y29kaW5nTmFtZSwgY29uc3QgS1VSTCYgYmFzZVVSTCwgY29uc3QgS1VSTCYgdW5yZWFjaGFibGVV
UkwpCkBAIC04MzEsNyArODMzLDEwIEBAIHZvaWQgV2ViUGFnZTo6bG9hZERhdGEoUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+IHNoYXJlZEJ1ZmZlciwgY29uc3QgU3RyaW5nJiBNSU1FCiAKICAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChiYXNlVVJMKTsKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJz
dGl0dXRlRGF0YShzaGFyZWRCdWZmZXIsIE1JTUVUeXBlLCBlbmNvZGluZ05hbWUsIHVucmVhY2hh
YmxlVVJMKTsKLSAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJl
cXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFt
ZVJlcXVlc3QobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoc3Vi
c3RpdHV0ZURhdGEpOworICAgIGZyYW1lUmVxdWVzdC5zZXRMb2NrSGlzdG9yeShmYWxzZSk7Cisg
ICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3Qp
OwogfQogCiB2b2lkIFdlYlBhZ2U6OmxvYWRIVE1MU3RyaW5nKGNvbnN0IFN0cmluZyYgaHRtbFN0
cmluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMU3RyaW5nKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174269</attachid>
            <date>2012-11-14 15:22:18 -0800</date>
            <delta_ts>2012-11-14 16:22:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102151-20121114152016.patch</filename>
            <type>text/plain</type>
            <size>43164</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODNjZjkzM2U1ODJlYzJj
NGJmNmI5MjIyYzJkNTBlMDliZTdjMGQ5Ni4uNDVjYTFhMGE2NzM1MWVmYjkzYjUyMmE5MWU5MjFl
NDcxNjk4OGZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTEzICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0
ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9h
ZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZXJlJ3MgYSBGSVhNRSB0aGF0IHdlIGhhdmUgdG9vIG1hbnkgRnJhbWVMb2FkZXI6OmxvYWQq
KCkgZnVuY3Rpb25zLiBUaGlzIHBhdGNoIGNvbnNvbGlkYXRlcyAzIGludG8gMS4KKyAgICAgICAg
VGhlcmUgYXJlIHN0aWxsIGEgZmV3IG1vcmUgbG9hZCBmdW5jdGlvbnMgdGhhdCB3aWxsIGJlIGNv
bnNvbGlkYXRlZCBsYXRlci4gVXNpbmcgRnJhbWVMb2FkUmVxdWVzdCBhcworICAgICAgICB0aGUg
aW50ZXJmYWNlIGludG8gRnJhbWVMb2FkZXIgd2lsbCBhbHNvIHByb3ZpZGUgYSBwbGFjZSB0byBw
YXNzIGluIHRoZSBpbml0aWF0b3IuIEZpbmFsbHksIHRoaXMgbWF0Y2hlcworICAgICAgICB0aGUg
cmVmYWN0b3JpbmcgZG9uZSB3aXRoIENhY2hlZFJlc291cmNlUmVxdWVzdCBhbmQgQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gZnVuY3Rp
b25hbGl0eS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpG
cmFtZUxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNl
dExvY2tIaXN0b3J5KTogVGhlc2UgYXJlIGZvcm1lciBhcmd1bWVudHMgdG8gbG9hZCgpLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6bG9ja0hpc3RvcnkpOiBEaXR0by4KKyAg
ICAgICAgKEZyYW1lTG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVx
dWVzdDo6c2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpzdWJzdGl0dXRlRGF0YSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2V0U3Vic3RpdHV0
ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6Omhhc1N1
YnN0aXR1dGVEYXRhKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKTogTm8gY2hhbmdlIGluIGJlaGF2
aW9yLCBqdXN0IG1lcmdlZCBpdCBhbGwgaW50byBvbmUgZnVuY3Rpb24uCisgICAgICAgICogbG9h
ZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIChGcmFtZUxvYWRlcik6CisgICAgICAgICogcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6
cGVyZm9ybURyYWcpOgorCiAyMDEyLTExLTE0ICBIZWxkZXIgQ29ycmVpYSAgPGhlbGRlci5jb3Jy
ZWlhQG5va2lhLmNvbT4KIAogICAgICAgICBbVGV4TWFwXVtDYWlyb10gQWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmcgZGVidWcgdmlzdWFscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXgg
MTFiNTNmYmM3ZmMyMzdlZjIzZDc5MWYyMzMzMTc3ODAzOGU5NDkwMC4uM2FhYzVhMzI4YjBmYjNi
Yzc3MzAxNWY0ZTIzYjE0MmZlMzFjNDlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkg
aW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpsb2FkKToKKyAgICAg
ICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmxvYWRTdHJpbmcpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlk
RmFpbFByb3Zpc2lvbmFsTG9hZCk6CisKIDIwMTItMTEtMTQgIE5pbWEgR2hhbmF2YXRpYW4gIDxu
Z2hhbmF2YXRpYW5AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gRG8gbm90IGNsZWFy
IHRoZSBQcm9jZXNzaW5nQ2hhbmdlR3VhcmQgc3RhdGUgb24gRGVsZXRlQmFja3dhcmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYzVjYzAwNTU2MTYyYTZjN2ViMGYyNjIzZjA2MTQ3YTQy
ZDdiMzJjNS4uNDc5MzkxM2NmNDA0YTU3OGQ4NjEyNWM2ZDhjY2YyMjVjMjAxNGI1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMS0xMyAgSmFtZXMg
U2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUg
RnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRS
ZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6Omxv
YWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpsb2FkRGF0YSk6Cisg
ICAgICAgICogc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTaGFyZWRXb3JrZXJJbXBsOjppbml0aWFsaXplTG9hZGVyKToKKwogMjAxMi0xMS0xNCAgRXJp
YyBVaHJoYW5lICA8ZXJpY3VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRG9u
J3QgbGV0IHNoaWZ0LWNsaWNrIHR1cm4gcG9wdXAgaW50byB0YWIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5k
ZXggODc1M2QwMTllMjJkNjRmNGFkMzk5MzcwMTk3OGI2YTM4ZmRhZDY5Mi4uZGY0NmFmMzlkYjRk
OGMwMGRmYzE3NzVjN2UwNGI5YTM5MTFiNmYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEyLTExLTEzICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1
bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZXdrL2V3a19mcmFtZS5jcHA6CisgICAgICAgIChf
ZXdrX2ZyYW1lX2NvbnRlbnRzX3NldF9pbnRlcm5hbCk6CisKIDIwMTItMTEtMTIgIEt5dW5nVGFl
IEtpbSAgPGt0Zi5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gSW4gZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZWdpb24sIHRoZSAnc2xpY2VyJyBtYXkgYmUgdW5p
bml0aWFsaXplZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGRkNzdlMjUxNjNiZjc0Nzk2ZjkzZTI0MzA0
MmQ0YTE5MzI0NjZmOTUuLjMxZTJiY2QyZjk2NjQyOTZjMzQ4MDYxZDA4MGU5MzdmNTNhNDQzNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0xMyAgSmFtZXMgU2lt
b25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJh
bWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1
ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIx
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2xvYWRf
dXJpKToKKyAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9kYXRhKToKKyAgICAgICAgKHdl
YmtpdF93ZWJfZnJhbWVfbG9hZF9yZXF1ZXN0KToKKwogMjAxMi0xMS0xMiAgSm9zaCBSaWNrbWFy
ICA8anJpY2tAZGV2aW8udXM+CiAKICAgICAgICAgQWRkIFdlYkNvcmU6OlNldHRpbmcgdG8gYmxv
Y2sgZGlzcGxheWluZyBhbmQvb3IgcnVubmluZyBpbnNlY3VyZSBjb250ZW50IG9uIHNlY3VyZSBw
YWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDY3ZGI5ZWJhN2JlODdkNWE3YTMwNWZlOGRlMTdjMjVh
NzFjN2ZlMzguLjFlYmYzNWU0NjkyMDFlZDQ2MzgwODlkN2IxMThhYzU1ZjhhNWJjNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0xMyAgSmFtZXMgU2ltb25zZW4g
IDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2Fk
ZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMv
V2ViUGx1Z2luQ29udHJvbGxlci5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgor
ICAgICAgICAoLVtXZWJGcmFtZSBsb2FkUmVxdWVzdDpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUg
X2xvYWREYXRhOk1JTUVUeXBlOnRleHRFbmNvZGluZ05hbWU6YmFzZVVSTDp1bnJlYWNoYWJsZVVS
TDpdKToKKwogMjAxMi0xMS0xMyAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRqdXN0IHRoZSBXZWIgSW5zcGVjdG9yIHdpbmRvdyB0aXRsZSBmcmFtZSBp
ZiBuZWVkZWQgdG8gcHJldmVudCBpdCBmcm9tIGludGVyc2VjdGluZyB0aGUgZG9jayBidXR0b24u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCmluZGV4IDM0MGNmOTUzNzQ2M2M2NjMxNThiNGJjMzM4NjZhYjc0ZGEwMzI4
NjkuLmM0NThlZWJjMWE0NmI1OGI4NGNkY2YyMGVmMTYxN2UwZTQ1MmFhODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25q
YW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2Fk
KCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBcGkvcXdlYmZyYW1lLmNw
cDoKKyAgICAgICAgKFFXZWJGcmFtZTo6UVdlYkZyYW1lKToKKyAgICAgICAgKFFXZWJGcmFtZTo6
bG9hZCk6CisgICAgICAgIChRV2ViRnJhbWU6OnNldEh0bWwpOgorICAgICAgICAoUVdlYkZyYW1l
OjpzZXRDb250ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0QWx0ZXJu
YXRlSHRtbCk6CisgICAgICAgIChxdF9kdW1wX3NldF9hY2NlcHRzX2VkaXRpbmcpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6Y2FsbEVycm9yUGFnZUV4dGVuc2lvbik6CisKIDIw
MTItMTEtMTQgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBbUXRdIEZpeCB0c3RfUVdlYkZyYW1lOjpzZXRVcmxXaXRoUGVuZGluZ0xvYWRzKCkgQVBJIHRl
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwppbmRleCBjNDRlM2IzNjYyZDgxYjIzODdjNWI1Yzk2OTRjMmM1MmZk
NDMzOTViLi4xNjk4NDk2NzUxM2ZlNWNjOTNhZTg4MTYxZWUyNDRiODZjYjkzMDM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8
c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVy
Ojpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJGcmFtZS5j
cHA6CisgICAgICAgIChXZWJGcmFtZTo6bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViRnJhbWU6
OmxvYWREYXRhKToKKwogMjAxMi0xMS0xNCAgR2VvcmdlIFRzb3VtYWxpcyAgPHRzdW1hbGlzOTZA
Z21haWwuY29tPgogCiAgICAgICAgIEltcGxlbWVudGF0aW9uIGZvciBtZWhvZHMgaW4gV2ViTXV0
YWJsZVVSTFJlcXVlc3QuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDJmYTNmMTMyZGUxNDMw
NDI2YmEwMjBhMGIzYzJlZmUxNDczMTM4MjguLmFlNGZiZDVlZWJlMGI1M2I5M2JiMTZkNTU0Mjhk
MmY4MTkwN2MxZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5n
IGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmxvYWQpOgorCiAy
MDEyLTEwLTI0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgYSBzdHJhdGVneSBmb3IgbG9hZGVyIGN1c3RvbWl6YXRpb24uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4
IGU5ZWFmMTMxOWUwMzI3ZWQ5Y2VjOWZiNDkyMDkzM2I3YTIyNTRjYzcuLjFiMTllYTBiNGRlMGYz
ZThhZmRiYjE4MzU4OTBlMjM5ZDJmMWQzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rp
b24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lOjpTZXRQYWdlU291cmNlKToKKwogMjAxMi0xMC0yMiAgSm9jZWx5biBUdXJjb3R0ZSAg
PGpvY2VseW4udHVyY290dGVAZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4ICJBU1NFUlRJ
T04gRkFJTEVEOiAhZG9jdW1lbnQtPmluUGFnZUNhY2hlKCkiIHdoZW4gbG9hZGluZyBhIHBhZ2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwMzNkZWI0N2YwMmI0YTE3YTgzYTAwZjVlZDhjMmUxNThmMTU4ZDFkLi5j
ZGFiZGMyZjIwYjM0ZDg3ZDNkZTYxYmEwNjM1MDY5YmQ0ZTVkMzU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBv
bmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnBlcmZvcm1GcmFtZUxvYWRV
UkxSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxSZXF1ZXN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6bG9hZERhdGEpOgorCiAyMDEyLTExLTE0ICBIZWxkZXIgQ29ycmVpYSAgPGhl
bGRlci5jb3JyZWlhQG5va2lhLmNvbT4KIAogICAgICAgICBbVGV4TWFwXVtDYWlyb10gQWNjZWxl
cmF0ZWQgY29tcG9zaXRpbmcgZGVidWcgdmlzdWFscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBi
YWM2YWFhMzI4YjdhZTYwZWE4ZWRlYWVkZDMwZDU4NmI4MWNhNzFjLi5kYWQ3YmZhNTZhMDQyMDk0
ZTBhNDcyMzQ5YTNjMDMyZjVjZDI2NDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTA3LDkg
KzEwNyw3IEBAIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyM3RpbWVPZkxhc3RDb21wbGV0ZWRM
b2FkRXYKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyNnJlbG9hZFdpdGhPdmVycmlkZUVuY29k
aW5nRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjMyc2V0T3JpZ2lu
YWxVUkxGb3JEb3dubG9hZFJlcXVlc3RFUk5TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjRpbml0RXYKLV9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVS
S05TXzE1UmVzb3VyY2VSZXF1ZXN0RVJLTjNXVEY2U3RyaW5nRWIKLV9fWk43V2ViQ29yZTExRnJh
bWVMb2FkZXI0bG9hZEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVJLTlNfMTRTdWJzdGl0dXRlRGF0
YUViCi1fX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNVJlc291cmNlUmVxdWVz
dEViCitfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUk5TXzE2RnJhbWVMb2FkUmVxdWVz
dEUKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI2cmVsb2FkRWIKIF9fWk43V2ViQ29yZTExRnJh
bWVMb2FkZXI5c2V0T3BlbmVyRVBOU181RnJhbWVFCiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVt
MTB0YXJnZXRJdGVtRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCmlu
ZGV4IGQ2NWE5YjVmYWMyZjYyMGY5NzIyMTMzNWU0N2U0Mjg4MDk2YzdjMzMuLmUxYjM5NmU3NjUz
YTBhZGRmNDFiOGFlMTc4YzA0NTg0NmMzNmE3NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZFJlcXVlc3QuaApAQCAtMjYsOCArMjYsMTEgQEAKICNpZm5kZWYgRnJhbWVMb2FkUmVx
dWVzdF9oCiAjZGVmaW5lIEZyYW1lTG9hZFJlcXVlc3RfaAogCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSwxMiArMzgsMTYgQEAgc3RydWN0IEZyYW1lTG9h
ZFJlcXVlc3QgewogcHVibGljOgogICAgIGV4cGxpY2l0IEZyYW1lTG9hZFJlcXVlc3QoU2VjdXJp
dHlPcmlnaW4qIHJlcXVlc3RlcikKICAgICAgICAgOiBtX3JlcXVlc3RlcihyZXF1ZXN0ZXIpCisg
ICAgICAgICwgbV9sb2NrSGlzdG9yeShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3
V2luZG93UG9saWN5KGZhbHNlKQogICAgIHsKICAgICB9CiAKICAgICBGcmFtZUxvYWRSZXF1ZXN0
KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3Vy
Y2VSZXF1ZXN0KQogICAgICAgICA6IG1fcmVxdWVzdGVyKHJlcXVlc3RlcikKICAgICAgICAgLCBt
X3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgICAgICwgbV9sb2NrSGlzdG9y
eShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQog
ICAgIHsKICAgICB9CiAKQEAgLTQ4LDYgKzU1LDE2IEBAIHB1YmxpYzoKICAgICAgICAgOiBtX3Jl
cXVlc3RlcihyZXF1ZXN0ZXIpCiAgICAgICAgICwgbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VS
ZXF1ZXN0KQogICAgICAgICAsIG1fZnJhbWVOYW1lKGZyYW1lTmFtZSkKKyAgICAgICAgLCBtX2xv
Y2tIaXN0b3J5KGZhbHNlKQorICAgICAgICAsIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3ko
ZmFsc2UpCisgICAgeworICAgIH0KKworICAgIEZyYW1lTG9hZFJlcXVlc3QoRnJhbWUqIGZyYW1l
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKKyAgICAgICAgOiBtX3Jl
cXVlc3RlcihmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkKKyAgICAgICAgLCBt
X3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgICAgICwgbV9sb2NrSGlzdG9y
eShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQog
ICAgIHsKICAgICB9CiAKQEAgLTYxLDEwICs3OCwyMyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3Ry
aW5nJiBmcmFtZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lTmFtZTsgfQogICAgIHZvaWQg
c2V0RnJhbWVOYW1lKGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lKSB7IG1fZnJhbWVOYW1lID0gZnJh
bWVOYW1lOyB9CiAKKyAgICB2b2lkIHNldExvY2tIaXN0b3J5KGJvb2wgbG9ja0hpc3RvcnkpIHsg
bV9sb2NrSGlzdG9yeSA9IGxvY2tIaXN0b3J5OyB9CisgICAgYm9vbCBsb2NrSGlzdG9yeSgpIGNv
bnN0IHsgcmV0dXJuIG1fbG9ja0hpc3Rvcnk7IH0KKworICAgIHZvaWQgc2V0U2hvdWxkQ2hlY2tO
ZXdXaW5kb3dQb2xpY3koYm9vbCBjaGVja1BvbGljeSkgeyBtX3Nob3VsZENoZWNrTmV3V2luZG93
UG9saWN5ID0gY2hlY2tQb2xpY3k7IH0KKyAgICBib29sIHNob3VsZENoZWNrTmV3V2luZG93UG9s
aWN5KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeTsgfQorCisg
ICAgY29uc3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKCkgY29uc3QgeyByZXR1cm4g
bV9zdWJzdGl0dXRlRGF0YTsgfQorICAgIHZvaWQgc2V0U3Vic3RpdHV0ZURhdGEoY29uc3QgU3Vi
c3RpdHV0ZURhdGEmIGRhdGEpIHsgbV9zdWJzdGl0dXRlRGF0YSA9IGRhdGE7IH0KKyAgICBib29s
IGhhc1N1YnN0aXR1dGVEYXRhKCkgeyByZXR1cm4gbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCk7
IH0KKwogcHJpdmF0ZToKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fcmVxdWVzdGVyOwog
ICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKICAgICBTdHJpbmcgbV9mcmFt
ZU5hbWU7CisgICAgYm9vbCBtX2xvY2tIaXN0b3J5OworICAgIGJvb2wgbV9zaG91bGRDaGVja05l
d1dpbmRvd1BvbGljeTsKKyAgICBTdWJzdGl0dXRlRGF0YSBtX3N1YnN0aXR1dGVEYXRhOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYzg5Njg1YjZiNTZl
NjJmZjZlMmY5ZmUxMzEyZDdiNmExZmRhODcwMy4uNTExYTNkZTA2ODM5NDRiNjZkOGMxYjFmODE0
ZDg1YWU0NTY1YWIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0x
MjQ0LDM2ICsxMjQ0LDMzIEBAIFN1YnN0aXR1dGVEYXRhIEZyYW1lTG9hZGVyOjpkZWZhdWx0U3Vi
c3RpdHV0ZURhdGFGb3JVUkwoY29uc3QgS1VSTCYgdXJsKQogICAgIHJldHVybiBTdWJzdGl0dXRl
RGF0YShTaGFyZWRCdWZmZXI6OmNyZWF0ZShlbmNvZGVkU3JjZG9jLmRhdGEoKSwgZW5jb2RlZFNy
Y2RvYy5sZW5ndGgoKSksICJ0ZXh0L2h0bWwiLCAiVVRGLTgiLCBLVVJMKCkpOwogfQogCi12b2lk
IEZyYW1lTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBs
b2NrSGlzdG9yeSkKK3ZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoY29uc3QgRnJhbWVMb2FkUmVxdWVz
dCYgcGFzc2VkUmVxdWVzdCkKIHsKLSAgICBsb2FkKHJlcXVlc3QsIGRlZmF1bHRTdWJzdGl0dXRl
RGF0YUZvclVSTChyZXF1ZXN0LnVybCgpKSwgbG9ja0hpc3RvcnkpOwotfQorICAgIEZyYW1lTG9h
ZFJlcXVlc3QgcmVxdWVzdChwYXNzZWRSZXF1ZXN0KTsKKyAgICBBU1NFUlQoIXJlcXVlc3QuaXNF
bXB0eSgpKTsKIAotdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSwgYm9vbCBsb2Nr
SGlzdG9yeSkKLXsKICAgICBpZiAobV9pblN0b3BBbGxMb2FkZXJzKQogICAgICAgICByZXR1cm47
Ci0gICAgICAgIAotICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbG9hZGVyID0gbV9jbGllbnQt
PmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKTsKLSAgICBpZiAo
bG9ja0hpc3RvcnkgJiYgbV9kb2N1bWVudExvYWRlcikKLSAgICAgICAgbG9hZGVyLT5zZXRDbGll
bnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkobV9kb2N1bWVudExvYWRlci0+ZGlkQ3JlYXRlR2xv
YmFsSGlzdG9yeUVudHJ5KCkgPyBtX2RvY3VtZW50TG9hZGVyLT51cmxGb3JIaXN0b3J5KCkuc3Ry
aW5nKCkgOiBtX2RvY3VtZW50TG9hZGVyLT5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnko
KSk7Ci0gICAgbG9hZChsb2FkZXIuZ2V0KCkpOwotfQogCi12b2lkIEZyYW1lTG9hZGVyOjpsb2Fk
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUs
IGJvb2wgbG9ja0hpc3RvcnkpCi17Ci0gICAgaWYgKGZyYW1lTmFtZS5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgbG9hZChyZXF1ZXN0LCBsb2NrSGlzdG9yeSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
CisgICAgaWYgKCFyZXF1ZXN0Lmhhc1N1YnN0aXR1dGVEYXRhKCkpIHsKKyAgICAgICAgaWYgKCFy
ZXF1ZXN0LmZyYW1lTmFtZSgpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgRnJhbWUqIGZyYW1l
ID0gZmluZEZyYW1lRm9yTmF2aWdhdGlvbihyZXF1ZXN0LmZyYW1lTmFtZSgpKTsKKyAgICAgICAg
ICAgIGlmIChmcmFtZSkgeworICAgICAgICAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+bG9hZChy
ZXF1ZXN0KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAg
IH0KIAotICAgIEZyYW1lKiBmcmFtZSA9IGZpbmRGcmFtZUZvck5hdmlnYXRpb24oZnJhbWVOYW1l
KTsKLSAgICBpZiAoZnJhbWUpIHsKLSAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVl
c3QsIGxvY2tIaXN0b3J5KTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXF1ZXN0LnNldFN1
YnN0aXR1dGVEYXRhKGRlZmF1bHRTdWJzdGl0dXRlRGF0YUZvclVSTChyZXF1ZXN0LnJlc291cmNl
UmVxdWVzdCgpLnVybCgpKSk7CisKKyAgICAgICAgaWYgKHJlcXVlc3Quc2hvdWxkQ2hlY2tOZXdX
aW5kb3dQb2xpY3koKSkKKyAgICAgICAgICAgIHBvbGljeUNoZWNrZXIoKS0+Y2hlY2tOZXdXaW5k
b3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBOYXZp
Z2F0aW9uVHlwZU90aGVyKSwgRnJhbWVMb2FkZXI6OmNhbGxDb250aW51ZUxvYWRBZnRlck5ld1dp
bmRvd1BvbGljeSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgMCwgcmVxdWVzdC5mcmFtZU5h
bWUoKSwgdGhpcyk7CiAgICAgfQogCi0gICAgcG9saWN5Q2hlY2tlcigpLT5jaGVja05ld1dpbmRv
d1BvbGljeShOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmlnYXRpb25UeXBlT3RoZXIpLCBG
cmFtZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5LCByZXF1ZXN0
LCAwLCBmcmFtZU5hbWUsIHRoaXMpOworICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbG9hZGVy
ID0gbV9jbGllbnQtPmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCksIHJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKSk7CisgICAgaWYgKHJlcXVlc3QubG9ja0hpc3Rv
cnkoKSAmJiBtX2RvY3VtZW50TG9hZGVyKQorICAgICAgICBsb2FkZXItPnNldENsaWVudFJlZGly
ZWN0U291cmNlRm9ySGlzdG9yeShtX2RvY3VtZW50TG9hZGVyLT5kaWRDcmVhdGVHbG9iYWxIaXN0
b3J5RW50cnkoKSA/IG1fZG9jdW1lbnRMb2FkZXItPnVybEZvckhpc3RvcnkoKS5zdHJpbmcoKSA6
IG1fZG9jdW1lbnRMb2FkZXItPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpKTsKKyAg
ICBsb2FkKGxvYWRlci5nZXQoKSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2
aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IE5hdmln
YXRpb25BY3Rpb24mIGFjdGlvbiwgYm9vbCBsb2NrSGlzdG9yeSwgRnJhbWVMb2FkVHlwZSB0eXBl
LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaAppbmRleCA1MTYzNjlhODY0MjM2ZmRkNGE1ZTRhMDliZDRlNWNkNjMwOTdlOGFkLi44
YTQzNWM4OTVhODJiMDk0NzVmNjRmYjliY2Q5ZmI1M2Y4YjZhMTI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuaApAQCAtMTA0LDkgKzEwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGxv
YWRGcmFtZVJlcXVlc3QoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGJvb2wgbG9ja0hpc3Rvcnks
IGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCwgIC8vIENhbGxlZCBieSBzdWJtaXRGb3JtLCBjYWxs
cyBsb2FkUG9zdFJlcXVlc3QgYW5kIGxvYWRVUkwuCiAgICAgICAgIFBhc3NSZWZQdHI8RXZlbnQ+
LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIFNob3VsZFNlbmRSZWZlcnJlcik7CiAKLSAgICB2b2lk
IGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBsb2NrSGlzdG9yeSk7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGxlZCBieSBXZWJGcmFtZSwgY2Fs
bHMgbG9hZChSZXNvdXJjZVJlcXVlc3QsIFN1YnN0aXR1dGVEYXRhKS4KLSAgICB2b2lkIGxvYWQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmLCBib29sIGxvY2tI
aXN0b3J5KTsgICAgICAgICAgICAgICAgIC8vIENhbGxlZCBib3RoIGJ5IFdlYkZyYW1lIGFuZCBp
bnRlcm5hbGx5LCBjYWxscyBsb2FkKERvY3VtZW50TG9hZGVyKikuCi0gICAgdm9pZCBsb2FkKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBib29sIGxvY2tI
aXN0b3J5KTsgICAgICAgICAgICAgICAvLyBDYWxsZWQgYnkgV2ViUGx1Z2luQ29udHJvbGxlci4K
KyAgICB2b2lkIGxvYWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYpOworCiAjaWYgRU5BQkxFKFdF
Ql9BUkNISVZFKSB8fCBFTkFCTEUoTUhUTUwpCiAgICAgdm9pZCBsb2FkQXJjaGl2ZShQYXNzUmVm
UHRyPEFyY2hpdmU+KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cAppbmRleCA4MWVhM2Y5NWRkMDQ2OTRkZjAzNGIwNzYwYWUwMGM2YTg2MWFmNWE4Li4zYTBkZDE2
ZDI2YWMyMDk2NGM5ZGI5NWNkYWFmZDIyOGFhZWU4OWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxl
ci5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTIzNyw3ICsy
MzgsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZyhEcmFnRGF0YSogZHJhZ0Rh
dGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fY2xpZW50LT53aWxsUGVyZm9ybURy
YWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkLCBkcmFnRGF0YSk7
Ci0gICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoUmVzb3VyY2VSZXF1ZXN0
KGRyYWdEYXRhLT5hc1VSTChtX3BhZ2UtPm1haW5GcmFtZSgpKSksIGZhbHNlKTsKKyAgICBtX3Bh
Z2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KG1fcGFnZS0+
bWFpbkZyYW1lKCksIFJlc291cmNlUmVxdWVzdChkcmFnRGF0YS0+YXNVUkwobV9wYWdlLT5tYWlu
RnJhbWUoKSkpKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCmluZGV4IDA0NjY4NDZkNDMxOTAyM2ZkNGZlZjlkMjAyZmNiZmJhMjdiN2Zk
ZWQuLjUyOTEwMmEwZGIyODk0N2IxMDBiODRkNDFmMGExNDQwYTM1MDA5MjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNDQwLDcgKzQ0MCwxMCBAQCB2b2lkIFBsdWdp
blZpZXc6OnBlcmZvcm1SZXF1ZXN0KFBsdWdpblJlcXVlc3QqIHJlcXVlc3QpCiAgICAgICAgICAg
ICAvLyBQbHVnaW5WaWV3LCBzbyB3ZSBwcm90ZWN0IGl0LiA8cmRhcjovL3Byb2JsZW0vNjk5MTI1
MT4KICAgICAgICAgICAgIFJlZlB0cjxQbHVnaW5WaWV3PiBwcm90ZWN0KHRoaXMpOwogCi0gICAg
ICAgICAgICBtX3BhcmVudEZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LT5mcmFtZUxvYWRS
ZXF1ZXN0KCkucmVzb3VyY2VSZXF1ZXN0KCksIHRhcmdldEZyYW1lTmFtZSwgZmFsc2UpOworICAg
ICAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9wYXJlbnRGcmFtZSwgcmVx
dWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJlc291cmNlUmVxdWVzdCgpKTsKKyAgICAgICAgICAg
IGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUodGFyZ2V0RnJhbWVOYW1lKTsKKyAgICAgICAgICAg
IGZyYW1lUmVxdWVzdC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSh0cnVlKTsKKyAgICAg
ICAgICAgIG1fcGFyZW50RnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAKICAg
ICAgICAgICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vNDgwNzQ2OT4gVGhpcyBzaG91bGQg
YmUgc2VudCB3aGVuIHRoZSBkb2N1bWVudCBoYXMgZmluaXNoZWQgbG9hZGluZwogICAgICAgICAg
ICAgaWYgKHJlcXVlc3QtPnNlbmROb3RpZmljYXRpb24oKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggOTcyZmViODk1MzMwM2I5NjM0YzUyN2U5NzRkZDEz
N2VhNjYyYTM2ZC4uZmMwNmY1MzkwYzcyYWYzMDI0NjQ4MGJmZmM2MDM1YTg0NTM0ZDkxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC01Niw2ICs1Niw3IEBA
CiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oIgogI2luY2x1ZGUgIkZvY3VzQ29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVz
dC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oIgogI2lmICFkZWZp
bmVkKFBVQkxJQ19CVUlMRCkgfHwgIVBVQkxJQ19CVUlMRAogI2luY2x1ZGUgIkdlb2xvY2F0aW9u
Q2xpZW50TW9jay5oIgpAQCAtNzAxLDcgKzcwMiwxMCBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjps
b2FkKGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIHVybCwgY29uc3QgQmxhY2tC
ZQogCiAgICAgcmVxdWVzdC5zZXRTdWdnZXN0ZWRTYXZlTmFtZShzdWdnZXN0ZWRTYXZlTmFtZSk7
CiAKLSAgICBtX21haW5GcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgIiIgLyogbmFtZSAq
LywgZmFsc2UpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KG1fbWFpbkZyYW1l
LCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0RnJhbWVOYW1lKCIiKTsKKyAgICBmcmFt
ZVJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7CisgICAgbV9tYWlu
RnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6
bG9hZChjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiB1cmwsIGNvbnN0IEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIG5ldHdvcmtUb2tlbiwgYm9vbCBpc0luaXRpYWwpCkBA
IC03NDYsNyArNzUwLDkgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6bG9hZFN0cmluZyhjb25zdCBC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBzdHJpbmcsIGNvbnMKICAgICAgICAgZXh0cmFj
dE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAgIGV4dHJhY3RDaGFy
c2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAgICFmYWlsaW5nVVJMLmVtcHR5
KCkgPyBwYXJzZVVybChmYWlsaW5nVVJMKSA6IEtVUkwoKSk7Ci0gICAgbV9tYWluRnJhbWUtPmxv
YWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgRnJhbWVM
b2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9tYWluRnJhbWUsIHJlcXVlc3QpOworICAgIGZyYW1l
UmVxdWVzdC5zZXRTdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0YSk7CisgICAgbV9tYWluRnJh
bWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6bG9h
ZFN0cmluZyhjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBzdHJpbmcsIGNvbnN0
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IEJsYWNrQmVycnk6
OlBsYXRmb3JtOjpTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6
U3RyaW5nJiBmYWlsaW5nVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0Jl
cnJ5LmNwcAppbmRleCAwNzkwYWI4YzkzMDEwMjZhOGE4NzIzZjIyYTA2NGI3NTgzZmQzMDczLi5k
YmE1YWU2N2UzYjMxZjM1YThkOTRjNzNmNGUyNjA5NmMxYTFiYTJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFj
a0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1
ZGUgIkNyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVD
bGllbnQuaCIKICNpbmNsdWRlICJFeHRlcm5hbEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgIkZyYW1l
TG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0QmxhY2tCZXJy
eS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5o
IgpAQCAtNzUyLDcgKzc1Myw5IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojpk
aXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFCiAgICAgfQogCiAg
ICAgbV9sb2FkaW5nRXJyb3JQYWdlID0gdHJ1ZTsKLSAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+bG9h
ZChvcmlnaW5hbFJlcXVlc3QsIGVycm9yRGF0YSwgZmFsc2UpOworICAgIEZyYW1lTG9hZFJlcXVl
c3QgZnJhbWVSZXF1ZXN0KG1fZnJhbWUsIG9yaWdpbmFsUmVxdWVzdCk7CisgICAgZnJhbWVSZXF1
ZXN0LnNldFN1YnN0aXR1dGVEYXRhKGVycm9yRGF0YSk7CisgICAgbV9mcmFtZS0+bG9hZGVyKCkt
PmxvYWQoZnJhbWVSZXF1ZXN0KTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVy
cnk6OmRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwg
UGFzc1JlZlB0cjxGb3JtU3RhdGU+KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5jcHAKaW5kZXggMTkzNjQ3NmYzYWUxYTIwMTQwMzNkYzNmZGI3ZTBjYWI1Y2E4Yzdm
Mi4uMjI0Y2FhMGM2M2ZjZjkwN2I1Yjk2NDBmNjNlMGVlZjM4YTljYWI5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC05NzUsNyArOTc1LDcgQEAg
dm9pZCBXZWJGcmFtZUltcGw6OmxvYWRSZXF1ZXN0KGNvbnN0IFdlYlVSTFJlcXVlc3QmIHJlcXVl
c3QpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9h
ZChyZXNvdXJjZVJlcXVlc3QsIGZhbHNlKTsKKyAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChG
cmFtZUxvYWRSZXF1ZXN0KGZyYW1lKCksIHJlc291cmNlUmVxdWVzdCkpOwogfQogCiB2b2lkIFdl
YkZyYW1lSW1wbDo6bG9hZEhpc3RvcnlJdGVtKGNvbnN0IFdlYkhpc3RvcnlJdGVtJiBpdGVtKQpA
QCAtOTk0LDggKzk5NCw2IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkSGlzdG9yeUl0ZW0oY29u
c3QgV2ViSGlzdG9yeUl0ZW0mIGl0ZW0pCiB2b2lkIFdlYkZyYW1lSW1wbDo6bG9hZERhdGEoY29u
c3QgV2ViRGF0YSYgZGF0YSwgY29uc3QgV2ViU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgV2ViU3Ry
aW5nJiB0ZXh0RW5jb2RpbmcsIGNvbnN0IFdlYlVSTCYgYmFzZVVSTCwgY29uc3QgV2ViVVJMJiB1
bnJlYWNoYWJsZVVSTCwgYm9vbCByZXBsYWNlKQogewogICAgIEFTU0VSVChmcmFtZSgpKTsKLSAg
ICBTdWJzdGl0dXRlRGF0YSBzdWJzdERhdGEoZGF0YSwgbWltZVR5cGUsIHRleHRFbmNvZGluZywg
dW5yZWFjaGFibGVVUkwpOwotICAgIEFTU0VSVChzdWJzdERhdGEuaXNWYWxpZCgpKTsKIAogICAg
IC8vIElmIHdlIGFyZSBsb2FkaW5nIHN1YnN0aXR1dGUgZGF0YSB0byByZXBsYWNlIGFuIGV4aXN0
aW5nIGxvYWQsIHRoZW4KICAgICAvLyBpbmhlcml0IGFsbCBvZiB0aGUgcHJvcGVydGllcyBvZiB0
aGF0IG9yaWdpbmFsIHJlcXVlc3QuICBUaGlzIHdheSwKQEAgLTEwMDgsNyArMTAwNiwxMCBAQCB2
b2lkIFdlYkZyYW1lSW1wbDo6bG9hZERhdGEoY29uc3QgV2ViRGF0YSYgZGF0YSwgY29uc3QgV2Vi
U3RyaW5nJiBtaW1lVHlwZSwgY29ucwogICAgICAgICByZXF1ZXN0ID0gZnJhbWUoKS0+bG9hZGVy
KCktPm9yaWdpbmFsUmVxdWVzdCgpOwogICAgIHJlcXVlc3Quc2V0VVJMKGJhc2VVUkwpOwogCi0g
ICAgZnJhbWUoKS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3REYXRhLCBmYWxzZSk7Cisg
ICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUoKSwgcmVxdWVzdCk7CisgICAg
ZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKFN1YnN0aXR1dGVEYXRhKGRhdGEsIG1pbWVU
eXBlLCB0ZXh0RW5jb2RpbmcsIHVucmVhY2hhYmxlVVJMKSk7CisgICAgQVNTRVJUKGZyYW1lUmVx
dWVzdC5zdWJzdGl0dXRlRGF0YSgpLmlzVmFsaWQoKSk7CisgICAgZnJhbWUoKS0+bG9hZGVyKCkt
PmxvYWQoZnJhbWVSZXF1ZXN0KTsKICAgICBpZiAocmVwbGFjZSkgewogICAgICAgICAvLyBEbyB0
aGlzIHRvIGZvcmNlIFdlYktpdCB0byB0cmVhdCB0aGUgbG9hZCBhcyByZXBsYWNpbmcgdGhlIGN1
cnJlbnRseQogICAgICAgICAvLyBsb2FkZWQgcGFnZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5jcHAKaW5kZXggNWNmOTk5ODUxM2FlYTM1
OTZlMGQ1ZjE0ODg2ZmE5ZTkxN2YxZmZiYS4uNzBlYTk1ZTVmMmJkMzE5MDY5M2Y3MTU4MDI1Zjc3
ODI5NjJjYjI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hh
cmVkV29ya2VySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hh
cmVkV29ya2VySW1wbC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDcm9zc1RocmVh
ZFRhc2suaCIKICNpbmNsdWRlICJEYXRhYmFzZVRhc2suaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJHcm91cFNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgpAQCAtMTMy
LDggKzEzMyw5IEBAIHZvaWQgV2ViU2hhcmVkV29ya2VySW1wbDo6aW5pdGlhbGl6ZUxvYWRlcihj
b25zdCBXZWJVUkwmIHVybCkKICAgICBDU3RyaW5nIGNvbnRlbnQoIiIpOwogICAgIGludCBsZW4g
PSBzdGF0aWNfY2FzdDxpbnQ+KGNvbnRlbnQubGVuZ3RoKCkpOwogICAgIFJlZlB0cjxTaGFyZWRC
dWZmZXI+IGJ1ZihTaGFyZWRCdWZmZXI6OmNyZWF0ZShjb250ZW50LmRhdGEoKSwgbGVuKSk7Ci0g
ICAgU3Vic3RpdHV0ZURhdGEgc3Vic3REYXRhKGJ1ZiwgU3RyaW5nKCJ0ZXh0L2h0bWwiKSwgU3Ry
aW5nKCJVVEYtOCIpLCBLVVJMKCkpOwotICAgIHdlYkZyYW1lLT5mcmFtZSgpLT5sb2FkZXIoKS0+
bG9hZChSZXNvdXJjZVJlcXVlc3QodXJsKSwgc3Vic3REYXRhLCBmYWxzZSk7CisgICAgRnJhbWVM
b2FkUmVxdWVzdCByZXF1ZXN0KHdlYkZyYW1lLT5mcmFtZSgpLCBSZXNvdXJjZVJlcXVlc3QodXJs
KSk7CisgICAgcmVxdWVzdC5zZXRTdWJzdGl0dXRlRGF0YShTdWJzdGl0dXRlRGF0YShidWYsIFN0
cmluZygidGV4dC9odG1sIiksIFN0cmluZygiVVRGLTgiKSwgS1VSTCgpKSk7CisgICAgd2ViRnJh
bWUtPmZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QpOwogCiAgICAgLy8gVGhpcyBkb2N1
bWVudCB3aWxsIGJlIHVzZWQgYXMgJ2xvYWRpbmcgY29udGV4dCcgZm9yIHRoZSB3b3JrZXIuCiAg
ICAgbV9sb2FkaW5nRG9jdW1lbnQgPSB3ZWJGcmFtZS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXggNzM4YTkzOTE4ZjMwMTkxYjUyNmM2ZmYx
OGIyOTVhZmM5YjdiOWE3ZC4uMzAxOGM2MTFjMjFmOGUwZDJkMDExY2NjNWQ4ZDEwYjAyMjI1Nzlk
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFdmVudEhhbmRs
ZXIuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRFZmwuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgpAQCAtMzM4LDcgKzMzOSw3
IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfdXJpX3NldChFdmFzX09iamVjdCogZXdrRnJhbWUsIGNv
bnN0IGNoYXIqIHVyaSkKICAgICBXZWJDb3JlOjpLVVJMIGt1cmwoV2ViQ29yZTo6S1VSTCgpLCBX
VEY6OlN0cmluZzo6ZnJvbVVURjgodXJpKSk7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IHJlcShrdXJsKTsKICAgICBXZWJDb3JlOjpGcmFtZUxvYWRlciogbG9hZGVyID0gc21hcnREYXRh
LT5mcmFtZS0+bG9hZGVyKCk7Ci0gICAgbG9hZGVyLT5sb2FkKHJlcSwgZmFsc2UpOworICAgIGxv
YWRlci0+bG9hZChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0KHNtYXJ0RGF0YS0+ZnJhbWUsIHJl
cSkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC00MTYsNyArNDE3LDkgQEAgc3RhdGljIEVp
bmFfQm9vbCBfZXdrX2ZyYW1lX2NvbnRlbnRzX3NldF9pbnRlcm5hbChFd2tfRnJhbWVfU21hcnRf
RGF0YSogc21hcnREYXQKICAgICAgICAgYmFzZUtVUkwsIHVucmVhY2hhYmxlS1VSTCk7CiAgICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoYmFzZUtVUkwpOwogCi0gICAgc21hcnRE
YXRhLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNl
KTsKKyAgICBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChzbWFydERhdGEt
PmZyYW1lLCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoc3Vi
c3RpdHV0ZURhdGEpOworICAgIHNtYXJ0RGF0YS0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1l
UmVxdWVzdCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4IGMxMDMzZTYxZGJjMGE0MDI5MmQxYTYxZWRkYTFk
OTY1MzI3ODc5YjYuLmE4MGM2YmMzOTI4OTc2YjUxZDAzMmY0MjIwZGQ4ZTlhNzQxZjgyNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyR3RrLmgiCisjaW5jbHVkZSAiRnJh
bWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnRHdGsuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgpAQCAtNjkz
LDcgKzY5NCw3IEBAIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9sb2FkX3VyaShXZWJLaXRXZWJGcmFt
ZSogZnJhbWUsIGNvbnN0IGdjaGFyKiB1cmkpCiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoUmVzb3VyY2VSZXF1ZXN0
KEtVUkwoS1VSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVyaSkpKSwgZmFsc2UpOworICAgIGNvcmVG
cmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUsIFJlc291cmNl
UmVxdWVzdChLVVJMKEtVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh1cmkpKSkpKTsKIH0KIAogc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9sb2FkX2RhdGEoV2ViS2l0V2ViRnJhbWUqIGZyYW1l
LCBjb25zdCBnY2hhciogY29udGVudCwgY29uc3QgZ2NoYXIqIG1pbWVUeXBlLCBjb25zdCBnY2hh
ciogZW5jb2RpbmcsIGNvbnN0IGdjaGFyKiBiYXNlVVJMLCBjb25zdCBnY2hhciogdW5yZWFjaGFi
bGVVUkwpCkBAIC03MTIsNyArNzEzLDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9s
b2FkX2RhdGEoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogY29udGUKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLVVJMKEtVUkwoKSwgU3RyaW5nOjpmcm9tVVRG
OCh1bnJlYWNoYWJsZVVSTCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtV
UkwoS1VSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVucmVhY2hhYmxlVVJMKSkpOwogCi0gICAgY29y
ZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOwor
ICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGNvcmVGcmFtZSwgcmVxdWVzdCk7Cisg
ICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1YnN0aXR1dGVEYXRhKTsKKyAgICBj
b3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIC8qKgpAQCAtNzgx
LDcgKzc4NCw3IEBAIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9sb2FkX3JlcXVlc3QoV2ViS2l0V2Vi
RnJhbWUqIGZyYW1lLCBXZWJLaXROZXR3b3JrUmVxdWVzdCoKICAgICBpZiAoIWNvcmVGcmFtZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChjb3JlKHJl
cXVlc3QpLCBmYWxzZSk7CisgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRS
ZXF1ZXN0KGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgY29yZShyZXF1
ZXN0KSkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
V2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1
Z2luQ29udHJvbGxlci5tbQppbmRleCAzZmYxMDkwODY4MWQxYWU3MmE2MDhmNGM1YzhiOWE0ZDVi
MjBjMTY4Li4zYjJiMWM3Nzg4MzEzMDRjNzE3ZTJmODcxMmI5NGNkYmYyNjhjNzQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCkBAIC01
MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMUmVxdWVzdC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgor
I2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zy
YW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvSFRNTE5hbWVzLmg+CkBAIC00MDEsNyArNDAyLDEwIEBAIHN0YXRpYyB2b2lk
IGNhbmNlbE91dHN0YW5kaW5nQ2hlY2soY29uc3Qgdm9pZCAqaXRlbSwgdm9pZCAqY29udGV4dCkK
ICAgICAgICAgICAgIExPR19FUlJPUigiY291bGQgbm90IGxvYWQgVVJMICVAIiwgW3JlcXVlc3Qg
VVJMXSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgY29yZShmcmFt
ZSktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHRhcmdldCwgZmFsc2UpOworICAgICAgICBGcmFt
ZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChjb3JlKGZyYW1lKSwgcmVxdWVzdCk7CisgICAgICAg
IGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUodGFyZ2V0KTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0
LnNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KHRydWUpOworICAgICAgICBjb3JlKGZyYW1l
KS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IGY5MWZmZDhlNTFiZDRkYWNiN2FmMGExY2M0ZjI2
NTEzYzNlZGE4MzIuLjNiNmE0YjE4NGViMzI2Y2Y4MTViOGRhOWM0MmFkNmY4NTEzNzkwMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtNjcsNiArNjcsNyBAQAogI2lt
cG9ydCA8V2ViQ29yZS9FdmVudEhhbmRsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnROYW1l
cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxv
YWRSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0ZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1l
VHJlZS5oPgpAQCAtMTM2OSw3ICsxMzcwLDcgQEAgc3RhdGljIGJvb2wgbmVlZHNNaWNyb3NvZnRN
ZXNzZW5nZXJET01Eb2N1bWVudFdvcmthcm91bmQoKQogICAgIGlmICghcmVzb3VyY2VSZXF1ZXN0
LnVybCgpLmlzVmFsaWQoKSAmJiAhcmVzb3VyY2VSZXF1ZXN0LnVybCgpLmlzRW1wdHkoKSkKICAg
ICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldFVSTChbTlNVUkwgVVJMV2l0aFN0cmluZzpbQCJmaWxl
OiIgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6W1tyZXF1ZXN0IFVSTF0gYWJzb2x1dGVTdHJpbmdd
XV0pOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXNvdXJjZVJlcXVlc3QsIGZh
bHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoY29y
ZUZyYW1lLCByZXNvdXJjZVJlcXVlc3QpKTsKIH0KIAogc3RhdGljIE5TVVJMICpjcmVhdGVVbmlx
dWVXZWJEYXRhVVJMKCkKQEAgLTE0MDAsNyArMTQwMSw5IEBAIHN0YXRpYyBOU1VSTCAqY3JlYXRl
VW5pcXVlV2ViRGF0YVVSTCgpCiAKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoZGF0YSksIE1JTUVUeXBlLCBlbmNvZGlu
Z05hbWUsIFt1bnJlYWNoYWJsZVVSTCBhYnNvbHV0ZVVSTF0sIHJlc3BvbnNlVVJMKTsKIAotICAg
IF9wcml2YXRlLT5jb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVE
YXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoX3ByaXZhdGUt
PmNvcmVGcmFtZSwgcmVxdWVzdCk7CisgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRh
KHN1YnN0aXR1dGVEYXRhKTsKKyAgICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5sb2FkZXIoKS0+bG9h
ZChmcmFtZVJlcXVlc3QpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBp
L3F3ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4
IDBhY2NkMzM2MmRkNjg3MzRjZmRmMjEzODVlYzM4MDY0ZjJjMTMxYmYuLjQ2MmQxYzU1MDQ3Zjkz
MDY3MmM4NTg1NjhiYmM4NmMzNDVmZDgyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
QXBpL3F3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNw
cApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGb2N1
c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJl
cXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiRnJh
bWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKQEAgLTQ4MSw3ICs0ODIsMTAg
QEAgUVdlYkZyYW1lOjpRV2ViRnJhbWUoUVdlYlBhZ2UgKnBhcmVudCwgUVdlYkZyYW1lRGF0YSAq
ZnJhbWVEYXRhKQogCiAgICAgaWYgKCFmcmFtZURhdGEtPnVybC5pc0VtcHR5KCkpIHsKICAgICAg
ICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZnJhbWVEYXRhLT51cmwsIGZyYW1l
RGF0YS0+cmVmZXJyZXIpOwotICAgICAgICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVz
dCwgZnJhbWVEYXRhLT5uYW1lLCBmYWxzZSk7CisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFJl
cXVlc3QgZnJhbWVSZXF1ZXN0KGQtPmZyYW1lLCByZXF1ZXN0KTsKKyAgICAgICAgZnJhbWVSZXF1
ZXN0LnNldEZyYW1lTmFtZShmcmFtZURhdGEtPm5hbWUpOworICAgICAgICBmcmFtZVJlcXVlc3Qu
c2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7CisgICAgICAgIGQtPmZyYW1lLT5s
b2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogICAgIH0KICNpZiBFTkFCTEUoT1JJRU5UQVRJ
T05fRVZFTlRTKQogICAgIGNvbm5lY3QoJmQtPm1fb3JpZW50YXRpb24sIFNJR05BTChyZWFkaW5n
Q2hhbmdlZCgpKSwgdGhpcywgU0xPVChfcV9vcmllbnRhdGlvbkNoYW5nZWQoKSkpOwpAQCAtODQ2
LDcgKzg1MCw3IEBAIHZvaWQgUVdlYkZyYW1lOjpsb2FkKGNvbnN0IFFOZXR3b3JrUmVxdWVzdCAm
cmVxLAogICAgIGlmICghYm9keS5pc0VtcHR5KCkpCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEJv
ZHkoV2ViQ29yZTo6Rm9ybURhdGE6OmNyZWF0ZShib2R5LmNvbnN0RGF0YSgpLCBib2R5LnNpemUo
KSkpOwogCi0gICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIGZhbHNlKTsKKyAg
ICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChkLT5mcmFtZSwgcmVx
dWVzdCkpOwogCiAgICAgaWYgKGQtPnBhcmVudEZyYW1lKCkpCiAgICAgICAgIGQtPnBhZ2UtPmQt
Pmluc2lkZU9wZW5DYWxsID0gZmFsc2U7CkBAIC04ODMsNyArODg3LDkgQEAgdm9pZCBRV2ViRnJh
bWU6OnNldEh0bWwoY29uc3QgUVN0cmluZyAmaHRtbCwgY29uc3QgUVVybCAmYmFzZVVybCkKICAg
ICBjb25zdCBRQnl0ZUFycmF5IHV0ZjggPSBodG1sLnRvVXRmOCgpOwogICAgIFdURjo6UmVmUHRy
PFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZGF0YSA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKHV0ZjguY29uc3REYXRhKCksIHV0ZjgubGVuZ3RoKCkpOwogICAgIFdlYkNvcmU6OlN1YnN0
aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKGRhdGEsIFdURjo6U3RyaW5nKCJ0ZXh0L2h0bWwiKSwg
V1RGOjpTdHJpbmcoInV0Zi04IiksIEtVUkwoKSk7Ci0gICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5s
b2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVz
dCBmcmFtZVJlcXVlc3QoZC0+ZnJhbWUsIHJlcXVlc3QpOworICAgIGZyYW1lUmVxdWVzdC5zZXRT
dWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0YSk7CisgICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5s
b2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIC8qIQpAQCAtOTEzLDcgKzkxOSw5IEBAIHZvaWQgUVdl
YkZyYW1lOjpzZXRDb250ZW50KGNvbnN0IFFCeXRlQXJyYXkgJmRhdGEsIGNvbnN0IFFTdHJpbmcg
Jm1pbWVUeXBlLCBjb25zCiAgICAgICAgIGVuY29kaW5nID0gZXh0cmFjdENoYXJzZXRGcm9tTWVk
aWFUeXBlKG1pbWVUeXBlKTsKICAgICB9CiAgICAgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEgc3Vi
c3RpdHV0ZURhdGEoYnVmZmVyLCBXVEY6OlN0cmluZyhhY3R1YWxNaW1lVHlwZSksIGVuY29kaW5n
LCBLVVJMKCkpOwotICAgIGQtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0
dXRlRGF0YSwgZmFsc2UpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGQtPmZy
YW1lLCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoc3Vic3Rp
dHV0ZURhdGEpOworICAgIGQtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwog
fQogCiAvKiEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggZGE3OTMxMTFmYWJkYjNhMDk0OTEy
MmIwZTZkMDRhNmVlZmI0NTEyNi4uMTg0YjJiMTJkNmI1NjViNmQ4NDA1Mjk1YzMxMThjM2JjNTk1
M2Q4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRl
ICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdDQ29udHJv
bGxlci5oIgpAQCAtOTc1LDcgKzk3Niw5IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6
OnNldEFsdGVybmF0ZUh0bWwoUVdlYkZyYW1lKiBmcmFtZSwgY29uc3QgUVN0cmluZyYKICAgICBj
b25zdCBRQnl0ZUFycmF5IHV0ZjggPSBodG1sLnRvVXRmOCgpOwogICAgIFdURjo6UmVmUHRyPFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZGF0YSA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KHV0ZjguY29uc3REYXRhKCksIHV0ZjgubGVuZ3RoKCkpOwogICAgIFdlYkNvcmU6OlN1YnN0aXR1
dGVEYXRhIHN1YnN0aXR1dGVEYXRhKGRhdGEsIFdURjo6U3RyaW5nKCJ0ZXh0L2h0bWwiKSwgV1RG
OjpTdHJpbmcoInV0Zi04IiksIGZhaWxpbmdVcmwpOwotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkt
PmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1
ZXN0IGZyYW1lUmVxdWVzdChjb3JlRnJhbWUsIHJlcXVlc3QpOworICAgIGZyYW1lUmVxdWVzdC5z
ZXRTdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0YSk7CisgICAgY29yZUZyYW1lLT5sb2FkZXIo
KS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
Ojpjb25maXJtQ29tcG9zaXRpb24oUVdlYlBhZ2UqIHBhZ2UsIGNvbnN0IGNoYXIqIHRleHQpCkBA
IC0xMTk5LDQgKzEyMDIsMyBAQCB2b2lkIFFXRUJLSVRfRVhQT1JUIHF0X2R1bXBfc2V0X2FjY2Vw
dHNfZWRpdGluZyhib29sIGIpCiB7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBT
ZXRBY2NlcHRzRWRpdGluZyhiKTsKIH0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXggMDczMWQ5MzE1OGEx
NmY5NzMwZTg0MWUyMDgxN2E4ODIyYjRlNjE0OC4uMDk0Y2ZhYTFlNDE1NWNiM2JlMzgwMjI1ODgz
YmYwNjNkZTBkMWQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk
ZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5j
bHVkZSAiRm9ybVN0YXRlLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMTE2NCw3ICsxMTY1LDkgQEAgYm9vbCBGcmFtZUxv
YWRlckNsaWVudFF0OjpjYWxsRXJyb3JQYWdlRXh0ZW5zaW9uKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImIGUKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChiYXNlVXJs
KTsKICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG91dHB1dC5jb250ZW50LmNvbnN0RGF0YSgpLCBvdXRw
dXQuY29udGVudC5sZW5ndGgoKSk7CiAgICAgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEgc3Vic3Rp
dHV0ZURhdGEoYnVmZmVyLCBvdXRwdXQuY29udGVudFR5cGUsIG91dHB1dC5lbmNvZGluZywgZmFp
bGluZ1VybCk7Ci0gICAgbV9mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0
ZURhdGEsIGZhbHNlKTsKKyAgICBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVz
dChtX2ZyYW1lKTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoc3Vic3RpdHV0
ZURhdGEpOworICAgIG1fZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCBlZTljZGQ4YzQ0MThk
OGEyN2U2ODA0ZjAyMDg5NWJiNTViMjM4MmM1Li44ZGMyZTkxYmVmNmU2YjU4NWQ4ZTg3M2UxOTYz
MTFmNWI4ZGQ0YmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCkBAIC01NTYsNyArNTU2LDcgQEAg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJGcmFtZTo6bG9hZFJlcXVlc3QoCiAgICAgaWYg
KCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICBjb3JlRnJhbWUtPmxv
YWRlcigpLT5sb2FkKHJlcXVlc3RJbXBsLT5yZXNvdXJjZVJlcXVlc3QoKSwgZmFsc2UpOworICAg
IGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUsIHJl
cXVlc3RJbXBsLT5yZXNvdXJjZVJlcXVlc3QoKSkpOwogICAgIHJldHVybiBTX09LOwogfQogCkBA
IC01NzksOCArNTc5LDExIEBAIHZvaWQgV2ViRnJhbWU6OmxvYWREYXRhKFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U2hhcmVkQnVmZmVyPiBkYXRhLCBCU1RSIG1pbWVUeXBlLCBCCiAgICAgU3Vic3RpdHV0
ZURhdGEgc3Vic3RpdHV0ZURhdGEoZGF0YSwgbWltZVR5cGVTdHJpbmcsIGVuY29kaW5nU3RyaW5n
LCBmYWlsaW5nS1VSTCk7CiAKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBvbmx5IGNhbGxlZCBmcm9t
IElXZWJGcmFtZSBtZXRob2RzLCBzbyBkb24ndCBBU1NFUlQgdGhhdCB0aGUgRnJhbWUgcG9pbnRl
ciBpc24ndCBudWxsLgotICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZSh0aGlzKSkKLSAg
ICAgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwg
ZmFsc2UpOworICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZSh0aGlzKSkgeworICAgICAg
ICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChjb3JlRnJhbWUsIHJlcXVlc3RJbXBsLT5y
ZXNvdXJjZVJlcXVlc3QoKSk7CisgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTdWJzdGl0dXRlRGF0
YShzdWJzdGl0dXRlRGF0YSk7CisgICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJh
bWVSZXF1ZXN0KTsKKyAgICB9CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKaW5kZXggZmNj
MDRkN2RiNmI2NjFhODdmNTk2ODYzNDVkOTg4Nzk3OGY0M2ZkNi4uOTA1OWE0MDIyMWE3OGU1Y2Vl
MjdmMDZhNWQwMGVhNjFkM2RhOWY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50V2luQ0UuaCIKICNpbmNsdWRlICJGb2N1
c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJl
cXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
Q2xpZW50V2luQ0UuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTIxOCw3ICsyMTksNyBA
QCB2b2lkIFdlYlZpZXc6OmxvYWQoY29uc3QgU3RyaW5nICZ1cmwpCiAKIHZvaWQgV2ViVmlldzo6
bG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgJnJlcXVlc3QpCiB7Ci0gICAgZnJh
bWUoKS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgZmFsc2UpOworICAgIGZyYW1lKCktPmxvYWRl
cigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUoKSwgcmVxdWVzdCkpOwogfQogCiB2b2lk
IFdlYlZpZXc6OnJlbG9hZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYkZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCmluZGV4IGIzNzQxMTNjMDc3MmEx
YzdmMjZmMjQ0MDgzMDAyYmIzYWFlOGM4YTkuLmVjZDdkZjM5YjZkNTc1ZGQxMTRkYmM2NTlhYWM2
ZGY4ZDE0YjI5MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFd4LmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCkBAIC0zMjIsNyArMzIzLDEwIEBAIHZvaWQgV2ViRnJhbWU6OlNldFBhZ2VTb3VyY2Uo
Y29uc3Qgd3hTdHJpbmcmIHNvdXJjZSwgY29uc3Qgd3hTdHJpbmcmIGJhc2VVcmwsIGNvCiAgICAg
ICAgIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKHNoYXJlZEJ1ZmZlciwg
bWltZXR5cGUsIFdURjo6U3RyaW5nKCJVVEYtOCIpLCBXZWJDb3JlOjpibGFua1VSTCgpLCB1cmwp
OwogCiAgICAgICAgIG1faW1wbC0+ZnJhbWUtPmxvYWRlcigpLT5zdG9wKCk7Ci0gICAgICAgIG1f
aW1wbC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCh1cmwp
LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworCisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFJl
cXVlc3QgZnJhbWVSZXF1ZXN0KG1faW1wbC0+ZnJhbWUsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCh1cmwpKTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1YnN0aXR1
dGVEYXRhKTsKKyAgICAgICAgbV9pbXBsLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1
ZXN0KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcAppbmRleCA0NGY1NzVhZDU0ZmZlZTQ4ODUwZjNlMzg5NzNmYWZjNjk4
MDIzMGUxLi42NDYyMzg4OGViMTQ0YjIwYWYzN2Y4MTI5MzU0MGQ5N2ZkMTQ4NGE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC05
NTAsNyArOTUwLDEwIEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVl
c3QoVVJMUmVxdWVzdCogcmVxdWVzdCkKICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBmcmFtZS0+
bG9hZGVyKCktPmZpbmRGcmFtZUZvck5hdmlnYXRpb24ocmVxdWVzdC0+dGFyZ2V0KCkpOwogICAg
IGlmICghdGFyZ2V0RnJhbWUpIHsKICAgICAgICAgLy8gV2UgZGlkIG5vdCBmaW5kIGEgdGFyZ2V0
IGZyYW1lLiBBc2sgb3VyIGZyYW1lIHRvIGxvYWQgdGhlIHBhZ2UuIFRoaXMgbWF5IG9yIG1heSBu
b3QgY3JlYXRlIGEgcG9wdXAgd2luZG93LgotICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmxvYWQo
cmVxdWVzdC0+cmVxdWVzdCgpLCByZXF1ZXN0LT50YXJnZXQoKSwgZmFsc2UpOworICAgICAgICBG
cmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChmcmFtZSwgcmVxdWVzdC0+cmVxdWVzdCgpKTsK
KyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZShyZXF1ZXN0LT50YXJnZXQoKSk7Cisg
ICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSh0cnVlKTsK
KyAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAKICAgICAgICAg
Ly8gRklYTUU6IFdlIGRvbid0IGtub3cgd2hldGhlciB0aGUgd2luZG93IHdhcyBzdWNjZXNzZnVs
bHkgY3JlYXRlZCBoZXJlIHNvIHdlIGp1c3QgYXNzdW1lIHRoYXQgaXQgd29ya2VkLgogICAgICAg
ICAvLyBJdCdzIGJldHRlciB0aGFuIG5vdCB0ZWxsaW5nIHRoZSBwbHVnLWluIGFueXRoaW5nLgpA
QCAtOTU5LDcgKzk2Miw3IEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJl
cXVlc3QoVVJMUmVxdWVzdCogcmVxdWVzdCkKICAgICB9CiAKICAgICAvLyBOb3cgYXNrIHRoZSBm
cmFtZSB0byBsb2FkIHRoZSByZXF1ZXN0LgotICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS0+bG9h
ZChyZXF1ZXN0LT5yZXF1ZXN0KCksIGZhbHNlKTsKKyAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkt
PmxvYWQoRnJhbWVMb2FkUmVxdWVzdCh0YXJnZXRGcmFtZSwgcmVxdWVzdC0+cmVxdWVzdCgpKSk7
CiAKICAgICBXZWJGcmFtZSogdGFyZ2V0V2ViRnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZUxv
YWRlckNsaWVudCo+KHRhcmdldEZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgp
OwogICAgIGlmIChXZWJGcmFtZTo6TG9hZExpc3RlbmVyKiBsb2FkTGlzdGVuZXIgPSB0YXJnZXRX
ZWJGcmFtZS0+bG9hZExpc3RlbmVyKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA5ZTY2NTc2NDg3NzI0MWRmZTRkMWZlYzcxZGIyYTFh
N2VlZTQ0Zjk3Li5mMGYwOTAyMGM0NmQxYTI3NjRiMDZhMjYxYmY1MzM5ODk5MDQyNWNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC04MjIs
NyArODIyLDcgQEAgdm9pZCBXZWJQYWdlOjpsb2FkVVJMUmVxdWVzdChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNhbmRib3hFeHRlbnMKICAgICBTZW5kU3RvcFJlc3BvbnNp
dmVuZXNzVGltZXIgc3RvcHBlcih0aGlzKTsKIAogICAgIG1fc2FuZGJveEV4dGVuc2lvblRyYWNr
ZXIuYmVnaW5Mb2FkKG1fbWFpbkZyYW1lLmdldCgpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsK
LSAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIGZh
bHNlKTsKKyAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkKEZyYW1l
TG9hZFJlcXVlc3QobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0KSk7CiB9CiAKIHZv
aWQgV2ViUGFnZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHNoYXJlZEJ1ZmZl
ciwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZ05hbWUsIGNv
bnN0IEtVUkwmIGJhc2VVUkwsIGNvbnN0IEtVUkwmIHVucmVhY2hhYmxlVVJMKQpAQCAtODMxLDcg
KzgzMSw5IEBAIHZvaWQgV2ViUGFnZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IHNoYXJlZEJ1ZmZlciwgY29uc3QgU3RyaW5nJiBNSU1FCiAKICAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdChiYXNlVVJMKTsKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShzaGFy
ZWRCdWZmZXIsIE1JTUVUeXBlLCBlbmNvZGluZ05hbWUsIHVucmVhY2hhYmxlVVJMKTsKLSAgICBt
X21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1
dGVEYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9tYWlu
RnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0U3Vic3Rp
dHV0ZURhdGEoc3Vic3RpdHV0ZURhdGEpOworICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+
bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKIH0KIAogdm9pZCBXZWJQYWdlOjpsb2FkSFRN
TFN0cmluZyhjb25zdCBTdHJpbmcmIGh0bWxTdHJpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTFN0
cmluZykKQEAgLTg3MSw4ICs4NzMsNyBAQCB2b2lkIFdlYlBhZ2U6OmxpbmtDbGlja2VkKGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKICAgICBpZiAoZXZlbnQu
dHlwZSgpICE9IFdlYkV2ZW50OjpOb1R5cGUpCiAgICAgICAgIGNvcmVFdmVudCA9IE1vdXNlRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgZnJhbWUtPmRvY3VtZW50KCktPmRl
ZmF1bHRWaWV3KCksIHBsYXRmb3JtKGV2ZW50KSwgMCwgMCk7CiAKLSAgICBmcmFtZS0+bG9hZGVy
KCktPmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCkpLCAKLSAgICAgICAgZmFsc2Us
IGZhbHNlLCBjb3JlRXZlbnQuZ2V0KCksIDAsIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICBmcmFt
ZS0+bG9hZGVyKCktPmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZSwgUmVz
b3VyY2VSZXF1ZXN0KHVybCkpLCBmYWxzZSwgZmFsc2UsIGNvcmVFdmVudC5nZXQoKSwgMCwgTWF5
YmVTZW5kUmVmZXJyZXIpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174282</attachid>
            <date>2012-11-14 16:22:25 -0800</date>
            <delta_ts>2012-11-15 16:29:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102151-20121114162023.patch</filename>
            <type>text/plain</type>
            <size>43170</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODNjZjkzM2U1ODJlYzJj
NGJmNmI5MjIyYzJkNTBlMDliZTdjMGQ5Ni4uNDVjYTFhMGE2NzM1MWVmYjkzYjUyMmE5MWU5MjFl
NDcxNjk4OGZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTEzICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0
ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9h
ZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZXJlJ3MgYSBGSVhNRSB0aGF0IHdlIGhhdmUgdG9vIG1hbnkgRnJhbWVMb2FkZXI6OmxvYWQq
KCkgZnVuY3Rpb25zLiBUaGlzIHBhdGNoIGNvbnNvbGlkYXRlcyAzIGludG8gMS4KKyAgICAgICAg
VGhlcmUgYXJlIHN0aWxsIGEgZmV3IG1vcmUgbG9hZCBmdW5jdGlvbnMgdGhhdCB3aWxsIGJlIGNv
bnNvbGlkYXRlZCBsYXRlci4gVXNpbmcgRnJhbWVMb2FkUmVxdWVzdCBhcworICAgICAgICB0aGUg
aW50ZXJmYWNlIGludG8gRnJhbWVMb2FkZXIgd2lsbCBhbHNvIHByb3ZpZGUgYSBwbGFjZSB0byBw
YXNzIGluIHRoZSBpbml0aWF0b3IuIEZpbmFsbHksIHRoaXMgbWF0Y2hlcworICAgICAgICB0aGUg
cmVmYWN0b3JpbmcgZG9uZSB3aXRoIENhY2hlZFJlc291cmNlUmVxdWVzdCBhbmQgQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gZnVuY3Rp
b25hbGl0eS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpG
cmFtZUxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNl
dExvY2tIaXN0b3J5KTogVGhlc2UgYXJlIGZvcm1lciBhcmd1bWVudHMgdG8gbG9hZCgpLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6bG9ja0hpc3RvcnkpOiBEaXR0by4KKyAg
ICAgICAgKEZyYW1lTG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVx
dWVzdDo6c2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpzdWJzdGl0dXRlRGF0YSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2V0U3Vic3RpdHV0
ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6Omhhc1N1
YnN0aXR1dGVEYXRhKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKTogTm8gY2hhbmdlIGluIGJlaGF2
aW9yLCBqdXN0IG1lcmdlZCBpdCBhbGwgaW50byBvbmUgZnVuY3Rpb24uCisgICAgICAgICogbG9h
ZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIChGcmFtZUxvYWRlcik6CisgICAgICAgICogcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6
cGVyZm9ybURyYWcpOgorCiAyMDEyLTExLTE0ICBIZWxkZXIgQ29ycmVpYSAgPGhlbGRlci5jb3Jy
ZWlhQG5va2lhLmNvbT4KIAogICAgICAgICBbVGV4TWFwXVtDYWlyb10gQWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmcgZGVidWcgdmlzdWFscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXgg
MTFiNTNmYmM3ZmMyMzdlZjIzZDc5MWYyMzMzMTc3ODAzOGU5NDkwMC4uM2FhYzVhMzI4YjBmYjNi
Yzc3MzAxNWY0ZTIzYjE0MmZlMzFjNDlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkg
aW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpsb2FkKToKKyAgICAg
ICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmxvYWRTdHJpbmcpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlk
RmFpbFByb3Zpc2lvbmFsTG9hZCk6CisKIDIwMTItMTEtMTQgIE5pbWEgR2hhbmF2YXRpYW4gIDxu
Z2hhbmF2YXRpYW5AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gRG8gbm90IGNsZWFy
IHRoZSBQcm9jZXNzaW5nQ2hhbmdlR3VhcmQgc3RhdGUgb24gRGVsZXRlQmFja3dhcmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYzVjYzAwNTU2MTYyYTZjN2ViMGYyNjIzZjA2MTQ3YTQy
ZDdiMzJjNS4uNDc5MzkxM2NmNDA0YTU3OGQ4NjEyNWM2ZDhjY2YyMjVjMjAxNGI1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMS0xMyAgSmFtZXMg
U2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUg
RnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRS
ZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6Omxv
YWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpsb2FkRGF0YSk6Cisg
ICAgICAgICogc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTaGFyZWRXb3JrZXJJbXBsOjppbml0aWFsaXplTG9hZGVyKToKKwogMjAxMi0xMS0xNCAgRXJp
YyBVaHJoYW5lICA8ZXJpY3VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRG9u
J3QgbGV0IHNoaWZ0LWNsaWNrIHR1cm4gcG9wdXAgaW50byB0YWIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5k
ZXggODc1M2QwMTllMjJkNjRmNGFkMzk5MzcwMTk3OGI2YTM4ZmRhZDY5Mi4uZGY0NmFmMzlkYjRk
OGMwMGRmYzE3NzVjN2UwNGI5YTM5MTFiNmYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEyLTExLTEzICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1
bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZXdrL2V3a19mcmFtZS5jcHA6CisgICAgICAgIChf
ZXdrX2ZyYW1lX2NvbnRlbnRzX3NldF9pbnRlcm5hbCk6CisKIDIwMTItMTEtMTIgIEt5dW5nVGFl
IEtpbSAgPGt0Zi5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gSW4gZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZWdpb24sIHRoZSAnc2xpY2VyJyBtYXkgYmUgdW5p
bml0aWFsaXplZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGRkNzdlMjUxNjNiZjc0Nzk2ZjkzZTI0MzA0
MmQ0YTE5MzI0NjZmOTUuLjMxZTJiY2QyZjk2NjQyOTZjMzQ4MDYxZDA4MGU5MzdmNTNhNDQzNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0xMyAgSmFtZXMgU2lt
b25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJh
bWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1
ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIx
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2xvYWRf
dXJpKToKKyAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9kYXRhKToKKyAgICAgICAgKHdl
YmtpdF93ZWJfZnJhbWVfbG9hZF9yZXF1ZXN0KToKKwogMjAxMi0xMS0xMiAgSm9zaCBSaWNrbWFy
ICA8anJpY2tAZGV2aW8udXM+CiAKICAgICAgICAgQWRkIFdlYkNvcmU6OlNldHRpbmcgdG8gYmxv
Y2sgZGlzcGxheWluZyBhbmQvb3IgcnVubmluZyBpbnNlY3VyZSBjb250ZW50IG9uIHNlY3VyZSBw
YWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDY3ZGI5ZWJhN2JlODdkNWE3YTMwNWZlOGRlMTdjMjVh
NzFjN2ZlMzguLjFlYmYzNWU0NjkyMDFlZDQ2MzgwODlkN2IxMThhYzU1ZjhhNWJjNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0xMyAgSmFtZXMgU2ltb25zZW4g
IDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2Fk
ZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMv
V2ViUGx1Z2luQ29udHJvbGxlci5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgor
ICAgICAgICAoLVtXZWJGcmFtZSBsb2FkUmVxdWVzdDpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUg
X2xvYWREYXRhOk1JTUVUeXBlOnRleHRFbmNvZGluZ05hbWU6YmFzZVVSTDp1bnJlYWNoYWJsZVVS
TDpdKToKKwogMjAxMi0xMS0xMyAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRqdXN0IHRoZSBXZWIgSW5zcGVjdG9yIHdpbmRvdyB0aXRsZSBmcmFtZSBp
ZiBuZWVkZWQgdG8gcHJldmVudCBpdCBmcm9tIGludGVyc2VjdGluZyB0aGUgZG9jayBidXR0b24u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCmluZGV4IDM0MGNmOTUzNzQ2M2M2NjMxNThiNGJjMzM4NjZhYjc0ZGEwMzI4
NjkuLmM0NThlZWJjMWE0NmI1OGI4NGNkY2YyMGVmMTYxN2UwZTQ1MmFhODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25q
YW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2Fk
KCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBcGkvcXdlYmZyYW1lLmNw
cDoKKyAgICAgICAgKFFXZWJGcmFtZTo6UVdlYkZyYW1lKToKKyAgICAgICAgKFFXZWJGcmFtZTo6
bG9hZCk6CisgICAgICAgIChRV2ViRnJhbWU6OnNldEh0bWwpOgorICAgICAgICAoUVdlYkZyYW1l
OjpzZXRDb250ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0QWx0ZXJu
YXRlSHRtbCk6CisgICAgICAgIChxdF9kdW1wX3NldF9hY2NlcHRzX2VkaXRpbmcpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6Y2FsbEVycm9yUGFnZUV4dGVuc2lvbik6CisKIDIw
MTItMTEtMTQgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBbUXRdIEZpeCB0c3RfUVdlYkZyYW1lOjpzZXRVcmxXaXRoUGVuZGluZ0xvYWRzKCkgQVBJIHRl
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwppbmRleCBjNDRlM2IzNjYyZDgxYjIzODdjNWI1Yzk2OTRjMmM1MmZk
NDMzOTViLi4xNjk4NDk2NzUxM2ZlNWNjOTNhZTg4MTYxZWUyNDRiODZjYjkzMDM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8
c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVy
Ojpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJGcmFtZS5j
cHA6CisgICAgICAgIChXZWJGcmFtZTo6bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViRnJhbWU6
OmxvYWREYXRhKToKKwogMjAxMi0xMS0xNCAgR2VvcmdlIFRzb3VtYWxpcyAgPHRzdW1hbGlzOTZA
Z21haWwuY29tPgogCiAgICAgICAgIEltcGxlbWVudGF0aW9uIGZvciBtZWhvZHMgaW4gV2ViTXV0
YWJsZVVSTFJlcXVlc3QuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDJmYTNmMTMyZGUxNDMw
NDI2YmEwMjBhMGIzYzJlZmUxNDczMTM4MjguLmFlNGZiZDVlZWJlMGI1M2I5M2JiMTZkNTU0Mjhk
MmY4MTkwN2MxZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5n
IGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmxvYWQpOgorCiAy
MDEyLTEwLTI0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgYSBzdHJhdGVneSBmb3IgbG9hZGVyIGN1c3RvbWl6YXRpb24uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4
IGU5ZWFmMTMxOWUwMzI3ZWQ5Y2VjOWZiNDkyMDkzM2I3YTIyNTRjYzcuLjFiMTllYTBiNGRlMGYz
ZThhZmRiYjE4MzU4OTBlMjM5ZDJmMWQzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rp
b24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lOjpTZXRQYWdlU291cmNlKToKKwogMjAxMi0xMC0yMiAgSm9jZWx5biBUdXJjb3R0ZSAg
PGpvY2VseW4udHVyY290dGVAZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4ICJBU1NFUlRJ
T04gRkFJTEVEOiAhZG9jdW1lbnQtPmluUGFnZUNhY2hlKCkiIHdoZW4gbG9hZGluZyBhIHBhZ2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwMzNkZWI0N2YwMmI0YTE3YTgzYTAwZjVlZDhjMmUxNThmMTU4ZDFkLi5j
ZGFiZGMyZjIwYjM0ZDg3ZDNkZTYxYmEwNjM1MDY5YmQ0ZTVkMzU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBv
bmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnBlcmZvcm1GcmFtZUxvYWRV
UkxSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxSZXF1ZXN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6bG9hZERhdGEpOgorCiAyMDEyLTExLTE0ICBIZWxkZXIgQ29ycmVpYSAgPGhl
bGRlci5jb3JyZWlhQG5va2lhLmNvbT4KIAogICAgICAgICBbVGV4TWFwXVtDYWlyb10gQWNjZWxl
cmF0ZWQgY29tcG9zaXRpbmcgZGVidWcgdmlzdWFscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBi
YWM2YWFhMzI4YjdhZTYwZWE4ZWRlYWVkZDMwZDU4NmI4MWNhNzFjLi5kYWQ3YmZhNTZhMDQyMDk0
ZTBhNDcyMzQ5YTNjMDMyZjVjZDI2NDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTA3LDkg
KzEwNyw3IEBAIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyM3RpbWVPZkxhc3RDb21wbGV0ZWRM
b2FkRXYKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyNnJlbG9hZFdpdGhPdmVycmlkZUVuY29k
aW5nRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjMyc2V0T3JpZ2lu
YWxVUkxGb3JEb3dubG9hZFJlcXVlc3RFUk5TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjRpbml0RXYKLV9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVS
S05TXzE1UmVzb3VyY2VSZXF1ZXN0RVJLTjNXVEY2U3RyaW5nRWIKLV9fWk43V2ViQ29yZTExRnJh
bWVMb2FkZXI0bG9hZEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVJLTlNfMTRTdWJzdGl0dXRlRGF0
YUViCi1fX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNVJlc291cmNlUmVxdWVz
dEViCitfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUk5TXzE2RnJhbWVMb2FkUmVxdWVz
dEUKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI2cmVsb2FkRWIKIF9fWk43V2ViQ29yZTExRnJh
bWVMb2FkZXI5c2V0T3BlbmVyRVBOU181RnJhbWVFCiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVt
MTB0YXJnZXRJdGVtRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCmlu
ZGV4IGQ2NWE5YjVmYWMyZjYyMGY5NzIyMTMzNWU0N2U0Mjg4MDk2YzdjMzMuLmUxYjM5NmU3NjUz
YTBhZGRmNDFiOGFlMTc4YzA0NTg0NmMzNmE3NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZFJlcXVlc3QuaApAQCAtMjYsOCArMjYsMTEgQEAKICNpZm5kZWYgRnJhbWVMb2FkUmVx
dWVzdF9oCiAjZGVmaW5lIEZyYW1lTG9hZFJlcXVlc3RfaAogCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSwxMiArMzgsMTYgQEAgc3RydWN0IEZyYW1lTG9h
ZFJlcXVlc3QgewogcHVibGljOgogICAgIGV4cGxpY2l0IEZyYW1lTG9hZFJlcXVlc3QoU2VjdXJp
dHlPcmlnaW4qIHJlcXVlc3RlcikKICAgICAgICAgOiBtX3JlcXVlc3RlcihyZXF1ZXN0ZXIpCisg
ICAgICAgICwgbV9sb2NrSGlzdG9yeShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3
V2luZG93UG9saWN5KGZhbHNlKQogICAgIHsKICAgICB9CiAKICAgICBGcmFtZUxvYWRSZXF1ZXN0
KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3Vy
Y2VSZXF1ZXN0KQogICAgICAgICA6IG1fcmVxdWVzdGVyKHJlcXVlc3RlcikKICAgICAgICAgLCBt
X3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgICAgICwgbV9sb2NrSGlzdG9y
eShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQog
ICAgIHsKICAgICB9CiAKQEAgLTQ4LDYgKzU1LDE2IEBAIHB1YmxpYzoKICAgICAgICAgOiBtX3Jl
cXVlc3RlcihyZXF1ZXN0ZXIpCiAgICAgICAgICwgbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VS
ZXF1ZXN0KQogICAgICAgICAsIG1fZnJhbWVOYW1lKGZyYW1lTmFtZSkKKyAgICAgICAgLCBtX2xv
Y2tIaXN0b3J5KGZhbHNlKQorICAgICAgICAsIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3ko
ZmFsc2UpCisgICAgeworICAgIH0KKworICAgIEZyYW1lTG9hZFJlcXVlc3QoRnJhbWUqIGZyYW1l
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKKyAgICAgICAgOiBtX3Jl
cXVlc3RlcihmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkKKyAgICAgICAgLCBt
X3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgICAgICwgbV9sb2NrSGlzdG9y
eShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQog
ICAgIHsKICAgICB9CiAKQEAgLTYxLDEwICs3OCwyMyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3Ry
aW5nJiBmcmFtZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lTmFtZTsgfQogICAgIHZvaWQg
c2V0RnJhbWVOYW1lKGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lKSB7IG1fZnJhbWVOYW1lID0gZnJh
bWVOYW1lOyB9CiAKKyAgICB2b2lkIHNldExvY2tIaXN0b3J5KGJvb2wgbG9ja0hpc3RvcnkpIHsg
bV9sb2NrSGlzdG9yeSA9IGxvY2tIaXN0b3J5OyB9CisgICAgYm9vbCBsb2NrSGlzdG9yeSgpIGNv
bnN0IHsgcmV0dXJuIG1fbG9ja0hpc3Rvcnk7IH0KKworICAgIHZvaWQgc2V0U2hvdWxkQ2hlY2tO
ZXdXaW5kb3dQb2xpY3koYm9vbCBjaGVja1BvbGljeSkgeyBtX3Nob3VsZENoZWNrTmV3V2luZG93
UG9saWN5ID0gY2hlY2tQb2xpY3k7IH0KKyAgICBib29sIHNob3VsZENoZWNrTmV3V2luZG93UG9s
aWN5KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeTsgfQorCisg
ICAgY29uc3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKCkgY29uc3QgeyByZXR1cm4g
bV9zdWJzdGl0dXRlRGF0YTsgfQorICAgIHZvaWQgc2V0U3Vic3RpdHV0ZURhdGEoY29uc3QgU3Vi
c3RpdHV0ZURhdGEmIGRhdGEpIHsgbV9zdWJzdGl0dXRlRGF0YSA9IGRhdGE7IH0KKyAgICBib29s
IGhhc1N1YnN0aXR1dGVEYXRhKCkgeyByZXR1cm4gbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCk7
IH0KKwogcHJpdmF0ZToKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fcmVxdWVzdGVyOwog
ICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKICAgICBTdHJpbmcgbV9mcmFt
ZU5hbWU7CisgICAgYm9vbCBtX2xvY2tIaXN0b3J5OworICAgIGJvb2wgbV9zaG91bGRDaGVja05l
d1dpbmRvd1BvbGljeTsKKyAgICBTdWJzdGl0dXRlRGF0YSBtX3N1YnN0aXR1dGVEYXRhOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYzg5Njg1YjZiNTZl
NjJmZjZlMmY5ZmUxMzEyZDdiNmExZmRhODcwMy4uNTExYTNkZTA2ODM5NDRiNjZkOGMxYjFmODE0
ZDg1YWU0NTY1YWIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0x
MjQ0LDM2ICsxMjQ0LDMzIEBAIFN1YnN0aXR1dGVEYXRhIEZyYW1lTG9hZGVyOjpkZWZhdWx0U3Vi
c3RpdHV0ZURhdGFGb3JVUkwoY29uc3QgS1VSTCYgdXJsKQogICAgIHJldHVybiBTdWJzdGl0dXRl
RGF0YShTaGFyZWRCdWZmZXI6OmNyZWF0ZShlbmNvZGVkU3JjZG9jLmRhdGEoKSwgZW5jb2RlZFNy
Y2RvYy5sZW5ndGgoKSksICJ0ZXh0L2h0bWwiLCAiVVRGLTgiLCBLVVJMKCkpOwogfQogCi12b2lk
IEZyYW1lTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBs
b2NrSGlzdG9yeSkKK3ZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoY29uc3QgRnJhbWVMb2FkUmVxdWVz
dCYgcGFzc2VkUmVxdWVzdCkKIHsKLSAgICBsb2FkKHJlcXVlc3QsIGRlZmF1bHRTdWJzdGl0dXRl
RGF0YUZvclVSTChyZXF1ZXN0LnVybCgpKSwgbG9ja0hpc3RvcnkpOwotfQorICAgIEZyYW1lTG9h
ZFJlcXVlc3QgcmVxdWVzdChwYXNzZWRSZXF1ZXN0KTsKKyAgICBBU1NFUlQoIXJlcXVlc3QuaXNF
bXB0eSgpKTsKIAotdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSwgYm9vbCBsb2Nr
SGlzdG9yeSkKLXsKICAgICBpZiAobV9pblN0b3BBbGxMb2FkZXJzKQogICAgICAgICByZXR1cm47
Ci0gICAgICAgIAotICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbG9hZGVyID0gbV9jbGllbnQt
PmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKTsKLSAgICBpZiAo
bG9ja0hpc3RvcnkgJiYgbV9kb2N1bWVudExvYWRlcikKLSAgICAgICAgbG9hZGVyLT5zZXRDbGll
bnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkobV9kb2N1bWVudExvYWRlci0+ZGlkQ3JlYXRlR2xv
YmFsSGlzdG9yeUVudHJ5KCkgPyBtX2RvY3VtZW50TG9hZGVyLT51cmxGb3JIaXN0b3J5KCkuc3Ry
aW5nKCkgOiBtX2RvY3VtZW50TG9hZGVyLT5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnko
KSk7Ci0gICAgbG9hZChsb2FkZXIuZ2V0KCkpOwotfQogCi12b2lkIEZyYW1lTG9hZGVyOjpsb2Fk
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUs
IGJvb2wgbG9ja0hpc3RvcnkpCi17Ci0gICAgaWYgKGZyYW1lTmFtZS5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgbG9hZChyZXF1ZXN0LCBsb2NrSGlzdG9yeSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
CisgICAgaWYgKCFyZXF1ZXN0Lmhhc1N1YnN0aXR1dGVEYXRhKCkpIHsKKyAgICAgICAgaWYgKCFy
ZXF1ZXN0LmZyYW1lTmFtZSgpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgRnJhbWUqIGZyYW1l
ID0gZmluZEZyYW1lRm9yTmF2aWdhdGlvbihyZXF1ZXN0LmZyYW1lTmFtZSgpKTsKKyAgICAgICAg
ICAgIGlmIChmcmFtZSkgeworICAgICAgICAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+bG9hZChy
ZXF1ZXN0KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAg
IH0KIAotICAgIEZyYW1lKiBmcmFtZSA9IGZpbmRGcmFtZUZvck5hdmlnYXRpb24oZnJhbWVOYW1l
KTsKLSAgICBpZiAoZnJhbWUpIHsKLSAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVl
c3QsIGxvY2tIaXN0b3J5KTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXF1ZXN0LnNldFN1
YnN0aXR1dGVEYXRhKGRlZmF1bHRTdWJzdGl0dXRlRGF0YUZvclVSTChyZXF1ZXN0LnJlc291cmNl
UmVxdWVzdCgpLnVybCgpKSk7CisKKyAgICAgICAgaWYgKHJlcXVlc3Quc2hvdWxkQ2hlY2tOZXdX
aW5kb3dQb2xpY3koKSkKKyAgICAgICAgICAgIHBvbGljeUNoZWNrZXIoKS0+Y2hlY2tOZXdXaW5k
b3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBOYXZp
Z2F0aW9uVHlwZU90aGVyKSwgRnJhbWVMb2FkZXI6OmNhbGxDb250aW51ZUxvYWRBZnRlck5ld1dp
bmRvd1BvbGljeSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgMCwgcmVxdWVzdC5mcmFtZU5h
bWUoKSwgdGhpcyk7CiAgICAgfQogCi0gICAgcG9saWN5Q2hlY2tlcigpLT5jaGVja05ld1dpbmRv
d1BvbGljeShOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmlnYXRpb25UeXBlT3RoZXIpLCBG
cmFtZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5LCByZXF1ZXN0
LCAwLCBmcmFtZU5hbWUsIHRoaXMpOworICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbG9hZGVy
ID0gbV9jbGllbnQtPmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCksIHJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKSk7CisgICAgaWYgKHJlcXVlc3QubG9ja0hpc3Rv
cnkoKSAmJiBtX2RvY3VtZW50TG9hZGVyKQorICAgICAgICBsb2FkZXItPnNldENsaWVudFJlZGly
ZWN0U291cmNlRm9ySGlzdG9yeShtX2RvY3VtZW50TG9hZGVyLT5kaWRDcmVhdGVHbG9iYWxIaXN0
b3J5RW50cnkoKSA/IG1fZG9jdW1lbnRMb2FkZXItPnVybEZvckhpc3RvcnkoKS5zdHJpbmcoKSA6
IG1fZG9jdW1lbnRMb2FkZXItPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpKTsKKyAg
ICBsb2FkKGxvYWRlci5nZXQoKSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2
aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IE5hdmln
YXRpb25BY3Rpb24mIGFjdGlvbiwgYm9vbCBsb2NrSGlzdG9yeSwgRnJhbWVMb2FkVHlwZSB0eXBl
LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaAppbmRleCA1MTYzNjlhODY0MjM2ZmRkNGE1ZTRhMDliZDRlNWNkNjMwOTdlOGFkLi44
YTQzNWM4OTVhODJiMDk0NzVmNjRmYjliY2Q5ZmI1M2Y4YjZhMTI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuaApAQCAtMTA0LDkgKzEwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGxv
YWRGcmFtZVJlcXVlc3QoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGJvb2wgbG9ja0hpc3Rvcnks
IGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCwgIC8vIENhbGxlZCBieSBzdWJtaXRGb3JtLCBjYWxs
cyBsb2FkUG9zdFJlcXVlc3QgYW5kIGxvYWRVUkwuCiAgICAgICAgIFBhc3NSZWZQdHI8RXZlbnQ+
LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIFNob3VsZFNlbmRSZWZlcnJlcik7CiAKLSAgICB2b2lk
IGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBsb2NrSGlzdG9yeSk7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGxlZCBieSBXZWJGcmFtZSwgY2Fs
bHMgbG9hZChSZXNvdXJjZVJlcXVlc3QsIFN1YnN0aXR1dGVEYXRhKS4KLSAgICB2b2lkIGxvYWQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmLCBib29sIGxvY2tI
aXN0b3J5KTsgICAgICAgICAgICAgICAgIC8vIENhbGxlZCBib3RoIGJ5IFdlYkZyYW1lIGFuZCBp
bnRlcm5hbGx5LCBjYWxscyBsb2FkKERvY3VtZW50TG9hZGVyKikuCi0gICAgdm9pZCBsb2FkKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBib29sIGxvY2tI
aXN0b3J5KTsgICAgICAgICAgICAgICAvLyBDYWxsZWQgYnkgV2ViUGx1Z2luQ29udHJvbGxlci4K
KyAgICB2b2lkIGxvYWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYpOworCiAjaWYgRU5BQkxFKFdF
Ql9BUkNISVZFKSB8fCBFTkFCTEUoTUhUTUwpCiAgICAgdm9pZCBsb2FkQXJjaGl2ZShQYXNzUmVm
UHRyPEFyY2hpdmU+KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cAppbmRleCA4MWVhM2Y5NWRkMDQ2OTRkZjAzNGIwNzYwYWUwMGM2YTg2MWFmNWE4Li4zYTBkZDE2
ZDI2YWMyMDk2NGM5ZGI5NWNkYWFmZDIyOGFhZWU4OWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxl
ci5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTIzNyw3ICsy
MzgsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZyhEcmFnRGF0YSogZHJhZ0Rh
dGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fY2xpZW50LT53aWxsUGVyZm9ybURy
YWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkLCBkcmFnRGF0YSk7
Ci0gICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoUmVzb3VyY2VSZXF1ZXN0
KGRyYWdEYXRhLT5hc1VSTChtX3BhZ2UtPm1haW5GcmFtZSgpKSksIGZhbHNlKTsKKyAgICBtX3Bh
Z2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KG1fcGFnZS0+
bWFpbkZyYW1lKCksIFJlc291cmNlUmVxdWVzdChkcmFnRGF0YS0+YXNVUkwobV9wYWdlLT5tYWlu
RnJhbWUoKSkpKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCmluZGV4IDA0NjY4NDZkNDMxOTAyM2ZkNGZlZjlkMjAyZmNiZmJhMjdiN2Zk
ZWQuLjVkMzJjOTM4ZjdkMDlhNWZmYWJhOTFiNjY2OGQ1ZWU5YzczYjhlODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNDQwLDcgKzQ0MCwxMCBAQCB2b2lkIFBsdWdp
blZpZXc6OnBlcmZvcm1SZXF1ZXN0KFBsdWdpblJlcXVlc3QqIHJlcXVlc3QpCiAgICAgICAgICAg
ICAvLyBQbHVnaW5WaWV3LCBzbyB3ZSBwcm90ZWN0IGl0LiA8cmRhcjovL3Byb2JsZW0vNjk5MTI1
MT4KICAgICAgICAgICAgIFJlZlB0cjxQbHVnaW5WaWV3PiBwcm90ZWN0KHRoaXMpOwogCi0gICAg
ICAgICAgICBtX3BhcmVudEZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LT5mcmFtZUxvYWRS
ZXF1ZXN0KCkucmVzb3VyY2VSZXF1ZXN0KCksIHRhcmdldEZyYW1lTmFtZSwgZmFsc2UpOworICAg
ICAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9wYXJlbnRGcmFtZS5nZXQo
KSwgcmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJlc291cmNlUmVxdWVzdCgpKTsKKyAgICAg
ICAgICAgIGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUodGFyZ2V0RnJhbWVOYW1lKTsKKyAgICAg
ICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSh0cnVlKTsK
KyAgICAgICAgICAgIG1fcGFyZW50RnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7
CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vNDgwNzQ2OT4gVGhpcyBz
aG91bGQgYmUgc2VudCB3aGVuIHRoZSBkb2N1bWVudCBoYXMgZmluaXNoZWQgbG9hZGluZwogICAg
ICAgICAgICAgaWYgKHJlcXVlc3QtPnNlbmROb3RpZmljYXRpb24oKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggOTcyZmViODk1MzMwM2I5NjM0YzUyN2U5
NzRkZDEzN2VhNjYyYTM2ZC4uZmMwNmY1MzkwYzcyYWYzMDI0NjQ4MGJmZmM2MDM1YTg0NTM0ZDkx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC01Niw2ICs1
Niw3IEBACiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oIgogI2luY2x1ZGUgIkZv
Y3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2Fk
UmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oIgogI2lm
ICFkZWZpbmVkKFBVQkxJQ19CVUlMRCkgfHwgIVBVQkxJQ19CVUlMRAogI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uQ2xpZW50TW9jay5oIgpAQCAtNzAxLDcgKzcwMiwxMCBAQCB2b2lkIFdlYlBhZ2VQcml2
YXRlOjpsb2FkKGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIHVybCwgY29uc3Qg
QmxhY2tCZQogCiAgICAgcmVxdWVzdC5zZXRTdWdnZXN0ZWRTYXZlTmFtZShzdWdnZXN0ZWRTYXZl
TmFtZSk7CiAKLSAgICBtX21haW5GcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgIiIgLyog
bmFtZSAqLywgZmFsc2UpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KG1fbWFp
bkZyYW1lLCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0RnJhbWVOYW1lKCIiKTsKKyAg
ICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7CisgICAg
bV9tYWluRnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIHZvaWQgV2Vi
UGFnZTo6bG9hZChjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiB1cmwsIGNvbnN0
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIG5ldHdvcmtUb2tlbiwgYm9vbCBpc0luaXRp
YWwpCkBAIC03NDYsNyArNzUwLDkgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6bG9hZFN0cmluZyhj
b25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBzdHJpbmcsIGNvbnMKICAgICAgICAg
ZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAgIGV4dHJh
Y3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAgICFmYWlsaW5nVVJM
LmVtcHR5KCkgPyBwYXJzZVVybChmYWlsaW5nVVJMKSA6IEtVUkwoKSk7Ci0gICAgbV9tYWluRnJh
bWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAg
RnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9tYWluRnJhbWUsIHJlcXVlc3QpOworICAg
IGZyYW1lUmVxdWVzdC5zZXRTdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0YSk7CisgICAgbV9t
YWluRnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIHZvaWQgV2ViUGFn
ZTo6bG9hZFN0cmluZyhjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBzdHJpbmcs
IGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6U3RyaW5nJiBmYWlsaW5nVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRC
bGFja0JlcnJ5LmNwcAppbmRleCAwNzkwYWI4YzkzMDEwMjZhOGE4NzIzZjIyYTA2NGI3NTgzZmQz
MDczLi5kYmE1YWU2N2UzYjMxZjM1YThkOTRjNzNmNGUyNjA5NmMxYTFiYTJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIkNyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRHVtcFJlbmRl
clRyZWVDbGllbnQuaCIKICNpbmNsdWRlICJFeHRlcm5hbEV4dGVuc2lvbi5oIgorI2luY2x1ZGUg
IkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Qmxh
Y2tCZXJyeS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxl
bWVudC5oIgpAQCAtNzUyLDcgKzc1Myw5IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0Jl
cnJ5OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFCiAgICAg
fQogCiAgICAgbV9sb2FkaW5nRXJyb3JQYWdlID0gdHJ1ZTsKLSAgICBtX2ZyYW1lLT5sb2FkZXIo
KS0+bG9hZChvcmlnaW5hbFJlcXVlc3QsIGVycm9yRGF0YSwgZmFsc2UpOworICAgIEZyYW1lTG9h
ZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KG1fZnJhbWUsIG9yaWdpbmFsUmVxdWVzdCk7CisgICAgZnJh
bWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKGVycm9yRGF0YSk7CisgICAgbV9mcmFtZS0+bG9h
ZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEJs
YWNrQmVycnk6OmRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5j
dGlvbiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggMTkzNjQ3NmYzYWUxYTIwMTQwMzNkYzNmZGI3ZTBjYWI1
Y2E4YzdmMi4uMjI0Y2FhMGM2M2ZjZjkwN2I1Yjk2NDBmNjNlMGVlZjM4YTljYWI5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC05NzUsNyArOTc1
LDcgQEAgdm9pZCBXZWJGcmFtZUltcGw6OmxvYWRSZXF1ZXN0KGNvbnN0IFdlYlVSTFJlcXVlc3Qm
IHJlcXVlc3QpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmcmFtZSgpLT5sb2FkZXIo
KS0+bG9hZChyZXNvdXJjZVJlcXVlc3QsIGZhbHNlKTsKKyAgICBmcmFtZSgpLT5sb2FkZXIoKS0+
bG9hZChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lKCksIHJlc291cmNlUmVxdWVzdCkpOwogfQogCiB2
b2lkIFdlYkZyYW1lSW1wbDo6bG9hZEhpc3RvcnlJdGVtKGNvbnN0IFdlYkhpc3RvcnlJdGVtJiBp
dGVtKQpAQCAtOTk0LDggKzk5NCw2IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkSGlzdG9yeUl0
ZW0oY29uc3QgV2ViSGlzdG9yeUl0ZW0mIGl0ZW0pCiB2b2lkIFdlYkZyYW1lSW1wbDo6bG9hZERh
dGEoY29uc3QgV2ViRGF0YSYgZGF0YSwgY29uc3QgV2ViU3RyaW5nJiBtaW1lVHlwZSwgY29uc3Qg
V2ViU3RyaW5nJiB0ZXh0RW5jb2RpbmcsIGNvbnN0IFdlYlVSTCYgYmFzZVVSTCwgY29uc3QgV2Vi
VVJMJiB1bnJlYWNoYWJsZVVSTCwgYm9vbCByZXBsYWNlKQogewogICAgIEFTU0VSVChmcmFtZSgp
KTsKLSAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdERhdGEoZGF0YSwgbWltZVR5cGUsIHRleHRFbmNv
ZGluZywgdW5yZWFjaGFibGVVUkwpOwotICAgIEFTU0VSVChzdWJzdERhdGEuaXNWYWxpZCgpKTsK
IAogICAgIC8vIElmIHdlIGFyZSBsb2FkaW5nIHN1YnN0aXR1dGUgZGF0YSB0byByZXBsYWNlIGFu
IGV4aXN0aW5nIGxvYWQsIHRoZW4KICAgICAvLyBpbmhlcml0IGFsbCBvZiB0aGUgcHJvcGVydGll
cyBvZiB0aGF0IG9yaWdpbmFsIHJlcXVlc3QuICBUaGlzIHdheSwKQEAgLTEwMDgsNyArMTAwNiwx
MCBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6bG9hZERhdGEoY29uc3QgV2ViRGF0YSYgZGF0YSwgY29u
c3QgV2ViU3RyaW5nJiBtaW1lVHlwZSwgY29ucwogICAgICAgICByZXF1ZXN0ID0gZnJhbWUoKS0+
bG9hZGVyKCktPm9yaWdpbmFsUmVxdWVzdCgpOwogICAgIHJlcXVlc3Quc2V0VVJMKGJhc2VVUkwp
OwogCi0gICAgZnJhbWUoKS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3REYXRhLCBmYWxz
ZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUoKSwgcmVxdWVzdCk7
CisgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKFN1YnN0aXR1dGVEYXRhKGRhdGEs
IG1pbWVUeXBlLCB0ZXh0RW5jb2RpbmcsIHVucmVhY2hhYmxlVVJMKSk7CisgICAgQVNTRVJUKGZy
YW1lUmVxdWVzdC5zdWJzdGl0dXRlRGF0YSgpLmlzVmFsaWQoKSk7CisgICAgZnJhbWUoKS0+bG9h
ZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKICAgICBpZiAocmVwbGFjZSkgewogICAgICAgICAv
LyBEbyB0aGlzIHRvIGZvcmNlIFdlYktpdCB0byB0cmVhdCB0aGUgbG9hZCBhcyByZXBsYWNpbmcg
dGhlIGN1cnJlbnRseQogICAgICAgICAvLyBsb2FkZWQgcGFnZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5jcHAKaW5kZXggNWNmOTk5ODUx
M2FlYTM1OTZlMGQ1ZjE0ODg2ZmE5ZTkxN2YxZmZiYS4uNzBlYTk1ZTVmMmJkMzE5MDY5M2Y3MTU4
MDI1Zjc3ODI5NjJjYjI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2hhcmVkV29ya2VySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2hhcmVkV29ya2VySW1wbC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDcm9z
c1RocmVhZFRhc2suaCIKICNpbmNsdWRlICJEYXRhYmFzZVRhc2suaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJHcm91cFNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgpA
QCAtMTMyLDggKzEzMyw5IEBAIHZvaWQgV2ViU2hhcmVkV29ya2VySW1wbDo6aW5pdGlhbGl6ZUxv
YWRlcihjb25zdCBXZWJVUkwmIHVybCkKICAgICBDU3RyaW5nIGNvbnRlbnQoIiIpOwogICAgIGlu
dCBsZW4gPSBzdGF0aWNfY2FzdDxpbnQ+KGNvbnRlbnQubGVuZ3RoKCkpOwogICAgIFJlZlB0cjxT
aGFyZWRCdWZmZXI+IGJ1ZihTaGFyZWRCdWZmZXI6OmNyZWF0ZShjb250ZW50LmRhdGEoKSwgbGVu
KSk7Ci0gICAgU3Vic3RpdHV0ZURhdGEgc3Vic3REYXRhKGJ1ZiwgU3RyaW5nKCJ0ZXh0L2h0bWwi
KSwgU3RyaW5nKCJVVEYtOCIpLCBLVVJMKCkpOwotICAgIHdlYkZyYW1lLT5mcmFtZSgpLT5sb2Fk
ZXIoKS0+bG9hZChSZXNvdXJjZVJlcXVlc3QodXJsKSwgc3Vic3REYXRhLCBmYWxzZSk7CisgICAg
RnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KHdlYkZyYW1lLT5mcmFtZSgpLCBSZXNvdXJjZVJlcXVl
c3QodXJsKSk7CisgICAgcmVxdWVzdC5zZXRTdWJzdGl0dXRlRGF0YShTdWJzdGl0dXRlRGF0YShi
dWYsIFN0cmluZygidGV4dC9odG1sIiksIFN0cmluZygiVVRGLTgiKSwgS1VSTCgpKSk7CisgICAg
d2ViRnJhbWUtPmZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QpOwogCiAgICAgLy8gVGhp
cyBkb2N1bWVudCB3aWxsIGJlIHVzZWQgYXMgJ2xvYWRpbmcgY29udGV4dCcgZm9yIHRoZSB3b3Jr
ZXIuCiAgICAgbV9sb2FkaW5nRG9jdW1lbnQgPSB3ZWJGcmFtZS0+ZnJhbWUoKS0+ZG9jdW1lbnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXggNzM4YTkzOTE4ZjMwMTkxYjUy
NmM2ZmYxOGIyOTVhZmM5YjdiOWE3ZC4uMzAxOGM2MTFjMjFmOGUwZDJkMDExY2NjNWQ4ZDEwYjAy
MjI1NzlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFdmVu
dEhhbmRsZXIuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFt
ZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRFZmwuaCIKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgpAQCAtMzM4LDcg
KzMzOSw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfdXJpX3NldChFdmFzX09iamVjdCogZXdrRnJh
bWUsIGNvbnN0IGNoYXIqIHVyaSkKICAgICBXZWJDb3JlOjpLVVJMIGt1cmwoV2ViQ29yZTo6S1VS
TCgpLCBXVEY6OlN0cmluZzo6ZnJvbVVURjgodXJpKSk7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcShrdXJsKTsKICAgICBXZWJDb3JlOjpGcmFtZUxvYWRlciogbG9hZGVyID0gc21h
cnREYXRhLT5mcmFtZS0+bG9hZGVyKCk7Ci0gICAgbG9hZGVyLT5sb2FkKHJlcSwgZmFsc2UpOwor
ICAgIGxvYWRlci0+bG9hZChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0KHNtYXJ0RGF0YS0+ZnJh
bWUsIHJlcSkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC00MTYsNyArNDE3LDkgQEAgc3Rh
dGljIEVpbmFfQm9vbCBfZXdrX2ZyYW1lX2NvbnRlbnRzX3NldF9pbnRlcm5hbChFd2tfRnJhbWVf
U21hcnRfRGF0YSogc21hcnREYXQKICAgICAgICAgYmFzZUtVUkwsIHVucmVhY2hhYmxlS1VSTCk7
CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoYmFzZUtVUkwpOwogCi0gICAg
c21hcnREYXRhLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEs
IGZhbHNlKTsKKyAgICBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChzbWFy
dERhdGEtPmZyYW1lLCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0U3Vic3RpdHV0ZURh
dGEoc3Vic3RpdHV0ZURhdGEpOworICAgIHNtYXJ0RGF0YS0+ZnJhbWUtPmxvYWRlcigpLT5sb2Fk
KGZyYW1lUmVxdWVzdCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4IGMxMDMzZTYxZGJjMGE0MDI5MmQxYTYx
ZWRkYTFkOTY1MzI3ODc5YjYuLmE4MGM2YmMzOTI4OTc2YjUxZDAzMmY0MjIwZGQ4ZTlhNzQxZjgy
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcApAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyR3RrLmgiCisjaW5jbHVk
ZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgpA
QCAtNjkzLDcgKzY5NCw3IEBAIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9sb2FkX3VyaShXZWJLaXRX
ZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiB1cmkpCiAgICAgaWYgKCFjb3JlRnJhbWUpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoUmVzb3VyY2VS
ZXF1ZXN0KEtVUkwoS1VSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVyaSkpKSwgZmFsc2UpOworICAg
IGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUsIFJl
c291cmNlUmVxdWVzdChLVVJMKEtVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh1cmkpKSkpKTsKIH0K
IAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9sb2FkX2RhdGEoV2ViS2l0V2ViRnJhbWUq
IGZyYW1lLCBjb25zdCBnY2hhciogY29udGVudCwgY29uc3QgZ2NoYXIqIG1pbWVUeXBlLCBjb25z
dCBnY2hhciogZW5jb2RpbmcsIGNvbnN0IGdjaGFyKiBiYXNlVVJMLCBjb25zdCBnY2hhciogdW5y
ZWFjaGFibGVVUkwpCkBAIC03MTIsNyArNzEzLDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9m
cmFtZV9sb2FkX2RhdGEoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogY29udGUK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLVVJMKEtVUkwoKSwgU3RyaW5nOjpm
cm9tVVRGOCh1bnJlYWNoYWJsZVVSTCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEtVUkwoS1VSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVucmVhY2hhYmxlVVJMKSkpOwogCi0g
ICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFs
c2UpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGNvcmVGcmFtZSwgcmVxdWVz
dCk7CisgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1YnN0aXR1dGVEYXRhKTsK
KyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIC8qKgpA
QCAtNzgxLDcgKzc4NCw3IEBAIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9sb2FkX3JlcXVlc3QoV2Vi
S2l0V2ViRnJhbWUqIGZyYW1lLCBXZWJLaXROZXR3b3JrUmVxdWVzdCoKICAgICBpZiAoIWNvcmVG
cmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChj
b3JlKHJlcXVlc3QpLCBmYWxzZSk7CisgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChGcmFt
ZUxvYWRSZXF1ZXN0KGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgY29y
ZShyZXF1ZXN0KSkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
V2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCAzZmYxMDkwODY4MWQxYWU3MmE2MDhmNGM1Yzhi
OWE0ZDViMjBjMTY4Li4zYjJiMWM3Nzg4MzEzMDRjNzE3ZTJmODcxMmI5NGNkYmYyNjhjNzQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1t
CkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMUmVxdWVzdC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFt
ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvSFRNTE5hbWVzLmg+CkBAIC00MDEsNyArNDAyLDEwIEBAIHN0YXRp
YyB2b2lkIGNhbmNlbE91dHN0YW5kaW5nQ2hlY2soY29uc3Qgdm9pZCAqaXRlbSwgdm9pZCAqY29u
dGV4dCkKICAgICAgICAgICAgIExPR19FUlJPUigiY291bGQgbm90IGxvYWQgVVJMICVAIiwgW3Jl
cXVlc3QgVVJMXSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgY29y
ZShmcmFtZSktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHRhcmdldCwgZmFsc2UpOworICAgICAg
ICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChjb3JlKGZyYW1lKSwgcmVxdWVzdCk7Cisg
ICAgICAgIGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUodGFyZ2V0KTsKKyAgICAgICAgZnJhbWVS
ZXF1ZXN0LnNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KHRydWUpOworICAgICAgICBjb3Jl
KGZyYW1lKS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IGY5MWZmZDhlNTFiZDRkYWNiN2FmMGEx
Y2M0ZjI2NTEzYzNlZGE4MzIuLjNiNmE0YjE4NGViMzI2Y2Y4MTViOGRhOWM0MmFkNmY4NTEzNzkw
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtNjcsNiArNjcsNyBA
QAogI2ltcG9ydCA8V2ViQ29yZS9FdmVudEhhbmRsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZl
bnROYW1lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9G
cmFtZUxvYWRSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0ZyYW1lVHJlZS5oPgpAQCAtMTM2OSw3ICsxMzcwLDcgQEAgc3RhdGljIGJvb2wgbmVlZHNNaWNy
b3NvZnRNZXNzZW5nZXJET01Eb2N1bWVudFdvcmthcm91bmQoKQogICAgIGlmICghcmVzb3VyY2VS
ZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSAmJiAhcmVzb3VyY2VSZXF1ZXN0LnVybCgpLmlzRW1wdHko
KSkKICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldFVSTChbTlNVUkwgVVJMV2l0aFN0cmluZzpb
QCJmaWxlOiIgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6W1tyZXF1ZXN0IFVSTF0gYWJzb2x1dGVT
dHJpbmddXV0pOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXNvdXJjZVJlcXVl
c3QsIGZhbHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVl
c3QoY29yZUZyYW1lLCByZXNvdXJjZVJlcXVlc3QpKTsKIH0KIAogc3RhdGljIE5TVVJMICpjcmVh
dGVVbmlxdWVXZWJEYXRhVVJMKCkKQEAgLTE0MDAsNyArMTQwMSw5IEBAIHN0YXRpYyBOU1VSTCAq
Y3JlYXRlVW5pcXVlV2ViRGF0YVVSTCgpCiAKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRl
RGF0YShXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoZGF0YSksIE1JTUVUeXBlLCBl
bmNvZGluZ05hbWUsIFt1bnJlYWNoYWJsZVVSTCBhYnNvbHV0ZVVSTF0sIHJlc3BvbnNlVVJMKTsK
IAotICAgIF9wcml2YXRlLT5jb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0
aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoX3By
aXZhdGUtPmNvcmVGcmFtZSwgcmVxdWVzdCk7CisgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1
dGVEYXRhKHN1YnN0aXR1dGVEYXRhKTsKKyAgICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5sb2FkZXIo
KS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvQXBpL3F3ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3Bw
CmluZGV4IDBhY2NkMzM2MmRkNjg3MzRjZmRmMjEzODVlYzM4MDY0ZjJjMTMxYmYuLjQ2MmQxYzU1
MDQ3ZjkzMDY3MmM4NTg1NjhiYmM4NmMzNDVmZDgyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZy
YW1lLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1l
TG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFF0LmgiCiAjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKQEAgLTQ4MSw3ICs0
ODIsMTAgQEAgUVdlYkZyYW1lOjpRV2ViRnJhbWUoUVdlYlBhZ2UgKnBhcmVudCwgUVdlYkZyYW1l
RGF0YSAqZnJhbWVEYXRhKQogCiAgICAgaWYgKCFmcmFtZURhdGEtPnVybC5pc0VtcHR5KCkpIHsK
ICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZnJhbWVEYXRhLT51cmws
IGZyYW1lRGF0YS0+cmVmZXJyZXIpOwotICAgICAgICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQo
cmVxdWVzdCwgZnJhbWVEYXRhLT5uYW1lLCBmYWxzZSk7CisgICAgICAgIFdlYkNvcmU6OkZyYW1l
TG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGQtPmZyYW1lLCByZXF1ZXN0KTsKKyAgICAgICAgZnJh
bWVSZXF1ZXN0LnNldEZyYW1lTmFtZShmcmFtZURhdGEtPm5hbWUpOworICAgICAgICBmcmFtZVJl
cXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7CisgICAgICAgIGQtPmZy
YW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogICAgIH0KICNpZiBFTkFCTEUoT1JJ
RU5UQVRJT05fRVZFTlRTKQogICAgIGNvbm5lY3QoJmQtPm1fb3JpZW50YXRpb24sIFNJR05BTChy
ZWFkaW5nQ2hhbmdlZCgpKSwgdGhpcywgU0xPVChfcV9vcmllbnRhdGlvbkNoYW5nZWQoKSkpOwpA
QCAtODQ2LDcgKzg1MCw3IEBAIHZvaWQgUVdlYkZyYW1lOjpsb2FkKGNvbnN0IFFOZXR3b3JrUmVx
dWVzdCAmcmVxLAogICAgIGlmICghYm9keS5pc0VtcHR5KCkpCiAgICAgICAgIHJlcXVlc3Quc2V0
SFRUUEJvZHkoV2ViQ29yZTo6Rm9ybURhdGE6OmNyZWF0ZShib2R5LmNvbnN0RGF0YSgpLCBib2R5
LnNpemUoKSkpOwogCi0gICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIGZhbHNl
KTsKKyAgICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChkLT5mcmFt
ZSwgcmVxdWVzdCkpOwogCiAgICAgaWYgKGQtPnBhcmVudEZyYW1lKCkpCiAgICAgICAgIGQtPnBh
Z2UtPmQtPmluc2lkZU9wZW5DYWxsID0gZmFsc2U7CkBAIC04ODMsNyArODg3LDkgQEAgdm9pZCBR
V2ViRnJhbWU6OnNldEh0bWwoY29uc3QgUVN0cmluZyAmaHRtbCwgY29uc3QgUVVybCAmYmFzZVVy
bCkKICAgICBjb25zdCBRQnl0ZUFycmF5IHV0ZjggPSBodG1sLnRvVXRmOCgpOwogICAgIFdURjo6
UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZGF0YSA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKHV0ZjguY29uc3REYXRhKCksIHV0ZjgubGVuZ3RoKCkpOwogICAgIFdlYkNvcmU6
OlN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKGRhdGEsIFdURjo6U3RyaW5nKCJ0ZXh0L2h0
bWwiKSwgV1RGOjpTdHJpbmcoInV0Zi04IiksIEtVUkwoKSk7Ci0gICAgZC0+ZnJhbWUtPmxvYWRl
cigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2Fk
UmVxdWVzdCBmcmFtZVJlcXVlc3QoZC0+ZnJhbWUsIHJlcXVlc3QpOworICAgIGZyYW1lUmVxdWVz
dC5zZXRTdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0YSk7CisgICAgZC0+ZnJhbWUtPmxvYWRl
cigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIC8qIQpAQCAtOTEzLDcgKzkxOSw5IEBAIHZv
aWQgUVdlYkZyYW1lOjpzZXRDb250ZW50KGNvbnN0IFFCeXRlQXJyYXkgJmRhdGEsIGNvbnN0IFFT
dHJpbmcgJm1pbWVUeXBlLCBjb25zCiAgICAgICAgIGVuY29kaW5nID0gZXh0cmFjdENoYXJzZXRG
cm9tTWVkaWFUeXBlKG1pbWVUeXBlKTsKICAgICB9CiAgICAgV2ViQ29yZTo6U3Vic3RpdHV0ZURh
dGEgc3Vic3RpdHV0ZURhdGEoYnVmZmVyLCBXVEY6OlN0cmluZyhhY3R1YWxNaW1lVHlwZSksIGVu
Y29kaW5nLCBLVVJMKCkpOwotICAgIGQtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBz
dWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0
KGQtPmZyYW1lLCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEo
c3Vic3RpdHV0ZURhdGEpOworICAgIGQtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVl
c3QpOwogfQogCiAvKiEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggZGE3OTMxMTFmYWJkYjNh
MDk0OTEyMmIwZTZkMDRhNmVlZmI0NTEyNi4uMTg0YjJiMTJkNmI1NjViNmQ4NDA1Mjk1YzMxMThj
M2JjNTk1M2Q4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNp
bmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdD
Q29udHJvbGxlci5oIgpAQCAtOTc1LDcgKzk3Niw5IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQ6OnNldEFsdGVybmF0ZUh0bWwoUVdlYkZyYW1lKiBmcmFtZSwgY29uc3QgUVN0cmluZyYK
ICAgICBjb25zdCBRQnl0ZUFycmF5IHV0ZjggPSBodG1sLnRvVXRmOCgpOwogICAgIFdURjo6UmVm
UHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZGF0YSA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKHV0ZjguY29uc3REYXRhKCksIHV0ZjgubGVuZ3RoKCkpOwogICAgIFdlYkNvcmU6OlN1
YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKGRhdGEsIFdURjo6U3RyaW5nKCJ0ZXh0L2h0bWwi
KSwgV1RGOjpTdHJpbmcoInV0Zi04IiksIGZhaWxpbmdVcmwpOwotICAgIGNvcmVGcmFtZS0+bG9h
ZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBGcmFtZUxv
YWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChjb3JlRnJhbWUsIHJlcXVlc3QpOworICAgIGZyYW1lUmVx
dWVzdC5zZXRTdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0YSk7CisgICAgY29yZUZyYW1lLT5s
b2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0Ojpjb25maXJtQ29tcG9zaXRpb24oUVdlYlBhZ2UqIHBhZ2UsIGNvbnN0IGNoYXIqIHRl
eHQpCkBAIC0xMTk5LDQgKzEyMDIsMyBAQCB2b2lkIFFXRUJLSVRfRVhQT1JUIHF0X2R1bXBfc2V0
X2FjY2VwdHNfZWRpdGluZyhib29sIGIpCiB7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6
OmR1bXBTZXRBY2NlcHRzRWRpdGluZyhiKTsKIH0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXggMDczMWQ5
MzE1OGExNmY5NzMwZTg0MWUyMDgxN2E4ODIyYjRlNjE0OC4uMDk0Y2ZhYTFlNDE1NWNiM2JlMzgw
MjI1ODgzYmYwNjNkZTBkMWQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAj
aW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgi
CiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgog
I2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oIgogI2luY2x1ZGUgIkZyYW1lVHJl
ZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMTE2NCw3ICsxMTY1LDkgQEAgYm9vbCBG
cmFtZUxvYWRlckNsaWVudFF0OjpjYWxsRXJyb3JQYWdlRXh0ZW5zaW9uKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImIGUKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChi
YXNlVXJsKTsKICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9
IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG91dHB1dC5jb250ZW50LmNvbnN0RGF0YSgp
LCBvdXRwdXQuY29udGVudC5sZW5ndGgoKSk7CiAgICAgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEg
c3Vic3RpdHV0ZURhdGEoYnVmZmVyLCBvdXRwdXQuY29udGVudFR5cGUsIG91dHB1dC5lbmNvZGlu
ZywgZmFpbGluZ1VybCk7Ci0gICAgbV9mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vi
c3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0IGZyYW1l
UmVxdWVzdChtX2ZyYW1lKTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoc3Vi
c3RpdHV0ZURhdGEpOworICAgIG1fZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCBlZTljZGQ4
YzQ0MThkOGEyN2U2ODA0ZjAyMDg5NWJiNTViMjM4MmM1Li44ZGMyZTkxYmVmNmU2YjU4NWQ4ZTg3
M2UxOTYzMTFmNWI4ZGQ0YmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCkBAIC01NTYsNyArNTU2
LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJGcmFtZTo6bG9hZFJlcXVlc3QoCiAg
ICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICBjb3JlRnJh
bWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3RJbXBsLT5yZXNvdXJjZVJlcXVlc3QoKSwgZmFsc2Up
OworICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJh
bWUsIHJlcXVlc3RJbXBsLT5yZXNvdXJjZVJlcXVlc3QoKSkpOwogICAgIHJldHVybiBTX09LOwog
fQogCkBAIC01NzksOCArNTc5LDExIEBAIHZvaWQgV2ViRnJhbWU6OmxvYWREYXRhKFBhc3NSZWZQ
dHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBkYXRhLCBCU1RSIG1pbWVUeXBlLCBCCiAgICAgU3Vi
c3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoZGF0YSwgbWltZVR5cGVTdHJpbmcsIGVuY29kaW5n
U3RyaW5nLCBmYWlsaW5nS1VSTCk7CiAKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBvbmx5IGNhbGxl
ZCBmcm9tIElXZWJGcmFtZSBtZXRob2RzLCBzbyBkb24ndCBBU1NFUlQgdGhhdCB0aGUgRnJhbWUg
cG9pbnRlciBpc24ndCBudWxsLgotICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZSh0aGlz
KSkKLSAgICAgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRl
RGF0YSwgZmFsc2UpOworICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZSh0aGlzKSkgewor
ICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChjb3JlRnJhbWUsIHJlcXVlc3RJ
bXBsLT5yZXNvdXJjZVJlcXVlc3QoKSk7CisgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTdWJzdGl0
dXRlRGF0YShzdWJzdGl0dXRlRGF0YSk7CisgICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxv
YWQoZnJhbWVSZXF1ZXN0KTsKKyAgICB9CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW5jZS9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKaW5k
ZXggZmNjMDRkN2RiNmI2NjFhODdmNTk2ODYzNDVkOTg4Nzk3OGY0M2ZkNi4uOTA1OWE0MDIyMWE3
OGU1Y2VlMjdmMDZhNWQwMGVhNjFkM2RhOWY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW5jZS9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50V2luQ0UuaCIKICNpbmNsdWRl
ICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1l
TG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyQ2xpZW50V2luQ0UuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTIxOCw3ICsy
MTksNyBAQCB2b2lkIFdlYlZpZXc6OmxvYWQoY29uc3QgU3RyaW5nICZ1cmwpCiAKIHZvaWQgV2Vi
Vmlldzo6bG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgJnJlcXVlc3QpCiB7Ci0g
ICAgZnJhbWUoKS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgZmFsc2UpOworICAgIGZyYW1lKCkt
PmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUoKSwgcmVxdWVzdCkpOwogfQog
CiB2b2lkIFdlYlZpZXc6OnJlbG9hZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dl
YkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCmluZGV4IGIzNzQxMTNj
MDc3MmExYzdmMjZmMjQ0MDgzMDAyYmIzYWFlOGM4YTkuLmVjZDdkZjM5YjZkNTc1ZGQxMTRkYmM2
NTlhYWM2ZGY4ZDE0YjI5MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFd4LmgiCiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCkBAIC0zMjIsNyArMzIzLDEwIEBAIHZvaWQgV2ViRnJhbWU6OlNldFBhZ2VT
b3VyY2UoY29uc3Qgd3hTdHJpbmcmIHNvdXJjZSwgY29uc3Qgd3hTdHJpbmcmIGJhc2VVcmwsIGNv
CiAgICAgICAgIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKHNoYXJlZEJ1
ZmZlciwgbWltZXR5cGUsIFdURjo6U3RyaW5nKCJVVEYtOCIpLCBXZWJDb3JlOjpibGFua1VSTCgp
LCB1cmwpOwogCiAgICAgICAgIG1faW1wbC0+ZnJhbWUtPmxvYWRlcigpLT5zdG9wKCk7Ci0gICAg
ICAgIG1faW1wbC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCh1cmwpLCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworCisgICAgICAgIFdlYkNvcmU6OkZyYW1l
TG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KG1faW1wbC0+ZnJhbWUsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCh1cmwpKTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1
YnN0aXR1dGVEYXRhKTsKKyAgICAgICAgbV9pbXBsLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJh
bWVSZXF1ZXN0KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA0NGY1NzVhZDU0ZmZlZTQ4ODUwZjNlMzg5NzNm
YWZjNjk4MDIzMGUxLi42NDYyMzg4OGViMTQ0YjIwYWYzN2Y4MTI5MzU0MGQ5N2ZkMTQ4NGE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CkBAIC05NTAsNyArOTUwLDEwIEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVS
TFJlcXVlc3QoVVJMUmVxdWVzdCogcmVxdWVzdCkKICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBm
cmFtZS0+bG9hZGVyKCktPmZpbmRGcmFtZUZvck5hdmlnYXRpb24ocmVxdWVzdC0+dGFyZ2V0KCkp
OwogICAgIGlmICghdGFyZ2V0RnJhbWUpIHsKICAgICAgICAgLy8gV2UgZGlkIG5vdCBmaW5kIGEg
dGFyZ2V0IGZyYW1lLiBBc2sgb3VyIGZyYW1lIHRvIGxvYWQgdGhlIHBhZ2UuIFRoaXMgbWF5IG9y
IG1heSBub3QgY3JlYXRlIGEgcG9wdXAgd2luZG93LgotICAgICAgICBmcmFtZS0+bG9hZGVyKCkt
PmxvYWQocmVxdWVzdC0+cmVxdWVzdCgpLCByZXF1ZXN0LT50YXJnZXQoKSwgZmFsc2UpOworICAg
ICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChmcmFtZSwgcmVxdWVzdC0+cmVxdWVz
dCgpKTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZShyZXF1ZXN0LT50YXJnZXQo
KSk7CisgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSh0
cnVlKTsKKyAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAKICAg
ICAgICAgLy8gRklYTUU6IFdlIGRvbid0IGtub3cgd2hldGhlciB0aGUgd2luZG93IHdhcyBzdWNj
ZXNzZnVsbHkgY3JlYXRlZCBoZXJlIHNvIHdlIGp1c3QgYXNzdW1lIHRoYXQgaXQgd29ya2VkLgog
ICAgICAgICAvLyBJdCdzIGJldHRlciB0aGFuIG5vdCB0ZWxsaW5nIHRoZSBwbHVnLWluIGFueXRo
aW5nLgpAQCAtOTU5LDcgKzk2Miw3IEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9h
ZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCogcmVxdWVzdCkKICAgICB9CiAKICAgICAvLyBOb3cgYXNr
IHRoZSBmcmFtZSB0byBsb2FkIHRoZSByZXF1ZXN0LgotICAgIHRhcmdldEZyYW1lLT5sb2FkZXIo
KS0+bG9hZChyZXF1ZXN0LT5yZXF1ZXN0KCksIGZhbHNlKTsKKyAgICB0YXJnZXRGcmFtZS0+bG9h
ZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdCh0YXJnZXRGcmFtZSwgcmVxdWVzdC0+cmVxdWVz
dCgpKSk7CiAKICAgICBXZWJGcmFtZSogdGFyZ2V0V2ViRnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJG
cmFtZUxvYWRlckNsaWVudCo+KHRhcmdldEZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJG
cmFtZSgpOwogICAgIGlmIChXZWJGcmFtZTo6TG9hZExpc3RlbmVyKiBsb2FkTGlzdGVuZXIgPSB0
YXJnZXRXZWJGcmFtZS0+bG9hZExpc3RlbmVyKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA5ZTY2NTc2NDg3NzI0MWRmZTRkMWZlYzcx
ZGIyYTFhN2VlZTQ0Zjk3Li5mMGYwOTAyMGM0NmQxYTI3NjRiMDZhMjYxYmY1MzM5ODk5MDQyNWNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC04MjIsNyArODIyLDcgQEAgdm9pZCBXZWJQYWdlOjpsb2FkVVJMUmVxdWVzdChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNhbmRib3hFeHRlbnMKICAgICBTZW5kU3RvcFJl
c3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcih0aGlzKTsKIAogICAgIG1fc2FuZGJveEV4dGVuc2lv
blRyYWNrZXIuYmVnaW5Mb2FkKG1fbWFpbkZyYW1lLmdldCgpLCBzYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlKTsKLSAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVl
c3QsIGZhbHNlKTsKKyAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2Fk
KEZyYW1lTG9hZFJlcXVlc3QobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0KSk7CiB9
CiAKIHZvaWQgV2ViUGFnZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHNoYXJl
ZEJ1ZmZlciwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZ05h
bWUsIGNvbnN0IEtVUkwmIGJhc2VVUkwsIGNvbnN0IEtVUkwmIHVucmVhY2hhYmxlVVJMKQpAQCAt
ODMxLDcgKzgzMSw5IEBAIHZvaWQgV2ViUGFnZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+IHNoYXJlZEJ1ZmZlciwgY29uc3QgU3RyaW5nJiBNSU1FCiAKICAgICBSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdChiYXNlVVJMKTsKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0
YShzaGFyZWRCdWZmZXIsIE1JTUVUeXBlLCBlbmNvZGluZ05hbWUsIHVucmVhY2hhYmxlVVJMKTsK
LSAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1
YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3Qo
bV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0
U3Vic3RpdHV0ZURhdGEoc3Vic3RpdHV0ZURhdGEpOworICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJh
bWUoKS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKIH0KIAogdm9pZCBXZWJQYWdlOjps
b2FkSFRNTFN0cmluZyhjb25zdCBTdHJpbmcmIGh0bWxTdHJpbmcsIGNvbnN0IFN0cmluZyYgYmFz
ZVVSTFN0cmluZykKQEAgLTg3MSw4ICs4NzMsNyBAQCB2b2lkIFdlYlBhZ2U6OmxpbmtDbGlja2Vk
KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKICAgICBpZiAo
ZXZlbnQudHlwZSgpICE9IFdlYkV2ZW50OjpOb1R5cGUpCiAgICAgICAgIGNvcmVFdmVudCA9IE1v
dXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgZnJhbWUtPmRvY3VtZW50
KCktPmRlZmF1bHRWaWV3KCksIHBsYXRmb3JtKGV2ZW50KSwgMCwgMCk7CiAKLSAgICBmcmFtZS0+
bG9hZGVyKCktPmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCkpLCAKLSAgICAgICAg
ZmFsc2UsIGZhbHNlLCBjb3JlRXZlbnQuZ2V0KCksIDAsIE1heWJlU2VuZFJlZmVycmVyKTsKKyAg
ICBmcmFtZS0+bG9hZGVyKCktPmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFt
ZSwgUmVzb3VyY2VSZXF1ZXN0KHVybCkpLCBmYWxzZSwgZmFsc2UsIGNvcmVFdmVudC5nZXQoKSwg
MCwgTWF5YmVTZW5kUmVmZXJyZXIpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRnJh
bWUodWludDY0X3QgZnJhbWVJRCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174552</attachid>
            <date>2012-11-15 16:29:55 -0800</date>
            <delta_ts>2012-11-19 19:52:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102151-20121115162752.patch</filename>
            <type>text/plain</type>
            <size>43146</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0ODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY4NjRmMzRkOGE3ZmQ0
MzI3MzQ4NWFhMjU0OWQ5NjZlNGQxMWUxZC4uYWJkM2VhZThhZWQwNzFmZWUyNTFhMmMzOGY3Yjhl
Mzg0M2NhYzg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTEzICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0
ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9h
ZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZXJlJ3MgYSBGSVhNRSB0aGF0IHdlIGhhdmUgdG9vIG1hbnkgRnJhbWVMb2FkZXI6OmxvYWQq
KCkgZnVuY3Rpb25zLiBUaGlzIHBhdGNoIGNvbnNvbGlkYXRlcyAzIGludG8gMS4KKyAgICAgICAg
VGhlcmUgYXJlIHN0aWxsIGEgZmV3IG1vcmUgbG9hZCBmdW5jdGlvbnMgdGhhdCB3aWxsIGJlIGNv
bnNvbGlkYXRlZCBsYXRlci4gVXNpbmcgRnJhbWVMb2FkUmVxdWVzdCBhcworICAgICAgICB0aGUg
aW50ZXJmYWNlIGludG8gRnJhbWVMb2FkZXIgd2lsbCBhbHNvIHByb3ZpZGUgYSBwbGFjZSB0byBw
YXNzIGluIHRoZSBpbml0aWF0b3IuIEZpbmFsbHksIHRoaXMgbWF0Y2hlcworICAgICAgICB0aGUg
cmVmYWN0b3JpbmcgZG9uZSB3aXRoIENhY2hlZFJlc291cmNlUmVxdWVzdCBhbmQgQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gZnVuY3Rp
b25hbGl0eS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpG
cmFtZUxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNl
dExvY2tIaXN0b3J5KTogVGhlc2UgYXJlIGZvcm1lciBhcmd1bWVudHMgdG8gbG9hZCgpLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6bG9ja0hpc3RvcnkpOiBEaXR0by4KKyAg
ICAgICAgKEZyYW1lTG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVx
dWVzdDo6c2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpzdWJzdGl0dXRlRGF0YSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2V0U3Vic3RpdHV0
ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6Omhhc1N1
YnN0aXR1dGVEYXRhKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKTogTm8gY2hhbmdlIGluIGJlaGF2
aW9yLCBqdXN0IG1lcmdlZCBpdCBhbGwgaW50byBvbmUgZnVuY3Rpb24uCisgICAgICAgICogbG9h
ZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIChGcmFtZUxvYWRlcik6CisgICAgICAgICogcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6
cGVyZm9ybURyYWcpOgorCiAyMDEyLTExLTE1ICBKb2UgTWFzb24gIDxqbWFzb25AcmltLmNvbT4K
IAogICAgICAgICBbQmxhY2tCZXJyeV0gRG9uJ3QgYXNzZXJ0IHdoZW4gbm90aWZ5QXV0aFJlY2Vp
dmVkIGlzIGNhbGxlZCB3aXRoIGEgZGlmZmVyZW50IGF1dGggdHlwZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9DaGFuZ2VMb2cKaW5kZXggN2Y3NDQ1MTgyZDA5NDExYmZjZGI4ZDVlYTg0ZWVjMzNmOTEzYzk1
ZC4uMjdmNThlMjRiYTJmMjU1N2NhZjgyNDE3MDczZGZhNzBiNzY1YzRiZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNp
bW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZy
YW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVx
dWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAy
MTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBB
cGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2
YXRlOjpsb2FkKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6
OmxvYWRTdHJpbmcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNr
QmVycnk6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisKIDIwMTItMTEtMTUgIEFu
ZHJldyBMbyAgPGFubG9AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gQW5pbWF0ZSBj
aGFuZ2VzIHRvIHZpZXdwb3J0IGR1ZSB0byBpbnB1dCBmb2N1cyBjaGFuZ2VzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCBhY2Q4MTY0NzAyMjY0ODg5MWM5YzFmZTk3ZjE3NmRjNmU3YzY0
MDlkLi5lZGU2ZTQ4YjQ4MzdhNzkyN2E0NWEyYWU0MmJmOWUzMmI2NGM4OTU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTExLTEzICBKYW1lcyBTaW1v
bnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFt
ZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVl
c3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Jj
L1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6bG9hZFJl
cXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmxvYWREYXRhKToKKyAgICAg
ICAgKiBzcmMvV2ViU2hhcmVkV29ya2VySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNo
YXJlZFdvcmtlckltcGw6OmluaXRpYWxpemVMb2FkZXIpOgorCiAyMDEyLTExLTE1ICBZdWUgWmhh
bmcgIDx6eXN4cW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBJZ25vcmUgYXV0b2NvbXBsZXRlPW9m
ZiBmb3IgY2hyb21lIGdlbmVyYXRlZCBwYXNzd29yZHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZDhi
OTlmOWM4MjRiYThmZTljZjAyNDQzOGM5ZTQ3YTZhMDdjOTA3ZC4uNGIyMTJiYWI0NjI3ZWQ3MTYw
MDM5ZWE1YWUzZDc1NmMyNjBlOWFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDEyLTExLTEzICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9u
IHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZXdrL2V3a19mcmFtZS5jcHA6CisgICAgICAgIChfZXdrX2Zy
YW1lX2NvbnRlbnRzX3NldF9pbnRlcm5hbCk6CisKIDIwMTItMTEtMTUgIEtlbm5ldGggUm9oZGUg
Q2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmFtZSBtZW1i
ZXIgdmFycyBpbiBWaWV3cG9ydEFyZ3VtZW50IHRvIG1hdGNoIGNzcy1kZXZpY2UtYWRhcHQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwppbmRleCBlNWE2ZjdkMDEyNmVhZjRhZTVjZThkYmE1MmZhNjc3NDAzNTY3NGU5
Li4zMGYwZWNiOGQyNjdmOWNlMTEyZDc3ZjRiNTJiYmEyMTcyMmMzNWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25q
YW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2Fk
KCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
ZnJhbWUuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX3VyaSk6CisgICAgICAg
ICh3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfZGF0YSk6CisgICAgICAgICh3ZWJraXRfd2ViX2ZyYW1l
X2xvYWRfcmVxdWVzdCk6CisKIDIwMTItMTEtMTUgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2Vr
QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhdHRlbXB0IGFmdGVy
IHIxMzQ3NjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNjdkYjllYmE3YmU4N2Q1YTdhMzA1ZmU4ZGUx
N2MyNWE3MWM3ZmUzOC4uMWViZjM1ZTQ2OTIwMWVkNDYzODA4OWQ3YjExOGFjNTVmOGE1YmM0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTExLTEzICBKYW1lcyBTaW1v
bnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFt
ZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVl
c3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGx1
Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUu
bW06CisgICAgICAgICgtW1dlYkZyYW1lIGxvYWRSZXF1ZXN0Ol0pOgorICAgICAgICAoLVtXZWJG
cmFtZSBfbG9hZERhdGE6TUlNRVR5cGU6dGV4dEVuY29kaW5nTmFtZTpiYXNlVVJMOnVucmVhY2hh
YmxlVVJMOl0pOgorCiAyMDEyLTExLTEzICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGp1c3QgdGhlIFdlYiBJbnNwZWN0b3Igd2luZG93IHRpdGxlIGZy
YW1lIGlmIG5lZWRlZCB0byBwcmV2ZW50IGl0IGZyb20gaW50ZXJzZWN0aW5nIHRoZSBkb2NrIGJ1
dHRvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMzQwY2Y5NTM3NDYzYzY2MzE1OGI0YmMzMzg2NmFiNzRk
YTAzMjg2OS4uYzQ1OGVlYmMxYTQ2YjU4Yjg0Y2RjZjIwZWYxNjE3ZTBlNDUyYWE4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0xMS0xMyAgSmFtZXMgU2ltb25zZW4gIDxz
aW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6
OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFwaS9xd2ViZnJh
bWUuY3BwOgorICAgICAgICAoUVdlYkZyYW1lOjpRV2ViRnJhbWUpOgorICAgICAgICAoUVdlYkZy
YW1lOjpsb2FkKToKKyAgICAgICAgKFFXZWJGcmFtZTo6c2V0SHRtbCk6CisgICAgICAgIChRV2Vi
RnJhbWU6OnNldENvbnRlbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRB
bHRlcm5hdGVIdG1sKToKKyAgICAgICAgKHF0X2R1bXBfc2V0X2FjY2VwdHNfZWRpdGluZyk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpjYWxsRXJyb3JQYWdlRXh0ZW5zaW9uKToK
KwogMjAxMi0xMS0xNCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFtRdF0gRml4IHRzdF9RV2ViRnJhbWU6OnNldFVybFdpdGhQZW5kaW5nTG9hZHMoKSBB
UEkgdGVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGM0NGUzYjM2NjJkODFiMjM4N2M1YjVjOTY5NGMy
YzUyZmQ0MzM5NWIuLjE2OTg0OTY3NTEzZmU1Y2M5M2FlODgxNjFlZTI0NGI4NmNiOTMwMzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMS0xMyAgSmFtZXMgU2ltb25z
ZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVM
b2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkZy
YW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjpsb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJG
cmFtZTo6bG9hZERhdGEpOgorCiAyMDEyLTExLTE0ICBHZW9yZ2UgVHNvdW1hbGlzICA8dHN1bWFs
aXM5NkBnbWFpbC5jb20+CiAKICAgICAgICAgSW1wbGVtZW50YXRpb24gZm9yIG1laG9kcyBpbiBX
ZWJNdXRhYmxlVVJMUmVxdWVzdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2Uv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggMmZhM2YxMzJk
ZTE0MzA0MjZiYTAyMGEwYjNjMmVmZTE0NzMxMzgyOC4uYWU0ZmJkNWVlYmUwYjUzYjkzYmIxNmQ1
NTQyOGQyZjgxOTA3YzFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMi0xMS0xMyAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0
YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6bG9hZCk6
CisKIDIwMTItMTAtMjQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBhIHN0cmF0ZWd5IGZvciBsb2FkZXIgY3VzdG9taXphdGlvbi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cK
aW5kZXggZTllYWYxMzE5ZTAzMjdlZDljZWM5ZmI0OTIwOTMzYjdhMjI1NGNjNy4uMWIxOWVhMGI0
ZGUwZjNlOGFmZGJiMTgzNTg5MGUyMzlkMmYxZDNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMi0xMS0xMyAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBm
dW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWU6OlNldFBhZ2VTb3VyY2UpOgorCiAyMDEyLTEwLTIyICBKb2NlbHluIFR1cmNv
dHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKICAgICAgICAgW1F0XSBGaXggIkFT
U0VSVElPTiBGQUlMRUQ6ICFkb2N1bWVudC0+aW5QYWdlQ2FjaGUoKSIgd2hlbiBsb2FkaW5nIGEg
cGFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDRkODI2NDAyNWVhYWNmZmRhYmQ5ZDM5ZjNkNGVkZTQzMzI4ZDE4
ZTcuLjBmYThjZTg0ZWU0ZmI2MTM0N2Y5NzUyODMzY2I0YTljYThhOGI2ZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMS0xMyAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBp
bnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6cGVyZm9ybUZyYW1l
TG9hZFVSTFJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZFVSTFJlcXVlc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpsb2FkRGF0YSk6CisKIDIwMTItMTEtMTUgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDb25zb2xpZGF0ZSBmb3VyIGFjY2Vs
ZXJhdGVkIGNvbXBvc2l0aW5nIFdLVmlldyBtZXRob2RzIGludG8gYSBzaW5nbGUgbWV0aG9kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IDkwNzkwZGM2YzUzMTYwMjE5MjgxNTIyNGM1NDdiZTU5M2Q2
ZGMyNjUuLmQ5ZDgzZDFhYTJlNWQ3ZGIxOGI4YjdhOWM1YWY1MzVmZWFlNGRlOTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC0xMDcsOSArMTA3LDcgQEAgX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRl
cjIzdGltZU9mTGFzdENvbXBsZXRlZExvYWRFdgogX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjI2
cmVsb2FkV2l0aE92ZXJyaWRlRW5jb2RpbmdFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUx
MUZyYW1lTG9hZGVyMzJzZXRPcmlnaW5hbFVSTEZvckRvd25sb2FkUmVxdWVzdEVSTlNfMTVSZXNv
dXJjZVJlcXVlc3RFCiBfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGluaXRFdgotX19aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUktOM1dURjZTdHJp
bmdFYgotX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTVSZXNvdXJjZVJlcXVl
c3RFUktOU18xNFN1YnN0aXR1dGVEYXRhRWIKLV9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9h
ZEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RWIKK19fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9h
ZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEUKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI2cmVs
b2FkRWIKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI5c2V0T3BlbmVyRVBOU181RnJhbWVFCiBf
X1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtMTB0YXJnZXRJdGVtRXYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkUmVxdWVzdC5oCmluZGV4IGQ2NWE5YjVmYWMyZjYyMGY5NzIyMTMzNWU0N2U0
Mjg4MDk2YzdjMzMuLmUxYjM5NmU3NjUzYTBhZGRmNDFiOGFlMTc4YzA0NTg0NmMzNmE3NzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaApAQCAtMjYsOCArMjYsMTEg
QEAKICNpZm5kZWYgRnJhbWVMb2FkUmVxdWVzdF9oCiAjZGVmaW5lIEZyYW1lTG9hZFJlcXVlc3Rf
aAogCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVk
ZSAiU3Vic3RpdHV0ZURhdGEuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSwxMiAr
MzgsMTYgQEAgc3RydWN0IEZyYW1lTG9hZFJlcXVlc3QgewogcHVibGljOgogICAgIGV4cGxpY2l0
IEZyYW1lTG9hZFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIHJlcXVlc3RlcikKICAgICAgICAgOiBt
X3JlcXVlc3RlcihyZXF1ZXN0ZXIpCisgICAgICAgICwgbV9sb2NrSGlzdG9yeShmYWxzZSkKKyAg
ICAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQogICAgIHsKICAgICB9
CiAKICAgICBGcmFtZUxvYWRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQogICAgICAgICA6IG1fcmVxdWVzdGVy
KHJlcXVlc3RlcikKICAgICAgICAgLCBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3Qp
CisgICAgICAgICwgbV9sb2NrSGlzdG9yeShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNr
TmV3V2luZG93UG9saWN5KGZhbHNlKQogICAgIHsKICAgICB9CiAKQEAgLTQ4LDYgKzU1LDE2IEBA
IHB1YmxpYzoKICAgICAgICAgOiBtX3JlcXVlc3RlcihyZXF1ZXN0ZXIpCiAgICAgICAgICwgbV9y
ZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQogICAgICAgICAsIG1fZnJhbWVOYW1lKGZy
YW1lTmFtZSkKKyAgICAgICAgLCBtX2xvY2tIaXN0b3J5KGZhbHNlKQorICAgICAgICAsIG1fc2hv
dWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koZmFsc2UpCisgICAgeworICAgIH0KKworICAgIEZyYW1l
TG9hZFJlcXVlc3QoRnJhbWUqIGZyYW1lLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNl
UmVxdWVzdCkKKyAgICAgICAgOiBtX3JlcXVlc3RlcihmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKSkKKyAgICAgICAgLCBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3Qp
CisgICAgICAgICwgbV9sb2NrSGlzdG9yeShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNr
TmV3V2luZG93UG9saWN5KGZhbHNlKQogICAgIHsKICAgICB9CiAKQEAgLTYxLDEwICs3OCwyMyBA
QCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lTmFtZTsgfQogICAgIHZvaWQgc2V0RnJhbWVOYW1lKGNvbnN0IFN0cmluZyYgZnJhbWVO
YW1lKSB7IG1fZnJhbWVOYW1lID0gZnJhbWVOYW1lOyB9CiAKKyAgICB2b2lkIHNldExvY2tIaXN0
b3J5KGJvb2wgbG9ja0hpc3RvcnkpIHsgbV9sb2NrSGlzdG9yeSA9IGxvY2tIaXN0b3J5OyB9Cisg
ICAgYm9vbCBsb2NrSGlzdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9ja0hpc3Rvcnk7IH0KKwor
ICAgIHZvaWQgc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koYm9vbCBjaGVja1BvbGljeSkg
eyBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5ID0gY2hlY2tQb2xpY3k7IH0KKyAgICBib29s
IHNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDaGVj
a05ld1dpbmRvd1BvbGljeTsgfQorCisgICAgY29uc3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1
dGVEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9zdWJzdGl0dXRlRGF0YTsgfQorICAgIHZvaWQgc2V0
U3Vic3RpdHV0ZURhdGEoY29uc3QgU3Vic3RpdHV0ZURhdGEmIGRhdGEpIHsgbV9zdWJzdGl0dXRl
RGF0YSA9IGRhdGE7IH0KKyAgICBib29sIGhhc1N1YnN0aXR1dGVEYXRhKCkgeyByZXR1cm4gbV9z
dWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCk7IH0KKwogcHJpdmF0ZToKICAgICBSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IG1fcmVxdWVzdGVyOwogICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVx
dWVzdDsKICAgICBTdHJpbmcgbV9mcmFtZU5hbWU7CisgICAgYm9vbCBtX2xvY2tIaXN0b3J5Owor
ICAgIGJvb2wgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeTsKKyAgICBTdWJzdGl0dXRlRGF0
YSBtX3N1YnN0aXR1dGVEYXRhOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKaW5kZXggMTNkNGMxZWQ2YmZiMjc2MTMwMmVkNjE4MTE4YjA2OGVlNDNkZWRiOC4uODZi
NGFlNDllYWNiMDYxYjVkMTY5Yjc2ZGQzZjA5YzU1Yjc2MDhkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xMjUzLDM2ICsxMjUzLDMzIEBAIFN1YnN0aXR1dGVEYXRh
IEZyYW1lTG9hZGVyOjpkZWZhdWx0U3Vic3RpdHV0ZURhdGFGb3JVUkwoY29uc3QgS1VSTCYgdXJs
KQogICAgIHJldHVybiBTdWJzdGl0dXRlRGF0YShTaGFyZWRCdWZmZXI6OmNyZWF0ZShlbmNvZGVk
U3JjZG9jLmRhdGEoKSwgZW5jb2RlZFNyY2RvYy5sZW5ndGgoKSksICJ0ZXh0L2h0bWwiLCAiVVRG
LTgiLCBLVVJMKCkpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBsb2NrSGlzdG9yeSkKK3ZvaWQgRnJhbWVMb2FkZXI6Omxv
YWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcGFzc2VkUmVxdWVzdCkKIHsKLSAgICBsb2FkKHJl
cXVlc3QsIGRlZmF1bHRTdWJzdGl0dXRlRGF0YUZvclVSTChyZXF1ZXN0LnVybCgpKSwgbG9ja0hp
c3RvcnkpOwotfQorICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChwYXNzZWRSZXF1ZXN0KTsK
KyAgICBBU1NFUlQoIXJlcXVlc3QuaXNFbXB0eSgpKTsKIAotdm9pZCBGcmFtZUxvYWRlcjo6bG9h
ZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBz
dWJzdGl0dXRlRGF0YSwgYm9vbCBsb2NrSGlzdG9yeSkKLXsKICAgICBpZiAobV9pblN0b3BBbGxM
b2FkZXJzKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAotICAgIFJlZlB0cjxEb2N1bWVudExv
YWRlcj4gbG9hZGVyID0gbV9jbGllbnQtPmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QsIHN1
YnN0aXR1dGVEYXRhKTsKLSAgICBpZiAobG9ja0hpc3RvcnkgJiYgbV9kb2N1bWVudExvYWRlcikK
LSAgICAgICAgbG9hZGVyLT5zZXRDbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkobV9kb2N1
bWVudExvYWRlci0+ZGlkQ3JlYXRlR2xvYmFsSGlzdG9yeUVudHJ5KCkgPyBtX2RvY3VtZW50TG9h
ZGVyLT51cmxGb3JIaXN0b3J5KCkuc3RyaW5nKCkgOiBtX2RvY3VtZW50TG9hZGVyLT5jbGllbnRS
ZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkoKSk7Ci0gICAgbG9hZChsb2FkZXIuZ2V0KCkpOwotfQog
Ci12b2lkIEZyYW1lTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGJvb2wgbG9ja0hpc3RvcnkpCi17Ci0gICAgaWYgKGZy
YW1lTmFtZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgbG9hZChyZXF1ZXN0LCBsb2NrSGlzdG9yeSk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKCFyZXF1ZXN0Lmhhc1N1YnN0aXR1dGVE
YXRhKCkpIHsKKyAgICAgICAgaWYgKCFyZXF1ZXN0LmZyYW1lTmFtZSgpLmlzRW1wdHkoKSkgewor
ICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gZmluZEZyYW1lRm9yTmF2aWdhdGlvbihyZXF1ZXN0
LmZyYW1lTmFtZSgpKTsKKyAgICAgICAgICAgIGlmIChmcmFtZSkgeworICAgICAgICAgICAgICAg
IGZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0KTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisgICAgICAgIH0KIAotICAgIEZyYW1lKiBmcmFtZSA9IGZpbmRGcmFt
ZUZvck5hdmlnYXRpb24oZnJhbWVOYW1lKTsKLSAgICBpZiAoZnJhbWUpIHsKLSAgICAgICAgZnJh
bWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIGxvY2tIaXN0b3J5KTsKLSAgICAgICAgcmV0dXJu
OworICAgICAgICByZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKGRlZmF1bHRTdWJzdGl0dXRlRGF0
YUZvclVSTChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKSk7CisKKyAgICAgICAgaWYg
KHJlcXVlc3Quc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koKSkKKyAgICAgICAgICAgIHBvbGlj
eUNoZWNrZXIoKS0+Y2hlY2tOZXdXaW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLCBOYXZpZ2F0aW9uVHlwZU90aGVyKSwgRnJhbWVMb2FkZXI6OmNh
bGxDb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVl
c3QoKSwgMCwgcmVxdWVzdC5mcmFtZU5hbWUoKSwgdGhpcyk7CiAgICAgfQogCi0gICAgcG9saWN5
Q2hlY2tlcigpLT5jaGVja05ld1dpbmRvd1BvbGljeShOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3Qs
IE5hdmlnYXRpb25UeXBlT3RoZXIpLCBGcmFtZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVy
TmV3V2luZG93UG9saWN5LCByZXF1ZXN0LCAwLCBmcmFtZU5hbWUsIHRoaXMpOworICAgIFJlZlB0
cjxEb2N1bWVudExvYWRlcj4gbG9hZGVyID0gbV9jbGllbnQtPmNyZWF0ZURvY3VtZW50TG9hZGVy
KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKSk7Cisg
ICAgaWYgKHJlcXVlc3QubG9ja0hpc3RvcnkoKSAmJiBtX2RvY3VtZW50TG9hZGVyKQorICAgICAg
ICBsb2FkZXItPnNldENsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeShtX2RvY3VtZW50TG9h
ZGVyLT5kaWRDcmVhdGVHbG9iYWxIaXN0b3J5RW50cnkoKSA/IG1fZG9jdW1lbnRMb2FkZXItPnVy
bEZvckhpc3RvcnkoKS5zdHJpbmcoKSA6IG1fZG9jdW1lbnRMb2FkZXItPmNsaWVudFJlZGlyZWN0
U291cmNlRm9ySGlzdG9yeSgpKTsKKyAgICBsb2FkKGxvYWRlci5nZXQoKSk7CiB9CiAKIHZvaWQg
RnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgYm9vbCBsb2NrSGlz
dG9yeSwgRnJhbWVMb2FkVHlwZSB0eXBlLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCA1MTYzNjlhODY0MjM2ZmRkNGE1
ZTRhMDliZDRlNWNkNjMwOTdlOGFkLi44YTQzNWM4OTVhODJiMDk0NzVmNjRmYjliY2Q5ZmI1M2Y4
YjZhMTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMTA0LDkgKzEwNCw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvYWRGcmFtZVJlcXVlc3QoY29uc3QgRnJhbWVMb2FkUmVx
dWVzdCYsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCwgIC8vIENh
bGxlZCBieSBzdWJtaXRGb3JtLCBjYWxscyBsb2FkUG9zdFJlcXVlc3QgYW5kIGxvYWRVUkwuCiAg
ICAgICAgIFBhc3NSZWZQdHI8RXZlbnQ+LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIFNob3VsZFNl
bmRSZWZlcnJlcik7CiAKLSAgICB2b2lkIGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9v
bCBsb2NrSGlzdG9yeSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IENhbGxlZCBieSBXZWJGcmFtZSwgY2FsbHMgbG9hZChSZXNvdXJjZVJlcXVlc3QsIFN1YnN0aXR1
dGVEYXRhKS4KLSAgICB2b2lkIGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vi
c3RpdHV0ZURhdGEmLCBib29sIGxvY2tIaXN0b3J5KTsgICAgICAgICAgICAgICAgIC8vIENhbGxl
ZCBib3RoIGJ5IFdlYkZyYW1lIGFuZCBpbnRlcm5hbGx5LCBjYWxscyBsb2FkKERvY3VtZW50TG9h
ZGVyKikuCi0gICAgdm9pZCBsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmlu
ZyYgZnJhbWVOYW1lLCBib29sIGxvY2tIaXN0b3J5KTsgICAgICAgICAgICAgICAvLyBDYWxsZWQg
YnkgV2ViUGx1Z2luQ29udHJvbGxlci4KKyAgICB2b2lkIGxvYWQoY29uc3QgRnJhbWVMb2FkUmVx
dWVzdCYpOworCiAjaWYgRU5BQkxFKFdFQl9BUkNISVZFKSB8fCBFTkFCTEUoTUhUTUwpCiAgICAg
dm9pZCBsb2FkQXJjaGl2ZShQYXNzUmVmUHRyPEFyY2hpdmU+KTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCA4MWVhM2Y5NWRkMDQ2OTRkZjAzNGIwNzYw
YWUwMGM2YTg2MWFmNWE4Li4zYTBkZDE2ZDI2YWMyMDk2NGM5ZGI5NWNkYWFmZDIyOGFhZWU4OWU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtNDIsNiArNDIsNyBA
QAogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKQEAgLTIzNyw3ICsyMzgsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpwZXJm
b3JtRHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IG1fY2xpZW50LT53aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRp
b25BY3Rpb25Mb2FkLCBkcmFnRGF0YSk7Ci0gICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVy
KCktPmxvYWQoUmVzb3VyY2VSZXF1ZXN0KGRyYWdEYXRhLT5hc1VSTChtX3BhZ2UtPm1haW5GcmFt
ZSgpKSksIGZhbHNlKTsKKyAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChG
cmFtZUxvYWRSZXF1ZXN0KG1fcGFnZS0+bWFpbkZyYW1lKCksIFJlc291cmNlUmVxdWVzdChkcmFn
RGF0YS0+YXNVUkwobV9wYWdlLT5tYWluRnJhbWUoKSkpKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDA0NjY4NDZkNDMxOTAy
M2ZkNGZlZjlkMjAyZmNiZmJhMjdiN2ZkZWQuLjVkMzJjOTM4ZjdkMDlhNWZmYWJhOTFiNjY2OGQ1
ZWU5YzczYjhlODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNDQw
LDcgKzQ0MCwxMCBAQCB2b2lkIFBsdWdpblZpZXc6OnBlcmZvcm1SZXF1ZXN0KFBsdWdpblJlcXVl
c3QqIHJlcXVlc3QpCiAgICAgICAgICAgICAvLyBQbHVnaW5WaWV3LCBzbyB3ZSBwcm90ZWN0IGl0
LiA8cmRhcjovL3Byb2JsZW0vNjk5MTI1MT4KICAgICAgICAgICAgIFJlZlB0cjxQbHVnaW5WaWV3
PiBwcm90ZWN0KHRoaXMpOwogCi0gICAgICAgICAgICBtX3BhcmVudEZyYW1lLT5sb2FkZXIoKS0+
bG9hZChyZXF1ZXN0LT5mcmFtZUxvYWRSZXF1ZXN0KCkucmVzb3VyY2VSZXF1ZXN0KCksIHRhcmdl
dEZyYW1lTmFtZSwgZmFsc2UpOworICAgICAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJl
cXVlc3QobV9wYXJlbnRGcmFtZS5nZXQoKSwgcmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJl
c291cmNlUmVxdWVzdCgpKTsKKyAgICAgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUo
dGFyZ2V0RnJhbWVOYW1lKTsKKyAgICAgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91bGRDaGVj
a05ld1dpbmRvd1BvbGljeSh0cnVlKTsKKyAgICAgICAgICAgIG1fcGFyZW50RnJhbWUtPmxvYWRl
cigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiA8cmRhcjov
L3Byb2JsZW0vNDgwNzQ2OT4gVGhpcyBzaG91bGQgYmUgc2VudCB3aGVuIHRoZSBkb2N1bWVudCBo
YXMgZmluaXNoZWQgbG9hZGluZwogICAgICAgICAgICAgaWYgKHJlcXVlc3QtPnNlbmROb3RpZmlj
YXRpb24oKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXgg
MjRjYzdkYjQ3NjgzOTIyMGU2ZmNhNDk2YjdlYThkODhjOThlOGZlNy4uNjllYmNlNGViZDFjNmQx
MTI3NWZjOTdlYjk0OTk3NmQ3YmJiNDZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlBhZ2UuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50Qmxh
Y2tCZXJyeS5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeS5oIgogI2lmICFkZWZpbmVkKFBVQkxJQ19CVUlMRCkgfHwgIVBVQkxJ
Q19CVUlMRAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgpAQCAtNzAwLDcgKzcw
MSwxMCBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjpsb2FkKGNvbnN0IEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpTdHJpbmcmIHVybCwgY29uc3QgQmxhY2tCZQogCiAgICAgcmVxdWVzdC5zZXRTdWdnZXN0
ZWRTYXZlTmFtZShzdWdnZXN0ZWRTYXZlTmFtZSk7CiAKLSAgICBtX21haW5GcmFtZS0+bG9hZGVy
KCktPmxvYWQocmVxdWVzdCwgIiIgLyogbmFtZSAqLywgZmFsc2UpOworICAgIEZyYW1lTG9hZFJl
cXVlc3QgZnJhbWVSZXF1ZXN0KG1fbWFpbkZyYW1lLCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVl
c3Quc2V0RnJhbWVOYW1lKCIiKTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdX
aW5kb3dQb2xpY3kodHJ1ZSk7CisgICAgbV9tYWluRnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1l
UmVxdWVzdCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6bG9hZChjb25zdCBCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6U3RyaW5nJiB1cmwsIGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIG5l
dHdvcmtUb2tlbiwgYm9vbCBpc0luaXRpYWwpCkBAIC03NDUsNyArNzQ5LDkgQEAgdm9pZCBXZWJQ
YWdlUHJpdmF0ZTo6bG9hZFN0cmluZyhjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5n
JiBzdHJpbmcsIGNvbnMKICAgICAgICAgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250
ZW50VHlwZSksCiAgICAgICAgIGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlw
ZSksCiAgICAgICAgICFmYWlsaW5nVVJMLmVtcHR5KCkgPyBwYXJzZVVybChmYWlsaW5nVVJMKSA6
IEtVUkwoKSk7Ci0gICAgbV9tYWluRnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0
aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9t
YWluRnJhbWUsIHJlcXVlc3QpOworICAgIGZyYW1lUmVxdWVzdC5zZXRTdWJzdGl0dXRlRGF0YShz
dWJzdGl0dXRlRGF0YSk7CisgICAgbV9tYWluRnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVx
dWVzdCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6bG9hZFN0cmluZyhjb25zdCBCbGFja0JlcnJ5OjpQ
bGF0Zm9ybTo6U3RyaW5nJiBzdHJpbmcsIGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJp
bmcmIGJhc2VVUkwsIGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIG1pbWVUeXBl
LCBjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBmYWlsaW5nVVJMKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCAwNzkwYWI4YzkzMDEw
MjZhOGE4NzIzZjIyYTA2NGI3NTgzZmQzMDczLi5kYmE1YWU2N2UzYjMxZjM1YThkOTRjNzNmNGUy
NjA5NmMxYTFiYTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNyZWRlbnRpYWxUcmFuc2Zvcm1EYXRh
LmgiCiAjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVDbGllbnQuaCIKICNpbmNsdWRlICJFeHRlcm5h
bEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0QmxhY2tCZXJyeS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgpAQCAtNzUyLDcgKzc1Myw5IEBAIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExv
YWQoY29uc3QgUmVzb3VyY2VFCiAgICAgfQogCiAgICAgbV9sb2FkaW5nRXJyb3JQYWdlID0gdHJ1
ZTsKLSAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+bG9hZChvcmlnaW5hbFJlcXVlc3QsIGVycm9yRGF0
YSwgZmFsc2UpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KG1fZnJhbWUsIG9y
aWdpbmFsUmVxdWVzdCk7CisgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKGVycm9y
RGF0YSk7CisgICAgbV9mcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKIH0KIAog
dm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0o
RnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggMTkzNjQ3NmYz
YWUxYTIwMTQwMzNkYzNmZGI3ZTBjYWI1Y2E4YzdmMi4uMjI0Y2FhMGM2M2ZjZjkwN2I1Yjk2NDBm
NjNlMGVlZjM4YTljYWI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFt
ZUltcGwuY3BwCkBAIC05NzUsNyArOTc1LDcgQEAgdm9pZCBXZWJGcmFtZUltcGw6OmxvYWRSZXF1
ZXN0KGNvbnN0IFdlYlVSTFJlcXVlc3QmIHJlcXVlc3QpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChyZXNvdXJjZVJlcXVlc3QsIGZhbHNlKTsK
KyAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lKCksIHJl
c291cmNlUmVxdWVzdCkpOwogfQogCiB2b2lkIFdlYkZyYW1lSW1wbDo6bG9hZEhpc3RvcnlJdGVt
KGNvbnN0IFdlYkhpc3RvcnlJdGVtJiBpdGVtKQpAQCAtOTk0LDggKzk5NCw2IEBAIHZvaWQgV2Vi
RnJhbWVJbXBsOjpsb2FkSGlzdG9yeUl0ZW0oY29uc3QgV2ViSGlzdG9yeUl0ZW0mIGl0ZW0pCiB2
b2lkIFdlYkZyYW1lSW1wbDo6bG9hZERhdGEoY29uc3QgV2ViRGF0YSYgZGF0YSwgY29uc3QgV2Vi
U3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgV2ViU3RyaW5nJiB0ZXh0RW5jb2RpbmcsIGNvbnN0IFdl
YlVSTCYgYmFzZVVSTCwgY29uc3QgV2ViVVJMJiB1bnJlYWNoYWJsZVVSTCwgYm9vbCByZXBsYWNl
KQogewogICAgIEFTU0VSVChmcmFtZSgpKTsKLSAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdERhdGEo
ZGF0YSwgbWltZVR5cGUsIHRleHRFbmNvZGluZywgdW5yZWFjaGFibGVVUkwpOwotICAgIEFTU0VS
VChzdWJzdERhdGEuaXNWYWxpZCgpKTsKIAogICAgIC8vIElmIHdlIGFyZSBsb2FkaW5nIHN1YnN0
aXR1dGUgZGF0YSB0byByZXBsYWNlIGFuIGV4aXN0aW5nIGxvYWQsIHRoZW4KICAgICAvLyBpbmhl
cml0IGFsbCBvZiB0aGUgcHJvcGVydGllcyBvZiB0aGF0IG9yaWdpbmFsIHJlcXVlc3QuICBUaGlz
IHdheSwKQEAgLTEwMDgsNyArMTAwNiwxMCBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6bG9hZERhdGEo
Y29uc3QgV2ViRGF0YSYgZGF0YSwgY29uc3QgV2ViU3RyaW5nJiBtaW1lVHlwZSwgY29ucwogICAg
ICAgICByZXF1ZXN0ID0gZnJhbWUoKS0+bG9hZGVyKCktPm9yaWdpbmFsUmVxdWVzdCgpOwogICAg
IHJlcXVlc3Quc2V0VVJMKGJhc2VVUkwpOwogCi0gICAgZnJhbWUoKS0+bG9hZGVyKCktPmxvYWQo
cmVxdWVzdCwgc3Vic3REYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJl
cXVlc3QoZnJhbWUoKSwgcmVxdWVzdCk7CisgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVE
YXRhKFN1YnN0aXR1dGVEYXRhKGRhdGEsIG1pbWVUeXBlLCB0ZXh0RW5jb2RpbmcsIHVucmVhY2hh
YmxlVVJMKSk7CisgICAgQVNTRVJUKGZyYW1lUmVxdWVzdC5zdWJzdGl0dXRlRGF0YSgpLmlzVmFs
aWQoKSk7CisgICAgZnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKICAgICBp
ZiAocmVwbGFjZSkgewogICAgICAgICAvLyBEbyB0aGlzIHRvIGZvcmNlIFdlYktpdCB0byB0cmVh
dCB0aGUgbG9hZCBhcyByZXBsYWNpbmcgdGhlIGN1cnJlbnRseQogICAgICAgICAvLyBsb2FkZWQg
cGFnZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdv
cmtlckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2Vy
SW1wbC5jcHAKaW5kZXggNWNmOTk5ODUxM2FlYTM1OTZlMGQ1ZjE0ODg2ZmE5ZTkxN2YxZmZiYS4u
NzBlYTk1ZTVmMmJkMzE5MDY5M2Y3MTU4MDI1Zjc3ODI5NjJjYjI5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5jcHAKQEAgLTM0LDYg
KzM0LDcgQEAKICNpbmNsdWRlICJDcm9zc1RocmVhZFRhc2suaCIKICNpbmNsdWRlICJEYXRhYmFz
ZVRhc2suaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVl
c3QuaCIKICNpbmNsdWRlICJHcm91cFNldHRpbmdzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgpAQCAtMTMyLDggKzEzMyw5IEBAIHZvaWQgV2ViU2hhcmVk
V29ya2VySW1wbDo6aW5pdGlhbGl6ZUxvYWRlcihjb25zdCBXZWJVUkwmIHVybCkKICAgICBDU3Ry
aW5nIGNvbnRlbnQoIiIpOwogICAgIGludCBsZW4gPSBzdGF0aWNfY2FzdDxpbnQ+KGNvbnRlbnQu
bGVuZ3RoKCkpOwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZihTaGFyZWRCdWZmZXI6OmNy
ZWF0ZShjb250ZW50LmRhdGEoKSwgbGVuKSk7Ci0gICAgU3Vic3RpdHV0ZURhdGEgc3Vic3REYXRh
KGJ1ZiwgU3RyaW5nKCJ0ZXh0L2h0bWwiKSwgU3RyaW5nKCJVVEYtOCIpLCBLVVJMKCkpOwotICAg
IHdlYkZyYW1lLT5mcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChSZXNvdXJjZVJlcXVlc3QodXJsKSwg
c3Vic3REYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KHdlYkZyYW1l
LT5mcmFtZSgpLCBSZXNvdXJjZVJlcXVlc3QodXJsKSk7CisgICAgcmVxdWVzdC5zZXRTdWJzdGl0
dXRlRGF0YShTdWJzdGl0dXRlRGF0YShidWYsIFN0cmluZygidGV4dC9odG1sIiksIFN0cmluZygi
VVRGLTgiKSwgS1VSTCgpKSk7CisgICAgd2ViRnJhbWUtPmZyYW1lKCktPmxvYWRlcigpLT5sb2Fk
KHJlcXVlc3QpOwogCiAgICAgLy8gVGhpcyBkb2N1bWVudCB3aWxsIGJlIHVzZWQgYXMgJ2xvYWRp
bmcgY29udGV4dCcgZm9yIHRoZSB3b3JrZXIuCiAgICAgbV9sb2FkaW5nRG9jdW1lbnQgPSB3ZWJG
cmFtZS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAK
aW5kZXggNzM4YTkzOTE4ZjMwMTkxYjUyNmM2ZmYxOGIyOTVhZmM5YjdiOWE3ZC4uMzAxOGM2MTFj
MjFmOGUwZDJkMDExY2NjNWQ4ZDEwYjAyMjI1NzlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19m
cmFtZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRy
b2xsZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXJDbGllbnRFZmwuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1M
Q29sbGVjdGlvbi5oIgpAQCAtMzM4LDcgKzMzOSw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfdXJp
X3NldChFdmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0IGNoYXIqIHVyaSkKICAgICBXZWJDb3Jl
OjpLVVJMIGt1cmwoV2ViQ29yZTo6S1VSTCgpLCBXVEY6OlN0cmluZzo6ZnJvbVVURjgodXJpKSk7
CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcShrdXJsKTsKICAgICBXZWJDb3JlOjpG
cmFtZUxvYWRlciogbG9hZGVyID0gc21hcnREYXRhLT5mcmFtZS0+bG9hZGVyKCk7Ci0gICAgbG9h
ZGVyLT5sb2FkKHJlcSwgZmFsc2UpOworICAgIGxvYWRlci0+bG9hZChXZWJDb3JlOjpGcmFtZUxv
YWRSZXF1ZXN0KHNtYXJ0RGF0YS0+ZnJhbWUsIHJlcSkpOwogICAgIHJldHVybiB0cnVlOwogfQog
CkBAIC00MTYsNyArNDE3LDkgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX2ZyYW1lX2NvbnRlbnRz
X3NldF9pbnRlcm5hbChFd2tfRnJhbWVfU21hcnRfRGF0YSogc21hcnREYXQKICAgICAgICAgYmFz
ZUtVUkwsIHVucmVhY2hhYmxlS1VSTCk7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QoYmFzZUtVUkwpOwogCi0gICAgc21hcnREYXRhLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQo
cmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBXZWJDb3JlOjpGcmFtZUxvYWRS
ZXF1ZXN0IGZyYW1lUmVxdWVzdChzbWFydERhdGEtPmZyYW1lLCByZXF1ZXN0KTsKKyAgICBmcmFt
ZVJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoc3Vic3RpdHV0ZURhdGEpOworICAgIHNtYXJ0RGF0
YS0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4
IGMxMDMzZTYxZGJjMGE0MDI5MmQxYTYxZWRkYTFkOTY1MzI3ODc5YjYuLmE4MGM2YmMzOTI4OTc2
YjUxZDAzMmY0MjIwZGQ4ZTlhNzQxZjgyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmZyYW1lLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50
RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50TG9hZGVyR3RrLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKICNpbmNs
dWRlICJGcmFtZVNlbGVjdGlvbi5oIgpAQCAtNjkzLDcgKzY5NCw3IEBAIHZvaWQgd2Via2l0X3dl
Yl9mcmFtZV9sb2FkX3VyaShXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiB1cmkp
CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvcmVGcmFtZS0+
bG9hZGVyKCktPmxvYWQoUmVzb3VyY2VSZXF1ZXN0KEtVUkwoS1VSTCgpLCBTdHJpbmc6OmZyb21V
VEY4KHVyaSkpKSwgZmFsc2UpOworICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVM
b2FkUmVxdWVzdChjb3JlRnJhbWUsIFJlc291cmNlUmVxdWVzdChLVVJMKEtVUkwoKSwgU3RyaW5n
Ojpmcm9tVVRGOCh1cmkpKSkpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9s
b2FkX2RhdGEoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogY29udGVudCwgY29u
c3QgZ2NoYXIqIG1pbWVUeXBlLCBjb25zdCBnY2hhciogZW5jb2RpbmcsIGNvbnN0IGdjaGFyKiBi
YXNlVVJMLCBjb25zdCBnY2hhciogdW5yZWFjaGFibGVVUkwpCkBAIC03MTIsNyArNzEzLDkgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9sb2FkX2RhdGEoV2ViS2l0V2ViRnJhbWUqIGZy
YW1lLCBjb25zdCBnY2hhciogY29udGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBLVVJMKEtVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh1bnJlYWNoYWJsZVVSTCkpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtVUkwoS1VSTCgpLCBTdHJpbmc6OmZyb21VVEY4
KHVucmVhY2hhYmxlVVJMKSkpOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1
ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVS
ZXF1ZXN0KGNvcmVGcmFtZSwgcmVxdWVzdCk7CisgICAgZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1
dGVEYXRhKHN1YnN0aXR1dGVEYXRhKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKGZy
YW1lUmVxdWVzdCk7CiB9CiAKIC8qKgpAQCAtNzgxLDcgKzc4NCw3IEBAIHZvaWQgd2Via2l0X3dl
Yl9mcmFtZV9sb2FkX3JlcXVlc3QoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBXZWJLaXROZXR3b3Jr
UmVxdWVzdCoKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29y
ZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChjb3JlKHJlcXVlc3QpLCBmYWxzZSk7CisgICAgY29yZUZy
YW1lLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KGNvcmVGcmFtZS0+ZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSwgY29yZShyZXF1ZXN0KSkpOwogfQogCiAvKioKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCAzZmYx
MDkwODY4MWQxYWU3MmE2MDhmNGM1YzhiOWE0ZDViMjBjMTY4Li4zYjJiMWM3Nzg4MzEzMDRjNzE3
ZTJmODcxMmI5NGNkYmYyNjhjNzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxGb3Vu
ZGF0aW9uL05TVVJMUmVxdWVzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRS
ZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE5hbWVzLmg+CkBA
IC00MDEsNyArNDAyLDEwIEBAIHN0YXRpYyB2b2lkIGNhbmNlbE91dHN0YW5kaW5nQ2hlY2soY29u
c3Qgdm9pZCAqaXRlbSwgdm9pZCAqY29udGV4dCkKICAgICAgICAgICAgIExPR19FUlJPUigiY291
bGQgbm90IGxvYWQgVVJMICVAIiwgW3JlcXVlc3QgVVJMXSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KLSAgICAgICAgY29yZShmcmFtZSktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3Qs
IHRhcmdldCwgZmFsc2UpOworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChj
b3JlKGZyYW1lKSwgcmVxdWVzdCk7CisgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUo
dGFyZ2V0KTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldFNob3VsZENoZWNrTmV3V2luZG93UG9s
aWN5KHRydWUpOworICAgICAgICBjb3JlKGZyYW1lKS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1
ZXN0KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4
IGY5MWZmZDhlNTFiZDRkYWNiN2FmMGExY2M0ZjI2NTEzYzNlZGE4MzIuLjNiNmE0YjE4NGViMzI2
Y2Y4MTViOGRhOWM0MmFkNmY4NTEzNzkwMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQpAQCAtNjcsNiArNjcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9FdmVudEhhbmRsZXIu
aD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFt
ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyU3RhdGVNYWNo
aW5lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVHJlZS5oPgpAQCAtMTM2OSw3ICsxMzcwLDcg
QEAgc3RhdGljIGJvb2wgbmVlZHNNaWNyb3NvZnRNZXNzZW5nZXJET01Eb2N1bWVudFdvcmthcm91
bmQoKQogICAgIGlmICghcmVzb3VyY2VSZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSAmJiAhcmVzb3Vy
Y2VSZXF1ZXN0LnVybCgpLmlzRW1wdHkoKSkKICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldFVS
TChbTlNVUkwgVVJMV2l0aFN0cmluZzpbQCJmaWxlOiIgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6
W1tyZXF1ZXN0IFVSTF0gYWJzb2x1dGVTdHJpbmddXV0pOwogCi0gICAgY29yZUZyYW1lLT5sb2Fk
ZXIoKS0+bG9hZChyZXNvdXJjZVJlcXVlc3QsIGZhbHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRl
cigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoY29yZUZyYW1lLCByZXNvdXJjZVJlcXVlc3QpKTsK
IH0KIAogc3RhdGljIE5TVVJMICpjcmVhdGVVbmlxdWVXZWJEYXRhVVJMKCkKQEAgLTE0MDAsNyAr
MTQwMSw5IEBAIHN0YXRpYyBOU1VSTCAqY3JlYXRlVW5pcXVlV2ViRGF0YVVSTCgpCiAKICAgICBT
dWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OndyYXBO
U0RhdGEoZGF0YSksIE1JTUVUeXBlLCBlbmNvZGluZ05hbWUsIFt1bnJlYWNoYWJsZVVSTCBhYnNv
bHV0ZVVSTF0sIHJlc3BvbnNlVVJMKTsKIAotICAgIF9wcml2YXRlLT5jb3JlRnJhbWUtPmxvYWRl
cigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2Fk
UmVxdWVzdCBmcmFtZVJlcXVlc3QoX3ByaXZhdGUtPmNvcmVGcmFtZSwgcmVxdWVzdCk7CisgICAg
ZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1YnN0aXR1dGVEYXRhKTsKKyAgICBfcHJp
dmF0ZS0+Y29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4IDBhY2NkMzM2MmRkNjg3MzRjZmRmMjEzODVl
YzM4MDY0ZjJjMTMxYmYuLjQ2MmQxYzU1MDQ3ZjkzMDY3MmM4NTg1NjhiYmM4NmMzNDVmZDgyZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJG
cmFtZVRyZWUuaCIKQEAgLTQ4MSw3ICs0ODIsMTAgQEAgUVdlYkZyYW1lOjpRV2ViRnJhbWUoUVdl
YlBhZ2UgKnBhcmVudCwgUVdlYkZyYW1lRGF0YSAqZnJhbWVEYXRhKQogCiAgICAgaWYgKCFmcmFt
ZURhdGEtPnVybC5pc0VtcHR5KCkpIHsKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QoZnJhbWVEYXRhLT51cmwsIGZyYW1lRGF0YS0+cmVmZXJyZXIpOwotICAgICAgICBk
LT5mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgZnJhbWVEYXRhLT5uYW1lLCBmYWxzZSk7
CisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGQtPmZyYW1l
LCByZXF1ZXN0KTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZShmcmFtZURhdGEt
Pm5hbWUpOworICAgICAgICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xp
Y3kodHJ1ZSk7CisgICAgICAgIGQtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3Qp
OwogICAgIH0KICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQogICAgIGNvbm5lY3QoJmQt
Pm1fb3JpZW50YXRpb24sIFNJR05BTChyZWFkaW5nQ2hhbmdlZCgpKSwgdGhpcywgU0xPVChfcV9v
cmllbnRhdGlvbkNoYW5nZWQoKSkpOwpAQCAtODQ2LDcgKzg1MCw3IEBAIHZvaWQgUVdlYkZyYW1l
Ojpsb2FkKGNvbnN0IFFOZXR3b3JrUmVxdWVzdCAmcmVxLAogICAgIGlmICghYm9keS5pc0VtcHR5
KCkpCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoV2ViQ29yZTo6Rm9ybURhdGE6OmNyZWF0
ZShib2R5LmNvbnN0RGF0YSgpLCBib2R5LnNpemUoKSkpOwogCi0gICAgZC0+ZnJhbWUtPmxvYWRl
cigpLT5sb2FkKHJlcXVlc3QsIGZhbHNlKTsKKyAgICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQo
RnJhbWVMb2FkUmVxdWVzdChkLT5mcmFtZSwgcmVxdWVzdCkpOwogCiAgICAgaWYgKGQtPnBhcmVu
dEZyYW1lKCkpCiAgICAgICAgIGQtPnBhZ2UtPmQtPmluc2lkZU9wZW5DYWxsID0gZmFsc2U7CkBA
IC04ODMsNyArODg3LDkgQEAgdm9pZCBRV2ViRnJhbWU6OnNldEh0bWwoY29uc3QgUVN0cmluZyAm
aHRtbCwgY29uc3QgUVVybCAmYmFzZVVybCkKICAgICBjb25zdCBRQnl0ZUFycmF5IHV0ZjggPSBo
dG1sLnRvVXRmOCgpOwogICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZGF0
YSA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHV0ZjguY29uc3REYXRhKCksIHV0Zjgu
bGVuZ3RoKCkpOwogICAgIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKGRh
dGEsIFdURjo6U3RyaW5nKCJ0ZXh0L2h0bWwiKSwgV1RGOjpTdHJpbmcoInV0Zi04IiksIEtVUkwo
KSk7Ci0gICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRh
LCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZC0+ZnJhbWUsIHJl
cXVlc3QpOworICAgIGZyYW1lUmVxdWVzdC5zZXRTdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0
YSk7CisgICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIC8q
IQpAQCAtOTEzLDcgKzkxOSw5IEBAIHZvaWQgUVdlYkZyYW1lOjpzZXRDb250ZW50KGNvbnN0IFFC
eXRlQXJyYXkgJmRhdGEsIGNvbnN0IFFTdHJpbmcgJm1pbWVUeXBlLCBjb25zCiAgICAgICAgIGVu
Y29kaW5nID0gZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKG1pbWVUeXBlKTsKICAgICB9CiAg
ICAgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoYnVmZmVyLCBXVEY6OlN0
cmluZyhhY3R1YWxNaW1lVHlwZSksIGVuY29kaW5nLCBLVVJMKCkpOwotICAgIGQtPmZyYW1lLT5s
b2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIEZyYW1l
TG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGQtPmZyYW1lLCByZXF1ZXN0KTsKKyAgICBmcmFtZVJl
cXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoc3Vic3RpdHV0ZURhdGEpOworICAgIGQtPmZyYW1lLT5s
b2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiAvKiEKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5j
cHAKaW5kZXggZGE3OTMxMTFmYWJkYjNhMDk0OTEyMmIwZTZkMDRhNmVlZmI0NTEyNi4uMTg0YjJi
MTJkNmI1NjViNmQ4NDA1Mjk1YzMxMThjM2JjNTk1M2Q4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5j
cHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRm9j
dXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZy
YW1lVmlldy5oIgogI2luY2x1ZGUgIkdDQ29udHJvbGxlci5oIgpAQCAtOTc1LDcgKzk3Niw5IEBA
IHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEFsdGVybmF0ZUh0bWwoUVdlYkZyYW1l
KiBmcmFtZSwgY29uc3QgUVN0cmluZyYKICAgICBjb25zdCBRQnl0ZUFycmF5IHV0ZjggPSBodG1s
LnRvVXRmOCgpOwogICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZGF0YSA9
IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHV0ZjguY29uc3REYXRhKCksIHV0ZjgubGVu
Z3RoKCkpOwogICAgIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKGRhdGEs
IFdURjo6U3RyaW5nKCJ0ZXh0L2h0bWwiKSwgV1RGOjpTdHJpbmcoInV0Zi04IiksIGZhaWxpbmdV
cmwpOwotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURh
dGEsIGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChjb3JlRnJhbWUs
IHJlcXVlc3QpOworICAgIGZyYW1lUmVxdWVzdC5zZXRTdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRl
RGF0YSk7CisgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQog
CiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpjb25maXJtQ29tcG9zaXRpb24oUVdlYlBh
Z2UqIHBhZ2UsIGNvbnN0IGNoYXIqIHRleHQpCkBAIC0xMTk5LDQgKzEyMDIsMyBAQCB2b2lkIFFX
RUJLSVRfRVhQT1JUIHF0X2R1bXBfc2V0X2FjY2VwdHNfZWRpdGluZyhib29sIGIpCiB7CiAgICAg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBTZXRBY2NlcHRzRWRpdGluZyhiKTsKIH0KLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5jcHAKaW5kZXggMDczMWQ5MzE1OGExNmY5NzMwZTg0MWUyMDgxN2E4ODIyYjRlNjE0
OC4uNGEyZTZhNTFiYzNhNTM3MjgyYThmZTE2NGIxZDhhODQ1OTg4ZWU2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCisjaW5jbHVk
ZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRR
dC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAt
MTE2NCw3ICsxMTY1LDkgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0OjpjYWxsRXJyb3JQYWdl
RXh0ZW5zaW9uKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGUKICAgICBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChiYXNlVXJsKTsKICAgICBXVEY6OlJlZlB0cjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG91
dHB1dC5jb250ZW50LmNvbnN0RGF0YSgpLCBvdXRwdXQuY29udGVudC5sZW5ndGgoKSk7CiAgICAg
V2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoYnVmZmVyLCBvdXRwdXQuY29u
dGVudFR5cGUsIG91dHB1dC5lbmNvZGluZywgZmFpbGluZ1VybCk7Ci0gICAgbV9mcmFtZS0+bG9h
ZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBXZWJDb3Jl
OjpGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChtX2ZyYW1lLCByZXF1ZXN0KTsKKyAgICBm
cmFtZVJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoc3Vic3RpdHV0ZURhdGEpOworICAgIG1fZnJh
bWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCBlZTljZGQ4YzQ0MThkOGEyN2U2ODA0ZjAyMDg5NWJi
NTViMjM4MmM1Li44ZGMyZTkxYmVmNmU2YjU4NWQ4ZTg3M2UxOTYzMTFmNWI4ZGQ0YmM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93aW4vV2ViRnJhbWUuY3BwCkBAIC01NTYsNyArNTU2LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBXZWJGcmFtZTo6bG9hZFJlcXVlc3QoCiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAg
ICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVl
c3RJbXBsLT5yZXNvdXJjZVJlcXVlc3QoKSwgZmFsc2UpOworICAgIGNvcmVGcmFtZS0+bG9hZGVy
KCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUsIHJlcXVlc3RJbXBsLT5yZXNvdXJj
ZVJlcXVlc3QoKSkpOwogICAgIHJldHVybiBTX09LOwogfQogCkBAIC01NzksOCArNTc5LDExIEBA
IHZvaWQgV2ViRnJhbWU6OmxvYWREYXRhKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVy
PiBkYXRhLCBCU1RSIG1pbWVUeXBlLCBCCiAgICAgU3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURh
dGEoZGF0YSwgbWltZVR5cGVTdHJpbmcsIGVuY29kaW5nU3RyaW5nLCBmYWlsaW5nS1VSTCk7CiAK
ICAgICAvLyBUaGlzIG1ldGhvZCBpcyBvbmx5IGNhbGxlZCBmcm9tIElXZWJGcmFtZSBtZXRob2Rz
LCBzbyBkb24ndCBBU1NFUlQgdGhhdCB0aGUgRnJhbWUgcG9pbnRlciBpc24ndCBudWxsLgotICAg
IGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZSh0aGlzKSkKLSAgICAgICAgY29yZUZyYW1lLT5s
b2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIGlmIChG
cmFtZSogY29yZUZyYW1lID0gY29yZSh0aGlzKSkgeworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0
IGZyYW1lUmVxdWVzdChjb3JlRnJhbWUsIHJlcXVlc3RJbXBsLT5yZXNvdXJjZVJlcXVlc3QoKSk7
CisgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0YSk7
CisgICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKKyAgICB9
CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKaW5kZXggZmNjMDRkN2RiNmI2NjFhODdmNTk2
ODYzNDVkOTg4Nzk3OGY0M2ZkNi4uOTA1OWE0MDIyMWE3OGU1Y2VlMjdmMDZhNWQwMGVhNjFkM2Rh
OWY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiRWRpdG9yQ2xpZW50V2luQ0UuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaCIKICNp
bmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTIxOCw3ICsyMTksNyBAQCB2b2lkIFdlYlZpZXc6Omxv
YWQoY29uc3QgU3RyaW5nICZ1cmwpCiAKIHZvaWQgV2ViVmlldzo6bG9hZChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgJnJlcXVlc3QpCiB7Ci0gICAgZnJhbWUoKS0+bG9hZGVyKCktPmxv
YWQocmVxdWVzdCwgZmFsc2UpOworICAgIGZyYW1lKCktPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9h
ZFJlcXVlc3QoZnJhbWUoKSwgcmVxdWVzdCkpOwogfQogCiB2b2lkIFdlYlZpZXc6OnJlbG9hZCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJL
aXQvd3gvV2ViRnJhbWUuY3BwCmluZGV4IGIzNzQxMTNjMDc3MmExYzdmMjZmMjQ0MDgzMDAyYmIz
YWFlOGM4YTkuLmVjZDdkZjM5YjZkNTc1ZGQxMTRkYmM2NTlhYWM2ZGY4ZDE0YjI5MWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d3gvV2ViRnJhbWUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0Lmgi
CiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJG
cmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlckNsaWVudFd4LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC0zMjIsNyAr
MzIzLDEwIEBAIHZvaWQgV2ViRnJhbWU6OlNldFBhZ2VTb3VyY2UoY29uc3Qgd3hTdHJpbmcmIHNv
dXJjZSwgY29uc3Qgd3hTdHJpbmcmIGJhc2VVcmwsIGNvCiAgICAgICAgIFdlYkNvcmU6OlN1YnN0
aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKHNoYXJlZEJ1ZmZlciwgbWltZXR5cGUsIFdURjo6U3Ry
aW5nKCJVVEYtOCIpLCBXZWJDb3JlOjpibGFua1VSTCgpLCB1cmwpOwogCiAgICAgICAgIG1faW1w
bC0+ZnJhbWUtPmxvYWRlcigpLT5zdG9wKCk7Ci0gICAgICAgIG1faW1wbC0+ZnJhbWUtPmxvYWRl
cigpLT5sb2FkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCh1cmwpLCBzdWJzdGl0dXRlRGF0YSwg
ZmFsc2UpOworCisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0
KG1faW1wbC0+ZnJhbWUsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCh1cmwpKTsKKyAgICAgICAg
ZnJhbWVSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHN1YnN0aXR1dGVEYXRhKTsKKyAgICAgICAg
bV9pbXBsLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApp
bmRleCA0NGY1NzVhZDU0ZmZlZTQ4ODUwZjNlMzg5NzNmYWZjNjk4MDIzMGUxLi42NDYyMzg4OGVi
MTQ0YjIwYWYzN2Y4MTI5MzU0MGQ5N2ZkMTQ4NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC05NTAsNyArOTUwLDEwIEBAIHZv
aWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCogcmVx
dWVzdCkKICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBmcmFtZS0+bG9hZGVyKCktPmZpbmRGcmFt
ZUZvck5hdmlnYXRpb24ocmVxdWVzdC0+dGFyZ2V0KCkpOwogICAgIGlmICghdGFyZ2V0RnJhbWUp
IHsKICAgICAgICAgLy8gV2UgZGlkIG5vdCBmaW5kIGEgdGFyZ2V0IGZyYW1lLiBBc2sgb3VyIGZy
YW1lIHRvIGxvYWQgdGhlIHBhZ2UuIFRoaXMgbWF5IG9yIG1heSBub3QgY3JlYXRlIGEgcG9wdXAg
d2luZG93LgotICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdC0+cmVxdWVzdCgp
LCByZXF1ZXN0LT50YXJnZXQoKSwgZmFsc2UpOworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZy
YW1lUmVxdWVzdChmcmFtZSwgcmVxdWVzdC0+cmVxdWVzdCgpKTsKKyAgICAgICAgZnJhbWVSZXF1
ZXN0LnNldEZyYW1lTmFtZShyZXF1ZXN0LT50YXJnZXQoKSk7CisgICAgICAgIGZyYW1lUmVxdWVz
dC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSh0cnVlKTsKKyAgICAgICAgZnJhbWUtPmxv
YWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAKICAgICAgICAgLy8gRklYTUU6IFdlIGRvbid0
IGtub3cgd2hldGhlciB0aGUgd2luZG93IHdhcyBzdWNjZXNzZnVsbHkgY3JlYXRlZCBoZXJlIHNv
IHdlIGp1c3QgYXNzdW1lIHRoYXQgaXQgd29ya2VkLgogICAgICAgICAvLyBJdCdzIGJldHRlciB0
aGFuIG5vdCB0ZWxsaW5nIHRoZSBwbHVnLWluIGFueXRoaW5nLgpAQCAtOTU5LDcgKzk2Miw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCog
cmVxdWVzdCkKICAgICB9CiAKICAgICAvLyBOb3cgYXNrIHRoZSBmcmFtZSB0byBsb2FkIHRoZSBy
ZXF1ZXN0LgotICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LT5yZXF1ZXN0
KCksIGZhbHNlKTsKKyAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVx
dWVzdCh0YXJnZXRGcmFtZSwgcmVxdWVzdC0+cmVxdWVzdCgpKSk7CiAKICAgICBXZWJGcmFtZSog
dGFyZ2V0V2ViRnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KHRhcmdl
dEZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOwogICAgIGlmIChXZWJGcmFt
ZTo6TG9hZExpc3RlbmVyKiBsb2FkTGlzdGVuZXIgPSB0YXJnZXRXZWJGcmFtZS0+bG9hZExpc3Rl
bmVyKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCAxZDVkOThjOWY3NWRhNWNiMmMyYTM0OTVmNTdkZWQ3M2EwNTViYzlhLi4xZWUyYmUz
N2NjNGIxMzc4Y2Q2YzgxYjAwYjhiMzhiODc2ZjA3YWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC04MjIsNyArODIyLDcgQEAgdm9pZCBX
ZWJQYWdlOjpsb2FkVVJMUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFNhbmRib3hFeHRlbnMKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBl
cih0aGlzKTsKIAogICAgIG1fc2FuZGJveEV4dGVuc2lvblRyYWNrZXIuYmVnaW5Mb2FkKG1fbWFp
bkZyYW1lLmdldCgpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBtX21haW5GcmFtZS0+
Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIGZhbHNlKTsKKyAgICBtX21haW5G
cmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QobV9tYWlu
RnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0KSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6bG9hZERh
dGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHNoYXJlZEJ1ZmZlciwgY29uc3QgU3RyaW5nJiBN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZ05hbWUsIGNvbnN0IEtVUkwmIGJhc2VVUkws
IGNvbnN0IEtVUkwmIHVucmVhY2hhYmxlVVJMKQpAQCAtODMxLDcgKzgzMSw5IEBAIHZvaWQgV2Vi
UGFnZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHNoYXJlZEJ1ZmZlciwgY29u
c3QgU3RyaW5nJiBNSU1FCiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChiYXNlVVJMKTsK
ICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShzaGFyZWRCdWZmZXIsIE1JTUVUeXBl
LCBlbmNvZGluZ05hbWUsIHVucmVhY2hhYmxlVVJMKTsKLSAgICBtX21haW5GcmFtZS0+Y29yZUZy
YW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7Cisg
ICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgp
LCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoc3Vic3RpdHV0
ZURhdGEpOworICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoZnJh
bWVSZXF1ZXN0KTsKIH0KIAogdm9pZCBXZWJQYWdlOjpsb2FkSFRNTFN0cmluZyhjb25zdCBTdHJp
bmcmIGh0bWxTdHJpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTFN0cmluZykKQEAgLTg3MSw4ICs4
NzMsNyBAQCB2b2lkIFdlYlBhZ2U6OmxpbmtDbGlja2VkKGNvbnN0IFN0cmluZyYgdXJsLCBjb25z
dCBXZWJNb3VzZUV2ZW50JiBldmVudCkKICAgICBpZiAoZXZlbnQudHlwZSgpICE9IFdlYkV2ZW50
OjpOb1R5cGUpCiAgICAgICAgIGNvcmVFdmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuY2xpY2tFdmVudCwgZnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIHBsYXRm
b3JtKGV2ZW50KSwgMCwgMCk7CiAKLSAgICBmcmFtZS0+bG9hZGVyKCktPmxvYWRGcmFtZVJlcXVl
c3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwg
UmVzb3VyY2VSZXF1ZXN0KHVybCkpLCAKLSAgICAgICAgZmFsc2UsIGZhbHNlLCBjb3JlRXZlbnQu
Z2V0KCksIDAsIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICBmcmFtZS0+bG9hZGVyKCktPmxvYWRG
cmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0KHVybCkp
LCBmYWxzZSwgZmFsc2UsIGNvcmVFdmVudC5nZXQoKSwgMCwgTWF5YmVTZW5kUmVmZXJyZXIpOwog
fQogCiB2b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJRCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175119</attachid>
            <date>2012-11-19 19:52:13 -0800</date>
            <delta_ts>2012-11-20 20:27:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102151-20121119195003.patch</filename>
            <type>text/plain</type>
            <size>58358</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY1NjgwMDcyZjhhZTE4
NjYwZWJkMTlhNjg1OTlkNjNjMzNlM2M2Zi4uYWVjNzFjOWRlM2I2MjQ5MDU4Y2M4MGI5OTcxOGM1
MzI1MTU1MzI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTEzICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0
ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9h
ZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVGhl
cmUncyBhIEZJWE1FIHRoYXQgd2UgaGF2ZSB0b28gbWFueSBGcmFtZUxvYWRlcjo6bG9hZCooKSBm
dW5jdGlvbnMuIFRoaXMgcGF0Y2ggY29uc29saWRhdGVzIDMgaW50byAxLgorICAgICAgICBUaGVy
ZSBhcmUgc3RpbGwgYSBmZXcgbW9yZSBsb2FkIGZ1bmN0aW9ucyB0aGF0IHdpbGwgYmUgY29uc29s
aWRhdGVkIGxhdGVyLiBVc2luZyBGcmFtZUxvYWRSZXF1ZXN0IGFzCisgICAgICAgIHRoZSBpbnRl
cmZhY2UgaW50byBGcmFtZUxvYWRlciB3aWxsIGFsc28gcHJvdmlkZSBhIHBsYWNlIHRvIHBhc3Mg
aW4gdGhlIGluaXRpYXRvci4gRmluYWxseSwgdGhpcyBtYXRjaGVzCisgICAgICAgIHRoZSByZWZh
Y3RvcmluZyBkb25lIHdpdGggQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGFuZCBDYWNoZWRSZXNvdXJj
ZUxvYWRlci4KKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFs
aXR5LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OkZyYW1l
TG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2V0TG9j
a0hpc3RvcnkpOiBUaGVzZSBhcmUgZm9ybWVyIGFyZ3VtZW50cyB0byBsb2FkKCkuCisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0Ojpsb2NrSGlzdG9yeSk6IERpdHRvLgorICAgICAg
ICAoRnJhbWVMb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0
OjpzZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnN1YnN0aXR1dGVEYXRhKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpzZXRTdWJzdGl0dXRlRGF0
YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6aGFzU3Vic3Rp
dHV0ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOiBObyBjaGFuZ2UgaW4gYmVoYXZpb3Is
IGp1c3QgbWVyZ2VkIGl0IGFsbCBpbnRvIG9uZSBmdW5jdGlvbi4KKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBwYWdlL0Ry
YWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpwZXJm
b3JtRHJhZyk6CisKIDIwMTItMTEtMTkgIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBOb3QgcmV2aWV3ZWQuIEJ1aWxkIGZpeCBmb3IgQ2hyb21pdW0uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAwMDUzOGJlNDE1Nzg1ZjhjOWFkNWU3MTQ5NTI0OTY3
YzUwN2U0YWIwLi5lNTUzMmI2YWU4OWMyNjNkODUxMTZjY2Y1NDFjOWZjNGM2MjE5NDkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMS0xMyAg
SmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29s
aWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFt
ZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAg
ICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdl
UHJpdmF0ZTo6bG9hZCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2
YXRlOjpsb2FkU3RyaW5nKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRC
bGFja0JlcnJ5OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQpOgorCiAyMDEyLTExLTE5
ICBMaWFtIFF1aW5uICA8bHF1aW5uQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFJl
bW92ZSBSVFNQIGhhbmRsaW5nIGZyb20gRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDIzYzIyNjAyNmY4MTIxZjYzYjIwZGMyNDU1M2VjZjUz
OTU3YTVmNjUuLmJkYWZhZTQ5NGJmMmNhZTUyOTJlZDE3OTg4ZjUxNGUwMTFkNzIwNWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTEtMTMgIEphbWVz
IFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRl
IEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2Fk
UmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICAqIHNy
Yy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmxvYWRS
ZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpsb2FkRGF0YSk6CisgICAg
ICAgICogc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJT
aGFyZWRXb3JrZXJJbXBsOjppbml0aWFsaXplTG9hZGVyKToKKwogMjAxMi0xMS0xOSAgTWlndWVs
IEdhcmNpYSAgPG1pZ3VlbGdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gUmVt
b3ZlIHRoZSBkZXBlbmRlbmN5IG9mIElOUFVUX1RZUEVfQ09MT1Igb24gUEFHRV9QT1BVUApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCmluZGV4IDkzYWIxMzUzY2RmZjIwODJmZDIyZDE1NTg3NWQwMzhhNzBmOWI4MGYu
LmRjODk4ZWMzZDkxOTk3NDk4MjJkN2ZmZmY0ODZlMDMzMzI5NDE5ZDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0xMS0xMyAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmph
bUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQo
KSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgICogZXdrL2V3a19mcmFtZS5jcHA6Cisg
ICAgICAgIChfZXdrX2ZyYW1lX2NvbnRlbnRzX3NldF9pbnRlcm5hbCk6CisKIDIwMTItMTEtMTkg
IFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUgJ2lzJyBw
cmVmaXggZnJvbSBXZWJTZXR0aW5nczo6aXNXZWJTZWN1cml0eUVuYWJsZWQgYW5kIFdlYlNldHRp
bmdzOjppc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDNkYzY2
YzI0MTNkZGU4ZjVjYzllMTcyYjk1N2IyMDdjNGM4OTNkM2IuLmViNTQ5MTdkNDM5ZDAwNjljY2Fl
NmY2ZjJjOTY4YmZkYmI0NmI0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxMi0xMS0xMyAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0
YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRo
LgorCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHdlYmtp
dF93ZWJfZnJhbWVfbG9hZF91cmkpOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX2Rh
dGEpOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX3JlcXVlc3QpOgorCiAyMDEyLTEx
LTE2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLXSBNb3ZlIENyZWRlbnRpYWxCYWNraW5nU3RvcmUgdXNhZ2UgZnJvbSBHdGtBdXRoZW50aWNh
dGlvbkRpYWxvZyB0byBSZXNvdXJjZUhhbmRsZVNvdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAxYzlk
ZWRmZDgwOTZhNDdlMGQxZjI1MmIwMzU0YTYwYWYyM2QzOGNlLi4zZGQxNjE5YzcxY2EzMjY2MmU3
NzJiZDRlY2U5MWFjMTA1OTJlYTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24g
dGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KKworICAgICAgICAqIFBsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBsb2FkUmVxdWVzdDpd
KToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2xvYWREYXRhOk1JTUVUeXBlOnRleHRFbmNvZGluZ05h
bWU6YmFzZVVSTDp1bnJlYWNoYWJsZVVSTDpdKToKKwogMjAxMi0xMS0xOSAgS2lob25nIEt3b24g
IDxraWhvbmcua3dvbkBzYW1zdW5nLmNvbT4KIAogICAgICAgICBBZGQgUFJPWElNSVRZX0VWRU5U
UyBmZWF0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGMxNmJjODZhZDY5NTRmMGU1NGEwN2M5MjQ1ODUy
YjM0YTZkMDM3NzMuLmI4YTc5ZmE5MzA0NGJkZmY4NzM0YTI3ZGUzYmViZWYxZmVjNTRkN2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMTEtMTMgIEphbWVzIFNpbW9uc2Vu
ICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9h
ZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICAqIEFwaS9xd2ViZnJh
bWUuY3BwOgorICAgICAgICAoUVdlYkZyYW1lOjpRV2ViRnJhbWUpOgorICAgICAgICAoUVdlYkZy
YW1lOjpsb2FkKToKKyAgICAgICAgKFFXZWJGcmFtZTo6c2V0SHRtbCk6CisgICAgICAgIChRV2Vi
RnJhbWU6OnNldENvbnRlbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRB
bHRlcm5hdGVIdG1sKToKKyAgICAgICAgKHF0X2R1bXBfc2V0X2FjY2VwdHNfZWRpdGluZyk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpjYWxsRXJyb3JQYWdlRXh0ZW5zaW9uKToK
KwogMjAxMi0xMS0xOCAgTGFzemxvIEdvbWJvcyAgPGwuZ29tYm9zQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIFtRdF0gUmVtb3ZlIHJlbWFpbmluZyB0cmFjZXMgb2Ygc3ltYmlhbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCmluZGV4IDY5MDk2NThjNDM2YTc1N2E2ZThjNzZkOGU0MDIyYmZmMDkyNTdkNDIuLjJkNjdk
OTQ5MTMwZDRmMmZlZjYzYTg3NTAyZDNmZmNlNTk2NDY4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAxMi0xMS0xMyAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRv
IG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2Vi
RnJhbWU6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkZyYW1lOjpsb2FkRGF0YSk6CisKIDIw
MTItMTEtMTcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBhbiBpbnRlZ2VyIGlkZW50aWZpZXIgZmllbGQgdG8gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VC
YXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCAyZmEzZjEzMmRlMTQzMDQyNmJhMDIwYTBiM2My
ZWZlMTQ3MzEzODI4Li5kYTY5YTI2ZWU0ZDhhMjNjMjFlZTYzMjk4NjUwZDY4ZGQ3N2EwMTUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTExLTEzICBKYW1lcyBT
aW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBG
cmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJl
cXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgKiBXZWJW
aWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmxvYWQpOgorCiAyMDEyLTEwLTI0ICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBzdHJhdGVneSBmb3Ig
bG9hZGVyIGN1c3RvbWl6YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IGU5ZWFmMTMxOWUwMzI3ZWQ5
Y2VjOWZiNDkyMDkzM2I3YTIyNTRjYzcuLmM4OWY1Mjc2NjA1Yzc3Y2JmMmJjZjMxMjJiYzZiNDMz
ZGUwZjUzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTEtMTMgIEph
bWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlk
YXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVM
b2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICAq
IFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OlNldFBhZ2VTb3VyY2Up
OgorCiAyMDEyLTEwLTIyICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdp
YS5jb20+CiAKICAgICAgICAgW1F0XSBGaXggIkFTU0VSVElPTiBGQUlMRUQ6ICFkb2N1bWVudC0+
aW5QYWdlQ2FjaGUoKSIgd2hlbiBsb2FkaW5nIGEgcGFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDkyNjY3Y2My
MDJkZjExZmIwOGFiNGQ2ZDM5OWVlYzZjZmMyZjlmNTAuLjhiMzZiZTMyNzg4YjJmYjc1OGU0NjJl
MmI5MWMxOTk0MTE5NTNmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMS0x
MyAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29u
c29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBG
cmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0
OjpQbHVnaW5WaWV3OjpwZXJmb3JtRnJhbWVMb2FkVVJMUmVxdWVzdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjps
b2FkVVJMUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWREYXRhKToKKwog
MjAxMi0xMS0xOSAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAog
ICAgICAgICBDb29yZGluYXRlZCBHcmFwaGljczogUmVtb3ZlIHRpbGVzIG9mIGEgbGF5ZXIgd2hl
biB0aGV5IGFyZSBvZmYgdGhlIHZpZXdwb3J0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA4MDBh
NTEwMmQwNzhmMGExZGQ5OWQ1ZTQ0Y2MyNWNiMThjYzBhNTlkLi4zNzY0MGE3NTg0ZjgxM2RlODMw
MTA3NGI5YWY4ZDliMjJlZDVmNzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYzMSw2ICsx
NjMxLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGxvYWRlci9GVFBEaXJlY3RvcnlQYXJz
ZXIuY3BwCiAgICAgbG9hZGVyL0Zvcm1TdGF0ZS5jcHAKICAgICBsb2FkZXIvRm9ybVN1Ym1pc3Np
b24uY3BwCisgICAgbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuY3BwCiAgICAgbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAogICAgIGxvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAKICAgICBs
b2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBmZWE3ZWZjOWI1MmZiMjNlMTVhMzQ1MjFlZGIzNDNjZjdkMTkwMTdjLi42YzcyNzI3YjQ1
Yjc3MTM2NjFjZGNiY2I0ZDhiODYzODNlOTgwOTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTM4NzEsMTMgKzM4NzEsMTQgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN0YXRlLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9G
b3JtU3VibWlzc2lvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lv
bi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmggXAotCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRSZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlQYXJz
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5UGFyc2VyLmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKaW5kZXggZGUxMGUxYzM5ZjExNWNlMGM2NDIwZjAxYjBhMWQzMGMyNDlhOTRmMS4u
YWYxZTc4NWU1OThhNDc0MDYzYjFkNDhhYWRkMmYxM2MzMDBlYWM3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBA
IC04MzIsNiArODMyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL0VtcHR5Q2xpZW50cy5j
cHAgXAogICAgIGxvYWRlci9Gb3JtU3RhdGUuY3BwIFwKICAgICBsb2FkZXIvRm9ybVN1Ym1pc3Np
b24uY3BwIFwKKyAgICBsb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5jcHAgXAogICAgIGxvYWRlci9G
cmFtZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAg
XAogICAgIGxvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpp
bmRleCAzOTc3NzY5ZGRiNjAyNWY4ODdlN2Q1ZTU5MmUwYzgwMjhjYzBhNjYxLi5jZjA0ZmY1ZjEz
ZDEyYTdkNjUyNGUzYzQ5Y2ZmMDU0MmVjZjVmNTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAt
MTA3LDkgKzEwNyw3IEBAIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyM3RpbWVPZkxhc3RDb21w
bGV0ZWRMb2FkRXYKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyNnJlbG9hZFdpdGhPdmVycmlk
ZUVuY29kaW5nRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjMyc2V0
T3JpZ2luYWxVUkxGb3JEb3dubG9hZFJlcXVlc3RFUk5TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19a
TjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRpbml0RXYKLV9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0
bG9hZEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVJLTjNXVEY2U3RyaW5nRWIKLV9fWk43V2ViQ29y
ZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVJLTlNfMTRTdWJzdGl0
dXRlRGF0YUViCi1fX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNVJlc291cmNl
UmVxdWVzdEViCitfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNkZyYW1lTG9h
ZFJlcXVlc3RFCiBfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNnJlbG9hZEViCiBfX1pON1dlYkNv
cmUxMUZyYW1lTG9hZGVyOXNldE9wZW5lckVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMTFIaXN0
b3J5SXRlbTEwdGFyZ2V0SXRlbUV2CkBAIC00MzEsNiArNDI5LDcgQEAgX19aTjdXZWJDb3JlMTZE
ZXZpY2VNb3Rpb25EYXRhMTJSb3RhdGlvblJhdGU2Y3JlYXRlRWJkYmRiZAogX19aTjdXZWJDb3Jl
MTZEZXZpY2VNb3Rpb25EYXRhNmNyZWF0ZUVOM1dURjEwUGFzc1JlZlB0cklOUzBfMTJBY2NlbGVy
YXRpb25FRUVTNF9OUzJfSU5TMF8xMlJvdGF0aW9uUmF0ZUVFRWJkCiBfX1pON1dlYkNvcmUxNkZv
bnRGYWxsYmFja0xpc3QxNXJlbGVhc2VGb250RGF0YUV2CiBfX1pON1dlYkNvcmUxNkZvbnRQbGF0
Zm9ybURhdGFEMUV2CitfX1pON1dlYkNvcmUxNkZyYW1lTG9hZFJlcXVlc3RDMUVQTlNfNUZyYW1l
RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUktOU18xNFN1YnN0aXR1dGVEYXRhRQogX19aTjdXZWJD
b3JlMTZIVE1MSW5wdXRFbGVtZW50OHNldFZhbHVlRVJLTjNXVEY2U3RyaW5nRU5TXzIyVGV4dEZp
ZWxkRXZlbnRCZWhhdmlvckUKIF9fWk43V2ViQ29yZTE2SFRNTElucHV0RWxlbWVudDEzc2V0QXV0
b2ZpbGxlZEViCiBfX1pON1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQxNXNldEVkaXRpbmdWYWx1
ZUVSS04zV1RGNlN0cmluZ0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBhY2JjNTkwYjE3ZmVlYmRlMWY1
ZjUwYTA0ODI3ZTU1NWI0MDU5Y2UyLi41NGRiODk5NDliOTMxNjIyZDYxMzdmOWZhODg1YmQxYzBl
NWFmNWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yOTYyLDYgKzI5NjIsNyBAQAogICAgICAgICAg
ICAgJ2xvYWRlci9GVFBEaXJlY3RvcnlQYXJzZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL0Zv
cm1TdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAnLAor
ICAgICAgICAgICAgJ2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAn
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL0ZyYW1lTG9hZGVy
U3RhdGVNYWNoaW5lLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL0hpc3RvcnlDb250cm9sbGVy
LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmlu
ZGV4IGQwMTg3ODlmY2IxMTQ5NjdhNDBkYzVhODlmZjgyZGQ0ODlmY2JkYTYuLmQ4MjhmYjJmMGY1
Zjc3YzJlNWJmOTkxMjUzNzUxZTY0Mjc0OGM3YjggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNzU5MCw2ICsyNzU5MCwxMCBAQAogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcRnJhbWVM
b2FkUmVxdWVzdC5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGxvYWRlclxGcmFtZUxvYWRSZXF1ZXN0LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDBhYTEyNWM0Zjg5MTljNjIxNjA0YmRiNjI4MTZlZDdmN2M4YWYxNjEuLjJiMTRjY2IwMDkw
MzhjYjYzOTdhMTg3YzE0MTc4YjNmMjBhNDg5MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI5ODYsNiArMjk4Niw3IEBACiAJ
CTg2MUMyRUE0MTNGQjRGREQwMDA2MkFCQiAvKiBEb2N1bWVudExvYWRUaW1pbmcuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYxQzJFQTMxM0ZCNEZE
RDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRpbWluZy5jcHAgKi87IH07CiAJCTg2MUMyRUE2MTNG
QjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYxQzJFQTUxM0ZCNEZGRjAwMDYyQUJCIC8q
IFJlc291cmNlTG9hZFRpbWluZy5jcHAgKi87IH07CiAJCTg2MjQzRDAxMTFCQzMxRjcwMENDMDA2
QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODYyNDNEMDAxMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJyYXlC
dWZmZXJWaWV3SGVscGVyLmggKi87IH07CisJCTg2NDI1RkUyMTY1QjIxQjAwMDJEMEM5NCAvKiBG
cmFtZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg2NDI1RkUxMTY1QjIxQjAwMDJEMEM5NCAvKiBGcmFtZUxvYWRSZXF1ZXN0LmNw
cCAqLzsgfTsKIAkJODY1MTJFREUxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcu
Y3BwICovOyB9OwogCQk4NjUxMkVERjE1NEEyQUVGMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODY1MTJFREMxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcu
aCAqLzsgfTsKIAkJODZCRTM0MDAxNTA1OENCMjAwQ0UwRkQ4IC8qIFBlcmZvcm1hbmNlRW50cnku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZCRTMz
RkExNTA1OENCMjAwQ0UwRkQ4IC8qIFBlcmZvcm1hbmNlRW50cnkuY3BwICovOyB9OwpAQCAtMzQ0
NSw3ICszNDQ2LDYgQEAKIAkJOTcxMkE1QUUxNTAwNEVEQTAwNDhBRjEwIC8qIERPTVdpbmRvd0lu
ZGV4ZWREYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTcxMkE1NTUxNTAwNEVEQTAwNDhBRjEwIC8qIERPTVdpbmRvd0luZGV4ZWREYXRhYmFz
ZS5oICovOyB9OwogCQk5NzEyQTVCMDE1MDA0RURBMDA0OEFGMTAgLyogSURCQW55LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTU3MTUwMDRF
REEwMDQ4QUYxMCAvKiBJREJBbnkuY3BwICovOyB9OwogCQk5NzEyQTVCMTE1MDA0RURBMDA0OEFG
MTAgLyogSURCQW55LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NzEyQTU1ODE1MDA0RURBMDA0OEFGMTAgLyogSURCQW55LmggKi87IH07Ci0JCTk3MTJB
NUU1MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJCYWNraW5nU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1OEMxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQkJhY2tpbmdTdG9yZS5jcHAgKi87IH07CiAJCTk3MTJBNUIzMTUwMDRFREEwMDQ4QUYx
MCAvKiBJREJCYWNraW5nU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk3MTJBNTVBMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJCYWNraW5nU3RvcmUu
aCAqLzsgfTsKIAkJOTcxMkE1QjQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkNhbGxiYWNrcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1NUIxNTAw
NEVEQTAwNDhBRjEwIC8qIElEQkNhbGxiYWNrcy5oICovOyB9OwogCQk5NzEyQTVCNTE1MDA0RURB
MDA0OEFGMTAgLyogSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3MTJBNTVDMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJDdXJzb3IuY3Bw
ICovOyB9OwpAQCAtMzQ4NSw2ICszNDg1LDcgQEAKIAkJOTcxMkE1REYxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQktleVBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk3MTJBNTg2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlQYXRoLmggKi87IH07CiAJ
CTk3MTJBNUUyMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlSYW5nZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4OTE1MDA0RURBMDA0OEFG
MTAgLyogSURCS2V5UmFuZ2UuY3BwICovOyB9OwogCQk5NzEyQTVFMzE1MDA0RURBMDA0OEFGMTAg
LyogSURCS2V5UmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk3MTJBNThBMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlSYW5nZS5oICovOyB9Owor
CQk5NzEyQTVFNTE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFja2luZ1N0b3JlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNThDMTUwMDRFREEw
MDQ4QUYxMCAvKiBJREJCYWNraW5nU3RvcmUuY3BwICovOyB9OwogCQk5NzEyQTVFNzE1MDA0RURB
MDA0OEFGMTAgLyogSURCTGV2ZWxEQkNvZGluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4RTE1MDA0RURBMDA0OEFGMTAgLyogSURCTGV2
ZWxEQkNvZGluZy5jcHAgKi87IH07CiAJCTk3MTJBNUU4MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJM
ZXZlbERCQ29kaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NzEyQTU4RjE1MDA0RURBMDA0OEFGMTAgLyogSURCTGV2ZWxEQkNvZGluZy5oICovOyB9
OwogCQk5NzEyQTVFOTE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1OTAxNTAwNEVE
QTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3JlLmNwcCAqLzsgfTsKQEAgLTkwOTksOCArOTEwMCw4
IEBACiAJCTY1RjgwNjk3MDU0RDlGODYwMDhCRjc3NiAvKiBCbG9ja0V4Y2VwdGlvbnMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBC
bG9ja0V4Y2VwdGlvbnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwogCQk2NUZFQTg2ODA5ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJ
bWFnZVB0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlSW1hZ2VQ
dHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5
NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaDsgcGF0
aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZD
NjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNjM4ODk0QTk2
Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyMUM2QkYxMTI2
MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dDNELmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkUyMUM2QzExMTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4
dDNEQ0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3ND
b250ZXh0M0RDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFM0ZBRDM2MTQ3
MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMz
VEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAyMTYsNiArMTAyMTcsNyBA
QAogCQk4NjFDMkVBMzEzRkI0RkREMDAwNjJBQkIgLyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TG9hZFRpbWluZy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2MUMyRUE1MTNGQjRGRkYwMDA2MkFC
QiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVzb3VyY2VMb2FkVGltaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODYyNDNEMDAxMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJyYXlCdWZmZXJWaWV3SGVscGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXJyYXlCdWZmZXJWaWV3SGVs
cGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg2NDI1RkUxMTY1QjIxQjAwMDJE
MEM5NCAvKiBGcmFtZUxvYWRSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZyYW1lTG9hZFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4NjUxMkVEQjE1NEEyQUVFMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODY1MTJFREMx
NTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjUxMkVERDE1NEEyQUVGMDBBOTA0MjYgLyogUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MDczNSw3ICsxMDczNyw2IEBACiAJCTk3MTJBNThBMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlS
YW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJREJLZXlSYW5nZS5oOyBw
YXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTcxMkE1OEIxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVJhbmdlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBJREJLZXlSYW5nZS5pZGw7IHBhdGggPSBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3
MTJBNThDMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJCYWNraW5nU3RvcmUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSURCQmFja2luZ1N0b3JlLmNwcDsgcGF0aCA9IE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTk3MTJBNThEMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJCYWNraW5nU3RvcmUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURCQmFja2luZ1N0b3JlLmg7IHBhdGgg
PSBNb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTcxMkE1OEUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkxldmVsREJDb2Rpbmcu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSURCTGV2ZWxEQkNvZGlu
Zy5jcHA7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcxMkE1OEYxNTAwNEVEQTAwNDhBRjEwIC8qIElE
QkxldmVsREJDb2RpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURCTGV2
ZWxEQkNvZGluZy5oOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU5MDE1MDA0RURBMDA0OEFGMTAg
LyogSURCT2JqZWN0U3RvcmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gSURCT2JqZWN0U3RvcmUuY3BwOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA3OTYsNiArMjA3OTcs
NyBAQAogCQkJCUQwMDBFQkEwMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFj
aGluZS5jcHAgKi8sCiAJCQkJRDAwMEVCQTExMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVy
U3RhdGVNYWNoaW5lLmggKi8sCiAJCQkJOTNCNzdBMzcwQURENzkyNTAwRUE0QjgxIC8qIEZyYW1l
TG9hZGVyVHlwZXMuaCAqLywKKwkJCQk4NjQyNUZFMTE2NUIyMUIwMDAyRDBDOTQgLyogRnJhbWVM
b2FkUmVxdWVzdC5jcHAgKi8sCiAJCQkJNjU4NDM2ODUwQUUwMUI3NDAwRTUzNzUzIC8qIEZyYW1l
TG9hZFJlcXVlc3QuaCAqLywKIAkJCQk2MjhEMjE0RDEyMTMxRUY0MDA1NURDRkMgLyogRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJCTUxQzgxQjg3MEM0NDIyRjcwMDE5RUNFMyAvKiBG
VFBEaXJlY3RvcnlQYXJzZXIuY3BwICovLApAQCAtMjg4NzQsNiArMjg4NzYsNyBAQAogCQkJCTFF
NTAwODQ4MTY1MTZBRDgwMEI3RTA5OCAvKiBSZW5kZXJUaGVtZU1hY1NoYXJlZC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUNEN0UwNTIyMTY1MUMyODIwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3Vy
Y2VMb2FkZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk0NDc5NTgwNTE2NDNCNEIyMDAxRTBBN0Yg
LyogUGFyc2VkQ29udGVudFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODY0MjVGRTIxNjVC
MjFCMDAwMkQwQzk0IC8qIEZyYW1lTG9hZFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE0Njc4
ODIzZWJlNTNjNDczYzc0NDU2ZGU1YWE0ODQ2MzgwMjIxOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmNwcApAQCAtMCwwICsxLDQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKKworI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitGcmFtZUxvYWRSZXF1ZXN0OjpGcmFtZUxvYWRSZXF1ZXN0KEZyYW1lKiBmcmFtZSwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVE
YXRhJiBzdWJzdGl0dXRlRGF0YSkKKyAgICA6IG1fcmVxdWVzdGVyKGZyYW1lLT5kb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpKQorICAgICwgbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1
ZXN0KQorICAgICwgbV9sb2NrSGlzdG9yeShmYWxzZSkKKyAgICAsIG1fc2hvdWxkQ2hlY2tOZXdX
aW5kb3dQb2xpY3koZmFsc2UpCisgICAgLCBtX3N1YnN0aXR1dGVEYXRhKHN1YnN0aXR1dGVEYXRh
KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZFJlcXVlc3QuaAppbmRleCBkNjVhOWI1ZmFjMmY2MjBmOTcyMjEzMzVlNDdlNDI4ODA5
NmM3YzMzLi4xYjc3ODk5ODYyNDFjNzkwNGI3ZjU5ZDMxNWE5MjUxODM3OTk4MTg4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKQEAgLTI4LDE5ICsyOCwyNSBAQAog
CiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKKyNpbmNsdWRlICJTdWJzdGl0dXRlRGF0YS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBGcmFtZTsKIAogc3RydWN0IEZyYW1lTG9hZFJlcXVlc3QgewogcHVibGljOgogICAgIGV4
cGxpY2l0IEZyYW1lTG9hZFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIHJlcXVlc3RlcikKICAgICAg
ICAgOiBtX3JlcXVlc3RlcihyZXF1ZXN0ZXIpCisgICAgICAgICwgbV9sb2NrSGlzdG9yeShmYWxz
ZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQogICAgIHsK
ICAgICB9CiAKICAgICBGcmFtZUxvYWRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQogICAgICAgICA6IG1fcmVx
dWVzdGVyKHJlcXVlc3RlcikKICAgICAgICAgLCBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJl
cXVlc3QpCisgICAgICAgICwgbV9sb2NrSGlzdG9yeShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3Vs
ZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQogICAgIHsKICAgICB9CiAKQEAgLTQ4LDkgKzU0
LDEzIEBAIHB1YmxpYzoKICAgICAgICAgOiBtX3JlcXVlc3RlcihyZXF1ZXN0ZXIpCiAgICAgICAg
ICwgbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQogICAgICAgICAsIG1fZnJhbWVO
YW1lKGZyYW1lTmFtZSkKKyAgICAgICAgLCBtX2xvY2tIaXN0b3J5KGZhbHNlKQorICAgICAgICAs
IG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koZmFsc2UpCiAgICAgewogICAgIH0KIAorICAg
IEZyYW1lTG9hZFJlcXVlc3QoRnJhbWUqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dWJzdGl0dXRlRGF0YSYgPSBTdWJzdGl0dXRlRGF0YSgpKTsKKwogICAgIGJvb2wgaXNFbXB0eSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0LmlzRW1wdHkoKTsgfQogCiAgICAgY29u
c3QgU2VjdXJpdHlPcmlnaW4qIHJlcXVlc3RlcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVy
LmdldCgpOyB9CkBAIC02MSwxMCArNzEsMjMgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYg
ZnJhbWVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZU5hbWU7IH0KICAgICB2b2lkIHNldEZy
YW1lTmFtZShjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSkgeyBtX2ZyYW1lTmFtZSA9IGZyYW1lTmFt
ZTsgfQogCisgICAgdm9pZCBzZXRMb2NrSGlzdG9yeShib29sIGxvY2tIaXN0b3J5KSB7IG1fbG9j
a0hpc3RvcnkgPSBsb2NrSGlzdG9yeTsgfQorICAgIGJvb2wgbG9ja0hpc3RvcnkoKSBjb25zdCB7
IHJldHVybiBtX2xvY2tIaXN0b3J5OyB9CisKKyAgICB2b2lkIHNldFNob3VsZENoZWNrTmV3V2lu
ZG93UG9saWN5KGJvb2wgY2hlY2tQb2xpY3kpIHsgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGlj
eSA9IGNoZWNrUG9saWN5OyB9CisgICAgYm9vbCBzaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3k7IH0KKworICAgIGNv
bnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Vi
c3RpdHV0ZURhdGE7IH0KKyAgICB2b2lkIHNldFN1YnN0aXR1dGVEYXRhKGNvbnN0IFN1YnN0aXR1
dGVEYXRhJiBkYXRhKSB7IG1fc3Vic3RpdHV0ZURhdGEgPSBkYXRhOyB9CisgICAgYm9vbCBoYXNT
dWJzdGl0dXRlRGF0YSgpIHsgcmV0dXJuIG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpOyB9CisK
IHByaXZhdGU6CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX3JlcXVlc3RlcjsKICAgICBS
ZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7CiAgICAgU3RyaW5nIG1fZnJhbWVOYW1l
OworICAgIGJvb2wgbV9sb2NrSGlzdG9yeTsKKyAgICBib29sIG1fc2hvdWxkQ2hlY2tOZXdXaW5k
b3dQb2xpY3k7CisgICAgU3Vic3RpdHV0ZURhdGEgbV9zdWJzdGl0dXRlRGF0YTsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDEzZDRjMWVkNmJmYjI3NjEz
MDJlZDYxODExOGIwNjhlZTQzZGVkYjguLjg2YjRhZTQ5ZWFjYjA2MWI1ZDE2OWI3NmRkM2YwOWM1
NWI3NjA4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTI1Mywz
NiArMTI1MywzMyBAQCBTdWJzdGl0dXRlRGF0YSBGcmFtZUxvYWRlcjo6ZGVmYXVsdFN1YnN0aXR1
dGVEYXRhRm9yVVJMKGNvbnN0IEtVUkwmIHVybCkKICAgICByZXR1cm4gU3Vic3RpdHV0ZURhdGEo
U2hhcmVkQnVmZmVyOjpjcmVhdGUoZW5jb2RlZFNyY2RvYy5kYXRhKCksIGVuY29kZWRTcmNkb2Mu
bGVuZ3RoKCkpLCAidGV4dC9odG1sIiwgIlVURi04IiwgS1VSTCgpKTsKIH0KIAotdm9pZCBGcmFt
ZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgbG9ja0hp
c3RvcnkpCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHBh
c3NlZFJlcXVlc3QpCiB7Ci0gICAgbG9hZChyZXF1ZXN0LCBkZWZhdWx0U3Vic3RpdHV0ZURhdGFG
b3JVUkwocmVxdWVzdC51cmwoKSksIGxvY2tIaXN0b3J5KTsKLX0KKyAgICBGcmFtZUxvYWRSZXF1
ZXN0IHJlcXVlc3QocGFzc2VkUmVxdWVzdCk7CisgICAgQVNTRVJUKCFyZXF1ZXN0LmlzRW1wdHko
KSk7CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEsIGJvb2wgbG9ja0hpc3Rv
cnkpCi17CiAgICAgaWYgKG1faW5TdG9wQWxsTG9hZGVycykKICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAKLSAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9IG1fY2xpZW50LT5jcmVh
dGVEb2N1bWVudExvYWRlcihyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSk7Ci0gICAgaWYgKGxvY2tI
aXN0b3J5ICYmIG1fZG9jdW1lbnRMb2FkZXIpCi0gICAgICAgIGxvYWRlci0+c2V0Q2xpZW50UmVk
aXJlY3RTb3VyY2VGb3JIaXN0b3J5KG1fZG9jdW1lbnRMb2FkZXItPmRpZENyZWF0ZUdsb2JhbEhp
c3RvcnlFbnRyeSgpID8gbV9kb2N1bWVudExvYWRlci0+dXJsRm9ySGlzdG9yeSgpLnN0cmluZygp
IDogbV9kb2N1bWVudExvYWRlci0+Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCkpOwot
ICAgIGxvYWQobG9hZGVyLmdldCgpKTsKLX0KIAotdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBib29s
IGxvY2tIaXN0b3J5KQotewotICAgIGlmIChmcmFtZU5hbWUuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IGxvYWQocmVxdWVzdCwgbG9ja0hpc3RvcnkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAg
IGlmICghcmVxdWVzdC5oYXNTdWJzdGl0dXRlRGF0YSgpKSB7CisgICAgICAgIGlmICghcmVxdWVz
dC5mcmFtZU5hbWUoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIEZyYW1lKiBmcmFtZSA9IGZp
bmRGcmFtZUZvck5hdmlnYXRpb24ocmVxdWVzdC5mcmFtZU5hbWUoKSk7CisgICAgICAgICAgICBp
ZiAoZnJhbWUpIHsKKyAgICAgICAgICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVz
dCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CiAK
LSAgICBGcmFtZSogZnJhbWUgPSBmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKGZyYW1lTmFtZSk7Ci0g
ICAgaWYgKGZyYW1lKSB7Ci0gICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBs
b2NrSGlzdG9yeSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmVxdWVzdC5zZXRTdWJzdGl0
dXRlRGF0YShkZWZhdWx0U3Vic3RpdHV0ZURhdGFGb3JVUkwocmVxdWVzdC5yZXNvdXJjZVJlcXVl
c3QoKS51cmwoKSkpOworCisgICAgICAgIGlmIChyZXF1ZXN0LnNob3VsZENoZWNrTmV3V2luZG93
UG9saWN5KCkpCisgICAgICAgICAgICBwb2xpY3lDaGVja2VyKCktPmNoZWNrTmV3V2luZG93UG9s
aWN5KE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgTmF2aWdhdGlv
blR5cGVPdGhlciksIEZyYW1lTG9hZGVyOjpjYWxsQ29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQ
b2xpY3ksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIDAsIHJlcXVlc3QuZnJhbWVOYW1lKCks
IHRoaXMpOwogICAgIH0KIAotICAgIHBvbGljeUNoZWNrZXIoKS0+Y2hlY2tOZXdXaW5kb3dQb2xp
Y3koTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBOYXZpZ2F0aW9uVHlwZU90aGVyKSwgRnJhbWVM
b2FkZXI6OmNhbGxDb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeSwgcmVxdWVzdCwgMCwg
ZnJhbWVOYW1lLCB0aGlzKTsKKyAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9IG1f
Y2xpZW50LT5jcmVhdGVEb2N1bWVudExvYWRlcihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBy
ZXF1ZXN0LnN1YnN0aXR1dGVEYXRhKCkpOworICAgIGlmIChyZXF1ZXN0LmxvY2tIaXN0b3J5KCkg
JiYgbV9kb2N1bWVudExvYWRlcikKKyAgICAgICAgbG9hZGVyLT5zZXRDbGllbnRSZWRpcmVjdFNv
dXJjZUZvckhpc3RvcnkobV9kb2N1bWVudExvYWRlci0+ZGlkQ3JlYXRlR2xvYmFsSGlzdG9yeUVu
dHJ5KCkgPyBtX2RvY3VtZW50TG9hZGVyLT51cmxGb3JIaXN0b3J5KCkuc3RyaW5nKCkgOiBtX2Rv
Y3VtZW50TG9hZGVyLT5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkoKSk7CisgICAgbG9h
ZChsb2FkZXIuZ2V0KCkpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aE5hdmlnYXRp
b25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJiBhY3Rpb24sIGJvb2wgbG9ja0hpc3RvcnksIEZyYW1lTG9hZFR5cGUgdHlwZSwgUGFz
c1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmgKaW5kZXggNTE2MzY5YTg2NDIzNmZkZDRhNWU0YTA5YmQ0ZTVjZDYzMDk3ZThhZC4uOGE0MzVj
ODk1YTgyYjA5NDc1ZjY0ZmI5YmNkOWZiNTNmOGI2YTEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmgKQEAgLTEwNCw5ICsxMDQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkRnJh
bWVSZXF1ZXN0KGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBib29sIGxvY2tIaXN0b3J5LCBib29s
IGxvY2tCYWNrRm9yd2FyZExpc3QsICAvLyBDYWxsZWQgYnkgc3VibWl0Rm9ybSwgY2FsbHMgbG9h
ZFBvc3RSZXF1ZXN0IGFuZCBsb2FkVVJMLgogICAgICAgICBQYXNzUmVmUHRyPEV2ZW50PiwgUGFz
c1JlZlB0cjxGb3JtU3RhdGU+LCBTaG91bGRTZW5kUmVmZXJyZXIpOwogCi0gICAgdm9pZCBsb2Fk
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgbG9ja0hpc3RvcnkpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDYWxsZWQgYnkgV2ViRnJhbWUsIGNhbGxzIGxv
YWQoUmVzb3VyY2VSZXF1ZXN0LCBTdWJzdGl0dXRlRGF0YSkuCi0gICAgdm9pZCBsb2FkKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiwgYm9vbCBsb2NrSGlzdG9y
eSk7ICAgICAgICAgICAgICAgICAvLyBDYWxsZWQgYm90aCBieSBXZWJGcmFtZSBhbmQgaW50ZXJu
YWxseSwgY2FsbHMgbG9hZChEb2N1bWVudExvYWRlciopLgotICAgIHZvaWQgbG9hZChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgYm9vbCBsb2NrSGlzdG9y
eSk7ICAgICAgICAgICAgICAgLy8gQ2FsbGVkIGJ5IFdlYlBsdWdpbkNvbnRyb2xsZXIuCisgICAg
dm9pZCBsb2FkKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmKTsKKwogI2lmIEVOQUJMRShXRUJfQVJD
SElWRSkgfHwgRU5BQkxFKE1IVE1MKQogICAgIHZvaWQgbG9hZEFyY2hpdmUoUGFzc1JlZlB0cjxB
cmNoaXZlPik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5k
ZXggODFlYTNmOTVkZDA0Njk0ZGYwMzRiMDc2MGFlMDBjNmE4NjFhZjVhOC4uM2EwZGQxNmQyNmFj
MjA5NjRjOWRiOTVjZGFhZmQyMjhhYWVlODllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIK
ICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZy
YW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZy
YW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC0yMzcsNyArMjM4LDcg
QEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBtX2NsaWVudC0+d2lsbFBlcmZvcm1EcmFnRGVz
dGluYXRpb25BY3Rpb24oRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTG9hZCwgZHJhZ0RhdGEpOwotICAg
IG1fcGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5sb2FkKFJlc291cmNlUmVxdWVzdChkcmFn
RGF0YS0+YXNVUkwobV9wYWdlLT5tYWluRnJhbWUoKSkpLCBmYWxzZSk7CisgICAgbV9wYWdlLT5t
YWluRnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChtX3BhZ2UtPm1haW5G
cmFtZSgpLCBSZXNvdXJjZVJlcXVlc3QoZHJhZ0RhdGEtPmFzVVJMKG1fcGFnZS0+bWFpbkZyYW1l
KCkpKSkpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcAppbmRleCAwNDY2ODQ2ZDQzMTkwMjNmZDRmZWY5ZDIwMmZjYmZiYTI3YjdmZGVkLi41
ZDMyYzkzOGY3ZDA5YTVmZmFiYTkxYjY2NjhkNWVlOWM3M2I4ZTg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTQ0MCw3ICs0NDAsMTAgQEAgdm9pZCBQbHVnaW5WaWV3
OjpwZXJmb3JtUmVxdWVzdChQbHVnaW5SZXF1ZXN0KiByZXF1ZXN0KQogICAgICAgICAgICAgLy8g
UGx1Z2luVmlldywgc28gd2UgcHJvdGVjdCBpdC4gPHJkYXI6Ly9wcm9ibGVtLzY5OTEyNTE+CiAg
ICAgICAgICAgICBSZWZQdHI8UGx1Z2luVmlldz4gcHJvdGVjdCh0aGlzKTsKIAotICAgICAgICAg
ICAgbV9wYXJlbnRGcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVz
dCgpLnJlc291cmNlUmVxdWVzdCgpLCB0YXJnZXRGcmFtZU5hbWUsIGZhbHNlKTsKKyAgICAgICAg
ICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KG1fcGFyZW50RnJhbWUuZ2V0KCksIHJl
cXVlc3QtPmZyYW1lTG9hZFJlcXVlc3QoKS5yZXNvdXJjZVJlcXVlc3QoKSk7CisgICAgICAgICAg
ICBmcmFtZVJlcXVlc3Quc2V0RnJhbWVOYW1lKHRhcmdldEZyYW1lTmFtZSk7CisgICAgICAgICAg
ICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7CisgICAg
ICAgICAgICBtX3BhcmVudEZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogCiAg
ICAgICAgICAgICAvLyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzQ4MDc0Njk+IFRoaXMgc2hvdWxk
IGJlIHNlbnQgd2hlbiB0aGUgZG9jdW1lbnQgaGFzIGZpbmlzaGVkIGxvYWRpbmcKICAgICAgICAg
ICAgIGlmIChyZXF1ZXN0LT5zZW5kTm90aWZpY2F0aW9uKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDI0Y2M3ZGI0NzY4MzkyMjBlNmZjYTQ5NmI3ZWE4
ZDg4Yzk4ZThmZTcuLmE4YWI1Mjk2OGI2MTczYWM2NTU2ODZlYjYyMzM1MGRkN2E2MDVhOTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtNTYsNiArNTYsNyBA
QAogI2luY2x1ZGUgIkVkaXRvckNsaWVudEJsYWNrQmVycnkuaCIKICNpbmNsdWRlICJGb2N1c0Nv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVl
c3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuaCIKICNpZiAhZGVm
aW5lZChQVUJMSUNfQlVJTEQpIHx8ICFQVUJMSUNfQlVJTEQKICNpbmNsdWRlICJHZW9sb2NhdGlv
bkNsaWVudE1vY2suaCIKQEAgLTcwMCw3ICs3MDEsMTAgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6
bG9hZChjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiB1cmwsIGNvbnN0IEJsYWNr
QmUKIAogICAgIHJlcXVlc3Quc2V0U3VnZ2VzdGVkU2F2ZU5hbWUoc3VnZ2VzdGVkU2F2ZU5hbWUp
OwogCi0gICAgbV9tYWluRnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsICIiIC8qIG5hbWUg
Ki8sIGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChtX21haW5GcmFt
ZSwgcmVxdWVzdCk7CisgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZSgiIik7CisgICAgZnJh
bWVSZXF1ZXN0LnNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KHRydWUpOworICAgIG1fbWFp
bkZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogfQogCiB2b2lkIFdlYlBhZ2U6
OmxvYWQoY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0cmluZyYgdXJsLCBjb25zdCBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBuZXR3b3JrVG9rZW4sIGJvb2wgaXNJbml0aWFsKQpA
QCAtNzQ1LDcgKzc0OSw4IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmxvYWRTdHJpbmcoY29uc3Qg
QmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0cmluZyYgc3RyaW5nLCBjb25zCiAgICAgICAgIGV4dHJh
Y3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLAogICAgICAgICBleHRyYWN0Q2hh
cnNldEZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLAogICAgICAgICAhZmFpbGluZ1VSTC5lbXB0
eSgpID8gcGFyc2VVcmwoZmFpbGluZ1VSTCkgOiBLVVJMKCkpOwotICAgIG1fbWFpbkZyYW1lLT5s
b2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIEZyYW1l
TG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KG1fbWFpbkZyYW1lLCByZXF1ZXN0LCBzdWJzdGl0dXRl
RGF0YSk7CisgICAgbV9tYWluRnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9
CiAKIHZvaWQgV2ViUGFnZTo6bG9hZFN0cmluZyhjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6
U3RyaW5nJiBzdHJpbmcsIGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIGJhc2VV
UkwsIGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBmYWlsaW5nVVJMKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCAwZTA2MTliNGIxN2U2YTk5YTVkZmEz
NWVmMTc5MTQzMjRkMWViODI4Li5kMmIwOTcyNjc4ZGJlZGNiNjJmMTM5MTRjZjMxN2NmNzFhYWRm
MDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhLmgiCiAjaW5j
bHVkZSAiRHVtcFJlbmRlclRyZWVDbGllbnQuaCIKICNpbmNsdWRlICJFeHRlcm5hbEV4dGVuc2lv
bi5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0QmxhY2tCZXJyeS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1
ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgpAQCAtNzUwLDcgKzc1MSw4IEBAIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3Qg
UmVzb3VyY2VFCiAgICAgfQogCiAgICAgbV9sb2FkaW5nRXJyb3JQYWdlID0gdHJ1ZTsKLSAgICBt
X2ZyYW1lLT5sb2FkZXIoKS0+bG9hZChvcmlnaW5hbFJlcXVlc3QsIGVycm9yRGF0YSwgZmFsc2Up
OworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KG1fZnJhbWUsIG9yaWdpbmFsUmVx
dWVzdCwgZXJyb3JEYXRhKTsKKyAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVl
c3QpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hXaWxs
U3VibWl0Rm9ybShGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBQYXNzUmVmUHRyPEZvcm1T
dGF0ZT4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUlt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRl
eCAxOTM2NDc2ZjNhZTFhMjAxNDAzM2RjM2ZkYjdlMGNhYjVjYThjN2YyLi5iZjkwOTMwMjVhMzJm
OTk3YWIxMTIyYWNkZDM5MmE5ZGQxYTIyODZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTk3NSw3ICs5NzUsNyBAQCB2b2lkIFdlYkZyYW1lSW1w
bDo6bG9hZFJlcXVlc3QoY29uc3QgV2ViVVJMUmVxdWVzdCYgcmVxdWVzdCkKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlc291cmNlUmVxdWVz
dCwgZmFsc2UpOworICAgIGZyYW1lKCktPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3Qo
ZnJhbWUoKSwgcmVzb3VyY2VSZXF1ZXN0KSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2Fk
SGlzdG9yeUl0ZW0oY29uc3QgV2ViSGlzdG9yeUl0ZW0mIGl0ZW0pCkBAIC05OTQsOCArOTk0LDYg
QEAgdm9pZCBXZWJGcmFtZUltcGw6OmxvYWRIaXN0b3J5SXRlbShjb25zdCBXZWJIaXN0b3J5SXRl
bSYgaXRlbSkKIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkRGF0YShjb25zdCBXZWJEYXRhJiBkYXRh
LCBjb25zdCBXZWJTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBXZWJTdHJpbmcmIHRleHRFbmNvZGlu
ZywgY29uc3QgV2ViVVJMJiBiYXNlVVJMLCBjb25zdCBXZWJVUkwmIHVucmVhY2hhYmxlVVJMLCBi
b29sIHJlcGxhY2UpCiB7CiAgICAgQVNTRVJUKGZyYW1lKCkpOwotICAgIFN1YnN0aXR1dGVEYXRh
IHN1YnN0RGF0YShkYXRhLCBtaW1lVHlwZSwgdGV4dEVuY29kaW5nLCB1bnJlYWNoYWJsZVVSTCk7
Ci0gICAgQVNTRVJUKHN1YnN0RGF0YS5pc1ZhbGlkKCkpOwogCiAgICAgLy8gSWYgd2UgYXJlIGxv
YWRpbmcgc3Vic3RpdHV0ZSBkYXRhIHRvIHJlcGxhY2UgYW4gZXhpc3RpbmcgbG9hZCwgdGhlbgog
ICAgIC8vIGluaGVyaXQgYWxsIG9mIHRoZSBwcm9wZXJ0aWVzIG9mIHRoYXQgb3JpZ2luYWwgcmVx
dWVzdC4gIFRoaXMgd2F5LApAQCAtMTAwOCw3ICsxMDA2LDkgQEAgdm9pZCBXZWJGcmFtZUltcGw6
OmxvYWREYXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEsIGNvbnN0IFdlYlN0cmluZyYgbWltZVR5cGUs
IGNvbnMKICAgICAgICAgcmVxdWVzdCA9IGZyYW1lKCktPmxvYWRlcigpLT5vcmlnaW5hbFJlcXVl
c3QoKTsKICAgICByZXF1ZXN0LnNldFVSTChiYXNlVVJMKTsKIAotICAgIGZyYW1lKCktPmxvYWRl
cigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0RGF0YSwgZmFsc2UpOworICAgIEZyYW1lTG9hZFJlcXVl
c3QgZnJhbWVSZXF1ZXN0KGZyYW1lKCksIHJlcXVlc3QsIFN1YnN0aXR1dGVEYXRhKGRhdGEsIG1p
bWVUeXBlLCB0ZXh0RW5jb2RpbmcsIHVucmVhY2hhYmxlVVJMKSk7CisgICAgQVNTRVJUKGZyYW1l
UmVxdWVzdC5zdWJzdGl0dXRlRGF0YSgpLmlzVmFsaWQoKSk7CisgICAgZnJhbWUoKS0+bG9hZGVy
KCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKICAgICBpZiAocmVwbGFjZSkgewogICAgICAgICAvLyBE
byB0aGlzIHRvIGZvcmNlIFdlYktpdCB0byB0cmVhdCB0aGUgbG9hZCBhcyByZXBsYWNpbmcgdGhl
IGN1cnJlbnRseQogICAgICAgICAvLyBsb2FkZWQgcGFnZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5jcHAKaW5kZXggNWNmOTk5ODUxM2Fl
YTM1OTZlMGQ1ZjE0ODg2ZmE5ZTkxN2YxZmZiYS4uOTNkMTI5OTI0ZWY2NjBjOGY4ZDgwYmM3ZWI5
ZDk4ODAyNDMxY2RjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
U2hhcmVkV29ya2VySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
U2hhcmVkV29ya2VySW1wbC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDcm9zc1Ro
cmVhZFRhc2suaCIKICNpbmNsdWRlICJEYXRhYmFzZVRhc2suaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJHcm91cFNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgpAQCAt
MTMwLDEwICsxMzEsMTAgQEAgdm9pZCBXZWJTaGFyZWRXb3JrZXJJbXBsOjppbml0aWFsaXplTG9h
ZGVyKGNvbnN0IFdlYlVSTCYgdXJsKQogICAgIC8vIENvbnN0cnVjdCBzdWJzdGl0dXRlIGRhdGEg
c291cmNlIGZvciB0aGUgJ3NoYWRvdyBwYWdlJy4gV2Ugb25seSBuZWVkIGl0CiAgICAgLy8gdG8g
aGF2ZSBzYW1lIG9yaWdpbiBhcyB0aGUgd29ya2VyIHNvIHRoZSBsb2FkaW5nIGNoZWNrcyB3b3Jr
IGNvcnJlY3RseS4KICAgICBDU3RyaW5nIGNvbnRlbnQoIiIpOwotICAgIGludCBsZW4gPSBzdGF0
aWNfY2FzdDxpbnQ+KGNvbnRlbnQubGVuZ3RoKCkpOwotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+
IGJ1ZihTaGFyZWRCdWZmZXI6OmNyZWF0ZShjb250ZW50LmRhdGEoKSwgbGVuKSk7Ci0gICAgU3Vi
c3RpdHV0ZURhdGEgc3Vic3REYXRhKGJ1ZiwgU3RyaW5nKCJ0ZXh0L2h0bWwiKSwgU3RyaW5nKCJV
VEYtOCIpLCBLVVJMKCkpOwotICAgIHdlYkZyYW1lLT5mcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChS
ZXNvdXJjZVJlcXVlc3QodXJsKSwgc3Vic3REYXRhLCBmYWxzZSk7CisgICAgaW50IGxlbmd0aCA9
IHN0YXRpY19jYXN0PGludD4oY29udGVudC5sZW5ndGgoKSk7CisgICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gYnVmZmVyKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGNvbnRlbnQuZGF0YSgpLCBsZW5ndGgp
KTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3Qod2ViRnJhbWUtPmZyYW1lKCksIFJlc291
cmNlUmVxdWVzdCh1cmwpLCBTdWJzdGl0dXRlRGF0YShidWZmZXIsICJ0ZXh0L2h0bWwiLCAiVVRG
LTgiLCBLVVJMKCkpKTsKKyAgICB3ZWJGcmFtZS0+ZnJhbWUoKS0+bG9hZGVyKCktPmxvYWQocmVx
dWVzdCk7CiAKICAgICAvLyBUaGlzIGRvY3VtZW50IHdpbGwgYmUgdXNlZCBhcyAnbG9hZGluZyBj
b250ZXh0JyBmb3IgdGhlIHdvcmtlci4KICAgICBtX2xvYWRpbmdEb2N1bWVudCA9IHdlYkZyYW1l
LT5mcmFtZSgpLT5kb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRl
eCA3MzhhOTM5MThmMzAxOTFiNTI2YzZmZjE4YjI5NWFmYzliN2I5YTdkLi5mMjk1ZWU5OTYwOWFh
YjU2ZDY0NTljYmQzZDQxNzYwODlkM2ExMjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1l
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ckNsaWVudEVmbC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxDb2xs
ZWN0aW9uLmgiCkBAIC0zMzgsNyArMzM5LDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV91cmlfc2V0
KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgY2hhciogdXJpKQogICAgIFdlYkNvcmU6OktV
Ukwga3VybChXZWJDb3JlOjpLVVJMKCksIFdURjo6U3RyaW5nOjpmcm9tVVRGOCh1cmkpKTsKICAg
ICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxKGt1cmwpOwogICAgIFdlYkNvcmU6OkZyYW1l
TG9hZGVyKiBsb2FkZXIgPSBzbWFydERhdGEtPmZyYW1lLT5sb2FkZXIoKTsKLSAgICBsb2FkZXIt
PmxvYWQocmVxLCBmYWxzZSk7CisgICAgbG9hZGVyLT5sb2FkKFdlYkNvcmU6OkZyYW1lTG9hZFJl
cXVlc3Qoc21hcnREYXRhLT5mcmFtZSwgcmVxKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAg
LTQxNiw3ICs0MTcsOCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfZnJhbWVfY29udGVudHNfc2V0
X2ludGVybmFsKEV3a19GcmFtZV9TbWFydF9EYXRhKiBzbWFydERhdAogICAgICAgICBiYXNlS1VS
TCwgdW5yZWFjaGFibGVLVVJMKTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dChiYXNlS1VSTCk7CiAKLSAgICBzbWFydERhdGEtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1
ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVl
c3QgZnJhbWVSZXF1ZXN0KHNtYXJ0RGF0YS0+ZnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRh
KTsKKyAgICBzbWFydERhdGEtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmZyYW1lLmNwcAppbmRleCBjMTAzM2U2MWRiYzBhNDAyOTJkMWE2MWVkZGExZDk2NTMyNzg3OWI2
Li4xMGVhMzY0YWYzYWYyZDgzODhiZjBiZDNiMWE4YWE1N2JmOTdjZjg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
ICNpbmNsdWRlICJEb2N1bWVudExvYWRlckd0ay5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVl
c3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKQEAgLTY5Myw3ICs2OTQsNyBA
QCB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmkoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBj
b25zdCBnY2hhciogdXJpKQogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm47CiAK
LSAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKFJlc291cmNlUmVxdWVzdChLVVJMKEtVUkwo
KSwgU3RyaW5nOjpmcm9tVVRGOCh1cmkpKSksIGZhbHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRl
cigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoY29yZUZyYW1lLCBSZXNvdXJjZVJlcXVlc3QoS1VS
TChLVVJMKCksIFN0cmluZzo6ZnJvbVVURjgodXJpKSkpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdl
YmtpdF93ZWJfZnJhbWVfbG9hZF9kYXRhKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2No
YXIqIGNvbnRlbnQsIGNvbnN0IGdjaGFyKiBtaW1lVHlwZSwgY29uc3QgZ2NoYXIqIGVuY29kaW5n
LCBjb25zdCBnY2hhciogYmFzZVVSTCwgY29uc3QgZ2NoYXIqIHVucmVhY2hhYmxlVVJMKQpAQCAt
NzEyLDcgKzcxMyw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9kYXRhKFdl
YktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGNvbnRlCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgS1VSTChLVVJMKCksIFN0cmluZzo6ZnJvbVVURjgodW5yZWFjaGFi
bGVVUkwpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLVVJMKEtVUkwoKSwg
U3RyaW5nOjpmcm9tVVRGOCh1bnJlYWNoYWJsZVVSTCkpKTsKIAotICAgIGNvcmVGcmFtZS0+bG9h
ZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBGcmFtZUxv
YWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChjb3JlRnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRh
KTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIC8q
KgpAQCAtNzgxLDcgKzc4Myw3IEBAIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9sb2FkX3JlcXVlc3Qo
V2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBXZWJLaXROZXR3b3JrUmVxdWVzdCoKICAgICBpZiAoIWNv
cmVGcmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9h
ZChjb3JlKHJlcXVlc3QpLCBmYWxzZSk7CisgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChG
cmFtZUxvYWRSZXF1ZXN0KGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwg
Y29yZShyZXF1ZXN0KSkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCAzZmYxMDkwODY4MWQxYWU3MmE2MDhmNGM1
YzhiOWE0ZDViMjBjMTY4Li4zYjJiMWM3Nzg4MzEzMDRjNzE3ZTJmODcxMmI5NGNkYmYyNjhjNzQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xs
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVy
Lm1tCkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMUmVxdWVzdC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9G
cmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE5hbWVzLmg+CkBAIC00MDEsNyArNDAyLDEwIEBAIHN0
YXRpYyB2b2lkIGNhbmNlbE91dHN0YW5kaW5nQ2hlY2soY29uc3Qgdm9pZCAqaXRlbSwgdm9pZCAq
Y29udGV4dCkKICAgICAgICAgICAgIExPR19FUlJPUigiY291bGQgbm90IGxvYWQgVVJMICVAIiwg
W3JlcXVlc3QgVVJMXSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAg
Y29yZShmcmFtZSktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHRhcmdldCwgZmFsc2UpOworICAg
ICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChjb3JlKGZyYW1lKSwgcmVxdWVzdCk7
CisgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUodGFyZ2V0KTsKKyAgICAgICAgZnJh
bWVSZXF1ZXN0LnNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KHRydWUpOworICAgICAgICBj
b3JlKGZyYW1lKS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IGY5MWZmZDhlNTFiZDRkYWNiN2Fm
MGExY2M0ZjI2NTEzYzNlZGE4MzIuLjI0MjYzMTJjMDVmYmNhMDViZWU1NzBkZTdjM2NkZTEyMDc3
ODNjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtNjcsNiArNjcs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9FdmVudEhhbmRsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RXZlbnROYW1lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0ZyYW1lVHJlZS5oPgpAQCAtMTM2OSw3ICsxMzcwLDcgQEAgc3RhdGljIGJvb2wgbmVlZHNN
aWNyb3NvZnRNZXNzZW5nZXJET01Eb2N1bWVudFdvcmthcm91bmQoKQogICAgIGlmICghcmVzb3Vy
Y2VSZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSAmJiAhcmVzb3VyY2VSZXF1ZXN0LnVybCgpLmlzRW1w
dHkoKSkKICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldFVSTChbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpbQCJmaWxlOiIgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6W1tyZXF1ZXN0IFVSTF0gYWJzb2x1
dGVTdHJpbmddXV0pOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXNvdXJjZVJl
cXVlc3QsIGZhbHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJl
cXVlc3QoY29yZUZyYW1lLCByZXNvdXJjZVJlcXVlc3QpKTsKIH0KIAogc3RhdGljIE5TVVJMICpj
cmVhdGVVbmlxdWVXZWJEYXRhVVJMKCkKQEAgLTE0MDAsNyArMTQwMSw4IEBAIHN0YXRpYyBOU1VS
TCAqY3JlYXRlVW5pcXVlV2ViRGF0YVVSTCgpCiAKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0
dXRlRGF0YShXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoZGF0YSksIE1JTUVUeXBl
LCBlbmNvZGluZ05hbWUsIFt1bnJlYWNoYWJsZVVSTCBhYnNvbHV0ZVVSTF0sIHJlc3BvbnNlVVJM
KTsKIAotICAgIF9wcml2YXRlLT5jb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1
YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3Qo
X3ByaXZhdGUtPmNvcmVGcmFtZSwgcmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpOworICAgIF9wcml2
YXRlLT5jb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcCBiL1NvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKaW5kZXggMGFjY2QzMzYyZGQ2ODczNGNmZGYyMTM4NWVj
MzgwNjRmMmMxMzFiZi4uNDEwYjc3ZDQwMWY2NmQ2OTgxOTIwNGY0M2E3ZTY5ZDI0Yjc3YzhmOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyQ2xpZW50UXQuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkZy
YW1lVHJlZS5oIgpAQCAtNDgxLDcgKzQ4MiwxMCBAQCBRV2ViRnJhbWU6OlFXZWJGcmFtZShRV2Vi
UGFnZSAqcGFyZW50LCBRV2ViRnJhbWVEYXRhICpmcmFtZURhdGEpCiAKICAgICBpZiAoIWZyYW1l
RGF0YS0+dXJsLmlzRW1wdHkoKSkgewogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdChmcmFtZURhdGEtPnVybCwgZnJhbWVEYXRhLT5yZWZlcnJlcik7Ci0gICAgICAgIGQt
PmZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBmcmFtZURhdGEtPm5hbWUsIGZhbHNlKTsK
KyAgICAgICAgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZC0+ZnJhbWUs
IHJlcXVlc3QpOworICAgICAgICBmcmFtZVJlcXVlc3Quc2V0RnJhbWVOYW1lKGZyYW1lRGF0YS0+
bmFtZSk7CisgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGlj
eSh0cnVlKTsKKyAgICAgICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7
CiAgICAgfQogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAgICAgY29ubmVjdCgmZC0+
bV9vcmllbnRhdGlvbiwgU0lHTkFMKHJlYWRpbmdDaGFuZ2VkKCkpLCB0aGlzLCBTTE9UKF9xX29y
aWVudGF0aW9uQ2hhbmdlZCgpKSk7CkBAIC04NDYsNyArODUwLDcgQEAgdm9pZCBRV2ViRnJhbWU6
OmxvYWQoY29uc3QgUU5ldHdvcmtSZXF1ZXN0ICZyZXEsCiAgICAgaWYgKCFib2R5LmlzRW1wdHko
KSkKICAgICAgICAgcmVxdWVzdC5zZXRIVFRQQm9keShXZWJDb3JlOjpGb3JtRGF0YTo6Y3JlYXRl
KGJvZHkuY29uc3REYXRhKCksIGJvZHkuc2l6ZSgpKSk7CiAKLSAgICBkLT5mcmFtZS0+bG9hZGVy
KCktPmxvYWQocmVxdWVzdCwgZmFsc2UpOworICAgIGQtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChG
cmFtZUxvYWRSZXF1ZXN0KGQtPmZyYW1lLCByZXF1ZXN0KSk7CiAKICAgICBpZiAoZC0+cGFyZW50
RnJhbWUoKSkKICAgICAgICAgZC0+cGFnZS0+ZC0+aW5zaWRlT3BlbkNhbGwgPSBmYWxzZTsKQEAg
LTg4Myw3ICs4ODcsOCBAQCB2b2lkIFFXZWJGcmFtZTo6c2V0SHRtbChjb25zdCBRU3RyaW5nICZo
dG1sLCBjb25zdCBRVXJsICZiYXNlVXJsKQogICAgIGNvbnN0IFFCeXRlQXJyYXkgdXRmOCA9IGh0
bWwudG9VdGY4KCk7CiAgICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBkYXRh
ID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUodXRmOC5jb25zdERhdGEoKSwgdXRmOC5s
ZW5ndGgoKSk7CiAgICAgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoZGF0
YSwgV1RGOjpTdHJpbmcoInRleHQvaHRtbCIpLCBXVEY6OlN0cmluZygidXRmLTgiKSwgS1VSTCgp
KTsKLSAgICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEs
IGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChkLT5mcmFtZSwgcmVx
dWVzdCwgc3Vic3RpdHV0ZURhdGEpOworICAgIGQtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFt
ZVJlcXVlc3QpOwogfQogCiAvKiEKQEAgLTkxMyw3ICs5MTgsOCBAQCB2b2lkIFFXZWJGcmFtZTo6
c2V0Q29udGVudChjb25zdCBRQnl0ZUFycmF5ICZkYXRhLCBjb25zdCBRU3RyaW5nICZtaW1lVHlw
ZSwgY29ucwogICAgICAgICBlbmNvZGluZyA9IGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZSht
aW1lVHlwZSk7CiAgICAgfQogICAgIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVE
YXRhKGJ1ZmZlciwgV1RGOjpTdHJpbmcoYWN0dWFsTWltZVR5cGUpLCBlbmNvZGluZywgS1VSTCgp
KTsKLSAgICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEs
IGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChkLT5mcmFtZSwgcmVx
dWVzdCwgc3Vic3RpdHV0ZURhdGEpOworICAgIGQtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFt
ZVJlcXVlc3QpOwogfQogCiAvKiEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggZWRmMjBhNDYw
NTAzMzE3NjRkNzlkYmZmMGQzM2JjOTA3YmNiZjY3Yy4uODk1ZjUxNjRhZTFmZWY0YmRhYTVhNjZl
YWQ1ZjQ0ZmZlNDM2Y2VlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTQwLDYgKzQwLDcg
QEAKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1
ZGUgIkdDQ29udHJvbGxlci5oIgpAQCAtOTc1LDcgKzk3Niw4IEBAIHZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OnNldEFsdGVybmF0ZUh0bWwoUVdlYkZyYW1lKiBmcmFtZSwgY29uc3QgUVN0
cmluZyYKICAgICBjb25zdCBRQnl0ZUFycmF5IHV0ZjggPSBodG1sLnRvVXRmOCgpOwogICAgIFdU
Rjo6UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZGF0YSA9IFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKHV0ZjguY29uc3REYXRhKCksIHV0ZjgubGVuZ3RoKCkpOwogICAgIFdlYkNv
cmU6OlN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKGRhdGEsIFdURjo6U3RyaW5nKCJ0ZXh0
L2h0bWwiKSwgV1RGOjpTdHJpbmcoInV0Zi04IiksIGZhaWxpbmdVcmwpOwotICAgIGNvcmVGcmFt
ZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBG
cmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChjb3JlRnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1
dGVEYXRhKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9
CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmNvbmZpcm1Db21wb3NpdGlvbihRV2Vi
UGFnZSogcGFnZSwgY29uc3QgY2hhciogdGV4dCkKQEAgLTExOTksNCArMTIwMSwzIEBAIHZvaWQg
UVdFQktJVF9FWFBPUlQgcXRfZHVtcF9zZXRfYWNjZXB0c19lZGl0aW5nKGJvb2wgYikKIHsKICAg
ICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFNldEFjY2VwdHNFZGl0aW5nKGIpOwogfQot
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0LmNwcAppbmRleCAwNzMxZDkzMTU4YTE2Zjk3MzBlODQxZTIwODE3YTg4MjJiNGU2
MTQ4Li5lYTk3ZTE0MjZiNGMzMzQ1NTI0YWI5ZjFiMTU1MjZmMzFlMjk1NGE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKKyNpbmNs
dWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4
dFF0LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBA
IC0xMTY0LDcgKzExNjUsOCBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNhbGxFcnJvclBh
Z2VFeHRlbnNpb24oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZQogICAgIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGJhc2VVcmwpOwogICAgIFdURjo6UmVmUHRyPFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUo
b3V0cHV0LmNvbnRlbnQuY29uc3REYXRhKCksIG91dHB1dC5jb250ZW50Lmxlbmd0aCgpKTsKICAg
ICBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShidWZmZXIsIG91dHB1dC5j
b250ZW50VHlwZSwgb3V0cHV0LmVuY29kaW5nLCBmYWlsaW5nVXJsKTsKLSAgICBtX2ZyYW1lLT5s
b2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIFdlYkNv
cmU6OkZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KG1fZnJhbWUsIHJlcXVlc3QsIHN1YnN0
aXR1dGVEYXRhKTsKKyAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJG
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggZWU5Y2RkOGM0
NDE4ZDhhMjdlNjgwNGYwMjA4OTViYjU1YjIzODJjNS4uM2ZiYjY2NGI5NGNkNWY3NzRlMThiOTA3
ZDU5NTY5MTE3YTRjZDIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcApAQCAtNTU2LDcgKzU1Niw3
IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRnJhbWU6OmxvYWRSZXF1ZXN0KAogICAg
IGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gRV9GQUlMOwogCi0gICAgY29yZUZyYW1l
LT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0SW1wbC0+cmVzb3VyY2VSZXF1ZXN0KCksIGZhbHNlKTsK
KyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoY29yZUZyYW1l
LCByZXF1ZXN0SW1wbC0+cmVzb3VyY2VSZXF1ZXN0KCkpKTsKICAgICByZXR1cm4gU19PSzsKIH0K
IApAQCAtNTc5LDggKzU3OSwxMCBAQCB2b2lkIFdlYkZyYW1lOjpsb2FkRGF0YShQYXNzUmVmUHRy
PFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZGF0YSwgQlNUUiBtaW1lVHlwZSwgQgogICAgIFN1YnN0
aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKGRhdGEsIG1pbWVUeXBlU3RyaW5nLCBlbmNvZGluZ1N0
cmluZywgZmFpbGluZ0tVUkwpOwogCiAgICAgLy8gVGhpcyBtZXRob2QgaXMgb25seSBjYWxsZWQg
ZnJvbSBJV2ViRnJhbWUgbWV0aG9kcywgc28gZG9uJ3QgQVNTRVJUIHRoYXQgdGhlIEZyYW1lIHBv
aW50ZXIgaXNuJ3QgbnVsbC4KLSAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUodGhpcykp
Ci0gICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURh
dGEsIGZhbHNlKTsKKyAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUodGhpcykpIHsKKyAg
ICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoY29yZUZyYW1lLCByZXF1ZXN0LCBz
dWJzdGl0dXRlRGF0YSk7CisgICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVS
ZXF1ZXN0KTsKKyAgICB9CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKaW5kZXggZmNjMDRk
N2RiNmI2NjFhODdmNTk2ODYzNDVkOTg4Nzk3OGY0M2ZkNi4uOTA1OWE0MDIyMWE3OGU1Y2VlMjdm
MDZhNWQwMGVhNjFkM2RhOWY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCkBAIC0zMiw2ICsz
Miw3IEBACiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50V2luQ0UuaCIKICNpbmNsdWRlICJGb2N1c0Nv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVl
c3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50V2luQ0UuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTIxOCw3ICsyMTksNyBAQCB2
b2lkIFdlYlZpZXc6OmxvYWQoY29uc3QgU3RyaW5nICZ1cmwpCiAKIHZvaWQgV2ViVmlldzo6bG9h
ZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgJnJlcXVlc3QpCiB7Ci0gICAgZnJhbWUo
KS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgZmFsc2UpOworICAgIGZyYW1lKCktPmxvYWRlcigp
LT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUoKSwgcmVxdWVzdCkpOwogfQogCiB2b2lkIFdl
YlZpZXc6OnJlbG9hZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYkZyYW1lLmNw
cCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCmluZGV4IGIzNzQxMTNjMDc3MmExYzdm
MjZmMjQ0MDgzMDAyYmIzYWFlOGM4YTkuLmEwMWUwMDkxNDdkMGQxZGFiNWNmZmYyNDI3YmNjOTUz
NmIwNzRkODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFd4LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3
LmgiCkBAIC0zMjIsNyArMzIzLDkgQEAgdm9pZCBXZWJGcmFtZTo6U2V0UGFnZVNvdXJjZShjb25z
dCB3eFN0cmluZyYgc291cmNlLCBjb25zdCB3eFN0cmluZyYgYmFzZVVybCwgY28KICAgICAgICAg
V2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoc2hhcmVkQnVmZmVyLCBtaW1l
dHlwZSwgV1RGOjpTdHJpbmcoIlVURi04IiksIFdlYkNvcmU6OmJsYW5rVVJMKCksIHVybCk7CiAK
ICAgICAgICAgbV9pbXBsLT5mcmFtZS0+bG9hZGVyKCktPnN0b3AoKTsKLSAgICAgICAgbV9pbXBs
LT5mcmFtZS0+bG9hZGVyKCktPmxvYWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0KHVybCksIHN1
YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVz
dCBmcmFtZVJlcXVlc3QobV9pbXBsLT5mcmFtZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0KHVy
bCksIHN1YnN0aXR1dGVEYXRhKTsKKyAgICAgICAgbV9pbXBsLT5mcmFtZS0+bG9hZGVyKCktPmxv
YWQoZnJhbWVSZXF1ZXN0KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA0NGY1NzVhZDU0ZmZlZTQ4ODUwZjNl
Mzg5NzNmYWZjNjk4MDIzMGUxLi42NDYyMzg4OGViMTQ0YjIwYWYzN2Y4MTI5MzU0MGQ5N2ZkMTQ4
NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuY3BwCkBAIC05NTAsNyArOTUwLDEwIEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1l
TG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCogcmVxdWVzdCkKICAgICBGcmFtZSogdGFyZ2V0RnJh
bWUgPSBmcmFtZS0+bG9hZGVyKCktPmZpbmRGcmFtZUZvck5hdmlnYXRpb24ocmVxdWVzdC0+dGFy
Z2V0KCkpOwogICAgIGlmICghdGFyZ2V0RnJhbWUpIHsKICAgICAgICAgLy8gV2UgZGlkIG5vdCBm
aW5kIGEgdGFyZ2V0IGZyYW1lLiBBc2sgb3VyIGZyYW1lIHRvIGxvYWQgdGhlIHBhZ2UuIFRoaXMg
bWF5IG9yIG1heSBub3QgY3JlYXRlIGEgcG9wdXAgd2luZG93LgotICAgICAgICBmcmFtZS0+bG9h
ZGVyKCktPmxvYWQocmVxdWVzdC0+cmVxdWVzdCgpLCByZXF1ZXN0LT50YXJnZXQoKSwgZmFsc2Up
OworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChmcmFtZSwgcmVxdWVzdC0+
cmVxdWVzdCgpKTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZShyZXF1ZXN0LT50
YXJnZXQoKSk7CisgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1Bv
bGljeSh0cnVlKTsKKyAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7
CiAKICAgICAgICAgLy8gRklYTUU6IFdlIGRvbid0IGtub3cgd2hldGhlciB0aGUgd2luZG93IHdh
cyBzdWNjZXNzZnVsbHkgY3JlYXRlZCBoZXJlIHNvIHdlIGp1c3QgYXNzdW1lIHRoYXQgaXQgd29y
a2VkLgogICAgICAgICAvLyBJdCdzIGJldHRlciB0aGFuIG5vdCB0ZWxsaW5nIHRoZSBwbHVnLWlu
IGFueXRoaW5nLgpAQCAtOTU5LDcgKzk2Miw3IEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZy
YW1lTG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCogcmVxdWVzdCkKICAgICB9CiAKICAgICAvLyBO
b3cgYXNrIHRoZSBmcmFtZSB0byBsb2FkIHRoZSByZXF1ZXN0LgotICAgIHRhcmdldEZyYW1lLT5s
b2FkZXIoKS0+bG9hZChyZXF1ZXN0LT5yZXF1ZXN0KCksIGZhbHNlKTsKKyAgICB0YXJnZXRGcmFt
ZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdCh0YXJnZXRGcmFtZSwgcmVxdWVzdC0+
cmVxdWVzdCgpKSk7CiAKICAgICBXZWJGcmFtZSogdGFyZ2V0V2ViRnJhbWUgPSBzdGF0aWNfY2Fz
dDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KHRhcmdldEZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkp
LT53ZWJGcmFtZSgpOwogICAgIGlmIChXZWJGcmFtZTo6TG9hZExpc3RlbmVyKiBsb2FkTGlzdGVu
ZXIgPSB0YXJnZXRXZWJGcmFtZS0+bG9hZExpc3RlbmVyKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBkOTAzNmNiYjdjODY0YjQ5ZDdl
NDk0NTYxM2Y4YzMwNjdjYjNjZTZlLi5lMDA2YWFmYTQ3NjRjY2Y5ZTUzYTFmMzYxZWE4NDYxMzFh
ODBkMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC04MjQsNyArODI0LDcgQEAgdm9pZCBXZWJQYWdlOjpsb2FkVVJMUmVxdWVzdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNhbmRib3hFeHRlbnMKICAgICBTZW5k
U3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcih0aGlzKTsKIAogICAgIG1fc2FuZGJveEV4
dGVuc2lvblRyYWNrZXIuYmVnaW5Mb2FkKG1fbWFpbkZyYW1lLmdldCgpLCBzYW5kYm94RXh0ZW5z
aW9uSGFuZGxlKTsKLSAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2Fk
KHJlcXVlc3QsIGZhbHNlKTsKKyAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigp
LT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0
KSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IHNoYXJlZEJ1ZmZlciwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNv
ZGluZ05hbWUsIGNvbnN0IEtVUkwmIGJhc2VVUkwsIGNvbnN0IEtVUkwmIHVucmVhY2hhYmxlVVJM
KQpAQCAtODMzLDcgKzgzMyw4IEBAIHZvaWQgV2ViUGFnZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxT
aGFyZWRCdWZmZXI+IHNoYXJlZEJ1ZmZlciwgY29uc3QgU3RyaW5nJiBNSU1FCiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChiYXNlVVJMKTsKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0
dXRlRGF0YShzaGFyZWRCdWZmZXIsIE1JTUVUeXBlLCBlbmNvZGluZ05hbWUsIHVucmVhY2hhYmxl
VVJMKTsKLSAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVl
c3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJl
cXVlc3QobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSk7
CisgICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChmcmFtZVJlcXVl
c3QpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmxvYWRIVE1MU3RyaW5nKGNvbnN0IFN0cmluZyYgaHRt
bFN0cmluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMU3RyaW5nKQpAQCAtODczLDggKzg3NCw3IEBA
IHZvaWQgV2ViUGFnZTo6bGlua0NsaWNrZWQoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFdlYk1v
dXNlRXZlbnQmIGV2ZW50KQogICAgIGlmIChldmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6Ok5vVHlw
ZSkKICAgICAgICAgY29yZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5j
bGlja0V2ZW50LCBmcmFtZS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwgcGxhdGZvcm0oZXZl
bnQpLCAwLCAwKTsKIAotICAgIGZyYW1lLT5sb2FkZXIoKS0+bG9hZEZyYW1lUmVxdWVzdChGcmFt
ZUxvYWRSZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJj
ZVJlcXVlc3QodXJsKSksIAotICAgICAgICBmYWxzZSwgZmFsc2UsIGNvcmVFdmVudC5nZXQoKSwg
MCwgTWF5YmVTZW5kUmVmZXJyZXIpOworICAgIGZyYW1lLT5sb2FkZXIoKS0+bG9hZEZyYW1lUmVx
dWVzdChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLCBSZXNvdXJjZVJlcXVlc3QodXJsKSksIGZhbHNl
LCBmYWxzZSwgY29yZUV2ZW50LmdldCgpLCAwLCBNYXliZVNlbmRSZWZlcnJlcik7CiB9CiAKIHZv
aWQgV2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175329</attachid>
            <date>2012-11-20 20:27:28 -0800</date>
            <delta_ts>2012-11-21 15:45:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102151-20121120202516.patch</filename>
            <type>text/plain</type>
            <size>57668</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc4YjBmMjI1ZWJkNjFi
MGU5NDBiZTNkZDQ1ZDAyZTllYjI1YmRiNi4uM2EwYTc4NDEwZWM3ZjA4ZDZiM2U5NmFkOWRhZTIw
MDdiNTEwYjY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTIwICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0
ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9h
ZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVGhl
cmUncyBhIEZJWE1FIHRoYXQgd2UgaGF2ZSB0b28gbWFueSBGcmFtZUxvYWRlcjo6bG9hZCooKSBm
dW5jdGlvbnMuIFRoaXMgcGF0Y2ggY29uc29saWRhdGVzIDMgaW50byAxLgorICAgICAgICBUaGVy
ZSBhcmUgc3RpbGwgYSBmZXcgbW9yZSBsb2FkIGZ1bmN0aW9ucyB0aGF0IHdpbGwgYmUgY29uc29s
aWRhdGVkIGxhdGVyLiBVc2luZyBGcmFtZUxvYWRSZXF1ZXN0IGFzCisgICAgICAgIHRoZSBpbnRl
cmZhY2UgaW50byBGcmFtZUxvYWRlciB3aWxsIGFsc28gcHJvdmlkZSBhIHBsYWNlIHRvIHBhc3Mg
aW4gdGhlIGluaXRpYXRvci4gRmluYWxseSwgdGhpcyBtYXRjaGVzCisgICAgICAgIHRoZSByZWZh
Y3RvcmluZyBkb25lIHdpdGggQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGFuZCBDYWNoZWRSZXNvdXJj
ZUxvYWRlci4KKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFs
aXR5LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OkZyYW1l
TG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2V0TG9j
a0hpc3RvcnkpOiBUaGVzZSBhcmUgZm9ybWVyIGFyZ3VtZW50cyB0byBsb2FkKCkuCisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0Ojpsb2NrSGlzdG9yeSk6IERpdHRvLgorICAgICAg
ICAoRnJhbWVMb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0
OjpzZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnN1YnN0aXR1dGVEYXRhKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpzZXRTdWJzdGl0dXRlRGF0
YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6aGFzU3Vic3Rp
dHV0ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOiBObyBjaGFuZ2UgaW4gYmVoYXZpb3Is
IGp1c3QgbWVyZ2VkIGl0IGFsbCBpbnRvIG9uZSBmdW5jdGlvbi4KKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBwYWdlL0Ry
YWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpwZXJm
b3JtRHJhZyk6CisKIDIwMTItMTEtMjAgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJlbW92ZSAkb3V0cHV0RGlyIGFuZCAkb3V0cHV0SGVhZGVyc0RpciBm
cm9tIGdsb2JhbCB2YXJpYWJsZXMgb2YgY29kZSBnZW5lcmF0b3JzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0NoYW5nZUxvZwppbmRleCAzYjk3NWMyNTE0NTlhMjMyMTFjMWNiMzM2OTIwMWUxZTUxYWU1ZDRi
Li5iNzQwMTI4MjgwMjkyMzVmYzI4OGRjMmU5MmMwNGI3YTc4OWMyOGMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMS0yMCAgSmFtZXMgU2lt
b25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJh
bWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1
ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIx
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgICogQXBpL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6
bG9hZCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpsb2Fk
U3RyaW5nKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNr
QmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQpOgorCiAyMDEyLTExLTIwICBBbmRyZXcg
TG8gIDxhbmxvQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEFuaW1hdGVkIGdpZnMg
cGF1c2Ugb24gc2Nyb2xsIG9yIHpvb20gYW5kIHNvbWV0aW1lcyBkb24ndCByZXN1bWUgYWZ0ZXIg
c2Nyb2xsIG9yIHpvb20gY29tcGxldGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdk
ODNlZWQwZWJkOTY2YWNlMDkwYTczYTBiZThmMmY0Y2JhMTIzMTQuLjMyZDAxNmZiMjk5NzgxMjYx
MGY5M2E3MzQyMjZjYmUzNGY1MGYxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTItMTEtMjAgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBv
bmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBCYXJ0aC4KKworICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVJbXBsOjpsb2FkRGF0YSk6CisgICAgICAgICogc3JjL1dlYlNoYXJlZFdvcmtlcklt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRXb3JrZXJJbXBsOjppbml0aWFsaXpl
TG9hZGVyKToKKwogMjAxMi0xMS0yMCAgUmFjaGVsIEJsdW0gIDxncm9ieUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW0Nocm9taXVtXSBOZWVkIHNwZWxsY2hlY2sgc3VnZ2VzdGlvbnMgZXZlbiBp
ZiBjb250aW51b3VzIGNoZWNrIGlzIG9mZi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAwZTM5ZTcxNzZh
OTYwOGQxZDFjYmQ4ZWY4MGUwZjkyYzEyNGZhZWRhLi44YmRjMWY0MzJmZDViZmViNGM4NjM3OWY3
MDY0Y2M2MmEwYWFkMTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MTEtMjAgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5n
IGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKwor
ICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoX2V3a19mcmFtZV9jb250ZW50
c19zZXRfaW50ZXJuYWwpOgorCiAyMDEyLTExLTIwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM1
Mjk1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDJiZWZjMThjOTc5NmJlNThhMWZlNWNlNDBlNzFjZWVi
ZWI2NGVlOGYuLmZmZGE5YTA3M2M1ZjRiNGM2NWFmMGNjNTRlMDAxNmYxZWFhYTY3YTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0yMCAgSmFtZXMgU2ltb25zZW4g
IDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2Fk
ZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgICogd2Via2l0L3dlYmtp
dHdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmkpOgorICAg
ICAgICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX2RhdGEpOgorICAgICAgICAod2Via2l0X3dlYl9m
cmFtZV9sb2FkX3JlcXVlc3QpOgorCiAyMDEyLTExLTIwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5y
ZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MTM1Mjk1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDQwYzI0M2Q2NzNjZGE4NWYxMzc0NTk1ZGQ1YjVh
NjE3MjQ2N2NmM2MuLjgxMWE4OTIyODQwZGNlYzMxYjkyMzUyZDZjYmQ3N2VkNWRhNzE4NjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0yMCAgSmFtZXMgU2ltb25z
ZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVM
b2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEK
KworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgICogUGx1Z2lucy9X
ZWJQbHVnaW5Db250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06Cisg
ICAgICAgICgtW1dlYkZyYW1lIGxvYWRSZXF1ZXN0Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZSBf
bG9hZERhdGE6TUlNRVR5cGU6dGV4dEVuY29kaW5nTmFtZTpiYXNlVVJMOnVucmVhY2hhYmxlVVJM
Ol0pOgorCiAyMDEyLTExLTIwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM1Mjk1LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZwppbmRleCAxNzA2NTczNGY0ZGViMGViZjc4MWI2NDI4YWVhMTE3YzkxNjcxODA1Li45NzUy
M2YyOWJkZmYwODU0MmI1YWQ1OGI5NjJlZTU5MmM0ODE2ZTJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDEyLTExLTIwICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8g
b25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgKiBBcGkvcXdlYmZyYW1lLmNwcDoKKyAgICAgICAg
KFFXZWJGcmFtZTo6UVdlYkZyYW1lKToKKyAgICAgICAgKFFXZWJGcmFtZTo6bG9hZCk6CisgICAg
ICAgIChRV2ViRnJhbWU6OnNldEh0bWwpOgorICAgICAgICAoUVdlYkZyYW1lOjpzZXRDb250ZW50
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6
CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0QWx0ZXJuYXRlSHRtbCk6Cisg
ICAgICAgIChxdF9kdW1wX3NldF9hY2NlcHRzX2VkaXRpbmcpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXJDbGllbnRRdDo6Y2FsbEVycm9yUGFnZUV4dGVuc2lvbik6CisKIDIwMTItMTEtMjAgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzUyOTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMDYyOTA3YjVj
ZGJjYzk3YWE1MDhhZjM3ZDFmZjVkMTI0ZjE2MzA3YS4uMTBmY2ZmYzVhNmFjYWI5NGU1MzZlZGU5
NTY5OTkzYTQ2MmI5ZWQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEy
LTExLTIwICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2lu
ZyBhIEZyYW1lTG9hZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisK
KyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJGcmFtZTo6bG9hZFJlcXVlc3Qp
OgorICAgICAgICAoV2ViRnJhbWU6OmxvYWREYXRhKToKKwogMjAxMi0xMS0yMCAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjEzNTI5NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggMGIxY2FlMTMxNzcy
NGEzYTNmNGVkMmNmZTlkOGRhNGJkNTM5NzRkNi4uZTM0NTMwZGYwMGFiY2Y1MGJkMzY4MTVkYjMw
OTYyYjNlMDM4ODQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
Mi0xMS0yMCAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtp
bmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgor
CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojpsb2FkKToKKwogMjAx
Mi0xMS0yMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNTI5NS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXgg
NGM0M2VkYzhlMGNmNThlMzZlZDU0MDBiYzZhOTlhOWNmMTY1ODVlZC4uNzY3ODlmYzE3NDM5NDE5
MDBkOGNmNmViMDhjODlmNjg3Y2E3ZDA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMi0xMS0yMCAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlv
biB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJh
cnRoLgorCisgICAgICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZTo6U2V0UGFnZVNvdXJjZSk6CisKIDIwMTItMTEtMjAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
MzUyOTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWI4M2Y0MTY2N2RlNzE0YjA5YWE3MTAyNjM2Y2Q3NTcxMWMz
ODE1YS4uZTdjNjUyMjhjMWVlMmY3ODIzYzY3MGIyOWI0N2I5MWY0YWU5MDdjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTExLTIwICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFt
QGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6bG9hZCgp
IGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnBlcmZvcm1GcmFtZUxv
YWRVUkxSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxSZXF1ZXN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6bG9hZERhdGEpOgorCiAyMDEyLTExLTIwICBKaW53b28gU29uZyAgPGpp
bndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIEFkZCBFd2tfV2lu
ZG93X0ZlYXR1cmVzIEFQSSBhbmQgcmVsYXRlZCBVSSBjYWxsYmFja3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggODAwYTUxMDJkMDc4ZjBhMWRkOTlkNWU0NGNjMjVjYjE4Y2MwYTU5ZC4uMzc2NDBh
NzU4NGY4MTNkZTgzMDEwNzRiOWFmOGQ5YjIyZWQ1ZjcxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTE2MzEsNiArMTYzMSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBsb2FkZXIvRlRQ
RGlyZWN0b3J5UGFyc2VyLmNwcAogICAgIGxvYWRlci9Gb3JtU3RhdGUuY3BwCiAgICAgbG9hZGVy
L0Zvcm1TdWJtaXNzaW9uLmNwcAorICAgIGxvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmNwcAogICAg
IGxvYWRlci9GcmFtZUxvYWRlci5jcHAKICAgICBsb2FkZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hp
bmUuY3BwCiAgICAgbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggMWU3YWMxZDViY2NiZTUzOGYzMGYxYWNkNjIwZGQ5YzhjYzJjZDFm
ZS4uNmI4OGY0ZjYzNjkwMTEyNmU2Y2Y1MmI3OGM2ZTFkNTQ4MmU4ZGJkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODcxLDEzICszODcxLDE0IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdGF0ZS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Rm9ybVN1Ym1pc3Npb24uaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVl
c3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGlu
ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oIFwKLQlTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRlRQ
RGlyZWN0b3J5UGFyc2VyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9y
eVBhcnNlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGY2NjkxODA4NmUxM2FjNWM2NWExYmU5YWMyMGM2
MzIxZjVlNjk0ZGMuLmIzMWU1ZWU3OTE4YjI5NmJlYmQ3NjcwYmViMTczMzEwM2IwMzAyY2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQpAQCAtODMyLDYgKzgzMiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGxvYWRlci9F
bXB0eUNsaWVudHMuY3BwIFwKICAgICBsb2FkZXIvRm9ybVN0YXRlLmNwcCBcCiAgICAgbG9hZGVy
L0Zvcm1TdWJtaXNzaW9uLmNwcCBcCisgICAgbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuY3BwIFwK
ICAgICBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvRnJhbWVMb2FkZXJTdGF0
ZU1hY2hpbmUuY3BwIFwKICAgICBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KaW5kZXggODdlZDc0OTgzNTJiMjQwMWUzNGZlZTZjNTQ4OTNiN2UxYWZkNzYz
Yi4uOTRmMTIyYmE1NThjNDBjNjkzMjY2MmU0ZGQ0YWViZDYzM2U1NWI1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KQEAgLTEwNyw5ICsxMDcsNyBAQCBfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjN0
aW1lT2ZMYXN0Q29tcGxldGVkTG9hZEV2CiBfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjZyZWxv
YWRXaXRoT3ZlcnJpZGVFbmNvZGluZ0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTExRnJh
bWVMb2FkZXIzMnNldE9yaWdpbmFsVVJMRm9yRG93bmxvYWRSZXF1ZXN0RVJOU18xNVJlc291cmNl
UmVxdWVzdEUKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0aW5pdEV2Ci1fX1pON1dlYkNvcmUx
MUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNVJlc291cmNlUmVxdWVzdEVSS04zV1RGNlN0cmluZ0Vi
Ci1fX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNVJlc291cmNlUmVxdWVzdEVS
S05TXzE0U3Vic3RpdHV0ZURhdGFFYgotX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJL
TlNfMTVSZXNvdXJjZVJlcXVlc3RFYgorX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJL
TlNfMTZGcmFtZUxvYWRSZXF1ZXN0RQogX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjZyZWxvYWRF
YgogX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjlzZXRPcGVuZXJFUE5TXzVGcmFtZUUKIF9fWk43
V2ViQ29yZTExSGlzdG9yeUl0ZW0xMHRhcmdldEl0ZW1FdgpAQCAtNDMxLDYgKzQyOSw3IEBAIF9f
Wk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTEyUm90YXRpb25SYXRlNmNyZWF0ZUViZGJkYmQK
IF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJ
TlMwXzEyQWNjZWxlcmF0aW9uRUVFUzRfTlMyX0lOUzBfMTJSb3RhdGlvblJhdGVFRUViZAogX19a
TjdXZWJDb3JlMTZGb250RmFsbGJhY2tMaXN0MTVyZWxlYXNlRm9udERhdGFFdgogX19aTjdXZWJD
b3JlMTZGb250UGxhdGZvcm1EYXRhRDFFdgorX19aTjdXZWJDb3JlMTZGcmFtZUxvYWRSZXF1ZXN0
QzFFUE5TXzVGcmFtZUVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVJLTlNfMTRTdWJzdGl0dXRlRGF0
YUUKIF9fWk43V2ViQ29yZTE2SFRNTElucHV0RWxlbWVudDhzZXRWYWx1ZUVSS04zV1RGNlN0cmlu
Z0VOU18yMlRleHRGaWVsZEV2ZW50QmVoYXZpb3JFCiBfX1pON1dlYkNvcmUxNkhUTUxJbnB1dEVs
ZW1lbnQxM3NldEF1dG9maWxsZWRFYgogX19aTjdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTVz
ZXRFZGl0aW5nVmFsdWVFUktOM1dURjZTdHJpbmdFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYThiM2Zl
ZGI2NDIyNWVmYTQ0OWE4YTIwNzgxZjQ4Mzg5NzZiNDViOC4uYjdlNTc2ZWIyMzBkYzg5MjA3NzY3
MWQyZGZkMjM0MDYxN2U2NTcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjk2Myw2ICsyOTYzLDcg
QEAKICAgICAgICAgICAgICdsb2FkZXIvRlRQRGlyZWN0b3J5UGFyc2VyLmgnLAogICAgICAgICAg
ICAgJ2xvYWRlci9Gb3JtU3RhdGUuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvRm9ybVN1Ym1p
c3Npb24uY3BwJywKKyAgICAgICAgICAgICdsb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5jcHAnLAog
ICAgICAgICAgICAgJ2xvYWRlci9GcmFtZUxvYWRlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRl
ci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9IaXN0
b3J5Q29udHJvbGxlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCBlMDA0ODQwM2RjM2U5MjJjY2VhODIzOTE1OWFmNTYxMWZiY2Y3MWNm
Li40NDUzOWMwYzVhZTZkZDM1MThlZGE2NzFmMTE3NDVlNmFlZTQ0ZTExIDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjc1OTAsNiArMjc1OTAs
MTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
bG9hZGVyXEZyYW1lTG9hZFJlcXVlc3QuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcRnJhbWVMb2FkUmVxdWVzdC5oIgogCQkJCT4K
IAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBjN2JmZmVhMDIzOTZmYmM5M2VmYTFjMTVkYzRlZTAxMGZlMzZjMmMw
Li5jYjE4YzJjMzY3ZGZiNWFlZjkxZjM4MWRkNjQ4N2U3YTQ4NjIyYWM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTg2LDYg
KzI5ODYsNyBAQAogCQk4NjFDMkVBNDEzRkI0RkREMDAwNjJBQkIgLyogRG9jdW1lbnRMb2FkVGlt
aW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBEb2N1bWVudExvYWRUaW1pbmcuY3BwICovOyB9Owog
CQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMyRUE1MTNGQjRG
RkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwICovOyB9OwogCQk4NjI0M0QwMTEx
QkMzMUY3MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MjQzRDAwMTFCQzMxRjcwMENDMDA2
QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oICovOyB9OworCQk4NjQyNUZFMjE2NUIyMUIw
MDAyRDBDOTQgLyogRnJhbWVMb2FkUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjQyNUZFMTE2NUIyMUIwMDAyRDBDOTQgLyogRnJhbWVM
b2FkUmVxdWVzdC5jcHAgKi87IH07CiAJCTg2NTEyRURFMTU0QTJBRUYwMEE5MDQyNiAvKiBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2NTEyRURCMTU0QTJBRUUwMEE5MDQyNiAvKiBQZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nLmNwcCAqLzsgfTsKIAkJODY1MTJFREYxNTRBMkFFRjAwQTkwNDI2IC8qIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2NTEyRURDMTU0QTJBRUYwMEE5MDQyNiAvKiBQZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nLmggKi87IH07CiAJCTg2QkUzNDAwMTUwNThDQjIwMENFMEZEOCAvKiBQZXJm
b3JtYW5jZUVudHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg2QkUzM0ZBMTUwNThDQjIwMENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5LmNwcCAq
LzsgfTsKQEAgLTM0NDUsNyArMzQ0Niw2IEBACiAJCTk3MTJBNUFFMTUwMDRFREEwMDQ4QUYxMCAv
KiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTU1MTUwMDRFREEwMDQ4QUYxMCAvKiBET01XaW5kb3dJ
bmRleGVkRGF0YWJhc2UuaCAqLzsgfTsKIAkJOTcxMkE1QjAxNTAwNEVEQTAwNDhBRjEwIC8qIElE
QkFueS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzEyQTU1NzE1MDA0RURBMDA0OEFGMTAgLyogSURCQW55LmNwcCAqLzsgfTsKIAkJOTcxMkE1QjEx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQkFueS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1NTgxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkFueS5oICov
OyB9OwotCQk5NzEyQTVFNTE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFja2luZ1N0b3JlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNThDMTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJCYWNraW5nU3RvcmUuY3BwICovOyB9OwogCQk5NzEyQTVCMzE1
MDA0RURBMDA0OEFGMTAgLyogSURCQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU1QTE1MDA0RURBMDA0OEFGMTAgLyogSURC
QmFja2luZ1N0b3JlLmggKi87IH07CiAJCTk3MTJBNUI0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJD
YWxsYmFja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk3MTJBNTVCMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJDYWxsYmFja3MuaCAqLzsgfTsKIAkJOTcx
MkE1QjUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkN1cnNvci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU1QzE1MDA0RURBMDA0OEFGMTAgLyog
SURCQ3Vyc29yLmNwcCAqLzsgfTsKQEAgLTM0ODUsNiArMzQ4NSw3IEBACiAJCTk3MTJBNURGMTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJLZXlQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4NjE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5UGF0
aC5oICovOyB9OwogCQk5NzEyQTVFMjE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5UmFuZ2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1ODkx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVJhbmdlLmNwcCAqLzsgfTsKIAkJOTcxMkE1RTMxNTAw
NEVEQTAwNDhBRjEwIC8qIElEQktleVJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4QTE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5UmFu
Z2UuaCAqLzsgfTsKKwkJOTcxMkE1RTUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkJhY2tpbmdTdG9y
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEy
QTU4QzE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFja2luZ1N0b3JlLmNwcCAqLzsgfTsKIAkJOTcx
MkE1RTcxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkxldmVsREJDb2RpbmcuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1OEUxNTAwNEVEQTAwNDhB
RjEwIC8qIElEQkxldmVsREJDb2RpbmcuY3BwICovOyB9OwogCQk5NzEyQTVFODE1MDA0RURBMDA0
OEFGMTAgLyogSURCTGV2ZWxEQkNvZGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1OEYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkxldmVsREJD
b2RpbmcuaCAqLzsgfTsKIAkJOTcxMkE1RTkxNTAwNEVEQTAwNDhBRjEwIC8qIElEQk9iamVjdFN0
b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3
MTJBNTkwMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZS5jcHAgKi87IH07CkBAIC05
MTAwLDggKzkxMDEsOCBAQAogCQk2NUY4MDY5NzA1NEQ5Rjg2MDA4QkY3NzYgLyogQmxvY2tFeGNl
cHRpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQmxvY2tFeGNlcHRpb25zLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNjVGRUE4NjgwOTgzM0FERTAwQkVENEFC
IC8qIFBhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjM0ODA5MjBFRUY1MEQ0MDBBQzFC
NDEgLyogTmF0aXZlSW1hZ2VQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5hdGl2ZUltYWdlUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZDNjM4ODkz
QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcDsgcGF0aCA9
IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk2QzYzODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9ycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZFMjFDNkJGMTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBH
cmFwaGljc0NvbnRleHQzRENHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMQ29tcHJl
c3NlZFRleHR1cmVTM1RDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjE3
LDYgKzEwMjE4LDcgQEAKIAkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9h
ZFRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVu
dExvYWRUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjFDMkVBNTEz
RkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZFRpbWluZy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg2MjQzRDAwMTFCQzMxRjcwMENDMDA2QSAvKiBKU0FycmF5QnVm
ZmVyVmlld0hlbHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FycmF5
QnVmZmVyVmlld0hlbHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NjQyNUZF
MTE2NUIyMUIwMDAyRDBDOTQgLyogRnJhbWVMb2FkUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFtZUxvYWRSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg2NTEyRURDMTU0QTJBRUYwMEE5MDQyNiAvKiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmZvcm1hbmNlUmVzb3VyY2VU
aW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODY1MTJFREQxNTRBMkFFRjAw
QTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTA3MzYsNyArMTA3MzgsNiBAQAogCQk5NzEyQTU4QTE1MDA0RURBMDA0OEFG
MTAgLyogSURCS2V5UmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURC
S2V5UmFuZ2UuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNThCMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJL
ZXlSYW5nZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gSURCS2V5UmFuZ2UuaWRsOyBwYXRo
ID0gTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5NzEyQTU4QzE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFja2luZ1N0b3JlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElEQkJhY2tpbmdTdG9yZS5j
cHA7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk5NzEyQTU4RDE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFj
a2luZ1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQkJhY2tpbmdT
dG9yZS5oOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNThFMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJM
ZXZlbERCQ29kaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElE
QkxldmVsREJDb2RpbmcuY3BwOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNv
ZGluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNThGMTUwMDRFREEw
MDQ4QUYxMCAvKiBJREJMZXZlbERCQ29kaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IElEQkxldmVsREJDb2RpbmcuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxl
dmVsREJDb2RpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcxMkE1OTAxNTAw
NEVEQTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IElEQk9iamVjdFN0b3JlLmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIw
Nzk5LDYgKzIwODAwLDcgQEAKIAkJCQlEMDAwRUJBMDExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVM
b2FkZXJTdGF0ZU1hY2hpbmUuY3BwICovLAogCQkJCUQwMDBFQkExMTFCREFGRDQwMEM0NzcyNiAv
KiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oICovLAogCQkJCTkzQjc3QTM3MEFERDc5MjUwMEVB
NEI4MSAvKiBGcmFtZUxvYWRlclR5cGVzLmggKi8sCisJCQkJODY0MjVGRTExNjVCMjFCMDAwMkQw
Qzk0IC8qIEZyYW1lTG9hZFJlcXVlc3QuY3BwICovLAogCQkJCTY1ODQzNjg1MEFFMDFCNzQwMEU1
Mzc1MyAvKiBGcmFtZUxvYWRSZXF1ZXN0LmggKi8sCiAJCQkJNjI4RDIxNEQxMjEzMUVGNDAwNTVE
Q0ZDIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQk1MUM4MUI4NzBDNDQyMkY3
MDAxOUVDRTMgLyogRlRQRGlyZWN0b3J5UGFyc2VyLmNwcCAqLywKQEAgLTI4ODc4LDYgKzI4ODgw
LDcgQEAKIAkJCQkxRTUwMDg0ODE2NTE2QUQ4MDBCN0UwOTggLyogUmVuZGVyVGhlbWVNYWNTaGFy
ZWQubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDdFMDUyMjE2NTFDMjgyMDBDMTIwMUYgLyogV2Vi
Q29yZUFWRlJlc291cmNlTG9hZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ3OTU4MDUxNjQz
QjRCMjAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTg2NDI1RkUyMTY1QjIxQjAwMDJEMEM5NCAvKiBGcmFtZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAxNDY3ODgyM2ViZTUzYzQ3M2M3NDQ1NmRlNWFhNDg0NjM4MDIyMTgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5jcHAKQEAg
LTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1
ZXN0LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworRnJhbWVMb2FkUmVxdWVzdDo6RnJhbWVMb2FkUmVxdWVzdChG
cmFtZSogZnJhbWUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25z
dCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpCisgICAgOiBtX3JlcXVlc3RlcihmcmFt
ZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkKKyAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0
KHJlc291cmNlUmVxdWVzdCkKKyAgICAsIG1fbG9ja0hpc3RvcnkoZmFsc2UpCisgICAgLCBtX3No
b3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQorICAgICwgbV9zdWJzdGl0dXRlRGF0YShz
dWJzdGl0dXRlRGF0YSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKaW5kZXggZDY1YTliNWZhYzJmNjIwZjk3MjIx
MzM1ZTQ3ZTQyODgwOTZjN2MzMy4uMWI3Nzg5OTg2MjQxYzc5MDRiN2Y1OWQzMTVhOTI1MTgzNzk5
ODE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCkBAIC0yOCwx
OSArMjgsMjUgQEAKIAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgRnJhbWU7CiAKIHN0cnVjdCBGcmFtZUxvYWRSZXF1ZXN0IHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBGcmFtZUxvYWRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiByZXF1
ZXN0ZXIpCiAgICAgICAgIDogbV9yZXF1ZXN0ZXIocmVxdWVzdGVyKQorICAgICAgICAsIG1fbG9j
a0hpc3RvcnkoZmFsc2UpCisgICAgICAgICwgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeShm
YWxzZSkKICAgICB7CiAgICAgfQogCiAgICAgRnJhbWVMb2FkUmVxdWVzdChTZWN1cml0eU9yaWdp
biogcmVxdWVzdGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKICAg
ICAgICAgOiBtX3JlcXVlc3RlcihyZXF1ZXN0ZXIpCiAgICAgICAgICwgbV9yZXNvdXJjZVJlcXVl
c3QocmVzb3VyY2VSZXF1ZXN0KQorICAgICAgICAsIG1fbG9ja0hpc3RvcnkoZmFsc2UpCisgICAg
ICAgICwgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeShmYWxzZSkKICAgICB7CiAgICAgfQog
CkBAIC00OCw5ICs1NCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIDogbV9yZXF1ZXN0ZXIocmVxdWVz
dGVyKQogICAgICAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKICAgICAg
ICAgLCBtX2ZyYW1lTmFtZShmcmFtZU5hbWUpCisgICAgICAgICwgbV9sb2NrSGlzdG9yeShmYWxz
ZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQogICAgIHsK
ICAgICB9CiAKKyAgICBGcmFtZUxvYWRSZXF1ZXN0KEZyYW1lKiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmID0gU3Vic3RpdHV0ZURhdGEoKSk7CisKICAgICBi
b29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC5pc0VtcHR5KCk7
IH0KIAogICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIoKSBjb25zdCB7IHJldHVy
biBtX3JlcXVlc3Rlci5nZXQoKTsgfQpAQCAtNjEsMTAgKzcxLDIzIEBAIHB1YmxpYzoKICAgICBj
b25zdCBTdHJpbmcmIGZyYW1lTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVOYW1lOyB9CiAg
ICAgdm9pZCBzZXRGcmFtZU5hbWUoY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUpIHsgbV9mcmFtZU5h
bWUgPSBmcmFtZU5hbWU7IH0KIAorICAgIHZvaWQgc2V0TG9ja0hpc3RvcnkoYm9vbCBsb2NrSGlz
dG9yeSkgeyBtX2xvY2tIaXN0b3J5ID0gbG9ja0hpc3Rvcnk7IH0KKyAgICBib29sIGxvY2tIaXN0
b3J5KCkgY29uc3QgeyByZXR1cm4gbV9sb2NrSGlzdG9yeTsgfQorCisgICAgdm9pZCBzZXRTaG91
bGRDaGVja05ld1dpbmRvd1BvbGljeShib29sIGNoZWNrUG9saWN5KSB7IG1fc2hvdWxkQ2hlY2tO
ZXdXaW5kb3dQb2xpY3kgPSBjaGVja1BvbGljeTsgfQorICAgIGJvb2wgc2hvdWxkQ2hlY2tOZXdX
aW5kb3dQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5
OyB9CisKKyAgICBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEoKSBjb25zdCB7
IHJldHVybiBtX3N1YnN0aXR1dGVEYXRhOyB9CisgICAgdm9pZCBzZXRTdWJzdGl0dXRlRGF0YShj
b25zdCBTdWJzdGl0dXRlRGF0YSYgZGF0YSkgeyBtX3N1YnN0aXR1dGVEYXRhID0gZGF0YTsgfQor
ICAgIGJvb2wgaGFzU3Vic3RpdHV0ZURhdGEoKSB7IHJldHVybiBtX3N1YnN0aXR1dGVEYXRhLmlz
VmFsaWQoKTsgfQorCiBwcml2YXRlOgogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9yZXF1
ZXN0ZXI7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwogICAgIFN0cmlu
ZyBtX2ZyYW1lTmFtZTsKKyAgICBib29sIG1fbG9ja0hpc3Rvcnk7CisgICAgYm9vbCBtX3Nob3Vs
ZENoZWNrTmV3V2luZG93UG9saWN5OworICAgIFN1YnN0aXR1dGVEYXRhIG1fc3Vic3RpdHV0ZURh
dGE7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA0Mzdh
MWY2MTY0NDU3N2NmOTFiOTU3M2JmMGY5M2Q1OGNlZTZjODQ2Li5iY2FiY2VlYTdlOGExOWQyNjQ4
NjEwMjk0NTZhZjdhODBlYmZmYWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKQEAgLTEyNTIsMzYgKzEyNTIsMzIgQEAgU3Vic3RpdHV0ZURhdGEgRnJhbWVMb2FkZXI6OmRl
ZmF1bHRTdWJzdGl0dXRlRGF0YUZvclVSTChjb25zdCBLVVJMJiB1cmwpCiAgICAgcmV0dXJuIFN1
YnN0aXR1dGVEYXRhKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGVuY29kZWRTcmNkb2MuZGF0YSgpLCBl
bmNvZGVkU3JjZG9jLmxlbmd0aCgpKSwgInRleHQvaHRtbCIsICJVVEYtOCIsIEtVUkwoKSk7CiB9
CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBib29sIGxvY2tIaXN0b3J5KQordm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBGcmFtZUxv
YWRSZXF1ZXN0JiBwYXNzZWRSZXF1ZXN0KQogewotICAgIGxvYWQocmVxdWVzdCwgZGVmYXVsdFN1
YnN0aXR1dGVEYXRhRm9yVVJMKHJlcXVlc3QudXJsKCkpLCBsb2NrSGlzdG9yeSk7Ci19CisgICAg
RnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KHBhc3NlZFJlcXVlc3QpOwogCi12b2lkIEZyYW1lTG9h
ZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3Vic3RpdHV0
ZURhdGEmIHN1YnN0aXR1dGVEYXRhLCBib29sIGxvY2tIaXN0b3J5KQotewogICAgIGlmIChtX2lu
U3RvcEFsbExvYWRlcnMpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgUmVmUHRyPERv
Y3VtZW50TG9hZGVyPiBsb2FkZXIgPSBtX2NsaWVudC0+Y3JlYXRlRG9jdW1lbnRMb2FkZXIocmVx
dWVzdCwgc3Vic3RpdHV0ZURhdGEpOwotICAgIGlmIChsb2NrSGlzdG9yeSAmJiBtX2RvY3VtZW50
TG9hZGVyKQotICAgICAgICBsb2FkZXItPnNldENsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9y
eShtX2RvY3VtZW50TG9hZGVyLT5kaWRDcmVhdGVHbG9iYWxIaXN0b3J5RW50cnkoKSA/IG1fZG9j
dW1lbnRMb2FkZXItPnVybEZvckhpc3RvcnkoKS5zdHJpbmcoKSA6IG1fZG9jdW1lbnRMb2FkZXIt
PmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpKTsKLSAgICBsb2FkKGxvYWRlci5nZXQo
KSk7Ci19CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgYm9vbCBsb2NrSGlzdG9yeSkKLXsKLSAg
ICBpZiAoZnJhbWVOYW1lLmlzRW1wdHkoKSkgewotICAgICAgICBsb2FkKHJlcXVlc3QsIGxvY2tI
aXN0b3J5KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAoIXJlcXVlc3QuaGFzU3Vi
c3RpdHV0ZURhdGEoKSkgeworICAgICAgICBpZiAoIXJlcXVlc3QuZnJhbWVOYW1lKCkuaXNFbXB0
eSgpKSB7CisgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBmaW5kRnJhbWVGb3JOYXZpZ2F0aW9u
KHJlcXVlc3QuZnJhbWVOYW1lKCkpOworICAgICAgICAgICAgaWYgKGZyYW1lKSB7CisgICAgICAg
ICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogCi0gICAgRnJhbWUqIGZyYW1lID0g
ZmluZEZyYW1lRm9yTmF2aWdhdGlvbihmcmFtZU5hbWUpOwotICAgIGlmIChmcmFtZSkgewotICAg
ICAgICBmcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgbG9ja0hpc3RvcnkpOwotICAgICAg
ICByZXR1cm47CisgICAgICAgIHJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoZGVmYXVsdFN1YnN0
aXR1dGVEYXRhRm9yVVJMKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpKTsKKworICAg
ICAgICBpZiAocmVxdWVzdC5zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSgpKQorICAgICAgICAg
ICAgcG9saWN5Q2hlY2tlcigpLT5jaGVja05ld1dpbmRvd1BvbGljeShOYXZpZ2F0aW9uQWN0aW9u
KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIE5hdmlnYXRpb25UeXBlT3RoZXIpLCBGcmFtZUxv
YWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5LCByZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpLCAwLCByZXF1ZXN0LmZyYW1lTmFtZSgpLCB0aGlzKTsKICAgICB9CiAKLSAg
ICBwb2xpY3lDaGVja2VyKCktPmNoZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25BY3Rpb24o
cmVxdWVzdCwgTmF2aWdhdGlvblR5cGVPdGhlciksIEZyYW1lTG9hZGVyOjpjYWxsQ29udGludWVM
b2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3ksIHJlcXVlc3QsIDAsIGZyYW1lTmFtZSwgdGhpcyk7Cisg
ICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBsb2FkZXIgPSBtX2NsaWVudC0+Y3JlYXRlRG9jdW1l
bnRMb2FkZXIocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5zdWJzdGl0dXRlRGF0
YSgpKTsKKyAgICBpZiAocmVxdWVzdC5sb2NrSGlzdG9yeSgpICYmIG1fZG9jdW1lbnRMb2FkZXIp
CisgICAgICAgIGxvYWRlci0+c2V0Q2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KG1fZG9j
dW1lbnRMb2FkZXItPmRpZENyZWF0ZUdsb2JhbEhpc3RvcnlFbnRyeSgpID8gbV9kb2N1bWVudExv
YWRlci0+dXJsRm9ySGlzdG9yeSgpLnN0cmluZygpIDogbV9kb2N1bWVudExvYWRlci0+Y2xpZW50
UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCkpOworICAgIGxvYWQobG9hZGVyLmdldCgpKTsKIH0K
IAogdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBib29s
IGxvY2tIaXN0b3J5LCBGcmFtZUxvYWRUeXBlIHR5cGUsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBm
b3JtU3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDUxNjM2OWE4NjQy
MzZmZGQ0YTVlNGEwOWJkNGU1Y2Q2MzA5N2U4YWQuLjhhNDM1Yzg5NWE4MmIwOTQ3NWY2NGZiOWJj
ZDlmYjUzZjhiNmExMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0xMDQs
OSArMTA0LDggQEAgcHVibGljOgogICAgIHZvaWQgbG9hZEZyYW1lUmVxdWVzdChjb25zdCBGcmFt
ZUxvYWRSZXF1ZXN0JiwgYm9vbCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0
LCAgLy8gQ2FsbGVkIGJ5IHN1Ym1pdEZvcm0sIGNhbGxzIGxvYWRQb3N0UmVxdWVzdCBhbmQgbG9h
ZFVSTC4KICAgICAgICAgUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwg
U2hvdWxkU2VuZFJlZmVycmVyKTsKIAotICAgIHZvaWQgbG9hZChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBib29sIGxvY2tIaXN0b3J5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gQ2FsbGVkIGJ5IFdlYkZyYW1lLCBjYWxscyBsb2FkKFJlc291cmNlUmVxdWVzdCwg
U3Vic3RpdHV0ZURhdGEpLgotICAgIHZvaWQgbG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBTdWJzdGl0dXRlRGF0YSYsIGJvb2wgbG9ja0hpc3RvcnkpOyAgICAgICAgICAgICAgICAg
Ly8gQ2FsbGVkIGJvdGggYnkgV2ViRnJhbWUgYW5kIGludGVybmFsbHksIGNhbGxzIGxvYWQoRG9j
dW1lbnRMb2FkZXIqKS4KLSAgICB2b2lkIGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgU3RyaW5nJiBmcmFtZU5hbWUsIGJvb2wgbG9ja0hpc3RvcnkpOyAgICAgICAgICAgICAgIC8v
IENhbGxlZCBieSBXZWJQbHVnaW5Db250cm9sbGVyLgorICAgIHZvaWQgbG9hZChjb25zdCBGcmFt
ZUxvYWRSZXF1ZXN0Jik7CisKICNpZiBFTkFCTEUoV0VCX0FSQ0hJVkUpIHx8IEVOQUJMRShNSFRN
TCkKICAgICB2b2lkIGxvYWRBcmNoaXZlKFBhc3NSZWZQdHI8QXJjaGl2ZT4pOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDgxZWEzZjk1ZGQwNDY5NGRm
MDM0YjA3NjBhZTAwYzZhODYxYWY1YTguLjNhMGRkMTZkMjZhYzIwOTY0YzlkYjk1Y2RhYWZkMjI4
YWFlZTg5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC00Miw2
ICs0Miw3IEBACiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2lu
Y2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMjM3LDcgKzIzOCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xs
ZXI6OnBlcmZvcm1EcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgbV9jbGllbnQtPndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdE
ZXN0aW5hdGlvbkFjdGlvbkxvYWQsIGRyYWdEYXRhKTsKLSAgICBtX3BhZ2UtPm1haW5GcmFtZSgp
LT5sb2FkZXIoKS0+bG9hZChSZXNvdXJjZVJlcXVlc3QoZHJhZ0RhdGEtPmFzVVJMKG1fcGFnZS0+
bWFpbkZyYW1lKCkpKSwgZmFsc2UpOworICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigp
LT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QobV9wYWdlLT5tYWluRnJhbWUoKSwgUmVzb3VyY2VSZXF1
ZXN0KGRyYWdEYXRhLT5hc1VSTChtX3BhZ2UtPm1haW5GcmFtZSgpKSkpKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggMDQ2Njg0
NmQ0MzE5MDIzZmQ0ZmVmOWQyMDJmY2JmYmEyN2I3ZmRlZC4uNWQzMmM5MzhmN2QwOWE1ZmZhYmE5
MWI2NjY4ZDVlZTljNzNiOGU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CkBAIC00NDAsNyArNDQwLDEwIEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybVJlcXVlc3QoUGx1
Z2luUmVxdWVzdCogcmVxdWVzdCkKICAgICAgICAgICAgIC8vIFBsdWdpblZpZXcsIHNvIHdlIHBy
b3RlY3QgaXQuIDxyZGFyOi8vcHJvYmxlbS82OTkxMjUxPgogICAgICAgICAgICAgUmVmUHRyPFBs
dWdpblZpZXc+IHByb3RlY3QodGhpcyk7CiAKLSAgICAgICAgICAgIG1fcGFyZW50RnJhbWUtPmxv
YWRlcigpLT5sb2FkKHJlcXVlc3QtPmZyYW1lTG9hZFJlcXVlc3QoKS5yZXNvdXJjZVJlcXVlc3Qo
KSwgdGFyZ2V0RnJhbWVOYW1lLCBmYWxzZSk7CisgICAgICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0
IGZyYW1lUmVxdWVzdChtX3BhcmVudEZyYW1lLmdldCgpLCByZXF1ZXN0LT5mcmFtZUxvYWRSZXF1
ZXN0KCkucmVzb3VyY2VSZXF1ZXN0KCkpOworICAgICAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZy
YW1lTmFtZSh0YXJnZXRGcmFtZU5hbWUpOworICAgICAgICAgICAgZnJhbWVSZXF1ZXN0LnNldFNo
b3VsZENoZWNrTmV3V2luZG93UG9saWN5KHRydWUpOworICAgICAgICAgICAgbV9wYXJlbnRGcmFt
ZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKIAogICAgICAgICAgICAgLy8gRklYTUU6
IDxyZGFyOi8vcHJvYmxlbS80ODA3NDY5PiBUaGlzIHNob3VsZCBiZSBzZW50IHdoZW4gdGhlIGRv
Y3VtZW50IGhhcyBmaW5pc2hlZCBsb2FkaW5nCiAgICAgICAgICAgICBpZiAocmVxdWVzdC0+c2Vu
ZE5vdGlmaWNhdGlvbigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNw
cAppbmRleCA0ODFmOTc3YmM3YmEzZmE0Njg2ODRlZDVhYTFiNGU5NzE1Mjg1ZGUxLi4xNTI4NmJl
NDBhYTUzYjdhNmI5NTY1ODA0NmE1YzZlNzVlMGU0YjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJFZGl0b3JD
bGllbnRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgiCiAjaWYgIWRlZmluZWQoUFVCTElDX0JVSUxEKSB8
fCAhUFVCTElDX0JVSUxECiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCkBAIC03
MDAsNyArNzAxLDEwIEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmxvYWQoY29uc3QgQmxhY2tCZXJy
eTo6UGxhdGZvcm06OlN0cmluZyYgdXJsLCBjb25zdCBCbGFja0JlCiAKICAgICByZXF1ZXN0LnNl
dFN1Z2dlc3RlZFNhdmVOYW1lKHN1Z2dlc3RlZFNhdmVOYW1lKTsKIAotICAgIG1fbWFpbkZyYW1l
LT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCAiIiAvKiBuYW1lICovLCBmYWxzZSk7CisgICAgRnJh
bWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9tYWluRnJhbWUsIHJlcXVlc3QpOworICAgIGZy
YW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUoIiIpOworICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91bGRD
aGVja05ld1dpbmRvd1BvbGljeSh0cnVlKTsKKyAgICBtX21haW5GcmFtZS0+bG9hZGVyKCktPmxv
YWQoZnJhbWVSZXF1ZXN0KTsKIH0KIAogdm9pZCBXZWJQYWdlOjpsb2FkKGNvbnN0IEJsYWNrQmVy
cnk6OlBsYXRmb3JtOjpTdHJpbmcmIHVybCwgY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0
cmluZyYgbmV0d29ya1Rva2VuLCBib29sIGlzSW5pdGlhbCkKQEAgLTc0NSw3ICs3NDksNyBAQCB2
b2lkIFdlYlBhZ2VQcml2YXRlOjpsb2FkU3RyaW5nKGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpTdHJpbmcmIHN0cmluZywgY29ucwogICAgICAgICBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFU
eXBlKGNvbnRlbnRUeXBlKSwKICAgICAgICAgZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNv
bnRlbnRUeXBlKSwKICAgICAgICAgIWZhaWxpbmdVUkwuZW1wdHkoKSA/IHBhcnNlVXJsKGZhaWxp
bmdVUkwpIDogS1VSTCgpKTsKLSAgICBtX21haW5GcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVz
dCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBtX21haW5GcmFtZS0+bG9hZGVyKCktPmxv
YWQoRnJhbWVMb2FkUmVxdWVzdChtX21haW5GcmFtZSwgcmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEp
KTsKIH0KIAogdm9pZCBXZWJQYWdlOjpsb2FkU3RyaW5nKGNvbnN0IEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpTdHJpbmcmIHN0cmluZywgY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0cmluZyYg
YmFzZVVSTCwgY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0cmluZyYgbWltZVR5cGUsIGNv
bnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIGZhaWxpbmdVUkwpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDBlMDYxOWI0YjE3ZTZhOTlh
NWRmYTM1ZWYxNzkxNDMyNGQxZWI4MjguLmQzOTU2ODg5ZDQxMmYyZDFmNjc5M2QxYzk5OGQ0YTQy
Mzc3YTRmMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3Bw
CkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEuaCIK
ICNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZUNsaWVudC5oIgogI2luY2x1ZGUgIkV4dGVybmFsRXh0
ZW5zaW9uLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1l
TmV0d29ya2luZ0NvbnRleHRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCkBAIC03NTAsNyArNzUxLDcgQEAgdm9pZCBGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChj
b25zdCBSZXNvdXJjZUUKICAgICB9CiAKICAgICBtX2xvYWRpbmdFcnJvclBhZ2UgPSB0cnVlOwot
ICAgIG1fZnJhbWUtPmxvYWRlcigpLT5sb2FkKG9yaWdpbmFsUmVxdWVzdCwgZXJyb3JEYXRhLCBm
YWxzZSk7CisgICAgbV9mcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChtX2Zy
YW1lLCBvcmlnaW5hbFJlcXVlc3QsIGVycm9yRGF0YSkpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShGcmFtZVBvbGljeUZ1bmN0
aW9uIGZ1bmN0aW9uLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCAzN2YxNDRmMjFlZTJmYWE0NTJmZGZlODM2
NjRjYjc1MWFkMjlkOWNmLi4yZTlmMDkzMmRmYWJmYjhiNzI1NTU3MTRjYTA2ZmU3ZTNmZmFkNzdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTk1
Nyw3ICs5NTcsNyBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6bG9hZFJlcXVlc3QoY29uc3QgV2ViVVJM
UmVxdWVzdCYgcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZyYW1lKCkt
PmxvYWRlcigpLT5sb2FkKHJlc291cmNlUmVxdWVzdCwgZmFsc2UpOworICAgIGZyYW1lKCktPmxv
YWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUoKSwgcmVzb3VyY2VSZXF1ZXN0KSk7
CiB9CiAKIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkSGlzdG9yeUl0ZW0oY29uc3QgV2ViSGlzdG9y
eUl0ZW0mIGl0ZW0pCkBAIC05NzYsOCArOTc2LDYgQEAgdm9pZCBXZWJGcmFtZUltcGw6OmxvYWRI
aXN0b3J5SXRlbShjb25zdCBXZWJIaXN0b3J5SXRlbSYgaXRlbSkKIHZvaWQgV2ViRnJhbWVJbXBs
Ojpsb2FkRGF0YShjb25zdCBXZWJEYXRhJiBkYXRhLCBjb25zdCBXZWJTdHJpbmcmIG1pbWVUeXBl
LCBjb25zdCBXZWJTdHJpbmcmIHRleHRFbmNvZGluZywgY29uc3QgV2ViVVJMJiBiYXNlVVJMLCBj
b25zdCBXZWJVUkwmIHVucmVhY2hhYmxlVVJMLCBib29sIHJlcGxhY2UpCiB7CiAgICAgQVNTRVJU
KGZyYW1lKCkpOwotICAgIFN1YnN0aXR1dGVEYXRhIHN1YnN0RGF0YShkYXRhLCBtaW1lVHlwZSwg
dGV4dEVuY29kaW5nLCB1bnJlYWNoYWJsZVVSTCk7Ci0gICAgQVNTRVJUKHN1YnN0RGF0YS5pc1Zh
bGlkKCkpOwogCiAgICAgLy8gSWYgd2UgYXJlIGxvYWRpbmcgc3Vic3RpdHV0ZSBkYXRhIHRvIHJl
cGxhY2UgYW4gZXhpc3RpbmcgbG9hZCwgdGhlbgogICAgIC8vIGluaGVyaXQgYWxsIG9mIHRoZSBw
cm9wZXJ0aWVzIG9mIHRoYXQgb3JpZ2luYWwgcmVxdWVzdC4gIFRoaXMgd2F5LApAQCAtOTkwLDcg
Kzk4OCw5IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkRGF0YShjb25zdCBXZWJEYXRhJiBkYXRh
LCBjb25zdCBXZWJTdHJpbmcmIG1pbWVUeXBlLCBjb25zCiAgICAgICAgIHJlcXVlc3QgPSBmcmFt
ZSgpLT5sb2FkZXIoKS0+b3JpZ2luYWxSZXF1ZXN0KCk7CiAgICAgcmVxdWVzdC5zZXRVUkwoYmFz
ZVVSTCk7CiAKLSAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdERhdGEs
IGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChmcmFtZSgpLCByZXF1
ZXN0LCBTdWJzdGl0dXRlRGF0YShkYXRhLCBtaW1lVHlwZSwgdGV4dEVuY29kaW5nLCB1bnJlYWNo
YWJsZVVSTCkpOworICAgIEFTU0VSVChmcmFtZVJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKS5pc1Zh
bGlkKCkpOworICAgIGZyYW1lKCktPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAgICAg
aWYgKHJlcGxhY2UpIHsKICAgICAgICAgLy8gRG8gdGhpcyB0byBmb3JjZSBXZWJLaXQgdG8gdHJl
YXQgdGhlIGxvYWQgYXMgcmVwbGFjaW5nIHRoZSBjdXJyZW50bHkKICAgICAgICAgLy8gbG9hZGVk
IHBhZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTaGFyZWRX
b3JrZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtl
ckltcGwuY3BwCmluZGV4IDVjZjk5OTg1MTNhZWEzNTk2ZTBkNWYxNDg4NmZhOWU5MTdmMWZmYmEu
LjExOWQ5YWNiNjk5NGJkOTc2ZjA0YzY2MTkyNDI0OTgxZjI0ZGJkMzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NUaHJlYWRUYXNrLmgiCiAjaW5jbHVkZSAiRGF0YWJh
c2VUYXNrLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNp
bmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKQEAgLTEzMCwxMCArMTMxLDkgQEAgdm9pZCBXZWJTaGFy
ZWRXb3JrZXJJbXBsOjppbml0aWFsaXplTG9hZGVyKGNvbnN0IFdlYlVSTCYgdXJsKQogICAgIC8v
IENvbnN0cnVjdCBzdWJzdGl0dXRlIGRhdGEgc291cmNlIGZvciB0aGUgJ3NoYWRvdyBwYWdlJy4g
V2Ugb25seSBuZWVkIGl0CiAgICAgLy8gdG8gaGF2ZSBzYW1lIG9yaWdpbiBhcyB0aGUgd29ya2Vy
IHNvIHRoZSBsb2FkaW5nIGNoZWNrcyB3b3JrIGNvcnJlY3RseS4KICAgICBDU3RyaW5nIGNvbnRl
bnQoIiIpOwotICAgIGludCBsZW4gPSBzdGF0aWNfY2FzdDxpbnQ+KGNvbnRlbnQubGVuZ3RoKCkp
OwotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZihTaGFyZWRCdWZmZXI6OmNyZWF0ZShjb250
ZW50LmRhdGEoKSwgbGVuKSk7Ci0gICAgU3Vic3RpdHV0ZURhdGEgc3Vic3REYXRhKGJ1ZiwgU3Ry
aW5nKCJ0ZXh0L2h0bWwiKSwgU3RyaW5nKCJVVEYtOCIpLCBLVVJMKCkpOwotICAgIHdlYkZyYW1l
LT5mcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChSZXNvdXJjZVJlcXVlc3QodXJsKSwgc3Vic3REYXRh
LCBmYWxzZSk7CisgICAgaW50IGxlbmd0aCA9IHN0YXRpY19jYXN0PGludD4oY29udGVudC5sZW5n
dGgoKSk7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyKFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKGNvbnRlbnQuZGF0YSgpLCBsZW5ndGgpKTsKKyAgICB3ZWJGcmFtZS0+ZnJhbWUoKS0+bG9h
ZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdCh3ZWJGcmFtZS0+ZnJhbWUoKSwgUmVzb3VyY2VS
ZXF1ZXN0KHVybCksIFN1YnN0aXR1dGVEYXRhKGJ1ZmZlciwgInRleHQvaHRtbCIsICJVVEYtOCIs
IEtVUkwoKSkpKTsKIAogICAgIC8vIFRoaXMgZG9jdW1lbnQgd2lsbCBiZSB1c2VkIGFzICdsb2Fk
aW5nIGNvbnRleHQnIGZvciB0aGUgd29ya2VyLgogICAgIG1fbG9hZGluZ0RvY3VtZW50ID0gd2Vi
RnJhbWUtPmZyYW1lKCktPmRvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3Bw
CmluZGV4IDczOGE5MzkxOGYzMDE5MWI1MjZjNmZmMThiMjk1YWZjOWI3YjlhN2QuLjIxNzE5OTJi
ODFmOWUwNzc4NWVmZDEzNjVmMmY1MGNmNWYwYjY5M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
ZnJhbWUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyQ2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRN
TENvbGxlY3Rpb24uaCIKQEAgLTMzOCw3ICszMzksNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX3Vy
aV9zZXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBjaGFyKiB1cmkpCiAgICAgV2ViQ29y
ZTo6S1VSTCBrdXJsKFdlYkNvcmU6OktVUkwoKSwgV1RGOjpTdHJpbmc6OmZyb21VVEY4KHVyaSkp
OwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXEoa3VybCk7CiAgICAgV2ViQ29yZTo6
RnJhbWVMb2FkZXIqIGxvYWRlciA9IHNtYXJ0RGF0YS0+ZnJhbWUtPmxvYWRlcigpOwotICAgIGxv
YWRlci0+bG9hZChyZXEsIGZhbHNlKTsKKyAgICBsb2FkZXItPmxvYWQoV2ViQ29yZTo6RnJhbWVM
b2FkUmVxdWVzdChzbWFydERhdGEtPmZyYW1lLCByZXEpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApAQCAtNDE2LDcgKzQxNyw3IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a19mcmFtZV9jb250ZW50
c19zZXRfaW50ZXJuYWwoRXdrX0ZyYW1lX1NtYXJ0X0RhdGEqIHNtYXJ0RGF0CiAgICAgICAgIGJh
c2VLVVJMLCB1bnJlYWNoYWJsZUtVUkwpOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KGJhc2VLVVJMKTsKIAotICAgIHNtYXJ0RGF0YS0+ZnJhbWUtPmxvYWRlcigpLT5sb2Fk
KHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgc21hcnREYXRhLT5mcmFtZS0+
bG9hZGVyKCktPmxvYWQoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdChzbWFydERhdGEtPmZyYW1l
LCByZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSkpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIGIvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAppbmRleCBjMTAzM2U2MWRi
YzBhNDAyOTJkMWE2MWVkZGExZDk2NTMyNzg3OWI2Li5jMzQ0YmU3YTIyMzY3OGU4MDdiMDlmMzVk
ZWNjMzg4ZjE2ZDg2NTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJm
cmFtZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlckd0
ay5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50R3RrLmgiCiAjaW5jbHVkZSAiRnJhbWVT
ZWxlY3Rpb24uaCIKQEAgLTY5Myw3ICs2OTQsNyBAQCB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfbG9h
ZF91cmkoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogdXJpKQogICAgIGlmICgh
Y29yZUZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5s
b2FkKFJlc291cmNlUmVxdWVzdChLVVJMKEtVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh1cmkpKSks
IGZhbHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3Qo
Y29yZUZyYW1lLCBSZXNvdXJjZVJlcXVlc3QoS1VSTChLVVJMKCksIFN0cmluZzo6ZnJvbVVURjgo
dXJpKSkpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9kYXRhKFdl
YktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGNvbnRlbnQsIGNvbnN0IGdjaGFyKiBt
aW1lVHlwZSwgY29uc3QgZ2NoYXIqIGVuY29kaW5nLCBjb25zdCBnY2hhciogYmFzZVVSTCwgY29u
c3QgZ2NoYXIqIHVucmVhY2hhYmxlVVJMKQpAQCAtNzEyLDcgKzcxMyw3IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9kYXRhKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3Qg
Z2NoYXIqIGNvbnRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS1VSTChLVVJM
KCksIFN0cmluZzo6ZnJvbVVURjgodW5yZWFjaGFibGVVUkwpKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBLVVJMKEtVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh1bnJlYWNoYWJs
ZVVSTCkpKTsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3Rp
dHV0ZURhdGEsIGZhbHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9h
ZFJlcXVlc3QoY29yZUZyYW1lLCByZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSk7CiB9CiAKIC8qKgpA
QCAtNzgxLDcgKzc4Miw3IEBAIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9sb2FkX3JlcXVlc3QoV2Vi
S2l0V2ViRnJhbWUqIGZyYW1lLCBXZWJLaXROZXR3b3JrUmVxdWVzdCoKICAgICBpZiAoIWNvcmVG
cmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChj
b3JlKHJlcXVlc3QpLCBmYWxzZSk7CisgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChGcmFt
ZUxvYWRSZXF1ZXN0KGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgY29y
ZShyZXF1ZXN0KSkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
V2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCAzZmYxMDkwODY4MWQxYWU3MmE2MDhmNGM1Yzhi
OWE0ZDViMjBjMTY4Li4zYjJiMWM3Nzg4MzEzMDRjNzE3ZTJmODcxMmI5NGNkYmYyNjhjNzQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1t
CkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMUmVxdWVzdC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFt
ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvSFRNTE5hbWVzLmg+CkBAIC00MDEsNyArNDAyLDEwIEBAIHN0YXRp
YyB2b2lkIGNhbmNlbE91dHN0YW5kaW5nQ2hlY2soY29uc3Qgdm9pZCAqaXRlbSwgdm9pZCAqY29u
dGV4dCkKICAgICAgICAgICAgIExPR19FUlJPUigiY291bGQgbm90IGxvYWQgVVJMICVAIiwgW3Jl
cXVlc3QgVVJMXSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgY29y
ZShmcmFtZSktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHRhcmdldCwgZmFsc2UpOworICAgICAg
ICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChjb3JlKGZyYW1lKSwgcmVxdWVzdCk7Cisg
ICAgICAgIGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUodGFyZ2V0KTsKKyAgICAgICAgZnJhbWVS
ZXF1ZXN0LnNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KHRydWUpOworICAgICAgICBjb3Jl
KGZyYW1lKS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IGY5MWZmZDhlNTFiZDRkYWNiN2FmMGEx
Y2M0ZjI2NTEzYzNlZGE4MzIuLmE1Y2Y2MjcxYzU3MDFhYWM2ODE0MjNkMmE2OTA1NzNkMDliNjg1
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtNjcsNiArNjcsNyBA
QAogI2ltcG9ydCA8V2ViQ29yZS9FdmVudEhhbmRsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZl
bnROYW1lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9G
cmFtZUxvYWRSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0ZyYW1lVHJlZS5oPgpAQCAtMTM2OSw3ICsxMzcwLDcgQEAgc3RhdGljIGJvb2wgbmVlZHNNaWNy
b3NvZnRNZXNzZW5nZXJET01Eb2N1bWVudFdvcmthcm91bmQoKQogICAgIGlmICghcmVzb3VyY2VS
ZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSAmJiAhcmVzb3VyY2VSZXF1ZXN0LnVybCgpLmlzRW1wdHko
KSkKICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldFVSTChbTlNVUkwgVVJMV2l0aFN0cmluZzpb
QCJmaWxlOiIgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6W1tyZXF1ZXN0IFVSTF0gYWJzb2x1dGVT
dHJpbmddXV0pOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXNvdXJjZVJlcXVl
c3QsIGZhbHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVl
c3QoY29yZUZyYW1lLCByZXNvdXJjZVJlcXVlc3QpKTsKIH0KIAogc3RhdGljIE5TVVJMICpjcmVh
dGVVbmlxdWVXZWJEYXRhVVJMKCkKQEAgLTE0MDAsNyArMTQwMSw3IEBAIHN0YXRpYyBOU1VSTCAq
Y3JlYXRlVW5pcXVlV2ViRGF0YVVSTCgpCiAKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRl
RGF0YShXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoZGF0YSksIE1JTUVUeXBlLCBl
bmNvZGluZ05hbWUsIFt1bnJlYWNoYWJsZVVSTCBhYnNvbHV0ZVVSTF0sIHJlc3BvbnNlVVJMKTsK
IAotICAgIF9wcml2YXRlLT5jb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0
aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+bG9hZGVyKCktPmxv
YWQoRnJhbWVMb2FkUmVxdWVzdChfcHJpdmF0ZS0+Y29yZUZyYW1lLCByZXF1ZXN0LCBzdWJzdGl0
dXRlRGF0YSkpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJm
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4IDBhY2Nk
MzM2MmRkNjg3MzRjZmRmMjEzODVlYzM4MDY0ZjJjMTMxYmYuLjM3ZDE4N2I1Mjc3MzM2YjAwZGIz
ODRiNDljMDUwZGYxZTQ4YjdkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3Qu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxl
Y3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKQEAgLTQ4MSw3ICs0ODIsMTAgQEAgUVdl
YkZyYW1lOjpRV2ViRnJhbWUoUVdlYlBhZ2UgKnBhcmVudCwgUVdlYkZyYW1lRGF0YSAqZnJhbWVE
YXRhKQogCiAgICAgaWYgKCFmcmFtZURhdGEtPnVybC5pc0VtcHR5KCkpIHsKICAgICAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZnJhbWVEYXRhLT51cmwsIGZyYW1lRGF0YS0+
cmVmZXJyZXIpOwotICAgICAgICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgZnJh
bWVEYXRhLT5uYW1lLCBmYWxzZSk7CisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Qg
ZnJhbWVSZXF1ZXN0KGQtPmZyYW1lLCByZXF1ZXN0KTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNl
dEZyYW1lTmFtZShmcmFtZURhdGEtPm5hbWUpOworICAgICAgICBmcmFtZVJlcXVlc3Quc2V0U2hv
dWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7CisgICAgICAgIGQtPmZyYW1lLT5sb2FkZXIo
KS0+bG9hZChmcmFtZVJlcXVlc3QpOwogICAgIH0KICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZF
TlRTKQogICAgIGNvbm5lY3QoJmQtPm1fb3JpZW50YXRpb24sIFNJR05BTChyZWFkaW5nQ2hhbmdl
ZCgpKSwgdGhpcywgU0xPVChfcV9vcmllbnRhdGlvbkNoYW5nZWQoKSkpOwpAQCAtODQ2LDcgKzg1
MCw3IEBAIHZvaWQgUVdlYkZyYW1lOjpsb2FkKGNvbnN0IFFOZXR3b3JrUmVxdWVzdCAmcmVxLAog
ICAgIGlmICghYm9keS5pc0VtcHR5KCkpCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoV2Vi
Q29yZTo6Rm9ybURhdGE6OmNyZWF0ZShib2R5LmNvbnN0RGF0YSgpLCBib2R5LnNpemUoKSkpOwog
Ci0gICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIGZhbHNlKTsKKyAgICBkLT5m
cmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChkLT5mcmFtZSwgcmVxdWVzdCkp
OwogCiAgICAgaWYgKGQtPnBhcmVudEZyYW1lKCkpCiAgICAgICAgIGQtPnBhZ2UtPmQtPmluc2lk
ZU9wZW5DYWxsID0gZmFsc2U7CkBAIC04ODMsNyArODg3LDcgQEAgdm9pZCBRV2ViRnJhbWU6OnNl
dEh0bWwoY29uc3QgUVN0cmluZyAmaHRtbCwgY29uc3QgUVVybCAmYmFzZVVybCkKICAgICBjb25z
dCBRQnl0ZUFycmF5IHV0ZjggPSBodG1sLnRvVXRmOCgpOwogICAgIFdURjo6UmVmUHRyPFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcj4gZGF0YSA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHV0
ZjguY29uc3REYXRhKCksIHV0ZjgubGVuZ3RoKCkpOwogICAgIFdlYkNvcmU6OlN1YnN0aXR1dGVE
YXRhIHN1YnN0aXR1dGVEYXRhKGRhdGEsIFdURjo6U3RyaW5nKCJ0ZXh0L2h0bWwiKSwgV1RGOjpT
dHJpbmcoInV0Zi04IiksIEtVUkwoKSk7Ci0gICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJl
cXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5s
b2FkKEZyYW1lTG9hZFJlcXVlc3QoZC0+ZnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKSk7
CiB9CiAKIC8qIQpAQCAtOTEzLDcgKzkxNyw3IEBAIHZvaWQgUVdlYkZyYW1lOjpzZXRDb250ZW50
KGNvbnN0IFFCeXRlQXJyYXkgJmRhdGEsIGNvbnN0IFFTdHJpbmcgJm1pbWVUeXBlLCBjb25zCiAg
ICAgICAgIGVuY29kaW5nID0gZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKG1pbWVUeXBlKTsK
ICAgICB9CiAgICAgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoYnVmZmVy
LCBXVEY6OlN0cmluZyhhY3R1YWxNaW1lVHlwZSksIGVuY29kaW5nLCBLVVJMKCkpOwotICAgIGQt
PmZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOwor
ICAgIGQtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KGQtPmZyYW1lLCBy
ZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSkpOwogfQogCiAvKiEKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAK
aW5kZXggZWRmMjBhNDYwNTAzMzE3NjRkNzlkYmZmMGQzM2JjOTA3YmNiZjY3Yy4uOTlkYjhjMDQ3
YjRhNmUzNTJhNGJiOTAzMzgxZjUxZjliODM3M2VmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAK
QEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRm9jdXND
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgogI2luY2x1ZGUgIkdDQ29udHJvbGxlci5oIgpAQCAtOTc1LDcgKzk3Niw3IEBAIHZv
aWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEFsdGVybmF0ZUh0bWwoUVdlYkZyYW1lKiBm
cmFtZSwgY29uc3QgUVN0cmluZyYKICAgICBjb25zdCBRQnl0ZUFycmF5IHV0ZjggPSBodG1sLnRv
VXRmOCgpOwogICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZGF0YSA9IFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHV0ZjguY29uc3REYXRhKCksIHV0ZjgubGVuZ3Ro
KCkpOwogICAgIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKGRhdGEsIFdU
Rjo6U3RyaW5nKCJ0ZXh0L2h0bWwiKSwgV1RGOjpTdHJpbmcoInV0Zi04IiksIGZhaWxpbmdVcmwp
OwotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEs
IGZhbHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3Qo
Y29yZUZyYW1lLCByZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSkpOwogfQogCiB2b2lkIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0Ojpjb25maXJtQ29tcG9zaXRpb24oUVdlYlBhZ2UqIHBhZ2UsIGNvbnN0
IGNoYXIqIHRleHQpCkBAIC0xMTk5LDQgKzEyMDAsMyBAQCB2b2lkIFFXRUJLSVRfRVhQT1JUIHF0
X2R1bXBfc2V0X2FjY2VwdHNfZWRpdGluZyhib29sIGIpCiB7CiAgICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OmR1bXBTZXRBY2NlcHRzRWRpdGluZyhiKTsKIH0KLQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5k
ZXggMDczMWQ5MzE1OGExNmY5NzMwZTg0MWUyMDgxN2E4ODIyYjRlNjE0OC4uYThmMDU5Mjc2YzFm
NTgyNmJjNjk0ZjUzNmEwMTdmZWNhZDliYjRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBAIC0zNyw2ICsz
Nyw3IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVx
dWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oIgogI2luY2x1ZGUg
IkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMTE2NCw3ICsxMTY1LDcg
QEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0OjpjYWxsRXJyb3JQYWdlRXh0ZW5zaW9uKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGUKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdChiYXNlVXJsKTsKICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+
IGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG91dHB1dC5jb250ZW50LmNv
bnN0RGF0YSgpLCBvdXRwdXQuY29udGVudC5sZW5ndGgoKSk7CiAgICAgV2ViQ29yZTo6U3Vic3Rp
dHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoYnVmZmVyLCBvdXRwdXQuY29udGVudFR5cGUsIG91dHB1
dC5lbmNvZGluZywgZmFpbGluZ1VybCk7Ci0gICAgbV9mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVx
dWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+bG9h
ZChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0KG1fZnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVE
YXRhKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCBl
ZTljZGQ4YzQ0MThkOGEyN2U2ODA0ZjAyMDg5NWJiNTViMjM4MmM1Li5jODU5ZTZhMjU1MDdlNTg0
NGY5NmQwY2ZmNDg4YjE2NzBhMjgyMjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCkBAIC01NTYs
NyArNTU2LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJGcmFtZTo6bG9hZFJlcXVl
c3QoCiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICBj
b3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3RJbXBsLT5yZXNvdXJjZVJlcXVlc3QoKSwg
ZmFsc2UpOworICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChj
b3JlRnJhbWUsIHJlcXVlc3RJbXBsLT5yZXNvdXJjZVJlcXVlc3QoKSkpOwogICAgIHJldHVybiBT
X09LOwogfQogCkBAIC01ODAsNyArNTgwLDcgQEAgdm9pZCBXZWJGcmFtZTo6bG9hZERhdGEoUGFz
c1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGRhdGEsIEJTVFIgbWltZVR5cGUsIEIKIAog
ICAgIC8vIFRoaXMgbWV0aG9kIGlzIG9ubHkgY2FsbGVkIGZyb20gSVdlYkZyYW1lIG1ldGhvZHMs
IHNvIGRvbid0IEFTU0VSVCB0aGF0IHRoZSBGcmFtZSBwb2ludGVyIGlzbid0IG51bGwuCiAgICAg
aWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHRoaXMpKQotICAgICAgICBjb3JlRnJhbWUtPmxv
YWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgICAgIGNv
cmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUsIHJlcXVl
c3QsIHN1YnN0aXR1dGVEYXRhKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW5jZS9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKaW5kZXgg
ZmNjMDRkN2RiNmI2NjFhODdmNTk2ODYzNDVkOTg4Nzk3OGY0M2ZkNi4uOTA1OWE0MDIyMWE3OGU1
Y2VlMjdmMDZhNWQwMGVhNjFkM2RhOWY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50V2luQ0UuaCIKICNpbmNsdWRlICJG
b2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9h
ZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyQ2xpZW50V2luQ0UuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTIxOCw3ICsyMTks
NyBAQCB2b2lkIFdlYlZpZXc6OmxvYWQoY29uc3QgU3RyaW5nICZ1cmwpCiAKIHZvaWQgV2ViVmll
dzo6bG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgJnJlcXVlc3QpCiB7Ci0gICAg
ZnJhbWUoKS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgZmFsc2UpOworICAgIGZyYW1lKCktPmxv
YWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUoKSwgcmVxdWVzdCkpOwogfQogCiB2
b2lkIFdlYlZpZXc6OnJlbG9hZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYkZy
YW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCmluZGV4IGIzNzQxMTNjMDc3
MmExYzdmMjZmMjQ0MDgzMDAyYmIzYWFlOGM4YTkuLjEzN2IzZGZhZDg3NzUzMDJmNzBkM2RmYTFl
NjRmOWVlODdiNDU2MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFd4LmgiCiAjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCkBAIC0zMjIsNyArMzIzLDggQEAgdm9pZCBXZWJGcmFtZTo6U2V0UGFnZVNvdXJj
ZShjb25zdCB3eFN0cmluZyYgc291cmNlLCBjb25zdCB3eFN0cmluZyYgYmFzZVVybCwgY28KICAg
ICAgICAgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoc2hhcmVkQnVmZmVy
LCBtaW1ldHlwZSwgV1RGOjpTdHJpbmcoIlVURi04IiksIFdlYkNvcmU6OmJsYW5rVVJMKCksIHVy
bCk7CiAKICAgICAgICAgbV9pbXBsLT5mcmFtZS0+bG9hZGVyKCktPnN0b3AoKTsKLSAgICAgICAg
bV9pbXBsLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0KHVy
bCksIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisKKyAgICAgICAgbV9pbXBsLT5mcmFtZS0+bG9h
ZGVyKCktPmxvYWQoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdChtX2ltcGwtPmZyYW1lLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QodXJsKSwgc3Vic3RpdHV0ZURhdGEpKTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApp
bmRleCA0NGY1NzVhZDU0ZmZlZTQ4ODUwZjNlMzg5NzNmYWZjNjk4MDIzMGUxLi42NDYyMzg4OGVi
MTQ0YjIwYWYzN2Y4MTI5MzU0MGQ5N2ZkMTQ4NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC05NTAsNyArOTUwLDEwIEBAIHZv
aWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCogcmVx
dWVzdCkKICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBmcmFtZS0+bG9hZGVyKCktPmZpbmRGcmFt
ZUZvck5hdmlnYXRpb24ocmVxdWVzdC0+dGFyZ2V0KCkpOwogICAgIGlmICghdGFyZ2V0RnJhbWUp
IHsKICAgICAgICAgLy8gV2UgZGlkIG5vdCBmaW5kIGEgdGFyZ2V0IGZyYW1lLiBBc2sgb3VyIGZy
YW1lIHRvIGxvYWQgdGhlIHBhZ2UuIFRoaXMgbWF5IG9yIG1heSBub3QgY3JlYXRlIGEgcG9wdXAg
d2luZG93LgotICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdC0+cmVxdWVzdCgp
LCByZXF1ZXN0LT50YXJnZXQoKSwgZmFsc2UpOworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZy
YW1lUmVxdWVzdChmcmFtZSwgcmVxdWVzdC0+cmVxdWVzdCgpKTsKKyAgICAgICAgZnJhbWVSZXF1
ZXN0LnNldEZyYW1lTmFtZShyZXF1ZXN0LT50YXJnZXQoKSk7CisgICAgICAgIGZyYW1lUmVxdWVz
dC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSh0cnVlKTsKKyAgICAgICAgZnJhbWUtPmxv
YWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAKICAgICAgICAgLy8gRklYTUU6IFdlIGRvbid0
IGtub3cgd2hldGhlciB0aGUgd2luZG93IHdhcyBzdWNjZXNzZnVsbHkgY3JlYXRlZCBoZXJlIHNv
IHdlIGp1c3QgYXNzdW1lIHRoYXQgaXQgd29ya2VkLgogICAgICAgICAvLyBJdCdzIGJldHRlciB0
aGFuIG5vdCB0ZWxsaW5nIHRoZSBwbHVnLWluIGFueXRoaW5nLgpAQCAtOTU5LDcgKzk2Miw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCog
cmVxdWVzdCkKICAgICB9CiAKICAgICAvLyBOb3cgYXNrIHRoZSBmcmFtZSB0byBsb2FkIHRoZSBy
ZXF1ZXN0LgotICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LT5yZXF1ZXN0
KCksIGZhbHNlKTsKKyAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVx
dWVzdCh0YXJnZXRGcmFtZSwgcmVxdWVzdC0+cmVxdWVzdCgpKSk7CiAKICAgICBXZWJGcmFtZSog
dGFyZ2V0V2ViRnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KHRhcmdl
dEZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOwogICAgIGlmIChXZWJGcmFt
ZTo6TG9hZExpc3RlbmVyKiBsb2FkTGlzdGVuZXIgPSB0YXJnZXRXZWJGcmFtZS0+bG9hZExpc3Rl
bmVyKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCBjOTFjNzNlZDEwMGQyOTNhNTVkYzFhY2FjMWQ5NDBkODYzOTBmZTg4Li5lZjE3OWFk
ZGJhZDM0ZDFlZWIxZjhmMDU5ZjAyOTRhNDg2NjVhMGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC04MjQsNyArODI0LDcgQEAgdm9pZCBX
ZWJQYWdlOjpsb2FkVVJMUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFNhbmRib3hFeHRlbnMKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBl
cih0aGlzKTsKIAogICAgIG1fc2FuZGJveEV4dGVuc2lvblRyYWNrZXIuYmVnaW5Mb2FkKG1fbWFp
bkZyYW1lLmdldCgpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBtX21haW5GcmFtZS0+
Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIGZhbHNlKTsKKyAgICBtX21haW5G
cmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QobV9tYWlu
RnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0KSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6bG9hZERh
dGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHNoYXJlZEJ1ZmZlciwgY29uc3QgU3RyaW5nJiBN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZ05hbWUsIGNvbnN0IEtVUkwmIGJhc2VVUkws
IGNvbnN0IEtVUkwmIHVucmVhY2hhYmxlVVJMKQpAQCAtODMzLDcgKzgzMyw3IEBAIHZvaWQgV2Vi
UGFnZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHNoYXJlZEJ1ZmZlciwgY29u
c3QgU3RyaW5nJiBNSU1FCiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChiYXNlVVJMKTsK
ICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShzaGFyZWRCdWZmZXIsIE1JTUVUeXBl
LCBlbmNvZGluZ05hbWUsIHVucmVhY2hhYmxlVVJMKTsKLSAgICBtX21haW5GcmFtZS0+Y29yZUZy
YW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7Cisg
ICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1
ZXN0KG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpOwog
fQogCiB2b2lkIFdlYlBhZ2U6OmxvYWRIVE1MU3RyaW5nKGNvbnN0IFN0cmluZyYgaHRtbFN0cmlu
ZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMU3RyaW5nKQpAQCAtODczLDggKzg3Myw3IEBAIHZvaWQg
V2ViUGFnZTo6bGlua0NsaWNrZWQoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFdlYk1vdXNlRXZl
bnQmIGV2ZW50KQogICAgIGlmIChldmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6Ok5vVHlwZSkKICAg
ICAgICAgY29yZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2
ZW50LCBmcmFtZS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwgcGxhdGZvcm0oZXZlbnQpLCAw
LCAwKTsKIAotICAgIGZyYW1lLT5sb2FkZXIoKS0+bG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRS
ZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVl
c3QodXJsKSksIAotICAgICAgICBmYWxzZSwgZmFsc2UsIGNvcmVFdmVudC5nZXQoKSwgMCwgTWF5
YmVTZW5kUmVmZXJyZXIpOworICAgIGZyYW1lLT5sb2FkZXIoKS0+bG9hZEZyYW1lUmVxdWVzdChG
cmFtZUxvYWRSZXF1ZXN0KGZyYW1lLCBSZXNvdXJjZVJlcXVlc3QodXJsKSksIGZhbHNlLCBmYWxz
ZSwgY29yZUV2ZW50LmdldCgpLCAwLCBNYXliZVNlbmRSZWZlcnJlcik7CiB9CiAKIHZvaWQgV2Vi
UGFnZTo6c3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175539</attachid>
            <date>2012-11-21 15:45:59 -0800</date>
            <delta_ts>2012-11-26 15:33:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102151-20121121154345.patch</filename>
            <type>text/plain</type>
            <size>57813</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M0ZGFhODVhZWQyZTkw
Nzg2N2U0ZGNlNmVkY2VmNGQ2OGNjNTgzMy4uNGU3OTliYTA0YzI5YWYwNzNjZjIwMjkxMmMwYWIx
YmJkMzJmOGYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTIwICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0
ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9h
ZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVGhl
cmUncyBhIEZJWE1FIHRoYXQgd2UgaGF2ZSB0b28gbWFueSBGcmFtZUxvYWRlcjo6bG9hZCooKSBm
dW5jdGlvbnMuIFRoaXMgcGF0Y2ggY29uc29saWRhdGVzIDMgaW50byAxLgorICAgICAgICBUaGVy
ZSBhcmUgc3RpbGwgYSBmZXcgbW9yZSBsb2FkIGZ1bmN0aW9ucyB0aGF0IHdpbGwgYmUgY29uc29s
aWRhdGVkIGxhdGVyLiBVc2luZyBGcmFtZUxvYWRSZXF1ZXN0IGFzCisgICAgICAgIHRoZSBpbnRl
cmZhY2UgaW50byBGcmFtZUxvYWRlciB3aWxsIGFsc28gcHJvdmlkZSBhIHBsYWNlIHRvIHBhc3Mg
aW4gdGhlIGluaXRpYXRvci4gRmluYWxseSwgdGhpcyBtYXRjaGVzCisgICAgICAgIHRoZSByZWZh
Y3RvcmluZyBkb25lIHdpdGggQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGFuZCBDYWNoZWRSZXNvdXJj
ZUxvYWRlci4KKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFs
aXR5LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OkZyYW1l
TG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2V0TG9j
a0hpc3RvcnkpOiBUaGVzZSBhcmUgZm9ybWVyIGFyZ3VtZW50cyB0byBsb2FkKCkuCisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0Ojpsb2NrSGlzdG9yeSk6IERpdHRvLgorICAgICAg
ICAoRnJhbWVMb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0
OjpzZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnN1YnN0aXR1dGVEYXRhKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpzZXRTdWJzdGl0dXRlRGF0
YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6aGFzU3Vic3Rp
dHV0ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOiBObyBjaGFuZ2UgaW4gYmVoYXZpb3Is
IGp1c3QgbWVyZ2VkIGl0IGFsbCBpbnRvIG9uZSBmdW5jdGlvbi4KKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBwYWdlL0Ry
YWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpwZXJm
b3JtRHJhZyk6CisKIDIwMTItMTEtMjEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzUzMzgsIHIx
MzUzNTksIGFuZCByMTM1Mzc4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggMDFm
YWU1NjVlY2IxN2Q2MWE5MmM2MmE5NWIzNDAwZWJlMjYzNmM0Zi4uNWY2MDhkOWNjYTcyNWZmZDY4
YWM4MmUwNTI4NmViYWFlYjU0MGNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTItMTEtMjAgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50
byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmxvYWQpOgorICAgICAgICAoQmxh
Y2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6bG9hZFN0cmluZyk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRGYWlsUHJv
dmlzaW9uYWxMb2FkKToKKwogMjAxMi0xMS0yMSAgS29ucmFkIFBpYXNjaWsgIDxrcGlhc2Npa0By
aW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBQcmV2ZW50IHNjcmVlbiBmcm9tIGRpbW1p
bmcgb24gZGV2aWNlIHdoZW4gaW5zcGVjdG9yIGZyb250LWVuZCBpcyBjb25uZWN0ZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggODMwNjFlMTA3YzVmMGM1YzNmYjhkNmFkNGM2MjJlODkz
MDIxOWU5NC4uYjRkNDUwZjQ2NWFkYWUxZDg3Nzg5OTFkMzdlNDY3M2U1ODY3NGYyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMS0yMCAgSmFtZXMg
U2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUg
RnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRS
ZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgICogc3Jj
L1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6bG9hZFJl
cXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmxvYWREYXRhKToKKyAgICAg
ICAgKiBzcmMvV2ViU2hhcmVkV29ya2VySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNo
YXJlZFdvcmtlckltcGw6OmluaXRpYWxpemVMb2FkZXIpOgorCiAyMDEyLTExLTIxICBUaWVuLVJl
biBDaGVuICA8dHJjaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVc2UgbV93ZWJWaWV3LT5z
aXplKCkgZm9yIHZpZXdwb3J0IHVwZGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDJmOTc0ODNmYThm
OTViM2E3NWIzMGUxNWEyZjg2ZjUyMzljYjJmNTUuLjExY2IwYzBmYTIzNjVkN2JjZTVmOTg3MmYz
MjA5OTRkNjJjNmVhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0x
MS0yMCAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
Q29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcg
YSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisg
ICAgICAgICogZXdrL2V3a19mcmFtZS5jcHA6CisgICAgICAgIChfZXdrX2ZyYW1lX2NvbnRlbnRz
X3NldF9pbnRlcm5hbCk6CisKIDIwMTItMTEtMjEgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFs
bGFuLmplbnNlbkBkaWdpYS5jb20+CiAKICAgICAgICAgRGlzYW1iaWd1YXRlIGlubmVyTm9kZUZy
YW1lUG9pbnQgYW5kIG1haW5GcmFtZVBvaW50IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDIzZGJmM2Q0
OWMwMzM1NmU1OWUzNTdmYmNkZjIxYmI1YjljM2M2MmIuLjEwMzAwNmZhMTIwYTk0YzRlMjY4YzI2
MjE1YWY2YjFiZDI5MjRiM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
Mi0xMS0yMCAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtp
bmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgor
CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHdlYmtpdF93
ZWJfZnJhbWVfbG9hZF91cmkpOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX2RhdGEp
OgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX3JlcXVlc3QpOgorCiAyMDEyLTExLTIx
ICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCiAgICAg
ICAgIERpc2FtYmlndWF0ZSBpbm5lck5vZGVGcmFtZVBvaW50IGFuZCBtYWluRnJhbWVQb2ludApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCmluZGV4IDg2ZjkxYjMwMDdhNjY4N2Q1NmQ1YmZlNGM2YTY0ZmJiYjNhMTI0
ODUuLjBjYjdhZWIyZTgzMzg5NzRhNzRlNmQzN2Q1YWU1NDdlY2M2MmY3YWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0yMCAgSmFtZXMgU2ltb25zZW4gIDxzaW1v
bmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6Omxv
YWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgICogUGx1Z2lucy9XZWJQbHVnaW5D
b250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgt
W1dlYkZyYW1lIGxvYWRSZXF1ZXN0Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfbG9hZERhdGE6
TUlNRVR5cGU6dGV4dEVuY29kaW5nTmFtZTpiYXNlVVJMOnVucmVhY2hhYmxlVVJMOl0pOgorCiAy
MDEyLTExLTIxICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29t
PgogCiAgICAgICAgIERpc2FtYmlndWF0ZSBpbm5lck5vZGVGcmFtZVBvaW50IGFuZCBtYWluRnJh
bWVQb2ludApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAwMGI5NWUxNDIzMDljNjcwOGRhZjkyOWVkZmEyOTY3
OTc5NzYxNzI3Li4yZWY5ODRjYWU3NjcxNzJhZTBiZWE0MDk2YjczNmFkNzE2ZjIyMmMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTExLTIwICBKYW1lcyBTaW1vbnNlbiAg
PHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRl
cjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgKiBBcGkvcXdlYmZyYW1l
LmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZTo6UVdlYkZyYW1lKToKKyAgICAgICAgKFFXZWJGcmFt
ZTo6bG9hZCk6CisgICAgICAgIChRV2ViRnJhbWU6OnNldEh0bWwpOgorICAgICAgICAoUVdlYkZy
YW1lOjpzZXRDb250ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0QWx0
ZXJuYXRlSHRtbCk6CisgICAgICAgIChxdF9kdW1wX3NldF9hY2NlcHRzX2VkaXRpbmcpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6Y2FsbEVycm9yUGFnZUV4dGVuc2lvbik6CisK
IDIwMTItMTEtMjEgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5j
b20+CiAKICAgICAgICAgRGlzYW1iaWd1YXRlIGlubmVyTm9kZUZyYW1lUG9pbnQgYW5kIG1haW5G
cmFtZVBvaW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMmU0MGRhZDUyY2JiMGQzOTEyNTZhZTIyMzQ3
ZGI1NjY4MGZkMWI0Ny4uNGQ0MTcyNzI5MDBhNjNhNzRiNmI3OTAyYzVjYjExMjc1NTc1MTVjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTExLTIwICBKYW1lcyBTaW1v
bnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFt
ZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVl
c3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1
MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgKiBXZWJGcmFt
ZS5jcHA6CisgICAgICAgIChXZWJGcmFtZTo6bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViRnJh
bWU6OmxvYWREYXRhKToKKwogMjAxMi0xMS0yMSAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxs
YW4uamVuc2VuQGRpZ2lhLmNvbT4KIAogICAgICAgICBEaXNhbWJpZ3VhdGUgaW5uZXJOb2RlRnJh
bWVQb2ludCBhbmQgbWFpbkZyYW1lUG9pbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggMGIxY2Fl
MTMxNzcyNGEzYTNmNGVkMmNmZTlkOGRhNGJkNTM5NzRkNi4uZTM0NTMwZGYwMGFiY2Y1MGJkMzY4
MTVkYjMwOTYyYjNlMDM4ODQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMi0xMS0yMCAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlv
biB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJh
cnRoLgorCisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojpsb2FkKToK
KwogMjAxMi0xMS0yMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNTI5NS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cK
aW5kZXggNGM0M2VkYzhlMGNmNThlMzZlZDU0MDBiYzZhOTlhOWNmMTY1ODVlZC4uNzY3ODlmYzE3
NDM5NDE5MDBkOGNmNmViMDhjODlmNjg3Y2E3ZDA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMi0xMS0yMCAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBm
dW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgorCisgICAgICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZTo6U2V0UGFnZVNvdXJjZSk6CisKIDIwMTItMTEtMjAgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxMzUyOTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2QyN2NjMjMxYjQ2MWY2MGM3NTliZTJhZWY1ZjMy
OGE0YmI2YzBlZC4uYzcyMDEyMWJkZWQ0YzBmYjQyYzgwM2EyMDliYTg3NDRkYjcwYzY1NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTExLTIwICBKYW1lcyBTaW1vbnNlbiAgPHNp
bW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6
bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnBlcmZvcm1G
cmFtZUxvYWRVUkxSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGEpOgorCiAyMDEyLTExLTIxICBIdWFuZyBEb25n
c3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIENvb3JkaW5hdGVkIEdy
YXBoaWNzOiByZWZhY3RvciBjaGFuZ2luZyBjaGlsZHJlbiBjb2RlIGluIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODgxM2NkOTE5M2U2OGFmYjkxNTI0
NzhiOTczMGQyZDNkZWZhODgzMC4uM2M5ZmY2MTYxNzA1NWZmNGMxOGQzODY2MjVlNGFlYmYwOTc3
ZThjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2MzIsNiArMTYzMiw3IEBAIFNFVChXZWJD
b3JlX1NPVVJDRVMKICAgICBsb2FkZXIvRlRQRGlyZWN0b3J5UGFyc2VyLmNwcAogICAgIGxvYWRl
ci9Gb3JtU3RhdGUuY3BwCiAgICAgbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAorICAgIGxvYWRl
ci9GcmFtZUxvYWRSZXF1ZXN0LmNwcAogICAgIGxvYWRlci9GcmFtZUxvYWRlci5jcHAKICAgICBs
b2FkZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuY3BwCiAgICAgbG9hZGVyL0hpc3RvcnlDb250
cm9sbGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMTJiYmE5MTAzNzg5
NWNlZTcxN2ZmNTBkODIyMjljNWE4MmE4YWI5Ni4uZTQ3ZGNjMzA2YjIyMmViNDlhYzY3NjY2YjJh
ZjA3YmFmZGIwODgyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODc0LDEz
ICszODc0LDE0IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Zvcm1TdGF0ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uaCBcCisJU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkUmVxdWVzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJUeXBlcy5oIFwKLQlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVz
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5UGFyc2VyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeVBhcnNlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGFk
NGE4ZjU4NzAzYjQyNzkwZmFkZjAxYjIyZjIyNjAxMzBiZmQzNDYuLjRmZjVkOTBjM2Q2ZDlmNjZk
OGRjYmViYjcyODRmNGNhNWQ1MTJmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtODMyLDYgKzgzMiw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwIFwKICAgICBsb2FkZXIv
Rm9ybVN0YXRlLmNwcCBcCiAgICAgbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBcCisgICAgbG9h
ZGVyL0ZyYW1lTG9hZFJlcXVlc3QuY3BwIFwKICAgICBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwIFwK
ICAgICBsb2FkZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuY3BwIFwKICAgICBsb2FkZXIvSGlz
dG9yeUNvbnRyb2xsZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOTlhMDQ0YmIzYWQ2
YzA4Y2FiY2YxOGY2MWZhZDAyNzdjMjA2OTFjNC4uZTRhMjQ1NjllZGYzOTVmZjdlYjEyZWM2MDA4
OWYxZTMyMjg1ZGVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEwNyw5ICsxMDcsNyBAQCBf
X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjN0aW1lT2ZMYXN0Q29tcGxldGVkTG9hZEV2CiBfX1pO
N1dlYkNvcmUxMUZyYW1lTG9hZGVyMjZyZWxvYWRXaXRoT3ZlcnJpZGVFbmNvZGluZ0VSS04zV1RG
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIzMnNldE9yaWdpbmFsVVJMRm9yRG93
bmxvYWRSZXF1ZXN0RVJOU18xNVJlc291cmNlUmVxdWVzdEUKIF9fWk43V2ViQ29yZTExRnJhbWVM
b2FkZXI0aW5pdEV2Ci1fX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNVJlc291
cmNlUmVxdWVzdEVSS04zV1RGNlN0cmluZ0ViCi1fX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxv
YWRFUktOU18xNVJlc291cmNlUmVxdWVzdEVSS05TXzE0U3Vic3RpdHV0ZURhdGFFYgotX19aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFYgorX19aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RQogX19aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjZyZWxvYWRFYgogX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjlz
ZXRPcGVuZXJFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTExSGlzdG9yeUl0ZW0xMHRhcmdldEl0
ZW1FdgpAQCAtNDMxLDYgKzQyOSw3IEBAIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTEy
Um90YXRpb25SYXRlNmNyZWF0ZUViZGJkYmQKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0
YTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlMwXzEyQWNjZWxlcmF0aW9uRUVFUzRfTlMyX0lO
UzBfMTJSb3RhdGlvblJhdGVFRUViZAogX19aTjdXZWJDb3JlMTZGb250RmFsbGJhY2tMaXN0MTVy
ZWxlYXNlRm9udERhdGFFdgogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhRDFFdgorX19a
TjdXZWJDb3JlMTZGcmFtZUxvYWRSZXF1ZXN0QzFFUE5TXzVGcmFtZUVSS05TXzE1UmVzb3VyY2VS
ZXF1ZXN0RVJLTlNfMTRTdWJzdGl0dXRlRGF0YUUKIF9fWk43V2ViQ29yZTE2SFRNTElucHV0RWxl
bWVudDhzZXRWYWx1ZUVSS04zV1RGNlN0cmluZ0VOU18yMlRleHRGaWVsZEV2ZW50QmVoYXZpb3JF
CiBfX1pON1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQxM3NldEF1dG9maWxsZWRFYgogX19aTjdX
ZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTVzZXRFZGl0aW5nVmFsdWVFUktOM1dURjZTdHJpbmdF
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggOTViZDk2NGQ3YjBhNzhmNzc3ZjI5Nzg2NTc3YjdlM2Y1NzFl
NzQwMC4uYjJjMTg3YmQ4OGM4NzRlMThiZmIyNWE1YzE1ZTJjZjk3MTg5Y2JlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtMjk2NCw2ICsyOTY0LDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvRlRQRGly
ZWN0b3J5UGFyc2VyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9Gb3JtU3RhdGUuY3BwJywKICAg
ICAgICAgICAgICdsb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwJywKKyAgICAgICAgICAgICdsb2Fk
ZXIvRnJhbWVMb2FkUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAn
LAogICAgICAgICAgICAgJ2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlMDA0ODQwM2RjM2U5
MjJjY2VhODIzOTE1OWFmNTYxMWZiY2Y3MWNmLi40NDUzOWMwYzVhZTZkZDM1MThlZGE2NzFmMTE3
NDVlNmFlZTQ0ZTExIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagpAQCAtMjc1OTAsNiArMjc1OTAsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXEZyYW1lTG9hZFJlcXVlc3QuY3BwIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJc
RnJhbWVMb2FkUmVxdWVzdC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNzJjNjU0MmE4YTI0
YjY4ZDUwY2IxODA1M2RlYzU1M2YxMDIwMzc3Li5jZWI2Nzc1NjcyYTFhYTU2ODA2N2UyYzIxYWFi
YmY0NzMxMTU5OGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yOTg5LDYgKzI5ODksNyBAQAogCQk4NjFDMkVBNDEzRkI0RkRE
MDAwNjJBQkIgLyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBEb2N1
bWVudExvYWRUaW1pbmcuY3BwICovOyB9OwogCQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIgLyog
UmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg2MUMyRUE1MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1p
bmcuY3BwICovOyB9OwogCQk4NjI0M0QwMTExQkMzMUY3MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZl
clZpZXdIZWxwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg2MjQzRDAwMTFCQzMxRjcwMENDMDA2QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5o
ICovOyB9OworCQk4NjQyNUZFMjE2NUIyMUIwMDAyRDBDOTQgLyogRnJhbWVMb2FkUmVxdWVzdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjQyNUZF
MTE2NUIyMUIwMDAyRDBDOTQgLyogRnJhbWVMb2FkUmVxdWVzdC5jcHAgKi87IH07CiAJCTg2NTEy
RURFMTU0QTJBRUYwMEE5MDQyNiAvKiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2NTEyRURCMTU0QTJB
RUUwMEE5MDQyNiAvKiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcCAqLzsgfTsKIAkJODY1
MTJFREYxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2NTEyRURDMTU0QTJB
RUYwMEE5MDQyNiAvKiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmggKi87IH07CiAJCTg2QkUz
NDAwMTUwNThDQjIwMENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QkUzM0ZBMTUwNThDQjIwMENFMEZE
OCAvKiBQZXJmb3JtYW5jZUVudHJ5LmNwcCAqLzsgfTsKQEAgLTM0NDgsNyArMzQ0OSw2IEBACiAJ
CTk3MTJBNUFFMTUwMDRFREEwMDQ4QUYxMCAvKiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTU1MTUw
MDRFREEwMDQ4QUYxMCAvKiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaCAqLzsgfTsKIAkJOTcx
MkE1QjAxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkFueS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU1NzE1MDA0RURBMDA0OEFGMTAgLyogSURC
QW55LmNwcCAqLzsgfTsKIAkJOTcxMkE1QjExNTAwNEVEQTAwNDhBRjEwIC8qIElEQkFueS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1NTgxNTAw
NEVEQTAwNDhBRjEwIC8qIElEQkFueS5oICovOyB9OwotCQk5NzEyQTVFNTE1MDA0RURBMDA0OEFG
MTAgLyogSURCQmFja2luZ1N0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3MTJBNThDMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJCYWNraW5nU3Rv
cmUuY3BwICovOyB9OwogCQk5NzEyQTVCMzE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFja2luZ1N0
b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEy
QTU1QTE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFja2luZ1N0b3JlLmggKi87IH07CiAJCTk3MTJB
NUI0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJDYWxsYmFja3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTVCMTUwMDRFREEwMDQ4QUYxMCAvKiBJ
REJDYWxsYmFja3MuaCAqLzsgfTsKIAkJOTcxMkE1QjUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkN1
cnNvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzEyQTU1QzE1MDA0RURBMDA0OEFGMTAgLyogSURCQ3Vyc29yLmNwcCAqLzsgfTsKQEAgLTM0ODgs
NiArMzQ4OCw3IEBACiAJCTk3MTJBNURGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlQYXRoLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4NjE1
MDA0RURBMDA0OEFGMTAgLyogSURCS2V5UGF0aC5oICovOyB9OwogCQk5NzEyQTVFMjE1MDA0RURB
MDA0OEFGMTAgLyogSURCS2V5UmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1ODkxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVJhbmdl
LmNwcCAqLzsgfTsKIAkJOTcxMkE1RTMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVJhbmdlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4QTE1
MDA0RURBMDA0OEFGMTAgLyogSURCS2V5UmFuZ2UuaCAqLzsgfTsKKwkJOTcxMkE1RTUxNTAwNEVE
QTAwNDhBRjEwIC8qIElEQkJhY2tpbmdTdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4QzE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFj
a2luZ1N0b3JlLmNwcCAqLzsgfTsKIAkJOTcxMkE1RTcxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkxl
dmVsREJDb2RpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTcxMkE1OEUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkxldmVsREJDb2RpbmcuY3BwICov
OyB9OwogCQk5NzEyQTVFODE1MDA0RURBMDA0OEFGMTAgLyogSURCTGV2ZWxEQkNvZGluZy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1OEYxNTAw
NEVEQTAwNDhBRjEwIC8qIElEQkxldmVsREJDb2RpbmcuaCAqLzsgfTsKIAkJOTcxMkE1RTkxNTAw
NEVEQTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTkwMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJP
YmplY3RTdG9yZS5jcHAgKi87IH07CkBAIC05MTA2LDggKzkxMDcsOCBAQAogCQk2NUY4MDY5NzA1
NEQ5Rjg2MDA4QkY3NzYgLyogQmxvY2tFeGNlcHRpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmxvY2tFeGNlcHRpb25zLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
IAkJNjVGRUE4NjgwOTgzM0FERTAwQkVENEFCIC8qIFBhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2QjM0ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2VQdHIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlUHRyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZDNjM4
ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzLmNwcDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2QzYzODg5M0E5NkNDRUU1MEM4
Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyog
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjFDNkJGMTEyNjMzODUwMEE3QkUwMiAvKiBH
cmFwaGljc0NvbnRleHQzRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHQzRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZF
MjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRENHLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDYgLyog
SlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjIzLDYgKzEwMjI0LDcgQEAKIAkJODYxQzJFQTMxM0ZC
NEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NjFDMkVBNTEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2Fk
VGltaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNl
TG9hZFRpbWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2MjQzRDAwMTFC
QzMxRjcwMENDMDA2QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4NjQyNUZFMTE2NUIyMUIwMDAyRDBDOTQgLyogRnJhbWVMb2Fk
UmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFtZUxv
YWRSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODY1MTJFREIxNTRB
MkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2NTEyRURDMTU0QTJBRUYwMEE5MDQyNiAv
KiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODY1MTJFREQxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VU
aW1pbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NDIsNyArMTA3NDQsNiBA
QAogCQk5NzEyQTU4QTE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5UmFuZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURCS2V5UmFuZ2UuaDsgcGF0aCA9IE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJB
NThCMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlSYW5nZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBu
YW1lID0gSURCS2V5UmFuZ2UuaWRsOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFu
Z2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU4QzE1MDA0RURBMDA0
OEFGMTAgLyogSURCQmFja2luZ1N0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IElEQkJhY2tpbmdTdG9yZS5jcHA7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9J
REJCYWNraW5nU3RvcmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzEyQTU4
RDE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFja2luZ1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IElEQkJhY2tpbmdTdG9yZS5oOyBwYXRoID0gTW9kdWxlcy9pbmRleGVk
ZGIvSURCQmFja2luZ1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJB
NThFMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJMZXZlbERCQ29kaW5nLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElEQkxldmVsREJDb2RpbmcuY3BwOyBwYXRoID0gTW9k
dWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk3MTJBNThGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJMZXZlbERCQ29kaW5nLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQkxldmVsREJDb2RpbmcuaDsgcGF0
aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTcxMkE1OTAxNTAwNEVEQTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3Jl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElEQk9iamVjdFN0b3Jl
LmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwODA4LDYgKzIwODA5LDcgQEAKIAkJCQlEMDAwRUJB
MDExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuY3BwICovLAogCQkJ
CUQwMDBFQkExMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oICov
LAogCQkJCTkzQjc3QTM3MEFERDc5MjUwMEVBNEI4MSAvKiBGcmFtZUxvYWRlclR5cGVzLmggKi8s
CisJCQkJODY0MjVGRTExNjVCMjFCMDAwMkQwQzk0IC8qIEZyYW1lTG9hZFJlcXVlc3QuY3BwICov
LAogCQkJCTY1ODQzNjg1MEFFMDFCNzQwMEU1Mzc1MyAvKiBGcmFtZUxvYWRSZXF1ZXN0LmggKi8s
CiAJCQkJNjI4RDIxNEQxMjEzMUVGNDAwNTVEQ0ZDIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCAqLywKIAkJCQk1MUM4MUI4NzBDNDQyMkY3MDAxOUVDRTMgLyogRlRQRGlyZWN0b3J5UGFyc2Vy
LmNwcCAqLywKQEAgLTI4ODkwLDYgKzI4ODkyLDcgQEAKIAkJCQkxRTUwMDg0ODE2NTE2QUQ4MDBC
N0UwOTggLyogUmVuZGVyVGhlbWVNYWNTaGFyZWQubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDdF
MDUyMjE2NTFDMjgyMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDQ3OTU4MDUxNjQzQjRCMjAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRU
eXBlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg2NDI1RkUyMTY1QjIxQjAwMDJEMEM5NCAvKiBG
cmFtZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZFJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxNDY3ODgyM2ViZTUzYzQ3M2M3NDQ1
NmRlNWFhNDg0NjM4MDIyMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkZyYW1lLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRnJhbWVMb2Fk
UmVxdWVzdDo6RnJhbWVMb2FkUmVxdWVzdChGcmFtZSogZnJhbWUsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURh
dGEpCisgICAgOiBtX3JlcXVlc3RlcihmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KSkKKyAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKKyAgICAsIG1fbG9j
a0hpc3RvcnkoZmFsc2UpCisgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNl
KQorICAgICwgbV9zdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0YSkKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgK
aW5kZXggZDY1YTliNWZhYzJmNjIwZjk3MjIxMzM1ZTQ3ZTQyODgwOTZjN2MzMy4uMWI3Nzg5OTg2
MjQxYzc5MDRiN2Y1OWQzMTVhOTI1MTgzNzk5ODE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkUmVxdWVzdC5oCkBAIC0yOCwxOSArMjgsMjUgQEAKIAogI2luY2x1ZGUgIlJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU3Vi
c3RpdHV0ZURhdGEuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRnJhbWU7CiAKIHN0
cnVjdCBGcmFtZUxvYWRSZXF1ZXN0IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBGcmFtZUxvYWRS
ZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIpCiAgICAgICAgIDogbV9yZXF1ZXN0ZXIo
cmVxdWVzdGVyKQorICAgICAgICAsIG1fbG9ja0hpc3RvcnkoZmFsc2UpCisgICAgICAgICwgbV9z
aG91bGRDaGVja05ld1dpbmRvd1BvbGljeShmYWxzZSkKICAgICB7CiAgICAgfQogCiAgICAgRnJh
bWVMb2FkUmVxdWVzdChTZWN1cml0eU9yaWdpbiogcmVxdWVzdGVyLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlc291cmNlUmVxdWVzdCkKICAgICAgICAgOiBtX3JlcXVlc3RlcihyZXF1ZXN0ZXIp
CiAgICAgICAgICwgbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQorICAgICAgICAs
IG1fbG9ja0hpc3RvcnkoZmFsc2UpCisgICAgICAgICwgbV9zaG91bGRDaGVja05ld1dpbmRvd1Bv
bGljeShmYWxzZSkKICAgICB7CiAgICAgfQogCkBAIC00OCw5ICs1NCwxMyBAQCBwdWJsaWM6CiAg
ICAgICAgIDogbV9yZXF1ZXN0ZXIocmVxdWVzdGVyKQogICAgICAgICAsIG1fcmVzb3VyY2VSZXF1
ZXN0KHJlc291cmNlUmVxdWVzdCkKICAgICAgICAgLCBtX2ZyYW1lTmFtZShmcmFtZU5hbWUpCisg
ICAgICAgICwgbV9sb2NrSGlzdG9yeShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3
V2luZG93UG9saWN5KGZhbHNlKQogICAgIHsKICAgICB9CiAKKyAgICBGcmFtZUxvYWRSZXF1ZXN0
KEZyYW1lKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmID0g
U3Vic3RpdHV0ZURhdGEoKSk7CisKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBt
X3Jlc291cmNlUmVxdWVzdC5pc0VtcHR5KCk7IH0KIAogICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
KiByZXF1ZXN0ZXIoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Rlci5nZXQoKTsgfQpAQCAtNjEs
MTAgKzcxLDIzIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZnJhbWVOYW1lOyB9CiAgICAgdm9pZCBzZXRGcmFtZU5hbWUoY29uc3QgU3Ry
aW5nJiBmcmFtZU5hbWUpIHsgbV9mcmFtZU5hbWUgPSBmcmFtZU5hbWU7IH0KIAorICAgIHZvaWQg
c2V0TG9ja0hpc3RvcnkoYm9vbCBsb2NrSGlzdG9yeSkgeyBtX2xvY2tIaXN0b3J5ID0gbG9ja0hp
c3Rvcnk7IH0KKyAgICBib29sIGxvY2tIaXN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9sb2NrSGlz
dG9yeTsgfQorCisgICAgdm9pZCBzZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeShib29sIGNo
ZWNrUG9saWN5KSB7IG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kgPSBjaGVja1BvbGljeTsg
fQorICAgIGJvb2wgc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koKSBjb25zdCB7IHJldHVybiBt
X3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5OyB9CisKKyAgICBjb25zdCBTdWJzdGl0dXRlRGF0
YSYgc3Vic3RpdHV0ZURhdGEoKSBjb25zdCB7IHJldHVybiBtX3N1YnN0aXR1dGVEYXRhOyB9Cisg
ICAgdm9pZCBzZXRTdWJzdGl0dXRlRGF0YShjb25zdCBTdWJzdGl0dXRlRGF0YSYgZGF0YSkgeyBt
X3N1YnN0aXR1dGVEYXRhID0gZGF0YTsgfQorICAgIGJvb2wgaGFzU3Vic3RpdHV0ZURhdGEoKSB7
IHJldHVybiBtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKTsgfQorCiBwcml2YXRlOgogICAgIFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9yZXF1ZXN0ZXI7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1f
cmVzb3VyY2VSZXF1ZXN0OwogICAgIFN0cmluZyBtX2ZyYW1lTmFtZTsKKyAgICBib29sIG1fbG9j
a0hpc3Rvcnk7CisgICAgYm9vbCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5OworICAgIFN1
YnN0aXR1dGVEYXRhIG1fc3Vic3RpdHV0ZURhdGE7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAppbmRleCA0MzdhMWY2MTY0NDU3N2NmOTFiOTU3M2JmMGY5M2Q1OGNl
ZTZjODQ2Li5jYjEyMzVlNDg2ZTAxNDRhZTY4MWE2MWM0ZjRjNzY5Njg4NzA0MTJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTEyNTIsMzYgKzEyNTIsMzQgQEAgU3Vi
c3RpdHV0ZURhdGEgRnJhbWVMb2FkZXI6OmRlZmF1bHRTdWJzdGl0dXRlRGF0YUZvclVSTChjb25z
dCBLVVJMJiB1cmwpCiAgICAgcmV0dXJuIFN1YnN0aXR1dGVEYXRhKFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKGVuY29kZWRTcmNkb2MuZGF0YSgpLCBlbmNvZGVkU3JjZG9jLmxlbmd0aCgpKSwgInRleHQv
aHRtbCIsICJVVEYtOCIsIEtVUkwoKSk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGxvY2tIaXN0b3J5KQordm9pZCBGcmFt
ZUxvYWRlcjo6bG9hZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBwYXNzZWRSZXF1ZXN0KQogewot
ICAgIGxvYWQocmVxdWVzdCwgZGVmYXVsdFN1YnN0aXR1dGVEYXRhRm9yVVJMKHJlcXVlc3QudXJs
KCkpLCBsb2NrSGlzdG9yeSk7Ci19CisgICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KHBhc3Nl
ZFJlcXVlc3QpOwogCi12b2lkIEZyYW1lTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhLCBib29sIGxv
Y2tIaXN0b3J5KQotewogICAgIGlmIChtX2luU3RvcEFsbExvYWRlcnMpCiAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgCi0gICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBsb2FkZXIgPSBtX2NsaWVu
dC0+Y3JlYXRlRG9jdW1lbnRMb2FkZXIocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpOwotICAgIGlm
IChsb2NrSGlzdG9yeSAmJiBtX2RvY3VtZW50TG9hZGVyKQotICAgICAgICBsb2FkZXItPnNldENs
aWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeShtX2RvY3VtZW50TG9hZGVyLT5kaWRDcmVhdGVH
bG9iYWxIaXN0b3J5RW50cnkoKSA/IG1fZG9jdW1lbnRMb2FkZXItPnVybEZvckhpc3RvcnkoKS5z
dHJpbmcoKSA6IG1fZG9jdW1lbnRMb2FkZXItPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9y
eSgpKTsKLSAgICBsb2FkKGxvYWRlci5nZXQoKSk7Ci19CiAKLXZvaWQgRnJhbWVMb2FkZXI6Omxv
YWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFt
ZSwgYm9vbCBsb2NrSGlzdG9yeSkKLXsKLSAgICBpZiAoZnJhbWVOYW1lLmlzRW1wdHkoKSkgewot
ICAgICAgICBsb2FkKHJlcXVlc3QsIGxvY2tIaXN0b3J5KTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KKyAgICBpZiAoIXJlcXVlc3QuaGFzU3Vic3RpdHV0ZURhdGEoKSkgeworICAgICAgICBpZiAo
IXJlcXVlc3QuZnJhbWVOYW1lKCkuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBGcmFtZSogZnJh
bWUgPSBmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKHJlcXVlc3QuZnJhbWVOYW1lKCkpOworICAgICAg
ICAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5sb2FkZXIoKSAhPSB0aGlzKSB7CisgICAgICAgICAg
ICAgICAgZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogCi0gICAgRnJhbWUqIGZyYW1lID0gZmlu
ZEZyYW1lRm9yTmF2aWdhdGlvbihmcmFtZU5hbWUpOwotICAgIGlmIChmcmFtZSkgewotICAgICAg
ICBmcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgbG9ja0hpc3RvcnkpOwotICAgICAgICBy
ZXR1cm47CisgICAgICAgIGlmIChyZXF1ZXN0LnNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KCkp
IHsKKyAgICAgICAgICAgIHBvbGljeUNoZWNrZXIoKS0+Y2hlY2tOZXdXaW5kb3dQb2xpY3koTmF2
aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBOYXZpZ2F0aW9uVHlwZU90
aGVyKSwgRnJhbWVMb2FkZXI6OmNhbGxDb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeSwg
cmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgMCwgcmVxdWVzdC5mcmFtZU5hbWUoKSwgdGhpcyk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICByZXF1ZXN0LnNldFN1
YnN0aXR1dGVEYXRhKGRlZmF1bHRTdWJzdGl0dXRlRGF0YUZvclVSTChyZXF1ZXN0LnJlc291cmNl
UmVxdWVzdCgpLnVybCgpKSk7CiAgICAgfQogCi0gICAgcG9saWN5Q2hlY2tlcigpLT5jaGVja05l
d1dpbmRvd1BvbGljeShOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmlnYXRpb25UeXBlT3Ro
ZXIpLCBGcmFtZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5LCBy
ZXF1ZXN0LCAwLCBmcmFtZU5hbWUsIHRoaXMpOworICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4g
bG9hZGVyID0gbV9jbGllbnQtPmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QucmVzb3VyY2VS
ZXF1ZXN0KCksIHJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKSk7CisgICAgaWYgKHJlcXVlc3QubG9j
a0hpc3RvcnkoKSAmJiBtX2RvY3VtZW50TG9hZGVyKQorICAgICAgICBsb2FkZXItPnNldENsaWVu
dFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeShtX2RvY3VtZW50TG9hZGVyLT5kaWRDcmVhdGVHbG9i
YWxIaXN0b3J5RW50cnkoKSA/IG1fZG9jdW1lbnRMb2FkZXItPnVybEZvckhpc3RvcnkoKS5zdHJp
bmcoKSA6IG1fZG9jdW1lbnRMb2FkZXItPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgp
KTsKKyAgICBsb2FkKGxvYWRlci5nZXQoKSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRX
aXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgYm9vbCBsb2NrSGlzdG9yeSwgRnJhbWVMb2FkVHlw
ZSB0eXBlLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuaAppbmRleCA1MTYzNjlhODY0MjM2ZmRkNGE1ZTRhMDliZDRlNWNkNjMwOTdl
OGFkLi44YTQzNWM4OTVhODJiMDk0NzVmNjRmYjliY2Q5ZmI1M2Y4YjZhMTI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMTA0LDkgKzEwNCw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGxvYWRGcmFtZVJlcXVlc3QoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGJvb2wgbG9ja0hp
c3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCwgIC8vIENhbGxlZCBieSBzdWJtaXRGb3Jt
LCBjYWxscyBsb2FkUG9zdFJlcXVlc3QgYW5kIGxvYWRVUkwuCiAgICAgICAgIFBhc3NSZWZQdHI8
RXZlbnQ+LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIFNob3VsZFNlbmRSZWZlcnJlcik7CiAKLSAg
ICB2b2lkIGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBsb2NrSGlzdG9yeSk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGxlZCBieSBXZWJGcmFt
ZSwgY2FsbHMgbG9hZChSZXNvdXJjZVJlcXVlc3QsIFN1YnN0aXR1dGVEYXRhKS4KLSAgICB2b2lk
IGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmLCBib29s
IGxvY2tIaXN0b3J5KTsgICAgICAgICAgICAgICAgIC8vIENhbGxlZCBib3RoIGJ5IFdlYkZyYW1l
IGFuZCBpbnRlcm5hbGx5LCBjYWxscyBsb2FkKERvY3VtZW50TG9hZGVyKikuCi0gICAgdm9pZCBs
b2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBib29s
IGxvY2tIaXN0b3J5KTsgICAgICAgICAgICAgICAvLyBDYWxsZWQgYnkgV2ViUGx1Z2luQ29udHJv
bGxlci4KKyAgICB2b2lkIGxvYWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYpOworCiAjaWYgRU5B
QkxFKFdFQl9BUkNISVZFKSB8fCBFTkFCTEUoTUhUTUwpCiAgICAgdm9pZCBsb2FkQXJjaGl2ZShQ
YXNzUmVmUHRyPEFyY2hpdmU+KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9s
bGVyLmNwcAppbmRleCA4MWVhM2Y5NWRkMDQ2OTRkZjAzNGIwNzYwYWUwMGM2YTg2MWFmNWE4Li4z
YTBkZDE2ZDI2YWMyMDk2NGM5ZGI5NWNkYWFmZDIyOGFhZWU4OWU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkV2ZW50
SGFuZGxlci5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisj
aW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAj
aW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTIz
Nyw3ICsyMzgsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZyhEcmFnRGF0YSog
ZHJhZ0RhdGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fY2xpZW50LT53aWxsUGVy
Zm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkLCBkcmFn
RGF0YSk7Ci0gICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoUmVzb3VyY2VS
ZXF1ZXN0KGRyYWdEYXRhLT5hc1VSTChtX3BhZ2UtPm1haW5GcmFtZSgpKSksIGZhbHNlKTsKKyAg
ICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KG1f
cGFnZS0+bWFpbkZyYW1lKCksIFJlc291cmNlUmVxdWVzdChkcmFnRGF0YS0+YXNVUkwobV9wYWdl
LT5tYWluRnJhbWUoKSkpKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVn
aW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDA0NjY4NDZkNDMxOTAyM2ZkNGZlZjlkMjAyZmNiZmJh
MjdiN2ZkZWQuLjVkMzJjOTM4ZjdkMDlhNWZmYWJhOTFiNjY2OGQ1ZWU5YzczYjhlODcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNDQwLDcgKzQ0MCwxMCBAQCB2b2lk
IFBsdWdpblZpZXc6OnBlcmZvcm1SZXF1ZXN0KFBsdWdpblJlcXVlc3QqIHJlcXVlc3QpCiAgICAg
ICAgICAgICAvLyBQbHVnaW5WaWV3LCBzbyB3ZSBwcm90ZWN0IGl0LiA8cmRhcjovL3Byb2JsZW0v
Njk5MTI1MT4KICAgICAgICAgICAgIFJlZlB0cjxQbHVnaW5WaWV3PiBwcm90ZWN0KHRoaXMpOwog
Ci0gICAgICAgICAgICBtX3BhcmVudEZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LT5mcmFt
ZUxvYWRSZXF1ZXN0KCkucmVzb3VyY2VSZXF1ZXN0KCksIHRhcmdldEZyYW1lTmFtZSwgZmFsc2Up
OworICAgICAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9wYXJlbnRGcmFt
ZS5nZXQoKSwgcmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJlc291cmNlUmVxdWVzdCgpKTsK
KyAgICAgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUodGFyZ2V0RnJhbWVOYW1lKTsK
KyAgICAgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSh0
cnVlKTsKKyAgICAgICAgICAgIG1fcGFyZW50RnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVx
dWVzdCk7CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vNDgwNzQ2OT4g
VGhpcyBzaG91bGQgYmUgc2VudCB3aGVuIHRoZSBkb2N1bWVudCBoYXMgZmluaXNoZWQgbG9hZGlu
ZwogICAgICAgICAgICAgaWYgKHJlcXVlc3QtPnNlbmROb3RpZmljYXRpb24oKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggMGIwZGQxYWYyYjllMjhiZmYx
YzExNThlYWJiY2FiY2Y4YWVkYTYzZC4uOTIwMjRhYzBkMjYxMmExNzg1ZmVmN2I0YzY3ZDIxYjFh
ZmJiYWM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC01
Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oIgogI2luY2x1
ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJh
bWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5o
IgogI2lmICFkZWZpbmVkKFBVQkxJQ19CVUlMRCkgfHwgIVBVQkxJQ19CVUlMRAogI2luY2x1ZGUg
Ikdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgpAQCAtNzAwLDcgKzcwMSwxMCBAQCB2b2lkIFdlYlBh
Z2VQcml2YXRlOjpsb2FkKGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIHVybCwg
Y29uc3QgQmxhY2tCZQogCiAgICAgcmVxdWVzdC5zZXRTdWdnZXN0ZWRTYXZlTmFtZShzdWdnZXN0
ZWRTYXZlTmFtZSk7CiAKLSAgICBtX21haW5GcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwg
IiIgLyogbmFtZSAqLywgZmFsc2UpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0
KG1fbWFpbkZyYW1lLCByZXF1ZXN0KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0RnJhbWVOYW1lKCIi
KTsKKyAgICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7
CisgICAgbV9tYWluRnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiB9CiAKIHZv
aWQgV2ViUGFnZTo6bG9hZChjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiB1cmws
IGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIG5ldHdvcmtUb2tlbiwgYm9vbCBp
c0luaXRpYWwpCkBAIC03NDUsNyArNzQ5LDcgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6bG9hZFN0
cmluZyhjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBzdHJpbmcsIGNvbnMKICAg
ICAgICAgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAg
IGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAgICFmYWls
aW5nVVJMLmVtcHR5KCkgPyBwYXJzZVVybChmYWlsaW5nVVJMKSA6IEtVUkwoKSk7Ci0gICAgbV9t
YWluRnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7
CisgICAgbV9tYWluRnJhbWUtPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QobV9tYWlu
RnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6bG9h
ZFN0cmluZyhjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBzdHJpbmcsIGNvbnN0
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IEJsYWNrQmVycnk6
OlBsYXRmb3JtOjpTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6
U3RyaW5nJiBmYWlsaW5nVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0Jl
cnJ5LmNwcAppbmRleCAwZTA2MTliNGIxN2U2YTk5YTVkZmEzNWVmMTc5MTQzMjRkMWViODI4Li5k
Mzk1Njg4OWQ0MTJmMmQxZjY3OTNkMWM5OThkNGE0MjM3N2E0ZjA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFj
a0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1
ZGUgIkNyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVD
bGllbnQuaCIKICNpbmNsdWRlICJFeHRlcm5hbEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgIkZyYW1l
TG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0QmxhY2tCZXJy
eS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5o
IgpAQCAtNzUwLDcgKzc1MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojpk
aXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFCiAgICAgfQogCiAg
ICAgbV9sb2FkaW5nRXJyb3JQYWdlID0gdHJ1ZTsKLSAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+bG9h
ZChvcmlnaW5hbFJlcXVlc3QsIGVycm9yRGF0YSwgZmFsc2UpOworICAgIG1fZnJhbWUtPmxvYWRl
cigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QobV9mcmFtZSwgb3JpZ2luYWxSZXF1ZXN0LCBlcnJv
ckRhdGEpKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNo
V2lsbFN1Ym1pdEZvcm0oRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgUGFzc1JlZlB0cjxG
b3JtU3RhdGU+KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJh
bWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAK
aW5kZXggZWFjZjlhYmE4NTAwMzlkOWZiODhiOWRjNWQ3NTQxNzNkZGFkNGVkNC4uNWQzMmFmZDg1
ZmUyZTI3OTg3NzUzMmI3MmVhNWIzYmViNGI2NTI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC05NTcsNyArOTU3LDcgQEAgdm9pZCBXZWJGcmFt
ZUltcGw6OmxvYWRSZXF1ZXN0KGNvbnN0IFdlYlVSTFJlcXVlc3QmIHJlcXVlc3QpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChyZXNvdXJjZVJl
cXVlc3QsIGZhbHNlKTsKKyAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1
ZXN0KGZyYW1lKCksIHJlc291cmNlUmVxdWVzdCkpOwogfQogCiB2b2lkIFdlYkZyYW1lSW1wbDo6
bG9hZEhpc3RvcnlJdGVtKGNvbnN0IFdlYkhpc3RvcnlJdGVtJiBpdGVtKQpAQCAtOTc2LDggKzk3
Niw2IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkSGlzdG9yeUl0ZW0oY29uc3QgV2ViSGlzdG9y
eUl0ZW0mIGl0ZW0pCiB2b2lkIFdlYkZyYW1lSW1wbDo6bG9hZERhdGEoY29uc3QgV2ViRGF0YSYg
ZGF0YSwgY29uc3QgV2ViU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgV2ViU3RyaW5nJiB0ZXh0RW5j
b2RpbmcsIGNvbnN0IFdlYlVSTCYgYmFzZVVSTCwgY29uc3QgV2ViVVJMJiB1bnJlYWNoYWJsZVVS
TCwgYm9vbCByZXBsYWNlKQogewogICAgIEFTU0VSVChmcmFtZSgpKTsKLSAgICBTdWJzdGl0dXRl
RGF0YSBzdWJzdERhdGEoZGF0YSwgbWltZVR5cGUsIHRleHRFbmNvZGluZywgdW5yZWFjaGFibGVV
UkwpOwotICAgIEFTU0VSVChzdWJzdERhdGEuaXNWYWxpZCgpKTsKIAogICAgIC8vIElmIHdlIGFy
ZSBsb2FkaW5nIHN1YnN0aXR1dGUgZGF0YSB0byByZXBsYWNlIGFuIGV4aXN0aW5nIGxvYWQsIHRo
ZW4KICAgICAvLyBpbmhlcml0IGFsbCBvZiB0aGUgcHJvcGVydGllcyBvZiB0aGF0IG9yaWdpbmFs
IHJlcXVlc3QuICBUaGlzIHdheSwKQEAgLTk5MCw3ICs5ODgsOSBAQCB2b2lkIFdlYkZyYW1lSW1w
bDo6bG9hZERhdGEoY29uc3QgV2ViRGF0YSYgZGF0YSwgY29uc3QgV2ViU3RyaW5nJiBtaW1lVHlw
ZSwgY29ucwogICAgICAgICByZXF1ZXN0ID0gZnJhbWUoKS0+bG9hZGVyKCktPm9yaWdpbmFsUmVx
dWVzdCgpOwogICAgIHJlcXVlc3Quc2V0VVJMKGJhc2VVUkwpOwogCi0gICAgZnJhbWUoKS0+bG9h
ZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3REYXRhLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVx
dWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUoKSwgcmVxdWVzdCwgU3Vic3RpdHV0ZURhdGEoZGF0YSwg
bWltZVR5cGUsIHRleHRFbmNvZGluZywgdW5yZWFjaGFibGVVUkwpKTsKKyAgICBBU1NFUlQoZnJh
bWVSZXF1ZXN0LnN1YnN0aXR1dGVEYXRhKCkuaXNWYWxpZCgpKTsKKyAgICBmcmFtZSgpLT5sb2Fk
ZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogICAgIGlmIChyZXBsYWNlKSB7CiAgICAgICAgIC8v
IERvIHRoaXMgdG8gZm9yY2UgV2ViS2l0IHRvIHRyZWF0IHRoZSBsb2FkIGFzIHJlcGxhY2luZyB0
aGUgY3VycmVudGx5CiAgICAgICAgIC8vIGxvYWRlZCBwYWdlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTaGFyZWRXb3JrZXJJbXBsLmNwcAppbmRleCA1Y2Y5OTk4NTEz
YWVhMzU5NmUwZDVmMTQ4ODZmYTllOTE3ZjFmZmJhLi4xMTlkOWFjYjY5OTRiZDk3NmYwNGM2NjE5
MjQyNDk4MWYyNGRiZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTaGFyZWRXb3JrZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTaGFyZWRXb3JrZXJJbXBsLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNyb3Nz
VGhyZWFkVGFzay5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVGFzay5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkdyb3VwU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCkBA
IC0xMzAsMTAgKzEzMSw5IEBAIHZvaWQgV2ViU2hhcmVkV29ya2VySW1wbDo6aW5pdGlhbGl6ZUxv
YWRlcihjb25zdCBXZWJVUkwmIHVybCkKICAgICAvLyBDb25zdHJ1Y3Qgc3Vic3RpdHV0ZSBkYXRh
IHNvdXJjZSBmb3IgdGhlICdzaGFkb3cgcGFnZScuIFdlIG9ubHkgbmVlZCBpdAogICAgIC8vIHRv
IGhhdmUgc2FtZSBvcmlnaW4gYXMgdGhlIHdvcmtlciBzbyB0aGUgbG9hZGluZyBjaGVja3Mgd29y
ayBjb3JyZWN0bHkuCiAgICAgQ1N0cmluZyBjb250ZW50KCIiKTsKLSAgICBpbnQgbGVuID0gc3Rh
dGljX2Nhc3Q8aW50Pihjb250ZW50Lmxlbmd0aCgpKTsKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVy
PiBidWYoU2hhcmVkQnVmZmVyOjpjcmVhdGUoY29udGVudC5kYXRhKCksIGxlbikpOwotICAgIFN1
YnN0aXR1dGVEYXRhIHN1YnN0RGF0YShidWYsIFN0cmluZygidGV4dC9odG1sIiksIFN0cmluZygi
VVRGLTgiKSwgS1VSTCgpKTsKLSAgICB3ZWJGcmFtZS0+ZnJhbWUoKS0+bG9hZGVyKCktPmxvYWQo
UmVzb3VyY2VSZXF1ZXN0KHVybCksIHN1YnN0RGF0YSwgZmFsc2UpOworICAgIGludCBsZW5ndGgg
PSBzdGF0aWNfY2FzdDxpbnQ+KGNvbnRlbnQubGVuZ3RoKCkpOworICAgIFJlZlB0cjxTaGFyZWRC
dWZmZXI+IGJ1ZmZlcihTaGFyZWRCdWZmZXI6OmNyZWF0ZShjb250ZW50LmRhdGEoKSwgbGVuZ3Ro
KSk7CisgICAgd2ViRnJhbWUtPmZyYW1lKCktPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVl
c3Qod2ViRnJhbWUtPmZyYW1lKCksIFJlc291cmNlUmVxdWVzdCh1cmwpLCBTdWJzdGl0dXRlRGF0
YShidWZmZXIsICJ0ZXh0L2h0bWwiLCAiVVRGLTgiLCBLVVJMKCkpKSk7CiAKICAgICAvLyBUaGlz
IGRvY3VtZW50IHdpbGwgYmUgdXNlZCBhcyAnbG9hZGluZyBjb250ZXh0JyBmb3IgdGhlIHdvcmtl
ci4KICAgICBtX2xvYWRpbmdEb2N1bWVudCA9IHdlYkZyYW1lLT5mcmFtZSgpLT5kb2N1bWVudCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCBkZWM1NWQ2OTg3MWE2NjE2MGJl
Yjk4NjY0ZTEwNzhhNDEwYmZjMDQyLi5hZjM4ZTRhMDg3ZWRkYTliZDdiOTNlYWUzOGM1ODgxNjM2
ZTcyOGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkV2ZW50
SGFuZGxlci5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1l
TG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudEVmbC5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCkBAIC0zMzgsNyAr
MzM5LDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV91cmlfc2V0KEV2YXNfT2JqZWN0KiBld2tGcmFt
ZSwgY29uc3QgY2hhciogdXJpKQogICAgIFdlYkNvcmU6OktVUkwga3VybChXZWJDb3JlOjpLVVJM
KCksIFdURjo6U3RyaW5nOjpmcm9tVVRGOCh1cmkpKTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QgcmVxKGt1cmwpOwogICAgIFdlYkNvcmU6OkZyYW1lTG9hZGVyKiBsb2FkZXIgPSBzbWFy
dERhdGEtPmZyYW1lLT5sb2FkZXIoKTsKLSAgICBsb2FkZXItPmxvYWQocmVxLCBmYWxzZSk7Cisg
ICAgbG9hZGVyLT5sb2FkKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Qoc21hcnREYXRhLT5mcmFt
ZSwgcmVxKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTQxNiw3ICs0MTcsNyBAQCBzdGF0
aWMgRWluYV9Cb29sIF9ld2tfZnJhbWVfY29udGVudHNfc2V0X2ludGVybmFsKEV3a19GcmFtZV9T
bWFydF9EYXRhKiBzbWFydERhdAogICAgICAgICBiYXNlS1VSTCwgdW5yZWFjaGFibGVLVVJMKTsK
ICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChiYXNlS1VSTCk7CiAKLSAgICBz
bWFydERhdGEtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwg
ZmFsc2UpOworICAgIHNtYXJ0RGF0YS0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKFdlYkNvcmU6OkZy
YW1lTG9hZFJlcXVlc3Qoc21hcnREYXRhLT5mcmFtZSwgcmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEp
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJmcmFtZS5jcHAKaW5kZXggYzEwMzNlNjFkYmMwYTQwMjkyZDFhNjFlZGRhMWQ5NjUzMjc4
NzliNi4uMzEwMDNiNjRiZDZlZTdhMzcwNTNlMjU3OTM4NTI4MjE5YTA2NzkxYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCkBAIC0zMyw2ICszMyw3IEBA
CiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXJHdGsuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ckNsaWVudEd0ay5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCkBAIC02OTMsNyArNjk0
LDcgQEAgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpKFdlYktpdFdlYkZyYW1lKiBmcmFt
ZSwgY29uc3QgZ2NoYXIqIHVyaSkKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChSZXNvdXJjZVJlcXVlc3QoS1VSTChL
VVJMKCksIFN0cmluZzo6ZnJvbVVURjgodXJpKSkpLCBmYWxzZSk7CisgICAgY29yZUZyYW1lLT5s
b2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KGNvcmVGcmFtZSwgUmVzb3VyY2VSZXF1ZXN0
KEtVUkwoS1VSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVyaSkpKSkpOwogfQogCiBzdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfZGF0YShXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0
IGdjaGFyKiBjb250ZW50LCBjb25zdCBnY2hhciogbWltZVR5cGUsIGNvbnN0IGdjaGFyKiBlbmNv
ZGluZywgY29uc3QgZ2NoYXIqIGJhc2VVUkwsIGNvbnN0IGdjaGFyKiB1bnJlYWNoYWJsZVVSTCkK
QEAgLTcxMiw3ICs3MTMsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfZGF0
YShXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBjb250ZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEtVUkwoS1VSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVucmVh
Y2hhYmxlVVJMKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS1VSTChLVVJM
KCksIFN0cmluZzo6ZnJvbVVURjgodW5yZWFjaGFibGVVUkwpKSk7CiAKLSAgICBjb3JlRnJhbWUt
PmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgY29y
ZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KGNvcmVGcmFtZSwgcmVxdWVz
dCwgc3Vic3RpdHV0ZURhdGEpKTsKIH0KIAogLyoqCkBAIC03ODEsNyArNzgyLDcgQEAgdm9pZCB3
ZWJraXRfd2ViX2ZyYW1lX2xvYWRfcmVxdWVzdChXZWJLaXRXZWJGcmFtZSogZnJhbWUsIFdlYktp
dE5ldHdvcmtSZXF1ZXN0KgogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm47CiAK
LSAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKGNvcmUocmVxdWVzdCksIGZhbHNlKTsKKyAg
ICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoY29yZUZyYW1lLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBjb3JlKHJlcXVlc3QpKSk7CiB9CiAKIC8qKgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVy
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCmlu
ZGV4IDNmZjEwOTA4NjgxZDFhZTcyYTYwOGY0YzVjOGI5YTRkNWIyMGMxNjguLjNiMmIxYzc3ODgz
MTMwNGM3MTdlMmY4NzEyYjk0Y2RiZjI2OGM3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KQEAgLTUwLDYgKzUwLDcgQEAKICNpbXBv
cnQgPEZvdW5kYXRpb24vTlNVUkxSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50
TG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Zy
YW1lTG9hZFJlcXVlc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTmFt
ZXMuaD4KQEAgLTQwMSw3ICs0MDIsMTAgQEAgc3RhdGljIHZvaWQgY2FuY2VsT3V0c3RhbmRpbmdD
aGVjayhjb25zdCB2b2lkICppdGVtLCB2b2lkICpjb250ZXh0KQogICAgICAgICAgICAgTE9HX0VS
Uk9SKCJjb3VsZCBub3QgbG9hZCBVUkwgJUAiLCBbcmVxdWVzdCBVUkxdKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQotICAgICAgICBjb3JlKGZyYW1lKS0+bG9hZGVyKCktPmxvYWQo
cmVxdWVzdCwgdGFyZ2V0LCBmYWxzZSk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVS
ZXF1ZXN0KGNvcmUoZnJhbWUpLCByZXF1ZXN0KTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZy
YW1lTmFtZSh0YXJnZXQpOworICAgICAgICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdX
aW5kb3dQb2xpY3kodHJ1ZSk7CisgICAgICAgIGNvcmUoZnJhbWUpLT5sb2FkZXIoKS0+bG9hZChm
cmFtZVJlcXVlc3QpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUu
bW0KaW5kZXggZjkxZmZkOGU1MWJkNGRhY2I3YWYwYTFjYzRmMjY1MTNjM2VkYTgzMi4uYTVjZjYy
NzFjNTcwMWFhYzY4MTQyM2QyYTY5MDU3M2QwOWI2ODVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkZyYW1lLm1tCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50
SGFuZGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0ZyYW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZFJlcXVlc3QuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXJT
dGF0ZU1hY2hpbmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVUcmVlLmg+CkBAIC0xMzY5LDcg
KzEzNzAsNyBAQCBzdGF0aWMgYm9vbCBuZWVkc01pY3Jvc29mdE1lc3NlbmdlckRPTURvY3VtZW50
V29ya2Fyb3VuZCgpCiAgICAgaWYgKCFyZXNvdXJjZVJlcXVlc3QudXJsKCkuaXNWYWxpZCgpICYm
ICFyZXNvdXJjZVJlcXVlc3QudXJsKCkuaXNFbXB0eSgpKQogICAgICAgICByZXNvdXJjZVJlcXVl
c3Quc2V0VVJMKFtOU1VSTCBVUkxXaXRoU3RyaW5nOltAImZpbGU6IiBzdHJpbmdCeUFwcGVuZGlu
Z1N0cmluZzpbW3JlcXVlc3QgVVJMXSBhYnNvbHV0ZVN0cmluZ11dXSk7CiAKLSAgICBjb3JlRnJh
bWUtPmxvYWRlcigpLT5sb2FkKHJlc291cmNlUmVxdWVzdCwgZmFsc2UpOworICAgIGNvcmVGcmFt
ZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUsIHJlc291cmNlUmVx
dWVzdCkpOwogfQogCiBzdGF0aWMgTlNVUkwgKmNyZWF0ZVVuaXF1ZVdlYkRhdGFVUkwoKQpAQCAt
MTQwMCw3ICsxNDAxLDcgQEAgc3RhdGljIE5TVVJMICpjcmVhdGVVbmlxdWVXZWJEYXRhVVJMKCkK
IAogICAgIFN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cjo6d3JhcE5TRGF0YShkYXRhKSwgTUlNRVR5cGUsIGVuY29kaW5nTmFtZSwgW3VucmVhY2hhYmxl
VVJMIGFic29sdXRlVVJMXSwgcmVzcG9uc2VVUkwpOwogCi0gICAgX3ByaXZhdGUtPmNvcmVGcmFt
ZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBf
cHJpdmF0ZS0+Y29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KF9wcml2
YXRlLT5jb3JlRnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKSk7CiB9CiAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQv
cXQvQXBpL3F3ZWJmcmFtZS5jcHAKaW5kZXggYjc3M2I5NjMxNGM4ZTZiZDgwMzdmMTJkNjRhNGI3
ZGM4NzcyZTQ2Yi4uNDFiZWRjOGI1NmRhZTZjNjRmYzFiMWM1MmIyYWNhNDkzYWVhZDZmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
RWxlbWVudC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
Q2xpZW50UXQuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1l
VHJlZS5oIgpAQCAtNDgxLDcgKzQ4MiwxMCBAQCBRV2ViRnJhbWU6OlFXZWJGcmFtZShRV2ViUGFn
ZSAqcGFyZW50LCBRV2ViRnJhbWVEYXRhICpmcmFtZURhdGEpCiAKICAgICBpZiAoIWZyYW1lRGF0
YS0+dXJsLmlzRW1wdHkoKSkgewogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChmcmFtZURhdGEtPnVybCwgZnJhbWVEYXRhLT5yZWZlcnJlcik7Ci0gICAgICAgIGQtPmZy
YW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBmcmFtZURhdGEtPm5hbWUsIGZhbHNlKTsKKyAg
ICAgICAgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZC0+ZnJhbWUsIHJl
cXVlc3QpOworICAgICAgICBmcmFtZVJlcXVlc3Quc2V0RnJhbWVOYW1lKGZyYW1lRGF0YS0+bmFt
ZSk7CisgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSh0
cnVlKTsKKyAgICAgICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7CiAg
ICAgfQogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAgICAgY29ubmVjdCgmZC0+bV9v
cmllbnRhdGlvbiwgU0lHTkFMKHJlYWRpbmdDaGFuZ2VkKCkpLCB0aGlzLCBTTE9UKF9xX29yaWVu
dGF0aW9uQ2hhbmdlZCgpKSk7CkBAIC04NDYsNyArODUwLDcgQEAgdm9pZCBRV2ViRnJhbWU6Omxv
YWQoY29uc3QgUU5ldHdvcmtSZXF1ZXN0ICZyZXEsCiAgICAgaWYgKCFib2R5LmlzRW1wdHkoKSkK
ICAgICAgICAgcmVxdWVzdC5zZXRIVFRQQm9keShXZWJDb3JlOjpGb3JtRGF0YTo6Y3JlYXRlKGJv
ZHkuY29uc3REYXRhKCksIGJvZHkuc2l6ZSgpKSk7CiAKLSAgICBkLT5mcmFtZS0+bG9hZGVyKCkt
PmxvYWQocmVxdWVzdCwgZmFsc2UpOworICAgIGQtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChGcmFt
ZUxvYWRSZXF1ZXN0KGQtPmZyYW1lLCByZXF1ZXN0KSk7CiAKICAgICBpZiAoZC0+cGFyZW50RnJh
bWUoKSkKICAgICAgICAgZC0+cGFnZS0+ZC0+aW5zaWRlT3BlbkNhbGwgPSBmYWxzZTsKQEAgLTg4
Myw3ICs4ODcsNyBAQCB2b2lkIFFXZWJGcmFtZTo6c2V0SHRtbChjb25zdCBRU3RyaW5nICZodG1s
LCBjb25zdCBRVXJsICZiYXNlVXJsKQogICAgIGNvbnN0IFFCeXRlQXJyYXkgdXRmOCA9IGh0bWwu
dG9VdGY4KCk7CiAgICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBkYXRhID0g
V2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUodXRmOC5jb25zdERhdGEoKSwgdXRmOC5sZW5n
dGgoKSk7CiAgICAgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoZGF0YSwg
V1RGOjpTdHJpbmcoInRleHQvaHRtbCIpLCBXVEY6OlN0cmluZygidXRmLTgiKSwgS1VSTCgpKTsK
LSAgICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZh
bHNlKTsKKyAgICBkLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChkLT5m
cmFtZSwgcmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpKTsKIH0KIAogLyohCkBAIC05MTMsNyArOTE3
LDcgQEAgdm9pZCBRV2ViRnJhbWU6OnNldENvbnRlbnQoY29uc3QgUUJ5dGVBcnJheSAmZGF0YSwg
Y29uc3QgUVN0cmluZyAmbWltZVR5cGUsIGNvbnMKICAgICAgICAgZW5jb2RpbmcgPSBleHRyYWN0
Q2hhcnNldEZyb21NZWRpYVR5cGUobWltZVR5cGUpOwogICAgIH0KICAgICBXZWJDb3JlOjpTdWJz
dGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShidWZmZXIsIFdURjo6U3RyaW5nKGFjdHVhbE1pbWVU
eXBlKSwgZW5jb2RpbmcsIEtVUkwoKSk7Ci0gICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJl
cXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5s
b2FkKEZyYW1lTG9hZFJlcXVlc3QoZC0+ZnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKSk7
CiB9CiAKIC8qIQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRleCBlZGYyMGE0NjA1MDMzMTc2NGQ3
OWRiZmYwZDMzYmM5MDdiY2JmNjdjLi45OWRiOGMwNDdiNGE2ZTM1MmE0YmI5MDMzODFmNTFmOWI4
MzczZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1
ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR0NDb250
cm9sbGVyLmgiCkBAIC05NzUsNyArOTc2LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dDo6c2V0QWx0ZXJuYXRlSHRtbChRV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBRU3RyaW5nJgogICAg
IGNvbnN0IFFCeXRlQXJyYXkgdXRmOCA9IGh0bWwudG9VdGY4KCk7CiAgICAgV1RGOjpSZWZQdHI8
V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBkYXRhID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVh
dGUodXRmOC5jb25zdERhdGEoKSwgdXRmOC5sZW5ndGgoKSk7CiAgICAgV2ViQ29yZTo6U3Vic3Rp
dHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoZGF0YSwgV1RGOjpTdHJpbmcoInRleHQvaHRtbCIpLCBX
VEY6OlN0cmluZygidXRmLTgiKSwgZmFpbGluZ1VybCk7Ci0gICAgY29yZUZyYW1lLT5sb2FkZXIo
KS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIGNvcmVGcmFtZS0+
bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUsIHJlcXVlc3QsIHN1YnN0
aXR1dGVEYXRhKSk7CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmNvbmZpcm1D
b21wb3NpdGlvbihRV2ViUGFnZSogcGFnZSwgY29uc3QgY2hhciogdGV4dCkKQEAgLTExOTksNCAr
MTIwMCwzIEBAIHZvaWQgUVdFQktJVF9FWFBPUlQgcXRfZHVtcF9zZXRfYWNjZXB0c19lZGl0aW5n
KGJvb2wgYikKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFNldEFjY2VwdHNF
ZGl0aW5nKGIpOwogfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCAwNzMxZDkzMTU4YTE2Zjk3MzBlODQx
ZTIwODE3YTg4MjJiNGU2MTQ4Li5hOGYwNTkyNzZjMWY1ODI2YmM2OTRmNTM2YTAxN2ZlY2FkOWJi
NGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJDU1NQcm9w
ZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGb3Jt
U3RhdGUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVO
ZXR3b3JraW5nQ29udGV4dFF0LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCkBAIC0xMTY0LDcgKzExNjUsNyBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50
UXQ6OmNhbGxFcnJvclBhZ2VFeHRlbnNpb24oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYg
ZQogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGJhc2VVcmwpOwogICAgIFdU
Rjo6UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVk
QnVmZmVyOjpjcmVhdGUob3V0cHV0LmNvbnRlbnQuY29uc3REYXRhKCksIG91dHB1dC5jb250ZW50
Lmxlbmd0aCgpKTsKICAgICBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShi
dWZmZXIsIG91dHB1dC5jb250ZW50VHlwZSwgb3V0cHV0LmVuY29kaW5nLCBmYWlsaW5nVXJsKTsK
LSAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFs
c2UpOworICAgIG1fZnJhbWUtPmxvYWRlcigpLT5sb2FkKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVl
c3QobV9mcmFtZSwgcmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwIGIvU291cmNl
L1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCmluZGV4IGVlOWNkZDhjNDQxOGQ4YTI3ZTY4MDRmMDIw
ODk1YmI1NWIyMzgyYzUuLmM4NTllNmEyNTUwN2U1ODQ0Zjk2ZDBjZmY0ODhiMTY3MGEyODIyMDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKQEAgLTU1Niw3ICs1NTYsNyBAQCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIFdlYkZyYW1lOjpsb2FkUmVxdWVzdCgKICAgICBpZiAoIWNvcmVGcmFtZSkK
ICAgICAgICAgcmV0dXJuIEVfRkFJTDsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQo
cmVxdWVzdEltcGwtPnJlc291cmNlUmVxdWVzdCgpLCBmYWxzZSk7CisgICAgY29yZUZyYW1lLT5s
b2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KGNvcmVGcmFtZSwgcmVxdWVzdEltcGwtPnJl
c291cmNlUmVxdWVzdCgpKSk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKQEAgLTU4MCw3ICs1ODAs
NyBAQCB2b2lkIFdlYkZyYW1lOjpsb2FkRGF0YShQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlcj4gZGF0YSwgQlNUUiBtaW1lVHlwZSwgQgogCiAgICAgLy8gVGhpcyBtZXRob2QgaXMgb25s
eSBjYWxsZWQgZnJvbSBJV2ViRnJhbWUgbWV0aG9kcywgc28gZG9uJ3QgQVNTRVJUIHRoYXQgdGhl
IEZyYW1lIHBvaW50ZXIgaXNuJ3QgbnVsbC4KICAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IGNv
cmUodGhpcykpCi0gICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vi
c3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICAgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChG
cmFtZUxvYWRSZXF1ZXN0KGNvcmVGcmFtZSwgcmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpKTsKIH0K
IAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwIGIvU291cmNl
L1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcAppbmRleCBmY2MwNGQ3ZGI2YjY2MWE4N2Y1OTY4NjM0
NWQ5ODg3OTc4ZjQzZmQ2Li45MDU5YTQwMjIxYTc4ZTVjZWUyN2YwNmE1ZDAwZWE2MWQzZGE5Zjlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJF
ZGl0b3JDbGllbnRXaW5DRS5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgpAQCAtMjE4LDcgKzIxOSw3IEBAIHZvaWQgV2ViVmlldzo6bG9hZChj
b25zdCBTdHJpbmcgJnVybCkKIAogdm9pZCBXZWJWaWV3Ojpsb2FkKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCAmcmVxdWVzdCkKIHsKLSAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChy
ZXF1ZXN0LCBmYWxzZSk7CisgICAgZnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVx
dWVzdChmcmFtZSgpLCByZXF1ZXN0KSk7CiB9CiAKIHZvaWQgV2ViVmlldzo6cmVsb2FkKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC93
eC9XZWJGcmFtZS5jcHAKaW5kZXggYjM3NDExM2MwNzcyYTFjN2YyNmYyNDQwODMwMDJiYjNhYWU4
YzhhOS4uY2NmNTRlMzhmNzlmZTJiNzJlNGNlNjQ5Y2IwMWQxZWZiOGU5OGI5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93eC9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93eC9X
ZWJGcmFtZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNp
bmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1l
TG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyQ2xpZW50V3guaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTMyMiw3ICszMjMs
NyBAQCB2b2lkIFdlYkZyYW1lOjpTZXRQYWdlU291cmNlKGNvbnN0IHd4U3RyaW5nJiBzb3VyY2Us
IGNvbnN0IHd4U3RyaW5nJiBiYXNlVXJsLCBjbwogICAgICAgICBXZWJDb3JlOjpTdWJzdGl0dXRl
RGF0YSBzdWJzdGl0dXRlRGF0YShzaGFyZWRCdWZmZXIsIG1pbWV0eXBlLCBXVEY6OlN0cmluZygi
VVRGLTgiKSwgV2ViQ29yZTo6YmxhbmtVUkwoKSwgdXJsKTsKIAogICAgICAgICBtX2ltcGwtPmZy
YW1lLT5sb2FkZXIoKS0+c3RvcCgpOwotICAgICAgICBtX2ltcGwtPmZyYW1lLT5sb2FkZXIoKS0+
bG9hZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QodXJsKSwgc3Vic3RpdHV0ZURhdGEsIGZhbHNl
KTsKKyAgICAgICAgbV9pbXBsLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQoV2ViQ29yZTo6RnJhbWVM
b2FkUmVxdWVzdChtX2ltcGwtPmZyYW1lLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QodXJsKSwg
c3Vic3RpdHV0ZURhdGEpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA0NGY1NzVhZDU0ZmZlZTQ4ODUwZjNl
Mzg5NzNmYWZjNjk4MDIzMGUxLi42NDYyMzg4OGViMTQ0YjIwYWYzN2Y4MTI5MzU0MGQ5N2ZkMTQ4
NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuY3BwCkBAIC05NTAsNyArOTUwLDEwIEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1l
TG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCogcmVxdWVzdCkKICAgICBGcmFtZSogdGFyZ2V0RnJh
bWUgPSBmcmFtZS0+bG9hZGVyKCktPmZpbmRGcmFtZUZvck5hdmlnYXRpb24ocmVxdWVzdC0+dGFy
Z2V0KCkpOwogICAgIGlmICghdGFyZ2V0RnJhbWUpIHsKICAgICAgICAgLy8gV2UgZGlkIG5vdCBm
aW5kIGEgdGFyZ2V0IGZyYW1lLiBBc2sgb3VyIGZyYW1lIHRvIGxvYWQgdGhlIHBhZ2UuIFRoaXMg
bWF5IG9yIG1heSBub3QgY3JlYXRlIGEgcG9wdXAgd2luZG93LgotICAgICAgICBmcmFtZS0+bG9h
ZGVyKCktPmxvYWQocmVxdWVzdC0+cmVxdWVzdCgpLCByZXF1ZXN0LT50YXJnZXQoKSwgZmFsc2Up
OworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChmcmFtZSwgcmVxdWVzdC0+
cmVxdWVzdCgpKTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZShyZXF1ZXN0LT50
YXJnZXQoKSk7CisgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1Bv
bGljeSh0cnVlKTsKKyAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVzdCk7
CiAKICAgICAgICAgLy8gRklYTUU6IFdlIGRvbid0IGtub3cgd2hldGhlciB0aGUgd2luZG93IHdh
cyBzdWNjZXNzZnVsbHkgY3JlYXRlZCBoZXJlIHNvIHdlIGp1c3QgYXNzdW1lIHRoYXQgaXQgd29y
a2VkLgogICAgICAgICAvLyBJdCdzIGJldHRlciB0aGFuIG5vdCB0ZWxsaW5nIHRoZSBwbHVnLWlu
IGFueXRoaW5nLgpAQCAtOTU5LDcgKzk2Miw3IEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZy
YW1lTG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCogcmVxdWVzdCkKICAgICB9CiAKICAgICAvLyBO
b3cgYXNrIHRoZSBmcmFtZSB0byBsb2FkIHRoZSByZXF1ZXN0LgotICAgIHRhcmdldEZyYW1lLT5s
b2FkZXIoKS0+bG9hZChyZXF1ZXN0LT5yZXF1ZXN0KCksIGZhbHNlKTsKKyAgICB0YXJnZXRGcmFt
ZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdCh0YXJnZXRGcmFtZSwgcmVxdWVzdC0+
cmVxdWVzdCgpKSk7CiAKICAgICBXZWJGcmFtZSogdGFyZ2V0V2ViRnJhbWUgPSBzdGF0aWNfY2Fz
dDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KHRhcmdldEZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkp
LT53ZWJGcmFtZSgpOwogICAgIGlmIChXZWJGcmFtZTo6TG9hZExpc3RlbmVyKiBsb2FkTGlzdGVu
ZXIgPSB0YXJnZXRXZWJGcmFtZS0+bG9hZExpc3RlbmVyKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBjOTFjNzNlZDEwMGQyOTNhNTVk
YzFhY2FjMWQ5NDBkODYzOTBmZTg4Li5lNTc1MGYyOGIxYzE2MmY4NDhjOWUxMzY0OWYyMTc1ZGRh
MGFlNmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC04MjQsNyArODI0LDcgQEAgdm9pZCBXZWJQYWdlOjpsb2FkVVJMUmVxdWVzdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNhbmRib3hFeHRlbnMKICAgICBTZW5k
U3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcih0aGlzKTsKIAogICAgIG1fc2FuZGJveEV4
dGVuc2lvblRyYWNrZXIuYmVnaW5Mb2FkKG1fbWFpbkZyYW1lLmdldCgpLCBzYW5kYm94RXh0ZW5z
aW9uSGFuZGxlKTsKLSAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2Fk
KHJlcXVlc3QsIGZhbHNlKTsKKyAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigp
LT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0
KSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IHNoYXJlZEJ1ZmZlciwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNv
ZGluZ05hbWUsIGNvbnN0IEtVUkwmIGJhc2VVUkwsIGNvbnN0IEtVUkwmIHVucmVhY2hhYmxlVVJM
KQpAQCAtODMzLDcgKzgzMyw3IEBAIHZvaWQgV2ViUGFnZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxT
aGFyZWRCdWZmZXI+IHNoYXJlZEJ1ZmZlciwgY29uc3QgU3RyaW5nJiBNSU1FCiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChiYXNlVVJMKTsKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0
dXRlRGF0YShzaGFyZWRCdWZmZXIsIE1JTUVUeXBlLCBlbmNvZGluZ05hbWUsIHVucmVhY2hhYmxl
VVJMKTsKLSAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVl
c3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgp
LT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUo
KSwgcmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpsb2FkSFRN
TFN0cmluZyhjb25zdCBTdHJpbmcmIGh0bWxTdHJpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTFN0
cmluZykKQEAgLTg3Myw4ICs4NzMsNyBAQCB2b2lkIFdlYlBhZ2U6OmxpbmtDbGlja2VkKGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKICAgICBpZiAoZXZlbnQu
dHlwZSgpICE9IFdlYkV2ZW50OjpOb1R5cGUpCiAgICAgICAgIGNvcmVFdmVudCA9IE1vdXNlRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgZnJhbWUtPmRvY3VtZW50KCktPmRl
ZmF1bHRWaWV3KCksIHBsYXRmb3JtKGV2ZW50KSwgMCwgMCk7CiAKLSAgICBmcmFtZS0+bG9hZGVy
KCktPmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCkpLCAKLSAgICAgICAgZmFsc2Us
IGZhbHNlLCBjb3JlRXZlbnQuZ2V0KCksIDAsIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICBmcmFt
ZS0+bG9hZGVyKCktPmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZSwgUmVz
b3VyY2VSZXF1ZXN0KHVybCkpLCBmYWxzZSwgZmFsc2UsIGNvcmVFdmVudC5nZXQoKSwgMCwgTWF5
YmVTZW5kUmVmZXJyZXIpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176094</attachid>
            <date>2012-11-26 15:33:10 -0800</date>
            <delta_ts>2012-11-27 16:13:13 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-102151-20121126153048.patch</filename>
            <type>text/plain</type>
            <size>51701</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI3YmYzMGVkODA2MDcz
ZTM2ZDY1ZWZlNjk2YzM3MmQyYmU3Yzc5MS4uNjE4YWFjMDMzYjVhMzZkNzBlNjRjOWY5YTg3Y2Uy
M2NkYjhhOWM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTI2ICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0
ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9h
ZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVGhl
cmUncyBhIEZJWE1FIHRoYXQgd2UgaGF2ZSB0b28gbWFueSBGcmFtZUxvYWRlcjo6bG9hZCooKSBm
dW5jdGlvbnMuIFRoaXMgcGF0Y2ggY29uc29saWRhdGVzIDMgaW50byAxLgorICAgICAgICBUaGVy
ZSBhcmUgc3RpbGwgYSBmZXcgbW9yZSBsb2FkIGZ1bmN0aW9ucyB0aGF0IHdpbGwgYmUgY29uc29s
aWRhdGVkIGxhdGVyLiBVc2luZyBGcmFtZUxvYWRSZXF1ZXN0IGFzCisgICAgICAgIHRoZSBpbnRl
cmZhY2UgaW50byBGcmFtZUxvYWRlciB3aWxsIGFsc28gcHJvdmlkZSBhIHBsYWNlIHRvIHBhc3Mg
aW4gdGhlIGluaXRpYXRvci4gRmluYWxseSwgdGhpcyBtYXRjaGVzCisgICAgICAgIHRoZSByZWZh
Y3RvcmluZyBkb25lIHdpdGggQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGFuZCBDYWNoZWRSZXNvdXJj
ZUxvYWRlci4KKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFs
aXR5LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OkZyYW1l
TG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2V0TG9j
a0hpc3RvcnkpOiBUaGVzZSBhcmUgZm9ybWVyIGFyZ3VtZW50cyB0byBsb2FkKCkuCisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0Ojpsb2NrSGlzdG9yeSk6IERpdHRvLgorICAgICAg
ICAoRnJhbWVMb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0
OjpzZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnN1YnN0aXR1dGVEYXRhKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpzZXRTdWJzdGl0dXRlRGF0
YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6aGFzU3Vic3Rp
dHV0ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOiBObyBjaGFuZ2UgaW4gYmVoYXZpb3Is
IGp1c3QgbWVyZ2VkIGl0IGFsbCBpbnRvIG9uZSBmdW5jdGlvbi4KKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBwYWdlL0Ry
YWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpwZXJm
b3JtRHJhZyk6CisKIDIwMTItMTEtMjYgIFByYXRpayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBSZXNvdXJjZUJ1ZmZlcjo6YXBwZW5kKENGRGF0YVJlZikgdG8g
Z2V0IGNvZGUgdG8gY29tcGlsZSB3aXRoIFVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFD
SykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IDg5NTBkNGU4NTg2MmVlY2FiMDYz
ODBiY2M0ZjRjMmQ4NmEwODFhMGEuLjQ5ZmVhMDViZmY3Y2UxODMzYmM4NzMxNGQwNjEwZDEwN2Mx
MDI4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDEyLTExLTI2ICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRh
a2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
CisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlBhZ2VQcml2YXRlOjpsb2FkKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6
V2ViUGFnZVByaXZhdGU6OmxvYWRTdHJpbmcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisK
IDIwMTItMTEtMjYgIEpvbmF0aGFuIERvbmcgIDxqb25hdGhhbi5kb25nQHRvcmNobW9iaWxlLmNv
bS5jbj4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gU2hvdWxkIG5vdCBhdXRvZmlsbCB1c2VybmFt
ZSBhbmQgcGFzc3dvcmQgd2hlbiB0aGVyZSdyZSBtb3JlIHRoYW4gb25lIHBhc3N3b3JkIGlucHV0
cyBvbiB0aGUgc2FtZSBwYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGFmMzBjN2Zj
YjliZjkxZjJlYzBlNjc2NzExMTYwOThiYjIzZGQ2NDEuLmY3NWJiNWVlODVlNTNlZTU5ZWM1NTBi
OTc1M2NhZGVjZWU4ZDJmZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTItMTEtMjYgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVu
Y3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KKworICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUltcGw6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVJbXBsOjpsb2FkRGF0YSk6CisgICAgICAgICogc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRXb3JrZXJJbXBsOjppbml0aWFsaXplTG9hZGVy
KToKKwogMjAxMi0xMS0yNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNTc0My4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZwppbmRleCAyMDA3YzUzNTQ1YzM1YjM1YTM0Zjg1Mjg0NThhYzAwNTQ0ZDEwZTAyLi5lZDk0
NWExNGZjOGQ1NjVhM2I3MjJmYTEzZmI0ZTY2MzA3YjkwYWZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTItMTEtMjYgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50
byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAg
ICAoX2V3a19mcmFtZV9jb250ZW50c19zZXRfaW50ZXJuYWwpOgorCiAyMDEyLTExLTI0ICBWaWF0
Y2hlc2xhdiBPc3RhcGVua28gIDx2Lm9zdGFwZW5rb0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBb
RUZMXSBMYXlvdXQgdGVzdCBjb21lcyB0byBjcmFzaCBvbiBXSzEKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRl
eCBiZjk2NDFiNDNhOGUxZGU1NzY3YzZmZTY0ZTI0MjYxZGE5NzI5ZGYxLi45MjdmNzAxNDQ5OGQ4
Njg5NzQwNmRmYTM5MTY5MDhjZmUzMjYxMzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTItMTEtMjYgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVu
Y3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6CisgICAgICAg
ICh3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpKToKKyAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVf
bG9hZF9kYXRhKToKKyAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9yZXF1ZXN0KToKKwog
MjAxMi0xMS0yNSAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4K
IAogICAgICAgICBSZW1vdmUgZGVwcmVjYXRlZCBsb2FkLWRvbmUgc2lnbmFsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggYTFlYWZjZDYzYTE3NjkxOTI2YzhmYzM1NzQzZTQyMDhlOWYwZGM5MS4uOTZiNGQ1
Y2I2ZTYxODU2YmM3ODliNTE1ZjhmYWM4MmRlZTRlM2IxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDEyLTExLTI2ICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8g
b25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgKiBQbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIu
bW06CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUg
bG9hZFJlcXVlc3Q6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9sb2FkRGF0YTpNSU1FVHlwZTp0
ZXh0RW5jb2RpbmdOYW1lOmJhc2VVUkw6dW5yZWFjaGFibGVVUkw6XSk6CisKIDIwMTItMTEtMjMg
IEFsZXhpcyBNZW5hcmQgIDxhbGV4aXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbQ1NTMyBCYWNr
Z3JvdW5kcyBhbmQgQm9yZGVyc10gSW1wbGVtZW50IG5ldyBDU1MzIGJhY2tncm91bmQtcG9zaXRp
b24gcGFyc2luZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggZjhiYTY1ZmY4NDg1MjlhY2Y4MjgxODc1MjZl
ZmY2MTI5OTMzM2I0Zi4uY2FkMjBjZDE3YzM0NmI1OGQyNmVhZDY5MDczZDI1YzljYjYyYjQ3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0xMS0yNiAgSmFtZXMgU2ltb25z
ZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVM
b2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEK
KworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgICogQXBpL3F3ZWJm
cmFtZS5jcHA6CisgICAgICAgIChRV2ViRnJhbWU6OlFXZWJGcmFtZSk6CisgICAgICAgIChRV2Vi
RnJhbWU6OmxvYWQpOgorICAgICAgICAoUVdlYkZyYW1lOjpzZXRIdG1sKToKKyAgICAgICAgKFFX
ZWJGcmFtZTo6c2V0Q29udGVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNl
dEFsdGVybmF0ZUh0bWwpOgorICAgICAgICAocXRfZHVtcF9zZXRfYWNjZXB0c19lZGl0aW5nKToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNhbGxFcnJvclBhZ2VFeHRlbnNpb24p
OgorCiAyMDEyLTExLTI2ICBQaWVycmUgUm9zc2kgIDxwaWVycmUucm9zc2lAZ21haWwuY29tPgog
CiAgICAgICAgIFtRdF0gUkVHUkVTU0lPTihyMTM1NTc1KTogSXQgbWFkZSBhbGwgdGVzdHMgYXNz
ZXJ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMmU0MGRhZDUyY2JiMGQzOTEyNTZhZTIyMzQ3ZGI1NjY4
MGZkMWI0Ny4uNDMxMjg3MDVmNzQ0NmJhZDNjMWM4MDk1OWJhNDMzOGFjODY1M2ZmOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTExLTI2ICBKYW1lcyBTaW1vbnNlbiAg
PHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRl
cjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6
CisgICAgICAgIChXZWJGcmFtZTo6bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViRnJhbWU6Omxv
YWREYXRhKToKKwogMjAxMi0xMS0yMSAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVu
c2VuQGRpZ2lhLmNvbT4KIAogICAgICAgICBEaXNhbWJpZ3VhdGUgaW5uZXJOb2RlRnJhbWVQb2lu
dCBhbmQgbWFpbkZyYW1lUG9pbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggMGIxY2FlMTMxNzcy
NGEzYTNmNGVkMmNmZTlkOGRhNGJkNTM5NzRkNi4uYTZkZDgwNThkZGI5ZDhmNjQyNmI3NmRkNWZi
NTJmOTE5YTNiMjEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
Mi0xMS0yNiAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtp
bmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgor
CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojpsb2FkKToKKwogMjAx
Mi0xMS0yMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNTI5NS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXgg
NGM0M2VkYzhlMGNmNThlMzZlZDU0MDBiYzZhOTlhOWNmMTY1ODVlZC4uMGNlNTJjOWZlYTJiZDg5
ODBkMGEyMDI2NzYxNzllOGY2NGUyYjMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMi0xMS0yNiAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlv
biB0YWtpbmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJh
cnRoLgorCisgICAgICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZTo6U2V0UGFnZVNvdXJjZSk6CisKIDIwMTItMTEtMjAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
MzUyOTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzgxY2I4OWY0NzM0NGU2ZjUwZGY4NWQ3N2MwNmMzMDViNTM1
NjVkZi4uNDJlMTgxZjk4NDkzNDAxMmNkNWY3ZGE1NjQ5MmNkZWQwNWViM2Q2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTExLTI2ICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFt
QGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6bG9hZCgp
IGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnBlcmZvcm1GcmFtZUxv
YWRVUkxSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxSZXF1ZXN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6bG9hZERhdGEpOgorCiAyMDEyLTExLTI2ICBDaHJpc3RvcGhlIER1bWV6
ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBBZGQg
c2V0dGluZyB0byBlbmFibGUgLyBkaXNhYmxlIEhUTUw1IGxvY2FsIHN0b3JhZ2UgZnVuY3Rpb25h
bGl0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmZjdjYWNiNzk3MzVhODZjYzlhNGVmNDliM2E4
NWQwNjdlNTIzOTVlLi4zYTVkMjE3MzU4NDVmMGJkOGE1NDczYmE2ZmIwZDA5ZDBmZjUxMmIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYzMyw2ICsxNjMzLDcgQEAgU0VUKFdlYkNvcmVfU09V
UkNFUwogICAgIGxvYWRlci9GVFBEaXJlY3RvcnlQYXJzZXIuY3BwCiAgICAgbG9hZGVyL0Zvcm1T
dGF0ZS5jcHAKICAgICBsb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCisgICAgbG9hZGVyL0ZyYW1l
TG9hZFJlcXVlc3QuY3BwCiAgICAgbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAogICAgIGxvYWRlci9G
cmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAKICAgICBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBhZDg0YTI0ZjlkYzRkZmYxMmFi
ZjZmMzIzNzNmMzdiZGNiMGIyZGIwLi5lYTBmZThjZDU4ODg0NDdhZGZmNGRjNGM5ZjdiNDYzMDhl
YjM0NTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQwMjksMTMgKzQwMjks
MTQgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN0
YXRlLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRSZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVu
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyU3RhdGVNYWNoaW5lLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyU3RhdGVNYWNoaW5lLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
clR5cGVzLmggXAotCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmggXAog
CVNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggXAogCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlQYXJzZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRlRQRGlyZWN0b3J5UGFyc2VyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggZGU5ZTNlN2Iw
MDIyY2ZkN2ZiYWYxZmIwYWM2ZGU2ZmQzMDBhMTQ5Ni4uYzU3ZDU4YjIwY2M1ZjVlNzJlYzg5NTFh
YjYxNjJiMzE3MGFmZmE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC04MzEsNiArODMxLDcgQEAgU09VUkNF
UyArPSBcCiAgICAgbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgXAogICAgIGxvYWRlci9Gb3JtU3Rh
dGUuY3BwIFwKICAgICBsb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwIFwKKyAgICBsb2FkZXIvRnJh
bWVMb2FkUmVxdWVzdC5jcHAgXAogICAgIGxvYWRlci9GcmFtZUxvYWRlci5jcHAgXAogICAgIGxv
YWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAgXAogICAgIGxvYWRlci9IaXN0b3J5Q29u
dHJvbGxlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA5OWEwNDRiYjNhZDZjMDhjYWJj
ZjE4ZjYxZmFkMDI3N2MyMDY5MWM0Li5lNGEyNDU2OWVkZjM5NWZmN2ViMTJlYzYwMDg5ZjFlMzIy
ODVkZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTA3LDkgKzEwNyw3IEBAIF9fWk43V2Vi
Q29yZTExRnJhbWVMb2FkZXIyM3RpbWVPZkxhc3RDb21wbGV0ZWRMb2FkRXYKIF9fWk43V2ViQ29y
ZTExRnJhbWVMb2FkZXIyNnJlbG9hZFdpdGhPdmVycmlkZUVuY29kaW5nRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjMyc2V0T3JpZ2luYWxVUkxGb3JEb3dubG9hZFJl
cXVlc3RFUk5TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRp
bml0RXYKLV9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE1UmVzb3VyY2VSZXF1
ZXN0RVJLTjNXVEY2U3RyaW5nRWIKLV9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05T
XzE1UmVzb3VyY2VSZXF1ZXN0RVJLTlNfMTRTdWJzdGl0dXRlRGF0YUViCi1fX1pON1dlYkNvcmUx
MUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNVJlc291cmNlUmVxdWVzdEViCitfX1pON1dlYkNvcmUx
MUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNkZyYW1lTG9hZFJlcXVlc3RFCiBfX1pON1dlYkNvcmUx
MUZyYW1lTG9hZGVyNnJlbG9hZEViCiBfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyOXNldE9wZW5l
ckVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTEwdGFyZ2V0SXRlbUV2CkBA
IC00MzEsNiArNDI5LDcgQEAgX19aTjdXZWJDb3JlMTZEZXZpY2VNb3Rpb25EYXRhMTJSb3RhdGlv
blJhdGU2Y3JlYXRlRWJkYmRiZAogX19aTjdXZWJDb3JlMTZEZXZpY2VNb3Rpb25EYXRhNmNyZWF0
ZUVOM1dURjEwUGFzc1JlZlB0cklOUzBfMTJBY2NlbGVyYXRpb25FRUVTNF9OUzJfSU5TMF8xMlJv
dGF0aW9uUmF0ZUVFRWJkCiBfX1pON1dlYkNvcmUxNkZvbnRGYWxsYmFja0xpc3QxNXJlbGVhc2VG
b250RGF0YUV2CiBfX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFEMUV2CitfX1pON1dlYkNv
cmUxNkZyYW1lTG9hZFJlcXVlc3RDMUVQTlNfNUZyYW1lRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RF
UktOU18xNFN1YnN0aXR1dGVEYXRhRQogX19aTjdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50OHNl
dFZhbHVlRVJLTjNXVEY2U3RyaW5nRU5TXzIyVGV4dEZpZWxkRXZlbnRCZWhhdmlvckUKIF9fWk43
V2ViQ29yZTE2SFRNTElucHV0RWxlbWVudDEzc2V0QXV0b2ZpbGxlZEViCiBfX1pON1dlYkNvcmUx
NkhUTUxJbnB1dEVsZW1lbnQxNXNldEVkaXRpbmdWYWx1ZUVSS04zV1RGNlN0cmluZ0UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCBmNDZjNWZiNjY0MWRmNWYwMjUzNmQ5MTYzNGFjMGVlNGQyYWZjODhlLi5k
MDM5MTQ3Yzc3MjUzOTBlMGYxMjMyZmI5MTI0ZDM1NzVhMDZlYWM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0yOTUxLDYgKzI5NTEsNyBAQAogICAgICAgICAgICAgJ2xvYWRlci9GVFBEaXJlY3RvcnlQ
YXJzZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL0Zvcm1TdGF0ZS5jcHAnLAogICAgICAgICAg
ICAgJ2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9GcmFt
ZUxvYWRSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCcs
CiAgICAgICAgICAgICAnbG9hZGVyL0ZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmNwcCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDAyYjk1NzM5YjFmZjIyMzAzNzVj
NjdiZjM3NmRjMWM3MDJiZjNiZjcuLjExZDNhMjIzMzBmYjgxYTdjMGFiYzJhYTYzMTAxYTAxZmY5
YWFiMjQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC0yNzY0Niw2ICsyNzY0NiwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcRnJhbWVMb2FkUmVxdWVzdC5jcHAiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxGcmFtZUxv
YWRSZXF1ZXN0LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiNjNiM2Q5MjhiY2M3MWRlNzM3
N2UyMWYwNmRhNmY3ODdiNzc1MzQuLmQ0NGNlMGJiMjllZGQ2ZmMwYjZjODM0MTFkODJjMWYzMzAz
Y2E2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI5OTcsNiArMjk5Nyw3IEBACiAJCTg2MjQzRDAxMTFCQzMxRjcwMENDMDA2
QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODYyNDNEMDAxMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJyYXlC
dWZmZXJWaWV3SGVscGVyLmggKi87IH07CiAJCTg2NTEyRURFMTU0QTJBRUYwMEE5MDQyNiAvKiBQ
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2NTEyRURCMTU0QTJBRUUwMEE5MDQyNiAvKiBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmNwcCAqLzsgfTsKIAkJODY1MTJFREYxNTRBMkFFRjAwQTkwNDI2IC8q
IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2NTEyRURDMTU0QTJBRUYwMEE5MDQyNiAvKiBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmggKi87IH07CisJCTg2QkE3NjZFMTY2NDI3QTgwMDVCRTVEMSAvKiBG
cmFtZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg2QkE3NjZEMTY2NDI3QTgwMDVCRTVEMSAvKiBGcmFtZUxvYWRSZXF1ZXN0LmNw
cCAqLzsgfTsKIAkJODZCRTM0MDAxNTA1OENCMjAwQ0UwRkQ4IC8qIFBlcmZvcm1hbmNlRW50cnku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZCRTMz
RkExNTA1OENCMjAwQ0UwRkQ4IC8qIFBlcmZvcm1hbmNlRW50cnkuY3BwICovOyB9OwogCQk4NkJF
MzQwMTE1MDU4Q0IyMDBDRTBGRDggLyogUGVyZm9ybWFuY2VFbnRyeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZCRTMzRkIxNTA1OENCMjAwQ0UwRkQ4
IC8qIFBlcmZvcm1hbmNlRW50cnkuaCAqLzsgfTsKIAkJODZCRTM0MDMxNTA1OENCMjAwQ0UwRkQ4
IC8qIFBlcmZvcm1hbmNlRW50cnlMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2QkUzM0ZEMTUwNThDQjIwMENFMEZEOCAvKiBQZXJmb3JtYW5j
ZUVudHJ5TGlzdC5jcHAgKi87IH07CkBAIC0xMDI0MCw2ICsxMDI0MSw3IEBACiAJCTg2NTEyRURC
MTU0QTJBRUUwMEE5MDQyNiAvKiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjUxMkVEQzE1NEEyQUVGMDBBOTA0
MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg2NTEyRUREMTU0QTJBRUYwMEE5MDQyNiAvKiBQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODZCQTc2NkQxNjY0MjdB
ODAwNUJFNUQxIC8qIEZyYW1lTG9hZFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRnJhbWVMb2FkUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTg2QkUzM0ZBMTUwNThDQjIwMENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcmZvcm1hbmNlRW50cnku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkJFMzNGQjE1MDU4Q0IyMDBDRTBG
RDggLyogUGVyZm9ybWFuY2VFbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQZXJmb3JtYW5jZUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2QkUz
M0ZDMTUwNThDQjIwMENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBQZXJmb3JtYW5jZUVudHJ5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIwODMwLDYgKzIwODMyLDcgQEAKIAkJCQlEMDAwRUJBMDExQkRBRkQ0MDBDNDc3MjYg
LyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuY3BwICovLAogCQkJCUQwMDBFQkExMTFCREFGRDQw
MEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oICovLAogCQkJCTkzQjc3QTM3MEFE
RDc5MjUwMEVBNEI4MSAvKiBGcmFtZUxvYWRlclR5cGVzLmggKi8sCisJCQkJODZCQTc2NkQxNjY0
MjdBODAwNUJFNUQxIC8qIEZyYW1lTG9hZFJlcXVlc3QuY3BwICovLAogCQkJCTY1ODQzNjg1MEFF
MDFCNzQwMEU1Mzc1MyAvKiBGcmFtZUxvYWRSZXF1ZXN0LmggKi8sCiAJCQkJNjI4RDIxNEQxMjEz
MUVGNDAwNTVEQ0ZDIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQk1MUM4MUI4
NzBDNDQyMkY3MDAxOUVDRTMgLyogRlRQRGlyZWN0b3J5UGFyc2VyLmNwcCAqLywKQEAgLTI4OTE5
LDYgKzI4OTIyLDcgQEAKIAkJCQlDRDdFMDUyMjE2NTFDMjgyMDBDMTIwMUYgLyogV2ViQ29yZUFW
RlJlc291cmNlTG9hZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ3OTU4MDUxNjQzQjRCMjAw
MUUwQTdGIC8qIFBhcnNlZENvbnRlbnRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE1QjhC
N0M4MTY1MkM1MjIwMDM2RUY1NSAvKiBKU1dlYktpdENTU01peEZ1bmN0aW9uVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJODZCQTc2NkUxNjY0MjdBODAwNUJFNUQxIC8qIEZyYW1lTG9hZFJl
cXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
UmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE0Njc4ODIzZWJlNTNjNDczYzc0NDU2ZGU1YWE0ODQ2
MzgwMjIxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRSZXF1ZXN0LmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRnJhbWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGcmFtZUxvYWRSZXF1ZXN0OjpG
cmFtZUxvYWRSZXF1ZXN0KEZyYW1lKiBmcmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZVJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSkKKyAgICA6
IG1fcmVxdWVzdGVyKGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKQorICAgICwg
bV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQorICAgICwgbV9sb2NrSGlzdG9yeShm
YWxzZSkKKyAgICAsIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koZmFsc2UpCisgICAgLCBt
X3N1YnN0aXR1dGVEYXRhKHN1YnN0aXR1dGVEYXRhKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVz
dC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAppbmRleCBkNjVh
OWI1ZmFjMmY2MjBmOTcyMjEzMzVlNDdlNDI4ODA5NmM3YzMzLi4xYjc3ODk5ODYyNDFjNzkwNGI3
ZjU5ZDMxNWE5MjUxODM3OTk4MTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRS
ZXF1ZXN0LmgKQEAgLTI4LDE5ICsyOCwyNSBAQAogCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTdWJzdGl0dXRlRGF0
YS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBGcmFtZTsKIAogc3RydWN0IEZyYW1l
TG9hZFJlcXVlc3QgewogcHVibGljOgogICAgIGV4cGxpY2l0IEZyYW1lTG9hZFJlcXVlc3QoU2Vj
dXJpdHlPcmlnaW4qIHJlcXVlc3RlcikKICAgICAgICAgOiBtX3JlcXVlc3RlcihyZXF1ZXN0ZXIp
CisgICAgICAgICwgbV9sb2NrSGlzdG9yeShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNr
TmV3V2luZG93UG9saWN5KGZhbHNlKQogICAgIHsKICAgICB9CiAKICAgICBGcmFtZUxvYWRSZXF1
ZXN0KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVz
b3VyY2VSZXF1ZXN0KQogICAgICAgICA6IG1fcmVxdWVzdGVyKHJlcXVlc3RlcikKICAgICAgICAg
LCBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgICAgICwgbV9sb2NrSGlz
dG9yeShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNl
KQogICAgIHsKICAgICB9CiAKQEAgLTQ4LDkgKzU0LDEzIEBAIHB1YmxpYzoKICAgICAgICAgOiBt
X3JlcXVlc3RlcihyZXF1ZXN0ZXIpCiAgICAgICAgICwgbV9yZXNvdXJjZVJlcXVlc3QocmVzb3Vy
Y2VSZXF1ZXN0KQogICAgICAgICAsIG1fZnJhbWVOYW1lKGZyYW1lTmFtZSkKKyAgICAgICAgLCBt
X2xvY2tIaXN0b3J5KGZhbHNlKQorICAgICAgICAsIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xp
Y3koZmFsc2UpCiAgICAgewogICAgIH0KIAorICAgIEZyYW1lTG9hZFJlcXVlc3QoRnJhbWUqLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgPSBTdWJzdGl0dXRl
RGF0YSgpKTsKKwogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VS
ZXF1ZXN0LmlzRW1wdHkoKTsgfQogCiAgICAgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHJlcXVlc3Rl
cigpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVyLmdldCgpOyB9CkBAIC02MSwxMCArNzEsMjMg
QEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9mcmFtZU5hbWU7IH0KICAgICB2b2lkIHNldEZyYW1lTmFtZShjb25zdCBTdHJpbmcmIGZyYW1l
TmFtZSkgeyBtX2ZyYW1lTmFtZSA9IGZyYW1lTmFtZTsgfQogCisgICAgdm9pZCBzZXRMb2NrSGlz
dG9yeShib29sIGxvY2tIaXN0b3J5KSB7IG1fbG9ja0hpc3RvcnkgPSBsb2NrSGlzdG9yeTsgfQor
ICAgIGJvb2wgbG9ja0hpc3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2xvY2tIaXN0b3J5OyB9CisK
KyAgICB2b2lkIHNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGJvb2wgY2hlY2tQb2xpY3kp
IHsgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSA9IGNoZWNrUG9saWN5OyB9CisgICAgYm9v
bCBzaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2hl
Y2tOZXdXaW5kb3dQb2xpY3k7IH0KKworICAgIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0
dXRlRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Vic3RpdHV0ZURhdGE7IH0KKyAgICB2b2lkIHNl
dFN1YnN0aXR1dGVEYXRhKGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBkYXRhKSB7IG1fc3Vic3RpdHV0
ZURhdGEgPSBkYXRhOyB9CisgICAgYm9vbCBoYXNTdWJzdGl0dXRlRGF0YSgpIHsgcmV0dXJuIG1f
c3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpOyB9CisKIHByaXZhdGU6CiAgICAgUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiBtX3JlcXVlc3RlcjsKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJl
cXVlc3Q7CiAgICAgU3RyaW5nIG1fZnJhbWVOYW1lOworICAgIGJvb2wgbV9sb2NrSGlzdG9yeTsK
KyAgICBib29sIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3k7CisgICAgU3Vic3RpdHV0ZURh
dGEgbV9zdWJzdGl0dXRlRGF0YTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCmluZGV4IDQzN2ExZjYxNjQ0NTc3Y2Y5MWI5NTczYmYwZjkzZDU4Y2VlNmM4NDYuLmNi
MTIzNWU0ODZlMDE0NGFlNjgxYTYxYzRmNGM3Njk2ODg3MDQxMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTI1MiwzNiArMTI1MiwzNCBAQCBTdWJzdGl0dXRlRGF0
YSBGcmFtZUxvYWRlcjo6ZGVmYXVsdFN1YnN0aXR1dGVEYXRhRm9yVVJMKGNvbnN0IEtVUkwmIHVy
bCkKICAgICByZXR1cm4gU3Vic3RpdHV0ZURhdGEoU2hhcmVkQnVmZmVyOjpjcmVhdGUoZW5jb2Rl
ZFNyY2RvYy5kYXRhKCksIGVuY29kZWRTcmNkb2MubGVuZ3RoKCkpLCAidGV4dC9odG1sIiwgIlVU
Ri04IiwgS1VSTCgpKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgbG9ja0hpc3RvcnkpCit2b2lkIEZyYW1lTG9hZGVyOjps
b2FkKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHBhc3NlZFJlcXVlc3QpCiB7Ci0gICAgbG9hZChy
ZXF1ZXN0LCBkZWZhdWx0U3Vic3RpdHV0ZURhdGFGb3JVUkwocmVxdWVzdC51cmwoKSksIGxvY2tI
aXN0b3J5KTsKLX0KKyAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QocGFzc2VkUmVxdWVzdCk7
CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEsIGJvb2wgbG9ja0hpc3Rvcnkp
Ci17CiAgICAgaWYgKG1faW5TdG9wQWxsTG9hZGVycykKICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAKLSAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9IG1fY2xpZW50LT5jcmVhdGVE
b2N1bWVudExvYWRlcihyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSk7Ci0gICAgaWYgKGxvY2tIaXN0
b3J5ICYmIG1fZG9jdW1lbnRMb2FkZXIpCi0gICAgICAgIGxvYWRlci0+c2V0Q2xpZW50UmVkaXJl
Y3RTb3VyY2VGb3JIaXN0b3J5KG1fZG9jdW1lbnRMb2FkZXItPmRpZENyZWF0ZUdsb2JhbEhpc3Rv
cnlFbnRyeSgpID8gbV9kb2N1bWVudExvYWRlci0+dXJsRm9ySGlzdG9yeSgpLnN0cmluZygpIDog
bV9kb2N1bWVudExvYWRlci0+Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCkpOwotICAg
IGxvYWQobG9hZGVyLmdldCgpKTsKLX0KIAotdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBib29sIGxv
Y2tIaXN0b3J5KQotewotICAgIGlmIChmcmFtZU5hbWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGxv
YWQocmVxdWVzdCwgbG9ja0hpc3RvcnkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlm
ICghcmVxdWVzdC5oYXNTdWJzdGl0dXRlRGF0YSgpKSB7CisgICAgICAgIGlmICghcmVxdWVzdC5m
cmFtZU5hbWUoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIEZyYW1lKiBmcmFtZSA9IGZpbmRG
cmFtZUZvck5hdmlnYXRpb24ocmVxdWVzdC5mcmFtZU5hbWUoKSk7CisgICAgICAgICAgICBpZiAo
ZnJhbWUgJiYgZnJhbWUtPmxvYWRlcigpICE9IHRoaXMpIHsKKyAgICAgICAgICAgICAgICBmcmFt
ZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorICAgICAgICB9CiAKLSAgICBGcmFtZSogZnJhbWUgPSBmaW5kRnJhbWVGb3JO
YXZpZ2F0aW9uKGZyYW1lTmFtZSk7Ci0gICAgaWYgKGZyYW1lKSB7Ci0gICAgICAgIGZyYW1lLT5s
b2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBsb2NrSGlzdG9yeSk7Ci0gICAgICAgIHJldHVybjsKKyAg
ICAgICAgaWYgKHJlcXVlc3Quc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koKSkgeworICAgICAg
ICAgICAgcG9saWN5Q2hlY2tlcigpLT5jaGVja05ld1dpbmRvd1BvbGljeShOYXZpZ2F0aW9uQWN0
aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIE5hdmlnYXRpb25UeXBlT3RoZXIpLCBGcmFt
ZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5LCByZXF1ZXN0LnJl
c291cmNlUmVxdWVzdCgpLCAwLCByZXF1ZXN0LmZyYW1lTmFtZSgpLCB0aGlzKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHJlcXVlc3Quc2V0U3Vic3RpdHV0ZURh
dGEoZGVmYXVsdFN1YnN0aXR1dGVEYXRhRm9yVVJMKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCku
dXJsKCkpKTsKICAgICB9CiAKLSAgICBwb2xpY3lDaGVja2VyKCktPmNoZWNrTmV3V2luZG93UG9s
aWN5KE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdCwgTmF2aWdhdGlvblR5cGVPdGhlciksIEZyYW1l
TG9hZGVyOjpjYWxsQ29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3ksIHJlcXVlc3QsIDAs
IGZyYW1lTmFtZSwgdGhpcyk7CisgICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBsb2FkZXIgPSBt
X2NsaWVudC0+Y3JlYXRlRG9jdW1lbnRMb2FkZXIocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwg
cmVxdWVzdC5zdWJzdGl0dXRlRGF0YSgpKTsKKyAgICBpZiAocmVxdWVzdC5sb2NrSGlzdG9yeSgp
ICYmIG1fZG9jdW1lbnRMb2FkZXIpCisgICAgICAgIGxvYWRlci0+c2V0Q2xpZW50UmVkaXJlY3RT
b3VyY2VGb3JIaXN0b3J5KG1fZG9jdW1lbnRMb2FkZXItPmRpZENyZWF0ZUdsb2JhbEhpc3RvcnlF
bnRyeSgpID8gbV9kb2N1bWVudExvYWRlci0+dXJsRm9ySGlzdG9yeSgpLnN0cmluZygpIDogbV9k
b2N1bWVudExvYWRlci0+Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCkpOworICAgIGxv
YWQobG9hZGVyLmdldCgpKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhOYXZpZ2F0
aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYgYWN0aW9uLCBib29sIGxvY2tIaXN0b3J5LCBGcmFtZUxvYWRUeXBlIHR5cGUsIFBh
c3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCmluZGV4IDUxNjM2OWE4NjQyMzZmZGQ0YTVlNGEwOWJkNGU1Y2Q2MzA5N2U4YWQuLjhhNDM1
Yzg5NWE4MmIwOTQ3NWY2NGZiOWJjZDlmYjUzZjhiNmExMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oCkBAIC0xMDQsOSArMTA0LDggQEAgcHVibGljOgogICAgIHZvaWQgbG9hZEZy
YW1lUmVxdWVzdChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgYm9vbCBsb2NrSGlzdG9yeSwgYm9v
bCBsb2NrQmFja0ZvcndhcmRMaXN0LCAgLy8gQ2FsbGVkIGJ5IHN1Ym1pdEZvcm0sIGNhbGxzIGxv
YWRQb3N0UmVxdWVzdCBhbmQgbG9hZFVSTC4KICAgICAgICAgUGFzc1JlZlB0cjxFdmVudD4sIFBh
c3NSZWZQdHI8Rm9ybVN0YXRlPiwgU2hvdWxkU2VuZFJlZmVycmVyKTsKIAotICAgIHZvaWQgbG9h
ZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29sIGxvY2tIaXN0b3J5KTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FsbGVkIGJ5IFdlYkZyYW1lLCBjYWxscyBs
b2FkKFJlc291cmNlUmVxdWVzdCwgU3Vic3RpdHV0ZURhdGEpLgotICAgIHZvaWQgbG9hZChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYsIGJvb2wgbG9ja0hpc3Rv
cnkpOyAgICAgICAgICAgICAgICAgLy8gQ2FsbGVkIGJvdGggYnkgV2ViRnJhbWUgYW5kIGludGVy
bmFsbHksIGNhbGxzIGxvYWQoRG9jdW1lbnRMb2FkZXIqKS4KLSAgICB2b2lkIGxvYWQoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGJvb2wgbG9ja0hpc3Rv
cnkpOyAgICAgICAgICAgICAgIC8vIENhbGxlZCBieSBXZWJQbHVnaW5Db250cm9sbGVyLgorICAg
IHZvaWQgbG9hZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0Jik7CisKICNpZiBFTkFCTEUoV0VCX0FS
Q0hJVkUpIHx8IEVOQUJMRShNSFRNTCkKICAgICB2b2lkIGxvYWRBcmNoaXZlKFBhc3NSZWZQdHI8
QXJjaGl2ZT4pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmlu
ZGV4IDgxZWEzZjk1ZGQwNDY5NGRmMDM0YjA3NjBhZTAwYzZhODYxYWY1YTguLjNhMGRkMTZkMjZh
YzIwOTY0YzlkYjk1Y2RhYWZkMjI4YWFlZTg5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgi
CiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJG
cmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJG
cmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMjM3LDcgKzIzOCw3
IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbV9jbGllbnQtPndpbGxQZXJmb3JtRHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQsIGRyYWdEYXRhKTsKLSAg
ICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChSZXNvdXJjZVJlcXVlc3QoZHJh
Z0RhdGEtPmFzVVJMKG1fcGFnZS0+bWFpbkZyYW1lKCkpKSwgZmFsc2UpOworICAgIG1fcGFnZS0+
bWFpbkZyYW1lKCktPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QobV9wYWdlLT5tYWlu
RnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0KGRyYWdEYXRhLT5hc1VSTChtX3BhZ2UtPm1haW5GcmFt
ZSgpKSkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHAKaW5kZXggMDQ2Njg0NmQ0MzE5MDIzZmQ0ZmVmOWQyMDJmY2JmYmEyN2I3ZmRlZC4u
NWQzMmM5MzhmN2QwOWE1ZmZhYmE5MWI2NjY4ZDVlZTljNzNiOGU4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC00NDAsNyArNDQwLDEwIEBAIHZvaWQgUGx1Z2luVmll
dzo6cGVyZm9ybVJlcXVlc3QoUGx1Z2luUmVxdWVzdCogcmVxdWVzdCkKICAgICAgICAgICAgIC8v
IFBsdWdpblZpZXcsIHNvIHdlIHByb3RlY3QgaXQuIDxyZGFyOi8vcHJvYmxlbS82OTkxMjUxPgog
ICAgICAgICAgICAgUmVmUHRyPFBsdWdpblZpZXc+IHByb3RlY3QodGhpcyk7CiAKLSAgICAgICAg
ICAgIG1fcGFyZW50RnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QtPmZyYW1lTG9hZFJlcXVl
c3QoKS5yZXNvdXJjZVJlcXVlc3QoKSwgdGFyZ2V0RnJhbWVOYW1lLCBmYWxzZSk7CisgICAgICAg
ICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChtX3BhcmVudEZyYW1lLmdldCgpLCBy
ZXF1ZXN0LT5mcmFtZUxvYWRSZXF1ZXN0KCkucmVzb3VyY2VSZXF1ZXN0KCkpOworICAgICAgICAg
ICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZSh0YXJnZXRGcmFtZU5hbWUpOworICAgICAgICAg
ICAgZnJhbWVSZXF1ZXN0LnNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KHRydWUpOworICAg
ICAgICAgICAgbV9wYXJlbnRGcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKIAog
ICAgICAgICAgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS80ODA3NDY5PiBUaGlzIHNob3Vs
ZCBiZSBzZW50IHdoZW4gdGhlIGRvY3VtZW50IGhhcyBmaW5pc2hlZCBsb2FkaW5nCiAgICAgICAg
ICAgICBpZiAocmVxdWVzdC0+c2VuZE5vdGlmaWNhdGlvbigpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCA4YzI0YTUxY2RlOTA3NjFiYWEwMTE0NWFkYzdl
ZjVlOGMzZGIxZWJiLi4xZGQ2MjY1ZmI3OWE3M2M4NDIzYzZmMWQwOTE1Nzc1NDFkNGZhODAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTU2LDYgKzU2LDcg
QEAKICNpbmNsdWRlICJFZGl0b3JDbGllbnRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiRm9jdXND
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgiCiAjaWYgIWRl
ZmluZWQoUFVCTElDX0JVSUxEKSB8fCAhUFVCTElDX0JVSUxECiAjaW5jbHVkZSAiR2VvbG9jYXRp
b25DbGllbnRNb2NrLmgiCkBAIC03MDMsNyArNzA0LDEwIEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6
OmxvYWQoY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0cmluZyYgdXJsLCBjb25zdCBCbGFj
a0JlCiAKICAgICByZXF1ZXN0LnNldFN1Z2dlc3RlZFNhdmVOYW1lKHN1Z2dlc3RlZFNhdmVOYW1l
KTsKIAotICAgIG1fbWFpbkZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCAiIiAvKiBuYW1l
ICovLCBmYWxzZSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9tYWluRnJh
bWUsIHJlcXVlc3QpOworICAgIGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUoIiIpOworICAgIGZy
YW1lUmVxdWVzdC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSh0cnVlKTsKKyAgICBtX21h
aW5GcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKIH0KIAogdm9pZCBXZWJQYWdl
Ojpsb2FkKGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIHVybCwgY29uc3QgQmxh
Y2tCZXJyeTo6UGxhdGZvcm06OlN0cmluZyYgbmV0d29ya1Rva2VuLCBib29sIGlzSW5pdGlhbCkK
QEAgLTc0OCw3ICs3NTIsNyBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjpsb2FkU3RyaW5nKGNvbnN0
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIHN0cmluZywgY29ucwogICAgICAgICBleHRy
YWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSwKICAgICAgICAgZXh0cmFjdENo
YXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSwKICAgICAgICAgIWZhaWxpbmdVUkwuZW1w
dHkoKSA/IHBhcnNlVXJsKGZhaWxpbmdVUkwpIDogS1VSTCgpKTsKLSAgICBtX21haW5GcmFtZS0+
bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBtX21h
aW5GcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChtX21haW5GcmFtZSwgcmVx
dWVzdCwgc3Vic3RpdHV0ZURhdGEpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpsb2FkU3RyaW5nKGNv
bnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIHN0cmluZywgY29uc3QgQmxhY2tCZXJy
eTo6UGxhdGZvcm06OlN0cmluZyYgYmFzZVVSTCwgY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06
OlN0cmluZyYgbWltZVR5cGUsIGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIGZh
aWxpbmdVUkwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCmlu
ZGV4IDBiOTJhZWMzN2Y0MmU1Y2Y0Y2JhOTE0M2NkNGQ2N2RiZjEyMjhlZGQuLjgwZmMwNmI2YTcz
NTA0ZjU4YTJmM2ZjNWMxNjVkMTFmMzcxMWZhODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ3JlZGVu
dGlhbFRyYW5zZm9ybURhdGEuaCIKICNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZUNsaWVudC5oIgog
I2luY2x1ZGUgIkV4dGVybmFsRXh0ZW5zaW9uLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVz
dC5oIgogI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRCbGFja0JlcnJ5LmgiCiAjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCkBAIC03NTAs
NyArNzUxLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlk
RmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUUKICAgICB9CiAKICAgICBtX2xvYWRp
bmdFcnJvclBhZ2UgPSB0cnVlOwotICAgIG1fZnJhbWUtPmxvYWRlcigpLT5sb2FkKG9yaWdpbmFs
UmVxdWVzdCwgZXJyb3JEYXRhLCBmYWxzZSk7CisgICAgbV9mcmFtZS0+bG9hZGVyKCktPmxvYWQo
RnJhbWVMb2FkUmVxdWVzdChtX2ZyYW1lLCBvcmlnaW5hbFJlcXVlc3QsIGVycm9yRGF0YSkpOwog
fQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hXaWxsU3VibWl0
Rm9ybShGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCBlYWNm
OWFiYTg1MDAzOWQ5ZmI4OGI5ZGM1ZDc1NDE3M2RkYWQ0ZWQ0Li41ZDMyYWZkODVmZTJlMjc5ODc3
NTMyYjcyZWE1YjNiZWI0YjY1MjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5jcHAKQEAgLTk1Nyw3ICs5NTcsNyBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6bG9h
ZFJlcXVlc3QoY29uc3QgV2ViVVJMUmVxdWVzdCYgcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlc291cmNlUmVxdWVzdCwgZmFs
c2UpOworICAgIGZyYW1lKCktPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUo
KSwgcmVzb3VyY2VSZXF1ZXN0KSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkSGlzdG9y
eUl0ZW0oY29uc3QgV2ViSGlzdG9yeUl0ZW0mIGl0ZW0pCkBAIC05NzYsOCArOTc2LDYgQEAgdm9p
ZCBXZWJGcmFtZUltcGw6OmxvYWRIaXN0b3J5SXRlbShjb25zdCBXZWJIaXN0b3J5SXRlbSYgaXRl
bSkKIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkRGF0YShjb25zdCBXZWJEYXRhJiBkYXRhLCBjb25z
dCBXZWJTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBXZWJTdHJpbmcmIHRleHRFbmNvZGluZywgY29u
c3QgV2ViVVJMJiBiYXNlVVJMLCBjb25zdCBXZWJVUkwmIHVucmVhY2hhYmxlVVJMLCBib29sIHJl
cGxhY2UpCiB7CiAgICAgQVNTRVJUKGZyYW1lKCkpOwotICAgIFN1YnN0aXR1dGVEYXRhIHN1YnN0
RGF0YShkYXRhLCBtaW1lVHlwZSwgdGV4dEVuY29kaW5nLCB1bnJlYWNoYWJsZVVSTCk7Ci0gICAg
QVNTRVJUKHN1YnN0RGF0YS5pc1ZhbGlkKCkpOwogCiAgICAgLy8gSWYgd2UgYXJlIGxvYWRpbmcg
c3Vic3RpdHV0ZSBkYXRhIHRvIHJlcGxhY2UgYW4gZXhpc3RpbmcgbG9hZCwgdGhlbgogICAgIC8v
IGluaGVyaXQgYWxsIG9mIHRoZSBwcm9wZXJ0aWVzIG9mIHRoYXQgb3JpZ2luYWwgcmVxdWVzdC4g
IFRoaXMgd2F5LApAQCAtOTkwLDcgKzk4OCw5IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkRGF0
YShjb25zdCBXZWJEYXRhJiBkYXRhLCBjb25zdCBXZWJTdHJpbmcmIG1pbWVUeXBlLCBjb25zCiAg
ICAgICAgIHJlcXVlc3QgPSBmcmFtZSgpLT5sb2FkZXIoKS0+b3JpZ2luYWxSZXF1ZXN0KCk7CiAg
ICAgcmVxdWVzdC5zZXRVUkwoYmFzZVVSTCk7CiAKLSAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9h
ZChyZXF1ZXN0LCBzdWJzdERhdGEsIGZhbHNlKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1l
UmVxdWVzdChmcmFtZSgpLCByZXF1ZXN0LCBTdWJzdGl0dXRlRGF0YShkYXRhLCBtaW1lVHlwZSwg
dGV4dEVuY29kaW5nLCB1bnJlYWNoYWJsZVVSTCkpOworICAgIEFTU0VSVChmcmFtZVJlcXVlc3Qu
c3Vic3RpdHV0ZURhdGEoKS5pc1ZhbGlkKCkpOworICAgIGZyYW1lKCktPmxvYWRlcigpLT5sb2Fk
KGZyYW1lUmVxdWVzdCk7CiAgICAgaWYgKHJlcGxhY2UpIHsKICAgICAgICAgLy8gRG8gdGhpcyB0
byBmb3JjZSBXZWJLaXQgdG8gdHJlYXQgdGhlIGxvYWQgYXMgcmVwbGFjaW5nIHRoZSBjdXJyZW50
bHkKICAgICAgICAgLy8gbG9hZGVkIHBhZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJTaGFyZWRXb3JrZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwCmluZGV4IDVjZjk5OTg1MTNhZWEzNTk2ZTBk
NWYxNDg4NmZhOWU5MTdmMWZmYmEuLjExOWQ5YWNiNjk5NGJkOTc2ZjA0YzY2MTkyNDI0OTgxZjI0
ZGJkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdv
cmtlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdv
cmtlckltcGwuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NUaHJlYWRUYXNr
LmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUYXNrLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKQEAgLTEzMCwxMCAr
MTMxLDkgQEAgdm9pZCBXZWJTaGFyZWRXb3JrZXJJbXBsOjppbml0aWFsaXplTG9hZGVyKGNvbnN0
IFdlYlVSTCYgdXJsKQogICAgIC8vIENvbnN0cnVjdCBzdWJzdGl0dXRlIGRhdGEgc291cmNlIGZv
ciB0aGUgJ3NoYWRvdyBwYWdlJy4gV2Ugb25seSBuZWVkIGl0CiAgICAgLy8gdG8gaGF2ZSBzYW1l
IG9yaWdpbiBhcyB0aGUgd29ya2VyIHNvIHRoZSBsb2FkaW5nIGNoZWNrcyB3b3JrIGNvcnJlY3Rs
eS4KICAgICBDU3RyaW5nIGNvbnRlbnQoIiIpOwotICAgIGludCBsZW4gPSBzdGF0aWNfY2FzdDxp
bnQ+KGNvbnRlbnQubGVuZ3RoKCkpOwotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZihTaGFy
ZWRCdWZmZXI6OmNyZWF0ZShjb250ZW50LmRhdGEoKSwgbGVuKSk7Ci0gICAgU3Vic3RpdHV0ZURh
dGEgc3Vic3REYXRhKGJ1ZiwgU3RyaW5nKCJ0ZXh0L2h0bWwiKSwgU3RyaW5nKCJVVEYtOCIpLCBL
VVJMKCkpOwotICAgIHdlYkZyYW1lLT5mcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChSZXNvdXJjZVJl
cXVlc3QodXJsKSwgc3Vic3REYXRhLCBmYWxzZSk7CisgICAgaW50IGxlbmd0aCA9IHN0YXRpY19j
YXN0PGludD4oY29udGVudC5sZW5ndGgoKSk7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVm
ZmVyKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGNvbnRlbnQuZGF0YSgpLCBsZW5ndGgpKTsKKyAgICB3
ZWJGcmFtZS0+ZnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdCh3ZWJGcmFt
ZS0+ZnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCksIFN1YnN0aXR1dGVEYXRhKGJ1ZmZlciwg
InRleHQvaHRtbCIsICJVVEYtOCIsIEtVUkwoKSkpKTsKIAogICAgIC8vIFRoaXMgZG9jdW1lbnQg
d2lsbCBiZSB1c2VkIGFzICdsb2FkaW5nIGNvbnRleHQnIGZvciB0aGUgd29ya2VyLgogICAgIG1f
bG9hZGluZ0RvY3VtZW50ID0gd2ViRnJhbWUtPmZyYW1lKCktPmRvY3VtZW50KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfZnJhbWUuY3BwCmluZGV4IGRlYzU1ZDY5ODcxYTY2MTYwYmViOTg2NjRlMTA3
OGE0MTBiZmMwNDIuLmFmMzhlNGEwODdlZGRhOWJkN2I5M2VhZTM4YzU4ODE2MzZlNzI4Y2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgi
CiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVz
dC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKQEAgLTMzOCw3ICszMzksNyBAQCBF
aW5hX0Jvb2wgZXdrX2ZyYW1lX3VyaV9zZXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBj
aGFyKiB1cmkpCiAgICAgV2ViQ29yZTo6S1VSTCBrdXJsKFdlYkNvcmU6OktVUkwoKSwgV1RGOjpT
dHJpbmc6OmZyb21VVEY4KHVyaSkpOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXEo
a3VybCk7CiAgICAgV2ViQ29yZTo6RnJhbWVMb2FkZXIqIGxvYWRlciA9IHNtYXJ0RGF0YS0+ZnJh
bWUtPmxvYWRlcigpOwotICAgIGxvYWRlci0+bG9hZChyZXEsIGZhbHNlKTsKKyAgICBsb2FkZXIt
PmxvYWQoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdChzbWFydERhdGEtPmZyYW1lLCByZXEpKTsK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNDE2LDcgKzQxNyw3IEBAIHN0YXRpYyBFaW5hX0Jv
b2wgX2V3a19mcmFtZV9jb250ZW50c19zZXRfaW50ZXJuYWwoRXdrX0ZyYW1lX1NtYXJ0X0RhdGEq
IHNtYXJ0RGF0CiAgICAgICAgIGJhc2VLVVJMLCB1bnJlYWNoYWJsZUtVUkwpOwogICAgIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGJhc2VLVVJMKTsKIAotICAgIHNtYXJ0RGF0YS0+
ZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7Cisg
ICAgc21hcnREYXRhLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQoV2ViQ29yZTo6RnJhbWVMb2FkUmVx
dWVzdChzbWFydERhdGEtPmZyYW1lLCByZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSkpOwogICAgIHJl
dHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1l
LmNwcAppbmRleCA4MDgwMGMyYzU4ZTdhM2MwOGNhNDZiYjYzYjBhMzY3ZTQ5ZDMxNGE3Li4xZTdj
NGMzZjMxZWVjZDExOGY4NTllZDRmMThhZGM5MjhkYjA1ZWViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRl
ICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNs
dWRlICJEb2N1bWVudExvYWRlckd0ay5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKQEAgLTY3NCw3ICs2NzUsNyBAQCB2b2lk
IHdlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmkoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBn
Y2hhciogdXJpKQogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBj
b3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKFJlc291cmNlUmVxdWVzdChLVVJMKEtVUkwoKSwgU3Ry
aW5nOjpmcm9tVVRGOCh1cmkpKSksIGZhbHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5s
b2FkKEZyYW1lTG9hZFJlcXVlc3QoY29yZUZyYW1lLCBSZXNvdXJjZVJlcXVlc3QoS1VSTChLVVJM
KCksIFN0cmluZzo6ZnJvbVVURjgodXJpKSkpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF93
ZWJfZnJhbWVfbG9hZF9kYXRhKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGNv
bnRlbnQsIGNvbnN0IGdjaGFyKiBtaW1lVHlwZSwgY29uc3QgZ2NoYXIqIGVuY29kaW5nLCBjb25z
dCBnY2hhciogYmFzZVVSTCwgY29uc3QgZ2NoYXIqIHVucmVhY2hhYmxlVVJMKQpAQCAtNjkzLDcg
KzY5NCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9kYXRhKFdlYktpdFdl
YkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGNvbnRlCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgS1VSTChLVVJMKCksIFN0cmluZzo6ZnJvbVVURjgodW5yZWFjaGFibGVVUkwp
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLVVJMKEtVUkwoKSwgU3RyaW5n
Ojpmcm9tVVRGOCh1bnJlYWNoYWJsZVVSTCkpKTsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkt
PmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBjb3JlRnJhbWUtPmxv
YWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoY29yZUZyYW1lLCByZXF1ZXN0LCBzdWJzdGl0
dXRlRGF0YSkpOwogfQogCiAvKioKQEAgLTc2Miw3ICs3NjMsNyBAQCB2b2lkIHdlYmtpdF93ZWJf
ZnJhbWVfbG9hZF9yZXF1ZXN0KFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgV2ViS2l0TmV0d29ya1Jl
cXVlc3QqCiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvcmVG
cmFtZS0+bG9hZGVyKCktPmxvYWQoY29yZShyZXF1ZXN0KSwgZmFsc2UpOworICAgIGNvcmVGcmFt
ZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUtPmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCksIGNvcmUocmVxdWVzdCkpKTsKIH0KIAogLyoqCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KaW5kZXggM2ZmMTA5
MDg2ODFkMWFlNzJhNjA4ZjRjNWM4YjlhNGQ1YjIwYzE2OC4uM2IyYjFjNzc4ODMxMzA0YzcxN2Uy
Zjg3MTJiOTRjZGJmMjY4Yzc0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
V2ViUGx1Z2luQ29udHJvbGxlci5tbQpAQCAtNTAsNiArNTAsNyBAQAogI2ltcG9ydCA8Rm91bmRh
dGlvbi9OU1VSTFJlcXVlc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkUmVx
dWVzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9IVE1MTWVkaWFFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxOYW1lcy5oPgpAQCAt
NDAxLDcgKzQwMiwxMCBAQCBzdGF0aWMgdm9pZCBjYW5jZWxPdXRzdGFuZGluZ0NoZWNrKGNvbnN0
IHZvaWQgKml0ZW0sIHZvaWQgKmNvbnRleHQpCiAgICAgICAgICAgICBMT0dfRVJST1IoImNvdWxk
IG5vdCBsb2FkIFVSTCAlQCIsIFtyZXF1ZXN0IFVSTF0pOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9Ci0gICAgICAgIGNvcmUoZnJhbWUpLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCB0
YXJnZXQsIGZhbHNlKTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoY29y
ZShmcmFtZSksIHJlcXVlc3QpOworICAgICAgICBmcmFtZVJlcXVlc3Quc2V0RnJhbWVOYW1lKHRh
cmdldCk7CisgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGlj
eSh0cnVlKTsKKyAgICAgICAgY29yZShmcmFtZSktPmxvYWRlcigpLT5sb2FkKGZyYW1lUmVxdWVz
dCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCBm
OTFmZmQ4ZTUxYmQ0ZGFjYjdhZjBhMWNjNGYyNjUxM2MzZWRhODMyLi5hNWNmNjI3MWM1NzAxYWFj
NjgxNDIzZDJhNjkwNTczZDA5YjY4NWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0KQEAgLTY3LDYgKzY3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRXZlbnRIYW5kbGVyLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkUmVxdWVzdC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9GcmFtZUxvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRlclN0YXRlTWFjaGlu
ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVRyZWUuaD4KQEAgLTEzNjksNyArMTM3MCw3IEBA
IHN0YXRpYyBib29sIG5lZWRzTWljcm9zb2Z0TWVzc2VuZ2VyRE9NRG9jdW1lbnRXb3JrYXJvdW5k
KCkKICAgICBpZiAoIXJlc291cmNlUmVxdWVzdC51cmwoKS5pc1ZhbGlkKCkgJiYgIXJlc291cmNl
UmVxdWVzdC51cmwoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJlc291cmNlUmVxdWVzdC5zZXRVUkwo
W05TVVJMIFVSTFdpdGhTdHJpbmc6W0AiZmlsZToiIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOltb
cmVxdWVzdCBVUkxdIGFic29sdXRlU3RyaW5nXV1dKTsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVy
KCktPmxvYWQocmVzb3VyY2VSZXF1ZXN0LCBmYWxzZSk7CisgICAgY29yZUZyYW1lLT5sb2FkZXIo
KS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KGNvcmVGcmFtZSwgcmVzb3VyY2VSZXF1ZXN0KSk7CiB9
CiAKIHN0YXRpYyBOU1VSTCAqY3JlYXRlVW5pcXVlV2ViRGF0YVVSTCgpCkBAIC0xNDAwLDcgKzE0
MDEsNyBAQCBzdGF0aWMgTlNVUkwgKmNyZWF0ZVVuaXF1ZVdlYkRhdGFVUkwoKQogCiAgICAgU3Vi
c3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjp3cmFwTlNE
YXRhKGRhdGEpLCBNSU1FVHlwZSwgZW5jb2RpbmdOYW1lLCBbdW5yZWFjaGFibGVVUkwgYWJzb2x1
dGVVUkxdLCByZXNwb25zZVVSTCk7CiAKLSAgICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5sb2FkZXIo
KS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIF9wcml2YXRlLT5j
b3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoX3ByaXZhdGUtPmNvcmVG
cmFtZSwgcmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdl
YmZyYW1lLmNwcAppbmRleCA4OTQ3NGRkMmU2YjVlZWE0N2NkZGNjYTEwNjI2NjFiYzE1YzMwNDEz
Li4zZmEwZThiNzE3Y2IzMmFjODNhZGNmNWZmYzdjMmRjODJkODFiMGExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQv
QXBpL3F3ZWJmcmFtZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5o
IgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCkBA
IC04MjgsNyArODI5LDcgQEAgdm9pZCBRV2ViRnJhbWU6OnNldEh0bWwoY29uc3QgUVN0cmluZyAm
aHRtbCwgY29uc3QgUVVybCAmYmFzZVVybCkKICAgICBjb25zdCBRQnl0ZUFycmF5IHV0ZjggPSBo
dG1sLnRvVXRmOCgpOwogICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZGF0
YSA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHV0ZjguY29uc3REYXRhKCksIHV0Zjgu
bGVuZ3RoKCkpOwogICAgIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKGRh
dGEsIFdURjo6U3RyaW5nKCJ0ZXh0L2h0bWwiKSwgV1RGOjpTdHJpbmcoInV0Zi04IiksIEtVUkwo
KSk7Ci0gICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRh
LCBmYWxzZSk7CisgICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKFdlYkNvcmU6OkZyYW1lTG9h
ZFJlcXVlc3QoZC0+ZnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKSk7CiB9CiAKIC8qIQpA
QCAtODU4LDcgKzg1OSw3IEBAIHZvaWQgUVdlYkZyYW1lOjpzZXRDb250ZW50KGNvbnN0IFFCeXRl
QXJyYXkgJmRhdGEsIGNvbnN0IFFTdHJpbmcgJm1pbWVUeXBlLCBjb25zCiAgICAgICAgIGVuY29k
aW5nID0gZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKG1pbWVUeXBlKTsKICAgICB9CiAgICAg
V2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoYnVmZmVyLCBXVEY6OlN0cmlu
ZyhhY3R1YWxNaW1lVHlwZSksIGVuY29kaW5nLCBLVVJMKCkpOwotICAgIGQtPmZyYW1lLT5sb2Fk
ZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIGQtPmZyYW1l
LT5sb2FkZXIoKS0+bG9hZChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0KGQtPmZyYW1lLCByZXF1
ZXN0LCBzdWJzdGl0dXRlRGF0YSkpOwogfQogCiAvKiEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5k
ZXggOGQwOGM0YTEwZGRiMjBkOWRkMzVjZDM5NzI5YTc2OGY1Yjk0NzU3NC4uOWEzYmUzNTIzZjFj
MTAzYjc4NDEzYzcxM2QwMWE0NTQxY2FkMDU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAg
LTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZyYW1lVmll
dy5oIgogI2luY2x1ZGUgIkdDQ29udHJvbGxlci5oIgpAQCAtOTI2LDcgKzkyNyw3IEBAIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEFsdGVybmF0ZUh0bWwoUVdlYkZyYW1lQWRhcHRl
ciogYWRhcHRlciwgY29uc3QKICAgICBjb25zdCBRQnl0ZUFycmF5IHV0ZjggPSBodG1sLnRvVXRm
OCgpOwogICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZGF0YSA9IFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHV0ZjguY29uc3REYXRhKCksIHV0ZjgubGVuZ3RoKCkp
OwogICAgIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKGRhdGEsIFdURjo6
U3RyaW5nKCJ0ZXh0L2h0bWwiKSwgV1RGOjpTdHJpbmcoInV0Zi04IiksIGZhaWxpbmdVcmwpOwot
ICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZh
bHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKFdlYkNvcmU6OkZyYW1lTG9hZFJl
cXVlc3QoY29yZUZyYW1lLCByZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSkpOwogfQogCiB2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpjb25maXJtQ29tcG9zaXRpb24oUVdlYlBhZ2VBZGFwdGVy
ICphZGFwdGVyLCBjb25zdCBjaGFyKiB0ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXggN2EyM2VlMjY4
M2MwOGIyNDMwNmNhNDdjMDQ2NDdhNmRiMjY3MDdjOC4uODAyOGJmOTFlMGE0YjRlZGY0NzczMGMx
NTg0YTgxMjkzZTNhYjQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAj
aW5jbHVkZSAiRm9ybVN0YXRlLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5o
IgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMTE1Myw3ICsxMTU0LDcgQEAgYm9vbCBGcmFt
ZUxvYWRlckNsaWVudFF0OjpjYWxsRXJyb3JQYWdlRXh0ZW5zaW9uKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImIGUKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChiYXNl
VXJsKTsKICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG91dHB1dC5jb250ZW50LmNvbnN0RGF0YSgpLCBv
dXRwdXQuY29udGVudC5sZW5ndGgoKSk7CiAgICAgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEgc3Vi
c3RpdHV0ZURhdGEoYnVmZmVyLCBvdXRwdXQuY29udGVudFR5cGUsIG91dHB1dC5lbmNvZGluZywg
ZmFpbGluZ1VybCk7Ci0gICAgbV9mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3Rp
dHV0ZURhdGEsIGZhbHNlKTsKKyAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+bG9hZChXZWJDb3JlOjpG
cmFtZUxvYWRSZXF1ZXN0KG1fZnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1FXZWJGcmFtZUFkYXB0ZXIuY3BwCmluZGV4IGU4NjQxM2NmMDVkYThlMjgwMmM1MTMyMmVm
NGJlMDdkZDcwYTAxZTQuLjM4MGI3NDk1NGNlNGQ1N2YxYTFkNmQ5YjIwMDY5NmQzMDVhMjM4MGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRh
cHRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RV2ViRnJhbWVB
ZGFwdGVyLmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIlFXZWJGcmFtZUFkYXB0ZXIu
aCIKIAogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50UXQuaCIKICNpbmNsdWRlICJRV2ViUGFnZUFkYXB0
ZXIuaCIKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCkBAIC0xMzIsNyArMTMzLDcgQEAgdm9p
ZCBRV2ViRnJhbWVBZGFwdGVyOjpsb2FkKGNvbnN0IFFOZXR3b3JrUmVxdWVzdCYgcmVxLCBRTmV0
d29ya0FjY2Vzc01hbmFnZXI6Ok8KICAgICBpZiAoIWJvZHkuaXNFbXB0eSgpKQogICAgICAgICBy
ZXF1ZXN0LnNldEhUVFBCb2R5KFdlYkNvcmU6OkZvcm1EYXRhOjpjcmVhdGUoYm9keS5jb25zdERh
dGEoKSwgYm9keS5zaXplKCkpKTsKIAotICAgIGZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0
LCBmYWxzZSk7CisgICAgZnJhbWUtPmxvYWRlcigpLT5sb2FkKFdlYkNvcmU6OkZyYW1lTG9hZFJl
cXVlc3QoZnJhbWUsIHJlcXVlc3QpKTsKIAogICAgIGlmIChmcmFtZS0+dHJlZSgpLT5wYXJlbnQo
KSkKICAgICAgICAgcGFnZUFkYXB0ZXItPmluc2lkZU9wZW5DYWxsID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJGcmFtZS5jcHAKaW5kZXggZWU5Y2RkOGM0NDE4ZDhhMjdlNjgwNGYwMjA4OTViYjU1YjIzODJj
NS4uYzg1OWU2YTI1NTA3ZTU4NDRmOTZkMGNmZjQ4OGIxNjcwYTI4MjIwNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkZyYW1lLmNwcApAQCAtNTU2LDcgKzU1Niw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
V2ViRnJhbWU6OmxvYWRSZXF1ZXN0KAogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1
cm4gRV9GQUlMOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0SW1wbC0+
cmVzb3VyY2VSZXF1ZXN0KCksIGZhbHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2Fk
KEZyYW1lTG9hZFJlcXVlc3QoY29yZUZyYW1lLCByZXF1ZXN0SW1wbC0+cmVzb3VyY2VSZXF1ZXN0
KCkpKTsKICAgICByZXR1cm4gU19PSzsKIH0KIApAQCAtNTgwLDcgKzU4MCw3IEBAIHZvaWQgV2Vi
RnJhbWU6OmxvYWREYXRhKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBkYXRhLCBC
U1RSIG1pbWVUeXBlLCBCCiAKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBvbmx5IGNhbGxlZCBmcm9t
IElXZWJGcmFtZSBtZXRob2RzLCBzbyBkb24ndCBBU1NFUlQgdGhhdCB0aGUgRnJhbWUgcG9pbnRl
ciBpc24ndCBudWxsLgogICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZSh0aGlzKSkKLSAg
ICAgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwg
ZmFsc2UpOworICAgICAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVl
c3QoY29yZUZyYW1lLCByZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSkpOwogfQogCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYlZpZXcuY3BwCmluZGV4IGZjYzA0ZDdkYjZiNjYxYTg3ZjU5Njg2MzQ1ZDk4ODc5NzhmNDNm
ZDYuLjkwNTlhNDAyMjFhNzhlNWNlZTI3ZjA2YTVkMDBlYTYxZDNkYTlmOWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJWaWV3LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkVkaXRvckNsaWVudFdp
bkNFLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFdpbkNFLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3
LmgiCkBAIC0yMTgsNyArMjE5LDcgQEAgdm9pZCBXZWJWaWV3Ojpsb2FkKGNvbnN0IFN0cmluZyAm
dXJsKQogCiB2b2lkIFdlYlZpZXc6OmxvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
ICZyZXF1ZXN0KQogewotICAgIGZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIGZhbHNl
KTsKKyAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lKCks
IHJlcXVlc3QpKTsKIH0KIAogdm9pZCBXZWJWaWV3OjpyZWxvYWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93eC9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYkZyYW1lLmNw
cAppbmRleCBiMzc0MTEzYzA3NzJhMWM3ZjI2ZjI0NDA4MzAwMmJiM2FhZThjOGE5Li5jY2Y1NGUz
OGY3OWZlMmI3MmU0Y2U2NDljYjAxZDFlZmI4ZTk4Yjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3d4L1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYkZyYW1lLmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvcm1T
dGF0ZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRX
eC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMzIyLDcgKzMyMyw3IEBAIHZvaWQgV2Vi
RnJhbWU6OlNldFBhZ2VTb3VyY2UoY29uc3Qgd3hTdHJpbmcmIHNvdXJjZSwgY29uc3Qgd3hTdHJp
bmcmIGJhc2VVcmwsIGNvCiAgICAgICAgIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1
dGVEYXRhKHNoYXJlZEJ1ZmZlciwgbWltZXR5cGUsIFdURjo6U3RyaW5nKCJVVEYtOCIpLCBXZWJD
b3JlOjpibGFua1VSTCgpLCB1cmwpOwogCiAgICAgICAgIG1faW1wbC0+ZnJhbWUtPmxvYWRlcigp
LT5zdG9wKCk7Ci0gICAgICAgIG1faW1wbC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCh1cmwpLCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgICAgICBt
X2ltcGwtPmZyYW1lLT5sb2FkZXIoKS0+bG9hZChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0KG1f
aW1wbC0+ZnJhbWUsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCh1cmwpLCBzdWJzdGl0dXRlRGF0
YSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwCmluZGV4IDQ0ZjU3NWFkNTRmZmVlNDg4NTBmM2UzODk3M2ZhZmM2OTgw
MjMwZTEuLjY0NjIzODg4ZWIxNDRiMjBhZjM3ZjgxMjkzNTQwZDk3ZmQxNDg0YTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTk1
MCw3ICs5NTAsMTAgQEAgdm9pZCBQbHVnaW5WaWV3OjpwZXJmb3JtRnJhbWVMb2FkVVJMUmVxdWVz
dChVUkxSZXF1ZXN0KiByZXF1ZXN0KQogICAgIEZyYW1lKiB0YXJnZXRGcmFtZSA9IGZyYW1lLT5s
b2FkZXIoKS0+ZmluZEZyYW1lRm9yTmF2aWdhdGlvbihyZXF1ZXN0LT50YXJnZXQoKSk7CiAgICAg
aWYgKCF0YXJnZXRGcmFtZSkgewogICAgICAgICAvLyBXZSBkaWQgbm90IGZpbmQgYSB0YXJnZXQg
ZnJhbWUuIEFzayBvdXIgZnJhbWUgdG8gbG9hZCB0aGUgcGFnZS4gVGhpcyBtYXkgb3IgbWF5IG5v
dCBjcmVhdGUgYSBwb3B1cCB3aW5kb3cuCi0gICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+bG9hZChy
ZXF1ZXN0LT5yZXF1ZXN0KCksIHJlcXVlc3QtPnRhcmdldCgpLCBmYWxzZSk7CisgICAgICAgIEZy
YW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGZyYW1lLCByZXF1ZXN0LT5yZXF1ZXN0KCkpOwor
ICAgICAgICBmcmFtZVJlcXVlc3Quc2V0RnJhbWVOYW1lKHJlcXVlc3QtPnRhcmdldCgpKTsKKyAg
ICAgICAgZnJhbWVSZXF1ZXN0LnNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KHRydWUpOwor
ICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKIAogICAgICAgICAv
LyBGSVhNRTogV2UgZG9uJ3Qga25vdyB3aGV0aGVyIHRoZSB3aW5kb3cgd2FzIHN1Y2Nlc3NmdWxs
eSBjcmVhdGVkIGhlcmUgc28gd2UganVzdCBhc3N1bWUgdGhhdCBpdCB3b3JrZWQuCiAgICAgICAg
IC8vIEl0J3MgYmV0dGVyIHRoYW4gbm90IHRlbGxpbmcgdGhlIHBsdWctaW4gYW55dGhpbmcuCkBA
IC05NTksNyArOTYyLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpwZXJmb3JtRnJhbWVMb2FkVVJMUmVx
dWVzdChVUkxSZXF1ZXN0KiByZXF1ZXN0KQogICAgIH0KIAogICAgIC8vIE5vdyBhc2sgdGhlIGZy
YW1lIHRvIGxvYWQgdGhlIHJlcXVlc3QuCi0gICAgdGFyZ2V0RnJhbWUtPmxvYWRlcigpLT5sb2Fk
KHJlcXVlc3QtPnJlcXVlc3QoKSwgZmFsc2UpOworICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS0+
bG9hZChGcmFtZUxvYWRSZXF1ZXN0KHRhcmdldEZyYW1lLCByZXF1ZXN0LT5yZXF1ZXN0KCkpKTsK
IAogICAgIFdlYkZyYW1lKiB0YXJnZXRXZWJGcmFtZSA9IHN0YXRpY19jYXN0PFdlYkZyYW1lTG9h
ZGVyQ2xpZW50Kj4odGFyZ2V0RnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKSktPndlYkZyYW1lKCk7
CiAgICAgaWYgKFdlYkZyYW1lOjpMb2FkTGlzdGVuZXIqIGxvYWRMaXN0ZW5lciA9IHRhcmdldFdl
YkZyYW1lLT5sb2FkTGlzdGVuZXIoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGEyMWZhZTM4NWI1YTIxZmY3ZmVjYTVhZDUxOTZiMGFm
OTFhNjdkMDkuLmUzMzc2NTIyNjc4MWY4MDI4M2IwNzU3ZWZiMDYzNTAzODY4YWIxM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTgyNCw3
ICs4MjQsNyBAQCB2b2lkIFdlYlBhZ2U6OmxvYWRVUkxSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgU2FuZGJveEV4dGVucwogICAgIFNlbmRTdG9wUmVzcG9uc2l2
ZW5lc3NUaW1lciBzdG9wcGVyKHRoaXMpOwogCiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uVHJhY2tl
ci5iZWdpbkxvYWQobV9tYWluRnJhbWUuZ2V0KCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwot
ICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgZmFs
c2UpOworICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoRnJhbWVM
b2FkUmVxdWVzdChtX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3QpKTsKIH0KIAogdm9p
ZCBXZWJQYWdlOjpsb2FkRGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2hhcmVkQnVmZmVy
LCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nTmFtZSwgY29u
c3QgS1VSTCYgYmFzZVVSTCwgY29uc3QgS1VSTCYgdW5yZWFjaGFibGVVUkwpCkBAIC04MzMsNyAr
ODMzLDcgQEAgdm9pZCBXZWJQYWdlOjpsb2FkRGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
c2hhcmVkQnVmZmVyLCBjb25zdCBTdHJpbmcmIE1JTUUKIAogICAgIFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KGJhc2VVUkwpOwogICAgIFN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKHNoYXJl
ZEJ1ZmZlciwgTUlNRVR5cGUsIGVuY29kaW5nTmFtZSwgdW5yZWFjaGFibGVVUkwpOwotICAgIG1f
bWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0
ZURhdGEsIGZhbHNlKTsKKyAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5s
b2FkKEZyYW1lTG9hZFJlcXVlc3QobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0LCBz
dWJzdGl0dXRlRGF0YSkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmxvYWRIVE1MU3RyaW5nKGNvbnN0
IFN0cmluZyYgaHRtbFN0cmluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMU3RyaW5nKQpAQCAtODcz
LDggKzg3Myw3IEBAIHZvaWQgV2ViUGFnZTo6bGlua0NsaWNrZWQoY29uc3QgU3RyaW5nJiB1cmws
IGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQogICAgIGlmIChldmVudC50eXBlKCkgIT0gV2Vi
RXZlbnQ6Ok5vVHlwZSkKICAgICAgICAgY29yZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5jbGlja0V2ZW50LCBmcmFtZS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwg
cGxhdGZvcm0oZXZlbnQpLCAwLCAwKTsKIAotICAgIGZyYW1lLT5sb2FkZXIoKS0+bG9hZEZyYW1l
UmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdp
bigpLCBSZXNvdXJjZVJlcXVlc3QodXJsKSksIAotICAgICAgICBmYWxzZSwgZmFsc2UsIGNvcmVF
dmVudC5nZXQoKSwgMCwgTWF5YmVTZW5kUmVmZXJyZXIpOworICAgIGZyYW1lLT5sb2FkZXIoKS0+
bG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLCBSZXNvdXJjZVJlcXVlc3Qo
dXJsKSksIGZhbHNlLCBmYWxzZSwgY29yZUV2ZW50LmdldCgpLCAwLCBNYXliZVNlbmRSZWZlcnJl
cik7CiB9CiAKIHZvaWQgV2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlE
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176358</attachid>
            <date>2012-11-27 16:13:20 -0800</date>
            <delta_ts>2012-11-27 17:08:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102151-20121127161056.patch</filename>
            <type>text/plain</type>
            <size>51563</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWU0ZmYwMDhiNTdlMjNj
MDY1NGJlYTY2YWY5YjJjZmE5MzEyMjNkMS4uNWI0OTYwNmMxMGNhYWU4NTU0ZTk2Y2ZjNjUwODkw
OWE3NGRlMDZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTIwICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0
ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9h
ZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVGhl
cmUncyBhIEZJWE1FIHRoYXQgd2UgaGF2ZSB0b28gbWFueSBGcmFtZUxvYWRlcjo6bG9hZCooKSBm
dW5jdGlvbnMuIFRoaXMgcGF0Y2ggY29uc29saWRhdGVzIDMgaW50byAxLgorICAgICAgICBUaGVy
ZSBhcmUgc3RpbGwgYSBmZXcgbW9yZSBsb2FkIGZ1bmN0aW9ucyB0aGF0IHdpbGwgYmUgY29uc29s
aWRhdGVkIGxhdGVyLiBVc2luZyBGcmFtZUxvYWRSZXF1ZXN0IGFzCisgICAgICAgIHRoZSBpbnRl
cmZhY2UgaW50byBGcmFtZUxvYWRlciB3aWxsIGFsc28gcHJvdmlkZSBhIHBsYWNlIHRvIHBhc3Mg
aW4gdGhlIGluaXRpYXRvci4gRmluYWxseSwgdGhpcyBtYXRjaGVzCisgICAgICAgIHRoZSByZWZh
Y3RvcmluZyBkb25lIHdpdGggQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGFuZCBDYWNoZWRSZXNvdXJj
ZUxvYWRlci4KKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFs
aXR5LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OkZyYW1l
TG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2V0TG9j
a0hpc3RvcnkpOiBUaGVzZSBhcmUgZm9ybWVyIGFyZ3VtZW50cyB0byBsb2FkKCkuCisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0Ojpsb2NrSGlzdG9yeSk6IERpdHRvLgorICAgICAg
ICAoRnJhbWVMb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0
OjpzZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnN1YnN0aXR1dGVEYXRhKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpzZXRTdWJzdGl0dXRlRGF0
YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6aGFzU3Vic3Rp
dHV0ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOiBObyBjaGFuZ2UgaW4gYmVoYXZpb3Is
IGp1c3QgbWVyZ2VkIGl0IGFsbCBpbnRvIG9uZSBmdW5jdGlvbi4KKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBwYWdlL0Ry
YWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpwZXJm
b3JtRHJhZyk6CisKIDIwMTItMTEtMjcgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtWOF0gUmVwbGFjZSB0b1dlYkNvcmVTdHJpbmcoKS90b1dlYkNvcmVB
dG9taWNTdHJpbmcoKSBpbiBDb2RlR2VuZXJhdG9yVjgucG0gd2l0aCBWOFN0cmluZ1Jlc291cmNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCA4MDFkMWYyNDFmNjE3YjhhY2FmYTBh
ZTVjM2I2ZmRiMzNkOGJmZWQzLi5iOWM5YjU3ZTlkNjVkMWJmMGJkZTRlMjNlOTEwZDFmYWNlZmZm
NmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
Mi0xMS0yMCAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgQ29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtp
bmcgYSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgor
CisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0
OjpXZWJQYWdlUHJpdmF0ZTo6bG9hZCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Oldl
YlBhZ2VQcml2YXRlOjpsb2FkU3RyaW5nKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQpOgorCiAy
MDEyLTExLTI3ICBKYWNreSBKaWFuZyAgPHpoYWppYW5nQHJpbS5jb20+CiAKICAgICAgICAgW0Js
YWNrQmVycnldIGh0dHA6Ly8gb3JpZ2lucyBjYW4gbmF2aWdhdGUgdG8gcHJpdmlsZWdlZCBsb2Nh
bDovLyBvcmlnaW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDY2ZGFhNjM5ZDljMzUx
OWE5OThlMjNkZTQwNGMxOTE2OTU3MGY0OTUuLmUzZDdiZTRkNTdiNzJhYzdkZDUxNzI0NzdjZDM0
N2RkY2Y1OTMwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTItMTEtMjAgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24g
dGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KKworICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZUltcGw6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBs
Ojpsb2FkRGF0YSk6CisgICAgICAgICogc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTaGFyZWRXb3JrZXJJbXBsOjppbml0aWFsaXplTG9hZGVyKToKKwog
MjAxMi0xMS0yNyAgQWxwaGEgTGFtICA8aGNsYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtj
aHJvbWl1bV0gSW1wbGVtZW50IGZ1bGwtZmVhdHVyZWQgaW1hZ2UgY2FjaGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
ZwppbmRleCBjZmYwZjcyYWNlYzRhMDliYjliNjNkNDI1NzZkZmJjMGI3NzcyM2FlLi5hODA1MDE5
N2ExMmU2YjQ2ZWMzNmI4MGZiMzRjNjc4MzAzMDRhNmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTItMTEtMjAgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBv
bmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBCYXJ0aC4KKworICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAo
X2V3a19mcmFtZV9jb250ZW50c19zZXRfaW50ZXJuYWwpOgorCiAyMDEyLTExLTI3ICBTaGVyaWZm
IEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTM1Nzg2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDczOGY4NTNjYWE4OWE4
YTFkMGFiN2Q0ZWQ3M2NlZmM4ZDdlZGVlNGUuLjk2NWY0YzIwMDExNTYxNjc4ZDZiMzkwYzFhNjg4
ZjU3ZDNiNGMzNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0y
MCAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29u
c29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcgYSBG
cmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfZnJh
bWVfbG9hZF91cmkpOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX2RhdGEpOgorICAg
ICAgICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX3JlcXVlc3QpOgorCiAyMDEyLTExLTI3ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTM1Nzg2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDk3ZDU1MDA1MDlk
ZjI0YjhiMGZmYTVlNDI0ODhlMDk2MjBjNjkwYTUuLjI4NWYwZjAzYjYyMzQ3MTQ2ODg3MGZjOTQ1
ODIyMDU4ZTJhODI0YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0x
MS0yMCAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
Q29uc29saWRhdGUgRnJhbWVMb2FkZXI6OmxvYWQoKSBpbnRvIG9uZSBmdW5jdGlvbiB0YWtpbmcg
YSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisg
ICAgICAgICogUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViRnJhbWUubW06CisgICAgICAgICgtW1dlYkZyYW1lIGxvYWRSZXF1ZXN0Ol0pOgorICAg
ICAgICAoLVtXZWJGcmFtZSBfbG9hZERhdGE6TUlNRVR5cGU6dGV4dEVuY29kaW5nTmFtZTpiYXNl
VVJMOnVucmVhY2hhYmxlVVJMOl0pOgorCiAyMDEyLTExLTI3ICBQcmF0aWsgU29sYW5raSAgPHBz
b2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAgICBvYmpjL29iamMtcnVudGltZS5oIGRvZXMgbm90
IGV4aXN0IG9uIGFsbCBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDFmNzBlMjFhOWFm
NGExNzdmZWM0NGQyMDNjM2Q3Y2QzNGRkYTE3ZTIuLjIzMzhmMDQyMDM2ZWYzZjE1MzRlYTMzYmYw
YTFiZDdkYWE2NjM1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMTEt
MjAgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENv
bnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEg
RnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAg
ICAgICAqIEFwaS9xd2ViZnJhbWUuY3BwOgorICAgICAgICAoUVdlYkZyYW1lOjpRV2ViRnJhbWUp
OgorICAgICAgICAoUVdlYkZyYW1lOjpsb2FkKToKKyAgICAgICAgKFFXZWJGcmFtZTo6c2V0SHRt
bCk6CisgICAgICAgIChRV2ViRnJhbWU6OnNldENvbnRlbnQpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0OjpzZXRBbHRlcm5hdGVIdG1sKToKKyAgICAgICAgKHF0X2R1bXBfc2V0X2Fj
Y2VwdHNfZWRpdGluZyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpjYWxsRXJy
b3JQYWdlRXh0ZW5zaW9uKToKKwogMjAxMi0xMS0yNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2
aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEz
NTc4Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAwNjE0MDliZDg4ZTI3ZGJmM2RhNGIzNGNhM2RjNDY0
NDMxYjE1YjUwLi5mMWNjOTY3M2M2NTYwNGJkZmRhODFiMWUxOTJjZTg5MTc0OGQ4YjM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTEtMjAgIEphbWVzIFNpbW9uc2Vu
ICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9h
ZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICAqIFdlYkZyYW1lLmNw
cDoKKyAgICAgICAgKFdlYkZyYW1lOjpsb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJGcmFtZTo6
bG9hZERhdGEpOgorCiAyMDEyLTExLTI3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90
QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM1Nzg2Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L3dpbmNlL0NoYW5nZUxvZwppbmRleCAyMDY4ZjJlNDdlMThmYjUzYjQ3MzljYWE5MDc3YzM3N2U0
YTYzMzU2Li5mN2ZlNGFhM2EzNTUwMzM0MTQzMDE2NDlmZDNiZGRiMjNhYTU4MTc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTExLTIwICBKYW1lcyBTaW1vbnNl
biAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxv
YWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjE1MQor
CisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgKiBXZWJWaWV3LmNw
cDoKKyAgICAgICAgKFdlYlZpZXc6OmxvYWQpOgorCiAyMDEyLTExLTI3ICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTM1Nzg2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRleCA2NzM5YTE3ZTI1OTVjOTM1ZDNjYzkw
ZmFlYmQzOGNkMDdjMWVhOGYxLi4wZmNmNWQwOWYyNWE2NTA2YTNhNjBiYjVhYTgwMGUzODA3MzFj
MTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTExLTIwICBKYW1lcyBT
aW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb25zb2xpZGF0ZSBG
cmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJl
cXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MjE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgKiBXZWJG
cmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpTZXRQYWdlU291cmNlKToKKwog
MjAxMi0xMS0yNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNTc4Ni4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2
OTQxNzNlOTQ3ODIzYmMzZDNhNTQ1YmI1YTFmMWQ2MzkyOThjYWU0Li43YzIxY2JkMzAyNTE5ZTIx
NWU5NTlmNjFmZTE0OWQ5ODNlODI2OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTItMTEtMjAgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIENvbnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFr
aW5nIGEgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVlc3QpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6bG9hZFVSTFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkRGF0
YSk6CisKIDIwMTItMTEtMjcgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUERGUGx1Z2luOiBQYWdlIHNjYWxlIGZhY3RvciBzaG91bGQgYWZmZWN0IHN1
YmZyYW1lIFBERnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZmY3Y2FjYjc5NzM1YTg2Y2M5YTRl
ZjQ5YjNhODVkMDY3ZTUyMzk1ZS4uM2E1ZDIxNzM1ODQ1ZjBiZDhhNTQ3M2JhNmZiMGQwOWQwZmY1
MTJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2MzMsNiArMTYzMyw3IEBAIFNFVChXZWJD
b3JlX1NPVVJDRVMKICAgICBsb2FkZXIvRlRQRGlyZWN0b3J5UGFyc2VyLmNwcAogICAgIGxvYWRl
ci9Gb3JtU3RhdGUuY3BwCiAgICAgbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAorICAgIGxvYWRl
ci9GcmFtZUxvYWRSZXF1ZXN0LmNwcAogICAgIGxvYWRlci9GcmFtZUxvYWRlci5jcHAKICAgICBs
b2FkZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuY3BwCiAgICAgbG9hZGVyL0hpc3RvcnlDb250
cm9sbGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOTY2MTNkMmZjNWZl
YmU4MzNjM2NkZDQ0ZmVlNWMyZjNmMTM0NzdiZC4uZGNjYmY3YmVkMmJjZWQxOTIwMjA3OGVhNDYx
MjE0Nzk4MjRlZDdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODc0LDEz
ICszODc0LDE0IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Zvcm1TdGF0ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uaCBcCisJU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkUmVxdWVzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJUeXBlcy5oIFwKLQlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVz
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5UGFyc2VyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeVBhcnNlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGRl
OWUzZTdiMDAyMmNmZDdmYmFmMWZiMGFjNmRlNmZkMzAwYTE0OTYuLmM1N2Q1OGIyMGNjNWY1ZTcy
ZWM4OTUxYWI2MTYyYjMxNzBhZmZhNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtODMxLDYgKzgzMSw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwIFwKICAgICBsb2FkZXIv
Rm9ybVN0YXRlLmNwcCBcCiAgICAgbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBcCisgICAgbG9h
ZGVyL0ZyYW1lTG9hZFJlcXVlc3QuY3BwIFwKICAgICBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwIFwK
ICAgICBsb2FkZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuY3BwIFwKICAgICBsb2FkZXIvSGlz
dG9yeUNvbnRyb2xsZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMTJkMmZjNjI2Njk2
MGFhZTUxNWFmMTk4YzEwMDRmM2NhZjc5NjcxNi4uMzg2MThmMTc5NDMxNzdhODc2MDNkNmYwZDMz
ZDg2ZTZkZjMwN2MxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEwNyw5ICsxMDcsNyBAQCBf
X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjN0aW1lT2ZMYXN0Q29tcGxldGVkTG9hZEV2CiBfX1pO
N1dlYkNvcmUxMUZyYW1lTG9hZGVyMjZyZWxvYWRXaXRoT3ZlcnJpZGVFbmNvZGluZ0VSS04zV1RG
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIzMnNldE9yaWdpbmFsVVJMRm9yRG93
bmxvYWRSZXF1ZXN0RVJOU18xNVJlc291cmNlUmVxdWVzdEUKIF9fWk43V2ViQ29yZTExRnJhbWVM
b2FkZXI0aW5pdEV2Ci1fX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNVJlc291
cmNlUmVxdWVzdEVSS04zV1RGNlN0cmluZ0ViCi1fX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxv
YWRFUktOU18xNVJlc291cmNlUmVxdWVzdEVSS05TXzE0U3Vic3RpdHV0ZURhdGFFYgotX19aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFYgorX19aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RQogX19aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjZyZWxvYWRFYgogX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjlz
ZXRPcGVuZXJFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTExSGlzdG9yeUl0ZW0xMHRhcmdldEl0
ZW1FdgpAQCAtNDMxLDYgKzQyOSw3IEBAIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTEy
Um90YXRpb25SYXRlNmNyZWF0ZUViZGJkYmQKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0
YTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlMwXzEyQWNjZWxlcmF0aW9uRUVFUzRfTlMyX0lO
UzBfMTJSb3RhdGlvblJhdGVFRUViZAogX19aTjdXZWJDb3JlMTZGb250RmFsbGJhY2tMaXN0MTVy
ZWxlYXNlRm9udERhdGFFdgogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhRDFFdgorX19a
TjdXZWJDb3JlMTZGcmFtZUxvYWRSZXF1ZXN0QzFFUE5TXzVGcmFtZUVSS05TXzE1UmVzb3VyY2VS
ZXF1ZXN0RVJLTlNfMTRTdWJzdGl0dXRlRGF0YUUKIF9fWk43V2ViQ29yZTE2SFRNTElucHV0RWxl
bWVudDhzZXRWYWx1ZUVSS04zV1RGNlN0cmluZ0VOU18yMlRleHRGaWVsZEV2ZW50QmVoYXZpb3JF
CiBfX1pON1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQxM3NldEF1dG9maWxsZWRFYgogX19aTjdX
ZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTVzZXRFZGl0aW5nVmFsdWVFUktOM1dURjZTdHJpbmdF
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggOTU5Y2U1ZDc2NTA3Mjg2YjljOWM2MDBiNjIwOGRmNzNjNWM4
YjU1NS4uZGE2MzM3MjMwYTM1NDAxYTNmMjM4YmY1ZWI5ZmJkNGY5OWRkMTViYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtMjk0OSw2ICsyOTQ5LDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvRlRQRGly
ZWN0b3J5UGFyc2VyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9Gb3JtU3RhdGUuY3BwJywKICAg
ICAgICAgICAgICdsb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwJywKKyAgICAgICAgICAgICdsb2Fk
ZXIvRnJhbWVMb2FkUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAn
LAogICAgICAgICAgICAgJ2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAwMmI5NTczOWIxZmYy
MjMwMzc1YzY3YmYzNzZkYzFjNzAyYmYzYmY3Li4xMWQzYTIyMzMwZmI4MWE3YzBhYmMyYWE2MzEw
MWEwMWZmOWFhYjI0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagpAQCAtMjc2NDYsNiArMjc2NDYsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXEZyYW1lTG9hZFJlcXVlc3QuY3BwIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJc
RnJhbWVMb2FkUmVxdWVzdC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYjYzYjNkOTI4YmNj
NzFkZTczNzdlMjFmMDZkYTZmNzg3Yjc3NTM0Li5kNDRjZTBiYjI5ZWRkNmZjMGI2YzgzNDExZDgy
YzFmMzMwM2NhNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yOTk3LDYgKzI5OTcsNyBAQAogCQk4NjI0M0QwMTExQkMzMUY3
MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MjQzRDAwMTFCQzMxRjcwMENDMDA2QSAvKiBK
U0FycmF5QnVmZmVyVmlld0hlbHBlci5oICovOyB9OwogCQk4NjUxMkVERTE1NEEyQUVGMDBBOTA0
MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjUxMkVEQjE1NEEyQUVFMDBBOTA0MjYgLyogUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAgKi87IH07CiAJCTg2NTEyRURGMTU0QTJBRUYwMEE5
MDQyNiAvKiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjUxMkVEQzE1NEEyQUVGMDBBOTA0MjYgLyogUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oICovOyB9OworCQk4NkJBNzY2RTE2NjQyN0E4MDA1QkU1
RDEgLyogRnJhbWVMb2FkUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NkJBNzY2RDE2NjQyN0E4MDA1QkU1RDEgLyogRnJhbWVMb2FkUmVx
dWVzdC5jcHAgKi87IH07CiAJCTg2QkUzNDAwMTUwNThDQjIwMENFMEZEOCAvKiBQZXJmb3JtYW5j
ZUVudHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg2QkUzM0ZBMTUwNThDQjIwMENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5LmNwcCAqLzsgfTsK
IAkJODZCRTM0MDExNTA1OENCMjAwQ0UwRkQ4IC8qIFBlcmZvcm1hbmNlRW50cnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QkUzM0ZCMTUwNThDQjIw
MENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5LmggKi87IH07CiAJCTg2QkUzNDAzMTUwNThDQjIw
MENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkJFMzNGRDE1MDU4Q0IyMDBDRTBGRDggLyogUGVy
Zm9ybWFuY2VFbnRyeUxpc3QuY3BwICovOyB9OwpAQCAtMTAyNDAsNiArMTAyNDEsNyBAQAogCQk4
NjUxMkVEQjE1NEEyQUVFMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODY1MTJFREMxNTRBMkFF
RjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NjUxMkVERDE1NEEyQUVGMDBBOTA0MjYgLyogUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg2QkE3NjZE
MTY2NDI3QTgwMDVCRTVEMSAvKiBGcmFtZUxvYWRSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lTG9hZFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NkJFMzNGQTE1MDU4Q0IyMDBDRTBGRDggLyogUGVyZm9ybWFuY2VF
bnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZXJmb3JtYW5j
ZUVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZCRTMzRkIxNTA1OENC
MjAwQ0UwRkQ4IC8qIFBlcmZvcm1hbmNlRW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGVyZm9ybWFuY2VFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NkJFMzNGQzE1MDU4Q0IyMDBDRTBGRDggLyogUGVyZm9ybWFuY2VFbnRyeS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUGVyZm9ybWFuY2VFbnRyeS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMDgzMCw2ICsyMDgzMiw3IEBACiAJCQkJRDAwMEVCQTAxMUJEQUZENDAw
QzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmNwcCAqLywKIAkJCQlEMDAwRUJBMTEx
QkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCAqLywKIAkJCQk5M0I3
N0EzNzBBREQ3OTI1MDBFQTRCODEgLyogRnJhbWVMb2FkZXJUeXBlcy5oICovLAorCQkJCTg2QkE3
NjZEMTY2NDI3QTgwMDVCRTVEMSAvKiBGcmFtZUxvYWRSZXF1ZXN0LmNwcCAqLywKIAkJCQk2NTg0
MzY4NTBBRTAxQjc0MDBFNTM3NTMgLyogRnJhbWVMb2FkUmVxdWVzdC5oICovLAogCQkJCTYyOEQy
MTREMTIxMzFFRjQwMDU1RENGQyAvKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJ
NTFDODFCODcwQzQ0MjJGNzAwMTlFQ0UzIC8qIEZUUERpcmVjdG9yeVBhcnNlci5jcHAgKi8sCkBA
IC0yODkxOSw2ICsyODkyMiw3IEBACiAJCQkJQ0Q3RTA1MjIxNjUxQzI4MjAwQzEyMDFGIC8qIFdl
YkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ0Nzk1ODA1MTY0
M0I0QjIwMDFFMEE3RiAvKiBQYXJzZWRDb250ZW50VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNUI4QjdDODE2NTJDNTIyMDAzNkVGNTUgLyogSlNXZWJLaXRDU1NNaXhGdW5jdGlvblZhbHVl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg2QkE3NjZFMTY2NDI3QTgwMDVCRTVEMSAvKiBGcmFt
ZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZFJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxNDY3ODgyM2ViZTUzYzQ3M2M3NDQ1NmRl
NWFhNDg0NjM4MDIyMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkZyYW1lLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRnJhbWVMb2FkUmVx
dWVzdDo6RnJhbWVMb2FkUmVxdWVzdChGcmFtZSogZnJhbWUsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEp
CisgICAgOiBtX3JlcXVlc3RlcihmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkK
KyAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKKyAgICAsIG1fbG9ja0hp
c3RvcnkoZmFsc2UpCisgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQor
ICAgICwgbV9zdWJzdGl0dXRlRGF0YShzdWJzdGl0dXRlRGF0YSkKK3sKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKaW5k
ZXggZDY1YTliNWZhYzJmNjIwZjk3MjIxMzM1ZTQ3ZTQyODgwOTZjN2MzMy4uMWI3Nzg5OTg2MjQx
Yzc5MDRiN2Y1OWQzMTVhOTI1MTgzNzk5ODE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkUmVxdWVzdC5oCkBAIC0yOCwxOSArMjgsMjUgQEAKIAogI2luY2x1ZGUgIlJlc291cmNl
UmVxdWVzdC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU3Vic3Rp
dHV0ZURhdGEuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRnJhbWU7CiAKIHN0cnVj
dCBGcmFtZUxvYWRSZXF1ZXN0IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBGcmFtZUxvYWRSZXF1
ZXN0KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIpCiAgICAgICAgIDogbV9yZXF1ZXN0ZXIocmVx
dWVzdGVyKQorICAgICAgICAsIG1fbG9ja0hpc3RvcnkoZmFsc2UpCisgICAgICAgICwgbV9zaG91
bGRDaGVja05ld1dpbmRvd1BvbGljeShmYWxzZSkKICAgICB7CiAgICAgfQogCiAgICAgRnJhbWVM
b2FkUmVxdWVzdChTZWN1cml0eU9yaWdpbiogcmVxdWVzdGVyLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlc291cmNlUmVxdWVzdCkKICAgICAgICAgOiBtX3JlcXVlc3RlcihyZXF1ZXN0ZXIpCiAg
ICAgICAgICwgbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQorICAgICAgICAsIG1f
bG9ja0hpc3RvcnkoZmFsc2UpCisgICAgICAgICwgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGlj
eShmYWxzZSkKICAgICB7CiAgICAgfQogCkBAIC00OCw5ICs1NCwxMyBAQCBwdWJsaWM6CiAgICAg
ICAgIDogbV9yZXF1ZXN0ZXIocmVxdWVzdGVyKQogICAgICAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0
KHJlc291cmNlUmVxdWVzdCkKICAgICAgICAgLCBtX2ZyYW1lTmFtZShmcmFtZU5hbWUpCisgICAg
ICAgICwgbV9sb2NrSGlzdG9yeShmYWxzZSkKKyAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2lu
ZG93UG9saWN5KGZhbHNlKQogICAgIHsKICAgICB9CiAKKyAgICBGcmFtZUxvYWRSZXF1ZXN0KEZy
YW1lKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmID0gU3Vi
c3RpdHV0ZURhdGEoKSk7CisKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3Jl
c291cmNlUmVxdWVzdC5pc0VtcHR5KCk7IH0KIAogICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBy
ZXF1ZXN0ZXIoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Rlci5nZXQoKTsgfQpAQCAtNjEsMTAg
KzcxLDIzIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZnJhbWVOYW1lOyB9CiAgICAgdm9pZCBzZXRGcmFtZU5hbWUoY29uc3QgU3RyaW5n
JiBmcmFtZU5hbWUpIHsgbV9mcmFtZU5hbWUgPSBmcmFtZU5hbWU7IH0KIAorICAgIHZvaWQgc2V0
TG9ja0hpc3RvcnkoYm9vbCBsb2NrSGlzdG9yeSkgeyBtX2xvY2tIaXN0b3J5ID0gbG9ja0hpc3Rv
cnk7IH0KKyAgICBib29sIGxvY2tIaXN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9sb2NrSGlzdG9y
eTsgfQorCisgICAgdm9pZCBzZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeShib29sIGNoZWNr
UG9saWN5KSB7IG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kgPSBjaGVja1BvbGljeTsgfQor
ICAgIGJvb2wgc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3No
b3VsZENoZWNrTmV3V2luZG93UG9saWN5OyB9CisKKyAgICBjb25zdCBTdWJzdGl0dXRlRGF0YSYg
c3Vic3RpdHV0ZURhdGEoKSBjb25zdCB7IHJldHVybiBtX3N1YnN0aXR1dGVEYXRhOyB9CisgICAg
dm9pZCBzZXRTdWJzdGl0dXRlRGF0YShjb25zdCBTdWJzdGl0dXRlRGF0YSYgZGF0YSkgeyBtX3N1
YnN0aXR1dGVEYXRhID0gZGF0YTsgfQorICAgIGJvb2wgaGFzU3Vic3RpdHV0ZURhdGEoKSB7IHJl
dHVybiBtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKTsgfQorCiBwcml2YXRlOgogICAgIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4gbV9yZXF1ZXN0ZXI7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVz
b3VyY2VSZXF1ZXN0OwogICAgIFN0cmluZyBtX2ZyYW1lTmFtZTsKKyAgICBib29sIG1fbG9ja0hp
c3Rvcnk7CisgICAgYm9vbCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5OworICAgIFN1YnN0
aXR1dGVEYXRhIG1fc3Vic3RpdHV0ZURhdGE7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAppbmRleCA0MzdhMWY2MTY0NDU3N2NmOTFiOTU3M2JmMGY5M2Q1OGNlZTZj
ODQ2Li4xZGQ4ZDE0M2Y3ZTdjODYxYmJkNTc1MmYyYjQ2OWE1OGRmNDgwNjljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTEyNTIsMzYgKzEyNTIsMzYgQEAgU3Vic3Rp
dHV0ZURhdGEgRnJhbWVMb2FkZXI6OmRlZmF1bHRTdWJzdGl0dXRlRGF0YUZvclVSTChjb25zdCBL
VVJMJiB1cmwpCiAgICAgcmV0dXJuIFN1YnN0aXR1dGVEYXRhKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KGVuY29kZWRTcmNkb2MuZGF0YSgpLCBlbmNvZGVkU3JjZG9jLmxlbmd0aCgpKSwgInRleHQvaHRt
bCIsICJVVEYtOCIsIEtVUkwoKSk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGxvY2tIaXN0b3J5KQordm9pZCBGcmFtZUxv
YWRlcjo6bG9hZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBwYXNzZWRSZXF1ZXN0KQogewotICAg
IGxvYWQocmVxdWVzdCwgZGVmYXVsdFN1YnN0aXR1dGVEYXRhRm9yVVJMKHJlcXVlc3QudXJsKCkp
LCBsb2NrSGlzdG9yeSk7Ci19CisgICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KHBhc3NlZFJl
cXVlc3QpOwogCi12b2lkIEZyYW1lTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhLCBib29sIGxvY2tI
aXN0b3J5KQotewogICAgIGlmIChtX2luU3RvcEFsbExvYWRlcnMpCiAgICAgICAgIHJldHVybjsK
LSAgICAgICAgCi0gICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBsb2FkZXIgPSBtX2NsaWVudC0+
Y3JlYXRlRG9jdW1lbnRMb2FkZXIocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpOwotICAgIGlmIChs
b2NrSGlzdG9yeSAmJiBtX2RvY3VtZW50TG9hZGVyKQotICAgICAgICBsb2FkZXItPnNldENsaWVu
dFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeShtX2RvY3VtZW50TG9hZGVyLT5kaWRDcmVhdGVHbG9i
YWxIaXN0b3J5RW50cnkoKSA/IG1fZG9jdW1lbnRMb2FkZXItPnVybEZvckhpc3RvcnkoKS5zdHJp
bmcoKSA6IG1fZG9jdW1lbnRMb2FkZXItPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgp
KTsKLSAgICBsb2FkKGxvYWRlci5nZXQoKSk7Ci19CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmxvYWQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwg
Ym9vbCBsb2NrSGlzdG9yeSkKLXsKLSAgICBpZiAoZnJhbWVOYW1lLmlzRW1wdHkoKSkgewotICAg
ICAgICBsb2FkKHJlcXVlc3QsIGxvY2tIaXN0b3J5KTsKLSAgICAgICAgcmV0dXJuOworICAgIGlm
ICghcmVxdWVzdC5mcmFtZU5hbWUoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgRnJhbWUqIGZyYW1l
ID0gZmluZEZyYW1lRm9yTmF2aWdhdGlvbihyZXF1ZXN0LmZyYW1lTmFtZSgpKTsKKyAgICAgICAg
aWYgKGZyYW1lKSB7CisgICAgICAgICAgICByZXF1ZXN0LnNldFNob3VsZENoZWNrTmV3V2luZG93
UG9saWN5KGZhbHNlKTsKKyAgICAgICAgICAgIGlmIChmcmFtZS0+bG9hZGVyKCkgIT0gdGhpcykg
eworICAgICAgICAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0KTsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAKLSAg
ICBGcmFtZSogZnJhbWUgPSBmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKGZyYW1lTmFtZSk7Ci0gICAg
aWYgKGZyYW1lKSB7Ci0gICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBsb2Nr
SGlzdG9yeSk7CisgICAgaWYgKHJlcXVlc3Quc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koKSkg
eworICAgICAgICBwb2xpY3lDaGVja2VyKCktPmNoZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRp
b25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgTmF2aWdhdGlvblR5cGVPdGhlciks
IEZyYW1lTG9hZGVyOjpjYWxsQ29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3ksIHJlcXVl
c3QucmVzb3VyY2VSZXF1ZXN0KCksIDAsIHJlcXVlc3QuZnJhbWVOYW1lKCksIHRoaXMpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcG9saWN5Q2hlY2tlcigpLT5jaGVja05ld1dpbmRv
d1BvbGljeShOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmlnYXRpb25UeXBlT3RoZXIpLCBG
cmFtZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5LCByZXF1ZXN0
LCAwLCBmcmFtZU5hbWUsIHRoaXMpOworICAgIGlmICghcmVxdWVzdC5oYXNTdWJzdGl0dXRlRGF0
YSgpKQorICAgICAgICByZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKGRlZmF1bHRTdWJzdGl0dXRl
RGF0YUZvclVSTChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKSk7CisKKyAgICBSZWZQ
dHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9IG1fY2xpZW50LT5jcmVhdGVEb2N1bWVudExvYWRl
cihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LnN1YnN0aXR1dGVEYXRhKCkpOwor
ICAgIGlmIChyZXF1ZXN0LmxvY2tIaXN0b3J5KCkgJiYgbV9kb2N1bWVudExvYWRlcikKKyAgICAg
ICAgbG9hZGVyLT5zZXRDbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkobV9kb2N1bWVudExv
YWRlci0+ZGlkQ3JlYXRlR2xvYmFsSGlzdG9yeUVudHJ5KCkgPyBtX2RvY3VtZW50TG9hZGVyLT51
cmxGb3JIaXN0b3J5KCkuc3RyaW5nKCkgOiBtX2RvY3VtZW50TG9hZGVyLT5jbGllbnRSZWRpcmVj
dFNvdXJjZUZvckhpc3RvcnkoKSk7CisgICAgbG9hZChsb2FkZXIuZ2V0KCkpOwogfQogCiB2b2lk
IEZyYW1lTG9hZGVyOjpsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIGJvb2wgbG9ja0hp
c3RvcnksIEZyYW1lTG9hZFR5cGUgdHlwZSwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggNTE2MzY5YTg2NDIzNmZkZDRh
NWU0YTA5YmQ0ZTVjZDYzMDk3ZThhZC4uOGE0MzVjODk1YTgyYjA5NDc1ZjY0ZmI5YmNkOWZiNTNm
OGI2YTEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTEwNCw5ICsxMDQs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkRnJhbWVSZXF1ZXN0KGNvbnN0IEZyYW1lTG9hZFJl
cXVlc3QmLCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QsICAvLyBD
YWxsZWQgYnkgc3VibWl0Rm9ybSwgY2FsbHMgbG9hZFBvc3RSZXF1ZXN0IGFuZCBsb2FkVVJMLgog
ICAgICAgICBQYXNzUmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBTaG91bGRT
ZW5kUmVmZXJyZXIpOwogCi0gICAgdm9pZCBsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJv
b2wgbG9ja0hpc3RvcnkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBDYWxsZWQgYnkgV2ViRnJhbWUsIGNhbGxzIGxvYWQoUmVzb3VyY2VSZXF1ZXN0LCBTdWJzdGl0
dXRlRGF0YSkuCi0gICAgdm9pZCBsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN1
YnN0aXR1dGVEYXRhJiwgYm9vbCBsb2NrSGlzdG9yeSk7ICAgICAgICAgICAgICAgICAvLyBDYWxs
ZWQgYm90aCBieSBXZWJGcmFtZSBhbmQgaW50ZXJuYWxseSwgY2FsbHMgbG9hZChEb2N1bWVudExv
YWRlciopLgotICAgIHZvaWQgbG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwgYm9vbCBsb2NrSGlzdG9yeSk7ICAgICAgICAgICAgICAgLy8gQ2FsbGVk
IGJ5IFdlYlBsdWdpbkNvbnRyb2xsZXIuCisgICAgdm9pZCBsb2FkKGNvbnN0IEZyYW1lTG9hZFJl
cXVlc3QmKTsKKwogI2lmIEVOQUJMRShXRUJfQVJDSElWRSkgfHwgRU5BQkxFKE1IVE1MKQogICAg
IHZvaWQgbG9hZEFyY2hpdmUoUGFzc1JlZlB0cjxBcmNoaXZlPik7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggODFlYTNmOTVkZDA0Njk0ZGYwMzRiMDc2
MGFlMDBjNmE4NjFhZjVhOC4uM2EwZGQxNmQyNmFjMjA5NjRjOWRiOTVjZGFhZmQyMjhhYWVlODll
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTQyLDYgKzQyLDcg
QEAKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCkBAIC0yMzcsNyArMjM4LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6cGVy
Zm9ybURyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBtX2NsaWVudC0+d2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24oRHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uTG9hZCwgZHJhZ0RhdGEpOwotICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPmxvYWRl
cigpLT5sb2FkKFJlc291cmNlUmVxdWVzdChkcmFnRGF0YS0+YXNVUkwobV9wYWdlLT5tYWluRnJh
bWUoKSkpLCBmYWxzZSk7CisgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPmxvYWQo
RnJhbWVMb2FkUmVxdWVzdChtX3BhZ2UtPm1haW5GcmFtZSgpLCBSZXNvdXJjZVJlcXVlc3QoZHJh
Z0RhdGEtPmFzVVJMKG1fcGFnZS0+bWFpbkZyYW1lKCkpKSkpOwogICAgIHJldHVybiB0cnVlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCAwNDY2ODQ2ZDQzMTkw
MjNmZDRmZWY5ZDIwMmZjYmZiYTI3YjdmZGVkLi41ZDMyYzkzOGY3ZDA5YTVmZmFiYTkxYjY2Njhk
NWVlOWM3M2I4ZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTQ0
MCw3ICs0NDAsMTAgQEAgdm9pZCBQbHVnaW5WaWV3OjpwZXJmb3JtUmVxdWVzdChQbHVnaW5SZXF1
ZXN0KiByZXF1ZXN0KQogICAgICAgICAgICAgLy8gUGx1Z2luVmlldywgc28gd2UgcHJvdGVjdCBp
dC4gPHJkYXI6Ly9wcm9ibGVtLzY5OTEyNTE+CiAgICAgICAgICAgICBSZWZQdHI8UGx1Z2luVmll
dz4gcHJvdGVjdCh0aGlzKTsKIAotICAgICAgICAgICAgbV9wYXJlbnRGcmFtZS0+bG9hZGVyKCkt
PmxvYWQocmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJlc291cmNlUmVxdWVzdCgpLCB0YXJn
ZXRGcmFtZU5hbWUsIGZhbHNlKTsKKyAgICAgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVS
ZXF1ZXN0KG1fcGFyZW50RnJhbWUuZ2V0KCksIHJlcXVlc3QtPmZyYW1lTG9hZFJlcXVlc3QoKS5y
ZXNvdXJjZVJlcXVlc3QoKSk7CisgICAgICAgICAgICBmcmFtZVJlcXVlc3Quc2V0RnJhbWVOYW1l
KHRhcmdldEZyYW1lTmFtZSk7CisgICAgICAgICAgICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hl
Y2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7CisgICAgICAgICAgICBtX3BhcmVudEZyYW1lLT5sb2Fk
ZXIoKS0+bG9hZChmcmFtZVJlcXVlc3QpOwogCiAgICAgICAgICAgICAvLyBGSVhNRTogPHJkYXI6
Ly9wcm9ibGVtLzQ4MDc0Njk+IFRoaXMgc2hvdWxkIGJlIHNlbnQgd2hlbiB0aGUgZG9jdW1lbnQg
aGFzIGZpbmlzaGVkIGxvYWRpbmcKICAgICAgICAgICAgIGlmIChyZXF1ZXN0LT5zZW5kTm90aWZp
Y2F0aW9uKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4
IGE0OTZhNTBiMDVjMzEwNmY5YTgwNWM2N2ZjMzc1MzY5NGVkZWU0NTkuLmM2ZDMzZmNhMDRjNjgz
ZWEyMmY4YzFlODkxOGM5YWVlZTI2NDhlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJQYWdlLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIkVkaXRvckNsaWVudEJs
YWNrQmVycnkuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnkuaCIKICNpZiAhZGVmaW5lZChQVUJMSUNfQlVJTEQpIHx8ICFQVUJM
SUNfQlVJTEQKICNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVudE1vY2suaCIKQEAgLTcwMiw3ICs3
MDMsMTAgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6bG9hZChjb25zdCBCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6U3RyaW5nJiB1cmwsIGNvbnN0IEJsYWNrQmUKIAogICAgIHJlcXVlc3Quc2V0U3VnZ2Vz
dGVkU2F2ZU5hbWUoc3VnZ2VzdGVkU2F2ZU5hbWUpOwogCi0gICAgbV9tYWluRnJhbWUtPmxvYWRl
cigpLT5sb2FkKHJlcXVlc3QsICIiIC8qIG5hbWUgKi8sIGZhbHNlKTsKKyAgICBGcmFtZUxvYWRS
ZXF1ZXN0IGZyYW1lUmVxdWVzdChtX21haW5GcmFtZSwgcmVxdWVzdCk7CisgICAgZnJhbWVSZXF1
ZXN0LnNldEZyYW1lTmFtZSgiIik7CisgICAgZnJhbWVSZXF1ZXN0LnNldFNob3VsZENoZWNrTmV3
V2luZG93UG9saWN5KHRydWUpOworICAgIG1fbWFpbkZyYW1lLT5sb2FkZXIoKS0+bG9hZChmcmFt
ZVJlcXVlc3QpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmxvYWQoY29uc3QgQmxhY2tCZXJyeTo6UGxh
dGZvcm06OlN0cmluZyYgdXJsLCBjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBu
ZXR3b3JrVG9rZW4sIGJvb2wgaXNJbml0aWFsKQpAQCAtNzQ3LDcgKzc1MSw3IEBAIHZvaWQgV2Vi
UGFnZVByaXZhdGU6OmxvYWRTdHJpbmcoY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0cmlu
ZyYgc3RyaW5nLCBjb25zCiAgICAgICAgIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29u
dGVudFR5cGUpLAogICAgICAgICBleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUoY29udGVudFR5
cGUpLAogICAgICAgICAhZmFpbGluZ1VSTC5lbXB0eSgpID8gcGFyc2VVcmwoZmFpbGluZ1VSTCkg
OiBLVVJMKCkpOwotICAgIG1fbWFpbkZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJz
dGl0dXRlRGF0YSwgZmFsc2UpOworICAgIG1fbWFpbkZyYW1lLT5sb2FkZXIoKS0+bG9hZChGcmFt
ZUxvYWRSZXF1ZXN0KG1fbWFpbkZyYW1lLCByZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSkpOwogfQog
CiB2b2lkIFdlYlBhZ2U6OmxvYWRTdHJpbmcoY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0
cmluZyYgc3RyaW5nLCBjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBiYXNlVVJM
LCBjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgQmxh
Y2tCZXJyeTo6UGxhdGZvcm06OlN0cmluZyYgZmFpbGluZ1VSTCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNr
QmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggMGI5MmFlYzM3ZjQyZTVjZjRjYmE5MTQz
Y2Q0ZDY3ZGJmMTIyOGVkZC4uODBmYzA2YjZhNzM1MDRmNThhMmYzZmM1YzE2NWQxMWYzNzExZmE4
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTM0
LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDcmVkZW50aWFsVHJhbnNmb3JtRGF0YS5oIgogI2luY2x1
ZGUgIkR1bXBSZW5kZXJUcmVlQ2xpZW50LmgiCiAjaW5jbHVkZSAiRXh0ZXJuYWxFeHRlbnNpb24u
aCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEJsYWNrQmVycnkuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRl
ICJIVE1MRm9ybUVsZW1lbnQuaCIKQEAgLTc1MCw3ICs3NTEsNyBAQCB2b2lkIEZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJl
c291cmNlRQogICAgIH0KIAogICAgIG1fbG9hZGluZ0Vycm9yUGFnZSA9IHRydWU7Ci0gICAgbV9m
cmFtZS0+bG9hZGVyKCktPmxvYWQob3JpZ2luYWxSZXF1ZXN0LCBlcnJvckRhdGEsIGZhbHNlKTsK
KyAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KG1fZnJhbWUsIG9y
aWdpbmFsUmVxdWVzdCwgZXJyb3JEYXRhKSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRC
bGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKEZyYW1lUG9saWN5RnVuY3Rpb24gZnVu
Y3Rpb24sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IGVhY2Y5YWJhODUwMDM5ZDlmYjg4YjlkYzVkNzU0MTcz
ZGRhZDRlZDQuLjVkMzJhZmQ4NWZlMmUyNzk4Nzc1MzJiNzJlYTViM2JlYjRiNjUyOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtOTU3LDcgKzk1
Nyw3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkUmVxdWVzdChjb25zdCBXZWJVUkxSZXF1ZXN0
JiByZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZnJhbWUoKS0+bG9hZGVy
KCktPmxvYWQocmVzb3VyY2VSZXF1ZXN0LCBmYWxzZSk7CisgICAgZnJhbWUoKS0+bG9hZGVyKCkt
PmxvYWQoRnJhbWVMb2FkUmVxdWVzdChmcmFtZSgpLCByZXNvdXJjZVJlcXVlc3QpKTsKIH0KIAog
dm9pZCBXZWJGcmFtZUltcGw6OmxvYWRIaXN0b3J5SXRlbShjb25zdCBXZWJIaXN0b3J5SXRlbSYg
aXRlbSkKQEAgLTk3Niw4ICs5NzYsNiBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6bG9hZEhpc3RvcnlJ
dGVtKGNvbnN0IFdlYkhpc3RvcnlJdGVtJiBpdGVtKQogdm9pZCBXZWJGcmFtZUltcGw6OmxvYWRE
YXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEsIGNvbnN0IFdlYlN0cmluZyYgbWltZVR5cGUsIGNvbnN0
IFdlYlN0cmluZyYgdGV4dEVuY29kaW5nLCBjb25zdCBXZWJVUkwmIGJhc2VVUkwsIGNvbnN0IFdl
YlVSTCYgdW5yZWFjaGFibGVVUkwsIGJvb2wgcmVwbGFjZSkKIHsKICAgICBBU1NFUlQoZnJhbWUo
KSk7Ci0gICAgU3Vic3RpdHV0ZURhdGEgc3Vic3REYXRhKGRhdGEsIG1pbWVUeXBlLCB0ZXh0RW5j
b2RpbmcsIHVucmVhY2hhYmxlVVJMKTsKLSAgICBBU1NFUlQoc3Vic3REYXRhLmlzVmFsaWQoKSk7
CiAKICAgICAvLyBJZiB3ZSBhcmUgbG9hZGluZyBzdWJzdGl0dXRlIGRhdGEgdG8gcmVwbGFjZSBh
biBleGlzdGluZyBsb2FkLCB0aGVuCiAgICAgLy8gaW5oZXJpdCBhbGwgb2YgdGhlIHByb3BlcnRp
ZXMgb2YgdGhhdCBvcmlnaW5hbCByZXF1ZXN0LiAgVGhpcyB3YXksCkBAIC05OTAsNyArOTg4LDkg
QEAgdm9pZCBXZWJGcmFtZUltcGw6OmxvYWREYXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEsIGNvbnN0
IFdlYlN0cmluZyYgbWltZVR5cGUsIGNvbnMKICAgICAgICAgcmVxdWVzdCA9IGZyYW1lKCktPmxv
YWRlcigpLT5vcmlnaW5hbFJlcXVlc3QoKTsKICAgICByZXF1ZXN0LnNldFVSTChiYXNlVVJMKTsK
IAotICAgIGZyYW1lKCktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0RGF0YSwgZmFsc2Up
OworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGZyYW1lKCksIHJlcXVlc3QsIFN1
YnN0aXR1dGVEYXRhKGRhdGEsIG1pbWVUeXBlLCB0ZXh0RW5jb2RpbmcsIHVucmVhY2hhYmxlVVJM
KSk7CisgICAgQVNTRVJUKGZyYW1lUmVxdWVzdC5zdWJzdGl0dXRlRGF0YSgpLmlzVmFsaWQoKSk7
CisgICAgZnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKICAgICBpZiAocmVw
bGFjZSkgewogICAgICAgICAvLyBEbyB0aGlzIHRvIGZvcmNlIFdlYktpdCB0byB0cmVhdCB0aGUg
bG9hZCBhcyByZXBsYWNpbmcgdGhlIGN1cnJlbnRseQogICAgICAgICAvLyBsb2FkZWQgcGFnZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlcklt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5j
cHAKaW5kZXggNWNmOTk5ODUxM2FlYTM1OTZlMGQ1ZjE0ODg2ZmE5ZTkxN2YxZmZiYS4uMTE5ZDlh
Y2I2OTk0YmQ5NzZmMDRjNjYxOTI0MjQ5ODFmMjRkYmQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5jcHAKQEAgLTM0LDYgKzM0LDcg
QEAKICNpbmNsdWRlICJDcm9zc1RocmVhZFRhc2suaCIKICNpbmNsdWRlICJEYXRhYmFzZVRhc2su
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIK
ICNpbmNsdWRlICJHcm91cFNldHRpbmdzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VFdmVudC5oIgpAQCAtMTMwLDEwICsxMzEsOSBAQCB2b2lkIFdlYlNoYXJlZFdvcmtl
ckltcGw6OmluaXRpYWxpemVMb2FkZXIoY29uc3QgV2ViVVJMJiB1cmwpCiAgICAgLy8gQ29uc3Ry
dWN0IHN1YnN0aXR1dGUgZGF0YSBzb3VyY2UgZm9yIHRoZSAnc2hhZG93IHBhZ2UnLiBXZSBvbmx5
IG5lZWQgaXQKICAgICAvLyB0byBoYXZlIHNhbWUgb3JpZ2luIGFzIHRoZSB3b3JrZXIgc28gdGhl
IGxvYWRpbmcgY2hlY2tzIHdvcmsgY29ycmVjdGx5LgogICAgIENTdHJpbmcgY29udGVudCgiIik7
Ci0gICAgaW50IGxlbiA9IHN0YXRpY19jYXN0PGludD4oY29udGVudC5sZW5ndGgoKSk7Ci0gICAg
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGNvbnRlbnQuZGF0
YSgpLCBsZW4pKTsKLSAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdERhdGEoYnVmLCBTdHJpbmcoInRl
eHQvaHRtbCIpLCBTdHJpbmcoIlVURi04IiksIEtVUkwoKSk7Ci0gICAgd2ViRnJhbWUtPmZyYW1l
KCktPmxvYWRlcigpLT5sb2FkKFJlc291cmNlUmVxdWVzdCh1cmwpLCBzdWJzdERhdGEsIGZhbHNl
KTsKKyAgICBpbnQgbGVuZ3RoID0gc3RhdGljX2Nhc3Q8aW50Pihjb250ZW50Lmxlbmd0aCgpKTsK
KyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoY29u
dGVudC5kYXRhKCksIGxlbmd0aCkpOworICAgIHdlYkZyYW1lLT5mcmFtZSgpLT5sb2FkZXIoKS0+
bG9hZChGcmFtZUxvYWRSZXF1ZXN0KHdlYkZyYW1lLT5mcmFtZSgpLCBSZXNvdXJjZVJlcXVlc3Qo
dXJsKSwgU3Vic3RpdHV0ZURhdGEoYnVmZmVyLCAidGV4dC9odG1sIiwgIlVURi04IiwgS1VSTCgp
KSkpOwogCiAgICAgLy8gVGhpcyBkb2N1bWVudCB3aWxsIGJlIHVzZWQgYXMgJ2xvYWRpbmcgY29u
dGV4dCcgZm9yIHRoZSB3b3JrZXIuCiAgICAgbV9sb2FkaW5nRG9jdW1lbnQgPSB3ZWJGcmFtZS0+
ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXgg
ZGVjNTVkNjk4NzFhNjYxNjBiZWI5ODY2NGUxMDc4YTQxMGJmYzA0Mi4uYWYzOGU0YTA4N2VkZGE5
YmQ3YjkzZWFlMzhjNTg4MTYzNmU3MjhjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19mcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnRFZmwuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQ29sbGVj
dGlvbi5oIgpAQCAtMzM4LDcgKzMzOSw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfdXJpX3NldChF
dmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0IGNoYXIqIHVyaSkKICAgICBXZWJDb3JlOjpLVVJM
IGt1cmwoV2ViQ29yZTo6S1VSTCgpLCBXVEY6OlN0cmluZzo6ZnJvbVVURjgodXJpKSk7CiAgICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcShrdXJsKTsKICAgICBXZWJDb3JlOjpGcmFtZUxv
YWRlciogbG9hZGVyID0gc21hcnREYXRhLT5mcmFtZS0+bG9hZGVyKCk7Ci0gICAgbG9hZGVyLT5s
b2FkKHJlcSwgZmFsc2UpOworICAgIGxvYWRlci0+bG9hZChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1
ZXN0KHNtYXJ0RGF0YS0+ZnJhbWUsIHJlcSkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC00
MTYsNyArNDE3LDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX2ZyYW1lX2NvbnRlbnRzX3NldF9p
bnRlcm5hbChFd2tfRnJhbWVfU21hcnRfRGF0YSogc21hcnREYXQKICAgICAgICAgYmFzZUtVUkws
IHVucmVhY2hhYmxlS1VSTCk7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
YmFzZUtVUkwpOwogCi0gICAgc21hcnREYXRhLT5mcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVz
dCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBzbWFydERhdGEtPmZyYW1lLT5sb2FkZXIo
KS0+bG9hZChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0KHNtYXJ0RGF0YS0+ZnJhbWUsIHJlcXVl
c3QsIHN1YnN0aXR1dGVEYXRhKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4IDgwODAwYzJjNThlN2EzYzA4
Y2E0NmJiNjNiMGEzNjdlNDlkMzE0YTcuLjFlN2M0YzNmMzFlZWNkMTE4Zjg1OWVkNGYxOGFkYzky
OGRiMDVlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJm
cmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNw
cApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNs
dWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyR3RrLmgiCisj
aW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlv
bi5oIgpAQCAtNjc0LDcgKzY3NSw3IEBAIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9sb2FkX3VyaShX
ZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiB1cmkpCiAgICAgaWYgKCFjb3JlRnJh
bWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoUmVz
b3VyY2VSZXF1ZXN0KEtVUkwoS1VSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVyaSkpKSwgZmFsc2Up
OworICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJh
bWUsIFJlc291cmNlUmVxdWVzdChLVVJMKEtVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh1cmkpKSkp
KTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9sb2FkX2RhdGEoV2ViS2l0V2Vi
RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogY29udGVudCwgY29uc3QgZ2NoYXIqIG1pbWVUeXBl
LCBjb25zdCBnY2hhciogZW5jb2RpbmcsIGNvbnN0IGdjaGFyKiBiYXNlVVJMLCBjb25zdCBnY2hh
ciogdW5yZWFjaGFibGVVUkwpCkBAIC02OTMsNyArNjk0LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0
X3dlYl9mcmFtZV9sb2FkX2RhdGEoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciog
Y29udGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLVVJMKEtVUkwoKSwgU3Ry
aW5nOjpmcm9tVVRGOCh1bnJlYWNoYWJsZVVSTCkpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEtVUkwoS1VSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVucmVhY2hhYmxlVVJMKSkp
OwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0
YSwgZmFsc2UpOworICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVz
dChjb3JlRnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKSk7CiB9CiAKIC8qKgpAQCAtNzYy
LDcgKzc2Myw3IEBAIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9sb2FkX3JlcXVlc3QoV2ViS2l0V2Vi
RnJhbWUqIGZyYW1lLCBXZWJLaXROZXR3b3JrUmVxdWVzdCoKICAgICBpZiAoIWNvcmVGcmFtZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChjb3JlKHJl
cXVlc3QpLCBmYWxzZSk7CisgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRS
ZXF1ZXN0KGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgY29yZShyZXF1
ZXN0KSkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
V2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1
Z2luQ29udHJvbGxlci5tbQppbmRleCAwMDM5ZmU2OTA2MzE0ZTQ4M2Y5MGFkN2M4Y2EzM2Y3Yzkz
Y2Y1MTJlLi40YzAwN2UzZGIwZTZiYzkyZjEzMmEyNzNkMzA4NzBmNWE3M2FlN2UyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCkBAIC01
MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMUmVxdWVzdC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgor
I2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zy
YW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvSFRNTE5hbWVzLmg+CkBAIC00MDEsNyArNDAyLDEwIEBAIHN0YXRpYyB2b2lk
IGNhbmNlbE91dHN0YW5kaW5nQ2hlY2soY29uc3Qgdm9pZCAqaXRlbSwgdm9pZCAqY29udGV4dCkK
ICAgICAgICAgICAgIExPR19FUlJPUigiY291bGQgbm90IGxvYWQgVVJMICVAIiwgW3JlcXVlc3Qg
VVJMXSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgY29yZShmcmFt
ZSktPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHRhcmdldCwgZmFsc2UpOworICAgICAgICBGcmFt
ZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChjb3JlKGZyYW1lKSwgcmVxdWVzdCk7CisgICAgICAg
IGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUodGFyZ2V0KTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0
LnNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KHRydWUpOworICAgICAgICBjb3JlKGZyYW1l
KS0+bG9hZGVyKCktPmxvYWQoZnJhbWVSZXF1ZXN0KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IGY5MWZmZDhlNTFiZDRkYWNiN2FmMGExY2M0ZjI2
NTEzYzNlZGE4MzIuLmE1Y2Y2MjcxYzU3MDFhYWM2ODE0MjNkMmE2OTA1NzNkMDliNjg1YWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtNjcsNiArNjcsNyBAQAogI2lt
cG9ydCA8V2ViQ29yZS9FdmVudEhhbmRsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnROYW1l
cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxv
YWRSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0ZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1l
VHJlZS5oPgpAQCAtMTM2OSw3ICsxMzcwLDcgQEAgc3RhdGljIGJvb2wgbmVlZHNNaWNyb3NvZnRN
ZXNzZW5nZXJET01Eb2N1bWVudFdvcmthcm91bmQoKQogICAgIGlmICghcmVzb3VyY2VSZXF1ZXN0
LnVybCgpLmlzVmFsaWQoKSAmJiAhcmVzb3VyY2VSZXF1ZXN0LnVybCgpLmlzRW1wdHkoKSkKICAg
ICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldFVSTChbTlNVUkwgVVJMV2l0aFN0cmluZzpbQCJmaWxl
OiIgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6W1tyZXF1ZXN0IFVSTF0gYWJzb2x1dGVTdHJpbmdd
XV0pOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9hZChyZXNvdXJjZVJlcXVlc3QsIGZh
bHNlKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoY29y
ZUZyYW1lLCByZXNvdXJjZVJlcXVlc3QpKTsKIH0KIAogc3RhdGljIE5TVVJMICpjcmVhdGVVbmlx
dWVXZWJEYXRhVVJMKCkKQEAgLTE0MDAsNyArMTQwMSw3IEBAIHN0YXRpYyBOU1VSTCAqY3JlYXRl
VW5pcXVlV2ViRGF0YVVSTCgpCiAKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoZGF0YSksIE1JTUVUeXBlLCBlbmNvZGlu
Z05hbWUsIFt1bnJlYWNoYWJsZVVSTCBhYnNvbHV0ZVVSTF0sIHJlc3BvbnNlVVJMKTsKIAotICAg
IF9wcml2YXRlLT5jb3JlRnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVE
YXRhLCBmYWxzZSk7CisgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJh
bWVMb2FkUmVxdWVzdChfcHJpdmF0ZS0+Y29yZUZyYW1lLCByZXF1ZXN0LCBzdWJzdGl0dXRlRGF0
YSkpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4IDg5NDc0ZGQyZTZi
NWVlYTQ3Y2RkY2NhMTA2MjY2MWJjMTVjMzA0MTMuLjNmYTBlOGI3MTdjYjMyYWM4M2FkY2Y1ZmZj
N2MyZGM4MmQ4MWIwYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24u
aCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKQEAgLTgyOCw3ICs4MjksNyBAQCB2b2lkIFFXZWJG
cmFtZTo6c2V0SHRtbChjb25zdCBRU3RyaW5nICZodG1sLCBjb25zdCBRVXJsICZiYXNlVXJsKQog
ICAgIGNvbnN0IFFCeXRlQXJyYXkgdXRmOCA9IGh0bWwudG9VdGY4KCk7CiAgICAgV1RGOjpSZWZQ
dHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBkYXRhID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpj
cmVhdGUodXRmOC5jb25zdERhdGEoKSwgdXRmOC5sZW5ndGgoKSk7CiAgICAgV2ViQ29yZTo6U3Vi
c3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoZGF0YSwgV1RGOjpTdHJpbmcoInRleHQvaHRtbCIp
LCBXVEY6OlN0cmluZygidXRmLTgiKSwgS1VSTCgpKTsKLSAgICBkLT5mcmFtZS0+bG9hZGVyKCkt
PmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBkLT5mcmFtZS0+bG9h
ZGVyKCktPmxvYWQoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdChkLT5mcmFtZSwgcmVxdWVzdCwg
c3Vic3RpdHV0ZURhdGEpKTsKIH0KIAogLyohCkBAIC04NTgsNyArODU5LDcgQEAgdm9pZCBRV2Vi
RnJhbWU6OnNldENvbnRlbnQoY29uc3QgUUJ5dGVBcnJheSAmZGF0YSwgY29uc3QgUVN0cmluZyAm
bWltZVR5cGUsIGNvbnMKICAgICAgICAgZW5jb2RpbmcgPSBleHRyYWN0Q2hhcnNldEZyb21NZWRp
YVR5cGUobWltZVR5cGUpOwogICAgIH0KICAgICBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YSBzdWJz
dGl0dXRlRGF0YShidWZmZXIsIFdURjo6U3RyaW5nKGFjdHVhbE1pbWVUeXBlKSwgZW5jb2Rpbmcs
IEtVUkwoKSk7Ci0gICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIHN1YnN0aXR1
dGVEYXRhLCBmYWxzZSk7CisgICAgZC0+ZnJhbWUtPmxvYWRlcigpLT5sb2FkKFdlYkNvcmU6OkZy
YW1lTG9hZFJlcXVlc3QoZC0+ZnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKSk7CiB9CiAK
IC8qIQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRleCA4ZDA4YzRhMTBkZGIyMGQ5ZGQzNWNkMzk3
MjlhNzY4ZjViOTQ3NTc0Li45YTNiZTM1MjNmMWMxMDNiNzg0MTNjNzEzZDAxYTQ1NDFjYWQwNTc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNs
aWVudFF0LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR0NDb250cm9sbGVy
LmgiCkBAIC05MjYsNyArOTI3LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0
QWx0ZXJuYXRlSHRtbChRV2ViRnJhbWVBZGFwdGVyKiBhZGFwdGVyLCBjb25zdAogICAgIGNvbnN0
IFFCeXRlQXJyYXkgdXRmOCA9IGh0bWwudG9VdGY4KCk7CiAgICAgV1RGOjpSZWZQdHI8V2ViQ29y
ZTo6U2hhcmVkQnVmZmVyPiBkYXRhID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUodXRm
OC5jb25zdERhdGEoKSwgdXRmOC5sZW5ndGgoKSk7CiAgICAgV2ViQ29yZTo6U3Vic3RpdHV0ZURh
dGEgc3Vic3RpdHV0ZURhdGEoZGF0YSwgV1RGOjpTdHJpbmcoInRleHQvaHRtbCIpLCBXVEY6OlN0
cmluZygidXRmLTgiKSwgZmFpbGluZ1VybCk7Ci0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+bG9h
ZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIGNvcmVGcmFtZS0+bG9hZGVy
KCktPmxvYWQoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUsIHJlcXVlc3QsIHN1
YnN0aXR1dGVEYXRhKSk7CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmNvbmZp
cm1Db21wb3NpdGlvbihRV2ViUGFnZUFkYXB0ZXIgKmFkYXB0ZXIsIGNvbnN0IGNoYXIqIHRleHQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0LmNwcAppbmRleCA3YTIzZWUyNjgzYzA4YjI0MzA2Y2E0N2MwNDY0N2E2ZGIyNjcw
N2M4Li44MDI4YmY5MWUwYTRiNGVkZjQ3NzMwYzE1ODRhODEyOTNlM2FiNDFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKKyNpbmNs
dWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4
dFF0LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBA
IC0xMTUzLDcgKzExNTQsNyBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNhbGxFcnJvclBh
Z2VFeHRlbnNpb24oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZQogICAgIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGJhc2VVcmwpOwogICAgIFdURjo6UmVmUHRyPFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUo
b3V0cHV0LmNvbnRlbnQuY29uc3REYXRhKCksIG91dHB1dC5jb250ZW50Lmxlbmd0aCgpKTsKICAg
ICBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShidWZmZXIsIG91dHB1dC5j
b250ZW50VHlwZSwgb3V0cHV0LmVuY29kaW5nLCBmYWlsaW5nVXJsKTsKLSAgICBtX2ZyYW1lLT5s
b2FkZXIoKS0+bG9hZChyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSwgZmFsc2UpOworICAgIG1fZnJh
bWUtPmxvYWRlcigpLT5sb2FkKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QobV9mcmFtZSwgcmVx
dWVzdCwgc3Vic3RpdHV0ZURhdGEpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RV2ViRnJhbWVBZGFwdGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5jcHAKaW5k
ZXggZTg2NDEzY2YwNWRhOGUyODAyYzUxMzIyZWY0YmUwN2RkNzBhMDFlNC4uMzgwYjc0OTU0Y2U0
ZDU3ZjFhMWQ2ZDliMjAwNjk2ZDMwNWEyMzgwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9RV2ViRnJhbWVBZGFwdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuY3BwCkBAIC0yMiw2ICsyMiw3IEBA
CiAjaW5jbHVkZSAiUVdlYkZyYW1lQWRhcHRlci5oIgogCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRR
dC5oIgogI2luY2x1ZGUgIlFXZWJQYWdlQWRhcHRlci5oIgogI2lmIEVOQUJMRShHRVNUVVJFX0VW
RU5UUykKQEAgLTEzMiw3ICsxMzMsNyBAQCB2b2lkIFFXZWJGcmFtZUFkYXB0ZXI6OmxvYWQoY29u
c3QgUU5ldHdvcmtSZXF1ZXN0JiByZXEsIFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6TwogICAgIGlm
ICghYm9keS5pc0VtcHR5KCkpCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoV2ViQ29yZTo6
Rm9ybURhdGE6OmNyZWF0ZShib2R5LmNvbnN0RGF0YSgpLCBib2R5LnNpemUoKSkpOwogCi0gICAg
ZnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QsIGZhbHNlKTsKKyAgICBmcmFtZS0+bG9hZGVy
KCktPmxvYWQoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdChmcmFtZSwgcmVxdWVzdCkpOwogCiAg
ICAgaWYgKGZyYW1lLT50cmVlKCktPnBhcmVudCgpKQogICAgICAgICBwYWdlQWRhcHRlci0+aW5z
aWRlT3BlbkNhbGwgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZy
YW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCBlZTljZGQ4YzQ0
MThkOGEyN2U2ODA0ZjAyMDg5NWJiNTViMjM4MmM1Li5jODU5ZTZhMjU1MDdlNTg0NGY5NmQwY2Zm
NDg4YjE2NzBhMjgyMjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCkBAIC01NTYsNyArNTU2LDcg
QEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJGcmFtZTo6bG9hZFJlcXVlc3QoCiAgICAg
aWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICBjb3JlRnJhbWUt
PmxvYWRlcigpLT5sb2FkKHJlcXVlc3RJbXBsLT5yZXNvdXJjZVJlcXVlc3QoKSwgZmFsc2UpOwor
ICAgIGNvcmVGcmFtZS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUs
IHJlcXVlc3RJbXBsLT5yZXNvdXJjZVJlcXVlc3QoKSkpOwogICAgIHJldHVybiBTX09LOwogfQog
CkBAIC01ODAsNyArNTgwLDcgQEAgdm9pZCBXZWJGcmFtZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGRhdGEsIEJTVFIgbWltZVR5cGUsIEIKIAogICAgIC8vIFRo
aXMgbWV0aG9kIGlzIG9ubHkgY2FsbGVkIGZyb20gSVdlYkZyYW1lIG1ldGhvZHMsIHNvIGRvbid0
IEFTU0VSVCB0aGF0IHRoZSBGcmFtZSBwb2ludGVyIGlzbid0IG51bGwuCiAgICAgaWYgKEZyYW1l
KiBjb3JlRnJhbWUgPSBjb3JlKHRoaXMpKQotICAgICAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5s
b2FkKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgICAgIGNvcmVGcmFtZS0+
bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUsIHJlcXVlc3QsIHN1YnN0
aXR1dGVEYXRhKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJW
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKaW5kZXggZmNjMDRkN2Ri
NmI2NjFhODdmNTk2ODYzNDVkOTg4Nzk3OGY0M2ZkNi4uOTA1OWE0MDIyMWE3OGU1Y2VlMjdmMDZh
NWQwMGVhNjFkM2RhOWY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50V2luQ0UuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3Qu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50
V2luQ0UuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTIxOCw3ICsyMTksNyBAQCB2b2lk
IFdlYlZpZXc6OmxvYWQoY29uc3QgU3RyaW5nICZ1cmwpCiAKIHZvaWQgV2ViVmlldzo6bG9hZChj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgJnJlcXVlc3QpCiB7Ci0gICAgZnJhbWUoKS0+
bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgZmFsc2UpOworICAgIGZyYW1lKCktPmxvYWRlcigpLT5s
b2FkKEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUoKSwgcmVxdWVzdCkpOwogfQogCiB2b2lkIFdlYlZp
ZXc6OnJlbG9hZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYkZyYW1lLmNwcCBi
L1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCmluZGV4IGIzNzQxMTNjMDc3MmExYzdmMjZm
MjQ0MDgzMDAyYmIzYWFlOGM4YTkuLmNjZjU0ZTM4Zjc5ZmUyYjcyZTRjZTY0OWNiMDFkMWVmYjhl
OThiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd3gvV2ViRnJhbWUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFd4LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
CkBAIC0zMjIsNyArMzIzLDcgQEAgdm9pZCBXZWJGcmFtZTo6U2V0UGFnZVNvdXJjZShjb25zdCB3
eFN0cmluZyYgc291cmNlLCBjb25zdCB3eFN0cmluZyYgYmFzZVVybCwgY28KICAgICAgICAgV2Vi
Q29yZTo6U3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoc2hhcmVkQnVmZmVyLCBtaW1ldHlw
ZSwgV1RGOjpTdHJpbmcoIlVURi04IiksIFdlYkNvcmU6OmJsYW5rVVJMKCksIHVybCk7CiAKICAg
ICAgICAgbV9pbXBsLT5mcmFtZS0+bG9hZGVyKCktPnN0b3AoKTsKLSAgICAgICAgbV9pbXBsLT5m
cmFtZS0+bG9hZGVyKCktPmxvYWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0KHVybCksIHN1YnN0
aXR1dGVEYXRhLCBmYWxzZSk7CisgICAgICAgIG1faW1wbC0+ZnJhbWUtPmxvYWRlcigpLT5sb2Fk
KFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QobV9pbXBsLT5mcmFtZSwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0KHVybCksIHN1YnN0aXR1dGVEYXRhKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYTAwZTVj
YzFiZTFlMGI2NmJiMTI4ZWY0NzcxYWRhNzAwZWJjZmE4YS4uNmM3NGY0NjMzZmJiNWIzN2FhMTY1
Zjg4OTk3OGQyMmUxNThmNjVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtMTAxNCw3ICsxMDE0LDEwIEBAIHZvaWQgUGx1Z2lu
Vmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCogcmVxdWVzdCkKICAg
ICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBmcmFtZS0+bG9hZGVyKCktPmZpbmRGcmFtZUZvck5hdmln
YXRpb24ocmVxdWVzdC0+dGFyZ2V0KCkpOwogICAgIGlmICghdGFyZ2V0RnJhbWUpIHsKICAgICAg
ICAgLy8gV2UgZGlkIG5vdCBmaW5kIGEgdGFyZ2V0IGZyYW1lLiBBc2sgb3VyIGZyYW1lIHRvIGxv
YWQgdGhlIHBhZ2UuIFRoaXMgbWF5IG9yIG1heSBub3QgY3JlYXRlIGEgcG9wdXAgd2luZG93Lgot
ICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdC0+cmVxdWVzdCgpLCByZXF1ZXN0
LT50YXJnZXQoKSwgZmFsc2UpOworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVz
dChmcmFtZSwgcmVxdWVzdC0+cmVxdWVzdCgpKTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZy
YW1lTmFtZShyZXF1ZXN0LT50YXJnZXQoKSk7CisgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91
bGRDaGVja05ld1dpbmRvd1BvbGljeSh0cnVlKTsKKyAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5s
b2FkKGZyYW1lUmVxdWVzdCk7CiAKICAgICAgICAgLy8gRklYTUU6IFdlIGRvbid0IGtub3cgd2hl
dGhlciB0aGUgd2luZG93IHdhcyBzdWNjZXNzZnVsbHkgY3JlYXRlZCBoZXJlIHNvIHdlIGp1c3Qg
YXNzdW1lIHRoYXQgaXQgd29ya2VkLgogICAgICAgICAvLyBJdCdzIGJldHRlciB0aGFuIG5vdCB0
ZWxsaW5nIHRoZSBwbHVnLWluIGFueXRoaW5nLgpAQCAtMTAyMyw3ICsxMDI2LDcgQEAgdm9pZCBQ
bHVnaW5WaWV3OjpwZXJmb3JtRnJhbWVMb2FkVVJMUmVxdWVzdChVUkxSZXF1ZXN0KiByZXF1ZXN0
KQogICAgIH0KIAogICAgIC8vIE5vdyBhc2sgdGhlIGZyYW1lIHRvIGxvYWQgdGhlIHJlcXVlc3Qu
Ci0gICAgdGFyZ2V0RnJhbWUtPmxvYWRlcigpLT5sb2FkKHJlcXVlc3QtPnJlcXVlc3QoKSwgZmFs
c2UpOworICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KHRh
cmdldEZyYW1lLCByZXF1ZXN0LT5yZXF1ZXN0KCkpKTsKIAogICAgIFdlYkZyYW1lKiB0YXJnZXRX
ZWJGcmFtZSA9IHN0YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4odGFyZ2V0RnJhbWUt
PmxvYWRlcigpLT5jbGllbnQoKSktPndlYkZyYW1lKCk7CiAgICAgaWYgKFdlYkZyYW1lOjpMb2Fk
TGlzdGVuZXIqIGxvYWRMaXN0ZW5lciA9IHRhcmdldFdlYkZyYW1lLT5sb2FkTGlzdGVuZXIoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDFjMzBlYTllZjZkYWZmYjY3ZDhlNmE2MTgyMTAyNWM0M2VmZWE3ODIuLjgzYzBhZTdmZDJlYTk4
NTA3ZjNlOTM3ZDZjMjQzNjNmMWU0YWI2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTgyNSw3ICs4MjUsNyBAQCB2b2lkIFdlYlBhZ2U6
OmxvYWRVUkxSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU2Fu
ZGJveEV4dGVucwogICAgIFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lciBzdG9wcGVyKHRoaXMp
OwogCiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uVHJhY2tlci5iZWdpbkxvYWQobV9tYWluRnJhbWUu
Z2V0KCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwotICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJh
bWUoKS0+bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgZmFsc2UpOworICAgIG1fbWFpbkZyYW1lLT5j
b3JlRnJhbWUoKS0+bG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChtX21haW5GcmFtZS0+
Y29yZUZyYW1lKCksIHJlcXVlc3QpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpsb2FkRGF0YShQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2hhcmVkQnVmZmVyLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBl
LCBjb25zdCBTdHJpbmcmIGVuY29kaW5nTmFtZSwgY29uc3QgS1VSTCYgYmFzZVVSTCwgY29uc3Qg
S1VSTCYgdW5yZWFjaGFibGVVUkwpCkBAIC04MzQsNyArODM0LDcgQEAgdm9pZCBXZWJQYWdlOjps
b2FkRGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2hhcmVkQnVmZmVyLCBjb25zdCBTdHJp
bmcmIE1JTUUKIAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGJhc2VVUkwpOwogICAgIFN1
YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKHNoYXJlZEJ1ZmZlciwgTUlNRVR5cGUsIGVuY29k
aW5nTmFtZSwgdW5yZWFjaGFibGVVUkwpOwotICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+
bG9hZGVyKCktPmxvYWQocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEsIGZhbHNlKTsKKyAgICBtX21h
aW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QobV9t
YWluRnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSkpOwogfQogCiB2
b2lkIFdlYlBhZ2U6OmxvYWRIVE1MU3RyaW5nKGNvbnN0IFN0cmluZyYgaHRtbFN0cmluZywgY29u
c3QgU3RyaW5nJiBiYXNlVVJMU3RyaW5nKQpAQCAtODc0LDggKzg3NCw3IEBAIHZvaWQgV2ViUGFn
ZTo6bGlua0NsaWNrZWQoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2
ZW50KQogICAgIGlmIChldmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6Ok5vVHlwZSkKICAgICAgICAg
Y29yZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCBm
cmFtZS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwgcGxhdGZvcm0oZXZlbnQpLCAwLCAwKTsK
IAotICAgIGZyYW1lLT5sb2FkZXIoKS0+bG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0
KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QodXJs
KSksIAotICAgICAgICBmYWxzZSwgZmFsc2UsIGNvcmVFdmVudC5nZXQoKSwgMCwgTWF5YmVTZW5k
UmVmZXJyZXIpOworICAgIGZyYW1lLT5sb2FkZXIoKS0+bG9hZEZyYW1lUmVxdWVzdChGcmFtZUxv
YWRSZXF1ZXN0KGZyYW1lLCBSZXNvdXJjZVJlcXVlc3QodXJsKSksIGZhbHNlLCBmYWxzZSwgY29y
ZUV2ZW50LmdldCgpLCAwLCBNYXliZVNlbmRSZWZlcnJlcik7CiB9CiAKIHZvaWQgV2ViUGFnZTo6
c3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>